/* ---------- Fonts (SIL OFL, embedded so the file works offline) ---------- */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../fonts/archivo-latin-wdth-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Caveat";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/caveat-latin-wght-normal.woff2) format("woff2")}

/* ---------- FABREX tokens (Atelier, light) ---------- */
:root{
  --paper:#f5f2ea; --surface:#ffffff; --surface-sunk:#ebe6d9;
  --ink:#14211c; --ink-muted:#58625c; --line:#d8d1c1;
  --brand:#1b7f5e; --on-brand:#ffffff; --brand-deep:#0c4a37; --brand-soft:#d4ede1;
  --stage:#0c4a37; --on-stage:#f5f2ea;
  --thread:#d4ef3a; --on-thread:#14211c;
  --denim:#2d4c9c; --on-denim:#ffffff; --denim-soft:#dde4f6;
  --saffron:#f2a531; --on-saffron:#14211c; --saffron-soft:#fcebcd;
  --coral:#eb6a5b; --on-coral:#14211c; --coral-soft:#fbddd8;
  --plum:#6d3f90; --on-plum:#ffffff; --plum-soft:#eadff3;
  --focus-ring:#2d4c9c;
  --font-display:"Archivo","Arial Black",system-ui,sans-serif;
  --font-sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --font-hand:"Caveat","Bradley Hand","Comic Sans MS",cursive;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
  --radius-xs:2px;--radius-sm:6px;--radius-md:12px;--radius-lg:24px;--radius-pill:999px;
  --shadow-card:0 1px 0 rgba(20,33,28,.06),0 10px 24px -14px rgba(20,33,28,.30);
  --shadow-lift:0 2px 0 rgba(20,33,28,.08),0 22px 40px -18px rgba(20,33,28,.40);
  --wrap:1160px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:400 17px/26px var(--font-sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:var(--brand-deep)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--space-6)}
.paper{background-color:var(--paper);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),linear-gradient(rgba(216,209,193,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(216,209,193,.45) 1px,transparent 1px);background-size:160px 160px,160px 160px,32px 32px,32px 32px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;background:var(--surface);padding:8px 14px;border-radius:var(--radius-sm);z-index:10}
.skip:focus{left:8px}

/* Type */
.display{font-family:var(--font-display);font-stretch:125%;font-weight:800;text-transform:uppercase;margin:0}
.eyebrow{display:flex;align-items:center;gap:var(--space-3);font:700 12px/16px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-deep);margin:0 0 var(--space-4)}
.eyebrow::before{content:"";width:32px;height:2px;background:currentColor;flex:none}
.serif{font-family:var(--font-serif);font-style:italic;font-weight:400}
mark.thread{color:var(--on-thread);background:linear-gradient(transparent 6%,var(--thread) 6%,var(--thread) 94%,transparent 94%);padding:0 .14em;margin:0 -.06em;border-radius:var(--radius-xs);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.h2{font-size:clamp(28px,3.4vw,40px);line-height:1.02;color:var(--ink)}
.lede{font:italic 400 clamp(20px,2vw,24px)/1.25 var(--font-serif);color:var(--ink-muted);margin:var(--space-3) 0 0;max-width:640px}

/* Buttons */
.btn{font:700 15px/20px var(--font-sans);min-height:48px;padding:12px var(--space-5);border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);text-decoration:none;letter-spacing:.01em;transition:transform .12s ease,box-shadow .12s ease}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px;flex:none}
.btn-thread{background:var(--thread);color:var(--on-thread);font-family:var(--font-display);font-stretch:125%;font-weight:800;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 3px 0 var(--ink)}
.btn-thread:hover{box-shadow:0 5px 0 var(--ink);transform:translateY(-2px)}
.btn-thread:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}
.btn-primary{background:var(--brand);color:var(--on-brand)}
.btn-primary:hover{background:var(--brand-deep)}
.btn-ghost{background:transparent;color:var(--on-stage);border-color:rgba(245,242,234,.7)}
.btn-ghost:hover{border-color:var(--on-stage);background:rgba(245,242,234,.08)}
.btn-quiet{background:var(--surface);color:var(--ink);border-color:var(--ink-muted)}

/* ---------- Header ---------- */
.top{background:var(--stage);color:var(--on-stage);border-bottom:1px solid rgba(245,242,234,.12)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:68px}
.top .logo{display:flex;align-items:center;text-decoration:none}
.top .logo svg{height:30px;width:auto}
.top .course{font:600 13px/18px var(--font-sans);color:rgba(245,242,234,.78);text-align:right}

/* ---------- Hero ---------- */
.hero{background:var(--stage);color:var(--on-stage);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(245,242,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(245,242,234,.06) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--space-7);align-items:center;padding-top:var(--space-8);padding-bottom:var(--space-8)}
.hero .eyebrow{color:var(--thread)}
.hero h1{font-size:clamp(40px,6vw,76px);line-height:.94;letter-spacing:-.01em;color:var(--on-stage)}
.hero .sub{font:italic 400 clamp(26px,3vw,40px)/1.05 var(--font-serif);margin:var(--space-3) 0 0;color:var(--on-stage)}
.hero .intro{max-width:520px;margin:var(--space-5) 0 0;color:rgba(245,242,234,.9)}
.hero .facts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-5) 0 0;padding:0;list-style:none}
.hero .facts li{font:700 12px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;padding:9px 12px;border-radius:var(--radius-pill);border:2px dashed rgba(212,239,58,.75);color:var(--on-stage)}
.hero .cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}
.hero-art svg{width:100%;height:auto}

/* ---------- Sections ---------- */
section.block{padding:var(--space-9) 0}
.sec-head{margin-bottom:var(--space-7)}

/* Case */
.case-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-7);align-items:start}
.case-text p{margin:0 0 var(--space-4)}
.case-text p:last-child{margin-bottom:0}
.challenges{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none;counter-reset:c}
.challenges li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);display:grid;grid-template-columns:44px 1fr;gap:var(--space-3);align-items:start}
.challenges li::before{counter-increment:c;content:"0" counter(c);font:800 15px/1 var(--font-display);font-stretch:125%;color:var(--on-brand);background:var(--brand);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;height:36px}
.challenges b{display:block;font-weight:700;font-size:16px;line-height:22px}
.challenges span{display:block;font-size:15px;line-height:22px;color:var(--ink-muted);margin-top:2px}
.challenges-label{font:700 12px/16px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 var(--space-3)}
.mission{margin-top:var(--space-6);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);position:relative}
.mission::before{content:"";position:absolute;inset:8px;border:2px dashed var(--thread);border-radius:6px;pointer-events:none}
.mission .k{font:800 12px/1 var(--font-display);font-stretch:125%;letter-spacing:.16em;text-transform:uppercase;color:var(--thread)}
.mission p{margin:var(--space-3) 0 0;font:italic 400 24px/1.2 var(--font-serif)}

/* Journey */
.journey{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none;position:relative}
.journey::before{content:"";position:absolute;left:4%;right:4%;top:27px;height:6px;border-radius:3px;background:var(--thread);box-shadow:0 0 0 2px var(--ink) inset}
.task{position:relative;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5) var(--space-4) var(--space-5);margin-top:var(--space-6);display:flex;flex-direction:column}
.task .chip{position:absolute;top:-24px;left:var(--space-4);display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px 6px 6px;border-radius:var(--radius-pill);font:700 13px/18px var(--font-sans);letter-spacing:.04em;box-shadow:0 0 0 3px var(--paper)}
.task .chip b{font:800 11px/1 var(--font-display);font-stretch:125%;padding:5px 6px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink)}
.t1 .chip{background:var(--denim);color:var(--on-denim)} .t1{border-top:6px solid var(--denim)}
.t2 .chip{background:var(--saffron);color:var(--on-saffron)} .t2{border-top:6px solid var(--saffron)}
.t3 .chip{background:var(--coral);color:var(--on-coral)} .t3{border-top:6px solid var(--coral)}
.t4 .chip{background:var(--thread);color:var(--on-thread)} .t4{border-top:6px solid var(--thread)}
.t5 .chip{background:var(--plum);color:var(--on-plum)} .t5{border-top:6px solid var(--plum)}
.task h3{font:italic 400 21px/1.2 var(--font-serif);margin:var(--space-3) 0 var(--space-2);color:var(--ink)}
.task p{margin:0;font-size:15px;line-height:22px;color:var(--ink-muted)}

/* Teaser: people */
.people{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--space-7);align-items:center;margin-top:var(--space-9)}
.people p{margin:0 0 var(--space-4);max-width:560px}
.people .lede{margin-top:var(--space-3)}
.tagstack{position:relative;height:440px}
.ptag{position:absolute;left:24px;top:0;width:300px;background:var(--surface);border-radius:var(--radius-lg);clip-path:polygon(20% 0,80% 0,100% 34px,100% 100%,0 100%,0 34px);box-shadow:var(--shadow-lift);padding:56px var(--space-5) var(--space-5);transform:rotate(-3deg);z-index:2}
.ptag .eyelet{position:absolute;left:50%;top:14px;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 5px var(--brand)}
.ptag .ph{height:120px;border-radius:var(--radius-md);background:var(--brand-soft);display:flex;align-items:center;justify-content:center;position:relative}
.ptag .ph span{font:800 48px/1 var(--font-display);font-stretch:125%;color:var(--brand-deep)}
.ptag .dept{position:absolute;right:8px;top:8px;font:700 10px/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;padding:6px 9px;border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand)}
.ptag .nm{font:800 20px/1.1 var(--font-display);font-stretch:125%;text-transform:uppercase;margin-top:var(--space-4)}
.ptag .rl{font:italic 400 18px/1.2 var(--font-serif);color:var(--ink-muted);margin-top:2px}
.ptag .q{font:600 23px/1.05 var(--font-hand);color:var(--brand-deep);margin-top:var(--space-4)}
.care{position:absolute;right:0;bottom:0;width:260px;background:var(--stage);color:var(--on-stage);border-radius:var(--radius-xs);padding:var(--space-5);transform:rotate(4deg);z-index:1;box-shadow:var(--shadow-card);background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 4px)}
.care::before{content:"";position:absolute;inset:8px;border:2px dashed var(--thread);border-radius:var(--radius-xs);pointer-events:none}
.care .k{font:800 11px/1 var(--font-display);font-stretch:125%;letter-spacing:.16em;color:var(--thread)}
.care .t{font:italic 400 22px/1.15 var(--font-serif);margin-top:var(--space-3);filter:blur(5px);user-select:none}
.care .by{font:700 11px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;margin-top:var(--space-3);opacity:.8}

/* Learning goals */
.goals-band{background:var(--surface)}
.goals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) var(--space-6);margin:0;padding:0;list-style:none}
.goals li{display:grid;grid-template-columns:48px 1fr;gap:var(--space-4);padding:var(--space-4) 0;border-top:2px solid var(--ink)}
.goals .n{font:800 28px/1 var(--font-display);font-stretch:125%;color:var(--brand)}
.goals b{display:block;font-weight:700;font-size:17px;line-height:24px}
.goals span{display:block;font-size:15px;line-height:22px;color:var(--ink-muted);margin-top:4px}
.goals .chipmini{display:inline-block;font:700 11px/1 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border-radius:var(--radius-pill);margin-top:var(--space-2);background:var(--surface-sunk);color:var(--ink)}

/* Entry doors */
.doors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
.door{border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;box-shadow:var(--shadow-card);position:relative}
.door-main{background:var(--stage);color:var(--on-stage)}
.door-main .eyebrow{color:var(--thread)}
.door-fac{background:var(--surface);color:var(--ink);border:2px dashed var(--ink-muted);box-shadow:none}
.door h3{font-size:clamp(24px,2.6vw,32px);line-height:1}
.door .for{font:italic 400 22px/1.25 var(--font-serif);margin:var(--space-3) 0 var(--space-5)}
.door-main .for{color:var(--on-stage)} .door-fac .for{color:var(--ink-muted)}
.door ul{margin:0 0 var(--space-6);padding:0;list-style:none;display:grid;gap:var(--space-2)}
.door li{display:grid;grid-template-columns:22px 1fr;gap:var(--space-2);font-size:16px;line-height:24px}
.door li::before{content:"";width:12px;height:12px;margin-top:6px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 2px var(--ink)}
.door-fac li::before{background:var(--brand);box-shadow:none}
.door .actions{margin-top:auto}
.door .note{font:500 13px/18px var(--font-sans);margin:var(--space-3) 0 0}
.door-main .note{color:rgba(245,242,234,.78)} .door-fac .note{color:var(--ink-muted)}
.door .btn{width:100%}

/* Footer */
footer{background:var(--stage);color:rgba(245,242,234,.8);font-size:13px;line-height:20px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-6);padding-bottom:var(--space-6)}
footer p{margin:0}

/* ---------- Placeholder views (filled in later steps) ---------- */
.view{display:none}
.view.on{display:block}
.soon{padding:var(--space-9) 0;min-height:60vh}
.soon .card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-7);max-width:640px}
.soon p{margin:var(--space-4) 0 var(--space-5);color:var(--ink-muted)}


/* ---------- Sub-page header ---------- */
.phero{background:var(--stage);color:var(--on-stage);position:relative;overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(245,242,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(245,242,234,.06) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.phero .wrap{position:relative;padding-top:var(--space-6);padding-bottom:var(--space-8)}
.phero .eyebrow{color:var(--thread)}
.phero h1{font-size:clamp(32px,4.6vw,56px);line-height:.98;color:var(--on-stage)}
.phero .sub{font:italic 400 clamp(20px,2.2vw,26px)/1.2 var(--font-serif);margin:var(--space-3) 0 0;max-width:720px}
.crumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);font:600 13px/18px var(--font-sans);margin-bottom:var(--space-7);color:rgba(245,242,234,.75)}
.crumbs a{color:var(--on-stage)}
.block-s{padding:var(--space-7) 0}

/* How it works */
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}
.how li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:grid;grid-template-columns:40px 1fr;gap:var(--space-3)}
.how .no{width:36px;height:36px;border-radius:50%;background:var(--thread);color:var(--on-thread);box-shadow:0 0 0 2px var(--ink);display:flex;align-items:center;justify-content:center;font:800 15px/1 var(--font-display);font-stretch:125%}
.how b{display:block;font-size:17px;line-height:24px}
.how span{display:block;font-size:15px;line-height:22px;color:var(--ink-muted);margin-top:4px}

/* Phase chips (generic) */
.pchip{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px 6px 6px;border-radius:var(--radius-pill);font:700 13px/18px var(--font-sans);letter-spacing:.04em;white-space:nowrap}
.pchip b{font:800 11px/1 var(--font-display);font-stretch:125%;padding:5px 6px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink)}
.p1 .pchip{background:var(--denim);color:var(--on-denim)}
.p2 .pchip{background:var(--saffron);color:var(--on-saffron)}
.p3 .pchip{background:var(--coral);color:var(--on-coral)}
.p4 .pchip{background:var(--thread);color:var(--on-thread);box-shadow:inset 0 0 0 1.5px var(--ink)}
.p5 .pchip{background:var(--plum);color:var(--on-plum)}

