:root{--ink:#2b2740;--dim:#8a84a6;--glow:#fff;--accent:#7f6fe0;--mint:#5fbfa2;--peach:#f4b59c;--err:#c4466a;--paper:#fffdf7;--pixel:"VT323", ui-monospace, "SF Mono", Menlo, monospace;--serif:"Instrument Serif", "Iowan Old Style", Georgia, serif;--hand:"Caveat", "Bradley Hand", cursive;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);font-family:var(--pixel);-webkit-tap-highlight-color:transparent;background:linear-gradient(#c9c2f0,#efe8f6 55%,#fbe6dc 70%,#f6f1f5 72%);overflow:hidden}#gl{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;display:block;position:fixed;inset:0}#veil{pointer-events:none;background:radial-gradient(at 50% 45%,#0000 40%,#efe9f78c);transition:background .8s;position:fixed;inset:0}#scan{pointer-events:none;opacity:.07;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#3a2f6a 0 1px,#0000 1px 3px);position:fixed;inset:0}body.flash #veil{background:#fffffff5}.hud{z-index:5;padding:calc(14px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));letter-spacing:.14em;justify-content:space-between;align-items:center;font-size:19px;display:flex;position:fixed;left:0;right:0}.brand .spark{color:var(--accent);animation:3s ease-in-out infinite twinkle;display:inline-block}@keyframes twinkle{50%{opacity:.35;transform:scale(.8)rotate(20deg)}}.quiet{color:var(--ink);border-bottom:1px dashed var(--dim);letter-spacing:.08em;text-decoration:none}.quiet:hover{color:var(--accent)}.stage{z-index:4;text-align:center;padding:72px max(16px,env(safe-area-inset-left,0px)) 40px;opacity:0;pointer-events:none;filter:blur(6px);flex-direction:column;justify-content:center;align-items:center;transition:opacity .9s,filter .9s;display:flex;position:fixed;inset:0}.stage.on{opacity:1;pointer-events:auto;filter:none}.pix{font-family:var(--pixel);letter-spacing:.12em;margin:0;font-size:20px}.dim{color:var(--dim)}.dream{font-family:var(--serif);color:var(--ink);text-shadow:0 0 28px #ffffffe6,0 0 2px #fffc;letter-spacing:-.01em;margin:14px 0 18px;font-size:clamp(44px,8vw,96px);font-style:italic;font-weight:400;line-height:.95}#s-door .dream{max-width:16ch;font-size:clamp(34px,5.6vw,68px)}.ask{min-height:1.3em;color:var(--ink);font-size:clamp(24px,3.4vw,32px)}.ask:after,.say.typing:after{content:"▌";color:var(--accent);margin-left:2px;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.lead{margin-bottom:18px;font-size:26px}.choices{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px;display:flex}.pill{font:inherit;letter-spacing:.08em;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);background:#ffffff8c;border:1px solid #2b274059;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:10px 20px;font-size:21px;text-decoration:none;transition:transform .2s,background .2s,box-shadow .3s;display:inline-flex}.pill:hover{transform:translateY(-1px);box-shadow:0 0 0 4px #ffffff80,0 8px 30px #7f6fe040}.pill.solid{background:var(--ink);color:#fff;border-color:var(--ink)}.pill:focus-visible,.codein:focus-visible,.quiet:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.choices.fade{animation:.8s both rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.codebox{flex-direction:column;align-items:center;gap:10px;margin-top:22px;display:flex}.codebox[hidden]{display:none}.codein{font-family:var(--pixel);letter-spacing:.3em;text-align:center;border:none;border-bottom:2px solid var(--ink);width:min(320px,80vw);color:var(--ink);text-transform:uppercase;background:#fff9;border-radius:6px 6px 0 0;padding:6px 0 6px .3em;font-size:44px}.codein::placeholder{color:#c3bdd8}.err{color:var(--err);min-height:1.2em;font-size:18px}.shake{animation:.4s shake}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.path{text-align:left;letter-spacing:.04em;gap:10px;max-width:520px;margin:0;padding:0;font-size:22px;list-style:none;display:grid}.path li{backdrop-filter:blur(6px);background:#ffffff8c;border-radius:12px;padding:10px 16px}.path b{color:var(--accent);margin-right:10px;font-weight:400}.path em{background:var(--ink);color:#fff;border-radius:4px;padding:0 6px;font-style:normal}#s-host{padding-bottom:max(28px,env(safe-area-inset-bottom,0px));justify-content:flex-end}.dialog{text-align:left;-webkit-backdrop-filter:blur(10px);background:#ffffffb8;border:1px solid #ffffffe6;border-radius:18px;width:min(640px,100%);padding:16px 20px 18px;box-shadow:0 20px 60px #5a46aa2e}.speaker{color:var(--accent);font-size:17px}.say{font-family:var(--serif);min-height:1.1em;margin:6px 0 4px;font-size:clamp(28px,4.4vw,40px);font-style:italic;line-height:1.1}.answer{align-items:center;gap:10px;margin-top:12px;display:flex}.answer[hidden],.choices[hidden],.pad[hidden]{display:none}#ui{gap:4px;display:grid}.hint{color:var(--dim);letter-spacing:.08em;font-size:17px}.hint:empty{display:none}.line,.box{width:100%;min-width:0;font-family:var(--hand);border:none;border-bottom:2px dashed var(--dim);color:var(--ink);background:0 0;border-radius:0;padding:2px 4px;font-size:30px}.answer{flex-wrap:wrap}.answer .line{flex:220px}.err:empty{min-height:0}.box{resize:vertical;background:#fff6;border:2px dashed #cfc8e6;border-radius:10px;padding:6px 10px;font-size:26px;line-height:1.15}.line::placeholder,.box::placeholder{color:#bdb6d6}.line:focus-visible,.box:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.choices.left{justify-content:flex-start;margin-top:12px}.many fieldset{border:0;flex-wrap:wrap;gap:8px;margin:6px 0 0;padding:0;display:flex}.check{letter-spacing:.05em;cursor:pointer;background:#ffffff8c;border:1px solid #2b27404d;border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:8px 14px;font-size:20px;transition:background .2s,color .2s;display:inline-flex}.check input{-webkit-appearance:none;appearance:none;border:1.5px solid var(--ink);border-radius:3px;flex:none;place-items:center;width:14px;height:14px;margin:0;display:grid}.check input:checked:after{content:"";background:var(--accent);border-radius:1px;width:8px;height:8px}.check:has(input:checked){background:var(--ink);color:#fff}.check:has(input:checked) input{border-color:#fff}.check:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.many #other{margin-top:10px}.contact{gap:10px;margin-top:6px;display:grid}.pair{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{gap:2px;min-width:0;display:grid}.field .pix{font-size:16px}.trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.foot{margin-top:4px;font-size:16px}.pad{z-index:6;top:calc(58px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));background:var(--paper);border-top:10px solid #b6abf0;border-radius:4px;width:min(250px,44vw);padding:12px 16px 14px;animation:1s both padIn;position:fixed;transform:rotate(2.2deg);box-shadow:0 18px 40px #503c9638}@keyframes padIn{0%{opacity:0;transform:translateY(-30px)rotate(-6deg)}}.pad-head{font-family:var(--hand);color:var(--dim);margin:0;font-size:24px}#notes{font-family:var(--hand);color:#2f2a55;max-height:min(52vh,330px);margin:0;padding:4px 0 0;font-size:28px;line-height:34px;list-style:none;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 22px);mask-image:linear-gradient(#0000,#000 22px)}#notes li{overflow-wrap:anywhere;clip-path:inset(0 100% 0 0);border-bottom:1px solid #d5dcf3;padding:6px 0 4px;line-height:1.05;animation:1.3s steps(14,end) forwards write}#notes li small{color:var(--dim);margin-right:6px;font-size:20px}@keyframes write{to{clip-path:inset(0)}}.fly{z-index:9;pointer-events:none;font-family:var(--hand);color:var(--ink);text-shadow:0 0 12px #fff;font-size:32px;transition:transform 1.1s cubic-bezier(.5,0,.2,1),opacity 1.1s;position:fixed}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.nojs{place-items:center;font-size:24px;display:grid;position:fixed;inset:0}@media (width<=640px){.pad{width:min(200px,52vw);top:calc(52px + env(safe-area-inset-top,0px));padding:10px 12px}#notes{font-size:24px;line-height:30px}.dialog{padding:14px 16px}.pair{grid-template-columns:1fr}#notes{max-height:120px}.say{font-size:28px}.check{padding:6px 12px;font-size:18px}.hud{font-size:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}#notes li{clip-path:none}}
