/* BABA & KOKUM — base visual system. Tokens per B-design-direction §3 («КАЙМА»: the printed scarf as the layout law).
   Six named colours, two families (Cormorant Garamond + Manrope, vendored, Cyrillic), radius 0 on cloth/panels and 2px on controls,
   flat cloth (no shadows, no blur, no blend modes). Legacy variable names stay as aliases for the enhancement modules. */
:root{
  --field:#1B1F4B;--field-deep:#10133A;--field-raised:#252A5E;
  --cotton:#F3EAD8;--cotton-muted:#B8B2A6;
  --rose:#BE123C;--rose-ink:#EF8398;
  --selvedge:#D9B36A;--walnut:#1C1008;--ink-muted-light:#6B6478;
  --dye-night:#12163d;--dye-berry:#63153f;--dye-forest:#145141;--dye-sunset:#8b421f; /* = core.js palette tints */
  --kaima-rule:rgba(243,234,216,.3);--kaima-rule-strong:var(--cotton);
  --header-h:78px;--bar-h:0px;
  --t-micro:140ms;--t-stamp:220ms;--t-unfold:300ms;--t-tint:300ms;
  --ease-unfold:cubic-bezier(.16,1,.3,1);--ease-stamp:cubic-bezier(.2,.8,.2,1);--ease-press:cubic-bezier(.4,0,.6,1);--stagger:40ms;
  /* legacy aliases used by enhancement modules */
  --ink:var(--cotton);--muted:var(--cotton-muted);--gold:var(--selvedge);--berry:var(--rose);--panel:var(--field-raised);--line:var(--kaima-rule)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--field);color:var(--cotton);font-family:Manrope,system-ui,sans-serif;font-size:16px;line-height:1.6;overflow-x:clip}
