:root{--bg:#0e1116;--surface:#161a21;--surface2:#11151b;--ink:#e7eaf0;--ink-soft:#99a2b2;--line:#222934;--line-cool:#2a323f;--accent:#93c57a;--accent-dim:#93c57a1f;--good:#6fcf97;--good-bg:#6fcf971a;--good-line:#6fcf9766;--bad:#e8897b;--bad-bg:#e8897b1a;--bad-line:#e8897b66;--shadow:0 1px 2px #0006, 0 12px 32px #00000059;--radius:16px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(820px 420px at 88% -12%, #93c57a0d, transparent 60%), var(--bg);-moz-text-size-adjust:100%;text-size-adjust:100%;color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Segoe UI,"Segoe UI Web (West European)",system-ui,-apple-system,Helvetica Neue,sans-serif;line-height:1.55}::selection{background:var(--accent);color:#0e1116}strong,b,h1,h2,h3,h4,.semi{font-family:Segoe UI Semibold,Segoe UI,system-ui,sans-serif;font-weight:600}h1,h2,h3{margin:0;line-height:1.2}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:920px;margin:0 auto;padding:0 18px 70px}.wrap.slim{padding-top:20px;padding-bottom:0}header{z-index:50;-webkit-backdrop-filter:saturate(140%)blur(10px);backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--line);background:#0e1116d1;position:sticky;top:0}.head-inner{max-width:920px;margin:0 auto;padding:14px 18px 0}.brand{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.brand .mark{letter-spacing:-.2px;color:#fff;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:20px;font-weight:600}.brand .mark .a{color:var(--accent)}.brand .sub{color:var(--ink-soft);font-size:13px}nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;margin-top:2px;padding:12px 0 0;display:flex;overflow-x:auto}nav::-webkit-scrollbar{display:none}nav button{cursor:pointer;color:var(--ink-soft);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:9px 9px 0 0;flex:none;padding:9px 13px;font-family:inherit;font-size:14px;transition:color .15s,background .15s;position:relative}nav button:hover{color:#fff}nav button.active{color:#fff;border-bottom-color:var(--accent);font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-weight:600}h1.strap{letter-spacing:-.2px;font-size:21px}h1.strap .dot{color:var(--accent)}p.strapsub{color:var(--ink-soft);margin:6px 0 0;font-size:14.5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:18px;padding:22px}.card.tight{padding:18px 20px}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:12px;font-weight:600}.lede{color:var(--ink-soft);margin-top:6px;font-size:15px}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:8px;display:grid}.stat{border:1px solid var(--line-cool);background:var(--surface2);border-radius:12px;padding:13px 15px}.stat .k{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em;font-size:12px}.stat .v{color:#fff;margin-top:2px;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:22px;font-weight:600}.stat .v small{color:var(--ink-soft);font-family:Segoe UI,sans-serif;font-size:13px;font-weight:400}table{border-collapse:collapse;width:100%;margin-top:10px;font-size:14.5px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:9px 10px}th{color:#fff;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:13px;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.pill{background:var(--accent-dim);color:var(--accent);border-radius:999px;padding:2px 9px;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:12px;font-weight:600;display:inline-block}.pill.gray{color:var(--ink-soft);background:#1b2230}.callout{border:1px solid var(--line);border-left:3px solid var(--accent);background:linear-gradient(#93c57a0f,#93c57a05);border-radius:12px;margin-top:16px;padding:16px 18px}.callout .t{color:#fff;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-weight:600}.subtabs{gap:8px;margin-top:4px;display:flex}.subtabs button{border:1px solid var(--line-cool);background:var(--surface2);cursor:pointer;color:var(--ink-soft);border-radius:999px;padding:8px 16px;font-family:inherit;font-size:14px;transition:all .15s}.subtabs button:hover{color:#fff;border-color:#33405a}.subtabs button.active{background:var(--accent);color:#0e1116;border-color:var(--accent);font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-weight:600}ul.checklist{margin:14px 0 0;padding:0;list-style:none}ul.checklist li{border:1px solid var(--line-cool);cursor:pointer;background:var(--surface2);border-radius:11px;align-items:flex-start;gap:11px;margin-bottom:9px;padding:11px 12px;transition:background .12s,border-color .12s;display:flex}ul.checklist li:hover{background:#121a26;border-color:#33405a}ul.checklist li.done{background:var(--good-bg);border-color:var(--good-line)}ul.checklist .box{border:2px solid var(--ink-soft);color:#06210e;border-radius:6px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:13px;transition:all .12s;display:flex}ul.checklist li.done .box{background:var(--good);border-color:var(--good)}ul.checklist .tx{font-size:14.5px}ul.checklist li.done .tx{color:#bfe9cc}.qmeta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.qcount{color:var(--ink-soft);letter-spacing:.04em;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:13px;font-weight:600}.pace{color:var(--ink-soft);align-items:center;gap:8px;font-size:13px;display:flex}.pace .clock{font-variant-numeric:tabular-nums;color:#fff;background:#1a2230;border-radius:7px;padding:2px 8px;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-weight:600}.pace .clock.over{background:var(--bad-bg);color:var(--bad)}.toggle{cursor:pointer;color:var(--ink-soft);-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:inline-flex}.toggle .sw{background:#2a3445;border-radius:999px;width:34px;height:19px;transition:background .15s;position:relative}.toggle .sw:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0006}.toggle.on .sw{background:var(--accent)}.toggle.on .sw:after{left:17px}.passage{background:var(--surface2);border:1px solid var(--line);border-radius:12px;margin-top:14px;padding:16px 18px;font-size:14.5px}.passage h4{color:var(--accent);margin-bottom:6px;font-size:14px}.passage p{margin:0 0 10px}.passage p:last-child{margin-bottom:0}.passage table{margin-top:4px}.qprompt{margin-top:16px;font-size:16px}.qprompt u{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:2px}.choices{flex-direction:column;gap:9px;margin-top:14px;display:flex}.choice{text-align:left;border:1px solid var(--line-cool);background:var(--surface2);cursor:pointer;width:100%;color:var(--ink);border-radius:11px;align-items:flex-start;gap:12px;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.choice:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 0 3px #93c57a1f}.choice:disabled{cursor:default}.choice .ltr{width:26px;height:26px;color:var(--ink-soft);background:#1a2230;border-radius:7px;flex:none;justify-content:center;align-items:center;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:13px;font-weight:600;display:flex}.choice.correct{background:var(--good-bg);border-color:var(--good-line)}.choice.correct .ltr{background:var(--good);color:#06210e}.choice.wrong{background:var(--bad-bg);border-color:var(--bad-line)}.choice.wrong .ltr{background:var(--bad);color:#2a0b0b}.explain{border-radius:11px;margin-top:14px;padding:14px 16px;font-size:14.5px;display:none}.explain.show{display:block}.explain.right{background:var(--good-bg);border:1px solid var(--good-line)}.explain.wrong{background:var(--bad-bg);border:1px solid var(--bad-line)}.explain .v{font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-weight:600}.explain.right .v{color:var(--good)}.explain.wrong .v{color:var(--bad)}.qnav{justify-content:space-between;gap:10px;margin-top:18px;display:flex}.btn{border:1px solid var(--accent);background:var(--accent);color:#0e1116;cursor:pointer;border-radius:10px;padding:11px 20px;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:14px;font-weight:600;transition:opacity .15s,transform 50ms,box-shadow .15s}.btn:hover{box-shadow:0 0 0 4px #93c57a2e}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.35;cursor:default;box-shadow:none}.btn.ghost{color:var(--ink);background:0 0;border-color:#2a3445}.btn.ghost:hover{box-shadow:none;background:#141b26}.btn.sm{padding:8px 14px;font-size:13px}.secbar{background:#1a2230;border-radius:999px;height:7px;margin-top:10px;overflow:hidden}.secbar i{background:linear-gradient(90deg,var(--accent),#b6e08c);width:0;height:100%;transition:width .3s;display:block}.scratch{border:1px solid var(--line-cool);resize:vertical;width:100%;min-height:180px;color:var(--ink);background:var(--surface2);border-radius:11px;margin-top:10px;padding:13px 14px;font-family:inherit;font-size:14.5px}.scratch:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #93c57a1f}details.fold{border:1px solid var(--line-cool);background:var(--surface2);border-radius:11px;margin-top:12px;padding:0 16px}details.fold summary{cursor:pointer;color:#fff;padding:13px 0;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-weight:600;list-style:none}details.fold summary::-webkit-details-marker{display:none}details.fold summary:before{content:"+ ";color:var(--accent)}details.fold[open] summary:before{content:"– "}details.fold .body{padding:0 0 16px}.ref h4{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-top:16px;font-size:13px}.ref ul{margin:8px 0 0;padding-left:20px;font-size:14.5px}.ref li{margin-bottom:6px}.ref code{color:#e4ecf7;background:#1a2230;border-radius:5px;padding:1px 6px;font-size:13.5px}.muted{color:var(--ink-soft);font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hide{display:none!important}.ad-slot{justify-content:center;margin:20px 0 0;display:flex}.ad-slot:empty{margin:0;display:none}section.seo{border-top:1px solid var(--line);margin-top:34px;padding-top:8px}.tablewrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.tablewrap table{min-width:520px}section.seo h2{margin-top:24px;font-size:19px}section.seo p{color:var(--ink-soft);font-size:14.5px}footer.site{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:46px;padding:26px 0 40px;font-size:13px}footer.site .links{margin-bottom:10px}footer.site .links a{margin-right:16px}footer.site .poweredby{margin-bottom:8px}footer.site .poweredby a{color:var(--accent);font-weight:600;text-decoration:none}footer.site .poweredby a:hover{text-decoration:underline}.mockbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.mockclock{font-variant-numeric:tabular-nums;color:#fff;background:#1a2230;border-radius:10px;padding:6px 14px;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:26px;font-weight:600}.mockclock.urgent{background:var(--bad-bg);color:var(--bad)}.palette{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:7px;margin-top:14px;display:grid}.pcell{border:1px solid var(--line-cool);background:var(--surface2);color:var(--ink-soft);cursor:pointer;border-radius:8px;padding:8px 0;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:13px;font-weight:600;transition:border-color .12s,color .12s,background .12s;position:relative}.pcell:hover{color:#fff;border-color:#33405a}.pcell.ans{background:var(--accent-dim);color:var(--accent);border-color:#93c57a66}.pcell.cur{outline:2px solid var(--accent);outline-offset:1px;color:#fff}.pcell.flag:after{content:"";background:var(--bad);border-radius:50%;width:6px;height:6px;position:absolute;top:3px;right:3px}.choice.chosen{border-color:var(--accent);background:var(--accent-dim)}.choice.chosen .ltr{background:var(--accent);color:#0e1116}@media (max-width:640px){.wrap{padding:0 16px 64px}h1.strap{font-size:26px}p.strapsub,.lede{font-size:16px}nav button{padding:10px 13px;font-size:15px}.card{padding:18px 16px}.callout{padding:15px 16px}.callout .t{font-size:16px}.qmeta{gap:8px}.qcount,.toggle{font-size:13.5px}.qprompt{font-size:17px;line-height:1.5}.choice{gap:12px;padding:14px;font-size:16px}.choice .ltr{width:28px;height:28px;font-size:13px}.explain,.passage{font-size:15.5px}.btn{padding:13px 18px;font-size:15px}.btn.sm{padding:10px 15px;font-size:14px}.scratch{font-size:16px}.muted{font-size:13.5px}.stat .v{font-size:21px}ul.checklist .tx{font-size:15.5px}ul.checklist li{padding:13px}section.seo h2{font-size:20px}section.seo p{font-size:16px}.ref ul{font-size:15.5px}.ref code{font-size:14px}details.fold summary{font-size:16px}details.fold .body p,details.fold .body li{font-size:15.5px}.palette{grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:6px}.pcell{padding:9px 0}.mockclock{font-size:22px}}@media (max-width:380px){h1.strap{font-size:23px}nav button{padding:10px 11px;font-size:14.5px}.choice{font-size:15.5px}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{touch-action:manipulation}ul.checklist.static li{cursor:default;pointer-events:none}ul.checklist li:focus-visible{border-color:var(--accent)}.stat-link{text-align:left;color:inherit;cursor:pointer;width:100%;font-family:inherit;line-height:1.55;transition:border-color .12s}.stat-link:hover{border-color:var(--accent)}.btn.danger{background:var(--bad);border-color:var(--bad);color:#2a0b0b}.btn.danger:hover{box-shadow:0 0 0 4px #e8897b33}.linkish{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:13px}.linkish:hover{text-decoration:underline}.practice-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:14px;padding-top:10px;display:flex}.keys-hint{color:var(--ink-soft)}@media (hover:none),(pointer:coarse){.keys-hint{display:none}}.passage-tag{letter-spacing:0;text-transform:none;font-family:Segoe UI,sans-serif;font-size:12.5px;font-weight:400}.palette.qmap{margin-top:10px}.pcell.ok{background:var(--good-bg);color:var(--good);border-color:var(--good-line)}.pcell.miss{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-line)}.tablewrap{position:relative}.tablewrap table.dash{min-width:460px}table.dash td{vertical-align:middle}.acc{font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:inline-flex}.meter{background:#1a2230;border-radius:999px;flex:none;width:72px;height:7px;display:inline-block;overflow:hidden}.meter i{background:var(--ink-soft);height:100%;display:block}.meter.good i{background:var(--good)}.meter.mid i{background:var(--accent)}.meter.low i{background:var(--bad)}details.topic-fold .body{padding-bottom:8px}dialog.modal{background:var(--surface);color:var(--ink);border:1px solid var(--line-cool);border-radius:var(--radius);box-shadow:var(--shadow);width:100%;max-width:min(440px,100vw - 32px);padding:22px}dialog.modal::backdrop{background:#05070ab8}dialog.modal h2{color:#fff;font-size:19px}dialog.modal p{color:var(--ink-soft);margin:10px 0 0}.modal-actions{justify-content:flex-end;margin-top:18px}table.keys td{padding:7px 8px}kbd{border:1px solid var(--line-cool);color:#fff;white-space:nowrap;background:#1a2230;border-radius:6px;padding:2px 7px;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:12.5px}.flashcard{border:1px solid var(--line-cool);background:var(--surface2);width:100%;min-height:200px;color:var(--ink);cursor:pointer;perspective:900px;border-radius:14px;margin-top:16px;padding:0;font-family:inherit;display:block;position:relative}.flashcard:hover{border-color:var(--accent)}.fc-face{text-align:center;backface-visibility:hidden;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:22px 18px;transition:transform .35s,opacity .2s;display:flex;position:absolute;inset:0}.fc-back{opacity:0;transform:rotateY(180deg)}.flashcard.flipped .fc-front{opacity:0;transform:rotateY(-180deg)}.flashcard.flipped .fc-back{opacity:1;transform:rotateY(0)}.fc-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:12px;font-weight:600}.fc-text{color:#fff;overflow-wrap:anywhere;font-family:Segoe UI Semibold,Segoe UI,sans-serif;font-size:22px;font-weight:600;line-height:1.3}code.fc-text{background:0 0;padding:0}.fc-hint{color:var(--ink-soft);font-size:12.5px}.fc-actions{justify-content:center;margin-top:14px}@media (prefers-reduced-motion:reduce){.fc-face{transition:none}}@media (max-width:640px){.card.practice .qnav,.mockhead+.card .qnav{z-index:5;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line-cool);border-radius:0 0 var(--radius) var(--radius);margin:18px -16px -18px;position:sticky;bottom:0;box-shadow:0 -8px 18px #00000059}.qnav .btn{flex:1 1 0}.explain{scroll-margin-bottom:96px}.palette{grid-template-columns:repeat(auto-fill,minmax(40px,1fr))}.pcell{padding:11px 0}.fc-text{font-size:21px}.flashcard{min-height:220px}.linkish{font-size:14px}dialog.modal{padding:20px 18px}}
