/* Unified Latin face: every 'Cormorant' reference now resolves to the nav font (Arial). CJK falls through to the Noto stacks. */
@font-face{font-family:Cormorant;src:local('Arial'),local('ArialMT'),local('Helvetica Neue'),local('Helvetica'),local('Liberation Sans');unicode-range:U+0000-024F,U+1E00-1EFF,U+2000-206F,U+2190-21FF,U+20AC}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#11100e;color:#e9e4d9;font-family:Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:focus-visible,a:focus-visible{outline:1px solid #e4cba0;outline-offset:6px}header{position:absolute;z-index:5;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:34px 3.4%;background:linear-gradient(#090909aa,transparent)}.brand{font-family:Cormorant,Georgia,serif;font-size:clamp(23px,2.6vw,42px);letter-spacing:.18em;white-space:nowrap}nav{display:flex;gap:32px}nav a,.eyebrow,.hero-bottom,#filters,.caption,.text-link,footer span,footer>a:last-child{font-size:10px;letter-spacing:.17em}nav a{padding:12px 0}nav a:hover{color:#d7b987}#menu{display:none}.hero{position:relative;overflow:hidden}.scene{position:relative;width:100%;aspect-ratio:1.6;transform:translate(var(--mx,0px),var(--my,0px)) scale(1.012);transition:transform .9s ease-out}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover}.shade{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background:linear-gradient(180deg,#0002,transparent 25%,transparent 70%,#11100e 100%);pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);padding:12px 18px;min-height:44px;font-family:Cormorant,Georgia,serif;font-size:clamp(10px,1vw,16px);letter-spacing:.2em;white-space:nowrap;text-shadow:0 2px 8px #000;background:#08070630;border:1px solid transparent;transition:.3s}.hotspot:after{content:'↗';display:inline-block;margin-left:10px;opacity:0}.hotspot:hover,.hotspot:focus-visible{background:#13100cdc;border-color:#bda783}.hotspot:hover:after,.hotspot:focus-visible:after{opacity:1}.hero-bottom{position:absolute;bottom:32px;left:3.5%;right:3.5%;display:flex;align-items:center;justify-content:space-between;color:#c2bbae;font-size:9px}.hero-bottom button{font-size:9px;letter-spacing:.15em;color:#bbb}.section{padding:76px 4.5%;border-top:1px solid #ffffff15}.section-head{display:flex;justify-content:space-between;align-items:center}.eyebrow{color:#b5a489;margin:0 0 15px;font-size:9px}h1,h2{font-family:Cormorant,Georgia,serif;font-weight:400;font-size:clamp(36px,4.5vw,72px);line-height:1.03;margin:14px 0 24px}.caption{color:#9e978b;font-size:10px;letter-spacing:.07em;margin:28px 0 0;line-height:1.8}#filters{display:flex;gap:25px;flex-wrap:wrap;margin:5px 0 35px}#filters button{padding:10px 0;border-bottom:1px solid transparent;font-size:10px;letter-spacing:.12em;color:#a29b8f}#filters button[aria-pressed=true]{color:#e6ddcb;border-color:#c2ac87}#grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}.card{text-align:left;padding:0;min-width:0}.card img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.35);transition:filter .5s,transform .6s}.frame{overflow:hidden;background:#1e1d19}.card:hover img{transform:scale(1.045);filter:saturate(.7)}.card h3{font-family:Cormorant,Georgia,serif;font-size:20px;font-weight:400;letter-spacing:.05em;margin:18px 0 8px}.card p{font-size:9px;letter-spacing:.16em;color:#9d9383}.archive{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;background:#151411;padding-top:110px;padding-bottom:110px}.archive h2{font-size:clamp(38px,4.2vw,68px)}.copy{font-size:12px;color:#aaa397;line-height:2.2;margin:30px 0}.text-link{display:inline-block;border-bottom:1px solid #71644f;padding:18px 0}.text-link:hover{color:#d5b785}.composition{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.composition img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:grayscale(.5)}.composition img:nth-child(2){margin-top:90px}.composition span{font-size:8px;letter-spacing:.2em;color:#9e9585}.information{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:100px;padding-bottom:110px}.information h2{font-size:56px}footer{display:flex;align-items:center;justify-content:space-between;padding:40px 4.5%;border-top:1px solid #ffffff18}footer .brand{font-size:22px}footer span,footer>a:last-child{font-size:8px;color:#aaa08e}.skip{position:fixed;left:15px;top:-70px;z-index:30;background:#171612;padding:15px}.skip:focus{top:15px}dialog{padding:0;border:1px solid #70604a;background:#161512;color:#ece5d8;width:min(820px,90vw);max-height:90vh;max-height:90dvh;overflow:auto}dialog[open]{display:grid;grid-template-columns:1fr 1fr}dialog::backdrop{background:#000b;backdrop-filter:blur(9px)}dialog>img{width:100%;height:100%;min-height:440px;object-fit:cover}.detail-copy{padding:70px 35px 40px}.detail-copy h2{font-size:42px}#close{position:absolute;right:14px;top:14px;width:36px;height:36px;background:#171512cc;z-index:2}.no-scroll{overflow:hidden}@media(max-width:800px){header{padding:24px 5%}.brand{font-size:24px}#menu{display:block;font-size:10px;letter-spacing:.16em}nav{display:none;position:absolute;left:0;right:0;top:74px;background:#11100ef5;padding:25px;flex-direction:column;gap:10px}nav.open{display:flex}.hero{padding-top:65px}.hotspot{font-size:11px;padding:10px 6px}.hotspot:after{display:none}.hero-bottom{position:relative;bottom:auto;left:auto;right:auto;padding:10px 5% 26px;font-size:8px}.hero-bottom>span{display:none}.section{padding:50px 6%}#grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}#filters{gap:15px;margin-bottom:25px}#filters button{font-size:9px}.archive{grid-template-columns:1fr;gap:40px}.composition img:nth-child(2){margin-top:50px}.information{grid-template-columns:1fr;gap:65px}.information h2{font-size:46px}footer{flex-wrap:wrap;gap:25px}footer .brand{width:100%}dialog[open]{grid-template-columns:1fr}dialog>img{height:260px;min-height:0}.detail-copy{padding:25px}.detail-copy h2{font-size:34px}}@media(max-width:520px){.scene{aspect-ratio:.85}.hero-image{object-position:48% center;opacity:.8}.hotspot{position:relative!important;left:auto!important;top:auto!important;transform:none!important;display:block;width:max-content;margin:5px 0;background:#11100eb5;font-size:12px;border:1px solid #ffffff35;padding:10px 14px}#hotspots{position:absolute;left:6%;bottom:7%;display:flex;flex-direction:column}.shade{background:linear-gradient(90deg,#0006,transparent)}.hero-bottom{padding-top:17px}.hero{padding-top:75px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.scene{transform:none}}
/* Shadow: quieter lighting, low platforms, compact collection transition. */
header{background:linear-gradient(#09090930,transparent)}.scene{transform:none;transition:transform .9s ease-out}.shade{background:linear-gradient(180deg,transparent 75%,#11100e 100%)}.hero-bottom{bottom:22px}.hotspot{background:transparent;padding:8px 10px;font-size:clamp(10px,.9vw,15px)}#projects{padding-top:36px}.section-head h1{font-size:30px;letter-spacing:.13em;text-transform:uppercase}.section-head .eyebrow{display:none}.section-head{border-bottom:1px solid #ffffff25;margin-bottom:16px}.section-head .caption{margin:0 0 20px}@media(max-width:520px){.hotspot{background:#11100eb5;padding:10px 14px}.hero-bottom{bottom:auto}.hero-image{object-position:35% center}}
/* Soft theatrical lighting. All layers share the image's exact crop. */
.hero-image{filter:brightness(.44);transition:filter .5s}.scene{isolation:isolate}.exhibit-light{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1;opacity:0;filter:brightness(1.3) contrast(1.06) saturate(.75);will-change:opacity}.stage-light-canvas{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.shade{z-index:3}#hotspots{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;z-index:4}.hotspot{transform:none;display:flex;align-items:flex-end;justify-content:center;padding:0 0 8px;border:0!important;background:none!important;text-shadow:0 1px 6px #000,0 0 14px rgba(231,209,168,var(--glow,0));white-space:nowrap;transition:color .3s;text-align:center}.hotspot:after{display:none}.hotspot:hover,.hotspot:focus-visible{color:#fff0cf}.hotspot:focus-visible{outline:1px solid #e6d2a455;outline-offset:2px}.hero-bottom{z-index:5}@media(max-width:520px){#hotspots{top:auto;right:auto;bottom:auto;left:auto;inset:auto;left:6%;bottom:7%}.hotspot{height:auto!important;width:max-content!important;min-height:44px;padding:10px 14px;background:#11100eb5!important;border:1px solid #ffffff35!important}.exhibit-light{object-position:35% center}.stage-light-canvas{opacity:.5}}@media(prefers-reduced-motion:reduce){.exhibit-light{will-change:auto}}
/* Keep keyboard location visible without outlining the full invisible hit area. */
.hotspot:focus-visible{outline:none}.hotspot:focus-visible:before{content:'';position:absolute;bottom:3px;width:64px;height:1px;background:#e6d2a4;box-shadow:0 0 10px #e6d2a470}
/* Almost no environmental fill: only moon-facing surfaces catch light. */
.hero{background:#010101}.hero-image{filter:grayscale(1) brightness(.012);transition:none}.exhibit-light{filter:brightness(1.4) contrast(1.08) saturate(.75)}
.eclipse-emission,.eclipse-crown{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:0;will-change:opacity}
/* Emissive layers add light instead of painting dark image pixels over it. */
.eclipse-emission{filter:brightness(1.7) saturate(.8);opacity:.8;mix-blend-mode:screen}
.eclipse-crown{filter:brightness(3.8) saturate(.8);opacity:.95;mix-blend-mode:screen;mask-image:var(--moon-aperture),radial-gradient(ellipse var(--crown-width,200px) var(--crown-height,120px) at var(--crown-x,50%) var(--crown-y,12%),#000 5%,#000b 40%,#0000 100%);mask-composite:intersect;-webkit-mask-composite:source-in;-webkit-mask-image:var(--moon-aperture),radial-gradient(ellipse var(--crown-width,200px) var(--crown-height,120px) at var(--crown-x,50%) var(--crown-y,12%),#000 5%,#000b 40%,#0000 100%)}
.eclipse-bloom{filter:brightness(4.2) saturate(.65) blur(var(--bloom-blur,9px))}
@media(max-width:520px){.eclipse-emission,.eclipse-crown{object-position:35% center}.stage-light-canvas{opacity:1}}
@media(prefers-reduced-motion:reduce){.eclipse-emission,.eclipse-crown{will-change:auto}}
/* The traced vector wordmark stays crisp at every display density. */
.brand{display:inline-flex;align-items:center;flex:0 0 auto;font-size:0;letter-spacing:0}
.brand-mark{display:block;width:clamp(210px,22vw,288px);aspect-ratio:224/26;overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
footer .brand{font-size:0}footer .brand-mark{width:230px}
@media(max-width:800px){header .brand-mark{width:min(210px,58vw)}}
/* Preserve the full structural heel and pointed toe in the supplied shoe photo. */
.card img[src$="footwear-structural-boot.png"],#detail-image[src$="footwear-structural-boot.png"]{object-fit:contain;background:#242321}
/* Show the isolated sculpture in full, including its crown and radial halo. */
.card img[src$="figures-halo-cutout.png"],#detail-image[src$="figures-halo-cutout.png"],.composition img[src$="figures-halo-cutout.png"]{object-fit:contain;background:#080909;padding:10px}
/* Keep the new second exhibit's ears and flowing robe inside its preview. */
.card img[src$="second-display-masked-figure.png"],#detail-image[src$="second-display-masked-figure.png"]{object-fit:contain;background:#080909;padding:10px}
.card img[src$="figures-spine-bag-front.png"],#detail-image[src$="figures-spine-bag-front.png"]{object-fit:contain;background:#080909;padding:12px}
.card img[src$="interior-silver-cone-chair.png"],#detail-image[src$="interior-silver-cone-chair.png"]{object-fit:contain;background:#080909;padding:12px}
.card img[src$="art-film-narrative-orb.png"],#detail-image[src$="art-film-narrative-orb.png"]{object-fit:contain;background:#080909;padding:12px}
/* Native image layers preserve each exhibit's source resolution on dense screens. */
.material-base{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;pointer-events:none;z-index:0;filter:grayscale(1) brightness(.012)}
.scene-plate{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;object-fit:cover}
.scene-object{position:absolute;max-width:none;object-fit:fill}
.figure-contact-shadow{position:absolute;pointer-events:none}
.material-base,.exhibit-light{overflow:hidden}
.exhibit-light .scene-object{filter:brightness(.8)}
.exhibit-light .scene-object[src$="fashion-detail-cutout.png"]{filter:brightness(.57)}
@media(max-width:520px){.scene-plate{object-position:35% center}}
/* Category lettering shares the wordmark's geometric, open monoline forms. */
/* The crescent is a quiet master switch for the five inspection lights. */
nav{align-items:center}
.moon-switch{display:grid;place-items:center;width:44px;height:44px;flex:none;margin:-4px -10px -4px -12px;padding:10px;color:#b9b2a6;border-radius:50%;transition:color .3s,background .3s}
.moon-switch svg{width:24px;height:24px;overflow:visible;fill:transparent;stroke:currentColor;stroke-width:1;stroke-linejoin:round;transition:fill .3s,filter .3s}
.moon-switch:hover{color:#f0e2ca;background:#e8d8b608}
.moon-switch[aria-pressed="true"]{color:#f3e4c7}
.moon-switch[aria-pressed="true"] svg{fill:#e8d8b622;filter:drop-shadow(0 0 5px #f1d8a980)}
@media(max-width:800px){nav{align-items:stretch}.moon-switch{align-self:flex-start;margin:0 0 0 -10px}}
@media(prefers-reduced-motion:reduce){.moon-switch,.moon-switch svg{transition:none}}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.brand-lettering{--lettering-height:16px;display:inline-block;width:calc(var(--lettering-height)*var(--lettering-ratio));max-width:100%;aspect-ratio:var(--lettering-ratio);vertical-align:middle;line-height:0;letter-spacing:0}
.brand-lettering svg{display:block;width:100%;height:100%;overflow:visible;shape-rendering:geometricPrecision}
/* The spotlight's frame-by-frame intensity also drives the caption's opacity. */
.hotspot .plinth-label{--lettering-height:inherit;position:absolute;left:var(--caption-x);top:var(--caption-y);max-width:none;transform:translate(-50%,-50%) rotate(var(--caption-angle));pointer-events:none;opacity:var(--glow,0);filter:drop-shadow(0 1px 2px #000)}
.hotspot:focus-visible:before{display:none}
.hotspot:focus-visible .plinth-label:after{content:'';position:absolute;left:50%;bottom:-4px;transform:translateX(-50%);width:70%;height:1px;background:#e6d2a4}
#filters .brand-lettering{--lettering-height:11px}
.card h3{line-height:1.25}
.card h3 .brand-lettering{--lettering-height:18px}
.detail-copy h2 .brand-lettering{--lettering-height:30px}
@media(max-width:520px){.hotspot .plinth-label{--lettering-height:12.6px;position:relative;left:auto;top:auto;transform:none}.card h3 .brand-lettering{--lettering-height:16px}.detail-copy h2 .brand-lettering{--lettering-height:25px}}

@media(max-width:520px),(hover:none){.hotspot .plinth-label{opacity:1}}

/* Hamburger menu at the far right of the navigation. */
header{position:absolute}
#menu{display:grid!important;align-content:center;gap:6px;width:44px;height:44px;margin:-4px -10px -4px 4px;padding:0 10px;color:#e9e4d9}
#menu span{display:block;height:1px;background:currentColor;transition:transform .3s,opacity .3s}
#menu:hover{color:#f0e2ca}
#menu[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#menu[aria-expanded=true] span:nth-child(2){opacity:0}
#menu[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
#menu-panel{position:absolute;top:calc(100% - 14px);right:3.4%;z-index:6;display:none;flex-direction:column;min-width:260px;padding:14px 26px 22px;background:#0e0d0bf2;border:1px solid #ffffff1c;backdrop-filter:blur(8px)}
#menu-panel.open{display:flex}
#menu-panel a{padding:14px 0;border-bottom:1px solid #ffffff12;font-family:Cormorant,Georgia,serif;font-size:20px;letter-spacing:.18em;color:#e9e4d9}
#menu-panel a:hover{color:#d7b987}
#menu-panel .menu-mail{margin-top:16px;font-size:10px;letter-spacing:.1em;color:#9e978b}
@media(max-width:800px){nav{display:flex!important;position:static;padding:0;background:none;flex-direction:row;align-items:center;gap:6px}nav>a{display:none}.moon-switch{align-self:center;margin:0}#menu{margin:0 -10px 0 0}#menu-panel{top:100%;left:0;right:0;min-width:0;padding:8px 6% 22px;border-left:0;border-right:0}}
@media(prefers-reduced-motion:reduce){#menu span{transition:none}}
#menu-panel{max-height:calc(100vh - 110px);overflow:auto}
#menu-panel .menu-label{margin:14px 0 2px;font-size:9px;letter-spacing:.24em;color:#b5a489}
#menu-fields{display:flex;flex-direction:column}
#menu-panel .menu-field{padding:11px 0;border-bottom:1px solid #ffffff12;text-align:left;font-family:Cormorant,Georgia,serif;font-size:17px;letter-spacing:.2em;color:#cfc8b9}
#menu-panel .menu-field:hover{color:#d7b987}
#menu-panel a{padding:11px 0;font-size:17px}
#menu-panel{scrollbar-width:none;padding-top:6px;padding-bottom:16px}#menu-panel::-webkit-scrollbar{display:none}
#menu-panel .menu-field,#menu-panel a{padding:8px 0;font-size:15px}
#menu-panel .menu-label{margin:10px 0 0}
#menu-panel .menu-mail{margin-top:12px}

#menu-fields .menu-field:last-child{border-bottom:0}

/* Mobile exhibition: full panorama above a separate touch-friendly field index. */
@media(max-width:520px){
 .hero{padding-top:78px}
 .hero .scene{aspect-ratio:1585/992;margin-bottom:208px;transform:none!important}
 .hero .hero-image,.hero .scene-plate,.hero .eclipse-emission,.hero .eclipse-crown{object-position:50% center}
 .hero .material-base{filter:grayscale(1) brightness(.28)}
 .hero #hotspots{top:auto;right:6%;bottom:auto;left:6%;inset:auto 6% auto;top:calc(100% + 16px);display:grid;grid-template-columns:1fr 1fr;gap:0 18px;counter-reset:field}
 .hero .hotspot{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:58px!important;min-width:0;margin:0;padding:0!important;display:flex;align-items:center;justify-content:flex-start;gap:9px;background:transparent!important;border:0!important;border-bottom:1px solid #ffffff24!important;text-align:left;counter-increment:field}
 .hero .hotspot::before{content:'0' counter(field);position:static;width:auto;height:auto;background:none;box-shadow:none;font:9px Arial,sans-serif;letter-spacing:.05em;color:#89857b}
 .hero .hotspot .plinth-label{--lettering-height:10px;position:relative;left:auto;top:auto;transform:none;opacity:1;filter:none}
 .hero .hotspot:focus-visible{outline:1px solid #b9aa8a;outline-offset:2px}
 .hero .hotspot:hover{color:#f0e2c9;background:#ffffff05!important}
 .hero .hero-bottom{padding:16px 6% 25px}
}

/* WeChat / older Chromium WebViews (< Chrome 120) only understand -webkit-mask-*: prefixed copies above. If masks are not supported at all, drop the masked light layers instead of washing out the stage. */
@supports not ((mask-image:radial-gradient(black,transparent)) or (-webkit-mask-image:radial-gradient(black,transparent))){.eclipse-emission,.eclipse-crown,.exhibit-light{display:none!important}}

/* Audit 2026-10-02 — older engines (iOS < 15, Chromium < 88 WebViews): the hero and logo get their height from aspect-ratio only. */
@supports not (aspect-ratio:1/1){.hero .scene{height:0;padding-top:62.587%}.hero-image{top:0;left:0}.brand-mark{height:auto}.brand-mark img{height:auto}}
.no-dialog dialog:not([open]){display:none}.no-dialog dialog[open]{display:block;position:fixed;top:5vh;left:0;right:0;margin:0 auto;z-index:1000}
