/* Lightsprint — self-hosted fonts */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/instrumentserif.woff2') format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/instrumentserif-italic.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/inter.woff2') format('woff2')}

:root{
  --cream:oklch(98.5% .003 105.99);
  --band:oklch(96.3% .004 96);
  --card:oklch(99.2% .002 106);
  --ink:oklch(21.7% .004 106.64);
  --gray:oklch(48% .005 107);
  --gray-soft:oklch(50.5% .006 107);
  --terra:oklch(63.5% .125 40.89);
  --terra-600:oklch(58.5% .12 41.29);
  --terra-700:oklch(51.3% .105 41.69);
  --terra-tint:oklch(94.4% .019 34.49);
  --green:oklch(62.7% .17 149.21);
  --green-700:oklch(52.2% .136 150.41);
  --green-tint:oklch(94.3% .062 157.21);
  --line:oklch(90.5% .004 96);
  --line-soft:oklch(93.5% .004 96);
  --head-bg:oklch(98.5% .003 105.99 / .82);
  --btn-bg:oklch(52% .115 42);
  --btn-fg:oklch(98.5% .003 105.99);
  --btn-bg-h:oklch(46% .1 42);
  --hover:oklch(21.7% .004 106 / .05);
  --shipped-fg:oklch(44% .13 150);
  --shipped-bd:oklch(80% .1 155);
  --cta-overlay:oklch(98.5% .01 90 / .5);
  --violet:oklch(48% .16 292);
  --ff-h:'Instrument Serif',ui-serif,Georgia,serif;
  --ff:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ff-mono:ui-monospace,'SF Mono',Menlo,monospace;
  --shadow:0 24px 60px -30px oklch(21.7% .02 60 / .28);
  --shadow-sm:0 8px 24px -14px oklch(21.7% .02 60 / .22);
}
html{color-scheme:light dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--ff);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;font-family:var(--ff-h);font-weight:400;letter-spacing:-.025em;line-height:1.08;color:var(--ink)}
h1 em,h2 em,h3 em{font-style:italic}
p{margin:0}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.wrap-narrow{max-width:920px;margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--ff);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-soft)}
.muted{color:var(--gray)}
.section{padding:96px 0}
.section-tight{padding:72px 0}
.band{background:var(--band)}
.center{text-align:center}
.rule{border:0;border-top:1px solid var(--line);margin:0}

/* buttons — pill */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--ff);font-weight:500;font-size:15.5px;padding:12px 24px;border-radius:9999px;border:1px solid transparent;cursor:pointer;transition:background .16s,border-color .16s,color .16s,transform .16s}
.btn-p{background:var(--btn-bg);color:var(--btn-fg)}
.btn-p:hover{background:var(--btn-bg-h);transform:translateY(-1px)}
.btn-o{background:var(--card);color:var(--ink);border-color:var(--line)}
.btn-o:hover{border-color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--hover)}
.btn-lg{padding:14px 30px;font-size:16.5px}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.nocc{font-size:13px;color:var(--gray-soft);margin-top:14px}

/* purple top accent + announce strip (above the sticky nav) */
.purplebar{height:6px;background:var(--violet)}
.topann{background:var(--cream);padding:14px 0 6px}
.announce{display:flex;justify-content:center}
.announce a{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:9999px;padding:7px 18px;box-shadow:var(--shadow-sm);transition:border-color .15s}
.announce a:hover{border-color:var(--terra)}
.announce img{height:14px;width:auto}
.announce .arr{color:var(--terra)}

