/* Automation Lab · design A "Control Room" (same tokens as the portfolio hub). */
:root{
  --bg:#08090A; --panel:#111214; --panel2:#16171a; --line:#202226; --grid:#1a1c1f; --fg:#ECE8E1; --muted:#8B8880; --dimtx:#55534e;
  --acc:#FF5A1F; --onacc:#0A0A0A; --ok:#3DDC97;
  --wire:#2c2f35; --wire2:#34373d; --navbg:rgba(8,9,10,.76); --glow:transparent;
  --k-trigger:#FF5A1F; --k-ai:#B39DFF; --k-logic:#7FA7D9; --k-decide:#E8B04A; --k-comm:#3DDC97; --k-wait:#6b6964;
  --node:#0f1012; --nodetx:#DDD9D1;
  --code-bg:#060708; --code-fg:#D7D2C8;
  --sans:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"Geist Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --pad:clamp(16px,4vw,56px); --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
[data-theme=light]{
  --bg:#EDECE7; --panel:#E3E2DA; --panel2:#DAD9D0; --line:#D2D0C6; --grid:#E0DED6; --fg:#0D0D0D; --muted:#66655F; --dimtx:#A8A69D;
  --acc:#E8480F; --onacc:#0D0D0D; --ok:#169A5C;
  --wire:#BDBBB1; --wire2:#A9A79D; --navbg:rgba(237,236,231,.84); --glow:rgba(232,72,15,.15);
  --k-trigger:#E8480F; --k-ai:#7C5CE0; --k-logic:#3F6FA8; --k-decide:#B07A12; --k-comm:#169A5C; --k-wait:#8a877f;
  --node:#F4F3EF; --nodetx:#1a1a18;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background-color .5s,color .5s}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,dl,dd,ol,ul{margin:0}
::selection{background:var(--acc);color:var(--onacc)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:4px}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.skip{position:absolute;left:-999px;top:10px;z-index:200;background:var(--acc);color:var(--onacc);padding:10px 14px;border-radius:6px}.skip:focus{left:10px}
em{font-style:normal;color:var(--acc)}

/* reveal kit */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.js .w>span{display:inline-block;transform:translateY(108%);transition:transform 1.1s var(--ease)}
.js .in .w>span{transform:none}
.js [data-rv],.js [data-stg]>*{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.js [data-rv].in,.js [data-stg].in>*{opacity:1;transform:none}
.js.no-io [data-rv],.js.no-io [data-stg]>*,.js.no-io .w>span{opacity:1;transform:none}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:60;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px var(--pad);border-bottom:1px solid transparent;transition:background-color .4s,border-color .4s}
.scrolled .nav{background:var(--navbg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.logo{display:flex;align-items:center;gap:6px;font-weight:600;font-size:13px;letter-spacing:.08em;white-space:nowrap}
.logo i{width:8px;height:14px;background:var(--acc);animation:blink 1.1s steps(1) infinite}
.logo-sub{color:var(--muted);margin-left:4px}
.chips{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0}
.chips::-webkit-scrollbar{display:none}
.chips a{padding:7px 12px;border-radius:6px;color:var(--muted);white-space:nowrap;font-size:11px;transition:color .3s,background-color .3s}
.chips a:hover{color:var(--fg)}
.chips a.on{color:var(--onacc);background:var(--acc)}
.nav-r{display:flex;align-items:center;gap:16px}
.back{color:var(--muted);white-space:nowrap;transition:color .3s}.back:hover{color:var(--fg)}
.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--wire2);background:none;color:var(--fg);cursor:pointer;display:grid;place-items:center;padding:0;flex:none;transition:border-color .3s,transform .5s var(--ease)}
.icon-btn:hover{border-color:var(--acc);transform:rotate(30deg)}
#themeBtn .sun{display:none}[data-theme=light] #themeBtn .sun{display:block}[data-theme=light] #themeBtn .moon{display:none}
@keyframes blink{50%{opacity:0}}
@keyframes ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 60%,transparent)}70%,100%{box-shadow:0 0 0 8px transparent}}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);animation:ping 2s infinite;vertical-align:1px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:16px 22px;border-radius:6px;border:1px solid var(--acc);background:var(--acc);color:var(--onacc);cursor:pointer;white-space:nowrap;transition:box-shadow .3s,border-color .3s;will-change:transform}
.btn span{transition:transform .3s var(--ease)}
.btn:hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--acc) 25%,transparent)}.btn:hover span{transform:translateX(4px)}
.btn.ghost{background:none;color:var(--fg);border-color:var(--wire2)}.btn.ghost:hover{border-color:var(--fg);box-shadow:none}
.btns{display:flex;gap:10px;flex-wrap:wrap}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:110px var(--pad) 0;--mx:70%;--my:30%}
.grid{position:absolute;inset:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(#000 40%,transparent);mask-image:linear-gradient(#000 40%,transparent);pointer-events:none}
.grid.hot{background-image:linear-gradient(color-mix(in srgb,var(--acc) 60%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--acc) 60%,transparent) 1px,transparent 1px);-webkit-mask-image:radial-gradient(240px circle at var(--mx) var(--my),#000,transparent 75%);mask-image:radial-gradient(240px circle at var(--mx) var(--my),#000,transparent 75%)}
.glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(45% 50% at 75% 40%,var(--glow),transparent 70%)}
.hero-in{position:relative;display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(30px,5vw,80px);align-items:end}
.eye{color:var(--acc);margin-bottom:26px;min-height:1.4em}
h1{font-weight:600;font-size:clamp(2.4rem,6.6vw,7.6rem);line-height:.92;letter-spacing:-.055em}
h1 .ln{display:block;white-space:nowrap}
.caret{display:inline-block;width:.08em;height:.78em;background:var(--acc);margin-left:.06em;vertical-align:-.04em;animation:blink 1.1s steps(1) infinite}
.lead{max-width:50ch;color:var(--muted);font-size:1.08rem;margin:36px 0 28px}.lead b{color:var(--fg);font-weight:500}
.console{border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(6px);overflow:hidden;align-self:center}
.console-bar{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}
.log{list-style:none;padding:10px 0;height:300px;overflow:hidden;font-size:11.5px;letter-spacing:.02em;text-transform:none;-webkit-mask-image:linear-gradient(transparent,#000 22%);mask-image:linear-gradient(transparent,#000 22%);display:flex;flex-direction:column;justify-content:flex-end}
.log li{display:grid;grid-template-columns:70px 1fr auto;gap:10px;padding:5px 16px;color:var(--muted);animation:logIn .5s var(--ease)}
.log li b{font-weight:500;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.log li .ok{color:var(--ok)}.log li .run{color:var(--acc)}
@keyframes logIn{from{opacity:0;transform:translateY(8px)}}
.stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:clamp(40px,6vw,70px) 0 44px}
.stats>div{background:var(--bg);padding:24px 22px;transition:background-color .5s}
.stats dt{font-size:clamp(2.2rem,4.4vw,4rem);font-weight:600;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.stats dt i{font-style:normal;color:var(--muted);font-size:.5em;letter-spacing:-.02em}
.stats dd{color:var(--muted);font-size:14px;margin-top:10px}

/* sections */
.sec{position:relative;padding:clamp(90px,11vw,160px) var(--pad);border-top:1px solid var(--line)}
.label{display:flex;gap:12px;color:var(--muted);margin-bottom:34px}.label b{color:var(--acc);font-weight:500}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:56px}
h2{font-size:clamp(2.4rem,6vw,6rem);line-height:.94;letter-spacing:-.055em;font-weight:600;max-width:18ch}
h3{font-weight:600;letter-spacing:-.03em}

/* workflow index */
.wf-index{list-style:none;padding:0;border-top:1px solid var(--line)}
.wf-row{display:grid;grid-template-columns:90px 1fr 1.1fr 120px 44px;gap:20px;align-items:center;padding:22px 14px;border-bottom:1px solid var(--line);position:relative;isolation:isolate;overflow:hidden}
.wf-row::before{content:"";position:absolute;inset:0;background:var(--panel);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease);z-index:-1}
.wf-row::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--acc);transform:scaleY(0);transition:transform .5s var(--ease)}
.wf-row:hover::before,.wf-row:hover::after,.wf-row:focus-visible::before,.wf-row:focus-visible::after{transform:none}
.wf-row .no{color:var(--muted);white-space:nowrap}
.wf-row .nm{font-size:clamp(1.6rem,3.4vw,3.2rem);font-weight:600;letter-spacing:-.045em;line-height:1;transition:transform .6s var(--ease),color .3s}
.wf-row:hover .nm{transform:translateX(12px);color:var(--acc)}
.wf-row .kk{color:var(--muted);font-size:15px}
.wf-row .nn{color:var(--muted)}
.wf-row .ar{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:transform .5s var(--ease),background-color .3s,color .3s,border-color .3s}
.wf-row:hover .ar{background:var(--acc);color:var(--onacc);border-color:var(--acc);transform:rotate(45deg)}

/* steps + run options */
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);counter-reset:s}
.steps li{counter-increment:s;padding:26px 24px 30px;background:var(--bg);display:grid;gap:12px;align-content:start;transition:background-color .5s}
.steps li::before{content:"[ 0" counter(s) " ]";font:500 12px var(--mono);letter-spacing:.1em;color:var(--acc)}
.steps b{font-size:1.45rem;line-height:1.05;font-weight:600;letter-spacing:-.035em}
.steps span{color:var(--muted);font-size:15px}
.runbox{margin-top:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.tabs{display:flex;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs button{font:inherit;padding:15px 20px;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;white-space:nowrap;transition:color .3s,border-color .3s}
.tabs button:hover{color:var(--fg)}
.tabs button[aria-selected=true]{color:var(--fg);border-color:var(--acc)}
.runbody{padding:22px 24px;display:grid;gap:14px}.runbody p{color:var(--muted)}

/* code */
.code{border:1px solid #1d1f23;border-radius:8px;background:var(--code-bg);overflow:hidden;color-scheme:dark}
.code pre{margin:0;padding:18px 20px;overflow:auto;font:400 13px/1.65 var(--mono);color:var(--code-fg);white-space:pre}
.code .bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px 8px 16px;border-bottom:1px solid #1d1f23;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#77756f}
.copy{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:5px;border:1px solid #34373d;background:none;color:#b9b5ad;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.copy:hover{color:#0a0a0a;background:#FF5A1F;border-color:#FF5A1F}

/* chapters */
.chapter{padding:clamp(90px,11vw,150px) var(--pad);border-top:1px solid var(--line);scroll-margin-top:60px}
.ch-head{display:grid;grid-template-columns:1fr auto;gap:20px 40px;align-items:end;margin-bottom:clamp(36px,5vw,60px)}
.ch-head .label{grid-column:1/-1;margin-bottom:0}
.ch-head h2{max-width:none}
.ch-kick{color:var(--muted);text-align:right}
.pro{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.pro>div{background:var(--bg);padding:28px 26px;transition:background-color .5s}
.pro .mono{color:var(--muted);margin-bottom:14px;display:block}
.pro p{font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.4;letter-spacing:-.015em}
.pro .out .mono{color:var(--acc)}
.diagram{border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-bottom:24px;overflow:hidden;transition:background-color .5s}
.dh{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--muted)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:8px;height:8px;border-radius:2px}
.dh-r{display:flex;align-items:center;gap:14px;font-size:11px}
.play{white-space:nowrap;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:8px 14px;border-radius:5px;border:1px solid var(--acc);background:none;color:var(--acc);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background-color .2s,color .2s}
.play:hover,.play.busy{background:var(--acc);color:var(--onacc)}
.dscroll{overflow-x:auto;padding:22px 18px 18px;scrollbar-width:thin;scrollbar-color:var(--wire2) transparent;background-image:radial-gradient(var(--wire) 1px,transparent 1px);background-size:22px 22px}
.dsvg{width:100%;height:auto;display:block;overflow:visible}
.dsvg .edge{fill:none;stroke:var(--wire2);stroke-width:1.6}
.dsvg .edge.flow{stroke:var(--acc);stroke-dasharray:4 7;animation:dash 1.4s linear infinite}
@keyframes dash{to{stroke-dashoffset:-22}}
.dsvg .n rect{fill:var(--node);stroke:var(--wire2);stroke-width:1.3;transition:fill .35s,stroke .35s}
.dsvg .n .bar{stroke:none}
.dsvg .n text{fill:var(--nodetx);font:500 13px var(--sans)}
.dsvg .n .sub{fill:var(--muted);font:500 9.5px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.dsvg .n.run rect:first-child{stroke:var(--acc);filter:drop-shadow(0 0 10px color-mix(in srgb,var(--acc) 50%,transparent))}
.dsvg .n.done rect:first-child{stroke:var(--ok)}
.dsvg .k-trigger rect.bar{fill:var(--k-trigger)}.legend .k-trigger i{background:var(--k-trigger)}
.dsvg .k-ai rect.bar{fill:var(--k-ai)}.legend .k-ai i{background:var(--k-ai)}
.dsvg .k-logic rect.bar{fill:var(--k-logic)}.legend .k-logic i{background:var(--k-logic)}
.dsvg .k-decide rect.bar{fill:var(--k-decide)}.legend .k-decide i{background:var(--k-decide)}
.dsvg .k-comm rect.bar{fill:var(--k-comm)}.legend .k-comm i{background:var(--k-comm)}
.dsvg .k-wait rect.bar{fill:var(--k-wait)}.dsvg .k-resp rect.bar{fill:var(--k-trigger)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);margin:44px 0 30px}
.col h3{font-size:1.6rem;margin-bottom:16px}
.flowl{list-style:none;padding:0;counter-reset:f}
.flowl li{counter-increment:f;display:grid;grid-template-columns:44px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line);color:var(--muted)}
.flowl li::before{content:"0" counter(f);font:500 12px var(--mono);color:var(--acc);padding-top:4px}
.flowl li:last-child{border-bottom:1px solid var(--line)}
.need{width:100%;border-collapse:collapse;font-size:15px}
.need td{padding:12px 0;border-top:1px solid var(--line);vertical-align:top}.need tr:last-child td{border-bottom:1px solid var(--line)}
.need td:first-child{font-weight:600;width:34%;padding-right:12px}.need td:last-child{color:var(--muted)}
.cost{margin-top:14px;color:var(--muted);font-size:14px;padding:14px 16px;border:1px dashed var(--wire2);border-radius:8px}
.cost b{color:var(--fg);font-weight:600}
details.setup{border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-bottom:10px;overflow:hidden;transition:background-color .5s}
details.setup summary{list-style:none;cursor:pointer;padding:20px 22px;font-size:1.3rem;font-weight:600;letter-spacing:-.025em;display:flex;justify-content:space-between;gap:14px;align-items:center}
details.setup summary::-webkit-details-marker{display:none}
details.setup summary::after{content:"+";font:400 22px var(--mono);color:var(--acc);transition:transform .35s var(--ease)}
details.setup[open] summary::after{transform:rotate(45deg)}
details.setup summary:hover{color:var(--acc)}
.dbody{padding:0 22px 22px;display:grid;gap:14px;min-width:0}
.setupl{list-style:none;padding:0;counter-reset:q;display:grid;gap:8px}
.setupl li{counter-increment:q;display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 14px;border-radius:6px;background:var(--bg);transition:background-color .5s}
.setupl li::before{content:counter(q);display:grid;place-items:center;width:24px;height:24px;border-radius:4px;background:var(--acc);color:var(--onacc);font:600 12px var(--mono)}
.expect{font:400 13px/1.6 var(--mono);color:var(--ok);padding:12px 14px;border-left:2px solid var(--ok);background:color-mix(in srgb,var(--ok) 7%,transparent);border-radius:0 6px 6px 0;overflow-wrap:anywhere}
.expect b{display:block;color:var(--muted);font-weight:500;margin-bottom:4px;letter-spacing:.1em;text-transform:uppercase;font-size:11px}
.cust{padding-left:20px;color:var(--muted);display:grid;gap:6px}
.dl{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}
.dl small{color:var(--muted)}

/* long URLs and ids in guides must wrap instead of widening the page on phones */
.setupl li>span,.flowl li,.need td,.cust li,.runbody p,.faq-list p,.pro p{min-width:0;overflow-wrap:anywhere}

/* credentials + faq */
.cred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.cred{padding:24px;background:var(--bg);display:grid;gap:8px;align-content:start;transition:background-color .5s}
.cred:hover{background:var(--panel)}
.cred:last-child:nth-child(3n+1){grid-column:span 3}.cred:last-child:nth-child(3n+2){grid-column:span 2}
.cred small{color:var(--acc)}
.cred h3{font-size:1.35rem}
.cred p{color:var(--muted);font-size:14.5px;overflow-wrap:anywhere}
.faq-list{display:grid;border-top:1px solid var(--line);max-width:1100px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;padding:24px 4px;font-size:clamp(1.15rem,2vw,1.6rem);font-weight:600;letter-spacing:-.03em;display:flex;justify-content:space-between;gap:16px;transition:color .3s,padding .5s var(--ease)}
.faq-list summary:hover{color:var(--acc);padding-left:12px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";color:var(--acc);font:400 24px var(--mono);transition:transform .35s var(--ease);flex:none}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list p{color:var(--muted);padding:0 4px 24px;max-width:70ch}
.big{font-size:clamp(1.6rem,3.4vw,3.2rem);line-height:1.12;letter-spacing:-.035em;font-weight:500;max-width:30ch;margin-bottom:44px}
.big .dim{color:var(--dimtx)}
.note-end .btn{white-space:normal;text-align:left;max-width:100%}
.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px var(--pad);border-top:1px solid var(--line);color:var(--muted)}
.foot a:hover{color:var(--fg)}

::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}

/* responsive */
@media (max-width:1180px){.chips{display:none}}
@media (max-width:1000px){
  .hero-in{grid-template-columns:1fr}
  .log{height:220px}
  .stats{grid-template-columns:1fr 1fr}
  .wf-row{grid-template-columns:60px minmax(0,1fr) 44px;gap:8px 16px}.wf-row .kk{grid-column:2;grid-row:2}.wf-row .nn{display:none}.wf-row .ar{grid-row:1/3;grid-column:3}
  .steps{grid-template-columns:1fr 1fr}
  .ch-head{grid-template-columns:1fr}.ch-kick{text-align:left}
  .pro,.cols{grid-template-columns:1fr}
  .cred-grid{grid-template-columns:1fr 1fr}
  .cred:last-child:nth-child(n){grid-column:auto}.cred:last-child:nth-child(2n+1){grid-column:span 2}
}
@media (max-width:620px){
  .back span,.logo-sub{display:none}
  .steps,.cred-grid,.stats{grid-template-columns:1fr}
  .cred:last-child:nth-child(n){grid-column:auto}
  .log li{grid-template-columns:58px minmax(0,1fr) auto;font-size:10.5px;padding:5px 12px}
  .btns .btn{flex:1}
  .dh-r{width:100%;justify-content:space-between}
  .code pre{font-size:12px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
