html,body{margin:0;height:100%;overflow:hidden;background:#07060c;color:#e9e2ef;font-family:Georgia,Times New Roman,serif}canvas{display:block}#intro{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#28142859,#05040ad1);cursor:pointer;transition:opacity .8s;z-index:5}#intro.hidden{opacity:0;pointer-events:none}#prep{margin-top:6px;font-size:11px;letter-spacing:.08em;transition:opacity 1.2s}#prep.done{opacity:0}.card{max-width:560px;padding:36px 40px;text-align:center}.coords{font:11px/1 Courier New,monospace;letter-spacing:.25em;color:#a798b8;margin-bottom:18px}h1{font-weight:400;font-size:64px;letter-spacing:.06em;margin:0 0 18px;color:#f3dcc6;text-shadow:0 0 24px rgba(255,120,50,.45)}.warn{font-style:italic;font-size:21px;color:#f0b98f;margin:0 0 8px}.sub{font-size:15px;color:#b9aec6;margin:0 0 28px}.cta{display:inline-block;padding:11px 28px;border:1px solid rgba(255,170,110,.6);color:#ffd2ab;letter-spacing:.2em;font-size:13px;text-transform:uppercase;margin-bottom:22px}.keys{font:12px/1.7 Courier New,monospace;color:#9e93ad}.keys.dim{color:#6e657c}#back-home{position:fixed;top:18px;left:22px;color:#a798b8;text-decoration:none;font:12px Courier New,monospace;letter-spacing:.1em}#hint{position:fixed;bottom:14px;right:18px;font:11px Courier New,monospace;color:#c8bed773;z-index:3}#hint.hidden{display:none}#keys-panel{position:fixed;top:18px;right:20px;z-index:6;width:330px;padding:16px 18px 14px;background:linear-gradient(180deg,#160e22eb,#090610f0);border:1px solid rgba(150,110,200,.35);border-top-color:#ff96468c;border-radius:4px;box-shadow:0 0 34px #ff78321a,0 0 60px #5a288c40;font:12px/1.5 Courier New,monospace;color:#b9aec6;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .35s,transform .35s}#keys-panel.show{opacity:1;pointer-events:auto;transform:translateY(0)}#keys-panel .kp-title{font:15px Georgia,Times New Roman,serif;letter-spacing:.08em;color:#f3dcc6;text-shadow:0 0 14px rgba(255,120,50,.4);margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline}#keys-panel .kp-title span{font:10px Courier New,monospace;letter-spacing:.15em;color:#6e657c;text-shadow:none}#keys-panel ul{list-style:none;margin:0;padding:0}#keys-panel li{display:flex;gap:12px;margin-bottom:5px}#keys-panel li b{min-width:74px;color:#ffb06a;font-weight:700;letter-spacing:.06em}#keys-panel li i{font-style:normal;color:#c8bdd6}#keys-panel .kp-soon{margin-top:12px;padding-top:10px;border-top:1px solid rgba(150,110,200,.22);font-size:13px;color:#c9a7e8;text-shadow:0 0 12px rgba(140,80,220,.45)}#keys-panel ul.soon li{color:#9e93ad;font-style:italic;font-family:Georgia,serif;font-size:12.5px;margin-bottom:3px}#keys-panel ul.soon li:before{content:"†";color:#8a6bb0;margin-right:8px;font-style:normal}#fade{position:fixed;inset:0;background:#05030a;opacity:0;pointer-events:none;z-index:4}#fade.on{opacity:1;transition:none}#fade.out{opacity:0;transition:opacity .7s ease-out}#prompt{position:fixed;left:50%;bottom:13%;transform:translate(-50%);z-index:3;pointer-events:none;font:13px Georgia,Times New Roman,serif;letter-spacing:.12em;color:#f3dcc6;text-shadow:0 0 12px rgba(255,120,50,.55),0 0 2px #000;opacity:0;transition:opacity .4s}#prompt.show{opacity:.85}#fade.slow.on{opacity:1;transition:opacity .45s ease-in}#fade.slow.out{transition:opacity .9s ease-out}#oprompt{position:fixed;left:50%;bottom:13%;transform:translate(-50%);z-index:3;pointer-events:none;font:13px Georgia,Times New Roman,serif;letter-spacing:.12em;color:#f3dcc6;text-shadow:0 0 12px rgba(255,120,50,.55),0 0 2px #000;opacity:0;transition:opacity .4s}#oprompt.show{opacity:.85}#subtitle{position:fixed;left:50%;bottom:20%;transform:translate(-50%);z-index:3;pointer-events:none;font:italic 19px Georgia,Times New Roman,serif;letter-spacing:.1em;color:#e8def0;text-shadow:0 0 16px rgba(140,90,220,.7),0 0 3px #000;opacity:0;transition:opacity 1.2s}#subtitle.show{opacity:.92}#kp-mute{font:11px Courier New,monospace;letter-spacing:.08em;color:#ffb06a;background:#ff8c3c14;border:1px solid rgba(255,150,70,.45);border-radius:3px;padding:1px 8px;cursor:pointer}#kp-mute.off{color:#8a7e98;border-color:#966ec866;background:transparent}#keys-panel .kp-jump{font:11px Courier New,monospace;letter-spacing:.08em;color:#8fe6e0;background:#3cb4aa14;border:1px solid rgba(110,210,200,.45);border-radius:3px;padding:1px 8px;cursor:pointer}#keys-panel .kp-jump:hover{background:#3cb4aa33}#subtitle.finale{color:#0e3c40;font-size:22px;letter-spacing:.16em;text-shadow:0 0 18px rgba(255,255,255,.75),0 0 2px rgba(255,255,255,.6)}#pause{position:fixed;inset:0;z-index:7;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 45%,#1e102440,#05040a8c);opacity:0;pointer-events:none;transition:opacity .25s}#pause.show{opacity:1;pointer-events:auto}.pz-card{min-width:250px;padding:22px 30px 18px;text-align:center;background:linear-gradient(180deg,#160e22eb,#090610f0);border:1px solid rgba(150,110,200,.35);border-top-color:#ff96468c;border-radius:4px;box-shadow:0 0 34px #ff78321a,0 0 60px #5a288c40}.pz-title{font:italic 20px Georgia,Times New Roman,serif;letter-spacing:.08em;color:#f3dcc6;text-shadow:0 0 16px rgba(255,120,50,.45);margin-bottom:16px}#pz-resume,#pz-home{display:block;width:100%;box-sizing:border-box;margin:8px 0 0;padding:9px 14px;cursor:pointer;font:13px Georgia,Times New Roman,serif;letter-spacing:.14em;text-decoration:none;border-radius:3px}#pz-resume{color:#1a0f08;background:linear-gradient(180deg,#f0b27a,#c9713a);border:1px solid rgba(255,190,120,.7)}#pz-resume:hover{filter:brightness(1.1)}#pz-home{color:#d7cbe4;background:#281a3a99;border:1px solid rgba(150,110,200,.35)}#pz-home:hover{color:#f3dcc6;border-color:#ff96468c}.pz-keys{margin-top:12px;font:10px Courier New,monospace;letter-spacing:.12em;color:#b9aec68c}#whisper{position:fixed;left:50%;bottom:29%;transform:translate(-50%);z-index:3;pointer-events:none;max-width:min(620px,80vw);text-align:center;font:italic 14px Georgia,Times New Roman,serif;letter-spacing:.07em;line-height:1.5;color:#d9cfe2;text-shadow:0 0 14px rgba(120,80,200,.65),0 0 2px #000;opacity:0;transition:opacity 1.4s ease-in-out}#whisper.show{opacity:.78;transition:opacity 1.2s ease-in-out}
