/* ============================================================================
   MY COUNCIL — Premium cinematic thinking room
   council.css · design system + atmosphere + components
   ----------------------------------------------------------------------------
   Organized in sections:
   1. Tokens (palette, type, space, motion)   6. The Table (stage)
   2. Reset & base                            7. Speaker panel & rituals
   3. Atmosphere (room, grain, candlelight)   8. Journal / Report / Settings
   4. Layout & chrome                         9. Animations
   5. Components (buttons, cards, panels)     10. Responsive & print & a11y
   ========================================================================== */

/* ============================ 1. TOKENS ================================== */
:root {
  /* Core ink & warmth */
  --ink:        #08090f;
  --ink-2:      #0b0e17;
  --navy:       #111a30;
  --brown:      #221912;
  --burgundy:   #431a25;
  --burgundy-2: #5c2130;

  /* Metals & light */
  --gold:       #d7a95a;
  --gold-soft:  #ecca8a;
  --gold-deep:  #b0813e;
  --bronze:     #8a6a3e;
  --candle:     #f4c977;
  --marble:     #ece4d4;
  --parchment:  #e7d9ba;

  /* Text */
  --text:       #ece4d2;
  --text-dim:   #b7ac92;
  --text-faint: #8a7f68;
  --text-ghost: rgba(236,228,210,.42);

  /* Lines & fills */
  --line:       rgba(215,169,90,.20);
  --line-soft:  rgba(215,169,90,.10);
  --glass:      rgba(18,20,30,.55);
  --glass-2:    rgba(12,14,22,.72);
  --scrim:      rgba(4,5,9,.78);

  /* Room accent (retheme per [data-room]) */
  --room-a:     #131a2e;
  --room-b:     #070810;
  --room-c:     #2a1a16;
  --accent:     var(--gold);
  --accent-glow: rgba(244,201,119,.55);

  /* Typography */
  --f-display: 'Cormorant Garamond', Cormorant, Georgia, 'Times New Roman', serif;
  --f-serif:   'EB Garamond', Georgia, 'Times New Roman', serif;
  --f-sans:    'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --fs-hero: clamp(2.6rem, 6vw, 5rem);
  --fs-h1:   clamp(2rem, 4vw, 3.1rem);
  --fs-h2:   clamp(1.5rem, 2.6vw, 2.1rem);
  --fs-lead: clamp(1.1rem, 1.5vw, 1.35rem);
  --fs-body: 1.02rem;
  --fs-sm:   0.86rem;
  --fs-xs:   0.74rem;

  /* Space & radius */
  --sp: 8px;
  --r-sm: 8px;
  --r:    14px;
  --r-lg: 22px;
  --r-xl: 30px;

  /* Shadow & motion */
  --sh-1: 0 2px 10px rgba(0,0,0,.35);
  --sh-2: 0 18px 50px -12px rgba(0,0,0,.7);
  --sh-glow: 0 0 40px -6px var(--accent-glow);
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-in: cubic-bezier(.5,0,.75,0);
  --t-fast: .28s;
  --t: .5s;
  --t-slow: .9s;
}

