html{scroll-behavior:smooth}.backend-lesson{width:100%;overflow:hidden}.lesson-footer,.lesson-hero,.lesson-section{width:min(var(--width-lesson),calc(100% - 40px));margin-inline:auto;box-sizing:border-box}.lesson-hero{min-height:610px;padding:86px 0 74px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;grid-gap:72px;gap:72px}.example-label,.lesson-eyebrow,.section-kicker{display:block;margin:0 0 14px;font-size:12px;font-weight:800;letter-spacing:.12em}.lesson-hero h1{margin:0;max-width:720px;font-family:var(--font-display);font-size:clamp(42px,5.5vw,76px);line-height:.98;letter-spacing:-.065em}.lesson-hero__copy>p{max-width:650px;margin:28px 0;color:var(--color-fg-muted);font-size:clamp(17px,2vw,20px);line-height:1.65}.lesson-hero__actions{display:flex;flex-wrap:wrap;gap:14px}.lesson-meta{display:flex;flex-wrap:wrap;gap:20px;padding:0;margin:30px 0 0;list-style:none;color:var(--color-fg-muted);font-size:12px;font-weight:700}.lesson-meta li{display:flex;align-items:center;gap:7px}.lesson-meta .icon{width:16px}.lesson-hero__visual{position:relative;transform:rotate(1.5deg)}.mini-window{border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.mini-window__bar{display:flex;align-items:center;gap:7px;padding:12px;border-bottom:var(--border-w-hairline) solid var(--color-border);background:var(--color-surface-sunken)}.mini-window__bar i{width:10px;height:10px;background:var(--color-accent);border:1px solid var(--color-border)}.mini-window__bar i:nth-child(2){background:var(--color-brand)}.mini-window__bar i:nth-child(3){background:var(--color-success)}.mini-window__bar span{margin-left:8px;color:var(--color-fg-muted);font-size:var(--text-caption)}.mini-window__body{padding:30px}.http-pill{display:inline-block;padding:5px 9px;margin-right:10px;background:var(--color-success);color:var(--color-fg-on-success);font-size:12px}.http-pill,.mini-window__body>code{font-weight:800}.mini-window__route{display:flex;justify-content:space-between;align-items:center;margin:28px 0;padding:22px 12px;background:var(--color-brand-subtle);font-size:12px}.mini-window__route b{font-size:24px;animation:route-pulse 1.7s ease-in-out infinite}.mini-window pre{overflow:auto;margin:0;padding:18px;background:var(--n-950);color:var(--brand-300);font:13px/1.6 var(--font-mono)}.lesson-sticker{position:absolute;right:-20px;bottom:-24px;padding:12px 18px;border:var(--border-w) solid var(--color-border);background:var(--color-accent);color:var(--color-fg-on-accent);font-weight:800;transform:rotate(-5deg)}.lesson-section{padding:90px 0;border-top:var(--border-w-hairline) solid var(--color-border);scroll-margin-top:70px}.section-heading{display:flex;align-items:flex-start;gap:22px;margin-bottom:24px}.section-number{display:grid;place-items:center;flex:none;width:48px;height:48px;background:var(--color-brand);color:var(--color-fg-on-brand);font-weight:900}.section-heading h2{margin:0;font:800 clamp(30px,4vw,48px)/1.05 var(--font-display);letter-spacing:-.045em}.section-kicker{margin-bottom:8px}.section-lead{max-width:820px;margin:0 0 42px 70px;color:var(--color-fg-muted);font-size:17px;line-height:1.7}.concept-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:14px;gap:14px}.concept-card{min-height:205px;padding:22px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);color:var(--color-fg);text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.concept-card.is-active,.concept-card:hover{transform:translate(-2px,-3px);box-shadow:var(--shadow-lg)}.concept-card>span{display:grid;place-items:center;width:44px;height:44px;margin-bottom:28px;background:var(--color-accent);color:var(--color-fg-on-accent);border:2px solid var(--color-border);font-weight:900}.concept-card small,.concept-card strong{display:block}.concept-card strong{margin-bottom:12px;font-size:15px}.concept-card small{color:var(--color-fg-muted);line-height:1.5}.lesson-flow{padding-bottom:110px}.request-flow{display:grid;grid-template-columns:1fr .8fr 1fr .8fr 1fr;grid-gap:10px;gap:10px;padding:44px;background:var(--color-surface-sunken)}.flow-node,.request-flow{align-items:center;border:var(--border-w) solid var(--color-border)}.flow-node{display:flex;min-height:150px;flex-direction:column;justify-content:center;gap:8px;background:var(--color-surface);text-align:center}.flow-node--server{background:var(--color-brand)}.flow-node>span{font-size:30px;font-weight:900}.flow-node small{color:var(--color-fg-muted);font-size:var(--text-caption)}.flow-arrow{text-align:center}.flow-arrow code{display:block;font-size:var(--text-caption);font-weight:800}.flow-arrow i{display:block;font-size:34px;font-style:normal;animation:route-slide 1.7s ease-in-out infinite}.flow-arrow--back i{animation-delay:.85s}.example-tabs{display:flex;gap:8px;margin:36px 0 0 70px}.example-tabs button{padding:12px 18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);color:var(--color-fg);font:700 12px var(--font-body);cursor:pointer}.example-tabs button[aria-selected=true]{background:var(--color-brand)}.guided-example{display:grid;grid-template-columns:.7fr 1.3fr;grid-gap:46px;gap:46px;align-items:start;margin-top:22px;padding:40px;border:var(--border-w) solid var(--color-border)}.guided-example h3{font-size:26px;margin:0 0 18px}.guided-example p{color:var(--color-fg-muted);line-height:1.7}.text-action{padding:10px 0;border:0;border-bottom:2px solid;background:transparent;color:var(--color-fg);font:800 13px var(--font-body);cursor:pointer}.code-window{min-width:0;border:var(--border-w) solid var(--color-border);background:var(--n-950);color:var(--n-50);box-shadow:var(--shadow-lg)}.code-window__bar{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--n-700);font-size:var(--text-caption)}.code-window__bar span{color:var(--brand-300);font-weight:800}.code-window__bar i{color:var(--n-400);font-style:normal}.code-window>pre{overflow:auto;margin:0;padding:24px;font:12px/1.75 var(--font-mono)}.code-response{border-top:1px solid var(--n-700);padding:16px 24px;color:var(--brand-300)}.code-response small{font-size:var(--text-caption);font-weight:800}.code-response pre{white-space:pre-wrap;margin:8px 0 0;font:12px/1.5 var(--font-mono)}@keyframes route-pulse{50%{transform:translateX(8px)}}@keyframes route-slide{50%{transform:translateX(10px)}}@media(max-width:900px){.lesson-hero{grid-template-columns:1fr;gap:50px}.lesson-hero__visual{width:min(580px,92%);margin:auto}.concept-grid{grid-template-columns:repeat(2,1fr)}.concept-card:last-child{grid-column:span 2}.request-flow{grid-template-columns:1fr}.flow-arrow i{transform:rotate(90deg);animation:none}.guided-example{grid-template-columns:1fr}.site-header__nav a:nth-child(n+3){display:none}}@media(max-width:600px){.lesson-footer,.lesson-hero,.lesson-section{width:min(100% - 28px,var(--width-lesson))}.lesson-hero{padding:62px 0}.lesson-hero h1{font-size:42px}.lesson-hero__actions .btn{width:100%}.lesson-meta{gap:12px}.mini-window__body{padding:18px}.lesson-section{padding:64px 0}.section-heading{gap:14px}.section-number{width:40px;height:40px}.section-lead{margin-left:0}.concept-grid{grid-template-columns:1fr}.concept-card:last-child{grid-column:auto}.request-flow{padding:20px}.example-tabs{margin-left:0;overflow:auto}.guided-example{padding:20px}.site-header__inner{padding-inline:12px}.site-header__nav{display:none}.lesson-sticker{right:-4px}}@media (prefers-reduced-motion:reduce){.flow-arrow i,.mini-window__route b{animation:none}.concept-card{transition:none}}.lab-section .section-heading,.lab-section .section-lead{max-width:var(--width-lesson);margin-right:auto}.simulator{display:grid;grid-template-columns:330px 1fr;max-width:var(--width-lesson);margin:0 auto;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-xl)}.endpoint-list{padding:24px;border-right:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken)}.endpoint-list>p{margin:0 0 16px;font-size:var(--text-caption);font-weight:900;letter-spacing:.1em}.endpoint-list button{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 10px;gap:4px 10px;width:100%;margin-bottom:10px;padding:14px;border:2px solid transparent;background:transparent;color:var(--color-fg);text-align:left;cursor:pointer}.endpoint-list button.is-selected,.endpoint-list button:hover{border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-xs)}.endpoint-list button>span{grid-row:span 2;padding:4px 6px;background:var(--color-success);color:var(--color-fg-on-success);font-size:var(--text-caption);font-weight:900}.endpoint-list code{font-weight:800}.endpoint-list small{color:var(--color-fg-muted);font-size:var(--text-caption)}.request-console{padding:32px;min-width:0}.request-builder{display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;border:var(--border-w) solid var(--color-border)}.request-builder>span{display:grid;place-items:center;padding:0 18px;background:var(--color-success);color:var(--color-fg-on-success);font-weight:900}.request-builder>div{display:flex;align-items:center;min-width:0;padding:14px;background:var(--color-surface)}.request-builder small{color:var(--color-fg-muted)}.request-builder strong{font-size:13px}.request-builder button{border:0;border-left:var(--border-w) solid var(--color-border);padding:0 20px;background:var(--color-brand);color:var(--color-fg-on-brand);font:800 12px var(--font-body);cursor:pointer}.request-builder button:disabled{opacity:.65}.request-hint{margin:12px 0 24px;color:var(--color-fg-muted);font-size:var(--text-caption)}.response-viewer{min-height:300px;border:var(--border-w) solid var(--color-border);background:var(--n-950);color:var(--n-50)}.response-viewer>div:first-child{display:flex;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--n-700);font-size:var(--text-caption);font-weight:800;letter-spacing:.08em}.response-viewer b{color:var(--success-200)}.response-viewer b i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--success-500)}.response-viewer>pre{overflow:auto;margin:0;padding:30px;color:var(--brand-300);font:13px/1.7 var(--font-mono)}.response-empty{display:grid;place-items:center;min-height:230px;margin:0;color:var(--n-500);text-align:center;line-height:1.7}.response-loading{display:flex!important;justify-content:center!important;align-items:center;gap:5px;min-height:230px;border:0!important;color:var(--n-400);letter-spacing:0!important}.response-loading i{width:8px;height:8px;background:var(--brand-300);animation:loading-dot 1s infinite}.response-loading i:nth-child(2){animation-delay:.15s}.response-loading i:nth-child(3){animation-delay:.3s}.quiz-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.quick-question{margin:0;padding:22px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.quick-question legend{display:flex;gap:12px;min-height:74px;padding:0 4px;font-weight:800;line-height:1.45}.quick-question legend span{display:grid;place-items:center;flex:none;width:28px;height:28px;background:var(--color-accent);color:var(--color-fg-on-accent);border:2px solid var(--color-border)}.quick-question button{display:flex;justify-content:space-between;width:100%;margin-top:9px;padding:12px;border:2px solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-fg);font:600 12px var(--font-body);text-align:left;cursor:pointer}.quick-question button.is-correct{background:var(--color-success-subtle);color:var(--color-success-fg)}.quick-question button.is-wrong{background:var(--color-danger-subtle);color:var(--color-danger-fg)}.quick-question>p{margin:14px 0 0;font-size:var(--text-caption);line-height:1.5}.feedback-ok{color:var(--color-success-fg)}.feedback-no{color:var(--color-danger-fg)}.lesson-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:24px;gap:24px;margin-top:30px;padding:28px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken)}.lesson-summary>div:first-child{display:grid;place-items:center;width:76px;height:76px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);font-size:22px;font-weight:900}.lesson-summary.is-complete>div:first-child{background:var(--color-brand)}.lesson-summary p{margin:0 0 5px;font-size:var(--text-caption);font-weight:900;letter-spacing:.1em}.lesson-summary h3{margin:0 0 7px}.lesson-summary small{color:var(--color-fg-muted);line-height:1.5}.lesson-footer{display:flex;align-items:center;gap:18px;padding:36px 0 50px;color:var(--color-fg-muted);font-size:var(--text-caption)}.lesson-footer strong{color:var(--color-fg);font-size:16px}.lesson-footer a{margin-left:auto;color:var(--color-fg);font-weight:800}@keyframes loading-dot{50%{transform:translateY(-5px)}}@media(max-width:900px){.simulator{grid-template-columns:1fr}.endpoint-list{border-right:0;border-bottom:var(--border-w) solid var(--color-border)}.endpoint-list button{display:inline-grid;width:calc(50% - 6px);vertical-align:top}.quiz-grid{grid-template-columns:1fr}.quick-question legend{min-height:0}.lesson-summary{grid-template-columns:auto 1fr}.lesson-summary .btn{grid-column:span 2}}@media(max-width:600px){.lab-section{padding-inline:14px}.endpoint-list button{width:100%}.request-console{padding:16px}.request-builder{grid-template-columns:auto 1fr}.request-builder small{display:none}.request-builder button{grid-column:span 2;min-height:48px;border-left:0;border-top:var(--border-w) solid var(--color-border)}.lesson-summary{grid-template-columns:1fr}.lesson-summary .btn{grid-column:auto}.lesson-footer span{display:none}}@media (prefers-reduced-motion:reduce){.response-loading i{animation:none}}.theory-deep-dive{margin-top:56px}.reading-intro{display:grid;grid-template-columns:150px 1fr 1fr;grid-gap:22px;gap:22px;align-items:end;padding-bottom:22px;border-bottom:var(--border-w) solid var(--color-border)}.reading-intro>span{font-size:var(--text-caption);font-weight:800;letter-spacing:.1em;color:var(--color-brand-subtle-fg)}.reading-intro h3{margin:0;font-size:25px;line-height:1.2}.reading-intro p{margin:0;color:var(--color-fg-muted);line-height:1.6}.theory-module{border-bottom:var(--border-w) solid var(--color-border)}.theory-module summary{display:grid;grid-template-columns:58px 1fr auto;grid-gap:18px;gap:18px;align-items:center;padding:24px 0;cursor:pointer;list-style:none}.theory-module summary::-webkit-details-marker{display:none}.theory-module summary>span{font:700 14px var(--font-mono);color:var(--color-brand)}.theory-module summary small,.theory-module summary strong{display:block}.theory-module summary small{margin-bottom:5px;color:var(--color-fg-muted);font-size:var(--text-caption);font-weight:700;letter-spacing:.08em}.theory-module summary strong{font-size:19px}.theory-module summary>b{font-size:25px;font-weight:400;transition:transform var(--duration-fast) var(--ease-out)}.theory-module[open] summary>b{transform:rotate(45deg)}.theory-module__content{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:50px;gap:50px;padding:4px 0 38px 76px}.theory-copy p{margin:0 0 16px;color:var(--color-fg-muted);font-size:16px;line-height:1.75}.theory-copy aside{padding:16px 18px;border-left:4px solid var(--color-brand);background:var(--color-brand-subtle);color:var(--color-brand-subtle-fg);line-height:1.55}.theory-copy aside strong{display:block;margin-bottom:4px;font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase}.theory-module dl{margin:0}.theory-module dl div{padding:13px 0;border-bottom:var(--border-w-hairline) solid var(--color-border)}.theory-module dt{margin-bottom:4px;font-weight:800}.theory-module dd{margin:0;color:var(--color-fg-muted);font-size:13px;line-height:1.5}.practice-studio{width:min(1220px,calc(100% - 32px));max-width:1220px}.practice-block{margin-top:42px;padding-top:36px;border-top:var(--border-w) solid var(--color-border)}.practice-block>header{display:grid;grid-template-columns:130px 1fr;grid-gap:20px;gap:20px;margin-bottom:24px}.practice-block>header>span{color:var(--color-brand-subtle-fg);font-size:var(--text-caption);font-weight:800;letter-spacing:.1em}.practice-block header h3{margin:0 0 7px;font-size:24px}.practice-block header p{max-width:768px;margin:0;color:var(--color-fg-muted);line-height:1.6}.bug-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:26px;gap:26px}.bug-code{overflow:auto;margin:0;padding:24px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-fg);font:13px/1.75 var(--font-mono)}.bug-options{display:flex;flex-direction:column;gap:10px}.bug-options button{display:flex;gap:12px;align-items:center;padding:14px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);color:var(--color-fg);font:600 13px var(--font-body);text-align:left;cursor:pointer}.bug-options button>span{display:grid;place-items:center;flex:none;width:28px;height:28px;background:var(--color-surface-sunken);font:700 12px var(--font-mono)}.bug-options button.is-correct{background:var(--color-success-subtle);color:var(--color-success-fg)}.bug-options button.is-wrong{background:var(--color-danger-subtle);color:var(--color-danger-fg)}.bug-options>p{margin:4px 0 0;font-size:12px;line-height:1.55}.code-workshop{display:grid;grid-template-columns:1.25fr .75fr;border:var(--border-w) solid var(--color-border)}.code-workshop textarea{min-height:300px;padding:24px;resize:vertical;border:0;border-right:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-fg);font:13px/1.7 var(--font-mono);outline-offset:-4px}.workshop-review{padding:24px;background:var(--color-surface)}.workshop-review>p{margin:0 0 15px;font-size:var(--text-caption);font-weight:800;letter-spacing:.1em}.workshop-review ul{padding:0;margin:0 0 20px;list-style:none}.workshop-review li{display:flex;gap:9px;padding:10px 0;border-bottom:var(--border-w-hairline) solid var(--color-border);color:var(--color-fg-muted);font-size:12px}.workshop-review li.is-pass{color:var(--color-success-fg)}.workshop-review li.is-pending{color:var(--color-warning-fg)}.workshop-review small{display:block;margin-top:14px;color:var(--color-fg-muted);line-height:1.5}.reflection-block>textarea{width:100%;box-sizing:border-box;padding:18px;resize:vertical;border:var(--border-w) solid var(--color-border);background:var(--color-surface);color:var(--color-fg);font:15px/1.65 var(--font-body)}.reflection-footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.reflection-footer>span{color:var(--color-fg-muted);font-size:var(--text-caption)}.saved-note{padding:12px 15px;background:var(--color-success-subtle);color:var(--color-success-fg);font-size:12px}.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.challenge-card{padding:22px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.challenge-card>div{display:flex;justify-content:space-between;color:var(--color-brand-subtle-fg);font:700 10px var(--font-mono);letter-spacing:.08em}.challenge-card h4{margin:22px 0 10px;font-size:19px}.challenge-card>p{min-height:76px;color:var(--color-fg-muted);font-size:13px;line-height:1.6}.challenge-card ul{padding:0;margin:18px 0 0;list-style:none}.challenge-card li{padding:10px 0;border-top:var(--border-w-hairline) solid var(--color-border)}.challenge-card label{display:flex;gap:9px;align-items:flex-start;cursor:pointer;font-size:12px;line-height:1.45}.challenge-card input{margin-top:2px;accent-color:var(--color-brand)}.example-steps{padding:0;margin:22px 0;list-style:none;counter-reset:example-step}.example-steps li{position:relative;padding:10px 0 10px 34px;border-top:var(--border-w-hairline) solid var(--color-border);color:var(--color-fg-muted);font-size:12px;line-height:1.5;counter-increment:example-step}.example-steps li:before{position:absolute;left:0;content:counter(example-step,decimal-leading-zero);color:var(--color-brand-subtle-fg);font:700 10px var(--font-mono)}@media(max-width:900px){.reading-intro,.theory-module__content{grid-template-columns:1fr}.theory-module__content{padding-left:0}.bug-layout,.code-workshop{grid-template-columns:1fr}.code-workshop textarea{border-right:0;border-bottom:var(--border-w) solid var(--color-border)}.challenge-grid{grid-template-columns:1fr}.challenge-card>p{min-height:0}}@media(max-width:600px){.practice-block>header{grid-template-columns:1fr;gap:8px}.theory-module summary{grid-template-columns:38px 1fr auto}.theory-module__content{gap:24px}.reading-intro h3{font-size:21px}}.practice-page{width:min(var(--width-lesson),calc(100% - 40px));margin:0 auto;padding:74px 0 90px;box-sizing:border-box}.practice-hero{display:grid;grid-template-columns:190px 1.15fr .85fr;grid-gap:26px;gap:26px;align-items:end;padding-bottom:34px;border-bottom:var(--border-w) solid var(--color-border)}.practice-hero>span{color:var(--color-brand-subtle-fg);font:700 11px var(--font-mono);letter-spacing:.1em}.practice-hero h1{margin:0;font:700 clamp(36px,5vw,62px)/1.02 var(--font-display);letter-spacing:-.05em}.practice-hero p{margin:0;color:var(--color-fg-muted);font-size:16px;line-height:1.65}.practice-tabs{position:-webkit-sticky;position:sticky;top:64px;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);margin:34px 0 0;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md)}.practice-tabs button{min-width:0;padding:15px 18px;border:0;border-right:var(--border-w-hairline) solid var(--color-border);background:transparent;color:var(--color-fg);font-family:var(--font-body);text-align:left;cursor:pointer}.practice-tabs button:last-child{border-right:0}.practice-tabs button:hover{background:var(--color-surface-sunken)}.practice-tabs button[aria-selected=true]{background:var(--color-brand);color:var(--color-fg-on-brand)}.practice-tabs small,.practice-tabs strong{display:block}.practice-tabs strong{margin-bottom:3px;font-size:13px}.practice-tabs small{opacity:.75;font-size:var(--text-caption);line-height:1.3}.practice-stage{min-width:0;padding-top:10px}.practice-pane{min-width:0}.practice-block--first{margin-top:24px}.practice-submit{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:18px}.practice-submit>span{margin-right:auto;color:var(--color-fg-muted);font-size:var(--text-caption)}.practice-feedback{display:grid;grid-template-columns:190px 1fr;grid-gap:20px;gap:20px;margin-top:16px;padding:18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken)}.practice-feedback>div span,.practice-feedback>div strong{display:block}.practice-feedback>div strong{font-size:19px}.practice-feedback>div span{margin-top:3px;color:var(--color-fg-muted);font-size:var(--text-caption)}.practice-feedback>p{margin:0;line-height:1.55}.practice-feedback>ul{grid-column:2;padding:0;margin:0;list-style:none}.practice-feedback li{display:flex;gap:8px;padding:7px 0;border-top:var(--border-w-hairline) solid;font-size:12px}.practice-feedback.is-success{background:var(--color-success-subtle);color:var(--color-success-fg)}.practice-feedback.is-warning{background:var(--color-warning-subtle);color:var(--color-warning-fg)}.practice-feedback.is-info{background:var(--color-info-subtle);color:var(--color-info-fg)}.practice-feedback.is-error{display:block;background:var(--color-danger-subtle);color:var(--color-danger-fg)}.bug-options button.is-selected,.quick-question button.is-selected{background:var(--color-brand-subtle);color:var(--color-brand-subtle-fg);box-shadow:inset 4px 0 0 var(--color-brand)}.object-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:28px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.object-tabs button{display:flex;align-items:center;gap:9px;padding:13px 16px;border:0;border-right:var(--border-w-hairline) solid var(--color-border);background:transparent;color:var(--color-fg);font:700 13px var(--font-body);cursor:pointer}.object-tabs button:last-child{border-right:0}.object-tabs button[aria-selected=true]{background:var(--color-brand-subtle)}.object-tabs button>span{display:grid;place-items:center;width:24px;height:24px;background:var(--color-surface-sunken);font:700 10px var(--font-mono)}.object-tabs button>b{margin-left:auto;color:var(--color-success-fg)}.java-editor{min-width:0;max-width:100%;border:var(--border-w) solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden}.java-editor .cm-editor{font:13px/1.65 var(--font-mono)}.java-editor .cm-editor,.java-editor .cm-scroller{min-width:0;max-width:100%}.java-editor .cm-content{padding:14px 0}.java-editor .cm-focused{outline:2px solid var(--color-focus-ring);outline-offset:-2px}kbd{padding:2px 5px;border:var(--border-w-hairline) solid var(--color-border);background:var(--color-surface-sunken);box-shadow:var(--shadow-xs);font:11px var(--font-mono)}.guide-exercise-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:24px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.guide-exercise-tabs button{display:flex;gap:10px;align-items:center;min-width:0;padding:14px 16px;border:0;border-right:var(--border-w-hairline) solid var(--color-border);background:transparent;color:var(--color-fg);cursor:pointer;text-align:left}.guide-exercise-tabs button:last-child{border-right:0}.guide-exercise-tabs button[aria-selected=true]{background:var(--color-brand);color:var(--color-fg-on-brand)}.guide-exercise-tabs span{display:grid;flex:0 0 25px;place-items:center;height:25px;border:var(--border-w-hairline) solid;font:700 10px var(--font-mono)}.guide-exercise-tabs strong{overflow:hidden;font-size:13px;text-overflow:ellipsis}.guide-exercise-tabs b{margin-left:auto}.guide-brief{margin-top:18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.guide-brief>header{display:grid;grid-template-columns:190px 1fr;grid-gap:20px;gap:20px;padding:22px;border-bottom:var(--border-w-hairline) solid var(--color-border)}.guide-brief>header span{color:var(--color-brand-subtle-fg);font:700 10px var(--font-mono);letter-spacing:.08em}.guide-brief h3{margin:0;font-size:23px}.guide-context{padding:22px}.guide-context p{max-width:900px;margin:0;color:var(--color-fg-muted);line-height:1.65}.guide-context p+p{margin-top:12px}.guide-columns{display:grid;grid-template-columns:1fr 1fr;border-top:var(--border-w-hairline) solid var(--color-border)}.guide-columns section{min-width:0;padding:20px 22px}.guide-columns section+section{border-left:var(--border-w-hairline) solid var(--color-border);background:var(--color-surface-sunken)}.guide-columns h4{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.07em}.guide-columns ul{padding-left:20px;margin:0}.guide-columns li{margin:8px 0;color:var(--color-fg-muted);font-size:13px;line-height:1.5}.guide-file-tabs{display:flex;max-width:100%;margin-top:20px;overflow-x:auto;border:var(--border-w) solid var(--color-border);border-bottom:0;background:var(--color-surface-sunken)}.guide-file-tabs button{flex:0 0 auto;min-width:180px;padding:12px 16px;border:0;border-right:var(--border-w-hairline) solid var(--color-border);background:transparent;color:var(--color-fg);cursor:pointer;text-align:left}.guide-file-tabs button[aria-selected=true]{background:var(--color-surface);box-shadow:inset 0 -3px 0 var(--color-brand)}.guide-file-tabs span{display:block;margin-bottom:3px;color:var(--color-fg-subtle);font:700 9px var(--font-mono);letter-spacing:.09em}.guide-practice .java-editor{border-top-width:var(--border-w-hairline)}.page,body,html{max-width:100%;overflow-x:hidden;overflow-x:clip}.backend-lesson,.bug-layout,.challenge-grid,.code-workshop,.guided-example,.lesson-hero,.lesson-section,.practice-page,.practice-stage,.quiz-grid,.request-console,.simulator,.theory-module__content{min-width:0;max-width:100%}.backend-lesson pre,.practice-page pre{max-width:100%;box-sizing:border-box}@media(max-width:800px){.practice-hero{grid-template-columns:1fr}.practice-tabs{grid-template-columns:repeat(2,1fr);position:static}.practice-tabs button{border-bottom:var(--border-w-hairline) solid var(--color-border)}.practice-tabs button:nth-child(2n){border-right:0}.practice-tabs button:last-child{grid-column:1/-1;border-bottom:0}.guide-exercise-tabs{grid-template-columns:repeat(2,1fr)}.guide-exercise-tabs button{border-bottom:var(--border-w-hairline) solid var(--color-border)}.guide-exercise-tabs button:nth-child(2n){border-right:0}.guide-exercise-tabs button:nth-last-child(-n+2){border-bottom:0}.guide-brief>header,.guide-columns{grid-template-columns:1fr}.guide-columns section+section{border-left:0;border-top:var(--border-w-hairline) solid var(--color-border)}.practice-feedback{grid-template-columns:1fr}.practice-feedback>ul{grid-column:auto}}@media(max-width:520px){.practice-page{width:calc(100% - 24px);padding-top:48px}.practice-tabs{grid-template-columns:1fr}.practice-tabs button{grid-column:auto!important;border-right:0;border-bottom:var(--border-w-hairline) solid var(--color-border)!important}.practice-tabs button:last-child{border-bottom:0!important}.guide-exercise-tabs,.object-tabs{grid-template-columns:1fr}.guide-exercise-tabs button,.object-tabs button{border-right:0;border-bottom:var(--border-w-hairline) solid var(--color-border)}.guide-exercise-tabs button:last-child,.object-tabs button:last-child{border-bottom:0}.guide-exercise-tabs button:nth-last-child(2){border-bottom:var(--border-w-hairline) solid var(--color-border)}.guide-brief>header,.guide-columns section,.guide-context{padding:16px}.guide-file-tabs button{min-width:155px}.practice-submit{align-items:stretch;flex-direction:column}.practice-submit .btn{width:100%}.practice-feedback{padding:14px}}@media (prefers-reduced-motion:reduce){.theory-module summary>b{transition:none}}body:has(.backend-lesson) .site-header{background:var(--color-bg);border-bottom:var(--border-w) solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}body:has(.backend-lesson) .site-header__inner{max-width:var(--width-lesson);height:64px}body:has(.backend-lesson) .site-header__logo{font-size:19px;text-transform:uppercase;letter-spacing:-.02em}body:has(.backend-lesson) .site-header__nav a{font-size:12px;font-weight:700}.backend-lesson{background:var(--color-bg)}.lesson-hero{position:relative;min-height:650px}.lesson-hero:before{content:"01";position:absolute;right:-20px;top:24px;color:var(--color-brand-subtle);font:700 clamp(150px,22vw,300px)/1 var(--font-display);letter-spacing:-.1em;pointer-events:none}.lesson-hero>*{position:relative;z-index:1}.example-label,.lesson-eyebrow,.section-kicker{width:-moz-fit-content;width:fit-content;padding-bottom:5px;border-bottom:3px solid var(--color-accent);color:var(--color-brand-subtle-fg)}.lesson-hero h1{max-width:760px;font-weight:700;letter-spacing:-.055em}.lesson-hero__copy>p{border-left:4px solid var(--color-brand);padding-left:18px}.lesson-hero .btn,.lesson-summary .btn{border:var(--border-w) solid var(--color-border);box-shadow:var(--shadow-sm)}.lesson-hero .btn:hover,.lesson-summary .btn:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-md)}.lesson-meta li{padding-right:18px;border-right:var(--border-w-hairline) solid var(--color-border)}.lesson-hero__visual{transform:none}.mini-window{border-width:var(--border-w);box-shadow:var(--shadow-xl)}.lesson-sticker{right:-12px;transform:none;border-width:var(--border-w);box-shadow:var(--shadow-md)}.lesson-section{width:min(var(--width-lesson),calc(100% - 40px));padding:86px 0;border-top:var(--border-w) solid var(--color-border)}.section-number{border:var(--border-w) solid var(--color-border);box-shadow:var(--shadow-sm)}.section-heading h2{font-weight:700;letter-spacing:-.04em}.concept-grid{gap:16px}.concept-card{border-width:var(--border-w);box-shadow:none}.concept-card.is-active,.concept-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.concept-card.is-active{background:var(--color-brand-subtle)}.concept-card:nth-child(2n)>span{background:var(--color-info-subtle);color:var(--color-info-fg)}.concept-card:nth-child(3n)>span{background:var(--color-success-subtle);color:var(--color-success-fg)}.guided-example,.lesson-summary,.quick-question,.request-flow,.simulator{border-width:var(--border-w);box-shadow:var(--shadow-md)}.request-flow{background:var(--color-surface)}.flow-node{border-width:var(--border-w);box-shadow:var(--shadow-sm)}.flow-node--server,.flow-node--server small{color:var(--color-fg-on-brand)}.flow-node--server small{opacity:.8}.example-tabs button{border-width:var(--border-w);box-shadow:none}.example-tabs button[aria-selected=true]{box-shadow:var(--shadow-sm)}.guided-example{background:var(--color-surface)}.code-window,.response-viewer{border-width:var(--border-w);box-shadow:var(--shadow-lg)}.lab-section{width:100%;max-width:none;margin:0;padding-inline:max(20px,calc((100% - var(--width-lesson))/2));background:var(--color-brand-subtle)}.endpoint-list button.is-selected{border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.request-builder{border-width:var(--border-w)}.request-builder button{border-left-width:var(--border-w)}.practice-studio{margin-block:34px;padding:64px 38px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg)}.quick-question,.quick-question button{box-shadow:none}.quick-question button:hover{background:var(--color-brand-subtle)}.lesson-footer{border-top:var(--border-w) solid var(--color-border)}@media(max-width:600px){.lesson-section{width:calc(100% - 28px)}.practice-studio{width:calc(100% - 24px);padding:48px 18px}.lesson-hero:before{opacity:.55}.lesson-meta li{border:0}.lab-section{width:100%;padding-inline:14px}}@media(prefers-reduced-motion:reduce){.backend-lesson *,.backend-lesson :after,.backend-lesson :before{animation:none!important;transition:none!important}}.lesson-choice-list{display:grid;grid-gap:9px;gap:9px;margin:6px 0 2px}.lesson-choice-list button{display:flex;gap:11px;align-items:flex-start;width:100%;padding:13px 14px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-fg);font:13px/1.45 var(--font-body);text-align:left;cursor:pointer}.lesson-choice-list button.is-selected,.lesson-choice-list button:hover{border-color:var(--color-brand);background:var(--color-brand-subtle)}.lesson-choice-list button>span{display:grid;place-items:center;flex:none;width:24px;height:24px;background:var(--color-brand);color:var(--color-fg-on-brand);font:800 11px var(--font-mono)}.lesson-inline-feedback{display:grid;grid-template-columns:auto 1fr;grid-gap:8px;gap:8px;padding:13px 15px;border-left:4px solid var(--color-info);background:var(--color-info-subtle);color:var(--color-info-fg);font-size:13px;line-height:1.5}.lesson-inline-feedback strong{font-size:var(--text-caption);white-space:nowrap}.lesson-inline-feedback.is-success{border-color:var(--color-success);background:var(--color-success-subtle);color:var(--color-success-fg)}.lesson-inline-feedback.is-warning{border-color:var(--color-danger);background:var(--color-danger-subtle);color:var(--color-danger-fg)}.lesson-hints{display:grid;grid-gap:10px;gap:10px;margin:22px 0;padding:16px 18px;border-left:4px solid var(--color-accent);background:var(--color-accent-subtle)}.lesson-hints__top{display:flex;justify-content:space-between;color:var(--color-accent-fg)}.lesson-hints__top span{font:11px var(--font-mono)}.lesson-hints p{margin:0;color:var(--color-fg-muted);font-size:13px;line-height:1.5}@media(max-width:520px){.lesson-inline-feedback{grid-template-columns:1fr}.lesson-inline-feedback strong{white-space:normal}}.giles-lesson .lesson-hero:before{content:"POO";font-size:clamp(120px,19vw,250px)}.giles-code-card .mini-window__body small{display:block;margin-bottom:8px;color:var(--color-fg-muted);font:800 10px var(--font-body);letter-spacing:.12em}.giles-code-card .mini-window__body pre{border:2px solid transparent;color:var(--n-100)}.giles-code-card .mini-window__body pre.is-highlighted{border-color:var(--color-brand);color:var(--brand-300)}.giles-code-arrow{padding:10px;color:var(--color-brand-subtle-fg);font-size:28px;font-weight:900;text-align:center}.giles-comparison{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:44px;gap:44px;align-items:center;padding:40px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md)}.giles-activity h3,.giles-comparison h3{margin:0 0 14px;font-size:26px}.giles-activity p,.giles-comparison p{color:var(--color-fg-muted);line-height:1.65}.giles-comparison .btn{margin-top:12px}.giles-concepts{grid-template-columns:repeat(4,1fr)}.giles-concepts .concept-card{cursor:default}.giles-concepts .concept-card:hover{transform:none;box-shadow:none}.giles-anatomy{margin-top:38px;padding:32px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken)}.giles-anatomy>code{display:block;overflow-x:auto;padding:22px;background:var(--n-950);color:var(--n-100);font-size:clamp(14px,2vw,20px);white-space:nowrap}.giles-anatomy code b{color:var(--brand-300)}.giles-anatomy code strong{color:var(--accent-300)}.giles-anatomy code i{color:var(--color-info-fg);font-style:normal}.giles-anatomy code mark{background:transparent;color:var(--color-success-fg)}.giles-anatomy>div{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-top:18px}.giles-anatomy>div span{padding:12px;border-left:3px solid var(--color-brand);color:var(--color-fg-muted);font-size:12px}.giles-anatomy>div span>*{display:block;color:var(--color-fg);font-style:normal}.giles-example{grid-template-columns:.65fr 1.35fr}.giles-code-stack{display:grid;grid-gap:18px;gap:18px;min-width:0}.giles-code-stack .code-window:last-child{border-color:var(--color-brand)}.giles-code-stack .code-window>pre{max-height:390px}.giles-activity{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:36px;gap:36px;padding:40px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md)}.giles-activity__tag{display:inline-block;margin-bottom:18px;padding:6px 9px;background:var(--color-accent);color:var(--color-fg-on-accent);font-size:var(--text-caption);font-weight:900;letter-spacing:.1em}.giles-choices{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:24px}.giles-choices button{padding:18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-fg);text-align:left;cursor:pointer}.giles-choices button:hover,.giles-choices button[aria-pressed=true]{background:var(--color-brand-subtle);box-shadow:var(--shadow-sm)}.giles-choices b,.giles-choices small{display:block}.giles-choices small{margin-top:7px;color:var(--color-fg-muted);line-height:1.4}.giles-feedback{margin-top:14px;padding:14px;border:2px solid var(--color-danger);background:var(--color-danger-subtle);color:var(--color-danger-fg);font-weight:700}.giles-feedback.is-correct{border-color:var(--color-success);background:var(--color-success-subtle);color:var(--color-success-fg)}.giles-constructor{background:var(--color-brand-subtle);padding-inline:36px}.giles-constructor-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.giles-constructor-grid>div{padding:24px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.giles-constructor-grid pre{overflow-x:auto;margin:0;font:13px/1.7 var(--font-mono)}.giles-constructor-code{width:min(720px,100%);margin:22px auto 0}.giles-footer strong{color:var(--color-brand-subtle-fg);font-size:var(--text-caption);letter-spacing:.1em}.giles-footer span{flex:1 1;font-weight:700}.giles-practice-tabs{grid-template-columns:repeat(3,1fr)}.bug-progress{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:28px;padding:14px 18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.bug-progress>div{min-width:130px}.bug-progress>div span{font:800 18px var(--font-mono)}.bug-progress>div p{margin:2px 0 0;color:var(--color-fg-muted);font-size:var(--text-caption)}.bug-progress__levels{display:flex;flex:1 1;flex-wrap:wrap;gap:12px;min-width:min(100%,440px)}.bug-progress__level{display:grid;grid-gap:5px;gap:5px;min-width:0!important}.bug-progress__level>small{color:var(--color-fg-muted);font:800 9px var(--font-mono);letter-spacing:.06em}.bug-progress__level>div{display:flex;gap:5px;min-width:0}.bug-progress button{display:grid;place-items:center;width:38px;height:38px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-fg);font:700 12px var(--font-mono);cursor:pointer}.bug-progress button.is-answered{background:var(--color-success-subtle);color:var(--color-success-fg)}.bug-progress button[aria-current=true]{outline:3px solid var(--color-brand);outline-offset:2px}.giles-bug-card .bug-code{max-height:560px}.giles-bug-card .bug-options button{min-height:66px;line-height:1.45}.giles-bug-card>header>span small{display:block;margin-top:8px;color:var(--color-fg-muted);font-size:var(--text-caption);line-height:1.4;letter-spacing:.06em}.bug-options button:disabled{cursor:default;opacity:1}.bug-answer-explanation{margin-top:16px;padding:18px;border:var(--border-w) solid var(--color-border);background:var(--color-info-subtle);color:var(--color-info-fg)}.bug-answer-explanation strong{display:block;margin-bottom:6px}.bug-answer-explanation p{margin:0;line-height:1.6}.bug-next-action{margin-top:12px}.bug-code-panel{min-width:0}.giles-bug-file-tabs{margin-top:0}.giles-bug-file-tabs button{min-width:0;width:50%}.bug-code-panel .bug-code{width:100%;border-top-width:var(--border-w-hairline)}.bug-file-hint{margin:10px 0 0;color:var(--color-fg-muted);font-size:var(--text-caption)}.giles-editor-brief{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin-bottom:18px}.giles-editor-brief div{padding:14px;border-left:4px solid var(--color-brand);background:var(--color-brand-subtle)}.giles-editor-brief b,.giles-editor-brief span{display:block}.giles-editor-brief b{margin-bottom:5px;font:700 12px var(--font-mono)}.giles-editor-brief span{color:var(--color-fg-muted);font-size:var(--text-caption);line-height:1.5}.giles-guide-tabs{grid-template-columns:repeat(3,1fr)}.giles-guide-tabs button:nth-child(3){border-right:0}.giles-guide-tabs button:nth-child(-n+3){border-bottom:var(--border-w-hairline) solid var(--color-border)}.giles-encapsulation-card .mini-window__body small{display:block;margin-bottom:8px;color:var(--color-fg-muted);font:800 10px var(--font-body);letter-spacing:.12em}.giles-encapsulation-card .mini-window__body pre{border:2px solid transparent;color:var(--n-100)}.giles-encapsulation-card .mini-window__body pre.is-highlighted{border-color:var(--color-brand);color:var(--brand-300)}.giles-encapsulation-comparison{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:44px;gap:44px;align-items:center;padding:40px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md)}.giles-encapsulation-comparison h3{margin:0 0 14px;font-size:26px}.giles-encapsulation-comparison p{color:var(--color-fg-muted);line-height:1.65}.giles-encapsulation-comparison .btn{margin-top:12px}.giles-encapsulation-code-pair{display:grid;grid-gap:16px;gap:16px;min-width:0}.giles-encapsulation-code-pair .code-window{min-width:0}.giles-encapsulation-call{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 20px;border:var(--border-w) solid var(--color-brand);background:var(--color-brand-subtle)}.giles-encapsulation-call span{color:var(--color-brand-subtle-fg);font-size:var(--text-caption);font-weight:900;letter-spacing:.08em}.giles-encapsulation-call code{font-weight:800}.giles-encapsulation-concepts .concept-card>span{background:var(--color-brand);color:var(--color-fg-on-brand);font:800 12px var(--font-mono)}.giles-encapsulation-principle{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:18px;gap:18px;margin-top:30px;padding:20px 24px;border-left:5px solid var(--color-accent);background:var(--color-accent-subtle)}.giles-encapsulation-principle strong{color:var(--color-accent-fg);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase}.giles-encapsulation-principle span{color:var(--color-fg-muted);line-height:1.5}.giles-encapsulation-principle code{padding:8px 10px;background:var(--color-surface);font-size:var(--text-caption)}.giles-encapsulation-example{border-color:var(--color-brand)}.giles-encapsulation-setters{background:var(--color-surface-sunken)}.giles-encapsulation-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.giles-encapsulation-choice-grid article{min-width:0;padding:24px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.giles-encapsulation-choice-grid article.is-preferred{border-color:var(--color-brand);box-shadow:var(--shadow-md)}.giles-encapsulation-choice-grid span{color:var(--color-brand-subtle-fg);font:800 10px var(--font-mono);letter-spacing:.1em}.giles-encapsulation-choice-grid h3{margin:18px 0 9px;font-size:21px}.giles-encapsulation-choice-grid p{min-height:70px;margin:0 0 18px;color:var(--color-fg-muted);font-size:13px;line-height:1.55}.giles-encapsulation-choice-grid code{display:block;overflow-x:auto;padding:10px;background:var(--n-950);color:var(--brand-300);font-size:var(--text-caption);white-space:nowrap}.giles-timeline{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:12px;gap:12px}.giles-timeline article{min-width:0;padding:20px;border-top:4px solid var(--color-brand);background:var(--color-surface);box-shadow:var(--shadow-sm)}.giles-timeline article>span{display:block;color:var(--color-brand-subtle-fg);font:800 12px var(--font-mono)}.giles-timeline article>b{display:block;margin-top:18px;color:var(--color-fg-muted);font:800 10px var(--font-mono)}.giles-timeline h3{margin:8px 0;font-size:16px}.giles-timeline p{margin:0;color:var(--color-fg-muted);font-size:12px;line-height:1.5}.giles-encapsulation-footer{border-top:var(--border-w-hairline) solid var(--color-border)}.giles-encapsulation-footer a{white-space:nowrap}.giles-encapsulation-practice-tabs{grid-template-columns:repeat(2,1fr)}.giles-encapsulation-bug-card .bug-options button{min-height:70px}.giles-encapsulation-file-tabs button{flex:1 1 50%;min-width:160px}.giles-encapsulation-editor-brief{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:18px}.giles-encapsulation-editor-brief div{padding:15px;border-left:4px solid var(--color-brand);background:var(--color-brand-subtle)}.giles-encapsulation-editor-brief b,.giles-encapsulation-editor-brief span{display:block}.giles-encapsulation-editor-brief b{margin-bottom:5px;font:700 12px var(--font-mono)}.giles-encapsulation-editor-brief span{color:var(--color-fg-muted);font-size:var(--text-caption);line-height:1.5}@media(max-width:900px){.giles-activity,.giles-comparison{grid-template-columns:1fr}.giles-anatomy>div,.giles-concepts{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.giles-editor-brief,.giles-encapsulation-editor-brief{grid-template-columns:1fr}.giles-guide-tabs{grid-template-columns:repeat(2,1fr)}.giles-guide-tabs button:nth-child(3){border-right:var(--border-w-hairline) solid var(--color-border)}.giles-encapsulation-choice-grid{grid-template-columns:1fr 1fr}.giles-timeline{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.giles-activity,.giles-comparison,.giles-encapsulation-comparison{padding:20px}.giles-anatomy>div,.giles-choices,.giles-concepts,.giles-constructor-grid,.giles-encapsulation-choice-grid,.giles-guide-tabs,.giles-practice-tabs,.giles-timeline{grid-template-columns:1fr}.giles-constructor{padding-inline:18px}.giles-anatomy{padding:16px}.giles-example{padding:20px}.giles-encapsulation-principle{grid-template-columns:1fr;gap:10px;padding:16px}.giles-encapsulation-call{align-items:flex-start;flex-direction:column}.bug-progress{overflow-x:auto}.bug-progress>div{min-width:105px}.giles-encapsulation-footer{align-items:flex-start;flex-direction:column}.giles-encapsulation-footer a{margin-left:0}}.encap-progress{position:-webkit-sticky;position:sticky;top:64px;z-index:15;display:flex;gap:18px;align-items:center;width:min(var(--width-lesson),calc(100% - 40px));margin:0 auto;padding:14px 18px;box-sizing:border-box;border:var(--border-w) solid var(--color-border);background:color-mix(in oklch,var(--color-surface) 94%,transparent);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.encap-progress__summary{display:grid;flex:none;min-width:106px}.encap-progress__summary strong{font:800 20px var(--font-mono)}.encap-progress__summary span{color:var(--color-fg-muted);font-size:var(--text-caption)}.encap-progress__items{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:5px;gap:5px;width:100%}.encap-progress__items a{display:grid;grid-gap:4px;gap:4px;min-width:0;padding:4px;color:var(--color-fg-muted);text-decoration:none}.encap-progress__items a.is-done,.encap-progress__items a:hover{color:var(--color-fg)}.encap-progress__items a span{display:grid;place-items:center;height:7px;background:var(--color-border);color:transparent;font-size:0}.encap-progress__items a.is-done span{background:var(--color-brand)}.encap-progress__items small{overflow:hidden;font-size:var(--text-caption);line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.encap-block{scroll-margin-top:120px}.encap-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;margin:28px 0}.encap-code-window{min-width:0}.encap-code-window>pre{overflow-x:auto;padding:14px 0}.encap-code-window>pre>code{display:block;min-width:max-content}.encap-code-line{display:grid;grid-template-columns:34px minmax(0,1fr);padding:1px 18px;min-height:1.75em}.encap-code-line>i{color:var(--n-500);font-style:normal;-webkit-user-select:none;-moz-user-select:none;user-select:none}.encap-code-line>b{color:var(--n-100);font:inherit;font-weight:400;white-space:pre}.encap-code-line.is-highlighted{background:color-mix(in oklch,var(--brand-500) 20%,transparent);box-shadow:inset 3px 0 var(--brand-300)}.encap-code-line.is-highlighted>i{color:var(--brand-300)}.encap-definition-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin:26px 0}.encap-definition-grid div{padding:16px;border-left:4px solid var(--color-brand);background:var(--color-brand-subtle)}.encap-definition-grid span,.encap-definition-grid strong{display:block}.encap-definition-grid strong{font:800 13px var(--font-mono)}.encap-definition-grid span{margin-top:5px;color:var(--color-fg-muted);font-size:12px}.encap-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.encap-state-card{min-width:0;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.encap-state-card.is-emphasis{border-color:var(--color-brand);box-shadow:var(--shadow-md)}.encap-state-card header{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:var(--border-w-hairline) solid var(--color-border)}.encap-state-card header span{color:var(--color-brand-subtle-fg);font-size:var(--text-caption);font-weight:900;letter-spacing:.1em}.encap-state-card header strong{font:800 13px var(--font-mono)}.encap-state-card dl{margin:0;padding:12px 16px}.encap-state-card dl>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0}.encap-state-card dt{color:var(--color-fg-muted);font:12px var(--font-mono)}.encap-state-card dd{margin:0;font:800 13px var(--font-mono)}.encap-state-card dd small{color:var(--color-brand-subtle-fg);font-size:var(--text-caption)}.encap-activity{display:grid;grid-gap:16px;gap:16px;margin-top:30px;padding:28px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md)}.encap-activity--split{grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);align-items:start}.encap-activity h3{margin:0;font-size:22px}.encap-activity p{color:var(--color-fg-muted);line-height:1.6}.encap-activity>.btn{justify-self:start}.encap-execution-card{display:grid;grid-gap:10px;gap:10px;padding:16px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken)}.encap-execution-card>span,.encap-step-panel>span{color:var(--color-brand-subtle-fg);font-size:var(--text-caption);font-weight:900;letter-spacing:.1em}.encap-execution-card>small{color:var(--color-fg-muted)}.encap-transition{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px;border-left:5px solid var(--color-success);background:var(--color-success-subtle);font:800 13px var(--font-mono);animation:encap-state-change var(--duration-base) var(--ease-out)}.encap-transition.is-rejected{border-color:var(--color-warning);background:var(--color-warning-subtle)}.encap-transition small{flex-basis:100%;color:var(--color-fg-muted);font:11px/1.4 var(--font-body)}.encap-transition b{color:var(--color-brand-subtle-fg)}.encap-before-after{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-gap:18px;gap:18px;align-items:center;margin:30px 0}.encap-before-after__arrow{display:grid;grid-gap:9px;gap:9px;color:var(--color-brand-subtle-fg);font-size:28px;text-align:center}.encap-before-after__arrow strong{color:var(--color-fg);font:11px var(--font-mono);white-space:nowrap}.encap-warning{margin:0;padding:12px 14px;border-left:4px solid var(--color-danger);background:var(--color-danger-subtle);color:var(--color-danger-fg)!important;font-size:13px}.encap-access-diagram{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:16px;gap:16px;align-items:center;margin:30px 0}.encap-access-diagram div{display:grid;grid-gap:8px;gap:8px;padding:18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-access-diagram strong{font-size:var(--text-caption);letter-spacing:.08em}.encap-access-diagram code{overflow-x:auto;padding:10px;background:var(--n-950);color:var(--brand-300);font-size:12px;white-space:nowrap}.encap-access-diagram>b{color:var(--color-danger);font-size:28px}.encap-compiler-error{display:grid;grid-gap:13px;gap:13px;padding:18px;border:3px solid var(--color-danger);background:var(--color-danger-subtle);color:var(--color-danger-fg)}.encap-compiler-error>code{overflow-x:auto;padding:10px;background:var(--n-950);color:var(--n-100);font:12px var(--font-mono)}.encap-compiler-error p{margin:0}.encap-compiler-error .code-window{border-color:var(--color-danger)}.encap-getter-flow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:28px 0;padding:18px;border:var(--border-w) solid var(--color-border);background:var(--color-brand-subtle)}.encap-getter-flow b,.encap-getter-flow span,.encap-getter-flow strong{padding:12px 14px;background:var(--color-surface);font:800 12px var(--font-mono)}.encap-getter-flow b{background:var(--color-brand);color:var(--color-fg-on-brand)}.encap-getter-flow strong{margin-left:auto;background:var(--n-950);color:var(--brand-300)}.encap-output{display:grid;grid-gap:5px;gap:5px;padding:14px 16px;border-left:4px solid var(--color-success);background:var(--color-success-subtle)}.encap-output small{font-size:var(--text-caption);font-weight:900;letter-spacing:.1em}.encap-output code{font:800 20px var(--font-mono)}.encap-muted,.encap-output span{color:var(--color-fg-muted);font-size:12px}.encap-example-tabs{margin-top:36px}.encap-callout-code{display:inline-block;padding:12px 15px;background:var(--n-950);color:var(--brand-300);font:800 13px var(--font-mono)}.encap-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:15px;gap:15px;margin:28px 0}.encap-compare-grid article{padding:22px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-compare-grid article.is-preferred{border-color:var(--color-brand);box-shadow:var(--shadow-md)}.encap-compare-grid span{color:var(--color-brand-subtle-fg);font:800 10px var(--font-mono);letter-spacing:.1em}.encap-compare-grid h3{margin:12px 0}.encap-compare-grid code{display:block;padding:10px;background:var(--n-950);color:var(--brand-300);font-size:12px}.encap-compare-grid p{color:var(--color-fg-muted);line-height:1.55}.encap-step-panel{display:grid;grid-gap:9px;gap:9px;padding:18px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-step{display:grid;grid-template-columns:28px 1fr;grid-gap:9px;gap:9px;opacity:.34;transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.encap-step.is-visible{opacity:1;transform:translateX(3px)}.encap-step>small{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--color-border);font:800 11px var(--font-mono)}.encap-step>div{display:grid;grid-template-columns:1fr auto;grid-gap:4px 8px;gap:4px 8px;padding:3px 0 9px;border-bottom:var(--border-w-hairline) solid var(--color-border)}.encap-step span,.encap-step strong{grid-column:1}.encap-step strong{font:800 12px var(--font-mono)}.encap-step span{color:var(--color-fg-muted);font-size:var(--text-caption)}.encap-step em{grid-column:2;grid-row:1/span 2;align-self:center;font:800 11px var(--font-mono);font-style:normal}.encap-step em.is-accepted{color:var(--color-success-fg)}.encap-step em.is-rejected{color:var(--color-danger-fg)}.encap-result-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.encap-result-grid span{display:grid;grid-gap:5px;gap:5px;padding:13px;background:var(--color-brand-subtle);color:var(--color-fg-muted);font-size:var(--text-caption)}.encap-result-grid strong{color:var(--color-fg);font:800 18px var(--font-mono)}.encap-classification-list{display:grid;grid-gap:18px;gap:18px}.encap-classification-card{display:grid;grid-gap:15px;gap:15px;padding:24px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-classification-card header{display:grid;grid-gap:6px;gap:6px}.encap-classification-card header span,.encap-decision-list article>span,.encap-mini-repairs__heading span{color:var(--color-brand-subtle-fg);font:800 10px var(--font-mono);letter-spacing:.08em}.encap-classification-card h3,.encap-mini-repairs h3{margin:0;font-size:21px}.encap-classification-card header p{margin:0;color:var(--color-fg-muted);line-height:1.55}.encap-mini-repairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;margin-top:26px}.encap-mini-repairs article{display:grid;grid-gap:14px;gap:14px;min-width:0;padding:22px;border:var(--border-w) solid var(--color-border);background:var(--color-surface-sunken)}.encap-mini-repairs p{color:var(--color-fg-muted);font-size:13px;line-height:1.55}.encap-mini-repairs .code-window+.code-window{margin-top:4px}.encap-completion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.encap-completion-card{display:grid;grid-gap:14px;gap:14px;min-width:0;padding:22px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-completion-card>span{color:var(--color-brand-subtle-fg);font:800 10px var(--font-mono);letter-spacing:.08em}.encap-completion-card h3{margin:0;font-size:20px}.encap-completion-card pre{overflow-x:auto;margin:0;padding:16px;background:var(--n-950);color:var(--n-100);font:12px/1.65 var(--font-mono)}.encap-completion-card mark{background:var(--color-brand);color:var(--color-fg-on-brand)}.encap-repair-project{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;margin-top:24px;padding:24px;border:var(--border-w) solid var(--color-brand);background:var(--color-brand-subtle)}.encap-repair-project>div{display:grid;align-content:start;grid-gap:13px;gap:13px}.encap-repair-project h3{margin:0}.encap-repair-project p{margin:0;color:var(--color-fg-muted);line-height:1.55}.encap-repair-project ul{display:grid;grid-gap:7px;gap:7px;margin:0;padding-left:19px;color:var(--color-fg-muted);font-size:12px;line-height:1.45}.encap-domain-card{display:grid;grid-template-columns:1fr 1fr;grid-gap:15px;gap:15px;margin:28px 0}.encap-domain-card>div{display:grid;grid-gap:8px;gap:8px;padding:20px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-domain-card strong{margin-bottom:4px;color:var(--color-brand-subtle-fg);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase}.encap-domain-card span{padding:8px 10px;background:var(--color-surface-sunken);font:12px var(--font-mono)}.encap-domain-card--dark>div{background:var(--n-950);border-color:var(--n-700)}.encap-domain-card--dark span{background:var(--n-900);color:var(--n-100)}.encap-decision-list{display:grid;grid-gap:14px;gap:14px}.encap-decision-list article{display:grid;grid-gap:12px;gap:12px;padding:20px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-decision-list h3{margin:0;font-size:18px}.encap-solution{display:grid;grid-gap:12px;gap:12px;margin-top:16px;padding:20px;border:var(--border-w) solid var(--color-success);background:var(--color-success-subtle)}.encap-solution strong{color:var(--color-success-fg);font-size:var(--text-caption);letter-spacing:.08em}.encap-solution code{overflow-x:auto;white-space:pre;color:var(--color-fg);font:12px/1.6 var(--font-mono)}.encap-solution p{margin:0;color:var(--color-fg-muted);font-size:12px;line-height:1.5}.encap-audit{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:22px;gap:22px;margin-top:28px;padding:24px;border:var(--border-w) solid var(--color-border);background:var(--color-surface)}.encap-audit h3{margin:0 0 15px;font-size:21px}.encap-audit>div:last-child{display:grid;align-content:start;grid-gap:10px;gap:10px}.encap-check{display:flex;gap:10px;align-items:flex-start;padding:12px;border:var(--border-w-hairline) solid var(--color-border);cursor:pointer}.encap-check input{margin-top:3px;accent-color:var(--color-brand)}.encap-check span{display:grid;grid-gap:4px;gap:4px}.encap-check strong{font-size:12px}.encap-check small{color:var(--color-fg-muted);font-size:var(--text-caption);line-height:1.4}.encap-map{display:grid;grid-gap:20px;gap:20px;margin:28px 0}.encap-map__nodes{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.encap-map__nodes button{display:grid;grid-gap:7px;gap:7px;padding:17px;border:var(--border-w) solid var(--color-border);background:var(--color-surface);color:var(--color-fg);text-align:left;cursor:pointer}.encap-map__nodes button.is-active,.encap-map__nodes button:hover{border-color:var(--color-brand);background:var(--color-brand-subtle);box-shadow:var(--shadow-sm)}.encap-map__nodes button span{color:var(--color-brand-subtle-fg);font:800 11px var(--font-mono)}.encap-map__nodes button strong{font-size:12px}.encap-map__nodes button small{color:var(--color-fg-muted);font-size:var(--text-caption);line-height:1.35}.encap-map__answer{padding:18px 20px;border-left:5px solid var(--color-brand);background:var(--color-brand-subtle)}.encap-map__answer strong{font:800 11px var(--font-mono)}.encap-map__answer p{margin:7px 0 0;color:var(--color-fg-muted);font-size:13px}.encap-final-question{display:grid;grid-gap:14px;gap:14px;margin-top:30px;padding:24px;border:var(--border-w) solid var(--color-brand);background:var(--color-surface);box-shadow:var(--shadow-md)}.encap-final-question>span{color:var(--color-brand-subtle-fg);font:800 10px var(--font-mono);letter-spacing:.1em}.encap-final-question h3{margin:0;font-size:24px}.encap-bridge{background:var(--color-surface-sunken)}.encap-bridge .code-window{max-width:720px}.encap-bridge .encap-muted{margin-top:14px}@keyframes encap-state-change{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.encap-progress{align-items:flex-start;flex-direction:column;gap:10px}.encap-progress__items{grid-template-columns:repeat(6,1fr)}.encap-activity--split,.encap-audit,.encap-repair-project{grid-template-columns:minmax(0,1fr)}.encap-repair-project .code-window{grid-row:1}.encap-map__nodes{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.encap-code-grid,.encap-compare-grid,.encap-completion-grid,.encap-definition-grid,.encap-domain-card,.encap-mini-repairs,.encap-state-grid{grid-template-columns:minmax(0,1fr)}.encap-before-after{grid-template-columns:1fr}.encap-before-after__arrow{transform:none}.encap-getter-flow{align-items:stretch;flex-direction:column}.encap-getter-flow strong{margin-left:0}.encap-map__nodes{grid-template-columns:1fr}.encap-progress{position:static;width:calc(100% - 28px);margin-top:0}.encap-progress__items{grid-template-columns:repeat(4,1fr)}}@media(max-width:520px){.encap-activity,.encap-audit,.encap-classification-card,.encap-completion-card,.encap-final-question,.encap-mini-repairs article,.encap-repair-project{padding:18px}.encap-code-line{grid-template-columns:28px minmax(0,1fr);padding-inline:10px}.encap-transition{align-items:flex-start;flex-direction:column;gap:5px}.encap-transition b{display:none}.encap-access-diagram,.encap-result-grid{grid-template-columns:1fr}.encap-access-diagram>b{justify-self:center;transform:rotate(90deg)}}@media (prefers-reduced-motion:reduce){.encap-transition{animation:none}.encap-step{transition:none}}