@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");:root{--color-bg:#0a0e17;--color-surface:#111827;--color-surface-card:#162032;--color-surface-hover:#1e293b;--color-text:#f8fafc;--color-text-muted:#94a3b8;--color-accent:#0070c0;--color-accent-ink:#ffffff;--color-accent-2:#00a3dd;--color-accent-2-ink:#04263a;--color-accent-warn:#fcd116;--color-accent-danger:#ff1b22;--color-divider:rgba(255,255,255,0.09);--color-neutral-100:#f8fafc;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-accent-100:rgba(0,112,192,0.13);--color-accent-200:rgba(0,112,192,0.24);--color-accent-300:#6bb8ec;--color-accent-400:#339fe0;--color-accent-500:#0070c0;--color-accent-600:#005c9e;--color-accent-700:#004a80;--color-accent-800:#003a64;--color-accent-900:#002b4b;--color-accent-2-100:rgba(0,163,221,0.13);--color-accent-2-200:rgba(0,163,221,0.24);--color-accent-2-300:#6fd3f5;--color-accent-2-400:#33bced;--color-accent-2-500:#00a3dd;--color-accent-2-600:#0089ba;--color-accent-2-700:#006e96;--color-accent-2-800:#005674;--color-accent-2-900:#003f55;--font-heading:"Inter",system-ui,-apple-system,sans-serif;--font-heading-weight:700;--font-body:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--shadow-sm:0 1px 2px rgba(0,0,0,0.35);--shadow-md:0 4px 18px rgba(0,0,0,0.45);--shadow-lg:0 14px 40px rgba(0,0,0,0.65)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight)}.washed{filter:saturate(.8) brightness(1.05)}*,:after,:before{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.5;font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.15;letter-spacing:-.02em;margin:0 0 var(--space-2)}h1{font-size:36px}h2{font-size:26px}h3{font-size:20px}h4{font-size:17px}h5{font-size:15px}h6{font-size:12px;letter-spacing:.08em;text-transform:uppercase}p{margin:0 0 var(--space-3)}a{color:var(--color-accent-2);text-underline-offset:3px}img{display:block;max-width:100%}figure{margin:0}figcaption{font-size:11px;margin-top:var(--space-1)}.text-muted,figcaption{color:var(--color-text-muted)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:rgba(0,112,192,.4);color:#fff}.hr{height:1px;border:0;margin:var(--space-4) 0;background:var(--color-divider)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-heading);font-weight:600;font-size:13px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:8px 16px;border-radius:var(--radius-md);transition:background-color .16s ease,color .16s ease,transform .14s ease,box-shadow .16s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn svg{display:block}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-accent-ink);font-weight:700;box-shadow:0 2px 10px rgba(0,112,192,.3)}.btn-primary:hover{background:var(--color-accent-400);transform:translateY(-1px)}.btn-primary:active{background:var(--color-accent-600);transform:scale(.98)}.btn-secondary{background:rgba(255,255,255,.05);border-color:var(--color-divider);color:var(--color-text)}.btn-secondary:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.2)}.btn-secondary:active{background:rgba(255,255,255,.14)}.btn-ghost{color:var(--color-accent-2);padding-inline:var(--space-1)}.btn-ghost:hover{background:rgba(0,163,221,.12)}.btn-ghost:active{background:rgba(0,163,221,.2)}.btn-icon{width:36px;height:36px;padding:0}.btn-block{width:100%;margin-top:var(--space-2)}.field{min-width:0}.field>label{display:block;font-size:12px;font-weight:600;margin-bottom:5px;color:var(--color-text-muted)}.input{width:100%;min-width:0;max-width:100%;min-height:38px;padding:7px 12px;font:inherit;font-size:13.5px;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-neutral-900);border:1px solid var(--color-divider);border-radius:var(--radius-md);transition:border-color .18s ease,box-shadow .18s ease}.input:hover{border-color:rgba(255,255,255,.22)}.input:focus-visible{border-color:var(--color-accent);outline-offset:0;box-shadow:0 0 0 3px rgba(0,112,192,.28)}textarea.input{min-height:90px;resize:vertical}.radio{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px}.radio input,.seg-opt input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.radio .dot{width:16px;height:16px;flex:none;border-radius:50%;border:1.5px solid var(--color-divider)}.radio input:checked+.dot,.radio:hover .dot{border-color:var(--color-accent)}.radio input:checked+.dot{background:var(--color-accent);box-shadow:inset 0 0 0 4px var(--color-surface)}.radio input:focus-visible+.dot{outline:2px solid var(--color-accent);outline-offset:2px}.seg{overflow:hidden;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-neutral-900)}.seg,.seg-opt{display:inline-flex}.seg-opt{align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:500;cursor:pointer;color:var(--color-text-muted);transition:all .15s ease}.seg-opt+.seg-opt{border-left:1px solid var(--color-divider)}.seg-opt:has(input:checked){background:var(--color-accent);color:var(--color-accent-ink);font-weight:700}.seg-opt:not(:has(input:checked)):hover{background:rgba(255,255,255,.06);color:var(--color-text)}.seg-opt:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:-2px}.card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-divider);transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1),border-color .18s ease}.card-kicker{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-weight:700}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:17px;line-height:1.25;color:var(--color-text)}.card-body{margin:0;font-size:13px;flex:1 1;line-height:1.5}.card-body,.card-meta{color:var(--color-text-muted)}.card-meta{display:flex;align-items:center;gap:6px;font-size:11px}.elev-sm{box-shadow:var(--shadow-sm)}.elev-md{box-shadow:var(--shadow-md)}.elev-lg{box-shadow:var(--shadow-lg)}.tag{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 9px;border-radius:10px;line-height:1.3}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-300);border:1px solid rgba(0,112,192,.28)}.tag-accent-2{background:var(--color-accent-2-100);color:var(--color-accent-2-300);border:1px solid rgba(0,163,221,.28)}.tag-neutral{background:rgba(255,255,255,.07);color:var(--color-neutral-200);border:1px solid var(--color-divider)}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent)}.nav{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:none}.nav-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:18px;margin-right:auto}.nav a{color:inherit;text-decoration:none;font-size:14px}.nav a:hover,.nav a[aria-current=page]{color:var(--color-accent)}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--color-text-muted);padding:10px var(--space-2)}.table td,.table th{border-bottom:1px solid var(--color-divider)}.table td{padding:11px var(--space-2);color:var(--color-text)}.table tbody tr{transition:background .14s ease}.table tbody tr:hover{background:rgba(255,255,255,.035)}.dialog-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:var(--space-4);background:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog{width:min(520px,100%);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);border:1px solid var(--color-divider)}.dialog-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:19px;color:var(--color-text)}.dialog-body{font-size:13.5px;color:var(--color-text-muted);line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.dialog>*{flex-shrink:0}.dialog-actions.sticky{position:-webkit-sticky;position:sticky;bottom:calc(-1 * var(--space-4));z-index:2;margin:0 calc(-1 * var(--space-4)) calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-divider);flex-wrap:wrap}.card,.dialog{border-radius:18px}.btn,.input,.seg{border-radius:999px}.input{padding-inline:14px}select.input,textarea.input{border-radius:var(--radius-md);padding:11px 14px}textarea.input{line-height:1.55}:root{--chip-accent-bg:rgba(0,112,192,0.16);--chip-accent-fg:#6bb8ec;--chip-accent2-bg:rgba(0,163,221,0.16);--chip-accent2-fg:#6fd3f5;--chip-neutral-bg:rgba(255,255,255,0.08);--chip-neutral-fg:#cbd5e1;--chip-warn-bg:rgba(252,209,22,0.16);--chip-warn-fg:#ffdb52;--chip-danger-bg:rgba(255,27,34,0.16);--chip-danger-fg:#ff9a9d;--text-accent:#4aa8e6;--text-accent2:#33bced;--scrim:rgba(0,0,0,0.55)}[data-theme=light]{--color-bg:#f1f5f9;--color-surface:#ffffff;--color-surface-card:#ffffff;--color-surface-hover:#eef2f7;--color-text:#0f172a;--color-text-muted:#5a6b82;--color-divider:rgba(15,23,42,0.10);--color-accent-100:rgba(0,112,192,0.14);--color-accent-200:rgba(0,112,192,0.22);--color-accent-300:#005c9e;--color-accent-2-100:rgba(0,163,221,0.14);--color-accent-2-200:rgba(0,163,221,0.22);--shadow-sm:0 1px 2px rgba(15,23,42,0.08);--shadow-md:0 4px 18px rgba(15,23,42,0.12);--shadow-lg:0 14px 40px rgba(15,23,42,0.20);--chip-accent-bg:#d6e9f9;--chip-accent-fg:#005c9e;--chip-accent2-bg:#d0eefb;--chip-accent2-fg:#006e96;--chip-neutral-bg:#e7edf4;--chip-neutral-fg:#334155;--chip-warn-bg:#fdf3c7;--chip-warn-fg:#997a06;--chip-danger-bg:#fee2e2;--chip-danger-fg:#c81e24;--text-accent:#0070c0;--text-accent2:#006e96;--scrim:rgba(15,23,42,0.35)}[data-theme=light] body{background:var(--color-bg);color:var(--color-text)}[data-theme=light] .input,[data-theme=light] .seg{background:#fff}[data-theme=light] .btn-secondary{background:rgba(15,23,42,.04);color:var(--color-text)}[data-theme=light] .btn-secondary:hover{background:rgba(15,23,42,.08);border-color:rgba(15,23,42,.18)}[data-theme=light] .btn-ghost:hover{background:rgba(0,163,221,.12)}[data-theme=light] .table tbody tr:hover{background:rgba(15,23,42,.035)}[data-theme=light] ::selection{background:rgba(0,112,192,.28);color:#04233b}.card.ctf-hero{background:linear-gradient(135deg,var(--color-accent-900),var(--color-neutral-900) 55%,var(--color-accent-2-900));color:#fff}[data-theme=light] .card.ctf-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 14%,var(--color-surface)),var(--color-surface) 55%,color-mix(in srgb,var(--color-accent-2) 14%,var(--color-surface)));color:var(--color-text);border:1px solid var(--color-divider)}.tag-accent{background:var(--chip-accent-bg);color:var(--chip-accent-fg)}.tag-accent,.tag-accent-2{border:1px solid transparent}.tag-accent-2{background:var(--chip-accent2-bg);color:var(--chip-accent2-fg)}.tag-neutral{background:var(--chip-neutral-bg);color:var(--chip-neutral-fg);border:1px solid transparent}.app-hamburger{display:none!important}.app-scrim{display:none}body.reader-focus .app-hamburger,body.reader-focus .app-scrim,body.reader-focus .app-sidebar{display:none!important}@media (max-width:900px){.app-sidebar{position:fixed!important;z-index:60;left:0;top:0;bottom:0;height:100vh!important;transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow-lg)}.app-sidebar.open{transform:translateX(0)}.app-hamburger{display:inline-flex!important}.app-scrim{display:block;position:fixed;inset:0;background:var(--scrim);z-index:55}.app-content,.app-topbar{padding-left:16px!important;padding-right:16px!important}.resp-split{grid-template-columns:minmax(0,1fr)!important}.table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}.app-primary-icon{display:none}@media (max-height:500px){.app-topbar{padding-top:8px!important;padding-bottom:8px!important}.app-topbar h2{font-size:20px!important}}@media (max-width:560px){.app-search{display:none!important}.app-topbar{padding-top:12px!important;padding-bottom:12px!important}.app-topbar-row{gap:10px!important}.app-topbar-row>div:nth-child(2){flex:1 1 auto}.app-topbar-actions{gap:6px!important;flex:none}.app-topbar h2{font-size:18px!important;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-primary{width:36px;height:36px;min-width:36px;min-height:36px;padding:0!important;justify-content:center}.app-primary-icon{display:inline-flex}.app-primary-label{display:none}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:999px;border:3px solid var(--color-bg)}::-webkit-scrollbar-track{background:transparent}.md-body h3{font-size:22px;margin:14px 0 8px}.md-body h3,.md-body h4{font-family:var(--font-heading)}.md-body h4{font-size:18px;margin:14px 0 6px}.md-body p{margin:0 0 10px;line-height:1.6}.md-body ol,.md-body ul{margin:0 0 10px;padding-left:22px}.md-body blockquote{margin:0 0 10px;padding:6px 14px;border-left:3px solid var(--color-accent);background:var(--color-surface);border-radius:0 10px 10px 0}.md-body blockquote p{margin:4px 0}.md-body hr{border:0;border-top:1px solid var(--color-divider);margin:14px 0}.md-body del{opacity:.75}.md-align-left{text-align:left}.md-align-center{text-align:center}.md-align-right{text-align:right}.md-align-justify{text-align:justify}.md-align-center ol,.md-align-center ul,.md-align-right ol,.md-align-right ul{display:inline-block;text-align:left}.md-body li{margin:3px 0}.md-body code{background:var(--color-accent-100);color:var(--color-accent-800);padding:1px 6px;border-radius:6px;font-family:ui-monospace,Menlo,monospace;font-size:.9em}[data-theme=light] .md-body code{color:var(--color-accent-700)}.md-body code{color:var(--color-accent-300)}.md-body pre{background:var(--color-neutral-900);color:var(--color-neutral-100);padding:14px 16px;border-radius:14px;overflow:auto;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.5;margin:0 0 12px}[data-theme=light] .md-body pre{background:var(--color-surface-hover);color:var(--color-text);border:1px solid var(--color-divider)}.md-body pre code{background:none;color:inherit;padding:0}.md-body a{color:var(--text-accent2)}.md-body strong{font-weight:700}@keyframes pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@keyframes tilein{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.auth-split{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:var(--color-bg)}.auth-brand{--auth-fg:#f1f5f9;--auth-fg-muted:rgba(241,245,249,0.72);--auth-fg-dim:rgba(241,245,249,0.5);--auth-grid:rgba(255,255,255,0.045);position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;gap:22px;padding:clamp(48px,6vw,104px) clamp(48px,6vw,104px) clamp(40px,4vw,60px);color:var(--auth-fg);background:radial-gradient(115% 115% at 0 0,rgba(0,112,192,.36),transparent 52%),radial-gradient(120% 120% at 100% 100%,rgba(0,163,221,.3),transparent 55%),linear-gradient(150deg,#0b1626,#080d17 62%)}[data-theme=light] .auth-brand{--auth-fg:#12283f;--auth-fg-muted:rgba(18,40,63,0.74);--auth-fg-dim:rgba(18,40,63,0.52);--auth-grid:rgba(0,74,128,0.07);background:radial-gradient(115% 115% at 0 0,rgba(0,112,192,.16),transparent 55%),radial-gradient(120% 120% at 100% 100%,rgba(0,163,221,.14),transparent 55%),linear-gradient(150deg,#e9f3fb,#d6e8f6 62%)}@keyframes noteTwinkle{0%,to{box-shadow:0 0 0 0 transparent;filter:brightness(1)}50%{box-shadow:0 0 12px 2px color-mix(in srgb,var(--chip-accent-fg) 40%,transparent);filter:brightness(1.07)}}.auth-note-twinkle{animation:noteTwinkle 1.8s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.auth-note-twinkle{animation:none}}.auth-brand-top{display:flex;flex-direction:column;gap:18px}.auth-brand-main{flex:1 1;display:flex;flex-direction:column;justify-content:center}.auth-hero{margin:0;font-size:clamp(30px,3.4vw,42px);line-height:1.14;letter-spacing:-.01em}.auth-subtitle{margin:14px 0 30px;font-size:16px;color:var(--auth-fg-muted);max-width:400px}.auth-brand-foot{font-size:14px;color:var(--auth-fg-muted);font-weight:500;padding-top:20px;margin-top:4px;border-top:1px solid rgba(255,255,255,.08)}[data-theme=light] .auth-brand-foot{border-top-color:rgba(0,74,128,.12)}.auth-brand:before{inset:0;opacity:.6;background-image:linear-gradient(var(--auth-grid) 1px,transparent 1px),linear-gradient(90deg,var(--auth-grid) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:radial-gradient(90% 80% at 45% 35%,#000 30%,transparent 78%);mask-image:radial-gradient(90% 80% at 45% 35%,#000 30%,transparent 78%)}.auth-brand:after,.auth-brand:before{content:"";position:absolute;z-index:-1}.auth-brand:after{width:420px;height:420px;right:-120px;top:40%;background:radial-gradient(circle,rgba(0,112,192,.3),transparent 70%);filter:blur(8px)}.auth-brand-mark{display:inline-flex;align-items:center;gap:13px}.auth-brand-badge{width:128px;height:128px;flex:none;border-radius:24px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,var(--color-accent),var(--color-accent-2));color:#ffffff;box-shadow:0 8px 24px rgba(0,112,192,.4)}.auth-brand-features{display:flex;flex-direction:column;gap:16px;max-width:400px}.auth-brand-feature{display:flex;align-items:flex-start;gap:12px}.auth-brand-feature .ico{width:34px;height:34px;flex:none;border-radius:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:var(--color-accent-300)}.auth-brand-feature .ico,.auth-panel{display:flex;align-items:center;justify-content:center}.auth-panel{position:relative;padding:40px 24px}.auth-toggle{position:absolute;left:50%;bottom:26px;transform:translateX(-50%)}.auth-panel-inner{width:100%;max-width:440px;display:flex;flex-direction:column;gap:20px;animation:authin .4s ease both}@keyframes authin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.auth-panel h3{font-size:23px}.auth-panel .field>label{font-size:12.5px;margin-bottom:6px}.auth-panel .input{min-height:46px;font-size:14.5px;padding:11px 15px;border-radius:13px}.auth-panel .btn{min-height:47px;font-size:14.5px}.auth-brandbar{display:none;align-items:center;gap:11px;justify-content:center}@media (max-width:860px){.auth-split{grid-template-columns:1fr}.auth-brand{display:none}.auth-brandbar{display:flex}}@media (max-height:560px),(max-width:860px){.auth-panel{flex-direction:column;gap:18px}.auth-panel-inner{margin-block:auto}.auth-toggle{position:static;transform:none;flex:none}}@media (max-height:820px){.auth-brand{padding:clamp(22px,4vh,56px) clamp(40px,6vw,104px);gap:14px}.auth-brand-top{gap:12px}.auth-brand-badge{width:84px;height:84px;border-radius:18px}.auth-hero{font-size:clamp(26px,3vw,34px)}.auth-subtitle{margin:10px 0 18px;font-size:15px}.auth-brand-foot{padding-top:14px}.auth-panel{padding:24px}}@media (max-height:680px){.auth-brand{padding:18px clamp(32px,5vw,80px);gap:10px}.auth-brand-badge{width:60px;height:60px;border-radius:14px}.auth-hero{font-size:23px}.auth-subtitle{margin:8px 0 12px;font-size:14.5px}}.auth-events{display:flex;flex-direction:column;gap:10px;max-width:412px}.auth-events-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--auth-fg-dim);margin-bottom:3px}.auth-featured{--ev:var(--color-accent);--ev-lite:var(--color-accent-300);position:relative;display:flex;flex-direction:column;gap:3px;padding:18px;border-radius:18px;overflow:hidden;isolation:isolate;text-decoration:none;color:var(--auth-fg);background:linear-gradient(140deg,color-mix(in srgb,var(--ev) 30%,transparent),color-mix(in srgb,var(--ev) 7%,transparent) 68%),rgba(255,255,255,.02);border:1px solid color-mix(in srgb,var(--ev) 40%,transparent);box-shadow:0 16px 40px color-mix(in srgb,var(--ev) 16%,transparent);transition:transform .16s ease,box-shadow .16s ease;animation:fadeswap .45s ease}@keyframes fadeswap{0%{opacity:.15;transform:translateY(6px)}to{opacity:1;transform:none}}.auth-featured:after{content:"";position:absolute;z-index:-1;width:220px;height:220px;right:-70px;top:-80px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--ev) 45%,transparent),transparent 70%);filter:blur(10px)}.auth-featured:hover{transform:translateY(-2px);box-shadow:0 22px 48px color-mix(in srgb,var(--ev) 26%,transparent)}.auth-featured-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.auth-featured .ico{width:40px;height:40px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ev) 28%,transparent);color:var(--ev-lite)}.auth-featured-title{font-family:var(--font-heading);font-size:20px;font-weight:800;line-height:1.15;letter-spacing:-.01em}.auth-featured-note{display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;font-size:12px;font-weight:700;letter-spacing:.01em;padding:4px 11px 4px 8px;border-radius:999px;margin-bottom:13px;color:var(--ev-lite);background:color-mix(in srgb,var(--ev) 18%,transparent)}.auth-featured-note svg{flex:none;color:var(--ev)}[data-theme=light] .auth-featured-note{color:color-mix(in srgb,var(--ev) 62%,#0f2233);background:color-mix(in srgb,var(--ev) 15%,#ffffff)}[data-theme=light] .auth-featured .ico{color:var(--ev);background:color-mix(in srgb,var(--ev) 18%,#ffffff)}[data-theme=light] .auth-event-status{color:color-mix(in srgb,var(--ev) 60%,#0f2233);background:color-mix(in srgb,var(--ev) 16%,#ffffff)}[data-theme=light] .auth-featured{box-shadow:0 14px 34px color-mix(in srgb,var(--ev) 22%,transparent)}.auth-featured-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:700;background:var(--ev-lite);color:#04233b;box-shadow:0 6px 16px color-mix(in srgb,var(--ev) 40%,transparent)}.auth-dots{display:flex;align-items:center;gap:7px;padding-left:3px;margin-top:3px}.auth-dot{--ev:var(--color-accent);width:8px;height:8px;flex:none;padding:0;border:0;border-radius:999px;cursor:pointer;background:color-mix(in srgb,var(--ev) 55%,rgba(255,255,255,.12));opacity:.45;transition:width .25s ease,opacity .2s ease}.auth-dot:hover{opacity:.8}.auth-dot.is-active{width:22px;opacity:1;background:var(--ev)}.auth-event-status{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--ev) 20%,transparent);color:var(--ev-lite)}.auth-event-status.is-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ev);box-shadow:0 0 0 0 color-mix(in srgb,var(--ev) 60%,transparent);animation:evpulse 1.8s ease-out infinite}@keyframes evpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ev) 55%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.ev-awareness{--ev:#0070c0;--ev-lite:#6bb8ec}.ev-ctf{--ev:#fcd116;--ev-lite:#ffdb52}.ev-training{--ev:#00a3dd;--ev-lite:#6fd3f5}.auth-mobile-event{display:none}@media (max-width:860px){.auth-mobile-event{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:12px;text-decoration:none;font-size:12.5px;color:var(--color-text);background:var(--chip-accent-bg);border:1px solid transparent}.auth-mobile-event .ico{display:inline-flex}.auth-mobile-event .ico,.auth-mobile-event strong{color:var(--chip-accent-fg)}}@media (prefers-reduced-motion:reduce){.auth-event-status.is-live:before,.auth-featured,.auth-panel-inner{animation:none}}.week-hero{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;gap:14px;padding:clamp(20px,3.2vw,32px) clamp(22px,3.4vw,36px);border-radius:var(--radius-lg);color:#eef4fb;box-shadow:var(--shadow-md);background:radial-gradient(120% 130% at 0 0,rgba(0,112,192,.42),transparent 55%),radial-gradient(120% 130% at 100% 100%,rgba(0,163,221,.32),transparent 58%),linear-gradient(150deg,#0b1626,#0a1220 62%)}[data-theme=light] .week-hero{color:#0f2438;background:radial-gradient(120% 130% at 0 0,rgba(0,112,192,.18),transparent 55%),radial-gradient(120% 130% at 100% 100%,rgba(0,163,221,.15),transparent 58%),linear-gradient(150deg,#eef6fc,#dbebf7 62%)}.week-hero:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.6;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 0);background-size:30px 30px;-webkit-mask-image:radial-gradient(90% 90% at 28% 18%,#000 30%,transparent 80%);mask-image:radial-gradient(90% 90% at 28% 18%,#000 30%,transparent 80%)}[data-theme=light] .week-hero:before{background-image:linear-gradient(rgba(0,74,128,.06) 1px,transparent 0),linear-gradient(90deg,rgba(0,74,128,.06) 1px,transparent 0)}.week-hero:after{content:"";position:absolute;z-index:-1;width:300px;height:300px;right:-90px;top:30%;background:radial-gradient(circle,rgba(0,112,192,.32),transparent 70%);filter:blur(6px)}.week-back{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:inherit;font-size:12.5px;padding:6px 12px;border-radius:10px;color:inherit;background:color-mix(in srgb,currentColor 9%,transparent);border:1px solid color-mix(in srgb,currentColor 20%,transparent);transition:background .15s ease}.week-back:hover{background:color-mix(in srgb,currentColor 16%,transparent)}.week-hero-row{display:flex;align-items:center;gap:15px}.week-hero-badge{width:48px;height:48px;flex:none;border-radius:15px;justify-content:center;font-size:23px;color:#fff;background:linear-gradient(140deg,var(--color-accent),var(--color-accent-2));box-shadow:0 8px 22px rgba(0,112,192,.42)}.week-hero-badge,.week-kicker{display:flex;align-items:center}.week-kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;opacity:.72;gap:8px;flex-wrap:wrap}.week-kicker .dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6}.week-hero h2{margin:2px 0 0;font-size:clamp(21px,2.8vw,27px);line-height:1.14}.week-scenario{padding:clamp(20px,3vw,28px) clamp(22px,3vw,32px);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-sm)}.week-qcard,.week-scenario{position:relative;overflow:hidden}.week-progress-head{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--color-text-muted)}.week-progress-head .qn{font-weight:700;color:var(--color-text)}.week-progress-track{height:8px;border-radius:999px;background:var(--color-surface-hover);overflow:hidden}.week-progress-fill{height:100%;border-radius:999px;transition:width .35s cubic-bezier(.4,0,.2,1);background:linear-gradient(90deg,var(--color-accent),var(--color-accent-2));box-shadow:0 0 10px color-mix(in srgb,var(--color-accent) 55%,transparent)}.week-qnav{display:flex;flex-wrap:wrap;gap:6px}.week-qdot{width:30px;height:30px;flex:none;border-radius:9px;cursor:pointer;border:1.5px solid var(--color-divider);background:transparent;color:var(--color-text-muted);font-family:var(--font-mono);font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:transform .1s ease,box-shadow .15s ease}.week-qdot:hover{transform:translateY(-1px);border-color:var(--color-accent)}.week-qdot.done{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.week-qdot.current{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-100)}.week-qdot.current:not(.done){color:var(--text-accent)}.week-qhead{display:flex;align-items:flex-start;gap:12px}.week-qnum{width:38px;height:38px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;background:linear-gradient(140deg,var(--color-accent),var(--color-accent-2));box-shadow:0 8px 20px color-mix(in srgb,var(--color-accent) 40%,transparent)}.week-qnum,.week-qtext{font-family:var(--font-heading)}.week-qtext{flex:1 1;font-size:20px;font-weight:600;line-height:1.3;padding-top:4px}:root{--q-good:#10b981;--q-bad:#ef4444}.q-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:560px){.q-grid{grid-template-columns:1fr}}.q-opt{--oc:var(--color-accent);display:flex;align-items:center;gap:13px;width:100%;text-align:left;font:inherit;cursor:pointer;position:relative;padding:17px 18px;border-radius:16px;color:var(--color-text);font-family:var(--font-heading);font-size:15.5px;font-weight:600;background:linear-gradient(150deg,color-mix(in srgb,var(--oc) 12%,var(--color-surface)),var(--color-surface));border:1.5px solid color-mix(in srgb,var(--oc) 45%,transparent);box-shadow:var(--shadow-sm);transition:transform .16s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,border-color .18s,background .18s,opacity .18s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (hover:hover) and (pointer:fine){.q-opt:hover:not(:disabled){transform:translateY(-3px) scale(1.012);box-shadow:0 12px 26px color-mix(in srgb,var(--oc) 26%,transparent)}}.q-opt:focus-visible{outline:2px solid var(--oc);outline-offset:2px}.q-opt:disabled{cursor:default}.q-opt .q-key{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:15px;color:var(--oc);background:color-mix(in srgb,var(--oc) 18%,transparent);border:1.5px solid color-mix(in srgb,var(--oc) 55%,transparent)}.q-opt .q-lab{flex:1 1}.q-opt .q-mark{flex:none;opacity:0;font-weight:800;font-size:19px;transition:opacity .2s}.q-opt .q-tick{flex:none;width:24px;height:24px;display:grid;place-items:center;font-size:14px;font-weight:800;line-height:1;color:#0b1220;border:2px solid color-mix(in srgb,var(--oc) 60%,transparent);transition:background .12s,border-color .12s}.q-opt .q-tick.dot{border-radius:50%}.q-opt .q-tick.box{border-radius:7px}.q-opt.sel,.q-opt.sel:hover:not(:disabled){transform:translateY(-2px);background:linear-gradient(150deg,color-mix(in srgb,var(--oc) 30%,var(--color-surface)),color-mix(in srgb,var(--oc) 12%,var(--color-surface)));border-color:var(--oc);box-shadow:0 0 0 3px color-mix(in srgb,var(--oc) 75%,transparent),0 12px 26px color-mix(in srgb,var(--oc) 28%,transparent)}.q-opt.sel .q-key{background:color-mix(in srgb,var(--oc) 30%,transparent);border-color:var(--oc)}.q-opt.sel .q-tick{background:var(--oc);border-color:var(--oc)}.q-opt.sel:active:not(:disabled),.q-opt:active:not(:disabled){transform:scale(.985);transition-duration:.06s}.q-opt.correct{--oc:var(--q-good);border-color:var(--q-good);animation:qpop .5s cubic-bezier(.34,1.56,.64,1)}.q-opt.wrong{--oc:var(--q-bad);border-color:var(--q-bad)}.q-opt.correct .q-mark{opacity:1;color:var(--q-good)}.q-opt.wrong .q-mark{opacity:1;color:var(--q-bad)}.q-opt.dim{opacity:.42}@keyframes qpop{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}.qz-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:6}.qz-cf{position:absolute;width:9px;height:9px;border-radius:2px;will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.q-opt{transition:none}.q-opt.correct{animation:none}}.week-feedback{display:flex;gap:11px;padding:13px 15px;border-radius:14px;font-size:13.5px}.week-feedback.ok{background:var(--chip-accent-bg);color:var(--chip-accent-fg)}.week-feedback.no{background:var(--chip-danger-bg);color:var(--chip-danger-fg)}.week-feedback .fb-ico{width:26px;height:26px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;background:color-mix(in srgb,currentColor 16%,transparent)}.week-feedback .fb-title{font-weight:700}.week-feedback .fb-why{margin-top:3px;font-weight:400;opacity:.92;line-height:1.45}.week-done{position:relative;overflow:hidden;isolation:isolate;color:#eef4fb;padding:clamp(22px,3.4vw,34px);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:16px;align-items:flex-start;background:radial-gradient(120% 130% at 100% 0,rgba(0,163,221,.34),transparent 58%),linear-gradient(150deg,#0b1626,#0a1220 62%)}[data-theme=light] .week-done{color:#0f2438;background:radial-gradient(120% 130% at 100% 0,rgba(0,163,221,.16),transparent 58%),linear-gradient(150deg,#eef6fc,#dbebf7 62%)}.week-done-row{display:flex;align-items:center;gap:16px}.week-score-ring{width:66px;height:66px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:27px;background:linear-gradient(140deg,var(--color-accent),var(--color-accent-2));color:#fff;box-shadow:0 10px 26px rgba(0,112,192,.4)}.week-done h2,.week-score-ring{font-family:var(--font-heading)}.week-done h2{margin:0;font-size:clamp(20px,2.6vw,24px)}.week-done .sub{font-size:13px;opacity:.82;margin-top:2px}@media (prefers-reduced-motion:reduce){.week-progress-fill{transition:none}}.badge-new{animation:badgeNewPulse 1.8s ease-in-out infinite}@keyframes badgeNewPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-accent-2) 55%,transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb,var(--color-accent-2) 0%,transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb,var(--color-accent-2) 0%,transparent)}}@media (prefers-reduced-motion:reduce){.badge-new{animation:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent-2) 24%,transparent)}}