@font-face{font-family:'Excalifont';font-weight:400;font-display:swap;src:url(fonts/Excalifont-400.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/AtkinsonHyperlegible-400-latin.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/AtkinsonHyperlegible-700-latin.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-weight:400;font-style:italic;font-display:swap;src:url(fonts/AtkinsonHyperlegible-400i-latin.woff2) format('woff2')}

:root{
  --paper:#f8f5e8;--card:#faf7eb;--desk:#e9e2cc;--ink:#212020;--ink-soft:rgba(33,32,32,.7);
  --hand:'Excalifont','Comic Sans MS','DejaVu Sans',cursive;--text:'Atkinson Hyperlegible','DejaVu Sans',system-ui,sans-serif;
  --sage:#f0f1e0;--sage-deep:#e3e8cc;--sage-dot:#5f7a4a;
  --butter:#f9f3d1;--butter-deep:#f2e7b5;--butter-dot:#b8912a;
  --peach:#f8e9d9;--peach-deep:#f1d7c0;--peach-dot:#bf7350;
  --lavender:#e9e1ea;--lavender-deep:#dccfdf;--lavender-dot:#7d6a99;
  --mist:#eef2f4;--mist-deep:#dde6ec;--mist-dot:#5b7d94;
  --hand-radius:18px 7px 16px 9px / 9px 16px 7px 18px;
  --bar:48px;--nav:52px;
}
*{box-sizing:border-box}
html{background:var(--desk);color:var(--ink)}
body{margin:0;font-family:var(--text);background:
  radial-gradient(circle at 20% 10%,rgba(255,255,255,.35),transparent 50%),var(--desk);min-height:100vh}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:3px}
button{font:inherit;color:inherit}
:focus-visible{outline:3px dashed var(--ink);outline-offset:3px}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:8px;z-index:50}
.skip-link:focus{top:8px}
.print-only{display:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- chrome ---------- */
.deck-bar{position:fixed;inset:0 0 auto 0;height:calc(var(--bar) + env(safe-area-inset-top, 0px));display:flex;align-items:center;gap:16px;padding:env(safe-area-inset-top, 0px) max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px));z-index:10;
  background:rgba(248,245,232,.92);border-bottom:1.5px solid rgba(33,32,32,.18);backdrop-filter:blur(6px)}
