@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600..800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";.cs-shell{--cs-stripe:42px;--cs-top:46px;--cs-status:26px;--cs-left:300px;--cs-right:340px;--cs-mono:"IBM Plex Mono",ui-monospace,monospace;height:100vh;display:grid;grid-template-columns:var(--cs-stripe) var(--cs-left) minmax(0,1fr) var(--cs-right) var(--cs-stripe);grid-template-rows:var(--cs-top) 1fr var(--cs-status);background:radial-gradient(200% 460px at 32% -200px,rgba(216,142,74,.16),transparent 74%),linear-gradient(180deg,color-mix(in srgb,var(--color-text) 12%,var(--color-bg)),color-mix(in srgb,var(--color-text) 9%,var(--color-bg)));color:var(--color-text);overflow:hidden;position:relative;transition:grid-template-columns .18s cubic-bezier(.4,0,.2,1)}[data-theme=light] .cs-shell{background:radial-gradient(200% 460px at 32% -200px,rgba(216,142,74,.1),transparent 74%),linear-gradient(180deg,color-mix(in srgb,var(--color-text) 3%,var(--color-bg)),color-mix(in srgb,var(--color-text) 6%,var(--color-bg)))}.cs-topbar{grid-column:1 / 6;grid-row:1;display:flex;align-items:center;gap:10px;padding:6px 10px 0 12px;background:transparent;font-family:var(--cs-mono);font-size:12.5px;color:var(--color-text-muted)}.cs-topbar .cs-crumb{display:flex;align-items:center;flex:1;min-width:0;font-family:var(--cs-mono);font-size:12.5px;overflow:hidden;white-space:nowrap}.cs-topbar .cs-crumb .prompt{color:var(--color-primary);font-weight:600;opacity:.85;margin-right:10px;flex:0 0 auto}.cs-topbar .cs-crumb a{color:var(--color-text-muted);text-decoration:none;transition:color .12s;white-space:nowrap}.cs-topbar .cs-crumb a:hover{color:var(--color-text)}.cs-topbar .cs-crumb .slash{color:var(--color-text-subtle);margin:0 8px;flex:0 0 auto}.cs-topbar .cs-crumb .cur{color:var(--color-success-text);font-weight:600;display:inline-flex;align-items:center;overflow:hidden;text-overflow:ellipsis}.cs-topbar .cs-crumb .cur:before{content:"";flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--color-primary);margin-right:8px;box-shadow:0 0 8px #22c55e99}.cs-topbar .tb{width:32px;height:32px;border-radius:7px;border:none;background:transparent;display:grid;place-items:center;color:var(--color-text-muted);cursor:pointer;transition:background .12s,color .12s;font:inherit}.cs-topbar .tb:hover{background:var(--color-bg-elevated);color:var(--color-text)}.cs-topbar .tb svg{width:20px;height:20px}body.cs-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.cs-resizing .cs-shell{transition:none}body.cs-resizing iframe{pointer-events:none}.cs-shell.cs-left-collapsed{--cs-left:0px}.cs-shell.cs-right-collapsed{--cs-right:0px}.cs-stripe{grid-row:2;background:transparent;display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 0}.cs-stripe.left{grid-column:1}.cs-stripe.right{grid-column:5}.cs-stripe .grow{flex:1}.cs-tbtn{width:34px;height:34px;border-radius:8px;border:none;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--color-text-muted);transition:background .12s,color .12s,box-shadow .12s;position:relative}.cs-tbtn:hover{background:var(--color-bg-elevated);color:var(--color-text)}.cs-tbtn.active{background:var(--color-primary-soft);color:var(--color-primary);box-shadow:inset 0 0 0 1px #22c55e59}.cs-tbtn svg{width:23px;height:23px;display:block}.cs-tbtn .dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-bg-secondary)}.cs-stripe .sep{width:18px;height:1px;background:var(--color-border-strong);margin:5px 0}.cs-panel{grid-row:2;background:var(--color-bg-secondary);margin:6px 0;border-radius:10px;overflow:hidden;min-width:0;position:relative;display:flex;flex-direction:column;border:1px solid #0d0e11;box-shadow:0 6px 20px -10px #00000080}.cs-panel.left{grid-column:2;margin-right:6px}.cs-center{grid-column:3;grid-row:2;margin:6px;background:radial-gradient(135% 72% at 50% -14%,color-mix(in srgb,var(--color-text) 4%,transparent),transparent 58%),color-mix(in srgb,var(--color-text) 4%,var(--color-bg-secondary));background-repeat:no-repeat;border:1px solid #0d0e11;border-radius:10px;overflow:hidden;min-width:0;box-shadow:0 6px 20px -10px #00000080}.cs-center-scroll{height:100%;overflow:auto;scrollbar-gutter:stable}.cs-center-scroll>*{min-width:760px!important}.cs-panel.right{grid-column:4;margin-left:6px}.cs-shell.cs-left-collapsed .cs-panel.left,.cs-shell.cs-right-collapsed .cs-panel.right{display:none}.cs-ptitle{height:38px;flex:0 0 38px;display:flex;align-items:center;gap:8px;padding:0 6px 0 12px;font-family:var(--cs-mono);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);overflow:hidden;white-space:nowrap}.cs-ptitle-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-ptitle .actions{margin-left:auto;display:flex;gap:2px;flex-shrink:0}.cs-ptitle .ico{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--color-text-subtle);cursor:pointer;border:none;background:transparent}.cs-ptitle .ico:hover{background:var(--color-bg-elevated);color:var(--color-text)}.cs-ptitle .ico svg{width:16px;height:16px}.cs-pbody{flex:1;overflow:auto;min-height:0}.cs-pbody.tree-pad{padding:8px 6px}.cs-panel.left .cs-pbody{overflow:auto}.cs-panel.left .cs-pbody>*{width:max-content;min-width:100%}.cs-panel.left .cs-pbody *{white-space:nowrap}.cs-panel.left .cs-pbody span[style*=-webkit-box]{display:block!important;-webkit-line-clamp:initial!important;overflow:visible!important}.cs-center-scroll,.cs-pbody{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.cs-center-scroll::-webkit-scrollbar,.cs-pbody::-webkit-scrollbar{width:15px;height:15px;background:transparent}.cs-center-scroll::-webkit-scrollbar-track,.cs-pbody::-webkit-scrollbar-track{background:transparent}.cs-center-scroll::-webkit-scrollbar-thumb,.cs-pbody::-webkit-scrollbar-thumb{background:#ffffff29;border:4px solid transparent;border-radius:7px;background-clip:padding-box}.cs-center-scroll::-webkit-scrollbar-thumb:hover,.cs-pbody::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.cs-center-scroll::-webkit-scrollbar-corner,.cs-pbody::-webkit-scrollbar-corner{background:transparent}[data-theme=light] .cs-center-scroll,[data-theme=light] .cs-pbody{scrollbar-color:rgba(0,0,0,.22) transparent}[data-theme=light] .cs-center-scroll::-webkit-scrollbar-thumb,[data-theme=light] .cs-pbody::-webkit-scrollbar-thumb{background:#00000038}[data-theme=light] .cs-center-scroll::-webkit-scrollbar-thumb:hover,[data-theme=light] .cs-pbody::-webkit-scrollbar-thumb:hover{background:#00000061}.cs-resizer{position:absolute;top:var(--cs-top);bottom:var(--cs-status);width:14px;z-index:50;cursor:col-resize}.cs-resizer.r-left-edge{left:calc(var(--cs-stripe) + var(--cs-left));transform:translate(-50%)}.cs-resizer.r-right-edge{right:calc(var(--cs-stripe) + var(--cs-right));transform:translate(50%)}.cs-shell.cs-left-collapsed .cs-resizer.r-left-edge,.cs-shell.cs-right-collapsed .cs-resizer.r-right-edge{display:none}.cs-thread{display:block;text-decoration:none;color:inherit;padding:12px 13px;margin:6px 8px;border-radius:9px;cursor:pointer;background:var(--color-bg);border:1px solid var(--color-border);transition:background .12s,border-color .12s;overflow:hidden}.cs-panel.right .cs-pbody{overflow-y:auto;overflow-x:hidden}.cs-panel.right .cs-pbody>*{min-width:240px}.cs-thread:hover{background:var(--color-bg-elevated);border-color:var(--color-border-strong)}.cs-thread .top{display:flex;align-items:flex-start;gap:8px}.cs-thread .tt{font-weight:600;font-size:var(--fs-base);line-height:1.35;color:var(--color-text);flex:1;min-width:0;overflow-wrap:anywhere}.cs-thread .date{margin-left:auto;font-family:var(--cs-mono);font-size:11px;color:var(--color-text-subtle);flex:0 0 auto}.cs-thread .sub{color:var(--color-text-muted);font-size:var(--fs-sm);margin-top:4px}.cs-thread .ftr{margin-top:8px}.cs-chip{font-family:var(--cs-mono);font-size:11px;padding:3px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;white-space:nowrap}.cs-chip.wait{background:var(--color-warning-soft);color:var(--color-warning)}.cs-chip.ok{background:var(--color-success-soft);color:var(--color-success-text)}.cs-chip.rev{background:var(--color-danger-soft);color:var(--color-danger-text)}.cs-daysep{font-family:var(--cs-mono);font-size:11px;color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.1em;padding:14px 18px 4px}.cs-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--color-text-subtle);text-align:center;padding:24px;font-size:12px}.cs-status{grid-column:1 / 6;grid-row:3;background:transparent;display:flex;align-items:center;gap:14px;padding:0 12px;font-family:var(--cs-mono);font-size:12px;color:var(--color-text-muted)}.cs-shell :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:6px}.cs-status a{color:var(--color-text-muted);text-decoration:none}.cs-status a:hover{color:var(--color-text)}.cs-status .crumb{display:flex;align-items:center;gap:7px}.cs-status .crumb b{color:var(--color-text);font-weight:600}.cs-status .crumb .sp{color:var(--color-text-subtle)}.cs-status .grow{flex:1}.cs-status .pill{display:flex;align-items:center;gap:6px}.cs-status .pill svg{width:13px;height:13px}.cs-status button.pill{border:none;background:transparent;cursor:pointer;color:inherit;font:inherit}.cs-status button.pill:hover{color:var(--color-text)}.cs-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.cs-mobtn{position:relative}.cs-topbar .cs-mobtn{display:none}.cs-mobtn .cs-mobdot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-bg-secondary)}@media (max-width: 900px){.cs-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--cs-top) minmax(0,1fr);background:var(--color-bg);transition:none}.cs-topbar{grid-column:1;grid-row:1;gap:4px;padding:0 6px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.cs-topbar .cs-crumb .prompt,.cs-topbar .cs-crumb a,.cs-topbar .cs-crumb .slash{display:none}.cs-topbar .cs-crumb{font-size:15px}.cs-topbar .cs-crumb .cur{font-size:15px;font-weight:700}.cs-topbar .cs-crumb a:first-of-type{display:inline-flex;align-items:center;flex:0 0 auto}.cs-topbar .cs-crumb a:first-of-type:after{content:"/";color:var(--color-text-subtle);margin:0 8px;font-weight:400}.cs-mobtn{display:grid!important}.cs-center{grid-column:1;grid-row:2;margin:0;border:none;border-radius:0;box-shadow:none;background:var(--color-bg)}.cs-center{min-width:0}.cs-center-scroll{overflow-y:auto;overflow-x:hidden;min-width:0}.cs-center-scroll>*{min-width:0!important;max-width:100%!important}.lesson-article{padding:24px 16px 110px!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;overflow-x:hidden}.lesson-md{overflow-wrap:anywhere}.lesson-md img,.lesson-md pre,.lesson-md table,.lesson-video-shell,.lesson-video-focus,.lesson-theory-solo{max-width:100%!important}.cs-stripe,.cs-status,.cs-resizer{display:none!important}.cs-panel{position:fixed;top:var(--cs-top);bottom:0;z-index:60;width:min(86vw,360px);margin:0;border-radius:0;border:none;box-shadow:0 0 44px #0000008c;transition:transform .22s cubic-bezier(.4,0,.2,1)}.cs-panel.left{left:0;border-right:1px solid var(--color-border-strong);transform:translate(-101%)}.cs-panel.right{right:0;border-left:1px solid var(--color-border-strong);transform:translate(101%)}.cs-shell.cs-left-collapsed .cs-panel.left,.cs-shell.cs-right-collapsed .cs-panel.right{display:flex}.cs-shell:not(.cs-left-collapsed) .cs-panel.left{transform:none}.cs-shell:not(.cs-right-collapsed) .cs-panel.right{transform:none}.cs-panel.left .cs-pbody{overflow-y:auto;overflow-x:hidden}.cs-panel.left .cs-pbody>*{width:auto;min-width:0}.cs-panel.left .cs-pbody *{white-space:normal}.cs-panel.right .cs-pbody{direction:ltr;overflow-x:hidden}.cs-panel.right .cs-pbody>*{direction:ltr;width:auto;min-width:0}.cs-panel.right .cs-pbody *{white-space:normal}.cs-panel.right .cs-thread{min-width:0}.cs-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;top:var(--cs-top);z-index:55;background:#00000073;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}}.cs-panel.left .cs-pbody>.ps-topics{width:100%;min-width:0}.ps-topics{list-style:none;margin:0;padding:0}.ps-topic-link{display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:8px;border-left:2px solid transparent;color:var(--color-text);text-decoration:none;font-size:var(--fs-sm);font-weight:500}.ps-topic-link:hover{background:var(--color-bg-elevated)}.ps-topic-link.active{background:var(--color-primary-soft);border-left-color:var(--color-primary)}.ps-topic-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.ps-count{flex:none;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xs);color:var(--color-text-subtle);font-weight:500}.ps-count.done{color:var(--color-success)}@keyframes prog-rise-in{0%{opacity:0;transform:translateY(120px)}to{opacity:1;transform:translateY(0)}}@keyframes prog-float-in{0%{opacity:0;transform:translateY(30px) scale(.9) rotate(var(--tilt, 0deg))}to{opacity:var(--fl-op, .5);transform:translateY(0) scale(1) rotate(var(--tilt, 0deg))}}@keyframes prog-fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes prog-glow-in{0%{opacity:0}to{opacity:1}}@keyframes prog-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.prog-tile-action{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:16px;background:#ffffff0d;font-size:var(--fs-md);font-weight:600;cursor:pointer;transition:background .2s ease;text-decoration:none}.prog-tile-action:hover{background:#ffffff1a}.prog-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:30;width:52px;height:52px;border-radius:50%;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);color:var(--color-text);cursor:pointer;display:flex;align-items:center;justify-content:center}.prog-nav-arrow:hover{background:var(--color-border-strong)}.prog-skip-btn{font-family:var(--font-mono);font-size:var(--fs-xxs);color:var(--color-text-muted);background:none;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer}.prog-skip-btn:hover{color:var(--color-text);border-color:var(--color-text-subtle)}.prog-legacy-toggle{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer}.prog-legacy-toggle:hover{color:var(--color-text);background:var(--color-bg-elevated)}@media (prefers-reduced-motion: reduce){.prog-anim{animation:none!important}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-400-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-600-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-800-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-800-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--color-bg: #0a0b0d;--color-bg-secondary: #0f1012;--color-bg-elevated: #15171a;--color-bubble-self: #2a2a2e;--color-bubble-other: #15171a;--color-text: #fafafa;--color-text-muted: #8b9099;--color-text-subtle: #5c6168;--color-border: #1c1f24;--color-border-strong: #2a2e35;--color-primary: #22c55e;--color-primary-hover: #16a34a;--color-primary-contrast: #04130a;--color-primary-soft: #0e2c1a;--color-success: #22c55e;--color-success-soft: #0e2c1a;--color-success-text: #6ee7a0;--color-warning: #f59e0b;--color-warning-soft: #2c1d00;--color-warning-border: #b45309;--color-danger: #ef4444;--color-danger-soft: #2c0d0d;--color-danger-border: #7f1d1d;--color-danger-text: #fca5a5;--color-info: #3b82f6;--color-info-soft: #0d1a2e;--color-code-bg: #0f1012;--color-code-text: #fafafa;--color-code-border: #1c1f24;--color-code-inline-bg: #15171a;--color-code-inline-text: #fafafa;--color-output-bg: #0f1012;--color-output-text: #fafafa;--color-output-border: #1c1f24;--color-output-error-bg: #2c0d0d;--color-output-error-text: #fca5a5;--color-output-error-border: #7f1d1d;--cm-bg: #0a0b0d;--cm-text: #fafafa;--cm-gutter-bg: #0a0b0d;--cm-gutter-text: #5c6168;--cm-cursor: #fafafa;--cm-selection: #2e5b8e;--cm-selection-text: #ffffff;--cm-active-line: #0f1012;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-xxs: 10px;--fs-xs: 12px;--fs-sm: 14px;--fs-base: 16px;--fs-md: 17px;--fs-lg: 19px;--fs-xl: 22px;--fs-h2: 32px;--fs-h1: 64px;--letter-tight: 0;--letter-normal: 0;--letter-wide: .08em;--letter-wider: .14em;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--texture-grid-color: rgba(255, 255, 255, .026);--texture-grid-size: 48px;--tier-bronze: #c97f3a;--tier-silver: #b6bdc6;--tier-gold: #f5b400;--tier-platinum: #6cb8e0;--tier-diamond: #c896f5;--tier-master: #ff5a4a}[data-theme=light]{color-scheme:light;--color-bg: #ffffff;--color-bg-secondary: #fafafa;--color-bg-elevated: #f4f4f5;--color-bubble-self: #1a1a1a;--color-bubble-other: #f1f1f3;--color-text: #09090b;--color-text-muted: #52525b;--color-text-subtle: #a1a1aa;--color-border: #e4e4e7;--color-border-strong: #d4d4d8;--color-primary: #16a34a;--color-primary-hover: #15803d;--color-primary-contrast: #ffffff;--color-primary-soft: #dcfce7;--color-success: #16a34a;--color-success-soft: #dcfce7;--color-success-text: #166534;--color-warning: #b45309;--color-warning-soft: #fef3c7;--color-warning-border: #f59e0b;--color-danger: #dc2626;--color-danger-soft: #fee2e2;--color-danger-border: #fca5a5;--color-danger-text: #991b1b;--color-info: #2563eb;--color-info-soft: #dbeafe;--color-code-bg: #fafafa;--color-code-text: #09090b;--color-code-border: #e4e4e7;--color-code-inline-bg: #f4f4f5;--color-code-inline-text: #09090b;--color-output-bg: #fafafa;--color-output-text: #09090b;--color-output-border: #e4e4e7;--color-output-error-bg: #fef2f2;--color-output-error-text: #991b1b;--color-output-error-border: #fecaca;--cm-bg: #ffffff;--cm-text: #09090b;--cm-gutter-bg: #fafafa;--cm-gutter-text: #a1a1aa;--cm-cursor: #09090b;--cm-selection: #b3d4fc;--cm-selection-text: #09090b;--cm-active-line: #f4f4f5;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 6px rgba(0, 0, 0, .06);--texture-grid-color: rgba(9, 9, 11, .035);--texture-grid-size: 48px;--tier-bronze: #c97f3a;--tier-silver: #71757a;--tier-gold: #b27600;--tier-platinum: #285c84;--tier-diamond: #7338b8;--tier-master: #b40000}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:16px;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";transition:background .12s ease,color .12s ease;overflow-x:clip;overflow-wrap:anywhere;word-break:break-word}a,code,pre{overflow-wrap:anywhere;word-break:break-word}pre{max-width:100%;overflow-x:auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:var(--letter-tight);line-height:1.1;margin:0 0 .5em}h1{font-size:var(--fs-h1);letter-spacing:0}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-xl)}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{font-family:inherit;font-size:inherit}input,textarea,select{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);font-family:inherit;font-size:inherit}@media (max-width: 900px){input,textarea,select{font-size:16px!important}}code,pre,kbd,samp,.cm-editor,.cm-content,.hljs{font-family:var(--font-mono);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}.cm-tooltip{background:var(--cm-bg)!important;color:var(--cm-text)!important;border:1px solid var(--color-border-strong)!important;border-radius:var(--radius-sm, 4px)!important;box-shadow:var(--shadow-md)!important;font-family:var(--font-mono);font-size:13px}.cm-tooltip.cm-tooltip-autocomplete>ul{font-family:var(--font-mono);max-height:240px}.cm-tooltip.cm-tooltip-autocomplete>ul>li{padding:4px 10px;color:var(--cm-text)}.cm-tooltip.cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--cm-selection)!important;color:var(--cm-selection-text)!important}.cm-tooltip.cm-tooltip-autocomplete .cm-completionIcon{opacity:.55;margin-right:6px}.cm-tooltip.cm-tooltip-autocomplete .cm-completionMatchedText{text-decoration:none;color:var(--color-primary);font-weight:600}.cm-tooltip.cm-completionInfo{background:var(--cm-bg)!important;color:var(--cm-text)!important;border:1px solid var(--color-border-strong)!important}.cm-editor .cm-foldGutter{opacity:0;transition:opacity .12s ease}.cm-editor:hover .cm-foldGutter,.cm-editor.cm-focused .cm-foldGutter{opacity:.6}.cm-editor .cm-foldGutter .cm-gutterElement:hover{opacity:1}.t-label{text-transform:uppercase;letter-spacing:var(--letter-wide);font-size:var(--fs-xs);font-weight:500;color:var(--color-text-muted)}.t-label-strong{text-transform:uppercase;letter-spacing:var(--letter-wider);font-size:var(--fs-xs);font-weight:600;color:var(--color-text)}.t-num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card-sm,.card,.card-lg{border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.card-sm{padding:8px 12px}.card{padding:16px}.card-lg{padding:24px;border-radius:var(--radius-lg)}.card-dashed{border:1px dashed var(--color-border-strong);background:transparent;border-radius:var(--radius-md);padding:16px}.site-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.home-dashboard-page,.course-index-page,.course-detail-page,.auth-page{min-height:100vh;background:linear-gradient(to right,var(--texture-grid-color) 1px,transparent 1px),linear-gradient(to bottom,var(--texture-grid-color) 1px,transparent 1px),var(--color-bg);background-size:var(--texture-grid-size) var(--texture-grid-size),var(--texture-grid-size) var(--texture-grid-size),auto;background-position:-1px -1px}.student-analytics-shell{max-width:1360px;margin:0 auto;padding:44px 40px 96px}.student-analytics-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;align-items:end;margin-bottom:24px}.student-analytics-title{margin:0;text-wrap:balance}.student-analytics-copy{max-width:760px;margin:14px 0 0;color:var(--color-text-muted);font-size:var(--fs-md);line-height:1.6}.student-analytics-total{padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 88%,transparent);text-align:right}.student-analytics-total strong{display:block;margin-top:10px;color:var(--color-text);font-size:42px;line-height:.95}.student-analytics-total>span:last-child{display:block;margin-top:8px;color:var(--color-text-muted);font-size:var(--fs-sm)}.analytics-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.analytics-metric{position:relative;overflow:hidden;min-height:126px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 92%,transparent)}.analytics-metric:after{content:"";position:absolute;inset:auto 14px 0 14px;height:3px;border-radius:999px 999px 0 0;background:var(--color-text-subtle);opacity:.8}.analytics-metric-danger:after{background:var(--color-danger)}.analytics-metric-warn:after{background:var(--color-warning)}.analytics-metric-success:after{background:var(--color-primary)}.analytics-metric-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--letter-wide);text-transform:uppercase}.analytics-metric-top i{width:8px;height:8px;border-radius:50%;background:currentColor}.analytics-metric strong{display:block;margin-top:18px;font-size:38px;line-height:.95}.analytics-metric p{margin:10px 0 0;color:var(--color-text-muted);font-size:var(--fs-sm)}.analytics-filter-bar{position:sticky;top:0;z-index:9;display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg) 76%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.analytics-search-form{display:flex;gap:8px;flex:1 1 320px;align-items:end}.analytics-field{display:block;min-width:220px}.analytics-field-search{flex:1;min-width:220px}.analytics-field-sort{min-width:250px}.analytics-field>span{display:block;margin-bottom:6px;color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--letter-wide);text-transform:uppercase}.analytics-field input,.analytics-field select{width:100%;box-sizing:border-box;min-height:42px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);font:inherit;outline:none;transition:border-color .16s ease,background .16s ease}.analytics-field input:focus,.analytics-field select:focus{border-color:var(--color-primary);background:var(--color-bg)}.analytics-primary-button,.analytics-reset-button,.analytics-icon-button{min-height:42px;border-radius:var(--radius-sm);font:inherit;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.analytics-primary-button{padding:0 18px;border:0;background:var(--color-primary);color:var(--color-primary-contrast);font-weight:800}.analytics-reset-button{padding:0 14px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-muted)}.analytics-primary-button:hover,.analytics-reset-button:hover,.analytics-icon-button:hover{transform:translateY(-1px)}.analytics-primary-button:active,.analytics-reset-button:active,.analytics-icon-button:active{transform:translateY(0)}.analytics-workspace{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.analytics-workspace.has-detail{grid-template-columns:minmax(0,1fr) 392px}.analytics-table-card{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 94%,transparent)}.analytics-table{width:100%;min-width:1040px;border-collapse:collapse}.analytics-table thead{position:sticky;top:0;z-index:2;background:var(--color-bg-secondary)}.analytics-table th{padding:12px 14px;color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--letter-wide);text-align:left;text-transform:uppercase;border-bottom:1px solid var(--color-border)}.analytics-table td{padding:14px;vertical-align:top;border-top:1px solid var(--color-border)}.analytics-table tbody tr{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.analytics-table tbody tr:hover{background:color-mix(in srgb,var(--color-bg-elevated) 58%,transparent)}.analytics-table tbody tr.is-active{background:color-mix(in srgb,var(--color-primary-soft) 72%,transparent);box-shadow:inset 3px 0 0 var(--color-primary)}.analytics-student-cell{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:start}.analytics-avatar{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-primary);font-size:var(--fs-sm);font-weight:800}.analytics-main-text{font-weight:700}.analytics-muted{margin-top:4px;color:var(--color-text-muted);font-size:var(--fs-xs);line-height:1.45}.analytics-tag-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.analytics-progress-head{display:flex;justify-content:space-between;margin-bottom:8px}.analytics-progress-bar,.analytics-risk-meter{overflow:hidden;height:6px;border-radius:999px;background:var(--color-bg)}.analytics-progress-bar span,.analytics-risk-meter span{display:block;height:100%;border-radius:inherit}.analytics-progress-bar span{background:var(--color-primary)}.analytics-risk-meter{min-width:72px;height:5px;margin-top:8px}.analytics-risk-meter span{background:var(--color-danger)}.analytics-status-line{display:inline-flex;align-items:center;gap:7px;font-weight:700}.analytics-status-line i{width:8px;height:8px;border-radius:50%;background:currentColor}.analytics-status-success{color:var(--color-success-text)}.analytics-status-danger{color:var(--color-danger-text)}.analytics-inline-stats{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.analytics-inline-stats span{color:var(--color-text-muted);font-size:var(--fs-sm)}.analytics-inline-stats b{color:var(--color-text)}.analytics-risk-cell{display:flex;flex-direction:column;align-items:flex-start}.analytics-detail-panel{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 94%,transparent)}.analytics-detail-header{display:flex;justify-content:space-between;gap:10px}.analytics-detail-header h2{margin:0;font-size:var(--fs-lg);line-height:1.25}.analytics-icon-button{width:34px;height:34px;min-height:34px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:18px}.analytics-detail-stack{display:flex;flex-direction:column;gap:18px;margin-top:16px}.analytics-detail-score{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.analytics-detail-title{margin:0 0 8px}.analytics-detail-list{display:flex;flex-direction:column;gap:8px}.analytics-detail-link{color:var(--color-text);text-decoration:none}.analytics-mini-row{padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);transition:border-color .16s ease,background .16s ease}.analytics-detail-link:hover .analytics-mini-row,.analytics-mini-row:hover{border-color:var(--color-border-strong);background:var(--color-bg-elevated)}.analytics-mini-row>div{font-weight:700}.analytics-mini-row>span{display:block;margin-top:4px;color:var(--color-text-muted);font-size:var(--fs-xs)}.analytics-error{padding:12px 14px;border:1px solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger-text)}.analytics-empty-state{padding:32px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 92%,transparent)}.analytics-empty-state h2{margin:10px 0 8px}.analytics-empty-state p{margin:0;color:var(--color-text-muted)}.analytics-skeleton-card{padding:14px}.analytics-skeleton-row{display:grid;grid-template-columns:1.4fr 1fr .8fr 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--color-border)}.analytics-skeleton-row:last-child{border-bottom:0}.analytics-skeleton-row span{height:16px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-bg) 0%,var(--color-bg-elevated) 48%,var(--color-bg) 100%);background-size:200% 100%;animation:analytics-skeleton 1.3s ease-in-out infinite}@keyframes analytics-skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width: 1080px){.student-analytics-hero,.analytics-workspace.has-detail{grid-template-columns:1fr}.student-analytics-total{text-align:left}.analytics-detail-panel{position:static;max-height:none}}@media (max-width: 760px){.student-analytics-shell{padding:28px 20px 72px}.analytics-metric-grid{grid-template-columns:1fr}.analytics-filter-bar{position:static}.analytics-search-form,.analytics-field,.analytics-field-sort{min-width:100%}.analytics-primary-button,.analytics-reset-button{width:100%}}.course-index{max-width:1180px;margin:0 auto;padding:72px 40px 96px}.course-index-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;margin-bottom:32px}.course-index-title{margin:0 0 14px;font-size:var(--fs-h1);font-weight:800;letter-spacing:0;text-wrap:balance}.course-index-hero p,.course-detail-description,.auth-copy{max-width:64ch;margin:0;color:var(--color-text-muted);font-size:var(--fs-md);line-height:1.65}.course-index-metric{min-width:132px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 88%,transparent);text-align:right}.course-index-metric strong{display:block;color:var(--color-text);font-size:34px;line-height:1}.course-index-metric span{display:block;margin-top:6px;color:var(--color-text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--letter-wide)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;list-style:none;padding:0;margin:0}.course-card-shell{display:block;min-height:100%;color:var(--color-text);text-decoration:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 92%,transparent);overflow:hidden;transition:transform .18s ease,border-color .18s ease,background .18s ease}.course-card-shell:hover{color:var(--color-text);transform:translateY(-2px);border-color:var(--color-border-strong);background:var(--color-bg-secondary)}.course-card-shell:active{transform:translateY(0)}.course-card-shell.is-locked{opacity:.76}.course-card-core{min-height:330px;display:flex;flex-direction:column;padding:14px;box-sizing:border-box}.course-card-top{position:relative;margin-bottom:18px}.course-card-cover{display:block;width:100%;aspect-ratio:16 / 10;object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.course-card-cover-placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-primary);font-size:56px;font-weight:800}.course-card-status{position:absolute;top:10px;left:10px;max-width:calc(100% - 20px);padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.course-card-body{min-width:0}.course-card-body h2{margin:0 0 10px;font-size:26px;line-height:1.12;letter-spacing:0;text-wrap:balance}.course-card-body p{margin:0;color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.6}.course-card-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:22px;color:var(--color-text-muted);font-size:var(--fs-sm)}.practice-entry,.course-empty-state{margin-top:24px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 88%,transparent)}.practice-entry{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;color:var(--color-text);text-decoration:none;transition:border-color .18s ease,transform .18s ease}.practice-entry:hover{color:var(--color-text);border-color:var(--color-border-strong);transform:translateY(-1px)}.practice-entry-arrow{flex:0 0 auto;width:42px;height:42px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;color:var(--color-primary);background:var(--color-primary-soft);font-size:22px}.course-empty-state{padding:32px}.course-empty-state p{margin:8px 0 0;color:var(--color-text-muted)}.course-detail{max-width:1080px;margin:0 auto;padding:48px 40px 88px}.course-detail-narrow{max-width:720px;padding-top:80px}.course-back-link{color:var(--color-text-muted);font-size:var(--fs-sm);text-decoration:none}.course-back-link:hover{color:var(--color-text)}.course-detail-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:start;margin-top:28px;margin-bottom:34px}.course-detail-cover{width:clamp(118px,18vw,176px);height:clamp(118px,18vw,176px);flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);object-fit:contain;background:var(--color-bg-secondary)}.course-detail-copy{min-width:0}.course-detail-title{margin:0 0 16px;font-weight:800;letter-spacing:0;text-wrap:balance}.course-error-title{margin:32px 0 16px;font-size:var(--fs-h2);letter-spacing:0}.course-muted-text{margin:0;color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.6}.course-access-panel,.course-preview-note,.course-progress-panel,.course-module-preview{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 90%,transparent)}.course-access-panel{padding:32px}.course-access-lead{margin:0 0 12px;color:var(--color-text)}.course-preview-note{margin-bottom:24px;padding:16px;color:var(--color-text-muted);font-size:var(--fs-sm)}.course-progress-panel{display:flex;align-items:center;gap:32px;padding:26px}.course-progress-copy{flex:1;min-width:240px}.course-progress-count{color:var(--color-text);font-size:36px;font-weight:750;letter-spacing:0}.course-progress-separator{margin:0 8px;color:var(--color-text-subtle)}.course-progress-total,.course-progress-label{color:var(--color-text-muted)}.course-progress-label{margin-left:12px;font-size:var(--fs-sm);font-weight:400}.course-progress-track,.course-module-track{height:3px;overflow:hidden;border-radius:999px;background:var(--color-border)}.course-progress-track{margin-top:16px}.course-progress-track>div,.course-module-track>div{height:100%;background:var(--color-primary);transition:width .2s ease}.course-primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);font-size:var(--fs-md);font-weight:750;text-decoration:none;white-space:nowrap;box-shadow:0 10px 26px #22c55e2e}.course-primary-link:hover{color:var(--color-primary-contrast);background:var(--color-primary-hover)}.course-stat-grid{margin-top:22px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:color-mix(in srgb,var(--color-bg-secondary) 84%,transparent)}.course-stat{padding:16px 20px;border-right:1px solid var(--color-border)}.course-stat:last-child{border-right:0}.course-stat>div:last-child{color:var(--color-text);font-size:var(--fs-md);font-weight:650}.course-module-preview{margin-top:28px;padding:24px}.course-module-preview-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}.course-module-preview h2,.course-module-item h3{letter-spacing:0}.course-module-preview h2{margin:6px 0 0;font-size:28px}.course-module-list{display:grid;gap:10px}.course-module-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.course-module-item h3{margin:6px 0;font-size:var(--fs-xl);line-height:1.2}.course-module-track{margin-top:12px}.course-module-link,.course-module-locked{white-space:nowrap;font-size:var(--fs-sm);font-weight:650}.course-module-link{color:var(--color-primary)}.course-module-locked{color:var(--color-text-muted)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.auth-shell{width:100%;max-width:390px;padding:28px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-bg-secondary) 88%,transparent);box-sizing:border-box}.auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:42px}.auth-brand span{width:10px;height:10px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 12px color-mix(in srgb,var(--color-primary) 60%,transparent)}.auth-brand strong{font-size:var(--fs-md);font-weight:650}.auth-title{margin:0 0 24px;font-size:34px;font-weight:800;letter-spacing:0}.auth-note{margin:12px 0 24px;color:var(--color-text-subtle);font-size:var(--fs-sm)}.auth-error{margin:12px 0 0;color:var(--color-danger);font-size:var(--fs-sm)}.auth-divider{position:relative;margin:20px 0;text-align:center;color:var(--color-text-subtle);font-size:var(--fs-sm)}.auth-divider:before{content:"";position:absolute;inset:50% 0 auto;height:1px;background:var(--color-border)}.auth-divider span{position:relative;z-index:1;padding:0 12px;background:var(--color-bg-secondary)}.auth-register{margin-top:32px;text-align:center;color:var(--color-text-muted);font-size:var(--fs-sm)}@media (max-width: 720px){.page-pad{padding:24px 16px!important;padding-left:max(16px,env(safe-area-inset-left))!important;padding-right:max(16px,env(safe-area-inset-right))!important}.page-h1{font-size:32px!important;letter-spacing:0!important}pre{overflow-x:auto;max-width:100%}img{max-width:100%;height:auto}.course-index,.course-detail{padding-top:34px!important;padding-bottom:72px!important}.course-index-hero,.course-detail-hero{grid-template-columns:1fr;gap:18px}.course-index-hero{margin-bottom:22px}.course-index-title,.course-detail-title{font-size:34px!important}.course-index-metric{width:100%;min-width:0;box-sizing:border-box;text-align:left}.course-grid{grid-template-columns:1fr;gap:14px}.course-card-core{min-height:0}.course-card-body h2{font-size:24px}.practice-entry{align-items:flex-start;padding:16px}.course-detail-cover{width:116px;height:116px}.course-progress-panel,.course-module-item{grid-template-columns:1fr;display:grid}.course-progress-panel{padding:18px;gap:18px}.course-progress-count{font-size:30px}.course-primary-link{width:100%;box-sizing:border-box}.course-stat-grid{grid-template-columns:1fr!important}.course-stat{border-right:0;border-bottom:1px solid var(--color-border)}.course-stat:last-child{border-bottom:0}.course-module-preview{padding:16px}.course-module-link{justify-self:start}.auth-page{align-items:stretch;padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.auth-shell{max-width:none;align-self:center;padding:22px}.auth-title{font-size:30px}}@media (max-width: 480px){.page-h1{font-size:26px!important}}.mobile-nav-toggle{display:none}@media (max-width: 720px){.desktop-nav{display:none!important}.mobile-nav-toggle{display:inline-flex!important}}.mobile-nav-overlay{position:fixed;top:60px;right:0;bottom:0;left:0;background:var(--color-bg);z-index:50;padding:24px 20px;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--color-border)}.mobile-nav-overlay a{padding:14px 16px;border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;font-size:var(--fs-md);font-weight:500}.mobile-nav-overlay a:hover,.mobile-nav-overlay a.active{background:var(--color-bg-secondary);color:var(--color-primary)}.report-issue-button{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-muted);font-family:inherit;font-size:var(--fs-xs);font-weight:600;cursor:pointer;white-space:nowrap}.report-issue-button:hover{color:var(--color-text);border-color:var(--color-border-strong);background:var(--color-bg-secondary)}.report-issue-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:#0000008a}.report-issue-dialog{width:min(560px,100%);max-height:min(720px,calc(100vh - 40px));overflow:auto;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);box-shadow:var(--shadow-md);padding:20px}.report-issue-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.report-issue-dialog h2{margin:0;font-size:20px;line-height:1.25}.report-issue-muted{margin:10px 0 14px;color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.5}.report-issue-close{width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer}.report-issue-page{margin-top:8px;color:var(--color-text-subtle);font-family:var(--font-mono);font-size:11px;overflow-wrap:anywhere}.report-issue-error{margin-top:10px;color:var(--color-danger);font-size:var(--fs-sm)}.report-issue-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.report-issue-primary,.report-issue-secondary{min-height:36px;padding:0 14px;border-radius:var(--radius-sm);font-family:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.report-issue-primary{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-primary-contrast)}.report-issue-primary:disabled{opacity:.65;cursor:default}.report-issue-secondary{border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted)}@media (max-width: 640px){.hw-thread-page{padding:16px 12px!important}.hw-thread-page h1{font-size:var(--fs-md)!important}}@media (max-width: 640px){.hw-composer textarea{font-size:16px!important}}@media (max-width: 900px){.hw-thread-grid{grid-template-columns:1fr!important;gap:16px!important}.hw-thread-side{position:static!important;max-height:none!important}}@keyframes hw-pulse{0%,to{opacity:.6}50%{opacity:1}}.hw-curator-placeholder{animation:hw-pulse 2s ease-in-out infinite}@media (max-width: 900px){[data-curator-ws]{grid-template-columns:1fr!important;height:auto!important}[data-curator-ws]>aside{max-height:40vh;border-left:0!important;border-right:0!important;border-bottom:1px solid var(--color-border)}}.lesson-md pre{background:var(--color-code-bg);color:var(--color-code-text);padding:14px 16px;border:1px solid var(--color-code-border);border-radius:var(--radius-md);overflow-x:auto;margin:16px 0;font-size:16px;line-height:1.55}.lesson-md pre code,.lesson-md pre code.hljs{background:transparent;padding:0;color:inherit;font-family:var(--font-mono)}.lesson-md :not(pre)>code,.lesson-inline-code,.quiz-inline-code{font-family:var(--font-mono);font-size:.92em;color:var(--color-text);display:inline-block;line-height:1.2;max-width:100%;vertical-align:middle;white-space:nowrap;word-break:normal;overflow-wrap:normal}.lesson-md :not(pre)>code.is-symbol,.lesson-inline-code.is-symbol,.quiz-inline-code.is-symbol{padding:0 1px;border:0;background:transparent;color:color-mix(in srgb,var(--color-primary) 82%,var(--color-text));font-weight:750}.lesson-md :not(pre)>code.is-chip,.lesson-inline-code.is-chip,.quiz-inline-code.is-chip{padding:0 4px;border:1px solid var(--color-border);border-radius:3px;background:var(--color-code-inline-bg)}.lesson-md :not(pre)>code.is-blockish,.lesson-inline-code.is-blockish,.quiz-inline-code.is-blockish{display:block;margin:8px 0;padding:10px 12px;border:1px solid var(--color-code-border);border-radius:var(--radius-sm);background:var(--color-code-bg);color:var(--color-code-text);overflow-x:auto;white-space:pre;line-height:1.45}.lesson-md table :not(pre)>code{padding:2px 6px;background:var(--color-code-inline-bg);border:1px solid var(--color-border)}.lesson-md table{display:block;width:100%;max-width:100%;margin:18px 0;border-collapse:collapse;border:1px solid var(--color-code-border);border-radius:var(--radius-md);overflow-x:auto;font-size:.95em;line-height:1.5}.lesson-md table thead{background:var(--color-code-inline-bg)}.lesson-md table th,.lesson-md table td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-code-border)}.lesson-md table th{font-weight:600;color:var(--color-text);white-space:nowrap}.lesson-md table tbody tr:last-child th,.lesson-md table tbody tr:last-child td{border-bottom:none}.lesson-md table tbody tr:hover{background:var(--color-code-inline-bg)}.lesson-md h1,.lesson-md h2,.lesson-md h3,.lesson-md h4{margin-top:1.6em;margin-bottom:.5em;line-height:1.3;color:var(--color-text)}.lesson-md h2{font-size:1.5em}.lesson-md h3{font-size:1.25em}.lesson-theory-solo>.lesson-md:first-child>:first-child{margin-top:0}.lesson-md p{line-height:1.7;color:var(--color-text)}.lesson-md ul,.lesson-md ol{line-height:1.7}.lesson-md a{color:var(--color-primary)}.lesson-md hr{height:0;margin:40px 0;border:0;border-top:1px solid var(--color-border)}.lesson-video-shell{width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#000;border:1px solid var(--color-border);isolation:isolate}.lesson-video-shell iframe,.lesson-video-shell video{display:block;width:100%;height:100%;border:0;border-radius:inherit}.lesson-video-shell video{object-fit:contain}.lesson-video-focus{width:min(100%,880px);margin:0 0 40px}.lesson-theory-solo{max-width:820px;margin:0 auto;min-width:0}.g-done,.g-cur{color:var(--color-success)}.g-av,.g-lock{color:var(--color-text-subtle)}.compass-dock{position:fixed;left:24px;bottom:24px;z-index:40;display:inline-flex;align-items:center;gap:11px;max-width:min(320px,46vw);padding:10px 16px;border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-bg-secondary) 86%,transparent);color:var(--color-text);font-family:inherit;cursor:pointer;opacity:.42;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-md);transition:opacity .28s cubic-bezier(.32,.72,0,1),transform .28s cubic-bezier(.32,.72,0,1)}.compass-dock:hover,.compass-dock:focus-visible{opacity:1;transform:translateY(-1px)}.compass-dock:focus-visible{outline:2px solid var(--color-info);outline-offset:2px;border-color:var(--color-info)}[data-theme=light] .compass-dock{opacity:.72}.compass-dock-ring{display:inline-flex;flex:none}.compass-dock-title{font-size:13px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compass-dock-frac{font-size:11px;color:var(--color-text-muted);flex:none}@media (prefers-reduced-motion: reduce){.compass-dock{transition:none}}.coursemap-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0000008a;opacity:0;pointer-events:none;transition:opacity .12s ease}.coursemap-backdrop.is-open{opacity:1;pointer-events:auto}.coursemap{position:fixed;left:50%;top:14vh;z-index:61;display:flex;flex-direction:column;width:min(640px,92vw);max-height:78vh;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transform:translate(-50%) translateY(8px) scale(.985);transition:opacity .15s cubic-bezier(.22,1,.36,1),transform .15s cubic-bezier(.22,1,.36,1)}.coursemap.is-open{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0) scale(1)}.coursemap-search{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-border);color:var(--color-text-subtle)}.coursemap-search input{flex:1;min-width:0;border:0;background:none;outline:none;color:var(--color-text);font-family:var(--font-sans);font-size:16px}.coursemap-search input::placeholder{color:var(--color-text-subtle)}.coursemap-filters{display:flex;gap:6px;padding:10px 16px 4px}.coursemap-filters button{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:none;color:var(--color-text-muted);font-family:inherit;font-size:var(--fs-xs);font-weight:600;padding:5px 12px;cursor:pointer}.coursemap-filters button.is-active{color:var(--color-primary-contrast);background:var(--color-primary);border-color:var(--color-primary)}.coursemap-list{flex:1;min-height:0;overflow-y:auto;padding:8px 8px 4px}.coursemap-empty{padding:24px 12px;color:var(--color-text-muted);font-size:var(--fs-sm);text-align:center}.coursemap-row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-left:2px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--color-text);font-family:inherit;text-align:left;cursor:pointer}.coursemap-row:hover:not(:disabled),.coursemap-row.is-sel{background:var(--color-bg-elevated)}.coursemap-row.is-lock{color:var(--color-text-subtle);cursor:default}.coursemap-row-dot{width:16px;flex:none;text-align:center;font-weight:700}.coursemap-row-title{flex:1;min-width:0;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coursemap-row-sub{flex:none;font-family:var(--font-mono);font-size:10px;color:var(--color-text-subtle)}.coursemap-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:11px;color:var(--color-text-subtle)}.coursemap-legend{display:flex;gap:12px;flex-wrap:wrap}@media (prefers-reduced-motion: reduce){.coursemap-backdrop,.coursemap{transition:none}}@media (max-width: 720px){.compass-dock{left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:121;transform:translate(-50%);opacity:1;max-width:min(92vw,360px)}.compass-dock:hover,.compass-dock:focus-visible{transform:translate(-50%) translateY(-1px)}.lesson-outline-fab{display:none}.coursemap{z-index:122;left:0;top:0;width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;transform:translateY(12px)}.coursemap.is-open{transform:translateY(0)}}.exercise-card{position:relative;border:1px solid var(--color-border-strong);border-radius:12px;padding:22px;margin:24px 0;background:linear-gradient(180deg,var(--color-bg-secondary),var(--color-bg));box-shadow:var(--shadow-md),inset 0 1px #ffffff0a;animation:exercise-rise .52s cubic-bezier(.22,1,.36,1) both}@keyframes exercise-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.exercise-card{animation:none}}.exercise-split{display:grid;grid-template-columns:var(--ex-col, 42%) 18px minmax(0,1fr);align-items:stretch}.exercise-split.is-rail{grid-template-columns:44px 18px minmax(0,1fr)}.exercise-brief{position:relative;min-width:0;box-sizing:border-box;height:0;min-height:100%;overflow:auto;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:10px;padding:18px}.exercise-brief-inner{min-width:260px}.exercise-brief :not(pre)>code{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.exercise-col-handle{cursor:col-resize;position:relative;display:flex;align-items:center;justify-content:center}.exercise-col-handle:before{content:"";width:1px;height:100%;background:transparent;transition:background .12s ease,width .12s ease}.exercise-col-handle:hover:before,.exercise-col-handle:focus-visible:before{background:var(--color-primary);width:2px}.exercise-col-handle:after{content:"";position:absolute;top:0;right:-5px;bottom:0;left:-5px}.exercise-col-handle:focus-visible{outline:none}.exercise-brief-rail{display:none;flex-direction:column;align-items:center;gap:9px;color:var(--color-text-muted)}.exercise-brief-rail-icon{display:flex}.exercise-brief-rail-icon svg{width:16px;height:16px;display:block}.exercise-brief-rail-text{white-space:nowrap;writing-mode:vertical-rl;transform:rotate(180deg);text-transform:uppercase;letter-spacing:var(--letter-wide);font-size:var(--fs-xs)}.exercise-split.is-rail .exercise-brief{overflow:hidden;padding:16px 0 0;cursor:pointer;display:flex;align-items:flex-start;justify-content:center}.exercise-split.is-rail .exercise-brief:hover{border-color:var(--color-border-strong)}.exercise-split.is-rail .exercise-brief:hover .exercise-brief-rail{color:var(--color-text)}.exercise-split.is-rail .exercise-brief-inner{display:none}.exercise-split.is-rail .exercise-brief-rail{display:flex}.exercise-fs-btn{flex:0 0 auto;width:26px;height:22px;display:inline-grid;place-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;font-size:15px;line-height:1;transition:color .14s,background .14s}.exercise-fs-btn:hover{color:var(--color-text);background:var(--color-bg-elevated)}.pane-collapse-btn{position:absolute;top:8px;right:8px;z-index:3;width:26px;height:24px;display:inline-grid;place-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-subtle);cursor:pointer;transition:color .14s,background .14s}.pane-collapse-btn:hover{color:var(--color-text);background:var(--color-bg-secondary)}.pane-collapse-btn svg{width:15px;height:15px;display:block}.exercise-card.is-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;margin:0;border-radius:0;padding:22px 24px;overflow:hidden;display:flex;flex-direction:column;animation:none}.exercise-card.is-fullscreen .exercise-split,.exercise-card.is-fullscreen .exercise-workspace{flex:1;min-height:0}.exercise-card.is-fullscreen .exercise-editor-bezel,.exercise-card.is-fullscreen .exercise-editor-core{flex:1;min-height:0;display:flex;flex-direction:column}.exercise-card.is-fullscreen .exercise-editor-core .code-editor-shell{flex:1;min-height:0;max-height:none!important}.exercise-card.is-fullscreen .exercise-editor-core .cm-editor{height:100%;max-height:none!important}.exercise-card.is-fullscreen .exercise-tcpanel,.exercise-card.is-fullscreen .exercise-actions{flex:0 0 auto}.exercise-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.exercise-title-row h4{margin:0;color:var(--color-text)}.exercise-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;padding:5px 12px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-bg);color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--letter-wide)}.exercise-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 10px color-mix(in srgb,var(--color-primary) 70%,transparent)}.exercise-description{color:var(--color-text);font-size:var(--fs-md);line-height:1.6;max-width:64ch}.exercise-description p:first-child{margin-top:0}.exercise-public-checks{margin-top:18px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.exercise-public-checks-title{margin-bottom:8px;color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-wide)}.exercise-public-checks ul{margin:0;padding-left:18px;color:var(--color-text-muted);font-size:var(--fs-md);line-height:1.55}.exercise-public-checks li+li{margin-top:6px}.exercise-public-checks li p{margin:0}.exercise-tcpanel{order:1;margin-top:14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-elevated);overflow:hidden}.exercise-tcpanel-tabs{display:flex;gap:4px;padding:6px 8px 0;border-bottom:1px solid var(--color-border)}.exercise-tcpanel-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:none;background:none;cursor:pointer;color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:600;border-bottom:2px solid transparent;transition:color .2s cubic-bezier(.32,.72,0,1),border-color .2s cubic-bezier(.32,.72,0,1)}.exercise-tcpanel-tab:hover{color:var(--color-text)}.exercise-tcpanel-tab.is-active{color:var(--color-text);border-bottom-color:var(--color-primary)}.exercise-tcpanel-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.exercise-tcpanel-dot.is-ok{background:var(--color-success)}.exercise-tcpanel-dot.is-bad{background:var(--color-danger)}.exercise-tcpanel-body{padding:12px;display:grid;gap:12px;align-content:start;height:clamp(160px,25vh,226px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.exercise-tcpanel-body::-webkit-scrollbar{width:8px}.exercise-tcpanel-body::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.exercise-tcpanel-body::-webkit-scrollbar-track{background:transparent}.exercise-tcpanel-body::-webkit-scrollbar-button{display:none}.exercise-cases{display:grid;gap:14px}.exercise-case-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;max-width:100%}.exercise-case-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:5px 12px;border:0;border-radius:7px;background:transparent;cursor:pointer;color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:500;transition:color .14s ease,background .14s ease}.exercise-case-tab:hover{color:var(--color-text);background:color-mix(in srgb,var(--color-text) 6%,transparent)}.exercise-case-tab.is-active{color:var(--color-text);background:color-mix(in srgb,var(--color-text) 10%,transparent)}.exercise-case-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.exercise-case-fields{display:grid;gap:10px}.exercise-case-field label{display:block;margin-bottom:5px;color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-wide)}.exercise-case-field pre{position:relative;margin:0;padding:9px 12px 9px 26px;border:1px solid var(--color-output-border);border-left:2px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-output-bg);color:var(--color-output-text);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word;max-width:92ch}.exercise-case-field pre code{font-family:inherit}.exercise-case-field pre:before{content:"›";position:absolute;left:11px;top:9px;color:var(--color-text-muted);font-weight:700}.exercise-case-field.is-out pre{border-left-color:var(--color-success)}.exercise-case-field.is-out pre:before{content:"=";color:var(--color-success-text)}.exercise-workspace{min-width:0;display:flex;flex-direction:column}.exercise-editor-bezel{padding:0;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-elevated);overflow:hidden}.exercise-editor-core{overflow:hidden;background:transparent}.exercise-editor-core .code-editor-shell{border:none!important;border-radius:0!important;background:transparent!important}.exercise-editor-core .cm-editor{background:transparent;font-family:var(--font-mono);font-size:16px}.exercise-editor-core .cm-editor.cm-focused{outline:none}.code-editor-shell .cm-content:focus-visible,.code-editor-shell .cm-editor:focus-visible,.code-editor-shell .cm-scroller:focus-visible{outline:none}.exercise-editor-core .cm-scroller{font-family:var(--font-mono);line-height:1.55;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.exercise-editor-core .cm-scroller::-webkit-scrollbar{width:8px;height:8px}.exercise-editor-core .cm-scroller::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.exercise-editor-core .cm-scroller::-webkit-scrollbar-track{background:transparent}.exercise-editor-core .cm-scroller::-webkit-scrollbar-button{display:none;height:0;width:0}.exercise-editor-core .cm-content{padding:12px 0;caret-color:var(--color-text)}.exercise-editor-core .cm-line{padding:0 14px}.exercise-editor-core .cm-gutters{background:var(--color-bg-elevated);border-right:1px solid var(--color-border);color:var(--color-text-subtle)}.exercise-editor-core .cm-lineNumbers .cm-gutterElement{color:var(--color-text-subtle);padding:0 10px 0 16px;min-width:22px}.exercise-editor-core .cm-foldGutter{display:none}.exercise-editor-core .cm-activeLine{background:color-mix(in srgb,var(--color-text) 4%,transparent)}.exercise-editor-core .cm-activeLineGutter{background:transparent;color:var(--color-text-muted)}.exercise-editor-core .cm-cursor{border-left-color:var(--color-text)}.exercise-editor-core .cm-selectionBackground,.exercise-editor-core .cm-focused .cm-selectionBackground{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}.exercise-editor-core .cm-searchMatch{background:color-mix(in srgb,var(--color-warning) 28%,transparent)}.exercise-editor-core .cm-searchMatch.cm-searchMatch-selected{background:color-mix(in srgb,var(--color-warning) 48%,transparent)}.exercise-editor-core .cm-matchingBracket,.exercise-editor-core .cm-focused .cm-matchingBracket{background:color-mix(in srgb,var(--color-primary) 18%,transparent);outline:1px solid color-mix(in srgb,var(--color-primary) 55%,transparent);outline-offset:-1px}.exercise-editor-core .cm-nonmatchingBracket,.exercise-editor-core .cm-focused .cm-nonmatchingBracket{background:color-mix(in srgb,var(--color-danger) 16%,transparent)}.exercise-editor-core .cm-foldPlaceholder{background:transparent;border:1px dashed var(--color-border-strong);color:var(--color-text-subtle)}.exercise-editor-head{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:5px 8px 5px 14px;border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted)}.exercise-editor-status{color:var(--color-text-subtle);font-weight:500}.exercise-actions{order:2;margin-top:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.exercise-run-btn,.exercise-submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 18px;border-radius:var(--radius-pill);font-family:inherit;font-weight:600;cursor:pointer;transition:background .24s cubic-bezier(.32,.72,0,1),transform .24s cubic-bezier(.32,.72,0,1),filter .24s cubic-bezier(.32,.72,0,1),box-shadow .24s cubic-bezier(.32,.72,0,1)}.exercise-run-btn:active,.exercise-submit-btn:active{transform:scale(.97)}.exercise-run-btn{background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border-strong)}.exercise-run-btn:hover{border-color:var(--color-text-subtle);filter:brightness(1.12)}.exercise-submit-btn{background:var(--color-primary);color:var(--color-primary-contrast);border:1px solid var(--color-primary)}.exercise-submit-btn:hover{filter:brightness(1.06);box-shadow:0 8px 24px #22c55e38}.exercise-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#0000002e;font-size:12px;line-height:1;transition:transform .24s cubic-bezier(.32,.72,0,1)}.exercise-submit-btn:hover .exercise-btn-icon{transform:translate(2px) scale(1.05)}.exercise-run-btn:disabled,.exercise-submit-btn:disabled{cursor:default;opacity:.6;transform:none}.exercise-result{display:grid;gap:12px}.exercise-verdict{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid;border-radius:var(--radius-md);animation:exercise-verdict-pop .38s cubic-bezier(.22,1,.36,1) both}@keyframes exercise-verdict-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.exercise-verdict{animation:none}}.exercise-verdict-pass{background:var(--color-success-soft);border-color:color-mix(in srgb,var(--color-success) 50%,transparent)}.exercise-verdict-fail{background:var(--color-danger-soft);border-color:color-mix(in srgb,var(--color-danger) 45%,transparent)}.exercise-verdict-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;font-size:16px;font-weight:700}.exercise-verdict-pass .exercise-verdict-icon{background:color-mix(in srgb,var(--color-success) 22%,transparent);color:var(--color-success-text);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-success) 12%,transparent)}.exercise-verdict-fail .exercise-verdict-icon{background:color-mix(in srgb,var(--color-danger) 20%,transparent);color:var(--color-danger-text)}.exercise-verdict-text{display:flex;flex-direction:column;gap:2px;min-width:0}.exercise-verdict-text strong{color:var(--color-text);font-size:var(--fs-md);font-weight:700}.exercise-verdict-detail{color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.4}.exercise-verdict-count{margin-left:auto;flex-shrink:0;font-size:var(--fs-md);font-weight:700}.exercise-verdict-pass .exercise-verdict-count{color:var(--color-success-text)}.exercise-verdict-fail .exercise-verdict-count{color:var(--color-danger-text)}.exercise-output{margin-top:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.exercise-output summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;cursor:pointer;color:var(--color-text);font-weight:600;list-style:none}.exercise-output summary::-webkit-details-marker{display:none}.exercise-output summary:after{content:"⌄";color:var(--color-text-muted);transition:transform .12s ease}.exercise-output[open] summary:after{transform:rotate(180deg)}.exercise-output-status{margin-left:auto;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-wide)}.exercise-output-status.is-ok,.exercise-success{color:var(--color-success)}.exercise-output-status.is-bad,.exercise-error{color:var(--color-danger)}.exercise-output-body{border-top:1px solid var(--color-border);padding:12px;display:grid;gap:12px}.exercise-muted{color:var(--color-text-muted);font-size:var(--fs-sm);margin:0}.exercise-warning{color:var(--color-warning);background:var(--color-warning-soft);border:1px solid var(--color-warning-border);border-radius:var(--radius-sm);padding:8px 12px;margin:0;font-size:var(--fs-sm)}.exercise-test-list{display:grid;gap:6px}.exercise-test-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px 8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);font-size:var(--fs-base);box-shadow:inset 3px 0 0 var(--color-border-strong)}.exercise-test-row.is-ok{box-shadow:inset 3px 0 0 var(--color-success)}.exercise-test-row.is-ok .exercise-test-ic{color:var(--color-success)}.exercise-test-row.is-bad{box-shadow:inset 3px 0 0 var(--color-danger);background:color-mix(in srgb,var(--color-danger-soft) 55%,var(--color-bg-secondary))}.exercise-test-row.is-bad .exercise-test-ic{color:var(--color-danger)}.exercise-test-row.is-bad small{color:var(--color-danger-text)}.exercise-test-row.is-skip{border-style:dashed;border-color:var(--color-border-strong);box-shadow:none;background:transparent;opacity:.72}.exercise-test-row.is-skip .exercise-test-ic,.exercise-test-row.is-skip .exercise-test-label{color:var(--color-text-subtle)}.exercise-test-ic{text-align:center;line-height:1.5;font-weight:700;color:var(--color-text-subtle)}.exercise-test-head{display:flex;align-items:center;gap:8px;min-width:0}.exercise-test-label{min-width:0}.exercise-test-chip{flex:none;padding:3px 6px;border-radius:var(--radius-pill);font-size:var(--fs-xxs);line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-wide);white-space:nowrap;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-text-muted) 12%,transparent)}.exercise-test-row.is-skip .exercise-test-chip{opacity:.7}.exercise-test-row small{display:block;margin-top:4px;font-size:var(--fs-sm);color:inherit;line-height:1.5}.exercise-output-pre-wrap{display:grid;gap:4px}.exercise-output-pre-label,.exercise-attempts-title{color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-wide)}.exercise-output-pre-wrap pre{margin:0;background:var(--color-output-bg);color:var(--color-output-text);border:1px solid var(--color-output-border);padding:12px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:15px;white-space:pre-wrap;max-width:92ch}.exercise-output-pre-wrap pre.is-error{background:var(--color-output-error-bg);color:var(--color-output-error-text);border-color:var(--color-output-error-border)}.exercise-attempts{display:grid;gap:8px;padding-top:4px}.exercise-attempt-rail{position:relative;display:grid;gap:10px;padding-left:14px}.exercise-attempt-rail:before{content:"";position:absolute;left:4px;top:5px;bottom:5px;width:1px;background:var(--color-border-strong)}.exercise-attempt-row{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:center;color:var(--color-text-muted);font-size:var(--fs-xs)}.exercise-attempt-dot{position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:var(--radius-pill);box-sizing:border-box;background:var(--color-bg)}.exercise-attempt-row.is-ok .exercise-attempt-dot{background:var(--color-success)}.exercise-attempt-row.is-bad .exercise-attempt-dot{background:var(--color-bg);border:2px solid var(--color-danger)}.exercise-attempt-row.is-ok .exercise-attempt-count{color:var(--color-success-text)}.exercise-attempt-row.is-bad .exercise-attempt-count{color:var(--color-danger-text)}.exercise-attempt-row time{color:var(--color-text-subtle)}.homework-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;margin:20px 0;background:var(--color-bg-secondary)}.homework-submit-btn{padding:10px 20px;background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:500;transition:background .14s ease,color .14s ease,border-color .14s ease}.homework-submit-btn:hover:not(:disabled){background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.homework-submit-btn:disabled{opacity:.5;cursor:default}.homework-withdraw-btn{padding:8px 16px;background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:500;transition:background .14s ease,color .14s ease,border-color .14s ease}.homework-withdraw-btn:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-muted)}.homework-withdraw-btn:disabled{opacity:.5;cursor:default}.homework-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.homework-title-row h4{margin:0;color:var(--color-text)}.homework-review-badge{display:inline-flex;align-items:center;gap:5px;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:3px 8px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-wide)}.llm-action-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.llm-action-button,.llm-action-link{min-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:0 14px;font:inherit;font-size:var(--fs-sm);font-weight:700;text-decoration:none}.llm-action-button{background:var(--color-bg);color:var(--color-text);cursor:pointer}.llm-action-link{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.lesson-md .llm-action-link,.lesson-md .llm-action-link:visited,.homework-card .llm-action-link,.homework-card .llm-action-link:visited{color:#fff}.llm-action-button:hover,.llm-action-link:hover{filter:brightness(1.04)}.lesson-md .llm-action-link:hover,.homework-card .llm-action-link:hover{color:#fff}.pboard-bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}.pboard-title{font-size:var(--fs-lg);font-weight:700;color:var(--color-text)}.pboard-prog{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-subtle)}.pboard-prog b{color:var(--color-success-text)}.pboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:16px}.pboard-tools{display:flex;align-items:center;gap:10px}.pboard-filter-wrap{position:relative}.pboard-views{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);overflow:hidden}.pboard-views button{display:inline-flex;align-items:center;gap:7px;border:0;border-right:1px solid var(--color-border-strong);background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--fs-sm);font-weight:600;padding:7px 14px;cursor:pointer;transition:color .14s ease,background .14s ease}.pboard-views button:last-child{border-right:0}.pboard-views button svg{color:var(--color-text-subtle)}.pboard-views button:hover{color:var(--color-text)}.pboard-views button.on{color:var(--color-text);background:var(--color-bg-elevated)}.pboard-views button.on svg{color:var(--color-primary)}.pboard-tbtn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-muted);font:inherit;font-size:var(--fs-sm);font-weight:600;padding:8px 14px;cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease}.pboard-tbtn:hover{color:var(--color-text);border-color:var(--color-text-subtle);background:var(--color-bg-elevated)}.pboard-tbtn.is-active{color:var(--color-text);border-color:var(--color-primary)}.pboard-tbtn-ic{display:inline-flex;color:var(--color-text-subtle)}.pboard-tbtn:hover .pboard-tbtn-ic,.pboard-tbtn.is-active .pboard-tbtn-ic{color:var(--color-primary)}.pboard-tbtn-dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary)}.pboard-pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.pboard-pop{position:absolute;z-index:31;top:calc(100% + 6px);left:0;min-width:200px;padding:6px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .5))}.pboard-pop-h{padding:6px 10px 8px;font-family:var(--font-mono);font-size:var(--fs-xxs);font-weight:700;letter-spacing:var(--letter-wide);text-transform:uppercase;color:var(--color-text-subtle)}.pboard-pop-opt{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.pboard-pop-opt:hover{background:var(--color-bg-elevated);color:var(--color-text)}.pboard-pop-opt.on{color:var(--color-text)}.pboard-pop-opt .ck{width:14px;flex:none;text-align:center;color:var(--color-primary);font-size:var(--fs-xs)}.pboard-add{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-primary);border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;font-size:var(--fs-sm);font-weight:700;padding:8px 16px;cursor:pointer;transition:filter .14s ease}.pboard-add:hover{filter:brightness(1.06)}.pboard-add span{font-size:var(--fs-md);line-height:1}.pboard-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(238px,1fr);gap:14px;overflow-x:auto;padding:14px;border:1px solid var(--color-border-strong);border-radius:14px;background:var(--color-bg);scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.pboard-col{display:flex;flex-direction:column;min-height:440px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-secondary)}.pboard-col-h{display:flex;align-items:center;gap:9px;padding:12px 13px;border-bottom:1px solid var(--color-border)}.pboard-col-h .nm{font-weight:700;font-size:var(--fs-sm)}.pboard-col-h .cnt{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-bg);background:var(--color-text-muted);border-radius:var(--radius-pill);padding:0 7px;min-width:20px;text-align:center}.pboard-hd{width:8px;height:8px;border-radius:50%;flex:none;background:var(--color-text-subtle)}.pboard-hd.st-cur{background:var(--color-primary)}.pboard-hd.st-review{background:var(--color-warning)}.pboard-hd.st-done{background:var(--color-success)}.pboard-col-body{flex:1;display:flex;flex-direction:column;gap:11px;padding:11px}.pboard-empty{flex:1;display:grid;place-items:center;margin:4px;padding:22px;text-align:center;color:var(--color-text-subtle);font-size:var(--fs-xs);border:1px dashed var(--color-border-strong);border-radius:10px}.pboard-card{position:relative;overflow:hidden;display:block;width:100%;text-align:left;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-elevated);padding:13px 14px;cursor:pointer;font:inherit;color:inherit;transition:border-color .14s ease,transform .14s ease}.pboard-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.pboard-card.is-draggable{cursor:grab}.pboard-card.is-dragging{opacity:.5;cursor:grabbing}.pboard-col.is-droptarget{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 7%,var(--color-bg-secondary))}.pboard-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-border-strong)}.pboard-card.st-done:before{background:var(--color-success)}.pboard-card.st-review:before{background:var(--color-warning)}.pboard-card.st-cur:before{background:var(--color-primary);box-shadow:0 0 12px color-mix(in srgb,var(--color-primary) 60%,transparent)}.pboard-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-xxs);font-weight:700;letter-spacing:var(--letter-wide);text-transform:uppercase;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-text-muted)}.pboard-chip.terminal{color:var(--color-success-text)}.pboard-chip.code{color:#9cc2ff}.pboard-chip.hw{color:var(--color-warning-text, #fcd34d)}.pboard-card-title{display:block;font-weight:600;font-size:var(--fs-sm);line-height:1.3;margin:10px 0 9px}.pboard-card-foot{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--fs-xxs);color:var(--color-text-muted)}.pboard-sdot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--color-text-subtle)}.pboard-card.st-done .pboard-sdot{background:var(--color-success)}.pboard-card.st-review .pboard-sdot{background:var(--color-warning)}.pboard-card.st-cur .pboard-sdot{background:var(--color-primary)}.pboard-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;padding:8px 14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-bg);color:var(--color-text-muted);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:color .14s ease,border-color .14s ease,background .14s ease}.pboard-back:hover{color:var(--color-text);border-color:var(--color-text-subtle);background:var(--color-bg-elevated)}.pboard-open>.exercise-card:first-of-type,.pboard-open>.homework-card:first-of-type{margin-top:0}.pboard-list{border:1px solid var(--color-border-strong);border-radius:14px;background:var(--color-bg);padding:8px;display:flex;flex-direction:column;gap:6px}.pboard-list-group+.pboard-list-group{margin-top:8px}.pboard-list-gh{display:flex;align-items:center;gap:9px;padding:8px 10px}.pboard-list-gh .nm{font-weight:700;font-size:var(--fs-sm)}.pboard-list-gh .cnt{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-bg);background:var(--color-text-muted);border-radius:var(--radius-pill);padding:0 7px;min-width:20px;text-align:center}.pboard-row{position:relative;display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);padding:11px 14px 11px 16px;cursor:pointer;font:inherit;color:inherit;transition:border-color .14s ease,background .14s ease}.pboard-row+.pboard-row{margin-top:6px}.pboard-row:hover{border-color:var(--color-border-strong);background:var(--color-bg-elevated)}.pboard-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:10px 0 0 10px;background:var(--color-border-strong)}.pboard-row.st-done:before{background:var(--color-success)}.pboard-row.st-review:before{background:var(--color-warning)}.pboard-row.st-cur:before{background:var(--color-primary)}.pboard-row-title{flex:1;min-width:0;font-weight:600;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pboard-row-status{flex:none;font-family:var(--font-mono);font-size:var(--fs-xxs);color:var(--color-text-muted)}@media (max-width: 760px){.pboard-cols{grid-auto-columns:84%}.pboard-row-status{display:none}}.lesson-bottom-nav{margin-top:40px;padding-top:24px;border-top:1px solid var(--color-border);display:grid;grid-template-columns:1fr 1fr;gap:16px}.lesson-bottom-nav--single{grid-template-columns:minmax(0,1fr)}.lesson-bottom-nav a{display:grid;gap:5px;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);text-decoration:none}.lesson-bottom-nav a:hover{border-color:var(--color-primary)}.lesson-bottom-nav__link--next{text-align:right}.lesson-bottom-nav span{color:var(--color-text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--letter-wide)}.lesson-bottom-nav strong{font-weight:600;line-height:1.35}.code-block{position:relative}.lesson-mobile-summary,.lesson-mobile-action-bar,.quiz-mobile-action-bar{display:none}.lesson-meta-row{margin-bottom:24px}.lesson-eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-primary);margin-bottom:8px}.lesson-topic{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.quiz-option{min-height:48px;box-sizing:border-box;-webkit-tap-highlight-color:transparent}.quiz-option:active{transform:scale(.995);filter:brightness(1.04)}.quiz-submit-button,.quiz-summary-primary,.lesson-next-cta-button{min-height:44px}.quiz-submit-button:disabled{background:var(--color-bg-elevated)!important;color:var(--color-text-muted)!important;border:1px solid var(--color-border)!important;opacity:1}.cm-editor{background:var(--cm-bg)!important;color:var(--cm-text);font-size:16px;width:100%;min-width:0;max-width:100%}.code-editor-shell{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.code-editor-shell .cm-editor,.code-editor-shell .cm-scroller,.code-editor-shell .cm-content{max-width:100%;min-width:0;box-sizing:border-box}.code-editor-shell .cm-scroller{overflow:auto;-webkit-overflow-scrolling:touch}.cm-editor .cm-content{caret-color:var(--cm-cursor);color:var(--cm-text)}.cm-editor .cm-gutters{background:var(--cm-gutter-bg)!important;color:var(--cm-gutter-text);border-right:1px solid var(--color-border)}.cm-editor .cm-activeLine,.cm-editor .cm-activeLineGutter{background-color:var(--cm-active-line)!important}.cm-editor .cm-cursor{border-left-color:var(--cm-cursor)!important}.cm-editor .cm-selectionBackground,.cm-editor.cm-focused .cm-selectionBackground{background:var(--cm-selection)!important}.cm-editor .cm-line ::selection,.cm-editor .cm-line::selection,.cm-editor .cm-content ::selection,.cm-editor .cm-content::selection{background:var(--cm-selection)!important;color:var(--cm-selection-text)!important}:root:not([data-theme=light]) .cm-editor .tok-keyword,:root:not([data-theme=light]) .cm-editor .tok-bool,:root:not([data-theme=light]) .cm-editor .tok-atom,:root:not([data-theme=light]) .cm-editor .tok-self,:root:not([data-theme=light]) .cm-editor .tok-null,:root:not([data-theme=light]) .cm-editor .tok-modifier,:root:not([data-theme=light]) .cm-editor .tok-operatorKeyword,:root:not([data-theme=light]) .cm-editor .tok-controlKeyword,:root:not([data-theme=light]) .cm-editor .tok-definitionKeyword,:root:not([data-theme=light]) .cm-editor .ͼb,:root:not([data-theme=light]) .cm-editor .ͼc{color:#ff7b72!important}:root:not([data-theme=light]) .cm-editor .tok-string,:root:not([data-theme=light]) .cm-editor .ͼe{color:#a5d6ff!important}:root:not([data-theme=light]) .cm-editor .tok-comment,:root:not([data-theme=light]) .cm-editor .ͼm{color:#8b949e!important}:root:not([data-theme=light]) .cm-editor .tok-number,:root:not([data-theme=light]) .cm-editor .ͼd{color:#79c0ff!important}:root:not([data-theme=light]) .cm-editor .tok-variableName,:root:not([data-theme=light]) .cm-editor .tok-propertyName,:root:not([data-theme=light]) .cm-editor .ͼg{color:#f0f6fc!important}.hw-comment-md img,.feedback-comment-md img{max-width:100%;max-height:360px;border-radius:var(--radius-sm);border:1px solid var(--color-border);margin:6px 0;display:block;cursor:zoom-in}.hw-comment-md pre,.feedback-comment-md pre{background:var(--color-code-bg);color:var(--color-code-text);border:1px solid var(--color-code-border);border-radius:var(--radius-sm);padding:10px 12px;margin:6px 0;max-width:100%;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;overflow-x:hidden}.hw-comment-md pre code,.feedback-comment-md pre code{background:none;border:0;padding:0;white-space:inherit;word-break:inherit;overflow-wrap:inherit}.hw-comment-md,.feedback-comment-md{min-width:0;overflow-wrap:anywhere;word-break:break-word}.hw-comment-md :not(pre)>code,.feedback-comment-md :not(pre)>code{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.lesson-page{background-image:linear-gradient(to right,var(--texture-grid-color) 1px,transparent 1px),linear-gradient(to bottom,var(--texture-grid-color) 1px,transparent 1px);background-size:var(--texture-grid-size) var(--texture-grid-size);background-position:-1px -1px}@media (max-width: 900px){body,html{font-size:16px}.lesson-md{font-size:17px}.lesson-md p,.lesson-md ul,.lesson-md ol{line-height:1.72}.lesson-page main>article{padding:14px 16px 150px!important}.lesson-page main>header{padding:8px 14px!important;gap:10px!important;min-height:56px;box-sizing:border-box}.lesson-breadcrumbs{display:none!important}.lesson-header-actions{margin-left:auto;gap:10px!important}.lesson-page main>header>div:last-child{gap:10px!important}.lesson-theme-control,.lesson-report-issue,.lesson-streak{display:none!important}.lesson-progress-pill{display:inline-flex!important;height:36px;padding:0 10px!important;border-radius:999px!important;font-size:13px!important}.lesson-progress-pill svg{width:14px;height:14px}.lesson-meta-row{margin-bottom:10px!important}.lesson-meta-row>.lesson-number-tag,.lesson-meta-row>.lesson-meta-text{display:none!important}.lesson-mobile-summary{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-muted);font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.lesson-title-row{display:block!important;margin-bottom:14px!important}.lesson-title-heading{font-size:30px!important;line-height:1.08!important;letter-spacing:0!important;overflow-wrap:normal;word-break:normal}.lesson-edit-button{display:none!important}.lesson-number-tag{padding:5px 10px!important;border-radius:6px!important;letter-spacing:.08em!important}.lesson-meta-text{display:block;width:100%;line-height:1.55;letter-spacing:.08em!important;text-wrap:pretty}.lesson-tabs{gap:0!important;margin-bottom:18px!important;overflow-x:auto;scrollbar-width:none}.lesson-tabs::-webkit-scrollbar{display:none}.lesson-tab{flex:1 0 0;min-width:0;justify-content:center;gap:5px!important;padding:10px 6px!important;font-size:15px!important}.lesson-tab-label,.lesson-tab-count{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}.lesson-tab-label{font-size:15px;line-height:1.15}.lesson-tab-count{font-size:13px!important}.lesson-next-cta{display:none!important}.lesson-mobile-action-bar,.quiz-mobile-action-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;display:block;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--color-bg) 0%,var(--color-bg) 72%,color-mix(in srgb,var(--color-bg) 0%,transparent) 100%);border-top:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-sizing:border-box}.lesson-mobile-action-bar button,.quiz-mobile-action-bar button{width:100%;min-height:48px;border:0;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;font-size:16px;font-weight:750;cursor:pointer;box-shadow:0 10px 28px #22c55e40}.lesson-mobile-action-bar button:active,.quiz-mobile-action-bar button:active{transform:translateY(1px)}.lesson-mobile-action-bar button:disabled,.quiz-mobile-action-bar button:disabled{background:var(--color-bg-elevated);color:var(--color-text-muted);border:1px solid var(--color-border);box-shadow:none;cursor:not-allowed}.quiz-progress-header{position:sticky;top:56px;z-index:40;margin:-2px -16px 12px!important;padding:8px 16px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.quiz-card{padding:16px!important;border-radius:10px!important}.quiz-question{font-size:18px!important;line-height:1.35!important;margin-bottom:16px!important}.quiz-options{gap:8px!important;margin-bottom:16px!important}.quiz-option{padding:12px 14px!important;border-radius:8px!important}.quiz-option input{width:18px;height:18px;flex:0 0 auto}.quiz-submit-button,.quiz-summary-primary{display:none!important}.quiz-nav-row{gap:8px!important;margin-top:12px!important}.quiz-nav-row button{flex:1;min-height:44px;padding:10px 12px!important}.lesson-video-focus{margin-bottom:28px}.exercise-split,.exercise-split.is-rail,.toyterm,.toyterm.has-brief,.toyterm.is-insp-rail,.toyterm.has-brief.is-brief-rail,.toyterm.has-brief.is-insp-rail,.toyterm.has-brief.is-brief-rail.is-insp-rail{grid-template-columns:1fr!important}.exercise-col-handle,.toyterm-handle,.pane-collapse-btn{display:none}.exercise-split,.toyterm.has-brief{row-gap:12px}.toyterm-insp{height:auto;min-height:0}.toyterm.is-brief-rail .toyterm-brief,.toyterm.is-insp-rail .toyterm-insp{padding:16px;cursor:auto;display:block}.toyterm.is-brief-rail .toyterm-brief .exercise-brief-inner{display:block}.toyterm.is-insp-rail .toyterm-insp .toyterm-insp-inner{display:flex}.toyterm.is-brief-rail .toyterm-brief .exercise-brief-rail,.toyterm.is-insp-rail .toyterm-insp .toyterm-insp-rail{display:none}.exercise-brief,.exercise-split.is-rail .exercise-brief{position:static;height:auto;min-height:0;overflow:auto;display:block;padding:16px;cursor:auto}.exercise-brief-inner,.exercise-split.is-rail .exercise-brief-inner{min-width:0;display:block}.exercise-brief-rail{display:none!important}.exercise-card.is-fullscreen{overflow-y:auto}.exercise-card.is-fullscreen .exercise-split,.exercise-card.is-fullscreen .exercise-workspace,.exercise-card.is-fullscreen .exercise-editor-bezel,.exercise-card.is-fullscreen .exercise-editor-core{flex:none;min-height:0;display:block}.exercise-card.is-fullscreen .exercise-editor-core .code-editor-shell,.exercise-card.is-fullscreen .exercise-editor-core .cm-editor{flex:none;height:auto;max-height:none!important}.exercise-card{padding:14px;max-width:100%;box-sizing:border-box}.exercise-workspace{min-width:0;max-width:100%}.exercise-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:8px}.exercise-run-btn,.exercise-submit-btn{width:100%;min-width:0;min-height:44px;padding:9px 8px;white-space:nowrap;box-sizing:border-box}.exercise-submit-btn .exercise-btn-icon{display:none}.exercise-actions>button:not(.exercise-run-btn):not(.exercise-submit-btn){width:44px!important;height:44px!important;min-width:44px;justify-self:end}.lesson-bottom-nav{grid-template-columns:1fr;gap:8px;margin-top:28px;padding-top:18px}.lesson-bottom-nav a{display:flex;align-items:center;gap:7px;min-height:44px;padding:10px 12px}.lesson-bottom-nav__link--next{text-align:left}.lesson-bottom-nav span{flex:0 0 auto;font-size:13px;letter-spacing:0;text-transform:none}.lesson-bottom-nav strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block:after{content:"";position:absolute;top:0;right:0;bottom:0;width:32px;border-radius:0 var(--radius-md) var(--radius-md) 0;background:linear-gradient(to left,var(--color-code-bg),color-mix(in srgb,var(--color-code-bg) 0%,transparent));pointer-events:none}.code-block-actions{z-index:2}.code-block-actions button{width:44px!important;height:44px!important}.lesson-breadcrumbs>*:not(:last-child){display:none!important}.page-pad{padding:24px 16px!important}.page-h1{font-size:32px!important;letter-spacing:0!important}.admin-header-nav{overflow-x:auto!important;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-header-nav::-webkit-scrollbar{display:none}.stat-row{display:grid!important;grid-template-columns:1fr 1fr!important;border-right:0!important}.stat-row>*{border-right:0!important;border-bottom:1px solid var(--color-border)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 360px){.exercise-actions{grid-template-columns:minmax(0,1fr) 44px}.exercise-run-btn{grid-column:1;grid-row:1}.exercise-submit-btn{grid-column:1 / -1;grid-row:2}.exercise-actions>button:not(.exercise-run-btn):not(.exercise-submit-btn){grid-column:2;grid-row:1}}@media (max-width: 720px){.page-pad.course-index,.page-pad.course-detail{padding:34px 16px 72px!important}.stat-row.course-stat-grid{grid-template-columns:1fr!important}}@media (max-width: 900px){.lesson-streak{display:none!important}}@media (max-width: 900px){header.admin-header,header[data-admin-header]{padding:0 16px!important}.admin-header-subtag{display:none!important}}@media (max-width: 900px){.site-header{padding:14px 16px!important;gap:8px}}.ae{display:flex;flex-direction:column}.ae-field{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);transition:border-color .12s,background .12s}.ae-field:focus-within{border-color:var(--color-primary)}.ae-pm{outline:none;color:var(--color-text);font-size:var(--fs-md);line-height:1.55;padding:12px 14px}.ae-pm p{margin:0 0 8px}.ae-pm p:last-child{margin-bottom:0}.ae-pm code{font-family:var(--font-mono);background:var(--color-code-inline-bg);padding:1px 5px;border-radius:4px;font-size:.92em}.ae-pm pre{background:var(--color-code-bg);border:1px solid var(--color-code-border);border-radius:8px;padding:10px;overflow:auto}.ae-pm pre code{background:none;padding:0}.ae-pm a{color:var(--color-primary);text-decoration:underline}.ae-ph{position:absolute;top:12px;left:14px;color:var(--color-text-subtle);font-size:var(--fs-md);pointer-events:none}.ae-imgchip{display:inline-flex;align-items:center;gap:7px;vertical-align:middle;background:var(--color-primary-soft);border:1px solid var(--color-primary);border-radius:10px;padding:4px 9px 4px 11px;margin:0 3px;font-size:14px;color:var(--color-success-text);cursor:grab;-webkit-user-select:none;user-select:none}.ae-imgchip svg{width:16px;height:16px}.ae-imgchip .nm{font-family:var(--font-mono);font-size:13.5px}.ae-imgchip .x{border:none;background:none;color:var(--color-success-text);cursor:pointer;font-size:17px;line-height:1;padding:0 2px}.ae-imgchip .x:hover{color:var(--color-text)}.ae-imgchip.ProseMirror-selectednode{outline:2px solid var(--color-primary);outline-offset:1px}.ae-bubble{display:flex;gap:2px;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:9px;padding:3px;box-shadow:0 8px 24px -10px #0009}.ae-bbtn{min-width:28px;height:28px;border:none;background:transparent;color:var(--color-text-muted);border-radius:6px;cursor:pointer;font-family:var(--font-mono);font-size:13px;font-weight:600;padding:0 6px}.ae-bbtn:hover{background:var(--color-bg-secondary);color:var(--color-text)}.ae-bbtn.on{background:var(--color-primary-soft);color:var(--color-primary)}.ae-tray{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.ae-thumb{position:relative;width:92px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-elevated)}.ae-img{height:58px;background-size:cover;background-position:center}.ae-img.ae-file{display:grid;place-items:center;color:var(--color-text-muted)}.ae-img.ae-file svg{width:24px;height:24px}.ae-cap{font-size:12.5px;color:var(--color-success-text);padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ae-x{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:6px;background:#0009;color:#fff;border:none;cursor:pointer;font-size:13px;line-height:1;display:grid;place-items:center}.ae-x:hover{background:#000000d9}.ae-up{width:92px;height:85px;display:grid;place-items:center;font-size:11px;color:var(--color-text-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.ae-add{width:92px;height:85px;border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--color-text-subtle);font-size:11px;font-family:inherit;cursor:pointer}.ae-add:hover{border-color:var(--color-primary);color:var(--color-success-text)}.ae-add svg{width:16px;height:16px}.ae-hint{font-size:13px;color:var(--color-text-subtle);margin-top:10px;line-height:1.45}.ae-error{font-size:13px;color:var(--color-danger);margin-top:6px}.ae-lm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ae-lm{width:min(92vw,420px);background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);border-radius:14px;padding:18px;box-shadow:0 24px 60px -24px #000000b3}.ae-lm-title{font-size:15px;font-weight:700;margin-bottom:12px;color:var(--color-text)}.ae-lm-input{width:100%;box-sizing:border-box;padding:11px 13px;font-size:14px;font-family:inherit;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg);color:var(--color-text);outline:none;transition:border-color .12s}.ae-lm-input:focus{border-color:var(--color-primary)}.ae-lm-input::placeholder{color:var(--color-text-subtle)}.ae-lm-row{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.ae-lm-cancel,.ae-lm-ok{padding:9px 18px;font:inherit;font-weight:600;font-size:13px;border-radius:10px;cursor:pointer;border:1px solid var(--color-border-strong)}.ae-lm-cancel{background:var(--color-bg-elevated);color:var(--color-text)}.ae-lm-cancel:hover{border-color:var(--color-text-subtle)}.ae-lm-ok{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.ae-lm-ok:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.hwt-card{background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);border-radius:16px;box-shadow:0 12px 34px -22px #0000008c}.hwt-task{padding:16px}.hwt-crumb{font-family:var(--font-mono);font-size:11px;color:var(--color-text-subtle);margin-bottom:7px}.hwt-h1{font-size:17px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px;line-height:1.2}.hwt-pill{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px}.hwt-pill .dot{width:7px;height:7px;border-radius:50%;position:relative}.hwt-pill.warn{background:var(--color-warning-soft);color:var(--color-warning)}.hwt-pill.warn .dot{background:var(--color-warning)}.hwt-pill.ok{background:var(--color-primary-soft);color:var(--color-success-text)}.hwt-pill.ok .dot{background:var(--color-primary)}.hwt-pill.info{background:var(--color-primary-soft);color:var(--color-success-text)}.hwt-pill.info .dot{background:var(--color-primary)}.hwt-pill.muted{background:var(--color-bg-elevated);color:var(--color-text-subtle)}.hwt-pill.muted .dot{background:var(--color-text-subtle)}.hwt-pill.pulse .dot:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid currentColor;opacity:.5;animation:hwtPulse 1.8s ease-out infinite}@keyframes hwtPulse{to{transform:scale(2.2);opacity:0}}.hwt-deadline{margin-top:9px;font-family:var(--font-mono);font-size:11px;color:var(--color-text-subtle);line-height:1.4}.hwt-open{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;width:100%;padding:10px;border:1px solid var(--color-border-strong);border-radius:11px;background:var(--color-bg-elevated);color:var(--color-text);font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.hwt-open:hover{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-success-text)}.hwt-cond{padding:16px;display:flex;flex-direction:column;min-height:0;flex:1}.hwt-ey{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);display:block}.hwt-condbody{font-size:13.5px;line-height:1.55;margin-top:8px;overflow-y:auto;min-height:0;flex:1;padding-right:4px}.hwt-conv{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--color-bg-secondary);border:1px solid var(--color-border-strong);border-radius:18px;overflow:hidden;box-shadow:0 16px 44px -26px #0009}.hwt-chead{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,rgba(127,127,127,.05),transparent)}.hwt-chead .t{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px}.hwt-av{width:34px;height:34px;border-radius:var(--radius-md);display:grid;place-items:center;font-size:14px;font-weight:800;flex:0 0 auto;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-primary)}.hwt-sub{font-family:var(--font-mono);font-size:11px;color:var(--color-text-subtle);font-weight:400}.hwt-st{font-family:var(--font-mono);font-size:11px}.hwt-st.warn{color:var(--color-warning)}.hwt-st.ok,.hwt-st.info{color:var(--color-success-text)}.hwt-st.muted{color:var(--color-text-subtle)}.hwt-msgs{flex:1 1 auto;overflow-y:auto;padding:20px 18px}.hwt-row{display:flex;gap:10px;max-width:80%}.hwt-row.me{margin-left:auto;flex-direction:row-reverse}.hwt-rowav{width:30px;height:30px;border-radius:var(--radius-md);flex:0 0 auto;display:grid;place-items:center;font-size:12px;font-weight:800;align-self:flex-end;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-primary)}.hwt-rowav.me{background:var(--color-primary-soft);color:var(--color-success-text);border-color:var(--color-primary-soft)}.hwt-rowav.ghost{background:transparent;border-color:transparent}.hwt-dock{flex:0 0 auto;border-top:1px solid var(--color-border);padding:12px 14px;background:var(--color-bg);max-height:64vh;overflow-y:auto}.hwt-dock.answer{background:linear-gradient(180deg,var(--color-primary-soft),transparent)}.hwt-dockhead{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:700}.hwt-dot{width:7px;height:7px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 9px #22c55eb3;flex:0 0 auto}.hwt-linkrow{display:flex;align-items:center;gap:8px;padding:0 12px;margin-bottom:10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:11px}.hwt-linkrow svg{color:var(--color-text-subtle);flex:0 0 auto}.hwt-linkrow input{flex:1;background:none;border:none;color:var(--color-text);font:inherit;font-size:14px;padding:10px 0;outline:none}.hwt-linkrow input::placeholder{color:var(--color-text-subtle)}.hwt-dockfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.hwt-hint{font-size:11px;color:var(--color-text-subtle);line-height:1.4}.hwt-go{display:inline-flex;align-items:center;gap:8px;background:var(--color-primary);color:var(--color-primary-contrast);border:none;border-radius:11px;padding:11px 20px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 8px 20px -8px #22c55e80;white-space:nowrap}.hwt-go:disabled{opacity:.55;cursor:default;box-shadow:none}.hwt-composer{display:flex;align-items:flex-end;gap:10px}.hwt-composer .inp{flex:1;background:var(--color-bg);border:1px solid var(--color-border);border-radius:14px;padding:10px 14px}.hwt-composer .inp:focus-within{border-color:var(--color-primary)}.hwt-composer textarea{width:100%;background:none;border:none;color:var(--color-text);font:inherit;font-size:15px;resize:none;outline:none;min-height:24px;max-height:160px;line-height:1.45}.hwt-composer textarea::placeholder{color:var(--color-text-subtle)}.hwt-composer .send{width:42px;height:42px;border-radius:13px;background:var(--color-primary);color:var(--color-primary-contrast);border:none;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}.hwt-composer .send:disabled{opacity:.45;cursor:default}.hwt-composer .send svg{width:18px;height:18px}.os-tabs{border:1px solid var(--color-code-border);border-radius:var(--radius-lg);background:var(--color-code-bg);overflow:hidden;margin:18px 0}.os-tabs-bar{display:flex;align-items:flex-end;gap:8px;padding:0 12px;border-bottom:1px solid var(--color-border)}.os-tabs-list{display:flex;gap:2px}.os-tabs-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;cursor:pointer;color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;letter-spacing:-.01em;padding:11px 14px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s cubic-bezier(.32,.72,0,1),border-color .2s cubic-bezier(.32,.72,0,1)}.os-tabs-tab:hover{color:var(--color-text)}.os-tabs-tab[data-active=true]{color:var(--color-text);border-bottom-color:var(--color-primary)}.os-tabs-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-3px;border-radius:var(--radius-sm)}.os-tabs-copy{margin-left:auto;align-self:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:none;cursor:pointer;color:var(--color-text-subtle);font-family:var(--font-mono);font-size:var(--fs-xs);padding:5px 9px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:5px;transition:color .18s,background .18s}.os-tabs-copy:hover{color:var(--color-text);background:var(--color-bg-elevated)}.os-tabs-copy.is-ok{color:var(--color-success-text)}.os-tabs-copy svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.os-tabs-bodies{display:grid}.os-tabs-body{grid-area:1 / 1;margin:0;padding:16px 18px;font-family:var(--font-mono);font-size:13.5px;line-height:1.85;color:var(--color-code-text);overflow-x:auto;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .26s cubic-bezier(.32,.72,0,1),transform .26s cubic-bezier(.32,.72,0,1)}.os-tabs[data-os=linux] .os-tabs-body[data-b=linux],.os-tabs[data-os=macos] .os-tabs-body[data-b=macos]{opacity:1;visibility:visible;transform:none}.os-tabs-line{display:block;white-space:pre-wrap;word-break:break-word}.os-tabs-pr{color:var(--color-text-subtle);-webkit-user-select:none;user-select:none;margin-right:10px}.os-tabs-cmd{color:var(--color-primary);font-weight:500}.os-tabs-kw{color:var(--color-text-muted)}.os-tabs-com{color:var(--color-text-subtle);font-style:italic}.os-tabs-flag{color:#c9b6ff}.os-tabs-path{color:var(--color-info)}@media (prefers-reduced-motion: reduce){.os-tabs-tab,.os-tabs-body,.os-tabs-copy{transition:none}}.toyterm{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 18px var(--insp-col, 30%);align-items:stretch;margin:24px 0;font-family:var(--font-mono)}.toyterm.has-brief{grid-template-columns:var(--brief-col, 34%) 18px minmax(0,1fr) 18px var(--insp-col, 26%)}.toyterm-brief .exercise-description{max-width:none}.toyterm-brief{overflow-x:hidden}.toyterm-brief .exercise-brief-inner{min-width:300px}.toyterm.is-insp-rail{grid-template-columns:minmax(0,1fr) 18px 44px}.toyterm.has-brief.is-brief-rail{grid-template-columns:44px 18px minmax(0,1fr) 18px var(--insp-col, 26%)}.toyterm.has-brief.is-insp-rail{grid-template-columns:var(--brief-col, 34%) 18px minmax(0,1fr) 18px 44px}.toyterm.has-brief.is-brief-rail.is-insp-rail{grid-template-columns:44px 18px minmax(0,1fr) 18px 44px}.toyterm-insp-inner{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0;min-width:200px}.toyterm.is-brief-rail .toyterm-brief{overflow:hidden;padding:16px 0 0;cursor:pointer;display:flex;align-items:flex-start;justify-content:center}.toyterm.is-brief-rail .toyterm-brief .exercise-brief-inner{display:none}.toyterm.is-brief-rail .toyterm-brief .exercise-brief-rail{display:flex}.toyterm.is-insp-rail .toyterm-insp{overflow:hidden;padding:16px 0 0;cursor:pointer;align-items:center;justify-content:flex-start}.toyterm.is-insp-rail .toyterm-insp .toyterm-insp-inner{display:none}.toyterm.is-insp-rail .toyterm-insp .toyterm-insp-rail{display:flex}.toyterm-insp-rail .exercise-brief-rail-text{transform:rotate(0)}.toyterm.is-brief-rail .toyterm-brief:hover,.toyterm.is-insp-rail .toyterm-insp:hover{border-color:var(--color-border-strong)}.toyterm.is-brief-rail .toyterm-brief:hover .exercise-brief-rail,.toyterm.is-insp-rail .toyterm-insp:hover .toyterm-insp-rail{color:var(--color-text)}.toyterm-loading{margin:16px 0;min-height:392px;display:grid;place-items:center;padding:28px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-elevated);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--fs-sm);text-align:center}.toyterm-insp{position:relative;box-sizing:border-box;min-width:0;height:0;min-height:100%;display:flex;flex-direction:column;gap:14px;overflow:hidden;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:10px;padding:14px 14px 12px}.toyterm-insp h4{margin:0;padding-right:26px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle)}.toyterm-insp-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:2px}.toyterm-irow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 6px;border-radius:var(--radius-sm);font-size:var(--fs-sm);transition:background .22s ease}.toyterm-irow .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text)}.toyterm-irow .nm.dir{color:var(--color-info)}.toyterm-irow .nm.dim{color:var(--color-text-subtle)}.toyterm-irow.is-new{background:#22c55e29}.toyterm-irow.is-chmod{background:#3b82f629}.toyterm-irow.is-del{background:#ef444424}.toyterm-irow.is-del .nm{text-decoration:line-through;color:var(--color-text-muted)}.perm-edit{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);flex:0 1 auto;min-width:0;max-width:56%;overflow:hidden}.ptrip{display:inline-flex}.pbit{width:13px;padding:0;border:none;background:none;color:var(--color-text-subtle);font-family:var(--font-mono);font-size:var(--fs-sm);cursor:pointer;transition:color .12s}.pbit.on{color:var(--color-success-text)}.pbit:hover{color:var(--color-text)}.perm-edit .pnum{min-width:26px;text-align:right;color:var(--color-text-muted)}.toyterm-checklist{border-top:1px solid var(--color-border);padding-top:10px;display:flex;flex-direction:column;gap:3px}.toyterm-checklist .ct{font-size:var(--fs-xs);color:var(--color-text-subtle);margin-bottom:3px}.toyterm-goals{border-top:1px solid var(--color-border);padding-top:10px;display:flex;flex-direction:column;gap:7px}.toyterm-goals .ct{font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:2px}.toyterm-goal{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-sm);line-height:1.45;color:var(--color-text-muted);transition:color .16s}.toyterm-goal .box{flex:none;width:15px;height:15px;margin-top:1px;display:inline-grid;place-items:center;border:1px solid var(--color-border-strong);border-radius:3px;color:var(--color-primary);font-size:10px;transition:background .16s,border-color .16s}.toyterm-goal .gl{min-width:0;overflow-wrap:anywhere}.toyterm-goal.done{color:var(--color-success-text)}.toyterm-goal.done .box{border-color:var(--color-primary);background:#22c55e24}.toyterm-checklist .chk{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--color-text-muted)}.toyterm-checklist .chk .box{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid var(--color-border-strong);border-radius:3px;color:var(--color-primary);font-size:10px}.toyterm-checklist .chk.done{color:var(--color-success-text)}.toyterm-checklist .chk.done .box{border-color:var(--color-primary)}.toyterm-handle{cursor:col-resize;position:relative;display:flex;align-items:center;justify-content:center}.toyterm-handle:before{content:"";width:1px;height:100%;background:transparent;transition:background .12s ease,width .12s ease}.toyterm-handle:hover:before,.toyterm-handle:focus-visible:before{background:var(--color-primary);width:2px}.toyterm-handle:after{content:"";position:absolute;top:0;right:-5px;bottom:0;left:-5px}.toyterm-handle:focus-visible{outline:none}.toyterm-card{box-sizing:border-box;min-width:0;display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:10px;overflow:hidden}.toyterm-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--color-border);background:transparent;flex-wrap:nowrap;overflow:hidden}.toyterm-bar .title{font-size:var(--fs-sm);color:var(--color-text-subtle);letter-spacing:.04em;white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:clip}.toyterm-bar .toyterm-help,.toyterm-bar .toyterm-reset,.toyterm-bar .toyterm-fs{flex:0 0 auto;white-space:nowrap}.toyterm-bar>button:first-of-type{margin-left:auto}.toyterm-help{color:color-mix(in srgb,var(--color-warning) 72%,var(--color-text-muted))}.toyterm-help:hover{color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 13%,transparent);border-color:color-mix(in srgb,var(--color-warning) 38%,transparent)}.toyterm-help,.toyterm-reset{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;font-family:var(--font-mono);font-size:var(--fs-sm);cursor:pointer;transition:color .14s,background .14s,border-color .14s}.toyterm-help svg,.toyterm-reset svg{width:14px;height:14px;flex:0 0 auto}.toyterm-reset{color:color-mix(in srgb,var(--color-danger-text) 70%,var(--color-text-muted))}.toyterm-reset:hover{color:var(--color-danger-text);background:color-mix(in srgb,var(--color-danger) 14%,transparent);border-color:color-mix(in srgb,var(--color-danger) 38%,transparent)}.toyterm-fs{position:static;top:auto;right:auto}.toyterm-term{flex:1;min-height:340px;min-width:300px;overflow-x:hidden;overflow-y:auto;padding:12px 14px;font-size:var(--fs-sm);line-height:1.55;color:var(--color-text);background:var(--color-bg);cursor:text}.toyterm.has-brief .toyterm-term{min-height:min(70vh,560px);max-height:min(70vh,560px)}.toyterm-term .tline{white-space:pre-wrap;overflow-wrap:anywhere}.toyterm-term .tline.err{color:#f6a6a0}.toyterm-term .tline.dim{color:var(--color-text-subtle)}.toyterm-term .tline.is-hint{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;padding:5px 9px;border-left:2px solid var(--color-warning-border);border-radius:0 4px 4px 0;background:color-mix(in srgb,var(--color-warning) 8%,transparent);color:color-mix(in srgb,var(--color-warning) 78%,var(--color-text-muted))}.toyterm-term .p{color:var(--color-text-subtle);white-space:pre}.toyterm-term .cmd-echo{color:var(--color-text)}.toyterm-term .d{color:var(--color-info)}.tinput-row{display:flex;align-items:baseline}.tinput{flex:1;min-width:0;border:none;background:none;outline:none;color:var(--color-text);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.55;caret-color:var(--color-primary)}.toyterm .tinput:focus,.toyterm .tinput:focus-visible{outline:none}.toyterm.is-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;margin:0;padding:16px;background:var(--color-bg)}.toyterm.is-fullscreen .toyterm-insp{height:auto}.toyterm.is-fullscreen .toyterm-card{height:100%}.toyterm.is-fullscreen .toyterm-term{min-height:0;max-height:none}@media (max-width: 480px){.toyterm-term,.toyterm-term .tinput,.tinput{font-size:12px;line-height:1.5}.toyterm-insp{font-size:11px}}@media (prefers-reduced-motion: reduce){.toyterm-irow,.pbit{transition:none}}@media (max-width: 760px){.toyterm{grid-template-columns:1fr;gap:12px}.toyterm-handle{display:none}.toyterm-insp{height:auto;min-height:0;max-height:220px}.toyterm-term{min-height:280px;min-width:0}.toyterm.has-brief .toyterm-term{max-height:none;min-height:280px}}.terminal-exercise .toyterm{margin:16px 0}.te-badge{font-size:var(--fs-xs);font-family:var(--font-mono);padding:2px 8px;border-radius:999px}.te-badge.is-ok{color:var(--color-success-text);background:#22c55e24}.te-panel{margin-top:14px;display:flex;flex-direction:column;gap:14px}.te-goals{display:flex;flex-direction:column;gap:4px;padding:14px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:10px}.te-goals-title{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:4px}.te-goals-count{color:var(--color-text-muted);text-transform:none;letter-spacing:0}.te-goal{display:flex;align-items:baseline;gap:9px;font-size:var(--fs-sm);color:var(--color-text-muted);padding:3px 0}.te-goal-ic{width:14px;flex:none;text-align:center;color:var(--color-text-subtle)}.te-goal.is-ok{color:var(--color-text)}.te-goal.is-ok .te-goal-ic{color:var(--color-primary)}.te-goal.is-bad .te-goal-ic{color:#f6a6a0}.te-goal.is-advisory{opacity:.8}.te-goal-chip{font-size:10px;font-family:var(--font-mono);color:var(--color-text-subtle);border:1px solid var(--color-border-strong);border-radius:999px;padding:0 6px;align-self:center}.te-actions{display:flex;gap:10px;align-items:center;margin-top:8px;flex:0 0 auto}.terminal-exercise .exercise-run-btn,.terminal-exercise .exercise-submit-btn{align-self:flex-start}.terminal-exercise .exercise-verdict,.terminal-exercise .exercise-error{margin-top:14px}@media (max-width: 760px){.toyterm.is-brief-rail .toyterm-brief,.toyterm.is-insp-rail .toyterm-insp{padding:16px;cursor:auto;display:block;width:auto}.toyterm.is-brief-rail .toyterm-brief .exercise-brief-inner{display:block}.toyterm.is-insp-rail .toyterm-insp .toyterm-insp-inner{display:flex;min-width:0}.toyterm.is-brief-rail .toyterm-brief .exercise-brief-rail,.toyterm.is-insp-rail .toyterm-insp .toyterm-insp-rail{display:none}.toyterm-insp{max-height:none}.toyterm-insp .toyterm-insp-body{flex:0 0 auto;max-height:none;overflow:visible}}.lg-page{--lg-bg: #050505;--lg-ink: #f5f6f7;--lg-muted: #8b9099;--lg-subtle: #5c6168;--lg-hair: rgba(255, 255, 255, .08);--lg-hair-2: rgba(255, 255, 255, .14);--lg-emerald: #22c55e;--lg-contrast: #04130a;--lg-ease: cubic-bezier(.32, .72, 0, 1);--lg-rise: cubic-bezier(.22, 1, .36, 1);position:relative;min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--lg-bg);color:var(--lg-ink);font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden}.lg-mesh{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.lg-orb{position:absolute;border-radius:50%;filter:blur(120px);will-change:transform}.lg-orb-a{width:560px;height:560px;background:#064e2b;opacity:.45;top:-180px;left:-140px}.lg-orb-b{width:520px;height:520px;background:#2e1065;opacity:.4;bottom:-200px;right:-160px}.lg-orb-c{width:360px;height:360px;background:#052e2b;opacity:.3;top:44%;left:40%}.lg-grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.04;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.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.lg-brand-pane{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:56px 56px 64px;border-right:1px solid var(--lg-hair)}.lg-mark{display:inline-flex;align-items:center;gap:12px;font-weight:700;letter-spacing:-.01em}.lg-mark .lg-glyph{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#34d36b,#0a8f43);color:var(--lg-contrast);font-weight:800}.lg-statement{max-width:460px}.lg-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid var(--lg-hair);background:#ffffff08;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--lg-muted)}.lg-eyebrow .lg-dot{width:6px;height:6px;border-radius:50%;background:var(--lg-emerald);box-shadow:0 0 12px var(--lg-emerald)}.lg-headline{margin:24px 0 0;font-size:clamp(38px,4vw,64px);font-weight:800;line-height:.98;letter-spacing:-.04em;background:linear-gradient(180deg,#fff,#97a0a6);-webkit-background-clip:text;background-clip:text;color:transparent}.lg-sub{margin:20px 0 0;max-width:400px;color:var(--lg-muted);font-size:16px;line-height:1.55}.lg-foot{color:var(--lg-subtle);font-size:13px}.lg-form-pane{position:relative;z-index:2;display:grid;place-items:center;padding:48px 28px}.lg-bezel{width:min(440px,100%);padding:8px;border-radius:28px;background:#ffffff0a;border:1px solid var(--lg-hair)}.lg-card{border-radius:21px;padding:34px 32px;background:#0a0b0da8;border:1px solid var(--lg-hair);box-shadow:inset 0 1px 1px #ffffff0f;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.lg-title{margin:16px 0 0;font-size:30px;font-weight:800;letter-spacing:-.03em}.lg-copy{margin:10px 0 0;color:var(--lg-muted);font-size:15px;line-height:1.5}.lg-note{margin:8px 0 0;color:var(--lg-subtle);font-size:13px}.lg-form{margin-top:22px;display:grid;gap:10px}.lg-field label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.lg-input{width:100%;padding:14px 16px;border-radius:14px;background:#ffffff08;border:1px solid var(--lg-hair);color:var(--lg-ink);font-family:inherit;font-size:15px;box-sizing:border-box;transition:border-color .4s var(--lg-ease),box-shadow .4s var(--lg-ease),background .4s var(--lg-ease)}.lg-input::placeholder{color:var(--lg-subtle)}.lg-input:focus{outline:none;border-color:#34d36b8c;background:#ffffff0d;box-shadow:0 0 0 4px #22c55e1f}.lg-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;padding:13px 10px 13px 18px;border-radius:999px;border:1px solid transparent;font-family:inherit;font-weight:700;font-size:15px;cursor:pointer;transition:transform .5s var(--lg-ease),box-shadow .5s var(--lg-ease),background .5s var(--lg-ease),filter .5s var(--lg-ease),border-color .5s var(--lg-ease)}.lg-btn:active{transform:scale(.98)}.lg-btn:disabled{opacity:.6;cursor:default;transform:none}.lg-chip{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;transition:transform .5s var(--lg-ease)}.lg-btn:hover .lg-chip{transform:translate(3px)}.lg-btn-primary{color:var(--lg-contrast);background:linear-gradient(135deg,#34d36b,#16a34a)}.lg-btn-primary:hover{filter:brightness(1.05);box-shadow:0 12px 30px #22c55e4d}.lg-btn-primary .lg-chip{background:#0000002e}.lg-btn-ghost{color:var(--lg-ink);background:#ffffff0d;border-color:var(--lg-hair-2);padding:13px 18px;text-decoration:none}.lg-btn-ghost:hover{background:#ffffff17}.lg-btn-ghost svg{flex:none}.lg-btn-text{background:none;border:none;color:var(--lg-muted);padding:12px;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;transition:color .4s var(--lg-ease)}.lg-btn-text:hover{color:var(--lg-ink)}.lg-error{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5;font-size:14px}.lg-divider{display:flex;align-items:center;gap:14px;margin:18px 0;color:var(--lg-subtle);font-size:12px;text-transform:uppercase;letter-spacing:.18em}.lg-divider:before,.lg-divider:after{content:"";flex:1;height:1px;background:var(--lg-hair)}.lg-stack{display:grid;gap:10px}.lg-register{margin:20px 0 0;text-align:center;color:var(--lg-muted);font-size:14px}.lg-register a{color:#6ee7a0;text-decoration:none;font-weight:600}.lg-register a:hover{text-decoration:underline}.lg-success-badge{display:inline-flex;align-items:center;gap:8px;color:#6ee7a0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.18em}.lg-rise>*{animation:lg-rise .7s var(--lg-rise) both}.lg-rise>*:nth-child(1){animation-delay:.02s}.lg-rise>*:nth-child(2){animation-delay:.08s}.lg-rise>*:nth-child(3){animation-delay:.14s}.lg-rise>*:nth-child(4){animation-delay:.2s}.lg-rise>*:nth-child(5){animation-delay:.26s}.lg-rise>*:nth-child(6){animation-delay:.32s}.lg-rise>*:nth-child(7){animation-delay:.38s}@keyframes lg-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 920px){.lg-page{grid-template-columns:1fr}.lg-brand-pane{border-right:none;border-bottom:1px solid var(--lg-hair);padding:32px 24px;gap:24px}.lg-statement{max-width:none}.lg-headline{font-size:clamp(32px,9vw,48px)}.lg-foot{display:none}.lg-form-pane{padding:32px 18px 56px}}@media (prefers-reduced-motion: reduce){.lg-rise>*{animation:none}.lg-orb{filter:blur(120px)}}.gittoy-demo-page{--g-display: "Bricolage Grotesque", var(--font-display, var(--font-sans));--g-mono: "JetBrains Mono", var(--font-mono, ui-monospace), monospace;--g-term-1: #0a0d12;--g-term-2: #0e131b;--g-term-head: #11161f;--g-line: rgba(255, 255, 255, .07);--g-accent: #3fb950;--g-cmd: #e9eef4;--g-out: #7f8b9a;--g-err: #ff7b72;display:flex;flex-direction:column;height:100vh;background:radial-gradient(120% 70% at 100% 0%,rgba(63,185,80,.05),transparent 50%),var(--color-bg);color:var(--color-text);font-family:var(--font-sans)}.gittoy-demo-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated);flex-wrap:wrap}.gittoy-demo-logo{font-family:var(--g-display);font-weight:800;font-size:21px;letter-spacing:-.02em;background:linear-gradient(160deg,var(--color-text) 35%,var(--g-accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.gittoy-demo-sub{margin-left:10px;color:var(--color-text-muted);font-size:var(--fs-sm)}.gittoy-demo-nav{display:flex;gap:6px;flex-wrap:wrap}.gittoy-demo-nav button,.gittoy-viz-tabs button{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:8px;padding:6px 12px;font-size:var(--fs-sm);cursor:pointer}.gittoy-demo-nav button.is-active,.gittoy-viz-tabs button.is-active{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.gittoy-shell{flex:1;display:flex;flex-direction:column;min-height:0}.gittoy-shell.is-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100vh;height:100dvh;background:var(--color-bg);border-radius:0}.gittoy-shell .tinput:focus,.gittoy-shell .tinput:focus-visible{outline:none}.gittoy-shell-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;border-bottom:1px solid var(--color-border)}.gittoy-shell-title{font-family:var(--g-display);font-weight:700;font-size:17px;letter-spacing:-.01em}.gittoy-reset{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:8px;padding:5px 10px;cursor:pointer;font-size:var(--fs-sm)}.gittoy-reset:hover{color:var(--color-text);border-color:var(--color-border-strong)}.gittoy-shell-grid{flex:1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;padding:12px;min-height:0}.gittoy-left,.gittoy-right{display:flex;flex-direction:column;gap:12px;min-height:0}.gittoy-viz{flex:1;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);background:var(--color-bg-elevated);min-height:0;overflow:hidden}.gittoy-viz-tabs{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--color-border)}.gittoy-viz-body{flex:1;overflow:auto;padding:12px}.gittoy-refs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.gittoy-head-chip{background:var(--color-warning-soft, #3a2f10);color:var(--color-warning, #e0a82e);border:1px solid var(--color-warning-border, #6a571a);border-radius:6px;padding:2px 8px;font-family:var(--g-mono);font-size:var(--fs-xs);font-weight:600}.gittoy-branch-chip{background:var(--color-bg-secondary);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:6px;padding:2px 8px;font-family:var(--g-mono);font-size:var(--fs-xs)}.gittoy-branch-chip.is-current{color:var(--color-success-text, var(--color-success));border-color:var(--color-success)}.gittoy-dim{color:var(--color-text-subtle)}.gittoy-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.gittoy-col{border:1px dashed var(--color-border);border-radius:8px;padding:8px;min-height:90px}.gittoy-col-staged{border-color:var(--color-success)}.gittoy-col-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--letter-wide, .04em);color:var(--color-text-subtle);margin-bottom:8px}.gittoy-empty{color:var(--color-text-subtle);font-size:var(--fs-sm);font-style:italic}.gittoy-file{display:flex;align-items:center;gap:8px;padding:3px 0;font-family:var(--g-mono);font-size:var(--fs-sm)}.gittoy-file-name{color:var(--color-text)}.gittoy-badge{font-size:var(--fs-xxs);border-radius:4px;padding:1px 6px;font-weight:600;min-width:72px;text-align:center}.gittoy-st-untracked{background:var(--color-danger-soft);color:var(--color-danger-text, var(--color-danger))}.gittoy-st-modified{background:var(--color-warning-soft);color:var(--color-warning)}.gittoy-st-staged{background:var(--color-success-soft);color:var(--color-success-text, var(--color-success))}.gittoy-st-clean{background:var(--color-bg-secondary);color:var(--color-text-subtle)}.gittoy-objstore{margin-top:12px;color:var(--color-text-subtle);font-size:var(--fs-xs);font-family:var(--g-mono)}.gittoy-swim{display:flex;align-items:flex-start;gap:4px}.gittoy-swim-labels{flex:0 0 auto;display:flex;flex-direction:column}.gittoy-swim-label{display:flex;align-items:center}.gittoy-lane-chip{color:#fff;font-weight:700;font-size:var(--fs-xs);letter-spacing:var(--letter-wide, .05em);text-transform:uppercase;padding:5px 12px;border-radius:7px;box-shadow:0 2px 6px #00000059;white-space:nowrap}.gittoy-lane-chip.is-current{outline:2px solid var(--color-bg);box-shadow:0 0 0 2px currentColor,0 2px 6px #00000059}.gittoy-swim-scroll{flex:1;min-width:0;overflow-x:auto;padding-left:4px}.gittoy-swim-svg{display:block}.gittoy-swim-edge{fill:none;stroke-width:4;stroke-linecap:round}.gittoy-swim-stub{stroke-width:3;stroke-linecap:round;stroke-dasharray:1 7;opacity:.7}.gittoy-swim-node{filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.gittoy-swim-node-gap{fill:var(--color-bg-elevated)}.gittoy-swim-cid{fill:var(--color-text-subtle);font-family:var(--g-mono);font-size:10px;text-anchor:middle}.gittoy-swim-head-bg{fill:var(--color-warning, #e0a82e)}.gittoy-swim-head-tx{fill:#1a1205;font-size:9px;font-weight:700;text-anchor:middle;font-family:var(--g-mono)}.gittoy-graph-empty{padding:20px}.gittoy-term{flex:0 0 42%;display:flex;flex-direction:column;border:1px solid var(--g-line);border-radius:14px;background:radial-gradient(130% 90% at 50% -20%,rgba(63,185,80,.06),transparent 55%),linear-gradient(180deg,var(--g-term-2),var(--g-term-1));box-shadow:0 20px 44px -26px #000000d9,inset 0 1px #ffffff0b;overflow:hidden;min-height:190px;transition:border-color .18s ease,box-shadow .18s ease}.gittoy-term:focus-within{border-color:#3fb95066;box-shadow:0 0 0 1px #3fb95038,0 20px 44px -26px #000000d9,inset 0 1px #ffffff0b}.gittoy-term-head{display:flex;align-items:center;gap:10px;height:36px;padding:0 14px;background:var(--g-term-head);border-bottom:1px solid var(--g-line)}.gittoy-term-dots{display:flex;gap:7px}.gittoy-term-dots i{width:11px;height:11px;border-radius:50%;display:block;opacity:.92}.gittoy-term-dots i:nth-child(1){background:#ff5f57}.gittoy-term-dots i:nth-child(2){background:#febc2e}.gittoy-term-dots i:nth-child(3){background:#28c840}.gittoy-term-tag{font-family:var(--g-mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-subtle)}.gittoy-term-branch{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--g-mono);font-size:11px;color:var(--g-accent);background:#3fb95017;border:1px solid rgba(63,185,80,.22);padding:2px 9px 2px 7px;border-radius:20px}.gittoy-branch-ico{flex:0 0 auto}.gittoy-term-scroll{flex:1;overflow:auto;padding:14px 16px;font-family:var(--g-mono);font-size:13px;line-height:1.65;font-feature-settings:"calt" 0}.gittoy-term-line{display:flex;gap:9px;white-space:pre-wrap;word-break:break-word}.gittoy-term-line+.gittoy-term-line{margin-top:1px}.gittoy-term-ps{color:var(--g-accent);-webkit-user-select:none;user-select:none;flex:0 0 auto}.gittoy-term-cmd .gittoy-term-text{color:var(--g-cmd);font-weight:500}.gittoy-term-out .gittoy-term-text{color:var(--g-out)}.gittoy-term-err .gittoy-term-text{color:var(--g-err)}.gittoy-term-input{display:flex;align-items:center;gap:9px;border-top:1px solid var(--g-line);padding:11px 16px;background:linear-gradient(180deg,transparent,rgba(63,185,80,.035));font-family:var(--g-mono);font-size:13px}.gittoy-term-seg{display:inline-flex;align-items:center;gap:5px;color:var(--g-accent);font-weight:500;flex:0 0 auto}.gittoy-term-arrow{color:var(--g-accent);font-weight:700;flex:0 0 auto}.gittoy-term-input input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--g-cmd);font-family:var(--g-mono);font-size:13px;caret-color:var(--g-accent)}.gittoy-term-input input::placeholder{color:var(--color-text-subtle);opacity:.55}.gittoy-term-scroll::-webkit-scrollbar{width:11px}.gittoy-term-scroll::-webkit-scrollbar-thumb{background:#ffffff17;border-radius:8px;border:3px solid transparent;background-clip:content-box}.gittoy-term-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff29;background-clip:content-box}.gittoy-term-scroll::-webkit-scrollbar-track{background:transparent}.gittoy-task,.gittoy-checks,.gittoy-hints{border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);background:var(--color-bg-elevated);padding:12px}.gittoy-right{overflow:auto}.gittoy-panel-title{font-family:var(--g-display);font-weight:700;font-size:14px;letter-spacing:.01em;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.gittoy-task-desc{white-space:pre-line;color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.55}.gittoy-pass-pill{background:var(--color-success-soft);color:var(--color-success-text, var(--color-success));border-radius:6px;padding:2px 8px;font-size:var(--fs-xs);font-weight:600}.gittoy-check{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:var(--fs-sm)}.gittoy-check-mark{width:16px}.gittoy-check.is-ok .gittoy-check-mark{color:var(--color-success)}.gittoy-check.is-pending .gittoy-check-mark{color:var(--color-text-subtle)}.gittoy-check.is-ok .gittoy-check-label{color:var(--color-text)}.gittoy-check.is-pending .gittoy-check-label{color:var(--color-text-muted)}.gittoy-check-got{margin-left:auto;color:var(--color-text-subtle);font-family:var(--g-mono);font-size:var(--fs-xs)}.gittoy-hint{font-size:var(--fs-sm);color:var(--color-text-muted);padding:4px 0;line-height:1.5}.gittoy-hint-btn{margin-top:8px;background:var(--color-primary-soft);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:var(--fs-sm)}.gittoy-ide{flex:1;display:flex;flex-direction:column;min-height:0;container-type:inline-size}.gittoy-workarea{flex:1;display:flex;min-height:0;gap:0;padding:16px 16px 0}.gittoy-side{flex:0 0 auto;min-height:0;display:flex;flex-direction:column;background:var(--color-bg-elevated);overflow:hidden}.gittoy-side-left{border-right:1px solid var(--color-border);overflow-y:auto;gap:12px;padding:12px}.gittoy-side-right{border-left:1px solid var(--color-border)}.gittoy-center{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--color-bg)}.gittoy-center-cap{display:flex;align-items:baseline;gap:10px;font-family:var(--g-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);padding:11px 14px 9px;border-bottom:1px solid var(--color-border)}.gittoy-center-hint{text-transform:none;letter-spacing:0;font-family:var(--font-sans);font-size:11px;color:var(--color-text-subtle);opacity:.85}.gittoy-center-graph{flex:1;min-height:0;overflow:auto;padding:14px 16px}.gittoy-resizer{flex:0 0 18px;cursor:col-resize;position:relative;display:flex;align-items:center;justify-content:center;touch-action:none}.gittoy-resizer:after{content:"";width:1px;height:100%;background:transparent;transition:background .12s ease,width .12s ease}.gittoy-resizer:hover:after{background:var(--color-primary);width:2px}body.gittoy-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.gittoy-resizer.is-dragging:after{background:var(--color-primary);width:2px}.gittoy-fx{flex:1;display:flex;flex-direction:column;min-height:0}.gittoy-fx-head,.gittoy-side-cap{font-family:var(--g-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle);padding:11px 12px 7px}.gittoy-fx-tree{flex:1;overflow:auto;padding-bottom:6px}.gittoy-fx-empty{color:var(--color-text-subtle);font-size:var(--fs-sm);font-style:italic;padding:8px 12px}.gittoy-fx-row{display:flex;align-items:center;gap:7px;width:100%;border:none;background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:13.5px;line-height:1.4;padding:4px 10px 4px 6px;cursor:pointer;text-align:left}.gittoy-fx-row:hover{background:#ffffff0b}.gittoy-fx-file.is-sel{background:var(--color-primary-soft);color:var(--color-text)}.gittoy-fx-twist{color:var(--color-text-subtle);transition:transform .12s ease;flex:0 0 auto}.gittoy-fx-twist.is-open{transform:rotate(90deg)}.gittoy-fx-ico{flex:0 0 auto}.gittoy-fx-folder{color:#7e93ab}.gittoy-fx-doc{color:var(--color-text-subtle)}.gittoy-fx-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gittoy-fx-untracked,.gittoy-fx-staged{color:#56d364}.gittoy-fx-modified{color:#e0a82e}.gittoy-fx-st{flex:0 0 auto;font-size:11px;font-weight:700;width:14px;text-align:center}.gittoy-fxst-untracked,.gittoy-fxst-staged{color:#3fb950}.gittoy-fxst-modified{color:#e0a82e}.gittoy-fx-preview{border-top:1px solid var(--color-border);max-height:42%;display:flex;flex-direction:column;min-height:0}.gittoy-fx-preview-head{display:flex;align-items:center;gap:6px;padding:7px 10px;font-family:var(--g-mono);font-size:11.5px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.gittoy-fx-preview-x{margin-left:auto;background:transparent;border:none;color:var(--color-text-subtle);cursor:pointer;font-size:12px}.gittoy-fx-preview-body{flex:1;overflow:auto;margin:0;padding:8px 12px;font-family:var(--g-mono);font-size:12px;line-height:1.55;color:var(--color-text);white-space:pre-wrap;word-break:break-word}.gittoy-fx-foot{display:flex;gap:12px;padding:7px 12px;border-top:1px solid var(--color-border);font-family:var(--g-mono);font-size:11px;color:var(--color-text-subtle)}.gittoy-fx-foot-staged{color:var(--g-accent)}.gittoy-side-graph{flex:1;min-height:0;display:flex;flex-direction:column}.gittoy-side-graph-body{flex:1;overflow:auto;padding:2px 8px 10px}.gittoy-side-task{flex:0 0 auto;max-height:46%;overflow:auto;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:10px;padding:10px;background:var(--color-bg)}.gittoy-vg{display:flex;align-items:flex-start;gap:10px;width:fit-content;max-width:100%;margin:auto}.gittoy-vg-empty{color:var(--color-text-subtle);font-size:var(--fs-sm);padding:18px 14px;line-height:1.55}.gittoy-vg-rail{flex:0 0 auto}.gittoy-vg-edge{fill:none;stroke-width:4.5;stroke-linecap:round;transition:opacity .15s ease}.gittoy-vg-edge.is-dim{opacity:.16}.gittoy-vg-ring{fill:var(--color-bg);stroke-width:3}.gittoy-vg-gap{fill:var(--color-bg-elevated)}.gittoy-vg-head-ring{fill:none;stroke-width:2;opacity:.55}.gittoy-vg-sel-ring{fill:none;stroke-width:2;opacity:.9}.gittoy-vg-node{cursor:pointer;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45));transition:opacity .15s ease}.gittoy-vg-node:hover{filter:drop-shadow(0 0 6px rgba(255,255,255,.25))}.gittoy-vg-node.is-dim{opacity:.25}.gittoy-vg-rows{flex:0 0 auto;min-width:0}.gittoy-vg-row{display:flex;align-items:center;gap:7px;padding:0 6px;border-radius:7px;cursor:pointer;transition:background .12s ease,opacity .15s ease}.gittoy-vg-row:hover{background:#ffffff0d}.gittoy-vg-row.is-sel{background:var(--color-primary-soft)}.gittoy-vg-row.is-dim{opacity:.4}.gittoy-vg-cid{color:var(--color-text-subtle);font-family:var(--g-mono);font-size:11.5px;flex:0 0 auto}.gittoy-vg-chip{flex:0 0 auto;color:#fff;font-family:var(--font-sans);font-size:11px;font-weight:700;border-radius:6px;padding:1px 8px;box-shadow:0 1px 3px #00000059}.gittoy-vg-chip.is-remote{color:var(--color-text-muted, #9aa0a6);background:transparent;border:1px dashed currentColor;border-color:var(--color-border);font-weight:600;box-shadow:none}.gittoy-vg-head{flex:0 0 auto;font-size:10px;font-weight:800;letter-spacing:.03em;color:#1a1205;background:var(--color-warning, #e0a82e);border-radius:5px;padding:1px 6px}.gittoy-vg-msg{flex:0 0 auto;min-width:0;max-width:240px;color:var(--color-text);font-family:var(--font-sans);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gittoy-vg-merge-ring{stroke-width:1.6;stroke-dasharray:2.5 2.5;opacity:.85}.gittoy-vg-merge-chip{flex:0 0 auto;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text);background:#ffffff17;border:1px solid var(--g-line);border-radius:5px;padding:1px 6px}.gittoy-conflicts{border:1px solid var(--color-danger, #f85149);border-radius:var(--radius-lg, 12px);background:var(--color-bg-elevated);padding:12px;box-shadow:0 0 0 1px #f851491f,0 6px 18px #f8514914}.gittoy-conflict-pill{background:#f8514929;color:var(--color-danger, #f85149);border-radius:6px;padding:2px 8px;font-size:var(--fs-xs);font-weight:700}.gittoy-conflict-pill.is-done{background:var(--color-success-soft);color:var(--color-success-text, var(--color-success))}.gittoy-conflict-hint{font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.5;margin-bottom:10px}.gittoy-conflict{border:1px solid var(--color-border);border-radius:10px;padding:10px;margin-bottom:8px;background:var(--g-term-2)}.gittoy-conflict.is-resolved{border-color:var(--color-success, #3fb950);opacity:.8}.gittoy-conflict-path{font-family:var(--g-mono);font-size:12.5px;font-weight:600;color:var(--color-text);margin-bottom:8px}.gittoy-conflict-sides{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gittoy-conflict-side-cap{font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-subtle);margin-bottom:3px}.gittoy-conflict-side pre{margin:0;font-family:var(--g-mono);font-size:11.5px;line-height:1.45;color:var(--g-cmd);background:var(--g-term-1);border:1px solid var(--g-line);border-radius:6px;padding:6px 8px;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:auto}.gittoy-conflict-actions{display:flex;gap:8px;margin-top:8px}.gittoy-conflict-actions button{flex:1;background:#ffffff0a;color:var(--color-text);border:1px solid var(--color-border);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:var(--fs-sm);font-weight:600;transition:background .12s ease,border-color .12s ease}.gittoy-conflict-actions button:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.gittoy-conflict-finish{width:100%;margin-top:4px;background:var(--color-success-soft);color:var(--color-success-text, var(--color-success));border:1px solid var(--color-success, #3fb950);border-radius:8px;padding:8px 12px;cursor:pointer;font-size:var(--fs-sm);font-weight:700}.gittoy-conflict-finish:hover{filter:brightness(1.08)}.gittoy-term-resizer{flex:0 0 16px;cursor:row-resize;position:relative;touch-action:none;margin:0 16px}.gittoy-term-resizer:before{content:"";position:absolute;top:-2px;right:0;bottom:-2px;left:0;z-index:1}.gittoy-term-resizer:after{content:"";position:absolute;top:7px;right:0;bottom:7px;left:0;border-radius:3px;background:transparent;transition:background .15s ease}.gittoy-term-resizer:hover:after,.gittoy-term-resizer.is-dragging:after{background:var(--g-accent);opacity:.7}body.gittoy-resizing-v{cursor:row-resize;-webkit-user-select:none;user-select:none}.gittoy-bottom{flex:0 0 auto;display:flex;flex-direction:column;min-height:0;border-top:1px solid var(--color-border);background:var(--color-bg-elevated)}.gittoy-bottom.is-collapsed{height:auto}.gittoy-bottom-tabs{flex:0 0 auto;display:flex;align-items:center;gap:12px;height:32px;padding:0 10px;border-bottom:1px solid var(--color-border)}.gittoy-bottom.is-collapsed .gittoy-bottom-tabs{border-bottom:none}.gittoy-bottom-tab{display:flex;align-items:center;gap:6px;height:100%;border:none;background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:12.5px;font-weight:600;cursor:pointer;padding:0 4px;border-bottom:2px solid transparent}.gittoy-bottom-tab:hover{color:var(--color-text)}.gittoy-bottom-tab.is-active{color:var(--color-text);border-bottom-color:var(--g-accent)}.gittoy-bottom-branch{margin-left:auto;font-family:var(--g-mono);font-size:11px;color:var(--color-text-subtle)}.gittoy-bottom-body{flex:1;min-height:0;display:flex;padding:8px}.gittoy-bottom-body .gittoy-term.is-compact{flex:1;min-height:0;border-radius:8px}.gittoy-vg-node.is-ghost{opacity:.32}.gittoy-vg-node.is-ghost .gittoy-vg-gap{fill:var(--color-bg)}.gittoy-vg-edge.is-ghost{opacity:.22;stroke-dasharray:4 4}.gittoy-vg-row.is-ghost{opacity:.5}.gittoy-vg-row.is-ghost .gittoy-vg-msg{color:var(--color-text-muted);font-style:italic}.gittoy-vg-goaltag{flex:0 0 auto;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle);border:1px dashed var(--color-border);border-radius:5px;padding:0 5px}.gittoy-vg-node.is-ghost.is-dim{opacity:.14}.gittoy-graphwin{flex:1;min-width:48px}.gittoy-graphwin-body{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:14px 16px;background:var(--color-bg);display:flex}.gittoy-graphwin-body .gittoy-vg{min-width:280px}.gittoy-graphwin-body .gittoy-vg-gap{fill:var(--color-bg)}.gittoy-goal-note{margin-left:auto;font-size:var(--fs-xs);color:var(--color-text-subtle);white-space:nowrap}.gittoy-st{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:700;min-width:14px;text-align:center}.gittoy-st-untracked{color:var(--color-danger-text, var(--color-danger))}.gittoy-st-modified{color:var(--color-warning)}.gittoy-st-staged{color:var(--color-success-text, var(--color-success))}.gittoy-st-clean{color:var(--color-text-subtle)}.gittoy-insp-summary{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-subtle);padding-top:8px;border-top:1px solid var(--color-border)}.gittoy-termwin{flex:0 0 auto;margin:0 16px 16px;min-height:0}.gittoy-termwin.is-collapsed{height:auto!important}.gittoy-termwin .toyterm-term{flex:1;min-height:0;min-width:0}.gittoy-termbar{cursor:default}.gittoy-term-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--color-text-subtle)}.gittoy-term-toggle:hover{color:var(--color-text)}.gittoy-term-toggle .title{font-size:var(--fs-sm);letter-spacing:.04em}.gittoy-term-branch{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-subtle)}.gittoy-termbar .toyterm-help{margin-left:auto}.gittoy-termbar .toyterm-help+.gittoy-term-branch{margin-left:10px}.gittoy-brief{flex:0 0 auto;width:min(var(--gt-left, 320px),calc(100cqi - 160px))}.gittoy-insp{flex:0 0 auto;width:min(var(--gt-right, 260px),calc(100cqi - 160px));font-family:var(--font-mono)}.gittoy-insp .pbit{cursor:default;pointer-events:none}.gittoy-workarea.is-left-rail .gittoy-brief,.gittoy-workarea.is-right-rail .gittoy-insp{width:44px;overflow:hidden;padding:16px 0 0;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start;justify-content:center;gap:0}.gittoy-workarea.is-left-rail .gittoy-brief .exercise-brief-inner,.gittoy-workarea.is-right-rail .gittoy-insp .toyterm-insp-inner{display:none}.gittoy-workarea.is-left-rail .gittoy-brief .exercise-brief-rail,.gittoy-workarea.is-right-rail .gittoy-insp .exercise-brief-rail{display:flex}.gittoy-workarea.is-left-rail .gittoy-brief:hover,.gittoy-workarea.is-right-rail .gittoy-insp:hover{border-color:var(--color-border-strong)}.gittoy-workarea.is-left-rail .gittoy-brief:hover .exercise-brief-rail,.gittoy-workarea.is-right-rail .gittoy-insp:hover .exercise-brief-rail{color:var(--color-text)}.gittoy-insp-rail .exercise-brief-rail-text{transform:rotate(0)}.toyterm-term .tline.is-explain{color:var(--color-text-secondary, #9aa4b2);font-style:italic;opacity:.85}.gittoy-vg-divergence{margin-left:5px;padding-left:5px;border-left:1px solid rgba(255,255,255,.35);font-weight:600;letter-spacing:.02em}.gittoy-brief-md p{margin:0 0 .55em}.gittoy-brief-md p:last-child{margin-bottom:0}.gittoy-brief-md code{font-size:.92em;padding:.08em .35em;border-radius:5px;background:var(--color-surface-2, rgba(127, 127, 127, .14))}@keyframes gittoy-node-pop{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}.gittoy-vg-node.is-just-created .gittoy-vg-ring{transform-box:fill-box;transform-origin:center;animation:gittoy-node-pop .45s cubic-bezier(.34,1.56,.64,1) both}@keyframes gittoy-row-flash{0%{background:#5eea9538}to{background:transparent}}.gittoy-vg-row.is-just-created{animation:gittoy-row-flash .9s ease-out both;border-radius:8px}@keyframes gittoy-head-pulse{0%{stroke-opacity:0;transform:scale(1.7)}60%{stroke-opacity:1}to{stroke-opacity:1;transform:scale(1)}}.gittoy-vg-head-ring.is-moved{transform-box:fill-box;transform-origin:center;animation:gittoy-head-pulse .4s ease-out both}.toyterm-irow.gittoy-irow-flash{animation:gittoy-row-flash .8s ease-out both}@keyframes gittoy-glyph-pop{0%{transform:scale(.4)}60%{transform:scale(1.35)}to{transform:scale(1)}}.toyterm-irow.gittoy-irow-flash .gittoy-st{display:inline-block;animation:gittoy-glyph-pop .45s cubic-bezier(.34,1.56,.64,1) both}@media (prefers-reduced-motion: reduce){.gittoy-vg-node.is-just-created .gittoy-vg-ring,.gittoy-vg-row.is-just-created,.gittoy-vg-head-ring.is-moved,.toyterm-irow.gittoy-irow-flash,.toyterm-irow.gittoy-irow-flash .gittoy-st{animation:none}}.gtcur-page{max-width:1240px;margin:0 auto;padding:24px 20px 48px}.gtcur-head h1{margin:0 0 4px;font-size:1.35rem}.gtcur-sub{margin:0 0 18px;color:var(--color-text-secondary, #9aa4b2);font-size:.85rem}.gtcur-empty{color:var(--color-text-secondary, #9aa4b2)}.gtcur-grid{display:grid;grid-template-columns:340px 1fr 240px;gap:14px;align-items:start}@media (max-width: 960px){.gtcur-grid{grid-template-columns:1fr}}.gtcur-sessions{display:flex;flex-direction:column;gap:6px;padding:10px}.gtcur-session{text-align:left;font:inherit;font-size:.8rem;padding:7px 10px;border-radius:8px;border:1px solid var(--color-border, rgba(127, 127, 127, .25));background:transparent;color:inherit;cursor:pointer}.gtcur-session.is-active{border-color:var(--color-accent, #5eea95);background:#5eea9514}.gtcur-transcript{padding:4px 10px 10px;max-height:320px;overflow-y:auto}.gtcur-transcript .ct{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary, #9aa4b2);margin:6px 0}.gtcur-cmd{display:flex;gap:8px;width:100%;text-align:left;font-family:var(--font-mono, monospace);font-size:.78rem;padding:3px 6px;border:0;border-radius:6px;background:transparent;color:var(--color-text-secondary, #9aa4b2);cursor:pointer;opacity:.55}.gtcur-cmd.is-played{opacity:1;color:inherit}.gtcur-cmd.is-current{background:#5eea951f}.gtcur-cmd-n{flex:0 0 2ch;text-align:right;opacity:.6}.gtcur-stepper{display:flex;align-items:center;gap:8px;padding:8px 10px 12px;border-top:1px solid var(--color-border, rgba(127, 127, 127, .2))}.gtcur-stepper input[type=range]{flex:1}.gtcur-stepper button{font:inherit;font-size:.75rem;padding:4px 8px;border-radius:6px;border:1px solid var(--color-border, rgba(127, 127, 127, .25));background:transparent;color:inherit;cursor:pointer}.gtcur-stepper button:disabled{opacity:.4;cursor:default}.gtcur-graphbody{min-height:320px;max-height:70vh;overflow:auto;display:flex;justify-content:center;padding:14px}.gtcur-hints-note{margin-top:12px;font-size:.78rem;color:var(--color-text-secondary, #9aa4b2)}.gittoy-exercise .gittoy-shell{height:clamp(560px,78vh,720px)}.gittoy-exercise .exercise-verdict,.gittoy-exercise .exercise-error{margin-top:14px}.gittoy-exercise .gittoy-workarea{padding:0}.gittoy-exercise .gittoy-termwin,.gittoy-exercise .gittoy-term-resizer{margin:0}.gittoy-brief .exercise-brief-rail,.gittoy-insp .exercise-brief-rail{font-family:var(--font-mono)}.gittoy-exercise .gittoy-termwin{max-height:calc(100% - 250px)}.gittoy-vg-chip.is-goal{color:var(--color-text-muted, #9aa0a6);background:transparent;border:1px dashed var(--color-text-subtle, #767c85);font-weight:700;box-shadow:none;opacity:.65}.gittoy-graphwin{container-type:inline-size}@container (max-width: 250px){.gittoy-reset-label{display:none}}.gittoy-vg-bnode{cursor:pointer}.gittoy-vg-bnode .gittoy-vg-bring{stroke-width:2.5}.gittoy-vg-bnode.is-remote .gittoy-vg-bring{fill:transparent;stroke-dasharray:3 3}.gittoy-vg-bnode.is-ghost .gittoy-vg-bring{fill:transparent;stroke-dasharray:4 3;opacity:.55}.gittoy-vg-bnode.is-dim{opacity:.25}.gittoy-vg-bnode.is-just-created .gittoy-vg-bring{transform-box:fill-box;transform-origin:center;animation:gittoy-node-pop .45s cubic-bezier(.34,1.56,.64,1) both}.gittoy-vg-edge.is-branchlink{stroke-width:2.5;opacity:.75}.gittoy-vg-edge.is-branchlink.is-ghost{opacity:.25}.gittoy-vg-row.is-branchrow .gittoy-vg-bname{font-family:var(--font-sans);font-weight:800;font-size:12.5px;letter-spacing:.01em}.gittoy-vg-bname.is-remote{font-weight:650;opacity:.9}.gittoy-vg-chip.is-tag{color:var(--color-warning, #e0a82e);background:transparent;border:1px solid color-mix(in srgb,var(--color-warning, #e0a82e) 55%,transparent);font-weight:700;box-shadow:none}@media (max-width: 760px){.gittoy-exercise .gittoy-shell{height:auto}.gittoy-workarea{display:contents}.gittoy-ide{gap:12px;padding:0}.gittoy-brief{order:1}.gittoy-graphwin{order:2}.gittoy-termwin{order:3}.gittoy-insp{order:4}.gittoy-resizer,.gittoy-term-resizer{display:none}.gittoy-brief,.gittoy-insp,.gittoy-workarea.is-left-rail .gittoy-brief,.gittoy-workarea.is-right-rail .gittoy-insp{width:auto;cursor:auto}.gittoy-workarea.is-left-rail .gittoy-brief{display:block;padding:16px;overflow:auto}.gittoy-workarea.is-right-rail .gittoy-insp{display:flex;flex-direction:column;padding:14px 14px 12px;overflow:hidden}.gittoy-workarea.is-left-rail .gittoy-brief .exercise-brief-inner{display:block}.gittoy-workarea.is-right-rail .gittoy-insp .toyterm-insp-inner{display:flex}.gittoy-brief .exercise-brief-rail,.gittoy-insp .exercise-brief-rail{display:none!important}.gittoy-graphwin{flex:0 0 auto}.gittoy-graphwin-body{max-height:min(52vh,440px)}.gittoy-termwin{height:auto!important;max-height:none;margin:0}.gittoy-termwin .toyterm-term{min-height:240px;max-height:min(55vh,420px);min-width:0}.gittoy-insp{height:auto;min-height:0;max-height:none}.gittoy-insp .toyterm-insp-body{flex:0 0 auto;max-height:none;overflow:visible}.gittoy-shell .toyterm-fs{display:none}.gittoy-term-branch{min-width:0;max-width:55%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.gittoy-term-branch-prefix{display:none}.gittoy-shell.is-fullscreen .gittoy-ide{overflow-y:auto}}@media (max-width: 900px) and (min-width: 761px){.gittoy-workarea.is-left-rail .gittoy-brief .exercise-brief-rail,.gittoy-workarea.is-right-rail .gittoy-insp .exercise-brief-rail{display:flex!important}}
