/* ThinkTorch public landing — a committed dark "operator's console" world.
   Everything is scoped under .tt-landing so it can't leak into the authenticated
   MudBlazor app. Single-theme by intent: the landing paints its own ground and
   colours from tokens, independent of the app's light/dark MudBlazor theme.

   The hero's dependency-chain "ignites" on load via CSS animation only (no JS),
   which is robust under Blazor Server's prerender + circuit reconnect. The final
   lit state is the DEFAULT styling, so reduced-motion and no-animation users see
   the correct end state; the animation just replays the sequence for everyone
   else. */

.tt-landing{
  --ink:#12100D;        /* warm near-black ground */
  --surface:#1C1813;    /* lifted warm charcoal panel */
  --surface-2:#241F19;
  --line:#2E2820;       /* hairline warm divider */
  --line-2:#3B342A;
  --ember:#FF7A2C;      /* the torch flame — the one bold accent */
  --amber:#F6B44A;      /* secondary flame */
  --paper:#F3ECDF;      /* warm off-white text */
  --muted:#A79C88;      /* warm grey, biased to amber */
  --faint:#6F6656;
  --ok:#6FBF8E;         /* status: succeeded */
  --fail:#E5533D;       /* status: failed */
  --running:#F6B44A;    /* status: running */

  --maxw:1140px;
  --step--1:clamp(.78rem,.76rem + .1vw,.85rem);
  --step-0:1rem;
  --step-1:1.16rem;
  --step-2:clamp(1.3rem,1.2rem + .5vw,1.6rem);
  --step-3:clamp(1.7rem,1.4rem + 1.4vw,2.4rem);
  --step-4:clamp(2.4rem,1.7rem + 3.4vw,4.2rem);
  --font-display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --font-body:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"Cascadia Code",monospace;

  /* break out of MainLayout's MudContainer to full-bleed, and eat its py-6 */
  position:relative;
  width:auto;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-top:-24px;
  margin-bottom:-24px;
  overflow-x:clip;

  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:var(--step-0);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  background-image:
    radial-gradient(120% 90% at 82% -10%, rgba(255,122,44,.10), transparent 55%),
    radial-gradient(80% 60% at 0% 0%, rgba(246,180,74,.05), transparent 50%);
}
.tt-landing *{box-sizing:border-box}
.tt-landing a{color:inherit;text-decoration:none}
.tt-landing h1,.tt-landing h2,.tt-landing h3{
  font-family:var(--font-display);font-weight:800;line-height:1.02;
  letter-spacing:-.02em;text-wrap:balance;margin:0}
.tt-landing p{margin:0}
.tt-landing :focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}
.tt-landing .wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.tt-landing .mono{font-family:var(--font-mono)}
.tt-landing .kicker{
  font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ember)}
.tt-landing .tnum{font-variant-numeric:tabular-nums}

/* ---- buttons ---- */
.tt-landing .btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-body);
  font-weight:600;font-size:var(--step--1);padding:.62em 1.05em;border-radius:4px;
  border:1px solid transparent;cursor:pointer;
  transition:transform .12s ease,box-shadow .18s ease,background .18s ease}
.tt-landing .btn-ember{background:linear-gradient(180deg,var(--amber),var(--ember));color:#20140a;
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 24px -10px rgba(255,122,44,.7)}
.tt-landing .btn-ember:hover{transform:translateY(-1px);
  box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 12px 30px -8px rgba(255,122,44,.8)}
.tt-landing .btn-ghost{border-color:var(--line-2);color:var(--paper);background:transparent}
.tt-landing .btn-ghost:hover{border-color:var(--ember);color:var(--paper)}
.tt-landing .btn-lg{font-size:var(--step-0);padding:.8em 1.4em}

/* ---- brand flame (footer wordmark) ---- */
.tt-landing .brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);
  font-weight:800;letter-spacing:-.02em;font-size:1.15rem}
