:root{--bg:#f6f3ec;--surface:#fffefb;--surface-2:#f0ece2;--ink:#1e1c18;--ink-2:#5a564c;--ink-3:#8c877a;--line:#e6e1d4;--accent:#4a56e2;--accent-2:#8a5cf0;--accent-ink:#fff;--accent-soft:#e9ebfc;--easy:#19794a;--easy-soft:#e0f1e7;--med:#a05a00;--med-soft:#fbecd2;--hard:#c0303d;--hard-soft:#fbe2e3;--code-bg:#1d1f27;--code-ink:#e6e6ea;--glass:color-mix(in srgb, var(--surface) 82%, transparent);--ring:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);--shadow:0 1px 2px #3c2d0f0d, 0 6px 20px -6px #3c2d0f1a;--shadow-lg:0 2px 4px #3c2d0f0d, 0 16px 40px -12px #3c2d0f2e;--radius:16px;--radius-lg:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:34px;--ease:cubic-bezier(.2, .8, .2, 1);--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121317;--surface:#1b1c22;--surface-2:#262830;--ink:#efede8;--ink-2:#b5b2a9;--ink-3:#7f7c73;--line:#2f313a;--accent:#8c9bff;--accent-2:#b595ff;--accent-ink:#0c1024;--accent-soft:#232a4a;--easy:#55cc93;--easy-soft:#16301f;--med:#f2b756;--med-soft:#33281a;--hard:#ff7c84;--hard-soft:#3a1e22;--code-bg:#0d0e12;--shadow:0 1px 2px #00000059, 0 8px 24px -8px #0000008c;--shadow-lg:0 2px 4px #0006, 0 18px 44px -12px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121317;--surface:#1b1c22;--surface-2:#262830;--ink:#efede8;--ink-2:#b5b2a9;--ink-3:#7f7c73;--line:#2f313a;--accent:#8c9bff;--accent-2:#b595ff;--accent-ink:#0c1024;--accent-soft:#232a4a;--easy:#55cc93;--easy-soft:#16301f;--med:#f2b756;--med-soft:#33281a;--hard:#ff7c84;--hard-soft:#3a1e22;--code-bg:#0d0e12;--shadow:0 1px 2px #00000059, 0 8px 24px -8px #0000008c;--shadow-lg:0 2px 4px #0006, 0 18px 44px -12px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:22px;height:22px}::selection{background:color-mix(in srgb, var(--accent) 28%, transparent)}.app{min-height:100dvh}main{padding:calc(env(safe-area-inset-top) + 20px) max(16px, env(safe-area-inset-right)) calc(100px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));max-width:920px;animation:page-in .28s var(--ease) both;outline:none;margin:0 auto}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.nav{z-index:10;padding:6px max(6px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));background:var(--glass);-webkit-backdrop-filter:saturate(1.8)blur(20px);backdrop-filter:saturate(1.8)blur(20px);border-top:1px solid var(--line);justify-content:space-around;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{min-width:0;max-width:96px;min-height:52px;color:var(--ink-3);letter-spacing:.005em;border-radius:14px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-size:10.5px;font-weight:600;transition:color .18s,background-color .18s;display:flex;position:relative}.nav a svg{transition:transform .25s var(--ease)}.nav a span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.nav a.active{color:var(--accent);background:var(--accent-soft)}.nav a.active svg{stroke-width:2.1px;transform:translateY(-1px)scale(1.06)}.brand,.nav-foot{display:none}h1{letter-spacing:-.02em;margin:0 0 4px;font-size:30px;line-height:1.15}h2{letter-spacing:-.01em;margin:32px 0 12px;font-size:20px}h3{margin:0 0 8px;font-size:16px}.sub{color:var(--ink-2);margin:0 0 20px}.muted{color:var(--ink-3)}.small{font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.grid{gap:14px;display:grid}.btn{border:1px solid var(--line);background:var(--surface);border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 18px;font-weight:600;display:inline-flex}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.ghost{background:0 0}.btn.small{border-radius:10px;min-height:36px;padding:6px 12px;font-size:14px}.btn[disabled],.btn.disabled{opacity:.45;pointer-events:none}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:600;display:inline-flex}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.badge{letter-spacing:.02em;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.d-Easy{color:var(--easy);background:var(--easy-soft)}.d-Medium{color:var(--med);background:var(--med-soft)}.d-Hard{color:var(--hard);background:var(--hard-soft)}.tag{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:2px 9px;font-size:12.5px;font-weight:600;display:inline-block}.bar{background:var(--surface-2);border-radius:99px;height:6px;overflow:hidden}.bar>i{background:var(--accent);border-radius:99px;height:100%;display:block}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:12px;font-weight:700}ul.clean{margin:0;padding-left:18px}ul.clean li{margin:4px 0}.segmented{background:var(--surface-2);border-radius:11px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);background:0 0;border:0;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600}.stats{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.stat{padding:14px 16px}.stat b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;line-height:1.1;display:block}.stat span{color:var(--ink-2);font-size:13px}.get-app .setting>a.btn{text-align:center}.pgrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.pcard{color:var(--ink);flex-direction:column;gap:8px;padding:16px 18px;display:flex}.pcard:active{transform:scale(.99)}.ico{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;place-items:center;font-size:17px;font-weight:700;display:grid}.pcard p{color:var(--ink-2);flex:1;margin:0;font-size:14px;line-height:1.45}.two{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=760px){.two{grid-template-columns:1fr 1fr}}.gist{margin:0 0 18px;font-size:18px;line-height:1.5}pre.code{background:var(--code-bg);color:var(--code-ink);font:13.5px/1.6 var(--mono);tab-size:4;-webkit-overflow-scrolling:touch;border-radius:12px;margin:0;padding:16px 18px;overflow-x:auto}.code .k{color:#c792ea}.code .t{color:#ffcb6b}.code .s{color:#c3e88d}.code .c{color:#8a93a5;font-style:italic}.code .n{color:#f78c6c}.code .f{color:#82aaff}.op-topic{margin-bottom:26px}.op-topic h3{align-items:baseline;gap:10px;margin-bottom:2px;font-size:18px;display:flex}.op-topic>p{color:var(--ink-2);margin:0 0 10px;font-size:14.5px}.op-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;font-size:14.5px;overflow:hidden}.op-table td{border-top:1px solid var(--line);vertical-align:top;padding:9px 12px}.op-table tr:first-child td{border-top:0}.op-table td:first-child{width:32%;font-weight:600}.op-table td:nth-child(2){width:24%}.op-table a{color:inherit}@media (width<=640px){.op-table,.op-table tbody,.op-table tr,.op-table td{display:block;width:auto!important}.op-table td{border:0;padding:2px 12px}.op-table tr{border-top:1px solid var(--line);padding:8px 0}.op-table tr:first-child{border-top:0}}.filters{z-index:5;padding:calc(env(safe-area-inset-top) + 8px) 0 10px;background:var(--bg);flex-direction:column;gap:10px;margin-bottom:16px;display:flex;position:sticky;top:0}.search{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:10px 14px;font-size:16px}.search:focus{outline:2px solid var(--accent);outline-offset:-1px}.chips{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}select.chip{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:right 14px center,right 9px center;background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.group-h{justify-content:space-between;align-items:baseline;gap:8px;margin:24px 2px 8px;display:flex}.group-h h2{margin:0;font-size:16px}.group-h span{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.list{flex-direction:column;gap:8px;display:flex}.dot{border:2px solid var(--line);border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.dot.solved{background:var(--easy);border-color:var(--easy)}.dot.solved:after{content:"";border:0 solid #fff;border-width:0 0 2px 2px;width:9px;height:5px;transform:translateY(-1px)rotate(-45deg)}.dot.revisit{border-color:var(--hard);background:var(--hard-soft)}.dot.revisit:after{content:"↻";color:var(--hard);font-size:12px;font-weight:800;line-height:1}.prob{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;transition:border-color .15s,box-shadow .15s;display:grid}.prob-tick{background:0 0;border:0;border-radius:12px 0 0 12px;align-self:stretch;place-items:center;width:48px;min-height:52px;padding:0;display:grid}.prob-tick:hover .dot:not(.solved){border-color:var(--easy)}.prob-link{min-width:0;color:var(--ink);flex-direction:column;gap:5px;padding:11px 0;display:flex}.prob .t{overflow-wrap:anywhere;font-weight:600;line-height:1.3}.prob-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.prob .key-line{color:var(--ink-2);font-size:14px;line-height:1.4}.chev{color:var(--ink-3);padding:0 14px 0 8px;font-size:22px;line-height:1}.fsels{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.fsel{min-width:0;position:relative}.fsel select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:40px;color:var(--ink-2);appearance:none;text-overflow:ellipsis;border-radius:10px;padding:8px 30px 8px 12px;font-size:14px;font-weight:600}.fsel:after{content:"";border:solid var(--ink-3);pointer-events:none;border-width:0 1.8px 1.8px 0;width:6px;height:6px;position:absolute;top:50%;right:13px;transform:translateY(-70%)rotate(45deg)}.fsel.on select{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.fsel select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.fcount{color:var(--ink-3);align-items:center;gap:12px;min-height:20px;font-size:13px;display:flex}.linkbtn{color:var(--accent);background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.empty-state{text-align:center;color:var(--ink-2);padding:48px 16px}.empty-state p{color:var(--ink-3);margin:4px 0 14px}@media (width<=520px){.fsels{grid-template-columns:1fr 1fr}.fsel:first-child{grid-column:1/-1}}.notes{gap:12px;padding-top:14px;display:grid}.notes .lbl,.sol .lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px;font-size:12px;font-weight:700}.notes ol,.sol ol{margin:0;padding-left:20px}.notes ol li,.sol ol li{margin:3px 0}.notes .key{background:var(--accent-soft);border-radius:10px;padding:10px 14px}.notes .key .lbl{color:var(--accent)}.notes .facts{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=600px){.notes .facts{grid-template-columns:1fr 1fr}}.notes .cx{font-family:var(--mono);font-size:14px}.notes .sheet{color:var(--ink-2);border-left:3px solid var(--line);padding-left:10px;font-size:14px}.actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.btn.on-solved{background:var(--easy-soft);color:var(--easy);border-color:#0000}.btn.on-revisit{background:var(--hard-soft);color:var(--hard);border-color:#0000}.code-wrap{gap:8px;display:grid}.code-bar{gap:8px}.lang-tabs button{min-width:52px}.sol{border-top:1px dashed var(--line);gap:14px;margin-top:18px;padding-top:16px;display:grid}.sol-h{justify-content:space-between;align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.verified{color:var(--easy);background:var(--easy-soft);border-radius:6px;padding:2px 9px;font-size:12.5px;font-weight:600}.dry{background:var(--surface-2);border-radius:12px;padding:12px 14px;overflow-x:auto}.dry .io{font:13.5px/1.5 var(--mono)}.dry .io b{font:700 11.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-right:10px}.dry .io.out{color:var(--easy);font-weight:600}.sol ol.trace{font:13.5px/1.65 var(--mono);white-space:pre-wrap;margin:10px 0;padding-left:30px}.sol ol.trace li::marker{color:var(--ink-3)}.prob-page{padding:6px 22px 20px}.prob-page .actions{margin-top:18px}.review{max-width:760px;margin:0 auto}.rv-top{align-items:center;gap:12px;margin-bottom:14px;display:flex}.rv-top .bar{flex:1}.flash{cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;min-height:300px;padding:24px 26px;display:flex}.flash.flipped{cursor:default;-webkit-user-select:text;user-select:text}.flash .q-title{letter-spacing:-.02em;margin:8px 0 10px;font-size:26px;font-weight:700;line-height:1.2}.flash .prompt{color:var(--ink-3);text-align:center;margin-top:auto;padding-top:24px;font-size:15px}.flash .prompt b{color:var(--ink-2)}.grades{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;display:grid}.grades button{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;gap:0;min-height:60px;padding:10px 6px;font-weight:700;display:flex}.grades button small{color:var(--ink-3);font-size:12px;font-weight:500}.grades .g0{color:var(--hard)}.grades .g1{color:var(--med)}.grades .g2{color:var(--easy)}.grades .g3{color:var(--accent)}.kbd{font:11px var(--mono);border:1px solid var(--line);color:var(--ink-3);border-radius:4px;padding:1px 5px}.done-card{text-align:center;padding:40px 24px}.done-card .big{margin-bottom:8px;font-size:48px;line-height:1}.drill-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.drill-list a{color:var(--ink);text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-weight:600;display:flex}.setting{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 0;display:flex}.setting:first-child{border-top:0;padding-top:0}.setting>div:first-child{flex:1;min-width:200px}.setting p{color:var(--ink-2);margin:2px 0 0;font-size:14px}.toast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;z-index:30;border-radius:12px;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;font-weight:600;transition:all .2s;display:flex;position:fixed;transform:translate(-50%,20px)}.toast.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.toast button{color:var(--accent);background:0 0;border:0;padding:0;font-weight:700}@media (width>=1000px){.toast{bottom:24px;left:calc(50% + 116px)}}@media (width<=520px){h1{font-size:25px}.stat b{font-size:22px}.flash{padding:20px}.flash .q-title{font-size:22px}.grades{grid-template-columns:repeat(2,1fr)}}.minemark{color:var(--accent);font-size:14px;font-weight:700}.minemark[hidden]{display:none}.mine{border-top:1px dashed var(--line);gap:12px;margin-top:18px;padding-top:16px;scroll-margin-top:16px;display:grid}.mine.empty{grid-template-columns:1fr auto;align-items:center}@media (width<=520px){.mine.empty{grid-template-columns:1fr}.mine.empty .btn{justify-self:start}}.mine-h{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;font-size:17px;font-weight:700;display:flex}.mine-st{color:var(--ink-3);font-weight:500}.mine-st .ok{color:var(--easy);font-weight:700}.mine-st code{font:12.5px var(--mono);background:var(--surface-2);color:var(--ink-2);border-radius:5px;padding:1px 5px}.mine .lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px;font-size:12px;font-weight:700}.mine ol,.mine ul{margin:0;padding-left:20px}.mine li{margin:3px 0}.editor{resize:vertical;border:1px solid var(--line);background:var(--code-bg);width:100%;min-height:260px;color:var(--code-ink);font:14px/1.6 var(--mono);tab-size:4;white-space:pre;caret-color:var(--accent);border-radius:12px;padding:14px 16px;overflow-x:auto}.editor:focus{outline:2px solid var(--accent);outline-offset:1px}.editor::placeholder{color:#8b8f98}.mine-review{gap:14px;display:grid}.mine-appr{background:var(--accent-soft);border-radius:12px;gap:6px;padding:12px 14px;display:grid}.mine-appr p{margin:0}.mine-appr .cx{font-family:var(--mono)}.mine-name{font-size:16px}.mine-cmp{border-left:3px solid var(--med);padding-left:12px}.mine-notes li::marker{color:var(--accent)}.mine-old summary{cursor:pointer;color:var(--ink-2);font-size:14px;font-weight:600}.mine-old[open] summary{margin-bottom:10px}.verified.bad{color:var(--hard);background:var(--hard-soft)}.mine-chip{letter-spacing:0;text-transform:none;margin-left:6px;font-size:12px;font-weight:700}.setting.col{flex-direction:column;align-items:stretch}.setting.col>div:first-child{min-width:0}.explain{color:var(--ink-2);background:var(--surface-2);border-radius:10px;margin-top:10px;padding:10px 14px;font-size:15px;line-height:1.55}.explain .lbl{margin-bottom:2px}.notes .why{border-left:3px solid var(--accent);padding-left:12px;line-height:1.55}details.explain-d{margin:4px 0 0}details.explain-d summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600}details.explain-d p{color:var(--ink-2);margin:6px 0 0;font-size:15px;line-height:1.55}ol.algo li{border-radius:6px;transition:filter .2s,background .2s}ol.algo.recall li{cursor:pointer;filter:blur(5px);background:var(--surface-2);-webkit-user-select:none;user-select:none}ol.algo.recall li.seen{filter:none;background:var(--easy-soft)}.qline{padding-top:14px;font-size:16px;line-height:1.5}.qline .lbl,.pathbox .lbl,.deeper .lbl,.pt-tests .lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:12px;font-weight:700}.hints{margin-top:10px}.hints ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.hints li{background:var(--med-soft);border-radius:10px;padding:8px 12px;font-size:15px}.hints li[hidden]{display:none}.hint-n{letter-spacing:.05em;text-transform:uppercase;color:var(--med);margin-right:8px;font-size:11.5px;font-weight:800;display:inline-block}.hint-btn{margin-top:8px}.pathbox{margin-top:12px}.path{margin:0;padding-left:20px}.path li{margin:3px 0}.path li:last-child{color:var(--easy);font-weight:600}.deeper{border-top:1px dashed var(--line);gap:14px;margin-top:18px;padding-top:16px;display:grid}details.fu{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-top:6px;padding:0 12px}details.fu>summary{cursor:pointer;padding:10px 0;font-weight:600;list-style:none}details.fu>summary::-webkit-details-marker{display:none}details.fu>summary:before{content:"?";background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:50%;place-items:center;margin-right:8px;font-size:12px;font-weight:800;display:inline-grid}details.fu[open]>summary:before{content:"!";background:var(--easy-soft);color:var(--easy)}details.fu p{color:var(--ink-2);margin:0 0 12px 28px}.rel{flex-wrap:wrap;gap:6px;display:flex}.rel .chip{color:var(--accent);white-space:normal;text-align:left;max-width:100%;font-size:13px}.deeper>*,.notes>*,.sol>*,.mine>*,.mine-review>*,.prob-body>*{min-width:0}.q-text{color:var(--ink-2);margin:0 0 6px;font-size:16px;line-height:1.5}.flash .hints{margin-top:4px}.lesson-toc{scrollbar-width:none;gap:6px;margin:0 0 18px;padding-bottom:4px;display:flex;overflow-x:auto}.lesson-toc::-webkit-scrollbar{display:none}.lesson-toc a{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;flex:none;padding:6px 12px;font-size:13.5px;font-weight:600}.lesson-hero{border-left:4px solid var(--accent)}.lesson-big{margin:0;font-size:18px;line-height:1.55}.lesson-hero p{margin:0}table.vs{border-collapse:collapse;width:100%;font-size:14.5px}table.vs td{border-top:1px solid var(--line);vertical-align:top;padding:7px 4px}table.vs tr:first-child td{border-top:0}table.vs td:first-child{color:var(--ink-2);width:55%}ol.method{counter-reset:m;gap:8px;margin:0;padding:0;list-style:none;display:grid}ol.method li{counter-increment:m;background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-rows:auto auto;grid-template-columns:34px 1fr;column-gap:12px;padding:12px 14px;display:grid}ol.method li:before{content:counter(m);background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:50%;grid-row:span 2;place-items:center;font-weight:800;display:grid}ol.method li b{font-size:15.5px}ol.method li span{color:var(--ink-2);font-size:14.5px}.say-card{background:var(--easy-soft);border-color:#0000;margin-top:18px}.say-card p{margin:0;font-size:16px;font-style:italic}.fu-list{gap:2px;display:grid}ul.checklist{gap:6px;margin:0;padding:0;list-style:none;display:grid}ul.checklist li{padding-left:26px;position:relative}ul.checklist li:before{content:"⚠";color:var(--med);position:absolute;left:0}.ladder{gap:8px}.ladder-row{grid-template-columns:30px 1fr;align-items:center;gap:8px;display:grid}.ladder-n{background:var(--surface-2);width:26px;height:26px;color:var(--ink-2);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid}.practice-row{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:14px;display:grid}.card.practice{color:var(--ink);align-items:center;gap:12px;padding:14px 16px;display:flex}.card.practice:active{transform:scale(.99)}.pr-ico{font-size:26px}.card.practice b{display:block}.card.practice small{color:var(--ink-3);font-size:13px}.weak-line{color:var(--ink-2);margin:10px 2px 0}.quiz-card{padding:22px 24px}.quiz-q{margin:6px 0;font-size:19px;font-weight:600;line-height:1.5}.quiz-opts{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}@media (width<=640px){.quiz-opts{grid-template-columns:1fr}}.quiz-opt{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:10px;min-height:54px;padding:10px 14px;font-size:15px;font-weight:600;display:flex}.quiz-opt:active{transform:scale(.99)}.quiz-opt.right{background:var(--easy-soft);border-color:var(--easy);color:var(--easy)}.quiz-opt.wrong{background:var(--hard-soft);border-color:var(--hard);color:var(--hard)}.quiz-opt.dim{opacity:.45}.quiz-opt[disabled]{cursor:default}.quiz-fb{background:var(--surface-2);border-radius:12px;margin-top:14px;padding:12px 14px}.quiz-fb.ok{background:var(--easy-soft)}.quiz-fb.no{background:var(--hard-soft)}.quiz-fb p{margin:8px 0 0}.quiz-fb .lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:11.5px;font-weight:700;display:block}.quiz-miss{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px;display:flex}.quiz-miss .eyebrow{width:100%}.pz-board{background:var(--code-bg);border-radius:14px;gap:4px;padding:10px;display:grid}.pz-board.solved{outline:3px solid var(--easy)}.pz-line{text-align:left;width:100%;min-height:34px;font:14px/1.5 var(--mono);color:var(--code-ink);white-space:pre-wrap;background:0 0;border:0;border-radius:8px;padding:6px 10px;display:block}.pz-line.fixed{color:#8a93a5}.pz-line.empty{color:#6b7385;border:1.5px dashed #ffffff38}.pz-line.empty.target{border-color:var(--accent);color:var(--accent)}.pz-line.placed{background:#ffffff14}.pz-line.placed.ok{background:#4cc38a38}.pz-line.placed.bad{background:#ff6b7440}.pz-pool{flex-direction:column;gap:6px;display:flex}.pz-piece{text-align:left;border:1px solid var(--line);background:var(--surface);font:14px/1.45 var(--mono);white-space:pre-wrap;border-radius:10px;padding:9px 12px}.pz-piece:active{background:var(--accent-soft);transform:scale(.99)}.pz-win{background:var(--easy-soft);border-color:#0000;margin-top:14px}.playbook .pb-sec{margin-bottom:34px}.playbook h2{margin-top:8px}.pb-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.pb-grid.two-col{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.pb-card h3{margin:6px 0}.pb-card p{color:var(--ink-2);margin:0 0 8px;font-size:14.5px}.pb-card .pb-do{color:var(--ink);background:var(--accent-soft);border-radius:10px;margin:8px 0 0;padding:8px 10px}.pb-ico{font-size:26px}.pb-note{background:var(--med-soft);border-color:#0000;margin-top:14px}.pb-h3{margin:22px 0 8px;font-size:17px}.pb-steps{gap:6px;margin:0;padding-left:22px;display:grid}.pb-method{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.pb-m{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;position:relative}.pb-m h3{margin:0 0 6px}.pb-t{color:var(--ink-3);font-size:12px;font-weight:700;position:absolute;top:14px;right:16px}.pb-say{background:var(--easy-soft);border-radius:10px;margin:10px 0 0;padding:8px 10px;font-size:14px;font-style:italic}.pb-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;font-size:14.5px;overflow:hidden}.pb-table th{text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);padding:9px 12px;font-size:12px}.pb-table td{border-top:1px solid var(--line);vertical-align:top;padding:9px 12px}.pb-table.cues td:last-child,.pb-table.variants td:first-child{white-space:nowrap}@media (width<=640px){.pb-table.cues td:last-child,.pb-table.variants td:first-child{white-space:normal}.pb-table.ds{font-size:12.5px}.pb-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}.pb-chips{flex-wrap:wrap;gap:8px;display:flex}.pb-chips span{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:14px}.pb-refs{color:var(--ink-2);gap:6px;margin:0;padding-left:20px;font-size:14px;display:grid}.playbook code{font-family:var(--mono);font-size:13px}.viz{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.vz-head{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:10px;display:flex}.vz-input{font:13px var(--mono);color:var(--ink-3)}.vz-stage{gap:12px;min-height:120px;display:grid}.vz-pane{overflow-x:auto}.vz-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:11.5px;font-weight:700}.vz-arr,.vz-list{-webkit-overflow-scrolling:touch;align-items:flex-end;gap:4px;max-width:100%;padding-bottom:2px;display:flex;overflow-x:auto}.vz-col{flex-direction:column;align-items:center;gap:2px;min-width:38px;display:flex}.vz-ptr{gap:2px;min-height:18px;display:flex}.vz-ptr span{font:700 11px var(--mono);color:#fff;background:var(--accent);border-radius:5px;padding:0 5px}.vz-cell,.vz-node{border:1.5px solid var(--line);background:var(--surface-2);min-width:38px;height:38px;font:600 15px var(--mono);border-radius:9px;place-items:center;padding:0 6px;transition:background .25s,border-color .25s;display:grid}.vz-node{border-radius:50%;width:40px;height:40px}.vz-idx{font:11px var(--mono);color:var(--ink-3);min-height:14px}.vz-cell.win,.vz-bar.win{background:var(--accent-soft);border-color:var(--accent)}.vz-cell.cur,.vz-node.cur,.vz-bar.cur{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.vz-cell.ok,.vz-bar.ok{background:var(--easy);border-color:var(--easy);color:#fff}.vz-cell.bad{background:var(--hard-soft);border-color:var(--hard);color:var(--hard)}.vz-cell.dim{opacity:.3}.vz-cell.dep{background:var(--med-soft);border-color:var(--med)}.vz-cell.best{box-shadow:inset 0 -4px 0 var(--easy)}.vz-cell.done{opacity:.45}.vz-barwrap{align-items:flex-end;width:26px;height:70px;display:flex}.vz-bar{background:var(--surface-2);border:1.5px solid var(--line);border-radius:5px 5px 0 0;width:100%}.vz-link{color:var(--ink-3);text-align:center;min-width:18px;padding-bottom:32px;font-size:20px}.vz-link.flip{color:var(--accent);font-weight:800}.vz-note-sm{color:var(--ink-3);margin-top:4px;font-size:12.5px}.vz-chips{flex-wrap:wrap;gap:6px;display:flex}.vz-chip,.vz-var{background:var(--surface-2);border:1px solid var(--line);font:13.5px var(--mono);border-radius:8px;padding:4px 10px}.vz-chip i{color:var(--ink-3);font-style:normal}.vz-chip.hl,.vz-var.hl{background:var(--accent-soft);border-color:var(--accent)}.vz-var b{font-family:var(--sans);color:var(--ink-3);margin-right:4px;font-size:12px}.vz-empty{color:var(--ink-3);font-size:13px;font-style:italic}.vz-stack{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.vz-box{background:var(--surface-2);border:1.5px solid var(--line);font:600 13.5px var(--mono);border-radius:8px;padding:6px 10px}.vz-box.top{border-color:var(--accent)}.vz-cap{color:var(--ink-3);font-size:12px}.vz-tree,.vz-graph{fill:none;stroke:none;width:100%;height:auto;max-height:280px;margin:0 auto;display:block}.vz-tree text,.vz-graph text{stroke:none}.vz-tree line{stroke:var(--line);stroke-width:.7px}.vz-tree line.new{stroke:var(--accent)}.vz-tn circle{fill:var(--surface-2);stroke:var(--ink-3);stroke-width:.5px;transition:fill .25s}.vz-tn text{font:600 5px var(--sans);text-anchor:middle;fill:var(--ink)}.vz-tn.cur circle{fill:var(--accent);stroke:var(--accent)}.vz-tn.cur text{fill:var(--accent-ink)}.vz-tn.done circle{fill:var(--easy-soft);stroke:var(--easy)}.vz-tn.queued circle{fill:var(--med-soft);stroke:var(--med)}.vz-tn.new circle{fill:var(--accent-soft);stroke:var(--accent)}.vz-tn.end circle{stroke:var(--easy);stroke-width:1.4px}.vz-tn.ok circle{fill:var(--easy);stroke:var(--easy)}.vz-graph line{stroke:var(--line);stroke-width:.8px}.vz-edge rect{fill:var(--surface);stroke:var(--line);stroke-width:.3px}.vz-edge text{font:600 3.6px var(--mono);text-anchor:middle;fill:var(--ink-2)}.vz-edge.hl line{stroke:var(--accent);stroke-width:1.6px}.vz-edge.hl rect{stroke:var(--accent)}.vz-sub{font:700 4px var(--mono)!important;fill:var(--accent)!important}.vz-grid{gap:4px;display:grid}.vz-gc{aspect-ratio:1;background:var(--surface-2);border:1px solid var(--line);font:600 15px var(--mono);border-radius:8px;place-items:center;display:grid}.vz-gc.fresh{background:#fff3e0}.vz-gc.rot{background:#e8e1d6}.vz-gc.new{outline:3px solid var(--hard)}.vz-gc.empty{opacity:.35}.vz-gc.cur{background:var(--accent);color:var(--accent-ink)}.vz-gc.visited{background:var(--easy-soft);color:var(--easy)}.vz-table{border-collapse:collapse;font:600 14px var(--mono)}.vz-table th{color:var(--ink-3);padding:6px 10px;font-weight:700}.vz-table td{text-align:center;border:1px solid var(--line);background:var(--surface-2);width:36px;height:34px}.vz-table td.cur{background:var(--accent);color:var(--accent-ink)}.vz-table td.dep{background:var(--med-soft)}.vz-table td.ok{background:var(--easy);color:#fff}.vz-bars{gap:8px;display:grid}.vz-brow{grid-template-columns:64px 1fr;align-items:center;gap:8px;display:grid}.vz-blabel{color:var(--ink-3);text-align:right;font-size:12px;font-weight:700}.vz-track{background:var(--surface-2);border-radius:8px;height:30px;position:relative}.vz-iv{background:var(--ink-3);color:#fff;height:22px;font:600 11px var(--mono);opacity:.75;border-radius:6px;place-items:center;display:grid;position:absolute;top:4px}.vz-iv.cur{background:var(--accent);opacity:1}.vz-iv.ok{background:var(--easy);opacity:1}.vz-iv.done{opacity:.35}.vz-axis{font:11px var(--mono);color:var(--ink-3);justify-content:space-between;display:flex}.vz-bits{gap:4px;display:grid}.vz-bitrow{align-items:center;gap:4px;display:flex}.vz-bitrow .vz-blabel{width:44px}.vz-bit{width:30px;height:30px;font:700 15px var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:7px;place-items:center;display:grid}.vz-bit.b1{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.vz-bitrow.res .vz-bit.b1{background:var(--accent);color:var(--accent-ink)}.vz-dec{font:13px var(--mono);color:var(--ink-3);margin-left:6px}.vz-note{background:var(--surface-2);border-radius:10px;min-height:46px;margin-top:12px;padding:10px 12px;font-size:15px;line-height:1.45}.vz-step{font:700 12px var(--mono);color:var(--ink-3);margin-right:8px;display:inline-block}.vz-ctrl{align-items:center;gap:6px;margin-top:10px;display:flex}.vz-ctrl button{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-width:42px;height:40px;font-size:15px}.vz-ctrl button.play{background:var(--accent);color:var(--accent-ink);border-color:#0000;min-width:54px}.vz-ctrl button[disabled]{opacity:.35}.vz-ctrl input[type=range]{width:100%;min-width:0;accent-color:var(--accent);flex:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .vz-gc.fresh{background:#3a2a12}:root:not([data-theme=light]) .vz-gc.rot{background:#2b2620}}:root[data-theme=dark] .vz-gc.fresh{background:#3a2a12}:root[data-theme=dark] .vz-gc.rot{background:#2b2620}.slips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.slips .small{width:100%}.slips .chip{padding:5px 10px;font-size:13px}.quiz-opt.mono{font-family:var(--mono);font-size:15px}.mock{gap:14px;display:grid}.mock h2{margin:6px 0 0}.mock-bar{top:calc(env(safe-area-inset-top) + 6px);z-index:6;flex-wrap:wrap;align-items:center;gap:14px 22px;display:flex;position:sticky}.mock-timer{font:700 34px/1 var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mock-timer.over{color:var(--hard)}.mock-phases{flex-wrap:wrap;flex:1;gap:6px;display:flex}.mph{background:var(--surface-2);color:var(--ink-3);border-radius:10px;flex-direction:column;padding:6px 10px;font-size:13px;font-weight:700;display:flex}.mph small{font-size:11px;font-weight:500}.mph.done{color:var(--easy);background:var(--easy-soft)}.mph.now{color:var(--accent-ink);background:var(--accent)}.mock-phase ul{margin-top:4px}.rubric{gap:8px;display:grid}.rub{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.card.mock-row{color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:12px 16px;display:flex}.card.mock-row b{flex:1;min-width:180px}.sol ol.trace li.just{background:var(--accent-soft);border-radius:6px}.sol ol.trace li[hidden],.dry .io.out[hidden]{display:none}.roadmap{padding:10px;overflow-x:auto}.roadmap svg{fill:none;stroke:none;width:100%;min-width:640px;height:auto;display:block}.rm-edges path{stroke:var(--line);stroke-width:2.4px;fill:none}.rm-node rect:first-of-type{fill:var(--surface);stroke:var(--line);stroke-width:1.6px}.rm-node.now rect:first-of-type{fill:var(--accent);stroke:var(--accent)}.rm-node.past rect:first-of-type{fill:var(--easy-soft);stroke:var(--easy)}.rm-node text{text-anchor:middle;fill:var(--ink);stroke:none}.rm-name{font:700 17px var(--sans)}.rm-sub{font:500 12.5px var(--sans);fill:var(--ink-3)!important}.rm-node.now text{fill:var(--accent-ink)}.rm-node.now .rm-sub{opacity:.85;fill:var(--accent-ink)!important}.rm-track{fill:var(--surface-2)}.rm-fill{fill:var(--easy)}.rm-node.now .rm-track{fill:#ffffff4d}.rm-node.now .rm-fill{fill:#fff}.rm-node:active rect:first-of-type{opacity:.8}.rm-legend{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px 2px;display:flex}.rm-key{border:1.5px solid var(--line);background:var(--surface);border-radius:4px;width:14px;height:14px;display:inline-block}.rm-key.now{background:var(--accent);border-color:var(--accent)}.rm-key.past{background:var(--easy-soft);border-color:var(--easy)}.vz-arrowhead{fill:var(--ink-3)}.vz-edge.gone line{opacity:.25}.vz-tn.bad circle{fill:var(--hard-soft);stroke:var(--hard)}.vz-edge.bad line{stroke:var(--hard);stroke-width:1.6px}.vz-gc.ok{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-size:24px}.vz-gc.bad{background:var(--hard-soft);border-color:var(--hard);color:var(--hard)}.vz-sub{paint-order:stroke;stroke-width:1.6px;stroke-linejoin:round;stroke:var(--surface)!important}.plan-note{background:var(--accent-soft);color:var(--ink-2);border-radius:12px;margin:-8px 0 16px;padding:10px 14px;font-size:14px;line-height:1.45}.plan-end{gap:10px;padding:14px 16px;display:grid}.plan-end p{margin:0}.plan-date{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);border-radius:10px;max-width:100%;padding:6px 10px;font-size:15px}.plan-date:focus{outline:2px solid var(--accent);outline-offset:-1px}.plan-wk{margin:26px 0 8px}.plan-days{gap:10px;display:grid}@media (width>=760px){.plan-days{grid-template-columns:1fr 1fr}.plan-day.today{grid-column:1/-1}}.plan-day{padding:12px 16px 6px}.plan-day.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), var(--shadow)}.plan-day-h{align-items:baseline;gap:8px;padding-bottom:6px;display:flex}.plan-day.today .plan-day-h b{color:var(--accent)}.plan-p{border-top:1px solid var(--line);grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:8px 0;display:grid}.plan-tick{background:0 0;border:0;border-radius:50%;place-items:center;margin:-6px;padding:6px;display:grid}.plan-tick:active{transform:scale(.9)}.plan-p a{min-width:0;color:var(--ink);flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.plan-p .t{overflow-wrap:anywhere;flex:100%;min-width:0;font-weight:600;line-height:1.3}.plan-p .tag{padding:1px 7px;font-size:11.5px}.plan-p.done .t{color:var(--ink-3);font-weight:500;text-decoration:line-through}.plan-start{background:var(--surface-2);color:var(--ink-2);overflow-wrap:anywhere;border-radius:8px;margin:6px 0 2px;padding:6px 10px;font-size:13px;line-height:1.45}.plan-start+.plan-p{border-top:0}.plan-done{margin-top:28px;padding:14px 16px}.plan-done>summary{cursor:pointer;align-items:baseline;gap:8px;list-style:none;display:flex}.plan-done>summary::-webkit-details-marker{display:none}.plan-done>summary:after{content:"▸";color:var(--ink-3);margin-left:auto}.plan-done[open]>summary:after{content:"▾"}.plan-done .eyebrow{margin:16px 0 2px}.plan-done .plan-p.done .t{color:var(--ink-2);text-decoration:none}.td{max-width:680px;margin:0 auto}.td-install{background:var(--accent-soft);color:var(--ink-2);border-radius:12px;align-items:center;gap:8px;margin-bottom:14px;padding:6px 6px 6px 14px;font-size:14px;display:flex}.td-install>details,.td-install-t{flex:1;min-width:0}.td-install summary{cursor:pointer;padding:4px 0;list-style:none}.td-install summary::-webkit-details-marker{display:none}.td-install b{color:var(--ink)}.td-how{color:var(--accent);margin-left:4px;font-weight:600}.td-install details[open] .td-how{display:none}.td-install details p{margin:4px 0 6px;line-height:1.45}.td-x{width:32px;height:32px;color:var(--ink-3);background:0 0;border:0;border-radius:8px;flex:none;align-self:flex-start;font-size:14px}.td-x:hover{background:color-mix(in srgb, var(--accent) 12%, transparent)}.td-head{align-items:center;gap:10px;min-height:32px;display:flex}.td-date{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:13px;font-weight:700}.td-pace{color:var(--ink-2);margin:2px 0 16px;font-size:14px;display:inline-block}.td-pace:hover{color:var(--accent)}.td-now{border-color:color-mix(in srgb, var(--accent) 40%, var(--line));box-shadow:0 0 0 3px var(--accent-soft), var(--shadow);padding:22px 22px 20px}.td-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:12.5px;font-weight:800}.td-kicker span{color:var(--ink-3);font-weight:700}.td-title{overflow-wrap:anywhere;margin:0 0 10px;font-size:28px;line-height:1.2}.td-title a{color:var(--ink)}.td-title a:hover{color:var(--accent)}.td-meta{flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;display:flex}.td-meta .badge{padding:2px 9px;font-size:12.5px}.td-hint{margin-top:14px;font-size:14.5px}.td-hint summary{cursor:pointer;color:var(--ink-3);padding:2px 0;font-weight:600;list-style:none;display:inline-flex}.td-hint summary::-webkit-details-marker{display:none}.td-hint summary:before{content:"▸";margin-right:6px;transition:transform .15s}.td-hint[open] summary:before{transform:rotate(90deg)}.td-hint p{background:var(--surface-2);color:var(--ink-2);border-radius:10px;margin:8px 0 0;padding:10px 14px;line-height:1.5}.td-acts{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.td-acts .btn{text-align:center;padding-left:10px;padding-right:10px}.td-acts .btn:first-child,.td-won .td-acts .btn{grid-column:1/-1}@media (width<=399px){.td-wide{display:none}}.td-sub{color:var(--ink-2);margin:0}.td-won{border-color:color-mix(in srgb, var(--easy) 40%, var(--line));box-shadow:0 0 0 3px var(--easy-soft), var(--shadow)}.td-won .td-kicker{color:var(--easy)}@media (width>=600px){.td-acts{flex-wrap:wrap;display:flex}.td-acts .btn.ghost{margin-left:auto}.td-title{font-size:32px}.td-won .td-acts .btn{flex:none}}.td-sec{margin-top:26px}.td-sec-h{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.td-sec-h h2{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:13px;font-weight:800}.td-sec-h span{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.td-bar{height:4px;margin-bottom:8px}.td-list{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.td-item{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:4px 6px;padding:0 14px 0 4px;display:grid}.td-check{background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:48px;padding:0;display:grid}.td-check:hover .dot:not(.solved){border-color:var(--easy)}.td-item>a{min-width:0;color:var(--ink);flex-direction:column;padding:9px 0;display:flex}.td-it{text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.3;overflow:hidden}.td-im{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.td-item.done .td-it{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--ink-3) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--ink-3) 60%, transparent)}.td-item.now{background:color-mix(in srgb, var(--accent-soft) 55%, transparent)}.td-item.now .td-it{color:var(--accent)}.td-link{margin-top:10px;font-size:14px;font-weight:600;display:inline-block}.card.td-review{color:var(--ink);align-items:center;gap:12px;padding:12px 16px;display:flex}a.card.td-review:active{transform:scale(.99)}.td-review>span:nth-child(2){flex:1;min-width:0}.td-review b{display:block}.td-review small{color:var(--ink-3);font-size:13px}.td-ico{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;flex:none;place-items:center;font-size:17px;font-weight:800;display:grid}.td-review.calm .td-ico{background:var(--easy-soft);color:var(--easy)}.td-go{color:var(--accent);flex:none;font-size:14px;font-weight:700}.td-extra .td-sec-h{margin-bottom:10px}.td-more{flex-wrap:wrap;gap:8px;display:flex}.td-chip{border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--ink-2);border-radius:999px;align-items:center;padding:6px 12px;font-size:14px;font-weight:600;display:inline-flex}.td-chip:hover{color:var(--ink);border-color:var(--ink-3)}.td-chip.hot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.td-insights .weak-line{margin:12px 2px 0}.td-foot{color:var(--ink-3);margin:16px 2px 0;font-size:13px}.sync-chip{border:1px solid var(--line);background:var(--surface);max-width:100%;min-height:30px;color:var(--ink-2);white-space:nowrap;vertical-align:middle;border-radius:999px;align-items:center;gap:7px;padding:4px 11px 4px 9px;font-size:13px;font-weight:600;line-height:1.2;display:inline-flex}.sync-chip span{text-overflow:ellipsis;overflow:hidden}.sync-chip i{background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px}.sync-chip:hover{color:var(--ink);border-color:var(--ink-3)}.sync-chip.ok i{background:var(--easy)}.sync-chip.busy i{background:var(--ink-3);animation:1s ease-in-out infinite alternate sync-pulse}.sync-chip.off{background:var(--med-soft);color:var(--med);border-color:#0000}.sync-chip.off i{background:var(--med)}.sync-chip.err{background:var(--hard-soft);color:var(--hard);border-color:#0000}.sync-chip.err i{background:var(--hard)}@keyframes sync-pulse{0%{opacity:1}to{opacity:.3}}@media (prefers-reduced-motion:reduce){.sync-chip.busy i{animation:none}}.sync-note{color:var(--ink-2);margin:8px 2px 0;font-size:14px;font-weight:600}.sync-note.ok{color:var(--easy)}.sync-note.err{color:var(--hard)}#sync-link{font-family:var(--mono);margin-top:8px;font-size:12px}.page-h{margin-bottom:20px}.page-h .sub{max-width:60ch;margin:4px 0 0}.back{align-items:center;min-height:32px;margin:-4px 0 6px;font-size:14px;font-weight:600;display:inline-flex}.sec-h{justify-content:space-between;align-items:baseline;margin:28px 0 10px;display:flex}.sec-h h2{margin:0}.card.entry{color:var(--ink);align-items:center;gap:14px;padding:14px 6px 14px 16px;display:flex}.card.entry>span:nth-child(2){flex:1;min-width:0}.card.entry b{display:block}.card.entry small{color:var(--ink-2);margin-top:2px;font-size:13.5px;line-height:1.4;display:block}.entry-ico{background:var(--accent-soft);border-radius:11px;flex:none;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.pp-head{margin-bottom:18px}.pp-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:12.5px;font-weight:700}.pp-head h1{overflow-wrap:anywhere;margin:0 0 10px}.pp-meta{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.pp-meta .badge{padding:2px 9px;font-size:12.5px}.pp-acts{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.pp-acts .primary{order:-1}@media (width<=520px){.pp-acts{grid-template-columns:1fr 1fr;display:grid}.pp-acts .primary{grid-column:1/-1;min-height:44px;font-size:15px}}.ptabs{z-index:6;scrollbar-width:none;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;background:var(--bg);border-bottom:1px solid var(--line);gap:4px;margin:0 -16px 12px;display:flex;position:sticky;top:0;overflow-x:auto}.ptabs::-webkit-scrollbar{display:none}.ptabs button{min-height:40px;color:var(--ink-2);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;flex:none;align-items:center;gap:7px;padding:6px 14px 6px 8px;font-size:14.5px;font-weight:600;display:inline-flex}.ptab-n{background:var(--surface-2);width:22px;height:22px;color:var(--ink-3);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.ptabs button.on .ptab-n{background:var(--accent);color:var(--accent-ink)}@media (width>=1000px){.ptabs{margin:0 -40px 14px;padding-left:40px;padding-right:40px}}.pt-card{padding:20px 22px 18px}@media (width<=520px){.pt-card{padding:16px 16px 14px}}.pt-pane>:first-child{border-top:0!important;margin-top:0!important;padding-top:0!important}.pt-pane>.sol,.pt-pane>.mine,.pt-pane>.deeper{border-top:0;margin-top:0;padding-top:0}.pt-pane>.notes{padding-top:0}.pt-pane .qline{font-size:17px}.pt-tests{margin-top:16px}.pt-tip{background:var(--surface-2);color:var(--ink-2);border-radius:10px;margin-top:16px;padding:10px 14px;font-size:14px;line-height:1.5}.pt-tip b{color:var(--ink)}.pt-pane .hints{margin-top:12px}.pt-next{border-top:1px solid var(--line);justify-content:flex-end;margin-top:22px;padding-top:16px;display:flex}@media (width<=520px){.pt-next .btn{width:100%}}.pp-nav{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.pp-nav a{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);border-radius:12px;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.pp-nav a.nx{text-align:right;grid-column:2}.pp-nav small{color:var(--ink-3);font-size:12px;font-weight:700}.pp-nav span{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.grade-key{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.grade-key>div{background:var(--surface);border:1px solid var(--line);border-top-width:3px;border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.grade-key span{color:var(--ink-2);font-size:14px;line-height:1.4}.grade-key .g0{border-top-color:var(--hard)}.grade-key .g0 b{color:var(--hard)}.grade-key .g1{border-top-color:var(--med)}.grade-key .g1 b{color:var(--med)}.grade-key .g2{border-top-color:var(--easy)}.grade-key .g2 b{color:var(--easy)}.grade-key .g3{border-top-color:var(--accent)}.grade-key .g3 b{color:var(--accent)}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:where(a,button,select,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.btn,.chip,.td-chip,.card,.prob,.pp-nav a,.quiz-opt,.grades button,.drill-list a{transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s,transform 80ms}@media (hover:hover){.btn:hover{border-color:var(--ink-3)}.btn.primary:hover{background:color-mix(in srgb, var(--accent) 88%, var(--ink))}.btn.ghost:hover{background:var(--surface-2);border-color:var(--line)}a.card:hover,.prob:hover,.pp-nav a:hover,.drill-list a:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:0 0 0 3px var(--accent-soft)}.prob:hover .chev{color:var(--accent)}.ptabs button:not(.on):hover{background:var(--surface-2);color:var(--ink)}.quiz-opt:not([disabled]):hover,.grades button:hover{border-color:var(--ink-3)}.nav a:not(.active):hover{color:var(--ink)}.back:hover,.linkbtn:hover{text-decoration:underline}}@media (width>=1000px){.nav a:not(.active):hover{background:var(--surface-2)}}.prob:active,a.card:active{transform:scale(.995)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}h1{font-size:var(--text-2xl);letter-spacing:-.025em;font-weight:800;line-height:1.12}h2{font-size:var(--text-xl);letter-spacing:-.015em;font-weight:700}h3{letter-spacing:-.005em;font-weight:700}.sub{font-size:var(--text-md);line-height:1.5}.eyebrow,.td-date{letter-spacing:.09em}code,kbd,pre,.editor{font-feature-settings:"calt" 1}.num,.stat b,.td-sec-h span,.group-h span{font-variant-numeric:tabular-nums}.card{border-radius:var(--radius-lg);border-color:color-mix(in srgb, var(--line) 80%, transparent);padding:20px 22px}.card.raised{box-shadow:var(--shadow-lg)}.td-list,.op-table,.pb-table{border-radius:var(--radius);box-shadow:var(--shadow)}.prob,.pp-nav a,.drill-list a,.quiz-opt,.grade-key>div,.pb-m,.ol-card{border-radius:14px}.prob{box-shadow:0 1px #00000005}.viz,pre.code{border-radius:var(--radius)}pre.code{padding:18px 20px}.ico,.td-ico,.entry-ico{border-radius:12px}.btn{letter-spacing:.005em;transition:background-color .18s, border-color .18s, box-shadow .18s, color .18s, transform .12s var(--ease);border-radius:14px;padding:10px 20px;font-weight:650;box-shadow:0 1px 2px #3c2d0f0f}.btn:active{transform:scale(.97)}.btn.primary{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, #fff), var(--accent));box-shadow:0 1px 2px #2832a040, 0 6px 16px -6px color-mix(in srgb, var(--accent) 60%, transparent)}.btn.ghost{box-shadow:none}.btn.small{border-radius:11px}.chip{transition:background-color .18s, color .18s, border-color .18s, transform .12s var(--ease)}.chip:active{transform:scale(.96)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.badge{border-radius:7px;padding:2px 9px}.tag{border-radius:7px}.search,.plan-date,.fsel select{background:var(--surface);transition:border-color .18s,box-shadow .18s}.search{border-radius:14px}.search:focus,.plan-date:focus,.editor:focus{border-color:var(--accent);box-shadow:var(--ring);outline:0}:where(a,button,select,summary,[tabindex]):focus-visible{box-shadow:var(--ring);outline:0}.nav a:focus-visible{box-shadow:inset var(--ring)}.bar{background:color-mix(in srgb, var(--ink) 8%, var(--surface-2));height:8px}.bar>i{background:linear-gradient(90deg, var(--accent), var(--accent-2));transition:width .5s var(--ease)}.segmented{border-radius:13px;gap:2px;padding:4px}.segmented button{border-radius:10px;padding:7px 16px;transition:background-color .2s,color .2s,box-shadow .2s}.segmented button.on{box-shadow:0 1px 3px #3c2d0f24}.ring{--v:0;--size:64px;--w:7px;width:var(--size);height:var(--size);background:conic-gradient(var(--accent) calc(var(--v) * 1%), color-mix(in srgb, var(--ink) 9%, var(--surface-2)) 0);-webkit-mask:radial-gradient(circle, transparent calc(var(--size) / 2 - var(--w) - 1px), #000 calc(var(--size) / 2 - var(--w)));-webkit-mask:radial-gradient(circle, transparent calc(var(--size) / 2 - var(--w) - 1px), #000 calc(var(--size) / 2 - var(--w)));mask:radial-gradient(circle, transparent calc(var(--size) / 2 - var(--w) - 1px), #000 calc(var(--size) / 2 - var(--w)));border-radius:50%;place-items:center;display:grid;position:relative}.ring-wrap{place-items:center;display:inline-grid;position:relative}.ring-wrap>b{font-variant-numeric:tabular-nums;font-size:14px;font-weight:800;position:absolute}.streak-pill{color:#b4470a;background:linear-gradient(135deg,#ffefd6,#ffe0cc);border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 10px;font-size:14px;font-weight:700;display:inline-flex}.streak-pill:before{content:"🔥";filter:saturate(1.1);font-size:15px}:root[data-theme=dark] .streak-pill{color:#ffb36b;background:linear-gradient(135deg,#3b2813,#3a1f17)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .streak-pill{color:#ffb36b;background:linear-gradient(135deg,#3b2813,#3a1f17)}}.stat-tile{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:16px 18px;display:flex}.stat-tile b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1.1}.stat-tile span{color:var(--ink-2);font-size:13px}.stat-tile.accent{background:var(--accent-soft);border-color:#0000}.heat{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:4px;display:grid}.heat i{aspect-ratio:1;background:color-mix(in srgb, var(--ink) 7%, var(--surface-2));border-radius:4px;width:100%;min-width:10px}.heat i.l1{background:color-mix(in srgb, var(--easy) 30%, var(--surface-2))}.heat i.l2{background:color-mix(in srgb, var(--easy) 55%, var(--surface-2))}.heat i.l3{background:color-mix(in srgb, var(--easy) 80%, var(--surface-2))}.heat i.l4{background:var(--easy)}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, color-mix(in srgb, var(--surface-2) 55%, var(--surface)) 50%, var(--surface-2) 75%);background-size:200% 100%;border-radius:10px;min-height:14px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.empty-state{border:1.5px dashed var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 60%, transparent);padding:56px 20px}.empty-state:before{content:"🌿";margin-bottom:6px;font-size:34px;display:block}.split{display:block}.stack>*+*{margin-top:var(--space-4)}.cols-2{gap:var(--space-4);grid-template-columns:1fr;display:grid}.brand img{border-radius:9px;box-shadow:0 2px 6px #0000002e}.nav-foot .bar{height:6px}@media (hover:hover){a.card,.prob,.pp-nav a,.drill-list a,.pcard,.td-chip,.card.entry{transition:transform .22s var(--ease), box-shadow .22s var(--ease), border-color .18s}a.card:hover,.prob:hover,.pp-nav a:hover,.drill-list a:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in srgb, var(--accent) 40%, var(--line));transform:translateY(-2px)}.btn.primary:hover{filter:brightness(1.06)}.nav a:not(.active):hover{background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink)}}.stagger>*{animation:page-in .35s var(--ease) both}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.toast{bottom:calc(92px + env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);border-radius:16px;width:max-content;max-width:min(460px,100vw - 32px);padding:12px 18px;transition:opacity .2s,transform .38s cubic-bezier(.34,1.56,.64,1);transform:translate(-50%,24px)scale(.94)}.toast.show{transform:translate(-50%)scale(1)}.toast button{color:var(--accent-2);filter:brightness(1.25)}@media (pointer:coarse){.chip,.td-chip,.btn.small{min-height:40px}.segmented button{min-height:38px}.linkbtn,.back{align-items:center;min-height:40px;display:inline-flex}.td-x{width:44px;height:44px}select,input:not([type=range]):not([type=checkbox]),.ptabs button{min-height:44px}.sync-chip{min-height:38px}}@media (width<=400px){main{padding-left:max(14px, env(safe-area-inset-left));padding-right:max(14px, env(safe-area-inset-right))}.nav{padding-left:max(2px, env(safe-area-inset-left));padding-right:max(2px, env(safe-area-inset-right));gap:0}.nav a{letter-spacing:-.01em;padding:6px 0;font-size:10px}.nav a svg{width:21px;height:21px}.card{padding:16px}h1{font-size:24px}}@media (width>=700px){:root{--gutter:28px}.nav{width:80px;padding:calc(env(safe-area-inset-top) + 18px) 4px 18px max(4px, env(safe-area-inset-left));border-top:0;border-right:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:6px;top:0;bottom:0;right:auto}.nav a{border-radius:16px;flex:none;gap:4px;max-width:none;min-height:60px;padding:6px 0;font-size:10.5px}.nav a svg{width:24px;height:24px}.brand{justify-content:center;padding:0 0 14px;display:flex}.brand span{display:none}.brand img{width:40px;height:40px}main{max-width:880px;padding:calc(env(safe-area-inset-top) + 28px) var(--gutter) 56px var(--gutter);margin-left:80px;margin-right:auto}.app{display:block}.ptabs{margin:0 calc(var(--gutter) * -1) 14px;padding-left:var(--gutter);padding-right:var(--gutter)}.toast{bottom:28px;left:calc(50% + 40px)}h1{font-size:var(--text-3xl)}.cols-2{grid-template-columns:1fr 1fr}.stats{gap:14px}.pgrid{grid-template-columns:repeat(2,1fr);gap:14px}.pb-grid,.pb-method,.drill-list,.practice-row{grid-template-columns:repeat(2,1fr)}.list.cols,.prob-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.td,.review{max-width:720px}.quiz-opts{grid-template-columns:1fr 1fr}.grades{grid-template-columns:repeat(4,1fr)}}@media (width>=1000px){:root{--gutter:40px}.nav{width:244px;padding:calc(env(safe-area-inset-top) + 22px) 14px 20px max(14px, env(safe-area-inset-left));gap:3px}.nav a{min-height:48px;color:var(--ink-2);border-radius:14px;flex-direction:row;justify-content:flex-start;gap:14px;padding:10px 14px;font-size:15px;font-weight:600}.nav a svg{width:22px;height:22px}.brand{letter-spacing:-.02em;justify-content:flex-start;align-items:center;gap:12px;padding:0 10px 22px;font-size:18px;font-weight:800}.brand span{display:inline}.brand img{width:36px;height:36px}.nav-foot{color:var(--ink-2);background:var(--surface-2);border-radius:16px;margin-top:auto;padding:16px;font-size:13px;display:block}main{max-width:1040px;padding-left:var(--gutter);padding-right:var(--gutter);margin-left:244px;padding-bottom:56px}.ptabs{margin:0 calc(var(--gutter) * -1) 14px}.toast{left:calc(50% + 122px)}.pgrid,.pb-grid,.drill-list,.practice-row{grid-template-columns:repeat(3,1fr)}.split{grid-template-columns:minmax(300px,380px) 1fr;align-items:start;gap:24px;display:grid}.split>:first-child{max-height:calc(100dvh - 48px);position:sticky;top:24px;overflow-y:auto}.td,.review{max-width:760px}}@media (width>=1000px) and (height<=900px){.td-now{padding:20px 24px}h2{margin-top:26px}}@media (width>=1400px){main{margin-left:max(244px,50vw - 398px)}}.cf{--c-gray:#7d7d7d;--c-green:#1e9c3c;--c-cyan:#0ea5a5;--c-blue:#2a5bd7;--c-purple:#8a3fd0}@media (prefers-color-scheme:dark){.cf,.cfn{--c-gray:#a0a0a0;--c-green:#4cc38a;--c-cyan:#4fd1d1;--c-blue:#7d9cff;--c-purple:#c08cf0}}:root[data-theme=dark] .cf,:root[data-theme=dark] .cfn{--c-gray:#a0a0a0;--c-green:#4cc38a;--c-cyan:#4fd1d1;--c-blue:#7d9cff;--c-purple:#c08cf0}.cfn{--c-gray:#7d7d7d;--c-green:#1e9c3c;--c-cyan:#0ea5a5;--c-blue:#2a5bd7;--c-purple:#8a3fd0}.t-gray{--tc:var(--c-gray)}.t-green{--tc:var(--c-green)}.t-cyan{--tc:var(--c-cyan)}.t-blue{--tc:var(--c-blue)}.t-purple{--tc:var(--c-purple)}.cf-rate{text-align:center;font-variant-numeric:tabular-nums;min-width:40px;color:var(--tc);background:color-mix(in srgb, var(--tc) 14%, transparent);border-radius:6px;flex:none;padding:1px 6px;font-size:13px;font-weight:800;display:inline-block}.cf-wrap{min-width:0;max-width:100%;container:cf/inline-size}.cf{min-width:0}.cf-hero{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px;padding:12px 16px;display:flex}.cf-ttl{flex:220px;min-width:0}.cf-hero h1{margin:0;font-size:22px;line-height:1.2}.cf-hero .sub{margin:2px 0 0;font-size:13px}.cf-stats{color:var(--ink-3);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.cf-stats b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px}.cf-k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.cf-total{flex:100%;height:6px}.cf-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;display:grid}.cf-ladders{scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:6px;min-width:0;max-width:100%;padding:2px 2px 6px;display:flex;overflow-x:auto}.cf-ring{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);white-space:nowrap;border-radius:99px;flex:none;align-items:center;gap:6px;padding:4px 10px 4px 6px;text-decoration:none;display:flex;position:relative}.cf-ring.on{border-color:var(--tc);box-shadow:0 0 0 2px color-mix(in srgb, var(--tc) 30%, transparent)}.cf-ring svg{flex:none;width:26px;height:26px}.cf-ring .trk{fill:none;stroke:var(--surface-2);stroke-width:6px}.cf-ring .val{fill:none;stroke:var(--tc);stroke-width:6px;stroke-linecap:round}.cf-ring b{color:var(--tc);font-size:14px}.cf-ring small{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.cf-panel{gap:10px;min-width:0;display:grid}.cf-ladder-head{border-left:4px solid var(--tc);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-width:0;padding-left:10px;display:flex}.cf-ladder-head>div{flex:200px;min-width:0}.cf-ladder-head h2{color:var(--tc);margin:0;font-size:18px}.cf-ladder-head p{overflow-wrap:anywhere;margin:2px 0 0}.cf-next{background:var(--accent-soft);flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;padding:10px 14px;display:flex}.cf-next b{text-overflow:ellipsis;white-space:nowrap;flex:180px;min-width:0;overflow:hidden}.cf-filters{min-width:0;display:flex}.cf-filters .segmented{max-width:100%;overflow-x:auto}.cf-filters .segmented button{min-height:40px}.cf-tagchips{max-width:100%}.cf-tagchips .chip{white-space:nowrap;min-height:36px}.cf-empty{text-align:center;padding:24px 0}.cf-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:6px;min-width:0;display:grid}.cf-prob{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:2px 8px;min-width:0;padding:6px 6px 6px 10px;display:flex}.cf-prob.solved{background:var(--easy-soft)}.cf-prob.revisit{border-color:var(--hard)}.cf-main{flex:160px;min-width:0}.cf-acts{flex:none;align-items:center;gap:0;margin-left:auto;display:flex}.cf-tick,.cf-flag,.cf-open{width:40px;height:40px;color:var(--ink-3);background:0 0;border:0;border-radius:10px;flex:none;place-items:center;font-size:18px;text-decoration:none;display:grid}.cf-tick{color:var(--accent-ink);isolation:isolate;font-weight:800;position:relative}.cf-tick:before{content:"";border:2px solid var(--line);background:var(--surface);z-index:-1;border-radius:7px;position:absolute;inset:9px}.cf-prob.solved .cf-tick:before{background:var(--easy);border-color:var(--easy)}.cf-flag.on{background:var(--hard-soft);color:var(--hard)}.cf-open{color:var(--accent)}.cf-top{align-items:center;gap:8px;min-width:0;display:flex}.cf-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:650;overflow:hidden}.cf-id{color:var(--ink-3);font-size:11px;font-family:var(--mono);flex:none}.cf-tags{flex-wrap:wrap;gap:4px;max-height:20px;margin-top:3px;display:flex;overflow:hidden}.cf-tag{color:var(--ink-2);background:var(--surface-2);white-space:nowrap;border-radius:99px;padding:1px 7px;font-size:11px}.cfn{color:var(--ink);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.cfn-body{flex:1;min-width:160px;display:grid}.cfn-k{color:var(--ink-3);font-size:12px}.cf-wrap .cf-layout{grid-template-columns:minmax(0,1fr)}.cf-wrap .cf-ring{border-radius:99px}.cf-wrap .cf-prob{border-radius:14px}.cf-wrap .cf-next{border-radius:16px}@container cf (width>=940px){.cf-wrap .cf-layout{grid-template-columns:150px minmax(0,1fr);gap:16px}.cf-ladders{flex-direction:column;position:sticky;top:16px;overflow:visible}.cf-wrap .cf-ring{border-radius:14px}.cf-ring small{margin-left:auto}}.cfs-boot{min-height:100dvh;color:var(--ink-3);background:var(--bg);place-items:center;display:grid}.cf-solve{background:var(--accent);min-height:40px;color:var(--accent-ink);border-radius:10px;flex:none;place-items:center;padding:0 12px;font-size:14px;font-weight:700;text-decoration:none;display:grid}.cf-addbtn{margin:0}.cfn-ext{width:44px;height:44px;color:var(--accent);flex:none;place-items:center;font-size:20px;text-decoration:none;display:grid}.ca{gap:16px;max-width:760px;margin:0 auto;display:grid}.ca h1,.ca h2{margin:0 0 6px}.ca-head .sub{margin:0 0 12px}.ca-fetch{align-items:flex-end;gap:8px;display:flex}.ca-big{flex:1;gap:4px;min-width:0;display:grid}.ca-fetch .btn{min-height:52px}.ca label{color:var(--ink-2);gap:4px;font-size:13px;font-weight:600;display:grid}.ca textarea.search{resize:vertical;font-family:inherit}.ca-mono{font-family:var(--mono)!important;font-size:14px!important}.ca-grid{gap:10px;display:grid}.ca-manual,.ca-preview,.ca-bulk{gap:12px;display:grid}.ca-sample{border:1px solid var(--line);border-radius:12px;gap:8px;min-width:0;margin:0;padding:10px;display:grid}.ca-sample legend{padding:0 6px;font-size:13px;font-weight:700}.ca-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ca-pre{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);border-radius:10px;max-height:160px;margin:4px 0 0;padding:8px 10px;font-size:13px;overflow-x:auto}.ca-wrap{white-space:normal}.ca-ok{color:var(--easy);margin:8px 0 0}.ca-err{color:var(--hard);margin:8px 0 0}.ca-fails{padding-left:18px;font-size:13px}.ca-toggle{justify-self:start}.ca-bulk summary{cursor:pointer;min-height:28px;font-weight:700}.ca .cf-prob .btn{flex:none}.ca .cf-prob{padding:10px}@media (width>=600px){.ca-grid{grid-template-columns:1fr 1fr}}.pcard .pc-now{color:var(--accent);font-weight:700}.lesson-toc a,.lang-tabs button{min-height:44px}.lesson-toc a{align-items:center;display:inline-flex}.op-table{display:block;overflow-x:auto}.viz-host{max-width:100%;overflow-x:auto}.ptabs{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.ptabs button{scroll-snap-align:center;touch-action:manipulation;min-height:44px}@media (width>=700px){.ptabs{justify-content:flex-start;gap:6px}.ptabs button{padding-right:18px;font-size:15px}}.pp-acts .btn,.pt-pane .btn.small,.hint-btn{min-height:44px}.pt-pane .editor{min-height:260px;font-size:16px}.pt-pane .fu summary{align-items:center;min-height:44px;display:flex}.pt-pane .algo li{min-height:36px}.pz-row{align-items:stretch;gap:6px;display:flex}.pz-row>.pz-line,.pz-row>.pz-piece{flex:1;min-width:0}.pz-grip{border:1px solid var(--line);background:var(--surface);width:44px;min-height:44px;color:var(--ink-3);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:10px;flex:none;place-items:center;font-size:18px;display:grid}.pz-board .pz-grip{color:#8a93a5;background:#ffffff14;border-color:#0000}.pz-grip:active{cursor:grabbing}.pz-line,.pz-piece{min-height:44px}.pz-line.hover{outline:2px solid var(--accent);outline-offset:-2px}.pz-ghost{z-index:100;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--accent);font:14px/1.45 var(--mono);white-space:pre-wrap;border-radius:10px;max-width:80vw;padding:9px 12px;position:fixed;transform:translate(-20px,-50%);box-shadow:0 8px 24px #00000040}.pz-row.dragging{opacity:.4}:root{--aur-1:#6456dc57;--aur-2:#3296be47;--aur-3:#c8649638;--aur-4:#6e5ad238;--aur-base:linear-gradient(160deg, #c9c7e6 0%, #bccddd 55%, #d3c3d2 100%);--glass-fill:#ffffff75;--glass-fill-strong:#ffffff9e;--glass-edge:#ffffffd9;--glass-edge-dim:color-mix(in srgb, var(--accent) 18%, transparent);--glass-blur:blur(16px) saturate(165%);--sheen:linear-gradient(135deg, #ffffff8c 0%, #fff0 36%, #fff0 64%, #ffffff38 100%);--gem:linear-gradient(135deg, color-mix(in srgb, var(--accent) 92%, #fff) 0%, var(--accent) 45%, var(--accent-2) 100%);--glow:0 8px 26px -8px color-mix(in srgb, var(--accent) 60%, transparent);--glass-shadow:0 1px 2px #28285a0f, 0 16px 36px -16px #463ca04d;--glass-line:#5a5aaa29}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#090d1b;--surface:#121933;--surface-2:#1b2342;--line:#2a3358;--accent-soft:#232c58;--aur-1:#7864ff9e;--aur-2:#1ec8d76b;--aur-3:#ff5aaa5c;--aur-4:#5a78ff66;--aur-base:linear-gradient(160deg, #0a0f24 0%, #0a1226 55%, #12102a 100%);--glass-fill:#1c244a85;--glass-fill-strong:#181f42b8;--glass-edge:#ffffff2b;--sheen:linear-gradient(135deg, #ffffff1f 0%, #fff0 36%, #fff0 64%, #a0aaff12 100%);--glass-shadow:0 1px 2px #0006, 0 18px 40px -16px #000000b3;--glass-line:#b4beff24}}:root[data-theme=dark]{--bg:#090d1b;--surface:#121933;--surface-2:#1b2342;--line:#2a3358;--accent-soft:#232c58;--aur-1:#7864ff9e;--aur-2:#1ec8d76b;--aur-3:#ff5aaa5c;--aur-4:#5a78ff66;--aur-base:linear-gradient(160deg, #0a0f24 0%, #0a1226 55%, #12102a 100%);--glass-fill:#1c244a85;--glass-fill-strong:#181f42b8;--glass-edge:#ffffff2b;--sheen:linear-gradient(135deg, #ffffff1f 0%, #fff0 36%, #fff0 64%, #a0aaff12 100%);--glass-shadow:0 1px 2px #0006, 0 18px 40px -16px #000000b3;--glass-line:#b4beff24}html{background:var(--bg)}body{background:0 0}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed}body:before{background:var(--aur-base);inset:0}body:after{background:radial-gradient(closest-side, var(--aur-1), transparent), radial-gradient(closest-side, var(--aur-2), transparent), radial-gradient(closest-side, var(--aur-3), transparent), radial-gradient(closest-side, var(--aur-4), transparent);will-change:transform;background-position:10% 8%,100% 38%,70% 100%,0 72%;background-repeat:no-repeat;background-size:85% 62%,70% 55%,80% 60%,65% 50%;animation:32s ease-in-out infinite alternate aurora;inset:-10vmax}@keyframes aurora{0%{transform:translate(-2vmax,1vmax)scale(1)}to{transform:translate(2.5vmax,-2vmax)scale(1.1)rotate(2deg)}}.card,.plan-day,.pt-card,.stat-tile,.setting,.mine,[class*=hero],.cf-next,details.card,.ol-card,.pcard{background:var(--sheen), var(--glass-fill);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-edge);border-bottom-color:var(--glass-line);border-right-color:var(--glass-line);box-shadow:inset 0 1px 0 var(--glass-edge), inset 0 0 0 1px #ffffff0f, var(--glass-shadow)}.card{border-radius:22px}.card.flat{box-shadow:inset 0 1px 0 var(--glass-edge)}.prob,.cf-row,.cf-rung,.cf-ring,.drill-list a,.pp-nav a,.quiz-opt,.pb-m,.td-chip,.grades button{background:var(--sheen), color-mix(in srgb, var(--glass-fill) 85%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--glass-line);border-top-color:var(--glass-edge);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--glass-edge) 70%, transparent)}.card .prob,.card .cf-row{background:color-mix(in srgb, var(--glass-fill-strong) 60%, transparent)}.prob.done,.prob.solved{border-color:color-mix(in srgb, var(--easy) 40%, var(--glass-line))}.td-now,[class*=hero]{background:var(--sheen), linear-gradient(145deg, color-mix(in srgb, var(--accent) 22%, var(--glass-fill)), color-mix(in srgb, var(--accent-2) 16%, var(--glass-fill)) 60%, color-mix(in srgb, #3ec9d6 12%, var(--glass-fill)));border-color:color-mix(in srgb, var(--accent) 40%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent), 0 18px 44px -16px color-mix(in srgb, var(--accent) 50%, transparent)}@media (hover:hover){.card:hover,.plan-day:hover,.prob:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--glass-edge))}}.nav{background:var(--sheen), var(--glass-fill-strong);-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge), 0 -10px 30px -16px #281e6e4d}@media (width>=700px){.nav{background:linear-gradient(180deg, #ffffff24, transparent 30%), var(--glass-fill-strong);border-top:0;border-right:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(22px)saturate(170%);backdrop-filter:blur(22px)saturate(170%);box-shadow:inset -1px 0 0 var(--glass-line), 10px 0 36px -20px #281e6e59}}.nav a.active{color:var(--accent);background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 24%, transparent), color-mix(in srgb, var(--accent-2) 14%, transparent));box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px var(--glass-edge-dim), 0 6px 18px -8px color-mix(in srgb, var(--accent) 60%, transparent)}.brand img{box-shadow:var(--glow), 0 0 0 1px var(--glass-edge);border-radius:10px}.nav-foot{background:var(--sheen), var(--glass-fill);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge)}.btn{background:var(--sheen), var(--glass-fill-strong);border:1px solid var(--glass-edge);border-bottom-color:var(--glass-line);box-shadow:inset 0 1px 0 var(--glass-edge), 0 2px 6px -3px #28286440}.btn.primary{color:var(--accent-ink);background:linear-gradient(180deg, #ffffff57 0%, #fff0 48%, #0000001a 100%), var(--gem);box-shadow:inset 0 1px 0 #fff9, inset 0 -10px 16px -10px #00000047, var(--glow);text-shadow:0 1px #00000024;border:1px solid #ffffff61;position:relative;overflow:hidden}.btn.primary:after{content:"";width:40%;transition:left .6s var(--ease);pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff59,#0000);position:absolute;top:0;bottom:0;left:-60%;transform:skew(-18deg)}@media (hover:hover){.btn.primary:hover{filter:brightness(1.06)saturate(1.1)}.btn.primary:hover:after{left:130%}.btn:hover:not(.primary){border-color:color-mix(in srgb, var(--accent) 40%, var(--glass-edge))}}.btn.ghost{box-shadow:none;border-color:var(--glass-line);background:0 0}.chip,.segmented,.fsel select,.search{background:var(--glass-fill);border:1px solid var(--glass-edge);border-bottom-color:var(--glass-line);box-shadow:inset 0 1px 0 var(--glass-edge)}.segmented{padding:3px}.segmented button.on{background:var(--sheen), var(--glass-fill-strong);box-shadow:inset 0 1px 0 var(--glass-edge), 0 2px 8px -3px color-mix(in srgb, var(--accent) 45%, transparent)}.chip.on{background:linear-gradient(180deg, #ffffff47, #fff0 55%), var(--gem);color:var(--accent-ink);box-shadow:inset 0 1px 0 #ffffff8c, var(--glow);border-color:#ffffff59}.fsel.on select{background:color-mix(in srgb, var(--accent) 16%, var(--glass-fill))}input:not([type=checkbox]):not([type=radio]),select,textarea{background:color-mix(in srgb, var(--glass-fill) 80%, transparent);border:1px solid var(--glass-edge);border-bottom-color:var(--glass-line);box-shadow:inset 0 2px 4px #1e1e5a12}input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--ring), inset 0 2px 4px #1e1e5a12;border-color:var(--accent);outline:none}.badge,.tag{box-shadow:inset 0 1px #ffffff59}.filters{background:color-mix(in srgb, var(--glass-fill) 70%, transparent);-webkit-backdrop-filter:blur(14px)saturate(150%);backdrop-filter:blur(14px)saturate(150%);border-radius:0 0 20px 20px;box-shadow:0 10px 24px -16px #14144659}.bar{background:color-mix(in srgb, var(--ink) 10%, transparent);border-radius:99px;overflow:hidden;box-shadow:inset 0 1px 2px #14143c1f}.bar>i{background:linear-gradient(180deg, #fff6, #fff0 60%), linear-gradient(90deg, var(--accent), var(--accent-2) 70%, #3ec9d6);box-shadow:0 0 12px color-mix(in srgb, var(--accent) 65%, transparent)}.sync-chip{background:var(--sheen), var(--glass-fill-strong);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge)}.sync-chip.ok i{box-shadow:0 0 8px var(--easy)}.sync-chip.off{background:color-mix(in srgb, var(--med-soft) 80%, transparent)}.sync-chip.err{background:color-mix(in srgb, var(--hard-soft) 80%, transparent)}.toast{background:var(--sheen), color-mix(in srgb, var(--ink) 82%, transparent);color:var(--bg);-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);box-shadow:inset 0 1px 0 #ffffff4d, 0 16px 40px -12px #1e145a80, 0 0 24px -8px color-mix(in srgb, var(--accent) 50%, transparent);border:1px solid #ffffff3d}.toast button{color:color-mix(in srgb, var(--accent) 60%, var(--bg))}.ptabs{background:color-mix(in srgb, var(--bg) 40%, transparent);-webkit-backdrop-filter:blur(16px)saturate(160%);backdrop-filter:blur(16px)saturate(160%)}.ptabs .on,.ptabs [aria-selected=true]{box-shadow:inset 0 1px 0 var(--glass-edge), var(--glow)}h1{background:linear-gradient(120deg, var(--ink) 35%, color-mix(in srgb, var(--accent) 75%, var(--ink)) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}pre,.code,.editor{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 #ffffff14, var(--shadow);background-image:none;border:1px solid #ffffff1f}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.card,.plan-day,.pt-card,.stat-tile,.setting,.mine,.toast,[class*=hero],.nav{background:var(--surface)}}@media (prefers-reduced-motion:reduce){body:after{animation:none}.btn.primary:after{display:none}}@media (prefers-reduced-transparency:reduce){.card,.plan-day,.pt-card,.nav,.toast,[class*=hero],.filters,.ptabs{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}}.nav-toggle{display:none}@media (width>=1000px){.nav-toggle{min-height:44px;color:var(--ink-3);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:14px;margin-top:8px;padding:8px 14px;font-size:14px;font-weight:600;display:flex}.nav-toggle:hover{background:var(--surface-2);color:var(--ink)}.nav-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:22px;height:22px}.nav,main,.toast{transition:width .22s var(--ease), margin-left .22s var(--ease), left .22s var(--ease)}.app.nav-min .nav{width:80px;padding-left:8px;padding-right:8px}.app.nav-min .nav a{flex-direction:column;justify-content:center;gap:4px;min-height:60px;padding:6px 0;font-size:10.5px}.app.nav-min .brand{justify-content:center;padding-left:0;padding-right:0}.app.nav-min .brand span,.app.nav-min .nav-foot,.app.nav-min .nav-toggle span{display:none}.app.nav-min .nav-toggle{justify-content:center;margin-top:auto;padding:8px 0}.app.nav-min main{margin-left:80px}.app.nav-min .toast{left:calc(50% + 40px)}.nav-toggle{margin-top:8px}.nav-foot{margin-top:auto}.nav-foot+.nav-toggle{margin-top:8px}}@media (width>=1400px){.app.nav-min main{margin-left:max(80px,50vw - 480px)}}:root{--bg:#dcd9d0;--surface:#f6f4ee;--surface-2:#e7e4da;--line:#c9c5b8;--accent-soft:#e1e4fa;--ink:#15130f;--ink-2:#3d3a33;--ink-3:#5f5b50;--aur-base:#dcd9d0;--glass-fill:#f6f4ee;--glass-fill-strong:#fbfaf6;--glass-edge:#cfcbbe;--glass-line:#c9c5b8;--sheen:none;--glass-blur:none;--glow:none;--glass-shadow:0 1px 2px #1e1c141a, 0 6px 16px -10px #1e1c1438}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1015;--surface:#181b23;--surface-2:#232733;--line:#343947;--accent-soft:#2a3158;--ink:#f4f2ed;--ink-2:#d2cfc7;--ink-3:#a6a399;--aur-base:#0e1015;--glass-fill:#181b23;--glass-fill-strong:#1e222c;--glass-edge:#343947;--glass-line:#343947;--sheen:none;--glass-blur:none;--glow:none;--glass-shadow:0 1px 2px #00000080, 0 8px 20px -12px #000000b3}}:root[data-theme=dark]{--bg:#0e1015;--surface:#181b23;--surface-2:#232733;--line:#343947;--accent-soft:#2a3158;--ink:#f4f2ed;--ink-2:#d2cfc7;--ink-3:#a6a399;--aur-base:#0e1015;--glass-fill:#181b23;--glass-fill-strong:#1e222c;--glass-edge:#343947;--glass-line:#343947;--sheen:none;--glass-blur:none;--glow:none;--glass-shadow:0 1px 2px #00000080, 0 8px 20px -12px #000000b3}body:after{display:none}*{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.btn.primary:after{display:none}.btn.primary,.chip.on{background-image:none;background:var(--accent);box-shadow:none}.nav,.nav-foot,.filters,.ptabs,.toast{background:var(--surface)}.td-now,[class*=hero],.td-now.td-won{background:color-mix(in srgb, var(--accent) 9%, var(--surface));border-color:color-mix(in srgb, var(--accent) 35%, var(--line));box-shadow:var(--glass-shadow)}.td-now.td-won{background:color-mix(in srgb, var(--easy) 12%, var(--surface))}.td-now:before,.td-now:after,.pcard:after,.flash:before,.grades button:after,.td-acts .btn.primary:after{display:none}.card,.plan-day,.pt-card,.stat-tile,.setting,.mine,.cf-next,details.card,.ol-card,.pcard,.prob,.cf-row,.cf-rung,.cf-ring,.drill-list a,.pp-nav a,.quiz-opt,.pb-m,.td-chip,.grades button{box-shadow:var(--glass-shadow);background-image:none}.nav a.active{background:var(--accent-soft);box-shadow:none}.td-pace{margin-bottom:12px}.td-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.td-stats .stat-tile{border-radius:18px;justify-content:center;align-items:flex-start;min-height:84px;padding:12px 14px}.td-stats .stat-tile b{background:var(--gem);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:26px}.td-stats .stat-tile span{font-size:12.5px}.td-st-ring{flex-direction:row!important;align-items:center!important;gap:10px!important}.td-st-ring>span:last-child{line-height:1.2}.td-st-ring .ring{background:conic-gradient(var(--accent), var(--accent-2) calc(var(--v) * 1%), color-mix(in srgb, var(--ink) 10%, transparent) 0);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 55%, transparent));transition:--v .6s}.td-st-ring .ring-wrap>b{-webkit-text-fill-color:var(--ink);color:var(--ink);background:0 0;font-size:12.5px}.td-now{isolation:isolate;background:var(--sheen), linear-gradient(145deg, color-mix(in srgb, var(--accent) 22%, var(--glass-fill-strong)), color-mix(in srgb, var(--accent-2) 14%, var(--glass-fill)));border-color:color-mix(in srgb, var(--accent) 40%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), inset 0 0 0 1px #ffffff14, 0 24px 50px -22px color-mix(in srgb, var(--accent) 60%, transparent), 0 0 0 4px color-mix(in srgb, var(--accent) 8%, transparent);border-radius:26px;padding:24px 24px 22px;position:relative;overflow:hidden}.td-now:before,.td-now:after{content:"";z-index:-1;pointer-events:none;position:absolute}.td-now:before{background:linear-gradient(115deg, transparent 0 46%, #ffffff1a 46.2% 46.6%, transparent 47.2% 100%), linear-gradient(115deg, transparent 0 72%, #ffffff0f 72.2% 72.6%, transparent 73.2% 100%), linear-gradient(62deg, transparent 0 80%, color-mix(in srgb, var(--accent-2) 8%, transparent) 80% 100%);inset:0}.td-now:after{background:radial-gradient(closest-side, color-mix(in srgb, var(--accent-2) 40%, transparent), transparent);filter:blur(8px);border-radius:50%;width:220px;height:220px;top:-90px;right:-70px}.td-kicker{background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:inset 0 0 0 1px var(--glass-edge-dim);border-radius:99px;align-items:center;gap:6px;padding:4px 11px;display:inline-flex}.td-title{font-size:clamp(24px,4.2vw,32px)}.td-hint summary{align-items:center;min-height:36px}.td-hint p{background:var(--glass-fill);border:1px solid var(--glass-edge)}.td-acts .btn{justify-content:center;align-items:center;min-height:48px;display:inline-flex}.td-acts .btn.primary{font-size:16px;position:relative;overflow:hidden}.td-acts .btn.primary:after{content:"";background:linear-gradient(100deg,#0000,#fff6,#0000);width:40%;animation:5s ease-in-out 1.2s infinite gem-glint;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-18deg)}@keyframes gem-glint{0%{opacity:.9;transform:translate(-60%)}to{opacity:0;transform:translate(70%)}}.td-won{background:var(--sheen), linear-gradient(145deg, color-mix(in srgb, var(--easy) 20%, var(--glass-fill-strong)), color-mix(in srgb, var(--accent-2) 12%, var(--glass-fill)));border-color:color-mix(in srgb, var(--easy) 45%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), 0 24px 50px -22px color-mix(in srgb, var(--easy) 55%, transparent)}.td-sec-h h2{color:var(--ink-2)}.td-bar{height:6px}.td-bar>i{background:var(--gem)}.td-list{box-shadow:none;background:0 0;border:0;border-radius:0;gap:8px;display:grid;overflow:visible}.td-item{border:1px solid var(--glass-edge);background:var(--sheen), var(--glass-fill);min-height:56px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 0 var(--glass-edge), 0 10px 24px -16px color-mix(in srgb, var(--accent) 35%, #1414324d);border-radius:18px;padding:0 14px 0 6px;transition:opacity .35s,transform .25s,background-color .3s,border-color .3s}.td-item:first-child{border-top:1px solid var(--glass-edge)}.td-item.now{border-color:color-mix(in srgb, var(--accent) 50%, var(--glass-edge));background:var(--sheen), linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, var(--glass-fill)), var(--glass-fill));box-shadow:inset 0 1px 0 var(--glass-edge), var(--glow)}.td-item.done{opacity:.72;background:var(--sheen), color-mix(in srgb, var(--easy) 9%, var(--glass-fill));animation:td-settle .5s var(--ease,ease) both}.td-item.done .td-it{transition:color .3s}.td-check{border-radius:16px;width:52px;height:56px}.td-check:active .dot{transform:scale(.85)}.td-check .dot{transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .3s}.td-item.done .dot{box-shadow:0 0 12px color-mix(in srgb, var(--easy) 70%, transparent);animation:.45s cubic-bezier(.34,1.56,.64,1) td-pop}@keyframes td-pop{0%{transform:scale(.6)}60%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes td-settle{0%{transform:translateY(-3px)}to{transform:none}}.td-item>a{padding:10px 0}.card.td-review{border-radius:20px;min-height:64px;padding:14px 16px}.td-ico{background:var(--gem);color:var(--accent-ink);box-shadow:inset 0 1px 0 #ffffff80, var(--glow)}.td-review.calm .td-ico{background:linear-gradient(135deg, var(--easy), color-mix(in srgb, var(--easy) 60%, #3ec9d6));box-shadow:inset 0 1px #ffffff80}.cfn{background:var(--sheen), linear-gradient(120deg, color-mix(in srgb, #3ec9d6 14%, var(--glass-fill)), var(--glass-fill) 70%);border-radius:20px;gap:12px;margin-top:18px;padding:14px 16px;position:relative;overflow:hidden}.cfn:before{content:"";background:linear-gradient(180deg, #3ec9d6, var(--accent));border-radius:3px;width:3px;position:absolute;top:14%;bottom:14%;left:0;box-shadow:0 0 10px #3ec9d6}.cfn .cf-rate{text-align:center;background:var(--glass-fill-strong);min-width:52px;box-shadow:inset 0 1px 0 var(--glass-edge), inset 0 0 0 1px var(--glass-edge-dim);border-radius:12px;padding:6px 8px;font-weight:800}.cfn .btn.small{min-height:40px}.td-chip{background:var(--sheen), var(--glass-fill);border-color:var(--glass-edge);min-height:44px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:99px;padding:8px 16px}.td-chip.hot{background:var(--sheen), var(--gem);box-shadow:var(--glow)}.td-install{background:var(--sheen), var(--glass-fill);border:1px solid var(--glass-edge);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:16px}.streak-pill{box-shadow:inset 0 1px #fff9,0 6px 16px -8px #ff8a3d}.plan-end{border-radius:20px}.plan-wk{align-items:center;gap:10px;margin:28px 0 10px;display:flex}.plan-wk:after{content:"";background:linear-gradient(90deg, var(--glass-edge), transparent);flex:1;height:1px}.plan-days{gap:12px}.plan-day{border-radius:20px;padding:14px 18px 8px}.plan-day-h{padding-bottom:8px}.plan-p{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);min-height:52px;padding:6px 0}.plan-tick{border-radius:14px;width:44px;height:44px;margin:-6px -6px -6px -10px;padding:0}.plan-p.done{opacity:.75}.plan-start{background:var(--glass-fill);border:1px solid var(--glass-edge)}.plan-day.today{background:var(--sheen), linear-gradient(145deg, color-mix(in srgb, var(--accent) 20%, var(--glass-fill-strong)), color-mix(in srgb, var(--accent-2) 12%, var(--glass-fill)));border-color:color-mix(in srgb, var(--accent) 55%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent), 0 0 34px -6px color-mix(in srgb, var(--accent) 55%, transparent), 0 20px 40px -22px color-mix(in srgb, var(--accent) 60%, transparent);animation:4.5s ease-in-out infinite alternate plan-glow}.plan-day.today .plan-day-h b{background:var(--gem);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1em}@keyframes plan-glow{to{box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent), 0 0 46px -4px color-mix(in srgb, var(--accent) 70%, transparent), 0 20px 40px -22px color-mix(in srgb, var(--accent) 60%, transparent)}}.plan-done{border-radius:20px}.card:has(>.setting){padding:6px 18px}.card:has(>.setting)>.setting{border:0;border-top:1px solid color-mix(in srgb, var(--ink) 9%, transparent);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-radius:0;min-height:64px;padding:16px 0}.card:has(>.setting)>.setting:first-child{border-top:0}.get-app{padding-top:6px!important}.card.get-app>.small{margin-bottom:14px!important}.stats{gap:12px}.card.stat{border-radius:20px;padding:16px}.card.stat b{background:var(--gem);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}h2{margin-top:28px}.setting .btn,.setting .segmented button{min-height:44px}.setting .btn.small{justify-content:center;align-items:center;display:inline-flex}.segmented button.on{background:var(--sheen), var(--gem);color:var(--accent-ink);box-shadow:inset 0 1px 0 #ffffff80, var(--glow)}@media (width<=400px){.td-stats{gap:8px}.td-stats .stat-tile{padding:10px}.td-st-ring{flex-direction:column!important;align-items:flex-start!important;gap:4px!important}.td-now{padding:20px 18px}}@media (width>=700px){.td,.review{max-width:760px}.td-list{grid-template-columns:1fr 1fr}.td-list:has(.td-item:only-child){grid-template-columns:1fr}.plan-days{grid-template-columns:1fr 1fr;align-items:start}}@media (prefers-reduced-motion:reduce){.td-acts .btn.primary:after,.plan-day.today,.td-item.done,.td-item.done .dot{animation:none}.td-item,.td-check .dot,.td-st-ring .ring{transition:none}}.prob{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--sheen), color-mix(in srgb, var(--surface) 62%, transparent);box-shadow:inset 0 1px 0 var(--glass-edge), 0 8px 18px -14px color-mix(in srgb, var(--accent) 40%, #14143266);transition:border-color .18s,box-shadow .18s,transform .18s}@media (hover:hover){.prob:hover{box-shadow:inset 0 1px 0 var(--glass-edge), var(--glow);transform:translateY(-1px)}}.prob:has(.dot.solved){background:var(--sheen), linear-gradient(90deg, color-mix(in srgb, var(--easy) 11%, transparent), transparent 55%), color-mix(in srgb, var(--surface) 62%, transparent)}.group-h h2{letter-spacing:-.01em}.group-h span{background:var(--glass-fill);border:1px solid var(--glass-edge);border-radius:99px;padding:2px 10px}.dot{background:color-mix(in srgb, var(--surface) 55%, transparent);border:2px solid color-mix(in srgb, var(--ink) 22%, transparent);transition:box-shadow .25s,transform .2s,background .2s;box-shadow:inset 0 1px 2px #1414321f}.dot.solved{background:radial-gradient(circle at 32% 26%, #ffffffb3, transparent 42%), linear-gradient(145deg, color-mix(in srgb, var(--easy) 78%, #fff), var(--easy));border-color:color-mix(in srgb, var(--easy) 70%, #fff);box-shadow:inset 0 -3px 5px -2px #00000040, 0 0 0 3px color-mix(in srgb, var(--easy) 16%, transparent), 0 0 14px color-mix(in srgb, var(--easy) 60%, transparent)}.dot.revisit{background:radial-gradient(circle at 32% 26%, #fff6, transparent 45%), var(--hard-soft);box-shadow:0 0 10px color-mix(in srgb, var(--hard) 35%, transparent)}.badge[class*=d-]{background-image:linear-gradient(#ffffff73,#fff0 60%);border:1px solid;border-radius:99px;padding:1px 10px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff80}.badge.d-Easy{border-color:color-mix(in srgb, var(--easy) 40%, transparent);background-color:var(--easy-soft)}.badge.d-Medium{border-color:color-mix(in srgb, var(--med) 40%, transparent);background-color:var(--med-soft)}.badge.d-Hard{border-color:color-mix(in srgb, var(--hard) 40%, transparent);background-color:var(--hard-soft)}.tag{border:1px solid var(--glass-edge-dim);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:99px}.filters{background:color-mix(in srgb, var(--bg) 45%, transparent);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.chip{box-shadow:inset 0 1px 0 var(--glass-edge)}select.chip{background-color:var(--glass-fill)}.search{background:var(--glass-fill)}.pcard{position:relative;overflow:hidden}.pcard:after{content:"";pointer-events:none;background:radial-gradient(circle, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);border-radius:50%;width:110px;height:110px;position:absolute;top:-40px;right:-40px}.ico,.entry-ico{background:var(--sheen), linear-gradient(145deg, color-mix(in srgb, var(--accent) 22%, transparent), color-mix(in srgb, var(--accent-2) 16%, transparent));box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px var(--glass-edge-dim)}.roadmap{overflow-x:auto}.rm-node rect:first-of-type{fill:color-mix(in srgb, var(--surface) 70%, transparent);stroke:var(--glass-edge-dim)}.rm-node.now rect:first-of-type{fill:var(--accent);filter:drop-shadow(0 4px 12px color-mix(in srgb, var(--accent) 60%, transparent))}.rm-node.past rect:first-of-type{fill:var(--easy-soft)}.rm-fill{filter:drop-shadow(0 0 3px color-mix(in srgb, var(--easy) 70%, transparent))}.rm-edges path{stroke:color-mix(in srgb, var(--accent) 30%, var(--line))}.lesson-toc a{background:var(--glass-fill);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.lesson-toc a:hover{color:var(--accent)}.lesson-hero{border-left:1px solid var(--glass-edge);position:relative}.lesson-hero:before{content:"";background:var(--gem);width:4px;box-shadow:0 0 14px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:0 4px 4px 0;position:absolute;top:14px;bottom:14px;left:0}.pb-m,.pb-chips span,.pb-table,.pb-note,.ol-card,.pp-nav a,.drill-list a{background:var(--sheen), var(--glass-fill);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge), 0 10px 24px -16px color-mix(in srgb, var(--accent) 35%, #1414324d)}.pb-table{border-collapse:separate;border-spacing:0;overflow:hidden}.pb-table th{background:color-mix(in srgb, var(--accent) 9%, var(--glass-fill-strong));color:var(--ink-2)}.pb-table td{border-top-color:color-mix(in srgb, var(--line) 70%, transparent)}.pb-table tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--accent) 3%, transparent)}.pb-card .pb-do,.pb-say{box-shadow:inset 0 1px 0 var(--glass-edge);border:1px solid var(--glass-edge-dim)}.pb-card .pb-do{background:color-mix(in srgb, var(--accent) 10%, transparent)}.pb-say{background:color-mix(in srgb, var(--easy) 12%, transparent)}.pb-note{background:color-mix(in srgb, var(--med) 12%, var(--glass-fill))}.pb-t{font-variant-numeric:tabular-nums}.pp-kicker{color:var(--accent)}.ptabs{top:calc(env(safe-area-inset-top) + 8px);border:1px solid var(--glass-edge);background:var(--sheen), var(--glass-fill-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:inset 0 1px 0 var(--glass-edge), 0 14px 30px -14px color-mix(in srgb, var(--accent) 40%, #14143266);border-radius:999px;gap:3px;margin:0 0 14px;padding:5px}@media (width>=1000px){.ptabs{margin:0 0 16px;padding:5px 6px}}.ptabs button{transition:background .2s,color .2s,box-shadow .2s}.ptabs button.on{background:var(--sheen), color-mix(in srgb, var(--accent) 14%, var(--glass-fill-strong));border-color:color-mix(in srgb, var(--accent) 40%, var(--glass-edge));color:var(--ink);box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 18px -2px color-mix(in srgb, var(--accent) 55%, transparent)}.ptab-n{background:color-mix(in srgb, var(--ink) 8%, transparent)}.ptabs button.on .ptab-n{background:var(--gem);box-shadow:0 0 10px color-mix(in srgb, var(--accent) 70%, transparent), inset 0 1px 0 #ffffff80}.pt-card{border-radius:24px}.sol,.deeper{border-top-color:var(--glass-edge-dim)}.code-wrap{border-radius:var(--radius);border:1px solid var(--glass-edge-dim);box-shadow:var(--shadow);gap:0;overflow:hidden}.code-wrap>pre.code{border-radius:0 0 var(--radius) var(--radius);box-shadow:none;border:0}.code-bar{background:var(--sheen), var(--glass-fill-strong);border-bottom:1px solid var(--glass-edge-dim);align-items:center;padding:7px 10px}.lang-tabs{background:color-mix(in srgb, var(--ink) 7%, transparent)}.lang-tabs button.on{background:var(--sheen), var(--gem);color:var(--accent-ink);box-shadow:inset 0 1px 0 #ffffff80, 0 0 12px color-mix(in srgb, var(--accent) 50%, transparent)}.hints li{background:color-mix(in srgb, var(--med) 12%, var(--glass-fill));border:1px solid color-mix(in srgb, var(--med) 25%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:12px}.notes .key,.pathbox,.pt-tip,.explain{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid var(--glass-edge-dim);box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:14px}.notes .key{padding:12px 16px}.notes .why{border-left:0;padding-left:16px;position:relative}.notes .why:before{content:"";background:var(--gem);width:3px;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 55%, transparent);border-radius:3px;position:absolute;top:2px;bottom:2px;left:0}.notes .sheet{border-left-color:var(--glass-edge-dim)}details.fu{background:var(--glass-fill);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:14px}.mine,.mine-review{border-radius:18px}.pt-pane .editor{background:color-mix(in srgb, var(--surface) 70%, transparent);border-radius:14px}@media (width<=520px){.ptabs{border-radius:22px}.prob-tick{width:44px}}@media (prefers-reduced-motion:reduce){.prob,.dot,.ptabs button{transition:none}.prob:hover{transform:none}}@media (prefers-reduced-transparency:reduce){.ptabs,.filters,.lesson-toc a{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface)}}.lesson-hero{margin-bottom:14px}.review{perspective:1400px}.flash{background:var(--sheen), linear-gradient(160deg, color-mix(in srgb, var(--accent) 9%, var(--glass-fill-strong)), color-mix(in srgb, var(--accent-2) 7%, var(--glass-fill)));box-shadow:inset 0 1px 0 var(--glass-edge), 0 2px 4px #1414320d, 0 24px 60px -24px color-mix(in srgb, var(--accent) 50%, #14143266), 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);border-radius:26px;transition:box-shadow .3s,transform .3s;position:relative;overflow:hidden}.flash:before{content:"";pointer-events:none;opacity:.7;background:linear-gradient(115deg,#0000 42%,#ffffff47 50%,#0000 58%);position:absolute;inset:-40% -20%;transform:translate(-60%)}.flash:not(.flipped):hover:before{transition:transform 1.1s;transform:translate(60%)}.flash>*{position:relative}.flash:not(.flipped):active{transform:scale(.992)}.flash.flipped{transform-origin:50% 40%;animation:.55s cubic-bezier(.2,.8,.2,1) both gem-flip}.flash.flipped:before{animation:1.1s ease-out .1s both gem-glint}@keyframes gem-flip{0%{opacity:.2;transform:rotateY(-88deg)scale(.96)}60%{opacity:1}to{opacity:1;transform:none}}.flash .prompt{border-top:1px dashed var(--glass-edge-dim)}.flash .q-title{background:linear-gradient(120deg, var(--ink) 40%, color-mix(in srgb, var(--accent) 65%, var(--ink)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.kbd{background:color-mix(in srgb, var(--surface) 60%, transparent);border-color:var(--glass-edge);box-shadow:inset 0 -1px 0 var(--glass-edge-dim)}.grades button{--gc:var(--accent);color:#fff;border:1px solid color-mix(in srgb, #fff 40%, var(--gc));background:var(--sheen), linear-gradient(160deg, color-mix(in srgb, var(--gc) 78%, #fff 6%), color-mix(in srgb, var(--gc) 100%, #000 18%));text-shadow:0 1px 1px #00000047;min-height:66px;box-shadow:inset 0 1px 0 #ffffff8c, inset 0 -10px 16px -10px #0000004d, 0 10px 24px -10px color-mix(in srgb, var(--gc) 75%, transparent);border-radius:16px;font-size:16px;transition:transform .15s,filter .2s,box-shadow .2s;position:relative;overflow:hidden}.grades button:after{content:"";pointer-events:none;background:linear-gradient(#ffffff47,#0000);border-radius:0 0 50% 50%/0 0 100% 100%;height:42%;position:absolute;top:0;left:8%;right:8%}.grades .g0{--gc:var(--hard)}.grades .g1{--gc:var(--med)}.grades .g2{--gc:var(--easy)}.grades .g3{--gc:var(--accent)}.grades .g1{color:#3a2500;text-shadow:0 1px #ffffff59}.grades button small{color:inherit;opacity:.85;font-weight:600}.grades button .kbd{color:inherit;background:#ffffff38;border-color:#fff6}.grades button:active{filter:brightness(.95);transform:scale(.96)}@media (hover:hover){.grades button:hover{border-color:color-mix(in srgb, #fff 55%, var(--gc));filter:brightness(1.08)saturate(1.1);transform:translateY(-2px)}}.grades .suggest{outline:2px solid color-mix(in srgb, var(--med) 70%, #fff);outline-offset:3px}.grade-key>div{background:var(--sheen), var(--glass-fill);border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:14px}.done-card .big{filter:drop-shadow(0 0 14px color-mix(in srgb, var(--accent) 60%, transparent))}.practice,.practice-row .card{transition:transform .2s,box-shadow .2s,border-color .2s}.practice-row .card:hover{transform:translateY(-2px)}.quiz-opt{border:1px solid var(--glass-edge);color:var(--ink);background:var(--sheen), var(--glass-fill-strong);box-shadow:inset 0 1px 0 var(--glass-edge), 0 8px 20px -14px color-mix(in srgb, var(--accent) 45%, #14143266);border-radius:16px;transition:transform .15s,box-shadow .25s,border-color .25s,background .25s;position:relative}.quiz-opt:not([disabled]):active{transform:scale(.98)}@media (hover:hover){.quiz-opt:not([disabled]):hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), var(--glow);transform:translateY(-1px)}}.quiz-opt.right{background:var(--sheen), color-mix(in srgb, var(--easy) 20%, var(--glass-fill-strong));border-color:var(--easy);color:var(--ink);box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px var(--easy), 0 0 26px -2px color-mix(in srgb, var(--easy) 60%, transparent);animation:.6s ease-out gem-pulse}.quiz-opt.wrong{background:var(--sheen), color-mix(in srgb, var(--hard) 18%, var(--glass-fill-strong));border-color:var(--hard);color:var(--ink);box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px var(--hard), 0 0 24px -2px color-mix(in srgb, var(--hard) 55%, transparent);animation:.35s gem-shake}.quiz-opt.dim{opacity:.5;box-shadow:none}@keyframes gem-pulse{0%{transform:scale(.97)}50%{transform:scale(1.02)}to{transform:none}}@keyframes gem-shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.quiz-fb{background:var(--sheen), var(--glass-fill);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:16px}.quiz-fb.ok{background:var(--sheen), color-mix(in srgb, var(--easy) 14%, var(--glass-fill));border-color:color-mix(in srgb, var(--easy) 45%, var(--glass-edge))}.quiz-fb.no{background:var(--sheen), color-mix(in srgb, var(--hard) 12%, var(--glass-fill));border-color:color-mix(in srgb, var(--hard) 45%, var(--glass-edge))}.pz-board{background:color-mix(in srgb, var(--code-bg) 88%, transparent);box-shadow:inset 0 1px 0 #ffffff1a, var(--shadow);border:1px solid #ffffff1a;border-radius:18px}.pz-board.solved{border-color:var(--easy);box-shadow:inset 0 1px 0 #ffffff1a, 0 0 30px -4px color-mix(in srgb, var(--easy) 60%, transparent);outline:0}.pz-line.empty{border:1.5px dashed color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--accent) 6%, transparent);box-shadow:inset 0 0 14px -6px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:12px;transition:box-shadow .2s,background .2s,border-color .2s}.pz-line.empty.target,.pz-line.hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:0 0 0 1px var(--accent), 0 0 22px -2px color-mix(in srgb, var(--accent) 70%, transparent), inset 0 0 14px -4px color-mix(in srgb, var(--accent) 60%, transparent);outline:0}.pz-line.placed{background:linear-gradient(#ffffff1f,#ffffff0d);border-radius:12px;box-shadow:inset 0 1px #ffffff29}.pz-line.placed.ok{background:color-mix(in srgb, var(--easy) 26%, transparent);box-shadow:inset 0 1px 0 #ffffff2e, 0 0 16px -4px var(--easy)}.pz-line.placed.bad{background:color-mix(in srgb, var(--hard) 28%, transparent);box-shadow:inset 0 1px 0 #ffffff2e, 0 0 16px -4px var(--hard)}.pz-piece{border:1px solid var(--glass-edge);background:var(--sheen), var(--glass-fill-strong);color:var(--ink);box-shadow:inset 0 1px 0 var(--glass-edge), 0 8px 18px -12px color-mix(in srgb, var(--accent) 50%, #14143266);border-radius:14px;transition:transform .15s,box-shadow .2s,border-color .2s}@media (hover:hover){.pz-piece:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), var(--glow)}}.pz-piece:active{background:var(--sheen), color-mix(in srgb, var(--accent) 16%, var(--glass-fill-strong))}.pz-grip{background:var(--glass-fill-strong);border-color:var(--glass-edge);border-radius:12px}.pz-board .pz-grip{background:#ffffff14}.pz-ghost{background:var(--sheen), var(--glass-fill-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glow), 0 16px 36px -10px #0006;border-radius:14px}.pz-win{background:var(--sheen), color-mix(in srgb, var(--easy) 16%, var(--glass-fill));border:1px solid color-mix(in srgb, var(--easy) 45%, var(--glass-edge))}.mock-timer{--p:0;isolation:isolate;background:color-mix(in srgb, var(--surface) 55%, transparent);box-shadow:0 0 24px -4px color-mix(in srgb, var(--accent) 55%, transparent), inset 0 0 18px -8px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:99px;margin:6px 0 4px;padding:12px 22px;display:inline-block;position:relative}.mock-timer:before{content:"";border-radius:inherit;z-index:-1;background:conic-gradient(from -90deg, var(--accent), var(--accent-2) calc(var(--p) * 100%), color-mix(in srgb, var(--ink) 12%, transparent) 0);-webkit-mask-composite:xor;filter:drop-shadow(0 0 5px color-mix(in srgb, var(--accent) 70%, transparent));padding:3px;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.mock-timer.over{box-shadow:0 0 26px -2px color-mix(in srgb, var(--hard) 65%, transparent)}.mock-timer.over:before{background:var(--hard);filter:drop-shadow(0 0 6px var(--hard))}.mock-bar{border-radius:22px}.mph{background:var(--glass-fill);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge);border-radius:14px;transition:all .25s}.mph.done{background:color-mix(in srgb, var(--easy) 16%, var(--glass-fill));border-color:color-mix(in srgb, var(--easy) 40%, var(--glass-edge))}.mph.now{background:var(--sheen), var(--gem);color:var(--accent-ink);box-shadow:inset 0 1px 0 #ffffff80, var(--glow);border-color:#ffffff59}.mock-phase{background:var(--sheen), linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, var(--glass-fill)), var(--glass-fill));border-left:0}.cf-stats div{background:var(--sheen), color-mix(in srgb, var(--accent) 8%, var(--glass-fill-strong));border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge), 0 8px 20px -14px color-mix(in srgb, var(--accent) 50%, transparent);border-radius:16px}.cf-stats b{background:var(--gem);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.cf-ring{background:var(--sheen), var(--glass-fill-strong);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge), 0 8px 18px -14px color-mix(in srgb, var(--tc) 60%, #14143266);border-radius:18px;transition:transform .15s,box-shadow .2s,border-color .2s}.cf-ring .trk{stroke:color-mix(in srgb, var(--tc) 16%, transparent)}.cf-ring svg{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--tc) 70%, transparent))}.cf-ring.on{border-color:color-mix(in srgb, var(--tc) 70%, var(--glass-edge));background:var(--sheen), color-mix(in srgb, var(--tc) 14%, var(--glass-fill-strong));box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 0 1px color-mix(in srgb, var(--tc) 45%, transparent), 0 0 24px -4px color-mix(in srgb, var(--tc) 65%, transparent)}@media (hover:hover){.cf-ring:hover{border-color:color-mix(in srgb, var(--tc) 55%, var(--glass-edge));transform:translateY(-1px)}}.cf-ladder-head{border-left:0;padding-left:0}.cf-ladder-head h2{text-shadow:0 0 22px color-mix(in srgb, var(--tc) 45%, transparent)}.cf-rate{box-shadow:inset 0 1px 0 #ffffff59, 0 0 12px -3px var(--tc);background:color-mix(in srgb, var(--tc) 16%, transparent);border:1px solid color-mix(in srgb, var(--tc) 30%, transparent)}.cf-next,.cfn{background:var(--sheen), linear-gradient(135deg, color-mix(in srgb, var(--accent) 22%, var(--glass-fill)), color-mix(in srgb, var(--accent-2) 14%, var(--glass-fill)));border:1px solid color-mix(in srgb, var(--accent) 38%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), var(--glow);border-radius:20px}.cf-prob{background:var(--sheen), var(--glass-fill-strong);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-edge), 0 6px 16px -12px color-mix(in srgb, var(--accent) 45%, #14143266);border-radius:16px}.cf-prob.solved{background:var(--sheen), color-mix(in srgb, var(--easy) 13%, var(--glass-fill-strong));border-color:color-mix(in srgb, var(--easy) 35%, var(--glass-edge))}.cf-prob.revisit{border-color:color-mix(in srgb, var(--hard) 60%, var(--glass-edge));box-shadow:inset 0 1px 0 var(--glass-edge), 0 0 16px -6px var(--hard)}.cf-tick:before{background:var(--glass-fill-strong);border-color:var(--glass-edge-dim)}.cf-prob.solved .cf-tick:before{background:var(--easy);box-shadow:0 0 12px -1px var(--easy)}.cf-tag{background:color-mix(in srgb, var(--accent) 9%, transparent);border:1px solid var(--glass-edge-dim)}@media (prefers-reduced-motion:reduce){.flash,.flash.flipped,.flash:before,.quiz-opt,.quiz-opt.right,.quiz-opt.wrong,.grades button,.cf-ring,.mph{transition:none!important;animation:none!important}.flash:not(.flipped):hover:before{transform:translate(-60%)}}@media (prefers-reduced-transparency:reduce){.pz-ghost{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface)}}.cf-layout{grid-template-columns:minmax(0,1fr)}.cf-layout>*{min-width:0}@media (width>=1000px){.cf-layout{grid-template-columns:200px minmax(0,1fr)}}
