:root{--bg:#0d1016;--panel:#141821;--panel-2:#1a1f2a;--line:#262c39;--ink:#e3e7ee;--muted:#8b94a6;--accent:#5ecfd6;--pass:#4ec97f;--fail:#f0645f;--warn:#f0a35e;--radius:8px;--tok-keyword:#c397ff;--tok-string:#8fd694;--tok-number:#f0a35e;--tok-fn:#7fb6ff;--tok-type:#5ecfd6;--tok-comment:#6c7686;--tok-operator:#c8cedb;--tok-property:#e0e5ee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.tok-keyword{color:var(--tok-keyword)}.tok-string{color:var(--tok-string)}.tok-number{color:var(--tok-number)}.tok-fn{color:var(--tok-fn)}.tok-type{color:var(--tok-type)}.tok-comment{color:var(--tok-comment);font-style:italic}.tok-operator{color:var(--tok-operator)}.tok-property{color:var(--tok-property)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}code,pre{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}button{font:inherit;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);cursor:pointer;border-radius:6px;padding:7px 14px}button:hover:not(:disabled){border-color:#3a4354}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#06232a;font-weight:600}button.danger{color:var(--fail)}.muted{color:var(--muted)}.error{color:var(--fail)}.centred{justify-content:center;align-items:center;height:100%;display:flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}a{color:var(--accent)}.ok{color:var(--pass)}.small{font-size:12.5px}.shell{flex-direction:column;min-height:100%;display:flex}.nav{border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:14px 24px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;font-size:15px;font-weight:700;text-decoration:none}.nav nav,.nav-right{align-items:center;gap:18px;display:flex}.nav-right{margin-left:auto}.nav a{color:var(--muted);font-size:13.5px;text-decoration:none}.nav a:hover,.nav a.active{color:var(--ink)}.btn-link{border:1px solid var(--line);border-radius:6px;padding:6px 12px;color:var(--ink)!important}.btn-link:hover{border-color:var(--accent)}button.link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:13.5px}button.link:hover{color:var(--ink)}.page{flex:1;width:100%;max-width:860px;margin:0 auto;padding:44px 24px 64px}.foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:20px 24px;font-size:12.5px;display:flex}.foot-links{gap:16px;display:flex}.hero h1{letter-spacing:-.02em;margin:0 0 16px;font-size:34px;line-height:1.2}.lede{color:var(--muted);max-width:62ch;margin:0 0 24px;font-size:16px;line-height:1.65}.cta{flex-wrap:wrap;gap:10px;margin-bottom:8px;display:flex}.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:6px;padding:9px 16px;font-size:14px;text-decoration:none;display:inline-block}.btn:hover{border-color:#3a4354}.btn.primary{background:var(--accent);border-color:var(--accent);color:#06232a;font-weight:600}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:52px 0;display:grid}.grid-3 h3{margin:0 0 8px;font-size:14px}.grid-3 p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.6}.strip{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;gap:40px;padding:22px;display:flex}.strip div{flex-direction:column;display:flex}.strip strong{font-size:22px}.strip span{color:var(--muted);font-size:12.5px}.honest{margin-top:52px}.honest h2{margin:0 0 12px;font-size:17px}.honest p{color:var(--muted);max-width:62ch;line-height:1.7}.prose-page h1{letter-spacing:-.02em;margin:0 0 12px;font-size:27px}.prose-page h2{margin:34px 0 10px;font-size:16px}.prose-page p,.prose-page li{max-width:68ch;line-height:1.72}.prose-page ul{padding-left:20px}.prose-page li{margin-bottom:8px}.prose-page table{border-collapse:collapse;width:100%;margin:14px 0;font-size:13.5px}.prose-page th,.prose-page td,.board th,.board td{text-align:left;border-bottom:1px solid var(--line);padding:9px 12px}.prose-page th,.board th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;font-weight:500}.table-scroll{overflow-x:auto}.board{border-collapse:collapse;width:100%;font-size:13.5px}.board .num{text-align:right;font-variant-numeric:tabular-nums}.board .rank{color:var(--muted)}.board .weak{color:var(--warn)}.empty{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;padding:28px}.empty p{margin:0 0 6px}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:22px 0 34px;display:grid}.stat-cards div{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:3px;padding:16px;display:flex}.stat-cards strong{font-variant-numeric:tabular-nums;font-size:22px}.stat-cards span{color:var(--muted);font-size:12px}.form-page{justify-content:center;padding-top:24px;display:flex}.form{flex-direction:column;gap:15px;width:380px;max-width:100%;padding:28px;display:flex}.inline-form{width:100%}.form h1{margin:0;font-size:20px}.form>p{margin:0}.form label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.form label.check{color:var(--ink);flex-direction:row;align-items:flex-start;gap:9px;font-size:13px;line-height:1.5}.form label.check input{accent-color:var(--accent);width:auto;margin-top:2px}.form input[type=email],.form input[type=password],.form input[type=text]{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:9px 11px}.form input:focus{border-color:var(--accent);outline:none}.hint-text{color:var(--muted);font-size:11.5px;line-height:1.5}.hint-text.warn{color:var(--warn)}.leave{color:var(--muted);border-radius:5px;padding:2px 6px;font-size:16px;line-height:1;text-decoration:none}.leave:hover{color:var(--ink);background:var(--panel-2)}.drill{flex-direction:column;height:100%;display:flex}.bar{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.bar-left{align-items:center;gap:10px;min-width:0;display:flex}.bar-left h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:600;overflow:hidden}.bar-right{align-items:center;gap:18px;display:flex}.chip{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px}.chip-due{color:var(--warn);border-color:#4a3a26}.chip-new{color:var(--accent);border-color:#234047}.stat{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-weight:600}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px}.clock{font-variant-numeric:tabular-nums;text-align:right;min-width:74px;font-size:22px;font-weight:600}.clock.low{color:var(--warn)}.clock.over{color:var(--fail)}.columns{flex:1;grid-template-columns:minmax(320px,4fr) 6fr;gap:12px;min-height:0;padding:12px;display:grid}.columns>.panel{min-height:0;overflow:auto}.prose{padding:18px 20px;line-height:1.65}.prose h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 8px;font-size:13px}.prose h4{color:var(--muted);margin:16px 0 6px;font-size:12px}.prose p{margin:0 0 12px}.prose ul{margin:0 0 12px;padding-left:20px}.prose li{margin-bottom:6px}.prose code{background:var(--panel-2);border-radius:4px;padding:1px 5px;font-size:12.5px}.prose pre.sample{background:var(--bg);border:1px solid var(--line);white-space:pre;color:#c8cedb;border-radius:6px;margin:0 0 14px;padding:11px 13px;font-size:12.5px;line-height:1.55;overflow-x:auto}.meta{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);gap:12px;margin-bottom:16px;font-size:11px;display:flex}.outcome{border-bottom:1px solid var(--line);align-items:flex-start;gap:9px;padding:7px 0;display:flex}.outcome .marker{font-weight:700;line-height:1.5}.outcome.pass .marker{color:var(--pass)}.outcome.fail .marker{color:var(--fail)}.outcome-name{font-size:13px}.outcome-about{border-left:2px solid var(--line);color:var(--muted);margin:6px 0 0;padding-left:9px;font-size:12.5px;line-height:1.55}.outcome pre,.logs{background:var(--bg);white-space:pre-wrap;word-break:break-word;color:var(--muted);border-radius:5px;margin:5px 0 0;padding:8px 10px;font-size:12px}.failure{border-radius:var(--radius);border:1px solid #4a2725;margin-bottom:12px;padding:10px 12px}.failure strong{color:var(--fail);margin-bottom:4px;display:block}.failure .failure-message{color:var(--ink);margin:0 0 8px}.code-frame{background:var(--bg);white-space:pre;color:var(--muted);border-radius:5px;margin:0;padding:10px 12px;font-size:12px;line-height:1.5;overflow-x:auto}.frame-line.is-error{color:var(--ink)}.frame-number{color:#4a5262;-webkit-user-select:none;user-select:none;margin-right:12px;display:inline-block}.frame-caret{color:var(--fail)}.solution pre{background:var(--bg);border-radius:var(--radius);margin:0;padding:12px;font-size:12.5px;line-height:1.55;overflow-x:auto}.editor-panel{flex-direction:column;display:flex;overflow:hidden!important}.toolbar{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:9px 12px;display:flex}.toolbar .spacer{flex:1}.toolbar .hint{color:var(--muted);font-size:11px}.editor{flex:1;min-height:0;overflow:auto}.cm-editor{height:100%}.verdict{border-top:1px solid var(--line);background:var(--panel);align-items:center;gap:18px;padding:14px 20px;display:flex}.verdict-grade{border-radius:6px;padding:5px 12px;font-size:15px;font-weight:700}.grade-0{color:var(--fail);background:#3a1f1e}.grade-1{color:var(--warn);background:#3a2f1c}.grade-2,.grade-3{color:var(--pass);background:#1c3a2a}.verdict-score{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.verdict-score span{color:var(--muted);font-size:12px;font-weight:500}.verdict-maths{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}.verdict-detail{color:var(--muted);flex:1}.verdict-tag{border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.tag-note{color:var(--muted);margin-left:7px;font-size:11px}.verdict-error{color:var(--warn)}.toast{background:var(--panel-2);border:1px solid var(--warn);color:var(--warn);border-radius:999px;padding:10px 18px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@media (width<=900px){.columns{grid-template-rows:minmax(200px,auto) 1fr;grid-template-columns:1fr}}
