:root{--ground:#f3f2ee;--surface:#fff;--surface-alt:#edece6;--ink:#141a22;--ink-2:#3d4855;--ink-3:#6b7684;--rule:#e0ded6;--rule-strong:#c9c6bc;--navy:#16283f;--navy-soft:#24405f;--navy-ink:#f6f5f1;--brass:#a8842c;--brass-wash:#f6f0df;--ok:#1c6b47;--ok-bg:#e9f2ec;--ok-line:#c6ded1;--danger:#8e2222;--danger-bg:#f9eceb;--danger-line:#ebcfcc;--attention:#8a5b10;--attention-bg:#f8f0e2;--paper:var(--ground);--card:var(--surface);--muted:var(--ink-3);--line:var(--rule);--gold:var(--brass);--radius:3px;--shadow:none;--step--1:.8125rem;--step-0:1rem;--step-1:1.1875rem;--step-2:1.5rem;--step-3:2rem;--step-4:2.75rem;--measure:62ch;--display:Newsreader, Georgia, "Times New Roman", serif;--body:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--data:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;margin:0 0 .5rem;font-weight:500}h1{font-size:var(--step-3);line-height:1.12}h2{font-size:var(--step-2);line-height:1.18}h3{font-family:var(--body);font-size:var(--step-0);letter-spacing:0;margin:1.5rem 0 .375rem;font-weight:600}a{color:var(--navy);text-underline-offset:.18em}a:hover{color:var(--brass)}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.auth-wrap{place-items:center;min-height:100dvh;padding:2rem 1.25rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);width:100%;max-width:24rem;padding:2.25rem 2rem}.brand{margin-bottom:1.75rem}.brand-mark{font-family:var(--data);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;display:inline-flex}.brand-mark:before{content:"";border:1px solid var(--brass);flex:none;width:.5rem;height:.5rem;transform:rotate(45deg)}.brand-sub{color:var(--ink-3);font-size:var(--step--1);margin-top:.5rem;display:block}label{font-size:var(--step--1);color:var(--ink-2);margin-bottom:.375rem;font-weight:500;display:block}input[type=text],input[type=email],input[type=password],input[type=date],input[type=tel],select,textarea{width:100%;font:inherit;font-size:var(--step-0);color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:.625rem .75rem}input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #16283f1a}textarea{resize:vertical;min-height:5rem}.field{margin-bottom:1.125rem}.field-row{flex-wrap:wrap;gap:1rem;display:flex}.field-row .field{flex:12rem}.optional{color:var(--ink-3);font-weight:400;font-size:var(--step--1)}button.primary{font:inherit;font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--navy-ink);background:var(--navy);border:1px solid var(--navy);border-radius:var(--radius);cursor:pointer;padding:.6875rem 1.25rem;font-weight:500;transition:background .15s}button.primary:hover:not(:disabled){background:var(--navy-soft)}button.primary:disabled{opacity:.45;cursor:not-allowed}button.small{font:inherit;font-size:var(--step--1);color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);cursor:pointer;padding:.375rem .75rem;font-weight:500}button.small:hover:not(:disabled){border-color:var(--navy)}button.small:disabled{opacity:.45;cursor:not-allowed}button.small.ok{color:var(--ok);border-color:var(--ok-line);background:var(--ok-bg)}button.small.bad{color:var(--danger);border-color:var(--danger-line);background:var(--danger-bg)}.note{font-size:var(--step--1);color:var(--ink-3);text-align:center;max-width:var(--measure);margin:1.25rem 0 0}.alert{font-size:var(--step--1);border:1px solid var(--rule);border-radius:0 var(--radius) var(--radius) 0;border-left-width:2px;margin:0 0 1.125rem;padding:.75rem .875rem;line-height:1.5}.alert-error{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-line);border-left-color:var(--danger)}.alert-ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line);border-left-color:var(--ok)}.topbar{background:var(--surface);border-bottom:1px solid var(--rule);align-items:center;gap:1rem;padding:.875rem clamp(1rem,4vw,2.5rem);display:flex}.topbar .brand-mark{color:var(--ink)}.topbar-right{font-family:var(--data);letter-spacing:.04em;color:var(--ink-3);align-items:center;gap:1rem;margin-left:auto;font-size:.75rem;display:flex}.topnav{gap:1.25rem;display:flex}.topnav a{font-size:var(--step--1);color:var(--ink-2);text-decoration:none}.topnav a:hover{color:var(--brass)}.linkbtn{font:inherit;font-size:var(--step--1);color:var(--ink-2);cursor:pointer;text-underline-offset:.18em;background:0 0;border:0;padding:0;text-decoration:underline}.linkbtn:hover{color:var(--brass)}.linkbtn-dark{color:var(--ink)}.rail{background:var(--surface-alt);border-bottom:1px solid var(--rule);display:flex}.rail span{font-family:var(--data);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:center;border-bottom:2px solid #0000;flex:1 1 0;padding:.5rem .75rem .5625rem;font-size:.6875rem}.rail .on{color:var(--ink);background:var(--surface);border-bottom-color:var(--brass)}main.page{max-width:44rem;margin:0 auto;padding:clamp(2rem,5vw,3.25rem) clamp(1rem,4vw,2.5rem) 5rem}main.page-wide{max-width:66rem}.crumb{font-family:var(--data);letter-spacing:.08em;text-transform:uppercase;margin:0 0 1.5rem;font-size:.75rem}.crumb a{color:var(--ink-3);text-decoration:none}.crumb a:hover{color:var(--brass)}.lede{font-size:var(--step-1);color:var(--ink-2);max-width:var(--measure);margin:0 0 1.5rem;line-height:1.5}.muted{color:var(--ink-3);font-size:var(--step--1);max-width:var(--measure)}.card{border:0;border-top:1px solid var(--rule);background:0 0;border-radius:0;margin:2.25rem 0 0;padding:1.75rem 0 0}.card h2{font-family:var(--body);font-size:var(--step-0);letter-spacing:.01em;margin-bottom:.625rem;font-weight:600}.card h3:first-of-type{margin-top:1rem}.next-up{border-left:2px solid var(--brass);margin:0 0 2rem;padding:.125rem 0 .125rem 1rem}.next-up .lbl{font-family:var(--data);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3125rem;font-size:.6875rem;display:block}.next-up .val{font-size:var(--step-1);font-weight:500;line-height:1.3;display:block}.next-up .meta{font-size:var(--step--1);color:var(--ink-3);max-width:var(--measure);margin-top:.3125rem;display:block}dl.kv{gap:0;margin:0;display:grid}dl.kv div{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:1.5rem;padding:.625rem 0;display:flex}dl.kv div:last-child{border-bottom:0}dl.kv dt{font-family:var(--data);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:.75rem}dl.kv dd{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-weight:500}.table-scroll{overflow-x:auto}table.grid{border-collapse:collapse;width:100%;font-size:var(--step--1)}table.grid th{text-align:left;font-family:var(--data);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule-strong);white-space:nowrap;padding:.625rem .75rem .625rem 0;font-size:.6875rem;font-weight:500}table.grid td{border-bottom:1px solid var(--rule);vertical-align:top;padding:.75rem .75rem .75rem 0}table.grid tr:last-child td{border-bottom:0}table.grid .num{text-align:right;font-family:var(--data);font-variant-numeric:tabular-nums;padding-right:1rem}.pill{font-family:var(--data);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;background:0 0;border:0;padding:0;font-size:.6875rem;font-weight:500}.pill-upcoming{color:var(--attention)}.pill-running{color:var(--ok)}.pill-finished{color:var(--ink-3)}.pill-cancelled{color:var(--danger)}.qr{border:1px solid var(--rule);background:#fff;width:11rem;height:11rem;margin:1.25rem 0;padding:.5rem;display:block}.secret{font-family:var(--data);font-size:var(--step--1);letter-spacing:.05em;word-break:break-all;background:var(--surface-alt);border:1px solid var(--rule);border-radius:var(--radius);margin:0 0 1rem;padding:.625rem .75rem}.req{border-bottom:1px solid var(--rule);align-items:flex-start;gap:1.25rem;padding:1rem 0;display:flex}.req:first-of-type{padding-top:.5rem}.req:last-of-type{border-bottom:0}.req-main{flex:auto;min-width:0}.req-head{flex-wrap:wrap;align-items:baseline;gap:.75rem;display:flex}.tick{border:1px solid var(--rule-strong);color:#0000;border-radius:0;flex:none;place-items:center;width:1.125rem;height:1.125rem;margin-top:.25rem;font-size:.625rem;display:inline-grid}.tick-on{background:var(--ok);border-color:var(--ok);color:#fff}.req-hint,.req-file,.req-note{font-size:var(--step--1);color:var(--ink-3);margin:.3125rem 0 0 1.875rem}.req-file{font-family:var(--data)}.req-note{color:var(--danger);background:var(--danger-bg);border-left:2px solid var(--danger);padding:.375rem .625rem;display:inline-block}.checklist-done{background:var(--ok-bg);border-left:2px solid var(--ok);color:var(--ink);font-size:var(--step--1);align-items:flex-start;gap:.75rem;margin:0 0 1rem;padding:.875rem 1rem;line-height:1.5;display:flex}.req-action{flex:none}.upload{font-size:var(--step--1);letter-spacing:.04em;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);cursor:pointer;white-space:nowrap;padding:.375rem .75rem;font-weight:500;display:inline-block;position:relative}.upload:hover{border-color:var(--navy)}.upload input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.upload:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px #16283f1a}.review-row{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;display:flex}.review-row input{font-size:var(--step--1);flex:14rem;padding:.375rem .625rem}ul.plain{font-size:var(--step--1);color:var(--ink-2);margin:.75rem 0 0;padding-left:1rem}ul.plain li{margin-bottom:.375rem}.qblock{border-bottom:1px solid var(--rule);border-width:0 0 1px;margin:0;padding:1.5rem 0}.qblock:first-of-type{padding-top:.5rem}.qblock:last-of-type{border-bottom:0}.qblock legend{font-size:var(--step-0);align-items:baseline;gap:.625rem;margin-bottom:.875rem;padding:0;font-weight:500;line-height:1.45;display:flex}.qnum{font-family:var(--data);color:var(--brass);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.opt{border:1px solid var(--rule);border-radius:var(--radius);font-size:var(--step--1);cursor:pointer;align-items:flex-start;gap:.625rem;margin-bottom:.5rem;padding:.625rem .75rem;display:flex}.opt:hover{border-color:var(--navy)}.opt input{flex:none;width:auto;margin-top:.1875rem}.opt-right{border-color:var(--ok);background:var(--ok-bg)}.opt-wrong{border-color:var(--danger);background:var(--danger-bg)}.why{font-size:var(--step--1);color:var(--ink-3);border-left:2px solid var(--rule-strong);margin:.5rem 0 0;padding-left:.75rem}.why-missed{color:var(--ink-2);border-left-color:var(--brass)}.finish{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.75rem;padding-top:1.5rem;display:flex}.finish button{width:auto}.score-card{border-top-color:var(--brass)}.attempts{color:var(--ink-3);font-size:var(--step--1);font-weight:400;font-family:var(--data)}.row{flex-wrap:wrap;align-items:center;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