/* header */
.site-head{position:sticky;top:0;z-index:60;background:var(--head-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}
.head-in{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:31px;width:auto}
.brand .logo-dark{display:none}
.head-right{display:flex;align-items:center;gap:6px}
.nav{display:flex;align-items:center;gap:2px}
.nav>a,.nav-trig{font-family:var(--ff);font-size:15px;color:var(--ink);padding:9px 13px;border-radius:10px;transition:background .15s;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;line-height:1}
.nav>a:hover,.nav-trig:hover{background:var(--hover)}
.nav-trig .caret{font-size:15px;color:var(--gray-soft);transition:transform .2s}
.nav-item{position:relative}
.nav-item:hover .nav-trig .caret,.nav-item:focus-within .nav-trig .caret{transform:rotate(180deg)}
.nav-drop{position:absolute;top:100%;left:0;padding-top:10px;min-width:230px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility .16s;z-index:5}
.nav-item:hover .nav-drop,.nav-item:focus-within .nav-drop{opacity:1;visibility:visible;transform:translateY(0)}
.nav-drop-in{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;gap:2px}
.nav-drop-in a{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14.5px;color:var(--ink);padding:10px 14px;border-radius:9px;transition:background .13s}
.nav-drop-in a:hover{background:var(--hover)}
.nav-drop-in a[aria-current=page]{color:var(--terra-700);font-weight:500}
.nav-drop-in .di{color:var(--gray-soft);font-size:15px;display:flex}
.login{font-size:15px;color:var(--ink);padding:9px 13px;border-radius:10px;transition:background .15s}
.login:hover{background:var(--hover)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:none;border:1px solid transparent;color:var(--ink);cursor:pointer;font-size:18px;transition:background .15s,border-color .15s}
.theme-toggle:hover{background:var(--hover)}
.theme-toggle .ic-sun,.theme-toggle .ic-moon{display:flex}
.theme-toggle .ic-sun{display:none}
.book{padding:10px 20px;font-size:15px;white-space:nowrap}
.burger{display:none;background:none;border:0;font-size:22px;cursor:pointer;color:var(--ink)}
@media(max-width:940px){.nav,.login{display:none}.burger{display:block}}

/* hero */
.hero{padding:60px 0 40px;text-align:center}
.backed{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--gray);margin-bottom:24px}
.backed img{height:16px;width:auto}
.hero h1{font-size:clamp(44px,6.4vw,82px);letter-spacing:-.03em;max-width:15ch;margin:0 auto}
.hero .lede{font-size:clamp(17px,2vw,20px);color:var(--gray);max-width:56ch;margin:26px auto 0;line-height:1.55}
.hero-cta{display:flex;gap:12px;justify-content:center;margin-top:34px;flex-wrap:wrap}

/* product mockup card (hero demo / workflow visuals) */
.mock{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}
.mock-bar{display:flex;align-items:center;gap:7px;padding:14px 18px;border-bottom:1px solid var(--line-soft)}
.mock-dot{width:11px;height:11px;border-radius:50%;background:var(--line)}
.mock-body{padding:28px 30px}
.hero-demo{max-width:960px;margin:56px auto 0}
.hero-demo .mock-body{min-height:320px;display:flex;flex-direction:column;gap:16px}
.prompt-bar{display:flex;align-items:center;gap:12px;background:var(--band);border:1px solid var(--line);border-radius:14px;padding:16px 18px;color:var(--gray)}
.prompt-bar .pi{width:22px;height:22px;color:var(--terra);flex:none}

/* testimonial */
.quote{text-align:center;padding:64px 0}
.quote p{font-family:var(--ff-h);font-size:clamp(24px,3vw,32px);color:var(--ink);max-width:24ch;margin:0 auto;line-height:1.25}
.quote cite{display:block;font-style:normal;font-size:13.5px;color:var(--gray-soft);margin-top:18px;letter-spacing:.02em}

/* section head */
.sec-head{text-align:center;max-width:640px;margin:0 auto 52px}
.sec-head h2{font-size:clamp(30px,4.4vw,50px);margin-top:14px}
.sec-head p{color:var(--gray);font-size:18px;margin-top:18px;line-height:1.55}

