/* The monitor and TV open into flat, legible exhibitions. */
.exhibition-window{position:absolute;inset:0;z-index:8;background:#eee7d9;color:#17212a;opacity:0;pointer-events:none;padding:155px 6% 80px;overflow:hidden;clip-path:inset(calc((1 - var(--portal,1))*22%) calc((1 - var(--portal,1))*24%) calc((1 - var(--portal,1))*18%) round calc((1 - var(--portal,1))*24px));transform:scale(calc(.86 + var(--portal,1)*.14));transform-origin:center;will-change:opacity,transform,clip-path}
.exhibition-window.is-visible{pointer-events:auto}.exhibition-heading{position:absolute;top:112px;left:6%;margin:0;font-size:34px;line-height:1.1;font-weight:600;letter-spacing:-1px}.is-paper .site-header nav{color:#17212a}.is-paper .wordmark img{filter:brightness(0)}.is-paper .site-header a:hover{color:#a34027}.is-paper .site-header a:focus-visible{outline-color:#17212a}
#project-spreads,.project-spread{height:100%}.project-spread{display:none;grid-template-columns:1.25fr 1fr;gap:5%}.project-spread.is-current{display:grid}.tour-project{min-width:0;display:flex;flex-direction:column;opacity:var(--reveal,1);transform:translate3d(0,calc((1 - var(--reveal,1))*50px),0);clip-path:inset(calc((1 - var(--reveal,1))*12%) 0 0);will-change:transform,opacity,clip-path}.tour-project:nth-child(2){transform:translate3d(0,calc((1 - var(--reveal,1))*-65px),0)}.project-art{height:38%;min-height:125px;display:flex;align-items:center;justify-content:center;background:#d4ddd9;overflow:hidden}.project-art>img{height:100%;width:100%;object-fit:contain}.project-art.paper{background:#f9f7f1;padding:12px}.project-art.code{background:#c3d6d8}.project-art.state{background:#d9d0b9}.project-art.wordmark{background:#f2f1e9}.project-art .tile-code{white-space:pre-wrap;color:#243d4b;font:clamp(20px,2vw,28px)/1.6 monospace;padding:22px;max-width:100%}.project-art svg{width:95%;height:90%}.project-copy{padding-top:18px}.project-category{font-size:20px;color:#6d5348;margin:0 0 10px;line-height:1.35}.project-copy h3{font-size:clamp(34px,3.5vw,48px);letter-spacing:-1.2px;font-weight:600;line-height:1.08;margin:0 0 14px}.project-copy>p:not(.project-category){font-size:21px;line-height:1.45;margin:0 0 17px;color:#34424b;max-width:720px}.project-links{display:flex;gap:24px;flex-wrap:wrap}.project-links a{font-size:21px;border-bottom:1px solid #293e4c77;padding-bottom:5px}.project-links a:hover{color:#a34027}.spread-research .project-art,.spread-tools .project-art{height:32%}.spread-tools{grid-template-columns:1.6fr 1fr}.spread-code{grid-template-columns:repeat(3,minmax(0,1fr));gap:3%}.spread-code .project-category{display:none}.spread-code .project-art{height:34%}.spread-code .project-copy h3{font-size:35px}.spread-code .project-copy>p{font-size:20px}.spread-apps{grid-template-columns:1fr 1.3fr}.spread-evidence{display:none}.spread-evidence.is-current{display:block}.spread-evidence .tour-project{height:100%;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.spread-evidence .project-art{height:90%;min-height:300px;background:#bacabd}.spread-evidence .tile-code{font:clamp(26px,2.7vw,38px)/1.8 'DM Sans',sans-serif;white-space:pre-wrap}.spread-evidence .project-copy h3{font-size:clamp(48px,5vw,70px)}
.exhibition-navigation{position:absolute;bottom:25px;left:6%;right:6%;display:flex;justify-content:space-between;gap:28px}.exhibition-navigation button{font-size:21px;color:#17212a;padding:12px 0;border-bottom:1px solid #17212a66}.exhibition-navigation button:hover{color:#a34027}.exhibition-navigation button:disabled{opacity:.3}.exhibition-navigation button:focus-visible{outline-color:#17212a}
#music-window{background:#eee7d9;--portal:0;padding:155px 6% 80px}.music-heading{font-size:clamp(30px,3.2vw,46px);max-width:90%;font-weight:650}.album-wall{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3%;height:100%;align-content:center;align-items:center;transform:translateY(calc((1 - var(--reveal,1))*50px));opacity:var(--reveal,1)}.album-cover{position:relative;display:block;padding:0;aspect-ratio:1;min-width:0;background:none;transition:transform .25s;overflow:visible}.album-cover img{display:block;aspect-ratio:1;object-fit:contain;width:100%;height:100%}.album-cover:hover,.album-cover:focus-visible,.album-cover.is-selected{transform:translateY(-12px);z-index:3;outline:3px solid #203447;outline-offset:7px}.album-details{position:absolute;left:50%;top:calc(100% + 24px);transform:translateX(-50%);width:max-content;max-width:310px;padding:15px 19px;color:#17212a;background:#f7f1e4;box-shadow:5px 5px 0 #17212a18;opacity:0;visibility:hidden;pointer-events:none;text-align:left}.album-details strong{display:block;font-size:26px;line-height:1.12;font-weight:650}.album-details>span{display:block;font-size:21px;margin-top:9px}.album-cover:hover .album-details,.album-cover:focus-visible .album-details,.album-cover.is-selected .album-details{opacity:1;visibility:visible}
#books-window{background:#e7e3d4;clip-path:none;transform:none}.reading-shelf{height:100%;display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;opacity:var(--reveal,1);transform:translateY(calc((1 - var(--reveal,1))*70px))}.current-book{display:flex;gap:8%;align-items:center}.current-book img{max-height:52svh;width:48%;object-fit:contain}.current-book h3{font-size:clamp(46px,5vw,70px);line-height:1.1;margin:15px 0 20px;letter-spacing:-1.5px}.current-book p{font-size:24px;margin:0 0 12px}.next-books>h3{font-size:28px;margin:0 0 25px;font-weight:500}.next-books>div{display:grid;grid-template-columns:1fr 1fr;gap:12%}.next-books img{height:30svh;max-width:100%;object-fit:contain;object-position:left bottom}.next-books h4{font-size:25px;line-height:1.15;margin:20px 0 12px;font-weight:600}.next-books p{font-size:20px;line-height:1.35;margin:0}
.is-loading{overflow:hidden}.is-loading>.site-header{opacity:0}#room-loading{position:fixed;inset:0;z-index:100;background:#10151b;color:#f4ecdf;transition:opacity .55s,clip-path .65s;clip-path:inset(0)}#room-loading.has-entered{opacity:0;clip-path:inset(50% 0 50%);pointer-events:none}#room-loading canvas{position:absolute;inset:0;touch-action:none;cursor:crosshair;outline:none}.loading-heading{position:absolute;top:8%;left:7%;pointer-events:none}.loading-heading img{margin-bottom:25px}.loading-heading h2{font-size:clamp(30px,4vw,56px);font-weight:500;line-height:1.12;letter-spacing:-1px;margin:0}.loading-controls{position:absolute;bottom:8%;left:7%;right:7%;pointer-events:none}.loading-controls p{font-size:22px;margin:0 0 20px}.loading-controls>div:last-child{display:flex;justify-content:space-between;align-items:center;gap:24px}.loading-controls button{pointer-events:auto;font-size:24px;padding:15px 0}.loading-controls #enter-room{color:#ffbd83}.loading-meter{height:2px;background:#ffffff20;margin-bottom:16px}.loading-meter span{display:block;width:calc(var(--loaded,0)*100%);height:100%;background:#9de5da;transition:width .15s}.webgl-unavailable #scene{background:#18252c}.exhibition-unavailable #project-window:after{content:'Explore the projects through GitHub ↗';position:absolute;top:40%;left:10%;font-size:32px}
@media(max-width:1000px){.project-copy h3{font-size:35px}.project-copy>p:not(.project-category){font-size:20px}.project-category{font-size:19px}.spread-code .project-copy h3{font-size:29px}.spread-code .project-copy>p{font-size:19px}.spread-code .project-links{gap:12px}.project-links a{font-size:19px}.album-copy h3{font-size:56px}.current-book{flex-direction:column;align-items:flex-start;gap:25px}.current-book img{max-height:36svh;width:70%}.current-book h3{font-size:44px}.current-book p{font-size:22px}.next-books h4{font-size:23px}.next-books>div{gap:8%}}
@media(max-width:700px){.exhibition-window{padding:128px 6% 75px}.exhibition-heading{top:93px;font-size:27px}.single-project .project-spread{display:contents}.single-project .tour-project{display:none;height:100%}.single-project .tour-project.is-current{display:flex}.single-project .project-art{height:31svh;flex-shrink:0;min-height:125px;max-height:33%}.single-project .project-category{display:none}.single-project .project-copy{padding-top:24px}.single-project .project-copy h3{font-size:36px;line-height:1.07;letter-spacing:-1px}.single-project .project-copy>p:not(.project-category){font-size:20px;line-height:1.4;margin-bottom:17px}.single-project .project-links a{font-size:20px}.single-project .project-links{gap:17px}.single-project .spread-evidence .project-art{height:31svh;min-height:150px}.single-project .spread-evidence .tile-code{font-size:24px}.exhibition-navigation{bottom:20px}.exhibition-navigation button{font-size:20px}.music-heading{font-size:27px;top:94px;line-height:1.15;max-width:85%}#music-window{padding-top:175px}.album-scene{grid-template-columns:1fr;grid-template-rows:1fr auto;gap:26px;align-items:center}.album-art{grid-row:1;width:min(95%,38svh);box-shadow:10px 10px 0 #17212a1c}.album-copy{grid-row:2}.album-copy h3{font-size:39px;letter-spacing:-1.2px;margin:0 0 13px}.album-copy p{font-size:23px}.reading-shelf{grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:30px;align-items:center}.current-book{flex-direction:row;align-items:center;gap:25px}.current-book img{height:25svh;width:auto;max-width:40%;max-height:none}.current-book h3{font-size:40px;margin:12px 0}.current-book p{font-size:21px}.next-books>h3{font-size:23px;margin:0 0 18px}.next-books img{height:20svh;object-position:left bottom}.next-books>div{gap:9%}.next-books h4{font-size:21px;margin:12px 0 8px}.next-books p{font-size:19px}.loading-heading{top:7%}.loading-heading img{width:67px;height:50px}.loading-controls{bottom:7%}.loading-controls button{font-size:21px}.loading-controls p{font-size:20px}.loading-heading h2{font-size:33px;max-width:300px}}
@media(max-height:700px) and (min-width:701px){.exhibition-window{padding-top:142px;padding-bottom:68px}.exhibition-heading{top:106px;font-size:30px}.project-art{height:31%}.project-category{display:none}.project-copy h3{font-size:36px}.project-copy>p:not(.project-category){font-size:20px}.album-art{width:min(100%,53svh)}}
.less-motion .exhibition-window,.less-motion .tour-project,.less-motion .album-copy,.less-motion .album-art,.less-motion .reading-shelf{transform:none!important;clip-path:none!important;transition:none!important}

.project-copy .project-category{display:none}.project-year{font-size:22px!important;font-weight:650;line-height:1.1!important;color:#805036!important;margin:0 0 10px!important}.brand-figure svg{display:block;width:min(100%,620px);height:auto;margin:auto;max-height:240px}.project-art.wordmark svg{width:95%;height:90%}
.loading-heading p{font-size:22px;margin-top:18px;color:#c7d6dd}.welcome-status:empty{display:none}.loading-controls #enter-room{background:#f0dfc4;color:#162330;font-size:26px;font-weight:600;padding:17px 28px}.loading-controls #enter-room:hover{background:#ffbe82;color:#162330}.loading-controls #reset-orbits{color:#d0dce1}.loading-controls #reset-orbits:hover{color:#ffbe82}.loading-heading h2{font-weight:600}.loading-controls .welcome-status{color:#c7d6dd}.less-motion .album-wall,.less-motion .album-cover{transform:none!important;transition:none!important}
@media(max-width:900px){.album-wall{grid-template-columns:repeat(6,minmax(0,1fr));align-content:center;gap:30px 22px}.album-cover{grid-column:span 2}.album-cover:nth-child(4){grid-column:2/span 2}.album-cover:nth-child(5){grid-column:4/span 2}.album-cover img{max-height:26svh}.album-details{max-width:260px}.album-details strong{font-size:24px}}
@media(max-width:700px){#music-window{padding:180px 7% 75px}.music-heading{font-size:29px;line-height:1.1}.album-wall{gap:30px 16px}.album-cover{aspect-ratio:1}.album-cover img{max-height:none}.album-cover:hover,.album-cover:focus-visible,.album-cover.is-selected{transform:translateY(-5px);outline-offset:4px}.album-details{max-width:220px;padding:12px;top:calc(100% + 16px)}.album-details strong{font-size:22px}.album-details>span{font-size:20px}.album-cover:first-child .album-details{left:0;transform:none}.album-cover:nth-child(3) .album-details{left:auto;right:0;transform:none}.loading-heading p{font-size:20px;max-width:260px}.loading-controls #enter-room{font-size:23px;padding:15px 22px}}
@media(max-width:500px){#music-window{padding-top:170px;padding-bottom:65px}.album-wall{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 14px}.album-cover,.album-cover:nth-child(4){grid-column:span 2}.album-cover:nth-child(5){grid-column:2/span 2}.album-cover:nth-child(2) .album-details,.album-cover:nth-child(4) .album-details{left:auto;right:0;transform:none}.album-cover:nth-child(3) .album-details{left:0;right:auto;transform:none}}

/* Welcome: one name, a physical orbit, and one clear next step. */
.loading-heading{top:13%;left:5%;right:5%;text-align:center}
.loading-heading img{position:fixed;top:24px;left:4.5%;width:65px;height:50px;margin:0;opacity:.8}
.loading-heading h1{font-size:clamp(44px,7.7vw,118px);font-weight:750;line-height:.98;letter-spacing:-.055em;margin:0;text-wrap:balance}
.loading-heading p{font-size:20px;line-height:1.4;margin:22px auto 0;max-width:none;color:#c4d4e3}
.loading-controls{bottom:7%;text-align:center}
.loading-controls>div:last-child{justify-content:center}
.loading-controls #enter-room{font-size:clamp(27px,3vw,38px);font-weight:700;min-width:250px;padding:20px 40px;border:2px solid #f0dfc4;box-shadow:0 8px 32px #0003}
.loading-controls #enter-room:focus-visible{outline:3px solid #9ceae7;outline-offset:7px}
.loading-controls #reset-orbits{position:fixed;bottom:7%;left:5%;font-size:20px;padding:20px 0}
.loading-controls .welcome-status{font-size:20px}
.project-art.parameter-art{padding:0;background:#122b37}
.project-art.parameter-art canvas{width:100%;height:100%;display:block}
.project-art.diagram{background:#132937}
.project-copy strong{font-weight:750;color:#17212a}
.project-copy .project-year .submission-label{color:#a34324;font-size:20px;font-weight:700}
@media(max-width:700px){.loading-heading{top:18%;left:7%;right:7%}.loading-heading h1{font-size:clamp(43px,13.3vw,80px);line-height:1.02}.loading-heading p{font-size:18px;margin-top:20px}.loading-heading img{top:20px;left:6%}.loading-controls{bottom:10%}.loading-controls #enter-room{font-size:29px;min-width:260px;padding:20px 28px}.loading-controls #reset-orbits{bottom:2.5%;left:50%;transform:translateX(-50%);padding:12px}.project-copy .project-year .submission-label{font-size:20px}}
@media(max-height:600px) and (min-width:701px){.loading-heading{top:9%}.loading-heading h1{font-size:72px}.loading-heading p{margin-top:12px}.loading-controls{bottom:5%}}

.project-art.transit-paper{padding:0;background:#fff}.project-art.transit-paper>img{object-fit:cover;object-position:50% 36%}
/* A photographic universe; the typography stays quiet at its center. */
#room-loading{background:#000}.welcome-universe{position:absolute;inset:0;overflow:hidden;background:#000;pointer-events:none}.welcome-universe img{position:absolute;object-fit:cover;pointer-events:none}.nebula-cloud{left:-22%;top:-10%;width:84%;height:120%;opacity:.68;mask-image:linear-gradient(90deg,#000 0%,#000 35%,transparent 100%)}.nebula-ring{right:-10%;top:-10%;width:55%;height:80%;object-fit:contain!important;opacity:.68;mask-image:radial-gradient(ellipse,#000 15%,transparent 70%)}.welcome-universe:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000 0%,transparent 30%,#0004 50%,transparent 80%)}
.loading-heading{top:50%;left:6%;right:6%;transform:translateY(-50%);text-align:center}.loading-heading h1{font-size:clamp(38px,5.3vw,72px);font-weight:500;line-height:1.17;letter-spacing:-.045em;max-width:1100px;margin:auto;min-height:1.2em;text-wrap:balance}.loading-heading .welcome-mark{position:fixed;top:calc(-50svh + 35px);left:0;width:65px;height:50px;opacity:.7}.loading-heading #welcome-lion{position:absolute;top:-115px;left:50%;width:65px;height:73px;margin:0;opacity:0;transform:translate(-50%,12px) scale(.8);transition:opacity .3s,transform .4s}.loading-heading #welcome-lion.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}.school-name{color:#e26378}.typing-cursor{display:inline-block;width:2px;height:.87em;margin-left:6px;background:#eee6db;vertical-align:-.02em;animation:cursor-blink .8s steps(1) infinite}.loading-controls{bottom:8%}.loading-controls #enter-room{min-width:255px;background:#f5e3c8;color:#172127;border:1px solid #ffe8ba;border-radius:3px;animation:enter-glow 3s ease-in-out infinite;box-shadow:0 0 26px #efb26c55;font-weight:600;font-size:30px;padding:20px 38px}.loading-controls #enter-room span{display:inline-block;margin-left:20px;animation:enter-arrow 2s ease-in-out infinite}.loading-controls #enter-room:hover{background:#ffcd91;box-shadow:0 0 45px #efb26c88}.loading-controls .welcome-status{font-size:20px}
@keyframes cursor-blink{50%{opacity:0}}@keyframes enter-glow{50%{box-shadow:0 0 42px #efb26c66,0 0 85px #efb26c18}}@keyframes enter-arrow{50%{transform:translateX(6px)}}
@media(max-width:700px){.loading-heading{top:50%;left:7%;right:7%}.loading-heading h1{font-size:clamp(35px,8vw,52px)}.loading-heading .welcome-mark{top:calc(-50svh + 25px)}.nebula-cloud{left:-65%;width:150%;opacity:.6}.nebula-ring{right:-40%;width:100%;top:0;height:55%}.loading-controls{bottom:9%}.loading-controls #enter-room{font-size:27px;min-width:250px}.loading-heading #welcome-lion{width:55px;height:60px;top:-95px}}
@media(prefers-reduced-motion:reduce){.typing-cursor,.loading-controls #enter-room,.loading-controls #enter-room span{animation:none}}
.animated-cover{position:relative;width:100%;height:100%;overflow:hidden}.animated-cover canvas{display:block;width:100%;height:100%}.animated-cover .preview-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);object-fit:contain;width:130px;height:130px;max-height:75%;max-width:55%;pointer-events:none}.animated-cover .logo-narcan{width:70%;height:auto;max-width:75%;background:#f5f3e9;padding:14px 24px}.animated-cover .logo-fair-pay-trail{width:80px;height:80px;max-width:80px;max-height:80px;background:white;border-radius:50%;padding:8px;box-sizing:content-box}.signature-chord{stroke-dasharray:240;animation:chord-trace 5s ease-in-out infinite}.hex-preview-cell{transform-box:fill-box;transform-origin:center;animation:hex-selection 5s ease-in-out var(--delay) infinite}.tour-project:not(.is-current) .signature-chord,.tour-project:not(.is-current) .hex-preview-cell{animation-play-state:paused}.project-spread.is-current .signature-chord,.project-spread.is-current .hex-preview-cell{animation-play-state:running}@keyframes chord-trace{0%,100%{stroke-dashoffset:240}35%,75%{stroke-dashoffset:0}}@keyframes hex-selection{0%,65%,100%{opacity:1;transform:scale(1)}35%{opacity:.7;transform:scale(.89)}}@media(prefers-reduced-motion:reduce){.signature-chord,.hex-preview-cell{animation:none;stroke-dashoffset:0}}
#room-loading>.welcome-mark{position:absolute;top:24px;left:5%;width:65px;height:50px;opacity:.7;pointer-events:none}
.less-motion .signature-chord,.less-motion .hex-preview-cell{animation:none!important;stroke-dashoffset:0}
.cinematic-cover>img{display:block;width:100%;height:100%;object-fit:cover}.cinematic-cover canvas{position:absolute;inset:0}.cinematic-cover:after{content:'';position:absolute;inset:-50%;background:linear-gradient(115deg,transparent 46%,#faba7130 50%,transparent 54%);mix-blend-mode:screen;pointer-events:none;animation:metal-light 8s ease-in-out infinite}.single-project .project-art{width:100%}@keyframes metal-light{0%,100%{transform:translateX(-30%)}50%{transform:translateX(30%)}}@media(prefers-reduced-motion:reduce){.cinematic-cover:after{animation:none}}
.car-cover{position:relative;width:100%;height:100%;background:#102639;overflow:hidden}.car-cover canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y}.car-cover canvas.is-dragging,.animated-cover canvas.is-dragging{cursor:grabbing}.car-fallback{display:none}.model-unavailable .car-fallback{display:block;position:absolute;inset:40% 0;text-align:center;font-size:32px}.animated-cover:has([data-preview="fair-pay-trail"]) canvas{cursor:grab;touch-action:pan-y}.animated-cover .logo-fair-pay-trail{left:24px;top:20px;transform:none;width:38px;height:38px;padding:4px;box-shadow:none}.spread-code{grid-template-columns:1fr 1.2fr}.spread-design{grid-template-columns:1.4fr 1fr}.spread-code .project-copy h3{font-size:clamp(35px,3.5vw,48px)}.spread-code .project-copy>p{font-size:21px}.cinematic-cover:after{mix-blend-mode:soft-light;opacity:.35}.animated-cover canvas:focus-visible,.car-cover canvas:focus-visible{outline:2px solid #a5dee0;outline-offset:-5px}

.illuminated-cover>img{display:block;width:100%;height:100%;object-fit:cover}.illuminated-cover canvas{position:absolute;inset:0}

html.room-direct #room-loading{display:none}html.room-direct .is-loading{overflow:auto}html.room-direct .is-loading>.site-header{opacity:1}

/* Music and books share an opaque, continuous surface during the handoff. */
#books-window{clip-path:none;will-change:opacity}
#music-window .album-wall{transform:translate3d(calc(var(--handoff,0)*-5%),calc((1 - var(--reveal,1))*50px),0);opacity:calc(var(--reveal,1)*(1 - var(--handoff,0)))}

#music-window .music-heading{opacity:calc(1 - var(--handoff,0))}

/* Compact card stacks: color stays in the badges, descriptions stay typographic. */
.project-copy .skill-tags{gap:8px;margin:0 0 16px}.project-copy .skill-tags li{font-size:18px;line-height:1.15;font-weight:650;padding:6px 10px;border-color:var(--tech-halo);background:color-mix(in srgb,var(--tech) 9%,transparent);text-shadow:none}
.project-copy .tone-green{--tech:#216c48;--tech-halo:#216c4840}.project-copy .tone-rose{--tech:#a82e56;--tech-halo:#a82e5640}.project-copy .tone-amber{--tech:#92500e;--tech-halo:#92500e40}
@media(max-width:700px){.single-project .project-copy{padding-top:18px}.single-project .project-copy h3{margin-bottom:11px}.single-project .project-copy>p:not(.project-category){margin-bottom:13px}.project-copy .skill-tags{gap:7px;margin-bottom:15px}.project-copy .skill-tags li{font-size:18px;padding:5px 9px}}

/* A static original mark: no canvas, springs, or pointer work on this card. */
.fairpay-cover{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:38px;background:#e0edf8;border:1px solid #9dbfda;position:relative;padding:24px}
.fairpay-cover img{width:112px;height:auto;image-rendering:auto;object-fit:contain}
.fairpay-flow{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;color:#255d86;font-size:clamp(20px,2vw,25px);font-weight:600;letter-spacing:-.5px}
.fairpay-flow span[aria-hidden]{color:#6a94b2;font-weight:400}
@media(max-width:700px){.fairpay-cover{gap:18px;padding:20px}.fairpay-cover img{width:95px}.fairpay-flow{gap:8px;font-size:20px}}

@media(min-width:1001px){.spread-research,.spread-tools{grid-template-columns:1.1fr 1fr}.spread-research .project-art,.spread-tools .project-art,.spread-apps .project-art{height:28%}}
/* The work exhibition is a quiet desktop inside a physical monitor bezel. */
#project-window.desktop-monitor{inset:100px 3.5% 24px;padding:0;background:#25282b;border:10px solid #25282b;border-radius:19px;transform-origin:center;box-shadow:0 4px 0 #080a0c;overflow:hidden}
.desktop-ui{height:100%;background:#eee7d9;display:grid;grid-template-rows:50px 48px minmax(0,1fr) 62px;border-radius:8px;overflow:hidden}
.desktop-titlebar{display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:#e2dbce;border-bottom:1px solid #b4ab9b}
#project-window .exhibition-heading{position:static;margin:0;font-size:23px;letter-spacing:-.5px;font-weight:600}
#desktop-close{font-size:31px;line-height:1;padding:4px 8px;color:#48515a}#desktop-close:hover{color:#a34027}
#project-folders{display:flex;align-items:center;gap:4px;padding:0 18px;border-bottom:1px solid #c6bcab;overflow-x:auto;scrollbar-width:none}#project-folders::-webkit-scrollbar{display:none}
#project-folders button{white-space:nowrap;font-size:18px;padding:7px 13px;color:#535b60;border-radius:4px}#project-folders button[aria-pressed=true]{color:#fff9ee;background:#31454f}#project-folders button:hover{background:#d6cec0;color:#17212a}
.desktop-content{overflow-y:auto;overscroll-behavior:contain;padding:22px 22px 28px;scrollbar-width:thin;scrollbar-color:#b1a893 transparent}
#project-window #project-spreads,#project-window .project-spread{height:auto;min-height:100%}
#project-window .tour-project{transform:none;clip-path:none;opacity:1;will-change:auto;min-height:0}
#project-window .project-spread.is-current{animation:desktop-file-open .24s ease both}
#project-window .project-art{height:150px;min-height:150px;flex-shrink:0}
#project-window .project-copy h3{font-size:clamp(34px,3.25vw,44px)}
#project-window .project-copy>p:not(.project-category){font-size:21px;line-height:1.45}
#project-window .exhibition-navigation{position:static;align-items:center;padding:0 22px;background:#e2dbce;border-top:1px solid #c6bcab;z-index:1}
#project-window .exhibition-navigation button{font-size:21px;padding:10px 0;border:none}
#project-window .spread-evidence .tour-project{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;height:auto;min-height:100%}
#project-window .spread-evidence .project-art{height:300px;min-height:220px}
#project-window .spread-evidence .project-copy h3{font-size:clamp(36px,4vw,54px)}
#project-window .fairpay-cover{border:none;background:#25446b;padding:24px;gap:0}
.fairpay-wordmark{color:#f3eadd;display:flex;flex-direction:column;align-items:flex-start;font-weight:750;line-height:.88;letter-spacing:-.055em;width:max-content;max-width:100%;font-size:clamp(45px,5.5vw,76px)}.fairpay-wordmark>span:first-child{font-size:1.65em;margin-bottom:14px}
.game-posters article:nth-child(3) img{object-position:22% 50%}
@keyframes desktop-file-open{from{opacity:.45;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:700px){#project-window.desktop-monitor{inset:90px 3% 20px;border-width:6px;border-radius:12px}.desktop-ui{grid-template-rows:42px 45px minmax(0,1fr) 57px;border-radius:5px}.desktop-titlebar{padding:0 16px}#project-window .exhibition-heading{font-size:22px}#project-folders{padding:0 7px;gap:0}#project-folders button{font-size:17px;padding:6px 10px}.desktop-content{padding:18px 16px 22px}#project-window .single-project .project-spread{display:contents}#project-window.single-project .project-spread{display:contents}#project-window.single-project .tour-project.is-current{display:flex;animation:desktop-file-open .24s ease both;gap:0}#project-window .project-art,#project-window .spread-evidence .project-art{height:180px;min-height:160px;max-height:none;width:100%}#project-window .project-copy{padding-top:20px}#project-window .project-copy h3,#project-window .spread-evidence .project-copy h3{font-size:35px}#project-window .project-copy>p:not(.project-category){font-size:20px}.fairpay-wordmark{font-size:42px}#project-window .exhibition-navigation{padding:0 16px}#project-window .exhibition-navigation button{font-size:20px}}
@media(prefers-reduced-motion:reduce){#project-window .project-spread.is-current,#project-window.single-project .tour-project.is-current{animation:none}}
@media(min-width:701px){#project-window.desktop-monitor{inset:82px 3.5% 20px;border-width:8px;box-shadow:0 3px 0 #080a0c,0 0 0 100vmax #ded7c9}.desktop-ui{grid-template-columns:auto minmax(0,1fr) 42px;grid-template-rows:50px minmax(0,1fr) 56px}.desktop-titlebar{display:contents}#project-window .exhibition-heading{grid-row:1;grid-column:1;padding:0 18px;align-self:center}#desktop-close{grid-row:1;grid-column:3;align-self:center;margin-right:7px}#project-folders{grid-row:1;grid-column:2;border-bottom:0;padding:0 6px;gap:0}.desktop-content{grid-row:2;grid-column:1/-1;border-top:1px solid #c6bcab;padding:18px 22px}.desktop-ui>.exhibition-navigation{grid-row:3;grid-column:1/-1}#project-window .project-art{height:130px;min-height:130px}#project-window .project-copy h3{font-size:38px}#project-window .spread-evidence .project-art{height:320px}#project-window .project-copy{padding-top:14px}}
@media(max-width:700px){#project-window.desktop-monitor{box-shadow:0 0 0 100vmax #ded7c9}}

#desktop-backdrop{position:absolute;inset:0;background:#ded7c9;z-index:7;opacity:0;pointer-events:none}
/* The desktop home is the scroll-through doorway; collections contain their own scrolling. */
#project-window.is-overview .desktop-content{overscroll-behavior:auto}
.desktop-overview{display:none}.desktop-overview.is-current{display:block}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4%;padding:24px 16px}
.collection-folder{min-width:0}.collection-open{display:flex;align-items:center;gap:16px;padding:0 0 24px;color:#314e60;width:100%;text-align:left}
.collection-open svg{width:65px;height:52px;flex-shrink:0;transition:transform .2s}.collection-open span{font-size:30px;font-weight:650;letter-spacing:-.7px;color:#17212a}
.collection-folder:nth-child(2) .collection-open{color:#96724e}.collection-folder:nth-child(3) .collection-open{color:#65816e}
.collection-open:hover svg{transform:translateY(-4px) rotate(-3deg)}
.collection-folder ul{list-style:none;padding:0;margin:0;border-top:1px solid #b6af9f}
.collection-folder li{border-bottom:1px solid #cfc5b5}.collection-folder li button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:15px 0;text-align:left;font-size:20px;line-height:1.25;color:#293e4a}
.collection-folder li button span{opacity:.45;flex-shrink:0}.collection-folder li button:hover{color:#a34027}.collection-folder li button:hover span{opacity:1}
#project-window .spread-apps,#project-window .spread-games{grid-template-columns:1.1fr 1fr}
#project-window .spread-single .tour-project{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;grid-column:1/-1}
#project-window .spread-single .project-art{height:280px}
#project-window.is-overview #project-prev,#project-window.is-overview #project-next{font-size:20px}
#project-overview{color:#5b625f!important}#project-overview:hover{color:#a34027!important}
#project-window #project-overview[hidden]{display:none}
@media(max-width:700px){.collection-grid{grid-template-columns:1fr;gap:34px;padding:4px 0 12px}.collection-open{padding-bottom:14px;gap:13px}.collection-open span{font-size:28px}.collection-open svg{width:51px;height:42px}.collection-folder li button{font-size:20px;padding:14px 0}#project-window .exhibition-navigation{gap:12px}#project-window .exhibition-navigation button{font-size:17px}#project-window.is-overview .exhibition-navigation button{font-size:18px}#project-window.single-project .spread-single .tour-project.is-current{display:flex}#project-window.single-project .spread-single .project-art{height:180px}}
@media(max-width:700px){#project-window.single-project .tour-project{display:none}#project-window.single-project .tour-project.is-current{display:flex}#project-window.is-overview #project-prev,#project-window.is-overview #project-next{font-size:18px;white-space:nowrap}}
/* Each collection is one continuous grid, with navigation only between collections. */
#project-window .project-spread{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:5%;row-gap:48px;align-items:start;align-content:start;min-height:0;padding-bottom:20px}
#project-window .tour-project{border-bottom:1px solid #c7bcab;padding-bottom:28px;gap:0}
#project-window .project-art{height:185px;min-height:185px}
.collection-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:3%;padding-left:8px;padding-right:8px}
.collection-folder:nth-child(4) .collection-open{color:#776958}
.collection-open:hover{color:#314e60}.collection-folder:nth-child(2) .collection-open:hover{color:#96724e}.collection-folder:nth-child(3) .collection-open:hover{color:#65816e}.collection-folder:nth-child(4) .collection-open:hover{color:#776958}
.collection-open:hover svg{transform:none}.collection-open:hover span{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.collection-open{gap:12px}.collection-open svg{width:49px;height:43px}.collection-open span{font-size:28px}
@media(max-width:1100px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}}
@media(max-width:700px){.collection-grid{grid-template-columns:1fr;gap:34px;padding:4px 0 12px}#project-window .project-spread.is-current{display:grid;grid-template-columns:1fr;gap:34px}#project-window .project-art{height:180px;min-height:180px}#project-window .project-copy h3{font-size:35px}#project-window .tour-project{display:flex}.collection-open span{font-size:28px}#project-window .exhibition-navigation button{font-size:17px;white-space:nowrap}#project-window .exhibition-navigation{gap:12px}}
/* A compact physics palette leaves the welcome name and Continue in charge. */
.loading-controls .space-actions{display:flex;align-items:end;justify-content:space-between;gap:24px}
.space-tools{display:flex;gap:12px;pointer-events:auto}
.loading-controls .space-tools button{font-size:20px;padding:12px 17px;color:#c5dce4;border:1px solid #bad6e43a;border-radius:4px;background:#02060ab3;backdrop-filter:blur(8px)}
.loading-controls .space-tools button:hover,.loading-controls .space-tools button[aria-pressed=true]{color:#fff;border-color:#9ee5ed;background:#163742cc}
@media(max-width:700px){.loading-controls .space-actions{flex-direction:column;align-items:stretch;gap:18px}.space-tools{justify-content:center}.loading-controls .space-tools button{font-size:18px;padding:10px 15px}.loading-controls #enter-room{width:100%}}
/* Spacecraft: the project desktop stays intact; personal objects stay in the cabin. */
#scene{background:#020710}
#cockpit-tooltip{position:absolute;z-index:9;bottom:7%;left:6%;max-width:min(560px,85%);padding:15px 20px;font-size:24px;line-height:1.35;color:#eee7d9;background:#08121eea;border-left:3px solid #9ee1da;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s;pointer-events:none}
#cockpit-tooltip.is-visible{opacity:1;transform:translateY(0)}
.sky-credit{position:absolute;right:22px;bottom:21px;z-index:5;font-size:16px;color:#b4c8d5;background:#030911a6;padding:8px 11px;border-radius:3px}
.sky-credit:hover{color:#fff}
.cockpit-object-list:focus-within{clip-path:none;position:absolute;bottom:8%;left:6%;width:min(550px,88%);height:auto;white-space:normal;z-index:9;padding:16px;background:#071320}
.cockpit-object-list button:focus{font-size:22px;color:#d7f3ee}
.cockpit-object-list:focus-within button:not(:focus){display:none}
.loading-controls .space-actions{justify-content:center}.loading-controls .space-tools{position:absolute;left:0;bottom:12px}
@media(max-width:700px){.sky-credit{right:12px;bottom:9px;font-size:15px}#cockpit-tooltip{font-size:21px;bottom:8%}.loading-controls .space-tools{position:static}.loading-controls .space-actions{align-items:stretch}#games-caption{top:auto;bottom:12%;right:6%;width:88%;text-align:left}#games-caption p{max-width:none;font-size:24px}}

/* Cursor-following anchor is independent of the canvas and never interpolates. */
.drag-guide{position:absolute;left:0;top:0;z-index:3;pointer-events:none;width:1px;height:1px;opacity:.55;will-change:transform;transition:none!important;transform-origin:0 0}
.drag-guide[hidden]{display:none}.drag-guide svg{overflow:visible;position:absolute;left:-12px;top:-50px}
.drag-guide-path{fill:none;stroke:#c3e7ff;stroke-width:1.4;stroke-dasharray:2 6}
.drag-guide-cursor{fill:#aad9ff38;stroke:#d3edff;stroke-width:1.4;animation:drag-demo 3.6s ease-in-out infinite;will-change:transform}
.drag-guide-press{fill:none;animation:drag-press 3.6s ease-out infinite}
@keyframes drag-demo{0%,22%,100%{transform:translate(0,0)}65%,80%{transform:translate(72px,-30px)}}
@keyframes drag-press{0%,25%{opacity:.8}30%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.drag-guide{display:none}}

/* One live application surface, attached to the dashboard until it fills the view. */
#project-window.desktop-monitor{inset:auto;left:0;top:0;transform-origin:0 0;clip-path:none;will-change:transform;box-shadow:none;border-width:calc(var(--screen-expand,0)*8px);border-radius:calc(var(--screen-expand,0)*14px);background:#eee7d9}
#project-window .desktop-ui{border-radius:calc(var(--screen-expand,0)*6px)}

#room-loading>.welcome-mark{width:54px;height:34px;opacity:.85}
