@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQAAAAQtAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVDYAdBEICoRkg3gLIAABNgIkAzoEIAWFIgeBFAwHG1wHKI7DuPEacDIiFJ/g+f47+1/7dIcdXTlD8DKqmcw4eIC+AOCPf6+qiWq3h6+aSCLNJDnkqX9Xl+rv/6dSBcwSBCzEoVqxNbp5SqPMYdKBQhBq1dK9ggSsgYUoGnHOqttMECvWjIJfPA8cjQAuAEAQLAiClASc7M6OkfbO/nHs6ACmCYBxZXKP4s9uXIHECh4AdEhX0yIHC6jzgAb65sshStMMChwEfWVjZe8Anset/6H93x8jOyL5fuS67z4Dlam+BPyH/pV2FLCZAOnU0XPzCQGiJ7AkXgSFhqDEB4AAoAAN2ExDgM10joCNfDQUbvxaXM8LovT79D9MEyYU9+q/myT9p/m8uWi2mLJBPbzcih2wYIPzBDFNvABt315OXwy8BaRnbo5hXsOS5taknX4FguiaZnd4vQ7HxnBnm3SPYXHrQbclvOgyDhsHnZPO8f3G5I2fbr34Y7+hzRozVzyw5bKHdu03plXgvE9FO/Uz4/xPUKd8/PHk+R+JODnlg1lDTv3Qed77zDNqRszaqHUQT248kUPGzBXXXHGFnHrVVdft2m8c4PhpjB+/QEqMU54xruc6m3w8++XNXx4sya9rMvNq88m6X1zeOMlRuQ+/nvNw4+ZrCt58yDdSVOQdfoi/jc/ePfZY+1taYaH21FH2Y4fGG+RVNJkIN4SSiWj3ZKGG1oojoYr2SNWFVbHvY1XX1PR+H6y+oKrqgmryqj1UXnmk5cKWysPM3R4Uh5svYo6saAtU3V297+d91U/X/frzLvUdqiqfruKvhx5+OeOYxbHI7SenQum+PTw/fvRLGQ/jiufOn3/S+vlsfGn9h4Zb96fekZ7xRups68FhVCYCWHHvZVIPxjanr3NABSALqkR7FMBOulF9ScHvV3np+6pK/eEzRx877K3/z65pvwN89eGtV3Ly5ft/25ngaiSYDVYUAAKvIKimMdLO6YBQEY+aZpbXZ5WinTBQXwAA4LMAXuNUBPCSTmMfjd6jpNLNjbToDuBpaR9AoTBbUeERO2o0erNeR6KFne5HK/nOQA+VBtFnt1LtBj6pJQIutnLwipz/Ix9OYNSqZQEreiQELIkKmRIRNWdewpiIZVGtVi0J6xWR0ComIGpFnN+AVStWzUtIWBNXq0iRuJCYqDUJcYXiopYUWhUzp8iQTv20dtO84Agw6YrhuOijfqUKlSpRAruvTq9WdeQw2vs5SUsCYhdt7icIt1nNkseKPZzgV6q4FfYbH4ZIBcThYTEgLIgIkYRbJLl7/rks+ObZDxydE8W9LymoUMiqZUVbtVv0GNkcispQM0IpEG7sBdK9IYr6aKKLRaxiQxO7OMQphrUlGIscFbElV6LF5S0dQN5RbRoUdRbWWOYCy8sB83RxS7FqG/UEQslE5Nsd5v93uF3T0bLiypD/uJhn3q9fCAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-600-normal-8K4wrrwR.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-600-normal-mc2nkWzM.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-600-normal-OWROknRo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff) format("woff");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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff");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{--brand-ink: #1c1c1e;--brand-primary: #c23b15;--brand-primary-hover: #a93210;--brand-primary-soft: #ffefea;--brand-vivid: #ff694a;--brand-secondary: #0a84a8;--brand-secondary-soft: #e2f3f8;--brand-accent: #c23b15;--brand-accent-vivid: #ff694a;--on-brand: #ffffff;--brand-accent-soft: #ffefea;--hero-bg: linear-gradient(135deg, #ff7a5c, #ff694a 55%, #f5593a);--hero-text: #1c1c1e;--hero-muted: rgba(28, 28, 30, .82);--hero-track: rgba(28, 28, 30, .16);--hero-shadow: 0 12px 30px rgba(255, 105, 74, .28);--success: #1f7a35;--success-soft: #e6f6ea;--warning: #8f5a00;--warning-soft: #fdf3dd;--error: #c4283c;--error-soft: #fdecee;--locked: #aeaeb2;--bg: #f2f2f7;--bg-subtle: #ededf2;--surface: #ffffff;--surface-raised: #ffffff;--bar: rgba(255, 255, 255, .72);--border: rgba(60, 60, 67, .13);--border-strong: rgba(60, 60, 67, .26);--card-border: transparent;--border-input: #8e8e93;--text: #1c1c1e;--text-muted: #636366;--text-subtle: #6c6c70;--focus-ring: 0 0 0 4px rgba(255, 105, 74, .35);--inverse-bg: #1c1c1e;--nav-icon: #e8502f;--nav-active-bg: #cc4420;--nav-active-text: #ffffff;--inverse-text: #ffffff;--code-bg: #f6f6f9;--code-text: #1c1c1e;--code-border: rgba(60, 60, 67, .13);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.625rem;--text-2xl: 2.125rem;--text-metric: 3.25rem;--text-metric-xl: 4.5rem;--leading-tight: 1.15;--leading-body: 1.6;--tracking-eyebrow: .04em;--tracking-title: -.022em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .14);--shadow-card: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .05);--sidebar-w: 256px;--topbar-h: 52px;--content-max: 1240px;--reading-max: clamp(760px, 48vw, 1040px);--lesson-text: clamp(1rem, .3vw + .78rem, 1.15rem);--ease: cubic-bezier(.2, .7, .2, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--brand-ink: #f5f5f7;--brand-primary: #ff8566;--brand-primary-hover: #ff9a80;--brand-primary-soft: rgba(255, 105, 74, .16);--brand-vivid: #ff7a5c;--brand-secondary: #40c8e0;--brand-secondary-soft: rgba(64, 200, 224, .14);--brand-accent: #ff8566;--brand-accent-soft: rgba(255, 105, 74, .16);--success: #30d158;--success-soft: rgba(48, 209, 88, .15);--warning: #ffd60a;--warning-soft: rgba(255, 214, 10, .13);--error: #ff6961;--error-soft: rgba(255, 105, 97, .15);--locked: #636366;--bg: #000000;--bg-subtle: #2c2c2e;--surface: #1c1c1e;--surface-raised: #2c2c2e;--bar: rgba(22, 22, 24, .72);--border: rgba(84, 84, 88, .55);--border-strong: rgba(120, 120, 128, .6);--card-border: rgba(84, 84, 88, .35);--text: #f5f5f7;--text-muted: #a1a1a8;--text-subtle: #98989f;--border-input: #6e6e73;--on-brand: #1c1c1e;--code-bg: #121214;--code-text: #f5f5f7;--code-border: rgba(84, 84, 88, .55);--shadow-sm: none;--shadow: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .6);--shadow-card: none;--focus-ring: 0 0 0 4px rgba(255, 122, 92, .4);--inverse-bg: #2c2c2e;--inverse-text: #f5f5f7;--nav-icon: #ff7a5c;--nav-active-bg: #ff694a;--nav-active-text: #1c1c1e;color-scheme:dark}}:root[data-theme=dark]{--brand-ink: #f5f5f7;--brand-primary: #ff8566;--brand-primary-hover: #ff9a80;--brand-primary-soft: rgba(255, 105, 74, .16);--brand-vivid: #ff7a5c;--brand-secondary: #40c8e0;--brand-secondary-soft: rgba(64, 200, 224, .14);--brand-accent: #ff8566;--brand-accent-soft: rgba(255, 105, 74, .16);--success: #30d158;--success-soft: rgba(48, 209, 88, .15);--warning: #ffd60a;--warning-soft: rgba(255, 214, 10, .13);--error: #ff6961;--error-soft: rgba(255, 105, 97, .15);--locked: #636366;--bg: #000000;--bg-subtle: #2c2c2e;--surface: #1c1c1e;--surface-raised: #2c2c2e;--bar: rgba(22, 22, 24, .72);--border: rgba(84, 84, 88, .55);--border-strong: rgba(120, 120, 128, .6);--card-border: rgba(84, 84, 88, .35);--text: #f5f5f7;--text-muted: #a1a1a8;--text-subtle: #98989f;--border-input: #6e6e73;--on-brand: #1c1c1e;--code-bg: #121214;--code-text: #f5f5f7;--code-border: rgba(84, 84, 88, .55);--shadow-sm: none;--shadow: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .6);--shadow-card: none;--focus-ring: 0 0 0 4px rgba(255, 122, 92, .4);--inverse-bg: #2c2c2e;--inverse-text: #f5f5f7;--nav-icon: #ff7a5c;--nav-active-bg: #ff694a;--nav-active-text: #1c1c1e;color-scheme:dark}.ws-theme{--ws-bg: #0b0e1f;--ws-panel: #10142a;--ws-panel-2: #141935;--ws-border: #222846;--ws-text: #d7dbf5;--ws-muted: #8189b0;--ws-active: #1c2247;--ws-accent: #7583ff;--ws-ok: #3ccf8e;--ws-warn: #f2b544;--ws-err: #ff6b7f}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--brand-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;line-height:var(--leading-tight);letter-spacing:var(--tracking-title);color:var(--brand-ink);font-weight:700}p{margin:0 0 var(--space-3)}code,kbd,pre{font-family:var(--font-mono)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}::selection{background:var(--brand-primary-soft)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.mono{font-family:var(--font-mono)}.row{display:flex;align-items:center;gap:var(--space-3)}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.stack-lg{display:flex;flex-direction:column;gap:var(--space-6)}.grow{flex:1;min-width:0}.grid{display:grid;gap:var(--space-5)}.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}@media(max-width:1100px){.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:1fr}}@media(max-width:760px){.g-2,.g-3,.g-4{grid-template-columns:1fr}}.eyebrow{font-size:var(--text-sm);font-weight:600;letter-spacing:0;color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--space-2)}.eyebrow.primary{color:var(--brand-primary)}.eyebrow.accent{color:var(--brand-accent)}.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.title-xl{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.025em}.title-lg{font-size:var(--text-xl);font-weight:660}.title-md{font-size:var(--text-lg);font-weight:640}.lede{font-size:var(--text-md);color:var(--text-muted);max-width:62ch}.metric{font-size:var(--text-metric);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--brand-ink);font-variant-numeric:tabular-nums}.metric.xl{font-size:var(--text-metric-xl)}.metric.md{font-size:2.25rem}.metric small{font-size:.42em;font-weight:560;color:var(--text-muted);letter-spacing:-.01em;margin-left:2px}.metric-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-5);border-radius:var(--radius-pill);border:1px solid transparent;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),transform .1s var(--ease);text-decoration:none!important}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--brand-primary);color:var(--on-brand)}.btn-primary:hover:not(:disabled){background:var(--brand-primary-hover)}.btn-accent{background:var(--brand-accent);color:var(--on-brand)}.btn-accent:hover:not(:disabled){filter:brightness(1.05)}.btn-secondary{background:var(--brand-primary-soft);color:var(--brand-primary)}.btn-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--brand-primary-soft) 70%,var(--brand-vivid) 30%)}.btn-ghost{background:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.btn-neutral{background:var(--bg-subtle);color:var(--text)}.btn-danger{background:var(--error-soft);color:var(--error)}.btn-sm{height:32px;padding:0 var(--space-4);font-size:var(--text-sm)}.btn-lg{height:50px;padding:0 var(--space-8);font-size:1rem}.btn-block{width:100%}.icon-btn{width:34px;height:34px;padding:0;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-grid;place-items:center}.icon-btn:hover{background:var(--bg-subtle);color:var(--text)}.card{background:var(--surface);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-card);min-width:0}.card.tight{padding:var(--space-4)}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}.card.ink{background:var(--hero-bg);color:var(--hero-text);border-color:transparent;box-shadow:var(--hero-shadow)}.card.ink .eyebrow,.card.ink .muted,.card.ink .metric-label,.card.ink .metric small{color:var(--hero-muted)}.card.ink h1,.card.ink h2,.card.ink h3,.card.ink .metric{color:var(--hero-text)}.card.ink .btn-primary,.card.ink .btn-accent{background:#1c1c1e;color:#fff}.card.ink .btn-primary:hover:not(:disabled),.card.ink .btn-accent:hover:not(:disabled){background:#000}.card.ink .btn-secondary,.card.ink .btn-ghost{background:#ffffff59;color:var(--hero-text)}.card.ink .badge{background:#fff6;color:var(--hero-text)}.card.ink a:not(.btn){color:var(--hero-text)}.card.accent-edge,.card.primary-edge{box-shadow:0 0 0 1px color-mix(in srgb,var(--brand-vivid) 35%,transparent),var(--shadow-card)}.divider{height:1px;background:var(--border);margin:var(--space-5) 0;border:0}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:0;background:var(--bg-subtle);color:var(--text-muted);white-space:nowrap}.badge.primary{background:var(--brand-primary-soft);color:var(--brand-primary)}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.error{background:var(--error-soft);color:var(--error)}.badge.accent{background:var(--brand-accent-soft);color:var(--brand-accent)}.badge.outline{background:transparent;border:1px solid var(--border-strong)}.status-icon{width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;flex:none;font-size:12px;font-weight:700}.status-icon.completed,.status-icon.passed{background:var(--success);color:#fff}.status-icon.in_progress,.status-icon.current{background:var(--brand-vivid);color:#1c1c1e;box-shadow:0 0 0 4px var(--brand-primary-soft)}.status-icon.available{border:2px solid var(--border-strong);color:var(--text-subtle)}.status-icon.locked{background:var(--bg-subtle);color:var(--locked)}.status-icon.failed{background:var(--error);color:#fff}.status-icon.sm{width:18px;height:18px;font-size:10px}.progress{height:8px;background:var(--bg-subtle);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:var(--brand-vivid);transition:width .6s var(--ease)}.progress.thin{height:4px}.progress.lg{height:12px}.progress.success>span{background:var(--success)}.progress.accent>span{background:var(--brand-vivid)}.card.ink .progress{background:var(--hero-track)}.card.ink .progress>span{background:#1c1c1e}.segments{display:flex;gap:3px}.segments>i{flex:1;height:8px;border-radius:99px;background:var(--bg-subtle)}.segments>i.on{background:var(--brand-vivid)}.segments>i.done{background:var(--success)}.ring{position:relative;display:inline-grid;place-items:center}.ring svg{transform:rotate(-90deg)}.ring .ring-label{position:absolute;text-align:center}.skill{display:grid;grid-template-columns:minmax(120px,1fr) 2fr 48px;align-items:center;gap:var(--space-4);padding:6px 0}.skill .name{font-size:var(--text-sm);font-weight:560}.skill .val{text-align:right;font-weight:650;font-variant-numeric:tabular-nums;font-size:var(--text-sm)}.skill .val.na{color:var(--text-subtle);font-weight:500}.field{display:flex;flex-direction:column;gap:6px}.field label,.label{font-size:var(--text-sm);font-weight:600;color:var(--text)}.input,.select,.textarea{width:100%;height:44px;padding:0 var(--space-4);border:1px solid var(--border-input);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-sm)}.textarea{height:auto;min-height:96px;padding:var(--space-3);resize:vertical;line-height:1.5}.textarea.code{font-family:var(--font-mono);font-size:12.5px;min-height:220px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand-primary);box-shadow:var(--focus-ring)}.hint{font-size:var(--text-xs);color:var(--text-subtle)}.error-text{color:var(--error);font-size:var(--text-sm)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);font-size:var(--text-sm);border:1px solid transparent}.alert a{color:inherit;text-decoration:underline;font-weight:650}.alert.error{background:var(--error-soft);color:var(--error)}.alert.success{background:var(--success-soft);color:var(--success)}.alert.info{background:var(--brand-primary-soft);color:var(--brand-primary)}.alert.warning{background:var(--warning-soft);color:var(--warning)}.choice{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface);transition:border-color .15s,background .15s}.choice:hover{border-color:var(--border-strong)}.choice.selected{border-color:var(--brand-primary);background:var(--brand-primary-soft)}.choice.correct{border-color:var(--success);background:var(--success-soft)}.choice.wrong{border-color:var(--error);background:var(--error-soft)}.choice input{margin-top:3px;accent-color:var(--brand-primary)}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid transparent;border-radius:999px;font-size:var(--text-sm);cursor:pointer;background:var(--bg-subtle);color:var(--text);font-weight:560}.chip.on{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--on-brand)}.skip-link{position:absolute;left:12px;top:-48px;z-index:200;background:var(--brand-primary);color:var(--on-brand);padding:8px 14px;border-radius:var(--radius);font-weight:600}.skip-link:focus{top:12px}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{text-align:left;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--bg-subtle)}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100%}.sidebar{position:sticky;top:0;height:100vh;background:var(--bar);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--space-4) var(--space-3);gap:var(--space-1);overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:var(--space-2) var(--space-3) var(--space-5);color:var(--brand-ink);font-weight:700;letter-spacing:-.01em;text-decoration:none!important}.brand-mark{width:30px;height:30px;border-radius:28%;background:var(--brand-vivid);display:grid;place-items:center;box-shadow:0 2px 8px #ff694a59;flex:none}.brand small{display:block;font-size:12px;font-weight:500;letter-spacing:0;color:var(--text-subtle)}.nav-label{font-size:12px;font-weight:600;letter-spacing:0;color:var(--text-subtle);padding:var(--space-4) var(--space-3) var(--space-2)}.nav-link{display:flex;align-items:center;gap:var(--space-3);height:36px;padding:0 var(--space-3);border-radius:10px;color:var(--text);font-size:.875rem;font-weight:500;text-decoration:none!important}.nav-link:hover{background:var(--bg-subtle);color:var(--text)}.icon-tile{display:inline-grid;place-items:center;flex:none;border-radius:8px;color:#fff}.icon-tile svg{color:#fff}.nav-link{height:40px}.nav-link svg{color:var(--nav-icon)}.nav-link.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:600;box-shadow:0 2px 8px #ff694a40}.nav-link.active svg{color:var(--nav-active-text)}.nav-link.active .count{background:#ffffff40;color:inherit}.nav-link:hover:not(.active){background:var(--bg-subtle)}.nav-link svg{flex:none}.nav-link .count{margin-left:auto;font-size:11px;font-weight:700;background:var(--brand-accent-soft);color:var(--brand-accent);border-radius:999px;padding:0 7px}.sidebar-progress{margin-top:auto;padding:var(--space-4);background:var(--surface);border-radius:14px;box-shadow:var(--shadow-card);border:1px solid var(--card-border)}.main{min-width:0;display:flex;flex-direction:column}.shell.collapsed{grid-template-columns:68px minmax(0,1fr)}.shell.collapsed .sidebar{padding-left:10px;padding-right:10px;align-items:center}.shell.collapsed .nav-text,.shell.collapsed .nav-label,.shell.collapsed .sidebar-progress,.shell.collapsed .nav-link .count{display:none}.shell.collapsed .brand{padding:var(--space-2) 0 var(--space-5)}.shell.collapsed .nav-link{width:44px;justify-content:center;padding:0}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-8);background:var(--bar);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border)}.crumbs{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);min-width:0;overflow:hidden;white-space:nowrap}.crumbs a{color:var(--text-muted)}.crumbs .sep{color:var(--text-subtle)}.crumbs .here{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-8) var(--space-8) var(--space-16)}.page.narrow{max-width:920px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8);flex-wrap:wrap}.page-head .stack{gap:var(--space-2)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-primary-soft);color:var(--brand-primary);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}@media(max-width:900px){.shell,.shell.collapsed{grid-template-columns:1fr}.shell.collapsed .nav-text{display:inline}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border)}.sidebar .nav-label,.sidebar-progress{display:none}.page,.topbar{padding-left:var(--space-4);padding-right:var(--space-4)}}.trajectory{position:relative;display:flex;flex-direction:column}.traj-step{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:10px 0}.traj-step:before{content:"";position:absolute;left:15px;top:-10px;bottom:50%;width:2px;background:var(--border)}.traj-step:first-child:before{display:none}.traj-step.completed:before,.traj-step.in_progress:before{background:var(--success)}.traj-step .status-icon{position:relative;z-index:1;margin-left:4px}.traj-step .t-title{font-weight:600;font-size:var(--text-sm)}.traj-step.locked .t-title,.traj-step.available .t-title{color:var(--text-muted)}.traj-step.in_progress .t-title{color:var(--brand-primary)}.traj-target{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius)}.phase-rail{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}.phase-cell{padding:var(--space-4);border-radius:var(--radius);background:var(--bg-subtle)}.phase-cell.completed{background:var(--success-soft)}.phase-cell.in_progress{background:var(--brand-primary-soft);box-shadow:inset 0 0 0 1.5px var(--brand-vivid)}.phase-cell .p-code{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.08em}.phase-cell .p-title{font-weight:650;font-size:var(--text-sm);margin:2px 0 var(--space-2);color:var(--brand-ink)}@media(max-width:760px){.phase-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}.phase{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--space-8);padding:var(--space-8) 0;border-top:1px solid var(--border)}.phase:first-of-type{border-top:0}.phase-num{font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--brand-primary)}.phase-name{font-size:var(--text-lg);font-weight:700;letter-spacing:-.015em;margin:var(--space-1) 0 var(--space-2)}@media(max-width:900px){.phase{grid-template-columns:1fr;gap:var(--space-4)}}.module-row{display:grid;grid-template-columns:40px 28px minmax(0,1fr) 160px 90px;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);color:var(--text);text-decoration:none!important;transition:box-shadow .15s,transform .15s}.module-row+.module-row{margin-top:var(--space-2)}.module-row:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.module-row .m-num{font-family:var(--font-mono);font-weight:700;color:var(--text-muted);font-size:13px}.module-row .m-title{font-weight:600;font-size:.9375rem}.module-row.in_progress{box-shadow:0 0 0 1.5px var(--brand-vivid),var(--shadow-card)}.module-row.locked{background:var(--bg-subtle);box-shadow:none}@media(max-width:760px){.module-row{grid-template-columns:32px 24px minmax(0,1fr)}.module-row>:nth-child(n+4){display:none}}.prose{max-width:var(--reading-max);font-size:1rem;line-height:1.72}.lesson-layout .prose{font-size:var(--lesson-text)}.lesson-layout .title-xl{font-size:clamp(2.125rem,1vw + 1.5rem,2.75rem)}.prose h2{font-size:1.375rem;margin:2.2em 0 .6em}.prose h3{font-size:1.125rem;margin:1.8em 0 .5em}.prose h2:first-child{margin-top:0}.prose p,.prose ul,.prose ol{margin:0 0 1em}.prose li{margin:.3em 0}.prose code{font-size:.86em;background:var(--code-bg);border:1px solid var(--code-border);padding:1px 5px;border-radius:4px;color:var(--code-text)}.prose pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);padding:var(--space-4) var(--space-5);overflow-x:auto;font-size:13px;line-height:1.6;margin:0 0 1.2em;position:relative}.prose pre code{background:none;border:0;padding:0;font-size:inherit}.prose pre[data-lang]:after{content:attr(data-lang);position:absolute;top:8px;right:12px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);font-family:var(--font-sans)}.prose table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.9rem;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border)}.prose th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.prose blockquote{margin:0 0 1.2em;padding:var(--space-3) var(--space-4);border-left:3px solid var(--border-strong);color:var(--text-muted)}.callout{margin:0 0 1.3em;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--shadow-card);font-size:.95em}:root[data-theme=dark] .callout{border-color:var(--border)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .callout{border-color:var(--border)}}.callout>:last-child{margin-bottom:0}.callout-title{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.95em;font-weight:600;color:var(--text);letter-spacing:0;text-transform:none}.callout-icon{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:none}.callout-icon svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.callout .callout{box-shadow:none;background:var(--bg-subtle);border-color:transparent}.callout ul,.callout ol{padding-left:1.3em}.callout pre{background:var(--code-bg)}.figure{margin:0 0 1.3em;padding:var(--space-4);background:#fff;border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto;text-align:center}.figure img{width:auto;min-width:min(100%,560px);max-width:100%;height:auto;display:inline-block}:root[data-theme=dark] .figure{background:var(--surface);border-color:var(--border)}:root[data-theme=dark] .figure img{filter:invert(.9) hue-rotate(180deg) saturate(1.2)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .figure{background:var(--surface);border-color:var(--border)}:root:not([data-theme=light]) .figure img{filter:invert(.9) hue-rotate(180deg) saturate(1.2)}}.prose table code{white-space:nowrap}.tok-k{color:#ad3da4;font-weight:600}.tok-s{color:#0b7553}.tok-n{color:#a8380a}.tok-c{color:var(--text-subtle);font-style:italic}.tok-j{color:#b8255a}.tok-f{color:#0b63c5}.tok-key{color:#ad3da4}:root[data-theme=dark] .tok-k,:root[data-theme=dark] .tok-key{color:#a99cff}:root[data-theme=dark] .tok-s{color:#6ee7b7}:root[data-theme=dark] .tok-n{color:#fdba74}:root[data-theme=dark] .tok-j{color:#f9a8d4}:root[data-theme=dark] .tok-f{color:#93c5fd}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tok-k,:root:not([data-theme=light]) .tok-key{color:#a99cff}:root:not([data-theme=light]) .tok-s{color:#6ee7b7}:root:not([data-theme=light]) .tok-n{color:#fdba74}:root:not([data-theme=light]) .tok-j{color:#f9a8d4}:root:not([data-theme=light]) .tok-f{color:#93c5fd}}kbd{font-size:.8em;padding:1px 6px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface)}.lesson-wrap{container-type:inline-size}.lesson-layout{display:grid;grid-template-columns:clamp(220px,14vw,300px) minmax(0,1fr) clamp(250px,16vw,330px);gap:clamp(24px,2vw,48px);align-items:start;max-width:2000px;margin:0 auto;padding:var(--space-8) clamp(16px,2vw,48px)}.lesson-layout article{justify-self:center;width:100%;max-width:var(--reading-max)}.lesson-nav .toc-item,.lesson-aside{font-size:clamp(.8125rem,.15vw + .65rem,.9375rem)}.lesson-aside .check-list li,.lesson-aside .list-plain li{font-size:inherit!important}.lesson-nav,.lesson-aside{position:sticky;top:calc(var(--topbar-h) + var(--space-6))}.lesson-nav{max-height:calc(100vh - var(--topbar-h) - var(--space-10));overflow-y:auto}.toc-toggle{display:none}.toc-item{display:flex;gap:var(--space-3);align-items:center;padding:8px 10px;border-radius:var(--radius);color:var(--text-muted);font-size:var(--text-sm);text-decoration:none!important}.toc-item:hover{background:var(--bg-subtle);color:var(--text)}.toc-item.active{background:var(--brand-primary-soft);color:var(--brand-primary);font-weight:600}@container (max-width: 1340px){.lesson-layout{grid-template-columns:210px minmax(0,1fr)}.lesson-aside{grid-column:2;position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4);max-width:var(--reading-max)}}@container (max-width: 820px){.lesson-layout{grid-template-columns:minmax(0,1fr);padding:var(--space-5) var(--space-4);gap:var(--space-5)}.lesson-nav{position:static;max-height:none;overflow:visible;padding:var(--space-3) var(--space-4);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.lesson-nav .toc-toggle{display:inline-flex;align-self:flex-start}.lesson-nav:not(.open) .toc-body{display:none}.lesson-aside{grid-column:1}}.quiz-q{padding:var(--space-6) 0;border-bottom:1px solid var(--border)}.quiz-q:last-child{border-bottom:0}.q-num{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--brand-primary);letter-spacing:.08em}.q-prompt{font-size:var(--text-md);font-weight:600;margin:var(--space-2) 0 var(--space-4);color:var(--brand-ink);line-height:1.45}.q-code{margin-bottom:var(--space-4)}.explain{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--bg-subtle);font-size:var(--text-sm)}.explain .prose{font-size:var(--text-sm);max-width:none}.explain .prose>:last-child{margin-bottom:0}.q-prompt.prose{max-width:none;font-size:var(--text-md);font-weight:500}.q-prompt.prose p{margin-bottom:.6em}.solution{margin-top:var(--space-3);font-size:var(--text-sm)}.opt-letter{flex:none;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--bg-subtle);color:var(--text-muted);font-size:12px;font-weight:700;display:inline-grid;place-items:center;margin-top:1px}.choice.selected .opt-letter{background:var(--brand-primary);color:var(--on-brand)}.md-inline code{font-size:.88em;background:var(--code-bg);border:1px solid var(--code-border);padding:0 4px;border-radius:4px}.choice.domc{align-items:center}.yesno{display:inline-flex;padding:2px;gap:2px;background:var(--bg-subtle);border-radius:10px;flex:none}.yesno button{border:0;background:none;padding:5px 12px;border-radius:8px;font:inherit;font-size:12px;font-weight:700;color:var(--text-muted);cursor:pointer}.yesno button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.yesno button.is-answer{outline:2px solid var(--success);outline-offset:-2px}.yesno button:disabled{cursor:default}.order-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.order-list .choice{align-items:center;cursor:default}.match-grid{display:flex;flex-direction:column;gap:6px}.match-row{align-items:center;cursor:default}.match-right{list-style:none;margin:0;padding:var(--space-3) var(--space-4);background:var(--bg-subtle);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm)}.match-right li{display:flex;gap:var(--space-3);align-items:flex-start}.hotspot{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);padding:6px}.choice.code-line{padding:4px 10px;border-radius:8px;border-color:transparent;background:transparent;align-items:center}.choice.code-line code{font-size:13px;white-space:pre}.choice.code-line:hover{background:var(--surface)}.choice.code-line.selected{background:var(--brand-primary-soft);border-color:var(--brand-primary)}.hotspot-blank{font-family:var(--font-mono);font-size:13px;padding:2px 10px 2px 38px;color:var(--text-subtle);white-space:pre}.result-hero{display:grid;grid-template-columns:auto 1fr;gap:var(--space-10);align-items:center}@media(max-width:760px){.result-hero{grid-template-columns:1fr}}.timer{font-family:var(--font-mono);font-weight:700;font-size:var(--text-md);font-variant-numeric:tabular-nums}.timer.low{color:var(--error)}.q-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:6px}.q-grid button{height:34px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);font:inherit;font-size:12px;font-weight:650;cursor:pointer;color:var(--text-muted)}.q-grid button.answered{background:var(--brand-primary-soft);color:var(--brand-primary);border-color:transparent}.q-grid button.flagged{box-shadow:inset 0 -3px 0 var(--brand-accent)}.q-grid button.current{border-color:var(--brand-primary);color:var(--brand-primary)}.public-nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--space-6);height:60px;padding:0 var(--space-8);background:var(--bar);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border)}.public-nav nav{display:flex;gap:var(--space-5);margin-left:var(--space-6)}.public-nav nav a{color:var(--text-muted);font-size:var(--text-sm);font-weight:560}.hero{max-width:var(--content-max);margin:0 auto;padding:var(--space-16) var(--space-8) var(--space-12);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--space-12);align-items:center}.hero h1{font-size:clamp(2.4rem,4.4vw,3.6rem);letter-spacing:-.035em;font-weight:720;line-height:1.04}.hero h1 em{font-style:normal;color:var(--brand-primary)}.public-section{max-width:var(--content-max);margin:0 auto;padding:var(--space-12) var(--space-8)}.stat-band{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.stat-band>div{padding:var(--space-6) var(--space-8);border-left:1px solid var(--border)}.stat-band>div:first-child{border-left:0}.footer{border-top:1px solid var(--border);padding:var(--space-8);color:var(--text-subtle);font-size:var(--text-sm);text-align:center}@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:var(--space-10)}.stat-band{grid-template-columns:repeat(2,1fr)}.public-nav nav{display:none}}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-side{background:var(--hero-bg);color:var(--hero-text);padding:var(--space-12);display:flex;flex-direction:column;justify-content:space-between}.auth-side h2{color:var(--hero-text);font-size:var(--text-2xl)}.auth-side .brand-mark{background:#1c1c1e;box-shadow:none}.auth-form{display:grid;place-items:center;padding:var(--space-8)}.auth-form form{width:100%;max-width:380px}@media(max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-side{display:none}}.empty{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-muted)}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--brand-primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:grid;place-items:center;min-height:50vh}.toast-stack{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:100;display:flex;flex-direction:column;gap:var(--space-2)}.toast{background:var(--inverse-bg);color:var(--inverse-text);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);font-size:var(--text-sm);font-weight:560;max-width:360px}.tabs{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;background:var(--bg-subtle);border-radius:11px;margin-bottom:var(--space-6);max-width:100%}.tabs button{background:none;border:0;border-radius:8px;padding:6px 16px;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.tabs button:hover{color:var(--text)}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f,0 1px 1px #0000000a}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:var(--text-sm)}.kv dt{color:var(--text-muted)}.kv dd{margin:0;font-weight:560}.list-plain{list-style:none;margin:0;padding:0}.list-plain li{padding:8px 0;border-bottom:1px solid var(--border);font-size:var(--text-sm)}.list-plain li:last-child{border-bottom:0}.check-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.check-list li{display:flex;gap:10px;align-items:flex-start;font-size:var(--text-sm)}.mark-ok{color:var(--success);font-weight:700}.mark-ko{color:var(--error);font-weight:700}.mark-next{color:var(--brand-primary);font-weight:700}.mark-idle{color:var(--text-subtle)}.plan-card{cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,box-shadow .15s;display:flex;flex-direction:column;gap:var(--space-2)}.plan-card:hover{border-color:var(--border-strong)}.plan-card.selected{border-color:var(--brand-vivid);box-shadow:0 0 0 2px var(--brand-vivid),var(--shadow-card)}.prose a,p a,label a,li a:not(.btn):not(.nav-link):not(.toc-item){text-decoration:underline;text-underline-offset:2px}.discussion{display:flex;flex-direction:column;gap:14px}.discussion-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.discussion-title{display:flex;align-items:center;gap:8px;font-size:var(--text-lg, 18px);font-weight:700;margin:0 0 4px}.discussion-title.sm{font-size:14px}.discussion-empty{color:var(--text-muted);font-size:14px;margin:0}.discussion-list,.discussion-replies{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.discussion-thread{border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);padding:14px 16px}.discussion-thread.resolved{border-left:3px solid var(--success)}.discussion-replies{margin:12px 0 0 14px;padding-left:14px;border-left:2px solid var(--border)}.discussion-post.pinned{background:var(--bg-subtle);border-left:3px solid var(--brand-accent);border-radius:var(--radius);padding:10px 12px;margin-left:-12px}.discussion-post.is-hidden{opacity:.75}.discussion-post.deleted p{margin:0}.discussion-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;margin-bottom:6px}.avatar.sm{width:24px;height:24px;font-size:11px}.discussion-post .prose{font-size:14px;line-height:1.6;max-width:none}.discussion-post .prose>:last-child{margin-bottom:0}.discussion-post .prose pre{font-size:12.5px;padding:10px 12px;margin-bottom:.8em}.discussion-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;align-items:center}.link-btn{background:none;border:0;padding:2px 0;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.link-btn:hover,.link-btn:focus-visible{color:var(--brand-primary);text-decoration:underline}.link-btn.danger:hover,.link-btn.danger:focus-visible{color:var(--error)}details.spoiler{border:1px dashed var(--border-strong);border-radius:var(--radius);margin:0 0 .8em;background:var(--bg-subtle)}details.spoiler>summary{cursor:pointer;padding:6px 10px;font-size:12.5px;font-weight:650;color:var(--text-muted)}details.spoiler[open]>summary{border-bottom:1px dashed var(--border-strong)}details.spoiler .spoiler-body{padding:10px 12px 2px}.composer{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);overflow:hidden}.composer:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-primary-soft)}.composer-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}.composer-tabs{display:flex;gap:2px}.composer-tabs button,.composer-tool{background:none;border:1px solid transparent;border-radius:6px;padding:4px 8px;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.composer-tabs button[aria-selected=true]{background:var(--surface);border-color:var(--border);color:var(--text)}.composer-tool:hover,.composer-tool:focus-visible,.composer-tabs button:hover{color:var(--text);background:var(--surface)}.composer-tool{font-family:var(--font-mono)}.composer-tool:has(svg){font-family:inherit}.composer-lang{font:inherit;font-size:12.5px;padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.composer-input.textarea{border:0;border-radius:0;min-height:110px;font-family:var(--font-mono);font-size:13px;resize:vertical;box-shadow:none}.composer-input.textarea:focus{box-shadow:none;outline:none}.composer-preview{padding:10px 12px;min-height:110px}.composer-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border-top:1px solid var(--border)}.discussion.compact .discussion-thread{padding:10px 12px}.discussion.compact .discussion-replies{margin-left:4px;padding-left:10px}.discussion-post .prose pre[data-lang]{padding-top:26px}.celebration{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:16px;animation:celebration-in .25s ease-out}.celebration.level-2,.celebration.level-3{background:radial-gradient(circle at center,#0a0d1c4d,#0a0d1c8c)}.celebration.level-1{background:radial-gradient(circle at center,#0a0d1c1f,#0a0d1c47)}.celebration-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.celebration-card{position:relative;width:100%;max-width:460px;text-align:center;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:28px 28px 24px;box-shadow:0 24px 80px #0a0d1c59;animation:celebration-pop .45s cubic-bezier(.2,1.4,.4,1)}.celebration.level-1 .celebration-card{max-width:380px;padding:20px 22px 18px}.celebration-emoji{font-size:52px;line-height:1;margin-bottom:10px}.celebration.level-1 .celebration-emoji{font-size:38px}.celebration.level-3 .celebration-emoji{font-size:64px}.celebration-title{font-size:24px;font-weight:750;letter-spacing:-.01em;margin:0 0 6px}.celebration.level-1 .celebration-title{font-size:19px}.celebration.level-3 .celebration-title{font-size:27px}.celebration-sub{color:var(--text-muted);font-size:15px;font-weight:600;margin:0 0 10px}.celebration-extra{font-size:14.5px;margin:0 0 12px}.celebration-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:4px 0 14px}.celebration-chips span{background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:650}.celebration-also{list-style:none;padding:0;margin:0 0 14px;font-size:13px;color:var(--success);font-weight:600}.celebration-card .btn{min-width:140px}@keyframes celebration-in{0%{opacity:0}to{opacity:1}}@keyframes celebration-pop{0%{opacity:0;transform:scale(.85) translateY(10px)}to{opacity:1;transform:none}}.celebration-sound{display:block;margin:10px auto 0;background:none;border:0;padding:4px 8px;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);cursor:pointer;border-radius:6px}.celebration-sound:hover,.celebration-sound:focus-visible{color:var(--text);text-decoration:underline}.celebration-sticker{--h: 170px;position:relative;height:var(--h);display:grid;place-items:center;margin:-4px 0 22px}.celebration.level-1 .celebration-sticker{--h: 120px}.celebration.level-3 .celebration-sticker{--h: 210px}.celebration-sticker .celebration-emoji{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0}.celebration-sticker img{height:var(--h);width:auto;max-width:100%;object-fit:cover;border-radius:18px;box-shadow:0 12px 30px -10px #0a0d1c73;opacity:0;transform:scale(.85) rotate(-2deg);transition:opacity .3s ease,transform .5s cubic-bezier(.2,1.5,.4,1)}.celebration-sticker img.ready{opacity:1;transform:none}.celebration-credit{position:absolute;left:0;right:0;text-align:center;bottom:-17px;font-size:10px;font-weight:650;letter-spacing:.04em;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){.celebration,.celebration-card{animation:none}.celebration-sticker img{transition:none}}.badge-medal{position:relative;display:inline-block;flex:none}.badge-medal svg{display:block;filter:drop-shadow(0 2px 3px rgba(10,13,28,.28));transition:transform .2s ease}a:hover>.badge-medal svg,.badge-tile.earned:hover .badge-medal svg{transform:translateY(-2px) rotate(-3deg)}.badge-medal.locked svg{filter:grayscale(1) contrast(.85);opacity:.38}.badge-medal-lock{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong)}@media(prefers-reduced-motion:reduce){.badge-medal svg{transition:none}}.badge-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.badge-tile{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface)}.badge-tile.earned.tier-gold{border-color:#e2b23a}.badge-tile.locked{background:var(--bg-subtle)}.badge-tile-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;font-size:13px}.badge-tile-body strong{font-size:14.5px}.badge-tile-date{font-size:12px;font-weight:600;color:var(--success);margin-top:2px}.badge-tile-progress{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:4px;font-size:12px;color:var(--text-muted)}.badge-strip{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.celebration-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 14px}.celebration-badges li{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:999px;background:var(--bg-subtle);border:1px solid var(--border);font-size:13px;font-weight:650}.celebration-badges{list-style:none;padding:0}.stars{display:inline-flex;gap:4px;border:0;padding:0;margin:0}.stars input{position:absolute;opacity:0;width:1px;height:1px}.stars label{cursor:pointer;color:var(--border-strong);line-height:0;padding:2px;border-radius:6px;transition:transform .12s}.stars label.on{color:#f5b301}.stars label:hover{transform:scale(1.12)}.stars input:focus-visible+label{outline:2px solid var(--brand-primary);outline-offset:2px}.feedback-card{box-shadow:0 0 0 1px color-mix(in srgb,var(--brand-vivid) 35%,transparent),var(--shadow-card)}.rating-bars{display:grid;grid-template-columns:auto 1fr auto;gap:6px 10px;align-items:center;font-size:13px}.composer{position:relative}.composer.dragging{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-primary-soft)}.composer-drop{position:absolute;top:40px;right:0;bottom:38px;left:0;display:grid;place-content:center;grid-auto-flow:column;gap:8px;align-items:center;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--brand-primary);font-weight:700;border:2px dashed var(--brand-primary);border-radius:var(--radius);pointer-events:none}.user-img-link{display:inline-block;margin:4px 0 8px;border-radius:10px;line-height:0}.user-img{max-width:100%;max-height:360px;border-radius:10px;border:1px solid var(--border);background:var(--bg-subtle);object-fit:contain}.discussion.compact .user-img{max-height:240px}.stars-view{display:inline-flex;gap:2px;color:#ff9f0a}.mark-ok,.mark-ko,.mark-idle,.mark-next{display:inline-flex;align-items:center;flex:none}.mark-idle{color:var(--locked)}.check-list li>svg{flex:none;margin-top:2px}.auth-side .check-list li>svg{color:var(--hero-text)}.step-bar{display:flex;align-items:center;gap:12px;margin:-8px 0 20px;max-width:var(--reading-max);flex-wrap:wrap}.step-dots{display:flex;gap:6px}.step-dots button{width:28px;height:6px;border-radius:99px;border:0;padding:0;background:var(--bg-subtle);cursor:pointer}.step-dots button.done{background:var(--brand-vivid)}.step-dots button.current{background:var(--brand-primary)}.step-nav{max-width:var(--reading-max);margin-top:32px;padding-top:20px;border-top:1px solid var(--border)}.step-keys{max-width:var(--reading-max);margin-top:12px}.checkpoints{max-width:var(--reading-max);margin:28px 0 0;padding:var(--space-5)}.checkpoint{border-top:1px solid var(--border);padding-top:4px;margin-top:8px}.checkpoint .quiz-q{padding-top:14px;padding-bottom:12px;border-bottom:0}.today-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:22px}.today-continue{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.today-continue .btn{max-width:520px}.today-continue .btn .md-inline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journey{margin-bottom:20px}.journey-rail{--n: 10;--reached: 0;list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));position:relative}.journey-rail:before,.journey-rail:after{content:"";position:absolute;top:15px;height:4px;border-radius:9px;left:calc(50% / var(--n))}.journey-rail:before{right:calc(50% / var(--n));background:var(--border)}.journey-rail:after{width:calc(100% / var(--n) * var(--reached));background:linear-gradient(90deg,var(--success),var(--brand-vivid));transition:width .5s var(--ease)}.journey-rail li{position:relative;z-index:1;min-width:0}.journey-rail button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding:0 1px 6px;text-align:center;border-radius:12px}.journey-rail button:focus-visible{box-shadow:var(--focus-ring)}.journey-rail i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface);border:3px solid var(--border);font:700 11px var(--font-sans);font-style:normal;color:var(--text-subtle);transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.journey-rail b{font-size:12px;font-weight:600;line-height:1.25;color:var(--text-muted);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%}.journey-rail li.done i{background:var(--success);border-color:var(--success);color:#fff}.journey-rail li.done b{color:var(--text)}.journey-rail li.current i{border-color:var(--brand-vivid);color:var(--brand-primary);box-shadow:0 0 0 6px var(--brand-primary-soft);transform:scale(1.12)}.journey-rail li.current b{color:var(--brand-primary)}.journey-rail button:hover i{transform:scale(1.12)}.journey-rail li.sel:not(.current) i{box-shadow:0 0 0 5px var(--bg-subtle)}.journey-rail li.sel b{text-decoration:underline;text-underline-offset:3px}.journey-focus{display:flex;gap:18px;align-items:center;margin-top:18px;padding:16px 18px;border-radius:18px;border:1px solid color-mix(in srgb,var(--brand-vivid) 30%,var(--border));background:linear-gradient(135deg,var(--brand-primary-soft),var(--surface) 70%)}.journey-focus.done{border-color:var(--border);background:var(--success-soft)}.journey-focus h3{font-size:17px}.journey-focus p{margin:2px 0 0;color:var(--text-muted);font-size:13.5px}.journey-ring{--p: 0%;width:66px;height:66px;border-radius:50%;background:conic-gradient(var(--brand-vivid) var(--p),var(--bg-subtle) 0);display:grid;place-items:center;flex:none}.journey-focus.done .journey-ring{background:var(--success)}.journey-ring i{width:50px;height:50px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font:700 14px var(--font-sans);font-style:normal;font-variant-numeric:tabular-nums}.journey-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.journey-chips a{display:inline-flex;gap:5px;max-width:230px;font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;background:var(--bg-subtle);color:var(--text-muted);text-decoration:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.journey-chips a .num{margin-right:5px;opacity:.75}.journey-chips a.done{background:var(--success-soft);color:var(--success)}.journey-chips a.current{background:var(--brand-primary-soft);color:var(--brand-primary)}.journey-chips a:hover{filter:brightness(.96)}@media(max-width:860px){.journey-rail{grid-template-columns:1fr;gap:2px}.journey-rail:before,.journey-rail:after{display:none}.journey-rail button{flex-direction:row;text-align:left;gap:12px;padding:5px 4px}.journey-rail i{width:28px;height:28px;flex:none}.journey-rail b{font-size:14px}.journey-rail li:not(.done):not(.current):not(.sel){display:none}.journey-focus{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px}.journey-focus>.btn{grid-column:1 / -1}.journey-chips a{max-width:100%}}.today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px;align-items:start}@media(max-width:1100px){.today-grid{grid-template-columns:1fr}}.mission{list-style:none;margin:8px 0 0;padding:0}.mission li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:14px;align-items:start;padding:12px 0;border-top:1px solid var(--border)}.mission li:first-child{border-top:0}.mission-num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;border:2px solid var(--border-strong);color:var(--text-muted)}.mission-num.current{background:var(--brand-vivid);border-color:var(--brand-vivid);color:#1c1c1e}.mission-body{display:flex;flex-direction:column;gap:2px;color:var(--text);text-decoration:none!important}.mission-body b{font-size:15px;font-weight:600}.mission-body .muted{font-size:13.5px}.mission-body:hover b{color:var(--brand-primary)}.conditions{list-style:none;margin:0;padding:0}.conditions li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border);font-size:14px}.conditions li:first-child{border-top:0}.conditions a{color:var(--text);text-decoration:none!important}.conditions .hint{margin-left:auto}.cond-box{width:20px;height:20px;border-radius:6px;border:2px solid var(--border-strong);display:grid;place-items:center;flex:none}.cond-box.done{background:var(--success);border-color:var(--success);color:#fff}.streak-days{display:flex;gap:8px;margin-top:12px}.streak-days span{flex:1;height:30px;border-radius:9px;background:var(--bg-subtle)}.streak-days span.on{background:var(--brand-vivid)}.streak-days span.today{background:transparent;border:2px dashed var(--brand-vivid)}.obj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;margin-top:10px}.obj{font:600 11px var(--font-mono);text-align:center;padding:6px 0;border-radius:8px;background:var(--bg-subtle);color:var(--text-muted)}.obj.learning{background:var(--brand-primary-soft);color:var(--brand-primary)}.obj.mastered{background:var(--brand-vivid);color:#1c1c1e}.today-stats{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center;padding:18px 24px}.today-stats a{display:flex;flex-direction:column;color:var(--text);text-decoration:none!important}.today-stats b{font-size:22px;font-weight:700;letter-spacing:-.02em}.today-stats span{font-size:13px;color:var(--text-muted)}.today-stats .today-badges{margin-left:auto;flex-direction:row;align-items:center;gap:6px}.today-stats .today-badges span{margin-left:6px}.search-trigger{display:inline-flex;align-items:center;gap:8px;height:34px;min-width:260px;padding:0 10px 0 12px;border-radius:10px;border:0;background:var(--bg-subtle);color:var(--text-subtle);font:inherit;font-size:13.5px;cursor:pointer}.search-trigger span{margin-right:auto}.search-trigger kbd,.palette kbd{font:600 11px var(--font-mono);padding:1px 6px;border-radius:6px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}@media(max-width:900px){.search-trigger{min-width:0}.search-trigger span,.search-trigger kbd{display:none}}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;justify-items:center;align-items:start;padding:10vh 16px 16px}.palette{width:min(700px,100%);max-height:76vh;display:flex;flex-direction:column;border-radius:20px;background:var(--surface);box-shadow:0 30px 80px #0000004d;overflow:hidden;border:1px solid var(--border)}.palette-input{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);color:var(--text-muted)}.palette-input input{flex:1;border:0;outline:0;background:none;font:inherit;font-size:18px;color:var(--text)}.palette-results{overflow-y:auto;padding-bottom:8px}.palette-empty{padding:18px 20px;color:var(--text-muted);margin:0}.palette-group{font-size:12px;font-weight:600;color:var(--text-muted);padding:12px 20px 4px}.palette-item{display:flex;align-items:flex-start;gap:12px;padding:9px 20px;cursor:pointer}.palette-item.sel{background:var(--brand-primary-soft)}.palette-item .callout-icon{margin-top:2px}.palette-title{font-size:14.5px;font-weight:500}.palette-item small{display:block;color:var(--text-muted);font-size:12.5px}.palette-snippet{font-size:12.5px;color:var(--text-subtle);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette mark{background:color-mix(in srgb,var(--brand-vivid) 28%,transparent);color:inherit;border-radius:3px;padding:0 1px}.palette-open{margin-left:auto;color:var(--text-muted);font-size:12px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.palette-foot{display:flex;flex-wrap:wrap;gap:16px;padding:10px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.text-error{color:var(--error)}.practice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);align-items:start}@media(max-width:1100px){.practice-grid{grid-template-columns:1fr}}.search-field{display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:var(--radius);background:var(--bg-subtle);color:var(--text-muted)}.search-field .input{border:0;background:transparent;box-shadow:none;padding-left:0;height:38px}.search-field .input:focus{outline:none}.search-field:focus-within{outline:2px solid var(--focus-ring)}.trap-list{list-style:none;margin:8px 0;padding:0}.trap-list li{border-top:1px solid var(--border)}.trap-list li:first-child{border-top:0}.trap-head{all:unset;box-sizing:border-box;display:flex;gap:10px;align-items:flex-start;width:100%;padding:11px 2px;cursor:pointer;font-size:14.5px;font-weight:600;line-height:1.45}.trap-head:focus-visible{outline:2px solid var(--focus-ring);border-radius:6px}.trap-head>svg{flex:none;margin-top:3px;color:var(--text-subtle)}.trap-id{flex:none;font:600 11.5px var(--font-mono);color:var(--brand-primary);background:var(--brand-primary-soft);border-radius:6px;padding:2px 6px;margin-top:1px}.trap-body{padding:0 2px 12px;font-size:14px}.trap-body .prose{font-size:14px}.trap-truth{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--success);margin-bottom:4px}.flash .boxes{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.flash .boxes span{min-width:64px;padding:6px 8px;border-radius:10px;background:var(--bg-subtle);font:600 12px var(--font-mono);text-align:center;display:flex;flex-direction:column;gap:2px}.flash .boxes span b{font:600 11px var(--font-sans);color:var(--text-muted)}.flash .boxes span.on{background:var(--brand-primary-soft);color:var(--brand-primary)}.flash-card{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:26px 8px 8px}.flash-front{font-size:20px;font-weight:600;line-height:1.4;max-width:520px}.flash-front.term{font-size:26px}.flash-q{text-align:left;width:100%}.flash-back{width:100%;text-align:left;padding:14px 16px;border-radius:var(--radius);background:var(--success-soft);display:flex;flex-direction:column;gap:6px}.flash-back .prose{font-size:15px}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.sheet-tile{all:unset;box-sizing:border-box;display:flex;gap:8px;align-items:center;padding:12px;border-radius:12px;background:var(--bg-subtle);font-size:14px;font-weight:600;cursor:pointer}.sheet-tile:hover{background:var(--brand-primary-soft)}.sheet-tile:focus-visible{outline:2px solid var(--focus-ring)}.sheet-tile svg{color:var(--brand-primary);flex:none}.gloss-wrap{max-height:640px;overflow:auto}.gloss{width:100%;border-collapse:collapse;font-size:14px}.gloss th{position:sticky;top:0;background:var(--surface);text-align:left;font-size:12px;color:var(--text-muted);font-weight:600;padding:6px}.gloss td{padding:9px 6px;border-top:1px solid var(--border)}.gloss td:nth-child(2){color:var(--text-muted);font-style:italic}.gloss td:last-child,.gloss th:last-child{text-align:right;white-space:nowrap;font-size:12.5px}.cheat-body{padding:var(--space-6);overflow-x:auto}.cheat-body table{font-size:13.5px}@media print{.sidebar,.topbar,.no-print{display:none!important}.shell{display:block!important}.cheat-body{box-shadow:none;border:0;padding:0}}.choice.domc.current{border-color:var(--brand-vivid);box-shadow:0 0 0 1px var(--brand-vivid)}.choice.domc.answered{opacity:.7}.domc-lock{display:inline-flex;color:var(--text-subtle)}.domc-hidden{display:flex;align-items:center;gap:8px;padding:12px 14px;border:1.5px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);font-size:14px}.sql-cell,.sql-ex{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden;margin:16px 0;box-shadow:var(--shadow-sm)}.sql-ex{border:1.5px solid var(--brand-vivid);margin:0}.sql-ex.solved{border-color:var(--success)}.sql-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-muted)}.sql-top>svg{color:var(--brand-primary)}.kbd-on-brand{margin-left:6px;font:600 10.5px var(--font-mono);background:#ffffff38;border-radius:5px;padding:1px 5px}.sql-editor{position:relative;font:14px/1.6 var(--font-mono);background:var(--code-bg);font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}.sql-editor pre,.sql-editor textarea{margin:0;padding:12px 16px;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;border:0;-moz-tab-size:4;tab-size:4;letter-spacing:0;word-spacing:0;box-sizing:border-box}.prose .sql-editor pre,.sql-editor pre{position:relative;min-height:90px;pointer-events:none;color:var(--code-text);background:transparent;border-radius:0;box-shadow:none}.sql-editor pre code{font:inherit;background:none;padding:0;border:0;color:inherit;white-space:inherit}.sql-editor textarea{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;resize:none;background:transparent;color:transparent;caret-color:var(--text);outline:none;overflow:hidden}.sql-editor:focus-within{box-shadow:inset 0 0 0 2px var(--focus-ring)}.sql-editor textarea::selection{background:#ff694a40;color:transparent}.prose .sql-table{display:table;width:100%;margin:0;font-size:13px;border:0;border-radius:0}.prose .sql-table th{text-transform:none;letter-spacing:0;font-size:13px;color:var(--text)}.prose .sql-table td,.prose .sql-table th{border-left:0;border-right:0}.sql-result{border-top:1px solid var(--border)}.sql-table-wrap{max-height:360px;overflow:auto}.sql-table{border-collapse:collapse;width:100%;font:13px var(--font-mono)}.sql-table th{position:sticky;top:0;background:var(--bg-subtle);text-align:left;padding:6px 12px;font-weight:600;white-space:nowrap}.sql-table td{padding:6px 12px;border-top:1px solid var(--border);white-space:nowrap}.sql-table td.num{text-align:right}.sql-table td.null{color:var(--text-subtle);font-style:italic}.sql-meta{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;color:var(--text-muted);border-top:1px solid var(--border)}.sql-error{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;background:var(--error-soft);color:var(--error);border-top:1px solid var(--border)}.sql-error pre{margin:0;font:13px/1.5 var(--font-mono);white-space:pre-wrap;color:inherit;background:none;border:0;padding:0}.sql-ex-head{display:flex;gap:12px;padding:14px 16px 10px}.sql-ex-head b{font-size:15.5px}.sql-ex-tile{width:30px;height:30px;border-radius:9px;background:var(--brand-vivid);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}.sql-ex.solved .sql-ex-tile{background:var(--success)}.sql-ex-prompt{font-size:15px;margin-top:4px}.sql-ex-prompt p{margin:0 0 6px}.sql-hint{display:flex;gap:8px;align-items:flex-start;padding:10px 16px;background:var(--warning-soft);font-size:14px;border-bottom:1px solid var(--border)}.sql-verdict{display:flex;gap:8px;align-items:center;padding:10px 16px;font-weight:600;font-size:14px;background:var(--error-soft);color:var(--text);border-top:1px solid var(--border)}.sql-verdict.ok{background:var(--success-soft);color:var(--success)}.sql-solution{padding:10px 16px;border-top:1px solid var(--border);font-size:14px}.sql-solution summary{cursor:pointer;font-weight:600}.sql-solution pre{margin:8px 0 0}.sql-reveal{margin:8px 16px 12px}.lesson-sql{margin:28px 0;padding-top:20px;border-top:1px solid var(--border)}.sql-group{font-size:11.5px;font-weight:700;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.05em;margin:14px 0 4px}.sql-list ul{list-style:none;margin:0;padding:0}.sql-item{all:unset;box-sizing:border-box;display:flex;gap:8px;align-items:center;width:100%;padding:7px 8px;border-radius:10px;cursor:pointer;font-size:14px}.sql-item:hover{background:var(--bg-subtle)}.sql-item.on{background:var(--brand-primary-soft);font-weight:600}.sql-item:focus-visible{outline:2px solid var(--focus-ring)}.sql-mark{display:inline-flex;width:18px;justify-content:center;color:var(--text-subtle);flex:none}.sql-item.solved .sql-mark{color:var(--success)}.sql-item.on .sql-mark{color:var(--brand-primary)}.sql-editor-label{display:flex;align-items:center;gap:6px;padding:8px 16px 0;font-size:12.5px;font-weight:600;color:var(--text-muted);background:var(--code-bg)}.sql-editor-label .hint{font-weight:400}.sql-editor{min-height:120px;border-top:1px dashed transparent;cursor:text}.sql-editor pre{min-height:120px}.sql-editor.empty{box-shadow:inset 0 0 0 1.5px var(--border-strong)}.sql-editor textarea::placeholder{color:var(--text-subtle);opacity:1;font-family:var(--font-sans)}.schema-cols button{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;width:100%;padding:2px 4px;border-radius:6px;cursor:pointer}.schema-cols button:hover{background:var(--brand-primary-soft)}.schema-cols button:focus-visible{outline:2px solid var(--focus-ring)}.schema-cols li{padding:0}.prose pre.sql-read,pre.sql-read{margin:0;border:0;border-radius:0;box-shadow:none;background:var(--code-bg);padding:12px 16px;font:14px/1.6 var(--font-mono);white-space:pre-wrap;cursor:text}.sql-cell .sql-top{background:var(--bg-subtle)}mark.sql-blank{background:var(--warning-soft);color:var(--warning);border-radius:4px;outline:1px dashed var(--warning)}.sql-lab{margin:28px 0;border:1.5px solid var(--brand-vivid);border-radius:var(--radius-lg);background:var(--surface);overflow:visible;box-shadow:var(--shadow-sm)}.sql-lab.synthesis{border-color:var(--brand-primary)}.sql-lab-head{display:flex;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.sql-lab-head b{font-size:16px;display:block}.sql-lab-head small{color:var(--text-muted);font-size:13px}.sql-steps{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap;justify-content:flex-end}.sql-steps button{all:unset;box-sizing:border-box;width:30px;height:30px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;background:var(--bg-subtle);color:var(--text-muted);cursor:pointer}.sql-steps button.ok{background:var(--success-soft);color:var(--success)}.sql-steps button.on{background:var(--brand-primary);color:var(--on-brand)}.sql-steps button:focus-visible{outline:2px solid var(--focus-ring)}.sql-lab-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}@container (max-width: 820px){.sql-lab-intro{grid-template-columns:1fr}}.sql-lab-intro p{margin:4px 0 0;font-size:14.5px;line-height:1.55}.sql-lab-intro pre{margin:6px 0 0;font-size:13px}.sql-q{padding:14px 16px 10px}.sql-q b{font-size:15.5px}.sql-ex-body .sql-top{border-top:1px solid var(--border)}.sql-lab-foot{display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--border)}.sql-tables{position:absolute;top:calc(100% + 4px);left:8px;z-index:20;width:min(320px,calc(100% - 16px));max-height:360px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px 12px;font-size:13px;color:var(--text)}.sql-tables ul{list-style:none;margin:0;padding:0}.sql-tables-row{display:flex;align-items:center;gap:2px}.sql-tables-toggle,.sql-tables-name,.sql-tables-cols button{all:unset;box-sizing:border-box;cursor:pointer;border-radius:6px}.sql-tables-toggle{padding:4px;color:var(--text-subtle);display:inline-flex}.sql-tables-name{display:inline-flex;gap:6px;align-items:center;padding:4px 6px;font-weight:600;flex:1}.sql-tables-name svg{color:var(--brand-primary)}.sql-tables-cols{padding-left:26px!important;font:12.5px var(--font-mono)}.sql-tables-cols button{display:flex;justify-content:space-between;width:100%;padding:2px 6px}.sql-tables-cols i{color:var(--text-subtle);font-style:normal}.sql-tables-name:hover,.sql-tables-cols button:hover{background:var(--brand-primary-soft)}.sql-tables button:focus-visible{outline:2px solid var(--focus-ring)}.sql-diff{padding:14px 16px 12px;border-top:1px solid var(--border)}.sql-diff-why{display:flex;gap:8px;align-items:flex-start;background:var(--brand-primary-soft);border-radius:10px;padding:9px 12px;font-size:13.5px;margin-bottom:14px}.sql-diff-why svg{color:var(--brand-primary);flex:none;margin-top:2px}.sql-diff-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(max-width:760px){.sql-diff-cols{grid-template-columns:1fr}}.sql-diff-title{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.sql-diff-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.prose .sql-diff-table,.sql-diff-table{font-size:12.5px}.sql-diff-table th{position:static}.sql-diff-table td,.sql-diff-table th{padding:6px 10px}.sql-diff-table td.n{color:var(--text-subtle);text-align:right;width:1%;padding-right:4px}.sql-diff-table td.t{width:1%;text-align:right}.sql-diff-table tr.gap td{color:var(--text-subtle);text-align:center;padding:1px 10px 4px;line-height:1}.sql-diff-table tr.extra td{background:var(--error-soft)}.sql-diff-table tr.missing td{background:var(--success-soft)}.sql-diff-table tr.moved td{background:var(--warning-soft)}.sql-diff-table td.bad{background:var(--error-soft);box-shadow:inset 0 0 0 1.5px var(--error);font-weight:700}.sql-diff-table td.good{background:var(--success-soft);box-shadow:inset 0 0 0 1.5px var(--success);font-weight:700}.sql-diff-tag{font:600 11px var(--font-sans);border-radius:999px;padding:2px 8px;color:#fff;white-space:nowrap}.sql-diff-tag.extra{background:var(--error)}.sql-diff-tag.missing{background:var(--success)}.sql-diff-tag.moved{background:var(--warning)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .sql-diff-tag{color:#000}}:root[data-theme=dark] .sql-diff-tag{color:#000}.sql-diff-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.sql-diff-chip{font:600 12.5px var(--font-mono);border:1px solid var(--border);border-radius:8px;padding:4px 9px;background:var(--surface)}.sql-diff-chip.extra{background:var(--error-soft);border-color:var(--error);text-decoration:line-through}.sql-diff-chip.missing{background:var(--success-soft);border:1.5px dashed var(--success)}.sql-diff-foot{color:var(--text-muted);font-size:12.5px;margin:10px 0 0}.mission-ring{--p: 0%;width:58px;height:58px;border-radius:50%;background:conic-gradient(var(--brand-vivid) var(--p),var(--bg-subtle) 0);display:grid;place-items:center;flex:none}.mission-ring i{width:44px;height:44px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font:700 14px var(--font-sans);font-style:normal;font-variant-numeric:tabular-nums}.mission-ring.full{background:var(--success)}.mission-ring.full i{color:var(--success)}.mission-num.done{background:var(--success);border-color:var(--success);color:#fff}.mission li.done .mission-body b{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--border-strong)}button.obj{border:0;cursor:pointer}button.obj:hover{filter:brightness(.96)}.obj.sel{outline:2px solid var(--brand-primary);outline-offset:1px}.obj-card{margin-top:12px;border:1px solid var(--border);border-radius:14px;padding:12px 14px;font-size:14px}.obj-card.weak{border:1.5px solid var(--brand-vivid);background:var(--brand-primary-soft)}.obj-card-label{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.obj-card-pct{font-size:20px}.obj-card-bar{height:7px;border-radius:99px;background:var(--bg-subtle);overflow:hidden;margin:8px 0}.obj-card-bar i{display:block;height:100%;background:var(--brand-vivid);border-radius:99px}.obj-card-link span{overflow:hidden;text-overflow:ellipsis}.train{max-width:820px}.trap-filter{display:flex;gap:10px;align-items:center;background:var(--brand-primary-soft);border-radius:10px;padding:7px 12px;font-size:13.5px;margin:0 0 10px}.chapter-review{max-width:900px}.review-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:16px}.review-stats>*{background:var(--bg-subtle);border-radius:14px;padding:12px 14px;color:var(--text);text-decoration:none!important;display:flex;flex-direction:column}.review-stats b{font-size:22px}.review-stats span{font-size:13px;color:var(--text-muted)}.review-stats a:hover b{color:var(--brand-primary)}.review-points{margin:8px 0 0;padding-left:20px}.review-points li{margin:6px 0}.review-traps{list-style:none;margin:8px 0 6px;padding:0}.review-traps li{border:1px solid var(--border);border-radius:12px;margin-top:8px}.review-traps button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:6px;align-items:baseline;width:100%;padding:10px 14px;font-size:14.5px}.review-traps button b{color:var(--brand-primary);white-space:nowrap}.review-traps button svg{margin-left:auto;flex:none;align-self:center;color:var(--text-subtle);transition:transform .15s}.review-traps button[aria-expanded=true] svg{transform:rotate(90deg)}.review-trap-body{padding:0 14px 12px;font-size:14.5px}.review-actions{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);gap:10px}mark.hl{color:inherit;border-radius:3px;padding:1px 0;cursor:pointer;background:#ffe9a8;-webkit-box-decoration-break:clone;box-decoration-break:clone}mark.hl.red{background:#ffd3c7}mark.hl.green{background:#c9efd3}mark.hl.noted{border-bottom:2px solid #e2a400}mark.hl.flash{animation:hl-flash 1.6s ease-out}@keyframes hl-flash{0%,40%{box-shadow:0 0 0 4px var(--brand-vivid)}to{box-shadow:0 0 0 4px transparent}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) mark.hl{background:#ffcf4d52}:root:not([data-theme=light]) mark.hl.red{background:#ff694a57}:root:not([data-theme=light]) mark.hl.green{background:#30d15847}}:root[data-theme=dark] mark.hl{background:#ffcf4d52}:root[data-theme=dark] mark.hl.red{background:#ff694a57}:root[data-theme=dark] mark.hl.green{background:#30d15847}.hl-inline-note,.hl-note{display:block;font-size:13.5px;line-height:1.45;background:var(--warning-soft);border-left:3px solid #e2a400;border-radius:6px;padding:6px 10px;margin:6px 0 12px;color:var(--text);white-space:pre-wrap;font-weight:400}.hl-inline-note:before{content:"My note · ";font-weight:600}.hl-note svg{vertical-align:-2px;margin-right:4px}.hl-pop{position:fixed;z-index:60;transform:translate(-50%,calc(-100% - 8px));background:#1d1d1f;color:#fff;border-radius:12px;box-shadow:0 8px 24px #00000047;font-size:13px}.hl-pop.bar{display:flex;gap:8px;align-items:center;padding:7px 10px}.hl-pop.editor{width:min(320px,calc(100vw - 24px));padding:10px;display:flex;flex-direction:column;gap:8px}.hl-pop textarea{width:100%;min-height:76px;resize:vertical;border:0;border-radius:8px;padding:8px;font:13.5px/1.4 var(--font-sans);background:#2c2c2e;color:#fff}.hl-pop textarea:focus{outline:2px solid var(--brand-vivid)}.hl-dot{width:22px;height:22px;border-radius:50%;border:2px solid #fff;cursor:pointer;padding:0;background:#ffcf4d}.hl-dot.red{background:#ff9a85}.hl-dot.green{background:#9be3ad}.hl-dot.on{box-shadow:0 0 0 2px var(--brand-vivid)}.hl-pop-btn{all:unset;cursor:pointer;display:inline-flex;gap:5px;align-items:center;font-weight:600;padding:4px 8px;border-radius:8px;white-space:nowrap}.hl-pop-btn:hover{background:#ffffff24}.hl-pop-btn.primary{background:var(--brand-vivid);color:#1c1c1e}.notes-page{max-width:860px}.hl-list{list-style:none;margin:4px 0 0;padding:0}.hl-list li{padding:12px 0;border-top:1px solid var(--border)}.hl-list li:first-child{border-top:0}.hl-quote{margin:0 0 6px;padding-left:10px;border-left:3px solid #ffcf4d;white-space:pre-wrap}.hl-quote.red{border-color:#ff9a85}.hl-quote.green{border-color:#9be3ad}
