:root{--void:#020202;--bone:#e8e0d0;--blood:#ff0000;--muted:#a39e95;--line:#e8e0d023;--mono:'Space Mono',monospace;--display:'Cinzel',serif;color-scheme:dark}
*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--void);color:var(--bone);font:13px var(--mono);display:flex;flex-direction:column}h1,h2,p{margin:0}button,a{color:inherit;font:inherit}button{cursor:pointer;border:0}a{text-decoration:none}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--bone);outline-offset:4px}img{-webkit-user-drag:none;pointer-events:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.game-nav{height:76px;flex:none;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 4vw;padding-top:env(safe-area-inset-top)}.brand img{display:block;width:126px;height:auto;filter:invert(1)}.nav-label{font-size:11px;letter-spacing:.15em;color:var(--muted)}.nav-label i,.eyebrow>span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--blood);margin-right:12px;box-shadow:0 0 15px #f00a}.archive-link{display:flex;align-items:center;gap:28px;min-height:44px;font-size:11px}.archive-link span{color:var(--blood);font-size:18px}.archive-link:hover,.text-button:hover,.game-footer a:hover{color:var(--blood)}
.game-shell{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse at 50% 60%,#27060844,transparent 70%)}.stage{position:relative;width:min(100%,960px);flex:1;min-height:0;isolation:isolate;background:#090c0e;overflow:hidden;border-inline:1px solid var(--line)}#world{display:block;width:100%;height:100%;touch-action:none;outline:none}.stage-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#020202ce,transparent 26%,transparent 66%,#020202bf),linear-gradient(90deg,#02020260,transparent 20%,transparent 80%,#02020260)}.side-note{position:absolute;top:50%;font-size:10px;letter-spacing:.25em;color:#8e857b;writing-mode:vertical-rl}.side-note-left{left:4vw;transform:translateY(-50%) rotate(180deg)}.side-note-right{right:4vw;transform:translateY(-50%)}.game-footer{display:flex;align-items:center;justify-content:space-between;width:min(100% - 50px,960px);min-height:48px;gap:15px;font-size:10px;color:var(--muted)}.game-footer i{font-style:normal;color:var(--blood);margin:0 10px}.game-footer a{font-size:10px}
.hud{position:absolute;top:28px;left:28px;right:132px;display:flex;justify-content:space-between;gap:20px;pointer-events:none;text-shadow:0 1px 12px #000}.hud span,.hud small{display:block;font-size:10px;letter-spacing:.12em}.hud strong{display:block;font-size:clamp(22px,3vw,32px);font-weight:400;letter-spacing:.04em;line-height:1.45;font-variant-numeric:tabular-nums}.hud small{color:var(--muted)}.record-block{text-align:right}.record-block strong{font-size:19px;line-height:2.45}.record-block small{color:var(--blood);font-size:14px}.game-tools{position:absolute;top:25px;right:25px;display:flex;gap:7px;z-index:4}.icon-button{position:relative;display:grid;place-items:center;width:42px;height:44px;font-size:19px;border:1px solid var(--line);background:#03040499;backdrop-filter:blur(8px)}.icon-button:hover{border-color:var(--bone)}.sound-slash{position:absolute;font-size:29px;color:#d65a53;top:1px;left:10px}.icon-button[aria-pressed=true] .sound-slash{display:none}.energy-wrap{position:absolute;top:121px;left:28px;width:176px;pointer-events:none}.energy-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;margin-bottom:7px;color:#ccc4b9}#energy{height:3px;background:#e8e0d029}#energy i{display:block;width:0;height:100%;background:var(--blood);box-shadow:0 0 12px #ff232b66;transition:width .1s linear}.is-powered .energy-label{color:#ff6c70}.callout{position:absolute;left:0;right:0;top:30%;text-align:center;font-size:14px;letter-spacing:.16em;color:var(--bone);text-shadow:0 0 22px #ff232b;opacity:0;transition:opacity .2s;pointer-events:none}.callout.visible{opacity:1}
.overlay{position:absolute;inset:0;z-index:3}.intro{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(38px,6vh,70px) 28px 42px;background:linear-gradient(0deg,#020202e8,transparent 48%,#02020280)}.intro-heading{text-align:center;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:.16em;line-height:1.8}.intro .eyebrow{color:#c9c1b5}.intro h1{font-family:var(--display);font-size:clamp(44px,7vw,87px);font-weight:500;line-height:1;letter-spacing:-.045em;margin-top:15px;text-shadow:0 3px 30px #0007}.intro h1>span{display:block;color:var(--blood);font-size:1.42em;line-height:1.06;letter-spacing:.03em}.intro-copy{margin-top:17px;color:#d4ccc0;font-size:12px;line-height:1.8}.intro-bottom{width:min(100%,340px);text-align:center}.artifact-tag{display:block;letter-spacing:.12em;font-size:9px;color:#b6afa2;margin-bottom:12px}.primary,.secondary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;width:100%;padding:15px 21px;font-size:12px;letter-spacing:.065em;transition:background .2s,border-color .2s}.primary{background:var(--blood);color:#fff}.primary:hover:not(:disabled){background:#cf0009}.primary>span{font-size:22px;line-height:1}.secondary{justify-content:center;border:1px solid #6d665b;background:#02020273;color:var(--bone);margin-top:10px}.secondary:hover{border-color:var(--bone);background:#171311}.secondary>span{margin-left:auto}.load-status{font-size:10px;color:var(--muted);min-height:17px;margin-top:8px}.load-status.ready{display:none}.intro-record{font-size:10px;color:var(--muted);letter-spacing:.08em;margin-top:15px}.intro-record strong{font-weight:400;color:var(--bone);margin-left:12px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:10px;min-height:44px;background:none;padding:9px 0;letter-spacing:.04em}.intro .text-button{margin-top:4px}.text-button span{color:var(--blood);font-size:16px}
.modal-overlay{background:#020202cb;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:28px}.modal-card{width:min(100%,355px);margin:auto}.red{color:var(--blood)}.modal-card h2{font:500 clamp(30px,4.5vw,45px)/1.1 var(--display);letter-spacing:-.025em;margin:18px 0}.modal-card>p:not(.eyebrow){font-size:12px;color:#aaa398;line-height:1.8}.modal-card>.primary{margin-top:28px}.modal-card>.text-button{display:flex;margin-top:14px}.instructions{margin:22px 0;display:grid;gap:15px}.instructions>div{display:flex;align-items:center;gap:18px}.instructions>div>span{width:53px;min-height:38px;display:grid;place-items:center;border:1px solid var(--line);font-size:21px}.instructions p{font-size:10px;line-height:1.7}.instructions small{display:block;font-size:10px;color:var(--muted)}.modal-card .power-explanation{border-top:1px solid var(--line);padding-top:17px;font-size:11px}.power-explanation b{color:var(--bone);display:block;font-size:10px;letter-spacing:.05em;margin-bottom:5px;font-weight:400}.modal-card .local-note{font-size:9px;margin-top:16px;text-align:center;color:#a2998b}.result-score{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.result-score>span{font-size:10px;color:var(--muted);letter-spacing:.1em}.result-score>strong{font-size:clamp(40px,6vw,57px);display:block;line-height:1.35;font-weight:400;letter-spacing:-.04em}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.result-stats span{font-size:8px;color:var(--muted);display:block}.result-stats strong{display:block;margin-top:5px;font-size:12px;font-weight:400}.result-card .crash-tip{font-size:11px}.countdown{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none;color:var(--bone);font:500 115px var(--display);text-shadow:0 0 65px #f008;background:#0004}.stage-code{position:absolute;bottom:15px;left:26px;right:26px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.12em;color:#999083;pointer-events:none;z-index:3}.touch-controls{display:none}
.grain{position:fixed;inset:0;pointer-events:none;z-index:9;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.94' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.noscript{position:fixed;inset:0;z-index:20;display:grid;place-content:center;padding:25px;background:#020202;line-height:2}.noscript a{color:var(--blood)}#cursor,#cursor-follower{position:fixed;top:0;left:0;pointer-events:none;z-index:100;opacity:0;border-radius:50%;transform:translate(-50%,-50%)}#cursor{width:5px;height:5px;background:var(--blood)}#cursor-follower{width:28px;height:28px;border:1px solid #e8e0d080}.custom-cursor,.custom-cursor *{cursor:none!important}
@media(min-width:1400px){.stage{width:min(70vw,1120px)}}
@media(max-width:1150px){.side-note{display:none}}
@media(max-width:767px){body{height:100svh;height:100dvh}.game-nav{height:62px;padding-inline:20px}.brand img{width:108px}.nav-label{display:none}.archive-link{font-size:10px;gap:14px}.stage{width:100%;border:0}.game-footer{display:none}.hud{top:20px;left:20px;right:120px;gap:12px}.hud strong{font-size:25px}.record-block strong{font-size:15px;line-height:2.4}.hud span,.hud small{font-size:8px}.record-block small{font-size:12px}.game-tools{top:16px;right:17px;gap:5px}.icon-button{width:40px;height:44px}.energy-wrap{left:20px;top:102px;width:145px}.intro{padding:46px 25px 29px}.intro h1{font-size:clamp(42px,12vw,72px);margin-top:15px}.intro .eyebrow{font-size:9px;letter-spacing:.08em}.intro-copy{font-size:12px;margin-top:13px}.intro-bottom{width:min(100%,330px)}.intro-record{margin-top:11px}.artifact-tag{font-size:8px}.intro .text-button{margin-top:0}.stage-code{display:none}.touch-controls{position:absolute;left:15px;right:15px;bottom:max(14px,env(safe-area-inset-bottom));display:flex;justify-content:center;gap:8px;z-index:2}.touch-controls button{width:clamp(52px,15vw,70px);height:52px;background:#050506b5;border:1px solid #e8e0d044;backdrop-filter:blur(8px);color:var(--bone);font-size:23px;touch-action:none;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1}.touch-controls button:active{border-color:var(--blood);background:#5a0000b0}.touch-controls small{font-size:7px;line-height:1.4;margin-top:3px}.modal-overlay{padding:27px 25px}.callout{font-size:12px;top:31%}.modal-card h2{font-size:36px}.help-card h2{font-size:30px}.help-card .instructions{gap:10px;margin:16px 0}.help-card>.primary{margin-top:20px}.modal-card>.text-button{margin-top:5px}}
@media(max-width:360px){.game-nav{height:54px;padding-inline:15px}.brand img{width:98px}.hud{left:15px;right:108px}.hud strong{font-size:21px}.record-block strong{font-size:12px}.record-block small{margin-top:4px}.game-tools{right:12px;gap:4px}.icon-button{width:38px}.intro{padding:40px 23px 25px}.intro h1{font-size:39px;margin-top:10px}.intro-copy{font-size:10px;margin-top:10px}.intro .eyebrow{font-size:8px}.primary,.secondary{font-size:10px;min-height:49px}.artifact-tag{margin-bottom:9px}.modal-card h2{font-size:30px;margin:12px 0}.result-score{padding-top:13px;margin-top:15px}.result-score>strong{font-size:42px}.result-stats{margin-top:10px}.modal-card>.primary{margin-top:20px}.modal-card .local-note{margin-top:11px}.help-card .instructions{gap:8px;margin:12px 0}.help-card .power-explanation{font-size:10px;padding-top:12px}.help-card>p:not(.eyebrow){font-size:10px}}
@media(max-height:670px){.intro{padding-top:26px;padding-bottom:20px}.intro h1{font-size:clamp(36px,7vh,56px);margin-top:8px}.intro-copy{font-size:10px;margin-top:7px}.intro-record{margin-top:10px}.intro .text-button{min-height:36px}.modal-overlay{padding-block:18px}.modal-card h2{font-size:30px;margin:10px 0}.modal-card>.primary{margin-top:15px}.instructions{gap:8px;margin:13px 0}.modal-card .local-note{margin-top:9px}.result-score{padding-top:10px;margin-top:12px}.result-score>strong{font-size:42px}}
@media(orientation:landscape) and (max-height:540px){.game-nav{height:45px}.game-footer{display:none}.intro{flex-direction:row;justify-content:center;gap:8vw;padding:20px 7vw}.intro-heading,.intro-bottom{width:43%;max-width:300px}.intro h1{font-size:42px}.intro .eyebrow{font-size:8px}.intro-copy{font-size:10px}.touch-controls{justify-content:space-between;bottom:10px;pointer-events:none}.touch-controls button{pointer-events:auto}.touch-controls button:nth-child(2){margin-right:auto}.touch-controls button{width:49px;height:45px}.modal-card{padding:12px 0}.stage-code{display:none}.hud{top:13px}.game-tools{top:10px}.energy-wrap{top:85px}.modal-overlay{padding-block:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
@media(hover:none),(pointer:coarse){#cursor,#cursor-follower{display:none}.custom-cursor,.custom-cursor *{cursor:auto!important}}
.is-menu #pause{display:none}.is-help .game-tools{display:none}
@media(max-width:767px){.is-menu .game-tools{top:auto;bottom:20px;right:15px}.is-menu .icon-button{border-color:transparent;background:transparent}.callout{font-size:10px;letter-spacing:.05em}}
/* Player setup, the two play styles, and saved results. */
.dashboard-nav{min-height:44px;display:flex;align-items:center;color:var(--bone);font-size:12px;letter-spacing:.02em}.dashboard-nav:hover{color:var(--blood)}
.intro{display:flex;align-items:flex-start;justify-content:center;padding:35px 5%;overflow-y:auto;background:linear-gradient(90deg,#020202f5 5%,#020202d9 40%,#02020225 75%),linear-gradient(0deg,#020202af,transparent 70%)}.setup-panel{width:380px;max-width:100%;margin-block:auto}.intro-heading{text-align:left}.intro .eyebrow{font-size:11px;color:#ed6b65;letter-spacing:.08em}.intro h1{font-size:43px;line-height:1.1;white-space:nowrap;margin-top:10px;margin-bottom:24px}.intro h1>span{display:inline;font-size:1em;letter-spacing:-.04em;line-height:1.1}.nickname-label,.mode-fieldset legend{display:block;font-size:12px;letter-spacing:.07em;margin-bottom:10px}.nickname-label>span,.mode-fieldset legend>span{color:var(--blood);margin-right:11px}#nickname{display:block;width:100%;min-height:50px;padding:11px 15px;font:16px var(--mono);color:var(--bone);background:#0b0c0ed9;border:1px solid #746c60;border-radius:0;-webkit-user-select:text;user-select:text;outline-offset:3px}#nickname:focus{outline:1px solid var(--bone)}#nickname::placeholder{color:#82796e}.setup-note{font-size:12px;color:#aaa194;line-height:1.7;margin-top:8px}.mode-fieldset{border:0;padding:0;margin:22px 0 0}.mode-fieldset legend{padding:0}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-card{position:relative;display:block;cursor:pointer}.mode-card input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;z-index:2}.mode-card-surface{position:relative;display:block;height:166px;border:1px solid #6c6255;background:linear-gradient(155deg,#191715bb,#050606cf);overflow:hidden;transition:border-color .2s,background .2s}.mode-card input:checked+.mode-card-surface{border-color:var(--blood);background:linear-gradient(160deg,#49060580,#070809da)}.mode-card input:focus-visible+.mode-card-surface{outline:2px solid var(--bone);outline-offset:4px}.mode-card img{position:absolute;height:116px;width:80px;object-fit:contain;left:50%;top:7px;transform:translateX(-50%);filter:drop-shadow(0 10px 12px #000)}.mode-card-name{position:absolute;inset:auto 11px 10px;font-size:13px;line-height:1.6}.mode-card-name small{display:block;font-size:9px;color:#b6aa99;letter-spacing:0}.mode-check{display:none;position:absolute;right:10px;top:7px;font-size:15px;color:var(--blood)}.mode-card input:checked+.mode-card-surface .mode-check{display:block}.mode-description{font-size:12px;line-height:1.6;color:#bcb0a0;margin:13px 0 18px}.setup-links{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:6px}.setup-links .text-button{font-size:11px}.setup-error{font-size:12px;color:#ff9d98;line-height:1.7;border-left:2px solid var(--blood);padding-left:12px;margin-bottom:14px}.character-caption{position:absolute;bottom:9%;left:54%;right:5%;text-align:center;pointer-events:none}.character-caption>span{font-size:10px;letter-spacing:.12em;color:#a99883}.character-caption>p{font-family:var(--display);font-size:21px;margin:10px 0 3px}.character-caption>small{font-size:10px;color:var(--blood);letter-spacing:.15em}.is-menu .game-tools{right:24px;top:22px;bottom:auto}.is-help .game-tools{display:none}.stage.is-menu .stage-code{display:none}.run-identity{position:absolute;bottom:51px;left:28px;right:28px;display:flex;align-items:center;gap:18px;pointer-events:none;font-size:11px;color:#c0b2a0;text-shadow:0 1px 8px #000}.run-identity #player-name{max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--bone);margin-right:auto}.run-identity #run-speed{color:#f3746b}.instructions b{font-weight:400}.save-status{font-size:11px;line-height:1.6;color:#b8b0a4;margin-top:14px}.save-status.saved{color:#a6ccb0}.save-status.failed{color:#ff918b}.result-links{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:8px;flex-wrap:wrap}.result-links .text-button{font-size:9px;min-height:38px}.touch-controls .recharging{color:#9c8978;border-color:#e8e0d018}.countdown.resuming{font-size:70px}.result-card .primary{margin-top:16px}
@media(min-width:768px) and (max-height:760px){.intro{padding-block:22px}.intro h1{font-size:36px;margin-bottom:18px}.mode-card-surface{height:135px}.mode-card img{height:90px}.mode-fieldset{margin-top:15px}.setup-note{font-size:11px}.mode-description{margin-block:10px}.setup-links .text-button{min-height:36px}}
@media(max-width:767px){.dashboard-nav{display:none}.intro{padding:27px 25px 25px;align-items:center;justify-content:flex-start;background:linear-gradient(90deg,#020202e8,#020202b0),linear-gradient(0deg,#020202ef,transparent 75%)}.setup-panel{width:370px;margin-block:auto}.intro h1{font-size:38px;margin-bottom:21px}.intro .eyebrow{font-size:10px}.character-caption{display:none}.mode-card-surface{height:153px}.mode-card img{height:105px}.mode-fieldset{margin-top:20px}.mode-card-name{font-size:12px}.mode-card-name small{font-size:8px}.setup-links .text-button{font-size:10px}.is-menu .game-tools{top:auto;bottom:7px;right:7px;display:none}.run-identity{bottom:79px;left:20px;right:20px;gap:12px;font-size:10px}.run-identity #player-name{max-width:48%}.result-links{gap:0}.result-links .text-button{font-size:9px}.result-card h2{font-size:30px}.result-score{padding-top:12px;margin-top:14px}.result-score>strong{font-size:42px}.save-status{font-size:11px}.result-card .result-stats{margin-top:8px}.modal-card .power-explanation{font-size:12px}.instructions small{font-size:11px}}
@media(max-width:767px) and (max-height:700px){.intro{padding:17px 23px}.intro h1{font-size:31px;margin:7px 0 15px}.intro .eyebrow{font-size:9px}.nickname-label,.mode-fieldset legend{font-size:11px;margin-bottom:6px}#nickname{min-height:44px;padding:8px 12px}.setup-note{font-size:10px;line-height:1.5;margin-top:6px}.mode-fieldset{margin-top:12px}.mode-card-surface{height:118px}.mode-card img{height:77px;top:4px}.mode-card-name{inset:auto 9px 6px;font-size:11px;line-height:1.4}.mode-card-name small{font-size:7px}.mode-description{font-size:10px;margin:9px 0 12px}.setup-links{margin-top:3px}.setup-links .text-button{min-height:35px;font-size:9px}.setup-panel .primary{min-height:47px}.result-card h2{font-size:27px}.result-score>strong{font-size:36px}.result-links .text-button{font-size:8px;min-height:33px}.result-card>.secondary,.result-card>.primary{min-height:45px}.help-card .instructions{gap:9px}.help-card .power-explanation{font-size:10px}.help-card .local-note{font-size:9px}}
@media(max-width:360px){.intro{padding-inline:19px}.mode-options{gap:9px}.run-identity{left:15px;right:15px;gap:10px;font-size:9px}.setup-links .text-button{font-size:9px}.mode-card-name small{font-size:7px}}
@media(orientation:landscape) and (max-height:540px){.intro{display:block;padding:20px 7vw;overflow-y:auto}.setup-panel{width:360px;margin:auto}.intro h1{font-size:32px}.intro-heading{width:100%;max-width:none}.run-identity{bottom:14px;left:34%;right:34%;justify-content:center}.run-identity #run-level,.run-identity #run-speed{display:none}.run-identity #player-name{max-width:100%;margin:0}}