.deck-home{font-family:var(--hand);font-weight:700;text-decoration:none;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.deck-portal{font-family:var(--hand);font-weight:700;text-decoration:none;white-space:nowrap;font-size:14px;color:var(--ink);opacity:.85;margin-right:4px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.deck-portal:hover{opacity:1;text-decoration:underline}
.deck-name{margin:0;font-family:var(--hand);font-size:17px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft)}
.deck-tools{display:flex;gap:6px;flex-wrap:nowrap}
.deck-tools button,.deck-tools a{background:var(--card);border:1.6px solid var(--ink);border-radius:var(--hand-radius);padding:7px 12px;min-height:40px;display:inline-flex;align-items:center;font-size:14px;cursor:pointer;text-decoration:none;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.deck-tools button:hover,.deck-tools a:hover{background:var(--butter-deep)}
.deck-tools [aria-pressed=true]{background:var(--sage-deep)}
.deck-nav{position:fixed;inset:auto 0 0 0;height:calc(var(--nav) + env(safe-area-inset-bottom, 0px));display:flex;align-items:center;gap:14px;padding:0 max(16px, env(safe-area-inset-right, 0px)) env(safe-area-inset-bottom, 0px) max(16px, env(safe-area-inset-left, 0px));z-index:10}
.deck-nav button{width:44px;height:44px;min-width:44px;min-height:44px;border:2px solid var(--ink);border-radius:var(--hand-radius);background:var(--card);font-size:20px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center}
.deck-nav button:hover{background:var(--butter-deep)}
.deck-nav button:disabled{opacity:.35;cursor:default}
.deck-progress{flex:1;height:8px;border:1.5px solid var(--ink);border-radius:8px;overflow:hidden;background:var(--card)}
.deck-progress span{display:block;height:100%;width:0;background:var(--ink);transition:width .3s ease}
.deck-count{font-family:var(--hand);font-weight:700;min-width:64px;text-align:center}
.deck-copy-status{position:fixed;left:50%;bottom:calc(64px + env(safe-area-inset-bottom, 0px));transform:translateX(-50%);margin:0;background:var(--ink);color:var(--paper);padding:8px 16px;border-radius:10px;font-size:14px;z-index:20}
.deck-copy-status:empty{display:none}

/* ---------- stage ---------- */
body[data-mode=deck]{overflow:hidden;height:100vh}
body[data-mode=deck] .deck{position:fixed;inset:calc(var(--bar) + env(safe-area-inset-top, 0px)) env(safe-area-inset-right, 0px) calc(var(--nav) + env(safe-area-inset-bottom, 0px)) env(safe-area-inset-left, 0px);display:grid;place-items:center;outline:none}
body[data-mode=deck] .slide{display:none}
body[data-mode=deck] .slide.is-current{display:flex}
body[data-mode=scroll] .deck{padding:calc(var(--bar) + env(safe-area-inset-top, 0px) + 20px) max(16px, env(safe-area-inset-right, 0px)) calc(var(--nav) + env(safe-area-inset-bottom, 0px) + 20px) max(16px, env(safe-area-inset-left, 0px));display:grid;gap:28px;justify-items:center;outline:none}
body[data-mode=scroll] .slide{display:flex}
body[data-mode=scroll] .deck-nav{background:rgba(233,226,204,.92)}

.slide{--wash:var(--butter);--wash-deep:var(--butter-deep);--dot:var(--butter-dot);
  position:relative;flex-direction:column;width:min(calc(100vw - 32px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)),calc((100vh - var(--bar) - var(--nav) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 16px) * 16 / 9));
  aspect-ratio:16/9;container-type:inline-size;background:var(--paper);border-radius:14px;overflow:hidden;
  box-shadow:0 1px 0 rgba(0,0,0,.06),0 22px 44px -24px rgba(70,45,10,.45);outline:none;scroll-margin-top:calc(var(--bar) + env(safe-area-inset-top, 0px) + 12px);
  --fs:1.72cqw;--fs-s:1.3cqw;--fs-xs:1.02cqw;--fs-h:3.3cqw;--fs-h1:5.4cqw;--fs-big:2.9cqw;--sp:1.4cqw}
body[data-mode=scroll] .slide{width:min(calc(100vw - 32px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)),1280px)}
.wash-sage{--wash:var(--sage);--wash-deep:var(--sage-deep);--dot:var(--sage-dot)}
.wash-butter{--wash:var(--butter);--wash-deep:var(--butter-deep);--dot:var(--butter-dot)}
.wash-peach{--wash:var(--peach);--wash-deep:var(--peach-deep);--dot:var(--peach-dot)}
.wash-lavender{--wash:var(--lavender);--wash-deep:var(--lavender-deep);--dot:var(--lavender-dot)}
.wash-mist{--wash:var(--mist);--wash-deep:var(--mist-deep);--dot:var(--mist-dot)}
.slide::before{content:'';position:absolute;left:-6%;top:-14%;width:44%;height:46%;background:var(--wash-deep);
  border-radius:58% 42% 61% 39% / 47% 58% 42% 53%;opacity:.85;z-index:0}
.slide::after{content:'';position:absolute;right:-4%;bottom:-10%;width:22%;height:26%;background:var(--wash);
  border-radius:44% 56% 38% 62% / 55% 41% 59% 45%;z-index:0}
.slide-inner{position:relative;z-index:1;flex:1;min-height:0;display:grid;gap:calc(var(--sp)*1.2) calc(var(--sp)*2.4);
  padding:calc(var(--sp)*2.6) calc(var(--sp)*3.4) calc(var(--sp)*3.1);grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}
