@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(./fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(./fraunces-latin-600-normal-DL5QCzvS.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:800;src:url(./fraunces-latin-800-normal-5RM8DebB.woff2)format("woff2"),url(./fraunces-latin-800-normal-B3oGScaA.woff)format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:600;src:url(./fraunces-latin-600-italic-O70d2LGK.woff2)format("woff2"),url(./fraunces-latin-600-italic-BlP2rMdV.woff)format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:600;src:url(./caveat-latin-600-normal-zlTlWIYU.woff2)format("woff2"),url(./caveat-latin-600-normal-DUjB8dgm.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(./nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(./nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}:root{--ink:#0d0b1e;--ink-2:#191533;--cream:#f6ecd8;--paper:#f8f0e0;--paper-line:#785a3c2e;--rose:#ff7aa8;--gold:#ffcf6e;--teal:#6ef7d7;--text:#fdf7ee;--muted:#fdf7eeb3;--hand:"Caveat", "Segoe Print", "Bradley Hand", cursive;--serif:"Fraunces", Georgia, serif;--sans:"Nunito", system-ui, -apple-system, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--sans);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}#backdrop{filter:blur(28px)brightness(.45)saturate(1.2);background:radial-gradient(at 50% 30%,#2a1c4f 0%,#0d0b1e 70%) 50%/cover;position:fixed;top:-40px;bottom:-40px;left:-40px;right:-40px}#stage{height:100vh;background:var(--ink);width:min(100vw,56.25dvh);height:100dvh;position:fixed;top:0;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 0 80px #0009}@media (min-aspect-ratio:10/16){#stage{border-radius:18px;width:min(100vw,56.25dvh - 18px);height:calc(100dvh - 32px);top:16px}}#game{touch-action:none;outline:none;width:100%;height:100%;transition:filter .45s;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#game.dimmed{filter:blur(6px)brightness(.55)saturate(.9)}#ui{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}#ui>*{pointer-events:auto}.hidden{display:none!important}.joystick{opacity:0;background:radial-gradient(circle,#ffffff14 0%,#ffffff29 70%,#ffffff0d 100%);border:2px solid #ffffff47;border-radius:50%;width:128px;height:128px;margin:-64px 0 0 -64px;transition:opacity .15s;position:absolute;box-shadow:0 0 24px #ffcf6e33;pointer-events:none!important}.joystick.visible{opacity:1}.joystick-knob{background:radial-gradient(circle at 35% 30%,#fff 0%,#ffe4b0 45%,#ffb98a 100%);border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 4px 14px #00000059,0 0 18px #ffcf6e99}.hud{padding:calc(10px + var(--safe-top)) calc(12px + var(--safe-right)) 0 calc(12px + var(--safe-left));justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0;pointer-events:none!important}.hud>*{pointer-events:auto}.icon-btn{-webkit-backdrop-filter:blur(6px);background:#0d0b1e8c;border:1px solid #ffffff38;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.counter{-webkit-backdrop-filter:blur(6px);letter-spacing:.02em;background:#0d0b1e8c;border:none;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:15px;font-weight:700;display:flex}.counter .stamp{background:var(--paper);width:20px;height:15px;box-shadow:inset 0 0 0 2px var(--rose);border-radius:2px;position:relative}.counter.bump{animation:.6s bump}@keyframes bump{30%{background:#ff7aa880;transform:scale(1.18)}}.thought{left:50%;top:calc(70px + var(--safe-top));color:#2a2236;width:min(88%,360px);font-family:var(--hand);opacity:0;background:#f8f0e0f0;border-radius:6px 18px 18px;padding:12px 16px 12px 18px;font-size:23px;line-height:1.15;transition:opacity .35s,transform .35s;position:absolute;transform:translate(-50%,-8px);box-shadow:0 10px 30px #00000059;pointer-events:none!important}.thought.show{opacity:1;transform:translate(-50%)}.zone-title{text-align:center;opacity:0;text-shadow:0 2px 20px #000c;transition:opacity 1s;position:absolute;top:22%;left:0;right:0;pointer-events:none!important}.zone-title.show{opacity:1}.zone-title .numeral{font-family:var(--serif);color:var(--gold);letter-spacing:.3em;font-size:18px;font-style:italic;display:block}.zone-title .name{font-family:var(--serif);letter-spacing:.01em;font-size:clamp(30px,9vw,40px);font-weight:800;display:block}.zone-title .rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:60px;height:2px;margin:10px auto 0;display:block}.action-btn{right:calc(20px + var(--safe-right));bottom:calc(28px + var(--safe-bottom));color:#fff;letter-spacing:.03em;opacity:0;background:linear-gradient(160deg,#ff8fb8,#ff6f9c);border:2px solid #ffffff80;border-radius:32px;min-width:96px;height:64px;padding:0 22px;font-size:18px;font-weight:800;transition:transform .25s cubic-bezier(.3,1.6,.5,1),opacity .2s;position:absolute;transform:scale(.6);box-shadow:0 8px 24px #ff6f9c73;pointer-events:none!important}.action-btn.show{opacity:1;transform:scale(1);pointer-events:auto!important}.move-hint{left:0;right:0;bottom:calc(46px + var(--safe-bottom));text-align:center;color:var(--text);text-shadow:0 2px 10px #000c;font-size:16px;font-weight:700;transition:opacity .6s;position:absolute;pointer-events:none!important}.move-hint .finger{border:3px solid #ffffffd9;border-radius:50%;width:46px;height:46px;margin:0 auto 10px;animation:1.8s ease-in-out infinite drag;display:block;box-shadow:0 0 18px #ffcf6e99}@keyframes drag{0%,15%{opacity:.4;transform:translateY(0)}60%{opacity:1;transform:translateY(-46px)}to{opacity:0;transform:translateY(-46px)}}.panel{padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;animation:.35s fade-in;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fade-in{0%{opacity:0}}.title-screen{background:var(--ink);overflow:hidden}.title-screen .bg{filter:saturate(1.15);background-position:58%;background-size:cover;animation:24s ease-in-out infinite alternate drift;position:absolute;top:0;bottom:0;left:0;right:0;transform:scale(1.08)}.title-screen .shade{background:linear-gradient(180deg, #0d0b1e8c 0%, #0d0b1e33 35%, #0d0b1ed9 72%, var(--ink) 100%);position:absolute;top:0;bottom:0;left:0;right:0}@keyframes drift{to{transform:scale(1.16)translate(-2%,1%)}}.title-screen .content{width:100%;max-width:380px;margin-top:auto;position:relative}.title-screen .kicker{font-family:var(--hand);white-space:nowrap;color:var(--gold);margin:0 0 4px;font-size:clamp(19px,6.6vw,26px)}.title-screen h1{font-family:var(--serif);letter-spacing:-.01em;text-shadow:0 4px 30px #ff7aa873;margin:0;font-size:clamp(40px,12.5vw,54px);font-weight:800;line-height:.95}.title-screen h1 em{color:var(--rose);font-style:italic;font-weight:600}.title-screen .sub{color:var(--muted);margin:14px 0 26px;font-size:16px}.primary-btn{color:#3a2216;letter-spacing:.02em;background:linear-gradient(160deg,#ffd88a,#ffb36e);border:none;border-radius:29px;width:100%;height:58px;font-size:19px;font-weight:800;transition:transform .15s,opacity .3s;box-shadow:0 10px 30px #ffb36e59}.primary-btn:active{transform:scale(.97)}.primary-btn[disabled]{opacity:.55}.ghost-btn{background:#ffffff0f;border:1.5px solid #ffffff59;border-radius:26px;width:100%;height:52px;font-size:17px;font-weight:700}.loading-bar{background:#ffffff24;border-radius:2px;width:100%;height:4px;margin-bottom:18px;overflow:hidden}.loading-bar span{background:linear-gradient(90deg, var(--rose), var(--gold));width:0%;height:100%;transition:width .3s;display:block}.fine{color:var(--muted);margin-top:14px;font-size:13px}.menu{-webkit-backdrop-filter:blur(10px);background:#0d0b1ed1;gap:12px}.menu h2{font-family:var(--serif);margin:0 0 12px;font-size:32px}.menu .stack{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.menu .row-label{color:var(--muted);margin-top:6px;font-size:13px}.journal{-webkit-backdrop-filter:blur(10px);touch-action:pan-y;background:#0d0b1ee6;justify-content:flex-start;overflow-y:auto}.journal h2{font-family:var(--serif);margin:8px 0 4px;font-size:30px}.journal .sub{color:var(--muted);margin:0 0 18px}.journal .grid{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:380px;margin-bottom:18px;display:grid}.journal .slot{aspect-ratio:3/4;font-family:var(--hand);color:#ffffff4d;background:#ffffff08;border:1.5px dashed #ffffff38;border-radius:6px;place-items:center;padding:0;font-size:22px;display:grid;overflow:hidden}.journal .slot.found{border:4px solid var(--paper);transform:rotate(var(--tilt));border-bottom-width:14px;box-shadow:0 6px 16px #0006}.journal .slot img{object-fit:cover;width:100%;height:100%;display:block}.lightbox{background:#080612eb;gap:16px}.lightbox img{border-radius:4px;max-width:100%;max-height:62%;box-shadow:0 20px 60px #0009,0 0 0 6px #1c1822}.lightbox h3{font-family:var(--serif);color:var(--gold);margin:6px 0 0;font-size:22px}.lightbox p{max-width:340px;color:var(--text);font-family:var(--hand);margin:0;font-size:24px;line-height:1.2}.pc-overlay{padding:calc(16px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));background:radial-gradient(#0d0b1e59,#0d0b1ed1);flex-direction:column;justify-content:center;align-items:center;animation:.3s fade-in;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.pc-overlay.closing{animation:.3s forwards fade-out}@keyframes fade-out{to{opacity:0}}.pc-scene{perspective:1400px;width:var(--card-w);height:var(--card-h);animation:.6s cubic-bezier(.2,1.2,.4,1) card-in}@keyframes card-in{0%{opacity:0;transform:translateY(40%)rotate(-8deg)scale(.6)}}.pc-card{width:100%;height:100%;transform-style:preserve-3d;cursor:pointer;touch-action:none;transition:transform .7s cubic-bezier(.3,.1,.2,1);position:relative;transform:rotate(-1.2deg)}.pc-card:focus{outline:none}.pc-card.flipped{transform:rotateY(180deg)rotate(1.2deg)}.pc-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:6px;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 24px 60px #0000008c,0 2px 6px #0000004d}.pc-front{background:var(--paper);flex-direction:column;padding:4.5% 4.5% 0;display:flex}.pc-front .photo{background-position:50%;background-size:cover;border-radius:2px;flex:1;min-height:0;box-shadow:inset 0 0 0 1px #00000014,inset 0 0 40px #3c1e0a2e}.pc-front .caption{height:15%;min-height:44px;font-family:var(--hand);color:#3a2c28;text-align:center;justify-content:center;align-items:center;padding:0 8px;font-size:clamp(20px,6vw,26px);line-height:1;display:flex}.pc-back{background:repeating-linear-gradient(180deg, transparent 0 calc(var(--line,32px) - 1px), var(--paper-line) calc(var(--line,32px) - 1px) var(--line,32px)) 0 96px / 100% calc(100% - 96px) no-repeat, radial-gradient(ellipse at 30% 20%, #fdf8ee, var(--paper) 70%);color:#2b2236;text-align:left;flex-direction:column;padding:18px 20px 16px;display:flex;transform:rotateY(180deg)}.pc-back .top{justify-content:space-between;align-items:flex-start;gap:10px;min-height:70px;display:flex}.pc-back h2{font-family:var(--serif);color:#3a2440;margin:4px 0 0;font-size:clamp(19px,5.6vw,24px);font-weight:800;line-height:1.05}.pc-stamp{background:#fff;flex:none;width:54px;height:64px;padding:4px;position:relative;transform:rotate(4deg);-webkit-mask:radial-gradient(3px at 3px 3px,#0000 98%,#000) -3px -3px/8px 8px;mask:radial-gradient(3px at 3px 3px,#0000 98%,#000) -3px -3px/8px 8px}.pc-stamp div{color:#fff;background:linear-gradient(160deg,#ff8fb8,#c2457a);place-items:center;width:100%;height:100%;display:grid}.pc-stamp svg{fill:currentColor;width:30px;height:30px}.pc-postmark{color:#3c468c8c;text-align:center;letter-spacing:.08em;pointer-events:none;border:2px solid #3c468c73;border-radius:50%;place-items:center;width:78px;height:78px;font-size:8.5px;font-weight:800;line-height:1.25;display:grid;position:absolute;top:52px;right:44px;transform:rotate(-14deg)}.pc-message{min-height:0;font-family:var(--hand);font-size:var(--hand-size,24px);line-height:var(--line,32px);touch-action:pan-y;flex:1;margin-top:12px;overflow-y:auto}.pc-message p{margin:0}.pc-from{font-family:var(--hand);text-align:right;color:#6b3a55;margin-top:4px;font-size:clamp(20px,5.6vw,24px)}.pc-card.final .pc-front{box-shadow:0 0 0 3px var(--gold), 0 24px 60px #0000008c, 0 0 60px #ffcf6e73;background:linear-gradient(160deg,#fff6e0,#ffe3ee)}.pc-card.final .pc-back{box-shadow:0 0 0 3px var(--gold), 0 24px 60px #0000008c, 0 0 60px #ffcf6e73}.pc-card.final .pc-message{text-align:center;color:#3a2440;flex-direction:column;justify-content:center;font-size:clamp(28px,8.4vw,36px);line-height:1.15;display:flex}.pc-card.final .pc-message p+p{color:#8a3a62;margin-top:22px;font-size:.85em}.pc-card.final .pc-from{display:none}.pc-controls{width:var(--card-w);gap:12px;margin-top:22px;display:flex}.pc-controls button{background:#0d0b1e99;border:1.5px solid #fff6;border-radius:25px;flex:1;height:50px;font-size:16px;font-weight:800}.pc-controls .flip{color:#3a2216;background:linear-gradient(160deg,#ffd88a,#ffb36e);border:none}.pc-hint{color:var(--muted);margin-top:10px;font-size:13px}.credits{background:var(--ink);overflow:hidden}.credits .slides{position:absolute;top:0;bottom:0;left:0;right:0}.credits .slides div{opacity:0;filter:brightness(.4)saturate(1.2);background-position:50%;background-size:cover;transition:opacity 2.5s;position:absolute;top:0;bottom:0;left:0;right:0}.credits .slides div.on{opacity:1}.credits .roll{width:100%;max-width:360px;position:relative}.credits h2{font-family:var(--serif);margin:0 0 6px;font-size:clamp(30px,9vw,38px)}.credits .sub{font-family:var(--hand);color:var(--gold);margin:0 0 22px;font-size:26px}.credits dl{margin:0 0 26px}.credits dt{text-transform:uppercase;letter-spacing:.2em;color:var(--muted);margin-top:12px;font-size:12px}.credits dd{font-family:var(--serif);margin:2px 0 0;font-size:21px}.credits .buttons{flex-direction:column;gap:10px;display:flex}.rotate{display:none}@media (orientation:landscape) and (max-height:520px) and (pointer:coarse){.rotate{z-index:50;background:var(--ink);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:18px;font-weight:700;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.rotate .phone{border:3px solid var(--gold);border-radius:10px;width:44px;height:74px;animation:2s ease-in-out infinite turn}}@keyframes turn{0%,30%{transform:rotate(-90deg)}70%,to{transform:rotate(0)}}.error{background:var(--ink);gap:14px}.error h2{font-family:var(--serif);margin:0}.error p{color:var(--muted);max-width:320px;margin:0}.toast{left:50%;bottom:calc(110px + var(--safe-bottom));white-space:nowrap;background:#0d0b1ed9;border-radius:999px;padding:10px 16px;font-size:14px;font-weight:700;animation:.3s fade-in;position:absolute;transform:translate(-50%);pointer-events:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.thought,.pc-message,.pc-from,.pc-front .caption,.title-screen .kicker,.lightbox p,.credits .sub,.journal .slot{font-weight:600}