/* demo video — dark poster card */
.video{display:block;max-width:860px;margin:0 auto;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);position:relative;aspect-ratio:16/9;background:radial-gradient(120% 120% at 50% 0%,oklch(29% .02 55) 0%,oklch(19% .01 55) 60%);isolation:isolate}
.video-poster{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center}
.video-poster .vp-h{font-family:var(--ff-h);font-size:clamp(28px,4vw,52px);color:oklch(94% .02 90);line-height:1.1;letter-spacing:-.02em}
.video-poster .vp-h em{font-style:italic;color:oklch(80% .09 55)}
.vtag{position:absolute;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:#fff;padding:6px 12px 6px 8px;border-radius:9999px;box-shadow:0 8px 24px oklch(15% .02 40 / .5);backdrop-filter:blur(2px)}
.vtag .dot{width:16px;height:16px;border-radius:50%;font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}
.vtag.t1{top:20%;left:9%;background:oklch(42% .12 350 / .92)}
.vtag.t1 .dot{background:oklch(70% .16 350)}
.vtag.t2{top:62%;left:14%;background:oklch(40% .12 250 / .92)}
.vtag.t2 .dot{background:oklch(65% .15 250)}
.vtag.t3{top:30%;right:9%;background:oklch(42% .1 180 / .92)}
.vtag.t3 .dot{background:oklch(66% .12 185)}
@media(max-width:640px){.vtag{display:none}}
.video .play{position:absolute;inset:0;margin:auto;width:70px;height:70px;border-radius:50%;background:var(--terra);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 34px oklch(21% .04 40 / .55);transition:transform .16s,background .16s}
.video:hover .play{transform:scale(1.06);background:var(--terra-600)}
.video .play svg{width:26px;height:26px;color:#fff;margin-left:3px}

/* integrations */
.integ{text-align:center;padding:56px 0 8px}
.integ-label{font-size:13.5px;color:var(--gray-soft)}
.integ-row{display:flex;justify-content:center;flex-wrap:wrap;gap:20px 44px;margin-top:24px}
.integ-row span{display:inline-flex;align-items:center;gap:9px;font-size:16px;color:var(--ink)}
.integ-row svg{width:22px;height:22px}

/* how it works — split */
.hiw{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
@media(max-width:900px){.hiw{grid-template-columns:1fr;gap:40px}}
.hiw-head h2{font-size:clamp(30px,4vw,46px)}
.steps{margin-top:34px;display:flex;flex-direction:column;gap:26px}
.step{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}
.step-n{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--terra);color:var(--terra-700);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;flex:none}
.step h3{font-family:var(--ff);font-weight:600;font-size:17px;letter-spacing:0;color:var(--ink)}
.step p{color:var(--gray);font-size:15px;margin-top:6px;line-height:1.55}

/* flow mockup (right column) */
.flow{display:flex;flex-direction:column;gap:14px}
.flow-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:14px}
.flow-card .lbl{font-size:12px;color:var(--gray-soft);margin-bottom:8px}
.flow-card .prompt{font-family:var(--ff);color:var(--ink)}
.flow-arrow{align-self:center;color:var(--gray-soft)}
.opt-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:6px}
.opt{border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center;font-size:12.5px;color:var(--gray);background:var(--band)}
.opt.sel{border-color:var(--terra);color:var(--terra-700);background:var(--terra-tint)}
.pick{font-size:12px;color:var(--terra-700);text-align:center;margin-top:8px}
.spec li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink);padding:5px 0;list-style:none}
.spec{padding:0;margin:6px 0 0}
.spec .ck{width:17px;height:17px;color:var(--green);flex:none}
.shipped{background:var(--green-tint);color:var(--shipped-fg);border:1px solid var(--shipped-bd);border-radius:12px;padding:13px;text-align:center;font-size:13.5px;font-weight:500}

/* feature cards (horizontal) */
.fcards{display:flex;flex-direction:column;gap:18px;max-width:1000px;margin:0 auto}
.fcard{display:grid;grid-template-columns:.85fr 1.15fr;gap:32px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:32px 36px;align-items:start}
@media(max-width:760px){.fcard{grid-template-columns:1fr;gap:18px;padding:26px}}
.fcard h3{font-size:26px}
.fcard .sub{color:var(--gray);font-size:15px;margin-top:6px}
.fcard ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}
@media(max-width:560px){.fcard ul{grid-template-columns:1fr}}
.fcard li{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;color:var(--ink)}
.fcard li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--terra);margin-top:8px;flex:none}

/* why-us grid */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.why-grid{grid-template-columns:1fr}}
.why{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:32px 30px}
.why .ic{font-size:26px;line-height:1}
.why h3{font-family:var(--ff);font-weight:600;font-size:19px;letter-spacing:0;margin-top:16px}
.why p{color:var(--gray);font-size:15px;margin-top:12px;line-height:1.6}

