*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--space-24)}body{margin:0;background:var(--color-canvas);color:var(--color-text);font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-line);-webkit-font-smoothing:antialiased}::selection{background:var(--color-selection);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}input,textarea{caret-color:var(--color-primary)}[hidden]{display:none!important}a{color:var(--color-primary);text-decoration-thickness:1px;text-underline-offset:5px}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}svg{flex-shrink:0}.icon{width:20px;height:20px;vertical-align:middle}img{max-width:100%;height:auto}p,h1,h2,h3{margin:0}h1,h2,h3{text-wrap:balance}h1{font-size:var(--type-page-title-size);line-height:var(--type-page-title-line);font-weight:var(--type-page-title-weight);letter-spacing:var(--type-page-title-tracking)}h2{font-size:var(--type-section-size);line-height:var(--type-section-line);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-tracking)}h3{font-size:var(--type-item-title-size);line-height:var(--type-item-title-line);font-weight:var(--type-item-title-weight);letter-spacing:var(--type-item-title-tracking)}.container{width:min(var(--layout-container),calc(100% - var(--layout-gutter)*2));margin-inline:auto}.reading{max-width:var(--layout-reading)}.lead{font-size:var(--type-lead-size);line-height:var(--type-lead-line);color:var(--color-secondary)}.help{font-size:var(--type-help-size);line-height:var(--type-help-line);color:var(--color-secondary)}.meta{font-size:var(--type-meta-size);line-height:var(--type-meta-line);color:var(--color-secondary)}.skip-link{position:absolute;left:var(--space-16);top:var(--space-16);transform:translateY(-200%);background:var(--color-surface);padding:var(--space-12);z-index:5}.skip-link:focus{transform:translateY(0)}.brand{display:inline-flex;align-items:center;gap:var(--space-12);min-height:44px;color:var(--color-text);font-size:var(--type-wordmark-size);line-height:var(--type-wordmark-line);font-weight:var(--type-wordmark-weight);letter-spacing:var(--type-wordmark-tracking);text-decoration:none;white-space:nowrap}.brand:hover{text-decoration:none}.brand-mark{width:28px;height:28px;color:var(--color-primary)}.site-header{border-bottom:1px solid var(--color-divider)}.header-inner{height:88px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-32)}.desktop-nav{display:flex;gap:var(--space-32);margin-left:auto;margin-right:var(--space-16)}.desktop-nav a{font-size:var(--type-label-size);font-weight:500;line-height:24px;min-height:44px;display:inline-flex;align-items:center;color:var(--color-text);text-decoration:none}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--color-primary);text-decoration:underline}.button{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-12);min-height:48px;padding:var(--space-12) var(--space-20);border-radius:var(--radius-control);border:1px solid transparent;background:var(--color-primary);color:var(--color-on-primary);font-size:var(--type-action-size);line-height:var(--type-action-line);font-weight:var(--type-action-weight);text-decoration:none;transition:background var(--motion-duration) var(--motion-ease)}.button:hover{background:var(--color-primary-hover);text-decoration:none}.button-outline{background:transparent;color:var(--color-primary);border-color:var(--color-border)}.button-outline:hover{background:var(--color-selection)}.text-link{display:inline-flex;align-items:center;gap:var(--space-12);min-height:44px;font-size:16px;line-height:24px;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--color-divider);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text)}.mobile-nav{padding:var(--space-8) var(--space-20) var(--space-20)}.mobile-nav a{display:flex;justify-content:space-between;align-items:center;min-height:52px;border-bottom:1px solid var(--color-divider);font-size:16px;font-weight:600;text-decoration:none}.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:start;gap:var(--space-64);padding-block:var(--space-64) var(--space-32)}.hero-copy{padding-top:var(--space-8)}.hero h1{font-size:var(--type-display-size);line-height:var(--type-display-line);font-weight:var(--type-display-weight);letter-spacing:var(--type-display-tracking)}.hero-copy .lead{margin-top:var(--space-24);max-width:48ch}.hero-actions{display:flex;align-items:center;gap:var(--space-24);flex-wrap:wrap;margin-top:var(--space-32)}.hero-task{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-panel);padding:var(--space-32)}.hero-task-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-16);margin-bottom:var(--space-20)}.hero-task-heading h2{font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.02em}.hero-task-heading .meta{white-space:nowrap}.hero-task-prompt{font-size:var(--type-prompt-size);line-height:var(--type-prompt-line);font-weight:var(--type-prompt-weight);letter-spacing:var(--type-prompt-tracking)}.mats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12);margin-block:var(--space-24)}.mat{display:flex;flex-direction:column;justify-content:space-between;align-items:center;min-height:96px;padding:var(--space-12) var(--space-4);background:var(--color-subtle);border-radius:var(--radius-control);transition:background var(--motion-duration) var(--motion-ease)}.mat-number{font-size:14px;line-height:22px;color:var(--color-secondary)}.mat-empty{font-size:24px;line-height:32px;color:var(--color-secondary)}.mat-answer{display:none;font-size:16px;font-weight:600;line-height:24px}.hero-task:has(.solution[open]) .mat{background:var(--color-selection)}.hero-task:has(.solution[open]) .mat-answer{display:block}.hero-task:has(.solution[open]) .mat-empty{display:none}.disclosure{border-top:1px solid var(--color-divider);font-size:16px;line-height:26px}.disclosure:last-child{border-bottom:1px solid var(--color-divider)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);min-height:52px;padding:var(--space-12) var(--space-4);font-size:16px;line-height:24px;font-weight:600}summary::-webkit-details-marker{display:none}summary::marker{content:''}summary .icon{transition:transform var(--motion-duration) var(--motion-ease)}details[open]>summary .icon{transform:rotate(180deg)}summary:hover{color:var(--color-primary)}.disclosure-body{padding:var(--space-4) var(--space-4) var(--space-20)}.disclosure.hint[open] .disclosure-body{background:var(--color-notice-surface);color:var(--color-notice);border-radius:var(--radius-control);padding:var(--space-16);margin-bottom:var(--space-16)}.disclosure .answer{margin-bottom:var(--space-16)}.steps{list-style:none;counter-reset:steps;padding:0;margin:0;display:grid;gap:var(--space-16)}.steps li{counter-increment:steps;display:grid;grid-template-columns:32px 1fr;gap:var(--space-12)}.steps li::before{content:counter(steps);display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-selection);color:var(--color-primary);font-weight:600;border-radius:var(--radius-round)}.section{margin-block:var(--space-80)}.section-first{margin-top:var(--space-48)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-24);margin-bottom:var(--space-32)}.grade-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-16);margin-top:var(--space-24)}.grade-link{min-height:108px;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-divider);display:flex;align-items:center;gap:var(--space-12);padding:var(--space-16) var(--space-12);color:var(--color-text);text-decoration:none;transition:background var(--motion-duration) var(--motion-ease)}.grade-link:hover{background:var(--color-subtle);text-decoration:none}.grade-link[aria-current]{background:var(--color-selection);border-top-color:var(--color-primary)}.grade-link[aria-current] .grade-number{color:var(--color-primary)}.grade-number{font-size:var(--type-grade-size);line-height:var(--type-grade-line);font-weight:var(--type-grade-weight);letter-spacing:var(--type-grade-tracking)}.grade-label{font-size:16px;line-height:24px}.grade-link .icon{margin-left:auto;color:var(--color-primary)}.grade-footnote{margin-top:var(--space-16);font-size:16px;line-height:26px;color:var(--color-secondary)}.topic-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-24)}.topic-panel{padding:var(--space-32);background:var(--color-selection);border-radius:var(--radius-panel);color:var(--color-text);text-decoration:none}.topic-panel:hover{text-decoration:none}.topic-panel:hover h3{text-decoration:underline;text-underline-offset:5px}.topic-panel h3{display:flex;justify-content:space-between;gap:var(--space-16);align-items:center;margin-top:var(--space-32)}.topic-panel p{font-size:18px;line-height:30px;margin-block:var(--space-12) var(--space-24)}.topic-warm{background:var(--color-notice-surface)}.pattern-example{display:flex;align-items:center;gap:var(--space-24);font-size:40px;font-weight:500;line-height:48px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.pattern-unknown{outline:1px dashed var(--color-primary);outline-offset:8px;color:var(--color-primary)}.rebus-example{font-size:40px;font-weight:500;line-height:48px;letter-spacing:-.03em;color:var(--color-notice)}.parent-section{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-80)}.parent-section .lead{margin-top:var(--space-20)}.parent-section .text-link{margin-top:var(--space-24)}.material-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-24);padding-block:var(--space-24);border-top:1px solid var(--color-divider);color:var(--color-text);text-decoration:none}.material-row:last-child{border-bottom:1px solid var(--color-divider)}.material-row:hover{text-decoration:none}.material-row:hover .material-title{text-decoration:underline;text-underline-offset:5px}.material-row>.icon{color:var(--color-primary)}.material-title{display:block;font-size:var(--type-item-title-size);line-height:var(--type-item-title-line);font-weight:600;letter-spacing:-.02em;text-wrap:balance}.material-description{display:block;font-size:16px;line-height:26px;color:var(--color-secondary);margin-top:var(--space-8)}.app-section{background:var(--color-inverse);color:var(--color-on-primary);padding-block:var(--space-64)}.app-section-inner{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-80);align-items:start}.app-section h2{font-size:48px;line-height:56px;letter-spacing:-.03em}.app-section .lead{color:var(--color-inverse-secondary)}.button-light{background:var(--color-surface);color:var(--color-primary);margin-top:var(--space-24)}.button-light:hover{background:var(--color-selection)}.site-footer{padding-block:var(--space-48) var(--space-24);margin-top:var(--space-32)}.footer-main{display:flex;justify-content:space-between;gap:var(--space-48);padding-bottom:var(--space-40)}.footer-main .help{margin-top:var(--space-16)}.footer-main nav{display:flex;gap:var(--space-32);flex-wrap:wrap;align-items:start}.footer-main nav a{min-height:44px;display:flex;align-items:center;font-size:16px;font-weight:500;color:var(--color-text);text-decoration:none}.footer-main nav a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid var(--color-divider);padding-top:var(--space-20);display:flex;justify-content:space-between;gap:var(--space-16);font-size:14px;line-height:22px;color:var(--color-secondary)}.breadcrumbs{margin-top:var(--space-32);font-size:16px;line-height:24px}.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-8) var(--space-12);padding:0;margin:0}.breadcrumbs li{display:flex;align-items:baseline;gap:var(--space-12);min-width:0;overflow-wrap:anywhere}.breadcrumbs .icon{width:16px;height:16px;align-self:center;color:var(--color-secondary)}.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--color-secondary);text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs [aria-current]{color:var(--color-secondary);padding-block:var(--space-8)}.page-intro{max-width:960px;margin-top:var(--space-32);margin-bottom:var(--space-48)}.page-intro .lead{max-width:72ch;margin-top:var(--space-24)}.page-intro.article-intro{max-width:900px}.article-kind{margin-top:var(--space-20);font-size:14px;line-height:22px;color:var(--color-secondary)}.reading-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(200px,248px);gap:var(--space-64);align-items:start;margin-top:var(--space-48);margin-bottom:var(--space-80)}.toc{position:sticky;top:var(--space-24);font-size:16px;line-height:26px}.toc details{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-divider)}.toc summary{cursor:pointer;padding-inline:0}.toc summary .icon{display:block}.toc nav{display:grid;padding-bottom:var(--space-16)}.toc nav a{display:block;min-height:44px;padding-block:var(--space-8);text-decoration:none;color:var(--color-secondary);overflow-wrap:anywhere}.toc nav a:hover{color:var(--color-primary);background:var(--color-surface);text-decoration:none}.task{padding-block:var(--space-40);border-top:1px solid var(--color-divider);scroll-margin-top:var(--space-24)}.task-heading{display:flex;gap:var(--space-16);align-items:baseline}.task-heading h2{font-size:24px;line-height:32px;letter-spacing:-.02em;font-weight:600}.task-number{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-round);background:var(--color-selection);color:var(--color-primary);font-size:16px;line-height:24px;font-weight:600;flex-shrink:0}.task-prompt{font-size:var(--type-prompt-size);line-height:var(--type-prompt-line);font-weight:var(--type-prompt-weight);letter-spacing:var(--type-prompt-tracking);margin-top:var(--space-24)}.task-prerequisites{font-size:16px;line-height:26px;color:var(--color-secondary);margin-block:var(--space-20) var(--space-24)}.task-difficulty{margin-top:var(--space-16);font-size:16px;color:var(--color-notice)}.task .disclosure{font-size:18px;line-height:30px}.task .disclosure summary{padding-block:var(--space-16)}.parent-note{padding:var(--space-20);background:var(--color-notice-surface);color:var(--color-notice);margin-top:var(--space-24);border-radius:var(--radius-control);font-size:16px;line-height:26px}.parent-note>strong{display:block;font-weight:600}.parent-note p{margin-top:var(--space-8)}.task-image{display:block;max-width:560px;width:100%;margin-block:var(--space-24)}.prose{font-size:18px;line-height:30px;overflow-wrap:anywhere}.prose p{margin-bottom:var(--space-20)}.prose h1{margin-bottom:var(--space-24)}.prose h2{font-size:var(--type-prose-section-size);line-height:var(--type-prose-section-line);font-weight:650;letter-spacing:-.025em;margin-top:var(--space-48);margin-bottom:var(--space-20);scroll-margin-top:var(--space-24)}.prose h3{font-size:var(--type-prose-subsection-size);line-height:var(--type-prose-subsection-line);margin-top:var(--space-32);margin-bottom:var(--space-16)}.prose ul,.prose ol{padding-left:var(--space-24);margin-block:var(--space-20)}.prose li+li{margin-top:var(--space-12)}.prose strong{font-weight:600}.prose .table-wrap{margin-block:var(--space-24)}.prose table{width:100%;border-collapse:collapse;font-size:16px;line-height:26px;table-layout:fixed}.prose th,.prose td{padding:var(--space-16);border-bottom:1px solid var(--color-divider);text-align:left;vertical-align:top;overflow-wrap:anywhere}.prose th{background:var(--color-subtle);font-weight:600}.prose caption{text-align:left;margin-bottom:var(--space-16);font-weight:600}.prose img{display:block;margin-block:var(--space-24)}.collection-guide{padding-bottom:var(--space-24)}.collection-guide h2:first-child{margin-top:0}.next-material{padding-top:var(--space-16);border-top:1px solid var(--color-divider)}.next-material h2{margin-top:var(--space-24)}.standalone{margin-top:var(--space-32);margin-bottom:var(--space-80)}.catalog-list{margin-top:var(--space-40)}.catalog-row{display:flex;align-items:center;gap:var(--space-32);padding-block:var(--space-24);border-bottom:1px solid var(--color-divider);text-decoration:none;color:var(--color-text)}.catalog-row:hover{text-decoration:none}.catalog-row:hover .material-title{text-decoration:underline;text-underline-offset:5px}.catalog-grade{display:flex;align-items:baseline;gap:var(--space-8);min-width:120px;font-size:40px;line-height:48px;font-weight:600;letter-spacing:-.03em}.catalog-grade>span{font-size:16px;letter-spacing:0;font-weight:400}.catalog-description{flex:1}.catalog-count{display:flex;align-items:center;gap:var(--space-16);font-size:16px;line-height:24px;color:var(--color-secondary);white-space:nowrap}.error-content{padding-block:var(--space-80);max-width:720px}.error-content p{margin-block:var(--space-24)}.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-16);margin-top:var(--space-24)}.swatches span{display:block;height:64px;border:1px solid var(--color-divider);border-radius:var(--radius-control)}.swatches strong,.swatches small{display:block;font-size:14px;line-height:22px;overflow-wrap:anywhere}.role-samples{display:grid;gap:var(--space-24);margin-top:var(--space-40)}.role-samples>p{overflow-wrap:anywhere}.role-samples>p>span{font-size:14px;line-height:22px;font-weight:400;letter-spacing:0;color:var(--color-secondary)}.sample-actions{display:flex;gap:var(--space-16);flex-wrap:wrap;margin-block:var(--space-32)}.admin-layout{display:grid;grid-template-columns:200px 1fr;gap:var(--space-40);margin-top:var(--space-32)}.admin-nav{display:flex;flex-direction:column}.admin-nav a{font-size:16px;line-height:24px;min-height:48px;padding:var(--space-12);text-decoration:none;border-radius:var(--radius-control)}.admin-nav [aria-current]{background:var(--color-selection)}.sample-form{max-width:720px;display:grid;gap:var(--space-24)}.field{display:grid;gap:var(--space-8);font-size:16px;line-height:24px}.field label{font-weight:600}.field input,.field textarea,.field select{min-width:0;width:100%;min-height:48px;padding:var(--space-12) var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text)}.field textarea{min-height:144px;resize:vertical}.field [readonly]{background:var(--color-subtle)}.field [aria-invalid=true]{border-color:var(--color-error)}.check-field{display:flex;gap:var(--space-12);align-items:center;min-height:44px;font-size:16px;line-height:24px}.check-field input{width:20px;height:20px;accent-color:var(--color-primary)}.status{width:fit-content;background:var(--color-subtle);color:var(--color-secondary);font-size:14px;line-height:22px;padding:var(--space-4) var(--space-12);border-radius:var(--radius-round)}.form-feedback{font-size:16px;line-height:26px}.form-feedback:empty{display:none}.state-list{display:grid;gap:var(--space-16);margin-block:var(--space-24)}.notice,.error-note,.success-note{font-size:16px;line-height:26px;padding:var(--space-20);border-radius:var(--radius-control)}.notice{color:var(--color-notice);background:var(--color-notice-surface)}.error-note{color:var(--color-error);background:var(--color-error-surface)}.success-note{color:var(--color-success);background:var(--color-success-surface)}.sample-form .button{justify-self:start}.role-display{font-size:var(--type-display-size);line-height:var(--type-display-line);font-weight:650;letter-spacing:-.035em}.role-page-title{font-size:var(--type-page-title-size);line-height:var(--type-page-title-line);font-weight:650;letter-spacing:-.03em}.role-section{font-size:var(--type-section-size);line-height:var(--type-section-line);font-weight:650;letter-spacing:-.025em}.role-item-title{font-size:var(--type-item-title-size);line-height:var(--type-item-title-line);font-weight:600;letter-spacing:-.02em}.role-lead{font-size:var(--type-lead-size);line-height:var(--type-lead-line);color:var(--color-secondary)}.role-prompt{font-size:var(--type-prompt-size);line-height:var(--type-prompt-line);font-weight:500}.role-label,.role-action{font-size:16px;line-height:24px;font-weight:600}.role-help{font-size:16px;line-height:26px;color:var(--color-secondary)}.role-meta{font-size:14px;line-height:22px;color:var(--color-secondary)}.role-grade{font-size:var(--type-grade-size);line-height:var(--type-grade-line);font-weight:600;letter-spacing:-.03em}.role-wordmark{font-size:var(--type-wordmark-size);line-height:var(--type-wordmark-line);font-weight:700;letter-spacing:-.035em}
@media(min-width:761px){.mobile-nav{display:none!important}}
@media(max-width:1100px) and (min-width:761px){.hero{gap:var(--space-32)}.hero h1{font-size:48px;line-height:56px}.hero-task{padding:var(--space-24)}.desktop-nav{gap:var(--space-20);margin-right:0}.header-inner{gap:var(--space-20)}.header-cta{padding-inline:var(--space-16)}.reading-layout{gap:var(--space-40)}.parent-section,.app-section-inner{gap:var(--space-40)}.grade-link{gap:var(--space-8);padding-inline:var(--space-8)}}
@media(max-width:760px){html{scroll-padding-top:var(--space-16)}.container{width:calc(100% - var(--layout-mobile-gutter)*2)}.header-inner{height:76px;gap:var(--space-16)}.brand-mark{width:24px;height:24px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:grid;place-items:center}.hero{grid-template-columns:1fr;gap:var(--space-32);padding-block:var(--space-40) var(--space-16)}.hero-copy{padding:0}.hero-copy .lead{margin-top:var(--space-20)}.hero-actions{margin-top:var(--space-24);gap:var(--space-12) var(--space-20)}.hero-task{padding:var(--space-20)}.hero-task-heading{gap:var(--space-12);flex-wrap:wrap;margin-bottom:var(--space-16)}.hero-task-heading h2{font-size:22px;line-height:30px}.mat{min-height:88px}.mat-answer{font-size:14px;line-height:22px}.mats{gap:var(--space-8);margin-block:var(--space-20)}.section{margin-block:var(--space-48)}.section-heading{display:block;margin-bottom:var(--space-24)}.section-heading .help{margin-top:var(--space-12)}.section-heading .text-link{margin-top:var(--space-8)}.grade-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12)}.grade-link{position:relative;min-height:96px;gap:var(--space-8);padding:var(--space-12) var(--space-8)}.grade-link .icon{display:none}.grade-label{font-size:16px}.topic-grid{grid-template-columns:1fr;gap:var(--space-16)}.topic-panel{padding:var(--space-24)}.pattern-example{gap:var(--space-20);font-size:32px;line-height:40px}.rebus-example{font-size:32px;line-height:40px}.topic-panel h3{margin-top:var(--space-24)}.topic-panel p{font-size:16px;line-height:26px}.parent-section{grid-template-columns:1fr;gap:var(--space-24)}.parent-section h2 br{display:none}.material-title{font-size:22px;line-height:30px}.material-row{padding-block:var(--space-20);gap:var(--space-16)}.app-section{padding-block:var(--space-40)}.app-section-inner{grid-template-columns:1fr;gap:var(--space-24)}.app-section h2{font-size:34px;line-height:42px}.site-footer{padding-top:var(--space-32)}.footer-main{display:block;padding-bottom:var(--space-24)}.footer-main nav{gap:var(--space-24);margin-top:var(--space-24)}.footer-bottom{display:grid;gap:var(--space-8)}.breadcrumbs{margin-top:var(--space-20)}.breadcrumbs li:last-child:not(:first-child){display:none}.page-intro{margin-top:var(--space-24);margin-bottom:var(--space-32)}.page-intro .lead{margin-top:var(--space-20)}.reading-layout{display:flex;flex-direction:column;gap:var(--space-32);margin-top:var(--space-32);margin-bottom:var(--space-48)}.toc{order:-1;position:static;width:100%}.toc summary{cursor:pointer}.toc summary .icon{display:block}.toc details:not([open]) nav{display:none}.toc details[open] nav{display:grid}.toc nav a{padding-block:var(--space-12)}.collection-body,.article-body{min-width:0;width:100%}.collection-guide{padding-bottom:var(--space-16)}.task{padding-block:var(--space-32)}.task-heading{gap:var(--space-12)}.task-heading h2{font-size:22px;line-height:30px}.task-prompt{margin-top:var(--space-20)}.task .disclosure{font-size:18px;line-height:30px}.prose h2{font-size:var(--type-prose-section-size);line-height:var(--type-prose-section-line);margin-top:var(--space-40)}.prose h3{font-size:22px;line-height:30px}.prose th,.prose td{padding:var(--space-12) var(--space-8)}.prose table{font-size:16px;line-height:26px}.catalog-row{align-items:start;gap:var(--space-16);flex-wrap:wrap}.catalog-grade{min-width:80px;font-size:32px;line-height:40px}.catalog-description{min-width:calc(100% - 112px)}.catalog-count{margin-left:96px;min-height:44px}.catalog-list{margin-top:var(--space-32)}.admin-layout{grid-template-columns:1fr;gap:var(--space-24)}.admin-nav{flex-direction:row;flex-wrap:wrap}.role-samples>p{max-width:100%}.swatches{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.container{width:calc(100% - var(--space-16)*2)}.hero-task{padding:var(--space-16)}.hero-task-heading h2{font-size:22px;line-height:30px}.pattern-example{gap:var(--space-16)}.grade-list{gap:var(--space-8)}.grade-link{gap:var(--space-4)}.hero-actions .button{width:100%}.mat-answer{font-size:14px}.mats{gap:var(--space-4)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Quantity diagram: geometry recorded in design/styleguide.md. */
.quantity-diagram{margin:var(--space-32) 0;padding-block:var(--space-24);border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider)}.quantity-row{display:flex;align-items:center;gap:var(--space-24);margin-bottom:var(--space-16)}.quantity-row>span{display:flex;justify-content:space-between;gap:var(--space-16);min-width:96px;font-size:16px;line-height:24px}.quantity-cells{display:grid;grid-template-columns:repeat(9,24px);gap:var(--space-8)}.quantity-cell{width:24px;height:24px;background:var(--color-primary);border-radius:var(--space-4)}.quantity-missing{background:transparent;border:1px dashed var(--color-border)}.quantity-diagram figcaption{font-size:16px;line-height:26px;color:var(--color-secondary);margin-top:var(--space-20)}
@media(max-width:760px){.mat-answer{font-size:16px;line-height:24px}.quantity-row{flex-direction:column;align-items:start;gap:var(--space-8)}.quantity-row>span{min-width:80px}.quantity-cells{grid-template-columns:repeat(9,20px);gap:var(--space-4)}.quantity-cell{width:20px;height:20px}}

.field-error{font-size:16px;line-height:26px;color:var(--color-error)}.role-prose-section{font-size:var(--type-prose-section-size);line-height:var(--type-prose-section-line);font-weight:650;letter-spacing:-.025em}.role-prose-subsection{font-size:var(--type-prose-subsection-size);line-height:var(--type-prose-subsection-line);font-weight:600;letter-spacing:-.02em}

.task-prompt.prose{font-size:var(--type-prompt-size);line-height:var(--type-prompt-line);font-weight:var(--type-prompt-weight);letter-spacing:var(--type-prompt-tracking)}.task-prompt.prose>p:last-child{margin-bottom:0}.desktop-nav a,.footer-main nav a{font-weight:var(--type-navigation-weight)}.role-navigation{font-size:var(--type-navigation-size);line-height:var(--type-navigation-line);font-weight:var(--type-navigation-weight)}
/* Learning objects: real task data, not decorative marketing cards. */
.task-game{margin-block:var(--space-24);font-size:16px;line-height:26px}.game-fieldset{border:0;margin:0;padding:0;min-width:0}.game-fieldset legend{font-size:16px;line-height:24px;font-weight:600;margin-bottom:var(--space-16);padding:0}.shape-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),1fr));gap:var(--space-12)}.shape-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:var(--space-12);min-width:0;min-height:196px;padding:var(--space-12) var(--space-8) var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-game-card);background:var(--color-puzzle-paper);cursor:pointer;transition:transform var(--motion-game-duration) var(--motion-ease),box-shadow var(--motion-game-duration) var(--motion-ease),background var(--motion-game-duration) var(--motion-ease)}.shape-card input{position:absolute;opacity:0;width:1px;height:1px;left:50%;top:50%;margin:0}.shape-card-top{display:flex;align-items:center;justify-content:space-between;width:100%;padding-inline:var(--space-4);font-size:16px;line-height:24px;font-weight:600}.choice-dot{width:16px;height:16px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface)}.shape-card[data-selected=true]{background:var(--color-puzzle-blue-surface);border-color:var(--color-puzzle-blue);outline:1px solid var(--color-puzzle-blue)}.shape-card[data-selected=true] .choice-dot{border:4px solid var(--color-puzzle-blue);background:var(--color-surface)}.shape-card:focus-within{outline:2px solid var(--color-focus);outline-offset:4px}.game-shape{width:72px;height:72px;overflow:visible}.shape-blue{fill:var(--color-puzzle-blue)}.shape-red{fill:var(--color-puzzle-red)}.shape-card-caption{font-size:16px;line-height:24px;text-align:center}.game-envelope{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-20);margin-top:var(--space-20);background:var(--color-puzzle-blue-surface);color:var(--color-puzzle-blue);border-radius:var(--radius-control)}.game-envelope>svg{width:40px;height:36px}.game-envelope strong,.game-envelope [data-game-summary]{display:block;font-size:16px;line-height:26px}.game-envelope strong{font-weight:600}.game-envelope [data-game-summary]{margin-top:var(--space-4)}.game-actions{display:flex;align-items:center;gap:var(--space-16);flex-wrap:wrap;margin-top:var(--space-20)}.game-feedback:empty{display:none}.game-feedback{margin-top:var(--space-16);padding:var(--space-16) var(--space-20);border-radius:var(--radius-control);font-size:16px;line-height:26px;background:var(--color-subtle);color:var(--color-secondary)}.game-feedback[data-kind=notice]{background:var(--color-notice-surface);color:var(--color-notice)}.game-feedback[data-kind=incorrect]{background:var(--color-error-surface);color:var(--color-error)}.game-feedback[data-kind=correct]{background:var(--color-success-surface);color:var(--color-success)}.has-attribute-game .task-prompt .table-wrap{display:none}.game-instruction{font-size:16px;line-height:26px;color:var(--color-secondary);margin-bottom:var(--space-16)}.pet-bank{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-bottom:var(--space-16)}.pet-choice{min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-control);padding:var(--space-8) var(--space-12);font-size:16px;line-height:24px;font-weight:600;background:var(--color-surface);color:var(--color-text)}.pet-choice[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.pet-choice[data-placed=true]:not([aria-pressed=true]){background:var(--color-selection);border-color:var(--color-primary);color:var(--color-primary)}.pet-mats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12)}.pet-slot{min-width:0;min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:var(--space-8);border:1px dashed var(--color-border);border-radius:var(--radius-game-card);background:var(--color-subtle);color:var(--color-text);padding:var(--space-12) var(--space-8)}.pet-slot-number{font-size:14px;line-height:22px;color:var(--color-secondary)}.pet-slot-name{font-size:16px;line-height:24px;font-weight:600}.pet-slot-action{font-size:16px;line-height:24px;color:var(--color-secondary)}.pet-slot[data-filled=true]{background:var(--color-selection);border-style:solid;border-color:var(--color-primary)}.task-game[data-picked=true] .pet-slot{border-color:var(--color-primary);border-style:solid}.pet-slot:hover{border-color:var(--color-primary);background:var(--color-selection)}.hero-task .task-game{margin-top:var(--space-20);margin-bottom:var(--space-24)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.shape-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-game-lift)}}
@media(max-width:760px){.shape-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,128px),1fr))}.shape-card{min-height:196px;padding-inline:var(--space-8)}.pet-mats{gap:var(--space-8)}.pet-slot{padding:var(--space-12) var(--space-4);min-height:120px}.pet-slot-action{display:none}.game-actions{gap:var(--space-8) var(--space-12)}}
@media(max-width:360px){.shape-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.game-envelope{padding:var(--space-16)}.pet-slot-action{display:none}.pet-slot{min-height:104px}.pet-choice{padding-inline:var(--space-8)}}
@media(prefers-reduced-motion:reduce){.shape-card{transition:none!important;transform:none!important}}