/* Timetable */
.tt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}
.day{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}
.day-h{margin:0;background:var(--stage);color:var(--on-stage);padding:var(--space-4) var(--space-5);font:800 20px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.02em}
.day-h span{box-shadow:inset 0 -6px 0 var(--thread)}
.day ol{list-style:none;margin:0;padding:var(--space-2) var(--space-5) var(--space-4)}
.row{display:grid;grid-template-columns:72px 1fr;gap:var(--space-4);align-items:center;padding:var(--space-3) 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row time{font:800 15px/1 var(--font-display);font-stretch:125%;font-variant-numeric:tabular-nums;color:var(--ink)}
.row b{display:block;font-size:16px;line-height:22px}
.row em{display:block;font-style:normal;font-size:14px;line-height:20px;color:var(--ink-muted);margin-top:2px}
.row.ph{margin:var(--space-1) calc(-1 * var(--space-3));padding:var(--space-3);border-radius:var(--radius-md);border-top:0}
.row.ph + .row{border-top:0}
.row.p1{background:var(--denim-soft)} .row.p2{background:var(--saffron-soft)} .row.p3{background:var(--coral-soft)} .row.p4{background:var(--brand-soft)} .row.p5{background:var(--plum-soft)}
.row.ph em{color:var(--ink);margin-top:6px}
.row.brk b,.row.brk time{color:var(--ink-muted);font-weight:600}
.row.setup b::after{content:"";}
.tt-note{margin:var(--space-5) 0 0;font-size:15px;line-height:22px;color:var(--ink-muted);max-width:760px}
.tt-note b{color:var(--ink)}

/* Phase cards */
.pcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
.pcard{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5) var(--space-6) var(--space-6);display:flex;flex-direction:column;border-top:8px solid var(--line)}
.pcard.p1{border-top-color:var(--denim)} .pcard.p2{border-top-color:var(--saffron)} .pcard.p3{border-top-color:var(--coral)} .pcard.p4{border-top-color:var(--thread)} .pcard.p5{border-top-color:var(--plum)}
.pcard header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}
.pcard .when{font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.pcard h3{font:italic 400 28px/1.15 var(--font-serif);margin:var(--space-4) 0 var(--space-4)}
.pcard dl{margin:0 0 var(--space-5);display:grid;grid-template-columns:120px 1fr;gap:var(--space-3) var(--space-4)}
.pcard dt{font:700 11px/20px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.pcard dd{margin:0;font-size:15px;line-height:22px}
.pcard dd ul{margin:0;padding-left:18px}
.pcard dd li+li{margin-top:4px}
.pcard.fixed{background:var(--surface-sunk);box-shadow:none}
.fixed-note{margin:auto 0 0;padding:var(--space-4);border:2px dashed var(--ink-muted);border-radius:var(--radius-md);font-size:15px;line-height:22px}

/* Password gate */
.gate{margin-top:auto;padding-top:var(--space-4);border-top:2px dashed var(--line)}
.gate label{display:block;font:700 13px/18px var(--font-sans);margin-bottom:var(--space-2)}
.gate-row{display:flex;gap:var(--space-2)}
.gate input{flex:1;min-width:0;height:48px;border:2px solid var(--ink-muted);border-radius:var(--radius-md);padding:0 var(--space-4);font:500 16px var(--font-sans);background:var(--surface);color:var(--ink)}
.gate input:focus{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--ink)}
.gate .btn{flex:none}
.gate-msg{margin:var(--space-2) 0 0;font-size:14px;line-height:20px;min-height:20px}
.gate-msg.err{color:#b83227;font-weight:600}
.gate.busy .btn{opacity:.6;pointer-events:none}
.gate-solo{max-width:560px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6);border-top:0}
.gate-lead{margin:0 0 var(--space-4);font-size:17px}
.brief-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-7);max-width:720px}
.brief-card p{color:var(--ink-muted)}

@media (max-width:860px){
  .how,.tt,.pcards{grid-template-columns:1fr}
  .pcard dl{grid-template-columns:1fr;gap:2px var(--space-4)}
  .pcard dd{margin-bottom:var(--space-3)}
}
@media (max-width:560px){
  .pcard{padding:var(--space-5)}
  .gate-row{flex-direction:column}
  .gate .btn{width:100%}
  .gate input{flex:none;width:100%}
  .row{grid-template-columns:60px 1fr}
}


/* ---------- Phase 01: hub, data room, briefing ---------- */
.ph1 .eyebrow{color:var(--thread)}
.jump{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}
.jump a{font:700 13px/18px var(--font-sans);padding:8px 14px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 1.5px var(--ink-muted)}
.jump a:hover{box-shadow:inset 0 0 0 2px var(--ink)}
.ptiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-4)}
.ptile{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);border-top:8px solid var(--line)}
.ptile.p1{border-top-color:var(--denim)}.ptile.p2{border-top-color:var(--saffron)}.ptile.p3{border-top-color:var(--coral)}.ptile.p4{border-top-color:var(--thread)}.ptile.p5{border-top-color:var(--plum)}
.ptile .pchip{align-self:flex-start}
.ptile .when{margin:var(--space-2) 0 0;font:700 12px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.ptile h3{font:italic 400 22px/1.2 var(--font-serif);margin:0 0 var(--space-3)}
.ptile .btn{margin-top:auto}
.ptile.off{background:var(--surface-sunk);box-shadow:none}
.later{margin-top:auto;font:600 14px/20px var(--font-sans);color:var(--ink-muted);padding:12px 0;border-top:2px dashed var(--line)}

/* Letter (the order) */
.letter{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);max-width:860px;overflow:hidden}
.letter header{background:var(--stage);color:var(--on-stage);padding:var(--space-6)}
.letter .lk{font:700 12px/16px var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--thread)}
.letter h3{font-size:clamp(26px,3vw,36px);margin:var(--space-3) 0 var(--space-2);color:var(--on-stage)}
.letter .lsub{font:italic 400 22px/1.25 var(--font-serif);margin:0}
.lbody{padding:var(--space-6)}
.lbody h4{font:700 16px/22px var(--font-sans);color:var(--brand-deep);margin:var(--space-5) 0 var(--space-1)}
.lbody h4:first-child{margin-top:0}
.lbody p,.lbody ul{margin:0}
.lbody ul{padding-left:20px}
.crit{margin-top:var(--space-6);background:var(--surface-sunk);border-radius:var(--radius-md);padding:var(--space-5)}
.lbody .crit-h{margin:0 0 var(--space-4);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.06em}
.crit ol{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3);counter-reset:k}
.crit li{counter-increment:k}
.crit li b{display:flex;align-items:center;gap:8px;font-size:15px}
.crit li b::before{content:counter(k);width:26px;height:26px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 1.5px var(--ink);display:inline-flex;align-items:center;justify-content:center;font:800 12px/1 var(--font-display);font-stretch:125%;flex:none}
.crit li span{display:block;font-size:14px;line-height:20px;color:var(--ink-muted);margin-top:6px}
.lbody .sign{margin:var(--space-6) 0 0;font-size:14px;color:var(--ink-muted)}
.sign span{display:block;font:italic 400 26px/1.1 var(--font-serif);color:var(--brand-deep)}

/* KPIs and charts */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}
.kpi{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column}
.kpi b{font:800 30px/1 var(--font-display);font-stretch:125%;color:var(--brand-deep)}
.kpi .kl{font:700 15px/20px var(--font-sans);margin-top:var(--space-3)}
.kpi .ks{font-size:14px;line-height:20px;color:var(--ink-muted)}
.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-4)}
.chart{margin:0;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5)}
.chart figcaption{font:700 15px/20px var(--font-sans);margin-bottom:var(--space-2)}
.chart svg{width:100%;height:auto;max-height:240px}
.chart .v{font:700 12px var(--font-sans);fill:var(--ink)}
.chart .c{font:500 11px var(--font-sans);fill:var(--ink-muted)}
.chart .bar:hover path{opacity:.8}

/* Evidence */
.evgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);align-items:start}
.ev{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);scroll-margin-top:20px}
.ev.wide{grid-column:span 2}
.ev header{display:flex;align-items:center;gap:var(--space-3)}
.eid{font:800 12px/1 var(--font-display);font-stretch:125%;background:var(--denim);color:var(--on-denim);padding:7px 10px;border-radius:var(--radius-pill)}
.cat{font:700 11px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}
.ev h4{font:700 17px/24px var(--font-sans);margin:var(--space-3) 0 var(--space-2)}
.ev ul{margin:0;padding-left:18px;font-size:15px;line-height:22px}
.ev li+li{margin-top:4px}
.src{margin:var(--space-3) 0 0;font-size:13px;line-height:18px;color:var(--ink-muted);font-style:italic}
.ftab{width:100%;border-collapse:collapse;font-size:14px;margin:var(--space-2) 0 var(--space-3);font-variant-numeric:tabular-nums}
.ftab th,.ftab td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line)}
.ftab th{font-size:12px;color:var(--ink-muted)}
.hbars{margin:var(--space-2) 0 var(--space-4);display:grid;gap:6px}
.hb{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 44px;gap:var(--space-3);align-items:center;font-size:14px;line-height:19px}
.hb .track{height:14px;background:var(--surface-sunk);border-radius:var(--radius-xs);overflow:hidden}
.hb .track i{display:block;height:100%;background:var(--brand);border-radius:0 4px 4px 0}
.hb b{font-variant-numeric:tabular-nums;text-align:right}
.org{margin:var(--space-2) 0 var(--space-3);text-align:center;font-size:12px;line-height:16px}
.org .o-ceo{display:inline-block;background:var(--stage);color:var(--on-stage);font-weight:700;padding:6px 18px;border-radius:var(--radius-sm)}
.o-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.o-row.three{grid-template-columns:repeat(3,1fr)}
.o-row div{border:1.5px solid var(--ink);border-radius:var(--radius-sm);padding:5px 4px;background:var(--surface)}
.o-row div b{display:block}
.o-row div span{display:block;color:var(--ink-muted)}
.o-row .new{background:var(--thread)}.o-row .new span{color:var(--ink)}
.o-note{margin:6px 0 0;color:var(--ink-muted);font-size:12px}

/* Voices */
.voices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.voice{margin:0;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5)}
.voice header{display:flex;gap:var(--space-3);align-items:center}
.vid{font:800 12px/1 var(--font-display);font-stretch:125%;background:var(--stage);color:var(--thread);padding:7px 10px;border-radius:var(--radius-pill)}
.voice b{display:block;font-size:16px;line-height:20px}
.voice small{display:block;font-size:13px;color:var(--ink-muted)}
.voice blockquote{margin:var(--space-3) 0 0;font:italic 400 20px/1.3 var(--font-serif)}

/* Briefing */
#brief-body .jump{margin:0 0 var(--space-7)}
.bsec{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-7);margin-bottom:var(--space-6);scroll-margin-top:20px}
.bsec .h2{margin-bottom:var(--space-5)}
.bh3{font:800 18px/1.1 var(--font-display);font-stretch:125%;text-transform:uppercase;margin:var(--space-7) 0 var(--space-3)}
.bp{margin:0 0 var(--space-3);max-width:760px}
.mission-l{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);position:relative}
.mission-l::before{content:"";position:absolute;inset:8px;border:2px dashed var(--thread);border-radius:6px;pointer-events:none}
.mission-l p{margin:0;font:italic 400 24px/1.25 var(--font-serif);position:relative}
.facts3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin:var(--space-5) 0 0}
.facts3 div{border-top:2px solid var(--ink);padding-top:var(--space-3)}
.facts3 dt{font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.facts3 dd{margin:4px 0 0;font-size:16px;line-height:23px}
.roles3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.role{border-radius:var(--radius-md);padding:var(--space-5)}
.role.you{background:var(--thread)}
.role.brd{background:var(--stage);color:var(--on-stage)}
.role.tms{background:var(--denim-soft)}
.rk{margin:0;font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase}
.role.brd .rk{color:var(--thread)}
.role h4{font:italic 400 24px/1.15 var(--font-serif);margin:var(--space-2) 0 var(--space-3)}
.role ul{margin:0;padding-left:18px;font-size:15px;line-height:22px}
.ticks{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-2);max-width:780px}
.ticks li{position:relative;padding-left:30px}
.ticks li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:12px;border-radius:50%;background:var(--brand)}
.tscroll{overflow-x:auto}
.run{width:100%;min-width:900px;border-collapse:collapse;font-size:14px;line-height:20px}
.run th{text-align:left;font:700 12px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--on-stage);background:var(--stage);padding:10px 12px}
.run th:first-child{border-radius:var(--radius-sm) 0 0 0}.run th:last-child{border-radius:0 var(--radius-sm) 0 0}
.run td{vertical-align:top;padding:12px;border-bottom:1px solid var(--line)}
.run td:first-child{white-space:nowrap}
.run time{display:block;font:800 15px/1 var(--font-display);font-stretch:125%}
.run small{display:block;color:var(--ink-muted);margin-top:4px}
.run tr:nth-child(even) td{background:var(--paper)}
.run tr.lect td{color:var(--ink-muted);background:var(--surface-sunk)}
.run.small-t{min-width:0}
.prep{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);align-items:start}
.prep article{border:2px dashed var(--line);border-radius:var(--radius-md);padding:var(--space-5)}
.prep h3{font:700 18px/24px var(--font-sans);margin:0 0 var(--space-2)}
.prep p{margin:0 0 var(--space-2)}
.prep ul{margin:0 0 var(--space-2);padding-left:18px}
.prep .small{font-size:14px;color:var(--ink-muted);margin-top:var(--space-2)}
table.print{width:100%;border-collapse:collapse;font-size:14px;margin:var(--space-2) 0}
table.print td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
table.print td:last-child{color:var(--ink-muted);width:46%}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4)}
.steps>li{border-left:6px solid var(--denim);background:var(--paper);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-5)}
.steps header{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3)}
.steps time{font:800 18px/1 var(--font-display);font-stretch:125%;color:var(--denim)}
.steps h3{margin:0;font:700 19px/24px var(--font-sans)}
.steps header span{font:700 12px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.steps p{margin:0 0 var(--space-3)}
.say{font:italic 400 21px/1.3 var(--font-serif);color:var(--brand-deep);padding-left:var(--space-4);border-left:3px solid var(--thread)}
.do{margin:0 0 var(--space-3);padding-left:22px}
.do li+li{margin-top:4px}
.watch{background:var(--saffron-soft);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:15px;line-height:22px}
.coach{background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-4);margin-bottom:var(--space-3)}
.ck{margin:0 0 var(--space-2)!important;font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.coach ul{margin:0;padding-left:18px;font:italic 400 18px/1.35 var(--font-serif)}
.methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.method{background:var(--paper);border-radius:var(--radius-md);padding:var(--space-5)}
.method h3{font:800 18px/1.1 var(--font-display);font-stretch:125%;text-transform:uppercase;margin:0 0 var(--space-3)}
.method p,.method ol,.method ul{font-size:15px;line-height:22px;margin:0 0 var(--space-3)}
.method ol,.method ul{padding-left:20px}
.mh{font:700 12px/16px var(--font-sans)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin:var(--space-4) 0 var(--space-2)!important}
.ex{background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-3);font-style:italic}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:start}
.run.small-t td small{display:block;color:var(--ink-muted)}
.dls{list-style:none;margin:0 0 var(--space-4);padding:0;display:grid;gap:var(--space-3)}
.dlrow{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);background:var(--paper);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}
.dlrow b{display:block;font-size:17px}
.dlrow span{display:block;font-size:15px;line-height:21px;color:var(--ink-muted)}
.dlrow em{display:block;font-style:normal;font:700 12px/16px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;margin-top:4px}
.dlrow .btn{flex:none}
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin:0}
.faq div{border-top:2px solid var(--ink);padding-top:var(--space-3)}
.faq dt{font-weight:700}
.faq dd{margin:4px 0 0;color:var(--ink-muted);font-size:15px;line-height:22px}

