:root{--bg:#f4f4f8;--surface:#fff;--ink:#1d1d27;--muted:#8e8ea0;--dim:#5f5f73;--line:#e3e3ec;--accent:#5146c9;--accent-soft:#ecebfb;--on-accent:#fff;--seg:#e7e7ef;--seg-on:#fff;--wrong:#b4553d;--wrong-soft:#f8e9e3;--shadow:#1d1d2717;--card-under:#ececf3;--scrim:#00000040;--figure:transparent;--figure-blend:multiply;--figure-pad:0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--display:clamp(34px, 3.2vw + 22px, 50px);--ease:cubic-bezier(.22, .8, .24, 1);--serif:Georgia, "Times New Roman", "Noto Serif", "DejaVu Serif", "Cambria Math", "STIX Two Math", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif}:root[data-theme=dark]{--bg:#15161c;--surface:#1f2029;--ink:#eeeef3;--muted:#80808e;--dim:#9a9aa8;--line:#2e2f3b;--accent:#9a8cff;--accent-soft:#2a2748;--on-accent:#15161c;--seg:#1f2029;--seg-on:#34354a;--wrong:#e39a85;--wrong-soft:#3a2622;--shadow:#0006;--card-under:#191a22;--scrim:#00000080;--figure:#fff;--figure-blend:normal;--figure-pad:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;line-height:1.5;overflow-x:hidden}::selection{background:var(--accent-soft)}h1,h2{text-wrap:balance}.lede,.stem,.summary-sub{text-wrap:pretty}.row-sub,.menu-row,.progress-place,.summary-score{font-variant-numeric:tabular-nums}#root{min-height:100vh;flex-direction:column;min-height:100dvh;display:flex}a{color:var(--accent);text-underline-offset:2px}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rich{font-family:var(--serif);white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.rich sup,.rich sub{font-size:.72em;line-height:0}.bar{justify-content:space-between;align-items:center;gap:8px;width:100%;max-width:960px;min-height:56px;margin:0 auto;padding:6px 20px;display:flex}.bar-front{justify-content:flex-end}@media (min-width:700px){.bar,.main:not(.main-study){max-width:1032px}}.brand{font:600 20px var(--sans);color:var(--ink);align-items:center;gap:8px;min-height:44px;text-decoration:none;display:inline-flex}.bar-actions{align-items:center;gap:2px;margin-right:-8px;display:flex}.bar-actions .btn{white-space:nowrap;padding-left:6px;padding-right:6px}.bar-actions .icon-btn{min-width:36px}.bar-actions .btn-quiet{padding:8px;font-size:13px;font-weight:400}.side{display:none}.shell,.shell-body{flex-direction:column;flex:1;min-width:0;display:flex}@media (min-width:1024px){.shell-nav{grid-template-columns:216px minmax(0,1fr);display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;padding:12px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side .brand{margin:0 0 12px;padding:0 10px}.shell-nav .bar .brand{display:none}.shell-nav .bar{justify-content:flex-end}}.side-link{min-height:44px;color:var(--dim);border-radius:10px;align-items:center;padding:0 12px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.side-link:hover{color:var(--ink)}.side-link[aria-current=page]{background:var(--accent-soft);color:var(--ink)}.app-mark{flex:none}.mark-line{fill:none;stroke:var(--ink);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.mark-sun,.dawn-sun{fill:var(--accent)}.dawn{width:100%;height:auto;display:block;overflow:visible}.dawn-far{fill:none;stroke:var(--line);stroke-width:1.5px;stroke-linejoin:round}.dawn-near{fill:none;stroke:var(--ink);stroke-width:1.25px;stroke-linejoin:round;stroke-linecap:round}.dawn-hide{fill:var(--bg)}.dawn-rest{width:190px;margin:0 auto 24px}.dawn-hero .dawn-sun,.summary .dawn-sun{animation:sun-up 1.2s var(--ease) .1s backwards}@keyframes sun-up{0%{transform:translateY(34px)}}.main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:16px 20px 40px}.main-study{padding:0 20px}.footer{color:var(--dim);text-align:center;flex-direction:column;align-items:center;gap:4px;padding:20px;font-size:12px;display:flex}.footer nav{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.footer a{color:var(--dim);align-items:center;min-height:44px;padding:0 10px;display:inline-flex}.footer .bar-actions{margin:0}.btn{border:1.5px solid var(--line);background:var(--surface);min-height:50px;color:var(--ink);font:600 15px var(--sans);cursor:pointer;text-align:center;text-wrap:balance;touch-action:manipulation;width:100%;transition:transform .14s var(--ease), border-color .14s ease, color .14s ease;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;text-decoration:none;display:inline-flex}.btn:not(:disabled):active{transform:scale(.985)}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-quiet{width:auto;min-height:44px;color:var(--dim);background:0 0;border-color:#0000;padding:8px 12px;font-weight:500}.btn-quiet:hover{color:var(--ink);border-color:#0000}.icon-btn{min-width:44px;padding:0 10px}.field{margin:0 0 12px;display:block}.field>span{color:var(--dim);margin-bottom:4px;font-size:14px;display:block}.input{border:1.5px solid var(--line);background:var(--surface);width:100%;min-height:50px;color:var(--ink);font:16px var(--sans);border-radius:12px;padding:12px 14px}.input::placeholder{color:var(--dim);opacity:1}.input.code{letter-spacing:.3em;text-align:center;font-size:20px}.check{color:var(--ink);cursor:pointer;align-items:flex-start;gap:12px;min-height:44px;padding:6px 0;font-size:14px;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:1px 0 0}.check a{margin:-12px -2px;padding:12px 2px;display:inline-block}.msg{border-radius:12px;margin:10px 0 0;padding:12px 14px;font-size:14px}.msg-error{background:var(--wrong-soft);color:var(--ink);border:1px solid var(--wrong)}.msg-ok{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent)}.signin{max-width:420px;margin:0 auto}.signin h1{font:600 var(--display)/1.14 var(--sans);letter-spacing:-.015em;margin:0 0 12px}.name-ur{white-space:nowrap;unicode-bidi:isolate;font-family:Noto Naskh Arabic,Noto Nastaliq Urdu,Geeza Pro,Segoe UI,Tahoma,Droid Arabic Naskh,serif;font-weight:600}.signin-brand{font:600 21px/1.2 var(--sans);color:var(--ink);flex-wrap:wrap;align-items:center;gap:2px 12px;margin:0;display:flex}.signin-brand .name-ur{font-size:42px;line-height:1.25}.signin-tagline{color:var(--dim);margin:0 0 22px}.signin .lede{color:var(--dim);margin:0}.signin-try{margin-top:16px}.try .btn-primary,.try .fine-centre{max-width:460px}.try-source{margin-bottom:10px}.dawn-hero{margin:18px 0 22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px}.divider{color:var(--dim);align-items:center;gap:12px;margin:14px 0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.signin-form>.btn{margin-top:10px}.fine{color:var(--dim);margin:14px 0 0;font-size:13px}.fine-tight{margin-top:8px;margin-bottom:12px}.fine-centre{text-align:center}.signin .fine a{margin:-12px -2px;padding:12px 2px;display:inline-block}.bar-actions .hi{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;text-decoration:none;overflow:hidden}.turnstile{max-width:100%;min-height:0;margin:12px 0 0;overflow:hidden}.check-note{margin:8px 0 0}.doc{max-width:620px;margin:0 auto}.doc h1{font:600 32px/1.2 var(--sans)}@media (min-width:700px){.bar{padding:8px 36px}.main{padding:24px 36px 56px}.main-study{padding:0 36px}}@media (min-width:1024px){.signin{grid-template-columns:minmax(0,1fr) 380px;align-items:center;gap:72px;max-width:none;padding-top:24px;display:grid}.signin-brand .name-ur{font-size:52px}.dawn-hero{margin:30px 0 0}.signin .lede{font-size:17px}}.signup .lede{margin-bottom:18px}.signup .check{margin-bottom:16px}@media (min-width:1024px){.signup{max-width:420px;padding-top:0;display:block}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.practice{width:100%;max-width:680px;min-height:100vh;flex-direction:column;min-height:100dvh;margin:0 auto;padding-top:12px;display:flex}.practice:focus{outline:none}.practice-status{text-align:center;max-width:420px;color:var(--dim);margin:0 auto;padding:56px 0}.empty{text-align:center;color:var(--dim);margin:0;padding:32px 0}.loading:before{content:"";background:linear-gradient(var(--accent), var(--accent)) no-repeat 0 0 / 32px 2px, var(--line);width:96px;height:2px;margin:0 auto 14px;animation:1.3s ease-in-out infinite alternate load-slide;display:block}@keyframes load-slide{to{background-position:64px 0,0 0}}.practice-actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.practice-note{color:var(--dim);margin:0 0 14px;font-size:13px}.progress{margin-bottom:22px}.progress-text{color:var(--dim);justify-content:space-between;align-items:center;gap:12px;min-height:36px;margin-bottom:6px;font-size:13px;display:flex}.progress-text span:last-child{flex:none}.progress-track{background:var(--line);border-radius:2px;height:3px;overflow:hidden}.progress-fill{background:var(--accent);height:3px;transition:width .36s var(--ease);border-radius:2px}.q,.home,.signin,.summary,.doc{animation:rise-in .26s var(--ease)}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}.q-pics{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.figure{padding:var(--figure-pad);background:var(--figure);border-radius:12px;margin:0;overflow:hidden}.pic{object-fit:contain;max-width:100%;height:auto;mix-blend-mode:var(--figure-blend);margin:0 auto;display:block}.figure .pic{max-height:260px}.figure .pic:not([width]){width:100%;min-height:120px}.figure-failed{background:var(--wrong-soft);border:1px solid var(--wrong);padding:10px 12px}.figure-loading,.tile-pic-loading{animation:1.2s ease-in-out infinite alternate pic-wait}@keyframes pic-wait{to{opacity:.6}}.pic-failed{color:var(--ink);justify-content:space-between;align-items:center;gap:8px;font-size:14px;display:flex}.pic-retry{color:var(--ink);border-color:var(--line);flex:none}.q-meta{justify-content:space-between;align-items:center;gap:12px;min-height:36px;margin:-8px 0 8px;display:flex}.q-source{color:var(--dim);min-width:0;margin:0;font-size:13px}.q-meta>button:only-child{margin-left:auto}.filter-btn{border:1px solid var(--line);min-height:36px;color:var(--dim);font:500 13px var(--sans);cursor:pointer;touch-action:manipulation;background:0 0;border-radius:999px;flex:none;align-items:center;gap:7px;padding:0 12px;transition:border-color .14s,color .14s;display:inline-flex;position:relative}.filter-btn:after{content:"";position:absolute;top:-4px;bottom:-4px;left:0;right:0}.filter-btn:hover{border-color:var(--accent);color:var(--ink)}.filter-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-btn-on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.filter-icon{background:linear-gradient(currentColor 0 0) 0 0/100% 1.6px no-repeat,linear-gradient(currentColor 0 0) 50%/62% 1.6px no-repeat,linear-gradient(currentColor 0 0) 50% 100%/26% 1.6px no-repeat;flex:none;width:13px;height:10px}.filter-n{background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.off-syllabus{color:var(--dim);margin:0 0 8px;font-size:13px}.stem{margin:0 0 20px;font-size:17px;line-height:1.5}@media (min-width:360px){.stem{font-size:18px}}.answers{gap:10px;display:grid}.opt{border:1.5px solid var(--line);background:var(--surface);width:100%;height:100%;min-height:54px;color:var(--ink);font:16px/1.4 var(--sans);text-align:left;cursor:pointer;touch-action:manipulation;transition:border-color .14s ease, background-color .24s ease, color .24s ease, transform .14s var(--ease);border-radius:12px;align-items:baseline;gap:10px;padding:14px 16px;display:flex}.opt .rich{font-family:var(--sans)}.opt:disabled{cursor:default;color:var(--ink)}@media (hover:hover){.opt:not(:disabled):hover{border-color:var(--accent)}}.opt:not(:disabled):active{background:var(--accent-soft);transform:scale(.992)}.opt-letter{flex:none;min-width:1em}.opt-text{flex:0 auto;min-width:0}.opt-text.kv{flex:1}.opt-mark{flex:none;align-self:center;width:18px}.opt-mark svg{width:18px;height:18px;display:block}.opt-mark path{stroke-dasharray:1;animation:.32s ease-out 60ms backwards tick-draw}@keyframes tick-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.opt-picked{border-color:var(--ink);background:var(--surface)}.opt-right{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.opt-right .opt-mark{color:var(--accent)}.opt-wrong{border-color:var(--wrong);background:var(--wrong-soft);font-weight:500}.opt-dim{background:0 0}.opt-dim:disabled{color:var(--dim)}.kv{flex-direction:column;gap:4px;display:flex}.kv-row{flex-wrap:wrap;justify-content:space-between;column-gap:12px;display:flex}.kv-key{color:var(--dim);font-size:14px;font-weight:400}.kv-value{text-align:right;margin-left:auto}.kv-row:not(:has(.kv-key)) .kv-value{text-align:left;margin-left:0}.opt-right .kv-key,.opt-wrong .kv-key{color:var(--ink)}@media (max-width:699px){.kv-row-long{flex-direction:column}.kv-row-long .kv-value{text-align:left;margin-left:0}}.answers-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.answers-tiles.answers-tiles-wide,.answers-tiles.answers-tiles-stack{grid-template-columns:minmax(0,1fr)}.tile-wrap{flex-direction:column;gap:4px;min-width:0;display:flex}.opt-tile{flex-direction:column;align-items:stretch;gap:6px;padding:8px 10px 10px;position:relative}.opt-tile .opt-mark{position:absolute;top:9px;right:10px}.tile-pic{background:var(--figure);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:44px;padding:4px;display:flex;overflow:hidden}.tile-pic .pic:not([width]){width:100%;min-height:72px}.tile-wrap .pic-failed{background:var(--wrong-soft);border:1px solid var(--wrong);border-radius:10px;flex-wrap:wrap;padding:4px 8px}.tile-wrap .pic-retry{margin-left:auto}.keys-hint{color:var(--dim);margin:10px 0 0;font-size:12px;display:none}@media (hover:hover) and (pointer:fine) and (min-width:700px){.keys-hint{display:block}}.next-bar .msg{margin:0 0 8px}.part-moves{gap:10px;display:flex}.part-moves .btn{flex:1;width:auto;min-width:0}.next-bar .submit-failed{margin:0}.submit-failed{justify-content:space-between;align-items:center;gap:10px;display:flex}.submit-failed .btn{flex:none;width:auto}.earlier{color:var(--dim);margin-bottom:8px;font-size:14px}.earlier p{margin:0}.earlier-again{color:var(--dim);justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.earlier .btn{flex:none;margin-left:auto}.report-slot{flex-wrap:wrap;justify-content:space-between;align-items:center;column-gap:12px;margin-top:6px;padding-bottom:8px;display:flex}.report-slot .report{flex:1 0 100%;order:2}.report-open{cursor:pointer;min-height:44px;color:var(--dim);font:13px var(--sans);text-underline-offset:2px;background:0 0;border:0;padding:0 2px;text-decoration:underline}.report-open:hover{color:var(--ink)}.report{margin-top:8px}.report .field{margin-bottom:6px}.report-note{resize:vertical;display:block}.report-count{color:var(--dim);margin:0 0 6px;font-size:13px}.report-actions{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.report-send{width:auto;min-height:44px}.report-thanks{color:var(--dim);align-items:center;min-height:44px;margin:0;font-size:13px;display:flex}.why{z-index:2;background:var(--surface);border-top:1px solid var(--line);padding:12px 20px max(20px, env(safe-area-inset-bottom));box-shadow:0 -10px 30px var(--shadow);animation:sheet-up .3s var(--ease);border-radius:18px 18px 0 0;margin:auto -20px 0;position:sticky;bottom:0}@keyframes sheet-up{0%{transform:translateY(100%)}}.why-handle{background:var(--line);border-radius:2px;width:36px;height:4px;margin:0 auto 14px}.why-line{margin:0;font-size:16px;font-weight:600}.why-reason{margin:6px 0 0;font-size:15px;line-height:1.5}.why-next{margin-top:14px}.next-bar{z-index:2;padding:18px 20px max(20px, env(safe-area-inset-bottom));background:linear-gradient(to bottom, transparent, var(--bg) 16px);margin:auto -20px 0;position:sticky;bottom:0}.practice.summary{text-align:center;max-width:420px;min-height:0;padding-top:72px;padding-bottom:32px}.summary-score{font:600 calc(var(--display) + 6px)/1.1 var(--sans);letter-spacing:-.015em;margin:0 0 10px}.summary-line{font:400 20px/1.35 var(--sans);margin:0 0 8px}.summary-next{min-height:50px}.summary-sub{color:var(--dim);margin:0 0 12px}.summary-actions{flex-direction:column;gap:10px;margin-top:24px;display:flex}@media (min-width:700px){.practice{padding-top:24px}.stem{margin-bottom:20px;font-size:19px}.progress{margin-bottom:28px}.q-top-pics{grid-template-columns:minmax(0,44%) minmax(0,1fr);align-items:center;gap:24px;margin-bottom:22px;display:grid}.q-top-pics .q-pics,.q-top-pics .stem{margin:0}.figure .pic{max-height:300px}.answers,.answers-tiles.answers-tiles-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.opt{border-radius:12px}.tile-pic .pic{max-height:170px}.answers-compact .tile-pic .pic{max-height:130px}.why{border:1px solid var(--line);box-shadow:none;border-radius:12px;margin:14px 0 0;padding:18px 20px;animation:none;position:static}.why-handle{display:none}.why-next{border-radius:12px;margin-top:12px}.next-bar{background:0 0;margin:14px 0 0;padding:0;position:static}.next-bar .btn{border-radius:12px}}@media (min-width:1024px){.stem{font-size:20px}.q-top-pics{gap:32px}}.offline{background:var(--accent-soft);color:var(--ink);text-align:center;padding:8px 20px;font-size:13px}.bar-track{background:var(--line);border-radius:3px;height:6px;display:block;overflow:hidden}.bar-fill{background:var(--accent);border-radius:3px;height:6px;display:block}.home{width:100%;margin:0 auto}.home-top{margin-bottom:16px}.tally{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 14px;display:grid}.tally div{flex-direction:column-reverse;justify-content:flex-end;min-width:0;display:flex}.tally dt{color:var(--dim);font-size:13px}.tally dd{font-variant-numeric:tabular-nums;margin:0;font-size:22px;line-height:1.25}.carry{background:var(--accent);color:var(--on-accent);border-radius:12px;padding:16px}.carry-label,.carry-count{margin:0;font-size:13px}.carry-name{overflow-wrap:anywhere;margin:2px 0 10px;font-size:22px;font-weight:500;line-height:1.25}.carry .bar-track{background:color-mix(in srgb, var(--on-accent) 28%, transparent)}.carry .bar-fill{background:var(--on-accent)}.carry-count{margin-top:6px}.carry-go{background:var(--on-accent);border-color:var(--on-accent);min-height:48px;color:var(--accent);margin-top:12px}.carry-go:hover{border-color:var(--on-accent)}.home h1{font:600 clamp(26px, 2vw + 20px, 34px)/1.2 var(--sans);letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 6px}.home h1 .name-ur{font-size:1.12em;line-height:1.2}.home .lede{color:var(--dim);margin:0 0 16px;font-size:16px}.eyebrow{color:var(--dim);min-height:19px;margin:0 0 8px;font-size:13px}.levels{background:var(--seg);border-radius:12px;grid-template-columns:1fr 1fr;gap:2px;max-width:460px;margin:0 0 10px;padding:3px;display:grid}.level{min-height:44px;color:var(--dim);font:600 16px var(--sans);cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:10px}.level[aria-pressed=true]{background:var(--seg-on);color:var(--ink);box-shadow:0 1px 3px var(--shadow)}@media (hover:hover){.level:hover{color:var(--ink)}}.subjects{grid-template-columns:repeat(6,1fr);gap:8px;max-width:460px;margin:0 0 18px;display:grid}.subject{border:1.5px solid var(--line);min-width:0;min-height:48px;color:var(--ink);font:500 15px var(--sans);cursor:pointer;touch-action:manipulation;transition:transform .14s var(--ease), border-color .14s ease, background-color .14s ease;background:0 0;border-radius:999px;grid-column:span 2;padding:0 6px}.subject:active{transform:scale(.97)}@media (hover:hover){.subject:hover{border-color:var(--accent)}}.subject:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.subject:first-child:nth-last-child(-n+2),.subject:first-child:nth-last-child(-n+2)~.subject,.subject:first-child:nth-last-child(4),.subject:first-child:nth-last-child(4)~.subject,.subject:first-child:nth-last-child(5)~.subject:nth-child(n+4){grid-column:span 3}@media (min-width:720px){.subjects{max-width:none;display:flex}.subject,.subject:first-child:nth-last-child(n){flex:none;padding:0 22px}}.subject[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.home-rest{padding:24px 0 8px}.home-rest .dawn-rest{margin-bottom:20px}.tabs{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin-bottom:8px;display:grid}.tab{min-height:48px;color:var(--dim);font:500 15px var(--sans);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px}.tab-now{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.row{height:100%;min-height:56px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-decoration:none;transition:border-color .14s;display:block}@media (hover:hover){.row:hover{border-color:var(--accent)}}.row-main{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.row-name{font:500 15px/1.3 var(--sans);overflow-wrap:anywhere;min-width:0}.row-sub{color:var(--dim);flex:none;font-size:13px}.row-pair{gap:4px;display:grid}.row-written{height:auto;min-height:44px;font:500 14px/1.3 var(--sans);color:var(--accent);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;display:flex}.row-written .row-sub{color:var(--dim)}.row-note{color:var(--dim);margin-top:8px;font-size:13px;display:block}.year{margin-bottom:28px}.year h2{font:600 26px/1.2 var(--sans);margin:16px 0 6px}.year h3{color:var(--dim);margin:16px 0 2px;font-size:13px;font-weight:500}.study-main{min-width:0}.menu-side{display:none}.progress-label{align-items:center;gap:2px;min-width:0;display:flex}.progress-text .progress-label>span:last-child{overflow-wrap:anywhere;flex:0 auto;min-width:0}.progress-place{flex:none;align-items:center;gap:2px;display:flex}.step{width:36px;height:36px;color:var(--dim);font:18px/1 var(--sans);cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:10px;flex:none;position:relative}.step:after{content:"";position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px}.step:hover{color:var(--ink)}.step:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.menu-open-btn{margin-left:-9px}.progress-place .step:last-child{margin-right:-9px}.scrim{z-index:10;background:var(--scrim);animation:.2s ease-out fade-in;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fade-in{0%{opacity:0}}.menu-panel{z-index:11;background:var(--surface);border-right:1px solid var(--line);width:min(82vw,340px);padding:28px 20px max(16px, env(safe-area-inset-bottom));overscroll-behavior:contain;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.slide-in{animation:menu-in .26s var(--ease)}@keyframes menu-in{0%{transform:translate(-100%)}}body.menu-open{overflow:hidden}.menu-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:16px;display:flex}.menu-head .icon-btn{margin:-12px -10px 0 0}.menu-title{margin:0;font-size:16px;font-weight:600}.menu-sub{color:var(--dim);margin:0;font-size:13px}.menu-list{margin:0;padding:0;list-style:none}.menu-item{min-height:48px;color:var(--dim);flex-direction:column;justify-content:center;gap:5px;padding:6px 0;font-size:14px;text-decoration:none;display:flex}.menu-item:hover{color:var(--ink)}.menu-item-now{color:var(--ink);font-weight:600}.menu-row{justify-content:space-between;gap:10px;display:flex}.menu-row>:last-child{flex:none}.menu-top{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:6px}.menu-link{min-height:44px;color:var(--dim);align-items:center;font-size:14px;text-decoration:none;display:flex}.menu-link:hover{color:var(--ink)}.menu-failed{font-size:14px}.menu-failed p{margin:0 0 8px}.place-btn{min-height:36px;color:inherit;font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:10px;align-items:center;gap:7px;padding:0 8px;display:inline-flex;position:relative}.place-btn:after{content:"";position:absolute;top:-4px;bottom:-4px;left:0;right:0}.place-btn:hover{color:var(--ink)}.place-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.place-grid{opacity:.85;background:conic-gradient(currentColor 0 0) 0 0 / 5px 5px no-repeat, conic-gradient(currentColor 0 0) 100% 0 / 5px 5px no-repeat, conic-gradient(currentColor 0 0) 0 100% / 5px 5px no-repeat, conic-gradient(currentColor 0 0) 100% 100% / 5px 5px no-repeat;flex:none;width:12px;height:12px}.map-title{font:600 19px/1.25 var(--sans);margin:0}.map-sub{color:var(--dim);font-variant-numeric:tabular-nums;margin:2px 0 14px;font-size:13px}.map-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.map-cell{aspect-ratio:1;border:1.5px solid var(--line);width:100%;min-height:44px;color:var(--dim);font:500 14px var(--sans);font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation;transition:transform .14s var(--ease), border-color .14s ease;background:0 0;border-radius:12px;padding:0;display:block}.map-cell:active{transform:scale(.94)}.map-cell:hover{border-color:var(--accent);color:var(--ink)}.map-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.map-cell.map-right{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.map-cell.map-wrong{background:var(--wrong-soft);border-color:var(--wrong);color:var(--ink)}.map-cell.map-part{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}.map-cell.map-now{color:var(--ink);box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--ink);font-weight:700}.map-cell.map-right.map-now{color:var(--on-accent)}.map-key{border-top:1px solid var(--line);color:var(--dim);flex-wrap:wrap;gap:6px 14px;margin:16px 0 0;padding:12px 0 0;font-size:12px;list-style:none;display:flex}.map-key li{align-items:center;gap:6px;display:flex}.map-dot{border:1.25px solid var(--line);border-radius:3px;width:10px;height:10px}.map-dot.map-right{background:var(--accent);border-color:var(--accent)}.map-dot.map-wrong{background:var(--wrong-soft);border-color:var(--wrong)}.map-dot.map-part{background:var(--accent-soft);border-color:var(--accent)}.map-panel{z-index:11;background:var(--surface);border-left:1px solid var(--line);width:min(84vw,340px);padding:28px 20px max(16px, env(safe-area-inset-bottom));overscroll-behavior:contain;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.map-panel .map-cell.map-now{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink)}.slide-in-right{animation:map-in .26s var(--ease)}@keyframes map-in{0%{transform:translate(100%)}}@media (min-width:1180px){.practice-wrap{justify-content:center;align-items:flex-start;gap:32px;display:flex}.practice-wrap .practice{flex:1;min-width:0;margin:0}.map-rail{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex:none;width:248px;max-height:calc(100vh - 56px);margin-top:28px;padding:18px 16px 14px;position:sticky;top:28px;overflow-y:auto}.map-rail .map-cell{border-radius:10px;min-height:38px;font-size:13px}.map-rail .map-cell.map-now{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink)}}.filter-panel{flex-direction:column;width:min(92vw,400px);padding-bottom:0;display:flex}.filter-groups{flex:1}.filter-group{border:0;min-width:0;margin:0 0 22px;padding:0}.filter-group legend{color:var(--ink);margin:0 0 10px;padding:0;font-size:13px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line);min-height:44px;color:var(--ink);font:500 14px var(--sans);font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation;transition:transform .14s var(--ease), border-color .14s ease, background-color .14s ease;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.chip:not(:disabled):active{transform:scale(.96)}.chip:not(:disabled):hover{border-color:var(--accent)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip:disabled{color:var(--dim);opacity:.55;cursor:default}.chip-n{color:var(--dim);font-size:12px;font-weight:400}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip[aria-pressed=true] .chip-n{color:inherit;opacity:.8}.filter-foot{padding:14px 20px max(14px, env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:2px;margin:0 -20px;display:flex;position:sticky;bottom:0}.code-actions{flex-wrap:wrap;justify-content:space-between;gap:4px;display:flex}@media (min-width:700px){.rows{grid-template-columns:repeat(2,minmax(0,1fr))}.year .rows{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.tabs{display:none}.main-study{max-width:none;padding:0}.study{grid-template-columns:256px minmax(0,1fr);align-items:start;min-height:100vh;display:grid}.study-main{padding:0 48px}.practice{max-width:820px;min-height:0;padding-top:28px;padding-bottom:32px}.menu-side{background:var(--surface);border-right:1px solid var(--line);height:100vh;padding:28px 24px 20px;display:block;position:sticky;top:0;overflow-y:auto}.menu-side .menu-item{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.account{max-width:420px;margin:0 auto}.account h1{font:600 var(--display)/1.14 var(--sans);letter-spacing:-.015em;margin:0 0 8px}.account-section{border-top:1px solid var(--line);padding:22px 0}.account-section:first-of-type{border-top:0}.account-section h2{font:600 22px/1.2 var(--sans);margin:0 0 12px}.account-username{overflow-wrap:anywhere;margin:0 0 4px}.account-value{overflow-wrap:anywhere;margin:0 0 12px}.btn-danger{background:var(--wrong);border-color:var(--wrong);color:var(--on-accent)}.btn-danger:hover{border-color:var(--wrong)}.stats{max-width:760px;margin:0 auto}.stats h1{font:600 var(--display)/1.14 var(--sans);letter-spacing:-.015em;margin:0}.stats-range{grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 16px;display:grid}.stats-range .btn{white-space:nowrap;min-height:44px;padding:6px 4px;font-size:13px}@media (min-width:700px){.stats-range .btn{font-size:14px}}.stats-range .btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.stats-busy{opacity:.55;transition:opacity .15s}.stats-failed{text-align:center;color:var(--dim);padding:16px 0}.stats-failed p{margin:0 0 12px}.stats-failed .btn{width:auto}.stats-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px;display:grid}.stats-tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;justify-content:space-between;gap:6px;padding:12px 14px;display:flex}.stats-tile dt{color:var(--dim);font-size:13px}.stats-tile dd{font:600 30px/1.15 var(--sans);font-variant-numeric:tabular-nums;margin:0}.stats-tile dd.stats-tile-share{font:400 14px/1.3 var(--sans);color:var(--dim)}.stats-share span,.stats-bar-value .stats-share{white-space:nowrap}.stats-tile-share strong{font:600 30px/1.15 var(--sans);color:var(--ink);display:block}.stats-tile dd.stats-wait{font:400 14px/1.3 var(--sans);color:var(--dim)}@media (min-width:700px){.stats-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}.stats-section{min-width:0;margin:0 0 12px}.stats-section h2{font:600 22px/1.2 var(--sans);margin:0 0 12px}.stats-section h3{font:600 14px/1.3 var(--sans);margin:0 0 8px}.stats-section h4{font:600 14px/1.3 var(--sans);margin:18px 0 8px}.stats-notes .fine{margin:10px 0 0}.stats-none{color:var(--dim);margin:0;font-size:14px}.stats-wait{color:var(--dim)}.stats-pair{gap:18px;display:grid}@media (min-width:700px){.stats-pair{grid-template-columns:1fr 1fr;gap:28px}}.stats-bars{gap:12px;margin:0;padding:0;list-style:none;display:grid}.stats-bar-text{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;font-size:14px;display:flex}.stats-bar-value{color:var(--dim);text-align:right;font-variant-numeric:tabular-nums}.stats-bar-value strong{color:var(--ink);font-weight:600}.stats-bar-track{background:var(--line);border-radius:0 4px 4px 0;height:12px;overflow:hidden}.stats-bar-fill{background:var(--accent);border-radius:0 4px 4px 0;height:100%}.stats-readout{color:var(--dim);font-variant-numeric:tabular-nums;margin:0 0 6px;font-size:14px}.stats-chart{min-width:0}.stats-chart svg{touch-action:pan-y;cursor:crosshair;-webkit-user-select:none;user-select:none;display:block}.stats-grid{stroke:var(--line);stroke-width:1px}.stats-tick{fill:var(--dim);font-variant-numeric:tabular-nums;font-size:13px}.stats-column{fill:var(--accent)}.stats-pick{fill:var(--accent-soft)}.stats-table{color:var(--dim);margin-top:8px;font-size:13px}.stats-table summary{cursor:pointer;align-items:center;width:-moz-fit-content;width:fit-content;min-height:44px;display:flex}.stats-table summary:before{content:"›";margin-right:6px}.stats-table[open] summary:before{content:"⌄"}.stats-table table{border-collapse:collapse;color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px}.stats-table th,.stats-table td{text-align:left;border-bottom:1px solid var(--line);padding:4px 20px 4px 0;font-weight:400}.stats-table th{color:var(--dim)}.stats-try-subjects{margin-top:18px!important}.stats-figure{color:var(--dim);margin:0}.stats-figure strong{font:600 30px/1.15 var(--sans);color:var(--ink);margin-right:4px}.stats-list table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.stats-list thead th{color:var(--dim);text-align:left;vertical-align:bottom;border-bottom:1px solid var(--line);padding:4px 6px 6px 0;font-weight:400}.stats-list tbody th,.stats-list tbody td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:4px 6px 4px 0;font-weight:400}.stats-list td strong{font-weight:600}.stats-code{min-height:44px;color:var(--accent);font:inherit;text-align:left;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.stats-code[aria-expanded=true]{font-weight:600}@media (min-width:700px){.stats-list table{font-size:14px}}.stats-list .stats-open>td{padding:0 0 14px}.stats-student{background:var(--bg);border-radius:12px;margin-top:10px;padding:14px}.stats-student-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stats-student-head h3{font:600 20px/1.2 var(--sans);margin:0}.stats-student-head .btn-quiet{margin-right:-8px}.stats-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 0;font-size:14px;display:grid}.stats-facts dt{color:var(--dim);font-size:13px}.stats-facts dd{margin:0}.stats-facts strong{font-weight:600}@media (min-width:700px){.stats-facts{grid-template-columns:repeat(4,minmax(0,1fr))}}.stats-pager{color:var(--dim);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.stats-pager .btn{width:auto;min-height:44px;color:var(--ink);padding:6px 12px;font-size:14px}@media (max-width:400px){.bar .brand{gap:0;font-size:0}.bar-actions .btn{padding-left:4px;padding-right:4px}.bar-actions .hi{max-width:24vw}}.explain,.scheme,.part-card{background:var(--surface);box-shadow:0 2px 0 var(--line), 0 6px 0 var(--card-under), 0 10px 20px var(--shadow);border-radius:18px;padding:18px}.explain{margin:22px 0 8px}.explain .rich,.written .rich{font-family:var(--sans)}.explain-title{font:600 16px var(--sans);margin:0 0 8px}.explain-right{margin:0;font-size:16px;line-height:1.55}.explain-wrong{margin:12px 0 0;padding:0;font-size:16px;line-height:1.55;list-style:none;display:grid}.explain-wrong li{border-top:1px solid var(--line);padding:10px 0}.explain-label{color:var(--dim);font-size:13px;font-weight:600;display:block}.explain-report{color:var(--dim);margin:10px 0 0;font-size:13px}.explain-report-btn{min-height:44px;font:inherit;color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.written-nav{justify-content:space-between;gap:8px;margin:0 -12px 4px;display:flex}.written .progress-text{align-items:center;margin-bottom:8px}.part{flex-direction:column;flex:1;display:flex}.part-bar{background:var(--line);border-radius:9px;height:5px;margin-bottom:6px;overflow:hidden}.part-bar i{background:var(--accent);height:100%;transition:width .24s var(--ease);border-radius:9px;display:block}.part-meta{color:var(--dim);flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 8px;font-size:13px;display:flex}.part-label{font:600 18px var(--sans);color:var(--ink)}.part-marks{font-variant-numeric:tabular-nums}.part-intro{color:var(--dim);margin:0 0 12px;font-size:16px;line-height:1.55}.written .stem{margin:0;font-size:18px;font-weight:500}.part-ask{text-align:center;gap:10px;margin-top:18px;display:grid}.part-hint{color:var(--dim);margin:0;font-size:14px}.part-skip{justify-self:start}.scheme{margin:22px 0 0}.scheme+.explain{margin-top:22px}.scheme-hint{color:var(--dim);margin:-6px 0 10px;font-size:13px}.scheme-points{gap:8px;margin:0;padding:0;list-style:none;display:grid}.scheme-point{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;touch-action:manipulation;min-height:54px;transition:border-color .14s ease, background-color .24s ease, transform .14s var(--ease);border-radius:12px;align-items:baseline;gap:10px;padding:13px 14px;font-size:16px;line-height:1.4;display:flex;position:relative}@media (hover:hover){.scheme-point:hover{border-color:var(--accent)}}.scheme-point:active{transform:scale(.992)}.scheme-point:has(input:checked){border-color:var(--accent);background:var(--accent-soft);font-weight:600}.scheme-point:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.scheme-point .opt-mark{color:var(--accent);align-self:flex-start;margin-top:2px}.scheme-body{overflow-wrap:anywhere;gap:2px;min-width:0;display:grid}.scheme-note{color:var(--dim);font-size:13px;font-weight:400}.scheme-marks{color:var(--dim);font-variant-numeric:tabular-nums}.scheme-points .figure{margin:8px 0 0}.scheme-total{color:var(--accent);font:700 24px/1.2 var(--sans);font-variant-numeric:tabular-nums;margin:12px 0 0}.scheme-failed{color:var(--wrong);margin:8px 0 0;font-size:14px}.scheme-failed .explain-report-btn{color:inherit}.explain-steps{counter-reset:step;gap:10px;margin:12px 0 0;padding:0;font-size:16px;line-height:1.55;list-style:none;display:grid}.explain-steps li{counter-increment:step;gap:10px;min-width:0;display:flex}.explain-steps li:before{content:counter(step);background:var(--accent-soft);width:24px;height:24px;color:var(--accent);font:700 13px/24px var(--sans);text-align:center;border-radius:50%;flex:none}.explain-mistake{background:var(--wrong-soft);border-radius:10px;margin:14px 0 0;padding:10px 12px;font-size:15px;line-height:1.5}.explain-mistake .explain-label{color:var(--wrong)}.written-title{font:600 22px/1.25 var(--sans);overflow-wrap:anywhere;margin:4px 0 14px}.written-kind{font:500 13px var(--sans);color:var(--dim);margin-bottom:2px;display:block}.table-scroll{max-width:100%;margin:8px 0;overflow-x:auto}.part-table{border-collapse:collapse;font-size:.95em}.part-table th,.part-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:4px 10px}.part-table th{background:var(--surface);font-weight:600}.part-table .rich{overflow-wrap:normal}