/* FAQ accordion */
.faq{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font-weight:500;font-size:16.5px;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{width:20px;height:20px;flex:none;color:var(--gray-soft);transition:transform .2s}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .ans{padding:0 22px 22px;color:var(--gray);font-size:15.5px;line-height:1.6;max-width:64ch}
.faq-more{text-align:center;margin-top:32px}
.faq-more a{color:var(--terra-700);font-weight:500;font-size:15px}

/* before/after flow */
.ba{max-width:820px;margin:0 auto}
.ba-row{margin-top:26px}
.ba-label{font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--terra-700);margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.chip{font-size:13.5px;padding:7px 14px;border-radius:9999px;border:1px solid var(--line);background:var(--card);color:var(--gray)}
.chip.on{background:var(--terra-tint);border-color:oklch(84% .06 40);color:var(--terra-700)}
.chip-arrow{color:var(--line);font-size:12px}
.chip.on ~ .chip-arrow{color:var(--terra)}

/* CTA landscape */
.cta{position:relative;border-radius:24px;overflow:hidden;text-align:center;isolation:isolate}
.cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.cta::after{content:"";position:absolute;inset:0;background:var(--cta-overlay);z-index:-1}
.cta-in{padding:88px 28px}
.cta h2{font-size:clamp(32px,4.6vw,52px)}
.cta p{color:var(--ink);font-size:18px;margin:18px auto 0;max-width:44ch}
.cta .hero-cta{margin-top:30px}

/* footer */
.site-foot{border-top:1px solid var(--line);padding:56px 0 40px;background:var(--cream)}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap}
.foot-soc2{display:flex;align-items:center;gap:14px}
.foot-soc2 img{width:44px;height:44px}
.foot-soc2 b{font-family:var(--ff);font-weight:600;font-size:14px;display:block}
.foot-soc2 span{font-size:13px;color:var(--gray)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--line-soft)}
.foot-links{display:flex;gap:22px;flex-wrap:wrap;font-size:14px;color:var(--gray)}
.foot-links a:hover{color:var(--ink)}
.foot-soc{display:flex;gap:16px}
.foot-soc a{color:var(--gray-soft)}
.foot-soc a:hover{color:var(--ink)}
.foot-soc svg{width:19px;height:19px}
.copy{font-size:13.5px;color:var(--gray-soft)}

/* pricing */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:start}
@media(max-width:1080px){.price-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.price-grid{grid-template-columns:1fr}}
.tier{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:30px 26px;display:flex;flex-direction:column;gap:18px;position:relative}
.tier.pop{border-color:var(--terra);box-shadow:var(--shadow)}
.tier-pop-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--btn-bg);color:var(--btn-fg);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 13px;border-radius:9999px}
.tier h3{font-family:var(--ff-h);font-size:26px}
.tier .tsub{color:var(--gray);font-size:14px;margin-top:2px}
.tier .price{font-family:var(--ff-h);font-size:44px;line-height:1;margin-top:4px}
.tier .price small{font-family:var(--ff);font-size:14px;color:var(--gray);font-weight:400}
.tier .credits{font-size:13.5px;color:var(--gray);line-height:1.5}
.tier ul{list-style:none;padding:18px 0 0;margin:0;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:11px}
.tier li{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:var(--ink)}
.tier li .ck{width:16px;height:16px;color:var(--green);flex:none;margin-top:3px}
.tier .btn{width:100%}

/* generic content page (blog/gstack) */
.page-hero{text-align:center;padding:80px 0 40px}
.page-hero h1{font-size:clamp(40px,5.4vw,68px);max-width:16ch;margin:0 auto}
.page-hero p{color:var(--gray);font-size:19px;max-width:52ch;margin:22px auto 0}
.post-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column}
.post{display:block;padding:28px 0;border-top:1px solid var(--line)}
.post:hover h3{color:var(--terra-700)}
.post .meta{font-size:13px;color:var(--gray-soft)}
.post h3{font-family:var(--ff-h);font-size:26px;margin:8px 0 6px;transition:color .15s}
.post p{color:var(--gray);font-size:15.5px}

/* icon sizing fixes */
.prompt-bar .pi svg,.faq summary .pm svg,.spec .ck svg,.tier li .ck svg{width:100%;height:100%}
.shipped svg{width:1.05em;height:1.05em;vertical-align:-3px;margin-right:6px}
.flow-arrow svg{width:22px;height:22px}
.faq-more a svg{width:1em;height:1em;vertical-align:-2px}
.hero-demo .shipped{display:flex;align-items:center;justify-content:center;gap:2px}

.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}

