*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#132c30;color:#fff5d9;font-family:Georgia,'Songti SC',serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #ffe4a0;outline-offset:6px}[hidden]{display:none!important}#game,#scene,.vignette{position:absolute;inset:0}#scene canvas{width:100%;height:100%;display:block;touch-action:none}.vignette{pointer-events:none;background:linear-gradient(180deg,#0b1b2844,transparent 30%,transparent 65%,#081b29bb)}header{position:absolute;top:0;width:100%;padding:30px 42px;display:flex;align-items:center;gap:30px;z-index:5}.brand{letter-spacing:3px;text-decoration:none;color:inherit;font-size:15px}.brand:first-letter{font-size:28px}.brand span{color:#cca66b;padding:0 10px}.edition{font:10px system-ui;letter-spacing:3px;margin-left:auto}.edition span{display:inline-block;border:1px solid #e6d3a855;margin-left:20px;padding:7px 9px;letter-spacing:1px}header button,.secondary{color:#fff2d2;background:#10282b88;border:1px solid #ffecbc55;padding:12px 20px}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:110px 8% 100px;background:linear-gradient(90deg,#091c29e8,#0c242d99 40%,#13232a12 75%)}.intro{max-width:570px}.eyebrow,.chapter{font:11px system-ui;letter-spacing:3px;color:#e9c98f}h1{font-size:clamp(44px,6vw,84px);font-weight:400;line-height:1.2;margin:24px 0}h1 em{font-style:normal;color:#f2d59d}.description{font-size:17px;line-height:1.9;color:#e2e3d6}.primary{background:#efd49c;color:#1b2d2d;border:0;padding:18px 32px;margin-top:22px;min-width:210px;font-weight:600;font-size:17px;box-shadow:0 4px 30px #e7c46a22}.primary:hover{background:#ffe7b6}.primary:disabled{opacity:.6;cursor:wait}.fine{font:11px system-ui;color:#c3c6b7;margin-top:18px}.instructions{align-self:flex-end;width:280px;border-top:1px solid #f0d39a77;padding-top:22px;text-shadow:0 2px 12px #051413}.instructions h2{font-size:23px;font-weight:400;margin:18px 0 26px}.instructions p{margin:22px 0}.instructions b{display:block;font-size:14px;font-weight:400;color:#ffe2a8}.instructions p span,.instructions small{display:block;font:12px/1.8 system-ui;color:#e2e4d6}.instructions small{font-size:11px;color:#c5cec4}footer{position:absolute;bottom:0;width:100%;padding:24px 42px;display:flex;justify-content:space-between;align-items:center;gap:20px;font:10px system-ui;letter-spacing:2px;pointer-events:none}footer i{color:#d8ba7d}footer button{pointer-events:auto}.prototype{letter-spacing:1px;color:#c3c9bd}#hud{position:absolute;inset:110px 42px auto;display:flex;justify-content:space-between;pointer-events:none}.stat{display:flex;flex-direction:column;gap:7px}.stat span{font:12px system-ui;letter-spacing:2px}.stat strong{font-size:56px;font-weight:400}.stat small{font:9px system-ui;letter-spacing:2px}.right{text-align:right}#reticle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:24px system-ui;color:#fff6;pointer-events:none}#target{position:absolute;transform:translate(-50%,-50%);text-align:center;color:#ffe294;pointer-events:none;text-shadow:0 0 15px #fbd971}#target span{font:52px system-ui}#target small{display:block;font:12px system-ui;white-space:nowrap}#target.ready{color:#fff2ab}#target.ready span{font-size:65px}#notice{position:absolute;top:23%;left:50%;transform:translateX(-50%);text-align:center;font:17px system-ui;text-shadow:0 2px 10px #000;pointer-events:none;white-space:nowrap}.centered{justify-content:center;text-align:center;background:#0b232dc9;backdrop-filter:blur(8px)}.centered h1{font-size:55px}.resultScore strong{font-size:80px;color:#f4d28b;font-weight:400}.resultScore{margin:0}.secondary{margin-left:15px}#flightControls{display:flex;gap:12px;align-items:center}#flightControls button{padding:14px 20px;color:#ffe9b7;background:#132c30bd;border:1px solid #eed59b66;touch-action:none;user-select:none}#flightControls #grab.ready{background:#efd49c;color:#182c2c}kbd{font:9px system-ui;opacity:.6;padding-left:10px}.energy{width:120px;font-size:10px;letter-spacing:1px;margin-right:10px}.energy>div{height:3px;background:#ffffff33;margin-top:10px}.energy i{display:block;height:100%;width:100%;background:#f3d595}body.playing .prototype,body.playing #footerLabel{display:none}body.playing footer{justify-content:center}
@media(max-width:700px){header{padding:20px;gap:10px}.brand{font-size:10px;letter-spacing:1px}.edition{font-size:0}.edition span{font-size:9px;margin:0}.overlay{padding:95px 26px 90px;align-items:flex-start;overflow:auto;background:linear-gradient(90deg,#0b202cdd,#112a3066)}h1{font-size:48px;margin:18px 0}.description{font-size:15px}.eyebrow{font-size:9px;letter-spacing:2px}.instructions{display:none}.intro{margin-top:5vh}footer{padding:20px;font-size:8px;letter-spacing:1px}.prototype{max-width:110px;text-align:right}.centered{align-items:center}.centered h1{font-size:37px}.primary{padding:17px 25px}.secondary{display:block;margin:16px auto}#hud{inset:90px 22px auto}.stat strong{font-size:40px}.stat small{font-size:8px}#flightControls{width:100%;justify-content:center;gap:9px}.energy{width:75px;margin-right:4px}#flightControls button{padding:17px}kbd{display:none}#notice{font-size:14px;top:30%}.edition+button{padding:8px;font-size:12px}}

.mobileHint{display:none}@media(max-width:700px){.mobileHint{display:block;font:12px/1.8 system-ui;color:#eed7a7}}
.settings{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:24px;font:12px system-ui;color:#eed9b2}.settings label{display:flex;align-items:center;gap:7px}.settings select{color:#f8e1b8;background:#193138;border:1px solid #e9cc8c66;padding:7px;font:inherit}.settings input{accent-color:#edcf8c}.centered .settings{justify-content:center}.settings input:focus-visible,.settings select:focus-visible{outline:2px solid #ffe5a6;outline-offset:3px}#target:before{content:'';position:absolute;left:50%;top:26px;width:70px;height:70px;border:1px solid #f7dc8c55;border-radius:50%;transform:translate(-50%,-50%);transition:width .2s,height .2s,border-color .2s}#target.ready:before{width:42px;height:42px;border:2px solid #fff0b4}#target.warning{color:#fff9d9;text-shadow:0 0 16px #ffbc30}#speedLines{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:repeating-conic-gradient(from 20deg at 50% 50%,transparent 0deg 17deg,#fff4ca55 17.1deg 17.3deg,transparent 17.4deg 31deg);mask-image:radial-gradient(ellipse,transparent 45%,#000 100%)}@media(max-width:700px){.settings{gap:12px;font-size:11px;margin-top:18px}.intro{margin-top:0}.intro h1{font-size:44px}.intro .primary{margin-top:10px}.intro .description{margin-bottom:8px}}
.difficultyPicker{margin-top:20px;max-width:400px}.difficultyPicker fieldset{border:0;padding:0;margin:0;text-align:left}.difficultyPicker legend{font:12px system-ui;color:#dfcfb1;margin-bottom:10px}.difficultyOptions{display:flex;gap:8px}.difficultyOptions button{flex:1;padding:12px 16px;background:#122f34a8;border:1px solid #dbc18b55;color:#e7d9bc;font:14px system-ui}.difficultyOptions button[aria-pressed=true]{background:#efdaa9;color:#193335;border-color:#efdaa9}.difficultyOptions small{font:9px system-ui;margin-left:6px;opacity:.75}.difficultyDescription{font:11px/1.6 system-ui;color:#dac9a8;margin:9px 0 0}.centered .difficultyPicker{margin:20px auto}.settings select:disabled{opacity:.65;cursor:default}@media(max-width:700px){.intro h1{font-size:38px;margin:12px 0}.intro .description{font-size:13px;line-height:1.6}.intro .difficultyPicker{margin-top:14px}.difficultyOptions button{padding:11px 12px}.intro .settings{margin-top:14px}.intro .fine{margin-top:12px}.intro .eyebrow{font-size:8px}.centered h1{margin:14px 0}}
/* Embedded playfield: allow long translations to wrap without blocking controls. */
.intro{min-width:0;max-width:560px}.intro h1{font-size:clamp(34px,4.8vw,70px)}.instructions{margin-left:24px;flex-shrink:0}#notice{white-space:normal;width:min(90%,620px);font-size:14px}.difficultyOptions button{padding:10px 12px}.difficultyOptions small{display:block;margin:4px 0 0;font-size:9px}.centered>div{max-width:620px}#pauseMenu,#result{overflow:auto}#result .resultScore strong{font-size:56px}#result .fine{line-height:1.6}.settings label{flex-wrap:wrap}.edition{letter-spacing:1px}.intro .primary{margin-top:14px}header .brand{font-size:12px}#target small{max-width:170px;white-space:normal}header{padding:22px 28px}footer{padding:18px 28px}.overlay{padding:85px 6% 72px}.instructions p{margin:16px 0}
@media(max-width:900px){.instructions{display:none}.intro{max-width:600px}.intro h1{font-size:44px}.overlay{padding-top:85px}.centered{padding:85px 22px 60px}.centered h1{font-size:36px}}
@media(max-width:700px){.overlay{padding:80px 20px 65px}.intro h1{font-size:34px}.intro .description{font-size:13px;line-height:1.6}.intro .eyebrow{font-size:10px}.settings{gap:10px}.settings select{max-width:170px}header{padding:16px 20px}.brand:first-letter{font-size:23px}header .brand{font-size:10px}.edition{font-size:10px}.stat small{max-width:130px;line-height:1.6}#flightControls button{padding:15px 12px}.energy{font-size:9px}.difficultyDescription{font-size:11px}.centered{align-items:flex-start}.resultScore{font-size:14px}}
@media(max-height:650px){.overlay{align-items:flex-start}.intro h1{font-size:32px;margin:12px 0}.intro .description{font-size:13px}.intro .eyebrow{margin-top:0}.difficultyPicker{margin-top:12px}.intro .settings{margin-top:12px}.instructions{display:none}footer{background:#10272ccc}}
/* Pause and fullscreen share the transparent in-game header, with no toolbar. */
.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}
.header-actions button{min-height:40px;white-space:nowrap}
header .edition{margin-left:auto}
header .brand-name{font:inherit;letter-spacing:inherit;color:inherit;padding:0}
@media(max-width:700px){header{gap:10px}header .edition{display:none}.header-actions{gap:8px}.header-actions button{padding:9px 12px;font-size:12px}.brand-name{display:none}}

.rankingResult{margin:18px auto 0;max-width:520px;border-top:1px solid #e4cf9d40;padding-top:10px}.rankingResult .fine{margin:8px 0;line-height:1.6}.rankingResult a{display:inline-block;padding:12px;color:#f1d69c;text-decoration:underline;text-underline-offset:4px}.rankingResult button{margin:4px;font-size:13px}button:disabled{cursor:wait;opacity:.65}

/* Keep the fullscreen space reserved while WebGL initializes. */
[data-pending-fullscreen]{visibility:hidden}