@media (max-width:1020px){
  .ptiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .evgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .methods{grid-template-columns:1fr}
  .crit ol{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .charts,.voices,.roles3,.facts3,.prep,.two,.faq{grid-template-columns:1fr}
  .bsec{padding:var(--space-5)}
  .lbody,.letter header{padding:var(--space-5)}
}
@media (max-width:560px){
  .ptiles,.kpis,.evgrid{grid-template-columns:1fr}
  .ev.wide{grid-column:auto}
  .hb{grid-template-columns:1fr 44px}.hb .track{grid-column:1/-1;grid-row:2}
  .crit ol{grid-template-columns:1fr}
  .dlrow{flex-direction:column;align-items:stretch}
}


/* previews, board timeline, hotline */
.lbody .hotline{background:var(--stage);color:var(--on-stage)}
.lbody .hotline .crit-h{color:var(--thread)}
.lbody .hotline p{margin:0}
.dlrow{align-items:stretch}
.dlrow .pv{margin:0;flex:0 0 60%;cursor:zoom-in;display:flex;gap:8px;overflow-x:auto;background:var(--surface);border-radius:var(--radius-sm);padding:8px}
.dlrow .pv img{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 0 0 1px var(--line)}
.dlrow.multi .pv img{width:auto;height:300px;flex:none}
.lb{position:fixed;inset:0;z-index:50;background:rgba(10,20,16,.86);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lb img{max-width:100%;max-height:100%;border-radius:6px;box-shadow:var(--shadow-lift);background:#fff}
.lb button{position:absolute;top:16px;right:16px}
.dlt{display:flex;flex-direction:column;justify-content:center;gap:2px;flex:1}
.dlt .btn{align-self:flex-start;margin-top:var(--space-3)}
.boardtl{list-style:none;margin:0 0 var(--space-6);padding:0;display:grid;gap:var(--space-3)}
.boardtl li{display:grid;grid-template-columns:80px 1fr;gap:var(--space-4);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}
.boardtl time{font:800 16px/1 var(--font-display);font-stretch:125%;color:var(--thread);padding-top:3px}
.boardtl b{display:block;font-size:17px;line-height:24px}
.boardtl span{display:block;font-size:15px;line-height:22px;opacity:.92;margin-top:2px}
.coach .small{font-size:14px;color:var(--ink-muted);margin:var(--space-3) 0 0}
@media (max-width:860px){.dlrow .pv{flex-basis:auto}.dlrow.multi .pv img{height:180px}.boardtl li{grid-template-columns:1fr;gap:4px}}


/* ---------- Phase 02 ---------- */
.ph2 .eyebrow{color:var(--thread)}
.mail{max-width:860px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);overflow:hidden}
.mail-bar{display:flex;align-items:center;gap:6px;background:var(--surface-sunk);padding:10px 16px}
.mail-bar .dot{width:10px;height:10px;border-radius:50%;background:var(--line)}
.mail-app{margin-left:10px;font:600 12px/1 var(--font-sans);color:var(--ink-muted)}
.mail-head{display:grid;grid-template-columns:48px 1fr auto;gap:var(--space-4);align-items:start;padding:var(--space-5) var(--space-6) var(--space-3);border-bottom:1px solid var(--line)}
.avatar{width:48px;height:48px;border-radius:50%;background:var(--stage);color:var(--thread);display:flex;align-items:center;justify-content:center;font:800 15px/1 var(--font-display);font-stretch:125%}
.mail-from{margin:0;font-size:16px}.mail-from span{color:var(--ink-muted);font-size:14px}
.mail-head dl{margin:4px 0 0;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:14px;color:var(--ink-muted)}
.mail-head dl div{display:flex;gap:6px}.mail-head dt{font-weight:600}.mail-head dd{margin:0}
.mail-head time{font-size:13px;color:var(--ink-muted);white-space:nowrap}
.mail-subj{margin:0;padding:var(--space-4) var(--space-6) 0;font:700 22px/28px var(--font-sans)}
.mail-body{padding:var(--space-3) var(--space-6) var(--space-6)}
.mail-body p{margin:0 0 var(--space-3)}
.mail-body ol{margin:0 0 var(--space-3);padding-left:22px}
.mail-body ol li+li{margin-top:6px}
.mail-sign{font:italic 400 28px/1 var(--font-serif)!important;color:var(--brand-deep);margin:var(--space-4) 0 4px!important}
.mail-sig{font-size:13px;color:var(--ink-muted)}
.mail-agenda{margin-top:var(--space-5);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-5)}
.mail-agenda .crit-h{color:var(--thread);margin:0 0 var(--space-3)!important;font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.06em}
.mail-agenda ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px var(--space-5)}
.mail-agenda li{display:grid;grid-template-columns:52px 1fr;gap:8px;font-size:15px;line-height:21px}
.mail-agenda time{font:800 13px/21px var(--font-display);font-stretch:125%;color:var(--thread)}
.recap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}
.rc{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:6px}
.rc .no{width:32px;height:32px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 1.5px var(--ink);display:flex;align-items:center;justify-content:center;font:800 13px/1 var(--font-display);font-stretch:125%}
.rc b{font-size:17px;line-height:23px;margin-top:6px}.rc span:last-child{font-size:15px;line-height:22px;color:var(--ink-muted)}
.switch{margin-top:var(--space-5);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);position:relative}
.switch::before{content:"";position:absolute;inset:8px;border:2px dashed var(--thread);border-radius:6px;pointer-events:none}
.switch .k{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.06em;color:var(--thread)}
.switch p{margin:0;position:relative}
.depts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.dept{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column}
.did{font:800 11px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.08em;background:var(--stage);color:var(--thread);padding:6px 10px;border-radius:var(--radius-pill);display:inline-block}
.dept h3{font:800 20px/1.1 var(--font-display);font-stretch:125%;text-transform:uppercase;margin:var(--space-3) 0 var(--space-2)}
.dept header p{margin:0;font:italic 400 17px/1.3 var(--font-serif);color:var(--brand-deep)}
.ff{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:var(--space-4) 0 var(--space-3)}
.ff div{border-radius:var(--radius-sm);padding:var(--space-3)}.ff .fear{background:var(--coral-soft)}.ff .need{background:var(--brand-soft)}
.ff b{display:block;font:700 11px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.ff ul{margin:0;padding-left:16px;font-size:14px;line-height:20px}
.fact{margin:auto 0 0;font-size:14px;line-height:20px}
.plan{list-style:none;margin:0 0 var(--space-7);padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-3)}
.plan li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);border-top:6px solid var(--saffron)}
.plan time{display:block;font:800 15px/1 var(--font-display);font-stretch:125%;margin-bottom:var(--space-2)}
.plan b{display:block;font-size:15px;line-height:20px}.plan span{display:block;font-size:13px;line-height:19px;color:var(--ink-muted);margin-top:4px}
.p2two{align-items:start}
.stations{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}
.st{border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:4px}
.st.denim{background:var(--denim-soft)}.st.saffron{background:var(--saffron-soft)}.st.coral{background:var(--coral-soft)}.st.plum{background:var(--plum-soft)}
.stn{font:800 12px/16px var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.06em}
.st b{font-size:17px;line-height:24px}.st span:last-child{font:italic 400 17px/1.3 var(--font-serif);color:var(--ink-muted)}
.vtest{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.vtest li{background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4) var(--space-3) 44px;position:relative;font-size:15px;line-height:22px}
.vtest li::before{content:"";position:absolute;left:14px;top:14px;width:16px;height:16px;border:2px solid var(--ink);border-radius:3px}
.methods.four{grid-template-columns:repeat(2,minmax(0,1fr))}
.method .small{font-size:13px;color:var(--ink-muted)}
.steps.s2>li{border-left-color:var(--saffron)}
.steps.s2 time{color:var(--brand-deep)}
.run.gsize{min-width:760px}
.run.gsize td:first-child{white-space:normal;width:130px}
@media (max-width:1020px){.recap{grid-template-columns:repeat(2,minmax(0,1fr))}.depts{grid-template-columns:repeat(2,minmax(0,1fr))}.plan{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.methods.four{grid-template-columns:1fr}.mail-head{grid-template-columns:40px 1fr}.mail-head time{grid-column:2}.mail-agenda ol{grid-template-columns:1fr}.mail-subj,.mail-body,.mail-head{padding-left:var(--space-5);padding-right:var(--space-5)}}
@media (max-width:560px){.recap,.depts,.plan,.ff{grid-template-columns:1fr}}


/* ---------- Phase 03 ---------- */
.ph3 .eyebrow{color:var(--thread)}
.block-s .wrap{position:relative}
.notes-cta{margin-top:var(--space-4)}
.prevline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.prevline li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);border-top:6px solid var(--coral)}
.prevline .pw{font:800 14px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.prevline p{margin:var(--space-2) 0 0;font-size:15px;line-height:22px;color:var(--ink-muted)}
.rot{min-width:0}.rot td,.rot th{text-align:center}.rot td:first-child,.rot th:first-child{text-align:left}
.rot td{font:800 20px/1 var(--font-display);font-stretch:125%}.rot td:first-child{font:inherit}.rot td small{display:block}
.rsteps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.rsteps li{display:grid;grid-template-columns:64px 1fr;gap:var(--space-3);background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}
.rsteps time{font:800 14px/22px var(--font-display);font-stretch:125%;color:var(--coral)}
.rsteps b{display:block}.rsteps span{display:block;font-size:14px;line-height:20px;color:var(--ink-muted)}
.unlock-how{margin-top:var(--space-6);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6)}
.unlock-how .k{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--thread)}
.unlock-how ol{margin:0;padding-left:20px}
.pdept{margin-bottom:var(--space-6)}
.pdept h3{margin:0 0 var(--space-3)}
.dp{display:inline-block;font:700 12px/1 var(--font-sans);letter-spacing:.06em;padding:7px 12px;border-radius:var(--radius-pill)}
.dp.saffron{background:var(--saffron);color:var(--on-saffron)}.dp.denim{background:var(--denim);color:var(--on-denim)}.dp.coral{background:var(--coral);color:var(--on-coral)}.dp.plum{background:var(--plum);color:var(--on-plum)}.dp.brand{background:var(--brand);color:var(--on-brand)}.dp.thread{background:var(--thread);color:var(--on-thread);box-shadow:inset 0 0 0 1.5px var(--ink)}
.ptgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:var(--space-3)}
.ptile2{font:inherit;color:inherit;text-align:left;cursor:pointer;background:var(--surface);border:0;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-2) var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:2px;transition:transform .12s ease,box-shadow .12s ease}
.ptile2:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.ptile2 img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;margin-bottom:var(--space-2);background:var(--brand-soft)}
.ptile2 b{font-size:15px;line-height:20px;padding:0 4px}.ptile2 span{font-size:13px;line-height:18px;color:var(--ink-muted);padding:0 4px}
.pmodal{position:fixed;inset:0;z-index:60;background:rgba(10,20,16,.7);display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto}
.pmodal[hidden]{display:none}
.pm-card{position:relative;width:min(720px,100%);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--space-6)}
.pm-x{position:absolute;top:16px;right:16px;min-height:40px;padding:8px 16px}
.pm-top{display:grid;grid-template-columns:140px 1fr;gap:var(--space-5);align-items:center;padding-right:90px}
.pm-top img{width:140px;height:140px;object-fit:cover;border-radius:var(--radius-md)}
.pm-top h3{font:800 26px/1.05 var(--font-display);font-stretch:125%;text-transform:uppercase;margin:var(--space-3) 0 var(--space-1)}
.pm-top p{margin:0;font:italic 400 20px/1.2 var(--font-serif);color:var(--brand-deep)}
.pm-facts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-3);margin:var(--space-5) 0}
.pm-facts div{border-top:2px solid var(--ink);padding-top:var(--space-2)}
.pm-facts dt{font:700 11px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.pm-facts dd{margin:2px 0 0;font-size:15px;line-height:21px}
#pm-private .ff{margin-top:0}
#pm-private .ff p{margin:0;font-size:15px;line-height:21px}
.pq{font:600 26px/1.1 var(--font-hand);color:var(--brand-deep);margin:var(--space-4) 0}
.inner{background:var(--surface-sunk);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}
.inner b{font:700 11px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase}.inner p{margin:4px 0 0;font:italic 400 18px/1.3 var(--font-serif)}
.agenda{position:relative;background:var(--stage);color:var(--on-stage);border-radius:var(--radius-xs);padding:var(--space-5) var(--space-6);background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 2px,transparent 2px 4px)}
.agenda::before{content:"";position:absolute;inset:8px;border:2px dashed var(--thread);border-radius:2px;pointer-events:none}
.agenda .k{font:800 12px/1 var(--font-display);font-stretch:125%;letter-spacing:.14em;color:var(--thread)}
.agenda p{margin:var(--space-2) 0;font:italic 400 22px/1.2 var(--font-serif)}
.agenda .by{font:700 11px/16px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.howplay{margin-top:var(--space-4);background:var(--thread);color:var(--on-thread);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:15px;line-height:22px}
.savebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);font-size:15px}
.sb-btns{display:flex;gap:var(--space-2);flex-wrap:wrap}
.savebar .btn-quiet{background:transparent;color:var(--on-stage);border-color:rgba(245,242,234,.7)}
.ntabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}
.ntabs button{font:800 14px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;padding:14px 20px;border-radius:var(--radius-pill);border:2px solid var(--ink-muted);background:var(--surface);color:var(--ink);cursor:pointer}
.ntabs button[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.nrole{border:0;margin:0 0 var(--space-5);padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.nrole legend{font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-2)}
.nrole label{display:flex;gap:var(--space-3);align-items:flex-start;background:var(--surface);border-radius:var(--radius-md);padding:var(--space-4);cursor:pointer;box-shadow:var(--shadow-card);border:2px solid transparent}
.nrole label:has(input:checked){border-color:var(--ink);background:var(--thread)}
.nrole input{margin-top:4px;accent-color:var(--ink)}
.nrole b{display:block;font-size:17px}.nrole span{font-size:14px;line-height:20px;color:var(--ink)}
.nt-pick{font:italic 400 20px/1.3 var(--font-serif);color:var(--ink-muted)}
.npanel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-5);align-items:start}
.npanel[hidden]{display:none}
.nform{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6);display:grid;gap:var(--space-4)}
.nf{display:grid;gap:4px}
.nf span{font-weight:700;font-size:15px}.nf em{font-style:normal;font-size:13px;color:var(--ink-muted)}
.nf textarea,.nf input,.nf select{font:400 16px/24px var(--font-sans);color:var(--ink);background:var(--paper);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:10px 12px;width:100%;box-sizing:border-box;resize:vertical}
.nf textarea:focus,.nf input:focus,.nf select:focus{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--ink)}
.nrs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.nr{border:2px solid var(--line);border-radius:var(--radius-sm);margin:0;padding:var(--space-2) var(--space-3) var(--space-3)}
.nr legend{font-weight:700;font-size:14px;padding:0 4px}
.nr label{display:block;font-size:15px;line-height:26px}
.nhint{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-lg);padding:var(--space-6);position:sticky;top:16px}
.nhint .k{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--thread)}
.nhint .k+*{margin-top:0}
.nhint ul,.nhint ol{margin:0 0 var(--space-5);padding-left:20px;font-size:15px;line-height:22px}
.nhint p{font-size:15px;line-height:22px;margin:0}
.qlist>li{margin-bottom:var(--space-2)}.qlist>li>b{color:var(--thread)}.qlist ul{margin:4px 0 0;padding-left:18px;font:italic 400 17px/1.35 var(--font-serif)}
.codes{min-width:0}.codes code{font:700 15px/1 'Courier New',monospace;background:var(--thread);padding:4px 8px;border-radius:4px}
.steps.s3>li{border-left-color:var(--coral)}
@media (max-width:860px){.prevline,.nrole,.npanel,.nrs,.pm-facts{grid-template-columns:1fr}.pm-top{grid-template-columns:96px 1fr;padding-right:0}.pm-top img{width:96px;height:96px}.pm-x{position:static;margin-bottom:var(--space-3)}.nhint{position:static}.pm-card{padding:var(--space-5)}}
/* trio workspace */
.signin{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-4);margin-bottom:var(--space-4)}
.si-step{display:grid;grid-template-columns:40px 1fr;gap:var(--space-3);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}
.si-step .no{width:36px;height:36px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 2px var(--ink);display:flex;align-items:center;justify-content:center;font:800 15px/1 var(--font-display);font-stretch:125%}
.si-step b{display:block;font-size:17px}.si-step>div>span{display:block;font-size:14px;line-height:20px;color:var(--ink-muted);margin:2px 0 var(--space-3)}
.si-step .gate{border-top:0;padding-top:0;margin:0}
.letters{display:flex;gap:var(--space-2)}
.letters button{width:64px;height:64px;border-radius:var(--radius-md);border:2px solid var(--ink-muted);background:var(--paper);font:800 26px/1 var(--font-display);font-stretch:125%;color:var(--ink);cursor:pointer}
.letters button[aria-checked=true]{background:var(--ink);color:var(--thread);border-color:var(--ink)}
.mine{display:grid;grid-template-columns:56px 1fr auto;gap:var(--space-3);align-items:center}
.mine img{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover}
.mine b{display:block;font-size:16px}.mine span{display:block;font-size:13px;color:var(--ink-muted)}
.mine[hidden]{display:none}
.tw-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6);margin-bottom:var(--space-4)}
.tw-h{margin:var(--space-6) 0 var(--space-4)}
.rtabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}
.rtabs button{font:inherit;text-align:left;cursor:pointer;background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:4px;color:var(--ink)}
.rtabs button[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.rtabs .rt-n{font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.rtabs .rt-role{font:italic 400 22px/1.1 var(--font-serif)}
.rtabs button[aria-selected=true] .rt-role{color:var(--thread)}
.role-h{margin:0;font-size:17px;line-height:25px;background:var(--surface-sunk);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}
.kq{margin:0 0 var(--space-5);padding-left:22px;font:italic 400 20px/1.3 var(--font-serif);color:var(--on-stage)}
.kq li+li{margin-top:var(--space-2)}
.crits{display:grid;gap:var(--space-3)}
.crit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-4);align-items:center;background:var(--paper);border-radius:var(--radius-md);padding:var(--space-4)}
.cr-txt b{display:block;font-size:16px}.cr-txt span{display:block;font-size:14px;line-height:20px;color:var(--ink-muted)}
.stars{border:0;margin:0;padding:0;display:flex;gap:2px}
.stars label{cursor:pointer;font-size:30px;line-height:1;color:var(--line);padding:2px}
.stars label.on{color:var(--saffron)}
.stars input{position:absolute;opacity:0;width:1px;height:1px}
.stars label:focus-within{outline:2px solid var(--focus-ring);outline-offset:1px;border-radius:4px}
.cr-ask{grid-column:1/-1;margin:0;font-size:14px;line-height:20px;color:var(--ink-muted)}
.cr-ask.on{color:var(--ink);background:var(--surface);border-left:4px solid var(--saffron);padding:var(--space-2) var(--space-3);border-radius:0 6px 6px 0;font:italic 400 17px/1.35 var(--font-serif)}
.avg{margin:0;font-weight:700}
.unlock-how{display:flex;flex-wrap:wrap;gap:var(--space-5);align-items:center;justify-content:space-between}
@media (max-width:860px){.signin,.rtabs{grid-template-columns:1fr}.crit-row{grid-template-columns:1fr}.mine{grid-template-columns:48px 1fr}.mine .btn{grid-column:1/-1}}
@media (max-width:860px){.npanel .nhint{order:-1}.ntabs button{padding:12px 14px;white-space:nowrap}}

