/* Home page only: hero demo stage, pipeline strip, reviews marquee. Everything scoped to avoid collisions with site.css. */
.home-hero{gap:22px}
.home-hero h1{font-size:clamp(46px,8.6vw,96px);letter-spacing:-.05em;line-height:.98}

/* ---------- demo stage ---------- */
.stage{position:relative;width:100%;max-width:920px;margin-top:40px;display:grid;grid-template-columns:minmax(0,380px) minmax(56px,1fr) minmax(0,360px);align-items:center;text-align:left}
.stage .trail{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.stage .trail path{fill:none;stroke:var(--ink);stroke-opacity:.24;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1.2 7.3;animation:march .9s linear infinite}
@keyframes march{to{stroke-dashoffset:-8.5}}
.dcard{position:relative;z-index:1;grid-column:1;background:#fff;border-radius:22px;padding:20px;display:grid;gap:18px;box-shadow:0 0 0 1px var(--line),var(--shadow);transition:box-shadow .4s ease}
.dcard.ok{box-shadow:0 0 0 1px var(--green-line),0 16px 40px -14px rgba(22,160,90,.4)}
.dcard .ctop{display:flex;align-items:center;gap:14px}
.dcard .slot{position:relative;width:64px;height:64px;flex:none;border-radius:16px;background:var(--soft);box-shadow:inset 0 0 0 1.5px #dcdee2}
.stage .icon{display:block;width:64px;height:64px}
.dcard .meta{display:grid;gap:2px;min-width:0;flex:1}
.dcard .name{font-weight:600;font-size:17px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcard .sub{font:500 12.5px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.dcard .sub.rej{color:var(--red)} .dcard .sub.rev{color:var(--amber)} .dcard .sub.ok{color:var(--green)}
.dchip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 9px;border-radius:999px;font-weight:600;font-size:13px;white-space:nowrap;flex:none;transition:background-color .3s,color .3s}
.dchip svg{display:none;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.dchip.rej{background:var(--red-soft);color:var(--red)} .dchip.rej .i-x{display:block}
.dchip.rev{background:var(--amber-soft);color:var(--amber)} .dchip.rev .i-clock{display:block}
.dchip.ok{background:var(--green-soft);color:var(--green)} .dchip.ok .i-ok{display:block}
.dchip.ok .i-ok path{stroke-dasharray:14;stroke-dashoffset:14;animation:drawpath .35s .05s ease-out forwards}
@keyframes drawpath{to{stroke-dashoffset:0}}
.dcard .seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dcard .seg i{height:6px;border-radius:99px;background:#eceef1;transition:background-color .35s}
.dcard .seg[data-s=rej] i:first-child{background:var(--red)}
.dcard .seg[data-s=rev] i:nth-child(-n+2){background:var(--amber)}
.dcard .seg[data-s=ok] i{background:var(--green)}

/* the terminal */
.term{position:relative;z-index:1;grid-column:3;width:100%;background:var(--term);color:var(--t-text);border-radius:20px;overflow:hidden;box-shadow:0 0 0 1px var(--term),0 26px 50px -20px rgba(10,11,13,.5);transition:transform .3s ease,box-shadow .3s ease}
.term.hot{transform:scale(1.025);box-shadow:0 0 0 1px var(--term),0 0 0 6px rgba(47,107,255,.16),0 30px 56px -20px rgba(10,11,13,.55)}
.term.run{box-shadow:0 0 0 1px var(--term),0 0 0 6px rgba(74,222,128,.12),0 26px 50px -20px rgba(10,11,13,.5)}
.term .thead{display:flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.07)}
.term .thead i{width:9px;height:9px;border-radius:50%;background:#2b2d33}
.term .thead .tt{flex:1;text-align:center;font:500 12px var(--mono);color:#7d8189;margin-right:42px}
.term .thead .live{width:7px;height:7px;border-radius:50%;background:#3a3d43;transition:background-color .3s,box-shadow .3s}
.term.run .thead .live{background:var(--t-green);box-shadow:0 0 0 3px rgba(74,222,128,.18)}
.term .ttarget{display:flex;align-items:center;gap:14px;padding:14px;border-bottom:1px solid rgba(255,255,255,.07)}
.term .tslot{width:64px;height:64px;flex:none;border-radius:16px;border:1.5px dashed rgba(255,255,255,.2)}
.term .tmeta{display:grid;gap:2px;min-width:0}
.term .tname{font:600 13.5px var(--mono);color:#fff}
.term .tstat{font:500 12px var(--mono);color:#7d8189;transition:color .3s}
.term .tstat.fix{color:var(--t-blue)} .term .tstat.done{color:var(--t-green)}
.term .tbody{position:relative;padding:12px 16px 14px;font:500 12px/20px var(--mono)}
.term .ln{position:relative;height:20px;white-space:pre}
.term .tw{display:inline-block;width:0;height:20px;overflow:hidden;white-space:pre;vertical-align:top}
.term .st{position:absolute;right:0;top:0;width:16px;height:20px;display:grid;place-items:center}
.term .st .sp{grid-area:1/1;width:11px;height:11px;border-radius:50%;border:1.6px solid #3d4048;border-top-color:#e6e7ea;opacity:0;animation:spin .6s linear infinite}
.term .st .ok{grid-area:1/1;color:var(--t-green);font-weight:600;opacity:0}
.c-dim{color:var(--t-dim)} .c-w{color:#fff} .c-blue{color:var(--t-blue)} .c-red{color:var(--t-red)} .c-green{color:var(--t-green)}
.term .bar2{display:inline-block;vertical-align:middle;width:92px;height:6px;margin:0 0 2px 10px;border-radius:9px;background:#24262b;overflow:hidden;opacity:0}
.term .bar2 b{display:block;width:0;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--t-blue),var(--t-green))}
.term .pct{margin-left:8px;color:#7d8189;opacity:0}
.term .idle{position:absolute;left:16px;top:12px;color:var(--t-dim)}
.term .caret{display:inline-block;width:7px;height:14px;margin-left:4px;vertical-align:-2px;background:#d4d6da;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* moving parts */
.dapp,.dcursor,.dripple,.dpulse{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}
.dapp{z-index:3;width:64px;height:64px;display:none;filter:drop-shadow(0 6px 10px rgba(242,56,90,.22));transition:filter .25s ease}
.dapp.lifted{filter:drop-shadow(0 20px 22px rgba(10,11,13,.28))}
.dapp .scanwrap{position:absolute;inset:0;border-radius:16px;overflow:hidden}
.dapp .scan{position:absolute;left:0;right:0;top:0;height:2px;background:#fff;box-shadow:0 0 10px 3px rgba(127,176,255,.9);opacity:0}
.dapp .okbadge{position:absolute;right:-8px;top:-8px;width:24px;height:24px;border-radius:50%;background:var(--green);border:2px solid #fff;display:grid;place-items:center;opacity:0;transform:scale(.4)}
.dapp .okbadge svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.dcursor{z-index:5;width:24px;height:24px;opacity:0;filter:drop-shadow(0 2px 3px rgba(10,11,13,.35))}
.dcursor svg{display:block;width:24px;height:24px}
.dripple{z-index:4;width:28px;height:28px;border-radius:50%;background:var(--ink);opacity:0}
.dpulse{z-index:0;border-radius:22px;box-shadow:0 0 0 2px var(--green);opacity:0}
.stage.js .dapp{display:block}
.stage.js .slot .icon{visibility:hidden}

/* ---------- tools strip ---------- */
.works{padding-block:72px 0;display:grid;gap:22px;justify-items:center}
.works .marquee{width:100%;padding-block:14px}
.works .tools{display:flex;align-items:center;gap:12px;margin:0;padding:0;list-style:none}
.works .tool-chip{transition:box-shadow .2s ease,transform .2s ease}
.works .tool-chip:hover{transform:translateY(-1px);box-shadow:0 0 0 1px #d8dbe0,0 8px 18px -10px rgba(10,11,13,.25)}

/* ---------- pipeline strip ---------- */
.pipe{position:relative;background:var(--term);color:var(--t-text);border-radius:24px;overflow:hidden;box-shadow:0 0 0 1px var(--term),0 30px 60px -28px rgba(10,11,13,.55)}
.pipe .ptrack{position:absolute;left:0;right:0;top:0;height:3px;background:#1b1d22;z-index:2}
.pipe .ptrack i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--t-blue),var(--t-green));box-shadow:0 0 14px rgba(127,176,255,.55)}
.pipe .cols{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.pipe .col{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:18px;padding:28px 22px 22px;border-left:1px solid rgba(255,255,255,.07);transition:background-color .35s ease}
.pipe .col:first-child{border-left:0}
.pipe .col.on{background:#111318}
.pipe .chead{display:flex;align-items:flex-start;gap:12px}
.pipe .node{position:relative;flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;background:#15171b;box-shadow:inset 0 0 0 1.5px #383b42;display:grid;place-items:center;transition:background-color .3s,box-shadow .3s}
.pipe .node svg{width:12px;height:12px;fill:none;stroke:#06210f;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .2s}
.pipe .node::after{content:"";position:absolute;inset:-5px;border-radius:50%;box-shadow:0 0 0 2px var(--t-blue);opacity:0}
.pipe .col.on .node{background:#0c0d10;box-shadow:inset 0 0 0 2px #fff}
.pipe .col.on .node::after{animation:nodeping 1.2s ease-out infinite}
@keyframes nodeping{0%{opacity:.75;transform:scale(.8)}100%{opacity:0;transform:scale(1.45)}}
.pipe .col.done .node{background:var(--t-green);box-shadow:none}
.pipe .col.done .node svg{opacity:1}
.pipe .ctext{display:grid;gap:3px;min-width:0}
.pipe .cnum{font:600 11px var(--mono);letter-spacing:.12em;color:#6b6f78}
.pipe .ctext h3{font-size:19px;line-height:1.2;letter-spacing:-.025em;color:#e9eaec}
.pipe .ctext p{font-size:13.5px;color:#8b9098}
.pipe .src{margin:0;padding:2px 0;min-height:118px;background:none;font:500 12.5px/22px var(--mono);overflow:hidden}
.pipe .src .ln{display:flex;height:22px;padding-right:8px;border-radius:6px;white-space:pre}
.pipe .src .gut{flex:none;width:34px;padding-right:12px;text-align:right;color:#3a3e46;user-select:none}
.pipe .src .tw{display:inline-block;width:0;height:22px;overflow:hidden;white-space:pre;vertical-align:top}
.t-k{color:#c9a7ff}.t-f{color:#6fd3ff}.t-s{color:#a6e3a1}.t-n{color:#ffb36b}.t-p{color:#8fb8ff}.t-c{color:#5d626b}.t-o{color:#8a9099}.t-e{color:#ff8a8d}.t-g{color:#4ade80}.t-w{color:#e6e7ea}
.pipe .cfoot{min-height:36px;display:flex;align-items:center}
.pipe .ichip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 13px 0 11px;border-radius:999px;background:rgba(255,138,141,.12);color:var(--t-red);font:600 12.5px var(--mono);white-space:nowrap;opacity:0}
.pipe .ichip i{width:7px;height:7px;border-radius:50%;background:var(--t-red);box-shadow:0 0 0 3px rgba(255,138,141,.18)}
.pipe .build{display:flex;align-items:center;gap:10px;width:100%;font:500 12px var(--mono);opacity:0}
.pipe .bbar{flex:1;height:6px;border-radius:9px;background:#24262b;overflow:hidden}
.pipe .bbar b{display:block;width:0;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--t-blue),var(--t-green))}
.pipe .bok{color:var(--t-green);font-weight:600;opacity:0}
.pipe .abadge{position:relative;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 16px 0 11px;border-radius:999px;background:var(--t-green);color:#06210f;font-weight:700;font-size:14px;opacity:0}
.pipe .abadge svg{width:18px;height:18px;fill:none;stroke:#06210f;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.pipe .abadge svg path{stroke-dasharray:14;stroke-dashoffset:14}
.pipe .aping{position:absolute;inset:0;border-radius:999px;box-shadow:0 0 0 2px var(--t-green);opacity:0}
@media (max-width:900px){
  .pipe .col{padding:22px 14px 16px;gap:14px}
  .pipe .chead{gap:9px}
  .pipe .node{width:18px;height:18px}
  .pipe .node svg{width:10px;height:10px}
  .pipe .ctext h3{font-size:16px}
  .pipe .ctext p{font-size:12.5px}
  .pipe .src{min-height:104px;font-size:11.5px;line-height:20px}
  .pipe .src .ln,.pipe .src .tw{height:20px}
  .pipe .src .gut{width:22px;padding-right:8px}
  .pipe .build{gap:8px;font-size:11px}
  .pipe .ichip{font-size:11.5px}
  .pipe .abadge{height:32px;font-size:13px}
}
@media (max-width:560px){
  .pipe .cols{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .pipe .cols::-webkit-scrollbar{display:none}
  .pipe .col{scroll-snap-align:start}
}

/* ---------- why / value grid ---------- */
.value{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.value .card{gap:14px}
.value .card p{color:var(--muted);font-size:14.5px;line-height:1.55}
.value .card h3{font-size:18px}

/* ---------- home pricing ---------- */
.home-price{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:stretch}
.home-price .big{display:grid;gap:18px;padding:30px;border-radius:var(--r-card);background:var(--term);color:#fff;box-shadow:0 0 0 1px var(--term),0 30px 60px -28px rgba(10,11,13,.55)}
.home-price .big .amount{font-size:clamp(56px,8vw,84px);font-weight:700;letter-spacing:-.06em;line-height:.95;font-variant-numeric:tabular-nums}
.home-price .big .amount small{font-size:18px;font-weight:600;letter-spacing:0;color:#9ca0a8;margin-left:6px}
.home-price .big p{color:#b5b9c1;font-size:15px}
.home-price .big ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:14.5px;color:#e9eaec}
.home-price .big li{display:flex;gap:9px;align-items:flex-start}
.home-price .big li svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--t-green)}
.home-price .side{display:grid;gap:14px}
.home-price .mini{display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:center;padding:20px 22px;border-radius:var(--r-card);background:#fff;box-shadow:0 0 0 1px var(--line),var(--shadow);text-decoration:none;color:inherit;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.home-price .mini:hover{transform:translateY(-2px);box-shadow:0 0 0 1px var(--line-strong),var(--shadow-lg)}
.home-price .mini b{font-size:17px;letter-spacing:-.02em}
.home-price .mini .amt{grid-row:1/3;font-size:26px;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums;text-align:right}
.home-price .mini .amt small{font-size:13px;font-weight:600;letter-spacing:0;color:var(--muted)}
.home-price .mini p{color:var(--muted);font-size:14px}

/* ---------- guarantee ---------- */
.guar{display:flex;align-items:center;gap:24px;padding:28px 32px}
.guar .shield{width:64px;height:64px;flex:none;border-radius:18px;background:var(--green-soft);color:var(--green);display:grid;place-items:center}
.guar .shield svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.guar .shield .sc{stroke-dasharray:12;stroke-dashoffset:12;animation:drawpath .5s .3s ease-out forwards}
.guar h2{font-size:clamp(23px,3vw,30px)}
.guar p{margin-top:6px;color:var(--muted);font-size:15px}
.guar .tlink{color:var(--ink);font-weight:500;text-underline-offset:3px;white-space:nowrap}

/* ---------- reviews ---------- */
.reviews{display:grid;gap:28px}
.rmarq{overflow:hidden;padding-block:6px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.rtrack{display:flex;gap:16px;width:max-content;animation:slide 70s linear infinite}
.rmarq.rev .rtrack{animation-direction:reverse}
.rmarq:hover .rtrack{animation-play-state:paused}
.rcard{flex:none;width:330px;margin:0;padding:20px;border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--line),var(--shadow);display:grid;gap:14px;align-content:start}
.rcard .rtop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rcard .stars{display:flex;gap:2px}
.rcard .stars svg{width:16px;height:16px;fill:#f5a524}
.rcard .stars svg.off{fill:#e3e5e9}
.rcard blockquote{margin:0;color:#2b2f36;font-size:15px;line-height:1.55}
.rcard figcaption{display:flex;align-items:center;gap:10px}
.rcard .av{width:34px;height:34px;flex:none;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:600}
.rcard b{display:block;font-size:14px;letter-spacing:-.01em}
.rcard small{display:block;color:var(--faint);font:500 12px var(--mono)}
.rcard .va{margin-left:auto;color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}
.rcard .disc{margin:0;color:var(--faint);font-size:12px}

/* ---------- final ---------- */
.final{padding-block:112px 0;display:grid;justify-items:center;gap:24px;text-align:center}
.final h2{font-size:clamp(36px,5.6vw,62px)}

@media (max-width:900px){.value{grid-template-columns:1fr}.home-price{grid-template-columns:1fr}}
@media (max-width:780px){
  .stage{max-width:440px;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 84px auto}
  .dcard{grid-column:1;grid-row:1}
  .term{grid-column:1;grid-row:3}
}
@media (max-width:640px){
  .works{padding-block:56px 0}
  .guar{flex-direction:column;align-items:flex-start;padding:24px}
  .rcard{width:280px}
  .final{padding-block:88px 0}
}
@media (prefers-reduced-motion:reduce){
  .rtrack,.works .track{animation:none!important}
  .rmarq,.works .marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}
  .pipe .col .node::after{display:none}
}