@media(max-width:360px){.pet-mats{gap:var(--space-4)}.pet-slot{padding-inline:0}}

.prereq-interactive{display:none}.has-attribute-game .prereq-original{display:none}.has-attribute-game .prereq-interactive{display:inline}

/* Shared cartoon character and direct manipulation components. */
.pet-bank{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}
.pet-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);padding:var(--space-12) var(--space-4);cursor:grab;touch-action:none}
.pet-choice[aria-pressed=true]{background:var(--color-selection);color:var(--color-primary)}
.pet-art{display:block;width:var(--layout-pet-art);height:var(--layout-pet-art);object-fit:contain;pointer-events:none;user-select:none}
.pet-art[hidden]{display:none}.pet-slot{min-height:var(--layout-pet-mat);cursor:grab;touch-action:pan-y}
.pet-slot[data-filled=true]{touch-action:none}.pet-slot[data-filled=false]{justify-content:center}
.pet-slot[data-drop-target=true]{background:var(--color-selection);outline:2px solid var(--color-primary);outline-offset:2px;border-style:solid}
[data-drag-source=true]>.pet-art{opacity:.25}.pet-drag-ghost{position:fixed;z-index:1000;pointer-events:none;object-fit:contain;width:var(--layout-pet-ghost);height:var(--layout-pet-ghost);filter:drop-shadow(var(--shadow-pet-drag));transform:scale(1.06);user-select:none}
.task-game[data-dragging=true] .pet-choice,.task-game[data-dragging=true] .pet-slot{cursor:grabbing}
@media(max-width:760px){.pet-art{width:var(--layout-pet-art-mobile);height:var(--layout-pet-art-mobile)}.pet-slot{min-height:var(--layout-pet-mat-mobile)}}
@media(prefers-reduced-motion:reduce){.pet-drag-ghost{transform:none}}

