@font-face{font-family:Caprasimo;src:url(assets/caprasimo.ttf) format('truetype');font-display:swap}@font-face{font-family:DogeSans;src:url(assets/sans.ttf) format('truetype');font-weight:400;font-display:swap}@font-face{font-family:DogeSans;src:url(assets/sans-bold.ttf) format('truetype');font-weight:700;font-display:swap}
:root{--cream:#fff5df;--ink:#2b392c;--muted:#716c59;--blue:#4876b0;--font:DogeSans,system-ui,sans-serif;--display:Caprasimo,Georgia,serif;--card:300px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#5b432e;color:var(--ink);font-family:var(--font)}button,input,a{font:inherit;color:inherit}a{text-decoration:none}button{cursor:pointer;border:0;background:none}button,a,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #62b6df;outline-offset:4px}.skip{position:fixed;top:-100px;left:15px;background:var(--cream);padding:15px;z-index:50}.skip:focus{top:15px}
.museum-header{position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;padding:20px 28px 35px;z-index:20;background:linear-gradient(#21190ebb,transparent);color:var(--cream);pointer-events:none}.museum-header>*{pointer-events:auto}.museum-home{display:flex;align-items:center;gap:22px;min-height:52px;font-size:14px;font-weight:700;text-shadow:0 2px 5px #251c12}.museum-home img{width:78px;height:52px;object-fit:contain}.museum-name{position:absolute;left:50%;transform:translateX(-50%);font:400 24px var(--display);margin:12px 0 0;text-shadow:0 2px 5px #251c12;white-space:nowrap}.pack-menu{position:relative}.pack-menu summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 0 8px 12px;font-size:14px;font-weight:700;cursor:pointer}.pack-menu summary::-webkit-details-marker{display:none}.pack-links{position:absolute;right:0;top:100%;width:210px;padding:7px 16px;background:var(--cream);border-radius:14px;color:var(--ink);box-shadow:0 10px 35px #211a1240}.pack-links a{display:flex;justify-content:space-between;align-items:center;min-height:46px;font-size:14px;font-weight:700}.pack-links a+a{border-top:1px solid #ddd1b9}.pack-links a:hover{color:var(--blue)}
#world{position:fixed;inset:0;overflow:hidden;touch-action:pan-y;user-select:none}#plate{position:absolute;left:0;top:0;width:1536px;height:1024px;max-width:none;transform-origin:0 0;pointer-events:none}#stage,#life-back,#life-front,#gal-frames{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#life-back{z-index:1}#stage{z-index:2}.stage-canvas{display:block;width:100%;height:100%}#life-front{z-index:3}#gal-frames{z-index:4;--k:1}.gal-frame{position:absolute;left:0;top:0;pointer-events:auto;border:0;padding:0;background:transparent;cursor:zoom-in;touch-action:pan-y;border-radius:2px}.gal-frame:focus-visible{outline:3px solid #fff4d0;outline-offset:calc(14px * var(--k))}.gal-frame .plaque{position:absolute;top:calc(100% + 5px * var(--k));left:50%;transform:translateX(-50%);padding:calc(2px * var(--k)) calc(7px * var(--k));background:linear-gradient(#f6e2a4,#c89d4c);box-shadow:0 1px 2px #28140666;color:#3b240f;border-radius:2px;font-size:calc(9.5px * var(--k));font-weight:700;white-space:nowrap}.gal-frame:hover .plaque{transform:translateX(-50%) scale(1.08)}.gal-frame.missing{background:#f4e9ce;cursor:pointer}.gal-frame.missing:after{content:'Picture taking a moment. Tap to retry.';position:absolute;inset:15% 8%;display:grid;place-items:center;font-size:12px;line-height:1.4}
.gal-desk{position:fixed;right:24px;bottom:24px;width:296px;padding:20px;background:#fff5dff5;backdrop-filter:blur(10px);border:1px solid #fff8e8b0;border-radius:21px;box-shadow:0 10px 40px #36200633;z-index:10;max-height:calc(100svh - 125px);overflow:auto}.desk-head{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;letter-spacing:1.4px;font-weight:700;line-height:1.5;margin:0 0 8px}#desk-close{display:none;font-size:25px;width:44px;height:44px}.gal-wings{display:flex;gap:5px;padding:4px;background:#e8dcc2;border-radius:12px;margin:4px 0 13px}.gal-wings button{flex:1;min-height:42px;border-radius:9px;font-size:14px;font-weight:700}.gal-wings [aria-pressed=true]{background:var(--cream);box-shadow:0 2px 4px #33281715}.gal-desk h1{font:400 24px/1.15 var(--display);margin:0 0 5px}.gal-desk #gal-sub{font-size:13px;line-height:1.4;color:var(--muted);margin:0 0 17px}.gal-desk label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:7px}#gal-find{display:flex;gap:4px;padding:4px;background:#eee1c8;border-radius:12px}#gal-n{border:0;background:none;min-width:0;width:100%;padding:9px;font-size:14px;outline-offset:0}#gal-find button{width:44px;min-height:42px;flex-shrink:0;border-radius:9px;background:var(--ink);color:var(--cream);font-size:23px}#gal-error{font-size:12px;line-height:1.45;color:#8b3535;margin:9px 0}.gal-jump{display:flex;gap:6px;margin-top:10px}.gal-jump button{flex:1;min-height:42px;background:#eee1c8;border-radius:10px;font-size:12px;font-weight:700}.gal-jump button:hover{background:#dfcea9}
.museum-action,.scene-arrow{display:flex;align-items:center;justify-content:center;gap:9px;position:fixed;z-index:9;background:var(--cream);color:var(--ink);min-height:46px;padding:12px 17px;font-size:14px;font-weight:700;border-radius:30px;box-shadow:0 4px 12px #281b1526;transition:transform .15s,background .15s}.museum-action:hover,.scene-arrow:hover{background:#ffebba;transform:translateY(-2px)}.museum-action.surprise{bottom:98px;left:50%;transform:translateX(-50%);background:#4876b0;color:#fff9e9}.surprise>span{font-size:23px;line-height:1}.surprise:hover{transform:translate(-50%,-2px);background:#365f94}.browse{display:none}.scene-arrow{top:45%;min-width:46px}.scene-arrow b{font-size:22px;font-weight:400;line-height:1}.scene-arrow.prev{left:24px}.scene-arrow.next{right:24px}#wall-rail{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:7px;padding:7px;border-radius:16px;background:#fff5dfec;box-shadow:0 4px 24px #281b1533;z-index:10}#wall-rail button{width:50px;padding:0 0 4px;border-radius:9px;overflow:hidden;font-size:10px;font-weight:700;line-height:1.2;background:#e8dcc2;transition:transform .15s}#wall-rail button:hover{transform:translateY(-3px)}#wall-rail canvas{display:block;width:50px;height:50px;background:#e2d5ba;margin-bottom:3px}.pan-hint{position:fixed;left:25px;bottom:13px;color:#fff5dfc9;font-size:11px;font-style:italic;text-shadow:0 1px 3px #231609;margin:0;pointer-events:none;z-index:8}#museum-status{position:fixed;left:50%;top:102px;transform:translateX(-50%);max-width:calc(100% - 32px);border-radius:12px;background:var(--cream);padding:12px 18px;font-size:13px;line-height:1.4;box-shadow:0 5px 20px #29190930;z-index:21;text-align:center}
#art-dialog{border:0;padding:0;width:min(500px,calc(100vw - 24px));max-height:calc(100svh - 30px);border-radius:23px;background:var(--cream);color:var(--ink);box-shadow:0 25px 90px #190e075c;overflow:auto}#art-dialog::backdrop{background:#23180f88;backdrop-filter:blur(5px)}#art-content{padding:27px}#art-dialog.trait-picker{width:min(790px,calc(100vw - 24px))}.dialog-close{position:sticky;float:right;right:8px;top:8px;margin:8px 8px -52px 0;width:44px;height:44px;border-radius:50%;background:#fff5dfef;font-size:26px;z-index:4;box-shadow:0 1px 6px #211a1215}#art-dialog h2{font:400 30px/1.1 var(--display);margin:5px 0 10px}#art-dialog p{font-size:14px;line-height:1.5;margin:0 0 15px}#art-dialog .eyebrow{font-size:9px;margin-bottom:6px}#art-dialog .joke{color:#6f6c57}#art-dialog .row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 12px}.as-btn{display:flex;align-items:center;justify-content:center;min-height:46px;padding:11px 15px;border-radius:12px;font-weight:700;font-size:13px}.primary{background:var(--ink);color:var(--cream)}.ghost{border:1px solid #bcbea5}.fine,.fine a{font-size:12px!important;color:#6f6c57}.fine a{text-decoration:underline;text-underline-offset:3px}.traits{display:grid;grid-template-columns:1fr 1fr;gap:10px 17px;margin:0}.traits div{min-width:0}.traits dt{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:700}.traits dd{margin:0}.trait-link{font-size:14px;padding:5px 0;text-align:left;text-decoration:underline;text-decoration-color:#aba68a;text-underline-offset:3px;min-height:32px;overflow-wrap:anywhere}.look-art{--card:min(280px,64vw);width:var(--card);height:var(--card);display:grid;place-items:center;margin:4px auto 28px}.art-stage{position:relative;width:var(--card);height:var(--card);cursor:grab;touch-action:none;user-select:none}.art-card{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none;will-change:transform}.art-bg,.art-layer,.art-glare,.art-frame{position:absolute;inset:0}.art-bg{background:#efdfbe}.art-layer{width:100%;height:100%;pointer-events:none;user-select:none}.art-extra{position:absolute;inset:0;transform-style:preserve-3d}.art-glare{mix-blend-mode:soft-light;pointer-events:none}.art-frame{inset:-2%;border:calc(var(--card)*.035) solid #fdf7e9;border-radius:calc(var(--card)*.05);box-shadow:0 5px 18px #281b152b,inset 0 0 0 1px #38221622}.art-shadow{position:absolute;left:10%;right:10%;bottom:-8%;height:15%;border-radius:50%;background:radial-gradient(ellipse,#140a0459,transparent 70%);filter:blur(8px)}.art-note{position:absolute;left:50%;bottom:6%;padding:6px 10px;border-radius:16px;background:#382216d1;color:var(--cream);font-size:10px;white-space:nowrap}.never-art{width:100%;height:100%;object-fit:cover;border:9px solid #fdf7e9;box-shadow:0 5px 18px #281b152b}
.tabs{display:flex;gap:6px;overflow:auto;padding:5px 0 14px;scrollbar-width:thin}.tab{flex-shrink:0;min-height:42px;padding:10px 14px;border-radius:24px;background:#eee2ca;font-size:13px;font-weight:700}.tab[aria-selected=true]{background:var(--ink);color:var(--cream)}.trait-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.item{min-width:0;text-align:left;overflow:hidden;border-radius:13px;background:#fff9ec;padding:8px;border:1px solid #e5d7b9}.item .pic{display:grid;place-items:center;aspect-ratio:1;background:#eee1c5;border-radius:9px;margin-bottom:7px}.pic img{display:block;max-width:100%;max-height:130px;object-fit:contain}.swatch{width:100%;height:100%;border-radius:9px}.item b,.item small{display:block;overflow-wrap:anywhere}.item b{font-size:12px;line-height:1.3}.item small{font-size:10px;margin-top:4px;color:var(--muted)}.item .rare{color:#47735c}.item:hover{border-color:#4876b0}.no-script{position:fixed;inset:20px;overflow:auto;max-width:500px;margin:auto;padding:25px;background:var(--cream);z-index:99;border-radius:20px;height:fit-content}.no-script a{display:block;min-height:45px;text-decoration:underline;padding:10px}.scene-out{opacity:0;transition:opacity .28s}.scene-in{animation:arrive .3s ease}@keyframes arrive{from{opacity:0}to{opacity:1}}
@media(max-width:1000px){.museum-name{display:none}.museum-home{gap:12px}.museum-header{padding:16px 22px 30px}.gal-desk{width:270px;right:16px;bottom:16px;padding:17px}.pan-hint{display:none}.museum-action.surprise{left:35%}#wall-rail{left:35%}.scene-arrow{font-size:12px}.scene-arrow.prev{left:16px}.scene-arrow.next{right:16px}}
@media(max-width:760px){.museum-header{padding:14px 18px 27px}.museum-home{font-size:12px;gap:10px}.museum-home img{width:60px;height:40px}.pack-menu summary{font-size:12px}.pack-links{width:190px}.gal-desk{display:none;inset:auto 12px 169px;width:auto;max-height:calc(100svh - 250px);padding:17px;border-radius:20px}.desk-open .gal-desk{display:block}#desk-close{display:block;margin:-7px -8px -5px 0}.desk-open .scene-arrow{visibility:hidden}.gal-desk h1{font-size:24px}.museum-action.surprise{left:12px;bottom:101px;transform:none;min-height:46px;padding:10px 16px;font-size:13px}.surprise:hover{transform:translateY(-2px)}.museum-action.browse{display:flex;right:12px;bottom:101px;min-height:46px;padding:10px 15px;font-size:13px}.browse[aria-expanded=true]{background:var(--ink);color:var(--cream)}#wall-rail{left:50%;bottom:max(14px,env(safe-area-inset-bottom));gap:6px;padding:7px}#wall-rail button{width:47px}#wall-rail canvas{width:47px;height:47px}.scene-arrow{top:44%;padding:11px 12px;font-size:0;min-width:44px;gap:0}.scene-arrow span{display:none}.scene-arrow b{font-size:22px}.scene-arrow.prev{left:12px}.scene-arrow.next{right:12px}#museum-status{top:84px;font-size:12px}.trait-grid{grid-template-columns:repeat(3,1fr);gap:8px}#art-content{padding:27px 20px 20px}.traits{gap:7px 14px}.as-btn{font-size:12px;padding:10px 13px}.look-art{margin-top:12px}}
@media(max-height:500px) and (min-aspect-ratio:1/1){.museum-header{padding:8px 16px 20px}.museum-home img{width:48px;height:36px}.museum-home{min-height:40px}.gal-desk{display:none;left:auto;right:12px;bottom:62px;width:285px;max-height:calc(100svh - 120px)}.desk-open .gal-desk{display:block}.museum-action.browse{display:flex;right:12px;bottom:12px}.museum-action.surprise{left:12px;bottom:12px;transform:none}#wall-rail{left:50%;bottom:12px}#wall-rail button{width:35px}#wall-rail canvas{width:35px;height:35px}.scene-arrow{top:45%}#museum-status{top:58px}.look-art{--card:170px}#art-dialog{max-height:calc(100svh - 18px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.museum-action:hover,.scene-arrow:hover,#wall-rail button:hover{transform:none}.museum-action.surprise:hover{transform:translateX(-50%)}@media(max-width:760px){.museum-action.surprise:hover{transform:none}}}
/* Deep links finish selecting their exhibition before browsing controls appear. */
body:not([data-museum="ready"]) .gal-desk,body:not([data-museum="ready"]) .museum-action,body:not([data-museum="ready"]) .scene-arrow,body:not([data-museum="ready"]) #wall-rail{visibility:hidden}
body:not([data-museum="ready"]) .gal-frame{pointer-events:none}
@media(max-width:760px){#gal-n{font-size:16px}.trait-link{min-height:44px}}
@media(min-width:620px) and (max-height:500px) and (min-aspect-ratio:1/1){#wall-rail button{width:44px}#wall-rail canvas{width:44px;height:44px}}

/* Revision 105: retain finger-sized targets in every browsing view. */
.gal-wings button,.gal-jump button,#gal-find button,.tab{min-height:44px}
@media(max-height:500px) and (min-aspect-ratio:1/1){#wall-rail button{min-width:44px}#wall-rail canvas{width:44px;height:44px}#wall-rail{max-width:calc(100vw - 330px);overflow-x:auto;overscroll-behavior-x:contain}.gal-desk{padding-bottom:14px}#desk-close{display:block}}