.layout-split .slide-inner{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);grid-template-areas:"head head" "body visual"}
.layout-split .slide-head{grid-area:head}.layout-split .slide-body{grid-area:body}.layout-split .slide-visual{grid-area:visual}
.layout-visual .slide-inner{grid-template-rows:auto minmax(0,1fr) auto}
.layout-visual .slide-visual{order:2}.layout-visual .slide-body{order:3}
.layout-center .slide-inner{align-content:center;justify-items:center;text-align:center;grid-template-rows:auto auto}
.layout-center .slide-body{align-items:center;max-width:78%}
.layout-cover .slide-inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"head visual" "body visual";align-content:center}
.layout-cover .slide-head{grid-area:head;align-self:end}.layout-cover .slide-body{grid-area:body}.layout-cover .slide-visual{grid-area:visual}
.slide-head{min-width:0}
.eyebrow{margin:0 0 calc(var(--sp)*.35);font-weight:700;font-size:var(--fs-xs);letter-spacing:.14em;color:var(--ink-soft)}
.eyebrow::before{content:'✦ ';color:var(--dot)}
.slide-title{margin:0;font-family:var(--hand);font-weight:700;font-size:var(--fs-h);line-height:1.06;letter-spacing:-.005em;text-wrap:balance}
.slide-title::after{content:'';display:block;width:min(5.2em,70%);height:.26em;margin-top:.1em;background:var(--dot);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M2 9 C40 3 70 12 105 7 S170 3 198 6' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M2 9 C40 3 70 12 105 7 S170 3 198 6' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.layout-center .slide-title::after{margin-inline:auto}
.layout-cover .slide-title{font-size:var(--fs-h1);line-height:1}
.slide-body{min-height:0;display:flex;flex-direction:column;gap:calc(var(--sp)*.8);font-size:var(--fs);line-height:1.38}
.slide-body p{margin:0}
.slide-body strong{font-weight:700}
.slide-visual{min-height:0;min-width:0;display:flex;align-items:center;justify-content:center}
.slide-foot{position:absolute;z-index:1;left:calc(var(--sp)*3.4);right:calc(var(--sp)*2);bottom:calc(var(--sp)*.9);display:flex;justify-content:space-between;gap:var(--sp);font-size:var(--fs-xs);color:var(--ink-soft);line-height:1.3}
.slide-refs a{color:var(--ink-soft)}
.slide-num{font-family:var(--hand);font-weight:700;white-space:nowrap}
.small{font-size:var(--fs-s);color:var(--ink-soft)}

/* ---------- cover ---------- */
.cover-sub{font-family:var(--hand);font-size:calc(var(--fs)*1.35);line-height:1.2}
.cover-welcome{font-size:var(--fs);max-width:32em}
.cover-meta{font-size:var(--fs-s);color:var(--ink-soft)}

/* ---------- text components ---------- */
.big{font-family:var(--hand);font-weight:700;font-size:var(--fs-big);line-height:1.18;text-wrap:balance}
.maxim{font-family:var(--hand);font-size:calc(var(--fs)*1.28);line-height:1.22;padding-left:.6em;border-left:.22em solid var(--dot);text-wrap:balance}
.bullets{margin:0;padding:0;list-style:none;display:grid;gap:calc(var(--sp)*.55)}
.bullets li{position:relative;padding-left:1.35em}
.bullets li::before{content:'';position:absolute;left:.1em;top:.42em;width:.62em;height:.62em;border:2px solid var(--ink);background:var(--wash-deep);border-radius:55% 45% 60% 40% / 50% 60% 40% 50%}
.callout{position:relative;background:var(--wash);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:calc(var(--sp)*.75) calc(var(--sp)*1.05);font-size:var(--fs)}
.callout p{margin:0}.callout div > * + *{margin-top:.4em}
.callout-title{font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.08);margin-bottom:.15em!important}
.callout-title::before{display:inline-block;width:1.4em;height:1.4em;margin-right:.35em;border-radius:50%;background:var(--ink);color:var(--paper);text-align:center;line-height:1.45;font-size:.8em;vertical-align:.1em}
.callout-reassure{background:var(--lavender)}.callout-reassure .callout-title::before{content:'♥'}
.callout-nurse{background:var(--mist)}.callout-nurse .callout-title::before{content:'✚'}
.callout-careful{background:var(--peach)}.callout-careful .callout-title::before{content:'!'}
.callout-tip{background:var(--butter)}.callout-tip .callout-title::before{content:'✦'}
.analogy{background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:calc(var(--sp)*.8) calc(var(--sp)*1.1);font-size:var(--fs-s)}
.analogy p{margin:0}
.analogy-title{font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.05)}
.analogy-legend,.analogy li{display:grid;grid-template-columns:1fr 1.6em 1fr;gap:.4em;align-items:baseline}
.analogy-legend{margin:.3em 0 .15em!important;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.analogy-legend span:last-child{grid-column:3}
.analogy ul{list-style:none;margin:0;padding:0;display:grid;gap:.3em}
.analogy li span:first-child{font-weight:700}
.analogy .arrow{color:var(--dot);font-weight:700;text-align:center}
.analogy-limit{margin-top:.55em!important;padding-top:.45em;border-top:1.5px dashed rgba(33,32,32,.35)}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp)}
.cards.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cards.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cards.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:calc(var(--sp)*.75) calc(var(--sp)*.9);font-size:var(--fs-s);line-height:1.35}
.card:nth-child(5n+1){background:var(--sage)}.card:nth-child(5n+2){background:var(--butter)}.card:nth-child(5n+3){background:var(--peach)}.card:nth-child(5n+4){background:var(--lavender)}.card:nth-child(5n+5){background:var(--mist)}
.card-title{margin:0 0 .25em!important;font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.02);line-height:1.15}
.card p{margin:0}
.course-links{display:flex;flex-wrap:wrap;gap:.5em}
.pill{display:inline-block;background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:.25em .8em;font-size:var(--fs-s);text-decoration:none;font-weight:700}
.pill:hover{background:var(--wash-deep)}
.hint{font-size:var(--fs-s);color:var(--ink-soft);font-style:italic}

