.practice-shell [hidden]{display:none!important}.practice-shell{padding-block:clamp(2rem,5vw,4rem) 4rem}.practice-hero{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2rem;margin-bottom:2rem}.practice-hero h1{margin:.35rem 0 .65rem;font-size:clamp(2.4rem,6vw,4.6rem);letter-spacing:-.055em}.practice-hero p{max-width:650px;margin:0;font-size:1.08rem}.preset-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem 1.15rem;border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:var(--surface)}.preset-banner[hidden]{display:none}.preset-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;color:var(--accent);background:var(--accent-soft);font:800 1.15rem var(--font-mono)}.preset-banner h2{margin:.1rem 0;font-size:1.08rem}.preset-banner p{margin:0;font-size:.82rem}.preset-banner>a{font-size:.8rem;font-weight:700;white-space:nowrap}.best-card{min-width:180px;padding:1rem 1.1rem;border-left:2px solid var(--accent);display:grid}.best-label,.best-card span:last-child{color:var(--ink-faint);font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.best-card strong{font-size:2rem;line-height:1.1;color:var(--ink)}.best-card span:last-child{text-transform:none;letter-spacing:0;font-weight:500;margin-top:.25rem}.setup-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:1rem}.session-builder,.rules{padding:clamp(1.25rem,3vw,2rem)}.builder-head{display:flex;align-items:flex-start;gap:.9rem;margin-bottom:1.6rem}.builder-head h2{margin:0 0 .2rem;font-size:1.2rem}.builder-head p{margin:0;font-size:.88rem}.step-number{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font:700 .76rem var(--font-mono)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field{display:grid;gap:.4rem}.field>span,.length-field legend{color:var(--ink-soft);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.field select{width:100%;min-height:46px;padding:.72rem 2.6rem .72rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23707872' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;background-size:18px;color:var(--ink);font:500 .94rem var(--font-sans);-webkit-appearance:none;appearance:none}.field select:hover,.field select:focus{border-color:var(--accent);outline:none}.length-field{border:0;margin:1.35rem 0 0;padding:0}.length-field legend{margin-bottom:.5rem}.length-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.length-options input{position:absolute;opacity:0;pointer-events:none}.length-options label>span{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink);font-weight:750}.length-options small{color:var(--ink-faint);font-size:.72rem;font-weight:500}.length-options input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.length-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.pool-note{min-height:1.4em;margin:.85rem 0 .5rem;font-size:.8rem;color:var(--ink-faint)}.start-btn{width:100%;margin-top:.35rem}.rule-list{margin:0;padding:0;list-style:none;display:grid;gap:1.15rem}.rule-list li{display:flex;gap:.8rem;align-items:flex-start}.rule-index{width:26px;flex:0 0 26px;padding-top:.15rem;color:var(--ink-faint);font:650 .7rem var(--font-mono);letter-spacing:.04em}.rule-list strong,.rule-list small{display:block}.rule-list strong{font-size:.9rem}.rule-list small{color:var(--ink-faint);line-height:1.45;margin-top:.15rem}.pool-stat{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.15rem;display:flex;align-items:baseline;gap:.5rem}.pool-stat span{font-size:1.5rem;font-weight:800;color:var(--accent)}.pool-stat small{color:var(--ink-faint)}.game-view[hidden],.results-view[hidden],.setup-view[hidden]{display:none}.game-topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.quit-btn{display:inline-flex;align-items:center;gap:.4rem;border:0;background:transparent;color:var(--ink-faint);padding:.5rem 0;cursor:pointer;font:600 .85rem var(--font-sans)}.quit-btn:hover{color:#c53e38}.live-stats{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.live-stats>div{min-width:82px;padding:.5rem .8rem;border-left:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;gap:.55rem}.live-stats>div:first-child{border-left:0}.live-stats span{color:var(--ink-faint);font-size:.69rem;text-transform:uppercase;letter-spacing:.05em}.live-stats strong{font:800 .95rem var(--font-mono)}.timer-stat strong{color:var(--accent)}.timer-stat.danger strong{color:#c53e38}.game-progress{height:3px;background:var(--surface-3);border-radius:99px;margin-bottom:clamp(1.5rem,4vw,3rem);overflow:hidden}.game-progress span{display:block;width:0;height:100%;background:var(--accent);transition:width .25s ease}.question-layout{display:grid;grid-template-columns:100px minmax(0,780px);justify-content:center;gap:1.5rem}.question-rail{padding-top:1.25rem;display:flex;flex-direction:column}.rail-label{color:var(--ink-faint);font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.question-rail strong{display:flex;align-items:baseline;margin-top:.2rem;font:800 2.5rem/1 var(--font-mono);color:var(--ink)}.question-rail small{color:var(--ink-faint);font-size:.78rem}.rail-divider{width:28px;border-top:1px solid var(--border-strong);margin:1.3rem 0}.question-card{padding:clamp(1.3rem,4vw,2.3rem);min-height:520px;display:flex;flex-direction:column}.question-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.format-label{color:var(--ink-faint);font-size:.75rem;margin-left:auto;font-weight:600}.question-card h2{font-size:clamp(1.35rem,3vw,1.9rem);margin:1.2rem 0 1.5rem;max-width:680px}.question-card h2 code,.option-btn code,.reference-answer code{font:600 .88em var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:.06em .36em;overflow-wrap:anywhere}.mcq-options{display:grid;gap:.65rem}.question-code{margin:0 0 1rem;padding:1rem;border-color:var(--border-strong);background:var(--surface-2);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.86rem}.option-btn{width:100%;display:grid;grid-template-columns:30px 1fr auto;align-items:center;text-align:left;gap:.8rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);cursor:pointer;font:500 .94rem/1.45 var(--font-sans)}.option-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.option-key{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--surface-2);color:var(--ink-faint);font:700 .75rem var(--font-mono)}.option-btn.selected{border-color:var(--accent);background:var(--accent-soft)}.option-btn.selected .option-key{background:var(--accent);color:var(--on-accent)}.option-btn.correct{border-color:var(--accent);background:var(--accent-soft)}.option-btn.correct:after{content:"✓";color:var(--accent);font-weight:800}.option-btn.incorrect{border-color:#c53e38;background:color-mix(in srgb,#d64b45 8%,var(--surface))}.option-btn.incorrect:after{content:"×";color:#c53e38;font-weight:800}.written-answer{display:grid;gap:.45rem}.written-answer label{font-size:.8rem;font-weight:700;color:var(--ink-soft)}.written-answer textarea{width:100%;resize:vertical;min-height:150px;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--ink);font:500 .94rem/1.6 var(--font-sans)}.written-answer textarea.code-response{min-height:120px;tab-size:4;font:500 .86rem/1.65 var(--font-mono);white-space:pre;overflow:auto}.written-answer textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.writing-hint{display:flex;justify-content:space-between;color:var(--ink-faint);font-size:.72rem}.answer-btn{align-self:flex-start;margin-top:1.2rem}.answer-btn:disabled{opacity:.45;cursor:not-allowed}.answer-panel{margin-top:1.5rem}.answer-verdict{margin-bottom:.85rem;font-weight:800;color:var(--accent)}.answer-verdict.wrong{color:#c53e38}.reference-answer{color:var(--ink-soft);font-size:.92rem}.reference-answer .code-reference{margin:0 0 .75rem;padding:.9rem 1rem;background:var(--surface-2);color:var(--ink);white-space:pre-wrap;font-size:.84rem}.reference-answer>:first-child{margin-top:0}.reference-answer>:last-child{margin-bottom:0}.self-grade{margin-top:1.35rem}.self-grade p{margin:0 0 .65rem;font-size:.82rem;font-weight:700}.self-grade>div{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.self-grade button{display:flex;justify-content:space-between;align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .7rem;background:var(--surface);color:var(--ink);cursor:pointer}.self-grade button:hover{border-color:var(--accent);background:var(--accent-soft)}.self-grade button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.self-grade button:disabled{cursor:default;opacity:.55}.self-grade button.selected:disabled{opacity:1}.self-grade button span{color:var(--ink-faint);font-size:.72rem}.self-grade button.selected span{color:var(--accent)}.question-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1.2rem}.question-footer>span{color:var(--ink-faint);font-size:.78rem}.next-btn{margin-left:auto}.results-view{max-width:760px;margin:1rem auto}.results-card{padding:clamp(1.5rem,5vw,3.2rem);text-align:center}.score-ring{position:relative;width:170px;height:170px;margin:1.3rem auto;display:grid;place-content:center}.score-ring-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.score-ring-svg circle{fill:none;stroke-width:12}.score-ring-track{stroke:var(--surface-3)}.score-ring-progress{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:490.09;stroke-dashoffset:490.09;transition:stroke-dashoffset .5s ease}.score-ring-label{position:relative;text-align:center}.score-ring strong,.score-ring span{display:block}.score-ring strong{font:850 2.4rem/1 var(--font-mono);color:var(--ink)}.score-ring span{margin-top:.35rem;color:var(--ink-faint);font-size:.7rem;text-transform:uppercase;letter-spacing:.07em}.results-card h1{margin:.5rem 0}.results-card>p{max-width:500px;margin:0 auto 1.6rem}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--border);margin:1.5rem 0}.result-stats div{padding:1rem .5rem;border-left:1px solid var(--border)}.result-stats div:first-child{border-left:0}.result-stats strong,.result-stats span{display:block}.result-stats strong{font:800 1.2rem var(--font-mono)}.result-stats span{color:var(--ink-faint);font-size:.7rem}.result-actions{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap}.focus-toast{position:fixed;right:1.25rem;bottom:1.25rem;z-index:100;display:grid;padding:.85rem 1rem;border:1px solid #c53e38;border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lg)}.focus-toast[hidden]{display:none}.focus-toast strong{font-size:.85rem;color:#c53e38}.focus-toast span{color:var(--ink-faint);font-size:.75rem}@media(max-width:820px){.practice-hero{grid-template-columns:1fr;align-items:start;gap:1rem}.best-card{max-width:220px}.setup-grid,.question-layout{grid-template-columns:1fr}.question-rail{padding:0;flex-direction:row;gap:.55rem;align-items:baseline}.question-rail strong{font-size:1.25rem}.question-rail .rail-divider,.question-rail .rail-label:nth-of-type(2),.question-rail strong:last-child{display:none}}@media(max-width:560px){.practice-shell{padding-inline:.8rem}.preset-banner{grid-template-columns:auto minmax(0,1fr)}.preset-banner>a{grid-column:2}.field-grid{grid-template-columns:1fr}.length-options{gap:.35rem}.length-options label>span{display:grid;padding:.65rem}.game-topbar{align-items:flex-start}.live-stats>div{min-width:auto;padding:.45rem .6rem;display:grid;gap:0}.live-stats span{font-size:.6rem}.question-card{min-height:580px}.writing-hint span:last-child{display:none}.self-grade>div,.result-stats{grid-template-columns:1fr}.self-grade>div{grid-template-columns:repeat(3,1fr)}.self-grade button{display:grid;justify-items:center}.result-stats{grid-template-columns:1fr 1fr}.result-stats div:nth-child(3){border-left:0;border-top:1px solid var(--border)}.result-stats div:nth-child(4){border-top:1px solid var(--border)}}
