:root{color-scheme:dark;--bg:#0c1227;--panel:#172039;--cream:#f9ead5;--muted:#99abc9;--line:#91a5d123;--mint:#b0e8db;--peach:#ffd0a2;--lavender:#c3b8ee;--safe:calc(env(safe-area-inset-top) + 12px)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 0 80%,#193c4b70,transparent 55%),radial-gradient(ellipse at 90% 15%,#41365355,transparent 50%),var(--bg);font-family:ui-rounded,'Trebuchet MS',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--cream)}button,input,select{font:inherit}button{cursor:pointer;color:inherit;transition:background .15s,transform .15s;border:0}button:active{transform:translateY(2px)}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:4px}[hidden]{display:none!important}.app-shell{height:100svh;height:100dvh;max-width:1440px;margin:auto;padding:var(--safe) 32px 12px;display:flex;flex-direction:column;overflow:hidden}.eyebrow{font-size:calc(10px * var(--font-scale, 1));letter-spacing:1.8px;font-weight:800;color:var(--muted)}.topbar{display:flex;align-items:center;gap:22px;min-height:78px;flex:none;max-width:1260px;width:100%;margin:0 auto 12px}.wordmark{font-size:calc(23px * var(--font-scale, 1));font-weight:900;letter-spacing:4px;color:var(--cream);text-decoration:none;display:flex;align-items:center;gap:11px;margin-right:auto;position:relative}.wordmark small{position:absolute;font-size:calc(8px * var(--font-scale, 1));letter-spacing:2px;color:#7e92b7;left:44px;top:31px}.logo-sun{color:var(--peach);font-size:calc(37px * var(--font-scale, 1));line-height:1}.score-wrap{display:flex;align-items:baseline;gap:10px}.score-wrap strong{font-size:calc(34px * var(--font-scale, 1));line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-1px}.score-wrap #mode-label{font-size:calc(11px * var(--font-scale, 1));color:var(--mint);white-space:nowrap}.forecast{display:flex;align-items:center;gap:10px;margin-left:20px}.forecast .eyebrow{font-size:calc(8px * var(--font-scale, 1));width:30px;line-height:1.6}.forecast>div{display:flex;gap:2px;height:58px}.forecast canvas{width:58px!important;height:58px!important}.round-button{display:grid;place-items:center;width:46px;height:46px;flex:none;border:1px solid #b9cde42e;background:#ffffff09;border-radius:50%;font-size:calc(25px * var(--font-scale, 1));line-height:1}.round-button:hover{background:#ffffff17}.round-button svg{width:22px;height:22px;fill:none;stroke:var(--cream);stroke-width:2.8;stroke-linecap:round}.play-layout{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr) minmax(190px,250px);gap:32px;min-height:0;flex:1;width:100%;max-width:1200px;margin:auto}.play-column{min-height:0;display:flex;flex-direction:column;align-items:center}.round-bar{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:480px;min-height:26px;font-size:calc(11px * var(--font-scale, 1));color:#9eaacb;margin-bottom:8px;padding:0 4px;font-variant-numeric:tabular-nums}.round-bar #sun-count{color:var(--peach)}#clock{font-size:calc(11px * var(--font-scale, 1));position:relative;padding-bottom:4px;min-width:135px;text-align:center}#clock b{color:var(--cream);padding-left:7px}#clock i{position:absolute;bottom:0;left:0;height:2px;border-radius:2px;background:var(--mint);width:100%;transform-origin:left}.board-space{width:100%;flex:1;min-height:0;display:grid;place-items:center}.board-frame{position:relative;width:var(--board-width,100%);aspect-ratio:24/43;max-height:100%;border:1px solid #bed4f256;border-radius:25px;overflow:hidden;background:#152243;box-shadow:0 0 0 5px #c9deff04,0 16px 35px #0106134d}#board{display:block;width:100%;height:100%;touch-action:none;outline:none}.start-hint{position:absolute;inset:43% 12% auto;text-align:center;pointer-events:none}.start-hint strong{display:block;font-size:calc(clamp(19px,2vw,25px) * var(--font-scale, 1));line-height:1.3;font-weight:600;letter-spacing:-.5px}.start-hint span{display:block;font-size:calc(11px * var(--font-scale, 1));margin-top:12px;color:#b5bed7}.play-footer{width:100%;flex:none;text-align:center;min-height:49px}#notice{height:23px;font-size:calc(12px * var(--font-scale, 1));color:var(--peach);display:grid;place-items:center;letter-spacing:.25px}.quiet-button{background:none;color:var(--muted);font-size:calc(12px * var(--font-scale, 1));padding:9px 0;min-height:34px}#control-settings{padding:2px 10px;min-height:26px}.system-panel,.mission-panel{padding-top:20px;min-height:0;overflow:auto;scrollbar-width:thin}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}.small-tag{font-size:calc(8px * var(--font-scale, 1));border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:4px 6px;white-space:nowrap}h2{font-weight:600;letter-spacing:-.7px;line-height:1.2}.system-panel h2{font-size:calc(25px * var(--font-scale, 1));margin:20px 0 18px}#planet-ladder{display:grid;gap:4px}.ladder-item{display:grid;grid-template-columns:44px 1fr 26px;align-items:center;gap:9px;border:1px solid transparent;border-radius:14px;padding:3px 7px;background:none;text-align:left}.ladder-item canvas{width:44px!important;height:44px!important}.ladder-item strong{font-size:calc(13px * var(--font-scale, 1));font-weight:500}.ladder-item small{display:block;color:#7e92b0;font-size:calc(9px * var(--font-scale, 1));margin-top:3px}.ladder-item>span:last-child{font-size:calc(10px * var(--font-scale, 1));color:#8698b8;text-align:right}.ladder-item.current{background:#d1e5ee09;border-color:#d1e5ee30}.ladder-item.current strong{color:var(--mint)}#system-guide{border-top:1px solid var(--line);width:100%;text-align:left;margin-top:16px}#system-guide span{float:right}.orbit-card{border:1px solid var(--line);border-radius:26px;padding:25px 23px;background:linear-gradient(145deg,#ffffff05,#ffffff01);overflow:hidden}.orbit-card h2{font-size:calc(27px * var(--font-scale, 1));margin:13px 0}.orbit-card p{font-size:calc(12px * var(--font-scale, 1));line-height:1.8;color:#9caecd}.orbit-card #hero-planets{height:175px;display:grid;place-items:center}.orbit-card canvas{max-width:100%;height:auto!important;transform:rotate(-12deg)}.solar-equation{font-size:calc(32px * var(--font-scale, 1));color:var(--peach);display:flex;align-items:center;justify-content:space-between;letter-spacing:1px;margin-top:28px}.solar-equation span{color:#7384a5;font-size:calc(22px * var(--font-scale, 1))}.stats-card{display:block;width:100%;padding:25px;text-align:left;border:1px solid var(--line);border-radius:22px;background:#ffffff03;margin-top:18px}.stats-card strong{display:block;font-size:calc(39px * var(--font-scale, 1));font-weight:500;margin:10px 0 3px}.stats-card>span:last-child{font-size:calc(12px * var(--font-scale, 1));color:var(--muted)}.stats-card b{float:right;color:var(--cream)}#save-status{display:block;color:#8196b2;font-size:calc(10px * var(--font-scale, 1));margin:20px 5px}.aim-row{display:flex;gap:10px;align-items:center;padding:5px 8px;background:#ffffff08;border-radius:14px}.aim-row input{flex:1;min-width:0;touch-action:none;accent-color:var(--mint);height:35px}.aim-row button{background:var(--mint);color:#183139;border-radius:10px;padding:10px 16px;font-weight:700}
dialog{padding:0;border:1px solid #bac6e04d;border-radius:27px;background:linear-gradient(150deg,#1c2941,#161e34);color:var(--cream);box-shadow:0 40px 100px #0007;width:min(480px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:hidden}dialog::backdrop{background:#060b1c9c;backdrop-filter:blur(7px)}dialog[open]{display:flex;flex-direction:column}.modal-header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line);flex:none}.modal-header h2{font-size:calc(20px * var(--font-scale, 1));text-align:center;margin:0;font-weight:600}.modal-header .round-button{width:40px;height:40px;font-size:calc(23px * var(--font-scale, 1))}#modal-body{min-height:0;padding:24px 27px 28px;overflow-y:auto;scrollbar-gutter:stable both-edges;overscroll-behavior:contain}#modal-body>h2{display:none}dialog p{font-size:calc(13px * var(--font-scale, 1));line-height:1.7;color:var(--muted)}.primary-button,.secondary-button,.menu-card{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;gap:10px;min-height:49px;border-radius:14px;padding:14px 16px;font-weight:700;font-size:calc(14px * var(--font-scale, 1));margin:9px 0;background:var(--mint);color:#193441}.primary-button:hover{background:#cef6eb}.secondary-button{color:var(--cream);background:#ffffff06;border:1px solid #bccce430}.secondary-button:hover{background:#ffffff0e}.mode-cards{display:grid;gap:11px;margin:18px 0}.mode-cards button{text-align:left;justify-content:space-between;margin:0;min-height:76px;padding:17px 20px;background:#bde9dc}.mode-cards button:nth-child(2){background:#c9c0ee}.mode-cards small{display:block;font-size:calc(11px * var(--font-scale, 1));font-weight:400;opacity:.8;margin-top:6px}.mode-cards strong{font-size:calc(18px * var(--font-scale, 1))}.mode-cards .mode-icon{font-size:calc(27px * var(--font-scale, 1))}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.menu-grid button{margin:0;min-height:49px;font-size:calc(13px * var(--font-scale, 1))}.menu-hero{height:120px;position:relative;display:flex;justify-content:center;align-items:center}.menu-hero canvas:first-child{transform:translate(20px,8px) rotate(-12deg)}.menu-hero canvas:last-child{transform:translate(-13px,-8px)}.menu-intro{text-align:center;margin:0 0 15px;font-size:calc(12px * var(--font-scale, 1))!important}.prototype-note{font-size:calc(10px * var(--font-scale, 1))!important;text-align:center;margin:20px 0 0;color:#8293b1!important}.settings-form{display:grid;gap:10px}.settings-form label{font-size:calc(13px * var(--font-scale, 1))}.settings-form input,.settings-form select{width:100%;background:#0b172c;border:1px solid #9bb8cf55;padding:13px;border-radius:11px;color:var(--cream);font-size:calc(16px * var(--font-scale, 1));min-height:45px}.audio-setting{display:grid;grid-template-columns:1fr auto;gap:5px;padding:18px 0;border-bottom:1px solid var(--line)}.audio-setting label{font-size:calc(14px * var(--font-scale, 1))}.audio-setting output{font-size:calc(12px * var(--font-scale, 1));color:var(--mint)}.audio-setting input{grid-column:1/-1;width:100%;accent-color:var(--mint);height:32px}.volume-ends{grid-column:1/-1;display:flex;justify-content:space-between;color:var(--muted);font-size:calc(10px * var(--font-scale, 1))}.haptic-toggle{display:flex;gap:10px;align-items:center;font-size:calc(14px * var(--font-scale, 1));margin:22px 0}.haptic-toggle input{margin-left:auto;width:22px;height:22px;accent-color:var(--mint)}.haptic-toggle span{font-size:calc(12px * var(--font-scale, 1));color:var(--muted)}.score-tabs{display:flex;gap:7px;margin:14px 0}.score-tabs button{flex:1;min-height:42px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--muted);font-size:calc(13px * var(--font-scale, 1))}.score-tabs button[aria-pressed=true]{background:var(--mint);color:#183341;border-color:transparent}.leaderboard-table{width:100%;border-collapse:collapse;font-size:calc(13px * var(--font-scale, 1));table-layout:fixed}.leaderboard-table td,.leaderboard-table th{text-align:left;padding:13px 5px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.leaderboard-table th:first-child{width:40px}.leaderboard-table th:last-child{width:80px}.leaderboard-table td:last-child,.leaderboard-table th:last-child{text-align:right}.your-score{color:var(--mint)}.lifetime-grid,.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.lifetime-grid>div,.summary-grid>div{padding:17px 14px;border:1px solid var(--line);background:#ffffff04;border-radius:15px}.lifetime-grid span,.summary-grid span{color:var(--muted);font-size:calc(11px * var(--font-scale, 1));display:block}.lifetime-grid strong,.summary-grid strong{font-size:calc(26px * var(--font-scale, 1));display:block;margin-top:7px;font-weight:500;font-variant-numeric:tabular-nums}.planet-detail{text-align:center}.planet-detail canvas{max-width:100%;height:auto!important}.planet-detail h3{font-size:calc(26px * var(--font-scale, 1));margin:8px 0}.planet-detail .eyebrow{color:var(--mint)}.guide-planets{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.guide-planets button{border-radius:14px;padding:10px 2px;background:#ffffff05}.guide-planets canvas{display:block;margin:auto}.guide-planets span{font-size:calc(11px * var(--font-scale, 1))}.guide-planets .current{outline:1px solid var(--mint)}.gameover-score{text-align:center;font-size:calc(54px * var(--font-scale, 1));font-weight:600;color:var(--peach);margin:12px 0 20px}#account-dialog{padding:27px;overflow:auto}#account-dialog h2{font-size:calc(27px * var(--font-scale, 1));margin:18px 0 8px}#account-dialog .menu-links{display:flex;gap:12px;justify-content:space-between;margin-top:12px}#account-dialog .menu-links button{background:none;color:var(--mint);font-size:calc(11px * var(--font-scale, 1));padding:9px 0}.account-error{color:#ffb5a5!important;min-height:18px}.recovery-code{width:100%;padding:15px 7px;border:1px solid var(--line);border-radius:10px;color:var(--mint);background:#07132a;font-size:calc(13px * var(--font-scale, 1))}.username-status{font-size:calc(11px * var(--font-scale, 1))!important;min-height:12px;margin:0}.update-bar{position:fixed;bottom:10px;left:50%;transform:translateX(-50%);z-index:50}.update-bar button{background:var(--mint);color:#132d39;border-radius:12px;padding:12px 18px}
@media(max-width:1100px){.app-shell{padding-left:20px;padding-right:20px}.play-layout{grid-template-columns:190px minmax(0,1fr) 190px;gap:22px}.wordmark{font-size:calc(19px * var(--font-scale, 1));letter-spacing:3px}.orbit-card{padding:17px}.orbit-card h2{font-size:calc(24px * var(--font-scale, 1))}.system-panel h2{font-size:calc(22px * var(--font-scale, 1))}.score-wrap #mode-label{display:none}.forecast{margin-left:0}.topbar{gap:17px}}
@media(max-width:849px){.app-shell{padding:var(--safe) max(7px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(7px,env(safe-area-inset-left))}.topbar{min-height:64px;margin:0;gap:10px;padding:0 8px 5px}.wordmark,.system-panel,.mission-panel{display:none}.score-wrap{display:grid;grid-template-columns:1fr;gap:2px;margin-right:auto;min-width:65px}.score-wrap .eyebrow{font-size:calc(7px * var(--font-scale, 1));letter-spacing:1.2px}.score-wrap strong{font-size:calc(29px * var(--font-scale, 1))}.score-wrap #mode-label{display:block;font-size:calc(8px * var(--font-scale, 1))}.forecast{margin:0;gap:0}.forecast>.eyebrow{display:none}.forecast>div{height:56px;gap:0}.forecast canvas{width:56px!important;height:56px!important}.topbar .round-button{width:43px;height:43px}.play-layout{display:flex;max-width:none}.play-column{width:100%}.round-bar{padding:0 10px;margin:0;min-height:23px;font-size:calc(10px * var(--font-scale, 1));max-width:none}.board-frame{border-radius:21px}.play-footer{min-height:43px}#notice{height:20px;font-size:calc(11px * var(--font-scale, 1))}.quiet-button#control-settings{font-size:calc(12px * var(--font-scale, 1));min-height:23px;padding:0 8px}.start-hint strong{font-size:calc(21px * var(--font-scale, 1))}.start-hint span{font-size:calc(11px * var(--font-scale, 1))}.modal-header{padding:12px 13px}#modal-body{padding:17px 20px 23px}dialog{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px)}.menu-hero{height:100px}.menu-hero canvas{width:110px!important;height:110px!important}.mode-cards button{min-height:69px}.mode-cards strong{font-size:calc(17px * var(--font-scale, 1))}}
@media(max-width:360px){.topbar{gap:6px;padding-left:5px;padding-right:5px}.forecast canvas{width:49px!important;height:49px!important}.forecast>div{height:49px}.score-wrap strong{font-size:calc(25px * var(--font-scale, 1))}.topbar .round-button{width:40px;height:40px}}
@media(max-height:650px) and (min-width:850px){.system-panel h2{display:none}#planet-ladder{gap:0}.ladder-item{padding:0}.ladder-item canvas{width:36px!important;height:36px!important}.orbit-card #hero-planets{height:95px}.topbar{min-height:65px;margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Shared interface palette and readable numeric styles. */
:root{--bg:#100f29;--panel:#211e42;--cream:#fff2dc;--muted:#b7b8d4;--line:#b7a8e52e;--mint:#96eadc;--peach:#ffca8c;--lavender:#d3b9f5;--ui-font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
body{font-family:var(--ui-font);font-size:calc(16px * var(--font-scale, 1));font-variant-numeric:lining-nums tabular-nums;background:radial-gradient(ellipse at 0 85%,#214b5355,transparent 60%),radial-gradient(ellipse at 90% 10%,#63397040,transparent 55%),var(--bg)}
h2,h3,.eyebrow,.small-tag,button,.settings-form label,.audio-setting label,.haptic-toggle,.guide-planets span,.ladder-item strong,.score-wrap #mode-label,.lifetime-grid span,.prototype-note{font-family:var(--ui-font);font-weight:400;letter-spacing:.2px}
button small,.menu-intro,.mode-cards small,.volume-ends{font-family:var(--ui-font);letter-spacing:0}
.wordmark{font-family:var(--display-font),sans-serif;font-weight:400;font-size:calc(24px * var(--font-scale, 1));letter-spacing:1.3px;color:#84f0f2;text-shadow:0 2px #387cb0,0 4px #262043;gap:8px}
.wordmark small{font-family:var(--ui-font);color:#c5b8ec;letter-spacing:2px;left:44px;top:32px}
.logo-sun{font-family:Georgia,serif;color:#ffc47a;font-size:calc(37px * var(--font-scale, 1));text-shadow:0 0 17px #ffb16344}
#modal[data-page=menu] .modal-header h2{font-family:var(--display-font),sans-serif;font-size:calc(28px * var(--font-scale, 1));letter-spacing:1.3px;color:#9ef9f0;text-shadow:0 2px #358bbb,0 4px #10102b}
dialog{background:linear-gradient(150deg,#272342,#191b35);border-color:#a9bbdd66}
.modal-header{background:#211e38}.modal-header h2{font-size:calc(21px * var(--font-scale, 1));line-height:1.25}.modal-header .round-button{font-family:system-ui,sans-serif}
#modal-body p{font-size:calc(15px * var(--font-scale, 1));line-height:1.65}.menu-intro{font-size:calc(14px * var(--font-scale, 1))!important}.prototype-note{font-size:calc(9px * var(--font-scale, 1))!important}
.primary-button{background:#ffd59a;color:#31213c;box-shadow:inset 0 -3px #9e611d22}.primary-button:hover{background:#ffe7bd}
.secondary-button{background:#c5b8ec09;border-color:#a797d443}.menu-grid button{font-size:calc(14px * var(--font-scale, 1));line-height:1.35}
.mode-cards button{background:linear-gradient(135deg,#a5efe0,#84d5d8);color:#233746;box-shadow:inset 0 -4px #3a687222}
.mode-cards button:nth-child(2){background:linear-gradient(135deg,#f7c38e,#e5aabf);color:#46303e}
.mode-cards strong{font-size:calc(19px * var(--font-scale, 1));font-weight:650}.mode-cards small{font-size:calc(13px * var(--font-scale, 1));line-height:1.35;opacity:1}.mode-icon{font-family:Georgia,serif}
.round-button{box-shadow:inset 0 -2px #0003;background:#cbb9ff0c}.round-button svg{stroke:#e4d8ff}
.score-wrap strong,.gameover-score{font-family:var(--ui-font);font-weight:650;letter-spacing:0;color:#ffe0ab}
.system-panel h2,.orbit-card h2{font-size:calc(25px * var(--font-scale, 1));line-height:1.4;color:#e2d0fa}.orbit-card p{font-size:calc(14px * var(--font-scale, 1));color:var(--muted)}
.orbit-card,.stats-card{background:linear-gradient(135deg,#d1b3fe08,#a5e8e306)}.ladder-item strong{font-size:calc(13px * var(--font-scale, 1))}.ladder-item small{font-size:calc(11px * var(--font-scale, 1));color:#a5afce}.ladder-item.current{border-color:#9ee9df66;background:#a4e6dc0c}
.round-bar{font-size:calc(13px * var(--font-scale, 1));color:#bbc1de}.round-bar #clock{font-size:calc(13px * var(--font-scale, 1))}#save-status{font-size:calc(12px * var(--font-scale, 1));color:#a5afce}
.start-hint strong{font-family:var(--ui-font);color:#e0d3f5;font-weight:400;letter-spacing:.2px}.start-hint span{font-size:calc(14px * var(--font-scale, 1));line-height:1.6;color:#c1c4df}
#notice{font-size:calc(14px * var(--font-scale, 1));letter-spacing:0;white-space:nowrap}.quiet-button{font-size:calc(12px * var(--font-scale, 1))}.small-tag{font-size:calc(8px * var(--font-scale, 1))}
.lifetime-grid span{font-size:calc(11px * var(--font-scale, 1));line-height:1.4}.lifetime-grid strong{font-family:var(--ui-font);font-size:calc(26px * var(--font-scale, 1))}.guide-planets span{font-size:calc(12px * var(--font-scale, 1))}
.milestone-card{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:7px 13px;border:1px solid var(--line);border-radius:19px;padding:16px 14px;margin:15px 0;background:#d3b9f506}
.milestone-card.earned{border-color:#a7e6d65e}.milestone-card canvas{width:74px!important;height:74px!important}.milestone-card h3{font-size:calc(16px * var(--font-scale, 1));margin:0 0 5px;color:#f8d9ab}.milestone-card p{font-size:calc(13px * var(--font-scale, 1))!important;margin:0 0 8px;line-height:1.45!important}.milestone-card small{font-size:calc(12px * var(--font-scale, 1));color:#c8c4df}.milestone-card progress{display:block;width:100%;height:7px;margin:8px 0 9px;accent-color:var(--mint)}.milestone-card button{grid-column:1/-1;margin:8px 0 0;font-size:calc(12px * var(--font-scale, 1));min-height:42px}
.personal-record{color:var(--mint)!important;text-align:center;border:1px solid #9edac139;border-radius:13px;background:#9ce7d509;padding:12px}.result-rank{padding:12px 4px;text-align:center}.score-card-preview{display:block;width:100%;height:auto;border-radius:16px}.share-status{overflow-wrap:anywhere}
#account-dialog{position:relative}.account-close{position:absolute;right:14px;top:12px;font-family:system-ui,sans-serif;font-size:calc(22px * var(--font-scale, 1));width:32px;height:32px}#account-dialog>.eyebrow{display:block;padding-right:24px;font-size:calc(9px * var(--font-scale, 1))}#account-dialog h2{font-size:calc(23px * var(--font-scale, 1));padding-top:10px}#account-dialog p{font-size:calc(15px * var(--font-scale, 1))}.recovery-code{font-family:ui-monospace,monospace}.lettering-credit{font-size:calc(12px * var(--font-scale, 1))!important;text-align:center;margin:24px 0 0}.lettering-credit a{color:var(--mint)}
#ending h2{font-family:var(--ui-font);color:#f6d7b3;text-shadow:0 4px #493859;font-weight:400}
@media(max-width:1100px) and (min-width:850px){.wordmark{font-size:calc(19px * var(--font-scale, 1))}.system-panel h2,.orbit-card h2{font-size:calc(20px * var(--font-scale, 1))}.topbar{gap:15px}}
@media(max-width:849px){#modal-body{padding-top:18px}.menu-grid button{font-size:calc(12px * var(--font-scale, 1))}.mode-cards strong{font-size:calc(18px * var(--font-scale, 1))}.score-wrap strong{font-size:calc(27px * var(--font-scale, 1))}.score-wrap #mode-label{font-size:calc(8px * var(--font-scale, 1));letter-spacing:.3px}.score-wrap .eyebrow{font-size:calc(8px * var(--font-scale, 1))}.round-bar{font-size:calc(11px * var(--font-scale, 1));min-height:25px}.round-bar #clock{font-size:calc(11px * var(--font-scale, 1));min-width:122px}#notice{font-size:calc(12px * var(--font-scale, 1));height:22px}.quiet-button#control-settings{font-size:calc(10px * var(--font-scale, 1));min-height:23px}.start-hint strong{font-size:calc(21px * var(--font-scale, 1));line-height:1.45}.start-hint span{font-size:calc(13px * var(--font-scale, 1))}.menu-hero{height:105px}.lifetime-grid strong{font-size:calc(24px * var(--font-scale, 1))}}
@media(max-width:360px){.score-wrap strong{font-size:calc(23px * var(--font-scale, 1))}.menu-grid button{font-size:calc(11px * var(--font-scale, 1))}.milestone-card{grid-template-columns:60px minmax(0,1fr);padding:12px 10px;gap:9px}.milestone-card canvas{width:60px!important;height:60px!important}#notice{font-size:calc(10px * var(--font-scale, 1))}.score-wrap{min-width:58px}}
#modal-body:focus-visible{outline:none}.update-bar{max-width:calc(100vw - 24px);bottom:calc(env(safe-area-inset-bottom) + 7px)}.update-bar button{font-size:calc(11px * var(--font-scale, 1));min-width:265px;padding:13px 14px;box-shadow:0 4px 18px #06071566;white-space:nowrap}
@media(max-width:849px){.score-wrap strong{font-size:calc(clamp(15px,calc(165px / var(--score-chars,6) * var(--font-scale, 1))),27px)}}

/* Decorative lettering is reserved for the logo; small UI and numbers stay readable. */
h2,h3,button,.settings-form label,.audio-setting label,.ladder-item strong{font-weight:600}
.eyebrow,.small-tag{font-weight:650}.mode-cards small,button small{font-weight:400}
.lifetime-grid strong,.summary-grid strong,.stats-card strong,.round-bar,.leaderboard-table,.milestone-card small,.audio-setting output{font-variant-numeric:lining-nums tabular-nums}
.wordmark small{font-size:calc(9px * var(--font-scale, 1))}.prototype-note{font-size:calc(11px * var(--font-scale, 1))!important}
@media(max-width:849px){.score-wrap #mode-label{font-size:calc(10px * var(--font-scale, 1))}.score-wrap .eyebrow{font-size:calc(9px * var(--font-scale, 1))}.menu-grid button{font-size:calc(14px * var(--font-scale, 1))}.quiet-button#control-settings{font-size:calc(12px * var(--font-scale, 1))}}

/* Decorative continuation below the board; menus remain in the top layer. */
#cosmic-overflow{position:fixed;inset:0;width:100vw;height:100dvh;z-index:12;pointer-events:none}

.lab-tools{display:flex;gap:4px;justify-content:center;padding:5px 0;flex-wrap:wrap}.lab-tools button,.lab-tools select{border:1px solid var(--line);border-radius:10px;background:#233047;color:var(--cream);font-size:calc(11px * var(--font-scale, 1));min-height:32px;padding:5px 7px}.lab-tools button:disabled{opacity:.4}.lab-scenes{display:grid;gap:10px;margin:16px 0}.lab-scene{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:16px;padding:17px;background:#bcebe908}.lab-scene strong{display:block;color:var(--mint);font-size:calc(16px * var(--font-scale, 1))}.lab-scene span{display:block;font-size:calc(13px * var(--font-scale, 1));line-height:1.55;color:var(--muted);margin-top:6px}.lab-status{color:var(--peach);font-size:calc(13px * var(--font-scale, 1))}

/* Fire remains behind the recap; controls and text stay above the atmosphere. */
#burn-atmosphere{position:fixed;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}
#ending{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;outline:none;touch-action:none;background:transparent}
.ending-title{text-align:center;opacity:0;transform:translateY(12px);padding:30px 16px;width:100%;background:radial-gradient(ellipse,#120c22eb 0,#120c2288 45%,transparent 72%);transition:opacity .45s ease-out,transform .7s ease-out}
#ending[data-phase=title] .ending-title{opacity:1;transform:translateY(0)}
#ending h2{font-size:calc(clamp(49px,10vw,100px) * var(--font-scale, 1));line-height:1.15;margin:14px 0;color:#ffe1bc;text-shadow:0 3px 0 #5d2527,0 0 35px #f5733d55}
#ending .eyebrow{color:#f9b37e;letter-spacing:4px}#ending p{color:#dbc6c5;font-size:calc(14px * var(--font-scale, 1))}
#modal[data-afterburn]{background:linear-gradient(150deg,#292037ed,#191727da);border-color:#c3947e66;box-shadow:0 24px 100px #0c051aba,0 0 65px #b4401717}
#modal[data-afterburn]::backdrop{background:#09081852;backdrop-filter:blur(3px)}
#modal[data-afterburn] .modal-header{background:#281f32eb}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* The phone viewport is the arena. HUD floats inside the safe areas; the
   physical lower corner arcs use the exact same radius as this visual mask. */
@media(max-width:849px){
 body{background:#080d23;overflow:hidden}
 .app-shell{position:relative;height:100svh;height:100dvh;padding:0;max-width:none;isolation:isolate}
 .topbar{position:absolute;z-index:20;top:var(--safe);left:0;right:0;width:auto;margin:0;min-height:65px;padding:0 max(14px,env(safe-area-inset-right)) 5px max(14px,env(safe-area-inset-left));gap:8px;pointer-events:none}
 .topbar::before{content:'';position:absolute;z-index:-1;inset:calc(-1 * var(--safe)) 0 -54px;background:linear-gradient(#080d23ef,#080d23b3 58%,#080d2300);pointer-events:none}
 .topbar button,.topbar a{pointer-events:auto}
 .play-layout{position:absolute;inset:0;display:block;margin:0;max-width:none;height:100%;width:100%}
 .play-column{position:relative;height:100%;width:100%;display:block}
 .round-bar{position:absolute;z-index:20;top:calc(var(--safe) + 64px);left:0;right:0;min-height:24px;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));margin:0;pointer-events:none}
 .board-space{position:absolute;inset:0;display:block;height:100%;width:100%}
 .board-frame{width:100%;height:100%;max-height:none;aspect-ratio:auto;border:0;border-radius:0 0 var(--screen-corner,34px) var(--screen-corner,34px);box-shadow:none;background:#080d23}
 .play-footer{position:absolute;z-index:21;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 8px);min-height:0;pointer-events:none}
 #notice{position:fixed;top:calc(var(--safe) + 88px);left:10px;right:10px;height:22px;font-size:calc(11px * var(--font-scale, 1));white-space:normal;line-height:1.2;text-shadow:0 1px 5px #05091f;pointer-events:none}
 .quiet-button#control-settings{display:none}
 .aim-row{position:fixed;top:calc(var(--safe) + 115px);left:12px;right:12px;background:#17223bea;border:1px solid #b8d9f226;pointer-events:auto;box-shadow:0 7px 25px #0003}
 .lab-tools{position:fixed;top:calc(var(--safe) + 115px);left:10px;right:10px;bottom:auto;pointer-events:auto;width:fit-content;max-width:calc(100% - 20px);margin:auto;padding:6px 8px;background:#101b31e8;border:1px solid #b8d9f22a;border-radius:14px}
 .start-hint{inset:var(--hint-top,45%) 13% auto}
 .forecast canvas{filter:drop-shadow(0 2px 6px #02071655)}
 .round-button{background:linear-gradient(145deg,#bfd5ff24,#636ee514);border-color:#bce6ff47;box-shadow:inset 0 1px #dcf8ff24,0 5px 15px #0002}
 dialog{max-height:calc(100svh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px)}
}
@media(max-width:360px){.topbar{padding-left:12px;padding-right:12px;gap:5px}.forecast canvas{width:47px!important;height:47px!important}.topbar .round-button{width:40px;height:40px}}
.wordmark small{font-size:calc(8px * var(--font-scale, 1));letter-spacing:1.5px}.menu-intro{letter-spacing:1.5px;text-transform:uppercase;font-size:calc(12px * var(--font-scale, 1))!important;color:#b7d3f0!important}

.viewport-metrics{position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;height:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
/* The installed game is a touch surface, not a selectable document. Keep
   editable fields (including the read-only recovery code) fully usable. */
.app-shell,#ending,button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.app-shell img,.app-shell a{-webkit-user-drag:none}
input,textarea,[contenteditable]:not([contenteditable="false"]){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* Phone typography: increase text without scaling the game or menu layout. */
:root { --font-scale: 1; }
@media (max-width:849px) { :root { --font-scale: 1.15; } }