/* ---------- figures ---------- */
.sketch,.stepper{margin:0;min-height:0;width:100%;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:calc(var(--sp)*.5)}
.slide-body > .sketch,.slide-body > .stepper{flex:1 1 0}
.sketch svg,.stepper svg{width:100%;height:100%;display:block}
.sketch figcaption{font-size:var(--fs-s);color:var(--ink-soft);text-align:center}
.stepper{grid-template-rows:minmax(0,1fr) auto auto}
.stepper-art{min-height:0}
.step-captions{margin:0;padding:0;list-style:none;font-size:var(--fs-s);line-height:1.35}
.step-captions li{display:none}
.step-captions li.is-current{display:block}
.step-captions li::before{content:attr(data-n);display:inline-grid;place-items:center;width:1.55em;height:1.55em;margin-right:.45em;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--hand);font-weight:700;font-size:.9em}
.step-controls{display:flex;align-items:center;justify-content:center;gap:.8em;font-size:var(--fs-s)}
.step-controls button{border:2px solid var(--ink);border-radius:var(--hand-radius);background:var(--card);padding:.3em 1em;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs);cursor:pointer;line-height:1.2;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.step-controls button:hover{background:var(--wash-deep)}
.step-controls button:disabled{opacity:.3;cursor:default}
.step-count{font-family:var(--hand);font-weight:700}
[data-show]{transition:opacity .45s ease}
.is-hidden{opacity:0}
.is-focus{filter:drop-shadow(0 0 5px rgba(184,145,42,.75))}
.source-fig{margin:0;min-height:0;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.4em}
.source-fig img{flex:0 1 auto;max-width:100%;min-height:0;object-fit:contain;background:#fff;border:1.5px solid var(--ink);border-radius:6px;box-shadow:4px 4px 0 rgba(33,32,32,.12)}
.source-fig a{display:contents}
.source-fig figcaption{font-size:var(--fs-xs);color:var(--ink-soft);text-align:center;line-height:1.35}
.source-fig figcaption a{display:inline;color:var(--ink);font-weight:700}

/* ---------- interactions ---------- */
.quiz{display:grid;gap:calc(var(--sp)*.55)}
.quiz-q{font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.12);line-height:1.2}
.quiz-options{list-style:none;margin:0;padding:0;display:grid;gap:calc(var(--sp)*.45)}
.quiz-opt{width:100%;display:flex;align-items:center;gap:.6em;text-align:left;background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:.5em .8em;min-height:44px;font-size:var(--fs-s);line-height:1.3;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s,transform .15s}
.quiz-opt:hover{background:var(--wash-deep);transform:translateX(3px)}
.quiz-letter{flex:none;display:grid;place-items:center;width:1.6em;height:1.6em;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--hand);font-weight:700}
.quiz-opt.is-correct{background:var(--sage-deep)}
.quiz-opt.is-correct .quiz-letter{background:var(--sage-dot)}
.quiz-opt.is-correct .quiz-letter::after{content:'✓';position:absolute}
.quiz-opt.is-correct .quiz-letter{position:relative;color:transparent}
.quiz-opt.is-correct .quiz-letter::after{color:var(--paper)}
.quiz-opt.is-wrong{background:var(--peach-deep)}
.quiz-fb{margin:.3em 0 .1em .9em!important;padding:.1em 0 .1em .7em;border-left:3px solid var(--dot);font-size:var(--fs-s);line-height:1.35}
.quiz-status{font-size:var(--fs-s);font-weight:700;min-height:1.2em}
.quiz-status:empty{display:none}
.flips-wrap{display:grid;gap:calc(var(--sp)*.5)}
.flips{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp);grid-template-columns:repeat(2,minmax(0,1fr))}
.flips.n3,.flips.n6{grid-template-columns:repeat(3,minmax(0,1fr))}
.flips.n1{grid-template-columns:1fr}
.flip{position:relative;display:grid;width:100%;min-height:calc(var(--fs)*5.6);padding:0;border:0;background:none;cursor:pointer;perspective:900px;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.flip-front,.flip-back{grid-area:1/1;display:flex;align-items:center;padding:.6em .85em;border:2px solid var(--ink);border-radius:var(--hand-radius);backface-visibility:hidden;transition:transform .5s ease;font-size:var(--fs-s);line-height:1.35}
.flip-front{background:var(--card);font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.02);line-height:1.2}
.flip-front::after{content:'↻';position:absolute;right:.5em;bottom:.3em;font-size:.8em;color:var(--ink-soft)}
.flip-back{background:var(--wash-deep);transform:rotateY(180deg)}
.flip[aria-expanded=true] .flip-front{transform:rotateY(-180deg)}
.flip[aria-expanded=true] .flip-back{transform:rotateY(0)}
.reveal{display:grid;gap:.5em}
.reveal-btn{justify-self:start;background:var(--ink);color:var(--paper);border:0;border-radius:var(--hand-radius);padding:.5em 1.2em;min-height:44px;font-size:var(--fs-s);font-weight:700;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.reveal-btn[aria-expanded=true]{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.reveal-body{background:var(--card);border:2px dashed var(--ink);border-radius:var(--hand-radius);padding:.6em .9em;font-size:var(--fs-s);line-height:1.4}
.reveal-body > * + *{margin-top:.4em}
.reveal-body ul,.answer ul{margin:.2em 0;padding-left:1.2em}
.checkin{display:grid;gap:calc(var(--sp)*.7)}
.checkin-q{font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.15)}
.checkin-options{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp);justify-content:center}
.checkin-opt{display:grid;justify-items:center;gap:.25em;width:calc(var(--fs)*6.4);min-height:44px;padding:.55em .3em;background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);font-size:var(--fs-s);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .15s,background .2s}
.checkin-opt:hover{transform:translateY(-3px);background:var(--wash-deep)}
.checkin-opt[aria-pressed=true]{background:var(--lavender-deep)}
.face{width:calc(var(--fs)*2.6);height:calc(var(--fs)*2.6);color:var(--ink)}
.checkin-fb{margin:0 auto!important;max-width:36em;background:var(--lavender);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:.6em 1em;font-size:var(--fs);text-align:center}
.checkin-options li:has(.checkin-fb:not([hidden])){display:contents}
.checkin-status:empty{display:none}
.feynman{display:grid;gap:.5em}
.feynman label{font-family:var(--hand);font-weight:700;font-size:calc(var(--fs)*1.08);line-height:1.2}
.feynman textarea{width:100%;font:inherit;font-size:16px!important;background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:.5em .7em;resize:vertical;touch-action:manipulation}
.term{background:#fef08a;color:#1c1917;padding:1px 5px;border-radius:4px;border-bottom:2px solid #ca8a04;box-shadow:0 1px 2px rgba(0,0,0,.06);cursor:help;font-weight:600;display:inline-block;line-height:1.25;touch-action:manipulation;transition:all .15s ease}
.term:hover,.term:focus-visible{background:#fde047;border-bottom-color:#a16207;transform:translateY(-1px);outline:none}
.term-pop{position:fixed;z-index:30;max-width:min(340px,calc(100vw - 16px));background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:10px 14px;box-shadow:0 10px 24px -12px rgba(0,0,0,.45);font-size:15px;line-height:1.4}
.term-pop p{margin:0 0 6px}
.term-pop .term-name{font-family:var(--hand);font-weight:700;font-size:18px}
.term-pop a{font-weight:700;font-size:14px}

/* ---------- auto slides ---------- */
.gloss{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--sp)*.6) calc(var(--sp)*2);margin:0}
.gloss div{break-inside:avoid}
.gloss dt{font-family:var(--hand);font-weight:700;font-size:var(--fs)}
.gloss dd{margin:0;font-size:var(--fs-s);line-height:1.35}
.answers{list-style:none;margin:0;padding:0;display:grid;gap:calc(var(--sp)*.7)}
.answer{background:var(--card);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:.5em .9em;font-size:var(--fs-s);line-height:1.38}
.answer p{margin:0}.answer > * + *{margin-top:.3em}
.answer-title{font-family:var(--hand);font-weight:700;font-size:var(--fs)}
.refs-list{margin:0;padding-left:1.2em;font-size:var(--fs-s);display:grid;gap:.25em}

