:root{color-scheme:dark;--bg:#0c1119;--panel:#131c28;--border:#263445;--text:#e6edf5;--muted:#98a9bd;--accent:#7de2b6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a.button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,pre:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.topbar{min-height:85px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:18px max(5vw,20px);gap:20px}.brand{font-size:21px;font-weight:850;letter-spacing:1px;white-space:nowrap}.brand>span:last-child{color:var(--accent)}.brand-icon{display:inline-block;border:1px solid var(--accent);border-radius:8px;padding:0 7px;margin-right:12px;color:var(--accent)}.team-nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.quiet{background:none;color:var(--muted);border:0;padding:5px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:700}.accent,em{color:var(--accent)}em{font-style:normal}main{max-width:1280px;margin:0 auto;padding:45px 28px;min-height:calc(100vh - 165px)}h1{font-size:clamp(28px,4vw,46px);line-height:1.2;letter-spacing:-1.3px;margin:12px 0 20px}h2{font-size:20px;margin:0 0 12px}h3{font-size:24px;line-height:1.3;margin:30px 0 12px}p{margin:0 0 18px}.muted{color:var(--muted)}.intro{color:var(--muted);font-size:17px;max-width:540px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:25px}.login-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;align-items:center;max-width:1060px;margin:50px auto}.login-layout h1{font-size:clamp(40px,5vw,64px)}.terminal{font:15px/1.9 ui-monospace,monospace;margin-top:35px;border-left:2px solid var(--border);padding-left:22px}.login-form{padding:36px}.login-form h2{font-size:28px}label{display:block;font-size:13px;font-weight:600;margin:20px 0 8px}input:not([type=hidden]),textarea{width:100%;background:#0b131e;border:1px solid #344458;border-radius:6px;color:var(--text);padding:12px}textarea{font-family:ui-monospace,monospace;resize:vertical}input[type=file]{padding:8px;font-size:12px}.primary,.button{border:1px solid #3c5d56;border-radius:6px;padding:10px 16px;font-weight:650;display:inline-block;background:#1d332f;color:var(--accent);text-align:center}.primary{background:var(--accent);color:#09271d;border-color:var(--accent);width:100%;margin-top:22px}.button:hover{background:#29463d}.primary:hover{background:#a0f3cf}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:15px 0 35px}.session-dot{color:var(--accent);white-space:nowrap}.session-dot:before{content:'●';margin-right:9px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0 45px}.stats .panel{display:flex;flex-direction:column;justify-content:center;gap:14px}.stats strong{font-size:32px}.stats small{font-size:17px;color:var(--muted)}progress{width:100%;height:10px;accent-color:var(--accent)}.section-heading,.panel-heading,.door-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-heading{margin-bottom:20px}.section-heading h2{margin:0}.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.door{display:flex;flex-direction:column}.door .description{flex:1}.description{white-space:pre-wrap;overflow-wrap:anywhere}.door-footer{border-top:1px solid var(--border);padding-top:20px;margin-top:15px}.door-footer strong{color:var(--accent)}.badge{font-size:12px;border:1px solid #425169;background:#202c3d;border-radius:30px;padding:5px 10px;white-space:nowrap}.badge.solved{color:var(--accent);border-color:#3c6654;background:#1a352c}.door-solved{border-color:#355d4e}.empty{text-align:center;margin:45px auto;padding:60px 25px}.back{color:var(--muted);font-size:13px}.door-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px;white-space:nowrap}.timer{font:24px ui-monospace,monospace;color:var(--accent)}.workspace{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}.tools{display:grid;gap:24px}.source-panel{padding:0;overflow:hidden}.source-panel .panel-heading{padding:22px 25px;border-bottom:1px solid var(--border)}.panel-heading h2{margin:0}pre{margin:0;padding:25px;overflow:auto;tab-size:4;max-height:720px;font:13px/1.85 ui-monospace,SFMono-Regular,Consolas,monospace;background:#0c1520}.source-note{font-size:12px;color:var(--muted);padding:18px 25px;margin:0;border-top:1px solid var(--border)}.syntax-keyword{color:#caa9ff}.syntax-string{color:#a6e7be}.syntax-number{color:#f4c487}.syntax-comment{color:#7c90a5}fieldset{padding:0;margin:0;border:0;min-width:0}.notice{padding:14px 18px;background:#203040;border:1px solid #3a526d;border-radius:7px;margin:18px 0;overflow-wrap:anywhere}.notice.error{background:#351e28;border-color:#81505b;color:#ffc3cd}.notice.failure{background:#342b1a;border-color:#7d6536;color:#f7d590}.notice.success{background:#17382b;border-color:#3a7857;color:#a2efc1}[hidden]{display:none!important}.small{font-size:12px;margin:8px 0}#hints{padding:0;list-style:none}#hints li{border-left:2px solid var(--accent);padding:8px 14px;margin:18px 0;background:#0f1924}#hints p{white-space:pre-wrap;margin:8px 0 0;overflow-wrap:anywhere}#hint-form .button{width:100%}footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--border);padding:22px max(5vw,20px);color:var(--muted);font-size:12px}@media(max-width:1000px){.doors{grid-template-columns:repeat(2,minmax(0,1fr))}.login-layout{gap:35px}.workspace{grid-template-columns:1fr}}@media(max-width:640px){main{padding:25px 18px}.topbar{align-items:flex-start}.topbar>.eyebrow{display:none}.team-nav{gap:6px;justify-content:flex-end;font-size:12px}.page-heading{align-items:flex-start;flex-direction:column}.door-meta{align-items:flex-start}.login-layout,.doors,.stats{grid-template-columns:1fr}.login-layout{margin:15px auto}.terminal{display:none}.panel,.login-form{padding:22px}.section-heading{align-items:flex-start;flex-direction:column}.stats{gap:12px}.stats .panel{flex-direction:row;align-items:center;justify-content:space-between}.source-panel{padding:0}.door h3{margin-top:20px}}

.registration-login{margin:22px 0 0;text-align:center}

/* Compact participant completion summary. */
.completion-panel{max-width:900px;margin:0 auto 30px;padding:26px;border-color:#3c6654}
.completion-header{display:flex;align-items:flex-start;gap:16px}
.completion-check{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:#1a352c;border:1px solid #3c6654;border-radius:50%;color:var(--accent);font-size:24px}
.completion-header .eyebrow{margin:0 0 5px;font-size:10px;letter-spacing:1.5px}
.completion-header h2{margin:0 0 6px;font-size:25px;line-height:1.25;letter-spacing:-.5px}
.completion-header h2:focus{outline:none}
.completion-header #progression-message{margin:0;color:var(--muted);font-size:13px}
.completion-tables{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}
.completion-table-wrap{min-width:0;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:#0c1520}
.completion-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;font-variant-numeric:tabular-nums}
.completion-table caption{text-align:left;padding:14px 16px;font-size:14px;font-weight:700;color:var(--text);background:#172331;border-bottom:1px solid var(--border)}
.completion-table th,.completion-table td{padding:11px 14px;border-bottom:1px solid var(--border)}
.completion-table thead th{font-size:11px;color:var(--muted);font-weight:650;background:#101b27}
.completion-table tbody th{font-weight:500;overflow-wrap:anywhere}
.completion-table tr:last-child>*{border-bottom:0}
.completion-table td{text-align:right;white-space:nowrap}
.completion-table thead th:last-child{text-align:right}
.completion-score{background:#10241e;color:var(--accent);font-weight:700}
.completion-score th{font-weight:700!important}
.completion-leaderboard .completion-table{min-width:540px}
.completion-leaderboard thead th{white-space:nowrap}
.completion-leaderboard tbody th{max-width:260px}
.completion-leaderboard td:first-child{text-align:left;font-weight:700}
.completion-leaderboard .leaderboard-top{background:#123126;color:#a2efc1}
.completion-leaderboard .leaderboard-top>*{border-bottom-color:#2c5140}
.completion-leaderboard .leaderboard-current{box-shadow:inset 3px 0 var(--accent)}
.completion-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-top:22px}
.completion-rules{flex:1;max-width:470px;color:var(--muted);font-size:12px;padding-top:10px}
.completion-rules summary{cursor:pointer;width:fit-content}
.completion-rules p{margin:10px 0 0;line-height:1.7}
.completion-actions{flex-shrink:0}
.completion-actions .button{padding:10px 20px;background:var(--accent);border-color:var(--accent);color:#09271d}
.completion-actions .button:hover{background:#a0f3cf}
@media(max-width:640px){
    .completion-panel{padding:20px}
    .completion-header{gap:12px}
    .completion-check{width:36px;height:36px;font-size:20px}
    .completion-header h2{font-size:21px}
    .completion-tables{grid-template-columns:1fr;gap:16px;margin:20px 0}
    .completion-table th,.completion-table td{padding:10px 12px}
    .completion-footer{flex-direction:column-reverse;gap:12px;margin-top:18px}
    .completion-actions,.completion-actions .button{width:100%}
    .completion-rules{padding-top:0}
}