.pet-choice[data-placed=true]:not([aria-pressed=true]) .pet-art{opacity:.25}

/* Fixed illustrated scene: empty and occupied use identical tracks. */
.pet-slot{display:grid;grid-template-rows:22px minmax(0,1fr);gap:var(--space-4);align-items:center;justify-items:center;justify-content:normal;height:var(--layout-pet-mat);min-height:0;padding:var(--space-8);border:1px solid transparent;background:transparent;isolation:isolate}
.pet-slot[data-filled=true],.pet-slot:hover,.task-game[data-picked=true] .pet-slot{background:transparent;border-color:transparent}
.pet-slot[data-filled=false]{justify-content:normal}.pet-stage{position:relative;display:block;width:100%;height:100%;min-height:0;pointer-events:none}
.rug-art{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:160px;height:var(--layout-rug-art);object-fit:contain;pointer-events:none;user-select:none}
.pet-slot-art{position:absolute;bottom:var(--space-20);left:50%;margin-left:calc(var(--layout-pet-art) / -2);z-index:1}
.pet-slot[data-filled=false] .pet-slot-name{visibility:hidden}.pet-slot-name{align-self:center;white-space:nowrap}.pet-slot-action{align-self:center;font-size:16px;line-height:24px}
.pet-choice .pet-art{transition:transform var(--motion-game-duration) var(--motion-ease)}.pet-choice[aria-pressed=true] .pet-art{transform:translateY(-6px)}
.pet-slot[data-drop-target=true]{background:var(--color-selection);border-color:transparent;outline:2px solid var(--color-primary);outline-offset:0}
.task-game[data-picked=true] .pet-slot .rug-art,.pet-slot:hover .rug-art{filter:drop-shadow(var(--shadow-game-lift))}
.pet-drag-ghost{transform:none}
.pet-slot[data-drag-source=true] .pet-art{opacity:.25}
@media(max-width:760px){.pet-slot{height:var(--layout-pet-mat-mobile);min-height:0}.rug-art{height:var(--layout-rug-art-mobile)}.pet-slot-art{margin-left:calc(var(--layout-pet-art-mobile) / -2)}}
@media(max-width:360px){.pet-slot{padding-inline:0}}
@media(prefers-reduced-motion:reduce){.pet-choice .pet-art{transition:none}.pet-choice[aria-pressed=true] .pet-art{transform:none}}
/* Current navigation location: persistent, distinct from hover and focus. */
.toc nav a{padding-inline:var(--space-12);border-radius:var(--radius-control);font-size:var(--type-navigation-size);line-height:var(--type-navigation-line)}
.toc nav a[aria-current="location"]{background:var(--color-selection);color:var(--color-primary);font-weight:600;text-decoration:none}
.desktop-nav a[aria-current],.footer-main nav a[aria-current]{color:var(--color-primary);font-weight:600;text-decoration:underline}
.mobile-nav a[aria-current]{background:var(--color-selection);color:var(--color-primary);text-decoration:none}

.pet-landing-cue{position:absolute;width:24px;height:24px;left:50%;bottom:var(--space-32);transform:translateX(-50%);color:var(--color-primary);z-index:1}
.pet-slot[data-filled=true] .pet-landing-cue{display:none}

.shape-card{min-height:144px}
.game-envelope [data-game-summary]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-12);min-height:36px;margin:0}
.game-envelope [data-game-summary] .game-shape{width:32px;height:32px}
