:root{--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-serif:"Newsreader", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-ui:"Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--paper:#f1eee4;--paper-2:#e8e4d6;--surface:#fbfaf5;--surface-2:#f6f3ea;--ink:#0e1a1b;--ink-2:#1c2b2c;--body:#2b3a3a;--muted:#586867;--muted-2:#8a958f;--rule:#dad6c6;--rule-soft:#e7e3d6;--white:#fff;--petrol:#08191c;--petrol-2:#0f262c;--petrol-line:#78dccd1a;--on-dark:#cfe2dd;--on-dark-dim:#7f9a95;--accent:#0c8f82;--accent-strong:#0a746a;--accent-deep:#064f49;--accent-soft:#d7ebe6;--accent-tint:#e6f1ec;--signal:#2fe0c6;--accent-light:#74d6c8;--crit:#bf2436;--crit-bright:#e23a48;--high:#c75522;--amber:#c98a12;--med:#9c7b2c;--low:#4a6b85;--ok:#1c7a52;--r-xs:3px;--r-sm:5px;--r:8px;--r-lg:12px;--shadow-sm:0 1px 2px #08191c0d, 0 1px 3px #08191c12;--shadow-md:0 6px 16px #08191c17, 0 2px 5px #08191c0f;--shadow-lg:0 22px 50px #08191c38;--maxw:1080px;--gap:96px;font-family:var(--font-serif);color:var(--body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--body);background-image:radial-gradient(120% 80% at 50% -10%,#0c8f820d,#0000 60%);background-attachment:fixed;margin:0;font-size:16px;line-height:1.6}::selection{background:var(--accent);color:#fff}body:before{content:"";pointer-events:none;z-index:1000;opacity:.02;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700}.serif-i{font-family:var(--font-serif);font-style:italic}.mono{font-family:var(--font-mono);letter-spacing:0}.tnum{font-variant-numeric:tabular-nums}h1,h2,h3{font-family:var(--font-display);color:var(--ink);letter-spacing:-.025em;margin:0 0 .4em;font-weight:700;line-height:1.08}h1{font-size:clamp(34px,4.8vw,54px);font-weight:800}h2{font-size:clamp(26px,3.3vw,38px)}h3{letter-spacing:-.018em;font-size:21px}p{margin:0 0 1rem}a{color:var(--accent-strong);text-decoration:none}a:hover{color:var(--accent-deep);text-underline-offset:2px;text-decoration:underline}.lede{font-family:var(--font-serif);color:var(--ink-2);letter-spacing:.005em;font-size:25px;font-style:italic;line-height:1.42}.muted{color:var(--muted)}.muted-2{color:var(--muted-2)}.small{font-size:13px}.error{color:var(--crit)}.eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong);align-items:center;gap:12px;margin-bottom:14px;font-size:12px;font-weight:600;display:flex}.eyebrow:before{content:"";background:currentColor;width:28px;height:2px;display:inline-block;box-shadow:5px 0 0 -.5px}.container{max-width:var(--maxw);margin:0 auto;padding:48px 28px 120px}.topbar{background:var(--petrol);color:var(--white);border-bottom:1px solid var(--accent);justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.topbar .brand{color:var(--white);flex-direction:column;line-height:1.1;display:flex}.topbar .brand:hover{text-decoration:none}.topbar .brand .wordmark{font-family:var(--font-mono);letter-spacing:.18em;font-size:18px;font-weight:700}.topbar .brand .tag{font-family:var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-light);font-size:10px}.topbar nav{align-items:center;gap:16px;display:flex}.topbar .who{font-family:var(--font-ui);letter-spacing:.08em;color:var(--accent-light);text-transform:uppercase;font-size:11px}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.stack>*+*{margin-top:14px}.backlink{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:20px;font-size:12px;display:inline-block}button,.btn{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:#07221f;cursor:pointer;box-shadow:var(--shadow-sm);padding:11px 19px;font-size:12.5px;font-weight:600;transition:background .15s,box-shadow .15s,transform 50ms,border-color .15s,color .15s}button:hover,.btn:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;box-shadow:var(--shadow-md)}button:active,.btn:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default;box-shadow:none}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--rule);box-shadow:var(--shadow-sm)}.btn-ghost:hover{background:var(--surface);border-color:var(--accent);color:var(--accent-deep)}.btn-danger{background:var(--crit);border-color:var(--crit);color:#fff}.btn-danger:hover{background:var(--crit-bright);border-color:var(--crit-bright);color:#fff}.link-btn{box-shadow:none;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.08em;background:0 0;border:none;padding:0;font-size:11.5px}.link-btn:hover{box-shadow:none;color:var(--accent-deep);background:0 0}form label{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;font-size:11.5px;font-weight:500;display:block}input,select,textarea{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-sm);width:100%;color:var(--ink);font-family:var(--font-ui);text-transform:none;letter-spacing:0;margin-top:7px;padding:11px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s,background .15s;display:block}textarea{resize:vertical;min-height:90px;line-height:1.6}input:focus,select:focus,textarea:focus{background:var(--white);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input::placeholder,textarea::placeholder{color:var(--muted-2)}.toggle{font-family:var(--font-ui);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.toggle input{width:auto;accent-color:var(--accent);margin:0}.auth-wrap{max-width:408px;margin:64px auto}.auth-wrap form{margin-top:24px}.auth-wrap button[type=submit]{width:100%;margin-top:4px}.auth-wrap .alt{color:var(--muted);margin-top:20px;font-size:14px}.pill{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:7px;padding:4px 11px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.pill.crit{color:var(--crit)}.pill.warn{color:var(--high)}.pill.info{color:var(--accent-strong)}.pill.ok{color:var(--ok)}.pill.neutral{color:var(--muted)}.pulse .dot{animation:1.6s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.badge{font-family:var(--font-ui);letter-spacing:.07em;text-transform:uppercase;background:var(--rule-soft);color:var(--muted);border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:500;display:inline-block}.badge-published{color:var(--ok);background:#d8ece1}.badge-draft{color:var(--med);background:#f1ead4}.badge-pending_review{color:var(--amber);background:#f6eccf}.badge-archived{background:var(--rule-soft);color:var(--muted-2)}.card-list{gap:16px;margin:28px 0 0;padding:0;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:22px 24px;transition:box-shadow .18s,transform .18s,border-color .18s;position:relative}.card:hover{box-shadow:var(--shadow-md);border-color:var(--accent-light)}.card h3{margin:0 0 6px}.card .meta{font-family:var(--font-ui);letter-spacing:.05em;color:var(--muted-2);text-transform:uppercase;font-size:11px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:24px 0;display:grid}.stat-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);padding:16px 18px;position:relative}.stat-card:before{content:"";border-top:1.5px solid var(--accent);border-right:1.5px solid var(--accent);width:9px;height:9px;position:absolute;top:8px;right:8px}.stat-card.alert{border-top:2px solid var(--crit)}.stat-card.alert:before{border-color:var(--crit)}.stat-card .k{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.stat-card .v{font-family:var(--font-display);color:var(--ink);letter-spacing:-.03em;font-size:40px;font-weight:800;line-height:1.1}.stat-card .hint{font-family:var(--font-ui);color:var(--muted-2);font-size:11px}.kv{border-top:1px solid var(--rule);grid-template-columns:200px 1fr;display:grid}.kv .k,.kv .v{border-bottom:1px solid var(--rule);padding:11px 0}.kv .k{font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px}.kv .v{color:var(--ink)}table{border-collapse:collapse;width:100%}th{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--rule);padding:11px 0;font-size:11px}td{border-bottom:1px solid var(--rule);padding:12px 0}.progress-bar{background:var(--paper-2);border:1px solid var(--rule);border-radius:999px;height:26px;margin:20px 0;position:relative;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--signal));height:100%;transition:width .4s}.progress-bar span{font-family:var(--font-ui);letter-spacing:.04em;color:var(--ink);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex;position:absolute;inset:0}.session-block{border-top:1px solid var(--rule);margin-top:40px;padding-top:24px}.theme-list{margin:12px 0 0;padding:0;list-style:none}.theme-list li{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;display:flex}.theme-list a{font-weight:600}.material{margin:36px 0}.material-html{font-family:var(--font-serif);color:#283636;font-size:18.5px;line-height:1.78}.material-html>:first-child{margin-top:0}.material-html h2{font-family:var(--font-display);color:var(--ink);border-bottom:2px solid var(--accent-soft);letter-spacing:-.025em;margin:0 0 20px;padding-bottom:12px;font-size:30px}.material-html h3{font-family:var(--font-display);color:var(--accent-deep);letter-spacing:-.015em;align-items:center;gap:11px;margin:34px 0 12px;font-size:21px;display:flex}.material-html h3:before{content:"";background:var(--accent);border-radius:999px;flex:none;width:5px;height:22px}.material-html p{margin:0 0 16px}.material-html strong{color:var(--ink);font-weight:600}.material-html em{color:var(--ink-2)}.material-html ul,.material-html ol{margin:0 0 18px;padding-left:24px}.material-html li{margin:8px 0;padding-left:4px}.material-html li::marker{color:var(--accent);font-weight:700}.material-html a{color:var(--accent-strong);text-underline-offset:2px;text-decoration:underline}.material-html blockquote{color:var(--ink-2);background:var(--accent-tint);border-left:3px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:24px 0;padding:16px 22px;font-style:italic}.material-html pre{font-family:var(--font-mono);background:var(--petrol);color:#d8efe9;border-radius:var(--r-sm);box-shadow:var(--shadow-sm);border:1px solid var(--petrol-2);padding:18px;font-size:14px;line-height:1.6;overflow-x:auto}.material-html pre code{color:inherit;background:0 0;padding:0}.material-html code{font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent-deep);border-radius:var(--r-xs);padding:2px 6px;font-size:.86em}.material-html table{margin:22px 0;font-size:16px}.material-html th{background:var(--accent-soft);color:var(--ink);border-bottom:2px solid var(--accent);padding:11px 14px}.material-html td{padding:11px 14px}.material-html pre.mermaid{font-family:var(--font-ui);background:var(--surface);color:inherit;border:1px solid var(--rule);border-radius:var(--r-sm);text-align:center;box-shadow:var(--shadow-sm);margin:24px 0;padding:22px}.material-html pre.mermaid svg{max-width:100%;height:auto}.pdf-frame{border:1px solid var(--rule);border-radius:var(--r-sm);width:100%;height:640px}.exercises ul{padding:0;list-style:none}.exercises li{border-bottom:1px solid var(--rule);padding:12px 0}.quiz{border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm);margin:24px 0;padding:26px 28px}.question{border-bottom:1px solid var(--rule);padding:20px 0}.question:last-of-type{border-bottom:none}.question .q-prompt{font-family:var(--font-serif);color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:600}.q-meta{font-family:var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--muted-2);margin-bottom:12px;font-size:11px}.option{cursor:pointer;text-transform:none;letter-spacing:0;font-family:var(--font-serif);color:var(--ink-2);border-radius:var(--r-sm);border:1px solid #0000;align-items:flex-start;gap:11px;margin:4px 0;padding:9px 12px;font-size:16px;transition:background .12s,border-color .12s;display:flex}.option:hover{background:var(--surface-2);border-color:var(--rule)}.option input{width:auto;accent-color:var(--accent);margin:4px 0 0}.quiz-result{border-radius:var(--r-sm);background:var(--surface-2);border-left:3px solid var(--ink);margin-top:18px;padding:18px 20px 4px}.quiz-result.passed{border-left-color:var(--ok);background:#e7f3eb}.quiz-result.failed{border-left-color:var(--crit);background:#f8e9eb}.sub-feedback{color:var(--muted);border-left:2px solid var(--rule);margin-top:6px;padding-left:12px;font-size:14px}.score-big{font-family:var(--font-display);letter-spacing:-.03em;font-size:48px;font-weight:800;line-height:1}.tutor{border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);max-height:560px;box-shadow:var(--shadow-sm);flex-direction:column;margin:24px 0;display:flex;overflow:hidden}.chat-log{flex-direction:column;flex:1;gap:16px;padding:22px 24px;display:flex;overflow-y:auto}.chat-empty{color:var(--muted-2);font-family:var(--font-serif);font-size:20px;font-style:italic}.msg{max-width:86%}.msg .who{font-family:var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);margin-bottom:4px;font-size:10px}.msg .body{font-family:var(--font-serif);white-space:pre-wrap;font-size:16px;line-height:1.6}.msg.user{text-align:right;align-self:flex-end}.msg.user .body{background:var(--accent-soft);color:var(--ink);border-radius:var(--r) var(--r) var(--r-xs) var(--r);text-align:left;padding:11px 15px;display:inline-block}.msg.assistant .body{color:var(--ink-2);white-space:normal}.msg.assistant .body>:first-child{margin-top:0}.msg.assistant .body>:last-child{margin-bottom:0}.msg.assistant .body p{margin:0 0 9px}.msg.assistant .body ul,.msg.assistant .body ol{margin:6px 0 9px;padding-left:20px}.msg.assistant .body li{margin:3px 0}.msg.assistant .body li::marker{color:var(--accent)}.msg.assistant .body strong{color:var(--ink);font-weight:600}.msg.assistant .body h1,.msg.assistant .body h2,.msg.assistant .body h3{margin:10px 0 6px;font-size:16px}.msg.assistant .body a{color:var(--accent-strong);text-decoration:underline}.msg.assistant .body code{font-family:var(--font-mono);background:var(--accent-soft);color:var(--accent-deep);border-radius:var(--r-xs);padding:1px 5px;font-size:.85em}.msg.assistant .body pre{background:var(--petrol);color:#d8efe9;border-radius:var(--r-sm);margin:8px 0;padding:12px 14px;overflow-x:auto}.msg.assistant .body pre code{color:inherit;background:0 0;padding:0;font-size:13px}.msg.assistant .body .cursor-blink{display:inline}.chat-input{border-top:1px solid var(--rule);background:var(--surface-2);gap:10px;padding:14px;display:flex}.chat-input textarea{min-height:44px;max-height:120px;margin:0}.chat-input button{white-space:nowrap;align-self:stretch}.cursor-blink:after{content:"▋";color:var(--accent);animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.shell{grid-template-columns:256px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--petrol);color:var(--on-dark);border-right:1px solid var(--petrol-line);background-image:repeating-linear-gradient(#0000 0 3px,#78dccd04 3px 4px);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar .brand{border-bottom:1px solid var(--petrol-line);padding:26px 22px 22px;display:block}.sidebar .brand:hover{text-decoration:none}.sidebar .brand .wordmark{font-family:var(--font-mono);letter-spacing:.16em;color:#fff;font-size:19px;font-weight:700;display:block}.sidebar .brand .wordmark .hl{color:var(--signal)}.sidebar .brand .tag{font-family:var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-light);margin-top:5px;font-size:10px;display:block}.nav{flex-direction:column;flex:1;gap:3px;padding:16px 12px;display:flex;overflow-y:auto}.nav .group{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-dim);align-items:center;gap:9px;padding:20px 13px 8px;font-size:11px;display:flex}.nav .group:after{content:"";background:var(--petrol-line);flex:1;height:1px}.nav a{border-radius:var(--r-sm);font-family:var(--font-ui);letter-spacing:-.005em;color:var(--on-dark);align-items:center;gap:12px;padding:11px 13px;font-size:15px;font-weight:500;transition:background .14s,color .14s;display:flex;position:relative}.nav a:hover{color:#fff;background:#78dccd12;text-decoration:none}.nav a:hover .ic{color:var(--signal)}.nav a.active{color:#fff;background:#2fe0c61a}.nav a.active:before{content:"";background:var(--signal);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-12px;transform:translateY(-50%);box-shadow:0 0 10px #2fe0c699}.nav a.active .ic{color:var(--signal)}.nav a .ic{width:20px;height:20px;color:var(--on-dark-dim);justify-content:center;align-items:center;transition:color .14s;display:inline-flex}.nav a .ic svg{width:19px;height:19px}.side-foot{border-top:1px solid var(--petrol-line);padding:14px}.side-foot .profile{align-items:center;gap:11px;padding:4px 4px 14px;display:flex}.side-foot .avatar{width:38px;height:38px;font-family:var(--font-ui);letter-spacing:.02em;color:#07221f;background:var(--accent-light);border:1px solid var(--signal);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.side-foot .who-name{flex-direction:column;min-width:0;line-height:1.3;display:flex}.side-foot .name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.side-foot .who{font-family:var(--font-ui);letter-spacing:.08em;color:var(--accent-light);text-transform:uppercase;font-size:10px}.side-foot .logout{width:100%;color:var(--on-dark);border-color:var(--petrol-line);box-shadow:none;background:#78dccd0d;justify-content:center;align-items:center;gap:9px;display:flex}.side-foot .logout:hover{color:#fff;border-color:var(--accent);background:#78dccd1f}.side-foot .logout .ic{display:inline-flex}.side-foot .logout .ic svg{width:16px;height:16px}.main{flex-direction:column;min-width:0;display:flex}.topbar2{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);background:#f1eee4d1;align-items:center;gap:14px;min-height:56px;padding:12px 28px;display:flex;position:sticky;top:0}.hamburger{background:var(--surface);border:1px solid var(--rule);color:var(--ink);padding:8px 11px;display:none}.content2{width:100%;max-width:none;margin:0 auto;padding:44px 48px 120px;animation:.5s cubic-bezier(.22,1,.36,1) both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.scrim{display:none}@media (width<=1100px){.content2{padding:40px 32px 110px}}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{z-index:60;width:256px;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;transform:translate(-100%)}.sidebar.open{transform:none}.hamburger{display:inline-flex}.scrim.show{z-index:50;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#08191c80;display:block;position:fixed;inset:0}.content2{padding:28px 20px 100px}}.breadcrumbs{font-family:var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.breadcrumbs a{color:var(--muted)}.breadcrumbs a:hover{color:var(--accent-strong)}.breadcrumbs .sep{color:var(--muted-2)}.breadcrumbs .cur{color:var(--ink)}.page-head{margin-bottom:32px}.page-head .row-between{align-items:center}.actions{flex-wrap:wrap;gap:10px;display:flex}.state{text-align:center;color:var(--muted);padding:72px 24px}.state .serif-i{font-family:var(--font-serif);color:var(--muted-2);margin-bottom:8px;font-size:22px;display:block}.spinner{border:2px solid var(--rule);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:0 auto 14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.state.err .serif-i{color:var(--crit)}.resume{background:var(--petrol);color:#fff;border-radius:var(--r);box-shadow:var(--shadow-md);background-image:radial-gradient(90% 140% at 100% 0,#2fe0c629,#0000 55%),repeating-linear-gradient(#0000 0 3px,#78dccd05 3px 4px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px;padding:34px 36px;display:flex;position:relative;overflow:hidden}.resume:before,.resume:after{content:"";pointer-events:none;width:16px;height:16px;position:absolute}.resume:before{border-top:2px solid var(--signal);border-left:2px solid var(--signal);top:14px;left:14px}.resume:after{border-bottom:2px solid var(--signal);border-right:2px solid var(--signal);bottom:14px;right:14px}.resume .eyebrow{color:var(--signal)}.resume h2{color:#fff;margin:0}.resume .sub{color:#aecdc6;font-size:14px}.resume .btn{background:var(--signal);color:#07221f;border-color:var(--signal)}.resume .btn:hover{color:var(--petrol);background:#fff;border-color:#fff}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.course-tile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:22px 24px;transition:box-shadow .18s,transform .18s,border-color .18s;display:flex}.course-tile:hover{box-shadow:var(--shadow-md);border-color:var(--accent-light);text-decoration:none;transform:translateY(-3px)}.course-tile h3{margin:0;font-size:20px}.course-tile .desc{font-family:var(--font-serif);color:var(--muted);flex:1;font-size:15px;line-height:1.55}.mini-bar{background:var(--paper-2);border-radius:999px;height:6px;overflow:hidden}.mini-bar>div{background:linear-gradient(90deg, var(--accent), var(--signal));height:100%}.mini-meta{font-family:var(--font-ui);letter-spacing:.04em;color:var(--muted-2);font-size:11px}.outline{margin-top:8px}.outline-session{margin-bottom:28px}.outline-session>.q-meta{margin-bottom:8px}.outline-theme{border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex}.outline-theme:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);text-decoration:none;transform:translate(3px)}.outline-theme.cur{border-left:3px solid var(--accent);background:var(--accent-tint)}.outline-theme .tick{border:1.5px solid var(--rule);width:22px;height:22px;color:var(--muted-2);font-size:12px;font-family:var(--font-ui);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.outline-theme.done .tick{background:var(--ok);border-color:var(--ok);color:#fff}.outline-theme .t-title{font-family:var(--font-serif);color:var(--ink);flex:1;font-size:16px;font-weight:500}.outline-theme .t-meta{font-family:var(--font-ui);letter-spacing:.04em;color:var(--muted-2);font-size:10.5px}.rail .outline-theme{padding:9px 12px}.rail .outline-theme .t-title{font-size:13.5px}.lesson{grid-template-columns:1fr 300px;align-items:start;gap:48px;display:grid}.rail{position:sticky;top:80px}.rail h4{font-family:var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11px}.lesson-nav{border-top:1px solid var(--rule);justify-content:space-between;gap:12px;margin-top:56px;padding-top:24px;display:flex}@media (width<=1000px){.lesson{grid-template-columns:1fr;gap:32px}.rail{order:-1;position:static}}.builder-block{border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:22px 24px}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.inline-form label{flex:1;min-width:160px;margin-bottom:0}.qb-question{border:1px dashed var(--rule);border-radius:var(--r-sm);margin-bottom:12px;padding:16px}.qb-option{align-items:center;gap:8px;margin-bottom:6px;display:flex}.qb-option input[type=text]{margin:0}.qb-option label{white-space:nowrap;align-items:center;gap:6px;margin:0;display:flex}.player{grid-template-columns:330px 1fr;min-height:100vh;display:grid}.player-nav{background:var(--petrol);color:var(--on-dark);border-right:1px solid var(--petrol-line);background-image:repeating-linear-gradient(#0000 0 3px,#78dccd04 3px 4px);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.pn-head{border-bottom:1px solid var(--petrol-line);padding:22px}.pn-head .title{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;margin-bottom:12px;font-size:18px;font-weight:700;display:block}.pn-head .title:hover{color:var(--accent-light);text-decoration:none}.pn-progress{align-items:center;gap:10px;display:flex}.pn-progress .mini-bar{background:#78dccd24;flex:1}.pn-progress .mini-meta{color:var(--accent-light)}.pn-list{flex:1;padding-bottom:24px}.pn-sec-head{text-align:left;cursor:pointer;width:100%;box-shadow:none;background:0 0;border:none;border-radius:0;align-items:center;gap:10px;padding:15px 18px 11px;display:flex}.pn-sec-head:hover{box-shadow:none;background:#78dccd0d}.pn-sec-head .chev{color:var(--signal);width:10px;font-size:10px;transition:transform .15s}.pn-sec-head.open .chev{transform:rotate(90deg)}.pn-sec-title{font-family:var(--font-ui);letter-spacing:.1em;text-transform:uppercase;color:#9fb6b1;flex:1;font-size:10.5px}.pn-sec-count{font-family:var(--font-ui);letter-spacing:.03em;color:var(--on-dark-dim);font-size:10.5px}.pn-lesson{color:var(--on-dark);font-family:var(--font-ui);border-left:3px solid #0000;align-items:center;gap:11px;padding:10px 18px 10px 30px;font-size:14.5px;transition:background .12s;display:flex}.pn-lesson:hover{color:#fff;background:#78dccd0f;text-decoration:none}.pn-lesson.cur{border-left-color:var(--signal);color:#fff;background:#2fe0c624;font-weight:500}.pn-badge{border:1.5px solid var(--petrol-line);color:#9fb6b1;border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex}.pn-badge svg{width:12px;height:12px}.pn-lesson.cur .pn-badge{border-color:var(--signal);color:#fff}.pn-lesson.done .pn-badge{background:var(--ok);border-color:var(--ok);color:#fff}.pn-title{flex:1}.player-main{flex-direction:column;min-width:0;display:flex}.player-top{z-index:20;background:var(--petrol);color:#fff;border-bottom:1px solid var(--petrol-line);justify-content:space-between;align-items:center;gap:16px;padding:12px 28px;display:flex;position:sticky;top:0}.player-top .pt-left{align-items:center;gap:16px;min-width:0;display:flex}.player-top .exit{color:var(--on-dark);font-family:var(--font-ui);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;font-size:12px}.player-top .exit:hover{color:#fff;text-decoration:none}.player-top .ptitle{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:#aecdc6;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.player-top .pt-prog{white-space:nowrap;align-items:center;gap:12px;display:flex}.player-top .pt-prog .pct{font-family:var(--font-ui);color:var(--accent-light);font-size:12px}.player-top .pbar{background:#78dccd2e;border-radius:999px;width:140px;height:6px;overflow:hidden}.player-top .pbar>div{background:var(--signal);height:100%;transition:width .3s}.player-body{width:100%;margin:0 auto;padding:48px 56px 112px;animation:.45s cubic-bezier(.22,1,.36,1) both rise}.player-foot{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;margin-top:48px;padding-top:26px;display:flex}.player-toggle{border:1px solid var(--petrol-line);color:#fff;background:#78dccd14;padding:7px 11px;display:none}.slide-bar{align-items:center;gap:16px;margin:10px 0 22px;display:flex}.slide-bar .scount{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:11.5px}.slide-dots{flex:1;gap:7px;display:flex}.slide-dots button{background:var(--rule);max-width:40px;height:5px;box-shadow:none;border:none;border-radius:999px;flex:1;padding:0;transition:background .2s,transform .2s}.slide-dots button:hover{background:var(--muted-2);transform:scaleY(1.6)}.slide-dots button.on{background:linear-gradient(90deg, var(--accent), var(--signal))}.lesson-slide{background:radial-gradient(75% 55% at 10% -5%, #2fe0c621, transparent 55%), radial-gradient(130% 130% at 100% 110%, #dad6c68c, transparent 55%), var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);min-height:60vh;box-shadow:var(--shadow-md);flex-direction:column;justify-content:center;padding:64px 72px;animation:.5s cubic-bezier(.22,1,.36,1) both slide-in;display:flex;position:relative;overflow:hidden}.lesson-slide:before{content:"";z-index:2;background:linear-gradient(90deg, var(--accent), var(--signal) 60%, var(--accent));height:4px;position:absolute;top:0;left:0;right:0;box-shadow:0 0 18px #2fe0c699}.lesson-slide:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(115deg,#0000 35%,#0c8f821a 50%,#0000 65%);animation:1s ease-out 50ms both slide-sweep;position:absolute;inset:0;transform:translate(-120%)}@keyframes slide-in{0%{opacity:0;filter:blur(8px);transform:translateY(22px)scale(.99)}to{opacity:1;filter:blur();transform:none}}@keyframes slide-sweep{to{transform:translate(120%)}}.lesson-slide .slide-no{z-index:0;font-family:var(--font-display);letter-spacing:-.05em;color:var(--accent);opacity:.08;text-shadow:0 10px 44px #0c8f8247;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:128px;font-weight:800;line-height:1;position:absolute;top:8px;right:30px}.lesson-slide .material,.lesson-slide .material-html,.lesson-slide .exercises{z-index:1;position:relative}.slide-intro{white-space:pre-wrap;color:var(--ink-2);font-size:19px;line-height:1.7}.lesson-slide .material{margin:0 0 16px}.lesson-slide .material:first-child{margin-top:0}.lesson-slide>*{min-width:0;max-width:100%}.lesson-slide .material-html pre,.lesson-slide .material-html table{max-width:100%}.lesson-slide .material-html pre.mermaid{overflow-x:auto}.lesson-slide .material-html{font-size:19px;line-height:1.72}.lesson-slide .material-html h2{letter-spacing:-.035em;border-bottom:none;margin:0 0 22px;padding-bottom:0;font-size:clamp(32px,3.8vw,50px);line-height:1.02}.lesson-slide .material-html h2:before{content:"";background:linear-gradient(90deg, var(--accent), var(--signal));border-radius:999px;width:56px;height:4px;margin-bottom:20px;display:block}.lesson-slide .material-html h3{margin-top:30px;font-size:clamp(22px,2.4vw,30px)}.lesson-slide .material-html h2+p{color:var(--ink-2);font-size:1.14em;line-height:1.55}.lesson-slide .material-html blockquote{font-size:1.05em}.lesson-slide .exercises h2{letter-spacing:-.03em;font-size:clamp(28px,3.2vw,44px)}@media (width<=700px){.lesson-slide{border-radius:var(--r);min-height:0;padding:36px 26px}.lesson-slide .slide-no{font-size:78px;right:18px}.player-body{padding:28px 18px 104px}}.tutor-launch{z-index:1200;background:var(--accent-strong);color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;padding:0;transition:background .16s,transform .16s,box-shadow .16s;display:inline-flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 30px #08191c57}.tutor-launch:hover{background:var(--accent-deep);color:#fff;transform:translateY(-2px);box-shadow:0 16px 38px #08191c6b}.tutor-launch:active{transform:translateY(0)}.tutor-launch svg{width:26px;height:26px}.tutor-launch .dotpulse{background:var(--signal);border:2px solid var(--accent-strong);border-radius:50%;width:12px;height:12px;animation:1.9s ease-out infinite tutor-ping;position:absolute;top:5px;right:5px}.tutor-launch:hover .dotpulse{border-color:var(--accent-deep)}@keyframes tutor-ping{0%{box-shadow:0 0 #2fe0c68c}70%{box-shadow:0 0 0 8px #2fe0c600}to{box-shadow:0 0 #2fe0c600}}.tutor-dock{z-index:1200;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);width:390px;max-width:calc(100vw - 44px);height:70vh;max-height:580px;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;bottom:22px;right:22px;overflow:hidden}.td-head{background:var(--petrol);color:#fff;justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.td-head .t{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.td-head .x{box-shadow:none;color:var(--on-dark);background:0 0;border:none;padding:2px 6px;font-size:16px}.td-head .x:hover{color:#fff;box-shadow:none;background:0 0}@media (width<=520px){.tutor-dock{height:76vh}}@media (width<=900px){.player{grid-template-columns:1fr}.player-nav{z-index:60;width:300px;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;transform:translate(-100%)}.player-nav.open{transform:none}.player-toggle{display:inline-flex}.player-body{padding:28px 18px 104px}}.sidebar::-webkit-scrollbar{width:8px}.player-nav::-webkit-scrollbar{width:8px}.chat-log::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#78dccd2e;border-radius:999px}.player-nav::-webkit-scrollbar-thumb{background:#78dccd2e;border-radius:999px}.chat-log::-webkit-scrollbar-thumb{background:var(--rule);border-radius:999px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.challenge .badge.diff-easy{color:var(--ok);background:#e0f0e7}.challenge .badge.diff-medium{color:var(--amber);background:#f4ead2}.challenge .badge.diff-hard{color:var(--high);background:#f6e1d4}.challenge .badge.diff-insane{color:var(--crit);background:#f6dee1}.challenge .hints{flex-direction:column;gap:10px;margin:18px 0;display:flex}.challenge .hint{font-size:15px}.flag-input{gap:10px;margin-top:16px;display:flex}.flag-input input{font-family:var(--font-mono);margin:0}.flag-input button{white-space:nowrap}.flashcard{background:var(--surface);border:1px solid var(--rule);border-top:3px solid var(--accent);border-radius:var(--r);box-shadow:var(--shadow-sm);margin-top:18px;padding:44px 38px}.flashcard .fc-front{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.25}.flashcard .fc-back{border-top:1px solid var(--rule);font-family:var(--font-serif);color:var(--ink-2);margin-top:22px;padding-top:22px;font-size:19px;line-height:1.6}.grade-row{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.review-cta{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:var(--r);box-shadow:var(--shadow-sm);align-items:center;gap:16px;margin-top:24px;padding:16px 20px;display:flex}.review-cta:hover{border-color:var(--accent-light);box-shadow:var(--shadow-md);text-decoration:none}.review-cta .rc-badge{background:var(--accent);color:#07221f;width:42px;height:42px;font-family:var(--font-display);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.review-cta .rc-text{flex-direction:column;flex:1;display:flex}.review-cta .rc-text strong{color:var(--ink)}.review-cta .rc-go{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent-strong);font-size:12px}.rec-banner{background:var(--accent-tint);border:1px solid var(--accent-soft);border-radius:var(--r);align-items:center;gap:16px;margin-top:18px;padding:15px 20px;display:flex}.rec-banner:hover{border-color:var(--accent-light);text-decoration:none}.rec-banner .rec-kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong);white-space:nowrap;font-size:11px}.rec-banner .rec-reason{color:var(--ink-2);flex:1}.rec-banner .rec-go{font-family:var(--font-mono);text-transform:uppercase;color:var(--accent-strong);white-space:nowrap;font-size:12px}.coach-actions{flex-wrap:wrap;gap:8px;padding:10px 14px 0;display:flex}.coach-chip{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--rule);font-family:var(--font-ui);text-transform:none;letter-spacing:0;box-shadow:none;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:500}.coach-chip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}.coach-chip:disabled{opacity:.5}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.badge-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-sm);opacity:.55;filter:grayscale(.6);flex-direction:column;gap:6px;padding:18px;display:flex}.badge-card.earned{opacity:1;filter:none;border-color:var(--accent-light)}.badge-card .bc-icon{font-size:30px}.badge-card .bc-name{font-family:var(--font-display);color:var(--ink);font-weight:700}.badge-card .bc-desc{color:var(--muted);font-size:13px;line-height:1.45}.topsearch{flex:1;max-width:520px}.topsearch input{background:var(--surface);height:38px;margin:0}.bell{border-radius:var(--r-sm);width:38px;height:38px;color:var(--muted);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.bell:hover{color:var(--accent-strong);background:var(--surface-2);text-decoration:none}.bell svg{width:20px;height:20px}.bell-badge{background:var(--crit);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:1px;right:1px}.notif-list{flex-direction:column;gap:6px;margin:24px 0 0;padding:0;list-style:none;display:flex}.notif-item{border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);align-items:center;gap:12px;padding:14px 16px;display:flex}a.notif-item:hover{border-color:var(--accent-light);text-decoration:none}.notif-dot{background:var(--rule);border-radius:50%;flex:none;width:8px;height:8px}.notif-dot.on{background:var(--accent)}.notif-body{flex-direction:column;flex:1;gap:2px;display:flex}.notif-body strong{color:var(--ink)}.notif-time{color:var(--muted-2);white-space:nowrap;font-size:11px}.cert-cta{margin-top:24px}.cert-verify{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.cert-card{background:var(--surface);border:1px solid var(--rule);border-top:4px solid var(--accent);border-radius:var(--r-lg);width:100%;max-width:640px;box-shadow:var(--shadow-lg);text-align:center;padding:56px}.cert-card .eyebrow{color:var(--ok);justify-content:center}.cert-card h1{margin:10px 0}.cert-card h2{color:var(--accent-deep);margin:4px 0 16px}.account-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-sm);align-items:center;gap:18px;margin-bottom:12px;padding:22px 24px;display:flex}.account-card .avatar-lg{background:var(--accent);color:#07221f;width:64px;height:64px;font-family:var(--font-display);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:24px;font-weight:800;display:flex}.account-card .account-info{flex:1;min-width:0}.account-card .account-info h1{margin:0;font-size:clamp(26px,3vw,34px)}.account-card .account-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;display:flex}.account-card .account-meta .mono{color:var(--muted);font-size:13px}.who-chip{border:1px solid var(--rule);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:8px 13px;font-size:13px;display:inline-flex}.who-chip:hover{border-color:var(--accent-light);text-decoration:none}.quizm{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin:24px 0;padding:0;overflow:hidden}.quizm-head{background:radial-gradient(120% 140% at 0% 0%, var(--accent-tint), var(--surface) 60%);border-bottom:1px solid var(--rule);padding:26px 30px 22px}.quizm-head h3{margin:0;font-size:clamp(22px,2.6vw,30px)}.quizm-meta{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:12px}.quizm-progress{background:var(--paper-2);border-radius:999px;height:5px;margin-top:16px;overflow:hidden}.quizm-progress>div{background:linear-gradient(90deg, var(--accent), var(--signal));height:100%;transition:width .3s}.qitem{border-bottom:1px solid var(--rule-soft);border-left:3px solid #0000;gap:16px;padding:24px 30px;transition:border-color .2s,background .2s;display:flex}.qitem:last-of-type{border-bottom:none}.qitem.correct{border-left-color:var(--ok);background:#f1f8f3}.qitem.partial{border-left-color:var(--amber);background:#fbf6ea}.qitem.wrong{border-left-color:var(--crit);background:#fbf0f1}.qnum{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-deep);font-family:var(--font-mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.qitem.correct .qnum{background:var(--ok);color:#fff}.qitem.wrong .qnum{background:var(--crit);color:#fff}.qitem.partial .qnum{background:var(--amber);color:#fff}.qbody{flex:1;min-width:0}.qbody .q-prompt{font-family:var(--font-serif);color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:600}.opts{flex-direction:column;gap:9px;margin-top:14px;display:flex}.opt{cursor:pointer;border:1.5px solid var(--rule);border-radius:var(--r-sm);background:var(--surface);font-family:var(--font-serif);color:var(--ink-2);text-transform:none;letter-spacing:0;align-items:center;gap:13px;margin:0;padding:13px 16px;font-size:16px;transition:border-color .14s,background .14s,box-shadow .14s;display:flex}.opt:hover{border-color:var(--accent-light);background:var(--surface-2)}.opt.sel{border-color:var(--accent);background:var(--accent-tint);box-shadow:0 0 0 3px var(--accent-soft)}.opt-input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.opt-mark{border:2px solid var(--muted-2);border-radius:50%;flex:none;width:20px;height:20px;transition:border-color .14s,background .14s;position:relative}.opt-mark.sq{border-radius:5px}.opt.sel .opt-mark{border-color:var(--accent);background:var(--accent)}.opt.sel .opt-mark:after{content:"";display:block;position:absolute;inset:0}.opt.sel .opt-mark:not(.sq):after{background:#fff;border-radius:50%;inset:4px}.opt.sel .opt-mark.sq:after{top:2px;left:6px;border:2.5px solid #fff;border-width:0 2.5px 2.5px 0;width:5px;height:10px;inset:auto;transform:rotate(45deg)}.opt-text{flex:1}.quizm-foot{border-top:1px solid var(--rule);background:var(--surface-2);justify-content:space-between;align-items:center;gap:16px;padding:22px 30px;display:flex}.quizm-result{border-top:1px solid var(--rule);padding:28px 30px}.quizm-result.passed{background:#eef7f1}.quizm-result.failed{background:#fbeef0}.quizm-result .qr-top{align-items:center;gap:18px;display:flex}.quizm-result .qr-pct{font-family:var(--font-display);letter-spacing:-.03em;font-size:52px;font-weight:800;line-height:1}.quizm-result.passed .qr-pct{color:var(--ok)}.quizm-result.failed .qr-pct{color:var(--crit)}.quizm-result .qr-bar{background:#0000000f;border-radius:999px;height:8px;margin:16px 0 8px;overflow:hidden}.quizm-result.passed .qr-bar>div{background:var(--ok);height:100%}.quizm-result.failed .qr-bar>div{background:var(--crit);height:100%}.quizm-result .qr-sub{color:var(--muted);margin:0;font-size:13px}@media (width<=600px){.qitem,.quizm-head,.quizm-foot,.quizm-result{padding-left:18px;padding-right:18px}}.app-foot{border-top:1px solid var(--rule);color:var(--muted);align-items:center;gap:7px;margin-top:auto;padding:22px 48px;font-size:12px;display:flex}.app-foot .foot-text{font-family:var(--font-mono);letter-spacing:.05em}.app-foot .foot-by{color:var(--muted-2)}.app-foot .foot-brand{font-family:var(--font-mono);letter-spacing:.16em;color:var(--ink);font-weight:700}.app-foot .foot-brand .hl{color:var(--accent-strong)}.main{min-height:100vh}.main .content2{flex:1 0 auto}.player-main .app-foot{background:var(--surface)}.auth-wrap .app-foot{border-top:none;justify-content:center;margin-top:40px;padding:0}@media (width<=700px){.app-foot{flex-wrap:wrap;padding:18px 20px}}.pulse-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-left:7px;animation:1.9s ease-out infinite tutor-ping;display:inline-block}.sidebar .brand .wordmark .pulse-dot{background:var(--signal)}.app-foot .foot-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;align-items:center;font-size:15px;font-weight:800;display:inline-flex}.app-foot .foot-sep{color:var(--muted-2)}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes dock-in{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:none}}@keyframes bell-wiggle{0%,88%,to{transform:rotate(0)}90%{transform:rotate(11deg)}92%{transform:rotate(-9deg)}94%{transform:rotate(7deg)}96%{transform:rotate(-5deg)}98%{transform:rotate(2deg)}}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>*{animation:.5s cubic-bezier(.22,1,.36,1) backwards reveal}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>:nth-child(2){animation-delay:40ms}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>:nth-child(3){animation-delay:80ms}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>:nth-child(4){animation-delay:.12s}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>:nth-child(5){animation-delay:.16s}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>:nth-child(6){animation-delay:.2s}:where(.course-grid,.card-list,.badge-grid,.stat-grid,.outline-session,.notif-list,.theme-list)>:nth-child(n+7){animation-delay:.24s}.quizm .qitem{animation:.5s cubic-bezier(.22,1,.36,1) backwards reveal}.quizm .qitem:nth-child(3){animation-delay:50ms}.quizm .qitem:nth-child(4){animation-delay:.1s}.quizm .qitem:nth-child(5){animation-delay:.15s}.quizm .qitem:nth-child(n+6){animation-delay:.2s}.tutor-dock{animation:.3s cubic-bezier(.22,1,.36,1) backwards dock-in}.tutor-launch{animation:3.5s ease-in-out infinite float-y}.tutor-launch:hover{animation-play-state:paused}.badge-card.earned .bc-icon{animation:.5s cubic-bezier(.22,1,.36,1) backwards pop}.quizm-result .qr-pct,.score-big{animation:.6s cubic-bezier(.22,1,.36,1) backwards pop}.bell:has(.bell-badge) svg{transform-origin:50% 10%;animation:4s ease-in-out infinite bell-wiggle}.bell-badge{animation:.35s backwards pop}.flashcard .fc-back{animation:.35s backwards reveal}.nav a:hover .ic{transform:translate(2px)}.course-tile:hover h3{color:var(--accent-deep)}.outline-theme:hover .tick{border-color:var(--accent)}.review-cta:hover .rc-badge{transform:scale(1.06)}.rc-badge,.nav a .ic{transition:transform .16s,color .14s}.stat-card .v{transition:color .2s}.stat-card:hover .v{color:var(--accent-deep)}.side-foot .avatar{padding:0;overflow:hidden}.side-foot .avatar img,.account-card .avatar-lg img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.account-card .avatar-lg{overflow:hidden}.edit-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin-top:16px;display:grid}.edit-block{flex-direction:column;align-items:flex-start;display:flex}.edit-block label{width:100%;margin-bottom:8px}.edit-block .q-meta{margin-bottom:10px}.course-hero{border-bottom:1px solid var(--rule-soft);grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:40px;margin:18px 0 8px;padding-bottom:36px;display:grid}.course-hero-main{min-width:0}.course-title-row{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.course-title-row h1{margin:0 0 10px}.course-hero-main .lede{margin:6px 0 0}.meta-chips{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.meta-chip{font-family:var(--font-ui);letter-spacing:.01em;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--rule);white-space:nowrap;border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:500}.course-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-md);position:sticky;top:24px;overflow:hidden}.course-card-head{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark);background:var(--petrol);padding:14px 20px;font-size:11px;font-weight:600}.fact-list{margin:0;padding:6px 20px 4px}.fact-row{border-bottom:1px solid var(--rule-soft);justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;display:flex}.fact-row:last-child{border-bottom:none}.fact-row dt{font-family:var(--font-ui);color:var(--muted);letter-spacing:.01em;font-size:12.5px}.fact-row dd{font-family:var(--font-ui);color:var(--ink);text-align:right;margin:0;font-size:13px;font-weight:600}.course-card-cta{text-align:center;margin:8px 20px 20px;display:block}.course-section{margin-top:40px}.section-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.learn-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 28px;margin:0;padding:0;list-style:none;display:grid}.learn-item{font-family:var(--font-serif);color:var(--ink-2);align-items:flex-start;gap:12px;font-size:16.5px;line-height:1.5;display:flex}.learn-tick{background:var(--accent-tint);width:22px;height:22px;color:var(--accent-strong);font-family:var(--font-ui);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:3px;font-size:12px;font-weight:700;display:flex}.syllabus{border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.syl-session{border-bottom:1px solid var(--rule)}.syl-session:last-child{border-bottom:none}.syl-session.open{background:var(--surface-2)}.syl-head{width:100%;box-shadow:none;text-align:left;text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:16px;padding:18px 22px;transition:background .14s;display:flex}.syl-head:hover{background:var(--surface-2)}.syl-num{font-family:var(--font-mono);color:var(--accent-strong);flex:none;width:26px;font-size:13px;font-weight:600}.syl-head-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.syl-title{font-family:var(--font-display);color:var(--ink);font-size:17px;font-weight:600;line-height:1.25}.syl-summary{font-family:var(--font-serif);color:var(--muted);text-overflow:ellipsis;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:14px;line-height:1.4;display:-webkit-box;overflow:hidden}.syl-meta{font-family:var(--font-ui);flex:none;align-items:center;gap:12px;display:flex}.syl-count{letter-spacing:.04em;color:var(--muted);background:var(--paper-2);border:1px solid var(--rule);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.syl-count.complete{color:var(--ok);background:#d8ece1;border-color:#b9ddca}.syl-themes-n{letter-spacing:.04em;color:var(--muted-2);text-transform:uppercase;font-size:11px}.syl-chevron{color:var(--accent-strong);text-align:center;width:14px;font-size:12px}.syl-body{padding:4px 22px 18px}.syl-body .outline-theme{background:var(--surface)}.syl-body .outline-theme .tick{font-family:var(--font-mono)}@media (width<=860px){.course-hero{grid-template-columns:1fr;gap:28px}.course-card{position:static}}.cohort-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin-top:20px;padding:20px 22px}.cohort-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.cohort-title h2{margin:0 0 2px;font-size:21px}.cohort-meta{font-family:var(--font-ui);color:var(--muted);letter-spacing:.01em;font-size:12.5px}.cohort-actions{flex:none;gap:14px;padding-top:4px;display:flex}.link-btn.danger{color:var(--crit)}.member-list{border-top:1px solid var(--rule-soft);margin:0 0 14px;padding:0;list-style:none}.member-row{border-bottom:1px solid var(--rule-soft);align-items:center;gap:16px;padding:11px 2px;display:flex}.member-id{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.member-name{font-family:var(--font-serif);color:var(--ink);font-size:16px;font-weight:500}.member-email{font-family:var(--font-mono);color:var(--muted-2);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.member-prog{flex:none;align-items:center;gap:10px;width:180px;display:flex}.mini-bar{background:var(--paper-2);border-radius:999px;flex:1;height:7px;overflow:hidden}.mini-fill{background:var(--accent);border-radius:999px;height:100%;display:block}.member-pct{color:var(--muted);text-align:right;width:38px;font-size:12.5px}.member-remove{text-transform:none;letter-spacing:0;width:28px;height:28px;color:var(--muted);border:1px solid var(--rule);box-shadow:none;background:0 0;flex:none;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:flex}.member-remove:hover{color:var(--crit);border-color:var(--crit);background:0 0}@media (width<=620px){.member-row{flex-wrap:wrap;gap:8px 12px}.member-prog{order:3;width:100%}}.inline-form.add-member{flex-wrap:wrap}.inline-form.add-member input{flex:180px}.syl-lock{font-family:var(--font-ui);letter-spacing:.03em;color:var(--muted);background:var(--paper-2);border:1px solid var(--rule);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.syl-lock.open{color:var(--ok);background:#d8ece1;border-color:#b9ddca}.syl-session.locked .syl-title{color:var(--muted)}.syl-session.locked .syl-num{color:var(--muted-2)}.syl-locked-note{font-family:var(--font-serif);color:var(--muted);background:var(--surface-2);border:1px dashed var(--rule);border-radius:var(--r-sm);margin:4px 0 12px;padding:12px 14px;font-size:14.5px}.outline-theme.is-locked{pointer-events:none}.outline-theme.is-locked .tick{background:var(--paper-2)}.session-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.session-state{align-items:center;gap:12px;display:flex}.sess-badge{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.sess-badge.open{color:var(--ok);background:#d8ece1}.sess-badge.closed{background:var(--rule-soft);color:var(--muted)}.sess-badge.scheduled{color:var(--amber);background:#f6eccf}.sess-schedule{background:var(--surface-2);border:1px solid var(--rule-soft);border-radius:var(--r-sm);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;display:flex}.sess-schedule input[type=datetime-local]{width:auto;margin:0}.admin-tag{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);background:var(--accent-tint);vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:9.5px;font-weight:700}.row-actions{flex:none;align-items:center;gap:14px;display:flex}.auth-shell{background:var(--paper);grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.auth-brand{background:radial-gradient(120% 90% at 15% 10%, #2fe0c629, transparent 55%), radial-gradient(90% 80% at 100% 100%, #0c8f8238, transparent 60%), var(--petrol);color:var(--on-dark);flex-direction:column;justify-content:space-between;gap:40px;padding:56px 56px 40px;display:flex;position:relative;overflow:hidden}.auth-brand:before{content:"";background-image:linear-gradient(var(--petrol-line) 1px, transparent 1px), linear-gradient(90deg, var(--petrol-line) 1px, transparent 1px);opacity:.5;pointer-events:none;background-size:38px 38px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 20% 0,#000 30%,#0000 75%);mask-image:radial-gradient(120% 100% at 20% 0,#000 30%,#0000 75%)}.auth-brand>*{z-index:1;position:relative}.auth-logo{width:320px;max-width:100%;height:auto;margin:0 0 28px;display:block}.auth-wordmark{font-family:var(--font-mono);letter-spacing:.18em;color:#fff;font-size:24px;font-weight:700}.auth-wordmark .pulse-dot{background:var(--signal);margin-left:9px}.auth-tag{letter-spacing:.22em;text-transform:uppercase;color:var(--accent-light);margin-top:10px;font-size:11px;display:block}.auth-headline{font-family:var(--font-serif);color:#fff;max-width:13ch;margin:0 0 14px;font-size:34px;font-style:italic;font-weight:500;line-height:1.24}.auth-sub{font-family:var(--font-serif);color:var(--on-dark);max-width:34ch;margin:0 0 26px;font-size:17px;line-height:1.5}.auth-points{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.auth-points li{font-family:var(--font-ui);color:var(--on-dark);padding-left:26px;font-size:14px;position:relative}.auth-points li:before{content:"✓";width:18px;height:18px;color:var(--signal);background:#2fe0c629;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;top:-1px;left:0}.auth-brand-foot{letter-spacing:.06em;color:var(--on-dark-dim);font-size:11px}.auth-brand-foot strong{color:var(--accent-light);letter-spacing:.14em}.auth-panel{justify-content:center;align-items:center;padding:48px 32px;display:flex}.auth-card{width:100%;max-width:380px}.auth-title{font-family:var(--font-display);margin:6px 0 4px;font-size:32px;line-height:1.1}.auth-form{flex-direction:column;gap:4px;margin-top:26px;display:flex}.field{flex-direction:column;gap:7px;margin-bottom:6px;display:flex}.field-label{font-family:var(--font-ui);letter-spacing:.02em;color:var(--muted);font-size:12.5px;font-weight:600}.auth-form input{width:100%;margin:0;padding:13px 15px;font-size:15px}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.otp-input{letter-spacing:.5em;text-align:center;padding:14px 12px!important;font-size:26px!important}.auth-form button[type=submit]{width:100%;margin-top:10px;padding:13px 19px;font-size:13px}.auth-hint{font-family:var(--font-ui);color:var(--muted);align-items:center;gap:8px;margin-top:16px;font-size:12.5px;line-height:1.45;display:flex}.auth-hint .lock-ic{flex:none;font-size:13px}.auth-sent{font-family:var(--font-serif);color:var(--body);margin:0 0 4px;font-size:15px}.dev-code{color:var(--amber);border-radius:var(--r-sm);background:#f6eccf;border:1px solid #ecd9a6;margin:4px 0;padding:7px 10px;font-size:12px}.auth-actions{justify-content:space-between;gap:12px;margin-top:16px;display:flex}.auth-foot-link{border-top:1px solid var(--rule-soft);font-family:var(--font-ui);color:var(--muted);margin-top:28px;padding-top:20px;font-size:14px}@media (width<=820px){.auth-shell{grid-template-columns:1fr}.auth-brand{gap:24px;padding:32px 28px}.auth-brand-mid,.auth-brand-foot{display:none}.auth-panel{align-items:flex-start;padding:40px 24px 64px}}