/* footer trust-center link */
.foot-soc2 span a{color:var(--gray);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.foot-soc2 span a:hover{color:var(--ink)}

/* ============ hero kanban product demo ============ */
.kanban{max-width:1080px;margin:52px auto 0;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;text-align:left}
.kanban-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;position:relative;border-bottom:1px solid var(--line-soft)}
.kanban-top .k-title{font-family:var(--ff);font-weight:600;font-size:19px;letter-spacing:0;color:var(--ink)}
.k-gen{display:inline-flex;align-items:center;gap:7px;background:var(--btn-bg);color:var(--btn-fg);font-size:13.5px;font-weight:500;padding:8px 15px;border-radius:9999px;flex:none}
.k-gen svg{width:15px;height:15px}
.k-toast{position:absolute;left:50%;top:13px;transform:translate(-50%,0);display:inline-flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:9px 16px 9px 11px;font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;animation:toastIn .6s ease both,floaty 4s ease-in-out 1s infinite}
.k-toast .n{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes floaty{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-4px)}}
.kanban-sub{display:flex;align-items:center;gap:9px;padding:12px 22px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.k-tabs{display:inline-flex;background:var(--band);border:1px solid var(--line);border-radius:9px;padding:2px}
.k-tabs span{font-size:13px;padding:5px 13px;border-radius:7px;color:var(--gray)}
.k-tabs span.on{background:var(--card);color:var(--ink);font-weight:500;box-shadow:var(--shadow-sm)}
.k-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--gray);border:1px solid var(--line);border-radius:8px;padding:5px 11px}
.k-chip svg{width:14px;height:14px}
.k-search{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-soft);border:1px solid var(--line);border-radius:8px;padding:6px 12px;min-width:170px}
.k-avs{display:inline-flex}
.k-av{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;border:2px solid var(--card);margin-left:-7px}
.k-av:first-child{margin-left:0}
.kanban-scroll{overflow-x:auto;position:relative}
.kanban-board{display:grid;grid-template-columns:repeat(4,minmax(215px,1fr));gap:14px;padding:18px 22px;min-width:820px}
/* traveling "agent" that moves a task across the pipeline */
.k-agent{position:absolute;z-index:4;pointer-events:none;display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--terra);color:var(--ink);font-size:11.5px;font-weight:500;padding:6px 11px;border-radius:9px;box-shadow:var(--shadow);white-space:nowrap;left:5%;top:70px;opacity:0;animation:agentRun 9s ease-in-out infinite}
.k-agent-spin{width:12px;height:12px;border-radius:50%;border:2px solid var(--terra-tint);border-top-color:var(--terra);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes agentRun{0%{left:5%;top:70px;opacity:0}7%{opacity:1}30%{left:29%;top:150px;opacity:1}55%{left:52%;top:108px;opacity:1}80%{left:73%;top:172px;opacity:1}90%{left:76%;top:150px;opacity:0}100%{opacity:0}}
@media(max-width:640px){.k-agent{display:none}}
.kcol-head{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--ink);margin-bottom:12px}
.kcol-head .ki{width:14px;height:14px;border-radius:50%;flex:none}
.kcol-head .kn{margin-left:auto;font-size:12px;color:var(--gray-soft);font-weight:400}
.kcol{display:flex;flex-direction:column;gap:10px}
.kcard{background:var(--band);border:1px solid var(--line);border-radius:12px;padding:12px 13px}
.kcard.done{border-color:var(--green);animation:doneGlow 3s ease-in-out infinite}
@keyframes doneGlow{0%,100%{box-shadow:0 0 0 1px var(--green) inset,0 0 0 0 transparent}50%{box-shadow:0 0 0 1px var(--green) inset,0 0 16px 0 var(--green-tint)}}
.kc-prog{margin-top:10px;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.kc-prog span{display:block;height:100%;border-radius:2px;background:var(--terra);width:20%;animation:kprog 2.6s ease-in-out infinite}
@keyframes kprog{0%{width:14%}50%{width:80%}100%{width:14%}}
.kcard .kc-top{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.kcard .kid{font-family:var(--ff-mono);font-size:11px;color:var(--gray-soft);letter-spacing:.02em}
.klabel{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--gray);margin-left:auto}
.klabel .ld{width:7px;height:7px;border-radius:50%}
.ld.core{background:var(--green)}.ld.frontend{background:oklch(65% .16 350)}.ld.api{background:oklch(66% .13 250)}
.kcard .kc-title{font-size:13.5px;color:var(--ink);line-height:1.4}
.kcard .kc-foot{display:flex;justify-content:flex-end;margin-top:10px}
.kc-av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff}
@media(max-width:640px){.k-toast{display:none}}