.tt-landing .flame{width:15px;height:19px;position:relative;
  filter:drop-shadow(0 0 6px rgba(255,122,44,.6))}
.tt-landing .flame::before{content:"";position:absolute;inset:0;
  border-radius:52% 52% 50% 50%/62% 62% 38% 38%;
  background:linear-gradient(var(--amber),var(--ember));transform:rotate(-3deg)}

/* ---- hero ---- */
.tt-landing .hero{padding:clamp(48px,7vw,96px) 0 clamp(36px,5vw,64px)}
.tt-landing .hero-grid{display:grid;grid-template-columns:1.02fr .98fr;
  gap:clamp(32px,5vw,64px);align-items:center}
.tt-landing .hero h1{font-size:var(--step-4);max-width:12ch}
.tt-landing .hero h1 .own{color:transparent;
  background:linear-gradient(180deg,var(--amber),var(--ember));
  -webkit-background-clip:text;background-clip:text}
.tt-landing .lede{color:var(--muted);font-size:var(--step-1);margin-top:22px;max-width:46ch}
.tt-landing .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.tt-landing .trust{margin-top:18px;color:var(--faint);font-family:var(--font-mono);
  font-size:var(--step--1);letter-spacing:.02em}
.tt-landing .trust b{color:var(--muted);font-weight:500}

/* ---- run board (signature) ---- */
.tt-landing .board{background:var(--surface);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.8);overflow:hidden}
.tt-landing .board-head{display:flex;align-items:center;gap:10px;padding:12px 16px;
  border-bottom:1px solid var(--line);font-family:var(--font-mono);
  font-size:var(--step--1);color:var(--muted)}
.tt-landing .dotrow{display:flex;gap:6px;margin-right:4px}
.tt-landing .dotrow i{width:9px;height:9px;border-radius:50%;background:var(--line-2)}
.tt-landing .board-title{margin-left:auto;letter-spacing:.04em}
.tt-landing .board-body{padding:8px 6px 4px}
.tt-landing svg.chain{display:block;width:100%;height:auto}
.tt-landing .chain .node rect{fill:var(--surface-2);stroke:var(--line-2);stroke-width:1.4}
.tt-landing .chain .node .name{fill:var(--muted);font-family:var(--font-mono);font-size:12px;font-weight:500}
.tt-landing .chain .node .meta{fill:var(--faint);font-family:var(--font-mono);font-size:9.5px}
.tt-landing .chain .node .dot{fill:var(--line-2)}
.tt-landing .chain .conn{fill:none;stroke:var(--line-2);stroke-width:2;stroke-linecap:round;
  stroke-dasharray:5 7}

/* final lit state = default (correct for reduced-motion / no-animation) */
.tt-landing #n1 rect,.tt-landing #n2 rect,.tt-landing #n3 rect,.tt-landing #n5 rect{stroke:var(--ok)}
.tt-landing #n1 .dot,.tt-landing #n2 .dot,.tt-landing #n3 .dot,.tt-landing #n5 .dot{fill:var(--ok)}
.tt-landing #n4 rect{stroke:var(--fail)}
.tt-landing #n4 .dot{fill:var(--fail)}
.tt-landing #n1 .name,.tt-landing #n2 .name,.tt-landing #n3 .name,
.tt-landing #n4 .name,.tt-landing #n5 .name{fill:var(--paper)}
.tt-landing #c1,.tt-landing #c2{stroke:var(--ember);stroke-dasharray:40 0;
  filter:drop-shadow(0 0 4px rgba(255,122,44,.5))}
.tt-landing #c3{stroke:var(--fail);stroke-dasharray:40 0;
  filter:drop-shadow(0 0 4px rgba(229,83,61,.5))}