/* ---------- Phase 01 board table: lottery, criteria, rating, result ---------- */
#p1board #pb1-body{display:grid;gap:var(--space-5);margin-top:var(--space-4)}
#p1board .pb-sec{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}
#p1board .pb-sec>.bh3{margin:0 0 var(--space-3)}
.lrow{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end;margin-bottom:var(--space-4)}
.nf.inl{display:grid;gap:4px;max-width:150px}
.nf.inl input{font:700 18px/1 var(--font-sans);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:9px 11px;background:var(--paper);width:100%}
.plist{margin:var(--space-2) 0 0;padding-left:0;list-style:none;counter-reset:pl;display:grid;gap:8px}
.plist li{counter-increment:pl;font:800 18px/1.2 var(--font-display);font-stretch:110%;display:flex;align-items:center;gap:var(--space-3)}
.plist li::before{content:counter(pl);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--thread);color:var(--stage);font:800 15px/1 var(--font-sans);flex:0 0 auto}
.lresult .vk{margin:0 0 var(--space-2)}
.crow{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-2)}
.crow .clabel{flex:1 1 auto;font:400 16px/22px var(--font-sans);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:9px 11px;background:var(--paper)}
.cwt{font:700 12px/1 var(--font-sans);color:var(--ink-muted);display:flex;align-items:center;gap:6px;white-space:nowrap}
.cwt select{font:700 14px/1 var(--font-sans);padding:7px 8px;border-radius:var(--radius-sm);border:2px solid var(--ink-muted);background:var(--paper)}
.rgwrap{overflow-x:auto}
.rgrid{border-collapse:collapse;width:100%;min-width:420px}
.rgrid th,.rgrid td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line)}
.rgrid thead th{font:800 13px/1.2 var(--font-display);font-stretch:110%;vertical-align:bottom}
.rgrid thead th small{display:block;font:700 11px/1 var(--font-sans);color:var(--ink-muted);margin-top:2px}
.rgrid tbody th{font:800 16px/1.2 var(--font-display);font-stretch:110%;white-space:nowrap}
.rgcell{display:flex;gap:3px}
.rgb{width:30px;height:32px;border-radius:var(--radius-sm);border:2px solid var(--ink-muted);background:var(--paper);font:800 14px/1 var(--font-sans);color:var(--ink-muted);cursor:pointer}
.rgb.on{background:var(--brand);border-color:var(--brand);color:var(--stage)}
.pb-res .rres{display:grid;gap:var(--space-3);margin:var(--space-2) 0 var(--space-4)}
.rbar{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:var(--space-3);align-items:center}
.rbn{font:800 17px/1.2 var(--font-display);font-stretch:110%}
.rbn b{color:var(--thread);font-stretch:100%;font-size:14px}
.rbt{height:14px;border-radius:7px;background:var(--surface-sunk);overflow:hidden}
.rbt span{display:block;height:100%;background:var(--brand);border-radius:7px;transition:width .3s}
.rbar.win .rbt span{background:var(--thread)}
.rbv{font:800 18px/1 var(--font-sans)}
.prevvision .pv-w{margin:0;font:italic 400 21px/1.45 var(--font-serif);color:var(--ink)}
.view.wall-full .rgrid tbody th,.view.wall-full .rbn{font-size:24px}
.view.wall-full .plist li{font-size:26px}
/* ---------- Phase 03 stakeholder board: influence/interest grid ---------- */
#p3board{--st-green:#2e9e5b;--st-yellow:#e2a516;--st-red:#d64545}
#p3board .pb-sec{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);margin-bottom:var(--space-4)}
#p3board .pb-sec>.bh3{margin:0 0 var(--space-2)}
.sb-hint{color:var(--ink-muted);font-size:14px;margin:0 0 var(--space-3)}
.sb-hint b{color:var(--thread)}
.sb-stage{display:grid;grid-template-columns:34px 1fr;gap:6px;align-items:stretch}
.sb-yax{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font:800 12px/1 var(--font-display);font-stretch:110%;letter-spacing:.04em;color:var(--ink-muted);text-transform:uppercase;align-self:center}
.sb-xax{grid-column:2;text-align:center;font:800 12px/1 var(--font-display);font-stretch:110%;letter-spacing:.04em;color:var(--ink-muted);text-transform:uppercase;margin-top:6px}
.sbgrid{grid-column:2;position:relative;aspect-ratio:1/1;max-width:620px;width:100%;margin:0 auto;border:2px solid var(--line);border-radius:var(--radius-md);background:var(--paper);overflow:hidden;touch-action:none}
.sbgrid::before,.sbgrid::after{content:"";position:absolute;background:var(--line)}
.sbgrid::before{left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%)}
.sbgrid::after{top:50%;left:0;right:0;height:2px;transform:translateY(-50%)}
.sbq{position:absolute;width:50%;padding:10px 12px;pointer-events:none;color:var(--ink-muted)}
.sbq b{display:block;font:800 14px/1.15 var(--font-display);font-stretch:110%;color:var(--ink)}
.sbq span{font-size:11px;line-height:1.3;display:block;margin-top:2px;opacity:.85}
.sbq.tl{top:0;left:0}.sbq.tr{top:0;right:0;text-align:right}.sbq.bl{bottom:0;left:0}.sbq.br{bottom:0;right:0;text-align:right}
.sbgrid.place{cursor:crosshair;box-shadow:inset 0 0 0 3px var(--thread)}
.sbchip{position:absolute;transform:translate(-50%,50%);width:46px;cursor:grab;z-index:2;border:0;background:none;padding:0}
.sbchip:focus-visible{outline:2px solid var(--thread);outline-offset:2px}
.sbchip.drag{z-index:5;cursor:grabbing}
.sbchip img{width:46px;height:46px;object-fit:cover;border-radius:50%;background:var(--brand-soft);border:3px solid var(--ink-muted);box-shadow:var(--shadow-card);display:block}
.sbchip.s-green img{border-color:var(--st-green)}.sbchip.s-yellow img{border-color:var(--st-yellow)}.sbchip.s-red img{border-color:var(--st-red)}
.sbchip .sbnm{display:block;text-align:center;font:700 10px/1.1 var(--font-sans);margin-top:2px;color:var(--ink);text-shadow:0 1px 2px var(--paper),0 0 2px var(--paper)}
.sbchip .sbdot{position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;border:2px solid var(--surface)}
.sbchip.s-green .sbdot{background:var(--st-green)}.sbchip.s-yellow .sbdot{background:var(--st-yellow)}.sbchip.s-red .sbdot{background:var(--st-red)}
.sbchip.s-none .sbdot{background:var(--ink-muted)}
.sbmenu{position:absolute;z-index:10;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);padding:10px;transform:translate(-50%,10px);min-width:190px}
.sbmenu .sbm-nm{font:800 14px/1.2 var(--font-display);font-stretch:110%;margin:0 0 6px}
.sbmenu .sbm-row{display:flex;gap:6px;margin-bottom:8px}
.sbst{flex:1;border:2px solid var(--line);background:var(--paper);border-radius:var(--radius-sm);padding:6px 4px;font:700 11px/1.1 var(--font-sans);cursor:pointer;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:3px}
.sbst .sw{width:14px;height:14px;border-radius:50%}
.sbst.g .sw{background:var(--st-green)}.sbst.y .sw{background:var(--st-yellow)}.sbst.r .sw{background:var(--st-red)}
.sbst.on{border-color:var(--ink);color:var(--ink);background:var(--surface-sunk)}
.sbmenu .sbm-acts{display:flex;gap:8px}
.sbpalette{margin-top:var(--space-4)}
.sbpal-dept{margin-bottom:var(--space-3)}
.sbpal-dept h4{font:800 13px/1 var(--font-display);font-stretch:110%;margin:0 0 6px;text-transform:uppercase;letter-spacing:.03em}
.sbpal-grid{display:flex;flex-wrap:wrap;gap:8px}
.sbpick{font:inherit;color:inherit;cursor:pointer;background:var(--paper);border:2px solid var(--line);border-radius:var(--radius-md);padding:5px 9px 5px 5px;display:flex;align-items:center;gap:7px;transition:transform .1s ease,border-color .1s ease}
.sbpick:hover{transform:translateY(-1px)}
.sbpick.sel{border-color:var(--thread);background:var(--brand-soft)}
.sbpick img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:var(--brand-soft)}
.sbpick b{font-size:13px;font-weight:700}
.sb-empty{color:var(--ink-muted);font-size:14px}
.sb-note{background:var(--surface-sunk);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--ink-muted);font-size:14px}
.sb-note a{color:var(--thread);font-weight:700}
/* aggregate (projector) */
.sbagg-dot{position:absolute;width:12px;height:12px;border-radius:50%;transform:translate(-50%,50%);opacity:.45;border:1px solid var(--surface);z-index:1}
.sbagg-dot.s-green{background:var(--st-green)}.sbagg-dot.s-yellow{background:var(--st-yellow)}.sbagg-dot.s-red{background:var(--st-red)}.sbagg-dot.s-none{background:var(--ink-muted)}
.sbchip.agg{cursor:default}
.sbchip .sbcount{position:absolute;bottom:14px;right:-6px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--stage);color:#fff;font:700 10px/16px var(--font-sans);text-align:center}
.sbtally{margin-top:var(--space-4)}
.sbtally table{border-collapse:collapse;width:100%}
.sbtally th,.sbtally td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}
.sbtally thead th{font:800 12px/1.2 var(--font-display);font-stretch:110%}
.sbtally .who{display:flex;align-items:center;gap:8px;font-weight:700}
.sbtally .who img{width:26px;height:26px;border-radius:50%;object-fit:cover}
.sbbar{display:inline-flex;height:12px;border-radius:6px;overflow:hidden;vertical-align:middle;min-width:60px}
.sbbar i{display:block;height:100%}
.sbbar .g{background:var(--st-green)}.sbbar .y{background:var(--st-yellow)}.sbbar .r{background:var(--st-red)}
.sbspread{font-weight:700}.sbspread.tight{color:var(--st-green)}.sbspread.loose{color:var(--st-red)}
.view.wall-full .sbgrid{max-width:min(72vh,900px)}
.view.wall-full .sbchip{width:60px}.view.wall-full .sbchip img{width:60px;height:60px}
.view.wall-full .sbq b{font-size:18px}.view.wall-full .sbq span{font-size:13px}
/* ---------- Phase 03 change plan canvas + presenting-teams lottery ---------- */
#p3plan .wbar{margin-bottom:var(--space-3)}
.cpcanvas{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}
.cp-row{display:grid;grid-template-columns:minmax(170px,1.1fr) 1fr 1fr;gap:var(--space-3);padding:var(--space-3);border-top:1px solid var(--line)}
.cp-row:first-child{border-top:0}
.cp-head{background:var(--stage);padding:10px var(--space-3)}
.cp-colh{font:800 13px/1.2 var(--font-display);font-stretch:110%;color:var(--thread);text-transform:uppercase;letter-spacing:.04em;align-self:center}
.cp-lab{display:flex;flex-direction:column;gap:2px}
.cp-lab .cp-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--thread);color:var(--ink);font:800 12px/1 var(--font-sans)}
.cp-lab b{font:800 15px/1.2 var(--font-display);font-stretch:110%;margin-top:3px}
.cp-lab .cp-hint{font:italic 400 12.5px/1.35 var(--font-serif);color:var(--ink-muted)}
.cp-cell textarea,.cp-box textarea{width:100%;font:inherit;font-size:14px;line-height:1.4;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;resize:vertical;box-sizing:border-box}
.cp-cell textarea:focus,.cp-box textarea:focus{outline:2px solid var(--thread);outline-offset:1px;border-color:var(--thread)}
.cp-bottom{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-3)}
.cp-box{border-radius:var(--radius-lg);padding:var(--space-4)}
.cp-box.first{background:var(--brand-soft)}.cp-box.risk{background:var(--coral-soft)}
.cp-box .cp-bk{font:800 13px/1 var(--font-display);font-stretch:110%;text-transform:uppercase;letter-spacing:.04em;margin:0}
.cp-box .cp-bh{font:italic 400 13px/1.35 var(--font-serif);color:var(--ink);margin:4px 0 8px}
/* presenting teams */
#p3present .pres-draw{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-bottom:var(--space-3)}
#p3present .pres-draw .nf.inl{display:flex;align-items:center;gap:6px}
#p3present .pres-draw input{width:64px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit}
.presgrid{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.prescard{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-4);min-width:160px;border:2px solid transparent}
.prescard .pc-n{font:800 20px/1.1 var(--font-display);font-stretch:110%}
.prescard .pc-k{font-size:12px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}
.prescard.mine{border-color:var(--thread);background:var(--brand-soft)}
.prescard .pc-you{display:inline-block;margin-top:4px;font:800 12px/1 var(--font-sans);color:var(--stage)}
.pres-empty{color:var(--ink-muted);font-size:14px}
.view.wall-full #p3plan,.view.wall-full .cp-reload{display:none}
.view.wall-full .prescard .pc-n{font-size:40px}
.view.wall-full .presgrid{gap:var(--space-5)}
.view.wall-full #cpd-count{font-size:22px}
/* ---------- Phase 02 vision builder ---------- */
.ph2 .eyebrow{color:var(--thread)}
.vbuild{display:grid;gap:var(--space-3)}
.vrow{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);border-left:8px solid var(--ink-muted);display:grid;grid-template-columns:120px 1fr;gap:var(--space-4);align-items:start}
.vrow.saffron{border-left-color:var(--saffron)}.vrow.denim{border-left-color:var(--denim)}.vrow.coral{border-left-color:var(--coral)}.vrow.plum{border-left-color:var(--plum)}
.vp{align-self:center;font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;padding:7px 12px;border-radius:var(--radius-pill);text-align:center;background:var(--surface-sunk);color:var(--ink)}
.vrow.saffron .vp{background:var(--saffron-soft)}.vrow.denim .vp{background:var(--denim-soft)}.vrow.coral .vp{background:var(--coral-soft)}.vrow.plum .vp{background:var(--plum-soft,var(--surface-sunk))}
.vrow .nf span{font:italic 400 19px/1.3 var(--font-serif);color:var(--ink)}
.vrow textarea{font:400 16px/24px var(--font-sans);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:10px 12px;background:var(--paper);width:100%;resize:vertical;margin-top:6px}
.vprev{margin-top:var(--space-4);background:var(--paper);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);border-left:6px solid var(--thread)}
.vk{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--ink-muted)}
.vfinal{margin:0 0 var(--space-2);font:italic 400 21px/1.4 var(--font-serif)}
.vcompose{margin:0;font-size:14px;line-height:21px;color:var(--ink-muted)}
.vtestc{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.vtestc li{background:var(--paper);border-radius:var(--radius-sm);padding:10px 12px}
.vtestc label{display:flex;gap:var(--space-2);align-items:flex-start;font-size:15px;line-height:22px;cursor:pointer}
.vtestc input{margin-top:3px;width:20px;height:20px;accent-color:var(--brand);flex:0 0 auto}
@media (max-width:560px){.vrow{grid-template-columns:1fr}.vrow .vp{justify-self:start}}

/* ---------- Phase 02 department merge ---------- */
#p2merge #pm-body,#p2gallery #pg-body{display:grid;gap:var(--space-5);margin-top:var(--space-4)}
.mcard{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}
.mcard>header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.mcard>header .bh3{margin:0}
.mct{font:700 12px/1 var(--font-sans);padding:5px 9px;border-radius:var(--radius-pill);background:var(--surface-sunk);color:var(--ink-muted)}
.mdrafts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}
.mdraft{background:var(--paper);border-radius:var(--radius-md);padding:var(--space-4);border-left:5px solid var(--saffron)}
.mdt{margin:0 0 var(--space-2);font:800 14px/1 var(--font-display);font-stretch:125%}
.mdv{margin:0 0 var(--space-2);font:italic 400 16px/1.4 var(--font-serif)}
.mds{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:13px;line-height:18px;color:var(--ink-muted)}
.mds b{color:var(--ink)}
.mjoint{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}
.mjoint .vk{color:var(--thread)}
.mjoint .nf span{color:var(--paper)}
.mjoint textarea,.mjoint input{font:400 16px/23px var(--font-sans);border:2px solid rgba(245,242,234,.35);border-radius:var(--radius-sm);padding:10px 12px;background:rgba(245,242,234,.08);color:var(--paper);width:100%;margin-top:6px}
.mjoint textarea::placeholder,.mjoint input::placeholder{color:rgba(245,242,234,.55)}
.msave{margin:var(--space-2) 0 0;font-size:13px;color:var(--thread)}

