:root{--paper:#e9e8e1;--ink:#101111;--muted:rgba(16,17,17,.52);--line:rgba(16,17,17,.17);--acid:#d7ff43;--glass:rgba(236,236,229,.72);--ease:cubic-bezier(.76,0,.18,1)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#111;color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:1px solid var(--acid);outline-offset:5px}[hidden]{display:none!important}
#museum-canvas{display:block;width:100%;height:100%;touch-action:none}.vignette{position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(circle at center,transparent 45%,rgba(0,0,0,.16) 100%);mix-blend-mode:multiply}.reticle{position:fixed;z-index:20;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:.3s}.reticle:before,.reticle:after{content:"";position:absolute;background:rgba(255,255,255,.65)}.reticle:before{width:1px;height:8px;left:10px;top:7px}.reticle:after{height:1px;width:8px;top:10px;left:7px}.reticle i{position:absolute;inset:0;border:1px solid var(--acid);border-radius:50%;transform:scale(.3);opacity:0;transition:.25s}.reticle.on i{transform:scale(1);opacity:1}.exploring .reticle{opacity:1}
.loading-screen{position:fixed;inset:0;z-index:200;background:#111;color:#e9e8e1;display:grid;place-content:center;justify-items:center;gap:25px;transition:opacity .8s,visibility .8s}.loading-screen.done{opacity:0;visibility:hidden}.loading-mark{font-size:42px;font-weight:300;letter-spacing:-.07em}.loading-mark span{color:var(--acid)}.loading-screen p{margin:0;font:8px/1 monospace;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.5)}.loading-line{width:140px;height:1px;background:rgba(255,255,255,.15)}.loading-line i{display:block;width:0;height:100%;background:var(--acid);transition:width .3s}
.intro{position:fixed;inset:0;z-index:100;padding:28px 36px 34px;background:var(--paper);overflow:hidden}.intro:before{content:"";position:absolute;width:58vw;height:58vw;border-radius:50%;left:52%;top:48%;transform:translate(-50%,-50%);background:radial-gradient(circle at 40% 42%,rgba(215,255,67,.92),rgba(196,228,58,.32) 26%,rgba(0,0,0,.025) 59%,transparent 61%);filter:blur(7px)}.intro header{position:relative;z-index:2;display:flex;justify-content:space-between;font:9px monospace;text-transform:uppercase;letter-spacing:.12em}.intro-title{position:absolute;z-index:2;left:5vw;top:46%;transform:translateY(-50%)}.intro-title p{margin:0 0 14px;font:9px monospace;letter-spacing:.15em;text-transform:uppercase}.intro-title h1{margin:0;font-size:clamp(80px,12vw,180px);font-weight:380;line-height:.68;letter-spacing:-.09em}.intro-title em{font-weight:220}.intro-orbit{position:absolute;right:13vw;top:13vh;width:min(30vw,440px);aspect-ratio:1;border:1px solid rgba(0,0,0,.18);border-radius:50%;animation:orbit 18s linear infinite}.intro-orbit>i:first-child{position:absolute;inset:18%;border:1px dashed rgba(0,0,0,.25);border-radius:50%}.intro-orbit>i:nth-child(2){position:absolute;width:9px;height:9px;border-radius:50%;background:#111;left:13%;top:18%;box-shadow:0 0 0 8px rgba(215,255,67,.8)}.intro-orbit span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#111;color:#eee;font:10px monospace}@keyframes orbit{to{transform:rotate(360deg)}}
.intro-bottom{position:absolute;z-index:3;left:36px;right:36px;bottom:30px;display:grid;grid-template-columns:1fr auto 1fr;align-items:end}.intro-bottom>p{margin:0;font-size:12px;line-height:1.4}.intro-bottom .intro-note{text-align:right;font:8px/1.6 monospace;letter-spacing:.09em;text-transform:uppercase;opacity:.55}.intro-bottom button{width:170px;height:170px;border-radius:50%;border:1px solid #111;background:transparent;display:flex;align-items:center;justify-content:center;gap:20px;text-transform:uppercase;font:9px monospace;letter-spacing:.11em;cursor:pointer;transition:.5s}.intro-bottom button i{font-size:20px;font-style:normal}.intro-bottom button:hover{background:#111;color:#eee;transform:rotate(-5deg) scale(1.03)}
.interface{position:fixed;inset:0;z-index:15;pointer-events:none;color:#fff;opacity:0;transition:opacity .8s}.exploring .interface{opacity:1}.topbar{position:absolute;left:25px;right:25px;top:22px;display:flex;align-items:flex-start;justify-content:space-between}.museum-brand{display:flex;gap:11px;align-items:flex-start}.museum-brand strong{font-size:22px;font-weight:350;letter-spacing:-.08em}.museum-brand strong span{color:var(--acid)}.museum-brand small{padding-left:11px;border-left:1px solid rgba(255,255,255,.3);font:7px/1.3 monospace;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.55)}.location-readout{display:flex;align-items:center;gap:13px;font:8px monospace;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.65)}.location-readout i{width:4px;height:4px;border-radius:50%;background:var(--acid);box-shadow:0 0 8px var(--acid)}.controls{display:flex;align-items:center;gap:20px;pointer-events:auto}.light-control{display:flex;align-items:center;gap:9px;font:8px monospace;text-transform:uppercase;letter-spacing:.12em}.light-control input{width:70px;height:1px;appearance:none;background:rgba(255,255,255,.35)}.light-control input::-webkit-slider-thumb{appearance:none;width:8px;height:8px;border:0;border-radius:50%;background:var(--acid);cursor:pointer}.light-control output{width:20px;color:rgba(255,255,255,.55)}#theme-toggle{display:flex;align-items:center;gap:8px;padding:0;border:0;background:none;text-transform:uppercase;font:8px monospace;letter-spacing:.1em;cursor:pointer}#theme-toggle i{width:25px;height:13px;border:1px solid rgba(255,255,255,.45);border-radius:10px;position:relative}#theme-toggle i:after{content:"";position:absolute;width:7px;height:7px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.3s}.dark-mode #theme-toggle i:after{left:14px;background:var(--acid)}.fullscreen-toggle{width:30px;height:30px;padding:6px;border:1px solid rgba(255,255,255,.34);border-radius:50%;background:rgba(10,12,12,.18);color:rgba(255,255,255,.86);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(10px);transition:border-color .28s,background .28s,color .28s,transform .28s}.fullscreen-toggle:hover,.fullscreen-toggle:focus-visible{outline:0;border-color:var(--acid);background:rgba(10,12,12,.52);color:var(--acid);transform:scale(1.06)}.fullscreen-toggle svg{width:16px;height:16px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.fullscreen-collapse{display:none}.fullscreen-toggle.is-fullscreen .fullscreen-expand{display:none}.fullscreen-toggle.is-fullscreen .fullscreen-collapse{display:block}
.floor-index{position:absolute;left:26px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:11px}.floor-index .floor-label{font:7px monospace;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.48);writing-mode:vertical-rl;transform:rotate(180deg);margin-bottom:8px}.floor-index button{width:24px;height:24px;padding:0;border:0;background:none;color:rgba(255,255,255,.32);font:8px monospace;pointer-events:auto;cursor:pointer;transition:.3s}.floor-index button.active{color:#fff;border:1px solid var(--acid);border-radius:50%}.floor-line{width:1px;height:62px;background:linear-gradient(var(--acid),rgba(255,255,255,.12))}
.movement-hint{position:absolute;left:26px;bottom:23px;display:flex;gap:20px;align-items:center;color:rgba(255,255,255,.55);font:7px monospace;text-transform:uppercase;letter-spacing:.08em}.movement-hint>span{display:flex;align-items:center;gap:5px}.movement-hint kbd,.map-button kbd,.generate-button kbd{min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.26);border-radius:3px;background:rgba(10,10,10,.25);color:#fff;font:7px monospace;box-shadow:none}.mouse-icon{width:10px;height:15px;border:1px solid rgba(255,255,255,.5);border-radius:6px;position:relative}.mouse-icon:after{content:"";position:absolute;left:4px;top:2px;width:1px;height:4px;background:var(--acid)}.map-button,.generate-button{position:absolute;bottom:21px;display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;color:#fff;font:8px monospace;text-transform:uppercase;letter-spacing:.1em;pointer-events:auto;cursor:pointer}.map-button{right:66px}.generate-button{right:145px}.info-button{position:absolute;right:24px;bottom:20px;width:22px;height:22px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(10,10,10,.2);color:#fff;font:9px serif;pointer-events:auto;cursor:pointer}
.art-prompt{position:absolute;left:50%;top:calc(50% + 40px);transform:translate(-50%,12px);min-width:240px;padding:10px 14px;background:rgba(9,10,10,.72);border-top:1px solid var(--acid);backdrop-filter:blur(10px);display:grid;grid-template-columns:auto 1fr;gap:3px 14px;opacity:0;transition:.3s}.art-prompt.show{opacity:1;transform:translate(-50%,0)}.art-prompt span{grid-row:1/3;font:7px monospace;color:var(--acid)}.art-prompt strong{font-size:11px;font-weight:450}.art-prompt small{font:7px monospace;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.45)}
.pause-screen{position:fixed;z-index:60;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 40px));padding:30px;background:rgba(235,235,228,.95);backdrop-filter:blur(20px);color:#111}.pause-screen p{margin:0 0 25px;font:8px monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.5}.pause-screen h2{margin:0 0 45px;font-size:48px;font-weight:280;letter-spacing:-.06em}.pause-screen button{width:100%;padding:14px 0;border:0;border-top:1px solid rgba(0,0,0,.18);background:none;text-align:left;font:9px monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}.pause-screen button span{float:right}
.map-panel{position:fixed;z-index:80;inset:0;padding:30px 40px;background:rgba(232,231,224,.98);color:#111;animation:panel-in .8s var(--ease) both}@keyframes panel-in{from{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}.map-panel header{display:flex;justify-content:space-between}.map-panel header p,.info-panel>p{margin:0 0 8px;font:8px monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.5}.map-panel h2{margin:0;font-size:clamp(44px,6vw,84px);font-weight:270;letter-spacing:-.07em;line-height:.86}.map-panel header button,.art-detail>button,.info-panel>button{align-self:flex-start;border:0;background:none;text-transform:uppercase;font:8px monospace;letter-spacing:.12em;cursor:pointer}.map-layout{height:calc(100% - 150px);margin-top:30px;display:grid;grid-template-columns:1.6fr 1fr;gap:6vw}.map-diagram{position:relative;perspective:900px;display:flex;align-items:center;justify-content:center}.plan{position:absolute;width:min(42vw,600px);height:min(25vw,340px);border:1px solid rgba(0,0,0,.22);background:rgba(255,255,255,.28);transform:rotateX(58deg) rotateZ(-8deg);box-shadow:15px 20px 35px rgba(0,0,0,.06)}.plan-1{transform:translateY(110px) rotateX(58deg) rotateZ(-8deg)}.plan-2{transform:translateY(0) rotateX(58deg) rotateZ(-8deg)}.plan-3{transform:translateY(-110px) rotateX(58deg) rotateZ(-8deg)}.plan>span{position:absolute;left:12px;top:10px;font:10px monospace}.plan>b{position:absolute;right:12px;bottom:10px;font:8px monospace;font-weight:400;text-transform:uppercase;letter-spacing:.1em}.ring-plan,.atrium-plan{position:absolute;left:50%;top:50%;width:42%;height:55%;transform:translate(-50%,-50%);border:1px solid #111;border-radius:50%}.atrium-plan{border-radius:0}.ramp-plan{position:absolute;left:10%;bottom:12%;width:34%;height:8%;border:1px solid #111;transform:rotate(-24deg)}.wing{position:absolute;top:25%;bottom:25%;width:28%;border:1px solid #111}.wing.west{left:8%}.wing.east{right:8%}.bridge{position:absolute;left:36%;right:36%;top:46%;height:9%;border:1px solid #111}.map-copy{align-self:end;padding-bottom:5vh}.map-copy>p{font-size:13px;line-height:1.6;max-width:390px}.map-copy dl,.detail-copy dl{margin-top:35px;border-top:1px solid rgba(0,0,0,.2)}.map-copy dt,.map-copy dd,.detail-copy dt,.detail-copy dd{margin:0;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.12);font:9px monospace}.map-copy dt,.detail-copy dt{float:left;width:55px;opacity:.5}.map-copy dd,.detail-copy dd{padding-left:55px}
.art-detail{position:fixed;z-index:90;inset:0;display:grid;grid-template-columns:66% 34%;background:#dedfd9;color:#111;animation:panel-in .8s var(--ease) both}.art-detail>button{position:absolute;z-index:2;right:28px;top:26px}.detail-image{margin:12px;overflow:hidden;background:#222}.detail-image img{width:100%;height:100%;object-fit:cover;animation:image-in 1.2s .2s ease both}@keyframes image-in{from{transform:scale(1.12);filter:blur(10px)}to{transform:none;filter:none}}.detail-copy{padding:15vh 3.5vw 5vh;display:flex;flex-direction:column}.detail-copy>p:first-child{margin:0;font:8px monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.5}.detail-copy h2{margin:5vh 0 7vh;font-size:clamp(50px,6vw,94px);line-height:.84;font-weight:270;letter-spacing:-.075em}.detail-copy>p:not(:first-child){max-width:380px;font-size:12px;line-height:1.6}.detail-copy>button{margin-top:auto;padding:14px 0;border:0;border-top:1px solid rgba(0,0,0,.2);background:none;text-align:left;font:9px monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}.detail-copy>button span{float:right}
.info-panel,.generator-panel{position:fixed;z-index:85;right:0;top:0;bottom:0;width:min(560px,100%);padding:60px 50px;background:rgba(232,231,224,.98);color:#111;animation:info-in .7s var(--ease) both}@keyframes info-in{from{transform:translateX(100%)}to{transform:none}}.info-panel>button,.generator-panel>button{position:absolute;right:28px;top:27px;border:0;background:none;text-transform:uppercase;font:8px monospace;letter-spacing:.12em;cursor:pointer}.info-panel h2,.generator-panel h2{margin:8vh 0 12vh;font-size:clamp(48px,5.5vw,78px);font-weight:280;line-height:.9;letter-spacing:-.07em}.info-panel h2 em{font-weight:220}.info-panel>p,.generator-panel>p{margin:0 0 8px;font:8px monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.5}.info-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid rgba(0,0,0,.2);padding-top:20px}.info-panel>div p{font-size:11px;line-height:1.6}.generator-copy{margin-top:auto;border-top:1px solid rgba(0,0,0,.2);padding-top:20px}.generator-copy>p{max-width:420px;font-size:12px;line-height:1.65}.plan-status{display:flex;justify-content:space-between;margin:36px 0 24px;padding:13px 0;border-top:1px solid rgba(0,0,0,.14);border-bottom:1px solid rgba(0,0,0,.14);font:8px monospace;text-transform:uppercase;letter-spacing:.1em}.plan-status strong{color:#536314}.generator-copy>button{width:100%;padding:15px 0;border:0;border-bottom:1px solid rgba(0,0,0,.17);background:none;text-align:left;font:9px monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}.generator-copy>button span{float:right}.regeneration-screen{position:fixed;z-index:250;inset:0;background:#171a19;color:#eee;display:grid;place-content:center;justify-items:center;gap:22px;font:8px monospace;text-transform:uppercase;letter-spacing:.16em}.regeneration-screen i{width:160px;height:1px;background:linear-gradient(90deg,transparent,var(--acid),transparent);animation:scan 1s ease-in-out infinite}@keyframes scan{50%{transform:scaleX(.25);opacity:.5}}
.mobile-controls{display:none}.webgl-error{position:fixed;z-index:300;inset:0;background:#111;color:#eee;padding:10vw}.webgl-error h1{font-size:10vw;font-weight:280;letter-spacing:-.08em}.webgl-error p{font-size:14px}
.dark-mode{--paper:#2b2e2d;--ink:#efefe8}.dark-mode .intro{color:#efefe8}.dark-mode .intro:before{background:radial-gradient(circle at 40% 42%,rgba(215,255,67,.48),rgba(116,132,50,.22) 28%,rgba(255,255,255,.025) 59%,transparent 61%)}.dark-mode .intro-orbit{border-color:rgba(255,255,255,.22)}.dark-mode .intro-orbit>i:first-child{border-color:rgba(255,255,255,.26)}.dark-mode .intro-orbit>i:nth-child(2),.dark-mode .intro-orbit span{background:#eee;color:#111}.dark-mode .intro-bottom button{border-color:#eee}.dark-mode .intro-bottom button:hover{background:#eee;color:#111}
.map-work-dot{position:absolute;z-index:8;width:18px;height:18px;padding:0;transform:translate(-50%,-50%);border:1px solid #111;border-radius:50%;background:var(--acid);color:#111;display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .25s,background .25s}.map-work-dot span{font:6px monospace;pointer-events:none}.map-work-dot:hover,.map-work-dot:focus-visible{transform:translate(-50%,-50%) scale(1.45);background:#111;color:#fff;outline:none}.plan:hover{z-index:12}.platform-shape{position:absolute;border:1px solid rgba(17,17,17,.58);background:rgba(255,255,255,.34);pointer-events:none}.map-ramp-shape{position:absolute;z-index:3;border:1px solid #111;background:repeating-linear-gradient(135deg,var(--acid) 0 4px,rgba(17,17,17,.12) 4px 7px);pointer-events:none}.map-preview{position:absolute;z-index:30;left:0;top:0;right:auto;bottom:auto;width:260px;max-width:55vw;padding:9px;background:#0e1010;color:#fff;border:1px solid rgba(255,255,255,.15);box-shadow:0 20px 55px rgba(0,0,0,.32);opacity:0;transform:translate(-50%,calc(-100% - 16px)) scale(.97);transform-origin:50% 100%;pointer-events:none;transition:opacity .22s,transform .22s}.map-preview::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #0e1010}.map-preview.show{opacity:1;transform:translate(-50%,calc(-100% - 16px)) scale(1)}.map-preview img{display:block;width:100%;aspect-ratio:1.78;object-fit:cover;border-bottom:1px solid rgba(255,255,255,.12)}.map-preview p{margin:11px 5px 5px;display:grid;grid-template-columns:42px 1fr;gap:4px 10px;align-items:start}.map-preview p span{grid-row:1/3;font:600 8px/1.4 monospace;color:var(--acid)}.map-preview strong{font-size:13px;line-height:1.2;font-weight:550;color:#fff}.map-preview small{font:8px/1.3 monospace;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.72)}
@media(max-width:800px){.intro{padding:20px}.intro header span:last-child{display:none}.intro-title{left:20px;top:43%}.intro-title h1{font-size:22vw;line-height:.75}.intro-orbit{right:-12vw;top:9vh;width:68vw}.intro-bottom{left:20px;right:20px;grid-template-columns:1fr auto}.intro-bottom button{width:120px;height:120px}.intro-bottom .intro-note{display:none}.location-readout,.light-control,.movement-hint{display:none}.topbar{left:16px;right:16px;top:15px}.floor-index{left:13px}.map-button{right:55px;bottom:15px}.info-button{right:17px;bottom:14px}.mobile-controls{display:block;position:fixed;z-index:18;inset:0;pointer-events:none}.joystick{position:absolute;left:24px;bottom:30px;width:92px;height:92px;border:1px solid rgba(255,255,255,.22);border-radius:50%;pointer-events:auto;touch-action:none}.joystick i{position:absolute;left:31px;top:31px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.28);border:1px solid var(--acid)}.look-zone{position:absolute;right:0;top:15%;bottom:15%;width:55%;pointer-events:auto;touch-action:none}.look-zone span{position:absolute;right:20px;bottom:20px;font:7px monospace;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.4)}.reticle{display:none}.map-panel{padding:22px 18px}.map-layout{grid-template-columns:1fr;height:auto}.map-diagram{height:48vh}.plan{width:76vw;height:45vw}.map-preview{width:min(240px,58vw)}.map-copy{display:none}.art-detail{grid-template-columns:1fr;grid-template-rows:55% 45%;overflow:auto}.detail-image{margin:8px}.detail-copy{padding:25px 22px}.detail-copy h2{margin:16px 0 25px;font-size:48px}.detail-copy dl{display:none}.detail-copy>p:not(:first-child){margin:0}.detail-copy>button{margin-top:18px}.art-detail>button{top:18px;right:18px;padding:8px;background:rgba(235,235,228,.8)}.info-panel{padding:50px 25px}.info-panel h2{margin:8vh 0}.info-panel>div{grid-template-columns:1fr}.info-panel>div p:last-child{display:none}.art-prompt{top:auto;bottom:135px}.controls{gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.plan>span,.plan>b{z-index:6}.generator-copy{display:block}.platform-shape.floor-wood{background:repeating-linear-gradient(0deg,rgba(125,82,48,.35) 0 4px,rgba(183,135,91,.3) 4px 8px)}.platform-shape.floor-terrazzo{background-color:rgba(225,211,188,.68);background-image:linear-gradient(90deg,rgba(104,87,67,.1) 1px,transparent 1px),linear-gradient(0deg,rgba(104,87,67,.1) 1px,transparent 1px),linear-gradient(135deg,rgba(255,248,232,.16),rgba(157,132,101,.06));background-size:24px 24px,24px 24px,100% 100%}.platform-shape.floor-stone{background:rgba(208,208,201,.45)}.map-wall-shape{position:absolute;z-index:2;background:#111;pointer-events:none}.map-feature{position:absolute;z-index:4;width:13px;height:13px;transform:translate(-50%,-50%);display:grid;place-items:center;border:1px solid rgba(17,17,17,.55);border-radius:50%;background:rgba(255,255,255,.82);font:6px monospace;font-style:normal;pointer-events:none}
@media(max-width:800px){.generate-button{right:126px;bottom:15px}.info-panel,.generator-panel{padding:50px 25px}.info-panel h2,.generator-panel h2{margin:8vh 0}.generator-panel h2{font-size:48px}.generator-copy{margin-top:0}}
.intro{padding:30px 38px;background:#171918 url("assets/museum-unlimited-hero.jpg") center center/cover no-repeat;color:#fff}.intro:before,.dark-mode .intro:before{inset:0;width:auto;height:auto;left:0;top:0;transform:none;border-radius:0;background:linear-gradient(180deg,rgba(7,9,9,.48),rgba(7,9,9,.1) 30%,rgba(7,9,9,.26) 64%,rgba(7,9,9,.78));filter:none}.intro header{color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.55)}.intro-title{left:50%;top:51%;width:min(900px,calc(100vw - 40px));transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff}.intro-title p{margin:0 0 18px;font:9px monospace;letter-spacing:.25em;text-transform:uppercase;color:rgba(255,255,255,.78);text-shadow:0 1px 16px rgba(0,0,0,.6)}.intro-title h1{margin:0;font-size:clamp(74px,10.6vw,158px);font-weight:300;line-height:.72;letter-spacing:-.075em;text-shadow:0 8px 45px rgba(0,0,0,.38)}.intro-title h1 em{font-style:normal;font-weight:220}.intro-title>span{max-width:560px;margin-top:30px;font-size:12px;line-height:1.5;letter-spacing:.015em;color:rgba(255,255,255,.72);text-shadow:0 2px 14px rgba(0,0,0,.8)}.intro-actions{display:flex;gap:12px;margin-top:32px}.intro-actions button{min-width:178px;height:50px;padding:0 22px;border:1px solid rgba(255,255,255,.48);border-radius:999px;background:rgba(13,15,15,.48);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;text-transform:uppercase;font:8px monospace;letter-spacing:.12em;cursor:pointer;backdrop-filter:blur(16px);transition:transform .35s,background .35s,color .35s,border-color .35s}.intro-actions button:first-child{background:var(--acid);border-color:var(--acid);color:#111}.intro-actions button i{font-size:15px;font-style:normal}.intro-actions button:hover{transform:translateY(-3px);background:#fff;border-color:#fff;color:#111}.intro-actions button:first-child:hover{background:#edff9e;border-color:#edff9e}.intro-orbit,.intro-bottom{display:none}
@media(max-width:650px){.intro{padding:20px;background-position:58% center}.intro-title{top:50%}.intro-title p{margin-bottom:14px}.intro-title h1{font-size:20vw;line-height:.76}.intro-title>span{max-width:320px;margin-top:22px;font-size:10px}.intro-actions{width:min(360px,100%);margin-top:25px;flex-direction:column}.intro-actions button{width:100%;min-width:0;height:48px}.intro header span:last-child{display:none}}
.intro{background-image:url("assets/museum-unlimited-hero.png")}
.intro{background-image:url("assets/museum-unlimited-hero.jpg")}

/* Startup message and design credit. */
.intro header{font-size:10px}.intro header a{color:rgba(255,255,255,.9);font:inherit;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;text-shadow:0 1px 14px rgba(0,0,0,.72);transition:color .25s}.intro header a:hover,.intro header a:focus-visible{color:var(--acid);outline:0}.intro-title p{font-size:12px;color:rgba(255,255,255,.96);text-shadow:0 2px 18px rgba(0,0,0,.85)}.intro-title>span{max-width:690px;font-size:17px;line-height:1.55;color:rgba(255,255,255,.94);text-shadow:0 2px 18px rgba(0,0,0,.95)}.intro-actions button{min-width:218px;height:56px;font-size:12px}.intro-actions button i{font-size:18px}
@media(max-width:650px){.intro header{font-size:9px}.intro-title p{font-size:10px}.intro-title>span{max-width:350px;font-size:13px;line-height:1.5}.intro-actions button{height:54px;font-size:11px}}

/* Unsplash exhibition studio */
.unsplash-card{display:block;text-align:left}
.unsplash-card-art{position:relative;height:235px;overflow:hidden;background:linear-gradient(125deg,#d9d1bd 0 33%,#7f938c 33% 59%,#293536 59%);isolation:isolate}
.unsplash-card-art:after{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 35% 45%,rgba(255,255,255,.75),transparent 24%),linear-gradient(110deg,transparent 44%,rgba(255,255,255,.14) 45%,transparent 46%);filter:blur(2px);transform:rotate(-8deg)}
.unsplash-card-art i{position:absolute;z-index:2;border:1px solid rgba(255,255,255,.65);border-radius:50%}
.unsplash-card-art i:first-child{width:132px;height:132px;left:16%;top:22%}
.unsplash-card-art i:nth-child(2){width:72px;height:72px;left:32%;top:35%;border-color:rgba(17,20,20,.48)}
.unsplash-card-art i:nth-child(3){width:12px;height:12px;right:19%;top:22%;background:var(--acid);border:0;box-shadow:0 0 0 12px rgba(215,255,67,.12)}
.unsplash-card-art span{position:absolute;z-index:3;right:18px;bottom:14px;color:#fff;font:34px/1 serif}
.unsplash-card.loaded .unsplash-card-art{background-position:center;background-size:cover}
.unsplash-card.loaded .unsplash-card-art:after{background:linear-gradient(180deg,transparent 45%,rgba(8,10,10,.38));filter:none;transform:none}
.unsplash-card.loaded .unsplash-card-art i{display:none}

.unsplash-builder{position:fixed;z-index:198;inset:0;padding:34px 40px 38px;background:#0c0f0e;color:#f2f2eb;overflow:auto;animation:panel-in .65s var(--ease) both}
.unsplash-builder>header,.unsplash-builder-layout{width:min(100%,1600px);margin-left:auto;margin-right:auto}
.unsplash-builder>header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}
.unsplash-builder>header p{margin:0 0 12px;color:var(--acid);font:10px monospace;text-transform:uppercase;letter-spacing:.17em}
.unsplash-builder h2{margin:0;font-size:clamp(52px,6.2vw,94px);font-weight:270;line-height:.82;letter-spacing:-.075em}
.unsplash-builder h2 em{font-weight:210}
.unsplash-builder>header>button{padding:8px 0;border:0;background:none;color:#f2f2eb;font:11px monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.unsplash-builder-layout{display:grid;grid-template-columns:minmax(330px,430px) minmax(0,1fr);gap:42px;margin-top:44px;border-top:1px solid rgba(255,255,255,.16)}
.unsplash-controls{padding:30px 32px 32px 0;border-right:1px solid rgba(255,255,255,.16)}
.unsplash-controls fieldset{margin:0;padding:0;border:0}
.unsplash-controls legend,.unsplash-field>label,.unsplash-select-row>label,.unsplash-count-field>label,.unsplash-preview-actions>label{display:block;margin:0 0 11px;color:rgba(242,242,235,.5);font:9px/1.4 monospace;text-transform:uppercase;letter-spacing:.13em}
.unsplash-mode-group{display:grid!important;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:29px!important}
.unsplash-mode-group legend{grid-column:1/-1}
.unsplash-mode-group label{cursor:pointer}
.unsplash-mode-group input{position:absolute;opacity:0;pointer-events:none}
.unsplash-mode-group span{min-height:74px;padding:12px;border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;justify-content:space-between;background:#121615;transition:.25s}
.unsplash-mode-group b{font-size:12px;font-weight:480;line-height:1.15}
.unsplash-mode-group small{color:rgba(242,242,235,.43);font:8px/1.3 monospace}
.unsplash-mode-group input:checked+span{border-color:var(--acid);background:#20251f;box-shadow:inset 0 2px var(--acid)}
.unsplash-field{margin-bottom:27px}
.unsplash-field input,.unsplash-preview-actions input{width:100%;padding:13px 0;border:0;border-bottom:1px solid rgba(255,255,255,.24);border-radius:0;background:transparent;color:#fff;font-size:18px;outline:0}
.unsplash-field input:focus,.unsplash-preview-actions input:focus{border-color:var(--acid)}
.unsplash-theme-group,.unsplash-style-group{margin-bottom:26px!important}
.unsplash-theme-group>div,.unsplash-style-group>div{display:flex;flex-wrap:wrap;gap:6px}
.unsplash-theme-group button,.unsplash-style-group span{padding:9px 11px;border:1px solid rgba(255,255,255,.17);background:#121615;color:rgba(242,242,235,.72);font:9px monospace;cursor:pointer;transition:.25s}
.unsplash-theme-group button:hover,.unsplash-theme-group button.selected,.unsplash-style-group input:checked+span{border-color:var(--acid);background:var(--acid);color:#111;outline:0}
.unsplash-style-group label{cursor:pointer}
.unsplash-style-group input{position:absolute;opacity:0;pointer-events:none}
.unsplash-select-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:27px}
.unsplash-select-row select{display:block;width:100%;margin-top:8px;padding:11px 28px 11px 10px;border:1px solid rgba(255,255,255,.18);border-radius:0;background:#121615;color:#fff;font:11px monospace}
.unsplash-count-field{margin-bottom:27px}
.unsplash-count-field label{display:flex;justify-content:space-between}
.unsplash-count-field output{color:var(--acid);font-size:13px}
.unsplash-count-field input{width:100%;height:1px;appearance:none;background:rgba(255,255,255,.25)}
.unsplash-count-field input::-webkit-slider-thumb{width:14px;height:14px;appearance:none;border:1px solid #111;border-radius:50%;background:var(--acid);cursor:pointer}
.unsplash-generate{width:100%;padding:17px 2px;border:0;border-top:2px solid var(--acid);border-bottom:1px solid rgba(255,255,255,.18);background:none;color:#fff;text-align:left;font:11px monospace;text-transform:uppercase;letter-spacing:.11em;cursor:pointer;transition:padding-left .3s,background .3s}
.unsplash-generate .unsplash-generate-arrow{float:right;font-size:16px}
.unsplash-generate:hover,.unsplash-generate:focus-visible{padding-left:12px;background:rgba(255,255,255,.045)}
.unsplash-generate:disabled{cursor:wait;opacity:.5}
.unsplash-connection-note{margin:17px 0 0;color:#efad7c;font:9px/1.55 monospace}
.unsplash-connection-note code{color:#fff}
.unsplash-setup{margin:0 0 20px;padding:30px;border:1px solid rgba(239,173,124,.5);background:linear-gradient(135deg,rgba(239,173,124,.1),rgba(255,255,255,.025) 55%);box-shadow:0 26px 70px rgba(0,0,0,.2)}
.unsplash-setup>small{color:#efad7c;font:9px monospace;text-transform:uppercase;letter-spacing:.15em}
.unsplash-setup h4{margin:10px 0 12px;color:#fff;font-size:30px;font-weight:340;letter-spacing:-.035em}
.unsplash-setup>p{max-width:760px;margin:0;color:rgba(242,242,235,.68);font-size:14px;line-height:1.65}
.unsplash-setup ol{margin:19px 0 22px;padding-left:21px;color:rgba(242,242,235,.72);font-size:12px;line-height:1.8}
.unsplash-setup code{color:#fff}
.unsplash-setup form{max-width:760px}
.unsplash-setup form>label{display:block;margin:0 0 8px;color:rgba(242,242,235,.55);font:9px monospace;text-transform:uppercase;letter-spacing:.1em}
.unsplash-setup form>div{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid rgba(255,255,255,.3)}
.unsplash-setup input{min-width:0;padding:13px 2px;border:0;background:transparent;color:#fff;font:13px monospace;outline:0}
.unsplash-setup input:focus{box-shadow:inset 0 -1px var(--acid)}
.unsplash-setup button{padding:12px 16px;border:0;border-top:2px solid var(--acid);background:rgba(255,255,255,.07);color:#fff;font:9px monospace;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
.unsplash-setup button:disabled{cursor:wait;opacity:.55}
.unsplash-setup .unsplash-proxy-status{margin:10px 0 0;color:rgba(242,242,235,.5);font:9px/1.55 monospace}
.unsplash-setup .unsplash-proxy-status.error{color:#efad7c}
.unsplash-setup nav{display:flex;gap:22px;margin-top:20px}
.unsplash-setup nav a{color:#fff;font:9px monospace;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:4px}
.unsplash-preview{min-width:0;padding:30px 0 80px}
.unsplash-preview>header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}
.unsplash-preview>header small{color:var(--acid);font:9px monospace;text-transform:uppercase;letter-spacing:.14em}
.unsplash-preview h3{margin:8px 0 0;font-size:34px;font-weight:310;letter-spacing:-.045em}
.unsplash-preview>header>span{color:rgba(242,242,235,.5);font:9px monospace;text-transform:uppercase;letter-spacing:.1em}
.unsplash-empty{min-height:455px;border:1px solid rgba(255,255,255,.13);display:grid;place-content:center;justify-items:center;text-align:center;background:radial-gradient(circle at center,rgba(215,255,67,.06),transparent 42%)}
.unsplash-empty i{width:62px;height:62px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;color:var(--acid);font:27px serif;font-style:normal}
.unsplash-empty p{max-width:360px;margin:25px 20px 0;color:rgba(242,242,235,.5);font-size:14px;line-height:1.6}
.unsplash-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}
.unsplash-photo{position:relative;aspect-ratio:.82;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:#171b1a;animation:photo-card-in .5s var(--ease) both}
@keyframes photo-card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.unsplash-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease),filter .3s}
.unsplash-photo:hover img{transform:scale(1.025)}
.unsplash-photo.locked{border-color:var(--acid);box-shadow:inset 0 3px var(--acid)}
.unsplash-photo.locked img{filter:saturate(.82)}
.unsplash-photo-copy{position:absolute;left:0;right:0;bottom:0;padding:34px 10px 9px;background:linear-gradient(transparent,rgba(5,7,7,.86));display:grid;gap:2px;pointer-events:none}
.unsplash-photo-copy strong{font-size:11px;font-weight:520;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.unsplash-photo-copy small{color:rgba(255,255,255,.58);font:7px monospace;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.unsplash-photo-actions{position:absolute;z-index:2;top:7px;right:7px;display:flex;gap:4px}
.unsplash-photo-actions button{width:29px;height:29px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(8,10,10,.7);color:#fff;display:grid;place-items:center;font:11px monospace;cursor:pointer;backdrop-filter:blur(8px)}
.unsplash-photo-actions button:hover,.unsplash-photo-actions button:focus-visible,.unsplash-photo.locked .lock-photo{background:var(--acid);border-color:var(--acid);color:#111;outline:0}
.unsplash-preview-actions{position:sticky;bottom:-1px;z-index:6;margin-top:18px;padding:15px 0 3px;border-top:1px solid rgba(255,255,255,.17);background:rgba(12,15,14,.94);display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:end;gap:18px;backdrop-filter:blur(16px)}
.unsplash-preview-actions>button{min-width:165px;padding:15px 15px;border:1px solid rgba(255,255,255,.28);background:none;color:#fff;text-align:left;font:10px monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.unsplash-preview-actions>button span{float:right;font-size:14px}
.unsplash-preview-actions>button.primary{min-width:190px;border-color:var(--acid);background:var(--acid);color:#111}
.unsplash-preview-actions>button:disabled{cursor:not-allowed;opacity:.32}
.unsplash-preview-actions label{margin:0}
.unsplash-preview-actions input{padding:8px 0;font-size:15px}
.unsplash-status{margin:13px 0 0;color:rgba(242,242,235,.52);font:9px/1.45 monospace;letter-spacing:.04em}
#detail-unsplash-row a{font-weight:560}

@media(max-width:1200px){.unsplash-builder-layout{grid-template-columns:360px minmax(0,1fr);gap:30px}.unsplash-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}.unsplash-mode-group{grid-template-columns:1fr}.unsplash-mode-group span{min-height:58px}}
@media(max-width:800px){.unsplash-builder{padding:24px 18px}.unsplash-builder h2{font-size:54px}.unsplash-builder-layout{grid-template-columns:1fr;margin-top:32px}.unsplash-controls{padding:25px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.16)}.unsplash-mode-group{grid-template-columns:repeat(3,1fr)}.unsplash-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}.unsplash-preview-actions{grid-template-columns:1fr;align-items:stretch}.unsplash-preview-actions>button{width:100%}.unsplash-preview{padding-bottom:30px}.unsplash-empty{min-height:330px}}
@media(max-width:520px){.unsplash-builder>header{gap:15px}.unsplash-builder>header>button{max-width:80px;text-align:right}.unsplash-mode-group{grid-template-columns:1fr}.unsplash-select-row{grid-template-columns:1fr}.unsplash-grid{gap:6px}.unsplash-photo{aspect-ratio:.76}.unsplash-setup{padding:22px}.unsplash-setup form>div{grid-template-columns:1fr}.unsplash-setup button{text-align:left}.unsplash-setup nav{align-items:flex-start;flex-direction:column;gap:12px}}

.journey-button{position:absolute;right:24px;bottom:58px;padding:8px 10px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(10,10,10,.26);color:#fff;display:flex;align-items:center;gap:9px;pointer-events:auto;cursor:pointer;font:7px monospace;text-transform:uppercase;letter-spacing:.09em;backdrop-filter:blur(10px)}.journey-button i{width:5px;height:5px;border-radius:50%;background:var(--acid);box-shadow:0 0 8px var(--acid)}
.journey-panel{position:fixed;z-index:88;left:0;top:0;bottom:0;width:min(520px,100%);padding:60px 50px;background:rgba(232,231,224,.98);color:#111;animation:journey-in .7s var(--ease) both}@keyframes journey-in{from{transform:translateX(-100%)}to{transform:none}}.journey-panel>button{position:absolute;left:28px;top:27px;border:0;background:none;text-transform:uppercase;font:8px monospace;letter-spacing:.12em;cursor:pointer}.journey-panel>p:first-of-type{margin:8vh 0 8px;font:8px monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.5}.journey-panel h2{margin:0 0 6vh;font-size:clamp(52px,6vw,82px);font-weight:280;line-height:.88;letter-spacing:-.07em}.journey-panel h2 em,.completion-moment h2 em{font-weight:220}.journey-progress{height:2px;background:rgba(0,0,0,.13);overflow:hidden}.journey-progress i{display:block;width:0;height:100%;background:var(--acid);transition:width .6s var(--ease)}.journey-panel>p:last-of-type{margin:14px 0 0;font:8px/1.5 monospace;text-transform:uppercase;letter-spacing:.1em;opacity:.55}.journey-actions{position:absolute;left:50px;right:50px;bottom:55px}.journey-actions button{width:100%;padding:15px 0;border:0;border-top:1px solid rgba(0,0,0,.16);background:none;text-align:left;font:9px monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}.journey-actions button span{float:right}
.journey-discoveries{margin-top:25px}.journey-discoveries-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.journey-discoveries-heading h3,.journey-discoveries-heading span{margin:0;font:8px/1.3 monospace;text-transform:uppercase;letter-spacing:.12em}.journey-discoveries-heading h3{font-weight:500}.journey-discoveries-heading span{color:rgba(17,17,17,.5)}.journey-thumbnails{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-height:clamp(74px,17vh,150px);overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent}.journey-thumbnail{position:relative;aspect-ratio:1;border:0;padding:0;overflow:hidden;background:#c8c8c1;cursor:pointer}.journey-thumbnail:after{content:"";position:absolute;inset:0;border:1px solid rgba(0,0,0,.14);transition:border-color .25s,box-shadow .25s}.journey-thumbnail img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:transform .45s var(--ease),filter .3s}.journey-thumbnail:hover img,.journey-thumbnail:focus-visible img{transform:scale(1.08);filter:saturate(1)}.journey-thumbnail:hover:after,.journey-thumbnail:focus-visible:after{border-color:var(--acid);box-shadow:inset 0 3px 0 var(--acid)}.journey-thumbnail:focus-visible{outline:0}.journey-thumbnails-empty{grid-column:1/-1;margin:0;padding:15px 0;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);color:rgba(17,17,17,.48);font:9px/1.45 monospace}
.completion-moment{position:fixed;z-index:240;left:50%;top:50%;width:min(620px,calc(100vw - 36px));transform:translate(-50%,-50%);padding:55px;background:rgba(20,22,21,.94);border:1px solid rgba(255,255,255,.16);color:#fff;text-align:center;backdrop-filter:blur(24px);animation:completion-in 1s var(--ease) both}@keyframes completion-in{from{opacity:0;transform:translate(-50%,-45%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.completion-moment>p{margin:0 0 30px;color:var(--acid);font:8px monospace;text-transform:uppercase;letter-spacing:.2em}.completion-moment h2{margin:0;font-size:clamp(48px,6vw,82px);font-weight:280;line-height:.88;letter-spacing:-.07em}.completion-moment>span{display:block;margin:30px 0 45px;color:rgba(255,255,255,.58);font-size:11px}.completion-moment button{width:100%;padding:14px 0;border:0;border-top:1px solid rgba(255,255,255,.18);background:none;color:#fff;text-align:left;font:8px monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}.completion-moment button i{float:right;font-style:normal}.map-work-dot.visited{background:#111;color:#fff;border-color:var(--acid)}.map-work-dot.visited:after{content:"✓";position:absolute;right:-4px;top:-6px;width:10px;height:10px;border-radius:50%;display:grid;place-items:center;background:var(--acid);color:#111;font:7px monospace}
@media(max-width:800px){.journey-button{right:16px;bottom:52px}.journey-panel{padding:45px 24px}.journey-panel>button{left:22px;top:20px}.journey-panel>p:first-of-type{margin-top:9vh}.journey-discoveries{margin-top:18px}.journey-thumbnails{grid-template-columns:repeat(7,minmax(0,1fr));max-height:108px}.journey-actions{left:24px;right:24px;bottom:35px}.completion-moment{padding:38px 24px}.completion-moment>span{margin:24px 0 35px}}

.journey-panel{left:auto;right:0;animation:info-in .7s var(--ease) both}.journey-panel>button{left:auto;right:28px;font-size:9px}.generator-panel>button{font-size:9px}.generator-copy>button,.journey-actions button{position:relative;padding:18px 12px 18px 2px;border-top:0;border-bottom:1px solid rgba(0,0,0,.17);font:10px/1.25 monospace;letter-spacing:.115em;transition:padding-left .3s ease,background .3s ease,color .3s ease}.generator-copy>button:before,.journey-actions button:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left center;transition:transform .34s var(--ease)}.generator-copy>button:hover,.journey-actions button:hover,.generator-copy>button:focus-visible,.journey-actions button:focus-visible{padding-left:14px;background:rgba(0,0,0,.045)}.generator-copy>button:hover:before,.journey-actions button:hover:before,.generator-copy>button:focus-visible:before,.journey-actions button:focus-visible:before,#complete-museum:before,#cinematic-route:before{transform:scaleX(1)}.generator-copy:has(>button:hover)>#complete-museum:not(:hover):before,.generator-copy:has(>button:focus-visible)>#complete-museum:not(:focus-visible):before,.journey-actions:has(button:hover)>#cinematic-route:not(:hover):before,.journey-actions:has(button:focus-visible)>#cinematic-route:not(:focus-visible):before{transform:scaleX(0)}.generator-copy>button span,.journey-actions button span{font-size:15px;line-height:.75;transition:transform .3s ease}.generator-copy>button:hover span,.journey-actions button:hover span{transform:translateX(4px)}
@media(max-width:800px){.journey-panel>button{left:auto;right:22px}.generator-copy>button,.journey-actions button{font-size:10px;padding-top:17px;padding-bottom:17px}}

.loading-mark b,.museum-brand strong b{font:inherit;font-weight:inherit}.exhibition-browser{position:fixed;z-index:180;inset:0;padding:30px 38px 28px;background:#dedfd8;color:#111;overflow:auto;animation:panel-in .75s var(--ease) both}.exhibition-browser header{display:flex;justify-content:space-between;align-items:flex-start}.exhibition-browser header p{margin:0 0 8px;font:8px monospace;text-transform:uppercase;letter-spacing:.16em;opacity:.52}.exhibition-browser h2{margin:0;font-size:clamp(52px,6.4vw,96px);font-weight:270;line-height:.82;letter-spacing:-.075em}.exhibition-browser h2 em{font-weight:210}.exhibition-browser header>button{border:0;background:none;text-transform:uppercase;font:9px monospace;letter-spacing:.12em;cursor:pointer}.exhibition-grid{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:12px;margin:38px 0 26px}.exhibition-card{position:relative;min-height:390px;padding:0;border:1px solid rgba(16,17,17,.18);background:rgba(255,255,255,.3);color:#111;text-align:left;cursor:pointer;overflow:hidden;transition:transform .42s var(--ease),background .35s,border-color .35s}.exhibition-card:before{content:"";position:absolute;z-index:3;left:0;right:0;top:0;height:3px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease)}.exhibition-card:hover,.exhibition-card:focus-visible,.exhibition-card.selected{background:#f1f1eb;border-color:rgba(16,17,17,.42);outline:0}.exhibition-card:hover{transform:translateY(-6px)}.exhibition-card:hover:before,.exhibition-card:focus-visible:before,.exhibition-card.selected:before{transform:scaleX(1)}.exhibition-card img{display:block;width:100%;height:205px;object-fit:cover;filter:saturate(.88);transition:filter .4s,transform .7s var(--ease)}.exhibition-card:hover img,.exhibition-card.selected img{filter:saturate(1.05)}.exhibition-card:hover img{transform:scale(1.025)}.exhibition-card>span:not(.upload-mark){display:flex;min-height:184px;padding:19px 18px 18px;flex-direction:column}.exhibition-card small{font:7px monospace;text-transform:uppercase;letter-spacing:.13em;opacity:.52}.exhibition-card strong{margin:12px 0 4px;font-size:24px;font-weight:340;line-height:.95;letter-spacing:-.045em}.exhibition-card em{font:8px monospace;font-style:normal;text-transform:uppercase;letter-spacing:.08em;opacity:.66}.exhibition-card b{display:block;margin-top:auto;padding-top:18px;font-size:10px;line-height:1.45;font-weight:400;opacity:.7}.exhibition-card.unavailable{cursor:not-allowed;opacity:.48}.exhibition-card.unavailable img{filter:grayscale(1)}.upload-card{display:grid;align-content:center;justify-items:center;background:#1c1f1e;color:#efefe8;border-color:#1c1f1e}.upload-card:hover,.upload-card:focus-visible{background:#242827;color:#fff}.upload-card .upload-mark{width:62px;height:62px;margin-top:28px;border:1px solid rgba(255,255,255,.32);border-radius:50%;display:grid;place-items:center;color:var(--acid);font:24px/1 monospace}.upload-card>span:not(.upload-mark){min-height:240px;text-align:center;align-items:center}.upload-card b{max-width:230px}.exhibition-browser footer{position:sticky;left:0;right:0;bottom:-28px;margin:0 -38px -28px;padding:17px 38px 19px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:rgba(222,223,216,.94);border-top:1px solid rgba(16,17,17,.17);backdrop-filter:blur(18px)}.exhibition-browser footer>div{display:grid;gap:3px}.exhibition-browser footer small{font:7px monospace;text-transform:uppercase;letter-spacing:.13em;opacity:.5}.exhibition-browser footer strong{font-size:17px;font-weight:390}.exhibition-browser footer span{font:8px monospace;color:#596329}.exhibition-browser footer>button{min-width:210px;padding:16px 18px;border:1px solid #111;background:#111;color:#fff;display:flex;justify-content:space-between;text-transform:uppercase;font:9px monospace;letter-spacing:.11em;cursor:pointer;transition:.3s}.exhibition-browser footer>button:hover{background:var(--acid);border-color:var(--acid);color:#111}.exhibition-browser footer i{font:15px/1 monospace;font-style:normal}
@media(max-width:1000px){.exhibition-grid{grid-template-columns:repeat(2,minmax(230px,1fr))}}
@media(max-width:650px){.exhibition-browser{padding:22px 18px}.exhibition-browser h2{font-size:54px}.exhibition-grid{grid-template-columns:1fr;margin-top:28px}.exhibition-card{min-height:330px}.exhibition-card img{height:180px}.exhibition-browser footer{bottom:-28px;margin:0 -18px -28px;padding:14px 18px;align-items:stretch;flex-direction:column;gap:12px}.exhibition-browser footer>button{width:100%}}
.intro header b{font:inherit;font-weight:inherit}
.map-preview img{object-fit:contain;background:#171918}

.info-panel{overflow-y:auto}.shortcut-guide{margin:34px 0 18px;padding:25px 0 18px;border-top:1px solid rgba(0,0,0,.2)}.shortcut-guide h3{margin:0 0 17px;font:9px/1.4 monospace;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:rgba(17,17,17,.58)}.shortcut-guide dl{margin:0;display:grid;grid-template-columns:minmax(175px,auto) 1fr;column-gap:20px}.shortcut-guide dt,.shortcut-guide dd{margin:0;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.1);font:10px/1.45 monospace}.shortcut-guide dd{color:rgba(17,17,17,.66)}.shortcut-guide kbd{display:inline-block;min-width:20px;padding:2px 5px;border:1px solid rgba(0,0,0,.22);border-radius:3px;background:rgba(255,255,255,.38);color:#111;text-align:center;font:9px/1.2 monospace;box-shadow:0 1px 0 rgba(0,0,0,.08)}
@media(max-width:800px){.shortcut-guide{margin-top:27px}.shortcut-guide dl{grid-template-columns:1fr}.shortcut-guide dt{padding-bottom:4px;border-bottom:0}.shortcut-guide dd{padding-top:3px}}

/* Information panel readability. */
.info-panel h2{font-size:clamp(52px,5.8vw,82px)}
.info-panel>p{font-size:10px;opacity:.62}
.info-panel>button{font-size:10px}
.info-panel>div p{font-size:13px;line-height:1.65}
.shortcut-guide h3{font-size:11px;color:rgba(17,17,17,.66)}
.shortcut-guide dl{grid-template-columns:minmax(190px,auto) 1fr}
.shortcut-guide dt,.shortcut-guide dd{padding:11px 0;font-size:11.5px;line-height:1.48}
.shortcut-guide dd{color:rgba(17,17,17,.72)}
.shortcut-guide kbd{min-width:22px;padding:3px 6px;font-size:10px}

#close-map,#close-art,#close-info,#close-generator,#close-journey,#close-exhibition-browser,#close-artist-browser,#close-exhibition-builder,#close-unsplash-builder{padding:8px;font-size:11px!important;line-height:1.2}
.auto-journey-hud{position:fixed;z-index:45;left:50%;bottom:24px;width:min(620px,calc(100vw - 36px));transform:translateX(-50%);padding:12px 13px 12px 18px;border:1px solid rgba(255,255,255,.2);border-top:2px solid var(--acid);background:rgba(12,14,14,.78);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 18px 55px rgba(0,0,0,.26);backdrop-filter:blur(18px);pointer-events:auto;animation:auto-journey-in .55s var(--ease) both}.auto-journey-hud>div{min-width:0;display:grid;gap:4px}.auto-journey-hud small{font:8px/1.3 monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--acid)}.auto-journey-hud strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:420}.auto-journey-hud button{flex:0 0 auto;padding:11px 12px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.05);color:#fff;font:9px/1 monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .25s,color .25s,border-color .25s}.auto-journey-hud button span{padding-left:12px;color:var(--acid)}.auto-journey-hud button:hover,.auto-journey-hud button:focus-visible{border-color:var(--acid);background:var(--acid);color:#111;outline:0}.auto-journey-hud button:hover span,.auto-journey-hud button:focus-visible span{color:#111}@keyframes auto-journey-in{from{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%,0)}}.journey-actions button:disabled{cursor:not-allowed;opacity:.34}.auto-journey-playing .movement-hint,.auto-journey-playing .journey-button,.auto-journey-playing .map-button,.auto-journey-playing .generate-button,.auto-journey-playing .info-button,.auto-journey-playing .floor-index{opacity:.28}.auto-journey-playing .floor-index{pointer-events:none}
@media(max-width:650px){.auto-journey-hud{bottom:16px;padding:11px 11px 11px 14px}.auto-journey-hud strong{font-size:11px}.auto-journey-hud button{padding:10px;font-size:8px}.auto-journey-hud button span{display:none}}

.auto-journey-hud{width:min(760px,calc(100vw - 36px))}.auto-journey-hud>div{flex:1 1 auto}.auto-journey-speed{flex:0 0 auto;display:grid;grid-template-columns:auto 92px 25px;align-items:center;gap:9px;color:rgba(255,255,255,.7)}.auto-journey-speed small{color:rgba(255,255,255,.56)}.auto-journey-speed input{width:92px;height:2px;appearance:none;border:0;background:rgba(255,255,255,.27);accent-color:var(--acid);cursor:pointer}.auto-journey-speed input::-webkit-slider-thumb{width:10px;height:10px;appearance:none;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:var(--acid);box-shadow:0 0 0 3px rgba(255,255,255,.06);cursor:grab}.auto-journey-speed input::-moz-range-thumb{width:9px;height:9px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:var(--acid);box-shadow:0 0 0 3px rgba(255,255,255,.06);cursor:grab}.auto-journey-speed output{font:9px/1 monospace;color:#fff;text-align:right}
.museum-tip{position:fixed;z-index:44;left:50%;bottom:24px;width:min(620px,calc(100vw - 40px));padding:15px 16px 14px 18px;transform:translate(-50%,16px);border:1px solid rgba(255,255,255,.18);border-top:2px solid var(--acid);background:rgba(11,13,13,.8);color:#f4f4ed;display:flex;align-items:center;justify-content:space-between;gap:22px;opacity:0;pointer-events:none;box-shadow:0 18px 55px rgba(0,0,0,.25);backdrop-filter:blur(18px);transition:opacity .55s ease,transform .65s var(--ease)}.museum-tip.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}.museum-tip-content{min-width:0;display:grid;gap:7px}.museum-tip strong{font-size:13px;line-height:1.42;font-weight:420;letter-spacing:.005em}.museum-tip small{color:rgba(255,255,255,.76);font:9px/1.45 monospace;text-transform:uppercase;letter-spacing:.075em}.museum-tip button{flex:0 0 auto;padding:9px 10px;border:0;border-top:1px solid var(--acid);background:rgba(255,255,255,.035);color:rgba(255,255,255,.75);font:8px/1.2 monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .25s,color .25s}.museum-tip button:hover,.museum-tip button:focus-visible{background:var(--acid);color:#111;outline:0}
@media(max-width:650px){.auto-journey-hud{gap:10px}.auto-journey-speed{grid-template-columns:58px 23px;gap:6px}.auto-journey-speed small{display:none}.auto-journey-speed input{width:58px}.auto-journey-speed output{font-size:8px}.auto-journey-hud>div strong{max-width:32vw}.auto-journey-hud button{white-space:nowrap}}
@media(max-width:650px){.museum-tip{bottom:138px;width:min(420px,calc(100vw - 32px));padding:13px 12px 13px 15px;gap:12px}.museum-tip strong{font-size:12px}.museum-tip small{font-size:8px}.museum-tip button{padding:8px 7px;font-size:7px}}

@media(min-width:801px){.map-copy>p{max-width:520px;font-size:18px;line-height:1.58}.map-copy dl{margin-top:42px}.map-copy dt,.map-copy dd{padding:14px 0;font-size:12px;line-height:1.45}.map-copy dt{width:68px}.map-copy dd{padding-left:68px}}

.curator-prompt{position:fixed;z-index:42;left:50%;top:50%;bottom:auto;min-width:330px;min-height:66px;padding:12px 15px 12px 17px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.24);border-top:2px solid var(--acid);background:rgba(11,13,12,.78);color:#fff;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-content:center;align-items:center;gap:4px 18px;text-align:left;backdrop-filter:blur(16px);box-shadow:0 18px 50px rgba(0,0,0,.25);cursor:pointer;pointer-events:auto;animation:curator-prompt-in .45s var(--ease) both}@keyframes curator-prompt-in{from{opacity:0;transform:translate(-50%,calc(-50% + 16px))}to{opacity:1;transform:translate(-50%,-50%)}}.curator-prompt span{font:8px/1.2 monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--acid)}.curator-prompt strong{font-size:13px;line-height:1.2;font-weight:430}.curator-prompt kbd{grid-column:2;grid-row:1/3;align-self:center;min-width:44px;padding:6px 7px;border:1px solid rgba(255,255,255,.22);border-radius:3px;color:rgba(255,255,255,.72);font:7px monospace;text-transform:uppercase;text-align:center}.curator-prompt:hover,.curator-prompt:focus-visible{background:rgba(21,24,22,.94);border-color:var(--acid);outline:0}
.curator-dialog{position:fixed;z-index:130;inset:0;display:grid;grid-template-columns:minmax(300px,36%) 1fr;background:#171a19;color:#f1f1ea;animation:panel-in .72s var(--ease) both}.curator-close{position:absolute;z-index:2;right:30px;top:27px;padding:8px;border:0;background:none;color:#fff;font:10px monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}.curator-identity{position:relative;padding:8vh 4.5vw 7vh;border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:radial-gradient(circle at 45% 35%,color-mix(in srgb,var(--acid) 18%,transparent),transparent 40%),linear-gradient(145deg,#222724,#121413)}.curator-identity:before{content:"";position:absolute;left:-18%;top:-5%;width:125%;aspect-ratio:1;border:1px solid rgba(255,255,255,.08);border-radius:50%}.curator-portrait{position:absolute;left:50%;top:42%;width:min(25vw,330px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.18);border-radius:50%;object-fit:cover;object-position:center 38%;filter:saturate(.82) contrast(1.03);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 35px 90px rgba(0,0,0,.38)}.curator-identity>p{position:relative;margin:0 0 10px;font:11px monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--acid)}.curator-identity>strong{position:relative;font-size:clamp(40px,4vw,68px);font-weight:280;letter-spacing:-.065em}.curator-identity>small{position:relative;margin-top:10px;font:11px/1.45 monospace;letter-spacing:.07em;color:rgba(255,255,255,.62)}
.curator-conversation{padding:9vh clamp(38px,7vw,120px) 7vh;display:flex;flex-direction:column;min-width:0}.curator-conversation header{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:25px}.curator-conversation header>p{margin:0;font:8px monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--acid)}.curator-quiz-progress{min-width:min(320px,45vw);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.curator-quiz-progress span,.curator-quiz-progress em{font:7px monospace;font-style:normal;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.52)}.curator-quiz-progress i{height:1px;background:rgba(255,255,255,.16)}.curator-quiz-progress b{display:block;width:10%;height:100%;background:var(--acid);transition:width .45s var(--ease)}.curator-conversation h2{max-width:930px;margin:8vh 0 3vh;font-size:clamp(44px,5.8vw,92px);line-height:.9;font-weight:270;letter-spacing:-.065em}.curator-conversation h2 em{font-weight:200;color:rgba(255,255,255,.52)}.curator-line{max-width:740px;margin:0;font-size:clamp(14px,1.25vw,19px);line-height:1.62;color:rgba(255,255,255,.7)}.curator-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:auto;padding-top:5vh}.curator-options button{position:relative;min-height:64px;padding:17px 17px 16px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.035);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;font:10px/1.4 monospace;text-transform:uppercase;letter-spacing:.075em;cursor:pointer;transition:background .3s,border-color .3s,transform .3s var(--ease)}.curator-dialog.quiz-active .curator-options button{font-size:12px;line-height:1.42;letter-spacing:.045em;text-transform:none}.curator-options button:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.curator-options button:hover,.curator-options button:focus-visible{border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.09);transform:translateY(-2px);outline:0}.curator-options button:hover:before,.curator-options button:focus-visible:before{transform:scaleX(1)}.curator-options button span{font-size:15px;color:var(--acid)}.curator-options button.correct{border-color:#b8ef8d;background:rgba(122,180,84,.15)}.curator-options button.wrong{border-color:#dc8378;background:rgba(190,74,61,.12)}.curator-options button[disabled]{cursor:default;transform:none;opacity:.55}.curator-options button.correct[disabled]{opacity:1}.curator-note{min-height:22px;margin:16px 0 0;font:8px/1.5 monospace;letter-spacing:.055em;color:var(--acid)}.curator-dialog.quiz-feedback .curator-line{color:rgba(255,255,255,.88)}.curator-dialog.quiz-feedback .curator-options{grid-template-columns:1fr}.curator-dialog.quiz-result .curator-options{grid-template-columns:1fr 1fr}.curator-dialog.quiz-result .curator-conversation h2{font-size:clamp(54px,7vw,108px)}
@media(max-width:800px){.curator-prompt{top:50%;bottom:auto;min-width:min(300px,calc(100vw - 36px))}.curator-dialog{grid-template-columns:1fr;overflow:auto}.curator-identity{min-height:170px;padding:28px 24px;border-right:0;border-bottom:1px solid rgba(255,255,255,.12);justify-content:flex-end}.curator-portrait{left:auto;right:34px;top:50%;width:125px;transform:translateY(-50%)}.curator-identity>strong{font-size:42px}.curator-conversation{min-height:calc(100vh - 170px);padding:36px 22px 28px}.curator-conversation header{align-items:flex-start;flex-direction:column}.curator-quiz-progress{width:100%;min-width:0}.curator-conversation h2{margin:44px 0 24px;font-size:48px}.curator-options{grid-template-columns:1fr;padding-top:40px}.curator-close{right:16px;top:14px}.curator-dialog.quiz-result .curator-options{grid-template-columns:1fr}}
@media(min-width:801px){.curator-conversation header>p{font-size:11px;letter-spacing:.13em}.curator-quiz-progress{min-width:min(390px,46vw);gap:15px}.curator-quiz-progress span,.curator-quiz-progress em{font-size:10px;letter-spacing:.08em;color:rgba(255,255,255,.68)}.curator-quiz-progress i{height:2px}}
.architect-dialog .architect-identity{background:radial-gradient(circle at 44% 34%,rgba(210,145,48,.18),transparent 39%),linear-gradient(150deg,#272a29,#111313)}.architect-dialog .curator-portrait{object-position:center 34%;filter:saturate(.86) contrast(1.04)}.architect-dialog .architect-conversation header>p{color:var(--acid)}.architect-dialog .architect-conversation h2{margin:5vh 0 2.5vh;font-size:clamp(42px,4.8vw,76px)}.architect-dialog .architect-options{padding-top:3vh}.architect-dialog .architect-options button{min-height:58px;font-size:11px;line-height:1.42;letter-spacing:.055em}.architect-dialog .curator-note{color:rgba(255,255,255,.48)}

/* Museum Vault — portable plan and exhibition presets. */
.generator-panel{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.generator-panel h2{margin:8vh 0 7vh}.museum-vault{margin:34px 0 8px;padding-top:22px;border-top:1px solid rgba(0,0,0,.24)}.museum-vault>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.museum-vault>header small,.preset-name>span{font:7px monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.5}.museum-vault h3{margin:5px 0 0;font-size:25px;font-weight:360;line-height:1;letter-spacing:-.045em}.museum-vault>header>span{font:7px monospace;text-transform:uppercase;letter-spacing:.12em;color:#536314}.preset-name{display:grid;gap:7px}.preset-name input{width:100%;padding:12px 0;border:0;border-bottom:1px solid rgba(0,0,0,.2);border-radius:0;background:transparent;color:#111;font:13px/1.2 Arial,sans-serif;outline:0}.preset-name input:focus{border-color:#111}.vault-save-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:15px 0 22px}.vault-save-actions button,.import-preset{position:relative;min-height:78px;padding:15px 13px;border:1px solid rgba(0,0,0,.16);background:rgba(255,255,255,.18);color:#111;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;transition:background .3s,border-color .3s,transform .3s var(--ease)}.vault-save-actions button:before,.import-preset:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .34s var(--ease)}.vault-save-actions button:hover,.vault-save-actions button:focus-visible,.import-preset:hover,.import-preset:focus-visible{background:rgba(255,255,255,.62);border-color:rgba(0,0,0,.32);outline:0}.vault-save-actions button:hover:before,.vault-save-actions button:focus-visible:before,.import-preset:hover:before,.import-preset:focus-visible:before{transform:scaleX(1)}.vault-save-actions button b{display:block;font:9px/1.25 monospace;text-transform:uppercase;letter-spacing:.08em}.vault-save-actions button small{display:block;margin-top:6px;font:8px/1.35 Arial,sans-serif;opacity:.58}.vault-save-actions button i,.import-preset i{font:18px/1 monospace;font-style:normal}.preset-library{display:grid;gap:6px}.preset-empty{padding:17px 0;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);font:9px/1.5 monospace;letter-spacing:.04em;opacity:.52}.preset-card{position:relative;padding:13px;border:1px solid rgba(0,0,0,.15);background:rgba(255,255,255,.2);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:11px}.preset-card:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--acid);opacity:.8}.preset-card-copy{min-width:0}.preset-card-copy small{font:7px monospace;text-transform:uppercase;letter-spacing:.1em;opacity:.5}.preset-card-copy strong{display:block;margin:4px 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:430}.preset-card-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:8px monospace;opacity:.58}.preset-card-actions{display:flex;align-items:center;gap:4px}.preset-card-actions button{width:31px;height:31px;padding:0;border:1px solid rgba(0,0,0,.18);border-radius:50%;background:transparent;color:#111;display:grid;place-items:center;font:10px monospace;cursor:pointer;transition:.25s}.preset-card-actions button:hover,.preset-card-actions button:focus-visible{border-color:#111;background:#111;color:#fff;outline:0}.preset-card-actions .load-preset{width:auto;padding:0 11px;border-radius:999px;text-transform:uppercase;font-size:7px;letter-spacing:.09em}.import-preset{width:100%;min-height:0;margin-top:9px;padding:13px;background:transparent;font:8px monospace;text-transform:uppercase;letter-spacing:.1em}.vault-status{margin:11px 0 0!important;font:8px/1.5 monospace!important;opacity:.55}.vault-status.error{color:#8d302b;opacity:1}.vault-status.success{color:#536314;opacity:1}
@media(max-width:800px){.generator-panel h2{margin:8vh 0 6vh}.vault-save-actions{grid-template-columns:1fr}.preset-card{padding:12px 10px}}

/* Artwork viewer: immersive crop by default, with an explicit whole-image mode. */
.art-detail{grid-template-columns:62% 38%}
.detail-image{position:relative}
.detail-image img{object-fit:cover;opacity:1;transition:opacity .34s ease}
.detail-image.fit-image img{object-fit:contain}
.detail-image img.view-switching{opacity:0}
.view-mode-controls{position:absolute;z-index:3;right:16px;bottom:16px;display:flex;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(12,14,14,.7);color:rgba(255,255,255,.68);box-shadow:0 8px 30px rgba(0,0,0,.18);backdrop-filter:blur(16px)}
.view-mode-controls button{height:34px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:inherit;display:flex;align-items:center;gap:8px;font:8px monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .3s,color .3s}
.view-mode-controls button:hover,.view-mode-controls button:focus-visible{color:#fff}
.view-mode-controls button.active{background:var(--acid);color:#111}
.view-icon{position:relative;width:19px;height:14px;border:1px solid currentColor;display:block}
.view-icon:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.fill-icon:after{width:13px;height:8px;background:currentColor}
.fit-icon:after{width:11px;height:6px;border:1px solid currentColor}
.detail-copy{padding:12vh 3vw 5vh}
.detail-copy h2{margin:4vh 0 5vh}
.detail-copy dl{margin-top:25px}
.detail-copy dt,.detail-copy dd{padding:14px 0;font-size:12px;line-height:1.4}
.detail-copy dt{width:112px;padding-right:24px;font:10px/1.55 monospace;text-transform:uppercase;letter-spacing:.08em}
.detail-copy dd{padding-left:132px;font-size:13px}
.detail-copy>p:not(:first-child){max-width:440px;font-size:15px;line-height:1.7}
@media(max-width:800px){.art-detail{grid-template-rows:50% 50%}.detail-copy{padding:22px}.detail-copy dl{display:block;margin-top:15px}.detail-copy h2{margin:12px 0 18px}.detail-copy dt{width:94px}.detail-copy dd{padding-left:108px;font-size:12px}.detail-copy>p:not(:first-child){font-size:13px;line-height:1.55}.view-mode-controls{right:10px;bottom:10px}}

/* Exhibition browser · dark collection room */
.exhibition-browser{padding:38px 42px 30px;background:#121514;color:#f0f0e9}
.exhibition-browser>header,.exhibition-grid,.personal-exhibitions,.museum-editions,.historical-feature,.exhibition-browser>footer{width:min(100%,1600px);margin-left:auto;margin-right:auto}
.exhibition-browser header p{margin-bottom:12px;font-size:11px;color:rgba(240,240,233,.58);opacity:1}
.exhibition-browser header>button{padding:8px 0;color:#f0f0e9;font-size:11px}
.exhibition-grid{grid-template-columns:repeat(4,minmax(230px,1fr));gap:16px;margin-top:46px;margin-bottom:32px}
.exhibition-card{min-height:470px;border-color:rgba(255,255,255,.16);background:#1b1f1e;color:#f1f1eb}
.exhibition-card:hover,.exhibition-card:focus-visible,.exhibition-card.selected{background:#252a28;border-color:rgba(255,255,255,.42);color:#fff}
.exhibition-card img{height:235px}
.exhibition-card>span:not(.upload-mark){min-height:232px;padding:24px 22px 22px}
.exhibition-card small{font-size:9px;color:rgba(240,240,233,.58);opacity:1}
.exhibition-card strong{margin:16px 0 7px;font-size:28px;line-height:1}
.exhibition-card em{font-size:10px;color:rgba(240,240,233,.7);opacity:1}
.exhibition-card b{padding-top:22px;font-size:14px;line-height:1.55;color:rgba(240,240,233,.72);opacity:1}
.exhibition-card.unavailable{opacity:.38}
.upload-card{display:grid;align-content:center;background:#1b1f1e;border-color:rgba(255,255,255,.16)}
.upload-card:hover,.upload-card:focus-visible,.upload-card.selected{background:#252a28;color:#fff}
.upload-card.loaded{display:block;text-align:left}
.upload-card.loaded>img{display:block;width:100%;height:235px;object-fit:cover}
.upload-card.loaded>span:not(.upload-mark){min-height:232px;text-align:left;align-items:flex-start}
.upload-card.loaded b{max-width:none}
.exhibition-browser footer{position:sticky;bottom:-30px;margin-top:0;margin-bottom:-30px;padding:20px 0 22px;background:rgba(18,21,20,.94);border-color:rgba(255,255,255,.16);color:#f0f0e9}
.exhibition-browser footer small{font-size:9px;color:rgba(240,240,233,.52);opacity:1}
.exhibition-browser footer strong{font-size:20px}
.exhibition-browser footer span{font-size:10px;color:var(--acid)}
.exhibition-browser footer>button{min-width:240px;padding:18px 20px;border-color:rgba(255,255,255,.38);background:#f0f0e9;color:#111;font-size:11px;transition:background .3s,border-color .3s,color .3s,transform .3s var(--ease),box-shadow .3s}
.exhibition-browser footer>button:disabled{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.035);color:rgba(240,240,233,.38);cursor:not-allowed}
.exhibition-browser footer>button.selection-ready{border-color:var(--acid);background:var(--acid);color:#111;box-shadow:0 10px 32px color-mix(in srgb,var(--acid) 22%,transparent);animation:exhibition-action-ready .58s var(--ease) both}
.exhibition-browser footer>button.selection-ready:hover,.exhibition-browser footer>button.selection-ready:focus-visible{transform:translateY(-2px);background:#fff;border-color:#fff;outline:0}
@keyframes exhibition-action-ready{from{transform:translateY(5px);box-shadow:0 0 0 color-mix(in srgb,var(--acid) 0%,transparent)}to{transform:none;box-shadow:0 10px 32px color-mix(in srgb,var(--acid) 22%,transparent)}}
@media(max-width:1200px){.exhibition-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}}
@media(max-width:650px){.exhibition-browser{padding:24px 18px 22px}.exhibition-grid{grid-template-columns:1fr;margin-top:32px}.exhibition-card{min-height:420px}.exhibition-card img,.upload-card.loaded>img{height:210px}.exhibition-card>span:not(.upload-mark),.upload-card.loaded>span:not(.upload-mark){min-height:205px}.exhibition-browser footer{bottom:-22px;margin:0 0 -22px;padding:16px 0 18px}.exhibition-browser footer>button{min-width:0}}

/* Complete museum presets in the exhibition browser. */
.museum-editions{margin-top:64px;padding:31px 0 43px;border-top:1px solid rgba(255,255,255,.18)}.museum-editions>header{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:25px}.museum-editions>header p{margin:0 0 11px;color:var(--acid);font:10px/1 monospace;text-transform:uppercase;letter-spacing:.16em}.museum-editions h3{margin:0;font-size:clamp(38px,4vw,62px);font-weight:280;line-height:.88;letter-spacing:-.065em}.museum-editions h3 em{font-weight:210}.museum-editions>header>span{padding-bottom:4px;color:rgba(240,240,233,.52);font:9px monospace;text-transform:uppercase;letter-spacing:.13em}.museum-editions-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:16px}.museum-edition-card{position:relative;min-height:420px;padding:0;border:1px solid rgba(255,255,255,.16);background:#181c1b;color:#f1f1eb;text-align:left;cursor:pointer;overflow:hidden;transition:transform .42s var(--ease),background .35s,border-color .35s}.museum-edition-card:before{content:"";position:absolute;z-index:3;left:0;right:0;top:0;height:3px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease)}.museum-edition-card:hover,.museum-edition-card:focus-visible,.museum-edition-card.selected{background:#252a28;border-color:rgba(255,255,255,.44);outline:0}.museum-edition-card:hover{transform:translateY(-6px)}.museum-edition-card:hover:before,.museum-edition-card:focus-visible:before,.museum-edition-card.selected:before{transform:scaleX(1)}.museum-edition-card img{display:block;width:100%;height:225px;object-fit:cover;filter:saturate(.82);transition:transform .7s var(--ease),filter .4s}.museum-edition-card:hover img,.museum-edition-card.selected img{filter:saturate(1)}.museum-edition-card:hover img{transform:scale(1.025)}.museum-edition-card>span{display:flex;min-height:193px;padding:21px 20px 20px;flex-direction:column}.museum-edition-card small{font:9px/1.4 monospace;text-transform:uppercase;letter-spacing:.11em;color:rgba(240,240,233,.53)}.museum-edition-card strong{margin:13px 0 6px;font-size:27px;font-weight:310;line-height:.95;letter-spacing:-.045em}.museum-edition-card em{font:9px/1.4 monospace;font-style:normal;text-transform:uppercase;letter-spacing:.09em;color:var(--acid)}.museum-edition-card b{display:block;margin-top:auto;padding-top:18px;font-size:12px;line-height:1.5;font-weight:400;color:rgba(240,240,233,.68)}
@media(max-width:1200px){.museum-editions-grid{grid-template-columns:repeat(2,minmax(250px,1fr))}}@media(max-width:650px){.museum-editions{margin-top:50px;padding-top:25px}.museum-editions>header{align-items:flex-start;flex-direction:column;gap:14px}.museum-editions-grid{grid-template-columns:1fr}.museum-edition-card{min-height:410px}.museum-edition-card img{height:215px}}

/* Personal exhibition library beneath the permanent creation card. */
.personal-exhibitions{margin-top:64px;padding:31px 0 43px;border-top:1px solid rgba(255,255,255,.18)}.personal-exhibitions>header{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.personal-exhibitions>header p{margin:0 0 11px;color:var(--acid);font:10px/1 monospace;text-transform:uppercase;letter-spacing:.16em}.personal-exhibitions h3{margin:0;font-size:clamp(38px,4vw,62px);font-weight:280;line-height:.88;letter-spacing:-.065em}.personal-exhibitions h3 em{font-weight:210}.personal-exhibitions>header>button{min-width:220px;padding:17px 18px 15px;border:0;border-top:2px solid var(--acid);border-bottom:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.035);color:#f0f0e9;text-align:left;font:11px/1.4 monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .3s,color .3s}.personal-exhibitions>header>button span{float:right;color:var(--acid);font-size:16px}.personal-exhibitions>header>button:hover,.personal-exhibitions>header>button:focus-visible{outline:0;background:var(--acid);color:#111}.personal-exhibitions>header>button:hover span,.personal-exhibitions>header>button:focus-visible span{color:#111}.personal-exhibitions-intro{max-width:760px;margin:23px 0 29px;font-size:14px;line-height:1.65;color:rgba(240,240,233,.62)}.personal-exhibitions-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:17px}.personal-exhibition-card span>i{display:block;margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);color:var(--acid);font:10px/1.3 monospace;font-style:normal;text-transform:uppercase;letter-spacing:.1em}.personal-exhibitions-empty{margin:0;padding:28px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);color:rgba(240,240,233,.5);font-size:14px;line-height:1.6}.personal-exhibitions-empty[hidden]{display:none}
@media(max-width:1100px){.personal-exhibitions-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media(max-width:650px){.personal-exhibitions{margin-top:50px;padding-top:25px}.personal-exhibitions>header{align-items:stretch;flex-direction:column;gap:20px}.personal-exhibitions>header>button{width:100%}.personal-exhibitions-grid{grid-template-columns:1fr}}

/* Historical collections · featured shelf and full artist browser */
.historical-feature{margin-top:72px;padding:31px 0 44px;border-top:1px solid rgba(255,255,255,.18)}
.historical-feature>header{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:26px}
.historical-feature>header p,.artist-browser>header p{margin:0 0 11px;color:var(--acid);font:10px/1 monospace;text-transform:uppercase;letter-spacing:.16em}
.historical-feature h3{margin:0;font-size:clamp(38px,4vw,62px);font-weight:280;line-height:.88;letter-spacing:-.065em}
.historical-feature h3 em{font-weight:210}
.historical-feature>header>button{min-width:220px;padding:17px 16px;border:1px solid color-mix(in srgb,var(--acid) 48%,rgba(255,255,255,.2));border-top:3px solid var(--acid);background:color-mix(in srgb,var(--acid) 9%,rgba(255,255,255,.025));color:#fff;text-align:left;font:12px/1 monospace;text-transform:uppercase;letter-spacing:.11em;cursor:pointer;box-shadow:0 12px 34px rgba(0,0,0,.16);transition:padding-left .3s,background .3s,color .3s,border-color .3s,transform .3s var(--ease)}
.historical-feature>header>button span{float:right;font-size:16px}
.historical-feature>header>button:hover,.historical-feature>header>button:focus-visible{padding-left:19px;background:var(--acid);border-color:var(--acid);color:#111;transform:translateY(-2px);outline:0}
.historical-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:16px}
.historical-card{position:relative;min-width:0;min-height:510px;padding:0;border:1px solid rgba(255,255,255,.16);background:#181c1b;color:#f1f1eb;text-align:left;cursor:pointer;overflow:hidden;transition:transform .42s var(--ease),background .35s,border-color .35s}
.historical-card:before{content:"";position:absolute;z-index:3;left:0;right:0;top:0;height:3px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .38s var(--ease)}
.historical-card:hover,.historical-card:focus-visible,.historical-card.selected{background:#252a28;border-color:rgba(255,255,255,.44);outline:0}
.historical-card:hover{transform:translateY(-6px)}
.historical-card:hover:before,.historical-card:focus-visible:before,.historical-card.selected:before{transform:scaleX(1)}
.historical-card img{display:block;width:100%;height:280px;object-fit:cover;filter:saturate(.82);transition:transform .7s var(--ease),filter .4s}
.historical-card:hover img,.historical-card.selected img{filter:saturate(1)}
.historical-card:hover img{transform:scale(1.025)}
.historical-card>span{display:flex;min-height:228px;padding:23px 22px 22px;flex-direction:column}
.historical-card small{font:9px/1.4 monospace;text-transform:uppercase;letter-spacing:.11em;color:rgba(240,240,233,.53)}
.historical-card strong{margin:15px 0 5px;font-size:30px;font-weight:310;line-height:.95;letter-spacing:-.045em}
.historical-card em{font:10px/1.4 monospace;font-style:normal;text-transform:uppercase;letter-spacing:.09em;color:var(--acid)}
.historical-card b{display:block;margin-top:auto;padding-top:22px;font-size:14px;line-height:1.55;font-weight:400;color:rgba(240,240,233,.7)}
.historical-card.compact{min-height:390px}
.historical-card.compact img{height:205px}
.historical-card.compact>span{min-height:184px;padding:20px 19px 19px}
.historical-card.compact strong{font-size:25px}
.historical-card.compact b{display:-webkit-box;padding-top:16px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:12px;line-height:1.45}
.artist-browser{position:fixed;z-index:190;inset:0;padding:38px 42px 30px;background:#0e1110;color:#f0f0e9;overflow:auto;animation:panel-in .7s var(--ease) both}
.artist-browser>header,.artist-browser-intro,.artist-browser-grid,.artist-browser>footer{width:min(100%,1600px);margin-left:auto;margin-right:auto}
.artist-browser>header{display:flex;align-items:flex-start;justify-content:space-between}
.artist-browser h2{margin:0;font-size:clamp(58px,7vw,106px);font-weight:270;line-height:.8;letter-spacing:-.075em}
.artist-browser h2 em{font-weight:210}
.artist-browser>header>button{padding:8px 0;border:0;background:none;color:#f0f0e9;font:11px monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.artist-browser-intro{display:flex;justify-content:flex-end;margin-top:-30px}
.artist-browser-intro p{width:min(540px,45vw);margin:0;color:rgba(240,240,233,.62);font-size:16px;line-height:1.65}
.artist-browser-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:17px;margin-top:54px;margin-bottom:32px}
.artist-browser>footer{position:sticky;bottom:-30px;padding:20px 0 22px;border-top:1px solid rgba(255,255,255,.16);background:rgba(14,17,16,.94);display:flex;align-items:center;justify-content:space-between;gap:30px;backdrop-filter:blur(18px)}
.artist-browser>footer>div{display:grid;gap:4px}
.artist-browser>footer small{color:rgba(240,240,233,.5);font:9px monospace;text-transform:uppercase;letter-spacing:.13em}
.artist-browser>footer strong{font-size:20px;font-weight:390}
.artist-browser>footer span{color:var(--acid);font:10px monospace}
.artist-browser>footer>button{min-width:240px;padding:18px 20px;border:1px solid rgba(255,255,255,.38);background:#f0f0e9;color:#111;display:flex;justify-content:space-between;text-transform:uppercase;font:11px monospace;letter-spacing:.11em;cursor:pointer;transition:background .3s,border-color .3s,color .3s,transform .3s var(--ease),box-shadow .3s}
.artist-browser>footer>button:disabled{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.035);color:rgba(240,240,233,.38);cursor:not-allowed}
.artist-browser>footer>button.selection-ready{border-color:var(--acid);background:var(--acid);color:#111;box-shadow:0 10px 32px color-mix(in srgb,var(--acid) 22%,transparent);animation:exhibition-action-ready .58s var(--ease) both}
.artist-browser>footer>button.selection-ready:hover,.artist-browser>footer>button.selection-ready:focus-visible{transform:translateY(-2px);border-color:#fff;background:#fff;outline:0}
.artist-browser>footer i{font:15px/1 monospace;font-style:normal}
.detail-copy dd a{color:inherit;text-decoration-color:rgba(16,17,17,.35);text-underline-offset:3px}
.detail-copy dd a:hover,.detail-copy dd a:focus-visible{color:#596329}
@media(max-width:1100px){.historical-feature-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}.artist-browser-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.artist-browser-intro{margin-top:28px;justify-content:flex-start}.artist-browser-intro p{width:min(620px,75vw)}}
@media(max-width:650px){.historical-feature{margin-top:55px;padding-top:25px}.historical-feature>header{align-items:stretch;flex-direction:column}.historical-feature>header>button{width:100%}.historical-feature-grid,.artist-browser-grid{grid-template-columns:1fr}.historical-card.compact{min-height:410px}.artist-browser{padding:24px 18px 22px}.artist-browser h2{font-size:58px}.artist-browser>header>button{max-width:120px;line-height:1.5;text-align:right}.artist-browser-intro{margin-top:30px}.artist-browser-intro p{width:100%;font-size:14px}.artist-browser-grid{margin-top:35px}.artist-browser>footer{bottom:-22px;padding:16px 0 18px;align-items:stretch;flex-direction:column;gap:12px}.artist-browser>footer>button{width:100%;min-width:0}}

/* Exhibition browser catalogue — one card language, matching Browse Artists. */
.exhibition-grid,.historical-feature-grid,.museum-editions-grid{grid-template-columns:repeat(3,minmax(280px,1fr));gap:17px}.exhibition-card,.museum-edition-card,.historical-feature-grid .historical-card{min-height:510px;border-color:rgba(255,255,255,.16);background:#181c1b}.exhibition-card img,.upload-card.loaded>img,.museum-edition-card img,.historical-feature-grid .historical-card img,.unsplash-card-art,.upload-card-art{width:100%;height:280px;object-fit:cover}.exhibition-card>span:not(.upload-mark),.upload-card.loaded>span:not(.upload-mark),.museum-edition-card>span,.historical-feature-grid .historical-card>span{min-height:228px;padding:23px 22px 22px;align-items:flex-start;text-align:left}.exhibition-card small,.museum-edition-card small,.historical-feature-grid .historical-card small{font:9px/1.4 monospace;letter-spacing:.11em;color:rgba(240,240,233,.53)}.exhibition-card strong,.museum-edition-card strong,.historical-feature-grid .historical-card strong{margin:15px 0 5px;font-size:30px;font-weight:310;line-height:.95;letter-spacing:-.045em}.exhibition-card em,.museum-edition-card em,.historical-feature-grid .historical-card em{font:10px/1.4 monospace;letter-spacing:.09em;color:var(--acid);opacity:1}.exhibition-card b,.museum-edition-card b,.historical-feature-grid .historical-card b{margin-top:auto;padding-top:22px;font-size:14px;line-height:1.55;font-weight:400;color:rgba(240,240,233,.7);opacity:1}.upload-card{display:block;align-content:initial;justify-items:initial}.upload-card-art{display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(215,255,67,.1),transparent 27%),linear-gradient(135deg,#202523,#151817)}.upload-card .upload-mark{width:68px;height:68px;margin:0}.upload-card.loaded .upload-card-art{display:none}.museum-edition-card,.historical-feature-grid .historical-card{min-width:0}.museum-edition-card img{height:280px}.unsplash-card{display:block}.unsplash-card-art{height:280px}
@media(max-width:1100px){.exhibition-grid,.historical-feature-grid,.museum-editions-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}}@media(max-width:650px){.exhibition-grid,.historical-feature-grid,.museum-editions-grid{grid-template-columns:1fr}.exhibition-card,.museum-edition-card,.historical-feature-grid .historical-card{min-height:470px}.exhibition-card img,.upload-card.loaded>img,.museum-edition-card img,.historical-feature-grid .historical-card img,.unsplash-card-art,.upload-card-art{height:240px}.exhibition-card>span:not(.upload-mark),.upload-card.loaded>span:not(.upload-mark),.museum-edition-card>span,.historical-feature-grid .historical-card>span{min-height:228px}}

/* Personal exhibition builder */
.exhibition-builder{position:fixed;z-index:195;inset:0;padding:38px 42px 34px;background:#0e1110;color:#f0f0e9;overflow:auto;animation:panel-in .65s var(--ease) both}
.exhibition-builder>header,.import-options,.exhibition-builder>.personal-exhibitions,.exhibition-builder-status{width:min(100%,1400px);margin-left:auto;margin-right:auto}
.exhibition-builder>header{display:flex;align-items:flex-start;justify-content:space-between}
.exhibition-builder>header p{margin:0 0 12px;color:var(--acid);font:10px monospace;text-transform:uppercase;letter-spacing:.17em}
.exhibition-builder h2{margin:0;font-size:clamp(52px,6.4vw,96px);font-weight:270;line-height:.82;letter-spacing:-.075em}
.exhibition-builder h2 em{font-weight:210}
.exhibition-builder>header button{padding:8px 0;border:0;background:none;color:#f0f0e9;font:11px monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.import-options{display:grid;grid-template-columns:1fr 1fr;min-height:440px;margin-top:48px;border-top:1px solid rgba(255,255,255,.17);border-bottom:1px solid rgba(255,255,255,.17)}
.import-option{position:relative;min-width:0;padding:46px 48px;border:0;background:#151918;color:#f0f0e9;text-align:left;display:flex;flex-direction:column;align-items:flex-start;transition:background .35s,border-color .35s}
.import-option:first-child{border-right:1px solid rgba(255,255,255,.17)}
.import-option>i{width:58px;height:58px;margin-bottom:50px;border:1px solid rgba(255,255,255,.34);border-radius:50%;display:grid;place-items:center;color:var(--acid);font:24px/1 monospace;font-style:normal;transition:transform .4s var(--ease),background .3s,color .3s}
.import-option small{font:10px monospace;text-transform:uppercase;letter-spacing:.15em;color:rgba(240,240,233,.5)}
.import-option strong{margin-top:14px;font-size:clamp(28px,3vw,44px);font-weight:300;line-height:1;letter-spacing:-.045em}
.import-option>span,.url-import-zone>label{margin-top:9px;font-size:16px;line-height:1.45;color:rgba(240,240,233,.66)}
.import-option>b{margin-top:auto;padding-top:34px;font:9px/1.5 monospace;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:rgba(240,240,233,.42)}
.file-import-zone{cursor:pointer}
.file-import-zone:hover,.file-import-zone:focus-visible,.file-import-zone.dragging{outline:0;background:#202624}
.file-import-zone:hover>i,.file-import-zone:focus-visible>i,.file-import-zone.dragging>i{transform:rotate(90deg);background:var(--acid);color:#111;border-color:var(--acid)}
.file-import-zone.dragging:after{content:"Drop images to create exhibition";position:absolute;inset:12px;border:1px solid var(--acid);display:grid;place-items:center;background:rgba(14,17,16,.92);color:#fff;font:11px monospace;text-transform:uppercase;letter-spacing:.12em}
.url-import-zone textarea{width:100%;margin-top:24px;padding:14px 15px;resize:vertical;border:1px solid rgba(255,255,255,.2);border-radius:0;background:#0e1110;color:#fff;font:12px/1.6 monospace;outline:0;transition:border-color .3s}
.url-import-zone textarea:focus{border-color:var(--acid)}
.url-import-zone textarea::placeholder{color:rgba(240,240,233,.28)}
.url-import-zone>button{width:100%;margin-top:10px;padding:16px 2px;border:0;border-top:2px solid var(--acid);border-bottom:1px solid rgba(255,255,255,.17);background:none;color:#fff;text-align:left;font:11px monospace;text-transform:uppercase;letter-spacing:.11em;cursor:pointer}
.url-import-zone>button span{float:right;font-size:16px}
.url-source-guide{width:100%;margin-top:19px;padding-top:17px;border-top:1px solid rgba(255,255,255,.1)}
.url-source-guide>small{display:block;margin-bottom:10px;color:rgba(240,240,233,.42);font:9px/1.4 monospace;text-transform:uppercase;letter-spacing:.13em}
.url-source-guide ul{margin:0;padding:0;list-style:none}
.url-source-guide li{padding:9px 0;border-top:1px solid rgba(255,255,255,.07)}
.url-source-guide li:first-child{border-top:0}
.url-source-guide a{display:flex;align-items:center;justify-content:space-between;color:#f0f0e9;font:11px/1.35 monospace;text-decoration:none;transition:color .25s}
.url-source-guide a span{color:var(--acid);font-size:13px}
.url-source-guide a:hover,.url-source-guide a:focus-visible{color:var(--acid);outline:0}
.url-source-guide code{display:block;margin-top:5px;color:rgba(240,240,233,.45);font:9px/1.45 monospace;overflow-wrap:anywhere;user-select:all}
.url-import-zone>b{padding-top:20px}
.exhibition-builder-status{margin-top:18px;color:rgba(240,240,233,.52);font:10px/1.5 monospace;letter-spacing:.06em}
@media(max-width:800px){.exhibition-builder{padding:24px 18px}.import-options{grid-template-columns:1fr;margin-top:34px}.import-option{min-height:360px;padding:32px 28px}.import-option:first-child{border-right:0;border-bottom:1px solid rgba(255,255,255,.17)}.import-option>i{margin-bottom:32px}.exhibition-builder-status{padding-bottom:24px}}

/* In-museum HUD — clearer type with a shared top alignment. */
.museum-brand{align-items:flex-start}.museum-brand strong{font-size:24px;line-height:1;transform:translateY(-3px)}.museum-brand small{font-size:9px;line-height:1.35;color:rgba(255,255,255,.68)}.location-readout{font-size:9px;color:rgba(255,255,255,.76)}.light-control,#theme-toggle{font-size:9px}.light-control output{color:rgba(255,255,255,.68)}.floor-index .floor-label{font-size:8px;color:rgba(255,255,255,.62)}.floor-index button{font-size:9px}.movement-hint{font-size:8px;color:rgba(255,255,255,.68)}.movement-hint kbd,.map-button kbd,.generate-button kbd{font-size:8px}.map-button,.generate-button{font-size:9px}.journey-button{font-size:8px}.art-prompt span{font-size:8px}.art-prompt strong{font-size:13px}.art-prompt small{font-size:8px;color:rgba(255,255,255,.58)}.info-button{font-size:11px}
@media(max-width:800px){.museum-brand strong{font-size:23px}.museum-brand small{font-size:8px}.floor-index button,.map-button,.generate-button{font-size:9px}.journey-button{font-size:8px}}

/* New Museum panel hierarchy. */
.generator-panel h2{font-size:clamp(46px,4.8vw,68px);line-height:.92}.generator-copy>p:not(.generator-section-label){max-width:440px;font-size:13px;line-height:1.7}.generator-section-label{margin:0!important;padding:0 0 9px;border-bottom:1px solid rgba(0,0,0,.17);font:8px/1 monospace!important;text-transform:uppercase;letter-spacing:.15em;opacity:.52}.generator-copy>button{font-size:11px}.generator-copy>button span{font-size:16px}
@media(max-width:800px){.generator-panel h2{font-size:46px}.generator-copy>p:not(.generator-section-label){font-size:13px}.generator-copy>button{font-size:11px}}

/* Stronger right-panel section labels. */
.generator-section-label,.museum-vault>header small,.preset-name>span,.museum-vault>header>span{font-size:9px!important;color:rgba(17,18,18,.72);opacity:1}.generator-section-label{margin-bottom:9px!important}.museum-vault>header>span{color:#46540e}

/* Generated-museum arrival title. */
.museum-arrival{position:fixed;z-index:110;inset:0;display:grid;place-items:center;padding:34px;pointer-events:none;overflow:hidden;color:#f6f5ed;background:radial-gradient(circle at 50% 47%,rgba(13,16,15,.16),rgba(9,11,11,.55) 78%);opacity:0;visibility:hidden}
.arrival-playing .interface{opacity:0}.arrival-playing .interface *{pointer-events:none!important}
.museum-arrival:before,.museum-arrival:after{content:"";position:absolute;left:50%;width:1px;height:14vh;background:linear-gradient(180deg,transparent,rgba(255,255,255,.34))}
.museum-arrival:before{top:0}.museum-arrival:after{bottom:0;transform:rotate(180deg)}
.museum-arrival.playing{visibility:visible;animation:museum-arrival-layer 6s cubic-bezier(.22,.7,.22,1) both}
.museum-arrival-card{width:min(820px,90vw);text-align:center;text-shadow:0 4px 30px rgba(0,0,0,.48)}
.museum-arrival-eyebrow{margin:0 0 24px;color:var(--acid);font:10px/1 monospace;text-transform:uppercase;letter-spacing:.3em;opacity:0}
.museum-arrival h2{margin:0;font-size:clamp(58px,8vw,118px);font-weight:260;line-height:.83;letter-spacing:-.075em;text-wrap:balance;opacity:0}
.museum-arrival-artist{margin:28px 0 0;display:flex;align-items:baseline;justify-content:center;gap:11px;opacity:0}
.museum-arrival-artist span,.museum-arrival-venue span{font:9px/1 monospace;text-transform:uppercase;letter-spacing:.17em;color:rgba(255,255,255,.52)}
.museum-arrival-artist strong{font-size:17px;font-weight:360;letter-spacing:.015em}
.museum-arrival-line{width:min(330px,58vw);height:1px;margin:31px auto 23px;background:rgba(255,255,255,.16);overflow:hidden;opacity:0}
.museum-arrival-line i{display:block;width:100%;height:100%;background:var(--acid);transform:translateX(-101%)}
.museum-arrival-venue{margin:0;display:flex;justify-content:center;gap:12px;align-items:baseline;opacity:0}
.museum-arrival-venue strong{font:10px/1 monospace;text-transform:uppercase;letter-spacing:.18em;font-weight:500;color:rgba(255,255,255,.88)}
.museum-arrival.playing .museum-arrival-eyebrow{animation:museum-arrival-small 5.9s .08s var(--ease) both}
.museum-arrival.playing h2{animation:museum-arrival-title 6s var(--ease) both}
.museum-arrival.playing .museum-arrival-artist{animation:museum-arrival-small 5.8s .18s var(--ease) both}
.museum-arrival.playing .museum-arrival-line{animation:museum-arrival-small 5.7s .24s var(--ease) both}
.museum-arrival.playing .museum-arrival-line i{animation:museum-arrival-rule 5.1s .55s var(--ease) both}
.museum-arrival.playing .museum-arrival-venue{animation:museum-arrival-small 5.6s .3s var(--ease) both}
@keyframes museum-arrival-layer{0%{opacity:0}9%,78%{opacity:1}100%{opacity:0}}
@keyframes museum-arrival-title{0%,5%{opacity:0;transform:translateY(25px);filter:blur(7px)}18%,76%{opacity:1;transform:none;filter:blur(0)}100%{opacity:0;transform:translateY(-13px);filter:blur(3px)}}
@keyframes museum-arrival-small{0%,8%{opacity:0;transform:translateY(11px)}20%,77%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-7px)}}
@keyframes museum-arrival-rule{0%{transform:translateX(-101%)}25%,68%{transform:none}100%{transform:translateX(101%)}}
@media(max-width:650px){.museum-arrival{padding:22px}.museum-arrival-eyebrow{margin-bottom:18px;font-size:9px}.museum-arrival h2{font-size:clamp(50px,16vw,78px);line-height:.87}.museum-arrival-artist{margin-top:22px;flex-direction:column;align-items:center;gap:7px}.museum-arrival-artist strong{font-size:15px}.museum-arrival-line{margin:25px auto 19px}.museum-arrival-venue{flex-direction:column;align-items:center;gap:7px}.museum-arrival-venue strong{font-size:9px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){.museum-arrival.playing,.museum-arrival.playing .museum-arrival-eyebrow,.museum-arrival.playing h2,.museum-arrival.playing .museum-arrival-artist,.museum-arrival.playing .museum-arrival-line,.museum-arrival.playing .museum-arrival-venue{animation:none!important;opacity:1;visibility:visible;transform:none;filter:none}.museum-arrival.playing .museum-arrival-line i{animation:none!important;transform:none}}

/* Multi-artist exhibition salons. */
.mixed-feature{position:relative}.mixed-feature>header>span{max-width:230px;padding-bottom:5px;color:rgba(240,240,233,.5);font:9px/1.5 monospace;text-align:right;text-transform:uppercase;letter-spacing:.12em}.mixed-feature-intro{width:min(650px,62vw);margin:-3px 0 29px;color:rgba(240,240,233,.62);font-size:15px;line-height:1.65}.mixed-exhibition-card small:before{content:"↻";margin-right:8px;color:var(--acid);font-size:12px}.mixed-exhibition-card img{filter:saturate(.7) brightness(.82)}.mixed-exhibition-card:hover img,.mixed-exhibition-card.selected img{filter:saturate(.95) brightness(.9)}
@media(max-width:650px){.mixed-feature>header>span{max-width:none;text-align:left}.mixed-feature-intro{width:100%;margin-top:0;font-size:14px}.mixed-exhibition-grid{grid-template-columns:1fr}}

/* Guided Museum Designer. */
.museum-designer{position:fixed;z-index:185;inset:0;padding:38px 42px 34px;overflow:auto;background:#111513;color:#f1f1e9;animation:panel-in .72s var(--ease) both;--designer-line:rgba(255,255,255,.16)}
.museum-designer>header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;padding-bottom:28px;border-bottom:1px solid var(--designer-line)}
.museum-designer>header p{margin:0 0 10px;color:var(--acid);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.17em}
.museum-designer>header h2{margin:0;font-size:clamp(58px,6.5vw,104px);font-weight:270;line-height:.79;letter-spacing:-.078em}
.museum-designer>header h2 em{font-weight:200}
.museum-designer>header>button{padding:4px 0;border:0;background:none;color:#f1f1e9;font:10px/1 monospace;text-transform:uppercase;letter-spacing:.13em;cursor:pointer}
.museum-designer-layout{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(680px,1.65fr);gap:clamp(48px,7vw,124px);max-width:1600px;margin:42px auto 0}
.designer-brief{position:sticky;top:26px;align-self:start;padding-top:5px}
.designer-brief>span{color:var(--acid);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.16em}
.designer-brief h3{margin:19px 0 22px;font-size:clamp(34px,3.2vw,55px);font-weight:300;line-height:.94;letter-spacing:-.055em}
.designer-brief>p{max-width:440px;margin:0;color:rgba(241,241,233,.62);font-size:15px;line-height:1.68}
.designer-brief dl{margin:35px 0 25px;border-top:1px solid var(--designer-line)}
.designer-brief dl div{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--designer-line)}
.designer-brief dt{color:rgba(241,241,233,.42);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.13em}
.designer-brief dd{margin:0;text-align:right;font-size:13px;font-weight:410}
.designer-brief>small{display:block;max-width:430px;color:rgba(241,241,233,.43);font:9px/1.6 monospace}
.designer-controls{min-width:0;padding-bottom:60px}
.designer-controls fieldset{min-width:0;margin:0 0 34px;padding:0;border:0}
.designer-controls legend{width:100%;margin:0 0 13px;padding:0 0 10px;border-bottom:1px solid var(--designer-line);color:rgba(241,241,233,.64);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.14em}
.designer-controls legend span{margin-right:10px;color:var(--acid)}
.designer-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.designer-options label{position:relative;min-width:0;cursor:pointer}
.designer-options input{position:absolute;opacity:0;pointer-events:none}
.designer-options label>span{position:relative;min-height:91px;padding:15px 14px;border:1px solid var(--designer-line);display:flex;flex-direction:column;justify-content:flex-end;background:rgba(255,255,255,.025);transition:background .28s,border-color .28s,transform .35s var(--ease)}
.designer-options label>span:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.designer-options label:hover>span{background:rgba(255,255,255,.06);transform:translateY(-2px)}
.designer-options input:focus-visible+span{outline:1px solid var(--acid);outline-offset:3px}
.designer-options input:checked+span{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.075)}
.designer-options input:checked+span:before{transform:scaleX(1)}
.designer-options b{font-size:14px;font-weight:450;line-height:1.15}
.designer-options small{margin-top:8px;color:rgba(241,241,233,.62);font:10px/1.45 monospace;letter-spacing:.015em}
.designer-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.designer-pair fieldset{margin-bottom:30px}
.compact-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.compact-options label>span{min-height:82px}
.accent-options{grid-template-columns:repeat(4,minmax(0,1fr))}
.accent-options label>span{min-height:72px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;justify-content:start;gap:12px}
.accent-options i{width:24px;height:24px;border-radius:50%;display:block;background:linear-gradient(135deg,#55e7ff 0 33%,#ff6d68 33% 66%,#bd7bff 66%)}
.accent-options .accent-cool{background:linear-gradient(135deg,#55e7ff,#7385ff,#55efc1)}
.accent-options .accent-warm{background:linear-gradient(135deg,#ffb34f,#ff6d68,#ff63ae)}
.accent-options .accent-electric{background:linear-gradient(135deg,#bd7bff,#55e7ff,#ff63ae)}
.designer-controls>footer{position:sticky;bottom:-1px;z-index:2;padding:16px 0 4px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(180deg,transparent,#111513 22%)}
.designer-controls>footer button{padding:16px 2px;border:0;background:none;color:rgba(241,241,233,.55);font:10px/1 monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.designer-controls>footer .designer-next{min-width:310px;padding:17px 19px;border-top:2px solid var(--acid);border-bottom:1px solid rgba(255,255,255,.25);color:#fff;display:flex;justify-content:space-between;background:rgba(255,255,255,.04);transition:background .3s,color .3s,padding-left .3s}
.designer-controls>footer .designer-next span{font-size:17px}
.designer-controls>footer .designer-next:hover,.designer-controls>footer .designer-next:focus-visible{padding-left:29px;background:var(--acid);color:#111;outline:0}
@media(max-width:1050px){.museum-designer-layout{grid-template-columns:1fr;gap:42px}.designer-brief{position:static;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.designer-brief>span,.designer-brief h3,.designer-brief>p{grid-column:1}.designer-brief dl,.designer-brief>small{grid-column:2}.designer-brief dl{grid-row:1/4;margin:0}.designer-brief>small{grid-row:4}.designer-controls{padding-bottom:35px}}
@media(max-width:700px){.museum-designer{padding:24px 18px}.museum-designer>header h2{font-size:58px}.museum-designer-layout{margin-top:30px}.designer-brief{display:block}.designer-brief dl{margin:28px 0 22px}.designer-pair{grid-template-columns:1fr;gap:0}.designer-options,.compact-options{grid-template-columns:1fr 1fr}.theme-options{grid-template-columns:1fr 1fr}.accent-options{grid-template-columns:1fr 1fr}.designer-options label>span{min-height:84px}.designer-controls>footer{align-items:stretch;flex-direction:column-reverse}.designer-controls>footer button,.designer-controls>footer .designer-next{width:100%;min-width:0}}

.remix-studio{position:fixed;z-index:186;inset:0;padding:38px 42px 34px;overflow:auto;background:#0e1211;color:#f1f1e9;animation:panel-in .72s var(--ease) both;--remix-line:rgba(255,255,255,.15)}
.remix-studio>header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;padding-bottom:28px;border-bottom:1px solid var(--remix-line)}
.remix-studio>header p{margin:0 0 10px;color:var(--acid);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.17em}
.remix-studio>header h2{margin:0;font-size:clamp(58px,6.5vw,104px);font-weight:270;line-height:.79;letter-spacing:-.078em}
.remix-studio>header h2 em{font-weight:200}
.remix-studio>header>button{padding:5px 0;border:0;background:none;color:#f1f1e9;font:11px/1 monospace;text-transform:uppercase;letter-spacing:.13em;cursor:pointer}
.remix-layout{display:grid;grid-template-columns:minmax(290px,390px) minmax(650px,1fr);gap:clamp(45px,5.5vw,96px);max-width:1600px;margin:42px auto 20px}
.remix-controls{align-self:start}
.remix-controls>span{color:var(--acid);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.16em}
.remix-controls>h3{margin:18px 0 19px;font-size:clamp(31px,2.9vw,49px);font-weight:300;line-height:.96;letter-spacing:-.052em}
.remix-controls>p{margin:0;color:rgba(241,241,233,.65);font-size:15px;line-height:1.65}
.remix-current{margin:28px 0 30px;padding:15px 0;border-top:1px solid var(--remix-line);border-bottom:1px solid var(--remix-line);display:grid;grid-template-columns:1fr auto;gap:8px 18px}
.remix-current small{grid-column:1/-1;color:rgba(241,241,233,.42);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.14em}
.remix-current strong{font-size:14px;font-weight:480}
.remix-current b{color:rgba(241,241,233,.55);font:9px/1.4 monospace;font-weight:400;text-align:right}
.remix-controls fieldset{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0;padding:0;border:0}
.remix-controls legend{width:100%;grid-column:1/-1;margin:0 0 6px;padding:0 0 11px;border-bottom:1px solid var(--remix-line);color:rgba(241,241,233,.62);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.14em}
.remix-controls label{position:relative;cursor:pointer}
.remix-controls label input{position:absolute;opacity:0;pointer-events:none}
.remix-controls label span{position:relative;min-height:82px;padding:13px 12px;border:1px solid var(--remix-line);display:grid;grid-template-columns:auto 1fr;align-content:end;gap:5px 10px;background:rgba(255,255,255,.025);transition:transform .32s var(--ease),background .25s,border-color .25s}
.remix-controls label span:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.remix-controls label:hover span{transform:translateY(-2px);background:rgba(255,255,255,.06)}
.remix-controls label input:focus-visible+span{outline:1px solid var(--acid);outline-offset:3px}
.remix-controls label input:checked+span{border-color:rgba(255,255,255,.43);background:rgba(255,255,255,.08)}
.remix-controls label input:checked+span:before{transform:scaleX(1)}
.remix-controls label i{color:rgba(241,241,233,.38);font:8px/1 monospace;font-style:normal}
.remix-controls label b{font-size:13px;font-weight:470;line-height:1.1}
.remix-controls label small{grid-column:1/-1;color:rgba(241,241,233,.45);font:8px/1.25 monospace}
.remix-controls label input:checked+span small{color:var(--acid)}
.remix-preview-button{width:100%;margin-top:15px;padding:17px 18px;border:0;border-top:2px solid var(--acid);border-bottom:1px solid rgba(255,255,255,.24);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.045);color:#fff;font:11px/1 monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .28s,color .28s,padding-left .28s}
.remix-preview-button span{font-size:17px}
.remix-preview-button:hover,.remix-preview-button:focus-visible{padding-left:27px;background:var(--acid);color:#111;outline:0}
.remix-preview-button:disabled{opacity:.3;cursor:not-allowed}
.remix-preview-button:disabled:hover{padding-left:18px;background:rgba(255,255,255,.045);color:#fff}
.remix-preview{min-width:0;padding-top:4px}
.remix-preview>header{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-bottom:17px;border-bottom:1px solid var(--remix-line)}
.remix-preview>header small{color:var(--acid);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.15em}
.remix-preview>header h3{margin:7px 0 0;font-size:29px;font-weight:330;letter-spacing:-.035em}
.remix-preview>header>span{max-width:490px;color:rgba(241,241,233,.52);font:9px/1.55 monospace;text-align:right}
.remix-plan-comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.remix-plan-comparison article{min-width:0;border:1px solid var(--remix-line);background:rgba(255,255,255,.018)}
.remix-plan-comparison article>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border-bottom:1px solid var(--remix-line)}
.remix-plan-comparison article>header small{color:rgba(241,241,233,.42);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.12em}
.remix-plan-comparison article>header strong{font-size:11px;font-weight:480;text-align:right}
.remix-after{border-color:rgba(255,255,255,.25)!important}
.remix-plan-canvas{position:relative;min-height:245px;padding:18px 12px;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.055),transparent 65%)}
.remix-plan-canvas.waiting span{max-width:190px;color:rgba(241,241,233,.32);font:9px/1.65 monospace;text-align:center}
.remix-plan-canvas svg{width:100%;height:auto;overflow:visible}
.remix-floor-boundary{fill:rgba(255,255,255,.018);stroke:rgba(255,255,255,.11);stroke-width:.45}
.remix-floor-platform{fill:rgba(236,238,229,.13);stroke:rgba(236,238,229,.46);stroke-width:.5}
.remix-partition{stroke:rgba(236,238,229,.74);stroke-width:1.4;stroke-linecap:square}
.remix-artwork-dot{stroke:#0e1211;stroke-width:.55}
.remix-interior-marker{opacity:.46;vector-effect:non-scaling-stroke;transition:opacity .25s,filter .25s}
.interiors-selected .remix-interior-marker{opacity:1;filter:drop-shadow(0 0 1.8px rgba(255,255,255,.28))}
.remix-marker-plant{fill:#71b887;stroke:#b8efc7;stroke-width:.55}
.remix-marker-object{fill:rgba(238,238,229,.62);stroke:rgba(255,255,255,.88);stroke-width:.55}
.remix-marker-sculpture{fill:var(--remix-accent);stroke:#f5f5ed;stroke-width:.6}
.remix-marker-water{fill:rgba(82,214,238,.13);stroke:#74e3f4;stroke-width:1}
.remix-floor-number,.remix-plan-caption{fill:rgba(241,241,233,.48);font:4px/1 monospace;letter-spacing:.13em}
.remix-plan-caption{font-size:3.7px}
.remix-plan-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px 20px;padding:11px 2px 0;color:rgba(241,241,233,.58);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.1em}
.remix-plan-legend span{display:flex;align-items:center;gap:7px}
.remix-plan-legend i{width:9px;height:9px;display:inline-block;flex:0 0 auto;border:1px solid rgba(255,255,255,.75);font-style:normal}
.remix-plan-legend .legend-plant{border-radius:50%;border-color:#b8efc7;background:#71b887}
.remix-plan-legend .legend-object{border-radius:1px;background:rgba(238,238,229,.62)}
.remix-plan-legend .legend-sculpture{width:8px;height:8px;transform:rotate(45deg);background:var(--acid)}
.remix-plan-legend .legend-water{border-radius:50%;border-color:#74e3f4;background:rgba(82,214,238,.14)}
.remix-plan-legend small{margin-left:auto;color:rgba(241,241,233,.3);font:7px/1.3 monospace;letter-spacing:.08em;text-transform:none}
.remix-change-list{margin:30px 0 0;padding-top:6px;border-top:1px solid rgba(255,255,255,.28)}
.remix-change-list div{display:grid;grid-template-columns:95px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--remix-line)}
.remix-change-list dt{color:rgba(241,241,233,.76);font:10px/1.35 monospace;text-transform:uppercase;letter-spacing:.13em}
.remix-change-list div:nth-child(2) dt{color:var(--acid)}
.remix-change-list dd{margin:0;color:rgba(241,241,233,.74);font-size:12px;line-height:1.4}
.remix-system-preview{position:relative;margin-top:20px;padding-top:23px;border-top:1px solid rgba(255,255,255,.28)}
.remix-system-preview:before{content:"";position:absolute;left:0;top:-1px;width:72px;height:2px;background:var(--acid)}
.remix-system-preview>header{display:flex;align-items:baseline;justify-content:space-between;gap:22px;padding-bottom:10px}
.remix-system-preview>header small{color:var(--acid);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.14em}
.remix-system-preview>header span{color:rgba(241,241,233,.42);font:8px/1.4 monospace;text-align:right}
.remix-system-preview dl{margin:0;border-top:1px solid var(--remix-line)}
.remix-system-preview dl>div{display:grid;grid-template-columns:95px 1fr;gap:20px;align-items:center;min-height:44px;padding:10px 0;border-bottom:1px solid var(--remix-line)}
.remix-system-preview dt{color:rgba(241,241,233,.82);font:10px/1.35 monospace;text-transform:uppercase;letter-spacing:.12em;transition:color .28s,text-shadow .28s}
.remix-system-preview [data-remix-preview-system].is-remixing dt{color:var(--acid);text-shadow:0 0 18px color-mix(in srgb,var(--acid) 42%,transparent)}
.remix-system-preview dd{margin:0;color:rgba(241,241,233,.78);font-size:12px;line-height:1.4}
.remix-system-preview .material-preview-row{align-items:start;padding:12px 0}
.remix-system-preview .atmosphere-preview-row{align-items:start;padding:12px 0}
.material-preview-row dd,.atmosphere-preview-row dd{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px}
.remix-material-thumbnails{display:grid;grid-template-columns:repeat(3,46px);gap:4px;font-style:normal}
.remix-material-thumbnails>span{position:relative;width:46px;height:34px;display:block;overflow:hidden;border:1px solid rgba(255,255,255,.19);box-shadow:inset 0 0 20px rgba(0,0,0,.08)}
.remix-material-thumbnails>span b{position:absolute;right:3px;bottom:2px;padding:2px;background:rgba(8,10,9,.55);color:rgba(255,255,255,.72);font:6px/1 monospace;font-weight:400}
.remix-material-thumbnails .material-wood{background:repeating-linear-gradient(90deg,rgba(72,38,20,.18) 0 1px,transparent 1px 10px),linear-gradient(135deg,#a9754d,#75462e)}
.remix-material-thumbnails .material-stone{background:linear-gradient(135deg,rgba(255,255,255,.22),transparent 42%),linear-gradient(155deg,#9a9b96,#696d69)}
.remix-material-thumbnails .material-terrazzo{background:radial-gradient(circle at 18% 26%,rgba(76,72,63,.25) 0 1px,transparent 1.4px),radial-gradient(circle at 73% 68%,rgba(255,255,255,.45) 0 1px,transparent 1.5px),linear-gradient(135deg,#d7c9ae,#b6a78d);background-size:17px 19px,23px 21px,auto}
.remix-lighting-thumbnails{display:grid;grid-template-columns:repeat(3,46px);gap:4px;font-style:normal;--lighting-accent:var(--acid)}
.remix-lighting-thumbnails>span{position:relative;width:46px;height:34px;display:block;overflow:hidden;border:1px solid rgba(255,255,255,.17);opacity:.32;filter:brightness(.9);transition:opacity .25s,border-color .25s,filter .25s,transform .25s}
.remix-lighting-thumbnails>span.is-active{opacity:1;border-color:var(--lighting-accent);filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 0 13px color-mix(in srgb,var(--lighting-accent) 24%,transparent)}
.remix-lighting-thumbnails.intensity-subdued>span.is-active{filter:brightness(.68) saturate(.85)}
.remix-lighting-thumbnails.intensity-bright>span.is-active{filter:brightness(1.3) saturate(1.08)}
.remix-lighting-thumbnails>span b{position:absolute;right:3px;bottom:2px;z-index:2;padding:2px;background:rgba(8,10,9,.62);color:rgba(255,255,255,.78);font:6px/1 monospace;font-weight:400}
.remix-lighting-thumbnails .lighting-wash{background:linear-gradient(90deg,rgba(255,245,218,.08),rgba(255,245,218,.72) 42% 58%,rgba(255,245,218,.08)),linear-gradient(#202421,#0d100f)}
.remix-lighting-thumbnails .lighting-wash:before{content:"";position:absolute;left:5px;right:5px;top:5px;height:2px;background:#fff4dc;box-shadow:0 2px 9px 3px rgba(255,239,205,.48)}
.remix-lighting-thumbnails .lighting-chiaroscuro{background:radial-gradient(ellipse at 50% 86%,rgba(255,187,106,.9) 0 10%,rgba(255,163,75,.32) 27%,transparent 54%),linear-gradient(#070807,#18130e)}
.remix-lighting-thumbnails .lighting-chiaroscuro:before{content:"";position:absolute;left:21px;top:3px;width:4px;height:4px;border-radius:50%;background:#ffd092;box-shadow:0 0 7px #ffb461}
.remix-lighting-thumbnails .lighting-architectural{background:linear-gradient(135deg,rgba(26,44,52,.95),rgba(7,11,13,.98))}
.remix-lighting-thumbnails .lighting-architectural:before,.remix-lighting-thumbnails .lighting-architectural:after{content:"";position:absolute;top:4px;bottom:4px;width:2px;background:var(--lighting-accent);box-shadow:0 0 7px var(--lighting-accent);transform:skewX(-18deg)}
.remix-lighting-thumbnails .lighting-architectural:before{left:15px}.remix-lighting-thumbnails .lighting-architectural:after{right:14px}
.remix-preview>footer{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.remix-preview>footer button{min-width:210px;padding:16px 16px;border:0;border-top:2px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.2);display:flex;justify-content:space-between;background:rgba(255,255,255,.035);color:#fff;font:10px/1 monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.remix-preview>footer button:hover:not(:disabled){transform:translateY(-2px);background:rgba(255,255,255,.1)}
.remix-preview>footer .apply-remix{border-top-color:var(--acid)}
.remix-preview>footer .apply-remix:hover:not(:disabled){background:var(--acid);color:#111}
.remix-preview>footer button:disabled{opacity:.25;cursor:not-allowed}
@media(max-width:1150px){.remix-layout{grid-template-columns:1fr;gap:48px}.remix-controls fieldset{grid-template-columns:repeat(3,1fr)}.remix-controls>p{max-width:650px}}
@media(max-width:760px){.remix-studio{padding:24px 18px}.remix-studio>header h2{font-size:56px}.remix-layout{margin-top:30px}.remix-controls fieldset{grid-template-columns:1fr 1fr}.remix-plan-comparison{grid-template-columns:1fr}.remix-plan-canvas{min-height:190px}.remix-preview>header{align-items:flex-start;flex-direction:column;gap:14px}.remix-preview>header>span{text-align:left}.remix-system-preview>header{align-items:flex-start;flex-direction:column;gap:7px}.remix-system-preview>header span{text-align:left}.material-preview-row dd,.atmosphere-preview-row dd{grid-template-columns:1fr}.remix-preview>footer{flex-direction:column}.remix-preview>footer button{width:100%;min-width:0}}

/* One deliberate museum-mode choice shared by startup, generation, Designer and Remix. */
.museum-mode-pills{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.museum-mode-pills label{position:relative;cursor:pointer}
.museum-mode-pills input{position:absolute;opacity:0;pointer-events:none}
.museum-mode-pills label>span{position:relative;min-height:42px;padding:0 12px;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;gap:9px;background:rgba(255,255,255,.025);color:rgba(245,245,238,.7);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.11em;transition:background .25s,border-color .25s,color .25s,transform .3s var(--ease)}
.museum-mode-pills label>span:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.museum-mode-pills label:hover>span{transform:translateY(-1px);background:rgba(255,255,255,.07);color:#fff}
.museum-mode-pills input:checked+span{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.09);color:#fff}
.museum-mode-pills input:checked+span:before{transform:scaleX(1)}
.museum-mode-pills input:focus-visible+span{outline:1px solid var(--acid);outline-offset:3px}
.mode-dark-icon,.mode-light-icon{position:relative;width:17px;height:17px;display:block!important;flex:0 0 auto;border:1px solid currentColor;border-radius:50%;overflow:hidden}
.mode-dark-icon:after{content:"";position:absolute;width:16px;height:16px;left:5px;top:-3px;border-radius:50%;background:currentColor}
.mode-light-icon:after{content:"";position:absolute;inset:4px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor}
.generator-museum-mode{display:grid;grid-template-columns:minmax(0,1fr) 172px;align-items:center;gap:20px;margin:19px 0 25px;padding:15px 0;border-top:1px solid rgba(0,0,0,.17);border-bottom:1px solid rgba(0,0,0,.17)}
.generator-museum-mode>div:first-child{display:grid;gap:5px}
.generator-museum-mode>div:first-child span{font:11px/1 monospace;text-transform:uppercase;letter-spacing:.13em;color:#111}
.generator-museum-mode>div:first-child small{font:11px/1.35 Arial,sans-serif;color:rgba(17,17,17,.62)}
.generator-museum-mode .museum-mode-pills label>span{min-height:38px;border-color:rgba(0,0,0,.17);background:rgba(255,255,255,.2);color:rgba(17,17,17,.62);font-size:8px}
.generator-museum-mode .museum-mode-pills label:hover>span,.generator-museum-mode .museum-mode-pills input:checked+span{border-color:rgba(0,0,0,.38);background:rgba(255,255,255,.7);color:#111}
.generator-current-exhibition{position:relative;margin:27px 0 13px;padding:15px;border:1px solid rgba(0,0,0,.16);background:#202321;color:#f2f2ec}
.generator-panel h2{margin:6vh 0 4vh}
.generator-current-exhibition:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:var(--acid)}
.generator-exhibition-identity{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:15px}
.generator-exhibition-image{position:relative;width:86px;height:72px;overflow:hidden;background:linear-gradient(135deg,#383c39,#171918);display:grid;place-items:center}
.generator-exhibition-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.generator-exhibition-image img[hidden]{display:none}
.generator-exhibition-image span{font:15px/1 monospace;letter-spacing:.12em;color:var(--acid)}
.generator-exhibition-identity small{font:9px/1 monospace;text-transform:uppercase;letter-spacing:.14em;color:rgba(242,242,236,.58)}
.generator-exhibition-identity h3{margin:7px 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:21px;font-weight:380;line-height:1;letter-spacing:-.035em}
.generator-exhibition-identity p{margin:0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:10px/1.3 Arial,sans-serif!important;color:rgba(242,242,236,.66)}
.generator-current-exhibition>button{position:relative;width:100%;margin-top:14px;padding:13px 3px 11px;border:0;border-top:1px solid rgba(255,255,255,.2);background:none;color:#f2f2ec;display:flex;justify-content:space-between;text-align:left;font:10px/1 monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer}
.generator-current-exhibition>button:before{content:"";position:absolute;left:0;top:-1px;width:72px;height:2px;background:var(--acid);transition:width .35s var(--ease)}
.generator-current-exhibition>button:hover:before,.generator-current-exhibition>button:focus-visible:before{width:100%}
.generator-current-exhibition>button:hover,.generator-current-exhibition>button:focus-visible{color:var(--acid);outline:0}
.generator-current-exhibition>button i{font:17px/1 monospace;font-style:normal}
.generator-current-exhibition+.plan-status{margin:13px 0 16px}
.generator-action-group{margin:0 0 28px}
.generator-action-group+.generator-action-group{margin-top:34px}
.generator-action-group>button{position:relative;width:100%;min-height:67px;padding:14px 8px 14px 2px;border:0;border-bottom:1px solid rgba(0,0,0,.17);background:none;color:#111;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;cursor:pointer;transition:padding-left .3s ease,background .3s ease,color .3s ease}
.generator-action-group>button:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left center;transition:transform .34s var(--ease)}
.generator-action-group>button:hover,.generator-action-group>button:focus-visible{padding-left:14px;background:rgba(0,0,0,.045);outline:0}
.generator-action-group>button:hover:before,.generator-action-group>button:focus-visible:before,.generator-primary-actions>#complete-museum:before{transform:scaleX(1)}
.generator-primary-actions:has(button:hover)>#complete-museum:not(:hover):before,.generator-primary-actions:has(button:focus-visible)>#complete-museum:not(:focus-visible):before{transform:scaleX(0)}
.generator-action-group>button>span{min-width:0}
.generator-action-group>button b{display:block;font:11px/1.2 monospace;text-transform:uppercase;letter-spacing:.11em}
.generator-action-group>button small{display:block;margin-top:6px;font:10px/1.35 Arial,sans-serif;color:rgba(17,17,17,.57)}
.generator-action-group>button>i{flex:0 0 auto;font:17px/1 monospace;font-style:normal;transition:transform .3s ease}
.generator-action-group>button:hover>i{transform:translateX(4px)}
.generator-utilities{display:flex;justify-content:space-between;gap:16px;margin:-4px 0 8px}
.generator-utilities button{padding:5px 0;border:0;background:none;color:rgba(17,17,17,.58);font:8px/1.3 monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.generator-utilities button:hover,.generator-utilities button:focus-visible{color:#111;outline:0;text-decoration:underline;text-decoration-color:var(--acid);text-underline-offset:4px}
.mode-options label>span{min-height:82px;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:end;justify-content:start;gap:3px 12px}
.mode-options label>span>i{grid-row:1/3;align-self:center;width:26px;height:26px}
.mode-options label>span>small{grid-column:2;margin-top:0}
.remix-museum-mode{margin:0 0 25px}
.remix-museum-mode>header{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:9px;padding-bottom:10px;border-bottom:1px solid var(--remix-line)}
.remix-museum-mode>header span{color:rgba(241,241,233,.76);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.14em}
.remix-museum-mode>header small{color:rgba(241,241,233,.4);font:8px/1.3 monospace}
.remix-museum-mode .museum-mode-pills label>span{min-height:48px}
@media(max-width:700px){.generator-panel h2{margin:5vh 0 4vh}.generator-exhibition-identity{grid-template-columns:74px minmax(0,1fr)}.generator-exhibition-image{width:74px;height:66px}.generator-museum-mode{grid-template-columns:1fr;gap:11px}.generator-museum-mode .museum-mode-pills{max-width:230px}.generator-action-group>button b{font-size:10px}.mode-options label>span{min-height:80px}}

/* Full-screen museum generation workspace */
.generator-panel{z-index:185;inset:0;width:auto;padding:38px 42px 62px;background:radial-gradient(circle at 78% 2%,rgba(255,255,255,.045),transparent 31%),#0e1211;color:#f1f1e9;animation:panel-in .72s var(--ease) both}
.generator-panel>button{position:fixed;z-index:4;right:42px;top:38px;color:rgba(241,241,233,.72);font-size:10px;padding:8px;border:0;background:rgba(14,18,17,.72);backdrop-filter:blur(12px)}
.generator-panel>button:hover,.generator-panel>button:focus-visible{color:var(--acid);outline:0}
.generator-panel>p,.generator-panel>h2,.generator-copy{width:min(1600px,100%);margin-left:auto;margin-right:auto}
.generator-panel>p{color:rgba(241,241,233,.5);font-size:9px}
.generator-panel h2{margin-top:17px;margin-bottom:0;color:#f1f1e9;font-size:clamp(58px,6.7vw,112px);line-height:.82}
.generator-copy{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.16)}
.generator-copy>p:not(.generator-section-label){max-width:730px;margin:0;color:rgba(241,241,233,.64);font-size:14px;line-height:1.7}
.generator-overview{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(370px,.65fr);gap:16px;margin-top:30px}
.generator-current-exhibition{min-height:212px;margin:0;padding:20px;background:#181d1b;border-color:rgba(255,255,255,.16);display:grid;grid-template-rows:1fr auto}
.generator-exhibition-identity{grid-template-columns:190px minmax(0,1fr);gap:24px}
.generator-exhibition-image{width:190px;height:132px;background:linear-gradient(135deg,#343a37,#101312)}
.generator-exhibition-image span{font-size:22px}
.generator-exhibition-identity small{font-size:9px;color:rgba(241,241,233,.48)}
.generator-exhibition-identity h3{margin:12px 0 9px;font-size:clamp(27px,2.6vw,42px);font-weight:330}
.generator-exhibition-identity p{font-size:12px!important;color:rgba(241,241,233,.66)}
.generator-current-exhibition>button{width:250px;min-height:48px;margin:18px 0 0 auto;padding:0 15px;border-top:0;background:var(--acid);color:#111;align-items:center;font-size:11px;transition:background .3s,color .3s,transform .3s var(--ease)}
.generator-current-exhibition>button:before{display:none}
.generator-current-exhibition>button:hover,.generator-current-exhibition>button:focus-visible{background:#f1f1e9;color:#111;transform:translateY(-2px)}
.generator-museum-settings{padding:22px 24px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.025)}
.generator-panel .generator-section-label{margin:0 0 16px!important;padding:0 0 13px;border-color:rgba(255,255,255,.15);color:rgba(241,241,233,.58);font-size:10px!important}
.generator-museum-settings .plan-status{display:grid;gap:8px;margin:0 0 22px;padding:0 0 21px;border-top:0;border-bottom:1px solid rgba(255,255,255,.14);color:rgba(241,241,233,.5);font-size:9px}
.generator-museum-settings .plan-status strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f1f1e9;font:16px/1.25 Arial,sans-serif;text-transform:none;letter-spacing:0}
.generator-panel .generator-museum-mode{grid-template-columns:minmax(0,1fr) 190px;margin:0;padding:0;border:0}
.generator-panel .generator-museum-mode>div:first-child span{color:#f1f1e9;font-size:13px}
.generator-panel .generator-museum-mode>div:first-child small{color:rgba(241,241,233,.58);font-size:12px}
.generator-panel .generator-museum-mode .museum-mode-pills label>span{min-height:46px;border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.025);color:rgba(241,241,233,.64);font-size:9px}
.generator-panel .generator-museum-mode .museum-mode-pills label:hover>span,.generator-panel .generator-museum-mode .museum-mode-pills input:checked+span{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.09);color:#fff}
.generator-creation-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.generator-panel .generator-action-group{margin:0;padding:22px 24px 20px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.025)}
.generator-panel .generator-action-group+.generator-action-group{margin-top:0}
.generator-panel .generator-action-group>button{min-height:79px;padding:17px 9px 17px 2px;border-bottom-color:rgba(255,255,255,.14);color:#f1f1e9}
.generator-panel .generator-action-group>button:hover,.generator-panel .generator-action-group>button:focus-visible{padding-left:14px;background:rgba(255,255,255,.055)}
.generator-panel .generator-action-group>button b{font-size:12px;color:#f1f1e9}
.generator-panel .generator-action-group>button small{font-size:12px;line-height:1.42;color:rgba(241,241,233,.58)}
.generator-panel .generator-action-group>button>i{color:var(--acid);font-size:20px}
.generator-panel .generator-utilities{margin:16px 0 0;padding:0 3px}
.generator-panel .generator-utilities button{color:rgba(241,241,233,.47);font-size:9px}
.generator-panel .generator-utilities button:hover,.generator-panel .generator-utilities button:focus-visible{color:#f1f1e9}
.generator-panel .museum-vault{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(440px,1.22fr);column-gap:44px;margin:30px 0 0;padding:24px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.025)}
.generator-panel .museum-vault>header{grid-column:1/-1;margin-bottom:24px;padding-bottom:17px;border-bottom:1px solid rgba(255,255,255,.14)}
.generator-panel .museum-vault>header small,.generator-panel .preset-name>span,.generator-panel .museum-vault>header>span{color:rgba(241,241,233,.55);font-size:9px!important}
.generator-panel .museum-vault>header>span{color:var(--acid)}
.generator-panel .museum-vault h3{color:#f1f1e9;font-size:29px}
.generator-panel .preset-name{grid-column:1;grid-row:2}
.generator-panel .preset-name input{border-bottom-color:rgba(255,255,255,.22);color:#f1f1e9;font-size:14px}
.generator-panel .preset-name input::placeholder{color:rgba(241,241,233,.34)}
.generator-panel .vault-save-actions{grid-column:1;grid-row:3;margin:18px 0 11px}
.generator-panel .vault-save-actions button,.generator-panel .import-preset{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.025);color:#f1f1e9}
.generator-panel .vault-save-actions button:hover,.generator-panel .vault-save-actions button:focus-visible,.generator-panel .import-preset:hover,.generator-panel .import-preset:focus-visible{border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.08)}
.generator-panel .vault-save-actions button b{font-size:10px}
.generator-panel .vault-save-actions button small{color:rgba(241,241,233,.58);opacity:1}
.generator-panel .preset-library{grid-column:2;grid-row:2/5;align-self:start;max-height:310px;overflow:auto;padding-right:5px;scrollbar-width:thin}
.generator-panel .preset-empty{border-color:rgba(255,255,255,.13);color:rgba(241,241,233,.53)}
.generator-panel .preset-card{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.035);color:#f1f1e9}
.generator-panel .preset-card-copy span,.generator-panel .preset-card-copy small{color:rgba(241,241,233,.58)}
.generator-panel .preset-card-actions button{border-color:rgba(255,255,255,.2);color:#f1f1e9}
.generator-panel .preset-card-actions button:hover,.generator-panel .preset-card-actions button:focus-visible{background:#f1f1e9;color:#111}
.generator-panel .import-preset{grid-column:1;grid-row:4;margin-top:0}
.generator-panel .vault-status{grid-column:1/-1;grid-row:5;margin-top:17px!important;padding-top:15px;border-top:1px solid rgba(255,255,255,.12);color:rgba(241,241,233,.52)}
.generator-panel .vault-status.success{color:#cce864}.generator-panel .vault-status.error{color:#ff8b80}
@media(max-width:980px){.generator-panel{padding:30px 26px 50px}.generator-panel>button{right:26px;top:28px}.generator-overview,.generator-creation-grid{grid-template-columns:1fr}.generator-panel .museum-vault{grid-template-columns:1fr}.generator-panel .museum-vault>*{grid-column:1!important;grid-row:auto!important}.generator-panel .preset-library{max-height:none;margin:13px 0 4px}.generator-panel .generator-museum-mode{grid-template-columns:1fr 190px}}
@media(max-width:620px){.generator-panel{padding:23px 18px 42px}.generator-panel>button{right:17px;top:18px}.generator-panel h2{max-width:320px;margin-top:12px;font-size:54px}.generator-copy{margin-top:34px}.generator-overview{margin-top:24px}.generator-current-exhibition{padding:15px}.generator-exhibition-identity{grid-template-columns:94px minmax(0,1fr);gap:14px}.generator-exhibition-image{width:94px;height:82px}.generator-exhibition-identity h3{font-size:25px}.generator-current-exhibition>button{width:100%}.generator-panel .generator-museum-mode{grid-template-columns:1fr;gap:13px}.generator-panel .generator-museum-mode .museum-mode-pills{max-width:none}.generator-panel .generator-action-group,.generator-museum-settings,.generator-panel .museum-vault{padding:18px 16px}.generator-panel .vault-save-actions{grid-template-columns:1fr}.generator-panel .generator-utilities{align-items:flex-start;flex-direction:column}}

/* Creation paths — one clear decision before the supporting tools. */
.generator-outcomes{margin-top:16px;padding:24px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.025)}
.generator-outcomes>header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:20px}
.generator-outcomes>header .generator-section-label{margin-bottom:10px!important;padding:0;border:0}
.generator-outcomes>header h3{margin:0;color:#f1f1e9;font-size:clamp(24px,2.1vw,34px);font-weight:330;line-height:1;letter-spacing:-.04em}
.generator-outcomes>header>span{padding-bottom:3px;color:rgba(241,241,233,.48);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.13em}
.generator-outcome-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.generator-path{position:relative;min-width:0;padding:18px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.018);overflow:hidden;transition:border-color .35s,background .35s}
.generator-path:before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--acid);transform:scaleX(0);transform-origin:left center;transition:transform .4s var(--ease)}
.generator-path.featured:before,.generator-path:has(.generator-path-action:hover):before,.generator-path:has(.generator-path-action:focus-visible):before{transform:scaleX(1)}
.generator-outcome-grid:has(.generator-path-action:hover) .generator-path.featured:not(:has(.generator-path-action:hover)):before,.generator-outcome-grid:has(.generator-path-action:focus-visible) .generator-path.featured:not(:has(.generator-path-action:focus-visible)):before{transform:scaleX(0)}
.generator-path.featured{background:linear-gradient(145deg,color-mix(in srgb,var(--acid) 8%,transparent),rgba(255,255,255,.022));border-color:color-mix(in srgb,var(--acid) 30%,rgba(255,255,255,.16))}
.generator-path>header{min-height:78px;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:2px 2px 16px;border-bottom:1px solid rgba(255,255,255,.11)}
.generator-path-number{padding-top:5px;color:var(--acid);font:9px/1 monospace;letter-spacing:.12em}
.generator-path>header h4{margin:0;color:#fff;font:13px/1.15 monospace;text-transform:uppercase;letter-spacing:.12em}
.generator-path>header p{max-width:290px;margin:7px 0 0;color:rgba(241,241,233,.57);font:12px/1.4 Arial,sans-serif}
.generator-path-actions{display:grid;grid-template-rows:1fr 1fr}
.generator-path-actions:has(>.generator-path-action[hidden]){grid-template-columns:1fr;grid-template-rows:1fr}
.generator-path-action{position:relative;min-height:180px;padding:19px 2px 17px 2px;border:0;border-bottom:1px solid rgba(255,255,255,.11);background:transparent;color:#f1f1e9;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;text-align:left;cursor:pointer;transition:padding .3s var(--ease),background .3s}
.generator-path-action:last-child{border-bottom:0}
.generator-path-action:hover,.generator-path-action:focus-visible{padding-left:13px;padding-right:10px;background:rgba(255,255,255,.055);outline:0}
.generator-path-action>span{align-self:stretch;display:flex;flex-direction:column;min-width:0}
.generator-path-action b{display:block;margin:0 0 9px;color:#fff;font:12px/1.2 monospace;text-transform:uppercase;letter-spacing:.105em}
.generator-path-action small{display:block;max-width:310px;color:rgba(241,241,233,.67);font:13px/1.47 Arial,sans-serif}
.generator-path-action>i{color:var(--acid);font:18px/1 monospace;font-style:normal;transition:transform .3s var(--ease)}
.generator-path-action:hover>i,.generator-path-action:focus-visible>i{transform:translate(3px,-3px)}
.generator-change-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:20px}
.generator-change-tags em{padding:6px 8px;border:1px solid currentColor;background:rgba(255,255,255,.025);font:9px/1 monospace;font-style:normal;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.generator-change-tags .tag-architecture{color:#86dcff;background:rgba(92,194,235,.075)}
.generator-change-tags .tag-exhibition{color:#ffc477;background:rgba(255,173,76,.075)}
.generator-change-tags .tag-systems{color:#98efc8;background:rgba(97,219,164,.075)}
.generator-intent-preview{display:grid;grid-template-columns:110px minmax(150px,.38fr) minmax(280px,1fr);align-items:center;gap:19px;margin-top:10px;padding:13px 15px;border:1px solid rgba(255,255,255,.1);background:#111614}
.generator-intent-preview>span{color:rgba(241,241,233,.42);font:8px/1 monospace;text-transform:uppercase;letter-spacing:.13em}
.generator-intent-preview>strong{color:var(--acid);font:10px/1.2 monospace;text-transform:uppercase;letter-spacing:.1em}
.generator-intent-preview>p{margin:0;color:rgba(241,241,233,.58);font:11px/1.45 Arial,sans-serif}

.generator-panel .museum-vault{display:block;margin-top:16px;padding:0;border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.015)}
.generator-panel .museum-vault>summary{padding:19px 23px;display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none;cursor:pointer;transition:background .3s}
.generator-panel .museum-vault>summary::-webkit-details-marker{display:none}
.generator-panel .museum-vault>summary:hover,.generator-panel .museum-vault>summary:focus-visible{background:rgba(255,255,255,.045);outline:0}
.generator-panel .museum-vault>summary small{color:rgba(241,241,233,.48);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.13em}
.generator-panel .museum-vault>summary h3{margin-top:7px;font-size:25px}
.generator-panel .museum-vault>summary>span{color:rgba(241,241,233,.52);font:9px/1 monospace;text-transform:uppercase;letter-spacing:.11em}
.generator-panel .museum-vault>summary>span b{font:inherit;font-weight:400}
.generator-panel .museum-vault>summary>span i{display:inline-block;margin-left:12px;color:var(--acid);font:17px/1 monospace;font-style:normal;transition:transform .35s var(--ease)}
.generator-panel .museum-vault[open]>summary>span i{transform:rotate(45deg)}
.museum-vault-body{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(440px,1.22fr);column-gap:44px;padding:23px;border-top:1px solid rgba(255,255,255,.12)}
.generator-panel .museum-vault-body .preset-name{grid-column:1;grid-row:1}
.generator-panel .museum-vault-body .vault-save-actions{grid-column:1;grid-row:2}
.generator-panel .museum-vault-body .preset-library{grid-column:2;grid-row:1/4}
.generator-panel .museum-vault-body .import-preset{grid-column:1;grid-row:3}
.generator-panel .museum-vault-body .vault-status{grid-column:1/-1;grid-row:4}
.generator-panel .museum-vault-body .preset-card{grid-template-columns:70px minmax(0,1fr) auto;align-items:center}
.preset-card-visual{position:relative;width:70px;height:54px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(140deg,#313835,#121614)}
.preset-card-visual.is-light{background:linear-gradient(140deg,#ddd8ca,#777d77)}
.preset-card-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.8) brightness(.78)}
.preset-card-visual:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.14);pointer-events:none}
.preset-card-visual span{position:relative;z-index:1;color:#fff;font:8px/1 monospace;letter-spacing:.16em;text-shadow:0 1px 8px #000}

@media(max-width:1100px){.generator-outcome-grid{grid-template-columns:1fr}.generator-path-actions{grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:10px}.generator-path-action{min-height:165px;border-bottom:0;border-right:1px solid rgba(255,255,255,.11)}.generator-path-action:last-child{border-right:0}.generator-intent-preview{grid-template-columns:100px minmax(140px,.4fr) 1fr}}
@media(max-width:980px){.museum-vault-body{grid-template-columns:1fr}.generator-panel .museum-vault-body>*{grid-column:1!important;grid-row:auto!important}.generator-panel .museum-vault-body .preset-library{max-height:none;margin:13px 0 4px}}
@media(max-width:620px){.generator-outcomes{padding:17px 15px}.generator-outcomes>header{align-items:start}.generator-outcomes>header>span{display:none}.generator-path{padding:15px 13px}.generator-path-actions{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.generator-path-action{min-height:184px;border-right:0;border-bottom:1px solid rgba(255,255,255,.11)}.generator-path-action:last-child{border-bottom:0}.generator-intent-preview{display:block}.generator-intent-preview>span,.generator-intent-preview>strong{display:block;margin-bottom:8px}.generator-panel .museum-vault>summary{padding:17px 15px}.museum-vault-body{padding:16px}.generator-change-tags em{white-space:normal}}

/* High-priority interaction cues. Kept last to override compact HUD defaults. */
.art-prompt small{font-size:10px;color:rgba(255,255,255,.9);font-weight:600;letter-spacing:.085em}
.curator-prompt kbd{min-width:54px;padding:8px 10px;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08);color:#fff;font-size:10px;font-weight:600;letter-spacing:.08em;box-shadow:0 0 18px color-mix(in srgb,var(--acid) 12%,transparent)}
.curator-prompt:hover kbd,.curator-prompt:focus-visible kbd{border-color:var(--acid);background:var(--acid);color:#111}

/* Large-desktop museum HUD — a restrained scale-up without enlarging dialogs. */
@media(min-width:1440px) and (min-height:800px){
  .topbar{left:30px;right:30px;top:26px}
  .museum-brand{gap:13px}
  .museum-brand strong{font-size:27px}
  .museum-brand small{padding-left:13px;font-size:10px;line-height:1.4}
  .location-readout{gap:15px;font-size:10px}
  .controls{gap:23px}
  .light-control,#theme-toggle{font-size:10px}
  .light-control{gap:10px}
  .light-control input{width:80px}
  .fullscreen-toggle{width:34px;height:34px}
  .fullscreen-toggle svg{width:18px;height:18px}
  .floor-index{left:30px;gap:12px}
  .floor-index .floor-label{font-size:9px}
  .floor-index button{width:27px;height:27px;font-size:10px}
  .floor-line{height:68px}
  .movement-hint{left:30px;bottom:27px;gap:23px;font-size:9px}
  .movement-hint kbd,.map-button kbd,.generate-button kbd{min-width:20px;height:20px;font-size:9px}
  .map-button,.generate-button{bottom:25px;gap:11px;font-size:10px}
  .map-button{right:76px}
  .generate-button{right:166px}
  .info-button{right:29px;bottom:24px;width:25px;height:25px;font-size:13px}
  .journey-button{right:29px;bottom:65px;padding:9px 12px;font-size:9px}
  .art-prompt{min-width:275px;padding:12px 17px;gap:4px 16px}
  .art-prompt span{font-size:9px}
  .art-prompt strong{font-size:15px}
  .art-prompt small{font-size:11px}
  .museum-tip{width:min(680px,calc(100vw - 48px));padding:17px 18px 16px 20px}
  .museum-tip strong{font-size:14px}
  .museum-tip small{font-size:10px}
  .museum-tip button{font-size:9px}
  .curator-prompt{min-width:360px;min-height:72px;padding:14px 17px 14px 19px}
  .curator-prompt span{font-size:9px}
  .curator-prompt strong{font-size:14px}
}

/* Keep the information content visually connected to its title. */
.info-panel h2{margin:8vh 0 clamp(34px,5vh,54px)}
