@import "https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;400;500;600;700&family=Share+Tech+Mono&family=Chakra+Petch:wght@400;500;600;700&display=swap";@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:300;src:url(./rajdhani-devanagari-300-normal.DtVegEO7.woff2)format("woff2"),url(./rajdhani-devanagari-300-normal.CErQPP8R.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:300;src:url(./rajdhani-latin-ext-300-normal.C5JZDPEq.woff2)format("woff2"),url(./rajdhani-latin-ext-300-normal.B13UE04I.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:300;src:url(./rajdhani-latin-300-normal.BAp9G45D.woff2)format("woff2"),url(./rajdhani-latin-300-normal.DJpNA50i.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:400;src:url(./rajdhani-devanagari-400-normal.CTuj2HZW.woff2)format("woff2"),url(./rajdhani-devanagari-400-normal.BdIzgbsr.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:400;src:url(./rajdhani-latin-ext-400-normal.DACPYgMx.woff2)format("woff2"),url(./rajdhani-latin-ext-400-normal.Der7ynDE.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:400;src:url(./rajdhani-latin-400-normal.CurJOxDW.woff2)format("woff2"),url(./rajdhani-latin-400-normal.C6_q4usG.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:500;src:url(./rajdhani-devanagari-500-normal.B_DH_jja.woff2)format("woff2"),url(./rajdhani-devanagari-500-normal.BPH8g_s8.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:500;src:url(./rajdhani-latin-ext-500-normal.DiyUS11w.woff2)format("woff2"),url(./rajdhani-latin-ext-500-normal.CyRWJZ5B.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:500;src:url(./rajdhani-latin-500-normal.ByNUCHrt.woff2)format("woff2"),url(./rajdhani-latin-500-normal.DfvNI-Td.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(./rajdhani-devanagari-600-normal.DhS7ScYx.woff2)format("woff2"),url(./rajdhani-devanagari-600-normal.BtY48IV_.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(./rajdhani-latin-ext-600-normal.C9ZjJQAt.woff2)format("woff2"),url(./rajdhani-latin-ext-600-normal.BleIgkPp.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:600;src:url(./rajdhani-latin-600-normal.CXCVEoA9.woff2)format("woff2"),url(./rajdhani-latin-600-normal.Dx02qI2_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(./rajdhani-devanagari-700-normal.BQQOj9BB.woff2)format("woff2"),url(./rajdhani-devanagari-700-normal.DBRwWuxA.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(./rajdhani-latin-ext-700-normal.S6aYESQK.woff2)format("woff2"),url(./rajdhani-latin-ext-700-normal.BPaQ7tlD.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Rajdhani;font-style:normal;font-display:swap;font-weight:700;src:url(./rajdhani-latin-700-normal.BPDUZo87.woff2)format("woff2"),url(./rajdhani-latin-700-normal.e0Uj8ZlN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Share Tech Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./share-tech-mono-latin-400-normal.CCqdbj5z.woff2)format("woff2"),url(./share-tech-mono-latin-400-normal.15MgdvEM.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-display:swap;font-weight:400;src:url(./orbitron-latin-400-normal.U6xZUhur.woff2)format("woff2"),url(./orbitron-latin-400-normal.DBk4Dmer.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-display:swap;font-weight:500;src:url(./orbitron-latin-500-normal.DQ2gt4P1.woff2)format("woff2"),url(./orbitron-latin-500-normal.BCCupJ8c.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-display:swap;font-weight:600;src:url(./orbitron-latin-600-normal.mazHmDYu.woff2)format("woff2"),url(./orbitron-latin-600-normal.75H6acHo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-display:swap;font-weight:700;src:url(./orbitron-latin-700-normal.4jsRXGGJ.woff2)format("woff2"),url(./orbitron-latin-700-normal.DmYOh-W9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-display:swap;font-weight:900;src:url(./orbitron-latin-900-normal.DrIi7unX.woff2)format("woff2"),url(./orbitron-latin-900-normal.BbJatbhp.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg0:#131a13;--bg1:#1b241b;--bg2:#242f23;--plate:#2e3d2e;--green:#8fe08a;--gold:#d3c68e;--cyan:#93d6c8;--amber:#d99a55;--teal:#6fae91;--violet:#8577a6;--white:#eae6d8;--dim:#87947c;--ice:#a9bcab;--gear:#75846f;--edge:#0d120c;--crimson:#d95f5f;--line:#97a48c40;--line-strong:#8fe08a8c;--surface-page:var(--bg0);--surface-card:var(--bg1);--surface-input:var(--bg2);--text-body:var(--white);--text-muted:var(--dim);--text-accent:var(--green);--text-meta:var(--cyan);--border-hairline:var(--line);--border-active:var(--line-strong);--focus-ring:var(--cyan);--font-display:"Rajdhani", sans-serif;--font-mono:"Share Tech Mono", monospace;--font-hero:"Chakra Petch", sans-serif;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:700;--fs-hero:clamp(3.5rem, 12vw, 7rem);--fs-h1:2.4rem;--fs-h2:1.4rem;--fs-h3:1.2rem;--fs-lead:1.05rem;--fs-body:1.05rem;--fs-sm:.9rem;--fs-label:.72rem;--fs-micro:.6rem;--lh-tight:1.15;--lh-body:1.6;--track-label:.14em;--track-wide:.22em;--track-hero:.18em;--glow-green:0 0 6px #8fe08a73, 0 0 18px #8fe08a33;--glow-gold:0 0 6px #d3c68e73, 0 0 18px #d3c68e33;--glow-cyan:0 0 6px #93d6c873, 0 0 18px #93d6c833;--bevel-raised:inset 0 1px 0 #ffffff24, inset 0 -1px 0 #00000073, 0 2px 3px #00000073;--bevel-inset:inset 0 2px 4px #00000080, inset 0 -1px 0 #ffffff12;--radius-chip:2px;--radius-control:3px;--radius-card:4px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3.5rem;--blueprint-bg:#171f15;--blueprint-grid:linear-gradient(#97a48c1a 1px, transparent 1px), linear-gradient(90deg, #97a48c1a 1px, transparent 1px);--blueprint-grid-size:24px 24px;--ease:.2s ease;--texture-brushed:repeating-linear-gradient(0deg, #eae6d804 0px, #eae6d804 1px, transparent 1px, transparent 3px);--texture-vignette:radial-gradient(ellipse at 50% -20%, #8fe08a0d, transparent 55%), radial-gradient(ellipse at 50% 50%, transparent 55%, #0006 100%)}.surface-machined{background-color:var(--bg0);background-image:var(--texture-vignette), var(--texture-brushed)}.backdrop-blueprint{background-color:var(--blueprint-bg);background-image:var(--blueprint-grid);background-size:var(--blueprint-grid-size);box-shadow:inset 0 0 0 1px #97a48c26,inset 0 0 40px #8fe08a0a}.backdrop-toolpath{background-color:var(--blueprint-bg);background-image:repeating-radial-gradient(circle at 70% 30%,#0000 0 22px,#8fe08a0f 22px 23px);box-shadow:inset 0 0 0 1px #97a48c26,inset 0 0 40px #00000059}.backdrop-tread{background-color:var(--bg1);box-shadow:var(--bevel-inset);background-image:repeating-linear-gradient(45deg,#eae6d805 0 2px,#0000 2px 14px),repeating-linear-gradient(-45deg,#0d120c80 0 1px,#0000 1px 14px)}.backdrop-hatch{background-color:var(--bg1);background-image:linear-gradient(115deg,#131a1300 60%,#0d120c8c 100%),repeating-linear-gradient(115deg,#0000 0 9px,#97a48c12 9px 10px);box-shadow:inset 0 0 0 1px #97a48c26}@keyframes ds-spin{to{transform:rotate(360deg)}}@keyframes ds-scan{0%{opacity:0;transform:translate(-120%)}8%{opacity:1}92%{opacity:1}to{opacity:0;transform:translate(320%)}}@keyframes ds-breathe{0%,to{text-shadow:0 0 6px #8fe08a73,0 0 18px #8fe08a33}50%{text-shadow:0 0 9px #8fe08ab3,0 0 30px #8fe08a59}}@keyframes ds-flicker{0%{opacity:0}6%{opacity:1}10%{opacity:.3}14%{opacity:1}22%{opacity:.5}28%,to{opacity:1}}@keyframes ds-draw{0%{stroke-dashoffset:var(--ds-draw-len,400)}to{stroke-dashoffset:0}}@keyframes ds-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes ds-caret{0%,to{border-color:#0000}50%{border-color:var(--green)}}@keyframes ds-type{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:no-preference){.ds-anim-spin{animation:24s linear infinite ds-spin}.ds-anim-spin-fast{animation:2.4s linear infinite ds-spin}.ds-anim-scan{animation:2.8s ease-in-out infinite ds-scan}.ds-anim-scan-once{animation:1.6s ease-in-out both ds-scan}.ds-anim-breathe{animation:3.2s ease-in-out infinite ds-breathe}.ds-anim-flicker{animation:.9s step-end both ds-flicker}.ds-anim-draw{animation:1.4s ease-out both ds-draw}.ds-anim-rise{animation:.5s ease-out both ds-rise}.ds-anim-type{white-space:nowrap;border-right:2px solid var(--green);animation:1.6s steps(24,end) both ds-type,.8s step-end infinite ds-caret;display:inline-block;overflow:hidden}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg0);color:var(--white);font-family:var(--font-display);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:1.05rem;font-weight:400;line-height:1.6;overflow-x:hidden}.bg-fx{z-index:0;pointer-events:none;background:radial-gradient(at 50% -10%,#8fe08a0f,#0000 60%),radial-gradient(at 50% 120%,#93d6c80a,#0000 55%);position:fixed;inset:0}.bg-fx:after{content:"";opacity:.5;background:repeating-linear-gradient(#8fe08a0d 0 1px,#0000 1px 4px);animation:12s linear infinite scan;position:absolute;inset:0}@keyframes scan{0%{transform:translateY(0)}to{transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.bg-fx:after{animation:none}html{scroll-behavior:auto}}main,.app-header{z-index:1;position:relative}main{max-width:880px;margin:0 auto;padding:3rem 1.5rem 5rem}h1,h2,h3{font-family:var(--font-display);letter-spacing:.01em;font-weight:700;line-height:1.15}h1{font-size:2.4rem}h2{color:var(--white);margin:2.25rem 0 1rem;font-size:1.4rem}h2:before{content:"// ";color:var(--green);font-family:var(--font-mono);text-shadow:var(--glow-green);font-size:.8em}a{color:var(--green);text-decoration:none;transition:color .2s,text-shadow .2s}a:hover{text-shadow:var(--glow-green)}.lead{color:var(--dim);font-size:1.05rem;line-height:1.65}.eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);text-shadow:var(--glow-cyan);font-size:.72rem}.mono{font-family:var(--font-mono)}.wordmark{font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;color:var(--green);text-shadow:var(--glow-green);white-space:nowrap;font-weight:700;text-decoration:none}.wordmark span{color:var(--gold);text-shadow:var(--glow-gold)}.wordmark:hover{text-shadow:var(--glow-green)}.hero{text-align:center;padding:4rem 1rem 2.5rem}.hero .wordmark{letter-spacing:.3em;margin-bottom:1rem;font-size:clamp(3.5rem,12vw,7rem);display:inline-block}.hero .eyebrow{margin-bottom:1.5rem;display:block}.hero .lead{max-width:620px;color:var(--white);margin:1.25rem auto 0}.app-header{background:var(--bg2);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.app-header .wordmark{font-size:1.6rem}.app-header .header-right{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.user-block{text-align:right;line-height:1.3}.user-name{font-family:var(--font-display);color:var(--white);font-weight:600}.user-role{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);text-shadow:var(--glow-cyan);font-size:.7rem}.btn{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);border:1px solid var(--green);border-radius:var(--radius-control);cursor:pointer;background:0 0;align-items:center;gap:.5rem;padding:.7rem 1.3rem;font-size:.82rem;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s,border-color .2s;display:inline-flex}.btn:hover{background:var(--green);color:var(--bg0);box-shadow:var(--glow-green);text-shadow:none}.btn:active{box-shadow:var(--bevel-inset);transform:translateY(1px)}.btn:disabled{color:var(--ice);border-color:var(--ice);cursor:not-allowed;opacity:.7}.btn:disabled:hover{color:var(--ice);box-shadow:none;background:0 0}.btn.secondary{color:var(--white);border-color:var(--dim)}.btn.secondary:hover{color:var(--green);border-color:var(--green);box-shadow:var(--glow-green);text-shadow:var(--glow-green);background:0 0}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.card{background:var(--bg1);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--bevel-raised);margin:1.25rem 0;padding:1.5rem}.card>p{color:var(--white)}.btn-row{flex-wrap:wrap;gap:.85rem;margin-top:1rem;display:flex}.field{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;display:flex}.field:last-child{border-bottom:0}.field .key{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-size:.72rem}.field .val{color:var(--white)}.field .val.meta{font-family:var(--font-mono);color:var(--cyan);text-shadow:var(--glow-cyan)}.callout{border:1px solid var(--line-strong);background:linear-gradient(135deg,#d3c68e12 0%,#93d6c80d 100%);border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin:1rem 0;padding:1.2rem 1.6rem;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.callout:hover{background:linear-gradient(135deg,#d3c68e1f 0%,#93d6c814 100%);border-color:#d3c68eb3}.callout .callout-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-shadow:var(--glow-gold);margin-bottom:.25rem;font-size:.78rem}.callout .callout-sub{color:var(--dim);font-size:.9rem}.course-id{font-family:var(--font-mono);letter-spacing:.18em;color:var(--green);text-shadow:var(--glow-green);font-size:.8rem}.course-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-size:.72rem}.assignment-list{margin:.5rem 0 0;list-style:none}.assignment-list li{border-top:1px solid var(--line)}.assignment-list li:first-child{border-top:0}.assignment-list a{color:var(--white);align-items:center;gap:.6rem;padding:.7rem .25rem;display:flex}.assignment-list a:before{content:">";font-family:var(--font-mono);color:var(--green);font-size:.8rem}.assignment-list a:hover{color:var(--green);text-shadow:var(--glow-green)}.course-empty{color:var(--ice);font-family:var(--font-mono);letter-spacing:.08em;font-size:.8rem}.warn{color:var(--amber)}.page-version{text-align:center;opacity:.85;margin-top:2.5rem}.gauntlet-brand{flex-wrap:wrap;align-items:baseline;gap:.9rem;display:flex}.gauntlet-crumbs{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:.72rem;display:flex}.gauntlet-crumbs .crumb{color:var(--dim)}.gauntlet-crumbs .crumb-root{color:var(--green);text-shadow:var(--glow-green)}.gauntlet-crumbs .crumb-current{color:var(--cyan)}.gauntlet-crumbs .crumb-sep{color:var(--dim)}.gauntlet .dojo-hero{text-align:center;padding:1.5rem 0 1rem}.gauntlet .dojo-tagline{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);margin:.6rem 0 1rem;font-size:.8rem}.gauntlet .dojo-hero .lead{max-width:560px;color:var(--white);margin:0 auto}.gauntlet .dojo-stats{flex-wrap:wrap;justify-content:center;gap:2.5rem;margin-top:2rem;display:flex}.gauntlet .dojo-stat{flex-direction:column;gap:.2rem;display:flex}.gauntlet .stat-value{font-family:var(--font-display);color:var(--green);text-shadow:var(--glow-green);font-size:1.6rem;font-weight:700}.gauntlet .stat-value.cyan{color:var(--cyan);text-shadow:var(--glow-cyan);text-transform:capitalize}.gauntlet .stat-of{color:var(--dim);text-shadow:none;margin-left:.2rem;font-size:.9rem}.gauntlet .stat-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-size:.6rem}.gauntlet .author-callout{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;text-decoration:none;display:flex}.gauntlet .author-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-shadow:var(--glow-gold);margin-bottom:.25rem;font-size:.78rem}.gauntlet .author-sub{color:var(--white);font-size:.9rem}.gauntlet .mode-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1rem 0;display:grid}.gauntlet .mode-card{background:var(--bg1);border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:.6rem;padding:1.2rem 1.25rem;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.gauntlet .mode-card.live:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 0 0 1px #00ff4126}.gauntlet .mode-card.locked{opacity:.66;cursor:not-allowed}.gauntlet .mode-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.gauntlet .mode-family{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);font-size:.6rem}.gauntlet .mode-status{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border-radius:2px;padding:.15rem .5rem;font-size:.58rem}.gauntlet .status-live{color:var(--green);border:1px solid var(--line-strong)}.gauntlet .status-soon{color:var(--ice);border:1px solid #88ddff40}.gauntlet .status-construction{color:var(--amber);border:1px solid #ff8c004d}.gauntlet .mode-name{color:var(--white);font-size:1.2rem}.gauntlet .mode-card.live .mode-name{color:var(--green)}.gauntlet .mode-tagline{color:var(--dim);flex:1;font-size:.85rem;line-height:1.5}.gauntlet .mode-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.2rem;padding-top:.6rem;display:flex}.gauntlet .mode-scoring{font-family:var(--font-mono);letter-spacing:.06em;color:var(--cyan);font-size:.62rem}.gauntlet .mode-progress{font-family:var(--font-mono);letter-spacing:.06em;color:var(--dim);font-size:.62rem}.gauntlet .dojo-note{color:var(--dim);margin-top:1.5rem;font-size:.8rem}.gauntlet .mode-hero{padding:.5rem 0}.gauntlet .mode-hero .lead{color:var(--white);max-width:640px}.gauntlet .mode-hero-meta{color:var(--cyan);letter-spacing:.08em;margin-top:.75rem;font-size:.8rem}.gauntlet .diff{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--green);white-space:nowrap;border-radius:2px;padding:.15rem .5rem;font-size:.6rem}.gauntlet .diff-3{color:var(--gold);border-color:#c8ff0059}.gauntlet .diff-4,.gauntlet .diff-5{color:var(--amber);border-color:#ff8c0066}.gauntlet .challenge-list{gap:.6rem;margin:1rem 0;list-style:none;display:grid}.gauntlet .challenge-row{background:var(--bg1);border:1px solid var(--line);border-radius:4px;align-items:center;gap:1rem;padding:.9rem 1.1rem;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.gauntlet .challenge-row:hover{border-color:var(--line-strong);transform:translate(2px)}.gauntlet .challenge-state{border:1px solid var(--line);width:1.6rem;height:1.6rem;color:var(--dim);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;place-items:center;font-size:.9rem;display:grid}.gauntlet .challenge-state.done{color:var(--green);border-color:var(--green);box-shadow:var(--glow-green)}.gauntlet .challenge-state.tried{color:var(--amber);border-color:#ff8c0080}.gauntlet .challenge-main{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.gauntlet .challenge-title{color:var(--white);font-size:1.05rem;font-weight:600}.gauntlet .challenge-sub{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.gauntlet .challenge-meta{font-family:var(--font-mono);letter-spacing:.06em;color:var(--cyan);font-size:.66rem}.gauntlet .challenge-meta.dim{color:var(--dim)}.gauntlet .challenge-meta.warn{color:var(--amber)}.gauntlet .challenge-go{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--green);flex-shrink:0;font-size:.72rem}.gauntlet .play-head{flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:.5rem;display:flex}.gauntlet .play-head h1{font-size:1.8rem}.gauntlet .play-grid{grid-template-columns:1fr;gap:1.25rem;margin:1rem 0 2rem;display:grid}@media (width>=760px){.gauntlet .play-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}.gauntlet .play-grid:has(.drawing-frame){grid-template-columns:1fr}}.gauntlet .drawing-panel{background:var(--bg1);border:1px solid var(--line);border-radius:4px;place-items:center;padding:1.25rem;display:grid}.gauntlet .drawing-panel svg,.gauntlet .drawing-panel img{width:100%;max-width:440px;height:auto}.gauntlet .question-panel{flex-direction:column;gap:.9rem;display:flex}.gauntlet .instructions{color:var(--dim);font-size:.85rem;line-height:1.5}.gauntlet .question{color:var(--white);font-size:1.15rem;font-weight:600;line-height:1.4}.gauntlet .options{border:0;gap:.6rem;margin:0;padding:0;display:grid}.gauntlet .opt{background:var(--bg2);border:1px solid var(--line);cursor:pointer;border-radius:3px;align-items:center;gap:.8rem;padding:.7rem .9rem;transition:border-color .2s,background .2s;display:flex}.gauntlet .opt:hover{border-color:var(--line-strong)}.gauntlet .opt:focus-within{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.gauntlet .options:disabled .opt{cursor:default}.gauntlet .opt input{opacity:0;pointer-events:none;position:absolute}.gauntlet .opt-key{border:1px solid var(--line-strong);width:1.6rem;height:1.6rem;font-family:var(--font-mono);color:var(--cyan);border-radius:2px;flex-shrink:0;place-items:center;font-size:.78rem;display:grid}.gauntlet .opt-label{color:var(--white);font-size:.98rem}.gauntlet .opt-svg{flex:1;display:block}.gauntlet .opt-svg svg{width:100%;height:auto;max-height:90px}.gauntlet .opt.selected{border-color:var(--green);background:#00ff410f}.gauntlet .opt.selected .opt-key{color:var(--green);border-color:var(--green)}.gauntlet .opt.correct{border-color:var(--green);background:#00ff411a}.gauntlet .opt.correct .opt-key{color:var(--green);border-color:var(--green);box-shadow:var(--glow-green)}.gauntlet .opt.wrong{border-color:var(--amber);background:#ff8c0014}.gauntlet .opt.wrong .opt-key{color:var(--amber);border-color:var(--amber)}.gauntlet form .btn{margin-top:.4rem}.gauntlet .result-banner{border-radius:3px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.4rem;padding:.8rem 1rem;display:flex}.gauntlet .result-banner.ok{border:1px solid var(--green);background:#00ff4114}.gauntlet .result-banner.no{border:1px solid var(--amber);background:#ff8c0012}.gauntlet .result-verdict{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.9rem}.gauntlet .result-banner.ok .result-verdict{color:var(--green);text-shadow:var(--glow-green)}.gauntlet .result-banner.no .result-verdict{color:var(--amber)}.gauntlet .result-time{font-family:var(--font-mono);color:var(--cyan);font-size:.72rem}.gauntlet .explanation{color:var(--white);border-left:2px solid var(--line-strong);padding-left:.9rem;font-size:.9rem;line-height:1.6}.gauntlet .board{border-collapse:collapse;width:100%;margin:.5rem 0 1rem;font-size:.9rem}.gauntlet .board th{text-align:left;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--green);border-bottom:1px solid var(--line-strong);padding:.5rem .75rem;font-size:.62rem}.gauntlet .board td{border-bottom:1px solid var(--line);color:var(--white);padding:.55rem .75rem}.gauntlet .board .rank-col{width:3rem;font-family:var(--font-mono);color:var(--cyan)}.gauntlet .board .time-col{font-family:var(--font-mono);color:var(--cyan);text-align:right}.gauntlet .board tr.me td{background:#00ff410f}.gauntlet .board .you{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bg0);background:var(--green);border-radius:2px;margin-left:.5rem;padding:.1rem .35rem;font-size:.56rem}.gauntlet .board .res-ok{color:var(--green)}.gauntlet .board .res-no{color:var(--dim)}.gauntlet .board-note{font-size:.8rem}.gauntlet .dim{color:var(--dim)}.gauntlet .board .num-col{text-align:right;white-space:nowrap;width:5.5rem}.gauntlet .board td.num-col{font-family:var(--font-mono);color:var(--cyan)}.gauntlet .board .lvl-col{width:10rem}.gauntlet .lb-player{align-items:center;gap:.5rem;min-width:0;display:inline-flex}.gauntlet .lb-name{color:var(--white);text-overflow:ellipsis;overflow:hidden}.gauntlet .lb-level{font-family:var(--font-mono);letter-spacing:.06em;color:var(--gold);font-size:.72rem}.gauntlet .lb-level-name{margin-left:.4rem;font-size:.72rem}.gauntlet .lb-drawing{color:var(--white);border-bottom:1px solid #0000;text-decoration:none}.gauntlet .lb-drawing:hover{color:var(--green);border-bottom-color:var(--line-strong)}.gauntlet .confirm-q{font-size:.8rem}.gauntlet .demo-badge{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);white-space:nowrap;background:#c8ff000f;border:1px solid #c8ff0066;border-radius:2px;padding:.15rem .5rem;font-size:.56rem}.gauntlet .supervised-note p{color:var(--dim);font-size:.82rem;line-height:1.55}.gauntlet .start-gate{text-align:center;flex-direction:column;align-items:center;gap:.7rem;padding:1rem;display:flex}.gauntlet .gate-lock{color:var(--dim);font-size:1.6rem;line-height:1}.gauntlet .gate-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);font-size:.78rem}.gauntlet .gate-sub{color:var(--dim);max-width:320px;font-size:.82rem;line-height:1.5}.gauntlet .start-gate .btn{margin-top:.4rem}.gauntlet .spec{margin:0}.gauntlet .drawing-panel:has(.drawing-frame){flex-direction:column;align-items:stretch;gap:1rem;display:flex}.gauntlet .drawing-frame{aspect-ratio:16/9;background:var(--bg1);border:2px solid var(--line);border-radius:3px;place-items:center;width:100%;max-height:70vh;padding:.9rem;display:grid;position:relative;overflow:hidden}.gauntlet .drawing-frame:has(.drawing-zoom){border-color:var(--line-strong);background-color:#04130c;background-image:linear-gradient(#00ff4112 1px,#0000 1px),linear-gradient(90deg,#00ff4112 1px,#0000 1px);background-size:24px 24px;box-shadow:inset 0 0 0 1px #00ff411f,inset 0 0 40px #00ff410d}.gauntlet .drawing-frame:has(.drawing-zoom):after{content:"";pointer-events:none;--tick:#00f0ff8c;background:linear-gradient(var(--tick), var(--tick)) top left / 16px 2px no-repeat, linear-gradient(var(--tick), var(--tick)) top left / 2px 16px no-repeat, linear-gradient(var(--tick), var(--tick)) top right / 16px 2px no-repeat, linear-gradient(var(--tick), var(--tick)) top right / 2px 16px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom left / 16px 2px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom left / 2px 16px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom right / 16px 2px no-repeat, linear-gradient(var(--tick), var(--tick)) bottom right / 2px 16px no-repeat;position:absolute;inset:8px}.gauntlet .sheet-titleblock{z-index:2;border:1px solid var(--line-strong);font-family:var(--font-mono);pointer-events:none;background:#04130ce6;border-radius:2px;flex-direction:column;align-items:flex-end;gap:.1rem;padding:.3rem .55rem;display:flex;position:absolute;bottom:10px;right:10px}.gauntlet .tb-brand{letter-spacing:.12em;color:var(--green);font-size:.62rem}.gauntlet .tb-meta{letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-size:.55rem}.gauntlet .drawing-frame:has(.start-gate){aspect-ratio:auto;background:var(--bg1);border-color:var(--line);padding:1.25rem;overflow:visible}.gauntlet .drawing-zoom{cursor:zoom-in;background:0 0;border:none;place-items:center;width:100%;height:100%;padding:0;display:grid;position:relative}.gauntlet .drawing-zoom :is(svg,img){filter:invert()drop-shadow(0 0 1px #00ff4180);mix-blend-mode:screen;width:auto;max-width:100%;height:auto;max-height:100%}.gauntlet .drawing-png{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%}.gauntlet .zoom-hint{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);opacity:0;pointer-events:none;background:#04130cd9;border:1px solid #00f0ff4d;border-radius:2px;padding:.1rem .35rem;font-size:.55rem;transition:opacity .12s;position:absolute;bottom:.3rem;right:.4rem}.gauntlet .drawing-zoom:hover .zoom-hint,.gauntlet .drawing-zoom:focus-visible .zoom-hint{opacity:1}.gauntlet .stl-viewer{background:var(--bg2);border:1px solid var(--line);border-radius:3px;width:100%;position:relative;overflow:hidden}.gauntlet .stl-canvas{width:100%;height:100%}.gauntlet .stl-canvas canvas{cursor:grab;display:block}.gauntlet .stl-canvas canvas:active{cursor:grabbing}.gauntlet .stl-overlay{text-align:center;pointer-events:none;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.gauntlet .stl-tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);pointer-events:none;font-size:.58rem;position:absolute;bottom:.5rem;left:.6rem}.gauntlet .ruleset-panel{flex-direction:column;gap:0;margin:0;display:flex}.gauntlet .ruleset-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin-bottom:.5rem;font-size:.62rem}.gauntlet .rule-lines{gap:.3rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.gauntlet .rule-lines li{color:var(--dim);padding-left:.9rem;font-size:.82rem;line-height:1.4;position:relative}.gauntlet .rule-lines li:before{content:"•";color:var(--line-strong);position:absolute;left:0}.gauntlet .clock-wrap{justify-content:center;margin:.2rem 0;display:flex}.lightbox{z-index:100;place-items:center;padding:2rem;display:grid;position:fixed;inset:0}.lightbox-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:zoom-out;background:#020603db;border:none;position:absolute;inset:0}.lightbox-inner{z-index:1;flex-direction:column;gap:.6rem;width:min(1100px,92vw);max-height:90vh;display:flex;position:relative}.lightbox-close{align-self:flex-end}.lightbox-scroll{border:1px solid var(--line-strong);background-color:#04130c;background-image:linear-gradient(#00ff4112 1px,#0000 1px),linear-gradient(90deg,#00ff4112 1px,#0000 1px);background-size:26px 26px;border-radius:3px;place-items:center;max-height:82vh;padding:1rem;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #00ff411f}.lightbox-img{object-fit:contain;image-rendering:auto;filter:invert()drop-shadow(0 0 1px #00ff4180);mix-blend-mode:screen;width:auto;max-width:100%;height:auto;max-height:78vh}.lightbox-svg{width:100%;max-width:1000px}.lightbox-svg svg{filter:invert()drop-shadow(0 0 1px #00ff4180);mix-blend-mode:screen;width:100%;height:auto}.gauntlet .mass-field{flex-direction:column;gap:.4rem;display:flex}.gauntlet .mass-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-size:.66rem}.gauntlet .mass-input-wrap{border:1px solid var(--line-strong);background:var(--bg2);border-radius:3px;align-items:stretch;display:flex;overflow:hidden}.gauntlet .mass-input-wrap:focus-within{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.gauntlet .mass-input{min-width:0;color:var(--white);font-family:var(--font-display);background:0 0;border:0;flex:1;padding:.6rem .8rem;font-size:1.3rem}.gauntlet .mass-input:focus{outline:none}.gauntlet .mass-unit{background:var(--bg1);border-left:1px solid var(--line);font-family:var(--font-mono);color:var(--cyan);align-items:center;padding:0 .9rem;font-size:.85rem;display:flex}.gauntlet .result-detail{margin-top:.5rem}.gauntlet .code-box{border:1px solid var(--line-strong);background:var(--bg2);border-radius:4px;padding:.9rem 1rem}.gauntlet .code-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.gauntlet .code-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-size:.62rem}.gauntlet .text-copy{font-family:var(--font-mono);letter-spacing:.08em;color:var(--cyan);cursor:pointer;background:0 0;border:none;padding:0;font-size:.66rem;text-decoration:underline}.gauntlet .text-copy:hover{color:var(--green)}.gauntlet .code-value{font-family:var(--font-mono);letter-spacing:.28em;color:var(--gold);text-shadow:var(--glow-gold);word-break:break-all;margin:.3rem 0 .5rem;font-size:1.9rem}.gauntlet .code-instr{color:var(--dim);font-size:.8rem;line-height:1.55}.gauntlet .code-instr strong{color:var(--cyan);font-weight:600}.gauntlet .waiting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.gauntlet .practice{border:1px solid var(--line);background:var(--bg1);border-radius:4px;padding:.6rem 1rem}.gauntlet .practice>summary{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);cursor:pointer;padding:.2rem 0;font-size:.72rem}.gauntlet .practice[open]>summary{margin-bottom:.5rem}.gauntlet .result-banner.small{margin-top:.6rem;padding:.55rem .8rem}.gauntlet .result-banner.small .result-verdict{font-size:.78rem}.gauntlet .text-btn{font-family:var(--font-mono);letter-spacing:.06em;color:var(--dim);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.7rem;text-decoration:underline}.gauntlet .text-btn:hover{color:var(--green)}.gauntlet .setup-steps{gap:.7rem;margin:.5rem 0 1rem 1.2rem;display:grid}.gauntlet .setup-steps li{color:var(--white);padding-left:.3rem;font-size:.9rem;line-height:1.6}.gauntlet .setup-steps li::marker{color:var(--green);font-family:var(--font-mono)}.gauntlet .status-badge{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line-strong);border-radius:2px;padding:.15rem .5rem;font-size:.56rem}.gauntlet .status-published{color:var(--green);border-color:var(--green)}.gauntlet .status-draft{color:var(--amber);border-color:#ff8c0066}.gauntlet .status-archived{color:var(--dim);border-color:var(--line)}.gauntlet .author-list{gap:.5rem;margin:.5rem 0 1.5rem;list-style:none;display:grid}.gauntlet .author-row{background:var(--bg1);border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;display:flex}.gauntlet .author-main{flex-direction:column;flex:1;gap:.3rem;min-width:0;text-decoration:none;display:flex}.gauntlet .author-title{color:var(--white);font-weight:600}.gauntlet .author-main:hover .author-title{color:var(--green)}.gauntlet .author-sub{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.gauntlet .author-actions{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.gauntlet .text-act{font-family:var(--font-mono);letter-spacing:.06em;color:var(--cyan);cursor:pointer;background:0 0;border:none;padding:0;font-size:.68rem;text-decoration:underline}.gauntlet .text-act:hover,.gauntlet .text-act.go{color:var(--green)}.gauntlet .text-act.danger{color:var(--amber)}.gauntlet .text-act:disabled{color:var(--dim);cursor:default;text-decoration:none}.gauntlet .author-empty{margin:.25rem 0 1rem;font-size:.85rem}.gauntlet .author-note{margin-top:1.5rem;font-size:.78rem}.gauntlet .author-form{margin-top:.5rem}.gauntlet .status-line{font-family:var(--font-mono);color:var(--dim);letter-spacing:.06em;margin-bottom:.5rem;font-size:.72rem}.gauntlet .ff{border-bottom:1px solid var(--line);flex-direction:column;gap:.3rem;padding:.5rem 0;display:flex}.gauntlet .ff:last-child{border-bottom:0}.gauntlet .ff-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-size:.66rem}.gauntlet .ff-input{background:var(--bg2);border:1px solid var(--line-strong);width:100%;color:var(--white);font-family:var(--font-display);border-radius:3px;padding:.5rem .7rem;font-size:1rem}.gauntlet select.ff-input{font-family:var(--font-mono)}.gauntlet .ff-input:focus{border-color:var(--cyan);box-shadow:var(--glow-cyan);outline:none}.gauntlet .ff-area{font-family:var(--font-mono);resize:vertical;font-size:.82rem;line-height:1.5}.gauntlet .ff-help{color:var(--dim);margin-bottom:.4rem;font-size:.78rem;line-height:1.5}.gauntlet .ff-warn{margin:.2rem 0 .4rem;font-size:.8rem}.gauntlet .opt-editor{border-bottom:1px solid var(--line);gap:.5rem;padding:.5rem 0;display:grid}.gauntlet .opt-edit-row{align-items:center;gap:.6rem;display:flex}.gauntlet .opt-id{text-align:center;width:4rem;font-family:var(--font-mono);flex-shrink:0}.gauntlet .form-actions{margin-top:1.25rem}.gauntlet .danger-btn{color:var(--amber);border-color:#ff8c0080}.gauntlet .danger-btn:hover{border-color:var(--amber);color:var(--amber);box-shadow:none;text-shadow:none;background:#ff8c0014}.gauntlet .status-lobby{color:var(--amber);border-color:#ff8c0066}.gauntlet .status-results{color:var(--cyan);border-color:#00f0ff4d}.gauntlet .room-join{max-width:480px}.gauntlet .join-row{gap:.6rem;display:flex}.gauntlet .code-input{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase}.gauntlet .room-head{background:var(--bg2);border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.9rem 1.2rem;display:flex}.gauntlet .room-code-block{flex-wrap:wrap;align-items:baseline;gap:.8rem;display:flex}.gauntlet .room-code-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-size:.6rem}.gauntlet .room-code{font-family:var(--font-mono);letter-spacing:.24em;color:var(--gold);text-shadow:var(--glow-gold);font-size:1.6rem}.gauntlet .room-meta{align-items:center;gap:.8rem;display:flex}.gauntlet .room-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=820px){.gauntlet .room-grid{grid-template-columns:minmax(0,1fr) 250px;align-items:start}}.gauntlet .room-side h2{margin-top:0}.gauntlet .roster{gap:1rem;display:grid}.gauntlet .roster-group{gap:.3rem;display:grid}.gauntlet .roster-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-size:.62rem}.gauntlet .roster-row{color:var(--white);padding:.15rem 0;font-size:.92rem}.legacy-index{z-index:1;font-family:Share Tech Mono,monospace;position:relative}.legacy-index #scroll-bar{background:var(--green);width:0%;height:2px;box-shadow:var(--glow-green);z-index:1000;transition:width .1s linear;position:fixed;top:0;left:0}.legacy-index #bg-canvas{z-index:0;pointer-events:none;opacity:.35;width:100%;height:100%;position:fixed;top:0;left:0}.legacy-index header{z-index:100;-webkit-backdrop-filter:blur(12px);background:#131a13e0;border-bottom:1px solid #8fe08a26;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.legacy-index .logo{color:var(--green);text-shadow:var(--glow-green);letter-spacing:.15em;white-space:nowrap;font-family:Orbitron,sans-serif;font-size:1.5rem;font-weight:900;text-decoration:none}.logo-mark{text-shadow:none;letter-spacing:normal;align-items:center;display:inline-flex}.legacy-index .header-right{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.legacy-index .class-chip{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);white-space:nowrap;background:#d3c68e0d;border:1px solid #d3c68e59;border-radius:2px;padding:.3rem .7rem;font-family:Orbitron,sans-serif;font-size:.6rem;font-weight:600;text-decoration:none;transition:border-color .2s,text-shadow .2s}.legacy-index .class-chip:hover{text-shadow:var(--glow-gold);border-color:#d3c68eb3}.legacy-index .auth-block{align-items:center;gap:.75rem;display:flex}.legacy-index .auth-link{letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #93d6c84d;border-radius:2px;padding:.3rem .7rem;font-family:Orbitron,sans-serif;font-size:.6rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s,text-shadow .2s}.legacy-index .auth-link:hover{color:var(--green);text-shadow:var(--glow-green);border-color:#8fe08a80}.legacy-index .auth-link.signin{color:var(--green);border-color:#8fe08a66}.legacy-index .auth-link:disabled{opacity:.6;cursor:default}.legacy-index .auth-error{z-index:1;max-width:1100px;color:var(--amber);margin:.75rem auto 0;padding:0 2rem;font-size:.72rem;position:relative}.legacy-index .hero{z-index:1;max-width:1100px;margin:0 auto;padding:5rem 2rem 3.5rem;position:relative}.legacy-index .hero-eyebrow{letter-spacing:.25em;color:var(--teal);text-transform:uppercase;margin-bottom:1rem;font-family:Orbitron,sans-serif;font-size:.65rem}.legacy-index .hero h1{color:var(--white);margin-bottom:.5rem;font-family:Orbitron,sans-serif;font-size:clamp(1.8rem,4.5vw,3.8rem);font-weight:900;line-height:1.05}.legacy-index .hero h1 .accent{color:var(--green);text-shadow:var(--glow-green)}.legacy-index .hero-sub{color:var(--dim);letter-spacing:.04em;text-align:center;max-width:480px;margin:1rem auto 0;font-size:.82rem;line-height:1.7}.legacy-index .hero-meta{flex-wrap:wrap;gap:2.5rem;margin-top:2.5rem;display:flex}.legacy-index .hero-stat{flex-direction:column;gap:.2rem;display:flex}.legacy-index .hero-stat .value{color:var(--green);text-shadow:var(--glow-green);font-family:Orbitron,sans-serif;font-size:1.5rem;font-weight:700;animation:3s ease-in-out infinite breathe}.legacy-index .hero-stat .label{color:var(--dim);letter-spacing:.15em;text-transform:uppercase;font-size:.58rem}@keyframes breathe{0%,to{text-shadow:0 0 8px #8fe08a99,0 0 20px #8fe08a33}50%{text-shadow:0 0 16px #8fe08a,0 0 40px #8fe08a80}}.legacy-index .promo-callout{z-index:1;background:linear-gradient(135deg,#d3c68e12 0%,#93d6c80d 100%);border:1px solid #d3c68e59;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;max-width:1100px;margin:0 auto 2.5rem;padding:1.2rem 1.8rem;text-decoration:none;transition:border-color .2s,background .2s;display:flex;position:relative}.legacy-index .promo-callout:hover{background:linear-gradient(135deg,#d3c68e1f 0%,#93d6c814 100%);border-color:#d3c68eb3}.legacy-index .promo-callout.nextlive{background:linear-gradient(135deg,#8fe08a1a 0%,#93d6c80d 100%);border-color:#8fe08a73}.legacy-index .promo-left{align-items:center;gap:1.2rem;display:flex}.legacy-index .promo-icon{color:var(--gold);text-shadow:var(--glow-gold);font-family:Orbitron,sans-serif;font-size:2rem;font-weight:900;line-height:1;animation:3s ease-in-out infinite breathe}.legacy-index .nextlive .promo-icon{color:var(--green);text-shadow:var(--glow-green)}.legacy-index .promo-title{letter-spacing:.18em;color:var(--gold);text-shadow:0 0 8px #d3c68e80;text-transform:uppercase;margin-bottom:.3rem;font-family:Orbitron,sans-serif;font-size:.7rem;font-weight:700}.legacy-index .nextlive .promo-title{color:var(--green);text-shadow:0 0 8px #8fe08a80}.legacy-index .promo-sub{color:var(--dim);letter-spacing:.04em;font-size:.72rem;line-height:1.5}.legacy-index .promo-cta{letter-spacing:.18em;color:var(--gold);white-space:nowrap;text-transform:uppercase;border:1px solid #d3c68e66;border-radius:2px;padding:.35rem .9rem;font-family:Orbitron,sans-serif;font-size:.58rem}.legacy-index .nextlive .promo-cta{color:var(--green);border-color:#8fe08a66}.legacy-index .nudge-card{z-index:1;background:linear-gradient(120deg,#8fe08a0f,#93d6c80a);border:1px solid #8fe08a4d;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;max-width:1100px;margin:0 auto 2.5rem;padding:1.1rem 1.8rem;display:flex;position:relative}.legacy-index .nudge-eyebrow{letter-spacing:.2em;color:var(--green);text-shadow:0 0 8px #8fe08a80;font-family:Orbitron,sans-serif;font-size:.56rem;font-weight:700}.legacy-index .nudge-stats{flex-wrap:wrap;gap:2rem;margin-top:.5rem;display:flex}.legacy-index .nudge-stat{flex-direction:column;gap:.15rem;display:flex}.legacy-index .nudge-value{color:var(--green);text-shadow:var(--glow-green);font-family:Orbitron,sans-serif;font-size:1rem;font-weight:700}.legacy-index .nudge-value.live{color:var(--gold);text-shadow:var(--glow-gold)}.legacy-index .nudge-label{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-size:.6rem}.legacy-index .nudge-cta{border:1px solid #8fe08a59;border-radius:3px;flex-direction:column;align-items:flex-end;gap:.25rem;padding:.7rem 1.1rem;text-decoration:none;transition:border-color .2s,background .2s;display:flex}.legacy-index .nudge-cta:hover{background:#8fe08a0d;border-color:#8fe08ab3}.legacy-index .nudge-cta-label{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-size:.58rem}.legacy-index .nudge-cta-title{letter-spacing:.1em;color:var(--green);text-shadow:0 0 8px #8fe08a66;font-family:Orbitron,sans-serif;font-size:.7rem;font-weight:700}@media (width<=768px){.legacy-index .nudge-card{margin-left:1rem;margin-right:1rem}.legacy-index .nudge-cta{align-items:flex-start}}.legacy-index .submit-panel{z-index:1;max-width:1100px;margin:0 auto 2.5rem;padding:0 2rem;position:relative}.legacy-index .submit-inner{background:var(--bg1);box-shadow:var(--bevel-raised);border:1px solid #93d6c833;border-radius:4px;padding:1.2rem 1.5rem}.legacy-index #submit-toggle{width:100%;color:var(--dim);cursor:pointer;letter-spacing:.18em;text-transform:uppercase;background:0 0;border:none;justify-content:space-between;padding-bottom:.75rem;font-family:Orbitron,sans-serif;font-size:.58rem;display:flex}.legacy-index #submit-chevron{transition:transform .3s}.legacy-index #submit-toggle.open #submit-chevron{transform:rotate(180deg)}.legacy-index .submit-label{letter-spacing:.2em;color:var(--cyan);text-transform:uppercase;margin-bottom:1rem;font-family:Orbitron,sans-serif;font-size:.58rem}.legacy-index .submit-steps{gap:0;display:flex}.legacy-index .submit-step{border-right:1px solid #8fe08a1a;flex:1;align-items:flex-start;gap:.75rem;margin-right:1.5rem;padding-right:1.5rem;display:flex}.legacy-index .submit-step:last-child{border-right:none;margin-right:0;padding-right:0}.legacy-index .step-num{color:var(--green);text-shadow:var(--glow-green);flex-shrink:0;font-family:Orbitron,sans-serif;font-size:1.1rem;font-weight:700;line-height:1;animation:3s ease-in-out infinite breathe}.legacy-index .submit-step:nth-child(2) .step-num{animation-delay:.8s}.legacy-index .submit-step:nth-child(3) .step-num{animation-delay:1.6s}.legacy-index .step-text{color:var(--white);font-size:.75rem;line-height:1.5}.legacy-index .step-text strong{color:var(--gold);font-weight:400}.legacy-index .divider{z-index:1;align-items:center;gap:1rem;max-width:1100px;margin:0 auto 2.5rem;padding:0 2rem;scroll-margin-top:80px;display:flex;position:relative}.legacy-index .divider-line{background:linear-gradient(90deg,#0000,#8fe08a4d,#0000);flex:1;height:1px}.legacy-index .divider-label{letter-spacing:.2em;color:var(--dim);text-transform:uppercase;white-space:nowrap;font-family:Orbitron,sans-serif;font-size:.6rem}.legacy-index .divider-label:before{content:"// ";color:var(--green);font-family:var(--font-mono);text-shadow:var(--glow-green)}.legacy-index .courses{z-index:1;gap:1.25rem;max-width:1100px;margin:0 auto;padding:0 2rem 4rem;display:grid;position:relative}.legacy-index .year-label{letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);text-shadow:var(--glow-cyan);margin:1.25rem 0 .25rem;font-family:Orbitron,sans-serif;font-size:.7rem;font-weight:700}.legacy-index .course-card{background:var(--bg1);box-shadow:var(--bevel-raised);opacity:0;border:1px solid #8fe08a1f;border-radius:4px;transition:opacity .65s,transform .65s,border-color .3s;position:relative;overflow:hidden;transform:translateY(20px)}.legacy-index .course-card.visible{opacity:1;transform:translateY(0)}.legacy-index .course-card:hover{border-color:#8fe08a59}.legacy-index .course-card.pinned{border-color:#d3c68e80;box-shadow:0 0 0 1px #d3c68e26}.legacy-index .course-header{background:var(--bg2);border-bottom:1px solid #8fe08a1a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:1.1rem 1.5rem;display:flex}.legacy-index .course-header.collapsible{cursor:pointer}.legacy-index .course-header-left{flex-direction:column;gap:.3rem;display:flex}.legacy-index .course-id{color:var(--green);letter-spacing:.1em;font-family:Orbitron,sans-serif;font-size:1.05rem;font-weight:700}.legacy-index .course-updated{color:var(--white);letter-spacing:.04em;font-family:Share Tech Mono,monospace;font-size:.7rem}.legacy-index .course-meta{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.75rem;margin-left:auto;display:flex}.legacy-index .section-meta{color:var(--dim);letter-spacing:.06em;font-family:Share Tech Mono,monospace;font-size:.62rem}.legacy-index .course-badge{letter-spacing:.15em;text-transform:uppercase;border-radius:2px;padding:.22rem .55rem;font-family:Orbitron,sans-serif;font-size:.58rem}.legacy-index .badge-grade{color:var(--gold);background:#d3c68e0d;border:1px solid #d3c68e4d}.legacy-index .badge-block{color:var(--cyan);background:#93d6c80d;border:1px solid #93d6c84d}.legacy-index .badge-instructor{color:var(--ice);background:#a9bcab0d;border:1px solid #a9bcab4d}.legacy-index .gc-link{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border:1px solid #87947c4d;border-radius:2px;padding:.2rem .6rem;font-family:Orbitron,sans-serif;font-size:.55rem;text-decoration:none;transition:color .2s,border-color .2s}.legacy-index .gc-link:hover{color:var(--green);border-color:#8fe08a66}.legacy-index .course-collapse-arrow{color:var(--dim);flex-shrink:0;font-family:Orbitron,sans-serif;font-size:.7rem;transition:transform .3s}.legacy-index .course-card.collapsed .course-collapse-arrow{transform:rotate(180deg)}.legacy-index .assignment-list{max-height:1200px;margin:0;padding:.5rem 0;list-style:none;transition:max-height .35s,opacity .35s;overflow:hidden}.legacy-index .course-card.collapsed .assignment-list{opacity:0;max-height:0}.legacy-index .assignment-item{border-bottom:1px solid #8fe08a0d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.8rem 1.5rem;text-decoration:none;transition:background .2s,padding-left .2s;display:flex}.legacy-index .assignment-item:last-child{border-bottom:none}.legacy-index .assignment-list a:before{content:none}.legacy-index .assignment-item.linked{cursor:pointer}.legacy-index .assignment-item.linked:hover{background:#8fe08a0a;padding-left:1.8rem}.legacy-index .assignment-left{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.legacy-index .assignment-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.legacy-index .dot-live{background:var(--green);box-shadow:0 0 6px #8fe08acc}.legacy-index .dot-archived{background:var(--dim)}.legacy-index .assignment-name{color:var(--white);letter-spacing:.03em;font-size:.82rem}.legacy-index .badge-new{letter-spacing:.15em;color:var(--bg0);background:var(--green);text-transform:uppercase;box-shadow:var(--glow-green);border-radius:2px;flex-shrink:0;padding:.15rem .4rem;font-family:Orbitron,sans-serif;font-size:.5rem;font-weight:700}.legacy-index .assignment-right{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:1.2rem;display:flex}.legacy-index .assignment-status{letter-spacing:.12em;text-transform:uppercase;font-family:Orbitron,sans-serif;font-size:.6rem}.legacy-index .status-live{color:var(--green)}.legacy-index .status-archived{color:var(--dim)}.legacy-index .empty-state{align-items:center;gap:1rem;padding:1.4rem 1.5rem;display:flex}.legacy-index .empty-icon{color:var(--dim);flex-shrink:0;font-family:Orbitron,sans-serif;font-size:1.2rem}.legacy-index .empty-text{color:var(--dim);font-size:.72rem;line-height:1.6}.legacy-index .yourclass-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.legacy-index .yourclass-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-shadow:var(--glow-gold);font-family:Orbitron,sans-serif;font-size:.62rem}.legacy-index .text-btn{color:var(--cyan);cursor:pointer;background:0 0;border:none;padding:0;font-family:Share Tech Mono,monospace;font-size:.7rem;text-decoration:underline}.legacy-index .text-btn:hover{color:var(--green)}.legacy-index .text-btn.inline{text-transform:none;letter-spacing:0}.legacy-index .course-card.picker-card,.legacy-index .course-card.teacher-note,.legacy-index .course-card.signin-note{padding:1.5rem}.legacy-index .teacher-note p,.legacy-index .signin-note p{color:var(--white);font-size:.85rem}.legacy-index .picker-head{letter-spacing:.12em;text-transform:uppercase;color:var(--green);justify-content:space-between;align-items:baseline;margin-bottom:.5rem;font-family:Orbitron,sans-serif;font-size:.72rem;display:flex}.legacy-index .picker-note{color:var(--dim);margin-bottom:1rem;font-size:.72rem}.legacy-index .picker-group{margin-bottom:1rem}.legacy-index .picker-group-label{letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin-bottom:.5rem;font-family:Share Tech Mono,monospace;font-size:.62rem}.legacy-index .picker-options{flex-wrap:wrap;gap:.6rem;display:flex}.legacy-index .picker-option{background:var(--bg2);cursor:pointer;border:1px solid #8fe08a33;border-radius:3px;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.6rem .9rem;font-family:Share Tech Mono,monospace;transition:border-color .2s,background .2s;display:flex}.legacy-index .picker-option:hover{background:#8fe08a0d;border-color:#8fe08a99}.legacy-index .picker-option.selected{border-color:var(--gold);background:#d3c68e0f}.legacy-index .picker-option:disabled{opacity:.6;cursor:default}.legacy-index .picker-course{color:var(--green);letter-spacing:.04em;font-size:.85rem}.legacy-index .picker-detail{color:var(--dim);letter-spacing:.06em;font-size:.62rem}.legacy-index .changelog-wrap{z-index:1;max-width:1100px;margin:0 auto;padding:0 2rem 5rem;position:relative}.legacy-index .changelog-toggle{color:var(--dim);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #87947c4d;border-radius:2px;justify-content:space-between;align-items:center;width:100%;padding:.5rem 1rem;font-family:Orbitron,sans-serif;font-size:.58rem;transition:color .2s,border-color .2s;display:flex}.legacy-index .changelog-toggle:hover{color:var(--green);border-color:#8fe08a4d}.legacy-index .changelog-arrow{transition:transform .3s}.legacy-index .changelog-toggle.open .changelog-arrow{transform:rotate(180deg)}.legacy-index .changelog-body{background:var(--bg1);box-shadow:var(--bevel-raised);border:1px solid #87947c33;border-radius:3px;max-height:360px;margin-top:1rem;padding:1rem 1.5rem;display:none;overflow-y:auto}.legacy-index .changelog-body.open{display:block}.legacy-index .changelog-entry{border-bottom:1px solid #87947c1a;align-items:baseline;gap:1.5rem;padding:.5rem 0;font-size:.72rem;display:flex}.legacy-index .changelog-entry:last-child{border-bottom:none}.legacy-index .changelog-date{color:var(--cyan);letter-spacing:.06em;flex-shrink:0;min-width:90px}.legacy-index .changelog-note{color:var(--dim);flex:1;min-width:200px;line-height:1.5}.legacy-index .changelog-filters{border-bottom:1px solid #87947c40;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.5rem;padding-bottom:.75rem;display:flex}.legacy-index .cl-select,.legacy-index .cl-date input{letter-spacing:.06em;color:var(--cyan);background:var(--bg2);border:1px solid #93d6c840;border-radius:2px;padding:.3rem .5rem;font-family:Share Tech Mono,monospace;font-size:.66rem}.legacy-index .cl-select:focus-visible,.legacy-index .cl-date input:focus-visible{outline:1px solid var(--green);outline-offset:1px}.legacy-index .cl-date{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);align-items:center;gap:.35rem;font-size:.6rem;display:inline-flex}.legacy-index .cl-date input::-webkit-calendar-picker-indicator{filter:invert(.7)sepia()hue-rotate(80deg);cursor:pointer}.legacy-index .cl-count{letter-spacing:.08em;color:var(--dim);margin-left:auto;font-size:.62rem}.legacy-index .cl-tags{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.35rem;display:inline-flex}.legacy-index .cl-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap;border:1px solid #87947c59;border-radius:2px;padding:.08rem .35rem;font-size:.55rem}.legacy-index .cl-tag.cl-type{color:var(--cyan);border-color:#93d6c84d}.legacy-index .cl-tag.cl-type-feature{color:var(--green);border-color:#8fe08a59}.legacy-index .cl-tag.cl-type-fix{color:var(--amber);border-color:#ff8c0059}.legacy-index .cl-tag.cl-type-visual{color:var(--gold);border-color:#d3c68e59}.legacy-index footer{z-index:1;text-align:center;border-top:1px solid #8fe08a1a;padding:2rem;position:relative}.legacy-index .footer-logo{color:var(--dim);letter-spacing:.2em;margin-bottom:.5rem;font-family:Orbitron,sans-serif;font-size:.72rem;font-weight:700}.legacy-index .footer-sub{color:#87947c99;letter-spacing:.1em;font-size:.58rem}.legacy-index .footer-archive{letter-spacing:.1em;color:var(--dim);margin-top:1rem;font-family:Share Tech Mono,monospace;font-size:.62rem;text-decoration:none;display:inline-block}.legacy-index .footer-archive:hover{color:var(--green)}.legacy-index .footer-version{margin-top:.75rem}@media (width<=768px){.legacy-index header{flex-wrap:wrap;min-height:auto;padding:.8rem 1rem}.legacy-index .logo{font-size:1.1rem}.legacy-index .header-right{gap:.6rem}.legacy-index .hero{padding:2rem 1rem 1.5rem}.legacy-index .hero h1{font-size:clamp(1.4rem,6vw,2rem)}.legacy-index .hero-sub{font-size:.76rem}.legacy-index .hero-meta{gap:1rem;margin-top:1.2rem}.legacy-index .hero-stat .value{font-size:1.1rem}.legacy-index .promo-callout{margin-left:1rem;margin-right:1rem}.legacy-index .submit-panel{padding:0 1rem}.legacy-index .submit-steps{flex-direction:column;gap:1rem}.legacy-index .submit-step{border-bottom:1px solid #8fe08a1a;border-right:none;margin-right:0;padding-bottom:1rem;padding-right:0}.legacy-index .submit-step:last-child{border-bottom:none;padding-bottom:0}.legacy-index .divider{padding:0 1rem}.legacy-index .courses{padding:0 1rem 3rem}.legacy-index .course-header{padding:.9rem 1rem}.legacy-index .assignment-item{padding:.75rem 1rem}.legacy-index .changelog-wrap{padding:0 1rem 3rem}.legacy-index footer{padding:1.5rem 1rem}}@media (prefers-reduced-motion:reduce){.legacy-index .course-card{opacity:1;transition:none;transform:none}.legacy-index .hero-stat .value,.legacy-index .step-num,.legacy-index .promo-icon{animation:none}}.gauntlet .drawing-frame:has(.viewer-slot){border-color:var(--line-strong);padding:0}.gauntlet .viewer-slot,.gauntlet .viewer-host{width:100%;height:100%}.gauntlet .tool-paths{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem;margin:.8rem 0 .4rem;display:grid}.gauntlet .tool-path{border:1px solid var(--line,#16242c);background:var(--panel-2,#0e161b);border-radius:8px;flex-direction:column;gap:.5rem;padding:.9rem 1rem 1rem;display:flex}.gauntlet .tool-path.recommended{border-color:var(--green,#00ff41);box-shadow:inset 0 0 0 1px #00ff412e}.gauntlet .tool-path-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.gauntlet .tool-path-head h3{font-family:var(--font-head,"Orbitron", sans-serif);letter-spacing:.05em;text-transform:uppercase;color:var(--white,#e8fff0);margin:0;font-size:.82rem}.gauntlet .tool-path-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--bg0,#05080a);background:var(--green,#00ff41);border-radius:4px;padding:.12rem .4rem;font-family:Share Tech Mono,monospace;font-size:.56rem}.gauntlet .tool-actions{flex-wrap:wrap;gap:.4rem;margin-top:auto;display:flex}.gauntlet .tool-actions .btn{padding:.4rem .7rem;font-size:.72rem}.gauntlet .drawing-popped{z-index:4;text-align:center;background:#04070ad1;flex-direction:column;justify-content:center;align-items:center;gap:.7rem;padding:1rem;display:flex;position:absolute;inset:0}.gauntlet .drawing-tools{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.gauntlet .dtool{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);background:var(--bg2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:.35rem .7rem;font-size:.66rem}.gauntlet .dtool:hover{border-color:var(--cyan)}.gauntlet .dtool:disabled{opacity:.6;cursor:default;color:var(--dim)}.gauntlet .dtool-hint{font-size:.72rem}.lightbox-viewer{border:1px solid var(--line-strong);background-color:#04130c;border-radius:3px;width:100%;height:78vh;overflow:hidden;box-shadow:inset 0 0 0 1px #00ff411f}.float-panel{z-index:120;background:var(--panel,#0a1014);border:1px solid var(--line-strong);resize:both;border-radius:8px;flex-direction:column;width:380px;min-width:220px;height:320px;min-height:180px;display:flex;position:fixed;overflow:hidden;box-shadow:0 14px 44px #0009}.float-head{background:var(--panel-2,#0e161b);border-bottom:1px solid var(--line);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:.3rem .55rem;display:flex}.float-title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);font-size:.62rem}.float-close{color:var(--dim);cursor:pointer;background:0 0;border:none;font-size:1.05rem;line-height:1}.float-close:hover{color:var(--crimson,#f35)}.float-body{flex:1;min-height:0;position:relative}.gauntlet .tutorial{border:1px solid var(--line);background:var(--bg1);border-radius:4px;padding:.6rem 1rem}.gauntlet .tutorial>summary{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);cursor:pointer;padding:.2rem 0;font-size:.72rem}.gauntlet .tutorial[open]>summary{margin-bottom:.5rem}.gauntlet .tutorial-embed{aspect-ratio:16/9;border:1px solid var(--line);border-radius:4px;width:100%;position:relative;overflow:hidden}.gauntlet .tutorial-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.gauntlet .series-filter{flex-wrap:wrap;gap:.5rem;margin:.25rem 0 1.25rem;display:flex}.gauntlet .series-chip{font-family:var(--font-mono);letter-spacing:.06em;color:var(--dim);background:var(--bg2);border:1px solid var(--line);cursor:pointer;border-radius:20px;padding:.3rem .8rem;font-size:.68rem}.gauntlet .series-chip:hover{border-color:var(--line-strong);color:var(--white)}.gauntlet .series-chip.active{color:var(--bg0);background:var(--cyan);border-color:var(--cyan)}.gauntlet .series-chip .chip-n{opacity:.7}.gauntlet .series-section{margin-bottom:1.5rem}.gauntlet .series-head{margin:.5rem 0}.gauntlet .series-head h2{margin:0}.gauntlet .series-desc{margin:.15rem 0 0;font-size:.85rem}.gauntlet .series-new{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem;display:flex}.gauntlet .series-new .ff-input{flex:1;min-width:140px}.gauntlet .series-editor{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.gauntlet .series-item{border:1px solid var(--line);background:var(--bg2);border-radius:6px;padding:.7rem}.gauntlet .series-item-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.gauntlet .series-item-head .ff-input{flex:1;min-width:120px}.gauntlet .series-order{text-align:center;flex:0 0 64px;min-width:0}.gauntlet .series-members{flex-direction:column;gap:.35rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.gauntlet .series-member{background:var(--bg1);border:1px solid var(--line);border-radius:4px;align-items:center;gap:.6rem;padding:.35rem .55rem;display:flex}.gauntlet .member-title{color:var(--white);flex:1}.gauntlet .member-actions{align-items:center;gap:.5rem;display:flex}.gauntlet .member-empty{padding:.3rem .55rem;font-size:.82rem}.gauntlet .series-add{gap:.5rem;margin-top:.6rem;display:flex}.gauntlet .series-add .ff-input{flex:1}.gauntlet .region-heading{margin-top:1rem;display:block}.gauntlet .region-head,.gauntlet .region-row{border:1px solid #0000;border-radius:4px;grid-template-columns:minmax(0,1fr) repeat(4,58px) auto;align-items:center;gap:.4rem;padding:.2rem .3rem;display:grid}.gauntlet .region-head.paged,.gauntlet .region-row.paged{grid-template-columns:minmax(0,1fr) repeat(5,58px) auto}.gauntlet .region-head{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);text-align:center;margin:.4rem 0 .2rem;font-size:.56rem}.gauntlet .region-head span:first-child{text-align:left}.gauntlet .region-row{margin-bottom:.4rem}.gauntlet .region-row.sel{border-color:var(--line-strong);background:#00f0ff0f}.gauntlet .region-acts{justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.gauntlet .region-num{text-align:center}.gauntlet .run-bar{z-index:20;border:1px solid var(--line-strong);border-radius:var(--radius-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04070af0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin:0 0 1.25rem;padding:.6rem 1rem;display:flex;position:sticky;top:4.75rem;box-shadow:0 8px 26px #00000080}.gauntlet .run-bar-clock{align-items:center;display:flex}.gauntlet .run-bar-code{flex-direction:column;align-items:flex-end;gap:.15rem;min-width:0;display:flex}.gauntlet .rh-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-size:.55rem}.gauntlet .rh-code{font-family:var(--font-mono);letter-spacing:.24em;color:var(--gold);text-shadow:var(--glow-gold);cursor:pointer;word-break:break-all;background:0 0;border:1px dashed #c8ff0059;border-radius:6px;padding:.1rem .5rem;font-size:clamp(1.2rem,5vw,1.7rem);line-height:1.15}.gauntlet .rh-code:hover{border-color:var(--gold)}.gauntlet .rh-copy-state{font-family:var(--font-mono);letter-spacing:.08em;color:var(--dim);font-size:.58rem}.gauntlet .rh-copy-state.ok{color:var(--green)}@media (width<=720px){.gauntlet .run-bar{top:4rem}.gauntlet .run-bar-code{align-items:flex-start}}.install-prompt.svelte-p94eks{left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));z-index:1000;background:var(--bg1);border:1px solid var(--green);border-radius:10px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex;position:fixed;box-shadow:0 0 24px #0000008c}.ip-body.svelte-p94eks{min-width:0}.ip-title.svelte-p94eks{letter-spacing:.08em;text-transform:uppercase;color:var(--green);font-family:Share Tech Mono,monospace;font-size:.8rem;display:block}.ip-copy.svelte-p94eks{color:var(--white);margin:.2rem 0 0;font-family:Rajdhani,sans-serif;font-size:.95rem;line-height:1.3}.ip-actions.svelte-p94eks{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.ip-install.svelte-p94eks,.ip-dismiss.svelte-p94eks{letter-spacing:.05em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border-radius:6px;padding:.5rem .85rem;font-family:Share Tech Mono,monospace;font-size:.78rem}.ip-install.svelte-p94eks{background:var(--green);color:var(--bg0);border:1px solid var(--green)}.ip-dismiss.svelte-p94eks{color:var(--dim);border:1px solid var(--dim);background:0 0}.ip-dismiss.svelte-p94eks:hover{color:var(--white);border-color:var(--white)}.pwp-overlay.svelte-ozvpf{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.pwp-panel.svelte-ozvpf{background:var(--bg1,#050f07);border:1px solid var(--line-strong,#00ff4159);border-radius:8px;width:min(600px,100%);max-height:calc(100vh - 2rem);padding:1.6rem;overflow-y:auto;box-shadow:0 18px 60px #000000b3}.pwp-eyebrow.svelte-ozvpf{font-family:var(--font-mono,"Share Tech Mono", monospace);letter-spacing:.28em;text-transform:uppercase;color:var(--cyan,#00f0ff);font-size:.62rem}h2.svelte-ozvpf{font-family:var(--font-display,"Rajdhani", sans-serif);letter-spacing:.03em;color:var(--white,#e8ffe8);margin:.35rem 0 0;font-size:1.5rem;font-weight:700}.pwp-sub.svelte-ozvpf{font-family:var(--font-display,"Rajdhani", sans-serif);color:var(--dim,#4a7a52);margin:.5rem 0 1.1rem;font-size:.95rem;line-height:1.5}.pwp-grid.svelte-ozvpf{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}@media (width<=480px){.pwp-grid.svelte-ozvpf{grid-template-columns:repeat(2,1fr)}}.pwp-option.svelte-ozvpf{background:var(--bg2,#081209);border:1px solid var(--line,#00ff4126);color:var(--pw);cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;gap:.5rem;padding:.9rem .5rem .75rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.pwp-option.svelte-ozvpf:hover{border-color:var(--pw-line);background:var(--pw-bg)}.pwp-option.selected.svelte-ozvpf{border-color:var(--pw);background:var(--pw-bg);box-shadow:0 0 12px var(--pw-line)}.pwp-option.svelte-ozvpf svg:where(.svelte-ozvpf){width:30px;height:30px}.pwp-code.svelte-ozvpf{font-family:var(--font-mono,"Share Tech Mono", monospace);letter-spacing:.16em;font-size:.72rem}.pwp-error.svelte-ozvpf{font-family:var(--font-mono,"Share Tech Mono", monospace);color:var(--amber,#ff8c00);margin:.8rem 0 0;font-size:.68rem}.pwp-actions.svelte-ozvpf{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.2rem;display:flex}.pwp-confirm.svelte-ozvpf{font-family:var(--font-mono,"Share Tech Mono", monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--green,#00ff41);border:1px solid var(--line-strong,#00ff4159);cursor:pointer;background:#00ff4114;border-radius:4px;padding:.55rem 1.1rem;font-size:.72rem}.pwp-confirm.svelte-ozvpf:hover:not(:disabled){border-color:var(--green,#00ff41);box-shadow:0 0 10px #00ff414d}.pwp-confirm.svelte-ozvpf:disabled{color:var(--dim,#4a7a52);cursor:default;box-shadow:none;background:0 0}.pwp-later.svelte-ozvpf{font-family:var(--font-mono,"Share Tech Mono", monospace);letter-spacing:.08em;color:var(--dim,#4a7a52);cursor:pointer;background:0 0;border:none;font-size:.64rem;text-decoration:underline}.pwp-later.svelte-ozvpf:hover{color:var(--white,#e8ffe8)}@media (prefers-reduced-motion:reduce){.pwp-option.svelte-ozvpf{transition:none}}
