:root{--paper:#f4f4ef;--ink:#262d28;--sage:#7f8f83;--muted:#73786f;--motion:900ms;--ease:cubic-bezier(.22,.75,.2,1)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#393e33;color:#fff;font-family:'Segoe UI','Malgun Gothic',sans-serif;font-weight:400}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #bca77e;outline-offset:6px}button[hidden],section[hidden],aside[hidden],div[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.environment{position:fixed;inset:0;overflow:hidden;z-index:0}#room-image{position:absolute;inset:-2%;background:url('assets/studio.png') center center/cover no-repeat;transition:transform 1.4s var(--ease),filter 1.1s;transform:scale(1);filter:brightness(.86)}.room-shade{position:absolute;inset:0;background:linear-gradient(#0b130c42,transparent 25%,transparent 60%,#0b130c66);transition:background .8s}#projection{position:absolute;left:69%;top:14%;width:24%;height:30%;opacity:.19;mix-blend-mode:screen;pointer-events:none;transform:skewY(-1deg)}body[data-zone=sound] #room-image{transform:scale(1.43) translate(10%,4%);filter:brightness(.64) blur(2px)}body[data-zone=visual] #room-image{transform:scale(1.28) translate(-8%,3%);filter:brightness(.67) blur(1.3px)}body[data-zone=desk] #room-image{transform:scale(1.65) translate(0%,5%);filter:brightness(.67) blur(1.7px)}body[data-mode=detail] .room-shade{background:linear-gradient(90deg,#171c1930 0%,#171c1910 46%,#efefe4e8 70%,#f4f4ef 100%)}body[data-zone=visual][data-mode=detail] #projection{opacity:.12}#objects{position:fixed;inset:0;width:100%;height:100%;z-index:2;touch-action:pan-y;transition:opacity .5s}body[data-zone=room] #objects,body[data-zone=desk] #objects{pointer-events:none}.site-header{position:fixed;z-index:10;left:0;right:0;top:0;padding:30px 4%;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.site-header>*{pointer-events:auto}.identity{padding:0;text-align:left;font-size:25px;letter-spacing:-.7px}.identity span{display:block;font-size:10px;letter-spacing:.2px;margin-top:7px;opacity:.8}.site-header nav{display:flex;align-items:center;gap:27px;padding-top:7px}.site-header nav button{font-size:12px;padding:3px 0;opacity:.75}.site-header nav button[aria-current=true]{opacity:1;border-bottom:1px solid currentColor;padding-bottom:7px}body[data-mode=detail] .site-header nav{color:var(--ink)}#home-button{margin-left:15px}#home-button span{margin-left:15px}main{position:fixed;inset:0;z-index:3;pointer-events:none}main button,main a,main .detail-scroll,main .desk-item{pointer-events:auto}.hotspot{position:absolute;display:flex;gap:14px;align-items:center;text-align:left;padding:16px;transition:transform .3s;text-shadow:0 1px 12px #0009}.hotspot:hover{transform:translateY(-5px)}.hotspot i{width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 6px #fff3,0 0 0 7px #fff3}.hotspot span{font-size:21px}.hotspot b{font-size:18px;font-weight:300;margin-left:13px}.hotspot small{display:block;font-size:10px;margin-top:7px;color:#eee8da}.hot-sound{left:19%;top:47%}.hot-desk{left:46%;top:39%}.hot-visual{left:76%;top:43%}.entrance-footer{position:absolute;bottom:6%;left:5%;right:5%;display:flex;justify-content:space-between;align-items:flex-end}.entrance-footer p{font-size:20px;font-weight:300;line-height:1.7;margin:0}.entrance-footer small{display:block;font-size:12px;opacity:.8;margin-top:6px}.entrance-footer>span{font-size:10px;line-height:1.8;text-align:right;opacity:.65}.section-heading{position:absolute;top:128px;left:5%;font-size:12px}.section-heading p{font-family:Georgia,serif;font-size:19px;margin-top:24px;font-style:italic;font-weight:400}.text-button{font-size:12px;padding:5px 0}.text-button:hover{text-decoration:underline;text-underline-offset:5px}#selection-controls{position:absolute;bottom:9%;left:50%;transform:translateX(-50%);text-align:center;width:min(520px,86vw)}.selection-count{font-size:10px;opacity:.7;letter-spacing:2px;margin:0 0 12px}#selection-title{font-family:Georgia,'Malgun Gothic',serif;font-size:38px;letter-spacing:-1px;font-weight:400;margin:0 0 9px}.selection-sub{font-size:12px;opacity:.8;margin:0}.selection-actions{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:24px}.round-button{width:38px;height:38px;border:1px solid #ffffff66;border-radius:50%;font-size:18px}.round-button:hover{background:#ffffff22}.choose-button{font-size:12px;padding:11px 0;border-bottom:1px solid #fffa}.choose-button span{margin-left:34px}.gesture-hint{font-size:10px;opacity:.7;margin-top:22px}.gesture-hint span{margin:0 7px}body[data-mode=detail] #selection-controls{display:none}#detail{position:absolute;right:0;top:0;bottom:0;width:38%;padding:140px 6% 45px 3%;color:var(--ink);pointer-events:auto}.detail-return{margin-bottom:35px;opacity:.7}.detail-scroll{overflow-y:auto;max-height:calc(100dvh - 235px);padding-right:8px;overscroll-behavior:contain}.detail-type{font-size:11px;color:var(--muted);margin:0 0 22px}#detail-title{font-family:Georgia,'Malgun Gothic',serif;font-size:clamp(32px,3.7vw,62px);font-weight:400;letter-spacing:-1.5px;line-height:1.2;margin:0 0 28px}.detail-description{font-size:14px;line-height:1.95;word-break:keep-all;max-width:30em}dl{margin:30px 0;font-size:11px;border-top:1px solid #abb3a65e;padding-top:17px}dl div{display:flex;gap:20px;margin-bottom:10px;line-height:1.65}dt{min-width:52px;color:var(--muted)}dd{margin:0}#detail-actions button{display:flex;align-items:center;justify-content:space-between;background:#29392e;color:#fff;width:100%;padding:16px 18px;font-size:12px}#detail-actions button:hover{background:#435745}.detail-note{font-size:10px;line-height:1.8;color:#777f74;margin-top:18px}#audio-host iframe,#mini-audio iframe{width:100%;aspect-ratio:16/9;border:0;display:block;margin-top:15px}#audio-host a{font-size:11px;display:inline-block;margin-top:9px;text-decoration:underline}.media-warning{font-size:11px;line-height:1.8;background:#e5e8de;padding:12px}#mini-audio{position:fixed;right:25px;bottom:40px;width:245px;background:#20281eee;padding:12px;z-index:11}#mini-audio iframe{margin-top:6px}#mini-audio a{font-size:10px}#mini-close{display:block;margin-left:auto;font-size:10px}.desk-caption{position:absolute;left:50%;top:24%;text-align:center;transform:translateX(-50%);width:90%}.desk-caption h1{font-size:33px;font-weight:300;margin:0 0 15px}.desk-caption p{font-size:12px;opacity:.8}.desk-objects{position:absolute;left:12%;right:12%;top:39%;height:45%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:7%;perspective:1200px;align-items:center}.desk-item{position:relative;height:100%;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:35px;background:none}.physical{display:block;position:relative;text-align:left;transition:transform .65s var(--ease),box-shadow .65s;box-shadow:18px 35px 30px #0007;transform:rotateX(15deg) rotateZ(-8deg)}.desk-item:hover .physical,.desk-item:focus-visible .physical{transform:translateY(-18px) rotateX(0) rotateZ(-2deg)}.physical b{font-weight:400}.physical em{font-style:normal}.notebook-shape{width:190px;height:265px;border-radius:3px 8px 8px 3px;background:repeating-linear-gradient(100deg,#343b35 0 1px,#3b413b 1px 3px);border-left:8px solid #252d26;color:#e4e5d8;padding:34px 20px}.notebook-shape:after{content:'';position:absolute;top:0;right:23px;height:100%;width:7px;background:#19231cb0}.notebook-shape b{font-family:Georgia,serif;font-size:17px}.notebook-shape em{position:absolute;bottom:32px;left:20px;font-size:11px;line-height:1.7;opacity:.65}.file-shape{width:205px;height:267px;background:#afb8a4;border-left:15px solid #798771;transform:rotateX(15deg) rotateZ(6deg);padding:72px 20px 20px;color:#293929}.file-shape:before{content:'';position:absolute;left:14px;top:16px;width:40px;height:5px;background:#f4f4e8;box-shadow:0 8px #f4f4e8}.file-shape i{position:absolute;right:-12px;top:23px;height:43px;width:12px;border-radius:0 4px 4px 0;background:#d1baa0}.file-shape b{font-family:Georgia,serif;font-size:29px;line-height:1.1}.file-shape em{display:block;font-size:10px;margin-top:33px}.card-shape{width:225px;height:135px;background:#eeeade;color:#29342b;padding:24px 20px;transform:rotateX(15deg) rotateZ(-3deg)}.card-shape b{font-family:Georgia,serif;font-size:21px}.card-shape em{display:block;font-size:9px;margin-top:22px}.card-shape i{position:absolute;right:22px;bottom:18px;font-style:normal}.object-label{font-size:16px;display:block;line-height:1.6}.object-label small{display:block;font-size:10px;opacity:.6}dialog{color:var(--ink);border:0;padding:0}dialog::backdrop{background:#101710b0;backdrop-filter:blur(6px)}#reading{inset:0;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;background:var(--paper);overflow-y:auto;overscroll-behavior:contain}#reading[open]{animation:page-in .5s var(--ease)}.reading-header{display:flex;align-items:center;justify-content:space-between;padding:30px 6%;background:var(--paper);position:sticky;top:0;z-index:3;border-bottom:1px solid #dddeda}.reading-header>span{font-family:Georgia,serif;font-size:22px}.reading-header nav{display:flex;gap:35px}.reading-header button{font-size:12px;padding:8px 0}.reading-header button.active{border-bottom:1px solid var(--ink)}#reading-content{max-width:1200px;margin:0 auto;padding:75px 6% 60px;min-height:70vh}.reading-kicker{font-size:11px;color:var(--muted);margin-bottom:28px}.reading-title{font-size:clamp(36px,5vw,72px);font-weight:300;letter-spacing:-.06em;line-height:1.25;margin:0 0 40px}.reading-lead{font-size:20px;line-height:1.8;max-width:680px;word-break:keep-all}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:55px;margin-top:45px}.about-grid img{width:100%;height:310px;object-fit:cover}.about-grid h3{font-size:18px;font-weight:500}.about-grid p{font-size:14px;line-height:1.9;color:#60695e}.about-grid figcaption{font-size:10px;color:var(--muted);margin-top:10px}.about-grid figure{margin:0}.reading-footer{padding:28px 6%;display:flex;justify-content:space-between;border-top:1px solid #d5dbd2;font-size:11px}.reading-footer button{font-size:11px}.history-list{margin-top:45px}.history-row{display:grid;grid-template-columns:130px 1fr 170px;gap:25px;border-top:1px solid #d7dbd3;padding:25px 0;align-items:baseline}.history-row span{font-size:12px;color:#6c7568}.history-row h3{font-size:22px;font-weight:400;margin:0}.history-row p{font-size:12px;color:#6c7568;margin:8px 0 0}.history-note{font-size:12px;line-height:1.9;color:#757d70}.contact-link{display:flex;justify-content:space-between;border-top:1px solid #cbd2c5;padding:27px 0;font-size:24px}.contact-disabled{color:#7b8376}.contact-link small{font-size:12px;align-self:center}.contact-links{max-width:700px;margin-top:50px}.contact-note{font-size:12px;line-height:1.8;color:#798070}#cinema{background:transparent;color:#fff;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;inset:0;overflow:hidden}#cinema::backdrop{background:#080d0bef;backdrop-filter:blur(8px)}.cinema-header{position:absolute;left:5%;right:5%;top:28px;display:flex;justify-content:space-between;align-items:center}.cinema-header span{font-size:19px}.cinema-header small{display:block;font-size:10px;opacity:.55;margin-top:8px}.cinema-header button{font-size:12px}.cinema-screen{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(86vw,125vh);aspect-ratio:16/9;background:#080b09;box-shadow:0 25px 100px #0008;animation:film-open .7s var(--ease)}.cinema-screen iframe{width:100%;height:100%;border:0}.cinema-screen a{position:absolute;bottom:-34px;left:0;font-size:11px;text-decoration:underline}#cinema-note{position:absolute;left:7%;right:7%;bottom:20px;text-align:center;font-size:10px;color:#bbc3b9;line-height:1.8}.notes-button{position:fixed;bottom:15px;right:4%;font-size:10px;color:#ffffff9c;z-index:12;padding:6px}body[data-mode=detail] .notes-button{color:#616d5e}#notes{width:min(620px,90vw);padding:35px;background:var(--paper);max-height:85dvh}#notes h2{font-size:23px;font-weight:400;line-height:1.6}#notes ul{padding-left:18px;font-size:13px;line-height:1.9}#notes li{margin-bottom:13px}#close-notes{float:right}#webgl-fallback{position:fixed;left:5%;top:22%;z-index:6;font-size:12px;max-width:80%;line-height:1.8;background:#223026dd;padding:20px}@keyframes page-in{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}@keyframes film-open{from{opacity:0;transform:translate(-50%,-50%) scale(.58)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:760px){.site-header{padding:22px 6%}.identity{font-size:20px}.identity span{font-size:8px}.site-header nav{gap:17px;padding-top:4px}.site-header nav button{font-size:10px}#home-button{display:none!important}#room-image{background-position:49% center}body[data-zone=sound] #room-image{transform:scale(1.22) translate(8%,1%)}body[data-zone=visual] #room-image{transform:scale(1.17) translate(-7%,1%)}body[data-zone=desk] #room-image{transform:scale(1.3) translate(0,4%)}.hotspot{padding:12px;gap:12px}.hotspot span{font-size:16px}.hotspot small{font-size:9px}.hotspot i{width:8px;height:8px}.hot-sound{left:4%;top:52%}.hot-visual{left:auto;right:4%;top:38%}.hot-desk{left:38%;top:64%}.entrance-footer{bottom:9%;left:7%}.entrance-footer p{font-size:17px}.entrance-footer small{font-size:11px}.entrance-footer>span{display:none}.section-heading{top:99px;left:7%}.section-heading p{font-size:15px;margin-top:18px}#selection-controls{bottom:10%}#selection-title{font-size:31px}.selection-actions{margin-top:18px}.gesture-hint{font-size:9px;line-height:1.7}.section-heading .text-button{font-size:10px}body[data-mode=detail] .room-shade{background:linear-gradient(transparent 20%,#f4f4ef11 32%,#f4f4efff 52%)}body[data-mode=detail] .site-header nav{color:white}#detail{width:100%;top:45%;padding:0 8% 35px;bottom:0;background:linear-gradient(#f4f4ef00,#f4f4ef 10%);padding-top:16px}.detail-return{margin-bottom:15px;font-size:10px}.detail-scroll{max-height:calc(55dvh - 85px);padding-right:0}.detail-type{margin:0 0 13px;font-size:10px}#detail-title{font-size:33px;margin-bottom:18px}.detail-description{font-size:12px;line-height:1.85}dl{font-size:10px;margin:20px 0}#detail-actions button{padding:14px 17px}.detail-note{font-size:9px}.desk-caption{top:23%}.desk-caption h1{font-size:29px}.desk-caption p{font-size:11px}.desk-objects{left:5%;right:5%;top:36%;height:43%;gap:4%}.physical{box-shadow:7px 16px 22px #0008}.notebook-shape{width:95px;height:155px;border-left-width:5px;padding:25px 10px}.notebook-shape b{font-size:12px}.notebook-shape:after{width:4px;right:11px}.notebook-shape em{font-size:8px;left:10px;bottom:20px}.file-shape{width:98px;height:145px;border-left-width:8px;padding:49px 10px 10px}.file-shape b{font-size:18px}.file-shape em{font-size:7px;margin-top:17px}.file-shape i{width:7px;right:-7px;height:25px}.file-shape:before{width:25px;height:3px;box-shadow:0 6px #f4f4e8}.card-shape{width:100px;height:65px;padding:12px 8px}.card-shape b{font-size:11px}.card-shape em{font-size:5px;margin-top:11px}.card-shape i{right:8px;bottom:7px;font-size:9px}.object-label{font-size:13px}.object-label small{font-size:9px}.desk-item{gap:25px}.reading-header{padding:18px 6%;flex-wrap:wrap;gap:20px}.reading-header>span{font-size:18px}.reading-header nav{gap:22px;order:3;width:100%}.reading-header button{font-size:11px}#reading-content{padding:40px 7%}.reading-title{font-size:39px;margin-bottom:25px}.reading-lead{font-size:15px}.about-grid{grid-template-columns:1fr;gap:18px;margin-top:30px}.about-grid img{height:210px}.about-grid p{font-size:13px}.history-row{grid-template-columns:58px 1fr;gap:15px;padding:23px 0}.history-row h3{font-size:19px}.history-row>span:last-child{grid-column:2}.contact-link{font-size:22px}.contact-link small{font-size:10px}.reading-footer{font-size:9px}.reading-footer button{font-size:10px}.cinema-header{left:6%;right:6%;top:25px}.cinema-header span{font-size:15px}.cinema-header button{font-size:10px}.cinema-screen{width:94vw}#cinema-note{bottom:45px;font-size:10px}#mini-audio{right:12px;bottom:42px;width:180px;padding:8px}#mini-close{font-size:9px}.notes-button{font-size:9px}#projection{left:55%;width:40%;top:21%;height:22%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:760px){body[data-mode=detail] #selector .section-heading{display:none}}

/* Brief signal-like feedback, limited to the spatial entry points. */
.hotspot i{position:relative;flex-shrink:0;transform:translate(var(--dot-x,0px),var(--dot-y,0px));transition:transform 160ms ease-out,box-shadow 180ms}
.hotspot i:before,.hotspot i:after{content:'';position:absolute;inset:-5px;border:1px solid #fff9;border-radius:50%;opacity:0;pointer-events:none}
@media(hover:hover) and (pointer:fine){
 .hotspot:hover{transform:none}
 .hotspot:hover i{box-shadow:0 0 0 8px #fff1,0 0 18px #f4ffff70}
 .hotspot:hover i:before{animation:dot-signal 320ms steps(1,end);opacity:.6}
 .hotspot:hover i:after{animation:dot-signal 320ms steps(1,end) reverse;border-color:#b8d5ca;inset:-2px}
}
.hotspot:focus-visible i{box-shadow:0 0 0 9px #fff3}
.hotspot:active i{transform:translate(var(--dot-x,0px),var(--dot-y,0px)) scale(.7)}
.entry-pulse{position:fixed;z-index:20;width:22px;height:22px;margin:-11px;border:1px solid #f4ffffcc;border-radius:50%;pointer-events:none;animation:entry-spread 360ms cubic-bezier(.16,.7,.22,1) forwards}
.entry-pulse:after{content:'';position:absolute;inset:5px;border:1px solid #d3e4dc88;border-radius:50%}
@keyframes dot-signal{0%{transform:translateX(-4px);clip-path:inset(0 0 55% 0)}20%{transform:translateX(4px);clip-path:inset(55% 0 0 0)}38%{transform:translate(-2px,2px);clip-path:inset(15% 0 35% 0)}60%{transform:translateX(3px);clip-path:inset(60% 0 5% 0)}80%,100%{transform:none;clip-path:inset(0)}}
@keyframes entry-spread{from{transform:scale(.55);opacity:1}to{transform:scale(4.5);opacity:0}}
@media(prefers-reduced-motion:reduce){.hotspot i{transform:none!important}.hotspot i:before,.hotspot i:after{animation:none!important}.entry-pulse{animation:entry-fade 120ms linear forwards!important}@keyframes entry-fade{to{opacity:0}}}

#detail-navigation{position:absolute;left:30%;bottom:8%;transform:translateX(-50%);text-align:center;pointer-events:auto;color:#fff}
#detail-navigation>div{display:flex;gap:12px;align-items:center}
#detail-navigation button{height:44px;min-width:44px;border:1px solid #ffffff65;border-radius:24px;background:#26322caa;backdrop-filter:blur(12px)}
#detail-navigation .back-collection{padding:0 24px;background:#f4f4ef;color:#29392e;border-color:#f4f4ef;font-size:13px}
.back-collection span{margin-left:16px}
#detail-navigation button:hover{box-shadow:0 0 0 3px #ffffff24}
#detail-navigation p{font-size:10px;color:#ffffffbb;margin:13px 0 0}
#detail-navigation p span{padding:0 7px}
@media(max-width:760px){#detail-navigation{left:50%;bottom:auto;top:36%;width:max-content}#detail-navigation button{height:36px;min-width:36px}#detail-navigation .back-collection{font-size:11px;padding:0 18px}#detail-navigation p{display:none}}

/* Outgoing labels retain their room position; navigation never waits on them. */
.entry-label{position:fixed;z-index:21;color:white;pointer-events:none;text-align:left;line-height:normal;text-shadow:0 1px 12px #0009;animation:entry-label-out 460ms ease-out forwards;transform-origin:left center}
.entry-label b{font-size:18px;font-weight:300;margin-left:13px}
.entry-label small{display:block;font-size:10px;margin-top:7px;color:#eee8da}
.entry-ink{display:block}
.entry-echo{position:absolute;inset:0;opacity:0}
.entry-sound .entry-ink{animation:signal-break 460ms steps(1,end) forwards}
.entry-sound .entry-echo.upper{color:#b8ddd1;clip-path:inset(0 0 52% 0);animation:signal-echo 460ms steps(1,end) forwards}
.entry-sound .entry-echo.lower{color:#eee0c6;clip-path:inset(48% 0 0 0);animation:signal-echo 460ms steps(1,end) reverse forwards}
.entry-visual{overflow:hidden;animation:light-erase 460ms ease-in forwards}
.entry-visual .entry-ink{animation:light-double 460ms ease-out forwards}
.entry-visual:after{content:'';position:absolute;top:-15%;bottom:-15%;width:16px;left:-25%;background:linear-gradient(90deg,transparent,#efffffb0,transparent);filter:blur(3px);animation:light-sweep 430ms ease-out forwards}
.entry-desk{animation:focus-away 460ms cubic-bezier(.2,.6,.3,1) forwards}
.entry-quiet{animation:quiet-away 240ms ease-out forwards}
@keyframes entry-label-out{0%,50%{opacity:1}100%{opacity:0;transform:translateX(9px)}}
@keyframes signal-break{0%,16%{transform:none}17%{transform:translateX(-3px) skewX(5deg)}29%{transform:translateX(5px);clip-path:inset(0 0 15% 0)}42%{transform:translateX(-2px);clip-path:inset(15% 0 0 0)}58%{transform:none;clip-path:inset(0)}75%,100%{transform:scaleX(1.08);filter:blur(1px);opacity:0}}
@keyframes signal-echo{0%{opacity:0}18%{opacity:.7;transform:translateX(7px)}34%{opacity:.4;transform:translateX(-6px)}50%{opacity:.5;transform:translateX(3px)}70%,100%{opacity:0;transform:translateX(12px)}}
@keyframes light-sweep{to{left:115%}}
@keyframes light-double{25%{text-shadow:4px 0 0 #d9f4ef80}65%{text-shadow:-3px 0 1px #d9f4ef70;filter:blur(.7px)}100%{text-shadow:none;opacity:0}}
@keyframes light-erase{0%,20%{opacity:1;clip-path:inset(0)}100%{opacity:0;clip-path:inset(0 0 0 100%)}}
@keyframes focus-away{0%{opacity:1;filter:blur(0)}100%{opacity:0;filter:blur(5px);transform:scale(1.06);letter-spacing:2px}}
@keyframes quiet-away{to{opacity:0;filter:blur(1px)}}
@media(max-width:760px){.entry-label small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.entry-label{animation:quiet-away 120ms linear forwards!important}.entry-label *,.entry-label:after{animation:none!important}.entry-echo,.entry-visual:after{display:none}}

/* Real installation documentation keeps its original photographic proportions. */
#selection-title{max-width:100%;text-wrap:balance}
#detail-title{overflow-wrap:anywhere}
#cinema.photo-mode .cinema-screen{width:90vw;height:calc(100dvh - 190px);aspect-ratio:auto;background:transparent;box-shadow:none;top:49%}
.record-photo{display:block;width:100%;height:calc(100% - 46px);object-fit:contain}
.photo-controls{display:flex;align-items:center;justify-content:center;gap:24px;height:46px;font-size:12px}
.photo-controls button{width:44px;height:40px;border:1px solid #ffffff60;border-radius:24px}
.photo-controls button:hover{background:#ffffff20}
#cinema.photo-mode #cinema-note{bottom:20px}
@media(max-width:760px){#cinema.photo-mode .cinema-header{gap:18px;align-items:flex-start}#cinema.photo-mode .cinema-header span{font-size:14px}#cinema.photo-mode .cinema-header button{white-space:nowrap}#cinema.photo-mode .cinema-screen{width:96vw;height:calc(100dvh - 210px)}#selection-title{font-size:27px}#cinema.photo-mode #cinema-note{bottom:28px}}

#detail-actions button+button{margin-top:10px;background:transparent;border:1px solid #9aa595;color:#29392e}
#work-story{inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;overflow-y:auto;background:var(--paper);overscroll-behavior:contain}
.story-header{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 6%;background:#f4f4eff5;border-bottom:1px solid #d4d8cf;font-size:12px}
.story-header button{font-size:12px;padding:12px 0}
#story-content{max-width:1200px;margin:auto;padding:55px 6% 60px}.story-intro{padding:10px 0 40px}.story-intro h1{font-size:clamp(38px,6vw,78px);font-weight:300;line-height:1.2;letter-spacing:-.05em;margin:20px 0}.story-english{font:20px Georgia,serif;color:#727e6c}
#story-content figure{margin:0 0 35px}.story-photo{padding:0;display:block;width:100%;cursor:zoom-in}.story-photo img{width:100%;height:auto;display:block}#story-content figcaption{font-size:11px;color:#687460;line-height:1.7;margin-top:10px}.story-section{display:grid;grid-template-columns:1fr 1.6fr;gap:50px;padding:55px 0;border-top:1px solid #d0d7ca}.story-section h2{font-size:27px;line-height:1.5;font-weight:400;margin:0}.story-section p{font-size:15px;line-height:1.95;word-break:keep-all;margin:0 0 20px}.story-pair{display:grid;grid-template-columns:1fr 1fr;gap:25px}.story-pair img{aspect-ratio:4/3;object-fit:contain}.perspective-list{display:grid;gap:0;margin-top:28px}.perspective-list span{padding:16px 0;border-top:1px solid #c5cebd;font-size:14px}.story-award{padding:18px 22px;background:#e2e8dc;font-family:Georgia,serif}.series-path p{padding:16px 20px;border-left:2px solid #bfc9b7}.series-current{background:#e2e8dc}.story-end{display:block;border:1px solid #8a987e;padding:18px 24px;margin:25px auto}
.cv-index{display:flex;flex-wrap:wrap;gap:12px 22px;margin:35px 0}.cv-index a{font-size:12px;border-bottom:1px solid #a6b49b;padding-bottom:6px}.cv-section{scroll-margin-top:130px;margin-top:60px}.cv-heading{font-weight:400;font-size:26px;margin-top:55px}.cv-section .history-row,.about-grid~.history-list .history-row{grid-template-columns:130px 1fr}.cv-section .history-row h3{font-size:18px}.cv-section .history-list{margin-top:25px}
@media(max-width:760px){#story-content{padding:25px 6% 45px}.story-header{font-size:10px}.story-header button{font-size:10px}.story-section{grid-template-columns:1fr;gap:20px;padding:32px 0}.story-section h2{font-size:23px}.story-section p{font-size:13px}.story-pair{grid-template-columns:1fr;gap:0}.story-english{font-size:15px}.cv-section .history-row,.about-grid~.history-list .history-row{grid-template-columns:75px 1fr;gap:12px}.cv-section .history-row h3{font-size:16px}.cv-index{gap:14px}.cv-section{scroll-margin-top:150px}}
.source-link{display:block;font-size:12px;margin:14px 0;text-decoration:underline;text-underline-offset:4px}

#objects{touch-action:none;user-select:none;-webkit-user-select:none}

/* File dividers belong to the collection, not to the room's entrance. */
#collection-tabs{position:absolute;left:0;top:34%;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:7px;pointer-events:auto}
#collection-tabs[hidden]{display:none!important}
#collection-tabs button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;width:174px;min-height:49px;padding:12px 15px 12px 19px;border:1px solid #e8e4d475;border-left:0;border-radius:0 5px 9px 0;background:linear-gradient(100deg,#c4c8bde8,#e3e5dbeF);color:#36433c;box-shadow:2px 4px 9px #111a1524;transform:translateX(-12px);transition:transform 260ms var(--ease),background 260ms;font-size:11px;text-align:left}
#collection-tabs button:before{content:'';position:absolute;left:5px;top:8px;bottom:8px;border-left:1px solid #8c98836b}
#collection-tabs button small{font-size:9px;white-space:nowrap;opacity:.65}
#collection-tabs button:hover:not(:disabled){transform:translateX(-4px)}
#collection-tabs button[aria-selected=true]{transform:translateX(0);background:linear-gradient(100deg,#edf0e5,#fffef3);color:#233b2c;box-shadow:3px 5px 16px #111a1540;border-right:4px solid #849580}
#collection-tabs button:disabled{cursor:default;opacity:.64;filter:saturate(.35)}
#collection-tabs button:focus-visible{outline:2px solid #e6c77b;outline-offset:3px}
#detail-role{font-size:12px;line-height:1.8;color:#455c47;margin:-8px 0 22px;padding-left:12px;border-left:2px solid #92a38a;word-break:keep-all}
@media(max-width:1000px) and (min-width:761px){#collection-tabs button{width:144px;font-size:10px;padding-right:10px;gap:5px}}
@media(max-width:760px){
 .site-header nav{gap:13px}.site-header nav button{font-size:10px}
 #collection-tabs{top:102px;left:4%;right:0;flex-direction:row;gap:5px;overflow-x:auto;padding:3px 12px 9px 3px;scrollbar-width:none;max-width:96%;align-items:flex-end}
 #collection-tabs::-webkit-scrollbar{display:none}
 #collection-tabs button{flex:0 0 auto;width:auto;min-height:41px;padding:10px 12px;border-left:1px solid #e8e4d475;border-radius:6px 6px 2px 2px;transform:translateY(3px);font-size:10px;gap:8px}
 #collection-tabs button:before{display:none}
 #collection-tabs button[aria-selected=true]{transform:translateY(0);border-right:1px solid #e8e4d475;border-bottom:3px solid #849580}
 #collection-tabs button:hover:not(:disabled){transform:translateY(0)}
 #selector .section-heading{top:160px}#selector .section-heading p{display:none}
 #detail-role{font-size:11px;margin:0 0 16px}
 body[data-mode=detail] #collection-tabs{display:none}
}
@media(prefers-reduced-motion:reduce){#collection-tabs button{transition:none}}

/* Content archive: paper dividers, full book jackets, and playable liner notes. */
#detail-title,#selection-title{word-break:keep-all;overflow-wrap:anywhere}
body[data-mode=detail] #selector .section-heading p{display:none}
.collection-order{position:absolute;top:121px;right:5%;z-index:6;display:flex;align-items:center;gap:12px;font-size:11px;color:#f5f5e9;pointer-events:auto}
.collection-order select{font:inherit;color:inherit;background:#26352ddd;border:1px solid #d8ddcd70;border-radius:3px;padding:10px 28px 10px 12px;max-width:170px;cursor:pointer}
.collection-order select option{background:#26352d;color:#fff}.collection-order select:focus-visible{outline:2px solid #d7c59e;outline-offset:4px}
body[data-mode=detail] .collection-order{display:none}
.selection-meta{display:flex;justify-content:center;align-items:baseline;gap:16px}.selection-meta #selection-year{font-size:11px;color:#eeeede99}
#detail-contents{margin-top:26px;padding-bottom:18px}#detail-contents h3{font-size:16px;font-weight:500;margin:0 0 18px}
.track-list{display:flex;flex-direction:column}.track-button{display:flex;align-items:center;gap:14px;padding:16px 0;text-align:left;width:100%;border-top:1px solid #cdd2c7;color:var(--ink)}
.track-button:hover,.track-button[aria-pressed=true]{background:#e2e7dc}.track-button img{width:76px;aspect-ratio:4/3;object-fit:cover;border-radius:2px;flex-shrink:0}.track-symbol{width:26px;font-size:23px;color:#657763;flex-shrink:0;text-align:center}
.track-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:5px}.track-copy strong{font-size:14px;line-height:1.5;font-weight:500;word-break:keep-all;overflow-wrap:anywhere}.track-copy small{font-size:10px;line-height:1.6;color:#626c60}.track-play{font-size:12px;padding:8px}
.player-title{font-size:13px;font-weight:500;margin:20px 0 10px}.audio-content iframe{border:0}
.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.book-cover{display:flex;width:100%;height:auto;aspect-ratio:2/3;align-items:center;justify-content:center;padding:0;background:#e5e7df}.book-cover img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:2px 5px 9px #1c291a25;transition:transform .25s}
.book-cover:hover img{transform:translateY(-3px)}.book-item h4{font-size:13px;font-weight:500;line-height:1.6;margin:13px 0 5px;word-break:keep-all}.book-item p{font-size:10px;line-height:1.7;margin:0 0 8px;color:#67705f}.book-item a,.book-platform{font-size:10px;line-height:1.7}.book-item a{text-decoration:underline;text-underline-offset:4px}.book-platform{color:#687261}
.work-section{margin:28px 0;border-top:1px solid #cdd2c7;padding-top:24px}.work-section p{font-size:13px;line-height:1.95;word-break:keep-all}
@media(max-width:760px){.collection-order{top:153px;right:6%;gap:6px;font-size:10px}.collection-order select{padding:7px 5px;max-width:135px}.book-grid{gap:24px 16px}.book-item h4{font-size:12px}.track-button{gap:10px}.track-button img{width:62px}.track-copy strong{font-size:12px}.track-play{padding:5px}.selection-sub{max-width:88vw;margin-left:auto;margin-right:auto;line-height:1.8}.work-section p{font-size:12px}#detail-contents h3{font-size:14px}}

/* Opt-in spatial prototype: the photographed room remains the default. */
body.spatial3d #room-image,body.spatial3d #projection{display:none}
body.spatial3d .room-shade{display:none}
body.spatial3d[data-zone=room] #objects{pointer-events:auto;touch-action:pan-y;cursor:pointer}
body.spatial3d .site-header{background:linear-gradient(#15201c70,transparent);padding-bottom:36px}
body.spatial3d .hotspot{transform:translate(-12px,-50%);background:transparent;border-radius:0;backdrop-filter:none;padding:12px 14px;text-shadow:0 1px 7px #000,0 2px 18px #0008}
body.spatial3d .hotspot:hover{transform:translate(-12px,calc(-50% - 4px))}
body.spatial3d .hotspot span{font-size:17px}
body.spatial3d .entrance-footer{text-shadow:0 2px 8px #111b}
body.spatial3d[data-mode=detail] #detail{background:linear-gradient(90deg,#f4f4efcc,#f4f4ef 22%)}
body.spatial3d[data-mode=detail] .site-header nav{color:var(--ink)}
body.spatial3d[data-zone=desk] .desk-objects{background:radial-gradient(ellipse,#19251d55,transparent 70%)}
@media(max-width:760px){
 body.spatial3d .site-header{display:block;padding:20px 6%}
 body.spatial3d .site-header nav{position:fixed;bottom:0;left:0;right:0;justify-content:space-around;background:#ede9dfee;color:#28312b;padding:16px 8%;backdrop-filter:blur(12px)}
 body.spatial3d[data-mode=detail] .site-header nav{color:#28312b}
 body.spatial3d .site-header nav button{font-size:12px;opacity:1}
 body.spatial3d .hotspot{padding:11px 8px;gap:9px}
 body.spatial3d .hotspot span{font-size:14px}
 body.spatial3d .hotspot small,body.spatial3d .hotspot b{display:none}
 body.spatial3d .entrance-footer{bottom:100px}
 body.spatial3d[data-mode=detail] #detail{bottom:58px;background:linear-gradient(#f4f4efd9,#f4f4ef 10%)}
 body.spatial3d .detail-scroll{max-height:calc(55dvh - 142px)}
 body.spatial3d .notes-button{bottom:65px}
}

/* Both wordmarks share a grid cell, keeping the header still during the change. */
.identity-wordmark{display:inline-grid;font-weight:400;line-height:1.2;letter-spacing:-.5px}
.identity-wordmark i{grid-area:1/1;font-style:normal;transition:opacity 180ms ease,transform 220ms cubic-bezier(.2,.7,.2,1)}
.identity-role{opacity:0;transform:translateY(.22em);letter-spacing:.04em}
.identity:focus-visible .identity-name{opacity:0;transform:translateY(-.22em)}
.identity:focus-visible .identity-role{opacity:1;transform:translateY(0)}
@media(hover:hover) and (pointer:fine){.identity:hover .identity-name{opacity:0;transform:translateY(-.22em)}.identity:hover .identity-role{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.identity-wordmark i{transform:none!important}}

/* Credits and per-track listening destinations. */
.listening-links{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:11px;line-height:1.7;margin:8px 0 16px}.listening-links a{border-bottom:1px solid #929e8c;padding:4px 0}.track-item .listening-links{padding-left:90px}.work-section p{white-space:pre-line}@media(max-width:760px){.track-item .listening-links{padding-left:72px}.listening-links{font-size:10px}}

/* Keep the extracted work clear while its description is open. */
body.spatial3d[data-mode=detail] #collection-tabs{display:none}


/* Keep unfinished equipment behind one quiet loading curtain; navigation is revealed with the room. */

/* The entrance is prepared first; an abstract plan echoes its three physical benches. */
.room-loading{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#262925;color:#f1eee5;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s,visibility .45s}
html.room-booting .room-loading{opacity:1;visibility:visible;pointer-events:auto}
html.room-booting main,html.room-booting .site-header{visibility:hidden}
.boot-content{width:min(330px,76vw);text-align:center}
.boot-name{font-size:clamp(32px,4vw,44px);font-weight:400;letter-spacing:-.045em}
.boot-subtitle{margin:10px 0 0;font-size:11px;color:#adb5aa}
.boot-plan{position:relative;width:260px;height:168px;margin:44px auto 30px;transform:perspective(550px) rotateX(48deg) rotateZ(-13deg);border:1px solid #65716155;border-top-color:#b0bba170;box-shadow:0 14px 0 -13px #abb89c30}
.boot-table{position:absolute;border:1px solid #b8c4ac;background:#9caa8c08;box-shadow:4px 7px 0 -3px #6d7b6340}
.boot-sound{left:15px;top:28px;width:39px;height:112px}.boot-desk{left:92px;top:15px;width:86px;height:32px}.boot-art{right:15px;top:28px;width:39px;height:112px}
.boot-signal{position:absolute;left:93px;bottom:30px;width:65px;height:1px;background:#d7dcca;box-shadow:0 0 18px #d7dcca70;animation:boot-breath 2.4s ease-in-out infinite}
.boot-progress{height:1px;background:#616a5d70;width:180px;margin:auto;--loaded:0;overflow:hidden}.boot-progress::after{content:'';display:block;height:100%;width:100%;background:#d7dcca;transform:scaleX(var(--loaded));transform-origin:left;transition:transform .3s}
.boot-caption{font-size:12px;color:#adb5aa;margin:19px 0 0}
@keyframes boot-breath{50%{opacity:.35;transform:scaleX(.45)}}
.room-load-warning{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:99;padding:10px 15px;background:#263126ed;font-size:12px;max-width:90vw}.room-load-warning button{text-decoration:underline}
.room-viewpoints{display:none}
body.spatial3d[data-zone=desk] #objects{pointer-events:auto;touch-action:pan-y}
body.spatial3d[data-zone=desk] .desk-objects{position:fixed;inset:0;display:block;width:100%;height:100%;background:none;perspective:none;pointer-events:none}
body.spatial3d .desk-item{position:absolute;width:116px;height:auto;min-height:48px;display:block;transform:translate(-50%,0);padding:8px 10px;pointer-events:auto;text-shadow:0 1px 5px #111,0 1px 12px #111}
body.spatial3d .desk-item .physical{display:none}
body.spatial3d .object-label{font-size:15px;border-bottom:1px solid #eee8cc70;padding-bottom:6px}
body.spatial3d .object-label small{font-size:10px;opacity:.8}
body.spatial3d .desk-item:hover .object-label{border-color:#fff}
body.spatial3d .desk-caption{top:110px;text-shadow:0 2px 9px #111}
body.spatial3d .desk-caption h1{font-size:25px;margin-bottom:10px}
@media(max-width:760px){
 body.spatial3d[data-zone=room] #objects{touch-action:pan-y;cursor:grab}
 body.spatial3d[data-zone=room] .room-viewpoints{display:block;position:fixed;bottom:103px;left:5%;right:5%;text-align:center;pointer-events:auto}
 .room-viewpoints p{font-size:11px;color:#eee9dc;text-shadow:0 1px 8px #000;margin:0 0 13px}
 .room-viewpoints>div{display:flex;justify-content:center;background:#253027b8;backdrop-filter:blur(10px);border:1px solid #e9e9d64d}
 .room-viewpoints button{flex:1;min-height:46px;padding:8px 3px;font-size:11px;color:#eee9dc}
 .room-viewpoints button[aria-pressed=true]{background:#e4e6d5;color:#28312b}
 body.spatial3d[data-zone=room] .entrance-footer{display:none}
 body.spatial3d .desk-caption{top:145px}
 body.spatial3d #desk .section-heading p{display:none}
 body.spatial3d .desk-caption h1{font-size:23px}
 body.spatial3d .desk-caption p{font-size:11px}
 body.spatial3d .desk-item{width:68px;padding:8px 3px;min-height:50px}
 body.spatial3d .object-label{font-size:13px}
 .room-load-warning{bottom:75px}
}
@media(prefers-reduced-motion:reduce){.boot-signal{animation:none}.room-loading,.boot-progress::after{transition:none}}

html.room-booting #room-image,body.spatial3d #room-image{background-image:none}