/* the ignition sequence, layered on top for motion users */
@keyframes tt-rect-ok{0%{stroke:var(--line-2)}45%{stroke:var(--running)}100%{stroke:var(--ok)}}
@keyframes tt-dot-ok{0%{fill:var(--line-2)}45%{fill:var(--running)}100%{fill:var(--ok)}}
@keyframes tt-rect-fail{0%{stroke:var(--line-2)}55%{stroke:var(--running)}100%{stroke:var(--fail)}}
@keyframes tt-dot-fail{0%{fill:var(--line-2)}55%{fill:var(--running)}100%{fill:var(--fail)}}
@keyframes tt-name{0%{fill:var(--muted)}100%{fill:var(--paper)}}
@keyframes tt-conn{0%{stroke:var(--line-2);stroke-dasharray:5 7;filter:none}
  100%{stroke:var(--ember);stroke-dasharray:40 0;filter:drop-shadow(0 0 4px rgba(255,122,44,.5))}}
@keyframes tt-conn-fail{0%{stroke:var(--line-2);stroke-dasharray:5 7;filter:none}
  100%{stroke:var(--fail);stroke-dasharray:40 0;filter:drop-shadow(0 0 4px rgba(229,83,61,.5))}}

.tt-landing #n1 rect{animation:tt-rect-ok .8s ease .30s both}
.tt-landing #n1 .dot{animation:tt-dot-ok .8s ease .30s both}
.tt-landing #n1 .name{animation:tt-name .8s ease .30s both}
.tt-landing #c1{animation:tt-conn .5s ease 1.00s both}
.tt-landing #n2 rect{animation:tt-rect-ok .8s ease 1.20s both}
.tt-landing #n2 .dot{animation:tt-dot-ok .8s ease 1.20s both}
.tt-landing #n2 .name{animation:tt-name .8s ease 1.20s both}
.tt-landing #c2{animation:tt-conn .5s ease 1.90s both}
.tt-landing #n3 rect{animation:tt-rect-ok .8s ease 2.20s both}
.tt-landing #n3 .dot{animation:tt-dot-ok .8s ease 2.20s both}
.tt-landing #n3 .name{animation:tt-name .8s ease 2.20s both}
.tt-landing #n4 rect{animation:tt-rect-fail .9s ease 1.10s both}
.tt-landing #n4 .dot{animation:tt-dot-fail .9s ease 1.10s both}
.tt-landing #n4 .name{animation:tt-name .9s ease 1.10s both}
.tt-landing #c3{animation:tt-conn-fail .5s ease 2.05s both}
.tt-landing #n5 rect{animation:tt-rect-ok .8s ease 2.45s both}
.tt-landing #n5 .dot{animation:tt-dot-ok .8s ease 2.45s both}
.tt-landing #n5 .name{animation:tt-name .8s ease 2.45s both}

.tt-landing .board-foot{display:flex;align-items:center;gap:8px;padding:11px 16px;
  border-top:1px solid var(--line);font-family:var(--font-mono);
  font-size:var(--step--1);color:var(--muted)}
.tt-landing .pill{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;
  border-radius:20px;border:1px solid var(--line-2)}
.tt-landing .pill.alert{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 45%,var(--line-2))}
.tt-landing .pill .d{width:7px;height:7px;border-radius:50%;background:currentColor}

/* ---- instrument strip ---- */
.tt-landing .strip{border-block:1px solid var(--line);background:var(--surface)}
.tt-landing .strip .wrap{display:flex;flex-wrap:wrap;gap:0;justify-content:space-between}
.tt-landing .stat{flex:1 1 150px;padding:20px 8px;display:flex;flex-direction:column;gap:3px;
  border-left:1px solid var(--line);text-align:left}
.tt-landing .stat:first-child{border-left:0}
.tt-landing .stat .n{font-family:var(--font-mono);font-weight:600;font-size:var(--step-2);color:var(--paper)}
.tt-landing .stat .n.good{color:var(--ok)}
.tt-landing .stat .l{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint)}