/* ============ hero auto-play demo (6 screens) ============ */
.lsdemo{position:relative;max-width:1040px;margin:52px auto 0;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;text-align:left}
.lsdemo-bar{display:flex;align-items:center;gap:7px;padding:13px 18px;border-bottom:1px solid var(--line-soft)}
.lsdemo-crumb{margin-left:8px;font-family:var(--ff-mono);font-size:12px;color:var(--gray-soft)}
.lsdemo-pill{position:absolute;top:58px;left:50%;z-index:7;display:inline-flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:9999px;box-shadow:var(--shadow);padding:7px 16px 7px 8px;font-size:12.5px;font-weight:500;color:var(--ink);white-space:nowrap;transform:translateX(-50%);animation:floaty2 4s ease-in-out infinite}
.dpill-n{width:22px;height:22px;border-radius:50%;background:var(--terra);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
@keyframes floaty2{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}
.dstage{position:relative;height:600px;overflow:hidden}
/* clean fade: the incoming screen fades in over the (same-color) card bg; the
   outgoing one is hidden instantly, so two content screens never ghost together */
.dscreen{position:absolute;inset:0;padding:30px 30px;background:var(--card);opacity:0;visibility:hidden;overflow:hidden}
.dscreen.is-active{opacity:1;visibility:visible;transition:opacity .5s ease}

/* screen 1 — prompt */
.dsc-prompt{display:flex;align-items:center;justify-content:center}
.dprompt-wrap{width:100%;max-width:620px}
.dprompt-h{font-family:var(--ff);font-weight:600;font-size:22px;text-align:center;color:var(--ink);letter-spacing:0}
.dprompt{margin-top:22px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);padding:18px 18px 12px}
.dprompt-txt{font-size:15px;color:var(--ink);line-height:1.5;min-height:44px}
.dcaret{display:inline-block;width:2px;height:1.05em;background:var(--terra);vertical-align:-3px;margin-left:1px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.dprompt-row{display:flex;align-items:center;gap:8px;margin-top:14px}
.dchip{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--gray);border:1px solid var(--line);border-radius:8px;padding:5px 10px}
.dchip svg{width:13px;height:13px}
.dchip.fast{color:var(--terra-700);border-color:transparent}
.dsend{margin-left:auto;width:32px;height:32px;border-radius:9px;background:var(--band);display:flex;align-items:center;justify-content:center;color:var(--gray)}
.dsend svg{width:16px;height:16px}

/* screen 2 — task detail / spec */
.dtask-head .kid{font-family:var(--ff-mono);font-size:12px;color:var(--gray-soft)}
.dtask-head h4{font-family:var(--ff);font-weight:600;font-size:21px;letter-spacing:0;margin:5px 0 12px;color:var(--ink)}
.dtask-tags{display:flex;gap:8px;flex-wrap:wrap}
.dtag{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--gray);border:1px solid var(--line);border-radius:8px;padding:4px 10px}
.dtask-tabs{display:flex;gap:20px;margin:18px 0 0;border-bottom:1px solid var(--line-soft)}
.dtask-tabs span{font-size:13.5px;color:var(--gray);padding:0 0 10px}
.dtask-tabs span.on{color:var(--ink);font-weight:500;box-shadow:inset 0 -2px 0 var(--terra)}
.dtask-status{display:flex;align-items:center;gap:9px;margin-top:18px;border:1px solid var(--shipped-bd);background:var(--green-tint);color:var(--shipped-fg);border-radius:12px;padding:12px 14px;font-size:13.5px;font-weight:500}
.dtask-status .ck{width:16px;height:16px;display:flex}
.dtask-status .ck svg{width:100%;height:100%}
.dtask-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-soft);margin-top:22px}
.dtask-files{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:8px}
.dtask-files li{display:flex;align-items:center;gap:9px;font-family:var(--ff-mono);font-size:12.5px;color:var(--gray)}
.dtask-files svg{width:15px;height:15px;color:var(--gray-soft)}
.dtask-desc{font-size:14px;color:var(--gray);margin-top:10px;line-height:1.6;max-width:70ch}

