:root{--ink:#f4efe6;--dim:#f4efe69e;--gold:#d9b878;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--serif:"Didot", "Bodoni 72", "Bodoni MT", "Playfair Display", Georgia, serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none;background:#0b0b0d;margin:0;overflow:hidden}#game{outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;z-index:5;position:fixed;inset:0}#reticle{background:#ffffffd9;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;transition:transform .18s cubic-bezier(.3,1.6,.5,1),background .18s,opacity .3s;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000040}#reticle.active{background:#fff;transform:scale(2.1)}#hud.hidden #reticle,#hud.hidden #prompt{opacity:0}#prompt{letter-spacing:.04em;color:#fff;white-space:nowrap;text-shadow:0 1px 8px #000000a6;opacity:0;font-size:14px;transition:opacity .15s;position:absolute;top:calc(50% + 26px);left:50%;transform:translate(-50%)}#prompt.show{opacity:1}#prompt kbd{min-width:20px;font:600 11px var(--sans);text-align:center;background:#00000040;border:1px solid #ffffff8c;border-radius:5px;margin-right:8px;padding:1px 6px;display:inline-block}#subtitles{left:50%;bottom:max(8vh, calc(env(safe-area-inset-bottom) + 120px));text-align:center;width:min(760px,88vw);font-size:clamp(15px,2.1vw,20px);line-height:1.4;position:absolute;transform:translate(-50%)}.sub-line{-webkit-backdrop-filter:blur(6px);background:#08080a94;border-radius:10px;margin:3px 0;padding:6px 14px;animation:.25s cubic-bezier(.2,1.2,.4,1) both subin;display:inline-block}.sub-line b{color:var(--gold);margin-right:6px;font-weight:600}.sub-line.out{animation:.4s forwards subout}@keyframes subin{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes subout{to{opacity:0;transform:translateY(-4px)}}#toast{text-align:center;opacity:0;position:absolute;top:16vh;left:50%;transform:translate(-50%)}#toast.show{animation:4.2s forwards toast}.toast-kicker{letter-spacing:.5em;color:var(--dim);text-transform:uppercase;margin-bottom:8px;font-size:12px}.toast-title{font-family:var(--serif);letter-spacing:.12em;text-shadow:0 2px 30px #00000080;font-size:clamp(38px,7vw,76px);font-weight:400}@keyframes toast{0%{opacity:0;letter-spacing:.02em;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-6px)}}#objective{left:max(22px, env(safe-area-inset-left));top:max(18px, env(safe-area-inset-top));letter-spacing:.18em;text-transform:uppercase;color:var(--dim);opacity:0;font-size:12px;transition:opacity .8s;position:absolute}#objective.show{opacity:1}#fade{opacity:1;pointer-events:none;z-index:20;background:#000;transition:opacity .6s;position:fixed;inset:0}#title{z-index:30;background:radial-gradient(at 50% 120%,#0000 30%,#0000008c 100%);justify-content:center;align-items:center;transition:opacity 1s;display:flex;position:fixed;inset:0}#title.gone{opacity:0;pointer-events:none}.title-inner{text-align:center;padding:24px;transform:translateY(-6vh)}.title-kicker{letter-spacing:.6em;text-transform:uppercase;color:var(--dim);margin-bottom:14px;font-size:12px}.title-logo{font-family:var(--serif);letter-spacing:.14em;color:var(--ink);text-shadow:0 4px 40px #0009;font-size:clamp(40px,9vw,96px);line-height:1}.title-logo span{color:var(--gold)}.title-rule{background:var(--gold);opacity:.8;width:64px;height:1px;margin:22px auto 18px}.title-game{letter-spacing:.9em;color:var(--ink);margin-bottom:36px;padding-left:.9em;font-size:14px}#start-btn{font:500 15px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#121212;background:var(--ink);cursor:pointer;border:0;border-radius:999px;padding:15px 38px;transition:transform .2s cubic-bezier(.3,1.7,.5,1),box-shadow .2s;box-shadow:0 10px 40px #d9b87840,inset 0 -2px #00000014}#start-btn:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 14px 50px #d9b87859}#start-btn:active{transform:scale(.94)}#start-btn:disabled{opacity:.5}.title-hint{color:var(--dim);letter-spacing:.06em;margin-top:22px;font-size:12px;line-height:1.7}.title-foot{bottom:max(20px, env(safe-area-inset-bottom));text-align:center;letter-spacing:.4em;text-transform:uppercase;color:#f4efe666;font-size:11px;position:absolute;left:0;right:0}#pause{z-index:25;-webkit-backdrop-filter:blur(10px);background:#0606088c;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#pause.show{animation:.25s fadein;display:flex}@keyframes fadein{0%{opacity:0}}.pause-card{text-align:center;width:min(340px,86vw)}.pause-title{font-family:var(--serif);letter-spacing:.1em;margin-bottom:20px;font-size:34px}.pause-card button{cursor:pointer;width:100%;font:500 15px var(--sans);color:var(--ink);background:#ffffff14;border:1px solid #ffffff1f;border-radius:14px;margin:9px 0;padding:13px 18px;transition:transform .15s cubic-bezier(.3,1.7,.5,1),background .15s;display:block}.pause-card button:hover{background:#ffffff24}.pause-card button:active{transform:scale(.96)}.pause-help{color:var(--dim);margin-top:16px;font-size:12px;line-height:1.7}#touch{z-index:6;pointer-events:none;display:none;position:fixed;inset:0}body.touch #touch{display:block}body.touch #reticle{width:5px;height:5px}#stick{opacity:0;background:#ffffff0f;border:1.5px solid #ffffff47;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:opacity .2s;position:absolute}#stick.on{opacity:1}#stick-knob{background:#ffffff73;border-radius:50%;width:50px;height:50px;margin:-25px 0 0 -25px;position:absolute;top:50%;left:50%;box-shadow:0 4px 18px #0000004d}#use-btn,#run-btn,#pause-btn{pointer-events:auto;color:#fff;font:600 13px var(--sans);letter-spacing:.1em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:0;transition:transform .15s cubic-bezier(.3,1.7,.5,1),opacity .2s,background .2s;position:absolute}#use-btn{right:max(26px, env(safe-area-inset-right));bottom:max(118px, calc(env(safe-area-inset-bottom) + 100px));opacity:.35;background:#ffffff2e;border:1.5px solid #ffffff59;border-radius:50%;width:78px;height:78px}#use-btn.ready{opacity:1;background:#d9b8788c}#run-btn{right:max(118px, calc(env(safe-area-inset-right) + 100px));bottom:max(40px, calc(env(safe-area-inset-bottom) + 24px));background:#ffffff1f;border:1.5px solid #ffffff40;border-radius:50%;width:58px;height:58px;font-size:11px}#run-btn.on{background:#fff6}#use-btn:active,#run-btn:active,#pause-btn:active{transform:scale(.9)}#pause-btn{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));background:#00000040;border-radius:12px;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;display:flex}#pause-btn span{background:#fff;border-radius:2px;width:4px;height:15px;display:block}#organ{z-index:8;padding:0 12px max(16px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;display:none;position:fixed;bottom:0;left:0;right:0}#organ.show{animation:.35s cubic-bezier(.2,1.2,.4,1) slideup;display:flex}@keyframes slideup{0%{opacity:0;transform:translateY(40px)}}.organ-sheet{color:#2b2216;text-align:center;font-family:var(--serif);background:#f3ead6;border-radius:6px;margin-bottom:12px;padding:10px 18px;box-shadow:0 10px 30px #0006}.organ-title{font-size:15px;font-style:italic}.organ-notes{font:600 13px var(--sans);letter-spacing:.18em;margin-top:4px}#organ-keys{pointer-events:auto;gap:4px;display:flex}.okey{cursor:pointer;color:#4a3f2c;width:min(64px,10.5vw);height:min(170px,26vh);font:600 14px var(--sans);background:linear-gradient(#fbf8ef,#e9e2d0);border:0;border-radius:0 0 8px 8px;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:12px;transition:transform 60ms,box-shadow 60ms;display:flex;box-shadow:0 6px #b9ae95,0 10px 24px #0006}.okey small{opacity:.55;margin-top:3px;font-size:10px;font-weight:400}.okey.down,.okey:active{background:linear-gradient(#efe6cf,#ddd2b8);transform:translateY(5px);box-shadow:0 1px #b9ae95,0 4px 10px #0006}#organ-leave{pointer-events:auto;color:#fff;font:500 13px var(--sans);cursor:pointer;background:#00000059;border:1px solid #ffffff4d;border-radius:999px;margin-top:14px;padding:8px 18px}#organ-leave.ready{color:#1a1408;background:#d9b878;border-color:#d9b878;font-weight:600;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.06);box-shadow:0 0 24px #d9b87899}}body:has(#organ.show) #subtitles{top:18%;bottom:auto}#loading{z-index:40;opacity:0;pointer-events:none;transition:opacity .3s;position:fixed;bottom:22px;right:22px}#loading.show{opacity:1}.spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#credits{z-index:35;text-align:center;opacity:0;pointer-events:none;background:#000;justify-content:center;align-items:center;transition:opacity 2s;display:flex;position:fixed;inset:0}#credits.show{opacity:1;pointer-events:auto}#credits .c-small{letter-spacing:.5em;text-transform:uppercase;color:var(--dim);margin:26px 0 8px;font-size:12px}#credits .c-big{font-family:var(--serif);letter-spacing:.12em;font-size:clamp(30px,6vw,60px)}#credits .c-name{letter-spacing:.08em;font-size:20px}#credits .c-tease{letter-spacing:.3em;color:var(--gold);opacity:0;margin-top:60px;font-size:13px;transition:opacity 2s 4s}#credits.show .c-tease{opacity:1}#credits button{pointer-events:auto;margin-top:40px}:is(body:has(#title:not(.gone)) #touch,body:has(#organ.show) #use-btn,body:has(#organ.show) #run-btn,body:has(#organ.show) #stick){display:none}