/* ---- sections ---- */
.tt-landing section{padding:clamp(52px,7vw,90px) 0}
.tt-landing .head-2{max-width:60ch}
.tt-landing .head-2 h2{font-size:var(--step-3);margin-top:12px}
.tt-landing .head-2 p{color:var(--muted);margin-top:14px;font-size:var(--step-1);max-width:52ch}

.tt-landing .features{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:40px}
.tt-landing .feat{background:var(--surface);padding:26px 22px 30px;display:flex;flex-direction:column;gap:10px}
.tt-landing .feat .fk{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ember);letter-spacing:.04em}
.tt-landing .feat h3{font-family:var(--font-display);font-size:var(--step-1);font-weight:700;letter-spacing:-.01em}
.tt-landing .feat p{color:var(--muted);font-size:var(--step--1);line-height:1.55}

/* ---- comparison ---- */
.tt-landing .tablewrap{margin-top:40px;overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.tt-landing table{border-collapse:collapse;width:100%;min-width:620px;font-size:var(--step--1)}
.tt-landing th,.tt-landing td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top}
.tt-landing thead th{font-family:var(--font-mono);font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);font-size:.74rem;background:var(--surface)}
.tt-landing tbody th{font-weight:600;color:var(--paper);font-family:var(--font-body)}
.tt-landing td{color:var(--muted)}
.tt-landing .col-us{background:color-mix(in srgb,var(--ember) 9%,var(--surface));color:var(--paper)}
.tt-landing thead .col-us{background:color-mix(in srgb,var(--ember) 16%,var(--surface));color:var(--paper)}
.tt-landing .col-us.tval{color:var(--paper)}
.tt-landing tr:last-child td,.tt-landing tr:last-child th{border-bottom:0}
.tt-landing .us-mark{color:var(--ember)}

/* ---- steps ---- */
.tt-landing .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px}
.tt-landing .step{border-top:2px solid var(--line-2);padding-top:18px}
.tt-landing .step .num{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ember);letter-spacing:.1em}
.tt-landing .step h3{font-family:var(--font-display);font-size:var(--step-1);font-weight:700;margin-top:10px}
.tt-landing .step p{color:var(--muted);font-size:var(--step--1);margin-top:8px;line-height:1.55}

/* ---- final cta ---- */
.tt-landing .cta-band{margin:clamp(40px,6vw,72px) 0;border:1px solid var(--line-2);border-radius:14px;
  background:
    radial-gradient(120% 160% at 88% 0%, rgba(255,122,44,.16), transparent 60%),
    var(--surface);
  padding:clamp(34px,5vw,56px);display:flex;flex-wrap:wrap;align-items:center;gap:24px;
  justify-content:space-between}
.tt-landing .cta-band h2{font-size:var(--step-3);max-width:16ch}
.tt-landing .cta-band p{color:var(--muted);margin-top:10px}

/* ---- landing footer ---- */
.tt-landing .lfoot{border-top:1px solid var(--line);padding:26px 0;color:var(--faint);font-size:var(--step--1)}
.tt-landing .lfoot .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.tt-landing .lfoot a{color:var(--muted)}
.tt-landing .lfoot a:hover{color:var(--paper)}
.tt-landing .foot-links{display:flex;gap:18px;font-family:var(--font-mono)}

/* ---- use cases ---- */
.tt-landing .usecases{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:40px}
.tt-landing .uc{background:var(--surface);padding:24px 22px 28px;display:flex;flex-direction:column;gap:9px}
.tt-landing .uc .fk{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ember);letter-spacing:.04em}
.tt-landing .uc h3{font-family:var(--font-display);font-size:var(--step-1);font-weight:700;letter-spacing:-.01em}
.tt-landing .uc p{color:var(--muted);font-size:var(--step--1);line-height:1.55}

/* ---- platforms ---- */
.tt-landing .platforms{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.tt-landing .plat{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);
  font-size:var(--step--1);padding:.5em 1em;border-radius:6px;border:1px solid var(--line-2);color:var(--muted)}
