:root{
  --paper:#f7f7f3;--white:#fff;--ink:#232c29;--muted:#5e6863;--line:#dce1da;
  --accent:#a54223;--accent-soft:#faeee7;--green:#355d4b;--green-soft:#eef4ee;
  --blue:#345e7a;--blue-soft:#edf3f7;--radius:12px;--font:"General Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--font);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button,a,summary,select{-webkit-tap-highlight-color:transparent}
button,summary,select{cursor:pointer}
button{border:0;background:none}
button:disabled{cursor:not-allowed;opacity:.36}
button{transition:background .15s,color .15s,box-shadow .15s}
button:not(:disabled):active{transform:translateY(1px)}
a{color:var(--accent);text-underline-offset:3px}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a54223;outline-offset:3px}
button svg,summary svg{flex-shrink:0}
svg{width:20px;height:20px;stroke-width:1.7;vertical-align:middle}
h1,h2,h3,p{margin:0}
h1{font-size:24px;line-height:1.25;font-weight:600;letter-spacing:-.65px}
h2{font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.35px}
h3{font-size:16px;line-height:1.4;font-weight:600}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip{position:fixed;top:12px;left:12px;z-index:30;transform:translateY(-150%);padding:12px 20px;background:var(--ink);color:#fff;border-radius:8px}
.skip:focus{transform:none}
.topbar{background:var(--white);border-bottom:1px solid var(--line)}
.topbar-inner{max-width:1200px;margin:auto;padding:18px 32px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:20px}
.brand strong{font-size:22px;letter-spacing:-1px;line-height:1;font-weight:700;white-space:nowrap}
.brand strong span{font-weight:500;color:var(--accent);margin-left:5px}
.brand-sub{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px}
.resources{display:flex;gap:8px}
.quiet-button{display:inline-flex;gap:8px;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;font-size:13px;font-weight:500}
.quiet-button:hover{background:var(--paper)}
.shell{max-width:1200px;padding:28px 32px 0;margin:auto}
.page-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.eyebrow,.field-label{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.55px}
.eyebrow{text-transform:uppercase;letter-spacing:1.1px}
.edition{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}
.prototype{font-size:12px;border:1px solid var(--line);border-radius:4px;padding:2px 6px}
.week-nav{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:8px;max-width:430px;align-items:stretch}
.nav-arrow{background:var(--white);border:1px solid var(--line);border-radius:8px;min-height:60px}
.nav-arrow:hover:not(:disabled){border-color:var(--ink)}
.week-picker{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:var(--white);gap:12px}
.week-picker:hover{border-color:var(--ink)}
.week-range{display:block;font-weight:600;font-size:18px;letter-spacing:-.3px}
.week-meta{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.week-picker svg{color:var(--muted)}
.week-overview{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}
.overview-copy{min-width:0}
.cycle-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px;font-size:12px;color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:600;line-height:1.35;background:var(--green-soft);color:var(--green)}
.badge.attack{background:var(--accent-soft);color:var(--accent)}
.badge.defense{background:var(--blue-soft);color:var(--blue)}
.badge.closed{background:#edeFEB;color:#515b55}
.week-overview .subtitle{color:var(--muted);font-size:13px;margin-top:5px}
.cycle-progress{display:flex;align-items:flex-start;gap:14px;flex-shrink:0}
.progress-step{min-width:48px;text-align:center;color:var(--muted);font-size:12px}
.progress-step .step-bar{height:4px;border-radius:3px;background:#dce1da;display:block;margin-bottom:8px}
.progress-step.complete .step-bar{background:#b67d67}
.progress-step.current .step-bar{background:var(--accent)}
.progress-step.current{color:var(--accent);font-weight:600}
.filters{display:flex;align-items:flex-end;gap:24px;margin:24px 0 16px}
.group-filter{flex:1}
.field-label{display:block;margin-bottom:8px;letter-spacing:.2px}
.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:540px;background:#eaece6;border:1px solid #e3e5de;border-radius:9px;padding:4px;gap:4px}
.segmented button{min-height:52px;padding:5px 10px;font-size:14px;border-radius:6px;text-align:left;font-weight:600;line-height:1.35}
.segmented button span{display:block;font-weight:400;font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap}
.segmented button[aria-pressed=true]{background:var(--white);box-shadow:0 1px 4px #182b1b14}
.segmented button:hover:not([aria-pressed=true]){background:#e0e5dc}
.level-filter{width:220px}
.select-wrap{display:block;position:relative}
.select-wrap select{width:100%;min-height:62px;border:1px solid var(--line);border-radius:8px;background:var(--white);padding:8px 36px 8px 14px;font-size:14px;appearance:none}
.select-wrap svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none}
.safety-line{display:flex;gap:8px;align-items:flex-start;color:var(--muted);font-size:12px;margin:0 0 20px}
.safety-line svg{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.safety-line button{padding:0;text-align:left;font-size:inherit;min-height:44px;margin-top:-13px;margin-bottom:-13px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.day-switch{display:none}
.sessions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.session{border:1px solid var(--line);background:var(--white);border-radius:var(--radius);overflow:hidden;min-width:0}
.session-head{padding:20px 20px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.day-caption{font-size:12px;color:var(--muted);margin-bottom:5px}
.day-title{display:flex;gap:10px;align-items:baseline}
.day-title h2{font-size:20px}
.day-title span{color:var(--muted);font-size:13px}
.session-hours{font-size:14px;font-weight:600;text-align:right;white-space:nowrap}
.session-hours span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:6px}
.session-intro{padding:14px 20px;background:#fbfcf9;border-bottom:1px solid var(--line)}
.session-intro p{font-size:13px;color:var(--muted);margin-top:7px}
.session-focus{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:500}
.session-focus svg{width:16px;height:16px;color:var(--green)}
.timeline{padding:0 20px}
.timeline-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid #e9ece6}
.timeline-row:last-child{border-bottom:0}
.time{font-size:12px;font-weight:500;color:var(--muted);padding-top:3px;font-variant-numeric:tabular-nums}
.block-title{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:24px;font-size:14px;font-weight:600}
.duration{color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap}
.small-copy{font-size:13px;color:var(--muted);margin-top:5px;line-height:1.55}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}
.block-details>summary{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin:-10px 0}
.block-details[open]>summary{margin-bottom:0}
.block-details>summary .block-title{flex:1}
.chevron{color:var(--muted);width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s}
.chevron svg{width:16px;height:16px}
details[open]>summary>.chevron{transform:rotate(180deg)}
.tech-section{padding:0}
.tech-section>.block-title{margin-bottom:4px}
.tech-note{font-size:12px;color:var(--muted);margin:4px 0 12px}
.techniques{margin:12px -20px 0 -80px}
.technique{border-top:1px solid #e9ece6}
.technique>summary{display:flex;align-items:center;gap:12px;min-height:78px;padding:12px 20px}
.technique>summary:hover{background:#f9faf7}
.technique>summary>svg{width:16px;height:16px;color:var(--muted);transition:transform .15s}
.technique[open]>summary>svg{transform:rotate(180deg)}
.tech-row{scroll-margin-top:76px}
.tech-index{width:48px;flex-shrink:0;font-size:12px;font-weight:600;color:var(--accent)}
.tech-title{flex:1;min-width:0}
.tech-title strong{font-size:14px;font-weight:600;display:block}
.tech-title small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.technique.complement{background:#f2f6f2}
.technique.complement .tech-index{color:var(--green)}
.tech-body{padding:0 20px 20px 80px;font-size:14px;line-height:1.6}
.tech-body p{margin-top:8px}
.group-variant+.group-variant{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.group-variant h4{font-size:12px;margin:0 0 4px;color:var(--green);font-weight:600}
.body-label{font-size:12px;color:var(--muted);font-weight:600;display:block;margin-top:12px}
.tech-row{padding-bottom:0;border-bottom:0}
.lesson-footer{padding:14px 20px;background:#fafbf8;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px}
.lesson-footer span{color:var(--muted)}
.lesson-footer strong{font-weight:500}
.empty-session{padding:32px 20px;min-height:240px}
.empty-session .state-label{font-size:12px;color:var(--muted);margin-bottom:12px;display:block}
.empty-session h3{font-size:18px;font-weight:500}
.empty-session p{font-size:14px;color:var(--muted);margin-top:10px}
.action-button{min-height:44px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:10px 14px;font-size:13px;font-weight:500;margin-top:20px}
.action-button:hover{border-color:var(--ink)}
.event-content{padding:24px 20px}
.event-content h3{margin:12px 0 10px;font-size:18px}
.event-content p{font-size:14px;color:var(--muted);margin-top:8px}
.event-content details{margin-top:20px;padding-top:12px;border-top:1px solid var(--line)}
.event-content summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:500}
.level-guide{margin-top:24px}
.level-guide details{border:1px solid var(--line);border-radius:10px;background:var(--white)}
.level-guide>details>summary{padding:14px 20px;min-height:52px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500}
.level-guide>details>summary .chevron{margin-left:auto}
.level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 20px 20px;gap:24px}
.level-grid h3{font-size:13px;margin-top:4px}
.level-grid small{color:var(--muted);font-size:12px}
.level-grid p{color:var(--muted);font-size:13px;margin-top:8px}
.level-guide .selected-level{border-left:3px solid var(--accent);padding:12px 16px;background:var(--white)}
.footer{display:flex;justify-content:space-between;gap:24px;margin-top:32px;padding:24px 0 28px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.footer strong{display:block;font-size:13px;color:var(--ink);margin-bottom:4px;font-weight:500}
.footer p{text-align:right}
dialog{padding:0;border:1px solid var(--line);border-radius:16px;width:min(660px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--ink);background:var(--white);box-shadow:0 16px 80px #17271d33;overflow:hidden}
dialog[open]{display:flex;flex-direction:column}
dialog::backdrop{background:#17271d66;backdrop-filter:blur(3px)}
body.modal-open{overflow:hidden}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border-bottom:1px solid var(--line);flex-shrink:0}
.modal-head h2{margin-top:4px}
.icon-button{width:44px;height:44px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;flex-shrink:0}
.icon-button:hover{background:var(--paper)}
.modal-content{overflow-y:auto;padding:20px 24px 24px;overscroll-behavior:contain}
.modal-description{font-size:14px;color:var(--muted);margin-bottom:20px}
.searchbar{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--white)}
.searchbar svg{color:var(--muted);flex-shrink:0}
.searchbar input{border:0;outline:0;min-width:0;width:100%;min-height:48px;font-size:16px;background:transparent}
.searchbar:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.picker-toolbar{display:grid;grid-template-columns:1fr 150px;gap:12px;margin-bottom:16px}
.picker-toolbar select{width:100%;min-height:48px;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:0 12px;font-size:14px}
.result-count{color:var(--muted);font-size:12px;margin:12px 0}
.week-option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 12px;border:1px solid transparent;border-bottom:1px solid var(--line);min-height:76px;border-radius:5px}
.week-option:hover{background:var(--paper)}
.week-option[aria-current=true]{border:1px solid #9cac9d;background:var(--green-soft)}
.week-option .week-num{font-size:12px;color:var(--muted);width:34px;flex-shrink:0}
.week-option .week-info{flex:1;min-width:0}
.week-option strong{display:block;font-size:14px;font-weight:600}
.week-option small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.week-option .badge{flex-shrink:0}
.empty-result{padding:24px 0;text-align:center}
.empty-result p{font-size:14px;color:var(--muted)}
.empty-result button{min-height:44px;margin-top:12px;font-size:14px;text-decoration:underline}
.rules-source{padding:16px;background:var(--green-soft);border-radius:8px;font-size:13px;margin-bottom:20px}
.rules-source a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:600;color:var(--green)}
.rules-source p{color:var(--muted)}
.rules-source svg{width:16px;height:16px}
.rules-note{border-left:3px solid var(--accent);padding:8px 12px;font-size:13px;background:var(--accent-soft);margin-bottom:20px}
.rule{padding:16px 0;border-top:1px solid var(--line)}
.rule h3{font-size:14px;margin-bottom:6px}
.rule p{font-size:14px;line-height:1.6}
.rule .rule-use{font-size:13px;color:var(--muted);margin-top:6px}
.rule a{font-size:12px;display:inline-flex;align-items:center;min-height:44px}
.glossary-row{padding:16px 0;border-top:1px solid var(--line)}
.glossary-row span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.glossary-row strong{font-size:16px;font-weight:500;display:block}
.glossary-row p{font-size:14px;color:var(--muted);margin-top:3px}
.guide-body{font-size:14px;line-height:1.7}
.guide-body h3{margin-top:20px}
.guide-body p{margin-top:8px;color:var(--muted)}
.visual-available{color:var(--green);white-space:nowrap}
.tech-visual{margin:0 0 20px;padding-top:4px}
.reference-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--green);margin-bottom:8px}
.reference-heading>span:first-child{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.reference-heading svg{width:16px;height:16px}
.ai-label{font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap}
.visual-image-shell{position:relative;overflow:hidden;background:#f7f7f3;border:1px solid #e3e6dd;border-radius:8px}
.reference-open{display:block;width:100%;padding:0;text-align:left;cursor:zoom-in}
.reference-img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.reference-open:hover{border-color:#9cac9d}
.zoom-label{position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1.3;padding:7px 9px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 2px 6px #182b1b0a}
.zoom-label svg{width:14px;height:14px}
.reference-caption{display:flex;flex-direction:column;gap:2px;margin-top:10px;font-size:13px}
.reference-caption strong{font-weight:600}
.reference-caption span{font-size:12px;color:var(--muted)}
.reference-frames{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.reference-frames button{flex:1 1 105px;min-width:0;min-height:44px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;text-align:left;gap:6px;font-size:12px;line-height:1.3;background:var(--white)}
.reference-frames button span{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted)}
.reference-frames button[aria-pressed=true]{border-color:#7d9482;color:var(--green);background:var(--green-soft)}
.tech-body .reference-note{font-size:12px;color:var(--muted);line-height:1.55;margin-top:8px}
.tech-body .reference-review{font-size:12px;color:var(--muted);line-height:1.55;border-top:1px solid var(--line);padding-top:8px;margin-top:10px}
.image-fallback{display:none}
.visual-image-shell.is-error{min-height:140px;display:grid;place-items:center;padding:24px}
.visual-image-shell.is-error img,.visual-image-shell.is-error .zoom-label{display:none}
.visual-image-shell.is-error .image-fallback{display:block;font-size:13px;line-height:1.6;color:var(--muted);text-align:center}
.gallery-dialog{width:min(860px,calc(100vw - 32px))}
.gallery-dialog .modal-content{padding-top:16px}
.gallery-stage img{max-height:50dvh;object-fit:contain}
.gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}
.gallery-caption h3{font-size:16px}
.gallery-caption #gallery-english{font-size:13px;color:var(--muted)}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}
.gallery-nav{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:500}
.gallery-nav:hover:not(:disabled){background:var(--paper)}
.gallery-controls>span{font-size:12px;color:var(--muted)}
.gallery-note{font-size:13px;color:var(--muted);line-height:1.6;margin-top:12px}
.gallery-review{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:16px}
.gallery-review svg{width:16px;height:16px;flex-shrink:0;margin-top:2px}
@media(min-width:1100px){
  .shell{position:relative}
  .week-nav{position:absolute;right:32px;top:24px;width:375px}
  .page-intro{max-width:calc(100% - 460px)}
  .week-overview{padding-top:30px}
}
@media(max-width:1000px){
  .topbar-inner,.shell{padding-left:24px;padding-right:24px}
  .cycle-progress{gap:10px}
  .progress-step{min-width:44px}
  .session-head{padding:16px}
  .timeline{padding:0 16px}
  .timeline-row{grid-template-columns:42px minmax(0,1fr);gap:10px}
  .techniques{margin-left:-68px;margin-right:-16px}
  .technique>summary{padding-left:16px;padding-right:16px;gap:10px}
  .tech-index{width:42px}
  .tech-body{padding-left:68px;padding-right:16px}
  .session-intro,.lesson-footer{padding-left:16px;padding-right:16px}
  .session-head .day-title{display:block}
  .day-title span{display:block;margin-top:3px}
  .sessions{gap:16px}
  .brand-sub{font-size:12px}
}
@media(max-width:767px){
  html{scroll-padding-top:12px}
  .topbar-inner{padding:14px 16px;align-items:center;gap:12px}
  .brand{display:block}
  .brand strong{font-size:20px}
  .brand-sub{display:block;font-size:12px;border:0;padding:0;margin-top:5px}
  .resources{gap:0}
  .quiet-button{padding:4px 8px;gap:5px;flex-direction:column;font-size:12px;line-height:1.3}
  .quiet-button svg{width:18px;height:18px}
  .shell{padding:20px 16px 0}
  .page-intro{margin-bottom:12px}
  .eyebrow{font-size:12px;letter-spacing:.85px}
  .edition{font-size:12px;gap:6px}
  .prototype{font-size:12px}
  .week-nav{max-width:none;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}
  .nav-arrow{min-height:58px}
  .week-picker{padding:8px 12px}
  .week-range{font-size:18px}
  .week-overview{display:block;padding:20px 0}
  h1{font-size:22px;letter-spacing:-.6px}
  .cycle-kicker{margin-bottom:7px}
  .cycle-progress{margin-top:16px;gap:12px}
  .progress-step{flex:1;text-align:left;font-size:12px}
  .progress-step .step-bar{margin-bottom:6px}
  .week-overview .subtitle{display:none}
  .filters{display:block;margin:20px 0 16px}
  .segmented{max-width:none}
  .segmented button{padding:5px 8px;font-size:13px}
  .segmented button span{font-size:12px}
  .level-filter{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;margin-top:12px}
  .level-filter .field-label{margin:0}
  .level-filter .select-wrap{flex:1;max-width:204px}
  .select-wrap select{min-height:44px;font-size:13px;padding-left:12px}
  .safety-line{font-size:12px;margin-bottom:16px;gap:6px}
  .safety-line button{margin:0;min-height:44px;align-self:center}
  .day-switch{position:sticky;top:0;z-index:5;display:flex;background:var(--paper);padding:8px 0 12px;gap:8px;margin-top:-8px}
  .day-switch button{flex:1;min-height:48px;text-align:left;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:600;background:var(--white)}
  .day-switch button span{font-size:12px;font-weight:400;margin:1px 0 0;display:block}
  .day-switch #jump-tech{flex:0 0 64px;text-align:center;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
  .day-switch #jump-tech span{margin:0;font-size:12px}
  .day-switch #jump-tech[hidden]{display:none}
  .day-switch button[aria-pressed=true]{color:var(--white);background:var(--ink);border-color:var(--ink)}
  .sessions{display:block}
  .sessions[data-day=friday] .session[data-session=saturday],.sessions[data-day=saturday] .session[data-session=friday]{display:none}
  .session-head .day-title{display:flex}
  .day-title span{display:inline-block;margin-top:0}
  .session-head h2{font-size:20px}
  .session-head{padding:18px 16px}
  .session-hours{font-size:13px}
  .session-hours span{font-size:12px}
  .session-intro p{font-size:12px}
  .session-focus{font-size:12px}
  .timeline-row{padding-top:16px;padding-bottom:16px}
  .timeline-row.tech-row{padding-bottom:0}
  .tech-section{padding-top:0}
  .tech-title strong{font-size:14px}
  .tech-body{padding-left:16px;padding-bottom:20px}
  .technique>summary{min-height:80px}
  .level-guide{margin-top:16px}
  .level-guide>details>summary{font-size:13px;padding:14px 16px}
  .level-grid{display:block;padding:0 16px 20px}
  .level-grid>div+div{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
  .footer{display:block;margin-top:24px;padding:20px 0 24px}
  .footer p{text-align:left;margin-top:14px}
  dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:12px}
  .modal-head{padding:16px;gap:12px}
  .modal-head h2{font-size:19px}
  .modal-content{padding:16px}
  .picker-toolbar{grid-template-columns:1fr 105px;gap:8px}
  .picker-toolbar select{padding:0 8px}
  .week-option{padding:12px 6px;gap:8px}
  .week-option .week-num{width:26px;font-size:12px}
  .week-option .badge{font-size:12px;padding:3px 5px;max-width:76px}
  .week-option strong{font-size:13px}
  .week-option small{font-size:12px}
  .gallery-dialog{width:calc(100vw - 24px)}
  .gallery-stage img{max-height:42dvh}
  .gallery-caption{align-items:flex-start;gap:8px;margin-top:12px}
  .gallery-caption .ai-label{font-size:12px}
  .gallery-review{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
