@font-face{font-family:Plus Jakarta Sans;font-weight:600 800;font-display:swap;src:url(plus-jakarta-sans-latin.be6419ffe34f1ed7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-weight:600 800;font-display:swap;src:url(plus-jakarta-sans-latin-ext.a048183be72ed5eb.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-weight:400 800;font-display:swap;src:url(manrope-latin.675812cc1bc8d273.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-weight:400 800;font-display:swap;src:url(manrope-latin-ext.0f19eb8be0f08d23.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-weight:500 700;font-display:swap;src:url(jetbrains-mono-latin.d4d543e2c04cd1cb.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-weight:500 700;font-display:swap;src:url(jetbrains-mono-latin-ext.8e2e0001a0e4caec.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{color-scheme:light;--font-display: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;--font-body: "Manrope", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--cyan-50: #eafbff;--cyan-100: #cff5fe;--cyan-200: #a5ecfd;--cyan-300: #74e1fc;--cyan-400: #43d8fb;--cyan-500: #1cc5ee;--cyan-600: #0aa3cb;--cyan-700: #0b7f9f;--cyan-800: #0f6076;--blue-50: #eef3fe;--blue-100: #dce6fd;--blue-200: #bfd1fb;--blue-300: #96b5f9;--blue-400: #5e93f6;--blue-500: #3a72e8;--blue-600: #2657cc;--blue-700: #1d43a2;--navy-500: #1364ae;--navy-600: #0b5296;--navy-700: #0a4176;--navy-800: #093157;--ink-950: #05080f;--ink-900: #0a0f1a;--ink-800: #131a28;--ink-700: #1e2837;--ink-600: #2c3949;--ink-500: #4a5768;--ink-400: #6c7a8c;--ink-300: #98a4b3;--ink-200: #c4ccd6;--ink-100: #e2e7ec;--ink-50: #f1f4f7;--bg: var(--ink-50);--surface: #ffffff;--text: var(--ink-900);--muted: var(--ink-500);--line: var(--ink-100);--line-strong: var(--ink-200);--dark: var(--ink-900);--accent: var(--cyan-400);--accent-strong: var(--cyan-500);--accent-ink: var(--ink-900);--accent-soft: var(--cyan-50);--accent-on-soft: var(--cyan-800);--accent-deep: var(--navy-600);--link: var(--blue-500);--link-hover: var(--navy-600);--focus: var(--blue-400);--ring: rgba(94, 147, 246, .35);--brand-gradient: linear-gradient(120deg, var(--cyan-400), var(--blue-400));--success: #12b981;--success-soft: #d6f5ea;--gold: #f5a524;--danger: #ef4b4b;--danger-soft: #fbdddd;--danger-ink: #b42828;--chip-bg: var(--ink-50);--toolbar-bg: rgba(255, 255, 255, .86);--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 26px;--r-pill: 999px;--radius-card: var(--r-lg);--radius-control: var(--r-pill);--radius-input: var(--r-md);--radius-media: var(--r-xl);--radius-rail: 0 var(--r-lg) var(--r-lg) 0;--radius-rail-top: 0 0 var(--r-lg) var(--r-lg);--bw-hairline: 1px;--bw-control: 1.5px;--bw-bold: 2px;--bw-rail: 3px;--shadow-sm: 0 2px 6px rgba(8, 34, 60, .07);--shadow: 0 8px 20px -6px rgba(8, 34, 60, .14);--shadow-slab: 6px 6px 0 var(--ink-900);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .38s;--ease-standard: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-punch: cubic-bezier(.34, 1.56, .64, 1);--press-scale: .97;--board: var(--ink-900);--board-line: var(--ink-600);--board-ink: #ffffff;--board-dim: var(--ink-300);--board-warn: #fbbf24;--chart-line: var(--blue-500);--chart-area: rgba(67, 216, 251, .28)}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--bg: var(--ink-950);--surface: #0e1420;--text: var(--ink-100);--muted: var(--ink-300);--line: var(--ink-700);--line-strong: var(--ink-600);--dark: var(--ink-950);--accent-strong: var(--cyan-300);--accent-soft: #10212b;--accent-on-soft: var(--cyan-300);--accent-deep: var(--cyan-300);--link: var(--blue-300);--link-hover: var(--cyan-300);--success: #22c55e;--success-soft: #0f2a1a;--gold: #fbbf24;--danger: #f38080;--danger-soft: #3a1517;--danger-ink: #f38080;--chip-bg: var(--ink-800);--toolbar-bg: rgba(5, 8, 15, .85);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .45);--shadow: 0 10px 34px rgba(0, 0, 0, .5);--shadow-slab: 6px 6px 0 var(--cyan-400);--chart-line: var(--cyan-400);--chart-area: rgba(67, 216, 251, .18)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 var(--font-body)}a{color:var(--link)}a:hover{color:var(--link-hover)}h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0;font-weight:800;letter-spacing:-.015em}h1{font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.025em}h2{font-size:1.35rem}h3{font-size:1.06rem;font-weight:700}p{margin:0}::selection{background:var(--cyan-200);color:var(--ink-900)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}#app:focus{outline:none}.skip-link{position:fixed;top:-100px;left:12px;z-index:10;padding:10px 18px;border-radius:0 0 var(--r-md) var(--r-md);background:var(--dark);color:#fff;font:700 14px var(--font-display);text-decoration:none;transition:top var(--dur-fast) var(--ease-standard)}.skip-link:focus{top:0;color:#fff}.site-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:11px max(16px,calc((100% - 980px)/2));background:var(--toolbar-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:var(--bw-hairline) solid var(--line)}.wordmark{font:800 1.06rem var(--font-display);letter-spacing:-.015em;color:var(--text);text-decoration:none;padding:8px 4px}.wordmark:hover{color:var(--text)}.site-header nav{display:flex;gap:4px;flex-wrap:wrap}.site-header nav a{color:var(--muted);font:700 .85rem var(--font-display);text-decoration:none;padding:8px 13px;border-radius:var(--radius-control);transition:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.site-header nav a:hover,.site-header nav a.active{color:var(--text);background:var(--chip-bg)}app-root,main>*{display:block}router-outlet{display:none}.contents{display:contents}main{max-width:980px;margin:0 auto;padding:34px 16px 72px}.page{display:flex;flex-direction:column;gap:36px;animation:page-in var(--dur-base) var(--ease-out)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.top-bar{position:fixed;inset:0 0 auto;height:3px;z-index:5;background:var(--brand-gradient);opacity:0;transform:scaleX(0);transform-origin:left;pointer-events:none}.is-loading .top-bar{opacity:1;transform:scaleX(.9);transition:opacity .12s linear .2s,transform 6s cubic-bezier(.1,.7,.2,1) .2s}.skeleton{display:block;border-radius:var(--radius-card);background:linear-gradient(100deg,var(--surface) 40%,var(--line) 50%,var(--surface) 60%) 0 0 / 300% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skeleton-row{height:92px}.skeleton-board{height:360px;border-radius:var(--radius-media)}.skeleton-button{width:240px;height:50px;border-radius:var(--radius-control);opacity:.25}.lede{font-size:1.06rem;max-width:62ch;margin-top:12px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:.875rem}.eyebrow{font:800 .69rem var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:10px}.button{display:inline-block;font:700 .875rem/1.3 var(--font-display);padding:12px 22px;border-radius:var(--radius-control);border:var(--bw-control) solid transparent;background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none;text-align:center;transition:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-punch)}.button:hover{background:var(--accent-strong);color:var(--accent-ink)}.button:active:not([disabled]){transform:scale(var(--press-scale))}.button.secondary{background:transparent;border-color:var(--line-strong);color:var(--text)}.button.secondary:hover{border-color:var(--accent)}.button.ghost{background:transparent;border-color:var(--ink-600);color:#fff}.button.ghost:hover{border-color:var(--accent)}.button.danger{background:transparent;border-color:var(--danger);color:var(--danger-ink)}.button.danger:hover:not([disabled]){background:var(--danger);color:#fff}.button[disabled]{opacity:.5;cursor:not-allowed}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.notice{padding:10px 14px;border-left:var(--bw-rail) solid var(--danger);border-radius:var(--radius-rail);background:var(--danger-soft);color:var(--danger-ink);font-weight:600}.notice.calm{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent-on-soft);font-weight:500}.notice.calm a{color:inherit;font-weight:700}.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--ink-950) 0%,var(--ink-900) 60%,var(--navy-800) 100%);color:#fff;border-radius:var(--radius-media);padding:clamp(24px,6vw,56px);display:grid;gap:20px}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 36% 60% at 20% -20%,rgba(67,216,251,.22),transparent 70%),radial-gradient(ellipse 36% 60% at 88% -10%,rgba(94,147,246,.2),transparent 70%);pointer-events:none}.hero>*{position:relative;z-index:1}.hero h1{font-size:clamp(2.1rem,5.5vw,3.4rem);line-height:1.04;letter-spacing:-.045em}.hero .eyebrow{color:var(--accent);margin:0}.hero .lede{color:var(--ink-200);font-size:1.12rem;margin:0}.hero .button:not(.ghost){padding:14px 28px;font-size:1rem;background:var(--brand-gradient);color:var(--ink-900)}.hero .button:not(.ghost):hover{filter:brightness(1.05)}.hero-accent{background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-control);background:var(--surface);border:var(--bw-hairline) solid var(--line-strong);color:var(--text);font:700 .8rem var(--font-display)}.hero .chip,.board .chip{background:transparent;border-color:var(--ink-600);color:var(--ink-200)}.track-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}.track-list li{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:26px 24px 22px;background:var(--surface);border:var(--bw-hairline) solid var(--line);border-radius:var(--radius-rail-top);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-fast) var(--ease-standard)}.track-list li:before{content:"";position:absolute;inset:0 0 auto;height:6px;background:var(--brand-gradient)}.track-list li:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent)}.track-list .track-text{flex:1 1 320px}.track-list h3 a{color:inherit;text-decoration:none}.track-list h3 a:hover{text-decoration:underline}.track-list p{margin-top:4px}.section-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.facts dt{font:700 .95rem/1.6 var(--font-display);color:var(--text)}.facts dd{margin:0}@media (max-width: 560px){.facts{grid-template-columns:1fr;gap:0}.facts dd{margin-bottom:10px}}.facts.lede{margin-top:14px}.share-input{width:100%;margin-top:6px}.at-board .page>section{display:none}.board-prompt:focus{outline:none}.board{background-color:var(--board);background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:22px 22px;color:var(--board-ink);border:var(--bw-bold) solid var(--text);border-radius:var(--radius-media);box-shadow:var(--shadow-slab);padding:clamp(22px,5vw,44px);min-height:360px;display:flex;flex-direction:column;justify-content:space-between;gap:28px}.board a{color:var(--accent)}.board-kicker{font:800 .69rem var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.board-prompt{font:800 clamp(1.7rem,5.5vw,3rem)/1.1 var(--font-display);letter-spacing:-.03em;margin-top:10px;overflow-wrap:anywhere}.board-prompt.pop{animation:pop .46s var(--ease-punch)}@keyframes pop{0%{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:none}}.board-foot{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px}.clock{font:700 clamp(2.2rem,7vw,3.4rem)/1 var(--font-mono);font-variant-numeric:tabular-nums}.clock.warn{color:var(--board-warn)}.clock-label{font-size:.875rem;color:var(--board-dim);margin-bottom:6px}.rec-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#ef4b4b;margin-right:6px;animation:pulse 1.2s ease-in-out infinite}.wave{display:flex;align-items:center;gap:3px;height:44px;width:min(280px,100%);margin-top:12px}.wave span{flex:1;height:100%;border-radius:var(--r-xs);background:var(--brand-gradient);transform:scaleY(.08)}.board-warning{color:var(--board-warn);font-size:.95rem;margin-top:8px}.board-hint{color:var(--board-dim);margin-top:8px;max-width:42ch}.board-foot .board-hint{margin-top:0;flex:1 1 220px}.board-foot .small{color:var(--board-dim);flex:1 1 260px}.steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}.steps li{color:var(--muted);padding-left:30px;position:relative}.steps li:before{content:"";position:absolute;left:2px;top:.32em;width:14px;height:14px;border:var(--bw-bold) solid var(--line-strong);border-radius:50%}.steps li.current{color:var(--text);font-weight:700}.steps li.current:before{border-color:var(--accent-strong);background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.steps li.finished{color:var(--text)}.steps li.finished:before{border-color:var(--link);background:var(--link)}@keyframes pulse{50%{opacity:.35}}.progress-label{font:700 .95rem var(--font-mono);font-variant-numeric:tabular-nums;margin-bottom:8px}.progress{height:12px;border-radius:var(--radius-control);overflow:hidden;background:var(--line)}.progress span{display:block;height:100%;width:0;border-radius:var(--radius-control);background:var(--brand-gradient);transition:width 1.4s linear}.progress.indeterminate span{width:35%;transition:none;animation:sweep 1.6s ease-in-out infinite alternate}@keyframes sweep{0%{transform:translate(0)}to{transform:translate(186%)}}.tip{border-left:var(--bw-rail) solid var(--accent);border-radius:var(--radius-rail);background:var(--accent-soft);color:var(--accent-on-soft);padding:14px 18px}.tip strong{display:block;font-family:var(--font-display)}.grade-head{display:flex;align-items:center;gap:clamp(20px,5vw,44px);flex-wrap:wrap}.grade{--fill: 0;flex:none;position:relative;width:168px;height:168px;border-radius:50%;background:conic-gradient(var(--cyan-400),var(--blue-400) calc(var(--fill) * 1%),var(--line) 0);box-shadow:var(--shadow-slab);display:flex;align-items:baseline;justify-content:center;padding-top:56px;line-height:1}.grade:before{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--surface)}.grade>*{position:relative}.grade strong{font:700 3.1rem var(--font-mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.grade span{font:700 1rem var(--font-mono);color:var(--muted)}.grade.reveal{animation:pop .62s var(--ease-punch)}.grade-text{flex:1 1 300px;display:grid;gap:10px}.grade-text h1{font-size:clamp(1.5rem,4vw,2.1rem)}.grade-cheer{font-weight:700}.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.criteria{list-style:none;margin:0;padding:0;border-top:var(--bw-hairline) solid var(--line-strong)}.criteria li{padding:14px 0;border-bottom:var(--bw-hairline) solid var(--line-strong)}.criterion-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.criterion-head h3{font-size:1rem}.pips{display:inline-flex;align-items:center;gap:4px;flex:none}.pips i{width:14px;height:14px;border-radius:50%;background:var(--line-strong)}.pips i.on{background:var(--brand-gradient)}.pips b{margin-left:8px;font:700 .95rem var(--font-mono);font-variant-numeric:tabular-nums}.score-rule{margin-top:10px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two-cols>section{background:var(--surface);border:var(--bw-hairline) solid var(--line);border-radius:var(--radius-card);padding:20px 24px}@media (max-width: 720px){.two-cols{grid-template-columns:1fr}}.feedback-list{margin:10px 0 0;padding:0 0 0 20px;display:grid;gap:10px}.feedback-list .advice{display:block;margin-top:2px;color:var(--accent-deep);font-weight:600}details{border-top:var(--bw-hairline) solid var(--line-strong);padding:12px 0}details:last-of-type{border-bottom:var(--bw-hairline) solid var(--line-strong)}summary{cursor:pointer;font:700 1rem var(--font-display)}details>div,details>p{margin-top:10px}.transcript{white-space:pre-wrap;overflow-wrap:anywhere}audio{width:100%;max-width:480px;display:block;margin-top:10px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0}.stats div{display:flex;flex-direction:column-reverse;justify-content:flex-end;background:var(--surface);border:var(--bw-hairline) solid var(--line);border-radius:var(--radius-card);padding:16px 18px}.stats dd{margin:0;font:700 1.75rem/1.1 var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stats dt{color:var(--muted);font-size:.85rem;margin-top:6px}.chart-summary{color:var(--muted);margin:-6px 0 12px}.score-table,.admin-table{width:100%;border-collapse:collapse}.score-table th,.admin-table th{font:700 .72rem var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.score-table th,.score-table td{padding:10px 0;border-bottom:var(--bw-hairline) solid var(--line-strong);text-align:left}.score-table th:last-child{text-align:right}.score-table td:last-child{width:45%}.score-cell{display:flex;align-items:center;gap:12px;font:700 .95rem var(--font-mono);font-variant-numeric:tabular-nums}.score-bar{flex:1;height:8px;border-radius:var(--radius-control);background:var(--line);overflow:hidden}.score-bar span{display:block;height:100%;border-radius:var(--radius-control);background:var(--brand-gradient)}.history{list-style:none;margin:0;padding:0;border-top:var(--bw-hairline) solid var(--line-strong)}.history a{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:var(--bw-hairline) solid var(--line-strong);color:inherit;text-decoration:none}.history a:hover .history-title{text-decoration:underline}.history-score{flex:none;min-width:64px;padding:4px 10px;border-radius:var(--radius-control);background:var(--accent-soft);color:var(--accent-on-soft);text-align:center;font:700 .9rem var(--font-mono);font-variant-numeric:tabular-nums}.history-text{min-width:0;overflow-wrap:anywhere}.badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.badge{background:var(--surface);border:var(--bw-hairline) solid var(--line);border-radius:var(--radius-card);padding:14px;text-align:center;display:grid;gap:4px;justify-items:center}.badge-icon{font-size:1.6rem;line-height:1;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft)}.badge strong{font:800 .95rem var(--font-display)}.badge small{color:var(--muted);font-size:.8rem;line-height:1.3}.badge.locked{background:transparent;border:var(--bw-control) dashed var(--line-strong)}.badge.locked .badge-icon{background:var(--line);filter:grayscale(1);opacity:.55}.badge.locked strong{color:var(--muted)}.admin-bar{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px}.admin-login{max-width:360px}.table-scroll{overflow-x:auto}.admin-table{font-size:.95rem}.admin-table th,.admin-table td{padding:10px 12px 10px 0;border-bottom:var(--bw-hairline) solid var(--line-strong);text-align:left;vertical-align:top}.admin-attempts{list-style:none;margin:0;padding:0;border-top:var(--bw-hairline) solid var(--line-strong)}.admin-attempts li{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:var(--bw-hairline) solid var(--line-strong)}.admin-attempts .history-text{flex:1}.small-button{padding:7px 14px;font-size:.78rem;flex:none}.chart-wrap{position:relative}.chart{display:block;width:100%;height:auto;touch-action:pan-y;overflow:visible}.chart-band{fill:var(--accent-soft)}.chart-band-label{fill:var(--accent-on-soft);font:700 12px var(--font-body)}.chart-grid{stroke:var(--line-strong);stroke-width:1}.chart-axis{fill:var(--muted);font:500 12px var(--font-mono)}.chart-end-label{fill:var(--text);font:700 16px var(--font-mono)}.chart-record{fill:var(--text);font:700 12px var(--font-body)}.chart-fade-start{stop-color:var(--chart-area)}.chart-fade-end{stop-color:var(--chart-area);stop-opacity:0}.chart-line{fill:none;stroke:var(--chart-line);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--chart-line);stroke:var(--bg);stroke-width:2}.chart-hit{fill:transparent;outline:none}.chart-hit:focus-visible{stroke:var(--focus);stroke-width:2}.chart-crosshair{stroke:var(--muted);stroke-width:1}.chart-tooltip{position:absolute;top:8px;display:grid;gap:2px;max-width:260px;margin:0 10px;padding:8px 12px;background:var(--surface);border:var(--bw-hairline) solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);font-size:.875rem;line-height:1.35;pointer-events:none}.chart-tooltip[hidden]{display:none}.chart-tooltip strong{font:700 1rem var(--font-mono)}.name-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.name-form label{flex:1 1 260px}.board-name{display:grid;gap:12px;max-width:360px}.board-name label{color:var(--board-ink)}.board-name input{background:#ffffff;color:var(--ink-900);border-color:var(--ink-200)}.board-name .button{justify-self:start}form{display:grid;gap:20px}fieldset{border:0;padding:0;margin:0;display:grid;gap:20px}legend{font:800 1.35rem var(--font-display);letter-spacing:-.015em;padding:0;margin-bottom:12px}label{display:grid;gap:8px;font:700 .875rem var(--font-display)}label .hint{font:400 .85rem var(--font-body);color:var(--muted)}input,textarea{font:400 1rem/1.5 var(--font-body);color:var(--text);background:var(--surface);border:var(--bw-control) solid var(--line-strong);border-radius:var(--radius-input);padding:10px 16px;width:100%;max-width:100%;transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}input:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--ring)}textarea{resize:vertical;min-height:72px}.question-row{display:grid;gap:10px;padding:16px 0;border-top:var(--bw-hairline) solid var(--line-strong)}.question-row .row-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font:700 1rem var(--font-display)}.link-button{background:none;border:0;padding:4px 0;font:600 .875rem var(--font-body);color:var(--danger-ink);cursor:pointer;text-decoration:underline}.form-footer{position:sticky;bottom:0;background:var(--bg);border-top:var(--bw-hairline) solid var(--line);padding:12px 0}@media (prefers-reduced-motion: reduce){.page,.skeleton,.board-prompt.pop,.grade.reveal,.rec-dot,.steps li.current:before{animation:none}.is-loading .top-bar{transition:none}.button,.track-list li,.site-header nav a,.skip-link,input,textarea{transition:none}.button:active:not([disabled]),.track-list li:hover{transform:none}.progress span{transition:none}.progress.indeterminate span{width:100%;opacity:.45;animation:none}}
