@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-cyrillic-ext-wght-normal.1u0dqmy5nxczg.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-cyrillic-wght-normal.30790udfaxqlx.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-greek-ext-wght-normal.2ddeplpkxh-cg.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-greek-wght-normal.265p0n5hqb5i6.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-vietnamese-wght-normal.3mqt02_gba4h3.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-latin-ext-wght-normal.3ggh-ap8gvlbt.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/literata-latin-wght-normal.3mrjy5df0dr0p.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-cyrillic-ext-wght-normal.3dr-dgdzidi0_.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-cyrillic-wght-normal.2rcjvmmvk3bh-.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-greek-ext-wght-normal.0wpy8o7woho9l.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-greek-wght-normal.37txlz2jx52f0.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-vietnamese-wght-normal.0txey9puiotzv.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-latin-ext-wght-normal.1zvx38bd_81k2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/source-sans-3-latin-wght-normal.3y33ar50ixvlj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f1e8;--surface:#fdfbf5;--surface2:#ede7d8;--ink:#211d16;--ink-soft:#4c463b;--muted:#6c6251;--line:#e2dac8;--accent:#8a5a24;--accent-ink:#6e4514;--accent-soft:#f1e7d4;--ok:#3e6b4f;--ok-soft:#e4ede4;--due:#9c561f;--due-soft:#f6e8d8;--learn:#33596b;--learn-soft:#e2ebef;--danger:#96393b;--serif:"Literata Variable", Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, serif;--display:"Literata Variable", "Iowan Old Style", "Palatino Linotype", "URW Palladio L", P052, Georgia, serif;--sans:"Source Sans 3 Variable", Optima, Candara, Seravek, "Gill Sans Nova", "Noto Sans", Calibri, sans-serif;--mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--r:4px;--r-sm:2px;--hairline:1px solid var(--line);--grain-opacity:.028}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#11141b;--surface:#181d27;--surface2:#1f2531;--ink:#e4dfd3;--ink-soft:#b2ac9e;--muted:#94927f;--line:#2a3040;--accent:#d2a24c;--accent-ink:#e0b968;--accent-soft:#2c2617;--ok:#7fb795;--ok-soft:#1c2a22;--due:#e0a468;--due-soft:#2e2415;--learn:#86aec8;--learn-soft:#18242e;--danger:#cd7b75;--grain-opacity:0}*{box-sizing:border-box}html,body{height:100%;margin:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}input:where([type=email],[type=text],[type=search]),textarea,select{appearance:none}button,a,[role=button]{-webkit-tap-highlight-color:transparent}button,a,input,textarea,select,[role=button]{touch-action:manipulation}body{font-family:var(--sans);background:var(--bg);color:var(--ink);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";pointer-events:none;z-index:0;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}[data-theme=dark] body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(1px 1px at 8% 12%,#e4dfd338 50%,#0000 51%),radial-gradient(1px 1px at 23% 64%,#e4dfd324 50%,#0000 51%),radial-gradient(1.5px 1.5px at 37% 28%,#e0b96829 50%,#0000 51%),radial-gradient(1px 1px at 52% 78%,#e4dfd31f 50%,#0000 51%),radial-gradient(1px 1px at 64% 15%,#e4dfd32e 50%,#0000 51%),radial-gradient(1.5px 1.5px at 78% 51%,#e4dfd31a 50%,#0000 51%),radial-gradient(1px 1px at 88% 82%,#e0b96821 50%,#0000 51%),radial-gradient(1px 1px at 94% 33%,#e4dfd329 50%,#0000 51%),radial-gradient(1200px 800px at 70% -10%,#e0b9680a,#0000 60%);position:fixed;inset:0}main,header.site,.overlay{z-index:1;position:relative}button{font-family:var(--sans)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}a{color:var(--accent-ink)}.k,.cl,.pz-label,.kicker,.dhead{font-family:var(--sans);letter-spacing:.14em;color:var(--muted);font-size:10.5px;font-weight:700}header.site{border-bottom:var(--hairline);background:var(--surface);z-index:5;align-items:center;gap:12px;padding:18px clamp(20px,5vw,56px);display:flex}header.site .brand{color:var(--accent-ink);align-items:center;gap:11px;text-decoration:none;display:flex}header.site .brand b{font-family:var(--display);color:var(--ink);font-size:19px;font-weight:600;line-height:1.1;display:block}header.site .brand small{color:var(--muted);letter-spacing:.02em;font-size:11px}header.site nav{align-items:center;gap:16px;margin-left:auto;display:flex}header.site nav a{color:var(--ink-soft);font-size:14.5px;font-weight:600;text-decoration:none}header.site nav a:hover{color:var(--accent-ink)}.usermenu{display:flex;position:relative}.avatar-btn{border:1px solid var(--accent);background:var(--accent-soft);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:flex;overflow:hidden}.avatar-btn img{object-fit:cover;width:100%;height:100%;display:block}.avatar-fallback{font-family:var(--display);color:var(--accent-ink);font-size:15.5px;font-weight:600}.usermenu-pop{background:var(--surface);border:var(--hairline);border-radius:var(--r);z-index:30;flex-direction:column;min-width:190px;max-width:78vw;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #211d1629}[data-theme=dark] .usermenu-pop{box-shadow:0 12px 32px #00000080}.usermenu-id{color:var(--muted);border-bottom:var(--hairline);word-break:break-all;margin-bottom:4px;padding:7px 10px 9px;font-size:13px}.usermenu-pop a,.usermenu-pop form button{text-align:left;border-radius:var(--r-sm);width:100%;font-family:var(--sans);color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:8px 10px;font-size:14.5px;font-weight:600;text-decoration:none;display:block}.usermenu-pop a:hover,.usermenu-pop form button:hover{background:var(--surface2);color:var(--ink)}main.page{max-width:880px;margin:0 auto;padding:42px clamp(20px,5vw,56px) 96px}.hero{max-width:660px;padding:52px 0 36px}.hero h1{font-family:var(--display);letter-spacing:-.01em;margin:14px 0 16px;font-size:clamp(34px,5.5vw,46px);font-weight:600;line-height:1.1}.hero p.lede{font-family:var(--serif);color:var(--ink-soft);margin:0 0 26px;font-size:19px;line-height:1.6}.hero .k{color:var(--accent-ink)}.hero-shot{margin:8px 0 30px}.hero-shot img{border:var(--hairline);border-radius:var(--r);width:100%;max-width:560px;height:auto;display:block;box-shadow:0 1px #211d160a,0 18px 48px #211d161f}[data-theme=dark] .hero-shot img{box-shadow:0 18px 48px #00000080}.hero-shot .shot-caption{font-family:var(--sans);color:var(--muted);max-width:66ch;margin:12px 0 0;font-size:14.5px}.signin-block{margin:0 0 34px}.signin-block>.k{color:var(--accent-ink);margin-bottom:10px;display:block}.concept-actions{flex-wrap:wrap;gap:8px;margin:2px 0 18px;display:flex}.catalog-head{color:var(--accent-ink);letter-spacing:.08em;margin:20px 0 0}.proof{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;max-width:820px;margin:6px 0 44px;display:grid}.proof p{color:var(--ink-soft);margin:0;font-size:14.5px;line-height:1.55}.proof b{font-family:var(--display);color:var(--ink);margin-bottom:4px;font-size:16.5px;font-weight:600;display:block}.tenets{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:26px 0;display:grid}.tenet{background:var(--surface);border:var(--hairline);border-radius:var(--r);padding:18px 20px}.tenet h3{font-family:var(--display);margin:8px 0 6px;font-size:18px;font-weight:600}.tenet p{color:var(--ink-soft);margin:0;font-size:14.5px;line-height:1.55}.cards{gap:14px;max-width:720px;display:grid}.card{background:var(--surface);border:var(--hairline);border-radius:var(--r);padding:22px 24px;box-shadow:0 1px #211d1608}.card .k{align-items:center;gap:8px;display:flex}.card h2{font-family:var(--display);margin:10px 0 6px;font-size:22px;font-weight:600}.card h3{font-family:var(--display);margin:10px 0 6px;font-size:18.5px;font-weight:600}.card p{color:var(--ink-soft);margin:0 0 14px;font-size:15px;line-height:1.55}.card p:last-child{margin-bottom:0}.card.hero-card{border-top:2px solid var(--accent)}.card.hero-card.clear{border-top-color:var(--ok)}.card ul{color:var(--ink-soft);margin:0 0 14px;padding-left:20px;font-size:15px;line-height:1.65}.path{font-family:var(--mono);background:var(--surface2);border-radius:var(--r-sm);color:var(--ink-soft);padding:5px 9px;font-size:13px;display:inline-block}.btn{border:1px solid var(--accent-ink);background:var(--surface);color:var(--accent-ink);border-radius:var(--r-sm);letter-spacing:.02em;cursor:pointer;padding:9px 18px;font-size:14.5px;font-weight:600;text-decoration:none;transition:background .12s ease-out,color .12s ease-out;display:inline-block}.btn:hover{background:var(--accent-soft)}.btn.primary{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--surface)}[data-theme=dark] .btn.primary{color:#11141b;background:var(--accent);border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.06)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.quiet{border-color:var(--line);color:var(--ink-soft)}.btn.quiet:hover{border-color:var(--accent);color:var(--accent-ink);background:0 0}.chip{border-radius:var(--r-sm);letter-spacing:.06em;border:1px solid #0000;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-flex}.chip i{font-style:normal}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.due{background:var(--due-soft);color:var(--due)}.chip.learn{background:var(--learn-soft);color:var(--learn)}.chip.next,.chip.ready{background:var(--accent-soft);color:var(--accent-ink)}.chip.locked{background:var(--surface2);color:var(--muted)}.chip.warn{background:var(--due-soft);color:var(--due)}.notice{border:var(--hairline);border-left:2px solid var(--accent);border-radius:var(--r-sm);background:var(--surface);max-width:720px;color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 14px;padding:12px 16px;font-size:14.5px;display:flex}.notice.err{border-left-color:var(--danger)}.notice.ok{border-left-color:var(--ok)}.notice button,.notice a{color:var(--accent-ink);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:13.5px;font-weight:600}.signin{max-width:400px}.signin form{flex-wrap:wrap;gap:8px;margin:10px 0 8px;display:flex}.signin .captcha{flex:100%}.signin input[type=email]{font:500 14px var(--sans);color:var(--ink);background:var(--surface2);border:var(--hairline);border-radius:var(--r-sm);flex:1;padding:9px 12px}.signin input[type=email]:focus{outline:1px solid var(--accent);border-color:var(--accent)}.signin .or{color:var(--muted);letter-spacing:.14em;align-items:center;gap:10px;margin:14px 0;font-size:11px;font-weight:700;display:flex}.signin .or:before,.signin .or:after{content:"";border-top:var(--hairline);flex:1}.oauth-row{flex-wrap:wrap;gap:10px;display:flex}.oauth-row .btn{text-align:center;white-space:nowrap;flex:160px}.signin .fine,.card .fine{color:var(--muted);margin-top:10px;font-size:13px}.study-shell{grid-template-columns:304px 1fr;height:100dvh;display:grid;overflow:hidden}.sidebar{background:var(--surface);border-right:var(--hairline);z-index:1;flex-direction:column;min-width:0;display:flex;position:relative;overflow-y:auto}.sidebar .brand{color:var(--accent-ink);align-items:center;gap:11px;padding:22px 20px 14px;text-decoration:none;display:flex}.sidebar .brand svg{flex-shrink:0}.sidebar .brand b{font-family:var(--display);letter-spacing:.01em;color:var(--ink);font-size:19px;font-weight:600;display:block}.sidebar .brand small{color:var(--muted);letter-spacing:.02em;font-size:11px}.mainnav{flex-direction:column;gap:1px;padding:0 12px;display:flex}.mainnav button{border-radius:var(--r-sm);text-align:left;color:var(--ink-soft);cursor:pointer;letter-spacing:.01em;background:0 0;border:0;border-left:2px solid #0000;padding:8px 10px;font-size:14.5px;font-weight:600}.mainnav button.active{color:var(--accent-ink);border-left-color:var(--accent)}.mainnav button:hover{color:var(--ink)}.course-head{padding:20px 20px 6px}.course-head small{letter-spacing:.14em;color:var(--muted);font-size:10.5px;font-weight:700}.course-head b{-webkit-line-clamp:2;overflow-wrap:anywhere;font-family:var(--display);-webkit-box-orient:vertical;margin-top:4px;font-size:15.5px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.renamebtn{color:var(--muted);font:500 12px var(--sans);cursor:pointer;background:0 0;border:0;margin-top:4px;padding:0}.renamebtn:hover{color:var(--accent-ink);text-decoration:underline}.rename{margin-top:4px}.rename input{border:var(--hairline);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);font:600 14px var(--display);padding:6px 8px}.rename input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rename-row{gap:6px;margin-top:6px;display:flex}.rename-row button{border:var(--hairline);border-radius:var(--r-sm);background:var(--surface2);color:var(--accent-ink);font:600 12.5px var(--sans);cursor:pointer;flex:1;padding:5px 8px}.rename-row button:hover:not(:disabled){border-color:var(--accent)}.rename-row button:disabled{opacity:.6;cursor:default}.rename-cancel{color:var(--muted)!important}.rename-err{color:var(--danger);margin:6px 0 0;font-size:12.5px}.tutor-tip{border:var(--hairline);border-left:3px solid var(--accent);border-radius:var(--r-sm);background:var(--surface2);margin-top:18px;padding:12px 14px}.tutor-tip p{color:var(--ink-soft);margin:0 0 10px;font-size:14.5px;line-height:1.5}.tutor-tip-acts{flex-wrap:wrap;gap:8px;display:flex}.tutor-tip-done{color:var(--muted);margin:14px 0 0;font-size:13.5px;line-height:1.5}.rsummary .tutor-tip{text-align:left;margin:18px 0}.fit{border:var(--hairline);border-radius:var(--r-sm);background:var(--surface2);margin-top:8px;padding:10px}.fit label{margin-bottom:8px;display:block}.fit label span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:11px;font-weight:700;display:block}.fit select{border:var(--hairline);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);font:500 12.5px var(--sans);padding:5px 6px}.fit-note{color:var(--muted);margin:0 0 8px;font-size:11.5px;line-height:1.4}.fit-check{align-items:flex-start;gap:6px;margin-bottom:0!important;display:flex!important}.fit-check input{flex-shrink:0;margin-top:2px}.fit-check span{text-transform:none!important;letter-spacing:0!important;color:var(--ink-soft)!important;margin-bottom:0!important;font-size:12px!important;font-weight:500!important}.course-head select,.anki-pick{width:100%;font:600 13px var(--sans);color:var(--ink);background:var(--surface2);border:var(--hairline);border-radius:var(--r-sm);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2382796a' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;margin-top:6px;padding:7px 26px 7px 9px;display:block}[data-theme=dark] .course-head select,[data-theme=dark] .anki-pick{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237c7a6f' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}.anki-pick{max-width:340px;margin:6px 0 12px}.concepts{flex:1;padding:8px 12px 12px}.crow{border-radius:var(--r-sm);text-align:left;cursor:pointer;width:100%;color:var(--ink-soft);background:0 0;border:0;align-items:center;gap:10px;padding:7px 8px;font-size:14px;line-height:1.35;display:flex}.crow:hover{background:var(--surface2)}.crow.active{background:var(--accent-soft);color:var(--accent-ink)}.cnum{font-family:var(--mono);color:var(--muted);font-size:10px}.ctitle{flex:1;min-width:0}.cicon{font-size:11px}.crow.ok .cicon{color:var(--ok)}.crow.due .cicon{color:var(--due)}.crow.learn .cicon{color:var(--learn)}.crow.next .cicon{color:var(--accent)}.crow.locked{opacity:.5}.cgroup{margin-bottom:2px}.cgroup-head{text-align:left;cursor:pointer;width:100%;color:var(--ink);border-radius:var(--r-sm);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:8px;padding:8px;font-size:11px;font-weight:700;display:flex}.cgroup-head:hover{background:var(--surface2)}.cg-caret{color:var(--accent-ink);flex-shrink:0;width:10px}.cg-title{flex:1;min-width:0}.cg-count{font-family:var(--mono);color:var(--muted);letter-spacing:0;font-size:10px;font-weight:600}.cgroup .crow{padding-left:22px}.side-foot{border-top:var(--hairline);flex-direction:column;gap:8px;padding:14px;display:flex}.side-foot .row{gap:8px;display:flex}.side-foot button,.side-foot a.footlink{border:var(--hairline);background:var(--surface);color:var(--ink-soft);border-radius:var(--r-sm);cursor:pointer;text-align:center;flex:1;padding:7px 8px;font-size:13px;font-weight:600;text-decoration:none}.side-foot button:hover,.side-foot a.footlink:hover{border-color:var(--accent);color:var(--accent-ink)}.side-foot .who{color:var(--muted);align-items:center;gap:8px;min-width:0;font-size:11px;display:flex}.side-foot .who-mail{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.who-pic{object-fit:cover;border:1px solid var(--accent);border-radius:50%;flex:none;width:22px;height:22px}.who-initial{background:var(--accent-soft);color:var(--accent-ink);font-family:var(--display);justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.side-profile{position:relative}.who-btn{border:var(--hairline);border-radius:var(--r-sm);cursor:pointer;width:100%;min-width:0;color:var(--muted);font-family:var(--sans);background:0 0;align-items:center;gap:8px;padding:6px 8px;font-size:11px;display:flex}.who-btn:hover{border-color:var(--accent);color:var(--ink-soft)}.who-caret{flex:none;margin-left:auto}.side-menu{background:var(--surface);border:var(--hairline);border-radius:var(--r);z-index:45;flex-direction:column;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;right:0;box-shadow:0 -8px 28px #211d1624}[data-theme=dark] .side-menu{box-shadow:0 -8px 28px #00000080}.side-menu form{display:contents}.side-foot .side-menu a,.side-foot .side-menu button{text-align:left;border-radius:var(--r-sm);width:100%;font-family:var(--sans);color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:8px 10px;font-size:13.5px;font-weight:600;text-decoration:none;display:block}.side-foot .side-menu a:hover,.side-foot .side-menu button:hover{background:var(--surface2);color:var(--ink)}.sync-note{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.sync-note.err{color:var(--due)}.sync-note.ok{color:var(--ok)}.study-main{scrollbar-gutter:stable;padding:42px clamp(24px, 6vw, 72px) calc(96px + env(safe-area-inset-bottom));z-index:1;flex-direction:column;align-items:center;min-width:0;display:flex;position:relative;overflow-y:auto}:root{--measure:760px;--lesson-measure:68ch}:root[data-width=wide]{--measure:100%;--lesson-measure:100%}.study-main>*{width:100%;max-width:var(--measure)}.study-main>.lesson{max-width:var(--lesson-measure)}.chiron-runner{margin:15px 0 22px}.chiron-runner [hidden]{display:none!important}.chiron-runner>pre{border-radius:0 0 var(--r) var(--r);border-top:0;margin:0}.run-bar{background:var(--surface);border:var(--hairline);border-radius:var(--r) var(--r) 0 0;font-family:var(--sans);border-bottom:0;align-items:center;gap:10px;padding:7px 10px 7px 14px;display:flex}.run-k{letter-spacing:.14em;color:var(--muted);font-size:10.5px;font-weight:700}.run-status{color:var(--muted);margin-left:auto;font-size:13px;font-style:italic}.run-time{font-family:var(--mono);color:var(--muted);font-size:11px}.run-status:empty+.run-time{margin-left:auto}.run-bar .btn{padding:5px 14px;font-size:13.5px}.run-bar .run-stop{border-color:var(--danger);color:var(--danger)}.run-bar .run-stop:hover{background:color-mix(in srgb, var(--danger) 10%, transparent)}.rlink{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px;font-size:13px}.rlink:hover{color:var(--accent-ink)}.run-editor{border:var(--hairline);border-radius:0 0 var(--r) var(--r);background:var(--surface2);border-top:0;overflow:hidden}.run-editor .cm-editor{max-height:420px}.run-editor .cm-scroller{overflow:auto}.run-out{border:var(--hairline);border-top:1px dashed var(--line);border-radius:0 0 var(--r) var(--r);background:var(--surface);font-family:var(--sans);margin-top:-1px}.run-out .ro-sec{padding:10px 14px 12px}.run-out .ro-sec+.ro-sec{border-top:var(--hairline)}.run-out .cl.err{color:var(--danger)}.run-out .cl.ok{color:var(--ok)}.ro-body{background:var(--surface2);border:var(--hairline);border-radius:var(--r-sm);font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;padding:10px 12px;font-size:13.5px;line-height:1.6}.ro-err{color:var(--danger)}.ro-warn{color:var(--due)}.ro-quiet{color:var(--muted)}.ro-full{margin-top:8px}.ro-full summary{cursor:pointer;color:var(--muted);font-size:13px}.ro-full summary:hover{color:var(--accent-ink)}.ro-case{align-items:baseline;gap:9px;padding:5px 2px;font-size:14px;display:flex}.ro-case span{flex-shrink:0;font-weight:700}.ro-case.pass span{color:var(--ok)}.ro-case.fail span{color:var(--danger)}.ro-case code{font-family:var(--mono);background:0 0;padding:0;font-size:13px}.ro-case small{color:var(--muted);font-family:var(--mono);font-size:11px}.run-tests-src{font-family:var(--sans);color:var(--muted);margin:-14px 0 22px;font-size:13.5px}.run-tests-src summary{cursor:pointer;padding:2px 0}.run-tests-src summary:hover{color:var(--accent-ink)}.run-tests-src pre{margin:6px 0 0}.section-flash{border-top:1px dashed var(--line);margin:22px 0 0;padding-top:16px}.section-flash .linkbtn{cursor:pointer;color:var(--accent-ink);font:600 15px var(--sans);background:0 0;border:0;padding:0}.section-flash .linkbtn:hover{color:var(--accent)}.revise{border-top:1px dashed var(--line);margin:26px 0 0;padding-top:16px}.revise .k{color:var(--accent-ink);margin-bottom:6px}.revise textarea{resize:vertical;margin-bottom:8px}.revise .linkbtn{cursor:pointer;color:var(--muted);font:500 13px var(--sans);background:0 0;border:0;padding:0}.revise .linkbtn:hover{color:var(--accent-ink)}.lesson-nav{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin:26px 0 8px;padding-top:16px;display:flex}.lesson-nav .linkbtn{text-align:left;cursor:pointer;color:var(--accent-ink);font:600 15px var(--sans);background:0 0;border:0;padding:0}.lesson-nav .linkbtn small{color:var(--muted);margin-top:2px;font-weight:400;display:block}.lesson-nav .linkbtn.quiet{color:var(--muted);font-size:14px;font-weight:500}.lesson-nav .linkbtn:hover{color:var(--accent)}.lesson-nav-done{color:var(--muted);font-size:15px;font-family:var(--serif)}.card.arrival{border-color:var(--accent)}.card.sketching{border-top:2px solid var(--accent)}.skel-rows{gap:8px;margin-top:4px;display:grid}.skel-rows span{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--surface2) 0%, var(--accent-soft) 50%, var(--surface2) 100%);background-size:200% 100%;height:12px;animation:1.4s ease-in-out infinite skel-shimmer;display:block}.skel-rows span:first-child{width:82%}.skel-rows span:nth-child(2){width:64%}.skel-rows span:nth-child(3){width:71%}.skel-rows span:nth-child(4){width:48%}@keyframes skel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.rsummary .tomorrow{color:var(--accent-ink);font-weight:600}.gen-input{box-sizing:border-box;border:var(--hairline);border-radius:var(--r-sm);background:var(--surface2);width:100%;color:var(--ink);font:500 14px var(--sans);margin:4px 0 12px;padding:10px 12px;display:block}.gen-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.gen-interview{margin-top:4px}.gi-progress{background:var(--surface2);border-radius:999px;height:6px;margin:2px 0 12px;overflow:hidden}.gi-progress span{background:var(--accent);border-radius:999px;height:100%;transition:width .32s ease-out;display:block}.gen-progress{margin-top:14px}.gen-progress-track{background:var(--surface2);border-radius:999px;height:6px;overflow:hidden}.gen-progress-track span{background:var(--accent);border-radius:999px;height:100%;transition:width .32s ease-out;display:block}.gen-progress-stage{color:var(--ink-soft);margin:8px 0 0;font-size:13.5px}.gi-step{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10.5px;font-weight:700}.gi-optional{color:var(--muted);letter-spacing:.04em;text-transform:none;font-weight:600}.gi-q{font-family:var(--display);color:var(--ink);margin:6px 0 4px;font-size:19px;font-weight:600}.gi-help{color:var(--ink-soft);margin:0 0 12px;font-size:14px;line-height:1.5}.gi-text{resize:vertical;min-height:76px;margin-bottom:4px;line-height:1.5}.gi-choices{flex-direction:column;gap:8px;margin-bottom:4px;display:flex}.gi-choice{text-align:left;border:var(--hairline);background:var(--surface);color:var(--ink);border-radius:var(--r-sm);font:500 14px var(--sans);cursor:pointer;padding:11px 14px;transition:border-color .12s ease-out,background .12s ease-out}.gi-choice:hover{border-color:var(--accent)}.gi-choice.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.gi-time{margin-bottom:4px}.gi-unit{border:var(--hairline);border-radius:var(--r-sm);margin-bottom:16px;display:inline-flex;overflow:hidden}.gi-unit-btn{background:var(--surface);color:var(--ink-soft);font:600 12.5px var(--sans);cursor:pointer;border:0;padding:7px 14px}.gi-unit-btn+.gi-unit-btn{border-left:var(--hairline)}.gi-unit-btn.on{background:var(--accent-soft);color:var(--accent-ink)}.gi-range{width:100%;accent-color:var(--accent);cursor:pointer}.gi-timeval{color:var(--ink-soft);margin-top:10px;font-size:15px}.gi-timeval strong{font-family:var(--display);color:var(--accent-ink);font-size:22px;font-weight:600}.gi-build{text-align:center;width:100%;margin-top:12px;display:block}.gi-tailor{text-align:center;border:1px dashed var(--line);width:100%;color:var(--ink-soft);border-radius:var(--r-sm);font:600 13px var(--sans);cursor:pointer;background:0 0;margin-top:10px;padding:10px 12px;display:block}.gi-tailor:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.gi-tailor:disabled{opacity:.5;cursor:default}.gi-nav{justify-content:space-between;align-items:center;gap:8px;margin-top:14px;display:flex}.gi-skip{color:var(--muted);font:500 12.5px var(--sans);cursor:pointer;background:0 0;border:0;margin:12px auto 0;display:block}.gi-skip:hover{color:var(--accent-ink)}.gi-err{color:var(--danger);margin:10px 0 0;font-size:13.5px}.newcourse{border:var(--hairline);background:var(--surface2);width:100%;color:var(--accent-ink);border-radius:var(--r-sm);cursor:pointer;margin-top:8px;padding:7px 9px;font-size:13.5px;font-weight:600}.newcourse:hover{border-color:var(--accent)}.newcourse:disabled{opacity:.6;cursor:default;color:var(--muted)}.newcourse:disabled:hover{border-color:var(--line)}.gencard{background:var(--surface);border:var(--hairline);border-radius:var(--r);width:min(520px,100%);padding:20px 24px 24px;box-shadow:0 1px #211d160a,0 12px 40px #211d161a}[data-theme=dark] .gencard{box-shadow:0 12px 48px #00000080}.genh{font-family:var(--display);margin:6px 0 8px;font-size:22px;font-weight:600}.gensub{color:var(--ink-soft);margin:0 0 14px;font-size:14.5px;line-height:1.5}.design-thread{flex-direction:column;gap:8px;max-height:34vh;margin:0 0 12px;padding:2px;display:flex;overflow-y:auto}.design-msg{border-radius:12px;max-width:85%;padding:9px 13px;font-size:15px;line-height:1.5}.design-msg.tutor{background:var(--surface2);color:var(--ink);border-bottom-left-radius:3px;align-self:flex-start}.design-msg.you{background:var(--accent-soft);color:var(--accent-ink);border-bottom-right-radius:3px;align-self:flex-end}.design-typing{color:var(--muted);letter-spacing:.12em}.design-skip{color:var(--muted);font:500 12.5px var(--sans);cursor:pointer;background:0 0;border:0;margin:10px auto 0;display:block}.design-skip:hover{color:var(--accent-ink)}.design-brief{border:var(--hairline);border-top:2px solid var(--accent);border-radius:var(--r);margin-top:4px;padding:14px 16px}.design-brief .k{color:var(--accent-ink)}.design-topic{font-family:var(--display);color:var(--ink);margin:6px 0 8px;font-size:18px;font-weight:600}.design-tags{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.design-tags span{letter-spacing:.02em;color:var(--ink-soft);background:var(--surface2);border-radius:var(--r-sm);padding:3px 8px;font-size:11px;font-weight:600}.page-head h1{font-family:var(--display);letter-spacing:-.01em;margin:0 0 6px;font-size:30px;font-weight:600}.page-head .sub{color:var(--muted);margin:0 0 28px;font-size:14.5px}.lesson{max-width:66ch;font-family:var(--serif);font-size:19px;line-height:1.58}.lesson .kicker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lesson .mins{letter-spacing:.02em;font-weight:600}.verified{color:var(--ok);letter-spacing:.1em;font-weight:700}.verified.stale{color:var(--due)}.lesson h1{font-family:var(--display);letter-spacing:-.01em;margin:12px 0 20px;font-size:31px;font-weight:600;line-height:1.15}.lesson h2{font-family:var(--display);margin:38px 0 12px;font-size:21px;font-weight:600}.lesson p{margin:0 0 15px}.lesson code{font-family:var(--mono);background:var(--surface2);border-radius:var(--r-sm);padding:1.5px 5px;font-size:.8em}.lesson pre{background:var(--surface2);border:var(--hairline);border-radius:var(--r);padding:14px 16px;font-size:14.5px;line-height:1.6;overflow-x:auto}.lesson pre code{background:0 0;padding:0}.lesson blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin:0 0 15px;padding:2px 0 2px 18px;font-style:italic}sup.src{font-family:var(--mono);color:var(--accent-ink);font-size:.58em}.callout{border-radius:var(--r);border:var(--hairline);margin:22px 0;padding:16px 18px;font-size:17px}.callout .cl{margin-bottom:8px}.callout p:last-child{margin-bottom:0}.callout.try{background:var(--due-soft);border-color:#0000}.callout.try .cl{color:var(--due)}.callout.ana{background:var(--accent-soft);border-color:#0000}.callout.ana .cl{color:var(--accent-ink)}.callout.lab{background:var(--surface)}.banner.lock{background:var(--surface2);border:1px dashed var(--line);border-radius:var(--r-sm);font-family:var(--sans);color:var(--ink-soft);margin-bottom:18px;padding:10px 14px;font-size:14px}.card.lockin{font-family:var(--sans);border-top:2px solid var(--accent);margin-top:34px}.card.lockin.done{border-top-color:var(--ok)}.overlay{background:color-mix(in srgb, var(--bg) 62%, transparent);z-index:60;padding:calc(18px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rcard{background:var(--surface);border:var(--hairline);border-radius:var(--r);width:min(660px,100%);max-height:92vh;padding:20px 24px 24px;overflow-y:auto;box-shadow:0 1px #211d160a,0 12px 40px #211d161a}[data-theme=dark] .rcard{box-shadow:0 12px 48px #00000080}.rtop{align-items:center;gap:12px;margin-bottom:12px;display:flex}.rmode{letter-spacing:.14em;color:var(--accent-ink);border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:var(--r-sm);padding:3px 8px;font-size:10px;font-weight:700}.rprog{color:var(--muted);font-size:13px;font-family:var(--mono);margin-left:auto}.x{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:15px}.rconcept{color:var(--muted);letter-spacing:.02em;margin:14px 0 4px;font-size:13px;font-weight:600}.rconcept .drill{color:var(--learn)}.rconcept .itag{color:var(--accent-ink)}.rconcept .ctag{color:var(--accent-ink);font-weight:700}.rconcept .stale{color:var(--due);font-weight:700}.rq{font-family:var(--serif);margin:4px 0 16px;font-size:19px;line-height:1.58}.rq p{margin:0 0 8px}.rq code,.ra code{font-family:var(--mono);background:var(--surface2);border-radius:var(--r-sm);padding:1.5px 5px;font-size:.8em}.rq pre,.ra pre{background:var(--surface2);border:var(--hairline);border-radius:var(--r);padding:12px 14px;font-size:14px;line-height:1.6;overflow-x:auto}.rq pre code,.ra pre code{background:0 0;padding:0;font-size:14px}.rconf p{color:var(--ink-soft);font-size:14.5px}.conf{border:var(--hairline);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:var(--r-sm);margin-right:8px;padding:9px 16px;font-size:14.5px;font-weight:600;transition:border-color .12s ease-out}.conf:hover{border-color:var(--accent);color:var(--accent-ink)}.conf:disabled{opacity:.45;cursor:not-allowed}.rconf .btn.primary.conf{margin-top:4px}.ra{background:var(--ok-soft);border-radius:var(--r);font-family:var(--serif);padding:14px 16px;font-size:16.5px;line-height:1.6}.ra .cl{color:var(--ok);margin-bottom:6px}.ra p{margin:0 0 8px}.ra p:last-child{margin:0}.ra.wrong{background:var(--due-soft)}.ra.wrong .cl{color:var(--due)}.ra pre{background:var(--surface)}.yours{background:var(--surface2);border-radius:var(--r);margin-bottom:10px;padding:12px 16px}.yours .cl{margin-bottom:6px}.yours pre{font-family:var(--serif);white-space:pre-wrap;background:0 0;border:0;margin:0;padding:0;font-size:15.5px}.rrate{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.rate{border:var(--hairline);background:var(--surface);border-radius:var(--r-sm);cursor:pointer;text-align:center;color:var(--ink);padding:9px 6px;transition:border-color .12s ease-out}.rate b{font-size:14px;font-weight:600;display:block}.rate small{color:var(--muted);margin-top:2px;font-size:10px;line-height:1.2;display:block}.rate.r1:hover{border-color:var(--danger);color:var(--danger)}.rate.r2:hover{border-color:var(--due);color:var(--due)}.rate.r3:hover{border-color:var(--ok);color:var(--ok)}.rate.r4:hover{border-color:var(--learn);color:var(--learn)}.rate.suggest{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.rnote{color:var(--muted);margin:10px 0 0;font-size:13px}.rate-note{color:var(--muted);text-align:center;margin:8px 2px 0;font-size:12.5px}.tutor{margin-top:12px}.tutor-btn{border:var(--hairline);background:var(--surface);width:100%;color:var(--accent-ink);border-radius:var(--r-sm);cursor:pointer;padding:9px 12px;font-size:14px;font-weight:600}.tutor-btn:hover{border-color:var(--accent)}.tutor-btn:disabled{opacity:.5;cursor:not-allowed}.tutor-retype{gap:8px;display:grid}.tutor-retype textarea{width:100%;font-family:var(--serif);background:var(--surface2);color:var(--ink);border:var(--hairline);border-radius:var(--r-sm);resize:vertical;padding:10px 12px;font-size:15.5px;line-height:1.5}.tutor-retype textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}.tutor-loading,.tutor-err{color:var(--muted);margin:8px 2px 0;font-size:13.5px}.tutor-verdict{background:var(--accent-soft);border-radius:var(--r);padding:12px 14px;font-size:15px;line-height:1.55}.tutor-verdict .cl{color:var(--accent-ink);margin-bottom:4px}.tutor-verdict p{margin:0}.rsummary{text-align:center;padding:18px 0 8px}.rsummary h2{font-family:var(--display);margin:0 0 8px;font-weight:600}.rsummary .ledger{font-family:var(--mono);color:var(--ink-soft);margin:0 0 6px;font-size:13.5px}.rsummary p{color:var(--ink-soft);margin:0 0 18px;font-size:15px}.fc-group{max-width:720px;margin-bottom:18px}.fc-course-head{text-align:left;cursor:pointer;border:0;border-bottom:2px solid var(--accent);width:100%;color:var(--ink);background:0 0;align-items:baseline;gap:12px;margin:6px 0 10px;padding:4px 2px 8px;display:flex}.fc-course-head .fc-c-caret{color:var(--accent-ink);flex-shrink:0;align-self:center;width:12px;font-size:13px}.fc-course-head .fc-c-title{font-family:var(--display);flex:1;font-size:19px;font-weight:600}.fc-course-head .fc-c-count{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:600}.fc-course-head:hover .fc-c-title{color:var(--accent-ink)}.fc-group:not(.open) .fc-course-head{margin-bottom:6px}.fc-sections{gap:8px;max-width:720px;display:grid}.fc-section.fc-all{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.fc-section.fc-all .fc-s-num{color:var(--accent-ink)}.fc-section{text-align:left;cursor:pointer;background:var(--surface);border:var(--hairline);border-radius:var(--r);width:100%;color:var(--ink);align-items:center;gap:14px;padding:14px 18px;transition:border-color .12s ease-out;display:flex}.fc-section:hover{border-color:var(--accent)}.fc-section .fc-s-num{font-family:var(--mono);color:var(--muted);font-size:13px}.fc-section .fc-s-title{font-family:var(--display);flex:1;font-size:17px;font-weight:600}.fc-section .fc-s-count{color:var(--accent-ink);white-space:nowrap;font-size:13.5px;font-weight:600}.flashcard{perspective:1400px;cursor:pointer;outline:none;margin:10px 0 16px}.flashcard:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r)}.flashcard .fc-inner{transform-style:preserve-3d;min-height:220px;transition:transform .55s cubic-bezier(.2,.7,.2,1);position:relative}.flashcard.flipped .fc-inner{transform:rotateY(180deg)}.fc-face{backface-visibility:hidden;text-align:center;border:var(--hairline);border-radius:var(--r);background:var(--surface2);flex-direction:column;justify-content:center;align-items:center;padding:26px 24px 30px;display:flex;position:absolute;inset:0;overflow-y:auto}.fc-front{border-top:2px solid var(--accent)}.fc-back{background:var(--ok-soft);border-top:2px solid var(--ok);transform:rotateY(180deg)}.fc-body{font-family:var(--serif);font-size:19px;line-height:1.55}.fc-body pre{text-align:left}.fc-hint{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px;font-family:var(--sans);position:absolute;bottom:10px;left:0;right:0}.flashcard:hover .fc-front{border-color:var(--accent)}.fc-rate-q{text-align:center;color:var(--muted);margin:6px 0 8px;font-size:14px}.pz-label{margin-bottom:8px;display:block}.parsons{gap:12px;margin:4px 0 16px;display:grid}.pzone{border:1px dashed var(--line);border-radius:var(--r);gap:6px;padding:12px;display:grid}.pzone>*{min-width:0}.pzone.sol{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.pz-empty{color:var(--muted);padding:4px 2px;font-size:13.5px}.pz-empty.miss{color:var(--danger);font-weight:600}.pline{text-align:left;border:var(--hairline);background:var(--surface);width:100%;min-width:0;color:var(--ink);border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;transition:border-color .12s ease-out;display:flex}button.pline:hover{border-color:var(--accent)}.pline code{font-family:var(--mono);white-space:pre;background:0 0;flex:1;min-width:0;padding:0;font-size:13.5px;overflow-x:auto}.pline .pn{font-family:var(--mono);color:var(--muted);flex-shrink:0;min-width:14px;font-size:10.5px}.pline.static{cursor:default}.pline.hit{border-color:var(--ok);background:var(--ok-soft)}.pline.hit .pn{color:var(--ok);font-weight:700}.pline.miss{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.pline.miss .pn{color:var(--danger);font-weight:700}.predict{margin:4px 0 16px}.predict textarea,.predict-diff,.rq textarea{width:100%;font-family:var(--mono);font-size:14px;line-height:1.55}.predict textarea{background:var(--surface2);color:var(--ink);border:var(--hairline);border-radius:var(--r-sm);resize:vertical;padding:10px 12px}.predict textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}.predict-diff{border:var(--hairline);border-radius:var(--r);margin:4px 0 16px;font-size:13.5px;overflow:hidden}.dhead{background:var(--surface2);grid-template-columns:1fr 28px 1fr;padding:8px 12px;display:grid}.drow{border-top:var(--hairline);grid-template-columns:1fr 28px 1fr;align-items:center;padding:6px 12px;display:grid}.drow .dcell{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}.drow .dcell i{color:var(--muted);font-style:normal}.dmark{text-align:center;font-weight:700}.drow.hit .dmark{color:var(--ok)}.drow.miss{background:color-mix(in srgb, var(--danger) 7%, transparent)}.drow.miss .dmark{color:var(--danger)}.match{gap:8px;margin:4px 0 12px;display:grid}.mrow{text-align:left;border:var(--hairline);background:var(--surface);width:100%;color:var(--ink);border-radius:var(--r-sm);cursor:pointer;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);align-items:center;gap:8px;padding:9px 12px;transition:border-color .12s ease-out;display:grid}.match>.mrow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}button.mrow:hover,.mrow.armed{border-color:var(--accent)}.mrow.filled{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.mrow.static{cursor:default}.mleft{font-family:var(--mono);font-size:13.5px}.mslot{color:var(--ink-soft);font-size:14px}.mslot i{color:var(--muted);font-style:normal}.mmark{text-align:center;font-weight:700}.mrow.hit{border-color:var(--ok);background:var(--ok-soft)}.mrow.hit .mmark{color:var(--ok)}.mrow.miss{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.mrow.miss .mmark{color:var(--danger)}.mright{font-size:14px}.mright .mempty{color:var(--muted);font-style:normal}.mfix{color:var(--ok);font-style:normal;font-weight:600}.mtray{border:1px dashed var(--line);border-radius:var(--r);flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:12px;display:flex}.mtray .pz-label{flex-basis:100%}.mchip,.cchip{border:var(--hairline);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:6px 13px;font-size:13.5px;transition:border-color .12s ease-out,background .12s ease-out,color .12s ease-out}.mchip:hover,.cchip:hover{border-color:var(--accent)}.mchip.picked{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.cat{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:4px 0 12px;display:grid}.cbucket{border:1px dashed var(--line);border-radius:var(--r);text-align:left;background:var(--surface);color:var(--ink);cursor:pointer;flex-direction:column;align-items:flex-start;gap:7px;padding:12px;transition:border-color .12s ease-out;display:flex}.cbucket:not(.static):hover,.cbucket.armed{border-color:var(--accent);border-style:solid}.cbucket.static{cursor:default}.cbucket .cchip{cursor:pointer}.cchip.static{cursor:default;border-radius:var(--r-sm);align-items:center;gap:7px;display:flex}.cchip.static.hit{border-color:var(--ok);background:var(--ok-soft)}.cchip.static.miss{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.cchip.static .mmark{font-weight:700}.cchip.static.hit .mmark{color:var(--ok)}.cchip.static.miss .mmark{color:var(--danger)}.cempty{color:var(--muted);font-size:13px}.choice{gap:8px;margin:4px 0 12px;display:grid}.copt{text-align:left;border:var(--hairline);background:var(--surface);width:100%;color:var(--ink);border-radius:var(--r-sm);cursor:pointer;align-items:flex-start;gap:11px;padding:11px 13px;transition:border-color .12s ease-out;display:flex}button.copt:hover{border-color:var(--accent)}.copt.on{border-color:var(--accent);background:var(--accent-soft)}.copt.static{cursor:default}.cbox{border:1.5px solid var(--line);border-radius:var(--r);width:18px;height:18px;color:var(--accent-ink);flex-shrink:0;place-items:center;margin-top:1px;font-size:13px;display:grid}.cbox.radio{border-radius:999px}.copt.on .cbox{border-color:var(--accent)}.cmark{text-align:center;flex-shrink:0;width:18px;margin-top:1px;font-weight:700}.clabel{flex:1;min-width:0;font-size:15px;line-height:1.5}.crat{color:var(--muted);font-style:normal}.copt.right{border-color:var(--ok);background:var(--ok-soft)}.copt.right .cmark{color:var(--ok)}.copt.wrongpick{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.copt.wrongpick .cmark{color:var(--danger)}.mermaid-diagram{text-align:center;background:var(--surface);border:var(--hairline);border-radius:var(--r);margin:18px 0;padding:16px;overflow-x:auto}.mermaid-diagram svg{max-width:100%;height:auto}.mermaid-diagram .edgeLabel,.mermaid-diagram .edgeLabel p,.mermaid-diagram .edgeLabel foreignObject div{color:var(--ink);background:var(--surface);fill:var(--ink)}.mermaid-diagram .edgeLabel rect{fill:var(--surface)}.mermaid-diagram .nodeLabel{color:var(--ink)}pre:has(>code.language-mermaid){opacity:.6}.tiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;max-width:720px;margin-bottom:20px;display:grid}.tile{background:var(--surface);border:var(--hairline);border-radius:var(--r);padding:14px 16px}.tile b{font-family:var(--display);font-size:26px;font-weight:600;display:block}.tile span{color:var(--muted);letter-spacing:.08em;font-size:11px;font-weight:700}.tile.ok b{color:var(--ok)}.tile.learn b{color:var(--learn)}.tile.due b{color:var(--due)}.stats{gap:8px;max-width:720px;display:grid}.srow{background:var(--surface);border:var(--hairline);border-radius:var(--r-sm);padding:12px 16px}.sname{align-items:center;gap:10px;margin-bottom:6px;font-size:15px;display:flex}.sname b{font-family:var(--display);font-weight:600}.duetag{color:var(--due);font-size:11px;font-weight:700}.smeta{color:var(--muted);margin-bottom:7px;font-size:11px}.bar{background:var(--surface2);border-radius:999px;height:6px;overflow:hidden}.bar span{background:var(--accent);border-radius:999px;height:100%;transition:width .32s ease-out;display:block}.bar.ok span{background:var(--ok)}.bar.warn span{background:var(--due)}.foot-note{color:var(--muted);max-width:720px;font-size:13px}footer.site{border-top:var(--hairline);background:var(--surface);z-index:1;flex-wrap:wrap;align-items:baseline;gap:18px;padding:22px clamp(20px,5vw,56px) 34px;display:flex;position:relative}footer.site .own{color:var(--muted);flex:300px;margin:0;font-size:13.5px}footer.site nav{gap:16px;display:flex}footer.site nav a{color:var(--ink-soft);font-size:13.5px;font-weight:600;text-decoration:none}footer.site nav a:hover{color:var(--accent-ink)}.legal{max-width:66ch;font-family:var(--serif);font-size:17.5px;line-height:1.62}.legal h2{font-family:var(--display);margin:30px 0 10px;font-size:20px;font-weight:600}.legal p{color:var(--ink-soft);margin:0 0 14px}.plan-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.plan-row b{font-family:var(--display);font-size:20px;font-weight:600}.kv{color:var(--ink-soft);grid-template-columns:max-content 1fr;gap:6px 18px;margin:12px 0 16px;font-size:14.5px;display:grid}.kv dt{color:var(--muted);font-weight:600}.kv dd{font-family:var(--mono);overflow-wrap:anywhere;margin:0;font-size:13.5px}.btnrow{flex-wrap:wrap;gap:10px;display:flex}.side-rail{right:calc(10px + env(safe-area-inset-right));z-index:20;background:var(--surface);border:var(--hairline);border-radius:999px;flex-direction:column;gap:2px;padding:5px;display:flex;position:fixed;top:50%;transform:translateY(-50%);box-shadow:0 4px 18px #211d161a}[data-theme=dark] .side-rail{box-shadow:0 4px 18px #0006}.side-rail button{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex}.side-rail button:hover{background:var(--surface2);color:var(--accent-ink)}.side-rail button.active{background:var(--accent-soft);color:var(--accent-ink)}.menu-btn,.nav-scrim{display:none}@media (max-width:900px){.study-shell{grid-template-columns:1fr}.sidebar{z-index:40;padding-bottom:env(safe-area-inset-bottom);transition:transform .18s ease-out;position:fixed;inset:0 26% 0 0;transform:translate(-102%)}.study-shell.nav-open .sidebar{transform:none;box-shadow:0 0 40px #00000040}.sidebar .brand{padding-top:58px}.menu-btn{z-index:50;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));border:var(--hairline);background:var(--surface);color:var(--ink);border-radius:var(--r-sm);cursor:pointer;min-width:38px;padding:7px 11px;font-size:16px;display:block;position:fixed}.nav-scrim{z-index:39;background:color-mix(in srgb, var(--ink) 18%, transparent);border:0;padding:0;display:block;position:fixed;inset:0}.study-main{padding-top:60px}.rrate{grid-template-columns:repeat(2,1fr)}.side-rail .rail-width{display:none}.side-rail,[data-theme=dark] .side-rail{box-shadow:none;background:color-mix(in srgb, var(--surface) 85%, transparent);border-color:#0000;right:4px}}@media (pointer:coarse){input:where([type=email],[type=text],[type=search]),textarea,select{font-size:16px!important}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{.study-shell{height:auto;display:block;overflow:visible}.study-main{padding:0;overflow:visible}.sidebar,.side-rail,.menu-btn,.nav-scrim,.side-menu,.overlay{display:none!important}body:before,body:after{display:none}}
