/* ---------- STAiGE case study ----------
   Afternoon Edition base. Spot color = STAiGE periwinkle (#5E80FF, sampled from the step checkmarks),
   only for outlines, step numbers, tags and small details, never for text. The deep navy lives only inside screens. */
.st{--peri:#5E80FF;--peri-soft:rgba(94,128,255,.16)}

/* ---------- header ---------- */
.st-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:40px;align-items:center}
.st-head .cs-facts{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr))}
.st-logo{display:block;width:min(100%,330px);height:auto;margin:14px 0 4px}
.st-badge{display:inline-block;margin-top:18px;font-family:var(--type);font-size:12.5px;letter-spacing:.04em;padding:6px 10px 5px;
  border:1.5px solid var(--peri);box-shadow:0 0 0 1px var(--ink) inset}
.st-status{grid-column:1 / -1;justify-self:start;margin-top:18px;font-family:var(--type);font-size:12.5px;letter-spacing:.1em;color:var(--ink);
  display:inline-flex;align-items:center;gap:8px}
.st-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--peri);box-shadow:0 0 0 1px var(--ink)}
.st-head .cs-credit{grid-column:1 / -1;margin-top:10px;font-family:var(--type);font-size:11.5px;letter-spacing:.04em;color:var(--ink-soft)}

/* hero: director's view and student prompter, overlapping; the giraffe ("Start a new play") peeks from behind */
.st-hero{position:relative;margin:0;min-height:360px}
.st-hero .scr{position:absolute;width:74%}
.st-hero .scr.a{left:0;top:0;transform:rotate(-1.6deg)}
.st-hero .scr.b{right:0;top:30%;transform:rotate(1.4deg);z-index:2}
.st-hero .giraffe{position:absolute;left:-26px;bottom:-14px;width:160px;height:auto;z-index:0;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(62,39,35,.2))}
.st-hero .scr.a{z-index:1}

/* ---------- screen frames: a simple browser frame on the paper, one kraft tape strip ---------- */
.scr .pic{padding:0;background:#fff;border:1px solid var(--ink);box-shadow:0 16px 28px -20px rgba(62,39,35,.55)}
.scr .bar{display:flex;align-items:center;gap:5px;height:20px;padding:0 9px;border-bottom:1px solid var(--ink);background:var(--paper-card)}
.scr .bar i{width:7px;height:7px;border-radius:50%;box-shadow:inset 0 0 0 1.2px var(--ink)}
.scr .bar i:first-child{box-shadow:inset 0 0 0 1.2px var(--ink),inset 0 0 0 4px var(--peri)}
.scr img{display:block;width:100%;height:auto}
.scr figcaption{font-family:var(--type);font-size:12px;letter-spacing:.04em;line-height:1.45;color:var(--ink-soft);margin-top:10px}
.scr.taped .pic::before{content:"";position:absolute;z-index:3;top:0;left:var(--tape-x,50%);width:96px;height:auto;aspect-ratio:var(--kt-ar);margin-left:-48px;
  background:var(--kt) center/100% 100% no-repeat;opacity:var(--kt-o);transform:translateY(-50%) rotate(var(--tape-r,var(--kt-r)));pointer-events:none}

/* ---------- Overview ---------- */
.client{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:32px;align-items:start}
.client .prose{max-width:none}
.portrait{margin:4px 0 0;transform:rotate(1.2deg)}
.portrait .pic{padding:8px 8px 10px}
.portrait img{filter:grayscale(1) contrast(1.06);aspect-ratio:3/4;object-fit:cover}
.pillars{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:3px double var(--ink);border-bottom:1px solid var(--ink)}
.pillars li{padding:18px 22px 22px}
.pillars li + li{border-left:1px solid var(--rule)}
.pillars li:first-child{padding-left:0}
.pillars .n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--peri);box-shadow:0 0 0 1px var(--ink);
  font-family:var(--type);font-size:13px;margin-bottom:12px}
.pillars .k{display:block;font-family:var(--type);font-size:12px;letter-spacing:.12em;color:var(--raspberry);margin-bottom:4px}
.pillars h4{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.2;margin:0 0 8px}
.pillars p{font-size:15px;line-height:1.55}
.who-creates{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:center}
.who-creates .prose{max-width:none}

/* ---------- Research: the paper pile (same as SoKids: hover, tap or focus lifts the sheets above) ---------- */
.piles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start;margin-top:8px;--room:110px}
.pile{position:relative;min-width:0;padding-top:var(--room)}
.pile-h{position:absolute;left:0;right:0;top:calc(var(--room) - 34px);font-family:var(--type);font-size:12px;letter-spacing:.06em;line-height:1.3;color:var(--ink)}
.pile-st{position:relative;--off:16px;--lift:70px}
.ps{position:absolute;left:0;right:0;top:calc(var(--k) * var(--off));z-index:calc(20 - var(--k));height:var(--h,170px);padding:14px 14px 12px;background:var(--paper-tex);
  border:1px solid rgba(62,39,35,.35);box-shadow:0 2px 4px -1px rgba(62,39,35,.22);
  transform:rotate(var(--rot));transform-origin:80% 100%;transition:transform .25s ease-out,box-shadow .25s ease-out;transition-delay:var(--dl,0ms);outline:none;cursor:default}