/* ---------- notes, overview ---------- */
.slide-notes{position:fixed;left:16px;right:16px;bottom:calc(var(--nav) + env(safe-area-inset-bottom, 0px) + 8px);max-height:28vh;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:12;background:var(--ink);color:var(--paper);border-radius:12px;padding:10px 16px;font-size:15px;line-height:1.45}
.slide-notes p{margin:0 0 6px}
.notes-title{font-family:var(--hand);font-weight:700}
body[data-mode=deck] .slide:not(.is-current) .slide-notes{display:none}
body[data-mode=scroll] .slide-notes{position:absolute;left:auto;right:12px;top:12px;bottom:auto;width:38%}
dialog#deck-overview{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 40px);background:var(--paper);border:2px solid var(--ink);border-radius:16px;padding:18px 22px;color:var(--ink);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
dialog#deck-overview::backdrop{background:rgba(33,32,32,.45)}
.ov-head{display:flex;justify-content:space-between;align-items:center}
.ov-head h2{margin:0;font-family:var(--hand)}
.ov-head button{border:2px solid var(--ink);background:var(--card);border-radius:50%;width:44px;height:44px;min-width:44px;min-height:44px;font-size:20px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ov-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:10px}
.ov-section{margin:0 0 4px;font-family:var(--hand);font-weight:700;font-size:18px;display:inline-block;padding:0 10px;border-radius:8px;background:var(--wash-deep,var(--butter-deep))}
.ov-list ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px}
.ov-list a{display:flex;gap:8px;text-decoration:none;padding:4px 6px;border-radius:8px;font-size:15px}
.ov-list a:hover,.ov-list a[aria-current=true]{background:var(--butter-deep)}
.ov-list a span{font-family:var(--hand);font-weight:700;min-width:1.6em}
.noscript{max-width:760px;margin:20px auto;padding:12px;background:var(--card);border:2px solid var(--ink);border-radius:12px}

