:root{--ink:#07060b;--gold:#ffcf7a;--gold-deep:#e89a3c;--paper:#f3e6cc;--paper-ink:#3a2a1c;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box}html,body{background:var(--ink);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;height:100%;margin:0;overflow:hidden}#app,#app canvas{width:100vw;height:100vh;height:100dvh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{pointer-events:none;font-family:var(--sans);color:#fff;position:fixed;top:0;bottom:0;left:0;right:0}#ui>*{pointer-events:none}button{font:inherit}.gate{z-index:50;touch-action:auto;background:radial-gradient(at 50% 70%,#1a1320 0%,#0a0810 55%,#040306 100%);place-items:center;padding:16px;transition:opacity 1.1s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.gate.leaving{opacity:0;pointer-events:none}.gate .motes i{left:var(--x);top:var(--y);background:var(--gold);opacity:0;width:5px;height:5px;animation:mote var(--d) ease-in-out var(--o) infinite;border-radius:50%;position:absolute;box-shadow:0 0 12px 4px #ffbe5a8c}@keyframes mote{0%,to{opacity:0;transform:translate(0)}50%{opacity:.9;transform:translate(14px,-22px)}}.gate .card{text-align:center;color:#efe6d8;width:min(420px,100%);position:relative}.gate .film{font-family:var(--serif);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);opacity:.85;margin:0;font-size:12px}.gate h1{font-family:var(--serif);color:#fff6e6;text-shadow:0 0 30px #ffbe6440;margin:6px 0 10px;font-size:clamp(34px,7vw,52px);font-weight:400;line-height:1.05}.gate .lede{max-width:34ch;font-family:var(--serif);color:#cdbfae;margin:0 auto 22px;font-size:16px;line-height:1.5}.gate label{text-align:left;color:#bfae98;margin:0 0 6px 4px;font-size:13px;display:block}.gate input[type=email]{color:#fff;-webkit-user-select:text;user-select:text;background:#ffffff0f;border:1px solid #ffdca040;border-radius:12px;outline:none;width:100%;padding:14px 16px;font-size:17px;transition:border-color .2s,box-shadow .2s}.gate input[type=email]:focus{border-color:var(--gold);box-shadow:0 0 0 3px #ffcf7a2e}.gate input.bad{border-color:#ff8a7a}.gate .consent{cursor:pointer;align-items:center;gap:8px;margin:12px 0 0 4px;font-size:13px;display:flex}.gate .consent input{accent-color:var(--gold-deep);width:16px;height:16px}.gate .err{color:#ffb3a6;text-align:left;min-height:18px;margin:8px 0 0;padding-left:4px;font-size:13px}.gate button{letter-spacing:.04em;cursor:pointer;color:#2a1606;background:linear-gradient(180deg, #ffe0a0, var(--gold-deep));border:0;border-radius:999px;width:100%;margin-top:10px;padding:15px;font-size:17px;font-weight:600;transition:transform .12s,filter .2s;box-shadow:0 6px 30px #ffaa4659}.gate button:active{transform:scale(.98)}.gate button:disabled{filter:grayscale(.7)brightness(.7);cursor:default}.gate .welcome{font-family:var(--serif);color:var(--gold)}.gate .fine{color:#8a7c6c;margin:14px 0 0;font-size:12px}@media (max-height:480px){.gate .lede{display:none}.gate h1{margin-bottom:14px;font-size:32px}}.blackfade{opacity:1;background:#000;transition:opacity 4s .6s;position:fixed;top:0;bottom:0;left:0;right:0}.blackfade.lift{opacity:0}.blackfade.gone{opacity:0;transition:none}.hint{left:50%;bottom:calc(22% + var(--safe-b));font-family:var(--serif);letter-spacing:.1em;color:#ffe1aabf;opacity:0;font-size:18px;transition:opacity 1.5s;position:fixed;transform:translate(-50%)}.hint.show{opacity:1;animation:2.6s ease-in-out infinite breathe}.hint:after{content:" →"}@keyframes breathe{50%{opacity:.45}}.deathveil{opacity:0;background:#050206;transition:opacity .6s;position:fixed;top:0;bottom:0;left:0;right:0}.deathveil.on{opacity:1}.verse{left:50%;top:calc(14% + var(--safe-t));opacity:0;width:min(560px,82vw);transition:opacity 1.6s,transform 1.6s,margin 1.2s;position:fixed;transform:translate(-50%,10px)}.verse.show{opacity:1;transform:translate(-50%)}.paper{color:var(--paper-ink);text-align:center;background:radial-gradient(ellipse at 30% 20%, #fbf3e2, var(--paper) 60%, #e2cfa8 100%);border-radius:3px;padding:22px 30px 18px;position:relative;transform:rotate(-.6deg);box-shadow:0 10px 40px #00000073,inset 0 0 40px #966e3c40}.paper:before{content:"";opacity:.25;mix-blend-mode:multiply;background-image:repeating-linear-gradient(0deg,#785a3214 0 1px,#0000 1px 4px);border-radius:3px;position:absolute;top:0;bottom:0;left:0;right:0}.verse .text{font-family:var(--serif);margin:0;font-size:clamp(18px,2.6vw,26px);font-style:italic;line-height:1.35}.verse .credit{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin:10px 0 0;font-size:13px}.hud{left:calc(18px + var(--safe-l));top:calc(14px + var(--safe-t));opacity:0;transition:opacity 1s;position:fixed}.hud.show{opacity:1}.meter{align-items:center;gap:8px;display:flex}.jaricon{fill:none;stroke:#fff0d2d9;stroke-width:1.4px;width:18px;height:26px}.jaricon .fill{fill:var(--gold);stroke:none;filter:drop-shadow(0 0 4px var(--gold))}.bar{background:#ffffff24;border:1px solid #ffffff40;border-radius:6px;width:120px;height:6px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--gold-deep), var(--gold));width:0;height:100%;box-shadow:0 0 8px var(--gold);transition:width .25s linear;display:block}.hud.low .bar i{animation:.9s ease-in-out infinite lowpulse}@keyframes lowpulse{50%{opacity:.35}}.pausebtn{right:calc(16px + var(--safe-r));top:calc(12px + var(--safe-t));opacity:0;cursor:pointer;background:#00000040;border:1.5px solid #fff9;border-radius:50%;place-items:center;width:40px;height:40px;padding:0;transition:opacity 1s;display:grid;position:fixed}.pausebtn.show{opacity:1;pointer-events:auto!important}.pausebtn svg{fill:#fff;width:20px;height:20px}.pausemenu{opacity:0;-webkit-backdrop-filter:blur(4px);background:#05030899;place-items:center;transition:opacity .3s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.pausemenu.show{opacity:1;pointer-events:auto!important}.pausemenu .panel{text-align:center;width:min(320px,86vw)}.pausemenu h2{font-family:var(--serif);color:#fff3df;margin:0 0 16px;font-size:30px;font-weight:400}.pausemenu button{color:#fff;cursor:pointer;background:#ffffff0f;border:1px solid #ffdca066;border-radius:999px;width:100%;margin:8px 0;padding:13px;font-size:16px;display:block}.pausemenu button:first-of-type{background:linear-gradient(180deg, #ffe0a0, var(--gold-deep));color:#2a1606;border:0;font-weight:600}.pausemenu .keys{color:#a99a88;margin-top:14px;font-size:12px;line-height:1.5}.touch{opacity:0;height:0;transition:opacity 1s;position:fixed;top:auto;bottom:0;left:0;right:0}.touch.on.live{opacity:1}.touch.hidden{opacity:0!important}.touch .pad,.touch .acts{bottom:calc(18px + var(--safe-b));gap:14px;display:flex;position:fixed}.touch .pad{left:calc(18px + var(--safe-l));padding:6px;pointer-events:auto!important}.touch .acts{right:calc(18px + var(--safe-r));align-items:flex-end}.tbtn{-webkit-backdrop-filter:blur(2px);touch-action:none;background:#ffffff14;border:1.5px solid #ffffff59;border-radius:50%;place-items:center;width:64px;height:64px;transition:background .1s,transform .1s;display:grid}.touch.on.live .acts .tbtn{pointer-events:auto}.tbtn.big{width:78px;height:78px}.tbtn.down{border-color:var(--gold);background:#ffcf7a4d;transform:scale(.95)}.tbtn svg{fill:none;stroke:#ffffffe6;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.touch:not(.on) .tbtn,.touch:not(.live) .tbtn{pointer-events:none!important}@media (orientation:portrait){.tbtn{width:58px;height:58px}.tbtn.big{width:70px;height:70px}.verse{top:calc(10% + var(--safe-t))}}.zoneveil{z-index:20;opacity:0;background:#050307;place-items:center;transition:opacity 1.2s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.zoneveil.on{opacity:1}.zonetitle{text-align:center;opacity:0;transition:opacity 1.2s,transform 1.2s;transform:translateY(8px)}.zoneveil.titled .zonetitle{opacity:1;transform:none}.zonetitle .num{font-family:var(--serif);letter-spacing:.4em;color:var(--gold);opacity:.8;margin:0 0 6px;font-size:13px}.zonetitle h2{font-family:var(--serif);color:#f6ead6;text-shadow:0 0 28px #ffbe6440;margin:0;font-size:clamp(24px,4vw,38px);font-style:italic;font-weight:400}.endpaint{z-index:15;opacity:0;background:#000 50%/cover no-repeat;transition:opacity 3.5s,transform 14s ease-out;position:fixed;top:0;bottom:0;left:0;right:0;transform:scale(1.08)}.endpaint.show{opacity:1;transform:scale(1)}.endcard{z-index:16;opacity:0;background:radial-gradient(at 50% 60%,#08050c59,#050308d1);place-items:center;padding:16px;transition:opacity 2.5s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.endcard.show{opacity:1;pointer-events:auto!important}.endcard .inner{text-align:center;color:#efe6d8;max-width:520px}.endcard .film{font-family:var(--serif);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);opacity:.9;margin:0;font-size:12px}.endcard h1{font-family:var(--serif);color:#fff6e6;text-shadow:0 0 36px #ffbe6466;margin:6px 0 12px;font-size:clamp(38px,7vw,64px);font-weight:400;line-height:1.05}.endcard .promo{max-width:40ch;font-family:var(--serif);color:#ddd0bd;margin:0 auto 24px;font-size:17px;line-height:1.5}.endcard .row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.endcard a,.endcard button{letter-spacing:.03em;cursor:pointer;border:0;border-radius:999px;padding:13px 26px;font-size:16px;font-weight:600;text-decoration:none}.endcard a{color:#2a1606;background:linear-gradient(180deg, #ffe0a0, var(--gold-deep));box-shadow:0 6px 30px #ffaa4659}.endcard button{color:#f3e6cc;background:#ffffff14;border:1px solid #ffdca059}@media (max-height:480px){.endcard h1{margin-bottom:8px;font-size:36px}.endcard .promo{margin-bottom:14px;font-size:15px}}.fps{z-index:99;color:#9f9;pointer-events:none;background:#00000080;border-radius:4px;padding:4px 8px;font:12px/1 ui-monospace,monospace;position:fixed;top:6px;left:50%;transform:translate(-50%)}.lil-gui{--width:280px;z-index:100}