.ps.up{transform:translateY(calc(var(--lift) * -1)) rotate(calc(var(--rot) - 1.5deg));box-shadow:0 14px 18px -10px rgba(62,39,35,.45)}
.ps:focus-visible{box-shadow:0 0 0 2px var(--raspberry),0 2px 4px -1px rgba(62,39,35,.22)}
.ps.up:focus-visible{box-shadow:0 0 0 2px var(--raspberry),0 14px 18px -10px rgba(62,39,35,.45)}
.ps-in{position:absolute;left:14px;right:14px;bottom:calc(var(--off) + 10px)}
.ps h4{font-family:var(--serif);font-weight:400;font-size:15.5px;line-height:1.22;margin:0}
.ps .tk{font-size:13px;line-height:1.38;margin-top:7px}
.ps strong{font-weight:600}
.pile-tk{min-height:5.5em;font-size:13.5px;line-height:1.4;margin-top:12px;padding-top:8px;border-top:1px solid var(--hair)}
.pile-tk strong{font-weight:600}
.pile-tk .t{display:block;font-family:var(--serif);font-size:15px;line-height:1.25;margin-bottom:4px}
.anim .ps .tk{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.anim .ps h4{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
html:not(.anim) .pile{padding-top:0}
html:not(.anim) .pile-h{position:static;margin-bottom:10px}
html:not(.anim) .pile-st{display:grid;gap:8px}
html:not(.anim) .ps{position:relative;top:auto;height:auto;transform:none;transition:none}
html:not(.anim) .ps-in{position:static}
html:not(.anim) .pile-tk{display:none}
.ps.note-paper.note-paper.note-paper{border-image-width:50px 46px 18px 10px;padding-right:48px}
.ps.note-paper .ps-in{right:46px}

/* existing products: three review cards */
.revs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rev{background:var(--paper-tex);border:1px solid rgba(62,39,35,.28);padding:18px 18px 20px}
.rev h4{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.15;margin:0 0 6px}
.rev p{font-size:15px;line-height:1.5}
.rev .take{margin-top:10px;padding-top:10px;border-top:1px solid var(--hair)}
.by-label{font-family:var(--type);font-size:12.5px;letter-spacing:.12em;color:var(--raspberry);margin-bottom:12px}

/* what AI can and can't do */
.cando{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:3px double var(--ink)}
.cando > div{padding:18px 22px 20px}
.cando > div + div{border-left:1px solid var(--ink)}
.cando h4{font-family:var(--type);font-weight:400;font-size:12.5px;letter-spacing:.12em;margin:0 0 8px}
.cando ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:15.5px;line-height:1.5}
.cando .verdict{grid-column:1 / -1;border-top:1px solid var(--ink);border-left:0 !important;font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.2;text-align:center;padding:14px 18px}
.principle{border-left:3px solid var(--peri);box-shadow:-1px 0 0 var(--ink);padding:10px 0 10px 18px;max-width:62ch;font-size:17px;line-height:1.6}
.principle b{display:block;font-family:var(--type);font-weight:400;font-size:12px;letter-spacing:.12em;color:var(--raspberry);margin-bottom:4px}

/* ---------- Design: decisions ---------- */
.decision{font-family:var(--type);font-size:12.5px;letter-spacing:.12em;color:var(--raspberry);margin:0 0 6px}
.why{max-width:62ch;font-size:16px;line-height:1.55;margin-top:10px}
.why b{font-family:var(--type);font-weight:400;font-size:12px;letter-spacing:.1em;text-transform:uppercase}

/* four steps to a play: tabs with the step's animal, one big framed screen */
.steps{margin-top:22px}
.st-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.st-tab{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:15px;color:var(--ink);background:var(--paper-card);border:1px solid var(--ink);
  padding:6px 12px 6px 8px;cursor:pointer;min-height:48px}
.st-tab .num{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--peri);font-family:var(--type);font-size:12px;flex:none}
.st-tab img{width:48px;height:auto;flex:none}
.st-tab[aria-selected="true"]{background:var(--ink);color:var(--paper);box-shadow:0 0 0 2px var(--peri)}
.st-tab[aria-selected="true"] .num{background:var(--peri);color:var(--ink);border-color:var(--paper)}
.st-tab:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}
.st-tab.final{border-style:dashed}
.st-stage{position:relative;overflow:hidden;touch-action:pan-y}
.st-slide img{transition:transform .35s var(--ease),opacity .25s ease}
.st-slide.out img{opacity:0;transform:translateX(calc(var(--dir,1) * -24px))}
.st-slide.in-from img{opacity:0;transform:translateX(calc(var(--dir,1) * 24px));transition:none}
.st-cap{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:12px}
.st-cap p{font-size:16px;line-height:1.45}
.st-next{font:inherit;font-family:var(--type);font-size:13px;letter-spacing:.06em;border:0;border-bottom:1px solid var(--ink);background:none;padding:2px 0;cursor:pointer;white-space:nowrap;color:var(--ink)}
.st-next:hover{color:var(--raspberry);border-color:var(--raspberry)}
.st-next:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .st-tab[aria-selected="true"] img{animation:hop .5s cubic-bezier(.3,1.6,.5,1) 1}
}
@keyframes hop{0%{transform:translateY(0)}40%{transform:translateY(-7px)}100%{transform:translateY(0)}}

/* what the teacher gets: the tall play overview scrolls inside its frame */
.gets{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.gets ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.gets li{font-size:16px;line-height:1.5;padding-bottom:12px;border-bottom:1px solid var(--hair)}
.gets li b{font-family:var(--serif);font-weight:400;font-size:19px;display:block}
.tall .pic{height:520px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.tall .pic:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}

/* two screens, two jobs: a Director | Student switch over one frame */
.seg{display:inline-grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink);margin-bottom:16px}
.seg button{font:inherit;font-size:15px;padding:9px 20px;min-height:44px;border:0;background:var(--paper-card);color:var(--ink);cursor:pointer}
.seg button + button{border-left:1px solid var(--ink)}
.seg button[aria-checked="true"]{background:var(--ink);color:var(--paper)}
.seg button:focus-visible{outline:2px solid var(--raspberry);outline-offset:2px;position:relative}
.two-jobs .shot img{transition:opacity .3s ease}
.two-jobs .shot img + img{position:absolute;left:0;bottom:0;right:0}
.two-jobs .shot{position:relative;display:block}
.two-jobs .shot img[hidden]{display:block;opacity:0;visibility:hidden}
.two-jobs .caps p[hidden]{display:none}
.screens-note{display:flex;align-items:center;gap:14px;margin-top:18px;max-width:64ch;font-size:16px;line-height:1.55}
.screens-note svg{flex:none;width:74px;height:44px}

/* emoji expressions: a sticker grid, labels underneath, a line from the prompter beside it */
.emo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.emo-card{background:var(--paper-tex);border:1px solid rgba(62,39,35,.3);padding:18px 18px 16px}
.emo-card h4{font-family:var(--serif);font-weight:400;font-size:21px;margin:0 0 14px}
.emo-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 8px}
.emo-grid li{display:grid;justify-items:center;gap:4px;font-family:var(--type);font-size:11px;letter-spacing:.03em;outline:none;border-radius:6px;padding:2px 0}
.emo-grid img{width:42px;height:42px;object-fit:contain}
.emo-grid li:focus-visible{box-shadow:0 0 0 2px var(--raspberry)}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .emo-grid li:hover img,.emo-grid li:focus-visible img{animation:wig .45s ease-in-out 1}
}
@keyframes wig{0%,100%{transform:rotate(0)}30%{transform:rotate(-9deg)}65%{transform:rotate(7deg)}}
.emo-rule{margin-top:14px;font-size:15px;line-height:1.5}
.evidence{margin-top:22px;font-size:17px;line-height:1.55;font-weight:600;max-width:62ch}