/* ---------- Phase 02 gallery + voting ---------- */
.gcard{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.gcard>header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}
.gcard>header .bh3{margin:0}
.gdots{font-size:12px;color:var(--brand);white-space:nowrap;letter-spacing:1px}
.gdots b{font-size:16px;color:var(--ink);margin-left:4px;letter-spacing:0}
.gvision{margin:0;font:italic 400 21px/1.4 var(--font-serif)}
.gdel{margin:0;font-size:13px;color:var(--ink-muted)}
.gbar{height:10px;border-radius:5px;background:var(--surface-sunk);overflow:hidden;margin:var(--space-2) 0}
.gbar span{display:block;height:100%;background:var(--brand);border-radius:5px;transition:width .3s}
.gvote{display:flex;align-items:center;gap:var(--space-3)}
.gvote button{min-width:48px;font-size:18px;font-weight:800}
.gvote button:disabled{opacity:.4;cursor:not-allowed}
.gmine{font:700 13px/1 var(--font-sans);color:var(--ink-muted)}
.view.wall-full .gvision{font-size:26px}

/* ---------- Phase 02 fishbowl + sign-off ---------- */
#p2final #pf-body{display:grid;gap:var(--space-5);margin-top:var(--space-4)}
.fbowl{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5) var(--space-6)}
.fbowl .nf span{color:var(--thread)}
.fbowl textarea{font:italic 400 22px/1.5 var(--font-serif);border:2px solid rgba(245,242,234,.35);border-radius:var(--radius-sm);padding:14px 16px;background:rgba(245,242,234,.08);color:var(--paper);width:100%;resize:vertical;margin-top:8px}
.fbowl textarea::placeholder{color:rgba(245,242,234,.5)}
.fbowl .ffinal{margin:0;font:italic 400 24px/1.5 var(--font-serif);border:0;padding:0}
.fbowl .muted{color:rgba(245,242,234,.65)}
.fsigns{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}
.fsigns .vk{margin:0 0 var(--space-3)}
.fsign{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:10px 12px;border-radius:var(--radius-md);background:var(--paper);margin-bottom:var(--space-2)}
.fsign.on{background:var(--surface-sunk);box-shadow:inset 0 0 0 2px var(--thread)}
.fsd{font:700 16px/1.2 var(--font-sans)}
.frel{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.frel-on{font:800 14px/1.4 var(--font-display);font-stretch:110%;color:var(--thread)}
.view.wall-full .fbowl textarea,.view.wall-full .fbowl .ffinal{font-size:30px}

/* ---------- "Previously at Fabrex": the released vision in later phases ---------- */
.prevvision{margin:var(--space-4) 0;background:var(--paper);border-left:6px solid var(--thread);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}
.prevvision .pv-k{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--ink-muted)}
.prevvision .pv-q{margin:0;font:italic 400 21px/1.45 var(--font-serif);color:var(--ink)}


/* ---------- Phase 04 ---------- */
.ph4 .eyebrow{color:var(--thread)}
.prevline.p4 li{border-top-color:var(--thread)}
.switch{margin-top:var(--space-5)}
.p4f{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--space-5)}
.flow4{list-style:none;margin:var(--space-6) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
.flow4 li{background:var(--stage);color:var(--on-stage);padding:var(--space-4) var(--space-5);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%,16px 50%)}
.flow4 li:first-child{clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%)}
.flow4 b{display:block;font:800 15px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--thread);padding-left:8px}
.flow4 span{display:block;font-size:14px;line-height:20px;padding-left:8px}
.run.amb{min-width:520px;font-size:15px;line-height:22px}
.run.amb td:first-child{white-space:normal;width:120px}
.top0{margin-top:0}
.ways{margin:0 0 var(--space-4);padding-left:20px;display:grid;gap:var(--space-2)}
.ways em{font-style:normal;background:var(--thread);padding:0 6px;border-radius:4px;font-weight:700}
.keyidea{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-4)}
.keyidea .k{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--thread)}
.keyidea p:last-child{margin:0;font:italic 400 20px/1.3 var(--font-serif)}
.zones{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:var(--space-3);margin-bottom:var(--space-6)}
.zone{border-radius:var(--radius-md);padding:var(--space-5)}
.zone h3{font:800 20px/1.1 var(--font-display);font-stretch:125%;text-transform:uppercase;margin:var(--space-2) 0}
.zone p{margin:0;font-size:15px;line-height:22px}
.zone .zk{font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase}
.z-core{background:var(--surface-sunk)}
.z-bridge{background:var(--surface);border:2px dashed var(--ink)}
.z-div{background:var(--stage);color:var(--on-stage)}.z-div .zk{color:var(--thread)}
.game{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}
.game li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}
.game .gn{width:40px;height:40px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 2px var(--ink);display:flex;align-items:center;justify-content:center;font:800 17px/1 var(--font-display);font-stretch:125%}
.game header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}
.game header b{font-size:18px}.game header em{font:700 12px/16px var(--font-sans);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}
.game p{margin:0;font-size:15px;line-height:22px}
.game .gtip{margin-top:var(--space-2);font:italic 400 18px/1.3 var(--font-serif);color:var(--brand-deep)}
.rdef{margin-bottom:var(--space-2)}
.rcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}
.rcard{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column}
.rcard .rid{margin:0;background:var(--stage);color:var(--thread);font:800 12px/1 var(--font-display);font-stretch:125%;padding:var(--space-3) var(--space-4) 0}
.rcard h3{margin:0;background:var(--stage);color:var(--on-stage);font:800 16px/1.15 var(--font-display);font-stretch:125%;text-transform:uppercase;padding:var(--space-2) var(--space-4) var(--space-3)}
.rcard .rp{margin:0;padding:var(--space-3) var(--space-4) 0;font:italic 400 18px/1.25 var(--font-serif);color:var(--brand-deep)}
.rcard ul{margin:var(--space-2) 0 var(--space-3);padding:0 var(--space-4) 0 34px;font-size:14px;line-height:20px;flex:1}
.rcard .rsk{margin:0;padding:var(--space-2) var(--space-4);background:var(--thread);font:700 13px/18px var(--font-sans)}
.ticks.n{counter-reset:t}.ticks.n li{counter-increment:t;padding-left:36px}
.ticks.n li::before{content:counter(t);width:24px;height:24px;top:1px;background:var(--ink);color:var(--thread);font:800 13px/24px var(--font-display);text-align:center}
.fitl{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.fitl li{display:grid;grid-template-columns:64px 130px 1fr;gap:var(--space-3);align-items:center;background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);border-left:6px solid}
.fitl li.f3{border-color:var(--brand)}.fitl li.f2{border-color:var(--thread)}.fitl li.f1{border-color:var(--saffron)}.fitl li.f0{border-color:var(--coral)}
.fitl b{font:800 15px/1 var(--font-display);font-stretch:125%}.fitl em{font-style:normal;font-size:14px;color:var(--ink-muted)}
.t7{list-style:none;margin:0 0 var(--space-4);padding:0;display:grid;gap:var(--space-2)}
.t7 li{display:grid;grid-template-columns:64px 1fr;gap:var(--space-3);align-items:center;background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}
.t7 b{font:800 30px/1 var(--font-display);font-stretch:125%;color:var(--brand)}
.t7 span{font-size:15px;line-height:22px}
.jd{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.jd li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);border-top:6px solid var(--thread)}
.jd b{display:block;font:800 16px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;margin-bottom:var(--space-2)}
.jd span{font-size:15px;line-height:22px;color:var(--ink-muted)}
.plan.p4l{grid-template-columns:repeat(5,minmax(0,1fr))}
.plan.p4l li{border-top-color:var(--thread)}
.steps.s4>li{border-left-color:var(--thread)}
.steps.s4 time{color:var(--brand-deep)}
.bridge-k{margin:0 0 var(--space-3);padding-left:20px;font-size:15px;line-height:24px}
.run.key4{min-width:640px}.run.key4 td:first-child{white-space:normal;width:220px}
.dq{margin:0 0 var(--space-4);padding-left:24px;font:italic 400 21px/1.35 var(--font-serif);display:grid;gap:var(--space-2);max-width:820px}

