:root { color-scheme: dark; --void:#07111f; --panel:#0d1a2b; --panel2:#122439; --white:#e8f3ff; --titanium:#8c9fae; --cyan:#38d5ed; --gold:#ffae3d; --border:#263e55; --muted:#a6b5c4; --danger:#ff7787; --display:'Orbitron',sans-serif; --body:'Space Grotesk',sans-serif; --mono:'JetBrains Mono',monospace; }
* { box-sizing:border-box; margin:0; padding:0; } [hidden] { display:none !important; }
body { min-width:320px; min-height:100dvh; color:var(--white); font-family:var(--body); line-height:1.55; background:var(--void); background-image:radial-gradient(ellipse at 80% 2%,#18446345,transparent 44%),radial-gradient(ellipse at 5% 55%,#12434925,transparent 35%); }
button,input,select { font:inherit; } button { cursor:pointer; } button:disabled { opacity:.45; cursor:not-allowed; } button:not(:disabled):hover { filter:brightness(1.12); } button:not(:disabled):active { transform:translateY(1px); }
a { color:var(--cyan); text-decoration:none; } a:hover { color:var(--white); } :focus-visible { outline:2px solid var(--cyan); outline-offset:5px; }
.app-shell { width:min(1360px,100%); margin:auto; padding:0 36px 95px; } .site-header { display:flex; justify-content:space-between; align-items:center; min-height:88px; gap:20px; border-bottom:1px solid #263e5588; }
.brand { display:flex; align-items:center; gap:11px; font-family:var(--display); font-size:12px; font-weight:800; letter-spacing:.6px; color:var(--white); white-space:nowrap; } .brand>span { color:var(--gold); font-size:26px; } .brand i { font-style:normal; color:var(--border); } .brand small { font-family:var(--mono); color:var(--titanium); font-size:9px; letter-spacing:1.4px; font-weight:400; }
.site-header nav { display:flex; align-items:center; gap:24px; font-size:12px; } .site-header nav>a { color:var(--muted); } .icon-button { border:1px solid var(--border); color:var(--titanium); background:transparent; padding:8px 11px; border-radius:5px; font-size:11px; }
.eyebrow { font-family:var(--mono); font-size:9px; font-weight:500; letter-spacing:2px; color:var(--titanium); } #intro { position:relative; isolation:isolate; min-height:755px; border-bottom:1px solid var(--border); }
.hero-art { position:absolute; z-index:-1; right:-36px; top:0; width:78%; height:100%; overflow:hidden; background-image:linear-gradient(90deg,var(--void),#07111fd9 16%,#07111f20 54%,#07111f00),linear-gradient(0deg,var(--void),transparent 40%),url('/breaker/assets/reactor-keyart.png'); background-size:cover; background-position:50% 50%; }
.hero-copy { width:48%; min-width:440px; padding:46px 0 36px; } .hero-copy>.eyebrow { display:flex; align-items:center; gap:10px; color:var(--cyan); } .hero-copy>.eyebrow span { height:5px; width:5px; background:var(--cyan); border-radius:50%; box-shadow:0 0 12px #38d5ed88; }
h1 { font-family:var(--display); font-size:clamp(44px,4.8vw,68px); font-weight:900; line-height:1.2; letter-spacing:-2px; margin:20px 0 17px; } h1 em { font-style:normal; color:var(--cyan); }
.hero-tag { color:var(--gold); font-family:var(--mono); font-size:10px; letter-spacing:1.8px; } .hero-description { font-size:16px; line-height:1.8; color:var(--muted); margin:18px 0 21px; }
.world-preview { display:flex; flex-wrap:wrap; gap:7px 16px; font-family:var(--mono); font-size:8px; letter-spacing:1px; color:var(--titanium); margin:0 0 24px; } .world-preview span:nth-child(2) { color:var(--gold); } .world-preview span:nth-child(3) { color:var(--danger); } .world-preview span:nth-child(4) { color:#b9b4e2; }
.funding-panel { max-width:445px; padding:21px; border:1px solid #385571; background:linear-gradient(125deg,#172e40ed,#0c192bdc); border-radius:7px; box-shadow:0 12px 45px #0002; backdrop-filter:blur(10px); }
.funding-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:16px; } .funding-heading h2 { font-size:16px; font-weight:500; } #connection-status { color:var(--titanium); font-family:var(--mono); font-size:9px; text-align:right; }
.funding-panel label { display:block; color:var(--muted); font-size:11px; margin-bottom:6px; } .funding-panel label span { margin-left:5px; color:var(--titanium); }
.budget-row { display:flex; gap:9px; } input,select { min-width:0; width:100%; color:var(--white); background:#071522; border:1px solid #38516a; padding:9px 11px; border-radius:4px; outline-offset:3px; }
#budget-sats { flex:1; width:50%; font-family:var(--mono); font-size:16px; min-height:43px; } #btn-wallet { color:var(--cyan); background:#162e40; border:1px solid #38516a; border-radius:4px; font-size:11px; padding:8px 11px; }
.price-note { color:var(--titanium); font-size:10px; line-height:1.8; margin:11px 0 15px; } .price-note b { color:var(--white); font-weight:500; } .level-select-row { display:flex; gap:15px; align-items:center; margin-bottom:16px; } .level-select-row label { margin:0; flex-shrink:0; font-size:10px; } .level-select-row select { font-family:var(--mono); font-size:10px; padding:7px 9px; }
.primary-button,.secondary-button { display:flex; align-items:center; justify-content:center; gap:25px; width:100%; min-height:49px; padding:12px 16px; font-family:var(--display); font-size:11px; font-weight:800; letter-spacing:1px; border-radius:4px; border:1px solid transparent; background:var(--gold); color:#221705; }
.primary-button>span { font:22px var(--body); line-height:1; } .secondary-button { color:var(--cyan); background:var(--panel2); border-color:var(--border); }
.text-button { display:block; margin:12px auto 0; padding:5px; border:0; background:transparent; color:var(--cyan); font-size:11px; }
.status-line { font-size:11px; color:var(--gold); line-height:1.7; overflow-wrap:anywhere; } .status-line:not(:empty) { margin-top:11px; }
.entry-note { color:var(--titanium); font-size:10px; line-height:1.8; margin-top:16px; max-width:465px; }
.hero-caption { position:absolute; right:26px; bottom:44px; text-align:right; } .hero-caption span { color:var(--gold); font-family:var(--mono); font-size:9px; letter-spacing:2px; } .hero-caption strong { display:block; color:var(--white); font-family:var(--display); font-size:22px; font-weight:600; line-height:1.5; letter-spacing:1px; margin-top:10px; }
.briefing { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; padding:32px 0; border-bottom:1px solid var(--border); } .briefing article { display:flex; gap:14px; align-items:start; } .briefing article>span { font-family:var(--mono); color:var(--cyan); font-size:10px; line-height:24px; } .briefing h2 { font-size:14px; font-weight:500; margin-bottom:7px; } .briefing p { font-size:12px; line-height:1.8; color:var(--titanium); }
.play-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:22px 0 18px; } #run-status { font-size:13px; color:var(--muted); margin-top:3px; } .run-controls { display:flex; gap:9px; } .run-controls button { border:1px solid var(--border); border-radius:4px; background:transparent; color:var(--muted); font-size:11px; min-height:39px; padding:8px 12px; }
.game-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; align-items:start; gap:34px; } .battlefield { width:min(100%,660px,max(270px,calc((100dvh - 265px) * .75))); justify-self:center; min-width:0; }
.game-hud { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:13px; padding:14px 16px; background:#0d1c2d; border:1px solid var(--border); border-radius:5px; } .game-hud>div { min-width:0; } .game-hud span { display:block; font-family:var(--mono); font-size:8px; color:var(--titanium); letter-spacing:1px; margin-bottom:4px; } .game-hud strong { color:var(--white); font-family:var(--display); font-size:12px; font-weight:700; white-space:nowrap; } #hud-combo { color:var(--gold); } #hud-score { color:var(--cyan); }
#stage { position:relative; width:100%; aspect-ratio:3/4; background:#07111f; border:1px solid #446077; border-radius:7px; overflow:hidden; box-shadow:0 20px 60px #0005; } #cv3d,#cv { position:absolute; inset:0; display:block; width:100%; height:100%; touch-action:none; } #cv { background:transparent; z-index:1; } body.fallback-2d #cv3d { display:none; }
.board-overlay { position:absolute; inset:0; z-index:2; pointer-events:none; background:#07111f99; backdrop-filter:blur(3px); display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:25px; } .board-overlay strong { font-family:var(--display); color:var(--white); font-size:23px; letter-spacing:2px; margin-bottom:12px; } .board-overlay span { color:var(--muted); font-size:12px; max-width:290px; line-height:1.8; }
.stage-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; color:var(--titanium); font-family:var(--mono); font-size:8px; min-height:35px; padding:8px 0; }
.launch-row { display:flex; align-items:center; justify-content:space-between; gap:15px; border-top:1px solid var(--border); padding:14px 0; } #shot-hint { font-size:11px; color:var(--muted); } #btn-launch { min-height:40px; flex-shrink:0; padding:9px 22px; border:1px solid var(--cyan); border-radius:4px; background:#143544; color:var(--cyan); font-family:var(--display); font-size:10px; font-weight:700; }
.proof-rail { padding-top:15px; min-width:0; } .proof-total { margin-top:23px; padding-bottom:12px; display:flex; flex-direction:column; } .proof-total strong { font-family:var(--display); font-size:clamp(43px,4vw,60px); color:var(--cyan); font-weight:700; line-height:1.1; } .proof-total span { color:var(--white); font-size:14px; margin-top:8px; } .proof-note { font-size:10px; color:var(--titanium); line-height:1.8; max-width:255px; }
.economy-stats { margin-top:21px; font-size:12px; } .economy-stats>div { display:flex; justify-content:space-between; gap:15px; padding:11px 0; border-bottom:1px solid #263e5599; } .economy-stats dt { color:var(--titanium); } .economy-stats dd { color:var(--white); font-family:var(--mono); font-size:11px; } #run-balance { color:var(--gold); }
.receipt-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin:27px 0 15px; } .receipt-heading h2 { font-size:12px; font-weight:500; } #run-mode { font-family:var(--mono); font-size:8px; color:var(--cyan); padding:4px 6px; border:1px solid #38d5ed55; border-radius:3px; }
#tx-feed { display:flex; flex-direction:column; gap:8px; min-height:42px; } .empty-state { font-size:11px; color:var(--titanium); line-height:1.8; } .tx-row { display:flex; justify-content:space-between; gap:12px; color:var(--cyan); font-family:var(--mono); font-size:10px; padding:6px 0; border-bottom:1px solid #263e5588; } .tx-row span { color:var(--titanium); font-size:9px; }
.field-guide { margin-top:25px; padding-top:15px; border-top:1px solid var(--border); } .field-guide summary { cursor:pointer; list-style:none; color:var(--muted); font-size:11px; padding:5px 0; } .field-guide summary>span { float:right; color:var(--cyan); } .field-guide p { font-size:11px; color:var(--titanium); line-height:1.9; margin-top:12px; } .field-guide b { color:var(--white); font-weight:500; }
.summary-panel { width:min(700px,100%); margin:50px auto; background:linear-gradient(135deg,#13283a,#0b1828); border:1px solid #385571; border-radius:9px; padding:43px; text-align:center; } .summary-panel h2 { font-family:var(--display); font-size:28px; margin:13px 0; letter-spacing:1px; } .final-score { display:block; font-family:var(--display); font-size:65px; color:var(--cyan); font-weight:700; margin:17px 0; } #final-play { color:var(--muted); font-size:13px; }
#final-settlement { display:flex; flex-direction:column; gap:11px; margin:27px auto; max-width:430px; text-align:left; color:var(--muted); font-size:12px; } .settlement-row { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid var(--border); } .settlement-row b { color:var(--white); font-family:var(--mono); font-size:11px; font-weight:500; } .summary-panel .primary-button,.summary-panel .secondary-button { width:min(350px,100%); margin:14px auto 0; }
footer { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:15px; margin-top:32px; padding-top:21px; border-top:1px solid #263e5599; color:var(--titanium); font-size:10px; } footer>span:first-child { font-family:var(--mono); letter-spacing:.6px; } footer i { color:var(--gold); font-style:normal; margin:0 8px; } footer a { margin-left:13px; }
#toast { position:fixed; left:50%; transform:translateX(-50%); top:20px; z-index:50; max-width:min(500px,calc(100% - 32px)); padding:12px 20px; color:var(--white); font-size:12px; text-align:center; background:#132a3def; border:1px solid var(--cyan); border-radius:5px; box-shadow:0 10px 50px #0008; } #txbw-fab { bottom:18px !important; } body.playing #txbw-fab { display:none !important; }
@media(min-width:1500px) { .app-shell { width:min(1460px,100%); } #intro { min-height:800px; } h1 { font-size:72px; } .hero-copy { padding:60px 0 40px 20px; } .hero-art { width:77%; } .battlefield { width:min(100%,700px,max(270px,calc((100dvh - 265px) * .75))); } }
@media(max-width:1100px) { .app-shell { padding-left:25px; padding-right:25px; } .hero-art { right:-25px; width:76%; } .hero-copy { min-width:420px; } h1 { font-size:51px; } .hero-description { font-size:14px; } .game-layout { grid-template-columns:minmax(0,1fr) 280px; gap:25px; } .proof-total strong { font-size:48px; } .briefing { gap:22px; } }
@media(max-width:800px) { .app-shell { padding:0 20px 100px; } .site-header { min-height:74px; } .brand { font-size:10px; gap:8px; } .brand small { font-size:8px; } .site-header nav { gap:12px; font-size:11px; } #intro { min-height:auto; } .hero-art { width:100%; right:-20px; height:430px; opacity:.65; background-image:linear-gradient(90deg,var(--void),#07111f90 38%,#07111f10),linear-gradient(0deg,var(--void),transparent 70%),url('/breaker/assets/reactor-keyart.png'); } .hero-copy { min-width:0; width:100%; padding:38px 0 30px; } h1 { font-size:clamp(44px,8vw,62px); } .hero-caption { display:none; } .funding-panel { max-width:520px; } .entry-note { max-width:500px; } .briefing { grid-template-columns:1fr; gap:21px; padding:26px 0; } .briefing h2 { margin-bottom:3px; } .briefing p { max-width:550px; } .game-layout { grid-template-columns:1fr; gap:17px; } .battlefield { width:min(100%,530px,max(270px,calc((100dvh - 230px) * .75))); } .play-heading { margin-top:18px; } .proof-rail { padding:21px; border:1px solid var(--border); border-radius:6px; background:#0b1928; } .proof-total { margin-top:15px; flex-direction:row; align-items:baseline; gap:15px; padding-bottom:8px; } .proof-total strong { font-size:39px; } .proof-total span { font-size:13px; } .proof-note { max-width:none; } .economy-stats { margin-top:16px; } .receipt-heading { margin-top:23px; } .summary-panel { padding:35px 24px; } }
@media(max-width:480px) { .app-shell { padding-left:14px; padding-right:14px; } .site-header { min-height:65px; } .brand small,.brand i { display:none; } .brand { font-size:11px; } .site-header nav { gap:10px; } .icon-button { font-size:10px; padding:7px 8px; } .hero-copy { padding-top:29px; } .hero-copy>.eyebrow { font-size:8px; letter-spacing:1.3px; } h1 { font-size:42px; letter-spacing:-1.5px; margin-top:18px; } .hero-tag { font-size:8px; letter-spacing:1.1px; } .hero-description { font-size:13px; margin:17px 0 19px; } .world-preview { gap:9px; font-size:7px; margin-bottom:19px; } .hero-art { right:-14px; height:365px; background-position:55% center; } .funding-panel { padding:17px; } .funding-heading h2 { font-size:15px; } .funding-heading { margin-bottom:14px; } .entry-note { font-size:9px; } .play-heading { align-items:flex-start; gap:12px; } #run-status { font-size:11px; max-width:190px; } .play-heading .eyebrow { font-size:8px; letter-spacing:1.3px; } .run-controls { flex-wrap:wrap; justify-content:end; max-width:142px; gap:5px; } .run-controls button { min-height:34px; font-size:9px; padding:7px 9px; } .game-hud { gap:10px; padding:11px; } .game-hud span { font-size:6px; letter-spacing:.7px; } .game-hud strong { font-size:9px; } #stage { border-radius:5px; } .stage-footer { font-size:7px; } #shot-hint { font-size:10px; } #btn-launch { padding:8px 15px; font-size:9px; } .proof-rail { padding:17px; } .summary-panel { margin:28px auto; padding:28px 18px; } .summary-panel h2 { font-size:23px; } .final-score { font-size:53px; } #final-play { font-size:11px; } footer { font-size:9px; gap:8px; } footer a { display:block; margin:6px 0 0; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }

#cv:focus-visible { outline:2px solid var(--cyan); outline-offset:-4px; }
.level-select-row small { color:var(--titanium); font-size:9px; font-weight:400; }