.grain{display:none}
.site-header{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--kaima-rule);background:var(--field-deep);position:relative;z-index:5}
.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:inherit}
.brand-mark{color:var(--cotton);font-size:25px;line-height:1;display:grid;place-items:center;width:28px;height:28px}
.brand b{display:block;letter-spacing:.16em;font-family:"Cormorant Garamond",serif;font-size:18px;line-height:1.1}
.brand small{font-size:12px;letter-spacing:.24em;color:var(--cotton-muted)}
.journey-mini{display:flex;gap:14px;align-items:center;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--cotton-muted)}
.mini-track{width:130px;height:2px;background:var(--kaima-rule)}
.mini-track i{display:block;height:100%;width:16.6%;background:var(--selvedge);transition:width var(--t-tint) var(--ease-stamp)}
.sound-btn,.canvas-toolbar button{border:1px solid var(--kaima-rule);background:transparent;color:var(--cotton);border-radius:50%;width:38px;height:38px;cursor:pointer}
.screen{display:none;min-height:calc(100vh - 170px);padding:5vh 6vw 3vh}
.screen.is-active{display:block;animation:unfold var(--t-unfold) var(--ease-unfold)}
@keyframes unfold{from{clip-path:polygon(0 0,0 0,0 0);opacity:.6}to{clip-path:polygon(0 0,200% 0,0 200%);opacity:1}}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:600;margin:0;line-height:1.02;letter-spacing:.01em}
h1{font-size:clamp(40px,6vw,88px)}
h2{font-size:clamp(30px,4vw,56px);line-height:1.06}
h3{font-weight:500;line-height:1.15}
em{color:inherit;font-style:normal;font-weight:inherit}
.eyebrow{font-size:11px;letter-spacing:.08em;font-weight:600;color:var(--cotton-muted);text-transform:uppercase}
.panel-title,label{font-size:13px;letter-spacing:0;font-weight:600;color:var(--cotton)}
p{color:var(--cotton-muted);line-height:1.6}
.primary,.ghost,.order,.back,.surprise,.filter,.panel-link,.shuffle,.segmented button,.word-picks button,.restart,.tabs button{border:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer;border-radius:2px;transition:border-color var(--t-micro) var(--ease-stamp),background-color var(--t-micro) var(--ease-stamp),color var(--t-micro) var(--ease-stamp)}
.primary,.order{background:var(--cotton);color:var(--field);padding:16px 25px;font-weight:700}
.primary span{margin-left:22px}
.ghost,.back,.restart{background:transparent;color:var(--cotton);padding:15px 20px;border:1px solid var(--kaima-rule)}
.ghost:hover,.back:hover{border-color:var(--cotton)}
.primary:active,.ghost:active,.order:active{transform:scale(.98);transition:transform 120ms var(--ease-press)}
.surprise{background:transparent;color:var(--cotton);border:1px solid var(--kaima-rule);padding:12px 16px}
/* Begin */
.hero-copy{width:52%;padding-top:3vh;position:relative;z-index:2}
.hero-copy>p{max-width:590px;font-size:16px}
.hero-actions{display:flex;gap:12px;margin-top:30px}
.hero-facts{display:flex;gap:48px;margin-top:7vh}
.hero-facts b{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:30px;color:var(--cotton);display:block}
.hero-facts span{font-size:12px;color:var(--cotton-muted);letter-spacing:.04em}
.hero-art{position:absolute;right:5vw;top:15vh;width:42vw;height:64vh;overflow:visible}
.halo,.spark,.fold-pattern,.fold-bloom{display:none}
.scarf-fold{position:absolute;left:12%;right:12%;top:6%;aspect-ratio:1;background:var(--dye-night);border:0;overflow:visible}
.floating-card{position:absolute;padding:14px 18px;background:var(--field-deep);border:1px solid var(--kaima-rule);z-index:8}
.floating-card small{color:var(--cotton-muted);font-size:12px;letter-spacing:.06em;font-weight:600}
.floating-card b,.floating-card span{display:block}
.floating-card b{font-family:"Cormorant Garamond",serif;font-size:24px;font-weight:500;line-height:1.1;margin-top:2px}
.floating-card span{font-size:12px;color:var(--cotton-muted)}
.card-a{left:0;bottom:8%}
.card-b{right:0;top:4%}
/* chapters */
.chapter-head{display:flex;align-items:flex-start;gap:28px}
.chapter-head.compact{align-items:center;margin-bottom:30px}
.chapter-no{font-family:"Cormorant Garamond",serif;font-size:30px;color:var(--cotton-muted)}
/* Story */
.story-layout{display:grid;grid-template-columns:1.1fr 1fr;margin-top:35px;min-height:48vh}
.story-stage{position:relative;overflow:hidden;background:var(--field-deep);border:1px solid var(--kaima-rule)}
/* the Story stage is a flat plate that carries the drawn scarf (motif-art.js) and the chapter quote; the prairie-evening scene is gone (D-APP-7) */
.story-stage blockquote{position:absolute;z-index:7;bottom:5%;left:7%;right:7%;margin:0;font-family:"Cormorant Garamond",serif;font-size:24px;line-height:1.2;color:var(--cotton)}
.story-copy-card{padding:36px;background:var(--cotton);color:var(--walnut)}
.story-copy-card p{color:#3d3a44}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tabs button,.filter{background:transparent;color:var(--ink-muted-light);padding:8px;border-bottom:1px solid transparent;border-radius:0}
.tabs button.active{color:var(--walnut);border-color:var(--rose)}
.story-text{padding:35px 0}
.story-text h3{font-size:clamp(28px,3vw,42px)}
.timeline{display:flex;justify-content:space-between}
.timeline button{border:0;background:none;color:var(--ink-muted-light);font:inherit;font-size:12px;cursor:pointer}
.timeline i{display:block;width:9px;height:9px;border:1px solid var(--field);border-radius:50%;margin:auto}
.timeline button.active i{background:var(--field)}
.screen-nav{display:flex;justify-content:space-between;align-items:center;margin-top:30px;gap:12px;flex-wrap:wrap}
/* Unlock */
.unlock-meter{margin-left:auto;min-width:170px;font-size:13px;color:var(--cotton-muted)}
.unlock-meter b{color:var(--cotton)}
.unlock-meter div{height:3px;background:var(--kaima-rule);margin-top:8px}
.unlock-meter i{height:100%;width:62.5%;display:block;background:var(--selvedge);transition:width var(--t-tint) var(--ease-stamp)}
.motif-toolbar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.filter{color:var(--cotton-muted);border:1px solid var(--kaima-rule);border-radius:2px;padding:9px 16px}
.filter.active{color:var(--field);background:var(--cotton);border-color:var(--cotton)}
.motif-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.motif-card{min-height:175px;background:var(--field-raised);border:1px solid var(--kaima-rule);padding:18px;position:relative;cursor:pointer;transition:border-color var(--t-micro) var(--ease-stamp)}
.motif-card:hover{border-color:var(--selvedge)}
.motif-card .glyph{font-size:52px;color:var(--cotton)}
.motif-card h3{font-size:26px;margin-top:9px}
.motif-card p{font-size:13px;margin:6px 0}
.motif-card.locked{opacity:1;filter:none}
.motif-card.locked h3{color:var(--cotton-muted)}
/* Create */
.builder-shell{display:grid;grid-template-columns:210px minmax(350px,1fr) 230px;gap:24px;align-items:start} /* start, so the canvas sits at the top of the shell (D-APP-1) */
.panel{background:var(--field-raised);border:1px solid var(--kaima-rule);padding:18px}
.builder-motifs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:15px 0}
.builder-motif{aspect-ratio:1;background:var(--field-deep);border:1px solid var(--kaima-rule);display:grid;place-items:center;font-size:28px;color:var(--cotton);cursor:pointer}
.panel-link,.shuffle{width:100%;background:transparent;color:var(--cotton);padding:11px;border:1px solid var(--kaima-rule)}
.panel-link:hover,.shuffle:hover{border-color:var(--cotton)}
.canvas-wrap{text-align:center;position:sticky;top:calc(var(--bar-h) + 16px)}
.scarf-canvas{width:min(48vw,500px);aspect-ratio:1;margin:auto;position:relative;overflow:hidden;background:var(--dye-night);transition:transform var(--t-stamp) var(--ease-stamp),background-color var(--t-tint);transform:scale(var(--zoom,1))}
.palette-night{background:var(--dye-night)}.palette-berry{background:var(--dye-berry)}.palette-forest{background:var(--dye-forest)}.palette-sunset{background:var(--dye-sunset)}
.scarf-border,.corner,.motif-object,.star-field{display:none}
.canvas-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;color:var(--cotton-muted);font-size:12px;flex-wrap:wrap}
.canvas-toolbar .preview-pill{width:auto;border-radius:2px;padding:0 16px;margin-left:12px;font-size:13px}
.control-block{padding:15px 0;border-bottom:1px solid var(--kaima-rule)}
.swatches{display:flex;gap:10px;margin-top:12px}
.sw{width:34px;height:34px;border-radius:2px;border:2px solid transparent;background:var(--dye-night);cursor:pointer;transition:border-color var(--t-micro)}
.sw:nth-child(2){background:var(--dye-berry)}.sw:nth-child(3){background:var(--dye-forest)}.sw:nth-child(4){background:var(--dye-sunset)}
.sw.active{border-color:var(--cotton)}
.segmented{display:flex;margin-top:12px;gap:2px}
.segmented button{flex:1;background:var(--field-deep);color:var(--cotton-muted);padding:9px;border-radius:2px}
.segmented button.active{background:var(--cotton);color:var(--field)}
.layout-thumbs{display:flex;gap:7px;margin:12px 0}
.layout-thumb{height:45px;flex:1;background:var(--field-deep);border:1px solid var(--kaima-rule);position:relative;cursor:pointer;transition:border-color var(--t-micro)}
.layout-thumb.active{border-color:var(--cotton)}
.layout-thumb i{display:inline-block;width:7px;height:7px;background:var(--cotton-muted);border-radius:50%;margin:3px}
.layout-thumb.active i{background:var(--cotton)}
.reward-card{display:flex;gap:12px;margin-top:18px;padding:14px;background:var(--field-raised);border:1px solid var(--kaima-rule);align-items:flex-start}
.reward-card>span{flex:0 0 24px;display:grid;place-items:center;color:var(--cotton-muted);font-size:14px;line-height:24px}
.reward-card small,.reward-card b{display:block}
.reward-card small{font-size:12px;color:var(--cotton-muted);font-weight:600;letter-spacing:.04em}
.reward-card b{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:20px;line-height:1.2}
/* Meaning */
.meaning-layout{display:grid;grid-template-columns:.75fr 1.1fr .9fr;gap:22px;margin-top:32px}
.meaning-motifs,.story-editor,.story-preview-card{border:1px solid var(--kaima-rule);background:var(--field-raised);padding:24px}
.meaning-chip{padding:12px;border-bottom:1px solid var(--kaima-rule);font-family:"Cormorant Garamond",serif;font-size:21px;color:var(--cotton)}
.story-editor label{display:block;margin:15px 0 8px}
.story-editor input,.story-editor textarea{width:100%;background:var(--cotton);border:0;padding:14px;color:var(--walnut);font:inherit;border-radius:2px}
.word-picks{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.word-picks span{width:100%;font-size:12px;color:var(--cotton-muted)}
.word-picks button{padding:7px 11px;background:transparent;color:var(--cotton-muted);border:1px solid var(--kaima-rule);border-radius:2px}
.word-picks button.picked{background:var(--cotton);color:var(--field);border-color:var(--cotton)}
.story-preview-card{background:var(--cotton);color:var(--walnut);border-color:var(--cotton)}
.story-preview-card small{font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--ink-muted-light)}
.story-preview-card p{color:#3d3a44}
.story-preview-card h3{font-size:clamp(28px,2.6vw,38px);margin:15px 0}
.mini-scarf{position:relative;width:100%;aspect-ratio:1;height:auto;background:var(--dye-night);border:0;overflow:hidden;margin-top:12px}
/* Reveal */
.reveal-screen{position:relative}
.reveal-glow{display:none}
.reveal-screen.is-active{display:grid;grid-template-columns:.8fr 1.2fr;align-items:start;gap:4vw}
.reveal-left h2{font-size:clamp(40px,5.5vw,84px);margin:14px 0}
.final-actions{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0}
.order{background:var(--rose);color:var(--cotton)}
.restart{border:0;color:var(--cotton-muted);padding-left:0}
.reveal-scarf-wrap{text-align:center;position:sticky;top:calc(var(--header-h) + var(--bar-h) + 12px)}
.reveal-scarf{width:min(44vw,580px);aspect-ratio:1;margin:auto;position:relative;overflow:visible;background:var(--dye-night);border:0;transform:none;box-shadow:none}
.reveal-bloom,.reveal-leaf{display:none}
.edition{font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--cotton-muted);margin-top:18px}
/* nav */
.journey-nav{height:88px;border-top:1px solid var(--kaima-rule);display:flex;align-items:center;justify-content:center;position:relative;z-index:5;background:var(--field-deep)}
.journey-nav button{background:none;border:0;color:var(--cotton-muted);cursor:pointer;font:inherit}
.journey-nav button span{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--kaima-rule);border-radius:50%;margin:auto;font-size:13px;font-weight:600}
.journey-nav button small{font-size:12px;letter-spacing:.08em;font-weight:600}
.journey-nav button.active{color:var(--cotton)}
.journey-nav button.active span{border-color:var(--cotton)}
.journey-nav button.done span{border-color:var(--selvedge)}
.journey-nav i{width:55px;height:1px;background:var(--kaima-rule)}
.toast{position:fixed;left:50%;bottom:110px;transform:translate(-50%,20px);background:var(--cotton);color:var(--walnut);padding:13px 20px;opacity:0;transition:opacity var(--t-stamp) var(--ease-stamp),transform var(--t-stamp) var(--ease-stamp);z-index:20;font-weight:600;font-size:14px}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){
  .journey-mini{display:none}
  .screen{padding:35px 20px}
  .hero-copy{width:100%}
  .hero-art{position:relative;right:auto;top:auto;width:100%;max-width:440px;height:auto;aspect-ratio:1;margin:28px auto 0}
  .hero-facts{gap:22px}
  .story-layout,.meaning-layout,.reveal-screen.is-active{grid-template-columns:1fr}
  .story-stage{aspect-ratio:4/3;min-height:0;min-width:0;width:100%}
  .story-copy-card{padding:22px 18px}
  .timeline{flex-wrap:wrap;gap:4px;justify-content:flex-start}
  .timeline button{flex:1 1 auto;min-width:0;padding:6px 4px}
  .chapter-head.compact{flex-wrap:wrap}
  .unlock-meter{flex-basis:100%;margin-left:0}
  .builder-shell{grid-template-columns:1fr}
  .canvas-wrap{position:static}
  .motif-panel,.controls-panel{order:2}
  .scarf-canvas{width:min(86vw,500px)}
  .motif-grid{grid-template-columns:repeat(2,1fr)}
  .journey-nav i{width:10px}
  .journey-nav button small{display:none}
  .reveal-scarf-wrap{order:-1;position:static}
  .reveal-scarf{width:min(80vw,520px)}
}
@media(max-width:520px){
  h1{font-size:clamp(36px,11vw,48px)}
  .site-header{padding:0 18px}
  .hero-actions{flex-direction:column}
  .hero-facts{justify-content:space-between;gap:8px}
  .chapter-no{display:none}
  .motif-grid{grid-template-columns:1fr 1fr}
  .motif-card{min-height:150px;padding:12px}
  .motif-card .glyph{font-size:40px}
  .screen-nav .back{padding:12px 8px}
  .primary{padding:14px}
  .journey-nav{height:68px}
  .reveal-scarf{width:min(88vw,440px)}
}
@media(prefers-reduced-motion:reduce){
  .screen.is-active{animation:none}
  .mini-track i,.unlock-meter i,.scarf-canvas,.toast{transition:none}
}
