:root{--paper:#fffcf5;--ink:#14312c;--teal:#0e5d57;--rose:#85394b;--line:#ced8cd;--sage:#e4ecdc;--sans:Figtree,system-ui,sans-serif;--serif:Fraunces,Georgia,serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.5 var(--sans);letter-spacing:0}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:10px 16px;min-height:44px}button:disabled{opacity:.45;cursor:default}button img{width:20px;height:20px;vertical-align:middle}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:4px}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.16;letter-spacing:0}h1{font-size:38px;margin:4px 0}h2{font-size:28px;margin:10px 0 18px}h3{font-size:24px}.starter-mast{max-width:1440px;margin:auto;padding:22px 32px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.starter-mast>a{font:26px var(--serif);text-decoration:none}.starter-mast>span{margin-left:auto;font-size:13px;color:#526d62}.starter-mast button{padding:8px}.skip{position:absolute;top:-100px}.skip:focus{top:0}#chapter,.starter-review{max-width:1440px;margin:auto;padding:24px 32px 48px}.mission-title{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:24px}.mission-title p,.speaker,.eye{font-size:13px;color:var(--rose);margin:0}.mission-title>span{font-size:14px;white-space:nowrap}.chapter-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:36px;align-items:start}.starter-scene{aspect-ratio:3/2;position:relative;background:#f0f4ed;overflow:hidden;border-radius:6px;min-width:0}.starter-scene>img{width:100%;height:100%;object-fit:contain;display:block}.story{min-width:0;padding:16px 0;display:flex;flex-direction:column;min-height:400px}.story>p{margin-top:0}.story #feedback{font-size:15px;color:var(--teal);min-height:24px;margin-top:14px}.chapter-nav{display:flex;gap:12px;margin-top:auto;padding-top:20px}.chapter-nav .primary{margin-left:auto;background:var(--teal);color:white;min-width:120px}.course-plan{border-top:1px solid var(--line);margin-top:32px;padding-top:18px;font-size:15px}.course-plan summary{cursor:pointer}.course-plan ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding-left:22px}.course-plan li{padding:8px}.course-plan li strong{display:block;margin-bottom:8px}.course-plan p{color:#526d62}textarea{width:100%;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:6px;background:white;min-height:100px}label{display:block;font-size:15px;margin:12px 0 8px}.choices{display:grid;gap:10px}.choices button{text-align:left}.choices button[aria-pressed=true]{background:var(--sage);border-color:var(--teal)}.scene-caption{position:absolute;bottom:16px;left:16px;right:16px;background:var(--paper);padding:10px 14px;font-size:14px;border-radius:4px}.hotspots{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.hotspots button[aria-pressed=true]{background:var(--teal);color:white}.sketch-area{height:100%;display:flex;flex-direction:column}.sketch-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:var(--paper);align-items:center}.sketch-toolbar button{padding:6px;min-width:40px;min-height:40px}.sketch-toolbar button[aria-pressed=true]{outline:2px solid var(--teal);outline-offset:1px}.swatch{width:28px;height:28px;display:block;border-radius:50%;border:1px solid #14312c44}.sketch-toolbar select{max-width:110px;padding:6px;background:white;border:1px solid var(--line);border-radius:4px}.drawing{width:100%;height:100%;min-height:0;flex:1;display:block;touch-action:none;background:white}.art-reference{position:absolute;right:12px;bottom:12px;width:120px;border:3px solid white;pointer-events:none}.lab{height:100%;padding:28px;display:flex;flex-direction:column;justify-content:center;background:#e5eeeb}.track{height:100px;position:relative;border-bottom:2px solid #537165;margin:20px 0}.wheel{position:absolute;bottom:0;left:0;border:7px solid #255c55;border-radius:50%;background:var(--paper);display:grid;place-items:center;transition:transform 1.2s ease}.wheel:before{content:'';height:45%;width:4px;background:var(--rose);position:absolute;top:0;left:calc(50% - 2px)}.track small{position:absolute;right:0;bottom:8px}.lab .result{font:20px var(--serif);margin:8px 0}.lab label{display:flex;gap:12px;align-items:center}.lab input{min-width:0;flex:1}.mini-gallery{width:100%;height:100%;object-fit:contain;background:white}.starter-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:16px 0 24px}.starter-heading h2{margin:8px 0}.starter-heading .small{font-size:13px}.starter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.starter-card{display:block;text-decoration:none;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper);transition:transform .2s}.starter-card:hover{transform:translateY(-3px)}.starter-card>img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.starter-card>div{padding:16px}.starter-card small{font-size:12px;color:var(--rose)}.starter-card h3{font-size:22px;min-height:54px;margin:12px 0}.starter-card span{display:flex;justify-content:space-between;font-size:14px}.starter-card span img{width:18px;height:18px}.review-note{max-width:740px;font-size:15px;margin-top:32px}.starter-shelf{margin-bottom:32px}.starter-shelf .starter-heading h2{font-size:28px}
@media(max-width:850px){.chapter-layout{grid-template-columns:1fr;gap:12px}.story{min-height:0;padding:8px 0}.starter-scene{max-height:470px}.course-plan ol{grid-template-columns:1fr 1fr}.starter-grid{grid-template-columns:1fr 1fr}.starter-heading{align-items:start;flex-direction:column}.starter-mast{padding:16px 20px}#chapter,.starter-review{padding:20px}.mission-title{align-items:start}h1{font-size:30px}.starter-mast>span{max-width:160px;text-align:right;font-size:12px}.lab{padding:12px}.track{height:70px;margin:10px 0}.wheel{border-width:5px}.art-reference{width:80px}.sketch-toolbar{gap:4px;padding:6px}.sketch-toolbar button{min-width:32px;min-height:36px}.swatch{width:24px;height:24px}}
@media(max-width:430px){.starter-grid{grid-template-columns:1fr}.course-plan ol{grid-template-columns:1fr}.starter-mast>a{font-size:21px}.mission-title{gap:10px}h1{font-size:26px}.starter-scene:has(.sketch-area){aspect-ratio:1/1}.lab .result{font-size:16px}}
.drawing-reference{display:block;width:100%;max-height:180px;object-fit:cover;object-position:center;border-radius:4px;margin-bottom:16px}
.starter-scene:has(.sketch-area){aspect-ratio:auto;max-height:none}.drawing{height:auto;aspect-ratio:3/2;flex:none}
.starter-scene:has(.lab){aspect-ratio:auto;min-height:400px}.lab{min-height:400px}.track small{top:0;left:0;right:auto;bottom:auto;font-size:12px}.track{height:100px}
@media(max-width:850px){.starter-scene:has(.lab),.lab{min-height:340px}.track{height:82px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

.speaker-row{display:flex;align-items:center;gap:10px;margin:0 0 6px}.speaker-row .portrait{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#f0f4ed}.starter-mast .small{font-size:12px;color:#526d62}.chapter-nav .primary.glow{animation:nk-glow 1.1s ease-in-out infinite alternate}@keyframes nk-glow{from{box-shadow:0 0 0 0 #e9b44c00}to{box-shadow:0 0 0 6px #e9b44c}}#line .w{transition:background .2s}#line .w.lit{background:#fff3c4;border-radius:4px}
/* The colouring page and the paint kit. */
.colouring-page{width:100%;height:100%;display:grid;place-items:center;background:#fff}.colouring{width:100%;height:100%;display:block}.colouring [data-region]{cursor:pointer;transition:fill .15s}.colouring [data-region]:hover,.colouring [data-region]:focus-visible{stroke:#e9b44c;stroke-width:7;outline:none}
.starter-scene:has(.colouring-page){aspect-ratio:3/2}
.paint-kit{display:grid;gap:12px}.pots{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.pot{display:grid;justify-items:center;gap:2px;padding:6px 4px;min-height:44px;border-radius:10px;background:#fffdf8}.pot svg{width:40px;height:44px}.pot span{font-size:11px;line-height:1.1;text-align:center}.pot[aria-pressed=true]{border-color:#0e5d57;background:#e4ecdc;box-shadow:0 0 0 2px #0e5d57 inset}
.mix-bowl{display:flex;align-items:center;gap:10px;justify-content:flex-start;padding:8px 12px}.mix-bowl svg{width:48px;height:32px}.mix-bowl.mixing{border-color:#e9b44c;background:#fff8ec;animation:nk-glow 1.1s ease-in-out infinite alternate}
.gallery-wall{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;height:100%;padding:12px;background:#fff8ec}.gallery-wall figure{margin:0;display:grid;grid-template-rows:1fr auto;gap:6px;min-height:0}.gallery-wall svg,.gallery-wall img{width:100%;height:100%;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;min-height:0}.gallery-wall figcaption{font-size:12px;color:#526d62;text-align:center}
.starter-scene:has(.gallery-wall){aspect-ratio:auto;min-height:340px}
@media(max-width:850px){.gallery-wall{grid-template-columns:1fr}}
/* Pip shows you, and the size of her pencil (2026-09-24: three dots, thin to thick, on the tracing page and on her own paper). */
.nib-row{display:inline-flex;align-items:center;gap:6px;margin:8px 0;flex-wrap:wrap}.nib-row .small{color:#526d62}.nib-row button{min-width:44px;min-height:44px;padding:4px;display:grid;place-items:center}.nib-row .nib{display:block;border-radius:50%;background:#14312c}.nib-row button[aria-pressed=true]{background:var(--sage);border-color:var(--teal)}.sketch-toolbar .nib-row{margin:0}.sketch-toolbar .nib-row button{min-width:40px;min-height:40px}
.choices.row{grid-template-columns:repeat(3,minmax(0,1fr))}.choices.row button{text-align:center;padding:8px}
.pip-shows{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.pip-shows .eye{margin-bottom:8px}#showPanel{margin-top:10px}
.show-strokes svg{width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:6px}.show-strokes .ghost{fill:none;stroke:#e4ecdc;stroke-width:6;stroke-linecap:round}.show-strokes .moving{fill:none;stroke:#0e5d57}
.show-brushes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.show-brushes button{display:grid;gap:4px;justify-items:center;padding:8px}.show-brushes svg{width:100%;height:auto}.show-brushes span{font-size:13px}.show-brushes button[aria-pressed=true]{background:var(--sage);border-color:var(--teal)}
.show-wheel{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center}.show-wheel svg{width:140px;height:140px}.show-wheel [data-wedge]{cursor:pointer}.show-wheel [data-wedge]:hover{stroke:#14312c}
@media(max-width:850px){.show-wheel{grid-template-columns:1fr}}
/* The sheet: layered paper for a pencil. The outline waits in grey until she has traced it. */
.sheet{position:relative;width:100%;background:#fff;border-radius:6px;overflow:hidden}.sheet .layer{position:absolute;inset:0;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.sheet.tracing .base{opacity:.28}
/* Once her shape is drawn, the dotted guide steps back so her own lines lead (the design: "the guide fades"). */
.drawing-sheet:not(.tracing) .base{opacity:.12}.sheet .ink{cursor:crosshair}.sheet .paint{mix-blend-mode:multiply}
.starter-scene:has(.sheet){aspect-ratio:auto;max-height:none;background:#fff}.sketch-area .drawing-sheet{border:1px solid var(--line)}
.paint-kit.locked{opacity:.45;pointer-events:none}.paint-kit.locked::after{content:"Trace the lines first.";display:block;font-size:13px;color:#526d62;margin-top:6px}
#drawTools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}#drawTools [data-brush]{min-height:40px;padding:6px 10px;font-size:14px}#drawTools [data-brush][aria-pressed=true],#drawTools [data-colour][aria-pressed=true]{background:var(--sage);border-color:var(--teal)}#drawTools [data-colour]{min-height:40px;padding:6px}#drawTools .swatch{display:block;width:22px;height:22px;border-radius:50%;border:1px solid #14312c}#drawStatus{flex:1;min-width:160px}
/* Rook's bench: the board in pieces and four little machines. */
.bench-wrap{width:100%;height:100%;display:grid;place-items:center;background:#fff;padding:8px}.bench{width:100%;height:auto;max-height:100%}.bench .part{cursor:pointer}.bench .part.on path,.bench .part.on rect,.bench .part.on circle{stroke:#e9b44c;stroke-width:5}.bench .part:focus-visible{outline:none}.bench .part:focus-visible *{stroke:#823747}
.parts-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}.parts-list button{text-align:left;padding:10px 12px}.parts-list button[aria-pressed=true]{background:var(--sage);border-color:var(--teal)}
.bench-wrap.spin{grid-template-columns:1fr 1fr;gap:16px}.bench-wrap.spin figure{margin:0;display:grid;gap:8px;justify-items:center;width:100%}.bench-wrap.spin svg{width:min(220px,100%);height:auto}.bench-wrap.spin figcaption{font-size:14px;display:grid;justify-items:center}.bench-wrap.spin output{font:600 18px var(--serif)}
.choices.row.two{grid-template-columns:1fr 1fr}
.bars{display:grid;gap:12px;margin:8px 0 12px}.bars>div{display:grid;grid-template-columns:52px 1fr;gap:4px 12px;align-items:center}.bars span{font-size:14px}.bar{height:16px;background:#e4ecdc;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:var(--teal);transition:width .3s}.bars output{grid-column:2;font-size:13px;color:#526d62}
.starter-scene:has(.bench-wrap){aspect-ratio:2/1;max-height:none}
@media(max-width:850px){.bench-wrap.spin{grid-template-columns:1fr}.starter-scene:has(.bench-wrap){aspect-ratio:auto;min-height:260px}}
.sheet .guide{pointer-events:none}
/* Praise, the moment it is earned: the companion's name and one line, warm and quiet, at the top of the screen where it never covers a button, and clicks pass through it. */
.starter-praise { position: fixed; z-index: 40; left: 50%; top: calc(12px + env(safe-area-inset-top, 0px)); pointer-events: none; transform: translateX(-50%); width: min(560px, calc(100vw - 32px)); box-sizing: border-box; box-shadow: 0 12px 30px -12px rgba(40, 40, 20, .35); margin: 0; padding: 12px 16px; border-radius: 12px; background: color-mix(in srgb, #f2cf4a 22%, #fffcf5); border: 1px solid color-mix(in srgb, #f2cf4a 55%, transparent); font: 500 16px/1.4 var(--sans, system-ui); max-width: 60ch; }
.starter-praise b { color: var(--oxblood, #85394b); }
.starter-praise.praise-in { animation: starter-praise-in .45s cubic-bezier(.2,.9,.3,1.3) both; }
@keyframes starter-praise-in { from { opacity: 0; transform: translate(-50%, -12px) scale(.97); } to { opacity: 1; transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .starter-praise.praise-in { animation: none; } }

