/* ---------- DeepTalk theme ---------- */
:root{
  --bg:#12101f;
  --bg2:#1a1530;
  --ink:#f4f0ff;
  --ink-soft:#c9c2e0;
  --ink-mute:#8f88ad;
  --card:rgba(255,255,255,.055);
  --card-brd:rgba(255,255,255,.12);
  --chip:rgba(255,255,255,.10);
  --accent:#ff7aa8;
  --accent2:#8f7bff;
  --accent3:#57e6c8;
  --glow:rgba(255,122,168,.5);
  --shadow:0 30px 80px -30px rgba(0,0,0,.75);
  --radius:26px;
  --maxw:660px;
}
:root[data-theme="dawn"]{
  --bg:#fff4ee;
  --bg2:#ffe9f2;
  --ink:#2a2140;
  --ink-soft:#4a4066;
  --ink-mute:#8a7fa6;
  --card:rgba(255,255,255,.62);
  --card-brd:rgba(120,90,160,.16);
  --chip:rgba(120,90,160,.10);
  --accent:#ff5c93;
  --accent2:#7b5cff;
  --accent3:#12b48d;
  --glow:rgba(255,92,147,.35);
  --shadow:0 30px 70px -34px rgba(120,80,140,.45);
}
:root[data-theme="forest"]{
  --bg:#0c1512;
  --bg2:#0f2019;
  --ink:#eafff4;
  --ink-soft:#bfe6d3;
  --ink-mute:#7fa992;
  --card:rgba(255,255,255,.05);
  --card-brd:rgba(180,255,220,.13);
  --chip:rgba(180,255,220,.10);
  --accent:#5fe0a8;
  --accent2:#7fd6ff;
  --accent3:#ffd479;
  --glow:rgba(95,224,168,.4);
  --shadow:0 30px 80px -30px rgba(0,0,0,.7);
}

*{box-sizing:border-box}
/* the [hidden] attribute must always win over class display rules below */
[hidden]{display:none !important}
html,body{margin:0;padding:0}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--ink);
  min-height:100dvh;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  transition:background .6s ease,color .6s ease;
  -webkit-font-smoothing:antialiased;
}

/* ---------- Aurora background ---------- */
.aurora{position:fixed;inset:0;z-index:-2;overflow:hidden;background:
  radial-gradient(120% 120% at 50% -10%,var(--bg2),var(--bg) 60%);}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;
  mix-blend-mode:screen;animation:drift 26s ease-in-out infinite;}
:root[data-theme="dawn"] .blob{mix-blend-mode:multiply;opacity:.5}
.b1{width:46vmax;height:46vmax;left:-12vmax;top:-14vmax;background:var(--accent);}
.b2{width:40vmax;height:40vmax;right:-14vmax;top:6vmax;background:var(--accent2);animation-delay:-8s;}
.b3{width:38vmax;height:38vmax;left:18vmax;bottom:-18vmax;background:var(--accent3);animation-delay:-16s;}
@keyframes drift{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(6vmax,4vmax) scale(1.12)}
  66%{transform:translate(-5vmax,3vmax) scale(.92)}
}
.grain{position:absolute;inset:0;opacity:.05;pointer-events:none;
  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='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
@media (prefers-reduced-motion:reduce){.blob{animation:none}}

/* ---------- Topbar ---------- */
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:18px clamp(16px,4vw,34px);gap:12px;}
.brand{display:flex;align-items:center;gap:9px;font-family:'Fraunces',serif;}
.brand-mark{font-size:1.35rem;filter:drop-shadow(0 2px 8px var(--glow))}
.brand-name{font-size:1.3rem;font-weight:400;letter-spacing:.3px}
.brand-name b{font-weight:600;background:linear-gradient(90deg,var(--accent),var(--accent2));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.topbar-actions{display:flex;gap:8px}

/* ---------- Pills / buttons ---------- */
.pill{font-family:inherit;font-size:.9rem;font-weight:600;color:var(--ink);
  border:1px solid var(--card-brd);background:var(--card);backdrop-filter:blur(12px);
  padding:.6em 1.05em;border-radius:999px;cursor:pointer;display:inline-flex;
  align-items:center;gap:.4em;transition:transform .15s ease,background .25s,border-color .25s,box-shadow .25s;}
.pill:hover{transform:translateY(-2px);border-color:var(--accent)}
.pill:active{transform:translateY(0) scale(.97)}
.pill.ghost{background:var(--chip)}
.pill.primary{background:linear-gradient(120deg,var(--accent),var(--accent2));
  border-color:transparent;color:#fff;box-shadow:0 12px 30px -10px var(--glow)}
.pill.primary:hover{box-shadow:0 16px 40px -10px var(--glow)}
.pill.tiny{font-size:.8rem;padding:.5em .85em}
.flame{filter:drop-shadow(0 0 6px #ff8a3d)}

/* ---------- Stage ---------- */
.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:20px;padding:10px clamp(16px,4vw,30px) 30px;width:100%;}
.date-strip{display:flex;align-items:center;gap:10px;color:var(--ink-mute);
  font-size:.82rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;}
.date-strip .dot{opacity:.5}

/* ---------- Card ---------- */
.card{width:100%;max-width:var(--maxw);position:relative;}
.card-inner{background:var(--card);border:1px solid var(--card-brd);border-radius:var(--radius);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow);
  padding:clamp(24px,4.5vw,42px);position:relative;overflow:hidden;}
.card-inner::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(140deg,var(--accent),transparent 40%,transparent 60%,var(--accent2));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;pointer-events:none;}
.card.swap .card-inner{animation:cardIn .55s cubic-bezier(.2,.8,.2,1)}
@keyframes cardIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}

