:root{--bg: #ffffff;--grid: #e8ecf4;--grid-ghost: #f3f6fb;--axis: #b9c4d8;--c-ihat: #2563eb;--c-jhat: #ea580c;--c-result: #16a34a;--c-accent: #9333ea;--c-extra: #0ea5e9;--text: #334155;--text-strong: #0f172a;--text-dim: #5c6b7f;--panel: #f6f8fb;--border: #e2e8f0;--danger: #dc2626;--warm: #b8893a;--warm-ink: #7a5a1f;--warm-soft: #fdf8ef;--warm-line: #eddcbe;--warm-shadow: rgba(140, 100, 30, .16);--card: #ffffff;--shell: #f1f4f9;--inner-hl: rgba(255, 255, 255, .9);--tint-blue: #eff6ff;--exit-bg: #e3ecfb;--exit-bg-hover: #edf3fe;--tint-yellow: #fefce8;--tint-yellow-line: #fde68a;--tint-danger: #fef2f2;--ok-bg: #dcfce7;--ok-fg: #15803d;--wip-bg: #f1f5f9;--toast-bg: rgba(15, 23, 42, .85);--toast-fg: #ffffff;--ambient: rgba(15, 23, 42, .06);--on-accent: #ffffff;--warm-glow: #fbf0dd;--halo: rgba(255, 255, 255, .92);--focus: var(--c-ihat);--ease: cubic-bezier(.32, .72, 0, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d1117;--grid: #1d2635;--grid-ghost: #151c26;--axis: #44536a;--c-ihat: #60a5fa;--c-jhat: #fb923c;--c-result: #4ade80;--c-accent: #c084fc;--c-extra: #38bdf8;--text: #c6cfdb;--text-strong: #f0f4f9;--text-dim: #97a4b6;--panel: #141b26;--border: #273243;--danger: #f87171;--warm: #d9ad63;--warm-ink: #e9c489;--warm-soft: #1b1710;--warm-line: #3b3222;--warm-shadow: rgba(0, 0, 0, .5);--card: #161d29;--shell: #10161f;--inner-hl: rgba(255, 255, 255, .05);--tint-blue: #14243c;--exit-bg: #16273f;--exit-bg-hover: #1c3050;--tint-yellow: #241f10;--tint-yellow-line: #4a3f1c;--tint-danger: #2a1518;--ok-bg: #12341f;--ok-fg: #6ee7a0;--wip-bg: #1c2431;--toast-bg: rgba(226, 232, 240, .92);--toast-fg: #0d1117;--ambient: rgba(0, 0, 0, .5);--halo: rgba(13, 17, 23, .92);--on-accent: #0b1220;--warm-glow: #241d10}}:root{color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,HarmonyOS Sans SC,MiSans,Source Han Sans SC,Noto Sans CJK SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--c-ihat);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}.home{max-width:960px;margin:0 auto;padding:72px 24px 40px}.home h1{color:var(--text-strong);font-size:clamp(28px,4.4vw,40px);margin:0 0 8px;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}.home .tagline{color:var(--text-dim);margin:0 0 10px;font-size:15.5px;max-width:38em;text-wrap:pretty}.brand-hero{display:flex;align-items:center;gap:16px;margin:0 0 28px}.brand-logo{width:68px;height:68px;border-radius:50%;object-fit:cover;border:3px solid var(--card);box-shadow:0 6px 20px #785a1e38}.brand-meta{display:flex;flex-direction:column;gap:3px}.brand-name{font-size:22px;font-weight:800;color:var(--text-strong);letter-spacing:.02em}.brand-handle{font-size:14px;color:var(--warm-ink);font-weight:700}.brand{display:inline-flex;align-items:center;gap:8px}.brand .brand-mark{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1.5px solid var(--card);box-shadow:0 1px 4px #785a1e40}.brand b{font-size:14px;color:var(--warm-ink);font-weight:800;letter-spacing:.02em}.home-start{margin:26px 0 52px}.home-start a{display:inline-flex;align-items:center;gap:12px;padding:11px 12px 11px 24px;border-radius:99px;background:var(--c-ihat);color:var(--on-accent);font-size:15px;font-weight:600;box-shadow:0 10px 26px #2563eb42,inset 0 1px #ffffff38;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}.home-start a:hover{text-decoration:none;box-shadow:0 14px 32px #2563eb52,inset 0 1px #ffffff38}.home-start a:active{transform:scale(.98)}.home-start .go{width:30px;height:30px;flex:none;border-radius:50%;background:#ffffff2e;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;transition:transform .5s var(--ease),background .4s var(--ease)}.home-start a:hover .go{transform:translate(3px,-2px) scale(1.06);background:#ffffff47}.home-progress{max-width:420px;margin:26px 0 0}.home-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.home-progress-head b{font-size:14px;color:var(--text-strong);font-variant-numeric:tabular-nums}.home-progress-track{height:6px;margin-top:7px;border-radius:99px;background:var(--shell);border:1px solid var(--border);overflow:hidden}.home-progress-fill{height:100%;background:var(--c-ihat);border-radius:99px;transition:width .6s var(--ease)}.linklike{background:none;border:0;padding:0;font:inherit;font-size:12.5px;color:var(--text-dim);cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .35s var(--ease)}.linklike:hover{color:var(--c-ihat)}.linklike.is-armed{color:var(--danger)}.home-progress+.home-start{margin-top:16px}.chapter{margin:0 0 52px}.chapter-head{display:flex;align-items:baseline;gap:10px}.chapter-head h2{font-size:17px;font-weight:700;color:var(--text-strong);margin:0;letter-spacing:-.01em}.chapter-range{font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums}.chapter-blurb{margin:5px 0 12px;font-size:13.5px;color:var(--text-dim);max-width:46em;text-wrap:pretty}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.course-card{border:1px solid var(--border);border-radius:14px;background:var(--shell);padding:4px;color:inherit;transition:border-color .45s var(--ease),box-shadow .45s var(--ease),transform .45s var(--ease)}.course-inner{background:var(--card);border-radius:10px;box-shadow:inset 0 1px 0 var(--inner-hl);height:100%;display:flex;flex-direction:column}.course-card:hover{border-color:var(--c-ihat);text-decoration:none;box-shadow:0 10px 28px #2563eb1f,0 2px 6px var(--ambient);transform:translateY(-2px)}.course-main{display:block;color:inherit;padding:13px 15px 9px;flex:1}.course-main:hover{text-decoration:none}.course-card .num{color:var(--text-dim);font-size:12px;font-variant-numeric:tabular-nums}.course-card .title{color:var(--text-strong);font-weight:600;margin:2px 0 0;line-height:1.45}.course-foot{display:flex;align-items:center;justify-content:space-between;padding:0 15px 11px;font-size:12px}.course-read{color:var(--text-dim)}.course-card:hover .course-read{color:var(--c-ihat)}.course-card.done{background:var(--ok-bg);border-color:transparent}.course-read.is-done{color:var(--ok-fg);font-weight:600}.course-card:hover .course-read.is-done{color:var(--ok-fg)}.course-card.disabled{padding:4px;opacity:.6;pointer-events:none}.course-card.disabled .course-inner{padding:13px 15px}.course-card .badge{font-size:12px;border-radius:99px;padding:1px 10px;align-self:flex-start;margin-top:6px}.course-card .badge.ok{background:var(--ok-bg);color:var(--ok-fg)}.course-card .badge.wip{background:var(--wip-bg);color:var(--text-dim)}.reveal{opacity:0;transform:translateY(24px);filter:blur(6px)}.reveal.in{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease)}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;filter:none}}@media print{.reveal{opacity:1!important;transform:none!important;filter:none!important}}body.lab{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;gap:16px;padding:0 16px;height:48px;flex:none;background:var(--panel);border-bottom:1px solid var(--border)}.topbar h1{font-size:16px;color:var(--text-strong);margin:0;flex:1;text-align:center}.topbar .back{font-size:14px}.topbar .hint{font-size:12px;color:var(--text-dim)}.lab-main{flex:1;display:grid;grid-template-columns:1fr 300px;min-height:0}.canvas-wrap{position:relative}.canvas-wrap canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.canvas-wrap canvas:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.panel{background:var(--panel);border-left:1px solid var(--border);padding:16px;overflow-y:auto;display:flex;flex-direction:column}.panel>.section{flex:none}.panel.can-scroll{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 34px),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - 34px),transparent 100%)}.toast{position:absolute;left:50%;bottom:24px;transform:translate(-50%);background:var(--toast-bg);color:var(--toast-fg);font-size:13px;padding:6px 14px;border-radius:99px;pointer-events:none;transition:opacity .3s var(--ease);z-index:10}.toast[hidden]{display:block;opacity:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:760px){.topbar{height:auto;min-height:48px;padding:6px 12px;flex-wrap:wrap;gap:8px 12px}.topbar h1{order:-1;flex-basis:100%;text-align:left;font-size:15px;line-height:1.35}.topbar .back{font-size:13px}.topbar .brand b{display:none}.lab-main{grid-template-columns:1fr;grid-template-rows:minmax(42dvh,1fr) auto}.panel{border-left:none;border-top:1px solid var(--border);max-height:48dvh;padding:12px 14px}.panel>.section[data-role=guide]{order:-3}.panel>.section[data-role=result]{order:-2}.panel>.section[data-role=action]{order:-1}.shortcuts-pop,.support-pop{top:auto;bottom:12px;right:12px;left:12px;width:auto}.support-pop .qr-card{margin:0 auto}}body.lab.clean .topbar,body.lab.clean .panel,body.lab.clean .shortcuts-pop,body.lab.clean .support-pop{display:none}body.lab.clean .lab-main{grid-template-columns:1fr}.section{margin-bottom:18px}.section>.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px}.section-badge{flex:none;font-size:10.5px;font-weight:600;letter-spacing:.08em;color:var(--c-ihat);background:var(--tint-blue);border:1px solid var(--border);border-radius:99px;padding:1px 8px}.matrix-input{display:inline-grid;grid-template-columns:64px 64px;gap:6px}.matrix-input-3x3,.matrix-input-2x3{grid-template-columns:repeat(3,64px)}.matrix-input-3x2{grid-template-columns:repeat(2,64px)}.matrix-input input{width:64px;padding:6px 4px;text-align:center;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--card);color:var(--text-strong);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.matrix-input input:focus{outline:2px solid var(--focus);outline-offset:-1px}.matrix-input input.invalid{border-color:var(--danger);background:var(--tint-danger)}.btn{display:inline-block;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:13px;padding:6px 12px;cursor:pointer;margin:0 6px 6px 0;box-shadow:inset 0 1px 0 var(--inner-hl);transition:border-color .35s var(--ease),color .35s var(--ease),background .35s var(--ease),transform .25s var(--ease)}.btn:hover{border-color:var(--c-ihat);color:var(--c-ihat)}.btn:active:not(:disabled){transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn.primary{background:var(--c-ihat);border-color:var(--c-ihat);color:var(--on-accent)}.btn.primary:hover{opacity:.9;color:var(--on-accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.active{border-color:var(--c-ihat);color:var(--c-ihat);background:var(--tint-blue);font-weight:600}.readout{display:flex;justify-content:space-between;font-size:14px;margin:4px 0}.readout .label{color:var(--text-dim)}.readout .value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-strong)}.formula-box{padding:8px 0;overflow-x:auto}.panel-note{font-size:12.5px;line-height:1.6;color:var(--text-dim);margin:8px 0 0;text-wrap:pretty}.panel-note b{display:inline-block;font-weight:600;font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--c-ihat);background:var(--tint-blue);border-radius:99px;padding:1px 9px;margin-left:1px;white-space:nowrap}.stepper{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:440px}.step{display:inline-flex;align-items:center;gap:6px;min-width:0}.step-dot{width:20px;height:20px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;background:var(--shell);border:1px solid var(--border);color:var(--text-dim);transition:background .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease)}.step-label{font-size:12px;color:var(--text-dim);transition:color .45s var(--ease)}.step-line{flex:1 1 10px;min-width:10px;height:1px;background:var(--border)}.step.is-done .step-dot{background:var(--tint-blue);border-color:var(--c-ihat);color:var(--c-ihat)}.step.is-active .step-dot{background:var(--c-ihat);border-color:var(--c-ihat);color:var(--on-accent);transform:scale(1.12)}.step.is-active .step-label{color:var(--text-strong);font-weight:600}.formula-chain{border:1px solid var(--border);border-radius:16px;background:var(--shell);padding:5px;overflow-x:auto}.formula-chain-inner{background:var(--card);border-radius:11px;box-shadow:inset 0 1px 0 var(--inner-hl);padding:12px 14px;display:grid;grid-auto-flow:column;grid-template-rows:auto auto;align-items:center;justify-items:center;gap:8px 10px;justify-content:center;width:max-content;min-width:100%}.chain-mat{font-size:15px}.chain-cap{display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1.4;color:var(--text-dim);white-space:nowrap}.chain-badge{width:15px;height:15px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;color:var(--on-accent)}.chain-badge[data-step="1"]{background:var(--c-jhat)}.chain-badge[data-step="2"]{background:var(--c-ihat)}.chain-op{font-size:16px;color:var(--text-dim)}.chain-spacer{height:0}.panel .formula-chain-inner{padding:10px 8px;gap:7px 6px}.panel .chain-mat{font-size:12.5px}.panel .chain-cap{font-size:10.5px;gap:3px}.panel .chain-badge{width:13px;height:13px;font-size:9.5px}.panel .chain-op{font-size:14px}.panel-cols{display:grid;grid-template-columns:1fr;gap:0 26px}@media(min-width:620px){.panel-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.legend{border:1px solid var(--border);border-radius:14px;background:var(--shell);padding:4px}.legend-inner{background:var(--card);border-radius:10px;box-shadow:inset 0 1px 0 var(--inner-hl);padding:10px 12px;display:grid;gap:9px}.legend-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start}.legend-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex:none}.legend-text{font-size:12.5px;line-height:1.5;color:var(--text-dim);min-width:0}.legend-text b{color:var(--text-strong);font-weight:600;margin-right:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}kbd.kbd{display:inline-block;min-width:18px;text-align:center;padding:1px 5px;font-size:11px;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);background:var(--card);border:1px solid var(--border);border-bottom-width:2px;border-radius:5px}.shortcuts-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text-dim);font-size:12px;padding:4px 10px;cursor:pointer;transition:color .35s var(--ease),border-color .35s var(--ease)}.shortcuts-btn:hover{color:var(--c-ihat);border-color:var(--c-ihat)}.shortcuts-btn:active{transform:scale(.97)}.shortcuts-btn:focus-visible{outline:2px solid var(--c-ihat);outline-offset:2px}.shortcuts-pop{position:fixed;top:56px;right:12px;z-index:30;width:264px;padding:14px 16px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #2563eb1a,0 2px 8px var(--ambient);opacity:1;transform:translateY(0);transition:opacity .3s var(--ease),transform .4s var(--ease)}.shortcuts-pop[hidden]{display:block;opacity:0;transform:translateY(-6px);pointer-events:none}.shortcuts-pop .pop-title{font-size:12px;font-weight:600;color:var(--text-dim);letter-spacing:.05em;margin:0 0 10px}.shortcut-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:7px 0;font-size:13px}.shortcut-row .keys{display:inline-flex;gap:3px;align-items:center;color:var(--text-dim)}.embed-demo{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:20px 0}.embed-demo .embed-canvas{position:relative}.embed-demo .embed-panel{border-top:1px solid var(--border);background:var(--panel);padding:12px 16px}.embed-more{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;border-top:1px solid var(--border);border-left:3px solid var(--c-ihat);background:var(--exit-bg);padding:13px 16px;text-decoration:none;transition:background .4s var(--ease)}.embed-more:hover{text-decoration:none;background:var(--exit-bg-hover)}.embed-more:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.embed-more-text{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.embed-more-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase}.embed-more-text b{color:var(--text-strong);font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.35}.embed-more-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:1px}.embed-more-chip{font-size:11.5px;line-height:1.6;color:var(--text-dim);background:var(--card);border:1px solid var(--border);border-radius:99px;padding:1px 9px;white-space:nowrap}.embed-more-go{width:34px;height:34px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--c-ihat);color:var(--on-accent);font-size:15px;line-height:1;box-shadow:0 4px 12px #2563eb47;transition:transform .5s var(--ease),box-shadow .4s var(--ease)}.embed-more:hover .embed-more-go{transform:translate(3px,-2px) scale(1.06);box-shadow:0 8px 18px #2563eb57}.embed-more:active .embed-more-go{transform:scale(.96)}@media(max-width:560px){.embed-more{padding:12px 13px;gap:10px}}.slider-row{display:flex;align-items:center;gap:8px;font-size:13px;margin:6px 0}.slider-row .label{color:var(--text-dim);min-width:28px}.slider-row input[type=range]{flex:1;accent-color:var(--c-ihat)}.slider-row .value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-width:36px;text-align:right}.lesson-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:0 16px;min-height:48px;background:var(--panel);border-bottom:1px solid var(--border)}.lesson-topbar h1{font-size:16px;color:var(--text-strong);margin:0;flex:1;text-align:center}@media(max-width:760px){.lesson-topbar{flex-wrap:wrap;gap:6px 14px;padding:8px 14px}.lesson-topbar h1{order:-1;flex-basis:100%;text-align:left;font-size:15px;line-height:1.35}.lesson-body{padding:22px 18px 56px}}.lesson-body{max-width:760px;margin:0 auto;padding:32px 24px 64px}.lesson-intro{font-size:17px;color:var(--text-strong);background:var(--tint-blue);border-left:3px solid var(--c-ihat);padding:12px 16px;border-radius:0 10px 10px 0}.lesson-body h2{color:var(--text-strong);font-size:20px;margin:32px 0 8px}.lesson-body p{margin:10px 0}.lesson-formula{text-align:center;padding:10px 0;overflow-x:auto}.lesson-tip{background:var(--tint-yellow);border:1px solid var(--tint-yellow-line);border-radius:10px;padding:10px 14px;margin:14px 0;font-size:14px}.concept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:14px 0}.concept-card{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;background:var(--card);box-shadow:inset 0 1px 0 var(--inner-hl)}.concept-card b{display:block;color:var(--text-strong);margin-bottom:4px}.lesson-quiz{background:var(--panel);border-radius:12px;padding:14px 18px;margin:24px 0}.lesson-quiz h3{margin:0 0 8px;font-size:15px;color:var(--text-strong)}.lesson-nav{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:16px;border-top:1px solid var(--border);font-size:14px}.lesson-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:36px}.lesson-actions+.lesson-nav{margin-top:20px}.done-toggle,.share-btn{display:inline-flex;align-items:center;min-height:34px;border:1px solid var(--border);border-radius:99px;padding:6px 15px;background:var(--card);color:var(--text);font:inherit;font-size:13px;cursor:pointer;transition:border-color .35s var(--ease),color .35s var(--ease),background .35s var(--ease)}.done-toggle:hover,.share-btn:hover{border-color:var(--c-ihat);color:var(--c-ihat)}.done-toggle.is-done{background:var(--ok-bg);color:var(--ok-fg);border-color:transparent}.done-toggle.is-done:hover{color:var(--ok-fg)}.embed-demo .matrix-input input{width:56px}.lab-link{font-size:12px;color:var(--text-dim);margin-left:auto;padding-left:8px;transition:color .35s var(--ease)}.lab-link:hover{color:var(--c-ihat)}.notfound{max-width:560px;margin:0 auto;padding:72px 24px 96px}.notfound-art{max-width:260px;margin-bottom:22px}.notfound-art svg{width:100%;height:auto;display:block}.notfound-code{margin:0;font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--text-dim);font-variant-numeric:tabular-nums}.notfound h1{margin:6px 0 12px;font-size:26px;letter-spacing:-.01em;color:var(--text-strong);text-wrap:balance}.notfound-lead{margin:0 0 26px;max-width:34em;text-wrap:pretty}.notfound-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0}.notfound-actions .btn{margin:0;padding:8px 16px;font-size:14px}.notfound-actions .btn:hover{text-decoration:none}.notfound-actions .btn.primary:hover{color:var(--on-accent)}.about{margin:64px 0 0;padding:6px;border-radius:22px;background:var(--shell)}.about-inner{border-radius:16px;padding:26px 28px 28px;background:radial-gradient(130% 160% at 4% -20%,var(--tint-blue) 0%,transparent 52%),var(--card);box-shadow:inset 0 1px 0 var(--inner-hl)}.about-eyebrow{display:inline-block;padding:4px 11px;border-radius:99px;background:var(--panel);color:var(--text-dim);font-size:10.5px;font-weight:700;letter-spacing:.2em;line-height:1.4}.about-body{display:flex;align-items:flex-end;justify-content:space-between;gap:28px 32px;flex-wrap:wrap;margin-top:18px}.about-who{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 22em}.about-avatar-frame{flex:none;padding:3px;border-radius:50%;background:var(--shell);box-shadow:0 0 0 1px var(--border),0 14px 30px var(--ambient)}.about-avatar{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover}.about-meta{min-width:0}.about-name{font-size:19px;font-weight:700;color:var(--text-strong);letter-spacing:-.01em}.about-tags{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:7px}.about-tags li{padding:4px 11px;border-radius:99px;white-space:nowrap;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:13px;line-height:1.5}.about-contact{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.about-mail{display:inline-flex;align-items:center;gap:10px;padding:7px 7px 7px 18px;border-radius:99px;background:var(--c-ihat);color:var(--on-accent);font-weight:600;font-size:14.5px;box-shadow:0 10px 26px #2563eb3d,inset 0 1px #ffffff38;transition:box-shadow .5s var(--ease),transform .5s var(--ease)}.about-mail:hover{text-decoration:none;color:var(--on-accent);box-shadow:0 14px 32px #2563eb4d,inset 0 1px #ffffff38}.about-mail:active{transform:scale(.985)}.about-mail>.ico{flex:none;opacity:.7}.about-mail-text{font-variant-numeric:tabular-nums;letter-spacing:.01em}.about-knob{width:30px;height:30px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffffff38;transition:transform .5s var(--ease),background .5s var(--ease)}.about-mail:hover .about-knob{transform:translate(2px,-2px) scale(1.06);background:#ffffff57}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .about-knob{background:#020c1e29}:root:not([data-theme=light]) .about-mail:hover .about-knob{background:#020c1e42}}.about-copy{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:99px;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text-dim);font:inherit;font-size:13.5px;line-height:1.4;transition:border-color .45s var(--ease),color .45s var(--ease),background .45s var(--ease),transform .45s var(--ease)}.about-copy:hover{border-color:var(--c-ihat);color:var(--c-ihat);background:var(--tint-blue)}.about-copy:active{transform:scale(.97)}.about-copy.is-done{border-color:var(--ok-fg);color:var(--ok-fg);background:transparent}.about-copy-ico{display:inline-flex}@media(max-width:620px){.about{margin-top:48px}.about-inner{padding:22px 20px 24px}.about-body{align-items:flex-start;gap:20px}.about-who{gap:14px;flex-basis:100%}.about-avatar{width:54px;height:54px}.about-contact{width:100%}}@media(max-width:400px){.about-mail{font-size:13px;padding-left:14px}}.qr-card{background:var(--card);border:1px solid var(--warm-line);border-radius:14px;padding:12px 12px 10px;width:max-content;box-shadow:0 10px 26px var(--warm-shadow)}.qr-card img{display:block;border-radius:6px}.qr-cap{margin-top:8px;text-align:center;font-size:12px;line-height:1.5;color:var(--warm-ink)}.support{margin:56px 0 12px;padding:28px 30px 30px;border:1px solid var(--warm-line);border-radius:18px;background:radial-gradient(120% 150% at 88% -10%,var(--warm-glow) 0%,transparent 60%),var(--warm-soft);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:34px;align-items:start}.support-label{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--warm-ink);margin-bottom:6px}.support h2{margin:0 0 10px;font-size:21px;font-weight:600;line-height:1.35;letter-spacing:-.01em;color:var(--text-strong);text-wrap:balance}.support p{margin:0 0 10px;max-width:34em;text-wrap:pretty}.support .support-note{margin:14px 0 0;font-size:13px;color:var(--text-dim)}@media(max-width:680px){.support{grid-template-columns:1fr;gap:22px;padding:24px 20px 26px}.support .qr-card{justify-self:start}}.support-inline{margin-top:22px;padding:12px 16px;border:1px solid var(--warm-line);border-radius:14px;background:var(--warm-soft)}.support-inline-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px}.support-inline .coffee{font-size:17px;line-height:1}.support-inline .txt{flex:1;min-width:220px;color:var(--warm-ink)}.support-btn{border:1px solid var(--warm-line);border-radius:8px;background:var(--card);color:var(--warm-ink);font:inherit;font-size:13px;padding:5px 12px;cursor:pointer;transition:border-color .35s var(--ease),color .35s var(--ease),background .35s var(--ease),transform .25s var(--ease)}.support-btn:hover{border-color:var(--warm);color:var(--warm);background:var(--warm-soft)}.support-btn:active{transform:scale(.97)}.support-btn:focus-visible{outline:2px solid var(--warm);outline-offset:2px}.support-reveal{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s var(--ease),opacity .35s var(--ease)}.support-reveal>div{overflow:hidden}.support-inline.open .support-reveal{grid-template-rows:1fr;opacity:1}.support-inline .qr-card{margin:14px 0 2px}.topbar .hint-area{display:inline-flex;align-items:center;gap:8px}.support-mini:hover{color:var(--warm);border-color:var(--warm)}.support-mini:focus-visible{outline-color:var(--warm)}.support-pop{width:max-content;padding:14px 16px 16px;box-shadow:0 12px 32px var(--warm-shadow),0 2px 8px var(--ambient)}.support-pop .pop-title{color:var(--warm-ink);letter-spacing:.02em}.support-pop .qr-card{border:none;box-shadow:none;padding:0}.topbar .back,.lesson-topbar .back,.lesson-topbar .lab-link,.lesson-nav a,.lesson-quiz a,.course-foot .lab-link{display:inline-flex;align-items:center;min-height:26px}.slider-row input[type=range]{min-height:26px}@media(pointer:coarse),(max-width:760px){.btn,.shortcuts-btn,.support-btn,.notfound-actions .btn,.done-toggle,.share-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.done-toggle,.share-btn{padding:10px 18px;font-size:14px}.linklike{padding:10px 8px;margin:-10px -8px}.btn{padding:10px 16px;font-size:14px;margin:0 8px 8px 0}.matrix-input input{padding:11px 4px;font-size:15px;min-height:44px}.shortcuts-btn{padding:10px 12px;font-size:13px}.support-btn{padding:10px 14px;font-size:14px}.about-mail,.about-copy{min-height:44px}.about-copy{padding:10px 16px;font-size:14px}.slider-row input[type=range]{height:44px}.topbar .back,.lesson-topbar .back,.lesson-topbar .lab-link,.lesson-nav a,.lesson-quiz a,.course-foot .lab-link{display:inline-flex;align-items:center;min-height:44px;padding-inline:8px;margin-inline:-8px}.course-foot,.course-main{padding-bottom:4px}}
