@font-face{font-family:"EB Garamond";font-style:normal;font-weight:400;font-display:block;src:url("fonts/eb-garamond.88751f2d.woff2") format("woff2");unicode-range:U+0020-007E, U+00A0-00B6, U+00B8-00FF, U+00D7, U+2013, U+2212;size-adjust:110%}
@font-face{font-family:"Zhuque Fangsong";font-style:normal;font-weight:400;font-display:block;src:url("fonts/zhuque-fangsong.76396cd8.woff2") format("woff2")}
@font-face{font-family:"NYX Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/nyx-sans.7ab1c076.woff2") format("woff2")}
@font-face{font-family:"NYX Serif";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/nyx-serif.bdd8366d.woff2") format("woff2")}
@font-face{font-family:"EB Garamond Ext";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/eb-garamond-ext.e2661dc5.woff2") format("woff2");unicode-range:U+00A0-00B6, U+00B8-017F, U+0192, U+02C6, U+02DC, U+201A, U+201E, U+2020-2021, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;size-adjust:110%}
@font-face{font-family:"EB Garamond Punct";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/eb-garamond-ext.e2661dc5.woff2") format("woff2");unicode-range:U+2010-2015, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2032-2033;size-adjust:110%}

:root {
  
  --bg: #ffffff;
  --ink: #161513;          
  --ink-2: #6b6b6b;        
  --line: #e2e2e2;         
  --placeholder: #ededed;  
  
  --content-max: 1260px;
  --gutter: max(20px, 5vw);
  --measure: 34em;         
  --column-max: 600px;     
  
  --f-display: "EB Garamond", "EB Garamond Ext", "Zhuque Fangsong", "STFangsong", "FangSong", serif;
  --f-body: "EB Garamond", "EB Garamond Ext", "NYX Serif", "Songti SC", serif;
  --f-small: "EB Garamond", "EB Garamond Ext", "NYX Sans", "PingFang SC", sans-serif;
  
  --fs-title: 36px;   --ls-title: .08em;  --lh-title: 1.4;   
  --fs-list: 18px;    --ls-list: .08em;   --lh-list: 1.5;    
  --fs-name: 18px;    --ls-name: .04em;                       
  --fs-body: 16px;    --ls-body: .03em;   --lh-body: 2;      
  --fs-small: 13px;   --ls-small: .04em;  --lh-small: 1.8;   
  --ls-nav: .14em;                                            
  
  --t-press: 110ms;        
  --t-bounce: 250ms;       
  --t-hover: 300ms;        
  --t-develop: 600ms;      
  --press-scale: .96;
  --hover-scale: 1.02;
  --develop-from: .92;     
  --ease-out: cubic-bezier(.22, .61, .36, 1);
  --ease-develop: cubic-bezier(.45, .05, .35, 1);
  --t-drop: 150ms;         
  --t-thumb: 200ms;        
  --t-lb: 200ms;           
  
  --cap-grid: 88vh;                 
  --cap-full: calc(100vh - 64px);   
  --cap-center: 75vh;               
  --center-w: 50%;                  
  --fs-group: 22px;                 
  
  --ink-3: #bdbdbd;                 
  --col-text: 560px;                
  --portrait-w: 64%;                
  --portrait-w-m: 78%;              
  --fs-cv: 14px;  --lh-cv: 1.85;  --cv-li-gap: 5px;   
  --cv-year-w: 60px;  --cv-gap: 20px;                 
  --hang: calc(var(--cv-year-w) + var(--cv-gap));     
  --pub-col: 30%;                   
  --pub-gap: 20%;                   
  --pub-col-m: 72%;                 
  --fs-news-title: 19px;            
  --news-img-h: min(75vh, 560px);   
  --fs-contact: 16px;               
}
:root.nyx-translated {
  --f-display: "EB Garamond", "EB Garamond Ext", "EB Garamond Punct", "Zhuque Fangsong", "STFangsong", "FangSong", serif;
  --f-body: "EB Garamond", "EB Garamond Ext", "EB Garamond Punct", "NYX Serif", "Songti SC", serif;
  --f-small: "EB Garamond", "EB Garamond Ext", "EB Garamond Punct", "NYX Sans", "PingFang SC", sans-serif;
}
@media (max-width: 1023px) {
  :root { --center-w: 66%; }
}
@media (max-width: 719px) {
  :root { --cap-grid: 80vh; --cap-full: 80vh; --cap-center: 70vh; --center-w: 72%; --fs-group: 19px; }
}
@media (max-width: 719px) {
  :root { --fs-title: 28px; }
}
*, *::before, *::after { box-sizing: border-box; }
html {
  background: var(--bg);
  color: var(--ink);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-variant-numeric: lining-nums;
}
:root:not(.nyx-translated) { font-language-override: "ZHS"; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  font-family: var(--f-small);
  font-size: var(--fs-small);
  line-height: var(--lh-small);
  letter-spacing: var(--ls-small);
  -webkit-tap-highlight-color: transparent;
}
main { flex: 1 0 auto; }
body:focus { outline: none; }   
a { color: inherit; }
img { border: 0; }
::selection { background: #e4e4e4; color: var(--ink); }
button {
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}
:focus-visible { outline: 1px solid var(--ink); outline-offset: 4px; }
.wrap {
  width: min(var(--content-max), 100% - 2 * var(--gutter));
  margin-inline: auto;
}
.t-display { font-family: var(--f-display); }
.t-body { font-family: var(--f-body); font-size: var(--fs-body); line-height: var(--lh-body); letter-spacing: var(--ls-body); }
.t-small { font-family: var(--f-small); }
.vh {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
@keyframes nyx-fade { from { opacity: 0; } to { opacity: 1; } }
.site-header__in {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding-top: 44px;
}
.site-name {
  font-family: var(--f-display);
  font-size: var(--fs-name);
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
.site-name__en { letter-spacing: .01em; }
.site-title { margin: 0; font: inherit; }   
.site-name__zh { letter-spacing: var(--ls-name); }
.site-nav ul {
  display: flex;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.u-link {
  position: relative;
  display: inline-block;
  text-decoration: none;
  letter-spacing: var(--ls-nav);
}
.u-link::after {
  content: "";
  position: absolute;
  left: var(--hit-x, 0px);
  right: calc(var(--hit-x, 0px) + var(--ls-nav));
  bottom: calc(var(--hit-y, 0px) - 3px);
  height: 1px;
  background: currentColor;
  visibility: hidden;
}
.u-link[aria-current]::after { visibility: visible; }
@media (hover: hover) {   
  .u-link:hover::after { visibility: visible; }
}
.menu-btn, .menu-close {
  --hit-x: 10px;
  --hit-y: 11px;
  padding: var(--hit-y) var(--hit-x);
  margin: calc(-1 * var(--hit-y)) calc(-1 * var(--hit-x));
}
.menu-btn { display: none; }
.site-header__in { flex-wrap: wrap; }
.site-header__end {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0 24px;
  margin-left: auto;
}
@media (max-width: 719px) {
  .no-js .site-header__end { margin-left: 0; justify-content: flex-start; }   
  .site-header__in { padding-top: 22px; }
  .js .site-nav { display: none; }
  .js .menu-btn { display: inline-block; }
  .no-js .site-header__in { flex-wrap: wrap; }   
  .no-js .site-nav ul { flex-wrap: wrap; gap: 6px 22px; }
}
.snd {
  --hit-x: 10px;
  --hit-y: 11px;
  display: inline-block;
  padding: var(--hit-y) var(--hit-x);
  margin: calc(-1 * var(--hit-y)) calc(-1 * var(--hit-x));
  color: var(--ink-2);
  letter-spacing: var(--ls-nav);
}
.snd[hidden] { display: none; }
.snd__k { margin-right: .3em; }   
.snd__on, .snd__off { position: relative; display: inline-block; }
.snd__on::after, .snd__off::after {
  content: "";
  position: absolute;
  left: 0;
  right: var(--ls-nav);
  bottom: -3px;
  height: 1px;
  background: currentColor;
  visibility: hidden;
}
.snd[aria-pressed="true"] .snd__on, .snd[aria-pressed="false"] .snd__off { color: var(--ink); }
.snd[aria-pressed="true"] .snd__on::after, .snd[aria-pressed="false"] .snd__off::after { visibility: visible; }
.snd.is-waiting .snd__on { color: var(--ink-2); }
@media (hover: hover) and (pointer: fine) {
  .snd:hover { color: var(--ink); }
}
@media (min-width: 720px) {
  .site-header__end > .snd { margin-left: calc(48px - var(--hit-x) - 24px); }   
}
.menu {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0 0 64px;
  border: 0;
  background: var(--bg);
  color: var(--ink);
  overflow-y: auto;
}
.menu::backdrop { background: var(--bg); }
.menu:not([open]) { display: none; }
html.menu-open { overflow: hidden; }
.menu__list {
  list-style: none;
  margin: 0;
  padding: 52px 0 0;
}
.menu__list > li + li { margin-top: 22px; }
.menu__list > li > a { font-size: 15px; }
.menu__series {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}
.menu__series a {
  display: inline-block;
  padding: 5px 0;
  font-family: var(--f-display);
  font-size: var(--fs-list);
  line-height: var(--lh-list);
  letter-spacing: var(--ls-list);
  text-decoration: none;
}
.menu__series a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.site-footer { padding: 72px 0 36px; color: var(--ink-2); }
.site-footer ul { display: flex; flex-wrap: wrap; gap: 4px 2.2em; list-style: none; margin: 0; padding: 0; }
.site-footer li { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }   
.site-footer a { text-decoration: none; }
.site-footer a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.site-footer__label { margin-right: .6em; }
.dev {
  position: relative;
  display: block;
  background: var(--placeholder);
}
.dev img {
  display: block;
  width: 100%;
  height: auto;
}
.js .dev:not(.is-in) img { opacity: 0; }
.dev::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--bg);
  opacity: 0;
  pointer-events: none;
}
.dev.is-dev::after { opacity: var(--develop-from); }
.dev.is-dev.is-go::after { opacity: 0; transition: opacity var(--t-develop) var(--ease-develop); }
.dev.is-done { background: none; }
.dev.is-done::after { content: none; }
.zoom {
  transform-origin: 50% 50%;
  transition: transform var(--t-hover) var(--ease-out);
}
@media (hover: hover) and (pointer: fine) {
  [data-press]:hover > .zoom { transform: scale(var(--hover-scale)); }
}
[data-press] > .zoom.is-pressed { transform: scale(var(--press-scale)); transition-duration: var(--t-press); }
[data-press] > .zoom.is-bouncing { transition: none; }   
.home { padding: 88px 0 140px; }
.home__canvas {
  position: relative;
  height: 0;
  padding-top: var(--ratio);          
}
.home__item {
  position: absolute;
  left: var(--l);
  top: var(--t);
  width: var(--w);
  display: block;
}
@media (max-width: 1023px), (max-width: 1100px) and (orientation: portrait) {
  .home { padding: 64px 0 120px; }
  .home__canvas { height: auto; padding-top: 0; max-width: var(--column-max); margin-inline: auto; }
  .home__item { position: relative; left: auto; top: auto; width: var(--mw); margin-left: var(--mx); margin-top: var(--mg); }
}
@media (max-width: 719px) {
  .home { padding: 44px 0 96px; }
}
.site-header__end { position: relative; }   
.nav-drop { display: none; }
@media (hover: hover) and (pointer: fine) {
  .nav-works:hover > .nav-drop,
  .nav-works:focus-within > .nav-drop { display: block; animation: nyx-fade var(--t-drop) var(--ease-out) both; }
}
.nav-drop {
  position: absolute;
  right: 0;
  width: max-content;                  
  max-width: 560px;
  top: calc(100% + 8px);               
  z-index: 30;
  padding: 8px 184px 22px 40px;        
  background: var(--bg);
}
.nav-drop::before {                    
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -8px;
  height: 8px;
}
.site-nav .nav-series {
  display: block;
  text-align: right;
}
.nav-series li { display: block; position: relative; }   
.nav-series a {
  display: inline-block;
  padding: 3px 0;
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: var(--ls-list);
  text-decoration: none;
}
.nav-series a:hover,
.nav-series a[aria-current] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .32em; }
.nav-thumb {
  position: absolute;
  top: 6px;
  left: calc(100% + 24px);
  width: 160px;
  height: 160px;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--t-thumb) var(--ease-out), visibility 0s linear var(--t-thumb);
}
.nav-thumb img {
  display: block;
  width: auto;
  height: auto;
  max-width: 160px;
  max-height: 160px;
}
.nav-series li:nth-child(n+5):nth-last-child(-n+4) .nav-thumb { top: auto; bottom: 6px; align-items: flex-end; }
.nav-series li:last-child:nth-child(-n+4) { margin-bottom: 132px; }
.nav-series li:last-child:nth-child(5) { margin-bottom: 98px; }
.nav-series li:last-child:nth-child(6) { margin-bottom: 64px; }
.nav-series li:last-child:nth-child(7) { margin-bottom: 30px; }
.nav-series a:hover > .nav-thumb,
.nav-series a:focus-visible > .nav-thumb {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--t-thumb) var(--ease-out), visibility 0s;
}
@media (hover: hover) and (pointer: fine) {
  .nav-works:hover > a::before, .nav-works:focus-within > a::before {
    content: "";
    position: absolute;
    top: 50%;
    bottom: -10px;
    right: 100%;
    width: 200px;
  }
}
.works { padding: 96px 0 150px; }
.works__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 40% 40%;
  justify-content: space-between;
  row-gap: 40px;
}
.works__item {
  grid-column: var(--col);
  grid-row: var(--row) / span 2;
  align-self: start;
}
.works__a { display: block; text-decoration: none; }
.works__name {
  display: block;
  margin-top: 16px;
  font-size: var(--fs-list);
  line-height: var(--lh-list);
  letter-spacing: var(--ls-list);
}
@media (max-width: 719px) {
  .works { padding: 56px 0 110px; }
  .works__list { grid-template-columns: 100%; row-gap: 56px; }
  .works__item { grid-column: 1; grid-row: auto; }
  .works__name { margin-top: 12px; }
}
.series {
  container-type: inline-size;
  padding: 88px 0 120px;
}
.series__head { margin-bottom: 0; }
.series__title {
  margin: 0;
  font-size: var(--fs-title);
  line-height: var(--lh-title);
  letter-spacing: var(--ls-title);
  font-weight: normal;
}
.series__year {
  margin: 8px 0 0;
  color: var(--ink-2);
}
.series__text {
  max-width: 35em;
  margin-top: 44px;
}
.series__text p { margin: 0; }
.series__text p + p { margin-top: 1em; }
.catalog { color: var(--ink-2); }
.catalog p { margin: 0; word-break: keep-all; }   
.catalog__title { color: var(--ink); }
.catalog--head { margin-top: 36px; }
.catalog__text {             
  max-width: 35em;
  margin-top: 20px;
}
.catalog__text p { margin: 0; }
.catalog__text p + p { margin-top: 1em; }
.grp { margin-top: 12cqw; }
.series__head + .grp { margin-top: 9cqw; }
.grp__h {
  margin: 0 0 3.2cqw;
  font-size: var(--fs-small);
  line-height: var(--lh-small);
  letter-spacing: var(--ls-nav);
  font-weight: normal;
}
.grp__h--title {
  font-size: var(--fs-group);
  line-height: var(--lh-title);
  letter-spacing: var(--ls-title);
}
.grp > .lay + .lay, .grp > .lay + .seg, .grp > .seg + .lay, .grp > .seg + .seg {
  margin-top: calc(var(--rg, 8) * 1cqw);
}
.grp > .lay + .seg--catalog, .grp > .seg + .seg--catalog {
  
  margin-top: 5cqw;
}
.grp__links { list-style: none; margin: 3cqw 0 0; padding: 0; }
.grp__links a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.grp { --n: var(--n-d, 2); --cg: var(--cg-d, 10%); --rg: var(--rg-d, 10); --maxw: var(--maxw-d, 100%); }
@media (max-width: 1023px) {
  .grp { --n: var(--n-t, 2); --cg: var(--cg-t, 8%); --rg: var(--rg-t, 9); --maxw: var(--maxw-t, 100%); }
}
@media (max-width: 719px) {
  .grp { --n: var(--n-m, 1); --cg: var(--cg-m, 0%); --rg: var(--rg-m, 14); --maxw: var(--maxw-m, 100%); }
}
.lay__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: var(--justify, center);
  align-items: var(--align, center);
  column-gap: var(--cg);
  row-gap: 64px;
  row-gap: calc(var(--rg) * 1cqw);
  width: var(--maxw);
  margin-inline: auto;
}
.lay__cell {
  flex: 0 0 var(--cw-cell, calc((100% - (var(--n) - 1) * var(--cg)) / var(--n)));
  min-width: 0;
}
.lay--row .lay__grid { flex-wrap: nowrap; }
.lay--row .lay__cell { --cw-cell: var(--cw-d); }
@media (max-width: 1023px) {
  .lay--row .lay__cell { --cw-cell: var(--cw-t); }
}
@media (max-width: 719px) {
  .lay--row .lay__grid { flex-wrap: wrap; }
  .lay--row .lay__cell { --cw-cell: 100%; }
}
.fig { position: relative; margin: 0 auto; }
.lay .fig { width: min(var(--f), calc(var(--cap-grid) * var(--r))); }
@media (max-width: 719px) {
  .lay--m1 .fig { width: min(var(--fm), calc(var(--cap-grid) * var(--r))); }
}
.fig--full { width: min(calc(var(--s, 1) * 100%), calc(var(--cap-full) * var(--r))); }
.fig--center { width: min(calc(var(--s, 1) * var(--center-w)), calc(var(--cap-center) * var(--r))); }
.fig__a { display: block; cursor: zoom-in; }   
.fig__cap { margin-top: 14px; }
.fig__label { margin: 0; color: var(--ink-2); word-break: keep-all; }
.lay--labels .fig { padding-bottom: 2.6em; }
.lay--labels .fig__cap--label { position: absolute; left: 0; right: 0; top: calc(100% - var(--lh-small) * 1em); margin: 0; }
.lay--labels.is-tall-labels .fig, :root.translated-ltr .lay--labels .fig, :root.nyx-translated .lay--labels .fig,
:root:not(:lang(zh)) .lay--labels .fig { padding-bottom: 0; }
.lay--labels.is-tall-labels .fig__cap--label, :root.translated-ltr .lay--labels .fig__cap--label, :root.nyx-translated .lay--labels .fig__cap--label,
:root:not(:lang(zh)) .lay--labels .fig__cap--label { position: static; margin-top: 14px; }
.seg--catalog .catalog { max-width: 35em; }
.series__pn {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 14cqw;
}
.pn { display: flex; flex-direction: column; gap: 6px; text-decoration: none; }
.pn--next { margin-left: auto; align-items: flex-end; text-align: right; }
.pn__k { color: var(--ink-2); letter-spacing: var(--ls-nav); }
.pn__t { font-size: var(--fs-list); line-height: var(--lh-list); letter-spacing: var(--ls-list); }
.pn:hover .pn__t { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
@media (max-width: 719px) {
  .series { padding: 52px 0 96px; }
  .series__text { margin-top: 32px; }
  .grp { margin-top: 88px; }
  .series__head + .grp { margin-top: 64px; }
  .grp__h { margin-bottom: 20px; }
  .grp > .lay + .seg--catalog, .grp > .seg + .seg--catalog { margin-top: 36px; }
  .series__pn { margin-top: 96px; flex-direction: column; gap: 28px; }   
}
html.lb-open { overflow: hidden; }
.lb {
  --lb-top: 64px;
  --lb-bottom: 72px;
  --lb-side: 88px;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--bg);
  color: var(--ink);
  overflow: hidden;
  overscroll-behavior: contain;
}
.lb::backdrop { background: var(--bg); }
.lb:focus { outline: none; }        
.lb:not([open]) { display: none; }
.lb[open] { animation: nyx-fade var(--t-lb) var(--ease-out) both; }
.lb__stage {
  position: absolute;
  top: var(--lb-top);
  bottom: var(--lb-cap-h, var(--lb-bottom));     
  left: var(--lb-side);
  right: var(--lb-side);
  overflow: hidden;
  touch-action: none;
}
.lb__frame {
  position: absolute;
  display: block;
  padding: 0;
  background: var(--placeholder);
  cursor: default;
  -webkit-user-select: none;
  user-select: none;
}
.lb__frame.has-preview { background: none; }
.lb__frame.can-zoom { cursor: zoom-in; }
.lb__frame.is-zoomed { cursor: grab; }
.lb__frame.is-dragging { cursor: grabbing; }
.lb__frame > img, .lb__frame > .dev {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.lb__frame img {
  display: block;
  width: 100%;
  height: 100%;
  -webkit-user-drag: none;
  pointer-events: none;
}
.lb__frame:focus-visible { outline: 1px solid var(--ink); outline-offset: 6px; }
.lb__cap {
  position: absolute;
  left: var(--lb-side);
  right: var(--lb-side);
  bottom: 0;
  height: var(--lb-cap-h, var(--lb-bottom));
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-2);
  text-align: center;
}
.lb__cap-in {                    
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 0 2.4em;
}
.lb__text { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.2em; }
.lb__text span { word-break: keep-all; }          
.lb__text .nw, .lb__count { white-space: nowrap; } 
.lb__close {
  --hit-x: 10px;
  --hit-y: 11px;
  position: absolute;
  top: 22px;
  right: max(20px, 5vw);
  padding: var(--hit-y) var(--hit-x);
  margin: calc(-1 * var(--hit-y)) calc(-1 * var(--hit-x));
}
.lb__nav {
  position: absolute;
  top: 50%;
  width: 64px;
  height: 112px;
  margin-top: -56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
}
.lb__prev { left: 12px; }
.lb__next { right: 12px; }
.lb__nav[disabled] { visibility: hidden; }
@media (hover: hover) and (pointer: fine) {
  .lb__nav:hover svg path { stroke-width: 1.6; }
}
@media (max-width: 719px) {
  .lb { --lb-top: 56px; --lb-bottom: 76px; --lb-side: 16px; }
  .lb__close { top: 18px; right: 20px; }
  .lb__nav { top: auto; bottom: 14px; margin-top: 0; width: 48px; height: 48px; }
  .lb__nav svg { width: 14px; height: 28px; }
  .lb__prev { left: 4px; }
  .lb__next { right: 4px; }
  .lb__cap { left: 52px; right: 52px; }
  .lb__cap-in { gap: 0 1.6em; }
  .lb__text { gap: 0 .9em; }
}
.ext { margin-left: .3em; text-decoration: none; display: inline-block; }
.lbl { margin-right: .6em; }   
.about { padding: 88px 0 150px; }
.about__col { width: min(100%, var(--col-text)); }
.about__portrait { margin: 0; width: var(--portrait-w); }   
.about__bio { margin-top: 64px; }
.about__text p { margin: 0; }
.about__text p, .cv__year li, .nw-item__text, .nw-item__title { text-wrap: pretty; }
.about__text p + p { margin-top: 1em; }
.about__h {                    
  margin: 0 0 26px;
  font-size: var(--fs-small);
  line-height: var(--lh-small);
  letter-spacing: var(--ls-nav);
  font-weight: normal;
}
.cv { margin-top: 104px; }
.cv__list { margin: 0; font-size: var(--fs-cv); line-height: var(--lh-cv); }
.cv__year {
  display: grid;
  grid-template-columns: var(--cv-year-w) minmax(0, 1fr);
  column-gap: var(--cv-gap);
  padding: 15px 0 16px;
  border-top: 1px solid var(--line);   
}
.cv__year:first-child { border-top: 0; padding-top: 0; }
.cv__year dt { letter-spacing: .02em; }
.cv__year dd { margin: 0; }
.cv__year ul { list-style: none; margin: 0; padding: 0; }
.cv__year li + li { margin-top: var(--cv-li-gap); }
@media (min-width: 720px) {
  .about__col { width: min(100%, calc(var(--col-text) + var(--hang))); padding-left: var(--hang); }
  .cv__list, .cv .about__h { margin-left: calc(-1 * var(--hang)); }
  .cv__list { width: calc(100% + var(--hang)); }
}
.pubs { padding: 96px 0 150px; }
.pubs__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: var(--pub-col) var(--pub-col);
  column-gap: var(--pub-gap);
  justify-content: start;
  row-gap: 40px;
}
.pub { grid-column: var(--col); grid-row: var(--row) / span 2; align-self: start; min-width: 0; }
.pub__fig { margin: 0; }
.pub__cover { display: block; }
.pub__credit { margin-top: 8px; color: var(--ink-2); }
.pub__text { margin-top: 18px; color: var(--ink-2); }
.pub__text p { margin: 0; }
.pub__title {                 
  margin: 0 0 4px;
  color: var(--ink);
  font-size: var(--fs-list);
  line-height: 1.65;
  letter-spacing: var(--ls-body);
  font-weight: normal;
}
.pubs__pages { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pubs__pages li { width: 64px; }
.js:not(.no-lb) .pubs__pages { display: none; }   
.news { padding: 96px 0 150px; }
.news__list { list-style: none; margin: 0; padding: 0; width: min(100%, var(--col-text)); }
.nw-item { padding: 48px 0 52px; border-top: 1px solid var(--line); }
.nw-item:first-child { border-top: 0; padding-top: 0; }
.nw-item:last-child { padding-bottom: 0; }
.nw-item article > :first-child { margin-top: 0; }
.nw-item__date { margin: 0; color: var(--ink-2); }
.nw-item__title {
  margin: 8px 0 0;
  font-size: var(--fs-news-title);
  line-height: 1.7;
  letter-spacing: var(--ls-body);
  font-weight: normal;
}
.nw-item__title a { text-decoration: none; }
.nw-item__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.nw-item__imgs { margin-top: 26px; container-type: inline-size; }
.nw-slides > .nw-slide + .nw-slide { margin-top: 24px; }   
.nw-slide { margin: 0; width: min(100%, calc(var(--news-img-h) * var(--r))); }
.nw-slide__credit { margin-top: 8px; color: var(--ink-2); width: max-content; max-width: 100cqw; }   
.nw-item__text { margin: 22px 0 0; }
.nw-item__src { margin: 14px 0 0; color: var(--ink-2); }
.nw-item__src a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.is-paged .nw-slides { display: grid; touch-action: pan-y; }   
.is-paged .nw-slides > .nw-slide { grid-area: 1 / 1; align-self: start; margin-top: 0; visibility: hidden; }
.is-paged .nw-slides > .nw-slide.is-on { visibility: visible; }
.is-paged .nw-slide { width: min(100%, calc(min(var(--news-img-h), 100cqw / var(--box-r)) * var(--r))); }
.nw-pager { display: flex; align-items: baseline; gap: 1.6em; margin: 14px 0 0; }
.nw-pager[hidden] { display: none; }
.nw-pager__count { color: var(--ink-2); min-width: 3em; }
.nw-pager button[aria-disabled="true"] { color: var(--ink-3); cursor: default; }   
.nw-pager button[aria-disabled="true"]::after { visibility: hidden; }
.nw-slide__a { display: block; }   
.contact { padding: 96px 0 160px; }
.contact__list { margin: 0; width: min(100%, var(--col-text)); font-size: var(--fs-contact); line-height: 1.8;
  display: grid; grid-template-columns: minmax(var(--cv-year-w), max-content) minmax(0, 1fr); column-gap: var(--cv-gap); row-gap: 12px; align-items: baseline; }
.contact__row { display: contents; }
.contact__row dt { color: var(--ink-2); font-size: var(--fs-small); letter-spacing: var(--ls-nav); }
.contact__row dd { margin: 0; overflow-wrap: anywhere; }
.contact__row a { text-decoration: none; }
.contact__row a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .3em; }
@media (max-width: 719px) {
  .about { padding: 52px 0 110px; }
  .about__portrait { width: var(--portrait-w-m); }
  .about__bio { margin-top: 44px; }
  .cv { margin-top: 72px; }
  .about__h { margin-bottom: 18px; }
  .cv__year { grid-template-columns: minmax(0, 1fr); row-gap: 6px; }   
  .pubs { padding: 56px 0 110px; }
  .pubs__list { grid-template-columns: var(--pub-col-m); justify-content: start; row-gap: 72px; }
  .pub { grid-column: 1; grid-row: auto; }
  .news { padding: 56px 0 110px; }
  .nw-item { padding: 40px 0 44px; }
  :root { --fs-news-title: 17px; }
  .contact { padding: 56px 0 120px; }
}
.notfound { padding: 120px 0 200px; }
.notfound p { margin: 0; }
.notfound a { margin-left: 2em; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .35em; }
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root),
  ::view-transition-new(root) { animation-duration: 200ms; }
}
:root.is-loading, :root.is-loading * { cursor: progress; }
main { transition: opacity 200ms var(--ease-out); }
:root.is-loading-slow main { opacity: .5; }
@media (prefers-reduced-motion: reduce) {
  .zoom, [data-press] > .zoom { transition: none; transform: none !important; }
  .js .dev:not(.is-in) img { opacity: 1; }
  .dev::after { content: none; }
  .nav-works:hover > .nav-drop, .nav-works:focus-within > .nav-drop, .lb[open] { animation: none; }
  .nav-thumb, .nav-series a:hover > .nav-thumb, .nav-series a:focus-visible > .nav-thumb { transition: none; }
  main { transition: none; }
}
