:root{color-scheme:dark;--bg:#050a18;--card:#081328dc;--line:#355483;--cyan:#50d8ff;--pink:#ff3f9b;--text:#f5f8ff;--muted:#b7c4df}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(90deg,#050a18f2 0%,#071127cf 43%,#0711277a 70%,#050a18d9 100%),url("background.png") center 18%/cover fixed no-repeat,var(--bg);color:var(--text);font-family:system-ui,-apple-system,sans-serif}main{width:min(1180px,100%);margin:auto;padding:clamp(12px,3vw,32px)}header{display:flex;align-items:center;min-height:clamp(180px,28vw,330px);max-width:680px;margin-bottom:20px;text-shadow:0 3px 18px #000}h1{font-size:clamp(1.7rem,5vw,3.7rem);margin:.15em 0}h2{font-size:1.05rem;margin:0 0 14px}.eyebrow{color:var(--cyan);font-weight:800;letter-spacing:.12em}.card{background:var(--card);backdrop-filter:blur(13px);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 14px 40px #0007}.controls{display:flex;gap:12px;align-items:end;margin-bottom:12px}.controls label{display:grid;gap:6px;flex:1;color:var(--muted)}button,select{min-height:48px;border-radius:12px;border:1px solid #3d5787;background:#132448;color:var(--text);padding:0 16px;font:inherit}button{background:linear-gradient(135deg,#087bd7,#d42489);font-weight:800}button:disabled{filter:grayscale(1);opacity:.5}#toggle{min-width:180px;transition:background .12s}#toggle.running{background:linear-gradient(135deg,#c0244b,#7a1d8f)}#toggle.attract{animation:toggle-pulse 1.1s ease-in-out infinite}@keyframes toggle-pulse{0%,100%{box-shadow:0 0 0 0 #50d8ff77;transform:scale(1)}50%{box-shadow:0 0 20px 5px #50d8ffcc;transform:scale(1.03)}}@media(prefers-reduced-motion:reduce){#toggle.attract{animation:none;box-shadow:0 0 16px 3px #50d8ffaa}}.status{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.status div{display:grid;gap:5px}.status span,.status strong{overflow-wrap:anywhere}.status span{color:var(--muted);font-size:.8rem}.layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:12px}.signal canvas{width:100%;height:220px;background:#030817;border-radius:10px}.signal p{color:var(--muted)}.block-head{display:flex;justify-content:space-between}.block-head strong{color:var(--cyan);font-size:1.4rem}.legend{display:flex;flex-wrap:wrap;gap:8px;font-size:.75rem;color:var(--muted);margin-bottom:12px}.legend span{display:flex;align-items:center;gap:4px}.legend i,#grid i{display:block;border-radius:3px;background:#26334d}.legend i{width:10px;height:10px}.complete{background:#3fe0a0!important}.error{background:#ff5267!important}.receiving{background:#56d8ff!important;box-shadow:0 0 8px #56d8ff}#grid{display:grid;grid-template-columns:repeat(32,1fr);gap:2px}#grid i{aspect-ratio:1;border-radius:2px}.blocks p{color:var(--muted)}.log-card{margin-top:12px}summary{cursor:pointer;font-weight:700}pre{white-space:pre-wrap;color:#b9d9ff;max-height:180px;overflow:auto}#log .err{color:#ff6680}@media(max-width:720px){body{background-position:56% top;background-size:auto 62vh;background-attachment:scroll}body:before{content:"";position:fixed;inset:0;background:linear-gradient(#06102775 0,#061027c8 42vh,#050a18 68vh);pointer-events:none;z-index:-1}main{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}header{min-height:42vh;align-items:flex-end}header p:not(.eyebrow){display:none}.eyebrow{font-size:.65rem}h1{font-size:1.45rem}.controls{display:grid;grid-template-columns:1fr 1fr}.controls label{grid-column:1/-1}.status{grid-template-columns:1fr 1fr}.layout{grid-template-columns:1fr}.blocks{order:-1}.signal canvas{height:150px}button,select{font-size:16px}#grid{grid-template-columns:repeat(24,1fr);gap:1px}}
.level-card{margin-bottom:12px}.level-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:1.25rem}.level-head h2{margin:0}.level-head strong{color:var(--cyan);font-size:.9rem;white-space:nowrap}.meter-row{display:grid;grid-template-columns:1.2rem minmax(0,1fr) 10.5rem;align-items:center;gap:10px;margin-top:10px;font-weight:800}.meter-row>span{color:var(--muted)}.meter-row output{text-align:right;white-space:nowrap;font:700 .85rem ui-monospace,monospace;font-variant-numeric:tabular-nums}.meter{position:relative;height:16px;overflow:hidden;border:1px solid #57709c;border-radius:5px;background:repeating-linear-gradient(90deg,#0a1429 0,#0a1429 calc(10% - 2px),#33435e calc(10% - 2px),#33435e 10%)}.meter i{display:block;width:0;height:100%;border-radius:4px;background:linear-gradient(90deg,#38d89d 0 76%,#f8d548 88%,#ff506e 100%);box-shadow:0 0 12px currentColor;transition:width 60ms linear}.meter i.clip{filter:brightness(1.45);box-shadow:0 0 14px #ff274f}.meter .hold{position:absolute;z-index:3;top:-1px;bottom:-1px;left:0;width:2px;background:#fff;box-shadow:0 0 6px #fff;pointer-events:none;transition:left 90ms linear}.meter .target{position:absolute;z-index:2;inset:-2px auto -2px 80%;width:15%;border-left:1px solid #fff9;border-right:1px solid #fff9;background:#fff1;pointer-events:none}.meter-scale{display:flex;justify-content:space-between;margin:5px 10.6rem 0 2.4rem;color:var(--muted);font:600 .64rem ui-monospace,monospace}.gain-control{display:grid;grid-template-columns:auto minmax(100px,1fr) 5.5rem;align-items:center;gap:10px;margin-top:14px;color:var(--muted);font-size:.78rem}.gain-control input{width:100%;accent-color:var(--cyan)}.gain-control output{text-align:right;color:var(--cyan);font:800 .78rem ui-monospace,monospace}.level-card p{margin:10px 0 0;color:var(--muted);font-size:.78rem}@media(max-width:720px){.meter-row{grid-template-columns:1rem minmax(0,1fr) 9.2rem;gap:7px}.meter-row output{font-size:.76rem}.meter-scale{margin-left:1.7rem;margin-right:9.3rem}.meter-scale span:nth-child(even){display:none}.gain-control{grid-template-columns:auto minmax(80px,1fr) 5rem}}
.telemetry{margin-bottom:12px}.telemetry-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.telemetry-head h2{margin:0}.telemetry-head small{color:var(--muted)}.telemetry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#87a9d733;border:1px solid #87a9d744;border-radius:12px;overflow:hidden}.telemetry-grid div{display:grid;gap:5px;min-height:62px;padding:10px;background:#07112799}.telemetry-grid span{color:var(--muted);font-size:.7rem}.telemetry-grid strong{overflow-wrap:anywhere;font:700 .82rem ui-monospace,SFMono-Regular,Menlo,monospace}.telemetry-grid #snr{color:#3fe0a0;font-size:1rem}@media(max-width:900px){.telemetry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.telemetry-head{display:block}.telemetry-head small{display:block;margin-top:4px}.telemetry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.telemetry-grid div{min-height:58px;padding:8px}.telemetry-grid strong{font-size:.74rem}}
.monitor-layout{display:grid;grid-template-columns:minmax(310px,.9fr) minmax(360px,1.1fr);gap:12px;margin-bottom:12px;align-items:stretch}.monitor-stack{display:grid;gap:12px;align-content:start}.monitor-layout .level-card{margin:0}.monitor-layout .signal{min-width:0}.monitor-layout .signal canvas{height:146px}.monitor-layout .signal p{margin:9px 0 0;font-size:.78rem}.blocks{margin-bottom:12px}.blocks .block-head{align-items:baseline;gap:8px}.blocks .block-head h2{font-size:.92rem}.blocks .block-head small{display:block;color:var(--muted);font-size:.65rem;font-weight:500;margin-top:3px}.blocks .legend{gap:5px 7px;font-size:.64rem;margin-bottom:10px}.blocks #grid{grid-template-columns:repeat(32,1fr);grid-auto-rows:auto;gap:2px;justify-content:stretch}.blocks #grid i{width:auto;height:auto;aspect-ratio:1;border:0;border-radius:2px}.blocks p{font-size:.7rem;margin:10px 0 0}.save-bios{display:block;margin-top:10px;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,#087bd7,#3fe0a0);color:#03121f;font-weight:800;text-align:center;text-decoration:none;font-size:.85rem;box-shadow:0 0 16px #3fe0a066}.save-bios:hover{filter:brightness(1.08)}.save-bios[hidden]{display:none}@media(max-width:800px){.monitor-layout{grid-template-columns:1fr}.monitor-layout .signal canvas{height:150px}.blocks #grid{grid-template-columns:repeat(32,1fr)}}
.blocks #grid i.cursor{position:relative;z-index:2;outline:1px solid #fff;outline-offset:0;box-shadow:0 0 7px #fff}
.blocks #grid i.receiving{background:linear-gradient(90deg,#087fac 0 var(--fill,0%),#26334d var(--fill,0%) 100%)!important;box-shadow:0 0 8px #56d8ff}
.blocks #grid i.fec-recovering{background:linear-gradient(90deg,#ffad32 0 var(--fill,0%),#26334d var(--fill,0%) 100%)!important;animation:fec-blink .8s steps(2,end) infinite;outline:2px solid #ffd166;box-shadow:0 0 12px #ffad32}.blocks #grid i.fec-recovering.fec-heavy{background:linear-gradient(90deg,#ff263f 0 var(--fill,0%),#26334d var(--fill,0%) 100%)!important;outline-color:#ff5267;box-shadow:0 0 12px #ff5267;animation-duration:.24s}@keyframes fec-blink{50%{filter:brightness(.35)}}@media(prefers-reduced-motion:reduce){.blocks #grid i.fec-recovering{animation:none;background:linear-gradient(90deg,#b97816 0 var(--fill,0%),#26334d var(--fill,0%) 100%)!important}}
.legend i.fec-recovering{background:#ffad32!important;box-shadow:0 0 6px #ffad32}
.block-header{font:700 .8rem ui-monospace,SFMono-Regular,Menlo,monospace;color:#b9d9ff;overflow-wrap:anywhere}.block-header.good{color:#3fe0a0}.block-header.bad{color:#ff6680}
header>div{width:100%;min-width:0}.site-logo{display:block;width:100%;max-width:680px;height:auto;filter:drop-shadow(0 8px 18px #000a)}
.transfer-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.transfer-stats[hidden]{display:none}.transfer-stats>strong{grid-column:1/-1;color:#3fe0a0;font-size:1rem}.transfer-stats span{display:grid;gap:3px;min-height:58px;padding:9px;border:1px solid #3fe0a044;border-radius:9px;background:#05251dcc}.transfer-stats small{color:var(--muted);font-size:.67rem}.transfer-stats b{color:#f5f8ff;font:800 .88rem ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.complete-dialog{width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:20px;border:1px solid #50d8ff99;border-radius:20px;background:#071127f5;color:var(--text);box-shadow:0 24px 80px #000}.complete-dialog::backdrop{background:#020611cc;backdrop-filter:blur(6px)}.complete-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.complete-dialog-head small{color:#3fe0a0;font-weight:900;letter-spacing:.1em}.complete-dialog-head h2{margin:4px 0 0;font-size:1.65rem}.complete-dialog-head button{min-width:44px;min-height:44px;padding:0;background:#172847;font-size:1.4rem}.complete-dialog>p{color:var(--muted)}@media(max-width:560px){.transfer-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.transfer-stats span{min-height:54px;padding:8px}}
.analyzer-toggle{display:flex;align-items:center;gap:6px;margin-left:auto;color:#b7c4df;font-size:.8rem}.analyzer-toggle input{width:18px;height:18px;accent-color:#50d8ff}.telemetry-head{flex-wrap:wrap}.telemetry-head small{width:100%}.telemetry.analyzer-off .telemetry-grid{opacity:.35}
.blocks #grid{grid-template-columns:repeat(10,1fr) .5fr repeat(10,1fr) .5fr repeat(10,1fr)}
.save-bios[aria-disabled="true"]{pointer-events:none;cursor:not-allowed;background:#26334d;color:#8290a8;box-shadow:none;filter:grayscale(1);opacity:.65}
.intro h2{margin-top:0}.intro p:last-child{margin-bottom:0}.intro a,footer a{color:var(--cyan)}footer{max-width:1180px;margin:0 auto;padding:0 18px calc(24px + env(safe-area-inset-bottom));color:var(--muted);font-size:.82rem;text-align:center}
.release-download{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px;border-color:#50d8ff88;background:linear-gradient(120deg,#08233fe8,#1d0d35e8)}.release-download h2{margin:.1rem 0 .35rem;font-size:1.35rem}.release-download p{margin:.15rem 0;color:var(--muted)}.release-download .eyebrow{color:#3fe0a0;font-size:.72rem}.release-download>a{flex:none;max-width:320px;padding:14px 18px;border-radius:13px;background:linear-gradient(135deg,#50d8ff,#3fe0a0);color:#03121f;font-weight:900;text-align:center;text-decoration:none;box-shadow:0 0 20px #50d8ff55}.release-download>a:hover{filter:brightness(1.08)}@media(max-width:720px){.release-download{display:grid}.release-download>a{max-width:none;width:100%}}

/* Burst Edition: red/black racing theme. */
:root{--bg:#090002;--card:#21060be6;--line:#8f2639;--cyan:#ffb020;--pink:#ff284f;--text:#fff7f3;--muted:#e2bec2}body{background:linear-gradient(90deg,#090002a8 0%,#21030794 43%,#21030752 70%,#090002ad 100%),url("background.png") center 18%/cover fixed no-repeat,var(--bg)}.card{border-color:#b63248;background:#21060bdc;box-shadow:0 14px 40px #000b,0 0 24px #ff183018}button{background:linear-gradient(135deg,#8f0018,#ff4a18)}button,select{border-color:#8f2639}.signal canvas{background:#0d0103}.telemetry-grid,.decode-grid{border-color:#a72a3f55;background:#a72a3f33}.telemetry-grid div,.decode-grid div{background:#180306cc}.complete-dialog{border-color:#ff5a3a99;background:#180306f5}header h1{width:100%;min-width:0}.site-logo{max-width:100%;filter:drop-shadow(0 10px 22px #000c) drop-shadow(0 0 8px #ff233355)}@media(max-width:720px){body:before{background:linear-gradient(#16010438 0,#16010482 42vh,#090002b8 68vh)}#toggle{min-width:0}.controls button{min-width:0;padding-inline:10px}}
.decode-layout{display:grid;grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);gap:12px;margin-bottom:12px}.decode-layout.single{grid-template-columns:1fr}.decode-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.decode-head h2{margin:0}.decode-head strong{color:var(--cyan);font:800 .8rem ui-monospace,monospace}.decode-head .decode-meta{display:flex;align-items:baseline;gap:10px}#fsk-status{color:var(--muted)}.decode-card>pre{min-height:52px;margin:12px 0 0;padding:12px;overflow:hidden;white-space:pre;border:1px solid #7fb7de44;border-radius:10px;background:#02071599;color:#6ee9ff;font:700 .82rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;word-break:break-all}.decode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:12px;overflow:hidden;border:1px solid #87a9d744;border-radius:10px;background:#87a9d733}.decode-grid div{display:grid;gap:4px;min-height:57px;padding:8px;background:#07112799}.decode-grid span{color:var(--muted);font-size:.66rem}.decode-grid strong{overflow-wrap:anywhere;font:700 .74rem ui-monospace,SFMono-Regular,Menlo,monospace}.decode-grid .good{color:#3fe0a0}.decode-grid .bad{color:#ff6680}@media(max-width:900px){.decode-layout{grid-template-columns:1fr}.decode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.decode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.decode-card>pre{min-height:44px;font-size:.66rem}}

@media(max-width:720px){main{overflow:hidden}header,header>div,header h1,.site-logo{max-width:100%;min-width:0}.controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.controls button{width:100%;font-size:.9rem}}

/* Angular racing HUD edges. */
.card,.complete-dialog{border-radius:0;clip-path:polygon(0 14px,14px 0,calc(100% - 26px) 0,100% 26px,100% calc(100% - 14px),calc(100% - 14px) 100%,26px 100%,0 calc(100% - 26px))}.card{border-width:2px;box-shadow:inset 0 0 0 1px #ff6a5530,8px 10px 0 #090002aa,0 0 24px #ff183022}button,select,.save-bios,.decode-card>pre,.telemetry-grid,.decode-grid,.meter{border-radius:0;clip-path:polygon(0 7px,7px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 7px),calc(100% - 7px) 100%,12px 100%,0 calc(100% - 12px))}button{border-width:2px;text-transform:uppercase;letter-spacing:.035em;box-shadow:inset 0 -3px 0 #4b000c,4px 4px 0 #080001}.blocks #grid i,.legend i{border-radius:0;clip-path:polygon(0 3px,3px 0,100% 0,100% calc(100% - 3px),calc(100% - 3px) 100%,0 100%)}.block-head strong,.level-head strong,.decode-head strong{font-style:italic;text-shadow:2px 2px 0 #5c0010}.card h2{letter-spacing:.045em;text-transform:uppercase}.card h2:before{content:"// ";color:#ff4a18}.intro h2:before{content:"// "}@media(max-width:720px){.card,.complete-dialog{clip-path:polygon(0 9px,9px 0,calc(100% - 16px) 0,100% 16px,100% calc(100% - 9px),calc(100% - 9px) 100%,16px 100%,0 calc(100% - 16px));box-shadow:inset 0 0 0 1px #ff6a5530,4px 5px 0 #090002aa}}

header{position:relative;max-width:none;min-height:clamp(300px,42vw,500px)}header>div{height:100%}header h1{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:clamp(190px,24vw,360px);margin:0;z-index:900;pointer-events:none}.site-logo{width:100%;height:auto}header>div>p{position:absolute;left:0;bottom:18px;max-width:42rem;margin:0;z-index:3}@media(max-width:720px){header{min-height:46vh}header h1{right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));width:clamp(150px,46vw,220px)}}

/* Racing tachometer-style input meters. */
.level-card{background:linear-gradient(155deg,#29060be8,#080103f2)!important}.level-head{padding-bottom:10px;border-bottom:2px solid #7b1324}.level-head h2{font-style:italic;font-size:1.15rem;letter-spacing:.11em}.level-head h2:after{content:"  // TACHO";color:#ff4a18;font-size:.62em}.meter-row{grid-template-columns:2rem minmax(0,1fr) 10.5rem}.meter-row>span{display:grid;place-items:center;width:2rem;height:2rem;border:2px solid #ff4a18;background:#130104;color:#fff;font:900 italic 1rem ui-monospace,monospace;clip-path:polygon(0 6px,6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%)}.meter{height:25px;border:2px solid #8e1a2c;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(5% - 2px),#ffddd955 calc(5% - 2px),#ffddd955 5%),linear-gradient(180deg,#110205,#030001);box-shadow:inset 0 0 12px #000,0 0 10px #ff1d2d22;transform:skewX(-8deg)}.meter:after{content:"";position:absolute;inset:0 0 0 78%;z-index:1;background:repeating-linear-gradient(90deg,#ff2b1c88 0,#ff2b1c88 calc(20% - 2px),#fff4 calc(20% - 2px),#fff4 20%);pointer-events:none}.meter i{position:relative;z-index:2;border-radius:0;background:linear-gradient(90deg,#ffd02b 0 58%,#ff7a18 76%,#ff261b 90%,#fff 100%);box-shadow:0 0 12px #ff3b20;transition:width 45ms linear}.meter .hold{z-index:4;width:3px;background:#fff7df;box-shadow:0 0 4px #fff,0 0 12px #ff3b20;transform:skewX(8deg)}.meter .target{z-index:3;border-color:#ffd02b;background:#ffd02b18}.meter-row output{color:#fff3e8;font-style:italic;text-shadow:2px 2px 0 #740012}.meter-scale{margin-left:3.15rem;color:#ffb8ae;font-style:italic}.gain-control input{accent-color:#ff3b20}@media(max-width:720px){.meter-row{grid-template-columns:1.8rem minmax(0,1fr) 9.2rem}.meter-row>span{width:1.8rem;height:1.8rem}.meter-scale{margin-left:2.5rem}}

/* Received blocks as a snake-shaped race course with a finish flag. */
.blocks #grid{position:relative;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px 5px;padding:13px 28px 13px 13px;border:3px solid #3a3a3d;background:repeating-linear-gradient(115deg,#17171a 0,#17171a 14px,#202024 14px,#202024 28px);box-shadow:inset 0 0 0 2px #08080a,inset 0 0 22px #000,5px 5px 0 #090002;clip-path:polygon(0 9px,9px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 9px),calc(100% - 9px) 100%,18px 100%,0 calc(100% - 18px))}.blocks #grid i{position:relative;min-height:22px;aspect-ratio:2.5;border:2px solid #5a5a60;background:#25262b!important;box-shadow:inset 0 0 0 1px #0a0a0c}.blocks #grid i.receiving{background:linear-gradient(90deg,#ff7b16 0 var(--fill,0%),#25262b var(--fill,0%) 100%)!important;border-color:#ff9b2f;box-shadow:0 0 10px #ff4a18}.blocks #grid i.complete{border-color:#70ffac;box-shadow:0 0 9px #3fe0a088}.blocks #grid i.error{border-color:#ff5267;box-shadow:0 0 11px #ff263f}.blocks #grid i:last-child:before{content:"";position:absolute;right:-10px;bottom:40%;width:3px;height:32px;background:#e7e7e7;box-shadow:1px 0 #111}.blocks #grid i:last-child:after{content:"";position:absolute;z-index:5;right:-27px;bottom:calc(40% + 15px);width:20px;height:16px;border:1px solid #fff;background:conic-gradient(#fff 25%,#050505 0 50%,#fff 0 75%,#050505 0) 0 0/10px 10px;filter:drop-shadow(0 0 4px #fff8);transform:skewY(-8deg)}@media(max-width:560px){.blocks #grid{gap:5px 3px;padding:10px 22px 10px 10px}.blocks #grid i{min-height:16px}.blocks #grid i:last-child:after{right:-22px;width:17px;height:14px;background-size:8px 8px}}
.lap-times{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px;padding:8px 10px;border-left:4px solid #ff4a18;background:#080103cc;font:800 italic .72rem ui-monospace,monospace}.lap-times span{color:#ff9b2f;letter-spacing:.09em}.lap-times strong{padding:5px 8px;border:1px solid #742033;background:#28050b;color:#fff;text-shadow:1px 1px #000;clip-path:polygon(0 4px,4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%)}

/* The final block is the finish line itself, not a detached flag icon. */
.blocks #grid i:last-child{background:conic-gradient(#f5f5f5 25%,#080808 0 50%,#f5f5f5 0 75%,#080808 0) 0 0/12px 12px!important;border-color:#fff;box-shadow:inset 0 0 0 1px #111,0 0 10px #fff8}
.blocks #grid i:last-child.receiving{background:linear-gradient(90deg,#ff4a18cc 0 var(--fill,0%),transparent var(--fill,0%) 100%),conic-gradient(#f5f5f5 25%,#080808 0 50%,#f5f5f5 0 75%,#080808 0) 0 0/12px 12px!important;border-color:#ff9b2f}
.blocks #grid i:last-child.complete{border-color:#70ffac;box-shadow:inset 0 0 0 1px #111,0 0 14px #3fe0a0}
.blocks #grid i:last-child.error{border-color:#ff5267;box-shadow:inset 0 0 0 1px #111,0 0 14px #ff263f}
.blocks #grid i:last-child:before{content:none}
.blocks #grid i:last-child:after{content:"FINISH";position:absolute;inset:0;display:grid;place-items:center;width:auto;height:auto;border:0;background:#05050599;color:#fff;font:900 italic clamp(.45rem,1.2vw,.68rem) ui-monospace,monospace;letter-spacing:.06em;text-shadow:1px 1px #000;filter:none;transform:none;opacity:.88}
.blocks #grid i:last-child.complete:after{color:#70ffac;background:#03150b99}
.blocks #grid i:last-child.error:after{color:#ff5267;background:#210207aa}
@media(max-width:560px){.blocks #grid{padding-right:10px}.blocks #grid i:last-child{background-size:8px 8px!important}.blocks #grid i:last-child:after{right:0;width:auto;height:auto;font-size:.42rem;letter-spacing:0}}

/* In-block telemetry: progress strip plus an animated race car/smoke sprite. */
.blocks #grid i.receiving:before{content:"";position:absolute;z-index:6;left:2px;right:2px;bottom:2px;height:4px;background:linear-gradient(90deg,#fff 0 var(--fill,0%),#5b1019 var(--fill,0%) 100%);box-shadow:0 0 5px #ff4a18;pointer-events:none}
.blocks #grid .race-car{display:none;position:absolute;z-index:8;top:50%;left:clamp(9px,var(--fill,0%),calc(100% - 9px));width:20px;height:37px;background:url("race-car-sprites.png?v=1") 0 50%/800% 100% no-repeat;filter:drop-shadow(0 2px 2px #000) drop-shadow(0 0 3px #ff4a18);transform:translate(-50%,-50%) rotate(90deg);pointer-events:none}
.blocks #grid i.receiving .race-car{display:block;animation:race-car-drive .52s steps(6,end) infinite}
.blocks #grid i.crash .race-car{display:block;left:50%;background-position:100% 50%;animation:none;filter:drop-shadow(0 0 5px #ff1c30);transform:translate(-50%,-50%) rotate(78deg) scale(1.15)}
@keyframes race-car-drive{from{background-position:0 50%}to{background-position:71.4286% 50%}}
@media(prefers-reduced-motion:reduce){.blocks #grid i.receiving .race-car{animation:none;background-position:42.8571% 50%}}
@media(max-width:560px){.blocks #grid i.receiving:before{height:3px}.blocks #grid .race-car{width:15px;height:28px}}

/* Oval sector course: every logical 32 KiB block is a track sector. */
.blocks #grid{display:block;min-height:0;aspect-ratio:2.25/1;padding:0;border:3px solid #3a3a3d;border-radius:0;overflow:visible}
.blocks #grid:before{content:"";position:absolute;z-index:0;inset:12% 8%;border:clamp(18px,3.4vw,42px) solid #292a2e;border-radius:50%;background:#07080a;box-shadow:inset 0 0 0 3px #d7d7d744,inset 0 0 22px #000,0 0 0 3px #d7d7d744,0 0 22px #000}
.blocks #grid:after{content:"BURST CIRCUIT";position:absolute;z-index:0;inset:31% 25%;display:grid;place-items:center;border:2px solid #57101c;border-radius:50%;background:radial-gradient(ellipse,#23050b,#080103 70%);color:#ff4a18;font:900 italic clamp(.55rem,1.6vw,1rem) ui-monospace,monospace;letter-spacing:.14em;text-shadow:2px 2px #000}
.blocks #grid>i{position:absolute;z-index:2;left:var(--course-x);top:var(--course-y);width:clamp(45px,12.5%,120px);min-height:0;height:clamp(20px,11%,36px);aspect-ratio:auto;margin:0;transform:translate(-50%,-50%) rotate(var(--course-angle));transform-origin:center;clip-path:polygon(5px 0,100% 0,calc(100% - 5px) 100%,0 100%)}
.blocks #grid>i:last-child:after{transform:none}
@media(max-width:560px){.blocks #grid{aspect-ratio:1.65/1}.blocks #grid:before{inset:13% 7%;border-width:18px}.blocks #grid:after{inset:34% 27%;font-size:.43rem;letter-spacing:.03em}.blocks #grid>i{width:14.5%;height:13%;min-width:38px}.blocks #grid .race-car{width:13px;height:24px}}

/* Track-integrated sectors: no rectangular boards floating above the road. */
.blocks #grid>i{width:10.5%;height:10px;min-width:34px;min-height:0;border:0;border-bottom:3px solid #4a4c52;background:transparent!important;box-shadow:none;clip-path:none}
.blocks #grid>i.receiving{border-color:#50d8ff;background:transparent!important;box-shadow:0 3px 7px #50d8ff88}
.blocks #grid>i.fec-recovering{border-color:#ff9b2f;box-shadow:0 3px 9px #ff4a18}
.blocks #grid>i.complete{border-color:#3fe0a0;background:transparent!important;box-shadow:0 3px 8px #3fe0a088}
.blocks #grid>i.error{border-color:#ff5267;background:transparent!important;box-shadow:0 3px 9px #ff263f}
.blocks #grid>i.receiving:before{left:0;right:0;bottom:-3px;height:3px;background:linear-gradient(90deg,#fff 0 var(--fill,0%),transparent var(--fill,0%) 100%);box-shadow:none}
.blocks #grid>i .race-car{display:none!important}
.blocks #grid>i:last-of-type{width:3.2%;height:38px;border:1px solid #fff;background:conic-gradient(#fff 25%,#050505 0 50%,#fff 0 75%,#050505 0) 0 0/8px 8px!important;box-shadow:0 0 9px #fff8}
.blocks #grid>i:last-of-type:before{content:none}
.blocks #grid>i:last-of-type:after{content:"";display:none}
#course-car{display:none;position:absolute;z-index:12;left:var(--car-x,7%);top:var(--car-y,50%);width:clamp(28px,4.2vw,52px);height:clamp(52px,7.7vw,96px);background:url("race-car-sprites.png?v=1") 0 50%/800% 100% no-repeat;filter:drop-shadow(0 3px 2px #000) drop-shadow(0 0 6px #ff4a18);transform:translate(-50%,-50%) rotate(calc(var(--car-angle,90deg) + 90deg));transform-origin:center;pointer-events:none}
#course-car.running{display:block;animation:course-car-drive .52s steps(6,end) infinite}
#course-car.crash{display:block;background-position:100% 50%;animation:none;filter:drop-shadow(0 0 10px #ff1c30);transform:translate(-50%,-50%) rotate(calc(var(--car-angle,90deg) + 78deg)) scale(1.18)}
@keyframes course-car-drive{from{background-position:0 50%}to{background-position:71.4286% 50%}}
@media(prefers-reduced-motion:reduce){#course-car.running{animation:none;background-position:42.8571% 50%}}
@media(max-width:560px){.blocks #grid>i{width:11.5%;height:7px;min-width:26px}.blocks #grid>i:last-of-type{width:4%;height:28px}#course-car{width:26px;height:48px}}

/* Burst circuit: one SVG path drives the road, sectors and car position. */
.blocks #grid{aspect-ratio:1000/420;overflow:hidden;background:repeating-linear-gradient(115deg,#151518 0,#151518 14px,#1d1d21 14px,#1d1d21 28px)}
.blocks #grid:before,.blocks #grid:after{content:none}
.course-map{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 4px #000)}
.course-map path{fill:none;stroke-linecap:round;stroke-linejoin:round}
#course-path{stroke:#2d2e33;stroke-width:50}
#course-center{stroke:#f7f7f7;stroke-width:2;stroke-dasharray:13 11;opacity:.82;filter:drop-shadow(0 0 2px #000)}
#course-progress{stroke:#d7183c;stroke-width:32;opacity:.72;filter:drop-shadow(0 0 5px #ff334c)}
.course-sector{stroke:#4a4c52;stroke-width:38;transition:stroke .16s,filter .16s}
.course-sector.receiving{stroke:#4a4c52;filter:none}
.course-sector.fec-recovering{stroke:#ff9b2f;filter:drop-shadow(0 0 7px #ff4a18)}
.course-sector.complete{stroke:#4a4c52;filter:none}
.course-sector.error{stroke:#ed294a;filter:drop-shadow(0 0 8px #ff263f)}
.blocks #grid>i{opacity:0;width:3.2%;height:8px;min-width:18px;pointer-events:none}
.blocks #grid>i:last-of-type{opacity:1;width:2.5%;height:34px}
#course-car{width:clamp(22px,2.7vw,38px);height:auto;aspect-ratio:259/757;background-image:url("race-car-sprites.png?v=2");background-size:800% 100%;background-position:0 0;transform:translate(-50%,-50%) rotate(calc(var(--car-angle,0deg) + 90deg));transition:left .12s linear,top .12s linear}
#course-car.idle{display:block;background-position:0 0;animation:none;filter:drop-shadow(0 3px 2px #000) drop-shadow(0 0 4px #ff4a18)}
#course-car.running{animation:course-car-frames .6s step-end infinite}
#course-car.crash{background-position:100% 0;transform:translate(-50%,-50%) rotate(calc(var(--car-angle,0deg) + 78deg)) scale(1.18)}
@keyframes course-car-frames{0%,16.65%{background-position:0 0}16.66%,33.31%{background-position:14.2857% 0}33.32%,49.97%{background-position:28.5714% 0}49.98%,66.63%{background-position:42.8571% 0}66.64%,83.29%{background-position:57.1429% 0}83.3%,100%{background-position:71.4286% 0}}
@media(prefers-reduced-motion:reduce){#course-car.running{animation:none;background-position:42.8571% 0}}
@media(max-width:560px){.blocks #grid{aspect-ratio:1000/470}.blocks #grid>i{width:3.8%;min-width:12px;height:6px}.blocks #grid>i:last-of-type{width:3%;height:25px}#course-car{width:22px;height:auto}}

/* Each 32 KiB block is one lap. The line becomes checkered only on the final lap. */
.blocks #grid>i:last-of-type{opacity:0}
.blocks #grid>i:last-of-type:after{content:none}
#finish-line{position:absolute;z-index:10;left:var(--finish-x);top:var(--finish-y);width:5px;height:48px;background:#fff;box-shadow:0 0 8px #fff;transform:translate(-50%,-50%) rotate(var(--finish-angle));pointer-events:none}
.blocks #grid.final-lap #finish-line{width:28px;background:conic-gradient(#fff 25%,#050505 0 50%,#fff 0 75%,#050505 0) 0 0/10px 10px;box-shadow:0 0 12px #fff}
#course-car.crash{display:block;animation:crash-spin .85s linear infinite,crash-smoke .48s step-end infinite;transform:translate(-50%,-50%) rotate(var(--crash-angle,0deg));transform-origin:center}
#course-car.crc-spin{display:block;animation:crash-spin .85s linear infinite,crash-smoke .48s step-end infinite;transform-origin:center}
@keyframes crash-spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes crash-smoke{0%,32%{background-position:71.4286% 0}33%,65%{background-position:85.7143% 0}66%,100%{background-position:100% 0}}
#lap-cutin{position:absolute;z-index:20;left:50%;top:50%;display:grid;min-width:44%;padding:10px 28px;border-block:3px solid #fff;background:linear-gradient(90deg,transparent,#160207ee 12%,#4b0714f2 50%,#160207ee 88%,transparent);color:#fff;text-align:center;opacity:0;transform:translate(-50%,-50%) skewX(-10deg) scaleX(.2);pointer-events:none}
#lap-cutin small{color:#ff9b2f;font:900 italic clamp(.55rem,1.4vw,.9rem) ui-monospace,monospace;letter-spacing:.18em}
#lap-cutin strong{font:1000 italic clamp(1.35rem,4.8vw,3.2rem) ui-monospace,monospace;line-height:1;text-shadow:3px 3px #680010,0 0 12px #ff2b36}
#lap-cutin.show{animation:lap-cutin 1.8s ease both}
@keyframes lap-cutin{0%{opacity:0;transform:translate(-50%,-50%) skewX(-10deg) scaleX(.2)}12%,72%{opacity:1;transform:translate(-50%,-50%) skewX(-10deg) scaleX(1)}100%{opacity:0;transform:translate(-50%,-50%) skewX(-10deg) scaleX(1.12)}}
.start-cutin{position:fixed;z-index:950;inset:0;display:grid;place-items:center;color:#fff;font:1000 italic clamp(7rem,34vw,24rem)/1 ui-monospace,monospace;text-shadow:8px 8px 0 #62000c,0 0 22px #ff2638,0 0 70px #ff1d32;opacity:0;pointer-events:none}.start-cutin.show{animation:start-count .48s cubic-bezier(.18,.8,.2,1) both}.start-cutin.go{color:#ffd52a;font-size:clamp(5rem,25vw,18rem);text-shadow:8px 8px 0 #8d1600,0 0 24px #ff5a18,0 0 80px #ff2638;animation-duration:.9s}@keyframes start-count{0%{opacity:0;transform:scale(2.4) skewX(-12deg)}18%,68%{opacity:1;transform:scale(1) skewX(-12deg)}100%{opacity:0;transform:scale(.82) skewX(-12deg)}}
.version-mark{position:absolute;z-index:9;right:22px;top:48px;color:#fff;font:1000 italic clamp(3.2rem,8vw,7rem)/.82 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.12em;text-shadow:5px 5px 0 #8f0018,0 0 16px #ff4a18,0 0 34px #ffb020;transform:skewX(-9deg);pointer-events:none}.version-mark::before{content:"VERSION";position:absolute;right:4px;top:-.95em;color:#ffb020;font:900 .42rem/.9 ui-monospace,monospace;letter-spacing:.22em;text-shadow:2px 2px #5c0010}.locale-picker{position:absolute;right:18px;top:14px;z-index:10;display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid #ff4a58;background:#130105dd;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);font:800 .72rem ui-monospace,monospace;letter-spacing:.08em}.locale-picker a{color:#ff9aa5;text-decoration:none}.locale-picker a:hover,.locale-picker a.active{color:#fff;text-decoration:underline;text-underline-offset:3px}@media(max-width:620px){header{padding-top:54px}.version-mark{right:12px;top:64px;font-size:clamp(2.7rem,13vw,4.8rem)}.locale-picker{right:8px;top:8px;gap:6px}}
.stereo-warning{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px;padding:13px 18px;border:2px solid #ff3048;background:#3b020be8;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);color:#fff}.stereo-warning strong{color:#ffcf37}.stereo-warning a{flex:none;color:#67e9ff;font-weight:900}@media(max-width:700px){.stereo-warning{align-items:flex-start;flex-direction:column}}
.goal-overlay{position:fixed;z-index:1000;inset:0;overflow:hidden;display:grid;place-items:center;background:#030001f2;pointer-events:none}.goal-overlay[hidden]{display:none}.goal-cutin{position:relative;z-index:2;display:grid;width:100%;height:100%;place-items:center;opacity:0;transform:scale(.82)}.goal-overlay.show .goal-cutin{animation:goal-cutin-image 5s ease both}.goal-cutin img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 26px #ff243c88)}.verified-cutin{position:absolute;z-index:5;left:50%;top:18%;width:100%;padding:16px 12px;color:#fff;text-align:center;font:1000 italic clamp(1.35rem,5vw,4rem)/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-shadow:4px 4px 0 #8f0018,0 0 18px #ffb020;opacity:0;transform:translate(-50%,-50%) scale(.5) skewX(-8deg)}.goal-overlay.show .verified-cutin{animation:verified-cutin-in 5s cubic-bezier(.16,.9,.28,1) both}.confetti{position:absolute;z-index:3;inset:0}.confetti i{position:absolute;left:var(--x);top:-8vh;width:10px;height:22px;background:var(--color);box-shadow:0 0 5px #fff6;animation:confetti-fall var(--fall) linear var(--delay) infinite}@keyframes goal-cutin-image{0%{opacity:0;transform:scale(.82)}7%,88%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.06)}}@keyframes verified-cutin-in{0%,4%{opacity:0;transform:translate(-50%,-50%) scale(.5) skewX(-8deg)}10%,82%{opacity:1;transform:translate(-50%,-50%) scale(1) skewX(-8deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.08) skewX(-8deg)}}@keyframes confetti-fall{to{transform:translate3d(var(--drift),115vh,0) rotate(var(--spin))}}
.result-laps{margin:16px 0}.result-laps h3{margin:0 0 8px;color:#ff9b2f;font:1000 italic 1rem ui-monospace,monospace;letter-spacing:.13em}.result-laps ol{display:grid;gap:5px;margin:0;padding:0;list-style:none}.result-laps li{display:grid;grid-template-columns:7rem 1fr 1fr;align-items:center;padding:8px 10px;border-left:4px solid #ff4a18;background:#29050c;color:#fff;opacity:0;animation:result-drop .42s cubic-bezier(.2,.9,.25,1.25) calc(var(--result-index)*.09s) forwards}.result-laps li b{color:#ff9b2f}.result-laps li strong{text-align:center;font:1000 italic 1rem ui-monospace,monospace}.result-laps li small{text-align:right;color:var(--muted)}.complete-dialog .save-bios{display:block;margin-top:18px;text-align:center}@keyframes result-drop{from{opacity:0;transform:translateY(-35px)}to{opacity:1;transform:translateY(0)}}@media(max-width:560px){.result-laps li{grid-template-columns:5.5rem 1fr}.result-laps li small{grid-column:1/-1;text-align:right}.confetti i{width:7px;height:16px}}
@media(prefers-reduced-motion:reduce){.goal-overlay.show .goal-cutin,.result-laps li{animation-duration:.01ms}.confetti i{animation:none}}
.complete-dialog{position:relative;isolation:isolate;overflow:auto;background:#18030688;backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2)}.complete-dialog::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,#18030666 0%,#1803063d 38%,#180306b8 100%);pointer-events:none}.result-reward{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7;filter:saturate(1.15) contrast(1.06);pointer-events:none}.complete-dialog-head,.complete-dialog>p,.result-hero,.result-laps,.transfer-stats,.complete-dialog .save-bios{position:relative;z-index:4}.result-confetti{position:fixed;z-index:3;inset:0;overflow:hidden;pointer-events:none}.result-hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.result-hero span{display:grid;gap:2px;padding:14px 16px;border:2px solid #ff9b2fcc;background:#110004a8}.result-hero small{color:#ffd089;font:900 .75rem ui-monospace,monospace;letter-spacing:.15em}.result-hero strong{color:#fff;font:1000 italic clamp(2rem,7vw,4.5rem)/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.06em;text-shadow:3px 3px 0 #9b0019,0 0 18px #ff7b28;white-space:nowrap}.result-hero span:last-child strong{font-size:clamp(1.65rem,5.8vw,3.7rem)}
@media(max-width:560px){.result-hero{grid-template-columns:1fr;gap:8px}.result-hero span{padding:11px 13px}.result-reward{object-position:center top}}