/* ---------- small screens: slides reflow ---------- */
@media (max-width:760px){
  .deck-tools button[data-action=fullscreen],.deck-tools button[data-action=notes],.deck-name{display:none}
  .deck-tools{overflow-x:auto}
  body[data-mode] {overflow:auto;height:auto}
  body[data-mode] .deck{position:static;display:grid;gap:18px;padding:calc(var(--bar) + 12px) 10px calc(var(--nav) + 16px)}
  body[data-mode=deck] .slide{display:none}
  body[data-mode=deck] .slide.is-current{display:flex}
  .slide,body[data-mode=scroll] .slide{width:100%;aspect-ratio:auto;min-height:0;--fs:17px;--fs-s:15px;--fs-xs:12.5px;--fs-h:28px;--fs-h1:36px;--fs-big:23px;--sp:14px}
  .slide-inner,.layout-split .slide-inner,.layout-cover .slide-inner{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:none;padding:22px 18px 48px}
  .layout-split .slide-head,.layout-split .slide-body,.layout-split .slide-visual,.layout-cover .slide-head,.layout-cover .slide-body,.layout-cover .slide-visual{grid-area:auto}
  .layout-center .slide-body{max-width:100%}
  .sketch,.stepper,.source-fig{height:auto}
  .sketch svg,.stepper svg{height:auto;max-height:60vh}
  .source-fig img{max-height:55vh}
  .slide-body > .sketch,.slide-body > .stepper{flex:none}
  .cards.cols-3,.cards.cols-4,.flips,.flips.n3,.flips.n6,.gloss{grid-template-columns:minmax(0,1fr)}
  .slide-foot{left:18px;right:18px;bottom:12px}
  .deck-nav{background:rgba(233,226,204,.95)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- print: one slide per 16:9 page, answers grouped at the end ---------- */
@page{size:1280px 720px;margin:0}
@media print{
  html,body{background:var(--paper)!important;height:auto!important;overflow:visible!important}
  .deck-bar,.deck-nav,.deck-copy-status,dialog,.term-pop,.screen-only,.slide-notes,.skip-link,noscript,.quiz-fb,.quiz-status,.checkin-fb,.checkin-status{display:none!important}
  .print-only{display:block}
  .deck{position:static!important;display:block!important;padding:0!important}
  .slide,body[data-mode] .slide{display:flex!important;width:1280px!important;height:720px!important;aspect-ratio:auto!important;margin:0!important;border-radius:0!important;box-shadow:none!important;break-after:page;page-break-after:always;
    --fs:1.72cqw;--fs-s:1.3cqw;--fs-xs:1.02cqw;--fs-h:3.3cqw;--fs-h1:5.4cqw;--fs-big:2.9cqw;--sp:1.4cqw}
  .slide:last-child{break-after:auto}
  .is-hidden{opacity:1!important}
  .is-focus{filter:none!important}
  .step-captions li{display:block;margin-top:.15em}
  .flip-front,.flip-back{transform:none!important;backface-visibility:visible}
  .flip{display:grid;gap:.3em;min-height:0}
  .flip-front,.flip-back{grid-area:auto}
  .flip-front::after{content:none}
  .quiz-opt{transform:none!important}
  .answer-pointer{font-size:var(--fs-xs);font-style:italic;color:var(--ink-soft)}
  .reveal-print .reveal-label{font-weight:700}
  .writing-lines{height:calc(var(--fs)*7);background:repeating-linear-gradient(transparent 0 calc(var(--fs)*1.35 - 1px),rgba(33,32,32,.35) calc(var(--fs)*1.35 - 1px) calc(var(--fs)*1.35))}
  .checkin-note{font-size:var(--fs);text-align:center;background:var(--lavender);border:2px solid var(--ink);border-radius:var(--hand-radius);padding:.5em 1em;max-width:36em;margin:0 auto}
  a{text-decoration:none}
}

/* ---------- sketch diagram motion (animated-sketch-diagram recipes) ---------- */
.slide svg text{font-family:var(--hand);fill:var(--ink)}
.slide svg .t-strong{font-weight:700}
.dot{--loop:3000ms;offset-rotate:0deg;transform-box:fill-box;transform-origin:center;
  animation:travel var(--t,var(--loop)) linear infinite,breathe calc(var(--loop) / 4) ease-in-out infinite}
.d2{animation-delay:calc(var(--t,3000ms) / -3),0s}.d3{animation-delay:calc(var(--t,3000ms) * -2 / 3),0s}
@keyframes travel{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes breathe{50%{transform:scale(1.35)}}
.spin{transform-box:fill-box;transform-origin:center;animation:spin 3s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pulse{transform-box:fill-box;transform-origin:center;animation:pulse 1.5s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.18)}}
.beat{transform-box:fill-box;transform-origin:center;animation:beat 1s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.07)}30%{transform:scale(.98)}45%{transform:scale(1.04)}}
@media print{.dot{animation:none;offset-distance:35%}}