.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:18px;flex-wrap:wrap}
.chip{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink);background:var(--chip);border:1px solid var(--card-brd);
  padding:.42em .8em;border-radius:999px;white-space:nowrap;}
.spark{font-size:.82rem;color:var(--ink-soft);font-style:italic;line-height:1.4;
  flex:1;min-width:200px;text-align:right;opacity:.9}

.card-title{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.5rem,4.6vw,2.35rem);
  line-height:1.12;margin:.1em 0 .5em;letter-spacing:-.01em}
.card-prompt{font-size:clamp(1.05rem,2.6vw,1.28rem);line-height:1.55;color:var(--ink-soft);
  margin:0 0 22px;font-weight:400}

/* Follow-ups */
.follow{margin-top:6px}
.follow-toggle{font-family:inherit;font-size:.9rem;font-weight:600;color:var(--accent);
  background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.4em;padding:6px 0}
.follow-toggle .chev{transition:transform .3s ease}
.follow-toggle[aria-expanded="true"] .chev{transform:rotate(180deg)}
.follow-list{list-style:none;margin:10px 0 4px;padding:0;display:grid;gap:10px}
.follow-list li{position:relative;padding-left:20px;color:var(--ink-soft);line-height:1.5;
  font-size:1rem;animation:fadeUp .4s ease both}
.follow-list li::before{content:"↳";position:absolute;left:0;color:var(--accent2);font-weight:700}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Resources */
.resources{margin-top:24px;padding-top:20px;border-top:1px dashed var(--card-brd)}
.resources-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;
  color:var(--ink-mute);margin-bottom:12px;font-weight:600}
.resource-list{display:flex;flex-wrap:wrap;gap:9px}
.res{display:inline-flex;align-items:center;gap:.5em;font-size:.86rem;font-weight:500;
  color:var(--ink);text-decoration:none;background:var(--chip);border:1px solid var(--card-brd);
  padding:.55em .85em;border-radius:12px;transition:transform .14s,border-color .2s,background .2s;max-width:100%}
.res:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--card)}
.res .res-ico{font-size:1rem;flex:none}
.res .res-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- Controls ---------- */
.controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:center}
.secondary-controls{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;align-items:center;
  color:var(--ink-mute)}
.filter{display:flex;align-items:center;gap:8px}
.filter-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);font-weight:600}
.select{font-family:inherit;font-size:.86rem;font-weight:600;color:var(--ink);
  background:var(--chip);border:1px solid var(--card-brd);border-radius:999px;
  padding:.5em 2em .5em .9em;cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9em center;}
.select option{background:var(--bg2);color:var(--ink)}

/* ---------- Run-out overlay ---------- */
.runout{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(10,8,20,.72);backdrop-filter:blur(8px);animation:fadeIn .4s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.runout-card{max-width:460px;text-align:center;background:var(--card);border:1px solid var(--card-brd);
  border-radius:var(--radius);padding:36px 30px;box-shadow:var(--shadow);backdrop-filter:blur(20px)}
.runout-emoji{font-size:2.6rem;margin-bottom:8px}
.runout-card h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;margin:.2em 0 .5em;line-height:1.2}
.runout-card p{color:var(--ink-soft);line-height:1.55;margin:.5em 0}
.runout-hint{font-size:.9rem;color:var(--ink-mute)}
.runout-card .pill{margin-top:16px}

/* ---------- Footer ---------- */
.footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:16px clamp(16px,4vw,34px);color:var(--ink-mute);font-size:.78rem}
.progress-mini{font-variant-numeric:tabular-nums}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--bg);font-weight:600;font-size:.86rem;padding:.7em 1.2em;
  border-radius:999px;opacity:0;pointer-events:none;transition:.3s ease;z-index:60}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:520px){
  .spark{display:none}
  .secondary-controls{gap:10px}
  .footer span:first-child{display:none}
}
