@font-face{font-family:Heading;src:url('assets/stribe-basic.otf') format('opentype');font-display:swap}@font-face{font-family:Body;src:url('assets/body.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}:root{--cream:#fff9ef;--ink:#111;--gold:#ffbf00;--line:#d9d2c5;--muted:#5b584f;--green:#3b7250;--brown:#795039}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font:1rem/1.65 Body,Arial,sans-serif}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #a66c00;outline-offset:5px}h1,h2,h3,.section-no,.brand-name{font-family:Heading,Impact,sans-serif;font-weight:400;text-transform:uppercase;line-height:1.12}h1{font-size:clamp(3.2rem,6vw,5.5rem);margin:0 0 22px}h2{font-size:clamp(2.2rem,4vw,3.4rem);margin:0 0 24px}h3{font-size:1.7rem;margin:0 0 16px}p{margin:0 0 20px}ul{padding-left:22px;margin:0 0 20px}li+li{margin-top:7px}.wrap{width:min(1240px,90%);margin:auto}.masthead{padding:22px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none}.brand img{width:76px;height:80px;object-fit:contain}.brand-name{font-size:1.7rem;display:block}.brand-caption{font-size:.875rem;color:var(--muted)}.header-tools{display:flex;gap:20px;align-items:center;font-size:.875rem}.text-button{border:0;background:transparent;padding:10px 0;text-decoration:underline;text-underline-offset:4px;color:inherit}.eyebrow{font-size:.875rem;letter-spacing:.1em;font-weight:600;text-transform:uppercase;margin-bottom:18px}.opening{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;padding:55px 0 48px}.lead{font-size:1.125rem;line-height:1.65;max-width:650px}.opening-note{border-top:8px solid var(--gold);padding-top:26px;align-self:start;margin-top:8px}.opening-note h3{font-size:1.65rem}.byline{font-size:.875rem;color:var(--muted)}.contents{padding:24px 0;border-block:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 28px;font-size:.875rem}.contents a{text-decoration:none}.contents a:hover{text-decoration:underline}.manual-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:48px;padding-top:52px}.side-index{position:sticky;top:26px;align-self:start;display:grid;gap:12px;font-size:.875rem}.side-index a{text-decoration:none;color:var(--muted)}.side-index a:hover{color:var(--ink)}.side-index .index-label{font-weight:bold;color:var(--ink);margin-bottom:8px}.guide-section{padding:0 0 65px;margin-bottom:58px;border-bottom:1px solid var(--line)}.section-heading{display:flex;gap:18px;align-items:baseline}.section-no{font-size:1.1rem;min-width:32px;color:var(--muted)}.body-copy{max-width:780px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px}.principle{border-top:1px solid var(--line);padding-top:20px}.principle h3{font-size:1.5rem}.principle p{margin-bottom:0}.training-cycle{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:30px 0}.training-cycle>div{border-top:5px solid var(--gold);padding-top:16px}.training-cycle strong{display:block;margin-bottom:8px}.quiet-box{background:#f2eee5;padding:25px 28px;margin:28px 0}.quiet-box h3{font-size:1.5rem}.path{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);padding:0;gap:22px;margin:32px 0}.path li{margin:0;border-top:10px solid var(--belt);padding-top:20px}.path h3{font-size:1.5rem}.path p{font-size:.875rem}.path .yellow{--belt:var(--gold)}.path .green{--belt:var(--green)}.path .brown{--belt:var(--brown)}.path .black{--belt:#111}.table-wrap{overflow-x:auto;margin:24px 0}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{text-align:left;vertical-align:top;padding:16px 14px;border-bottom:1px solid var(--line)}th{font-size:.875rem;font-weight:600;background:#f2eee5}td:first-child,th:first-child{padding-left:0}.stage-nav{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.stage-nav a{border:1px solid var(--ink);padding:9px 18px;border-radius:var(--app-radius);text-decoration:none;font-size:.875rem}.stage-nav a:hover{background:var(--gold)}.rank-section{margin:40px 0 52px;scroll-margin-top:26px}.rank-header{border-top:10px solid var(--belt);padding-top:22px;display:flex;justify-content:space-between;gap:24px;align-items:baseline}.rank-header h3{font-size:2.5rem}.rank-header p{font-size:.875rem;color:var(--muted)}.rank-focus{font-size:1.125rem;max-width:780px}.requirements{border:1px solid var(--line);padding:22px 26px;margin:25px 0}.requirements h4{margin:0 0 14px;font-size:1rem}.requirements ul{margin:0}.stripe-table{table-layout:fixed}.stripe-table th:nth-child(1){width:15%}.stripe-table th:nth-child(2){width:43%}.stripe-table th:nth-child(3){width:42%}.kata-ribbon{border-left:5px solid var(--belt);padding:12px 20px;background:#f2eee5;margin:22px 0}.lesson-list{display:grid;gap:0}.lesson{padding:24px 0;border-bottom:1px solid var(--line)}.lesson summary{display:flex;gap:18px;cursor:pointer;align-items:start;list-style:none}.lesson summary::-webkit-details-marker{display:none}.lesson-num{font-size:.875rem;min-width:28px;color:var(--muted);padding-top:5px}.lesson-title{font-family:Heading,Impact,sans-serif;font-size:1.5rem;line-height:1.2;text-transform:uppercase}.lesson-topic{font-size:.875rem;color:var(--muted);display:block;margin-top:7px}.lesson-toggle{margin-left:auto;font-size:1.5rem;font-weight:400}.lesson[open] .lesson-toggle{transform:rotate(45deg)}.lesson-body{padding:22px 0 0 46px;max-width:800px}.lesson-body p:last-child{margin-bottom:0}.lesson-body h4{font-size:1rem;margin:0 0 10px}.lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.lesson-grid .lesson-body{padding-left:0}.inventory-controls{display:flex;gap:18px;align-items:center;margin:24px 0;flex-wrap:wrap}.inventory-controls label{display:grid;gap:8px;flex:1}.inventory-controls input{background:transparent;border:1px solid #8b8578;border-radius:var(--app-radius);padding:12px;min-width:0;width:100%;font-size:1rem}.inventory-count{font-size:.875rem;color:var(--muted)}.skill-group{border-top:1px solid var(--line);padding:24px 0}.skill-group h3{font-size:1.6rem}.skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}.skill{border-bottom:1px solid #e6dfd2;padding:13px 0}.skill strong{display:block;font-weight:600}.skill small{font-size:.875rem;color:var(--muted);display:block;margin-top:4px}.skill em{font-style:normal;font-size:.875rem;display:block;margin-top:6px}.skill[hidden],.skill-group[hidden]{display:none}.footer{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:25px 0 35px;border-top:1px solid var(--line);font-size:.875rem}.footer .brand-name{font-size:1.5rem}.footer p{margin:0}.share-status{font-size:.875rem;color:var(--muted)}.skip{position:fixed;left:15px;top:-100px;background:var(--gold);padding:10px;z-index:20}.skip:focus{top:15px}@media(max-width:1000px){.manual-layout{grid-template-columns:1fr;gap:0}.side-index{display:none}.opening{gap:40px}.training-cycle{gap:20px}}@media(max-width:700px){.masthead{padding:18px 0}.brand img{width:60px;height:64px}.brand-caption{display:none}.brand-name{font-size:1.4rem}.header-tools{gap:16px}.header-tools .home-link{display:none}.opening{grid-template-columns:1fr;padding:32px 0;gap:18px}.opening-note{margin-top:0}.opening h1{font-size:3.2rem}.contents{gap:12px 22px}.manual-layout{padding-top:36px}.guide-section{padding-bottom:40px;margin-bottom:40px}.section-heading{gap:10px}.section-no{min-width:25px}.two-col,.training-cycle,.lesson-grid,.skill-grid{grid-template-columns:1fr;gap:22px}.path{grid-template-columns:1fr 1fr;gap:25px 20px}.quiet-box{padding:22px}.rank-header{display:block}.rank-header h3{margin-bottom:12px}.requirements{padding:20px}.stripe-table{table-layout:auto;min-width:560px}.lesson-title{font-size:1.35rem}.lesson-body{padding-left:0}.footer{flex-direction:column;align-items:start}.lesson-grid{gap:0}.skill-grid{gap:0}.section-heading h2{font-size:2.2rem}.header-tools .text-button{font-size:.875rem}}@media print{@page{margin:18mm}body{background:white;font-size:11pt}.wrap{width:100%}.masthead{padding:0 0 12px}.header-tools,.contents,.side-index,.stage-nav,.inventory-controls,.share-status,.lesson-toggle{display:none}.manual-layout{display:block;padding-top:25px}.opening{padding:25px 0}.opening h1{font-size:36pt}.guide-section{padding-bottom:25px;margin-bottom:25px}.rank-section{break-before:page}.rank-header h3{font-size:28pt}.table-wrap{overflow:visible}.stripe-table{min-width:0;table-layout:auto}.stripe-table th:nth-child(1){width:12%}.rank-header,.lesson summary,h2,h3{break-after:avoid}.lesson,.skill{break-inside:avoid}.lesson-grid,.skill-grid{display:block}.lesson-body{padding-left:0}.quiet-box,.requirements{break-inside:avoid}.brand img{width:55px;height:58px}a{text-decoration:none}.footer{margin-top:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
[hidden]{display:none!important}.name-gate{min-height:100vh;position:fixed;inset:0;z-index:100;background:var(--cream);padding:32px max(5%,calc((100vw - 1240px)/2));overflow:auto;display:flex;flex-direction:column}.name-gate>.brand{align-self:start}.name-panel{width:min(520px,100%);margin:auto;padding:40px 0}.name-panel h1{font-size:clamp(3.2rem,6vw,5rem)}.name-panel label{display:grid;gap:10px;font-weight:600}.name-panel input{padding:14px 16px;border:1px solid #8b8578;border-radius:var(--app-radius);background:transparent;color:var(--ink);font:inherit;width:100%;margin-bottom:18px}.login-button,.small-button{background:#111;color:var(--cream);border:2px solid #111;border-radius:var(--app-radius);padding:13px 22px;font-weight:600}.login-button{width:100%;font-size:1rem}.login-button:hover,.small-button:hover{background:var(--gold);color:#111}.gate-footer{font-size:.875rem;border-top:1px solid var(--line);padding-top:20px;margin:0}.small{font-size:.875rem;color:var(--muted);display:block}.student-home{margin:0 0 32px;padding:32px;background:#f2eee5;border-top:8px solid var(--gold)}.student-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.student-heading h2{font-size:2.4rem;overflow-wrap:anywhere}.student-heading .eyebrow{margin-bottom:8px}.student-tools{display:grid;grid-template-columns:1fr 1fr;gap:30px}.student-tools label{display:grid;gap:8px}.student-tools select{font:inherit;padding:12px;border:1px solid #8b8578;border-radius:var(--app-radius);background:var(--cream);color:var(--ink);width:100%}.student-tools p{margin:0}.student-search{margin:25px 0}.student-search label{display:grid;gap:9px}.student-search input{padding:14px;background:var(--cream);border:1px solid #8b8578;border-radius:var(--app-radius);color:var(--ink);font:inherit}.student-two{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--line);padding-top:26px}.student-two h3{font-size:1.5rem}.student-two label{display:grid;gap:10px}.student-two textarea{font:inherit;background:var(--cream);border:1px solid #8b8578;border-radius:var(--app-radius);padding:12px;resize:vertical;width:100%;color:var(--ink)}.small-button{font-size:.875rem;margin-top:12px}.profile-storage{font-size:.875rem;color:var(--muted);margin:24px 0 0}.search-results-list{list-style:none;padding:0;margin:16px 0}.search-results-list li{margin:0;border-bottom:1px solid var(--line);padding:12px 0}.search-results-list a{font-weight:600}.result-type{display:block;font-size:.875rem;color:var(--muted)}.lesson-help{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.lesson-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.lesson-actions button{font-size:.875rem;background:transparent;border:1px solid #111;border-radius:var(--app-radius);padding:9px 12px;color:var(--ink)}.lesson-actions button[aria-pressed=true]{background:var(--gold)}.practice-status{font-size:.875rem;color:var(--muted)}#question-status{display:block;font-size:.875rem;margin-top:10px}#saved-lessons li{margin:8px 0}#saved-lessons button{border:0;background:transparent;text-decoration:underline;font:inherit;text-align:left;padding:0;color:var(--ink)}@media(max-width:700px){.name-gate{padding:22px 5%}.name-panel{padding:36px 0}.student-home{padding:22px}.student-heading{display:block}.student-heading h2{font-size:2rem}.student-tools,.student-two{grid-template-columns:1fr;gap:24px}.header-tools{gap:12px;flex-wrap:wrap;justify-content:end}.header-tools #print-guide{display:none}.masthead{align-items:start}.student-heading .text-button{margin-bottom:18px}.student-two{gap:28px}}@media print{.name-gate,.student-home,.lesson-actions{display:none!important}.lesson-help{break-inside:avoid}}
.stage-focus{padding:22px 0 0;margin-top:24px;border-top:1px solid var(--line)}.stage-focus h3{font-size:1.4rem;margin-bottom:10px}.stage-focus p{margin-bottom:8px}.stage-focus a{font-size:.875rem}
.manual-content{min-width:0}@media(max-width:1000px){.manual-layout{grid-template-columns:minmax(0,1fr)}}
.student-home{margin-top:32px}.student-heading h1{font-size:clamp(2.2rem,4vw,3.5rem);margin-bottom:16px}.student-heading>div>p:last-child{max-width:670px}.review-plan{border-top:1px solid var(--line);margin:28px 0;padding-top:26px}.review-plan h2{font-size:1.8rem}.review-plan label{display:grid;gap:10px}.review-plan select{width:100%;font:inherit;padding:12px;background:var(--cream);border:1px solid #8b8578;border-radius:var(--app-radius);color:var(--ink)}#review-plan-content{margin-top:22px}.review-steps{display:grid;grid-template-columns:1fr 1fr;gap:24px}.review-steps h3{font-size:1.4rem}.review-open{display:inline-block;margin-top:12px;font-weight:600}.skill-detail{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}.skill-detail summary{font-size:.875rem;cursor:pointer;font-weight:600}.skill-detail p{margin:12px 0;font-size:1rem}.skill-detail ul{font-size:1rem}.skill-detail h4{font-size:.875rem;margin:18px 0 8px}@media(max-width:700px){.review-steps{grid-template-columns:1fr}.student-home{margin-top:22px}.student-heading h1{font-size:2.3rem}}
.curriculum-reference{border-top:1px solid var(--line);padding:28px 0;margin-top:36px}.curriculum-reference>summary{cursor:pointer;font-weight:600;font-size:1rem}.curriculum-reference>.small{margin:16px 0}.skill-workspace{margin-top:30px}.workspace-heading h2{font-size:2rem;margin-bottom:16px}.workspace-heading p{max-width:750px}.assessment-key{border-left:4px solid var(--gold);padding:12px 18px;margin:22px 0}.assessment-key p{margin:8px 0 0}.rating-scale{margin:22px 0;padding:18px 0;border-block:1px solid var(--line)}.rating-scale summary{cursor:pointer;font-weight:600}.rating-scale ol{padding-left:24px}.student-skill-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.student-skill-card{background:var(--cream);border:1px solid var(--line);padding:24px}.student-skill-card h3{font-size:1.5rem;margin:0 0 14px}.student-skill-card p{font-size:1rem}.score-pair{display:flex;gap:20px;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;margin-top:20px}.score-pair span{font-size:.875rem;display:block;color:var(--muted)}.score-pair strong{font-size:1rem;display:block;margin-top:5px}.student-skill-card button{font:inherit;border:1px solid #111;border-radius:var(--app-radius);background:transparent;color:#111;padding:10px 14px;margin-top:18px}.student-skill-card button:hover{background:var(--gold)}.skill-filter-actions{display:flex;gap:12px;flex-wrap:wrap}.skill-filter-actions button{background:transparent;border:1px solid #111;color:#111;padding:10px 15px;font:inherit;border-radius:var(--app-radius)}.skill-filter-actions button[aria-pressed=true]{background:var(--gold)}.stage-reference{margin:25px 0;border-top:1px solid var(--line);padding-top:20px}.stage-reference>summary{cursor:pointer;font-weight:600}.stage-reference .student-tools{margin-top:18px}.teacher-link{font-size:.875rem;display:inline-block;margin-top:20px}dialog{background:var(--cream);color:var(--ink);border:1px solid #111;border-radius:4px;width:min(820px,92vw);max-height:90vh;overflow:auto;padding:30px}dialog::backdrop{background:rgba(0,0,0,.5)}.dialog-heading{display:flex;gap:20px;align-items:start;justify-content:space-between}.dialog-heading h2{font-size:2.4rem;margin-bottom:10px}.close-dialog{background:transparent;border:1px solid #111;border-radius:var(--app-radius);padding:8px 12px;font:inherit;color:#111}.dialog-heading .eyebrow{margin-bottom:12px}.two-assessments{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:22px 0;margin:20px 0;border-block:1px solid var(--line)}.two-assessments span{display:block;font-size:.875rem;color:var(--muted)}.two-assessments strong{font-size:1.25rem;display:block;margin-top:8px}#teacher-feedback-box{border-left:4px solid var(--gold);padding-left:18px;margin-bottom:24px}#teacher-feedback-box h3{font-size:1.4rem}.rating-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.rating-options label{border:1px solid var(--line);padding:12px;cursor:pointer;display:flex;align-items:start;gap:10px;font-size:1rem}.rating-options label:has(input:checked){background:var(--gold);border-color:#111}.rating-options input{margin-top:6px}#self-assessment-form fieldset{border:0;padding:0;margin:0 0 24px}#self-assessment-form legend{font-weight:600}#self-assessment-form>label{display:grid;gap:10px}#self-assessment-form textarea{font:inherit;padding:12px;background:transparent;border:1px solid #8b8578;border-radius:var(--app-radius);color:#111;width:100%;resize:vertical}#technique-guidance h3{font-size:1.4rem;margin-top:24px}.assess-skill-button{font:inherit;border:1px solid #111;background:transparent;color:#111;border-radius:var(--app-radius);padding:8px 12px;margin-top:12px}@media(max-width:700px){.student-skill-cards{grid-template-columns:1fr}.rating-options{grid-template-columns:1fr}.two-assessments{gap:16px}dialog{padding:22px}.dialog-heading h2{font-size:2rem}.workspace-heading h2{font-size:1.8rem}}@media print{.skill-workspace,.stage-reference,.teacher-link,dialog{display:none!important}.curriculum-reference{border:0;padding:0;margin:0}}
.teacher-signin{display:block;text-align:center;text-decoration:none;margin:24px 0}.teacher-main{padding:44px 0 60px}.teacher-main>p{max-width:820px}.teacher-main h1{font-size:clamp(2.6rem,5vw,4.5rem)}.teacher-controls{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:24px;margin:32px 0}.teacher-controls label,.teacher-assessment-row label{display:grid;gap:9px}.teacher-controls input,.teacher-controls select,.teacher-assessment-row select,.teacher-assessment-row textarea{font:inherit;padding:12px;background:transparent;border:1px solid #8b8578;border-radius:var(--app-radius);width:100%;color:#111}.teacher-assessment-row{display:grid;grid-template-columns:1fr .8fr 1.2fr;gap:30px;border-top:1px solid var(--line);padding:26px 0}.teacher-assessment-row h3{font-size:1.5rem}.teacher-assessment-row form{display:grid;gap:16px}.teacher-assessment-row form button{justify-self:start}.teacher-assessment-row p{margin:14px 0 0}.teacher-assessment-row strong{display:block;margin-top:10px}.teacher-assessment-row textarea{resize:vertical}@media(max-width:800px){.teacher-controls,.teacher-assessment-row{grid-template-columns:1fr}.teacher-assessment-row{gap:18px}}
.working-skill-control{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #111;background:#f2eee5;margin:20px 0 8px;font-weight:600}.working-skill-control input{width:20px;height:20px;accent-color:#111}
.student-checkpoint{margin:24px 0 34px;padding-bottom:28px;border-bottom:1px solid var(--line)}.level-banner{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px}.level-banner h2,.level-banner h3{font-size:1.6rem;margin:10px 0 0}.checkpoint-summary{font-weight:600;margin:20px 0}.checkpoint-list{display:grid;gap:0}.checkpoint-row{display:flex;gap:20px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:12px 0}.checkpoint-row button{font:inherit;border:0;background:transparent;color:inherit;text-decoration:underline;text-underline-offset:4px;text-align:left;padding:0}.checkpoint-row>span{font-size:.875rem;max-width:230px;text-align:right}.checkpoint-confirmed{color:#2b6041;font-weight:600}.teacher-level-panel{margin:28px 0;border-block:1px solid var(--line);padding:24px 0}.teacher-level-panel h2{font-size:1.7rem}.teacher-level-panel form{max-width:500px}.teacher-level-panel label{display:grid;gap:9px}.teacher-level-panel select{font:inherit;padding:12px;background:transparent;border:1px solid #8b8578;border-radius:var(--app-radius);width:100%}.teacher-checks{display:grid;gap:12px}.teacher-checks label{display:flex;gap:10px;align-items:start;font-size:.875rem}.teacher-checks input{margin-top:5px;accent-color:#111}@media(max-width:700px){.level-banner{grid-template-columns:1fr}.checkpoint-row{align-items:start}.checkpoint-row>span{max-width:150px}}
.note-assessment-actions{display:flex;gap:14px;flex-wrap:wrap}
.checkpoint-details{border-top:1px solid var(--line);padding-top:18px}.checkpoint-details>summary{font-weight:600;cursor:pointer}.checkpoint-details>p{margin:16px 0}
.technique-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:end}.technique-tools button{font:inherit;color:#111;border:1px solid #111;background:transparent;border-radius:var(--app-radius);padding:9px 12px}.skill-goal-label{padding:12px 16px;border-left:4px solid var(--gold);background:#f2eee5;margin:18px 0}.header-tools #print-guide{display:inline-block!important}#print-output{display:none}.printing-focus #print-output{display:none}@media(max-width:700px){.technique-tools{gap:8px}.technique-tools button{font-size:.875rem;padding:8px 10px}.dialog-heading{display:block}.technique-tools{justify-content:start;margin:16px 0 20px}}@media print{.printing-focus body>*{display:none!important}.printing-focus body>#print-output{display:block!important;width:100%;font-size:11pt}.printing-focus #print-output h1{font-size:26pt}.printing-focus #print-output h2{font-size:20pt;margin-top:25px}.printing-focus #print-output h3{font-size:14pt;margin:18px 0 8px}.printing-focus #print-output p{margin:8px 0}.print-logo{width:60px;height:auto;float:right}.printing-focus #print-output li{margin:4px 0}}

.belt-graphic{width:min(280px,100%);margin:14px 0 4px}.belt-graphic svg{display:block;width:100%;height:auto}.skill-filter-actions{margin:18px 0}

/* Compact progress list, using the existing Good Fight palette and typography. */
.belt-graphic{width:210px;margin:14px 0}.student-skill-cards{display:block}.progress-skill-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px;padding:22px 0;border-bottom:1px solid #ded7cb;align-items:center}.progress-skill-name{font:inherit;font-weight:600;padding:0;background:none;border:0;text-align:left;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.progress-skill-status{display:block;font-size:.88rem;margin-top:7px;color:#5c5a52}.rating-graphic{display:flex;flex-direction:column;gap:7px;font-size:.88rem}.rating-bars{display:flex;gap:4px;margin-top:8px}.rating-bars i{display:block;width:25px;height:6px;background:#ddd7cb}.rating-bars i.filled{background:#ffbf00}.progress-list-key{font-size:.9rem;color:#5c5a52}.review-plan[hidden]{display:none!important}@media(max-width:640px){.progress-skill-row{grid-template-columns:1fr 1fr;gap:16px}.progress-skill-row>div:first-child{grid-column:1/-1}.rating-bars i{width:22px}}

.student-two[hidden]{display:none!important}

[hidden]{display:none!important}.masthead{align-items:center}.brand{align-items:center;gap:22px}.brand img{width:86px;height:auto}.brand-caption{font-size:1.1rem}.level-banner h2,.level-banner h3{font-size:1.5rem;margin-top:12px}.level-banner>div{min-width:0}.student-heading{margin-bottom:24px}.student-home{padding:28px}.skill-workspace{margin-top:24px}.skill-filter-actions{display:flex;gap:0;border-bottom:1px solid var(--line);margin:20px 0 4px}.skill-filter-actions button{border:0;background:transparent;padding:14px 18px}.skill-filter-actions button[aria-pressed=true]{box-shadow:inset 0 -4px #ffbf00;background:transparent}.curriculum-belts{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:20px 0}.curriculum-belt-button{background:var(--cream);padding:12px;text-align:left;border:1px solid var(--line);font-size:.85rem}.curriculum-belt-button[aria-pressed=true]{border-color:#191919}.curriculum-belt-button .belt-graphic{width:100%;margin:0 0 8px}.progress-skill-row{padding:18px 0}.student-checkpoint{border:0}.student-search label{font-size:.9rem}.student-search input{margin-top:8px}.header-tools{gap:20px}@media(max-width:640px){.brand img{width:65px}.brand{gap:14px}.student-home{padding:20px}.curriculum-belts{grid-template-columns:repeat(3,1fr)}.skill-filter-actions button{padding:12px 9px;font-size:.85rem}.level-banner{grid-template-columns:1fr 1fr;gap:20px}.level-banner .belt-graphic{width:100%}.level-banner h2,.level-banner h3{font-size:1.2rem}.header-tools .home-link{font-size:.85rem}}

.teacher-home{margin:32px 0}.teacher-home .student-heading{align-items:center}.teacher-home h1{font-size:2.7rem}.teacher-student-select{display:grid;gap:8px;min-width:200px}.teacher-home input[type=search],.teacher-home select,#teacher-rank-dialog select{height:48px;width:100%;padding:10px 14px;font:inherit;background:var(--cream);border:1px solid var(--line);border-radius:var(--app-radius)}.teacher-search-label{display:grid;gap:8px;font-size:.9rem}.teacher-home .skill-workspace{border:0}.assessment-notes-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}.assessment-notes-pair label{display:grid;gap:10px}.assessment-notes-pair h3{font:inherit;margin:0 0 10px}.assessment-notes-pair p{margin:0;white-space:pre-wrap}#teacher-note{width:100%;font:inherit;padding:14px;background:var(--cream);border:1px solid var(--line);border-radius:var(--app-radius)}dialog fieldset{border:0;padding:0;margin:24px 0}dialog legend{font-weight:600;margin-bottom:14px}dialog .small-button{min-height:48px;padding:12px 20px}#teacher-rank-dialog{max-width:520px}#teacher-level-form label{display:grid;gap:10px}#teacher-level-form>button{margin-top:20px}.teacher-checks{display:grid;gap:12px;margin-bottom:24px}.teacher-checks label{display:flex;gap:10px;align-items:center}.teacher-checks input{width:18px;height:18px}.curriculum-level-heading{font:inherit;font-weight:600;margin:26px 0 8px}@media(max-width:640px){.assessment-notes-pair{grid-template-columns:1fr}.teacher-home h1{font-size:2rem}.teacher-home .student-heading{display:grid;gap:20px}}

.two-assessments .rating-bars{display:flex}.two-assessments{border:0}.teacher-home .progress-skill-row:last-child{border-bottom:0}

.quick-rating-bars{display:flex;gap:4px;margin-top:2px}.quick-rating-bars button{width:31px;height:28px;min-height:28px;padding:0;border:0;border-radius:0;background:linear-gradient(#ddd7cb,#ddd7cb) center/100% 6px no-repeat;cursor:pointer}.quick-rating-bars button.filled{background-image:linear-gradient(#ffbf00,#ffbf00)}.quick-rating-bars button:hover,.quick-rating-bars button:focus-visible{outline:2px solid #191919;outline-offset:1px}.quick-rating-bars button:disabled{cursor:wait;opacity:.6}.intro-welcome{max-width:650px;margin:26px 0;line-height:1.7}

.student-checkpoint{margin:20px 0;padding-bottom:0}@media(max-width:640px){.student-heading{display:flex;align-items:flex-start;gap:12px}.student-heading h1{font-size:1.9rem;margin-bottom:10px}.student-heading .text-button{margin:0;font-size:.85rem}.skill-filter-actions{flex-wrap:nowrap}.skill-filter-actions button{flex:1;min-width:0;text-align:center;line-height:1.35;padding:12px 6px}.student-checkpoint{margin:14px 0}.teacher-home .student-heading{display:grid}}

.kata-video{margin:24px 0}.kata-video video{display:block;width:100%;max-height:480px;background:#191919;border-radius:var(--app-radius)}.teacher-teaching{margin-bottom:24px}.teacher-teaching h3{font-size:1rem;margin-top:24px}.teacher-teaching li{margin-bottom:8px}

.teaching-version{border:0!important;margin:12px 0;padding:0!important}.teaching-version summary{font-family:var(--body-font,inherit);font-size:1rem;font-weight:600;padding:8px 0}.teaching-version li{margin-bottom:8px}.section-play{min-height:48px;margin:8px 0;text-decoration:underline}.teaching-version ol{margin-top:12px}

/* Promotion goal stays primary; the badge collection grows with the syllabus. */
.promotion-progress{display:block;width:100%;max-width:360px;padding:12px 0 0;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;text-align:left}.promotion-progress-top{display:flex;justify-content:space-between;gap:12px;font-size:.875rem;margin-bottom:8px}.promotion-meter{display:block;background:var(--gf-line);height:8px;border-radius:var(--app-radius);overflow:hidden}.promotion-meter>span{display:block;height:100%;background:var(--gf-ink)}.promotion-progress:focus-visible,.badge-card:focus-visible,.badge-technique:focus-visible{outline:3px solid var(--gf-ink);outline-offset:4px}#promotion-empty:empty,#badge-rank-note:empty{display:none}.badge-shelf{margin-top:25px}.badge-shelf-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.badge-shelf-heading h3{font-size:var(--gf-section-title);margin:0}.badge-shelf-tools{display:flex;align-items:center;gap:20px}.badge-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;padding:5px 4px 12px}.badge-card{min-width:0;background:transparent;border:0;padding:0 0 5px;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:12px}.badge-ring{position:relative;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:conic-gradient(var(--gf-ink) var(--badge-progress),var(--gf-line) 0);padding:4px;box-sizing:border-box}.badge-medallion{width:100%;height:100%;border-radius:50%;background:var(--gf-cream);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--gf-ink);border:3px solid var(--gf-cream)}.badge-medallion svg{width:37px;height:37px;fill:currentColor;stroke:none}.badge-count{font-size:.75rem;font-weight:600;line-height:1.3}.badge-name{font-size:.875rem;text-align:center;line-height:1.3;max-width:130px}.badge-tier{position:absolute;right:-2px;bottom:0;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--gf-ink);border:2px solid var(--gf-cream);color:var(--gf-cream);font-size:.75rem;font-weight:600;line-height:1}.badge-card.earned .badge-ring{background:var(--gf-gold)}.badge-card.earned .badge-medallion{background:var(--gf-gold)}.badge-card.earned .badge-tier{background:var(--gf-ink)}.badge-card.earned .badge-count{font-size:.875rem}.badge-techniques{margin-top:20px;display:grid}.badge-technique{display:flex;justify-content:space-between;gap:18px;align-items:center;width:100%;padding:15px 0;border:0;border-top:1px solid var(--gf-line);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.badge-technique>span:last-child{white-space:nowrap;font-size:.875rem;color:var(--gf-muted)}.badge-technique.complete>span:last-child{color:var(--gf-ink);font-weight:600}#badge-dialog{max-width:650px}#badge-dialog .close-dialog,#badge-collection-dialog .close-dialog{font:inherit;padding:8px 14px;border:1px solid currentColor;border-radius:var(--gf-radius);background:transparent;color:inherit}.badge-dialog-tools{display:flex;align-items:center;gap:16px}#badge-collection-dialog{max-width:820px;width:calc(100% - 32px)}.badge-collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 16px;margin:22px 0 32px}#badge-collection section>h3{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--gf-line)}#badge-domain-progress{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}#badge-domain-progress p{font-size:.875rem;margin:3px 0}@media(max-width:700px){.level-banner{grid-template-columns:.8fr 1.2fr;gap:20px}.badge-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px}.badge-ring{width:76px;height:76px}.badge-medallion svg{width:32px;height:32px}.badge-tier{width:21px;height:21px}.student-checkpoint{padding-bottom:18px}.promotion-progress-top{font-size:.75rem}.badge-shelf-tools{gap:14px}.badge-collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 8px}.badge-name{font-size:.875rem}.badge-dialog-tools{justify-content:space-between}.badge-dialog-tools .text-button{font-size:.875rem}#badge-domain-progress{grid-template-columns:1fr}}@media(max-width:380px){.badge-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.badge-shelf,.promotion-progress{display:none!important}}

/* The target belt is the promotion meter. */
.promotion-progress{padding:0;max-width:240px;margin-top:14px}.promotion-progress .belt-graphic{display:block;width:100%;margin:0}.promotion-progress .belt-graphic svg{width:100%;display:block}.promotion-progress-top{max-width:240px;margin-top:16px}.belt-progress-fill{transition:width .7s ease}.promotion-progress[hidden],.promotion-progress-top[hidden]{display:none}#promotion-status:empty{display:none}@media(prefers-reduced-motion:reduce){.belt-progress-fill{transition:none}}

.level-banner .belt-graphic{width:100%;max-width:240px}.level-banner .belt-graphic svg{width:100%;max-width:none}
/* Both rank graphics share exactly the same responsive dimensions. */
.level-banner{grid-template-columns:repeat(2,minmax(0,1fr))}.level-banner>div{min-width:0}.level-banner>div>.small{display:block;min-height:1.5em}.level-banner .belt-graphic,.level-banner .promotion-progress{width:100%;max-width:240px}.level-banner .belt-graphic svg{width:100%;height:auto;aspect-ratio:240/28;display:block}

.homework-focus{font-size:1rem;line-height:1.5;margin:8px 0 0;max-width:48ch;white-space:pre-line}

.homework-pin{display:block;margin-top:8px;font-size:14px}.homework-pin[aria-pressed="true"]{font-weight:600}.rating-progress{display:block;margin-top:8px;color:#426d4b}

.requirements-cta{display:block;background:var(--gf-gold);color:var(--gf-ink);border:1px solid var(--gf-ink);margin-top:18px;text-align:center;width:100%;max-width:300px;line-height:1.3!important}.requirements-cta[hidden]{display:none}#requirements-dialog{max-width:700px;width:calc(100% - 32px)}#close-requirements{font:inherit;background:transparent;border:1px solid currentColor;border-radius:var(--app-radius);padding:8px 14px;color:inherit}.requirement-item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:17px 0;border:0;border-top:1px solid var(--gf-line);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.requirement-item>span:first-child{font-weight:600}.requirement-item>span:last-child{font-size:.875rem;color:var(--gf-muted);white-space:nowrap}.requirement-item.approved>span:last-child{color:#2b6041}.requirement-item:focus-visible{outline:2px solid var(--gf-ink);outline-offset:3px}@media(max-width:480px){.requirement-item{align-items:start;flex-direction:column;gap:5px}.requirements-cta{padding:12px 8px!important;font-size:.875rem!important}}
/* App workspace: consistent navigation, grouped rows and readable detail sheets. */
.student-home{border-top:0;border-radius:var(--app-radius);background:#f5f3ee;box-shadow:0 1px 4px #1919190a;padding:28px}.student-heading{margin-bottom:24px}.student-heading h1{font-size:clamp(1.8rem,3vw,2.7rem)}.student-checkpoint{margin-top:0}.level-banner{grid-template-columns:1fr 1fr;gap:32px}.badge-shelf{padding:20px 0 4px;border-top:1px solid var(--gf-line)}.skill-workspace{margin-top:24px}.workspace-heading h2{font-size:1.7rem}.student-search input,.teacher-home input[type=search]{border-radius:var(--app-radius);background:#fffaf3;min-height:48px}.skill-filter-actions{position:sticky;top:8px;z-index:3;background:#e7e3db;padding:4px;border:0;border-radius:var(--app-radius);gap:4px;margin:20px 0 18px;box-shadow:0 2px 8px #19191908}.skill-filter-actions button{flex:1;min-height:44px;padding:10px 14px;border-radius:var(--app-radius);font-size:1rem;font-weight:500;text-align:center}.skill-filter-actions button[aria-pressed=true]{background:#fffaf3;box-shadow:0 1px 4px #19191920;color:#191919}.student-skill-cards{border-radius:var(--app-radius);overflow:hidden;background:#fffaf3}.progress-skill-row{padding:20px;border-bottom:1px solid #19191912;gap:20px;margin:0}.progress-skill-row:last-child{border-bottom:0}.progress-skill-name{text-decoration:none;font-weight:600;text-align:left;min-height:44px;padding:6px 0}.progress-skill-status{font-size:.875rem}.is-homework{background:#fff5cc;box-shadow:inset 3px 0 #ffbf00}.homework-label{display:inline-block;margin-top:8px;padding:4px 9px;border-radius:var(--app-radius);background:#ffdf6a;font-size:.875rem;font-weight:600}.coach-note{margin:10px 0 0;font-size:.9375rem;line-height:1.5;white-space:pre-wrap;color:#514d45}.homework-pin{font-size:.875rem;min-height:44px;text-decoration:none;border-radius:var(--app-radius);padding:8px 10px;background:#ece8df;margin-top:8px}.homework-pin[aria-pressed=true]{background:#ffdf6a}.curriculum-level-heading{margin:16px 0;font-size:1rem}.curriculum-belts{gap:8px}.curriculum-belt-button{border-radius:var(--app-radius)}.curriculum-belt-button[aria-pressed=true]{outline:2px solid #191919;outline-offset:-2px}dialog{border-radius:var(--app-radius);box-shadow:0 20px 80px #0003;border:1px solid #19191915;padding:28px}dialog::backdrop{background:#0005;backdrop-filter:blur(4px)}.dialog-heading{position:sticky;top:-28px;background:var(--gf-cream);z-index:2;padding:12px 0;align-items:center}.dialog-heading button{min-height:44px;border:0;border-radius:var(--app-radius);background:#eae5dc;padding:10px 16px}dialog textarea{border-radius:var(--app-radius)!important;font-size:1rem!important}.teacher-checks label,.working-toggle{min-height:44px}.teacher-checks input{accent-color:#191919}.note-save{margin-top:12px;border:0;border-radius:var(--app-radius);background:#eae5dc;padding:12px 16px;min-height:44px;font:inherit}.rating-options label{border-radius:var(--app-radius)}.quick-rating-bars button:focus-visible,button:focus-visible{outline:3px solid #42754d;outline-offset:3px}@media(max-width:640px){.student-home{padding:18px 14px;border-radius:var(--app-radius)}.level-banner{gap:18px;grid-template-columns:1fr 1fr}.badge-shelf{margin-top:16px}.skill-filter-actions{top:4px}.skill-filter-actions button{font-size:.9375rem;padding:10px 6px}.progress-skill-row{padding:16px;gap:14px}.progress-skill-row>div:first-child{grid-column:1/-1}.progress-skill-row{grid-template-columns:1fr 1fr}.progress-skill-row .small{font-size:.875rem}.rating-graphic>span:last-child{font-size:.875rem;line-height:1.45}dialog{width:calc(100% - 16px)!important;max-height:calc(100dvh - 24px);padding:20px;box-sizing:border-box;border-radius:var(--app-radius)}.dialog-heading{top:-20px}.dialog-heading h2{font-size:1.7rem}.assessment-notes-pair{gap:16px}.badge-cards{gap:16px 8px}.student-search label{font-size:1rem}.masthead{padding-top:16px;padding-bottom:16px}.curriculum-belts{grid-template-columns:repeat(2,1fr)}}

/* Shared geometry and a single flat practice surface. */
:root{--app-radius:10px}
.student-home,.teacher-home{background:transparent;border-radius:0;box-shadow:none;padding:28px 0}
.student-skill-cards{background:transparent;border-radius:0;overflow:visible}
.progress-skill-row{background:transparent;border-radius:0;padding:20px 0}
.progress-skill-row.is-homework{background:#fff5cc;box-shadow:inset 3px 0 #ffbf00;padding-inline:16px}
.skill-filter-actions{border-radius:var(--app-radius);box-shadow:none}
.skill-filter-actions button{border-radius:var(--app-radius)}
body input:not([type=checkbox]):not([type=radio]),body select,body textarea,
body .small-button,body .login-button,body .note-save,body .homework-pin,
body .curriculum-belt-button,body .rating-options label,body .dialog-heading button,
body .close-dialog,body #close-requirements,body .skill-filter-actions,body .skill-filter-actions button{border-radius:var(--app-radius)!important}
body dialog{border-radius:var(--app-radius)}
@media(max-width:640px){.student-home,.teacher-home{padding:18px 0}.progress-skill-row{padding:18px 0}.progress-skill-row.is-homework{padding-inline:12px}}

/* Opening a detail sheet focuses its title; controls retain keyboard focus cues. */
.dialog-heading h2[tabindex="-1"]:focus{outline:none}
.student-home h1,.student-home h2,.student-home h3,.skill-filter-actions button,.dialog-heading,.progress-skill-name{-webkit-user-select:none;user-select:none}

.header-tools #change-student{font:inherit;color:inherit;background:transparent;border:0;padding:10px 0;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
@media(max-width:640px){.header-tools #change-student{font-size:.85rem}.header-tools{gap:16px;flex-wrap:wrap;justify-content:flex-end}}

.level-learning-focus{grid-column:1/-1;margin:0 0 1rem;padding:0 0 1rem;border-bottom:1px solid #d8d0c1}.level-learning-focus h3{margin:.25rem 0}.level-learning-focus ul{padding-left:1.3rem;margin:.5rem 0 1rem}.level-learning-focus details{max-width:75ch}.level-learning-focus summary{cursor:pointer}.level-learning-focus p{margin:1rem 0}

.level-skill-group-label{grid-column:1/-1;margin:1rem 0 0;font-family:inherit;font-size:1rem;font-weight:700}

/* Disclosure controls use the same Phosphor bold family as the badges. */
details>summary{list-style:none;display:flex;align-items:center;gap:.75rem;min-height:44px;cursor:pointer}
details>summary::-webkit-details-marker{display:none}
details>summary::marker{content:""}
details>summary::before{content:"";display:block;flex:0 0 24px;width:24px;height:24px;background:currentColor;-webkit-mask:url('assets/icons/plus-circle-bold.svg') center/contain no-repeat;mask:url('assets/icons/plus-circle-bold.svg') center/contain no-repeat}
details[open]>summary::before{-webkit-mask-image:url('assets/icons/minus-circle-bold.svg');mask-image:url('assets/icons/minus-circle-bold.svg')}
.lesson summary .lesson-toggle{display:none}
@media print{details>summary::before{display:none}}