/* stage map evolution: three versions side by side */
.maps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start;counter-reset:m}
.maps li{counter-increment:m}
.maps .no{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--peri);box-shadow:0 0 0 1px var(--ink);font-family:var(--type);font-size:12px;margin-bottom:10px}
.maps .txt{border:1px dashed var(--rule);padding:16px;font-size:15px;line-height:1.5;min-height:140px}
.maps .txt b{display:block;font-family:var(--serif);font-weight:400;font-size:19px;margin-bottom:6px}
.maps p.cap{font-size:14.5px;line-height:1.5;margin-top:10px}
.credit{margin-top:16px;font-family:var(--type);font-size:12px;letter-spacing:.04em;color:var(--ink-soft)}

/* ---------- tablet and phone ---------- */
@media (max-width:1100px){
  .piles{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
  .revs{grid-template-columns:minmax(0,1fr)}
  .maps{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .maps li:first-child{grid-column:1 / -1}
}
@media (max-width:900px){
  .st-head{grid-template-columns:minmax(0,1fr)}
  .st-head .cs-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .st-hero{margin-top:30px;min-height:0;aspect-ratio:16/11}
  .who-creates,.gets,.emo{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
  .client{grid-template-columns:minmax(0,1fr) 140px;gap:18px}
  .pillars{grid-template-columns:minmax(0,1fr)}
  .pillars li{padding:16px 0}
  .pillars li + li{border-left:0;border-top:1px solid var(--rule)}
  .cando{grid-template-columns:minmax(0,1fr)}
  .cando > div + div{border-left:0;border-top:1px solid var(--ink)}
  .tall .pic{height:420px}
}
@media (max-width:600px){
  .st-head .cs-facts{grid-template-columns:minmax(0,1fr)}
  .st-hero .giraffe{display:none}
  .piles{grid-template-columns:minmax(0,1fr)}
  .pile-st{--off:10px;--lift:48px}
  /* steps: tabs become a swipeable row */
  .st-tabs{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin-right:-20px}
  .st-tab{flex:none;scroll-snap-align:start}
  .st-tab img{width:36px}
  .maps{grid-template-columns:minmax(0,1fr)}
  .emo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .st-cap{flex-direction:column;gap:6px}
}
@media (max-width:420px){ .client{grid-template-columns:minmax(0,1fr)} .portrait{max-width:200px} }
@media (prefers-reduced-motion:reduce){
  .ps,.st-slide img,.two-jobs .shot img{transition:none}
}

/* polish after the first look */
.decision{border-top:1px solid var(--hair);padding-top:16px}
.decision + .cs-block-h{border-top:0;padding-top:0}
.st-tabs{gap:6px;flex-wrap:nowrap}
.st-tab{gap:6px;font-size:14px;padding:5px 10px 5px 6px}
.st-tab img{width:38px}
.st-tab .num{width:22px;height:22px;font-size:11px}
.two-jobs .caps{margin-top:16px}
.st-hero .giraffe{left:-30px;bottom:6px;width:160px}
@media (max-width:900px){ .st-tabs{flex-wrap:wrap} }
@media (max-width:600px){ .st-tabs{flex-wrap:nowrap} }

/* ================= five fixes ================= */

/* 5. client: text 7/12, photo 5/12 at about 300px, caption 8px under the photo */
.client{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px}
.portrait{justify-self:end;width:min(100%,300px);transform:rotate(1.2deg)}
.portrait figcaption{margin-top:8px}
.client + .pull{margin-top:56px}
.who-creates{display:block}
.who-creates .scr{max-width:620px}
@media (max-width:700px){ .client{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
@media (max-width:600px){
  .client{grid-template-columns:minmax(0,1fr);gap:22px}
  .client .portrait{order:-1;justify-self:center;width:220px}
}
@media (max-width:420px){ .client .portrait{max-width:none} }

/* 4. literature review: group label inside its column (two-line min), equal clippings, takeaway only below */
.research .cs-block-h{margin-bottom:22px}
.lit{--room:0px}
.lit .pile{padding-top:0;display:flex;flex-direction:column}
.lit .pile-h{position:static;min-height:2.6em;margin-bottom:12px}
.lit .ps{transition:transform .25s ease-out,box-shadow .25s ease-out}
.lit .ps.front{z-index:30;transform:translateY(-6px) rotate(calc(var(--rot) - 1deg));box-shadow:0 12px 16px -10px rgba(62,39,35,.45)}
.lit .ps-in{top:auto}
.anim .lit .ps h4{display:block;-webkit-line-clamp:unset;overflow:visible}
.lit .pile-tk{margin-top:14px;min-height:0}
html:not(.anim) .lit .pile-tk{display:none}
html:not(.anim) .lit .ps .tk{position:static}

/* 3. product cards: a screenshot in a thin browser frame, equal heights, takeaways at the bottom */
.revs{align-items:stretch}
.rev{display:flex;flex-direction:column}
.rev .take{margin-top:auto;padding-top:12px}
.rev > p:not(.take){margin-bottom:14px}
.rev-shot{margin:0 0 14px;border:1px solid var(--ink);background:#fff}
.rev-shot .bar{display:flex;align-items:center;gap:4px;height:16px;padding:0 7px;border-bottom:1px solid var(--ink);background:var(--paper-card)}
.rev-shot .bar i{width:6px;height:6px;border-radius:50%;box-shadow:inset 0 0 0 1.1px var(--ink)}
.rev-shot img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.rev-shot figcaption{font-family:var(--type);font-size:10.5px;letter-spacing:.04em;color:var(--ink-soft);padding:5px 8px;border-top:1px solid var(--hair);background:var(--paper-card)}

/* 2. AI drafts, people perform: five stages on one line */
.pipe{position:relative;padding:10px 0 6px}
.pipe-in{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:auto auto;row-gap:14px}
.pipe-line{position:absolute;left:10%;right:10%;top:29px;height:2px;background:var(--rule)}
.pipe-line i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(1)}
.pipe-stages{grid-column:1 / -1;grid-row:1;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.sg{position:relative;display:grid;justify-items:center;text-align:center;gap:6px;padding:0 6px}
.sg .dot{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper);position:relative;z-index:1}
.sg .dot svg{width:34px;height:34px}
.sg .dot g{fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sg.ai .dot{background:var(--peri)}
.sg b{font-family:var(--type);font-weight:400;font-size:14px;letter-spacing:.06em}
.sg .note{font-size:13.5px;line-height:1.35;color:var(--ink);max-width:16ch}
.br{grid-row:2;position:relative;border-top:2px solid var(--ink);margin:4px 8% 0;padding-top:10px;text-align:center}
.br::before,.br::after{content:"";position:absolute;top:-2px;width:2px;height:10px;background:var(--ink)}
.br::before{left:0}.br::after{right:0}
.br span{font-family:var(--serif);font-style:italic;font-size:20px}
.br-ai{grid-column:1 / 4}
.br-pp{grid-column:4 / 6}
.br-ai{border-color:var(--peri);box-shadow:0 -1px 0 var(--ink)}
.handoff{position:absolute;left:60%;top:-34px;transform:translateX(-50%);display:flex;align-items:flex-end;gap:2px;color:var(--raspberry);font-family:var(--hand);font-size:21px;white-space:nowrap;pointer-events:none}
.handoff svg{transform:scaleX(-1) rotate(10deg);margin-bottom:-14px}
.pipe{margin-top:56px}
.pipe-pull{margin-top:26px}
/* draw once: the line left to right, then the circles fill in order */
.anim .pipe:not(.in) .pipe-line i{transform:scaleX(0)}
.anim .pipe.in .pipe-line i{transition:transform 1.1s var(--ease)}
.anim .pipe:not(.in) .sg.ai .dot{background:var(--paper)}
.anim .pipe.in .sg .dot{transition:background-color .4s ease;transition-delay:calc(.25s + var(--i) * .22s)}
.anim .pipe:not(.in) .handoff,.anim .pipe:not(.in) .br{opacity:0}
.anim .pipe.in .handoff,.anim .pipe.in .br{opacity:1;transition:opacity .5s ease 1.2s}
@media (max-width:700px){
  /* phones: the line turns vertical, brackets on the side */
  .pipe{margin-top:24px}
  .pipe-in{grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:repeat(5,auto);row-gap:0}
  .pipe-line{left:29px;right:auto;top:30px;bottom:30px;width:2px;height:auto}
  .pipe-line i{transform-origin:top}
  .anim .pipe:not(.in) .pipe-line i{transform:scaleY(0)}
  .pipe-stages{grid-column:1;grid-row:1 / -1;grid-template-columns:minmax(0,1fr);row-gap:16px}
  .sg{grid-template-columns:60px minmax(0,1fr);justify-items:start;text-align:left;align-items:center;column-gap:14px;row-gap:2px;padding:0}
  .sg .dot{grid-row:1 / span 2}
  .sg .note{max-width:none}
  .br{grid-column:2;margin:0 0 0 10px;border-top:0;border-left:2px solid var(--ink);padding:0 0 0 10px;display:flex;align-items:center;text-align:left}
  .br::before,.br::after{left:-2px;width:10px;height:2px}
  .br::before{top:0}.br::after{top:auto;bottom:0;right:auto}
  .br-ai{grid-row:1 / 4;border-left-color:var(--peri);box-shadow:-1px 0 0 var(--ink)}
  .br-pp{grid-row:4 / 6;margin-top:16px}
  .br span{font-size:18px}
  .handoff{position:static;grid-column:1 / -1;grid-row:auto;transform:none;margin:8px 0 0 70px;font-size:19px}
  .handoff svg{display:none}
}

/* 1. what the teacher gets: list 5/12, one sticky frame 7/12 that crossfades */
.gets{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:36px;align-items:start}
.gets-list{list-style:none;padding:0;margin:0;display:grid;gap:0}
.gets-list li{border-bottom:1px solid var(--hair);padding:0}
.gr{display:block;width:100%;text-align:left;font:inherit;color:var(--ink);background:none;border:0;padding:14px 2px 16px;cursor:pointer;opacity:.6;transition:opacity .2s ease}
.gr b{display:inline-flex;align-items:baseline;gap:8px;font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.2;
  background:linear-gradient(var(--raspberry),var(--raspberry)) left bottom/0% 2px no-repeat;padding-bottom:3px;transition:background-size .25s ease}
.gr .arr{font-family:var(--sans);font-size:16px;color:var(--raspberry);opacity:0;transition:opacity .2s ease}
.gr > span{display:block;font-size:15.5px;line-height:1.5;margin-top:4px}
.gr.on{opacity:1}
.gr.on b{background-size:100% 2px}
.gr.on .arr{opacity:1}
.gr:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}
.gr-shot{display:none}
.gets-frame{position:sticky;top:28px}
.gets-frame .stack{position:relative;display:block;aspect-ratio:16/10}
.gets-frame .stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;opacity:0;transition:opacity .25s ease}
.gets-frame .stack img.on{opacity:1}
@media (max-width:900px){ .gets{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px} }
@media (max-width:600px){
  .gets{grid-template-columns:minmax(0,1fr)}
  .gets-frame{display:none}
  .gr{opacity:1;cursor:default}
  .gr .arr{display:none}
  .gr b{background-size:0 0}
  .gr-shot{display:block;margin:0 0 18px}
}
@media (prefers-reduced-motion:reduce){
  .gets-frame .stack img,.gr,.gr b,.gr .arr,.lit .ps{transition:none}
}
.handoff{left:60%;transform:translateX(-22px)}
@media (max-width:700px){ .handoff{transform:none} }
.who-creates .cs-block-h{margin-bottom:30px}
.who-creates .scr{max-width:none}
.gr b{gap:10px}
@media (max-width:700px){ .pipe-in{position:relative} .handoff{position:absolute;left:74px;top:57.5%;margin:0;transform:translateY(-50%);font-size:18px;background:var(--paper);padding:0 4px} }
@media (max-width:700px){ .handoff{display:none} .pipe-stages .sg:nth-child(3)::after{content:"↓ the teacher takes over";grid-column:2;font-family:var(--hand);font-size:19px;color:var(--raspberry);margin-top:6px} }

/* ---------- what the teacher gets: full screens, never cropped (staige-assets-2) ---------- */
.gets-frame{display:flex;align-items:center;justify-content:center}
.tg-frame{margin:0;width:100%;transition:width .25s var(--ease),height .25s var(--ease)}
.tg-frame .tg-pic{position:relative;display:block;width:100%;height:100%;padding:0;background:var(--paper);border:1px solid var(--ink);box-shadow:0 16px 28px -20px rgba(62,39,35,.55);overflow:hidden}
.tg-layer{position:absolute;inset:0;opacity:0;transition:opacity .25s ease}
.tg-layer.on{opacity:1}
.tg-layer > img{display:block;width:100%;height:100%;object-fit:contain}
/* show day: the director's view in full, the student prompter smaller over its lower-right corner */
.sd{position:relative;display:block;width:100%;height:100%;background:var(--paper)}
.sd img{position:absolute;display:block;height:auto;border:1px solid var(--ink)}
.sd .sd-a{left:0;top:0;width:82%}
.sd .sd-b{right:0;bottom:0;width:58%;box-shadow:0 10px 18px -10px rgba(30,22,56,.6)}
.tg-frame .tg-pic .sd img:first-child{border-left:0;border-top:0}
.tg-frame .tg-pic .sd .sd-b{border-right:0;border-bottom:0}
/* the tape on this frame sits on the figure itself */
.tg-frame.taped{position:relative}
.tg-frame.taped::before{content:"";position:absolute;z-index:3;top:0;left:50%;width:96px;height:auto;aspect-ratio:var(--kt-ar);margin-left:-48px;
  background:var(--kt) center/100% 100% no-repeat;opacity:var(--kt-o);transform:translateY(-50%) rotate(var(--kt-r));pointer-events:none}
/* phones: each row's full screen under its text */
.tg-shot{position:relative;margin:0 0 18px;border:1px solid var(--ink);background:var(--paper)}
.tg-shot > img{display:block;width:100%;height:auto}
.tg-shot .sd{aspect-ratio:1 / .63}
@media (prefers-reduced-motion:reduce){ .tg-frame,.tg-layer{transition:none} }
@media (max-width:600px){ .gets-frame{display:none} }
.tg-pic .sd .sd-a,.tg-shot .sd .sd-a{width:82%}
.tg-pic .sd .sd-b,.tg-shot .sd .sd-b{width:58%}
.tg-pic .tg-layer > img{width:100%;height:100%}

/* ================= Part 2: Testing + Outcome ================= */
/* Halves fixes: problem → fix cards */
.fixes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.fix{background:var(--paper-tex);border:1px solid rgba(62,39,35,.3);padding:16px 16px 18px;display:grid;grid-template-rows:1fr auto;gap:12px}
.fx-k{display:block;font-family:var(--type);font-size:11px;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:4px}
.fx-p{font-size:15px;line-height:1.45}
.fx-f{border-top:1px solid var(--hair);padding-top:10px;font-size:15.5px;line-height:1.4;position:relative;padding-left:22px}
.fx-f::before{content:"→";position:absolute;left:0;top:26px;color:var(--peri);font-weight:600;text-shadow:0 0 0 var(--ink)}
.fx-f .fx-k{color:var(--raspberry);margin-left:-22px}

/* school visits and playtest day */
.visits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.visit{border-top:3px double var(--ink);padding-top:14px;font-size:16px;line-height:1.6}
.visit p + p{margin-top:10px}
.visit .limits{font-size:15px;color:var(--ink)}
.visit .limits b{font-weight:600}

/* Dalton dispatch: a newspaper story framed by thin purple curtain edges (like the curtains in screens 01 and 06) */
.dispatch{position:relative;padding:22px 34px 26px;background:var(--paper-card);border-top:3px double var(--ink);border-bottom:1px solid var(--ink)}
.dispatch::before,.dispatch::after{content:"";position:absolute;top:0;bottom:0;width:14px;
  background:repeating-linear-gradient(90deg,#9B8CE6 0 3px,#B8ABF0 3px 6px,#8676D9 6px 8px);box-shadow:inset 0 0 0 1px rgba(62,39,35,.35)}
.dispatch::before{left:0;border-radius:0 0 10px 0}
.dispatch::after{right:0;border-radius:0 0 0 10px}
.dateline{font-family:var(--type);font-size:12.5px;letter-spacing:.14em;color:var(--raspberry);border-bottom:1px solid var(--ink);padding-bottom:8px;margin-bottom:16px}
.dispatch-body{column-count:2;column-gap:32px;column-rule:1px solid var(--hair);font-size:16.5px;line-height:1.65}
.dispatch-body p{margin-bottom:.9em;break-inside:avoid-column}
.dispatch-body .dalton{break-inside:avoid;margin:0 0 14px}
.dispatch-body .dalton .pic{padding:6px}
.dispatch-body .dalton img{filter:grayscale(1) contrast(1.05)}
.dispatch-pull{margin:10px 0 0;max-width:none;text-align:center}
.dispatch-pull span{font-size:clamp(24px,2.6vw,32px)}

/* script clipping (Angie's torn note) + the students' requests as sticky notes */
.script-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.script-clip{margin:0;padding:34px 56px 34px 28px;transform:rotate(-1deg)}
.sc-k{font-family:var(--type);font-size:11px;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:10px}
.script-clip blockquote{margin:0;font-family:var(--type);font-size:15px;line-height:1.6}
.script-clip b{font-weight:400;letter-spacing:.06em}
.script-clip figcaption{margin-top:14px;font-size:14.5px}
.script-clip a{color:var(--raspberry);font-weight:500}
.stickies{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sticky{position:relative;padding:18px 14px 16px;font-family:var(--hand);font-size:21px;line-height:1.2;color:var(--ink);
  background:#F7EC9A;box-shadow:0 8px 12px -8px rgba(62,39,35,.45);transform:rotate(calc((var(--i) - 1.5) * 1.6deg))}
.sticky:nth-child(2){background:#F9D9E3}
.sticky:nth-child(3){background:#DCE4FB}
.sticky.love{background:#E1EFC9}
.sticky strong{font-weight:500;color:var(--raspberry)}
.sticky::before{content:"";position:absolute;top:0;left:50%;width:54px;height:auto;aspect-ratio:var(--kt-ar);margin-left:-27px;
  background:var(--kt) center/100% 100% no-repeat;opacity:var(--kt-o);transform:translateY(-50%) rotate(var(--kt-r))}

/* Outcome */
.outcome-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:start}
.checklist{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:16.5px;line-height:1.45}
.checklist li{position:relative;padding-left:30px}
.checklist li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--peri)}
.demo-slot .screen.soon{display:grid;place-items:center;background:repeating-linear-gradient(135deg,#2A1D38 0 10px,#241830 10px 20px)}
.demo-slot .screen.soon span{font-family:var(--hand);font-size:30px;color:var(--paper)}
.credits-box{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 0 12px}
.credits-box h3{font-family:var(--type);font-weight:400;font-size:12.5px;letter-spacing:.12em;color:var(--raspberry);margin:0 0 10px}
.credits-box dl{margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.credits-box dt{font-family:var(--serif);font-size:17px}
.credits-box dd{margin:2px 0 0;font-family:var(--type);font-size:11.5px;letter-spacing:.03em;color:var(--ink-soft)}
.credits-box .me dt{background:linear-gradient(transparent 60%,var(--peri-soft) 60%)}
.credits-box .credit{margin-top:12px}

@media (max-width:900px){
  .script-row,.outcome-row{grid-template-columns:minmax(0,1fr)}
  .credits-box dl{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:700px){
  .visits{grid-template-columns:minmax(0,1fr)}
  .dispatch{padding:20px 26px 22px}
  .dispatch-body{column-count:1}
}
@media (max-width:420px){
  .stickies{grid-template-columns:minmax(0,1fr)}
  .credits-box dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .script-clip{padding:30px 48px 30px 20px}
}
.fixes{grid-template-columns:repeat(6,minmax(0,1fr))}
.fix{grid-column:span 2}
.fix:nth-child(4),.fix:nth-child(5){grid-column:span 3}
@media (max-width:700px){ .fixes{grid-template-columns:minmax(0,1fr)} .fix,.fix:nth-child(4),.fix:nth-child(5){grid-column:auto} }
.credits-box .me dt{display:inline}
.credits-box h3{text-transform:uppercase}
.pillars .pl-h{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.2;margin:0 0 8px}

/* ---------- readability: every label that carries meaning is at least 13px and passes 4.5:1,
   on the paper and on the darker flecks of the handmade paper cards ---------- */
.st{--label-soft:#6A5650;--label-rasp:#9A1F4E}
.st .cs-kicker,.st .cs-facts dt,.st .by-label,.st .decision,.st .principle b,.st .pillars .k,.st .dateline,.st .credits-box h3,.st .fx-f .fx-k{font-size:13px;color:var(--label-rasp)}
.st .why b,.st .fx-k,.st .sc-k,.st .pile-h,.st .scr figcaption,.st .clip figcaption,.st .rev-shot figcaption,.st .credit,.st .credits-box dd,.st .emo-grid li,.st .st-status,.st .cando h4{font-size:13px}
.st .fx-k,.st .sc-k,.st .scr figcaption,.st .clip figcaption,.st .rev-shot figcaption,.st .credit,.st .credits-box dd{color:var(--label-soft)}
.st .why b,.st .emo-grid li,.st .st-status,.st .pile-h{color:var(--ink)}
.st .evidence{color:var(--ink)}

/* the Dalton badge is a real link down to the field test */
.st-badge{padding:0;border:0;box-shadow:none}
.st-badge a{display:inline-block;font-family:var(--type);font-size:13.5px;letter-spacing:.04em;color:var(--ink);text-decoration:none;
  padding:6px 10px 5px;border:1.5px solid var(--peri);box-shadow:0 0 0 1px var(--ink) inset}
.st-badge a span{color:var(--label-rasp);margin-left:4px}
.st-badge a:hover{text-decoration:underline;text-decoration-color:var(--raspberry);text-underline-offset:3px}
.st-badge a:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}
#dalton{scroll-margin-top:24px}
.st .cs-tags span{font-size:13px}
.pillars .pl-ins{margin-top:10px;padding-top:10px;border-top:1px solid var(--hair);font-size:15px;line-height:1.55}
.pillars .pl-ins a{display:inline-block;margin-top:6px;color:var(--raspberry);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.pillars .pl-ins a:hover{color:var(--ink)}
.st-cap .cap-why{display:block;margin-top:4px;color:var(--ink-soft);font-size:15px}
#steps{scroll-margin-top:24px}
.pillars-wrap{margin-bottom:0}
/* active step number: ink on paper with a periwinkle ring (ink on periwinkle was under 4.5:1) */
.st-tab[aria-selected="true"] .num{background:var(--paper);color:var(--ink);border:2px solid var(--peri)}

/* ================= From proof of concept to product ================= */
.it-stages{list-style:none;padding:0;margin:24px 0 0;position:relative}
.it-stages::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;border-left:2px dotted var(--ink)}
.it-stage{position:relative;padding:0 0 52px 52px}
.it-stage:last-child{padding-bottom:0}
.it-no{position:absolute;left:0;top:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--paper);
  border:2px solid var(--peri);box-shadow:0 0 0 1px var(--ink);font-family:var(--type);font-size:14px;color:var(--ink)}
.it-h{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2vw,25px);line-height:1.2;margin:2px 0 14px}
.it-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}
.it-row .prose{max-width:none}
.v-tag{display:inline-block;font-family:var(--type);font-size:13px;letter-spacing:.06em;color:var(--ink);border:1.5px solid var(--peri);box-shadow:0 0 0 1px var(--ink) inset;padding:4px 9px 3px;margin-bottom:12px}
.it-shot .pic img,.ba img,.tour-f img,.drafts img{display:block;width:100%;height:auto;object-fit:contain}

/* stage 2: the drafts sheet, pinned with kraft tape; opens larger */
.drafts{margin:18px 0 0}
.drafts-scroll{position:relative}
.drafts-open{position:relative;display:block;width:100%;padding:8px;border:1px solid rgba(62,39,35,.35);background:#fff;cursor:zoom-in;
  box-shadow:0 14px 24px -18px rgba(62,39,35,.5);transform:rotate(-.4deg)}
.drafts-open:focus-visible{outline:2px solid var(--raspberry);outline-offset:4px}
.drafts-open.taped::before{content:"";position:absolute;z-index:2;top:0;left:50%;width:110px;height:auto;aspect-ratio:var(--kt-ar);margin-left:-55px;
  background:var(--kt) center/100% 100% no-repeat;opacity:var(--kt-o);transform:translateY(-50%) rotate(var(--kt-r));pointer-events:none}
.draft-names{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;font-size:14px;line-height:1.4}
.draft-names b{font-family:var(--type);font-weight:400}
.draft-names .ok{position:relative}
.stamp{display:inline-block;margin-top:6px;font-family:var(--type);font-size:13px;letter-spacing:.04em;color:var(--ink);
  border:2px solid var(--peri);outline:1px solid var(--ink);outline-offset:1px;padding:3px 8px 2px;transform:rotate(-4deg)}
.drafts figcaption{margin-top:12px;font-size:15px;line-height:1.5;color:var(--ink)}

/* stage 3 points with crayon doodles */
.it-points{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.it-points li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:start;font-size:15.5px;line-height:1.55}
.dood g{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dood{margin-top:2px}

/* before/after slider: V1 on top, clipped at --p; both full width, top-aligned, stage as tall as the taller one */
.ba{margin:0}
.ba-stage{position:relative;display:grid;border:1px solid var(--ink);background:var(--paper-card);overflow:hidden;touch-action:pan-y}
.ba-a,.ba-b{grid-area:1 / 1;align-self:start}
.ba-a{position:relative;clip-path:inset(0 calc(100% - var(--p)) 0 0);z-index:1}
.ba-line{position:absolute;z-index:2;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:var(--peri);box-shadow:0 0 0 1px var(--ink);pointer-events:none}
.ba-knob{position:absolute;top:50%;left:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:var(--peri);box-shadow:0 0 0 1.5px var(--ink),0 4px 10px -4px rgba(0,0,0,.5)}
.ba-knob::before{content:"‹ ›";position:absolute;inset:0;display:grid;place-items:center;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:2px}
.ba-tag{position:absolute;z-index:3;top:8px;font-family:var(--type);font-size:13px;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);padding:2px 7px 1px;pointer-events:none}
.ba-tag.l{left:8px}.ba-tag.r{right:8px}
.ba-range{position:absolute;z-index:4;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none}
.ba-range:focus-visible + *,.ba-stage:has(.ba-range:focus-visible){outline:2px solid var(--raspberry);outline-offset:3px}
/* the hand-drawn circle around one "Who creates it?" slider (on the V1 layer, so it slides with it) */
.mark{position:absolute;left:4.5%;top:54%;width:21%;height:12%;pointer-events:none}
.mark svg{position:absolute;inset:-14% -6%;width:112%;height:128%;overflow:visible}
.mark-l{position:absolute;left:0;bottom:calc(100% + 26%);width:max-content;max-width:220px;font-family:var(--hand);font-size:19px;line-height:1.05;color:var(--raspberry);background:rgba(251,246,238,.92);padding:1px 6px}

/* feedback → change: before / what we saw / after */
.bwa{margin:0;display:grid;gap:14px}
.bwa div{border-top:1px solid var(--hair);padding-top:10px}
.bwa dt{font-family:var(--type);font-size:13px;letter-spacing:.08em;color:#9A1F4E;margin-bottom:4px}
.bwa dd{margin:0;font-size:15.5px;line-height:1.55}
.it-stage.fb .it-no{font-size:16px}

/* Contents: the block under Design */
.cs-toc .toc-sub{list-style:none;padding:0 0 0 14px;margin:8px 0 0;display:grid;gap:8px;counter-reset:none}
.cs-toc .toc-sub li{counter-increment:none}
.cs-toc .toc-sub a{font-size:13px}
.cs-toc .toc-sub a::before{content:"– "}

/* ================= Decision 4 · tour ================= */
.tour-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:14px}
.tour-row .prose{max-width:none}
.tour-stage{position:relative;border:1px solid var(--ink);background:var(--paper-card);display:grid;place-items:center;aspect-ratio:1401 / 1600;outline:none}
.tour-stage:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}
.tour-f{grid-area:1 / 1;margin:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center}
.tour-f[hidden]{display:none}
.tour-f img{max-height:calc(100% - 34px)}
.tour-f figcaption{font-family:var(--type);font-size:13px;color:var(--ink);text-align:center;padding:8px 0 4px}
.tour-ctl{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.tour-b{font:inherit;font-family:var(--type);font-size:13.5px;color:var(--ink);background:var(--paper-card);border:1px solid var(--ink);padding:8px 14px;min-height:44px;cursor:pointer}
.tour-b:disabled{opacity:.45;cursor:default}
.tour-b:focus-visible{outline:2px solid var(--raspberry);outline-offset:3px}
.tour-dots{display:flex;gap:8px}
.tour-dots i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink)}
.tour-dots i.on{background:var(--peri)}

/* ================= drafts lightbox ================= */
.lb-d{border:0;padding:0;width:min(96vw,1400px);max-width:none;max-height:92vh;background:var(--newsprint,#ECE6D8);box-shadow:0 20px 60px rgba(0,0,0,.4)}
.lb-d::backdrop{background:rgba(30,22,20,.7)}
.lb-bar{display:flex;justify-content:flex-end;gap:8px;padding:8px}
.lb-zoom,.lb-x{font:inherit;font-family:var(--type);font-size:13.5px;background:var(--paper-card);border:1px solid var(--ink);color:var(--ink);min-height:44px;min-width:44px;padding:6px 12px;cursor:pointer}
.lb-x{font-size:22px;line-height:1}
.lb-zoom:focus-visible,.lb-x:focus-visible,.lb-view:focus-visible{outline:2px solid var(--raspberry);outline-offset:2px}
.lb-view{overflow:auto;max-height:calc(92vh - 64px);padding:0 8px 8px;cursor:zoom-in}
.lb-view img{display:block;width:100%;height:auto}
.lb-d.zoomed .lb-view{cursor:zoom-out}
.lb-d.zoomed .lb-view img{width:2400px;max-width:none}

/* ================= tablet / phone ================= */
@media (max-width:900px){
  .it-row,.tour-row{grid-template-columns:minmax(0,1fr)}
  .draft-names{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .it-stage{padding-left:44px}
  .it-stages::before{left:13px}
  .it-no{width:28px;height:28px;font-size:13px}
  /* the drafts sheet scrolls sideways inside its own frame, with an edge shadow */
  .drafts-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:14px 0 6px;
    background:linear-gradient(90deg,var(--paper) 30%,transparent) left/24px 100% no-repeat local,linear-gradient(270deg,var(--paper) 30%,transparent) right/24px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(62,39,35,.28),transparent) left/12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(62,39,35,.28),transparent) right/12px 100% no-repeat scroll}
  .drafts-open{width:900px;transform:none}
  .mark-l{font-size:16px;max-width:150px}
}
@media (prefers-reduced-motion:reduce){ .drafts-open{transform:none} }
/* fixes after the first look */
.it-stage:nth-child(3) .it-row{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}
.it-stage.fb .it-row{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.stamp{display:table;margin-top:8px}
.mark-l{width:205%;max-width:none;font-size:clamp(14px,1.4vw,18px)}
.tour-stage{aspect-ratio:auto;place-items:start stretch}
.tour-f{height:auto}
.tour-f img{max-height:none}
@media (max-width:900px){ .it-stage:nth-child(3) .it-row,.it-stage.fb .it-row{grid-template-columns:minmax(0,1fr)} }

/* ================= Stage 2: four drafts, large ================= */
.it-tool p{font-size:17px;line-height:1.7}
.drafts4{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 28px;align-items:start}
.dr-l{font-family:var(--serif);font-size:48px;line-height:1;margin:0 0 6px;display:flex;align-items:center;gap:12px}
.chosen-stamp{font-family:var(--type);font-size:13px;letter-spacing:.06em;color:var(--ink);border:2px solid var(--peri);outline:1px solid var(--ink);outline-offset:1px;padding:3px 8px 2px;transform:rotate(-5deg)}
.dr-d{font-size:16px;line-height:1.55;margin:0 0 12px;min-height:4.65em}
.dr-open{display:block;width:100%;padding:0;border:1px solid var(--ink);background:#fff;cursor:zoom-in;box-shadow:0 14px 24px -20px rgba(62,39,35,.5)}
.dr-open img{display:block;width:100%;height:auto;object-fit:contain}
.dr.chosen .dr-open{border:2px solid var(--peri);box-shadow:0 0 0 1px var(--ink),0 14px 24px -20px rgba(62,39,35,.5)}
.dr-open:focus-visible{outline:2px solid var(--raspberry);outline-offset:4px}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){ .dr-open{transition:transform .2s ease} .dr-open:hover{transform:translateY(-3px)} }

/* Why I chose D */
.why-d{margin-top:40px}
.why-row{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:28px;align-items:start}
.d-pins{margin:0;position:sticky;top:24px}
.d-pins-in{position:relative;display:block;border:2px solid var(--peri);box-shadow:0 0 0 1px var(--ink);background:#fff}
.d-pins-in img{display:block;width:100%;height:auto}
.pin{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;display:grid;place-items:center;font-family:var(--type);font-size:13px;color:var(--ink);
  background:var(--peri);box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--ink);pointer-events:auto;cursor:default;transition:transform .15s ease}
.pin.hl{transform:scale(1.3);background:var(--paper);box-shadow:0 0 0 3px var(--peri),0 0 0 4px var(--ink)}
.reasons{margin:0;padding:0;list-style:none;counter-reset:r;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:18px 26px}
.reasons li{counter-increment:r;position:relative;padding:8px 10px 10px 40px;border-radius:4px;outline:none;transition:background-color .15s ease}
.reasons li::before{content:counter(r);position:absolute;left:4px;top:8px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:var(--type);font-size:13px;
  border:1.5px solid var(--peri);box-shadow:0 0 0 1px var(--ink)}
.reasons b{display:block;font-weight:600;font-size:17px;line-height:1.35;margin-bottom:4px}
.reasons span{display:block;font-size:17px;line-height:1.65}
.reasons li.hl,.reasons li:focus-visible{background:rgba(94,128,255,.12)}
.reasons li:focus-visible{box-shadow:0 0 0 2px var(--raspberry)}

/* lightbox: A–D */
.lb-d{position:relative}
.lb-bar{align-items:center}
.lb-cap{margin-right:auto;padding-left:6px;font-family:var(--serif);font-size:22px}
.lb-view img[hidden]{display:none}
.lb-nav{position:absolute;top:50%;width:48px;height:48px;margin-top:-24px;border-radius:50%;border:1px solid var(--ink);background:var(--paper-card);color:var(--ink);font-size:20px;cursor:pointer;z-index:2}
.lb-nav.prev{left:10px}.lb-nav.next{right:10px}
.lb-nav:focus-visible{outline:2px solid var(--raspberry);outline-offset:2px}
.lb-d.zoomed .lb-view img{width:1440px;max-width:none}

@media (max-width:1100px){ .why-row{grid-template-columns:minmax(0,1fr)} .d-pins{position:static;max-width:420px} }
@media (max-width:700px){ .drafts4,.reasons{grid-template-columns:minmax(0,1fr)} .reasons{grid-auto-flow:row;grid-template-rows:none} .dr-d{min-height:0} }
@media (prefers-reduced-motion:reduce){ .pin,.reasons li,.dr-open{transition:none} }
.why-row{grid-template-columns:minmax(0,1fr)}
.d-pins{position:static;max-width:380px}

/* ---------- "Write my play": the loading animation in the same frame, shown in full (16:11) ---------- */
.wp{position:relative;display:block}
.wp-v{display:block;width:100%;height:auto;aspect-ratio:1600 / 1100;object-fit:contain;background:#1E1638}
.wp-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:inherit;font-family:var(--type);font-size:15px;color:var(--ink);
  background:var(--paper-card);border:1px solid var(--ink);box-shadow:0 0 0 3px var(--peri);padding:12px 18px;min-height:48px;cursor:pointer}
.wp-play:focus-visible{outline:2px solid var(--raspberry);outline-offset:4px}
.st-cap .wp-skip,.st-cap .wp-replay{margin-left:12px}
.st-cap p b{font-weight:600}
.wp-credit{font-size:14px;margin-top:6px}
.st-slide.is-video img{display:none}
