@font-face{font-family:Helvetica;src:url('/assets/fonts/helvetica-neue-medium-subset.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Helvetica;src:url('/assets/fonts/helvetica-neue-ultralight-subset.woff2') format('woff2');font-weight:100;font-display:swap}
@font-face{font-family:Helvetica;src:url('/assets/fonts/helvetica-neue-thin-subset.woff2') format('woff2');font-weight:200;font-display:swap}
@font-face{font-family:Helvetica;src:url('/assets/fonts/helvetica-neue-light-subset.woff2') format('woff2');font-weight:300;font-display:swap}
:root{--u:1;--s:1;--frame-left:0px;--frame-top:0px;--ui-left:0px;--ui-edge:calc(38.6521px * var(--s));--ease:cubic-bezier(.18,.76,.22,1);--spring:cubic-bezier(.18,1.16,.36,1);--settle:cubic-bezier(.2,.85,.25,1);--cursor:url('/assets/cursor.png') 2 0,auto;--cursor-active:url('/assets/cursor-active.png') 2 0,pointer}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#104a60}
body{color:#fdfdfd;font-family:Helvetica,'Source Han Sans';font-weight:400;cursor:var(--cursor);-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:var(--cursor-active);-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:focus-visible{outline:2px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px #10293580}
button[aria-disabled=true]{cursor:var(--cursor)}
[hidden]{display:none!important}
img{display:block;user-select:none;-webkit-user-drag:none}
main{position:relative;width:100%;height:100%;isolation:auto;outline:none}
/* Full-bleed ocean; uniform subjects are centered and UI follows the window edges. */
.ocean{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.ocean img,.ocean video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ocean video{opacity:0;transition:opacity 300ms}.ocean video.playing{opacity:1}
.topbar{position:absolute;z-index:60;left:0;top:0;width:100%;height:calc(76px * var(--s));pointer-events:none}
.brand,.brand-passive{position:absolute;left:0;top:0;width:calc(330px * var(--s));height:calc(72px * var(--s));white-space:nowrap;pointer-events:auto;transition:opacity 220ms var(--ease)}
.brand-passive{pointer-events:none}
.brand img,.brand-passive img{position:absolute;left:var(--ui-edge);top:calc(38.6523px * var(--s));width:calc(28.5px * var(--s));height:calc(20.921px * var(--s));object-fit:contain}
.brand:hover{opacity:.86}.brand:active{opacity:.72}
.ui-label{position:absolute;display:block;line-height:0;white-space:nowrap;pointer-events:none;transition:top 440ms var(--spring),left 440ms var(--spring)}
.ui-label svg{display:block;overflow:visible;width:1px;height:1px;transform:scale(var(--s));transform-origin:0 0;pointer-events:none}
.ui-label text{fill:currentColor;font-family:inherit;font-size:inherit;font-weight:inherit;font-kerning:normal}
/* The browse position is the fixed brand anchor in every experience phase. */
.brand .ui-label,.brand-passive .ui-label{left:calc(93.283985px * var(--s));top:calc(55.514px * var(--s));transition:none}
#navigation{position:absolute;left:var(--ui-left);top:0;width:calc(1920px * var(--s));height:100%;pointer-events:none}
.nav-item{position:absolute;top:calc(27px * var(--s));height:calc(40px * var(--s));opacity:0;white-space:nowrap;pointer-events:auto;transition:transform 440ms var(--spring)}
.nav-item[data-preview=about]{left:calc(1495.041px * var(--s));width:calc(106px * var(--s))}
.nav-item[data-preview=catalog]{left:calc(1637.234px * var(--s));width:calc(153px * var(--s))}
.nav-item:after{content:'';position:absolute;bottom:0;left:0;right:0;height:calc(1px * var(--s));background:currentColor;transform-origin:right;transform:scaleX(0);transition:transform 440ms var(--spring)}
.nav-item:hover{transform:translateY(calc(-1px * var(--s)))}.nav-item:hover:after,.nav-item:focus-visible:after{transform:scaleX(1)}.nav-item:active{transform:scale(.98)}
.filter{position:absolute;left:calc(1847.48015px * var(--s));top:calc(38.777797px * var(--s));width:calc(33.86782px * var(--s));height:calc(24.843913px * var(--s));mix-blend-mode:overlay;opacity:0;pointer-events:auto;transition:transform 440ms var(--spring)}
.filter img{width:100%;height:100%;object-fit:fill;filter:brightness(0) invert(.992)}
.filter:hover{transform:scale(1.075)}.filter:active{transform:scale(.96)}
#scene{position:absolute;inset:0;pointer-events:none;z-index:5}
#stone-position{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:8;overflow:visible}
#stone-float,#stone-pose,#stone-shake{width:100%;height:100%;transform-origin:50% 50%;overflow:visible}
#stone-float{animation:stone-float 6s ease-in-out infinite}
#stone-pose{transform:perspective(1400px) rotateX(0deg) rotateY(0deg);transition:transform 150ms var(--spring)}
#stone-button{position:relative;width:100%;height:100%;pointer-events:auto;cursor:var(--cursor);transform:scale(1);transition:transform 100ms var(--spring);outline-offset:7px;overflow:visible}
#stone-button.is-solid{cursor:var(--cursor-active)}#stone-button.is-pressed{transform:scale(.99)}
#stone-image{width:100%;height:100%;object-fit:fill;pointer-events:none}
#stone-particles{position:absolute;pointer-events:none;overflow:visible}
#stone-button.is-powder{visibility:hidden}#stone-float.frozen{animation:none}
#discs{position:absolute;inset:0;pointer-events:none}
.disc-wrap{position:absolute;transform:translate(-50%,-50%);will-change:transform,opacity;opacity:0;pointer-events:none}
.disc-tilt{width:100%;height:100%;transform:perspective(1400px) rotateX(0deg) rotateY(0deg);transition:transform 150ms var(--spring);transform-origin:center}
.disc-tilt img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.disc-tilt.is-pressed{scale:.98}
.disc-wrap[data-role=center]{z-index:5}.disc-wrap[data-role=left1],.disc-wrap[data-role=right1]{z-index:3}.disc-wrap[data-role=left2],.disc-wrap[data-role=right2]{z-index:1}
#disc-hits{position:absolute;inset:0;pointer-events:none;z-index:30}
.side-hit,#center-hit{position:absolute;transform:translate(-50%,-50%);border-radius:50%;clip-path:circle(47%);pointer-events:auto}
/* A hidden/inert carousel must never intercept the opening slab, including
   browsers that have not yet applied inert to newly created hit targets. */
body:not([data-phase="browse"]) #disc-hits,
body:not([data-phase="browse"]) #disc-hits *{pointer-events:none}
.side-hit{z-index:1}.side-hit[data-offset='-1'],.side-hit[data-offset='1']{z-index:2}
.side-hit:focus-visible{outline:none;box-shadow:none}.side-hit:focus-visible:after{content:'';position:absolute;inset:14px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #102935;pointer-events:none}
#center-hit{z-index:3;cursor:var(--cursor-active)}
#center-hit:focus-visible{outline:2px solid #fff;outline-offset:4px;clip-path:none}
#slot-messages{position:absolute;inset:0;z-index:35;pointer-events:none}
.slot-message{position:absolute;transform:translate(-50%,-50%);text-align:center;white-space:nowrap;font-size:calc(14px * var(--s));line-height:1.8;opacity:0}
.slot-message button{pointer-events:auto;min-height:32px;padding:0 8px;transition:transform 440ms var(--spring)}.slot-message button:hover{transform:translateY(-1px)}.slot-message button:active{transform:scale(.98)}
#browse-controls{position:absolute;inset:0;z-index:45;pointer-events:none}
.arrow{position:absolute;top:50%;transform:translateY(-50%);width:calc(55.415px * var(--s));height:calc(89.268px * var(--s));opacity:0;pointer-events:auto}
.arrow img{width:100%;height:100%;object-fit:fill;transition:transform 440ms var(--spring),scale 440ms var(--spring)}
#arrow-left:hover:not([aria-disabled=true]) img{transform:translateX(calc(-3px * var(--s)))}#arrow-right:hover:not([aria-disabled=true]) img{transform:translateX(calc(3px * var(--s)))}.arrow:active:not([aria-disabled=true]) img{scale:.96}
#work-reader{position:absolute;left:50%;bottom:calc(58.8292px * var(--s));transform:translateX(-50%);width:max-content;min-width:calc(220px * var(--s));height:calc(74px * var(--s));pointer-events:auto}
#work-name{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:calc(18px * var(--s));font-weight:300;line-height:1.2;white-space:nowrap;margin:0;opacity:0;transition:opacity 150ms var(--ease);pointer-events:none}
#dot-track{position:absolute;top:calc(34px * var(--s));left:50%;transform:translateX(-50%);display:flex;gap:0;padding:0;touch-action:none;user-select:none;opacity:0;cursor:var(--cursor-active)}
.dot{width:calc(49.5845px * var(--s));height:calc(32px * var(--s));display:grid;place-items:center;position:relative;border-radius:50%;flex-shrink:0;touch-action:none}
.dot span{width:calc(10.1646px * var(--s));height:calc(10.1646px * var(--s));border-radius:50%;background:#fff;opacity:.5;transition:transform 440ms var(--spring);pointer-events:none}
.dot[aria-current=true] span{opacity:1}.dot.is-candidate:after{content:'';position:absolute;width:calc(20px * var(--s));height:calc(20px * var(--s));border:1px solid #ffffffb3;border-radius:50%;pointer-events:none}
.dot:hover span{transform:scale(1.3)}.dot.is-pressed span{transform:scale(.9)}

#status-line{position:absolute;z-index:50;left:50%;bottom:calc(62px * var(--s));transform:translateX(-50%);display:flex;align-items:center;gap:10px;white-space:nowrap;font-size:max(13px,calc(14px * var(--s)));color:#fff;min-height:32px;transition:opacity 150ms}
#global-retry{min-height:32px;padding:0 4px;transition:transform 440ms var(--spring)}#global-retry:hover{transform:translateY(-1px)}#global-retry:active{transform:scale(.98)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.noscript{position:fixed;bottom:30px;left:0;right:0;text-align:center;color:white}
body[data-phase=entering] .interactive,body[data-phase=powder] .interactive{pointer-events:none}
body.is-dragging .topbar,body.is-dragging .arrow,body.is-dragging #disc-hits,body.is-dragging #slot-messages,body.is-dragging #disc-hits button{pointer-events:none}
/* Filter uses the original transparent overlay and three measured columns. */
#discs,#browse-controls{transition:filter 420ms var(--settle)}
body.is-filter-open #discs,body.is-filter-open #browse-controls{filter:blur(calc(9px * var(--s)))}
body.is-filter-open #disc-hits,body.is-filter-open #browse-controls,body.is-filter-open #slot-messages,body.is-filter-open #disc-hits button,body.is-filter-open #browse-controls button,body.is-filter-open #dot-track,body.is-filter-open #work-reader{pointer-events:none}
body.is-filter-open .filter{top:calc(38.6325px * var(--s));mix-blend-mode:normal}
body.is-filter-open .nav-item{opacity:0!important;pointer-events:none}
.filter-panel{position:absolute;z-index:55;left:0;top:0;width:100%;height:calc(410px * var(--s));pointer-events:none}
.filter-columns{position:absolute;left:var(--ui-left);top:0;width:calc(1920px * var(--s));height:100%;pointer-events:none}
.filter-column{position:absolute;top:0;height:calc(340px * var(--s));pointer-events:none}
.filter-column[data-dimension=year]{left:calc(845.778px * var(--s));width:calc(240px * var(--s))}
.filter-column[data-dimension=format]{left:calc(1128.982px * var(--s));width:calc(315px * var(--s))}
.filter-column[data-dimension=field]{left:calc(1505.330px * var(--s));width:calc(305px * var(--s))}
.filter-column h2{position:absolute;inset:0;margin:0;pointer-events:none}
.filter-options{position:absolute;inset:0;pointer-events:none}
.filter-option{position:absolute;left:0;width:100%;height:calc(35px * var(--s));white-space:nowrap;opacity:.600006;pointer-events:auto;transform:translateY(0);transition:transform 440ms var(--spring);outline-offset:5px}
.filter-option:after{content:'';position:absolute;left:0;right:0;bottom:0;height:calc(1px * var(--s));background:white;transform:scaleX(0);transform-origin:left;transition:transform 440ms var(--spring)}
.filter-option:hover{transform:translateY(calc(-1px * var(--s)))}.filter-option:active{transform:scale(.985)}.filter-option[aria-pressed=true]:after{transform:scaleX(1)}
.filter-rule{position:absolute;top:calc(362.555px * var(--s));left:calc(38.653px * var(--s));right:calc(38.652px * var(--s));height:calc(.25px * var(--s));background:#fdfdfd}
.filter-copyright{position:absolute;inset:0;margin:0;opacity:.600006;pointer-events:none}
.dynamic-filter{top:calc(38px * var(--s));height:auto;max-height:min(32vh,calc(300px * var(--s)));display:flex;flex-direction:column}
.dynamic-filter h2{position:relative;inset:auto;display:flex;align-items:baseline;gap:12px;font-size:max(12px,calc(24px * var(--s)));font-weight:300;line-height:1.3;margin:0 0 8px}
.dynamic-filter h2 .chinese{font-family:'Source Han Sans';font-size:max(10px,calc(17px * var(--s)))}
.dynamic-filter .filter-options{position:relative;inset:auto;overflow-y:auto;scrollbar-width:thin;pointer-events:auto;min-height:0;padding:2px 4px 5px 0}
.dynamic-filter .filter-option{position:relative;top:auto;left:auto;height:auto;min-height:calc(43px * var(--s));display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:max(11px,calc(18px * var(--s)));font-weight:300;line-height:1.35;white-space:normal;text-align:left;padding:5px 0}
.dynamic-filter .filter-option .chinese{font-family:'Source Han Sans';font-size:max(10px,calc(15px * var(--s)));flex:none}
.dynamic-filter .filter-options p{font-size:11px;opacity:.6}
@media(max-width:1000px){.dynamic-filter .filter-option,.dynamic-filter h2{display:block}.dynamic-filter .filter-option .chinese,.dynamic-filter h2 .chinese{display:block;margin-top:3px}}
#empty-results{position:absolute;z-index:40;left:50%;top:calc(var(--frame-top) + 615.6px * var(--s));transform:translate(-50%,-50%);text-align:center;pointer-events:auto;font-size:calc(18px * var(--s));line-height:1.8;width:calc(700px * var(--s))}
#empty-results p{margin:0 0 16px;text-wrap:balance}#clear-filters{padding:6px 2px;min-height:36px;border-bottom:1px solid #fff;transition:transform 440ms var(--spring)}#clear-filters:hover{transform:translateY(-1px)}#clear-filters:active{transform:scale(.98)}
@keyframes stone-float{0%,100%{transform:translateY(calc(-3px * var(--s)))}50%{transform:translateY(calc(3px * var(--s)))}}
@media(prefers-reduced-motion:reduce){
 #stone-float{animation:none!important}.disc-tilt,#stone-pose{transform:none!important}
 .interactive:active,.brand:hover,.brand:active,.nav-item:hover,.nav-item:active,.filter:hover,.filter:active,.slot-message button:hover,.slot-message button:active,#global-retry:hover,#global-retry:active,#stone-button.is-pressed,.filter-option:hover,.filter-option:active,#clear-filters:hover,#clear-filters:active{transform:none}
 .arrow:hover img,.arrow:active img{transform:none!important;scale:1}.dot:hover span,.dot.is-pressed span{transform:none}.disc-tilt.is-pressed{scale:1}
 #discs,#browse-controls,.ui-label,.brand img,.brand-passive img,.filter-option:after{transition-duration:150ms;transition-timing-function:ease}
}

/* Immediate central-disc press feedback, independent of the shared flight. */
.disc-wrap[data-role=center] .disc-tilt.is-pressed{scale:.98}
@media(prefers-reduced-motion:reduce){.disc-wrap[data-role=center] .disc-tilt.is-pressed{scale:1}}

.stone-prepared-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
#experience{touch-action:pan-y}#dot-track{touch-action:none}

/* Drag the artwork without moving navigation or synthesizing a cover click. */
#discs{translate:var(--browse-drag-x,0px) 0;transition:translate 220ms var(--settle),filter 420ms var(--settle)}
#discs.is-swipe-following{transition:filter 420ms var(--settle)}
@media(max-width:760px){
 .topbar{height:108px}
 .brand,.brand-passive{left:var(--ui-edge);top:8px;width:calc(100% - 2 * var(--ui-edge));height:44px}
 .brand img,.brand-passive img{left:0;top:15px;width:19px;height:14px}
 .brand .ui-label,.brand-passive .ui-label{left:28px!important;top:15px!important;line-height:14px;font-size:13px!important}
 .topbar .ui-label svg{display:none}
 .topbar .ui-label .sr-only{position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none;white-space:inherit}
 #navigation{left:auto;right:var(--ui-edge);top:56px;width:248px;height:44px;display:flex;justify-content:flex-end;gap:8px}
 .nav-item[data-preview=about],.nav-item[data-preview=catalog]{position:relative;left:auto!important;top:0;width:88px;min-width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-direction:column}
 .nav-item>.ui-label{position:static;left:auto!important;top:auto!important;line-height:16px;font-size:13px!important}
 .filter,body.is-filter-open .filter{position:relative;left:auto;top:0;width:44px;height:44px;flex:none;display:grid;place-items:center;mix-blend-mode:normal}
 .filter img{width:22px;height:16px;object-fit:contain}
 .arrow{display:none!important}
 #work-reader{bottom:22px;height:40px;min-width:120px}
 #work-name{font-size:13px;top:-18px}
 #dot-track{top:8px}
 .dot{width:32px;height:32px;min-width:24px;min-height:24px}
 .filter-panel{top:112px;height:calc(100% - 112px);padding:10px 16px 24px;overflow-y:auto}
 .filter-columns{position:relative;left:0;top:0;width:100%;height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .filter-column.dynamic-filter{position:relative;left:auto!important;top:auto;width:auto;height:auto;max-height:none}
 .dynamic-filter h2{display:block;font-size:13px;margin:0 0 10px;min-height:38px}
 .dynamic-filter h2 .chinese,.dynamic-filter .filter-option .chinese{display:block;font-size:13px;margin-top:2px}
 .dynamic-filter .filter-option{display:block;min-height:44px;font-size:13px;line-height:1.35;padding:6px 0}
 .dynamic-filter .filter-options{overflow:visible}
 .filter-rule{position:relative;top:auto;left:0;right:0;margin-top:16px;height:1px}
 .filter-copyright{position:relative;inset:auto;line-height:1.5;font-size:10px;margin-top:12px}
 .filter-copyright .ui-label{position:static!important;line-height:1.5;font-size:10px!important}
 .filter-copyright .ui-label svg{display:none}
 .filter-copyright .sr-only{position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none;white-space:normal}
 #status-line{font-size:13px;bottom:18px;max-width:calc(100% - 32px);white-space:normal;text-align:center}
 #empty-results{width:calc(100% - 40px);top:48%;font-size:15px}
}
@media(prefers-reduced-motion:reduce){#discs{translate:0 0;transition:none}}