/* Room themes ------------------------------------------------------------- */
[data-room="candle_library"] { --room-a:#1a120c; --room-b:#080604; --room-c:#3a2413; --accent:#e0a95a; --accent-glow:rgba(244,201,119,.55); }
[data-room="marble_hall"]    { --room-a:#1b2338; --room-b:#0a0d16; --room-c:#2c3348; --accent:#e6cf95; --accent-glow:rgba(240,225,170,.5); }
[data-room="war_room"]       { --room-a:#161a1c; --room-b:#070809; --room-c:#3a2a1f; --accent:#c79a5c; --accent-glow:rgba(226,150,90,.42); }
[data-room="observatory"]    { --room-a:#0e1430; --room-b:#04050d; --room-c:#1a2350; --accent:#9fb6e6; --accent-glow:rgba(150,180,240,.5); }
[data-room="revolution_room"]{ --room-a:#231118; --room-b:#0a0406; --room-c:#4a1620; --accent:#d98a63; --accent-glow:rgba(224,120,90,.5); }

/* ======================== 2. RESET & BASE ================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: var(--f-serif);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--text);
  background: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
h1,h2,h3,h4 { font-family: var(--f-display); font-weight: 500; line-height: 1.08; margin: 0; letter-spacing: .01em; }
p { margin: 0 0 1rem; }
button { font-family: inherit; color: inherit; cursor: pointer; border: none; background: none; }
input, textarea { font-family: inherit; color: inherit; }
::selection { background: rgba(215,169,90,.28); color: #fff; }
a { color: var(--accent); text-decoration: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }

.mc-sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.mc-eyebrow {
  font-family: var(--f-sans); font-size: var(--fs-xs); font-weight: 500;
  letter-spacing: .34em; text-transform: uppercase; color: var(--accent);
  opacity: .85;
}
.mc-muted { color: var(--text-dim); }
.mc-faint { color: var(--text-faint); }
.mc-serif-italic { font-style: italic; color: var(--text-dim); }

/* Custom scrollbar */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: rgba(215,169,90,.2); border-radius: 20px; border: 3px solid transparent; background-clip: padding-box; }
*::-webkit-scrollbar-thumb:hover { background: rgba(215,169,90,.4); background-clip: padding-box; }

/* ======================== 3. ATMOSPHERE ================================= */
.mc-atmosphere { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }

.mc-room-bg {
  position: absolute; inset: -10%;
  background:
    radial-gradient(120% 90% at 50% 8%, color-mix(in srgb, var(--room-c) 55%, transparent) 0%, transparent 46%),
    radial-gradient(140% 120% at 50% 120%, var(--room-a) 0%, var(--room-b) 60%, var(--ink) 100%);
  transition: background var(--t-slow) var(--ease);
}
/* faint architectural texture: columns / shelves suggested by soft vertical bands */
.mc-room-bg::after {
  content:""; position:absolute; inset:0; opacity:.5;
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.16) 0 2px, transparent 2px 8vw),
    radial-gradient(60% 50% at 50% 100%, rgba(0,0,0,.5), transparent 70%);
  mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(transparent, #000 40%);
          mask-image: linear-gradient(transparent, #000 40%);
}
.mc-vignette {
  position:absolute; inset:0;
  background: radial-gradient(120% 100% at 50% 44%, transparent 42%, rgba(0,0,0,.55) 88%, rgba(0,0,0,.82) 100%);
}
.mc-candle-glow {
  position:absolute; left:50%; top:34%; width:70vw; height:70vw; max-width:1100px; max-height:1100px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, var(--accent-glow) 0%, transparent 60%);
  opacity:.4; filter: blur(12px);
  animation: mc-flicker 6s ease-in-out infinite;
  transition: left var(--t-slow) var(--ease), top var(--t-slow) var(--ease), opacity var(--t) var(--ease);
}
.mc-grain {
  position:absolute; inset:-50%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.05; mix-blend-mode: overlay;
  animation: mc-grain 1.4s steps(4) infinite;
}

body[data-motion="low"] .mc-candle-glow { animation: none; }
body[data-motion="low"] .mc-grain { animation: none; opacity:.035; }

/* Boot fade */
body.mc-booting .mc-app { opacity: 0; }
.mc-app { opacity: 1; transition: opacity .8s var(--ease); }

/* ======================== 4. LAYOUT & CHROME ============================ */
.mc-app { position: relative; z-index: 1; min-height: 100dvh; display: flex; flex-direction: column; }

.mc-screen {
  flex: 1; display: flex; flex-direction: column;
  animation: mc-screen-in .7s var(--ease) both;
}
.mc-screen--center { align-items: center; justify-content: center; text-align: center; padding: 5vh 6vw; }
.mc-wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 clamp(18px, 4vw, 48px); }
.mc-wrap--narrow { max-width: 760px; }

/* Top bar */
.mc-topbar {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; gap: 16px;
  padding: 14px clamp(16px, 4vw, 40px);
  background: linear-gradient(var(--ink-2), transparent);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.mc-brand { display:flex; align-items:center; gap:12px; cursor:pointer; }
.mc-brand__seal { width:34px; height:34px; flex:0 0 auto; filter: drop-shadow(0 0 10px var(--accent-glow)); }
.mc-brand__name { font-family: var(--f-display); font-size: 1.32rem; letter-spacing:.04em; color: var(--marble); }
.mc-brand__name b { color: var(--accent); font-weight:600; }
.mc-topbar__spacer { flex: 1; }
.mc-navbtn {
  font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.16em; text-transform: uppercase;
  color: var(--text-dim); padding: 8px 12px; border-radius: 999px; transition: color var(--t-fast), background var(--t-fast);
}
.mc-navbtn:hover { color: var(--marble); background: rgba(215,169,90,.08); }
.mc-navbtn.is-active { color: var(--accent); }

/* ======================== 5. COMPONENTS ================================= */
/* Buttons */
.mc-btn {
  --btn-bg: rgba(215,169,90,.10);
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family: var(--f-sans); font-size: .82rem; font-weight: 500; letter-spacing:.14em; text-transform: uppercase;
  padding: 14px 26px; border-radius: 999px;
  background: var(--btn-bg); color: var(--text);
  border: 1px solid var(--line);
  transition: transform var(--t-fast) var(--ease), background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), color var(--t-fast);
}
.mc-btn:hover { transform: translateY(-2px); border-color: rgba(215,169,90,.5); background: rgba(215,169,90,.16); }
.mc-btn:active { transform: translateY(0); }
.mc-btn[disabled] { opacity:.4; pointer-events:none; }
.mc-btn--gold {
  background: linear-gradient(180deg, var(--gold-soft), var(--gold-deep));
  color: #241505; border-color: transparent; font-weight: 600;
  box-shadow: 0 6px 22px -6px var(--accent-glow), inset 0 1px 0 rgba(255,255,255,.35);
}
.mc-btn--gold:hover { box-shadow: 0 10px 30px -6px var(--accent-glow), inset 0 1px 0 rgba(255,255,255,.4); background: linear-gradient(180deg, #f4d79b, var(--gold)); }
.mc-btn--ghost { background: transparent; }
.mc-btn--lg { padding: 17px 34px; font-size:.86rem; }
.mc-btn--sm { padding: 9px 16px; font-size:.72rem; letter-spacing:.12em; }
.mc-btn--block { width: 100%; }
.mc-btn__ico { width: 1.05em; height: 1.05em; }

/* Text link button */
.mc-link {
  font-family: var(--f-sans); font-size: var(--fs-sm); letter-spacing:.06em;
  color: var(--text-dim); border-bottom: 1px solid transparent; padding-bottom:2px;
  transition: color var(--t-fast), border-color var(--t-fast);
}
.mc-link:hover { color: var(--accent); border-color: var(--line); }

/* Inputs */
.mc-field {
  width:100%; background: var(--glass); border: 1px solid var(--line);
  border-radius: var(--r); color: var(--text); font-family: var(--f-serif);
  font-size: 1.15rem; line-height:1.5; padding: 18px 20px; resize: none;
  transition: border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
}
.mc-field::placeholder { color: var(--text-faint); font-style: italic; }
.mc-field:focus { outline: none; border-color: rgba(215,169,90,.55); box-shadow: 0 0 0 4px rgba(215,169,90,.08), var(--sh-glow); background: rgba(20,22,32,.7); }
.mc-input {
  width:100%; background: var(--glass); border:1px solid var(--line); border-radius: var(--r-sm);
  color: var(--text); font-family: var(--f-sans); font-size:.95rem; padding: 12px 14px;
}
.mc-input:focus { outline:none; border-color: rgba(215,169,90,.5); }
.mc-label { display:block; font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; color: var(--text-faint); margin-bottom: 8px; }

/* Chips */
.mc-chip {
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.1em;
  padding: 7px 13px; border-radius: 999px; border:1px solid var(--line);
  color: var(--text-dim); background: rgba(215,169,90,.05);
  transition: all var(--t-fast) var(--ease);
}
.mc-chip.is-selected, .mc-chip:hover { color: var(--marble); border-color: rgba(215,169,90,.5); background: rgba(215,169,90,.14); }
.mc-chip--removable { cursor: default; }
.mc-chip__x { cursor:pointer; opacity:.6; font-size:1rem; line-height:1; }
.mc-chip__x:hover { opacity:1; color: var(--accent); }

/* Card base */
.mc-card {
  position: relative; background: var(--glass); border: 1px solid var(--line);
  border-radius: var(--r-lg); overflow: hidden;
  box-shadow: var(--sh-2);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.mc-card__inner { padding: clamp(18px, 3vw, 30px); }

/* Divider */
.mc-rule { height:1px; background: linear-gradient(90deg, transparent, var(--line), transparent); border:0; margin: 22px 0; }
.mc-dot-rule { display:flex; align-items:center; gap:14px; color: var(--accent); margin: 20px 0; }
.mc-dot-rule::before, .mc-dot-rule::after { content:""; height:1px; flex:1; background: linear-gradient(90deg, transparent, var(--line)); }
.mc-dot-rule::after { background: linear-gradient(90deg, var(--line), transparent); }

/* Toast */
.mc-toast-wrap { position: fixed; left:50%; bottom: 34px; transform: translateX(-50%); z-index: 90; display:flex; flex-direction:column; gap:10px; align-items:center; pointer-events:none; }
.mc-toast {
  font-family: var(--f-sans); font-size: var(--fs-sm); letter-spacing:.03em;
  background: var(--glass-2); border:1px solid var(--line); color: var(--text);
  padding: 12px 20px; border-radius: 999px; box-shadow: var(--sh-2);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  display:flex; align-items:center; gap:10px;
  animation: mc-toast-in .5s var(--ease) both;
}
.mc-toast .mc-toast__ico { color: var(--accent); }

/* Overlay / modal */
.mc-overlay {
  position: fixed; inset: 0; z-index: 60; display:flex; align-items:center; justify-content:center;
  padding: 5vh 5vw; background: var(--scrim);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  animation: mc-fade .4s var(--ease) both;
}
.mc-modal {
  width: 100%; max-width: 640px; max-height: 88dvh; overflow:auto;
  background: linear-gradient(180deg, rgba(20,18,26,.96), rgba(10,10,16,.98));
  border:1px solid var(--line); border-radius: var(--r-xl);
  box-shadow: var(--sh-2), inset 0 1px 0 rgba(255,255,255,.05);
  animation: mc-rise .55s var(--ease) both;
}
.mc-modal__inner { padding: clamp(24px, 4vw, 40px); }
.mc-modal__close { position:absolute; top:16px; right:18px; width:38px; height:38px; border-radius:999px; color:var(--text-dim); font-size:1.3rem; }
.mc-modal__close:hover { color:var(--accent); background: rgba(215,169,90,.1); }

/* ---- Home / hero ---- */
.mc-home { align-items:center; justify-content:center; text-align:center; padding: 6vh 6vw 8vh; }
.mc-home__seal { width: 74px; height:74px; margin: 0 auto 26px; filter: drop-shadow(0 0 24px var(--accent-glow)); animation: mc-rise 1s var(--ease) both; }
.mc-home__eyebrow { margin-bottom: 20px; animation: mc-fade 1s .1s var(--ease) both; }
.mc-home__title { font-size: var(--fs-hero); font-weight:500; color: var(--marble); max-width: 16ch; margin: 0 auto; letter-spacing:.005em; animation: mc-rise 1.1s .05s var(--ease) both; }
.mc-home__title em { font-style: italic; color: var(--accent); }
.mc-home__sub { font-size: var(--fs-lead); color: var(--text-dim); max-width: 46ch; margin: 22px auto 40px; animation: mc-fade 1.2s .25s var(--ease) both; }
.mc-ask {
  position: relative; width:100%; max-width: 720px; margin: 0 auto;
  animation: mc-rise 1.2s .3s var(--ease) both;
}
.mc-ask__field { min-height: 92px; font-size: 1.3rem; text-align:center; padding: 26px 24px; border-radius: var(--r-lg); }
.mc-ask__hint { font-family: var(--f-sans); font-size: var(--fs-xs); color: var(--text-faint); letter-spacing:.1em; margin-top: 12px; }
.mc-home__actions { display:flex; flex-wrap:wrap; gap: 14px; justify-content:center; margin-top: 30px; animation: mc-fade 1.4s .45s var(--ease) both; }

/* ---- Ritual overlay (Question before the question, entering, etc.) ---- */
.mc-ritual { text-align:center; max-width: 640px; }
.mc-ritual__line { font-family: var(--f-display); font-size: clamp(1.5rem,3vw,2.3rem); color: var(--marble); font-style: italic; line-height:1.3; }
.mc-ritual__opts { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top: 34px; }
.mc-seek {
  font-family: var(--f-sans); font-size:.82rem; letter-spacing:.1em; text-transform:uppercase;
  padding: 13px 20px; border-radius: 999px; border:1px solid var(--line); color: var(--text-dim);
  background: rgba(215,169,90,.04); transition: all var(--t-fast) var(--ease);
}
.mc-seek:hover { color: var(--marble); border-color: rgba(215,169,90,.55); background: rgba(215,169,90,.14); transform: translateY(-2px); }

/* ---- Section headings ---- */
.mc-section-head { text-align:center; margin: clamp(30px,6vh,64px) 0 8px; }
.mc-section-head__eyebrow { margin-bottom: 14px; }
.mc-section-head h1 { font-size: var(--fs-h1); color: var(--marble); }
.mc-section-head p { color: var(--text-dim); font-size: var(--fs-lead); margin-top: 12px; }

/* ---- Persona cards (casting) ---- */
.mc-grid { display:grid; gap: clamp(14px, 2vw, 22px); }
.mc-grid--personas { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.mc-grid--councils  { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.mc-grid--rooms     { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

.mc-pcard {
  position: relative; border:1px solid var(--line); border-radius: var(--r-lg);
  background: linear-gradient(180deg, rgba(24,22,30,.7), rgba(10,10,16,.85));
  padding: 24px 20px 20px; text-align:center; overflow:hidden;
  transition: transform var(--t) var(--ease), border-color var(--t-fast), box-shadow var(--t);
  cursor: pointer;
}
.mc-pcard::before {
  content:""; position:absolute; inset:0; opacity:0; transition: opacity var(--t);
  background: radial-gradient(80% 60% at 50% 0%, color-mix(in srgb, var(--pa,#d7a95a) 22%, transparent), transparent 70%);
}
.mc-pcard:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--pa,#d7a95a) 55%, transparent); box-shadow: 0 24px 50px -18px rgba(0,0,0,.8); }
.mc-pcard:hover::before { opacity:1; }
.mc-pcard.is-seated { border-color: color-mix(in srgb, var(--pa,#d7a95a) 60%, transparent); }
.mc-pcard.is-seated::after {
  content:"AT THE TABLE"; position:absolute; top:12px; right:-30px; transform: rotate(45deg);
  background: var(--pa,#d7a95a); color:#1a1105; font-family:var(--f-sans); font-size:.54rem; font-weight:600; letter-spacing:.14em;
  padding: 4px 34px; box-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.mc-pcard__portrait { width: 108px; height: 108px; margin: 0 auto 14px; position:relative; }
.mc-pcard__name { font-family: var(--f-display); font-size: 1.5rem; color: var(--marble); }
.mc-pcard__arch { font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.18em; text-transform:uppercase; color: var(--pa,#d7a95a); margin-top: 4px; }
.mc-pcard__era { font-size: var(--fs-xs); color: var(--text-faint); font-family: var(--f-sans); letter-spacing:.08em; margin-top: 6px; }
.mc-pcard__tag { font-style: italic; color: var(--text-dim); font-size:.98rem; margin: 12px 4px 0; min-height: 3em; }
.mc-pcard__themes { display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-top: 14px; }
.mc-pcard__theme { font-family: var(--f-sans); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color: var(--text-faint); border:1px solid var(--line-soft); border-radius: 999px; padding: 3px 8px; }
.mc-pcard__cta {
  margin-top: 18px; font-family: var(--f-sans); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color: var(--pa,#d7a95a); opacity:0; transform: translateY(6px); transition: all var(--t) var(--ease);
}
.mc-pcard:hover .mc-pcard__cta { opacity:1; transform: none; }
.mc-pcard.is-seated .mc-pcard__cta { opacity:1; color: var(--text-faint); }

/* Council & Room cards */
.mc-ccard, .mc-rcard {
  position:relative; border:1px solid var(--line); border-radius: var(--r-lg); overflow:hidden;
  background: linear-gradient(180deg, rgba(22,20,28,.7), rgba(9,9,15,.9)); cursor:pointer;
  transition: transform var(--t) var(--ease), border-color var(--t-fast), box-shadow var(--t);
}
.mc-ccard:hover, .mc-rcard:hover { transform: translateY(-5px); border-color: rgba(215,169,90,.5); box-shadow: 0 24px 50px -18px rgba(0,0,0,.8); }
.mc-ccard__inner, .mc-rcard__inner { padding: 24px 24px 22px; }
.mc-ccard__name, .mc-rcard__name { font-family: var(--f-display); font-size: 1.7rem; color: var(--marble); }
.mc-ccard__purpose { color: var(--text-dim); font-size:.98rem; margin-top: 8px; }
.mc-ccard__members { display:flex; gap:-8px; margin-top: 16px; }
.mc-ccard__mini { width:38px; height:38px; margin-left:-8px; border-radius:999px; border:2px solid var(--ink-2); box-shadow: var(--sh-1); }
.mc-ccard__mini:first-child { margin-left:0; }
.mc-rcard__swatch { height: 96px; }
.mc-rcard__mood { font-size:.94rem; color: var(--text-dim); margin-top: 8px; }
.mc-rcard__ideal { font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.06em; color: var(--text-faint); margin-top: 12px; }

/* Selected-seats tray */
.mc-tray {
  position: sticky; bottom: 0; z-index: 20; margin-top: 30px;
  background: linear-gradient(transparent, var(--ink-2) 26%);
  padding: 26px 0 22px;
}
.mc-tray__inner {
  display:flex; align-items:center; gap: 16px; flex-wrap: wrap;
  background: var(--glass-2); border:1px solid var(--line); border-radius: var(--r-lg);
  padding: 16px 20px; box-shadow: var(--sh-2);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.mc-tray__seats { display:flex; gap:10px; flex:1; flex-wrap:wrap; min-height:44px; align-items:center; }
.mc-tray__empty { color: var(--text-faint); font-style:italic; }
.mc-tray__seat { display:flex; align-items:center; gap:8px; background: rgba(215,169,90,.08); border:1px solid var(--line); border-radius:999px; padding: 5px 12px 5px 6px; }
.mc-tray__seat img { width:28px; height:28px; border-radius:999px; }
.mc-tray__seat span { font-family:var(--f-sans); font-size: var(--fs-sm); }
.mc-tray__seat button { color: var(--text-faint); font-size:1.1rem; line-height:1; }
.mc-tray__seat button:hover { color: var(--accent); }

/* ======================== 6. THE TABLE (STAGE) ========================== */
.mc-table-screen { position: relative; height: 100dvh; display:flex; flex-direction:column; overflow:hidden; animation: mc-fade .9s var(--ease) both; }

.mc-stage {
  position: relative; flex: 1; min-height: 0;
  perspective: 1400px;
  transition: filter var(--t) var(--ease);
}
.mc-stage.is-private { filter: blur(7px) brightness(.5); pointer-events:none; }
.mc-stage.is-dimmed  { filter: brightness(.72); }

/* Oval table */
.mc-table {
  position:absolute; left:50%; top:60%; transform: translate(-50%,-50%) rotateX(52deg);
  width: min(64vw, 720px); height: min(34vw, 380px);
  border-radius: 50%;
  background:
    radial-gradient(60% 60% at 50% 38%, color-mix(in srgb, var(--room-c) 60%, #000) 0%, #0c0a08 78%),
    radial-gradient(closest-side, rgba(0,0,0,.2), transparent);
  box-shadow: 0 40px 80px -20px rgba(0,0,0,.85), inset 0 0 60px rgba(0,0,0,.7), inset 0 2px 0 rgba(215,169,90,.14);
  border: 2px solid rgba(215,169,90,.16);
}
.mc-table::before { /* inlaid ring */
  content:""; position:absolute; inset: 14%; border-radius:50%;
  border:1px solid rgba(215,169,90,.18);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.mc-table__orb {
  position:absolute; left:50%; top:50%; width: 22%; height: 40%;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, var(--candle) 0%, var(--accent-glow) 30%, transparent 65%);
  filter: blur(3px);
  animation: mc-flicker 5s ease-in-out infinite;
}
/* Tension states of the central light */
.mc-table__orb.t-calm     { animation-duration: 7s; opacity:.85; }
.mc-table__orb.t-tense    { animation: mc-flicker-fast 1.6s ease-in-out infinite; opacity:1; }
.mc-table__orb.t-heavy    { animation: mc-dim 4s ease-in-out infinite; opacity:.55; }
.mc-table__orb.t-gathering{ animation: mc-gather 3s ease-in-out infinite; opacity:1; transform: translate(-50%,-50%) scale(1.15); }
body[data-motion="low"] .mc-table__orb { animation: none !important; }

/* Seats around the table */
.mc-seat {
  position:absolute; left: var(--sx, 50%); top: var(--sy, 20%);
  transform: translate(-50%,-50%);
  width: clamp(84px, 11vw, 132px);
  text-align:center; cursor: pointer;
  transition: transform var(--t) var(--ease), filter var(--t) var(--ease), opacity var(--t) var(--ease);
  z-index: 5;
}
.mc-seat__portrait { position:relative; width: 100%; aspect-ratio: 1; margin: 0 auto; transition: transform var(--t) var(--ease); }
.mc-seat__halo {
  position:absolute; inset:-14%; border-radius:999px; opacity:0;
  background: radial-gradient(circle, color-mix(in srgb, var(--pa,#d7a95a) 55%, transparent), transparent 68%);
  transition: opacity var(--t) var(--ease); z-index:-1; filter: blur(4px);
}
.mc-seat__name { margin-top: 8px; font-family: var(--f-display); font-size: clamp(.92rem,1.4vw,1.2rem); color: var(--text-dim); letter-spacing:.02em; transition: color var(--t); }
.mc-seat__react {
  position:absolute; top:-6px; left:50%; transform: translateX(-50%) translateY(-100%);
  font-family: var(--f-sans); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase;
  color: var(--pa,#d7a95a); opacity:0; white-space:nowrap; transition: opacity var(--t);
  text-shadow: 0 0 10px var(--accent-glow);
}
.mc-seat:hover { transform: translate(-50%,-50%) translateY(-4px); }
.mc-seat:hover .mc-seat__name { color: var(--marble); }

/* States */
.mc-seat.is-dimmed { opacity:.5; filter: grayscale(.5) brightness(.7); }
.mc-seat.is-reacting .mc-seat__halo { opacity:.5; }
.mc-seat.is-reacting .mc-seat__react { opacity:.9; }
.mc-seat.is-speaking { z-index: 8; }
.mc-seat.is-speaking .mc-seat__portrait { transform: scale(1.16); }
.mc-seat.is-speaking .mc-seat__halo { opacity:1; animation: mc-pulse 2.6s ease-in-out infinite; }
.mc-seat.is-speaking .mc-seat__name { color: var(--marble); text-shadow: 0 0 14px var(--accent-glow); }
body[data-motion="low"] .mc-seat.is-speaking .mc-seat__halo { animation: none; }

/* User seat marker */
.mc-userseat {
  position:absolute; left:50%; bottom: 3%; transform: translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:6px; z-index:6;
  transition: transform var(--t) var(--ease), opacity var(--t);
}
.mc-userseat__ring { width: 54px; height: 54px; border-radius:999px; border:1px dashed rgba(215,169,90,.4); display:grid; place-items:center; color: var(--accent); }
.mc-userseat__label { font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.18em; text-transform:uppercase; color: var(--text-faint); }
.mc-stage.is-myturn .mc-userseat { transform: translateX(-50%) translateY(-6px); }
.mc-stage.is-myturn .mc-userseat__ring { border-style:solid; box-shadow: var(--sh-glow); }

/* ======================== 7. SPEAKER PANEL & RITUALS ==================== */
.mc-speaker {
  position:absolute; left:50%; top: 8%; transform: translateX(-50%);
  width: min(92vw, 720px); z-index: 12; text-align:center;
  pointer-events:none;
}
.mc-speaker__label {
  font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.28em; text-transform:uppercase;
  color: var(--accent); margin-bottom: 12px; opacity:.9;
  animation: mc-fade .5s var(--ease) both;
}
.mc-speaker__stage { font-style:italic; color: var(--text-faint); font-size:.92rem; margin-bottom: 6px; }
.mc-speaker__panel {
  position:relative; pointer-events:auto;
  background: linear-gradient(180deg, rgba(20,18,26,.82), rgba(10,10,16,.9));
  border:1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: var(--sh-2), inset 0 1px 0 rgba(255,255,255,.05);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  padding: clamp(20px, 3vw, 30px) clamp(22px, 3.5vw, 38px);
  animation: mc-rise .6s var(--ease) both;
}
.mc-speaker__panel::before { /* accent edge in speaker color */
  content:""; position:absolute; left:0; top:18%; bottom:18%; width:3px; border-radius:3px;
  background: linear-gradient(var(--pa,#d7a95a), transparent);
}
.mc-speaker__text {
  font-family: var(--f-serif); font-size: clamp(1.16rem, 1.8vw, 1.5rem); line-height: 1.62;
  color: var(--text);
}
.mc-speaker__text .mc-caret { display:inline-block; width:2px; height:1.05em; background: var(--accent); margin-left:2px; vertical-align:-2px; animation: mc-blink 1s steps(2) infinite; }
.mc-speaker__foot { display:flex; align-items:center; justify-content:center; gap:16px; margin-top: 18px; }
.mc-speaker__save {
  font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.14em; text-transform:uppercase;
  color: var(--text-faint); display:inline-flex; gap:7px; align-items:center; transition: color var(--t-fast);
}
.mc-speaker__save:hover { color: var(--accent); }
.mc-speaker__save.is-saved { color: var(--accent); }

/* Thinking / pause indicator */
.mc-thinking { display:inline-flex; gap:6px; align-items:center; }
.mc-thinking i { width:6px; height:6px; border-radius:999px; background: var(--accent); opacity:.5; animation: mc-think 1.2s ease-in-out infinite; }
.mc-thinking i:nth-child(2){ animation-delay:.2s; } .mc-thinking i:nth-child(3){ animation-delay:.4s; }

/* Silence beat */
.mc-silence {
  position:absolute; inset:0; display:grid; place-items:center; z-index: 14;
  background: radial-gradient(60% 60% at 50% 40%, rgba(0,0,0,.35), transparent 70%);
  animation: mc-fade .8s var(--ease) both; pointer-events:none;
}
.mc-silence span { font-family: var(--f-display); font-style:italic; font-size: clamp(1.3rem,3vw,2rem); color: var(--text-ghost); letter-spacing:.05em; }

/* Duel banner */
.mc-duel {
  position:absolute; left:50%; top: 2%; transform:translateX(-50%); z-index:13;
  display:flex; align-items:center; gap:14px; padding: 10px 18px; border-radius:999px;
  background: var(--glass-2); border:1px solid rgba(215,169,90,.4); box-shadow: var(--sh-2);
  animation: mc-rise .6s var(--ease) both;
}
.mc-duel span { font-family:var(--f-sans); font-size:var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--marble); }
.mc-duel b { color: var(--accent); }

/* Bottom controls */
.mc-controls {
  position: relative; z-index: 15; display:flex; align-items:center; justify-content:center; gap: 14px;
  padding: 18px clamp(12px,3vw,28px) clamp(20px, 3vh, 34px); flex-wrap: wrap;
  background: linear-gradient(transparent, rgba(6,7,11,.72) 40%);
}
.mc-controls__contextual { display:flex; gap:10px; align-items:center; }
.mc-controls .mc-btn--gold { min-width: 168px; }

/* My Turn input */
.mc-myturn {
  position:absolute; left:50%; bottom: 96px; transform: translateX(-50%);
  width: min(92vw, 680px); z-index: 16;
  animation: mc-rise .5s var(--ease) both;
}
.mc-myturn__field { min-height: 64px; font-size: 1.16rem; padding: 18px 58px 18px 20px; text-align:left; }
.mc-myturn__send {
  position:absolute; right:12px; bottom:12px; width:42px; height:42px; border-radius:999px;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold-deep)); color:#241505;
  display:grid; place-items:center; box-shadow: 0 4px 14px -4px var(--accent-glow);
}
.mc-myturn__send:hover { transform: translateY(-1px); }
.mc-myturn__hint { font-family:var(--f-sans); font-size:var(--fs-xs); color: var(--text-faint); letter-spacing:.06em; margin-top:8px; text-align:center; }

/* Transcript drawer */
.mc-transcript {
  position: fixed; top:0; right:0; height: 100dvh; width: min(440px, 92vw); z-index: 40;
  background: linear-gradient(180deg, rgba(14,13,20,.98), rgba(8,8,13,.99));
  border-left:1px solid var(--line); box-shadow: -30px 0 80px -20px rgba(0,0,0,.8);
  transform: translateX(100%); transition: transform var(--t) var(--ease);
  display:flex; flex-direction:column;
}
.mc-transcript.is-open { transform: none; }
.mc-transcript__head { display:flex; align-items:center; justify-content:space-between; padding: 20px 22px; border-bottom:1px solid var(--line); }
.mc-transcript__head h3 { font-size:1.4rem; color: var(--marble); }
.mc-transcript__body { flex:1; overflow:auto; padding: 20px 22px; }
.mc-tline { margin-bottom: 20px; animation: mc-fade .4s var(--ease) both; }
.mc-tline__who { font-family:var(--f-sans); font-size: var(--fs-xs); letter-spacing:.14em; text-transform:uppercase; color: var(--pa,#d7a95a); margin-bottom:5px; display:flex; align-items:center; gap:8px; }
.mc-tline__who img { width:22px;height:22px;border-radius:999px; }
.mc-tline--user .mc-tline__who { color: var(--text-faint); }
.mc-tline__text { color: var(--text-dim); font-size: 1rem; }
.mc-tline--user .mc-tline__text { color: var(--text); padding-left:12px; border-left:2px solid var(--line); }
.mc-tline--private { opacity:.75; }
.mc-tline--private .mc-tline__text::after { content:" · private"; color: var(--text-faint); font-style:italic; font-size:.85em; }

/* Private talk panel */
.mc-private {
  position: fixed; inset:0; z-index: 45; display:flex; flex-direction:column;
  align-items:center; justify-content:center; padding: 5vh 5vw;
  animation: mc-fade .5s var(--ease) both;
}
.mc-private__card {
  width: 100%; max-width: 620px; background: linear-gradient(180deg, rgba(20,18,26,.9), rgba(9,9,15,.96));
  border:1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--sh-2);
  padding: clamp(24px,4vw,38px); text-align:center; max-height: 84dvh; display:flex; flex-direction:column;
}
.mc-private__portrait { width: 120px; height:120px; margin: 0 auto 16px; filter: drop-shadow(0 0 30px var(--accent-glow)); }
.mc-private__name { font-family: var(--f-display); font-size: 2rem; color: var(--marble); }
.mc-private__eyebrow { margin-bottom: 8px; }
.mc-private__thread { flex:1; overflow:auto; text-align:left; margin: 20px 0; display:flex; flex-direction:column; gap:16px; }
.mc-private__msg { font-family: var(--f-serif); font-size:1.12rem; line-height:1.6; }
.mc-private__msg--me { color: var(--text-dim); padding-left:14px; border-left:2px solid var(--line); }
.mc-private__actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }

/* ==================== 8. VERDICT / AFTERGLOW / JOURNAL / REPORT ========= */
/* Final Verdict ritual */
.mc-verdict { min-height: 100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding: 8vh 6vw; text-align:center; }
.mc-verdict__eyebrow { margin-bottom: 16px; }
.mc-verdict__title { font-size: var(--fs-h1); color: var(--marble); font-style:italic; }
.mc-verdict__words { margin: 40px 0; display:flex; flex-direction:column; gap: 22px; width:100%; max-width: 700px; }
.mc-finalword { display:flex; align-items:center; gap: 18px; text-align:left; opacity:0; animation: mc-rise .8s var(--ease) forwards; }
.mc-finalword img { width: 58px; height:58px; flex:0 0 auto; filter: drop-shadow(0 0 16px var(--accent-glow)); }
.mc-finalword__who { font-family:var(--f-sans); font-size: var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; color: var(--pa,#d7a95a); }
.mc-finalword__line { font-family: var(--f-display); font-size: 1.5rem; font-style:italic; color: var(--text); line-height:1.3; }
.mc-verdict__scroll {
  width:100%; max-width: 760px; text-align:left; margin-top: 20px;
  background: linear-gradient(180deg, rgba(231,217,186,.06), rgba(231,217,186,.02));
  border:1px solid var(--line); border-radius: var(--r-lg); padding: clamp(24px,4vw,40px);
  opacity:0; animation: mc-rise 1s var(--ease) forwards;
}
.mc-verdict__scroll h2 { font-size: 2rem; color: var(--marble); margin-bottom: 6px; }
.mc-vsec { margin-top: 22px; }
.mc-vsec__label { font-family:var(--f-sans); font-size: var(--fs-xs); letter-spacing:.2em; text-transform:uppercase; color: var(--accent); margin-bottom: 6px; }
.mc-vsec__body { color: var(--text); font-size: 1.12rem; }
.mc-vsec__body.is-lead { font-family: var(--f-display); font-size: 1.5rem; font-style:italic; color: var(--marble); }
.mc-verdict__actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top: 34px; }

/* Afterglow */
.mc-afterglow { min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding: 8vh 6vw; text-align:center; }
.mc-afterglow__title { font-size: var(--fs-h1); color: var(--marble); font-style:italic; margin-bottom: 8px; }
.mc-afterglow__grid { display:grid; gap: 16px; width:100%; max-width: 860px; margin-top: 34px; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); text-align:left; }
.mc-ag-card { border:1px solid var(--line); border-radius: var(--r-lg); padding: 22px; background: var(--glass); }
.mc-ag-card__label { font-family:var(--f-sans); font-size: var(--fs-xs); letter-spacing:.16em; text-transform:uppercase; color: var(--accent); margin-bottom: 10px; }
.mc-ag-card__text { color: var(--text); font-size: 1.08rem; }
.mc-ag-card--wide { grid-column: 1 / -1; }
.mc-ag-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.mc-ag-list li { display:flex; gap:12px; color: var(--text); }
.mc-ag-list li::before { content:"—"; color: var(--accent); }

/* Journal / library */
.mc-tabs { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; margin: 24px 0 8px; }
.mc-tab { font-family: var(--f-sans); font-size: var(--fs-xs); letter-spacing:.14em; text-transform:uppercase; color: var(--text-dim); padding: 10px 16px; border-radius:999px; border:1px solid transparent; }
.mc-tab:hover { color: var(--marble); }
.mc-tab.is-active { color: var(--accent); border-color: var(--line); background: rgba(215,169,90,.08); }
.mc-insight {
  position:relative; border:1px solid var(--line); border-left: 3px solid var(--pa,#d7a95a);
  border-radius: var(--r); padding: 22px 24px; margin-bottom: 14px; background: var(--glass);
}
.mc-insight__who { font-family:var(--f-sans); font-size: var(--fs-xs); letter-spacing:.14em; text-transform:uppercase; color: var(--pa,#d7a95a); }
.mc-insight__quote { font-family: var(--f-display); font-size: 1.4rem; font-style:italic; color: var(--marble); margin: 8px 0; line-height:1.3; }
.mc-insight__meta { font-family:var(--f-sans); font-size: var(--fs-xs); color: var(--text-faint); letter-spacing:.06em; }
.mc-insight__del { position:absolute; top:14px; right:16px; color: var(--text-faint); opacity:0; transition: opacity var(--t-fast); }
.mc-insight:hover .mc-insight__del { opacity:1; }
.mc-insight__del:hover { color: var(--burgundy-2); }
.mc-empty { text-align:center; color: var(--text-faint); font-style:italic; padding: 40px 0; }

/* Memory panel */
.mc-mem-item { display:flex; align-items:flex-start; gap:12px; padding: 14px 0; border-bottom:1px solid var(--line-soft); }
.mc-mem-item__dot { width:7px;height:7px;border-radius:999px;background:var(--accent);margin-top:9px;flex:0 0 auto; }
.mc-mem-item__text { flex:1; color: var(--text-dim); }
.mc-mem-item__del { color: var(--text-faint); }
.mc-mem-item__del:hover { color: var(--burgundy-2); }

/* Settings */
.mc-set-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding: 16px 0; border-bottom:1px solid var(--line-soft); }
.mc-set-row__label { font-family: var(--f-serif); }
.mc-set-row__label small { display:block; font-family:var(--f-sans); font-size: var(--fs-xs); color: var(--text-faint); letter-spacing:.03em; margin-top:3px; }
.mc-toggle { width: 52px; height: 28px; border-radius: 999px; background: rgba(215,169,90,.14); border:1px solid var(--line); position:relative; transition: background var(--t-fast); flex:0 0 auto; }
.mc-toggle::after { content:""; position:absolute; top:2px; left:2px; width:22px; height:22px; border-radius:999px; background: var(--text-dim); transition: transform var(--t-fast) var(--ease), background var(--t-fast); }
.mc-toggle.is-on { background: linear-gradient(180deg, var(--gold-soft), var(--gold-deep)); }
.mc-toggle.is-on::after { transform: translateX(24px); background:#241505; }
.mc-select { font-family: var(--f-sans); font-size:.9rem; padding: 10px 14px; border-radius: var(--r-sm); background: var(--glass); border:1px solid var(--line); color: var(--text); }

/* Legal / disclaimer */
.mc-legal { font-family: var(--f-sans); font-size: var(--fs-xs); color: var(--text-faint); line-height:1.7; letter-spacing:.02em; }

/* Report (screen preview + print) */
.mc-report { max-width: 820px; margin: 0 auto; background: linear-gradient(180deg, #14110a, #0c0a06); border:1px solid var(--line); border-radius: var(--r-lg); overflow:hidden; box-shadow: var(--sh-2); }
.mc-report__cover { padding: clamp(40px,7vw,80px) clamp(30px,6vw,64px); text-align:center; border-bottom:1px solid var(--line); position:relative; background: radial-gradient(80% 60% at 50% 0%, rgba(215,169,90,.12), transparent 70%); }
.mc-report__cover .mc-eyebrow { margin-bottom: 18px; }
.mc-report__cover h1 { font-size: clamp(2rem,5vw,3.4rem); color: var(--marble); }
.mc-report__cover .mc-report__q { font-style:italic; color: var(--text-dim); font-size:1.3rem; margin-top: 14px; max-width: 40ch; margin-inline:auto; }
.mc-report__portraits { display:flex; gap:10px; justify-content:center; margin-top: 28px; flex-wrap:wrap; }
.mc-report__portraits img { width: 54px; height:54px; }
.mc-report__body { padding: clamp(28px,5vw,56px); }
.mc-report__section { margin-bottom: 30px; }
.mc-report__section h2 { font-size: 1.6rem; color: var(--accent); margin-bottom: 10px; }
.mc-report__quote { border-left:3px solid var(--line); padding-left: 16px; font-style:italic; color: var(--text-dim); margin: 12px 0; }

/* ======================== 9. ANIMATIONS ================================= */
@keyframes mc-flicker { 0%,100%{opacity:.42;transform:translate(-50%,-50%) scale(1)} 25%{opacity:.5} 40%{opacity:.36;transform:translate(-50%,-50%) scale(1.02)} 60%{opacity:.48} 78%{opacity:.4;transform:translate(-50%,-50%) scale(.99)} }
@keyframes mc-flicker-fast { 0%,100%{opacity:.9} 20%{opacity:.6} 35%{opacity:1} 55%{opacity:.7} 75%{opacity:1} }
@keyframes mc-dim { 0%,100%{opacity:.5} 50%{opacity:.68} }
@keyframes mc-gather { 0%,100%{opacity:.85;filter:blur(3px)} 50%{opacity:1;filter:blur(1px)} }
@keyframes mc-grain { 0%{transform:translate(0,0)} 25%{transform:translate(-6%,3%)} 50%{transform:translate(4%,-5%)} 75%{transform:translate(-3%,6%)} 100%{transform:translate(0,0)} }
@keyframes mc-pulse { 0%,100%{opacity:.85;transform:scale(1)} 50%{opacity:1;transform:scale(1.06)} }
@keyframes mc-fade { from{opacity:0} to{opacity:1} }
@keyframes mc-rise { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:none} }
@keyframes mc-screen-in { from{opacity:0;transform:translateY(10px) scale(.995)} to{opacity:1;transform:none} }
@keyframes mc-toast-in { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
@keyframes mc-blink { 0%,50%{opacity:1} 51%,100%{opacity:0} }
@keyframes mc-think { 0%,100%{opacity:.3;transform:translateY(0)} 50%{opacity:1;transform:translateY(-4px)} }
@keyframes mc-enter-zoom { from{opacity:0;transform:scale(1.08)} to{opacity:1;transform:none} }
@keyframes mc-join { 0%{opacity:0;transform:translateY(-24px) scale(.7)} 60%{opacity:1} 100%{transform:none} }

.mc-enter-anim { animation: mc-enter-zoom 1.1s var(--ease) both; }
.mc-seat--joining { animation: mc-join .7s var(--ease) both; }

/* ==================== 10. RESPONSIVE / PRINT / A11Y ===================== */
@media (max-width: 820px) {
  .mc-table { top: 56%; width: 82vw; height: 46vw; transform: translate(-50%,-50%) rotateX(46deg); }
  .mc-seat { width: clamp(64px, 20vw, 92px); }
  .mc-speaker { top: 4%; }
  .mc-topbar { padding: 12px 16px; }
  .mc-brand__name { font-size: 1.12rem; }
  .mc-navbtn span { display:none; } /* icons keep, labels hide where used */
}
/* Mobile "stage": personas become a compact arc, speaker panel dominates */
@media (max-width: 560px) {
  .mc-home__actions { flex-direction: column; align-items: stretch; }
  .mc-controls .mc-btn--gold { min-width: 0; flex:1; }
  .mc-controls { gap: 10px; }
  .mc-seat__name { font-size: .78rem; }
  .mc-speaker__text { font-size: 1.12rem; }
  .mc-tray__inner { flex-direction: column; align-items: stretch; }
  .mc-modal__inner { padding: 22px; }
}

/* Focus / reading mode — strip the theatricality, keep the voices */
body.mc-focus .mc-grain,
body.mc-focus .mc-table__orb,
body.mc-focus .mc-seat__react { display: none !important; }
body.mc-focus .mc-candle-glow { opacity: .18 !important; }
body.mc-focus .mc-vignette { background: radial-gradient(120% 100% at 50% 44%, transparent 60%, rgba(0,0,0,.6) 100%); }
body.mc-focus .mc-speaker__text { font-size: clamp(1.2rem, 2vw, 1.6rem); }
body.mc-focus .mc-seat.is-dimmed { opacity: .7; filter: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .12s !important; }
  .mc-grain, .mc-candle-glow, .mc-table__orb { animation: none !important; }
}

/* Print — premium report artifact */
@media print {
  @page { margin: 18mm; }
  body { background: #fff; color: #1a1a1a; }
  .mc-atmosphere, .mc-topbar, .mc-controls, .mc-transcript, .mc-toast-wrap, .no-print { display:none !important; }
  .mc-report { box-shadow:none; border:none; background:#fff; max-width:none; }
  .mc-report__cover { background:#faf6ec; border-bottom:2px solid #b98a44; color:#1a1a1a; }
  .mc-report__cover h1, .mc-report__section h2 { color:#7a5a1f; }
  .mc-report__cover .mc-eyebrow, .mc-eyebrow { color:#9a742f; }
  .mc-report__q, .mc-report__quote { color:#4a4a4a; }
  .mc-report__body { color:#222; }
  .mc-vsec__body, .mc-report__section p { color:#222 !important; }
}