/* screen 3 — plan options */
.dsc-plan{overflow-y:hidden}
.dplan-group{margin-bottom:20px}
.dplan-h{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.dplan-n{font-family:var(--ff-mono);font-size:12px;color:var(--green-700);font-weight:600;margin-top:2px}
.dplan-h b{font-family:var(--ff);font-weight:600;font-size:15px;color:var(--ink);display:block}
.dplan-h span{font-size:13px;color:var(--gray)}
.dopts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.dopt{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card)}
.dopt.sel{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}
.dopt-mock{height:56px;border-radius:8px;background:var(--band);padding:8px;display:flex;flex-direction:column;gap:5px;overflow:hidden;font-size:9px;color:var(--gray)}
.dopt-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.dopt-name{font-size:13px;font-weight:500;color:var(--ink)}
.dopt.sel .dopt-name{color:var(--green-700)}
.dopt-tag{font-size:9px;font-weight:600;letter-spacing:.06em;color:var(--gray-soft);border:1px solid var(--line);border-radius:5px;padding:2px 6px}
.dm-pills{display:flex;gap:4px;flex-wrap:wrap}
.dm-pills span{border:1px solid var(--line);border-radius:9999px;padding:2px 7px;background:var(--card)}
.dm-pills span.on{background:var(--terra-tint);color:var(--terra-700);border-color:transparent}
.dm-pills.sm span{font-size:8px}
.dm-pills .b{color:oklch(55% .13 265)}.dm-pills .g{color:var(--green-700)}
.dm-bar{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px 7px}
.dm-fn{width:7px;height:7px;border-left:2px solid var(--gray-soft);border-right:2px solid var(--gray-soft);border-top:2px solid var(--gray-soft);clip-path:polygon(0 0,100% 0,60% 100%,40% 100%)}
.dm-side{display:flex;flex-direction:column;gap:3px}
.dm-side .lbl{font-weight:600;letter-spacing:.08em}
.dm-side .a{color:var(--terra-700)}
.dm-rows{display:flex;flex-direction:column;gap:6px}
.dm-card{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:6px 8px}
.dm-card .b{color:oklch(55% .13 265);margin-left:auto}
.dm-card i{font-style:normal;color:var(--gray-soft)}
.dm-feed{display:flex;align-items:center;gap:7px}
.dm-feed .av{width:18px;height:18px;border-radius:50%;background:oklch(58% .15 20);color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.dm-feed i{font-style:normal;color:var(--gray-soft)}

/* screen 4 — launch agent modal + screen 5 board */
.dsc-agent,.dsc-board{padding:0}
.dagent-bg{filter:blur(1px);opacity:.5;pointer-events:none;height:100%;overflow:hidden}
.dmodal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5;width:min(440px,86%);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px}
.dmodal-h{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.dmodal-ic{font-size:20px}
.dmodal-h b{font-family:var(--ff);font-weight:600;font-size:16px;color:var(--ink);display:block}
.dmodal-h span{font-size:13px;color:var(--gray)}
.dagent-opt{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin-top:9px}
.dagent-opt.sel{border-color:var(--terra);background:var(--terra-tint)}
.dagent-logo{width:34px;height:34px;border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.dagent-opt b{font-family:var(--ff);font-weight:600;font-size:14px;color:var(--ink);display:block}
.dagent-opt span:not(.dagent-logo):not(.dradio){font-size:12.5px;color:var(--gray)}
.dagent-opt>div{flex:1}
.dradio{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none}
.dradio.on{border-color:var(--terra);background:radial-gradient(circle,var(--terra) 0 42%,transparent 46%)}

/* screen 6 — PR merged */
.dsc-pr{display:flex;align-items:center;justify-content:center}
.dpr-card{width:100%;max-width:460px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);padding:38px 32px}
.dpr-badge{width:56px;height:56px;border-radius:50%;background:var(--green-tint);color:var(--green-700);display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.dpr-badge svg{width:28px;height:28px}
.dpr-id{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green-700)}
.dpr-card h4{font-family:var(--ff-h);font-size:30px;margin:8px 0 12px;color:var(--ink)}
.dpr-card p{font-size:14.5px;color:var(--gray);line-height:1.6}
.dpr-card code{font-family:var(--ff-mono);font-size:13px;background:var(--band);border-radius:5px;padding:1px 6px}
.dpr-meta{display:flex;justify-content:center;gap:14px;margin-top:18px;flex-wrap:wrap}
.dpr-git{font-family:var(--ff-mono);font-size:12px;color:var(--green-700)}
.dpr-branch{font-family:var(--ff-mono);font-size:12px;color:var(--gray-soft)}
/* the demo is a desktop-only illustration — the real site hides it on phones
   (its hero goes straight from the CTAs to the testimonial). Match that: below
   the width where the 820px board would need to scroll, hide the whole demo. */
@media(max-width:899px){.lsdemo{display:none}}

/* ============ dark mode ============ */
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){
  --cream:oklch(20.5% .004 106);--band:oklch(24% .004 106);--card:oklch(25.5% .005 106);
  --ink:oklch(95% .003 106);--gray:oklch(73% .008 107);--gray-soft:oklch(66% .008 107);
  --terra:oklch(70% .13 42);--terra-600:oklch(66% .13 42);--terra-700:oklch(76% .12 45);--terra-tint:oklch(34% .07 40);
  --green:oklch(70% .15 150);--green-700:oklch(74% .13 150);--green-tint:oklch(31% .06 150);
  --line:oklch(33% .006 106);--line-soft:oklch(29% .006 106);
  --head-bg:oklch(20.5% .004 106 / .82);--btn-bg:oklch(56% .13 42);--btn-fg:oklch(98% .003 106);--btn-bg-h:oklch(50% .12 42);
  --hover:oklch(95% .003 106 / .08);--shipped-fg:oklch(82% .13 150);--shipped-bd:oklch(45% .09 150);
  --cta-overlay:oklch(16% .01 60 / .62);--shadow:0 24px 60px -30px oklch(0% 0 0 / .6);--shadow-sm:0 8px 24px -14px oklch(0% 0 0 / .5);
}}
:root[data-theme=dark]{
  --cream:oklch(20.5% .004 106);--band:oklch(24% .004 106);--card:oklch(25.5% .005 106);
  --ink:oklch(95% .003 106);--gray:oklch(73% .008 107);--gray-soft:oklch(66% .008 107);
  --terra:oklch(70% .13 42);--terra-600:oklch(66% .13 42);--terra-700:oklch(76% .12 45);--terra-tint:oklch(34% .07 40);
  --green:oklch(70% .15 150);--green-700:oklch(74% .13 150);--green-tint:oklch(31% .06 150);
  --line:oklch(33% .006 106);--line-soft:oklch(29% .006 106);
  --head-bg:oklch(20.5% .004 106 / .82);--btn-bg:oklch(56% .13 42);--btn-fg:oklch(98% .003 106);--btn-bg-h:oklch(50% .12 42);
  --hover:oklch(95% .003 106 / .08);--shipped-fg:oklch(82% .13 150);--shipped-bd:oklch(45% .09 150);
  --cta-overlay:oklch(16% .01 60 / .62);--shadow:0 24px 60px -30px oklch(0% 0 0 / .6);--shadow-sm:0 8px 24px -14px oklch(0% 0 0 / .5);
}
/* logo + toggle icon swap by theme */
@media(prefers-color-scheme:dark){
  :root:not([data-theme=light]) .brand .logo-light{display:none}
  :root:not([data-theme=light]) .brand .logo-dark{display:block}
  :root:not([data-theme=light]) .theme-toggle .ic-moon{display:none}
  :root:not([data-theme=light]) .theme-toggle .ic-sun{display:flex}
}
:root[data-theme=dark] .brand .logo-light{display:none}
:root[data-theme=dark] .brand .logo-dark{display:block}
:root[data-theme=dark] .theme-toggle .ic-moon{display:none}
:root[data-theme=dark] .theme-toggle .ic-sun{display:flex}
:root[data-theme=light] .brand .logo-light{display:block}
:root[data-theme=light] .brand .logo-dark{display:none}
:root[data-theme=light] .theme-toggle .ic-moon{display:flex}
:root[data-theme=light] .theme-toggle .ic-sun{display:none}
