/* Risa structural tokens for the portal — replaces masa's tokens.masa.css slot.
   LIGHT THEME PINNED (venture canon): no prefers-color-scheme override, no toggle.
   Type = V8: Figtree variable (300–900) is display AND body; IBM Plex Mono = labels/
   metadata only. Radii squarer than masa (V8 sits 5–8px resting, buttons 2px).
   Engine var NAMES kept so portal.css / script.css inherit without churn. */
@font-face{font-family:"Figtree";font-style:normal;font-weight:300 900;font-display:swap;
  src:url(../fonts/figtree-vf-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Figtree";font-style:normal;font-weight:300 900;font-display:swap;
  src:url(../fonts/figtree-vf-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/ibmplexmono-normal-latin-10.woff2) format("woff2");}
:root{
  --g:var(--masa-bg,#F4F4ED); --panel:var(--masa-surface,#FFFFFF); --sunk:var(--masa-sunk,#ECEBE0); --line:var(--masa-line,#DCD8C6);
  --ink:var(--masa-ink,#16151E); --soft:var(--masa-soft,#6B6A72);
  --ok:var(--masa-ok,#1B7A56); --warn:var(--masa-warn,#A56A15); --err:var(--masa-err,#B23B3B);
  --accent:var(--masa-accent,#FF4C24); --accent-d:var(--masa-accent-h,#E03D18); --oncolor:var(--masa-on-accent,#16151E);
  --chip:var(--masa-accent,#FF4C24); --chip-d:var(--masa-accent-h,#E03D18); --onchip:var(--masa-on-accent,#16151E);
  /* coral/teal are the engine's small-TEXT accent channels → the AA text tone,
     never the raw fill orange (V8: fills #FF4C24, small text #C2350F) */
  --gold:var(--masa-warn,#A56A15); --coral:var(--masa-accent-text,#C2350F); --teal:var(--masa-accent-text,#C2350F); --teal-d:var(--masa-accent-h,#E03D18);
  /* milestone posters stay printed OBJECTS (engine canon: same ink in both themes) */
  --poster-gold:#6A4F0E; --poster-teal:#275A50; --poster-indigo:#3D52AC;
  --poster-ink:#F5EFDD; --poster-sig:#F3CDA1;
  /* V8: flat — no card shadows; separation = surface contrast, border = state */
  --clay:none;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --spring:cubic-bezier(.34,1.38,.5,1);
  --r-card:10px; --r-sm:6px; --r-pill:999px;
  /* no mascot: the "dough" organic radius collapses to the V8 resting square */
  --r-dough:2px;
  --font-body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-disp:"Figtree",system-ui,-apple-system,sans-serif;
  /* no handwriting layer — the sig line is mono metadata (professional register) */
  --font-hand:"IBM Plex Mono",ui-monospace,monospace;
  --disp-case:none;
}

/* ---- Risa overrides (kept HERE, engine css untouched) ---- */
/* eleos signature: faint 1px vertical column grid on the ground */
body{background-image:repeating-linear-gradient(90deg,
  rgba(160,152,124,.14) 0 1px, transparent 1px 12.5%);}
/* V8 buttons are squared 2px (chips/pills elsewhere keep their shape) */
.needs .act,.pk .copy,.lb-btn,.story-close{border-radius:2px;}
/* no mascot in the gate — the words carry it */
.gate .buddy{display:none;}
/* mono labels: section kickers + stat labels wear Plex Mono (V8 "labels/metadata only") */
.k,.lbl{font-family:"IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;}
/* THREAD DOOR — Risa's own first section (markup in index.html, filled by risa-door.js).
   The accent border marks it as THE action surface, same grammar the engine gives .needs. */
.door{border:1.5px solid var(--accent);margin-bottom:18px;}
.door .act{display:inline-block;margin-top:12px;padding:12px 22px;font-size:15px;font-weight:600;
  color:var(--oncolor);background:var(--accent);text-decoration:none;border-radius:2px;}
.door .act:hover{background:var(--accent-d);}
.door p{color:var(--soft);margin:6px 0 0;}
.door h2{margin:2px 0 0;}