/* team workspace */
.wnav{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-6)}
.wnav a{font:700 13px/18px var(--font-sans);padding:8px 14px;border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 1.5px var(--ink-muted)}
.wstep{margin-bottom:var(--space-8);scroll-margin-top:16px}
.wstep>header{display:grid;grid-template-columns:48px 1fr;gap:var(--space-4);align-items:start;margin-bottom:var(--space-4)}
.wstep>header .no{width:44px;height:44px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 2px var(--ink);display:flex;align-items:center;justify-content:center;font:800 18px/1 var(--font-display);font-stretch:125%}
.wstep h2{margin:0;font:800 clamp(22px,2.4vw,28px)/1.05 var(--font-display);font-stretch:125%;text-transform:uppercase}
.wstep>header p{margin:4px 0 0;font:italic 400 19px/1.3 var(--font-serif);color:var(--ink-muted);max-width:760px}
.wcard{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6)}
.w2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.subs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-5)}
.subin{background:var(--paper);border-radius:var(--radius-md);padding:var(--space-4);display:grid;gap:var(--space-3)}
.subin>b{font:800 14px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.muted{color:var(--ink-muted)}.small{font-size:13px}
.rpick{display:grid;gap:var(--space-2)}
.rp-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--paper);border:2px solid transparent}
.rp-row.on{background:var(--surface);border-color:var(--ink)}
.rp-t b{display:block;font-size:16px}.rp-t span{display:block;font-size:13px;line-height:18px;color:var(--ink-muted)}
.seg{display:flex;flex-wrap:wrap;gap:4px}
.seg button{font:700 13px/1 var(--font-sans);padding:10px 12px;min-height:40px;border-radius:var(--radius-pill);border:1.5px solid var(--ink-muted);background:var(--surface);color:var(--ink);cursor:pointer;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--thread);border-color:var(--ink)}
.seg button[data-sub=""][aria-pressed=true]{background:var(--surface-sunk);color:var(--ink);border-color:var(--ink-muted)}
.cov{margin-top:var(--space-4);border-top:2px solid var(--ink);padding-top:var(--space-3)}
.cov-n{margin:0 0 var(--space-2)}
.cov .warn,.warn{color:#b3261e;font-weight:700}.cov .ok{color:var(--brand);font-weight:700}
.tl{list-style:none;margin:var(--space-2) 0;padding:0;display:grid;gap:4px;font-size:14px;line-height:20px}
.tid{display:inline-block;min-width:38px;font:800 11px/18px var(--font-display);font-stretch:125%;color:var(--ink-muted)}
details summary{cursor:pointer;font-weight:700;font-size:15px;padding:4px 0}
.ifcs{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-5)}
.ifc{display:grid;gap:var(--space-2)}
.ifc-on{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}
.ifc-on input{width:20px;height:20px;accent-color:var(--ink)}
.ifc input[type=text]{font:400 15px/22px var(--font-sans);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:8px 10px;background:var(--paper);width:100%}
.sys{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1fr);gap:var(--space-7);align-items:center;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6)}
.sys-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.sys-col{display:grid;gap:var(--space-4);position:relative;z-index:1}
.sdept{background:var(--paper);border:2px dashed var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:4px;color:var(--ink-muted)}
.sdept.on{background:var(--surface);border:3px solid var(--dc);color:var(--ink)}
.sdept b{font:800 13px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--ink)}
.sdept .sl{font-size:13px;line-height:18px}
.sdept .lost{font:700 12px/16px var(--font-sans);color:#b3261e;background:var(--coral-soft);border-radius:4px;padding:2px 6px;align-self:flex-start}
.sys-div{position:relative;z-index:1;background:var(--stage);color:var(--on-stage);border-radius:var(--radius-lg);padding:var(--space-5);min-height:280px;display:flex;flex-direction:column}
.sys-div .sk{margin:0;font:700 11px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--thread)}
.sys-div h3{margin:4px 0;font:800 19px/1.1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.sys-div .lead{margin:0 0 var(--space-3);font:italic 400 17px/1.3 var(--font-serif);color:rgba(245,242,234,.85)}
.sys-div .muted{color:rgba(245,242,234,.7)}
.ssubs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2);flex:1}
.ssub{background:rgba(245,242,234,.08);border:1.5px solid rgba(245,242,234,.3);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:6px}
.ssub>b{font:800 13px/1.15 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--thread)}
.ssub>em{font-style:normal;font-size:12px;line-height:16px;color:rgba(245,242,234,.8)}
.srole{display:block;background:rgba(245,242,234,.12);border-radius:6px;padding:6px 8px;font-size:13px;line-height:17px;font-weight:700;border-left:4px solid var(--coral)}
.srole.fill{border-left-color:var(--thread)}
.srole small{display:block;font-weight:400;font-size:12px;color:rgba(245,242,234,.8)}
.sfoot{margin:var(--space-3) 0 0;font-size:14px;border-top:1px solid rgba(245,242,234,.25);padding-top:var(--space-2)}
.sfoot b{color:var(--thread)}
.sys-key{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);align-items:center;font-size:13px;color:var(--ink-muted);margin:var(--space-3) 0 0}
.sys-key span{display:inline-block;width:28px;height:5px;border-radius:3px;background:var(--brand)}
.sys-key .k2{height:14px;width:14px;background:var(--coral-soft);border:1.5px solid #b3261e}
.trx{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:var(--space-5);align-items:start}
.trx[hidden]{display:none}
.pool{display:grid;gap:var(--space-4)}
.pgrp h3{margin:0 0 var(--space-2)}
.pchips{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-2)}
.pchip4{font:inherit;color:inherit;text-align:left;cursor:grab;background:var(--surface);border:2px solid transparent;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:6px;display:grid;grid-template-columns:48px 1fr;gap:var(--space-2);align-items:center}
.pchip4:hover{border-color:var(--ink-muted)}
.pchip4.sel{border-color:var(--ink);background:var(--thread)}
.pchip4.moved{opacity:.55;background:var(--surface-sunk)}
.pchip4.moved.sel{opacity:1}
.pchip4 img{width:48px;height:48px;border-radius:8px;object-fit:cover}
.pchip4>span{min-width:0}
.pchip4 b{display:block;font-size:14px;line-height:18px}
.pchip4 small{display:block;font-size:12px;line-height:16px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pchip4 em{display:block;font-style:normal;font-size:11px;line-height:15px;font-weight:700;color:var(--brand-deep)}
.tside{position:sticky;top:12px;display:grid;gap:var(--space-3);max-height:calc(100vh - 24px);overflow-y:auto;padding:2px 4px var(--space-2) 2px}
.tbox{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4)}
.tbox .k{margin:0 0 var(--space-2);font:800 13px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.tbox .k span{font:700 13px/1 var(--font-sans);text-transform:none;color:var(--ink-muted)}
.tbox .k span.warn{color:#b3261e}
.slot-sub{margin:var(--space-3) 0 var(--space-1);font:700 11px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.slot{display:grid;grid-template-columns:1fr auto;gap:var(--space-2);align-items:center;border:2px dashed var(--ink-muted);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:6px;cursor:pointer;background:var(--paper)}
.slot.full{grid-template-columns:40px 1fr auto;border-style:solid;border-color:var(--ink);background:var(--surface);cursor:default}
.slot.over{background:var(--thread);border-color:var(--ink)}
.slot img{width:40px;height:40px;border-radius:6px;object-fit:cover}
.slot b{display:block;font-size:14px;line-height:18px}.slot span{display:block;font-size:12px;line-height:17px;color:var(--ink-muted)}
.slot .drop{font-weight:700;color:var(--brand-deep);text-align:right;max-width:110px}
.slot .x{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--ink-muted);background:var(--surface);cursor:pointer;font-size:18px;line-height:1}
.badges{display:flex!important;flex-wrap:wrap;gap:4px;margin-top:2px}
i.fit,i.lv{font:700 11px/1 var(--font-sans);font-style:normal;padding:4px 7px;border-radius:var(--radius-pill);display:inline-block;color:var(--ink)}
i.fit.f3{background:var(--brand);color:#fff}i.fit.f2{background:var(--thread)}i.fit.f1{background:var(--saffron-soft)}i.fit.f0{background:var(--coral-soft)}
i.lv.low{background:var(--brand-soft)}i.lv.medium{background:var(--saffron-soft)}i.lv.high{background:var(--coral);color:var(--ink)}
.det{display:grid;grid-template-columns:56px 1fr;gap:var(--space-3);align-items:center}
.det img{width:56px;height:56px;border-radius:8px;object-fit:cover}
.det b{display:block}.det span{display:block;font-size:13px;line-height:18px;color:var(--ink-muted)}
.dsk{margin:var(--space-3) 0 var(--space-2);font-size:14px}
.dgap{margin:0 0 var(--space-3);font-size:14px;line-height:20px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--brand-soft)}
.dgap.lv-medium{background:var(--saffron-soft)}.dgap.lv-high{background:var(--coral-soft)}
.dk{margin:var(--space-3) 0 var(--space-2);font:700 11px/16px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.dplace{list-style:none;margin:0 0 var(--space-3);padding:0;display:grid;gap:4px}
.dplace button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);font:600 14px/18px var(--font-sans);text-align:left;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--ink-muted);background:var(--paper);color:var(--ink);cursor:pointer}
.dplace button:hover{border-color:var(--ink);background:var(--thread)}
.dplace button[disabled]{opacity:.5;cursor:default;background:var(--surface-sunk)}
.dplace small{font-weight:400;color:var(--ink-muted)}
.btn.sm{min-height:38px;padding:6px 14px;font-size:14px}
.meter{display:flex;height:14px;border-radius:7px;background:var(--surface-sunk);overflow:hidden;margin-bottom:var(--space-2)}
.meter .m1{background:var(--brand)}.meter .m2{background:var(--saffron)}
.mleg{margin:0 0 var(--space-2);font-size:12px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.mleg span{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:-6px}
.mleg .c1{background:var(--brand)}.mleg .c2{background:var(--saffron)}.mleg .c3{background:var(--surface-sunk);box-shadow:inset 0 0 0 1px var(--ink-muted)}
.gaps{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;line-height:18px}
.gaps li{padding:6px 8px;border-radius:6px;background:var(--brand-soft)}.gaps li.lv-medium{background:var(--saffron-soft)}.gaps li.lv-high{background:var(--coral-soft)}
.log ol{margin:var(--space-2) 0 0;padding-left:0;list-style:none;font-size:13px;line-height:19px;display:grid;gap:2px;max-height:180px;overflow-y:auto}
.log time{font-weight:700}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:var(--space-4)}
.tplan{display:grid;gap:var(--space-3);padding:var(--space-5)}
.tplan header{display:grid;grid-template-columns:56px 1fr;gap:var(--space-3);align-items:center}
.tplan header img{width:56px;height:56px;border-radius:8px;object-fit:cover}
.tplan header b{display:block;font-size:16px}.tplan header span{font-size:13px;color:var(--ink-muted)}
.miss{margin:0;display:flex;flex-wrap:wrap;gap:4px}
.miss i{font:700 13px/1 var(--font-sans);font-style:normal;background:var(--saffron-soft);padding:6px 10px;border-radius:var(--radius-pill)}
.miss.ok{font-size:14px;color:var(--brand)}
.nr.how label,.nr.cols label{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:22px}
.nr.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px var(--space-3)}
.nr.cols legend{grid-column:1/-1}
.nr input[type=checkbox]{margin-top:4px;accent-color:var(--ink)}
.hire{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-5);align-items:start}
.hire .wcard{display:grid;gap:var(--space-4)}
.hint4{margin:0;background:var(--surface-sunk);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:15px}
.jobad{position:sticky;top:12px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--space-6);border-top:10px solid var(--thread)}
.jobad .ad-empty{margin:0;font:italic 400 20px/1.3 var(--font-serif);color:var(--ink-muted)}
.jobad .ad-k{margin:0;font:700 12px/16px var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.jobad h3{margin:var(--space-2) 0 4px;font:800 26px/1.05 var(--font-display);font-stretch:125%;text-transform:uppercase}
.jobad .ad-u{margin:0 0 var(--space-4);font-size:14px;color:var(--ink-muted)}
.jobad .ad-p{margin:0 0 var(--space-4);font:italic 400 21px/1.3 var(--font-serif);color:var(--brand-deep)}
.jobad .ad-h{margin:var(--space-4) 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.jobad ul{margin:0;padding-left:20px;font-size:15px;line-height:22px}
.jobad p{font-size:15px;line-height:22px}
.ad-sk{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.ad-sk i{font:700 13px/1 var(--font-sans);font-style:normal;background:var(--thread);padding:7px 12px;border-radius:var(--radius-pill)}
.ad-why{margin-top:var(--space-5)!important;background:var(--surface-sunk);border-radius:var(--radius-sm);padding:var(--space-3);font-size:14px!important}
.ad-warn{color:#b3261e;font-weight:700;font-size:14px}
@media (max-width:1020px){.rcards,.game{grid-template-columns:repeat(2,minmax(0,1fr))}.plan.p4l{grid-template-columns:repeat(3,minmax(0,1fr))}.trx{grid-template-columns:1fr}.tside{position:static;max-height:none}.sys{gap:var(--space-5)}}
@media (max-width:860px){.flow4,.zones,.jd,.p4f,.subs,.w2,.ifcs,.hire{grid-template-columns:1fr}.flow4 li,.flow4 li:first-child{clip-path:none;border-radius:var(--radius-sm)}
  .sys{grid-template-columns:1fr}.sys-lines{display:none}.sys-div{order:-1}.rp-row{grid-template-columns:1fr}.jobad{position:static}.fitl li{grid-template-columns:56px 1fr}.fitl em{grid-column:2}}
@media (max-width:560px){.rcards,.game,.plan.p4l{grid-template-columns:1fr}.wcard{padding:var(--space-4)}.plans{grid-template-columns:1fr}.pchips{grid-template-columns:1fr 1fr}}
.nr.how{display:grid;gap:2px}
.tplan .w2{grid-template-columns:1fr}

/* ---------- Phase 04 transfer board (lecturer / projector) ---------- */
#p4board #pb-body{display:grid;gap:var(--space-7);margin-top:var(--space-4)}
.pb-empty{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6);text-align:center}
.pb-empty p{margin:0;font-size:16px;line-height:24px}
.pb-sec>.bh3{margin:0 0 var(--space-2)}
.pb-sec>.bp{margin:0 0 var(--space-4)}
.pb-conf{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--space-3)}
.confcard{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);border-left:6px solid var(--coral)}
.confcard header{display:grid;grid-template-columns:48px 1fr auto;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}
.confcard header img{width:48px;height:48px;border-radius:8px;object-fit:cover}
.confcard header b{display:block;line-height:1.2}
.confcard .wantedby{margin:0 0 4px;font-size:13px;line-height:18px;color:var(--ink-muted)}
.confcard ul{margin:0;padding-left:18px;font-size:14px;line-height:20px}
.pb-gaps{display:grid;gap:var(--space-2)}
.gaprow{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-4);display:grid;grid-template-columns:minmax(200px,240px) 1fr;gap:var(--space-3);align-items:center}
.gaphd{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.gaphd b{font:800 15px/1 var(--font-display);font-stretch:125%}
.gaphi{font-style:normal;font:700 11px/1 var(--font-sans);background:var(--coral-soft);color:var(--ink);padding:3px 7px;border-radius:var(--radius-pill)}
.gapbar{display:flex;flex-wrap:wrap;gap:6px}
.gpill{font:700 12px/1 var(--font-sans);padding:5px 9px;border-radius:var(--radius-pill);background:var(--brand-soft);color:var(--ink)}
.gpill.lv-medium{background:var(--saffron-soft)}.gpill.lv-high{background:var(--coral);color:var(--ink)}
.pb-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-3)}
.teamcard{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);border-top:6px solid var(--ink-muted)}
.teamcard.v-ok{border-top-color:var(--brand)}.teamcard.v-cond{border-top-color:var(--saffron)}.teamcard.v-no{border-top-color:var(--coral)}
.teamcard>header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}
.tc-h b{display:block;font:800 17px/1.15 var(--font-display);font-stretch:125%}
.tc-h .tdiv{display:block;font-size:13px;line-height:18px;color:var(--ink-muted)}
.vbadge{font:700 11px/1 var(--font-sans);padding:5px 9px;border-radius:var(--radius-pill);white-space:nowrap;background:var(--surface-sunk);color:var(--ink-muted);box-shadow:inset 0 0 0 1px var(--ink-muted)}
.vbadge.v-ok{background:var(--brand);color:#fff;box-shadow:none}.vbadge.v-cond{background:var(--saffron);color:var(--ink);box-shadow:none}.vbadge.v-no{background:var(--coral);color:var(--ink);box-shadow:none}
.tlist4{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tlist4 li{display:grid;grid-template-columns:40px 1fr auto;gap:var(--space-2);align-items:center;background:var(--paper);border-radius:var(--radius-sm);padding:6px 8px}
.tlist4 img{width:40px;height:40px;border-radius:6px;object-fit:cover}
.tlist4 b{display:block;font-size:14px;line-height:1.2}
.tlist4 small{display:block;font-size:12px;line-height:16px;color:var(--ink-muted)}
.vctl{display:grid;gap:var(--space-2);border-top:1.5px solid var(--line);padding-top:var(--space-3)}
.vbtns{display:flex;gap:6px;flex-wrap:wrap}
.vbtns button{flex:1;min-width:92px;font:700 12px/1 var(--font-sans);padding:9px 8px;border-radius:var(--radius-pill);border:1.5px solid var(--ink-muted);background:var(--surface);color:var(--ink);cursor:pointer}
.vbtns button[data-verdict=approved][aria-pressed=true]{background:var(--brand);color:#fff;border-color:var(--brand)}
.vbtns button[data-verdict=conditions][aria-pressed=true]{background:var(--saffron);border-color:var(--saffron)}
.vbtns button[data-verdict=rejected][aria-pressed=true]{background:var(--coral);border-color:var(--coral)}
.vnote{font:400 14px/20px var(--font-sans);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:8px 10px;background:var(--paper);width:100%}
.vnote-ro{margin:0;font-size:13px;line-height:19px;background:var(--paper);border-radius:var(--radius-sm);padding:8px 10px}
@media (max-width:560px){.gaprow{grid-template-columns:1fr}.pb-teams{grid-template-columns:1fr}}


/* ---------- Phase 05 ---------- */
.ph5 .eyebrow{color:var(--thread)}
.dp.stage{background:var(--stage);color:var(--thread)}
.ctas{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.prevline.p5 li{border-top-color:var(--plum)}
.units{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}
.units li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);border-top:6px solid var(--uc)}
.units b{display:block;font:800 14px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.units span{display:block;margin-top:var(--space-2);font:italic 400 17px/1.3 var(--font-serif);color:var(--ink-muted)}
.cos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.co{border-radius:var(--radius-md);padding:var(--space-5);border-top:8px solid}
.co-denim.co{background:var(--denim-soft);border-color:var(--denim)}.co-coral.co{background:var(--coral-soft);border-color:var(--coral)}.co-saffron.co{background:var(--saffron-soft);border-color:var(--saffron)}
.co .cok{margin:0;font:800 12px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.04em}
.co h3{margin:var(--space-3) 0 var(--space-4);font:italic 400 28px/1.12 var(--font-serif)}
.co ol{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.co li{background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-3);font-size:15px;line-height:21px}
.co li b{display:inline-block;font:800 11px/1 var(--font-display);font-stretch:125%;background:var(--ink);color:var(--thread);padding:5px 8px;border-radius:var(--radius-pill);margin:0 6px 4px 0}
.formula{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-6)}
.formula span{font:italic 400 24px/1.2 var(--font-serif)}
.formula b{font:800 clamp(20px,2.4vw,28px)/1 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--thread)}
.okrdef{margin:0 0 var(--space-4);display:grid;gap:var(--space-3)}
.okrdef div{border-top:2px solid var(--ink);padding-top:var(--space-2)}
.okrdef dt{font:800 14px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.okrdef dd{margin:4px 0 0;font-size:16px;line-height:23px}
.okrx{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--space-6);border-left:8px solid var(--brand)}
.okrx .xk{margin:0 0 var(--space-3);font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.okrx .xo{margin:0 0 var(--space-4);font:italic 400 24px/1.2 var(--font-serif);display:grid;grid-template-columns:44px 1fr;gap:var(--space-2)}
.okrx .xo b,.okrx li b{font:800 13px/1 var(--font-display);font-stretch:125%;font-style:normal;background:var(--thread);border-radius:var(--radius-pill);padding:6px 0;text-align:center;align-self:start;margin-top:4px}
.okrx ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.okrx li{display:grid;grid-template-columns:44px 1fr;gap:var(--space-2);font-size:15px;line-height:22px}
.okrx li b{background:var(--surface-sunk);margin-top:0}
.okrx .xco{margin:var(--space-4) 0 0;font-size:14px;font-weight:700;color:var(--brand-deep)}
.crit5{list-style:none;margin:0 0 var(--space-6);padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3)}
.crit5 li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.crit5 .cn{width:34px;height:34px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 2px var(--ink);display:flex;align-items:center;justify-content:center;font:800 15px/1 var(--font-display);font-stretch:125%}
.crit5 b{display:block;font-size:16px;line-height:21px}.crit5 span{display:block;font-size:14px;line-height:20px;color:var(--ink-muted);margin-top:4px}
.wks{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:var(--space-3)}
.wk{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.wk p{margin:0}
.wkk{font:800 12px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;letter-spacing:.04em}
.wb,.wg{display:grid;grid-template-columns:26px 1fr;font-size:15px;line-height:22px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}
.wb{background:var(--coral-soft);text-decoration:line-through;text-decoration-color:rgba(179,38,30,.5)}.wb>span:first-child{color:#b3261e;font-weight:800;text-decoration:none}
.wg{background:var(--brand-soft);font-weight:700}.wg>span:first-child{color:var(--brand);font-weight:800}
.wy{font:italic 400 17px/1.3 var(--font-serif);color:var(--brand-deep)}
.aligns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.aligns article{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5)}
.aligns .k{margin:0;font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--plum)}
.aligns h3{margin:var(--space-2) 0;font:800 18px/1.15 var(--font-display);font-stretch:125%;text-transform:uppercase}
.aligns p:last-child{margin:0;font-size:15px;line-height:22px}
.plan.p5l{grid-template-columns:repeat(5,minmax(0,1fr))}
.plan.p5l li{border-top-color:var(--plum)}
.steps.s5>li{border-left-color:var(--plum)}.steps.s5 time{color:var(--plum)}

/* team workspace */
.uq{margin:var(--space-3) 0 0;font:italic 400 19px/1.3 var(--font-serif);color:var(--brand-deep)}
.uq b{font:700 14px/1 var(--font-sans);font-style:normal;color:var(--ink)}
.okrs3{display:grid;gap:var(--space-4)}
.okrin{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-3) var(--space-5);padding:var(--space-5)}
.okrin>header{grid-column:1/-1;display:grid;grid-template-columns:52px 1fr;gap:var(--space-3);align-items:start}
.okrin .on{width:48px;height:48px;border-radius:50%;background:var(--thread);box-shadow:0 0 0 2px var(--ink);display:flex;align-items:center;justify-content:center;font:800 16px/1 var(--font-display);font-stretch:125%}
.cot{display:grid!important;grid-template-columns:auto auto 1fr;gap:8px;align-items:start;padding:8px 10px;border-radius:var(--radius-sm);font-size:14px!important;line-height:19px!important;cursor:pointer}
.cot b{font:800 12px/1 var(--font-display);font-stretch:125%;color:var(--surface);background:var(--ink);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}
.cot.co-denim{background:var(--denim-soft)}.cot.co-coral{background:var(--coral-soft)}.cot.co-saffron{background:var(--saffron-soft)}
.cot:has(input:checked){box-shadow:inset 0 0 0 2px var(--ink)}
.lint{background:var(--paper);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}
.lint .lk{margin:0 0 var(--space-2);font:800 12px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.lint ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px;line-height:19px}
.lint li{padding-left:24px;position:relative}
.lint li::before{position:absolute;left:0;top:0;font-weight:800}
.lint li.ok::before{content:"✓";color:var(--brand)}.lint li.no::before{content:"!";color:#b3261e;width:16px;text-align:center}
.lint li.no{color:var(--ink)}
.send{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);align-items:start}
.send .wcard{display:grid;gap:var(--space-4);justify-items:start}
.send .wcard>*{width:100%}.send .wcard>.btn{width:auto}
#w5-code{font:13px/18px 'Courier New',monospace;word-break:break-all}
.hint5{margin:0;font-size:15px;background:var(--surface-sunk);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}
.hint5.ok{background:var(--brand-soft);color:var(--brand-deep);font-weight:700}
.wprev .k{margin:0 0 var(--space-2);font:800 13px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.wprev #w5-prev{display:grid;gap:var(--space-2)}
.pvunit{margin:0;font:800 14px/1 var(--font-display);font-stretch:125%;text-transform:uppercase;border-left:6px solid var(--uc);padding:6px 10px}

/* OKR cards (workspace preview and wall) */
.ocard{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-4);border-left:6px solid var(--uc);display:flex;flex-direction:column;gap:6px;transition:opacity .15s ease,box-shadow .15s ease,transform .15s ease}
.ocard header{display:flex;justify-content:space-between;gap:var(--space-2);align-items:center}
.oteam{font:700 11px/14px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.otags{display:flex;gap:3px}
.ct{font:800 11px/1 var(--font-display);font-stretch:125%;font-style:normal;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.ct.co-denim{background:var(--denim);color:#fff}.ct.co-coral{background:var(--coral)}.ct.co-saffron{background:var(--saffron)}
.ocard .oo{margin:0;font:700 16px/21px var(--font-sans)}
.ocard ul{margin:0;padding-left:18px;font-size:13px;line-height:18px;color:var(--ink)}
.own{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:6px}
.own img,.own .ini{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none}
.own .ini{background:var(--stage);color:var(--thread);font:800 13px/28px var(--font-display);text-align:center;font-style:normal}
.own b{display:block;font-size:13px;line-height:16px}.own small{display:block;font-size:11px;line-height:14px;color:var(--ink-muted)}
.oflag{margin:0;font:700 12px/16px var(--font-sans);color:#b3261e;background:var(--coral-soft);border-radius:4px;padding:3px 6px}

/* OKR wall */
.collect{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5)}
.collect>summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);font:800 16px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;padding:var(--space-2) 0}
.collect>summary em{font:700 14px/1 var(--font-sans);font-style:normal;text-transform:none;color:var(--brand)}
.cgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-5);margin-top:var(--space-3)}
.cgrid .sb-btns{margin-top:var(--space-3)}
.cgrid .k,.wbar .k,.wmatrix .k,.wlinks .k{margin:0 0 var(--space-2);font:800 13px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.filebtn{position:relative;overflow:hidden}.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.small-btns{margin-top:var(--space-3)}
.tchips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;max-height:160px;overflow-y:auto}
.tchips li{display:flex;align-items:center;gap:6px;background:var(--paper);border-left:5px solid var(--uc);border-radius:6px;padding:4px 4px 4px 10px;font-size:13px}
.tchips li.muted{border:0;padding:4px 0}
.tchips small{color:var(--ink-muted)}
.tchips button,.wlinks button{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ink-muted);background:var(--surface);cursor:pointer;font-size:15px;line-height:1;flex:none}
.wbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3)}
.wbar .k{margin:0;font-size:16px}
.wbtns{display:flex;gap:var(--space-2);flex-wrap:wrap}
.wbtns button[aria-pressed=true]{background:var(--ink);color:var(--thread);border-color:var(--ink)}
.whint{margin:var(--space-2) 0 var(--space-3);font:italic 400 19px/1.3 var(--font-serif);color:var(--ink-muted)}
.connecting .whint{color:var(--plum);font-weight:400}
.wcos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}
.wco{font:inherit;color:var(--ink);text-align:left;cursor:pointer;border:0;border-top:8px solid;border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-card)}
.wco.co-denim{background:var(--denim-soft);border-color:var(--denim)}.wco.co-coral{background:var(--coral-soft);border-color:var(--coral)}.wco.co-saffron{background:var(--saffron-soft);border-color:var(--saffron)}
.wco .cok{font:800 11px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.wco b{font:italic 400 21px/1.15 var(--font-serif)}
.wco .cn{font-size:13px;font-weight:700;color:var(--ink-muted)}
.wco.on{box-shadow:0 0 0 3px var(--ink),var(--shadow-lift);transform:translateY(-2px)}
.wmid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4);margin-bottom:var(--space-4)}
.wmatrix,.wlinks{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4)}
.wmatrix table{width:100%;border-collapse:collapse;font-size:14px}
.wmatrix th,.wmatrix td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:center}
.wmatrix thead th{font:800 11px/1 var(--font-display);font-stretch:125%;padding:6px 4px;border-radius:4px}
.wmatrix thead th.co-denim{background:var(--denim);color:#fff}.wmatrix thead th.co-coral{background:var(--coral)}.wmatrix thead th.co-saffron{background:var(--saffron)}
.wmatrix tbody th{text-align:left;font-weight:700;white-space:nowrap}
.wmatrix tbody th i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
.wmatrix td{font-weight:800}
.wmatrix td.gap{background:var(--coral-soft);color:#b3261e}
.wmatrix td.warn{background:var(--saffron-soft)}
.wlinks ol{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px;line-height:19px;max-height:220px;overflow-y:auto}
.wlinks li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--paper);border-radius:6px;padding:4px 4px 4px 10px}
.wboard-scroll{overflow-x:auto;padding-bottom:var(--space-3)}
.wboard{position:relative;min-width:100%}
.wlines{position:absolute;left:0;top:0;pointer-events:none;z-index:0;overflow:visible}
.wcols{position:relative;z-index:1}
.wlines path{fill:none;stroke:var(--plum);stroke-width:3.5;stroke-dasharray:8 5;stroke-linecap:round}
.wlines circle{fill:var(--plum)}
.wcols{display:flex;gap:var(--space-4);align-items:flex-start}
.wcol{flex:1 0 250px;max-width:340px;display:flex;flex-direction:column;gap:var(--space-2)}
.wcol h3{margin:0 0 4px;font:800 14px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;border-bottom:6px solid var(--uc);padding-bottom:6px}
.wempty{font:italic 400 22px/1.3 var(--font-serif);color:var(--ink-muted);padding:var(--space-6) 0}
.focusing .ocard{opacity:.28}
.focusing .ocard.lit{opacity:1;box-shadow:0 0 0 3px var(--ink),var(--shadow-lift)}
.connecting .ocard{cursor:crosshair}
.connecting .ocard:hover{box-shadow:0 0 0 2px var(--plum),var(--shadow-card)}
.ocard.picked{box-shadow:0 0 0 3px var(--plum),var(--shadow-lift)!important;transform:translateY(-2px);opacity:1!important}
.lpop{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:70;width:min(520px,calc(100% - 32px));background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 0 0 3px var(--plum),var(--shadow-lift);padding:var(--space-5);display:grid;gap:var(--space-3)}
.lpop[hidden]{display:none}
.lpop p{margin:0;font-size:15px}
.view.wall-full .wall-hero{display:none}
body:has(.view.on.wall-full) .top,body:has(.view.on.wall-full) footer{display:none}
.view.wall-full .wall-sec{padding-top:var(--space-5)}
.view.wall-full .wall-wrap{max-width:none}
@media (max-width:1020px){.units{grid-template-columns:repeat(2,minmax(0,1fr))}.crit5{grid-template-columns:repeat(3,minmax(0,1fr))}.plan.p5l{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.cos,.aligns,.okrin,.send,.cgrid,.wcos,.wmid{grid-template-columns:1fr}.crit5{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.units,.crit5,.plan.p5l{grid-template-columns:1fr}}

/* ---------- Phase 05 v2: framing, measures, KR types ---------- */
.whyokr{margin:var(--space-5) 0 var(--space-2);background:var(--surface);border-left:8px solid var(--plum);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5) var(--space-6)}
.whyokr .k{margin:0 0 var(--space-2);font:800 14px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;color:var(--plum)}
.whyokr p:not(.k){margin:0 0 var(--space-2);font-size:16px;line-height:24px;max-width:860px}
.whyokr p:last-child{margin-bottom:0}
.meas{list-style:none;margin:0 0 var(--space-3);padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}
.meas li{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);display:flex;flex-direction:column;gap:6px;border-top:6px solid var(--brand)}
.meas li.ms-percent{border-top-color:var(--denim)}.meas li.ms-binary{border-top-color:var(--saffron)}.meas li.ms-milestone{border-top-color:var(--plum)}
.meas b{font:800 15px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.meas span{font-size:14px;line-height:20px}
.meas em{font:italic 400 17px/1.25 var(--font-serif);color:var(--brand-deep)}
.okrin{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.krs5{display:grid;gap:var(--space-3)}
.side5{display:grid;gap:var(--space-3);align-content:start}
.side5 .cos3{display:grid;gap:6px}
.kr5{background:var(--paper);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:grid;gap:var(--space-2)}
.mrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.ml{font-size:13px;font-weight:700;color:var(--ink-muted)}
.mseg button{padding:8px 11px;min-height:34px;font-size:12.5px}
.mf{display:none}
.kr5[data-m=metric] .mf-range,.kr5[data-m=percent] .mf-range{display:flex}
.kr5[data-m=milestone] .mf-steps{display:flex}
.kr5[data-m=binary] .mf-bin{display:block;margin:0}
.mf-range,.mf-steps{flex-wrap:wrap;align-items:flex-end;gap:var(--space-2)}
.mf label{display:grid;gap:2px;font-size:12px;font-weight:700;color:var(--ink-muted)}
.mf input{font:400 15px/20px var(--font-sans);border:2px solid var(--ink-muted);border-radius:var(--radius-sm);padding:6px 8px;background:var(--surface);width:110px}
.mf .mf-unit input{width:140px}
.mf-steps input{width:90px}
.mf .arr{padding-bottom:8px;font-weight:800}
.mf-pc{display:none;padding-bottom:8px;font-weight:800}
.kr5[data-m=percent] .mf-pc{display:inline}.kr5[data-m=percent] .mf-unit{display:none}
.mt{font-style:normal;font-size:11.5px;font-weight:700;color:var(--brand-deep);background:var(--brand-soft);border-radius:4px;padding:1px 5px;white-space:nowrap}
.okl{list-style:none!important;padding:0!important;display:grid;gap:5px}
.okl li{display:grid;grid-template-columns:1fr;gap:3px;font-size:13px;line-height:18px;padding-left:12px;position:relative}
.okl li::before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;border-radius:50%;border:1.5px solid var(--ink-muted)}
.okl li:has(.kbar){grid-template-columns:1fr 70px 52px;align-items:center}
.kbar{height:7px;border-radius:4px;background:var(--surface-sunk);overflow:hidden;display:block}
.kbar i{display:block;height:100%}
.kpc{font-size:12px;text-align:right}
.osim{margin:0;font-size:13px;font-weight:700}
.stc{display:inline-block;font:700 11px/1 var(--font-sans);padding:4px 7px;border-radius:var(--radius-pill);background:var(--surface-sunk)}
.stc.st-g,.kbar i.st-g{background:var(--brand);color:#fff}.stc.st-y,.kbar i.st-y{background:var(--saffron)}.stc.st-r,.kbar i.st-r{background:var(--coral)}.stc.st-p,.kbar i.st-p{background:#c9c4b8}.kbar i.st-n{background:#c9c4b8}

/* bubble graph */
.graph{position:relative;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden;height:min(78vh,820px);min-height:520px}
.gsvg{display:block;width:100%;height:100%;cursor:grab;touch-action:none;user-select:none}
.gsvg.panning{cursor:grabbing}
.g-ring{fill:none;stroke:#ebe7dd;stroke-width:1.5}
.g-ring2{stroke-dasharray:4 8}
.g-al{stroke:#a39f94;stroke-width:1.6;stroke-dasharray:5 5;fill:none}
.g-arh{fill:#a39f94}
.g-ln{fill:none;stroke:var(--plum);stroke-width:3;opacity:.85}
.g-lt{font:600 12px var(--font-sans);fill:var(--plum);text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.g-org circle{fill:#fff;stroke:#d9d4c8;stroke-width:10}
.g-org text{text-anchor:middle}
.g-ot{font:800 20px var(--font-display);font-stretch:125%;text-transform:uppercase;fill:var(--ink)}
.g-os{font:600 13px var(--font-sans);fill:var(--ink-muted)}
.g-op{font:800 22px var(--font-sans);fill:var(--ink)}
.g-org.st-g circle{stroke:var(--brand)}.g-org.st-y circle{stroke:var(--saffron)}.g-org.st-r circle{stroke:var(--coral)}
.g-co{cursor:pointer}
.g-co circle{fill:#f1eee6;stroke:#9f9a8e;stroke-width:2.5}
.g-co.on circle{stroke:var(--ink);stroke-width:5}
.g-co text{text-anchor:middle;fill:var(--ink)}
.g-cn{font:800 20px var(--font-display);font-stretch:125%}
.g-cs{font:600 12px var(--font-sans);fill:var(--ink-muted)!important}
.g-cl{font:700 14px var(--font-sans)}
.g-ob{cursor:pointer}
.g-b{fill:#fff;stroke:#a9a498;stroke-width:2.5;transition:fill .5s ease,stroke .5s ease}
.g-ob:hover .g-b{stroke:var(--ink);stroke-width:3.5}
.g-ob.orph .g-b{stroke-dasharray:5 4;stroke:#b3261e}
.g-ob.bydept .g-b{stroke:var(--uc);stroke-width:5}
.g-ob.picked .g-b{stroke:var(--plum);stroke-width:6}
.g-bt{font:800 12px var(--font-display);font-stretch:125%;text-anchor:middle;fill:var(--ink-muted);pointer-events:none}
.g-bt.pc{font:800 15px var(--font-sans);fill:var(--ink)}
.g-kl{stroke:#c8c3b7;stroke-width:1.4}
.g-kr{fill:#fff;stroke:#a9a498;stroke-width:2.5;transition:stroke .5s ease}
.g-lb{font:600 13px var(--font-sans);fill:var(--ink);pointer-events:none}
.g-ls{font:500 11px var(--font-sans);fill:var(--ink-muted)}
.g-empty{font:italic 400 24px var(--font-serif);fill:var(--ink-muted);text-anchor:middle}
.g-co.st-g circle,.g-ob.st-g .g-b{fill:var(--brand);stroke:#126347}
.g-co.st-y circle,.g-ob.st-y .g-b{fill:var(--saffron);stroke:#c98a12}
.g-co.st-r circle,.g-ob.st-r .g-b{fill:var(--coral);stroke:#c4473a}
.g-ob.st-p .g-b{fill:#dcd8ce;stroke:#a9a498;stroke-dasharray:4 4}
.g-co.st-g text,.g-ob.st-g .g-bt{fill:#fff}
.g-kr.st-g{stroke:var(--brand);stroke-width:4}.g-kr.st-y{stroke:var(--saffron);stroke-width:4}.g-kr.st-r{stroke:var(--coral);stroke-width:4}.g-kr.st-p{stroke:#c9c4b8}
.g-cf{stroke:#fff;stroke-width:2.5}.g-cf.cf-h{fill:var(--brand)}.g-cf.cf-m{fill:#c98a12}.g-cf.cf-l{fill:#b3261e}
.g-cft{font:800 13px var(--font-sans);fill:#fff;text-anchor:middle;pointer-events:none}
.dim{opacity:.18}
.g-al.dim,.g-ln.dim,.g-lt.dim{opacity:.08}
.gtip{position:absolute;z-index:5;width:340px;max-width:calc(100% - 16px);pointer-events:none;filter:drop-shadow(0 10px 24px rgba(20,33,28,.22))}
.gtip .ocard{box-shadow:none}
.gzoom{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;gap:2px;background:var(--surface);border-radius:var(--radius-pill);box-shadow:var(--shadow-card);padding:4px}
.gzoom button{font:700 14px/1 var(--font-sans);border:0;background:transparent;padding:8px 12px;border-radius:var(--radius-pill);cursor:pointer;color:var(--ink)}
.gzoom button:hover{background:var(--surface-sunk)}
.gzv{font:700 13px/1 var(--font-sans);min-width:48px;text-align:center}
.glegend{position:absolute;left:12px;bottom:12px;display:grid;gap:4px;background:rgba(255,255,255,.92);border-radius:var(--radius-sm);padding:8px 10px;font-size:12px;box-shadow:var(--shadow-card)}
.glegend span{display:flex;align-items:center;gap:8px}
.glegend i{display:inline-block;flex:none}
.lg-b{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #a9a498}
.lg-b.st-g{background:var(--brand);border-color:#126347}.lg-b.st-y{background:var(--saffron);border-color:#c98a12}.lg-b.st-r{background:var(--coral);border-color:#c4473a}
.lg-k{width:10px;height:10px;border-radius:50%;border:2px solid #a9a498}
.lg-a{width:22px;border-top:2px dashed #a39f94}
.lg-l{width:22px;border-top:3px solid var(--plum)}
.lg-o{width:14px;height:14px;border-radius:50%;border:2px dashed #b3261e}
.lg-c{width:12px;height:12px;border-radius:50%;background:#c98a12;box-shadow:0 0 0 2px #fff,0 0 0 3px #c8c3b7}
.gscroll{position:absolute;right:14px;bottom:16px;margin:0;font-size:12px;color:var(--ink-muted)}
.wdetails{margin-top:var(--space-4)}
.wdetails>summary{font:800 14px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase;padding:var(--space-2) 0}
.wdetails .wmid{margin-top:var(--space-3)}
.nextlink{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px var(--space-4);margin-top:var(--space-6);background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);text-decoration:none}
.nextlink span{font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--thread)}
.nextlink b{grid-column:1;font:800 18px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.nextlink svg{grid-column:2;grid-row:1/span 2;width:28px;height:28px;color:var(--thread)}
.view.wall-full .graph{height:calc(100vh - 150px)}

/* closing simulation */
.simintro{margin-bottom:var(--space-5)}
.simintro .whyokr{margin:0}
.simsrc{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}
.simsrc p{margin:0;font-size:15px}
.simctl{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.simctl .wk{display:flex;align-items:center;gap:var(--space-3);flex:1 1 280px;font-weight:700}
.simctl input[type=range]{flex:1;accent-color:var(--ink)}
.simleg{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:13px}
.simleg i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:-6px}
.simleg .st-g{background:var(--brand)}.simleg .st-y{background:var(--saffron)}.simleg .st-r{background:var(--coral)}.simleg .st-p{background:#dcd8ce;border:1.5px dashed #a9a498}
.simgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-4);align-items:start}
.simside{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);display:grid;gap:var(--space-3);max-height:min(78vh,820px);overflow-y:auto}
.swk{margin:0;font-size:15px}.swk b{font:800 24px/1 var(--font-display);font-stretch:125%;text-transform:uppercase}
.tbar{height:8px;border-radius:4px;background:var(--surface-sunk);overflow:hidden}.tbar i{display:block;height:100%;background:var(--ink);transition:width .4s ease}
.sct{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px}
.sct span{border-radius:var(--radius-sm);padding:8px;font-size:12px;font-weight:700;display:grid}
.sct b{font:800 24px/1 var(--font-sans)}
.sct .st-g{background:var(--brand);color:#fff}.sct .st-y{background:var(--saffron)}.sct .st-r{background:var(--coral)}.sct .st-p{background:#dcd8ce}
.insight{background:var(--coral-soft);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}
.insight p{margin:0;font-size:15px;line-height:21px}
.insight .k,.decide .k,.endq .k,.logk{margin:0 0 4px;font:800 12px/1.2 var(--font-display);font-stretch:125%;text-transform:uppercase}
.decide{background:var(--stage);color:var(--on-stage);border-radius:var(--radius-md);padding:var(--space-4);display:grid;gap:var(--space-2)}
.decide .k{color:var(--thread)}.decide p{margin:0}
.decide button{font:inherit;text-align:left;cursor:pointer;background:rgba(245,242,234,.1);color:var(--on-stage);border:1.5px solid rgba(245,242,234,.4);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);display:grid;gap:2px}
.decide button:hover{background:var(--thread);color:var(--ink);border-color:var(--thread)}
.decide button b{font-size:15px}.decide button span{font-size:13px;line-height:18px}
.dchosen{margin:0;font-size:14px}
.linkbtn{font:inherit;font-size:13px;background:none;border:0;padding:0;color:var(--brand);text-decoration:underline;cursor:pointer}
.endq{background:var(--thread);border-radius:var(--radius-md);padding:var(--space-4)}
.endq p{margin:0 0 4px}.endq .big{font:800 40px/1 var(--font-sans)}
.scos{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.scos li{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;font-size:13px;line-height:17px}
.slog{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13px;line-height:18px}
.slog li{background:var(--paper);border-radius:6px;padding:6px 8px}
.slog li.bn{background:var(--coral-soft)}.slog li.ci{background:var(--surface-sunk)}
.slog time{display:block;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.simdq{margin-top:var(--space-6)}
@media (max-width:1020px){.meas{grid-template-columns:1fr 1fr}.simgrid{grid-template-columns:1fr}.simside{max-height:none}}
@media (max-width:860px){.okrin{grid-template-columns:1fr}.graph{height:70vh}.glegend{display:none}.gscroll{display:none}}
@media (max-width:560px){.meas{grid-template-columns:1fr}}
.g-oh{font:800 13px var(--font-display);font-stretch:125%;text-transform:uppercase;fill:#b3261e}
.g-ln{stroke-width:3.5}
.g-ln:hover{stroke-width:6}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .journey{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-5)}
  .journey::before{display:none}
  .people{grid-template-columns:1fr}
  .tagstack{max-width:380px}
}
@media (max-width:860px){
  .hero .wrap,.case-grid,.goals,.doors{grid-template-columns:1fr}
  .hero-art{max-width:460px}
  .top .course{display:none}
  section.block{padding:var(--space-8) 0}
}
@media (max-width:560px){
  .wrap{padding:0 var(--space-4)}
  .journey{grid-template-columns:1fr}
  .door{padding:var(--space-5)}
  .tagstack{height:540px}
  .care{width:240px}
  .ptag{left:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.hero .cta,.doors .btn{display:none}.hero,.door-main,footer{background:#fff;color:#000}}