.tt-landing .plat.on{color:var(--paper);border-color:color-mix(in srgb,var(--ember) 45%,var(--line-2))}
.tt-landing .plat .d{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.tt-landing .plat.on .d{background:var(--ok)}

/* ---- pricing ---- */
.tt-landing .plans{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}
.tt-landing .plan{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px 20px;
  display:flex;flex-direction:column}
.tt-landing .plan.popular{border-color:color-mix(in srgb,var(--ember) 55%,var(--line));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--ember) 40%,transparent),0 24px 50px -30px rgba(255,122,44,.5)}
.tt-landing .plan-name{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:var(--step-1)}
.tt-landing .badge{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  color:#20140a;background:linear-gradient(180deg,var(--amber),var(--ember));padding:2px 7px;border-radius:20px}
.tt-landing .price{display:flex;align-items:baseline;gap:4px;margin:14px 0 2px}
.tt-landing .price .amt{font-family:var(--font-mono);font-weight:600;font-size:var(--step-3);color:var(--paper)}
.tt-landing .price .per{font-family:var(--font-mono);font-size:var(--step--1);color:var(--faint)}
.tt-landing .plan .note{font-family:var(--font-mono);font-size:.72rem;color:var(--ok);min-height:1.1em}
.tt-landing .plan .tag{color:var(--muted);font-size:var(--step--1);margin:8px 0 14px;min-height:2.6em}
.tt-landing .plan ul{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}
.tt-landing .plan li{display:flex;align-items:center;gap:9px;font-size:var(--step--1);color:var(--muted);font-family:var(--font-mono)}
.tt-landing .plan li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none}
.tt-landing .plan .btn{justify-content:center;width:100%}
.tt-landing .price-note{text-align:center;color:var(--faint);font-family:var(--font-mono);font-size:var(--step--1);margin-top:22px}

/* ---- faq ---- */
.tt-landing .faq{margin-top:36px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.tt-landing .faq-item{border-top:1px solid var(--line)}
.tt-landing .faq-item:first-child{border-top:0}
.tt-landing .faq-item summary{cursor:pointer;list-style:none;padding:18px 20px;font-family:var(--font-display);
  font-weight:600;font-size:var(--step-0);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:12px}
.tt-landing .faq-item summary::-webkit-details-marker{display:none}
.tt-landing .faq-item summary::after{content:"+";color:var(--ember);font-family:var(--font-mono);font-size:1.25em;line-height:1}
.tt-landing .faq-item[open] summary::after{content:"\2013"}
.tt-landing .faq-item p{color:var(--muted);font-size:var(--step--1);line-height:1.6;padding:0 20px 18px}

@media (max-width:880px){
  .tt-landing .hero-grid{grid-template-columns:1fr}
  .tt-landing .features{grid-template-columns:repeat(2,1fr)}
  .tt-landing .steps{grid-template-columns:1fr}
  .tt-landing .usecases{grid-template-columns:repeat(2,1fr)}
  .tt-landing .plans{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:520px){
  .tt-landing .features{grid-template-columns:1fr}
  .tt-landing .usecases{grid-template-columns:1fr}
  .tt-landing .plans{grid-template-columns:1fr}
  .tt-landing .stat{flex-basis:50%;border-left:0}
}
@media (prefers-reduced-motion:reduce){
  .tt-landing #n1 rect,.tt-landing #n2 rect,.tt-landing #n3 rect,.tt-landing #n4 rect,.tt-landing #n5 rect,
  .tt-landing #n1 .dot,.tt-landing #n2 .dot,.tt-landing #n3 .dot,.tt-landing #n4 .dot,.tt-landing #n5 .dot,
  .tt-landing #n1 .name,.tt-landing #n2 .name,.tt-landing #n3 .name,.tt-landing #n4 .name,.tt-landing #n5 .name,
  .tt-landing #c1,.tt-landing #c2,.tt-landing #c3{animation:none}
  .tt-landing .btn,.tt-landing .btn:hover{transition:none;transform:none}
}
