:root{--bg: #050404;--gold: #d9b56a;--gold-dim: #8f7444;--gold-faint: rgba(217, 181, 106, .35);--parch: #e3c98f;--parch-dark: #b99a5e;--ink: #120d0a;--crimson: #7a2e22;--box: rgba(14, 10, 8, .86);--font: "Almendra", "Palatino Linotype", Georgia, serif;--font-title: "Pirata One", "Almendra", Georgia, serif;--stage-w: min(780px, 100vw, 75dvh );--cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Cpath d='M3 2l14 7-6 2-2 6z' fill='%23d9b56a' stroke='%23050404' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 3 2, default;--cursor-hot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Ccircle cx='15' cy='15' r='9' fill='none' stroke='%23050404' stroke-width='3.4'/%3E%3Ccircle cx='15' cy='15' r='9' fill='none' stroke='%23d9b56a' stroke-width='1.6'/%3E%3Ccircle cx='15' cy='15' r='2' fill='%23d9b56a'/%3E%3C/svg%3E") 15 15, pointer}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--gold);font-family:var(--font);overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}body{cursor:var(--cursor)}button{font:inherit;color:inherit;background:none;border:0;cursor:var(--cursor-hot);padding:0}[hidden]{display:none!important}#app{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}#stage{position:relative;width:var(--stage-w);aspect-ratio:3 / 4;max-height:100dvh;overflow:hidden;background:#000}#scene{position:absolute;top:0;right:0;bottom:0;left:0}#scene.shake{animation:shake .09s linear infinite}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-5px,3px)}50%{transform:translate(4px,-4px)}75%{transform:translate(-3px,-2px)}to{transform:translate(3px,4px)}}#art{position:absolute;top:0;right:0;bottom:0;left:0}#art .layer{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.4s ease,filter 1.6s ease;background-size:cover;background-position:center;filter:var(--art-filter, none)}#art .layer.on{opacity:1}#art .layer img{width:100%;height:100%;object-fit:cover;display:block}#art.dim .layer{filter:brightness(.22) saturate(.6)!important}.ph{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.ph:before{content:"";position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply;opacity:.9}.ph:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 40%,transparent 30%,rgba(0,0,0,.75) 100%)}.ph .ph-title{position:absolute;left:0;right:0;top:8%;text-align:center;z-index:2;font-family:var(--font-title);font-size:clamp(22px,5vw,38px);color:#d9b56a8c;letter-spacing:.06em}.ph .ph-sub{position:absolute;left:10%;right:10%;bottom:30%;text-align:center;z-index:2;font-style:italic;font-size:13px;color:#d9b56a47}#fx{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.glow{position:absolute;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,#ffbe5abf,#e6782859 30%,#a0321400 70%);mix-blend-mode:screen;animation:flicker 2.6s infinite ease-in-out;opacity:0;transition:opacity 1.5s}.glow.on{opacity:1}@keyframes flicker{0%,to{transform:translate(-50%,-50%) scale(1);filter:brightness(1)}30%{transform:translate(-50%,-52%) scale(1.06);filter:brightness(1.2)}55%{transform:translate(-50%,-49%) scale(.95);filter:brightness(.85)}80%{transform:translate(-50%,-51%) scale(1.03)}}.fire{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.2s;background:radial-gradient(ellipse at 30% 110%,rgba(255,140,40,.9),transparent 55%),radial-gradient(ellipse at 75% 105%,rgba(255,90,20,.85),transparent 50%),linear-gradient(to top,#8c140ad9,#3c000000 75%);mix-blend-mode:screen;animation:burn .35s infinite alternate}.fire.on{opacity:1}@keyframes burn{0%{filter:brightness(.85) hue-rotate(-6deg)}to{filter:brightness(1.25) hue-rotate(6deg)}}.feather{position:absolute;width:5%;aspect-ratio:1 / 3;transform-origin:50% 50%;transition:transform 3.6s cubic-bezier(.4,.1,.3,1),left 3.6s cubic-bezier(.5,0,.3,1),top 3.6s cubic-bezier(.5,0,.3,1),opacity 1.2s,filter 2.4s}.feather svg{width:100%;height:100%;display:block}.feather.lit{filter:drop-shadow(0 0 6px #ffd27a) drop-shadow(0 0 16px #d9b56a) brightness(4) sepia(1) saturate(3)}.flash{position:absolute;left:50%;top:50%;width:10%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) scale(0);background:radial-gradient(circle,#fff6d8,rgba(217,181,106,.6) 40%,transparent 70%);transition:transform 1.4s ease-out,opacity 1.8s}.flash.on{transform:translate(-50%,-50%) scale(12);opacity:0}#hotspots{position:absolute;top:0;right:0;bottom:0;left:0}.hs{position:absolute;cursor:var(--cursor-hot)}.hs.poly{top:0;right:0;bottom:0;left:0}body.dev .hs,.hint-mode .hs{outline:1px dashed rgba(217,181,106,.6);background:#d9b56a14}body.dev .hs.poly,.hint-mode .hs.poly{outline:none;background:#d9b56a29}.hs .lbl{display:none}body.dev .hs .lbl,.hint-mode .hs .lbl{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:12px;color:#d9b56abf;white-space:nowrap;pointer-events:none;font-style:italic;text-shadow:0 0 4px #000,0 0 2px #000}.busy .hs,.busy #back{pointer-events:none}#narration{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:40;padding:0 12%}#narration.active{pointer-events:auto;cursor:var(--cursor)}#narration p{margin:0;text-align:center;font-style:italic;font-size:clamp(18px,3.4vw,27px);line-height:1.45;color:var(--gold);opacity:0;transition:opacity 1.2s ease;text-shadow:0 0 18px rgba(0,0,0,.9)}#narration p.on{opacity:1}#dialog{position:absolute;left:10%;right:10%;bottom:2.4%;min-height:12%;z-index:30;background:var(--box);padding:14px 18px 18px;cursor:var(--cursor-hot);animation:boxin .35s ease}@keyframes boxin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}#dialog .corner{position:absolute;width:14px;height:14px;border-color:var(--gold);border-style:solid;border-width:0}#dialog .tl{left:-1px;top:-1px;border-left-width:1.5px;border-top-width:1.5px}#dialog .tr{right:-1px;top:-1px;border-right-width:1.5px;border-top-width:1.5px}#dialog .bl{left:-1px;bottom:-1px;border-left-width:1.5px;border-bottom-width:1.5px}#dialog .br{right:-1px;bottom:-1px;border-right-width:1.5px;border-bottom-width:1.5px}#dialog .who{font-family:var(--font-title);font-size:15px;letter-spacing:.12em;color:var(--gold-dim);margin-bottom:4px;min-height:0}#dialog .who:empty{display:none}#dialog .text{font-size:clamp(15px,2.5vw,19px);line-height:1.45;color:var(--parch);min-height:1.45em}#dialog .more{position:absolute;right:12px;bottom:4px;font-size:12px;color:var(--gold-dim);opacity:0}#dialog.done .more{opacity:1;animation:bob 1.4s infinite}#dialog.subtitle{cursor:var(--cursor)}#dialog.subtitle .text{font-style:italic}@keyframes bob{50%{transform:translateY(3px)}}#back{position:absolute;left:50%;bottom:1%;transform:translate(-50%);z-index:20;font-size:15px;color:var(--gold-dim);letter-spacing:.1em;padding:6px 14px;text-shadow:0 0 6px #000}#back:hover{color:var(--gold)}#slots{position:fixed;top:16px;right:16px;display:flex;gap:8px;z-index:60}.slot{width:52px;height:52px;background:var(--parch);border:1px solid var(--parch-dark);box-shadow:inset 0 0 10px #78501e73;display:grid;place-items:center;position:relative;transition:transform .2s,box-shadow .2s}.slot.has{cursor:var(--cursor-hot)}.slot.sel{transform:translateY(3px);box-shadow:inset 0 0 10px #78501e73,0 0 0 2px var(--gold),0 0 14px #d9b56a99}.slot svg,.slot img{width:78%;height:78%}.slot.new{animation:newitem 1.2s ease}@keyframes newitem{0%{box-shadow:0 0 #ffdc8ce6}to{box-shadow:0 0 0 16px #ffdc8c00}}#item-label{position:fixed;top:76px;right:16px;font-size:14px;font-style:italic;color:var(--gold-dim);z-index:60;text-align:right;pointer-events:none;min-height:1em}#corner{position:fixed;left:14px;top:12px;display:flex;gap:6px;z-index:70}#corner button{width:34px;height:34px;color:var(--gold-dim);font-size:17px}#corner button:hover{color:var(--gold)}#mute.off{opacity:.35;text-decoration:line-through}#menu{position:fixed;left:14px;top:52px;z-index:70;background:var(--box);padding:10px 16px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--gold-faint)}#menu button{text-align:left;color:var(--gold);font-size:16px}#fade{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;pointer-events:none;z-index:35;transition:opacity .9s ease}#fade.on{opacity:1;pointer-events:auto}#stage #fade{position:absolute}.screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;text-align:center;padding:16px}.btns{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.gold{position:relative;padding:10px 30px;font-family:var(--font-title);font-size:20px;letter-spacing:.14em;color:var(--gold);border:1px solid rgba(217,181,106,.25);transition:color .3s,border-color .3s,background .3s}.gold:before,.gold:after{content:"";position:absolute;width:10px;height:10px;border:0 solid var(--gold)}.gold:before{left:-1px;top:-1px;border-left-width:1.5px;border-top-width:1.5px}.gold:after{right:-1px;bottom:-1px;border-right-width:1.5px;border-bottom-width:1.5px}.gold:hover{background:#d9b56a12;border-color:#d9b56a8c}.ghost{font-size:15px;color:var(--gold-dim);letter-spacing:.08em;padding:8px 14px}.ghost:hover{color:var(--gold)}#title .q{font-size:clamp(22px,4vw,30px);margin:0;animation:breathe 5s infinite ease-in-out}@keyframes breathe{50%{opacity:.65}}#title footer{position:absolute;bottom:18px;font-size:12px;color:var(--gold-dim);letter-spacing:.1em}#title,#fin,#error{transition:opacity 1.4s ease}.screen.leaving{opacity:0;pointer-events:none}#intro-ui{position:fixed;right:16px;bottom:14px;z-index:75}#skip-intro{font-size:13px;color:var(--gold-dim);letter-spacing:.1em;opacity:.7}#skip-intro:hover{opacity:1;color:var(--gold)}#mirror{gap:18px}#mirror .frame{position:relative;width:min(360px,78vw,52dvh);aspect-ratio:400 / 520}#mirror .rim{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}#mirror .glass{position:absolute;left:18%;right:18%;top:17.7%;bottom:13.8%;border-radius:50%;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#1a2228,#050608 75%);display:grid;place-items:center}#mirror video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);filter:sepia(.45) contrast(1.1) brightness(.85) saturate(.8);opacity:0;transition:opacity 2.5s}#mirror video.on{opacity:1}#mirror .ask{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px;padding:0 10%}#mirror .ask p{margin:0;font-size:15px;color:var(--parch);line-height:1.4}#mirror .ask .gold{font-size:16px;padding:8px 18px}#mirror .privacy{font-size:13px;color:var(--gold-dim);margin:0;line-height:1.6}#fin .story{font-size:clamp(22px,4vw,32px);margin:0;font-style:italic}#fin .album{display:flex;flex-direction:column;gap:8px;align-items:center;opacity:0;transition:opacity 2s 2.5s}#fin.show .album{opacity:1}#fin .album p{margin:0}#fin .t{font-family:var(--font-title);font-size:clamp(34px,7vw,54px);letter-spacing:.06em}#fin .d{font-size:18px;color:var(--parch)}#fin .links{display:flex;gap:10px;font-size:15px;margin-top:6px;color:var(--gold-dim)}#fin .links a{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold-faint);cursor:var(--cursor-hot)}#fin .show{font-size:15px;color:var(--gold-dim);margin-top:10px!important}#fin>.ghost{opacity:0;transition:opacity 2s 4s}#fin.show>.ghost{opacity:1}#error p{font-size:18px;margin:0}#map{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;touch-action:none;cursor:grab;z-index:5}#map.dragging{cursor:grabbing}#map .inner{position:absolute;left:0;top:0;will-change:transform}#map .inner>.mapart{position:absolute;top:0;right:0;bottom:0;left:0}#map .inner>.mapart img,#map .inner>.mapart svg{width:100%;height:100%;display:block;object-fit:cover}#map .vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 90px 30px #000000d9;z-index:3}.marker{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;cursor:var(--cursor-hot);padding:4px 8px;z-index:2}.marker .name{font-family:var(--font-title);font-size:21px;letter-spacing:.08em;color:var(--gold);text-shadow:0 0 6px #000,0 0 12px #000,0 0 2px #000;white-space:nowrap}.marker svg{width:34px;height:54px;animation:arrow 2.4s infinite ease-in-out;filter:drop-shadow(0 0 4px #000) drop-shadow(0 0 8px rgba(0,0,0,.8))}@keyframes arrow{50%{transform:translateY(7px)}}.marker.locked .name{color:#8b8072}.marker.locked svg{opacity:.55;animation:none;filter:grayscale(1) drop-shadow(0 0 4px #000)}.marker.ruin .name{color:#a0605a;text-decoration:line-through;text-decoration-thickness:1px}.marker.ruin svg{animation:none}.marker.new svg{animation:arrow 2.4s infinite ease-in-out,appear 2s ease}@keyframes appear{0%{opacity:0}}#map-glyph{position:absolute;left:10px;bottom:10px;z-index:6;width:26px;height:26px;opacity:.14;color:var(--gold);transition:opacity .6s}#map-glyph:hover{opacity:.5}#map-code{position:absolute;left:42px;bottom:12px;z-index:6;width:46%;background:#050404cc;border:0;border-bottom:1px solid var(--gold-faint);color:var(--parch);font:italic 15px var(--font);padding:4px 6px;outline:none;-webkit-user-select:text;user-select:text}#dev{position:fixed;left:8px;bottom:8px;z-index:200;background:#000000e0;border:1px solid #444;padding:8px;font:12px/1.5 ui-monospace,Consolas,monospace;color:#cfc6b0;max-width:300px}#dev select,#dev button{font:inherit;color:#eee;background:#222;border:1px solid #555;margin:2px;padding:1px 4px;cursor:pointer}#dev pre{white-space:pre-wrap;margin:4px 0 0;max-height:140px;overflow:auto;color:#ffd27a;-webkit-user-select:text;user-select:text}@media (max-width: 820px){#slots{top:8px;right:8px;gap:5px}.slot{width:40px;height:40px}#item-label{top:54px;right:10px;font-size:13px}#corner{top:6px;left:6px}#dialog{left:4%;right:4%;padding:12px 14px 16px}.marker .name{font-size:18px}}@media (prefers-reduced-motion: reduce){#scene.shake{animation:none}.marker svg{animation:none}}
