/* Ostia public pages (index, pricing, proof, compare, faq).
   Design pass based on unslop by Damir Sokolovsky (@heydamir), CC BY 4.0: https://heydamir.design/unslop
   Direction: welcoming, sharp-eyed, a little warm. A shop's front door at dusk.
   Signature: marigold = AI agent. People stay neutral, bots red. Chrome stays quiet. */
:root{
  /* warm light ramp */
  --bg:#f5f7fb; --card:#ffffff; --raised:#eaeef6; --line:rgba(15,27,45,.08); --line2:rgba(15,27,45,.13);
  --ink:#0f1b2d; --body:#3d4a5e; --mute:#5d6a80;
  /* accent: indigo. --or fills primary buttons with --on-or text on it (white, AA; test/brand-contrast.test.ts), --or-ink is the accent as text on light */
  --or:#5b5bf7; --or-hover:#4a4ae6; --or-ink:#3b3bc4; --or-big:#3b3bc4; --gold:#7c7cff;
  --on-or:#ffffff; --control:#7d8799;
  --pos:#15803d; --neg:#dc2626; --warn:#b45309; /* score bands (ring, bars, grades): good --pos, ok --warn, poor --neg */
  /* detected: green as text and icon on light (5.0:1 on --card), and its row tint */
  --ok:#157a3a; --ok-tint:#f1f7ef;
  --v-openai:#10a37f; --v-anthropic:#f0883e; --v-google:#4285f4; --v-perplexity:#20b8cd; --v-script:#f43f5e; --v-shopper:#9aa3b5;
  /* warm dark ramp for product panels */
  --scr:#0b1220; --scr2:#111a2e; --scr3:#18233a; --scrline:rgba(230,234,242,.08);
  --scrtext:#e6eaf2; --scrbody:#b4bfd2; --scrmute:#8a96ad; --scrneg:#f87171;
  --sans:"DM Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
  --disp:"Bricolage Grotesque","DM Sans",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --tint:#eaeef6; --feat:#ececfe;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
/* clip sideways overflow at the page edge, so full-bleed section tints can reach past main */
body{overflow-x:clip}
section[id]{scroll-margin-top:88px}
.w{max-width:1280px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
a{color:var(--or-ink);text-decoration:none}

/* nav */
/* Sticky header (site nav and the /app bar): solid background; the 1px bottom border is always there, transparent at the top,
   so the line appearing once the page scrolls (html.scrolled, header.js) never moves the layout. */
nav,.app-top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid transparent;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
html.scrolled nav,html.scrolled .app-top{border-bottom-color:var(--line);box-shadow:0 1px 8px rgba(15,27,45,.06)}
nav .w{display:flex;align-items:center;height:64px;gap:32px}
.mark{font:600 20px/1 var(--disp);letter-spacing:-.02em;color:var(--ink)}
.mark i{font-style:normal;color:var(--or)}
nav .l{margin-left:auto;display:flex;gap:24px;font-size:14px}
nav .l a{color:var(--body);transition:color .15s var(--ease)}
nav .l a:hover{color:var(--ink)}
nav .l a.on{color:var(--ink);font-weight:500}
nav .menu{display:none;width:40px;height:40px;margin-right:-8px;padding:0;border:0;border-radius:8px;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
nav .menu i{display:block;width:20px;height:2px;border-radius:1px;background:var(--ink);transition:transform .2s var(--ease),opacity .2s var(--ease)}
nav .menu:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
nav.open .menu i:nth-child(1){transform:translateY(7px) rotate(45deg)}nav.open .menu i:nth-child(2){opacity:0}nav.open .menu i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:767px){
  nav .w{gap:12px}nav .pill{margin-left:auto}nav .menu{display:flex}
  nav .l{display:none;position:absolute;top:64px;left:0;right:0;margin:0;flex-direction:column;gap:0;padding:8px max(24px,env(safe-area-inset-left)) 16px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(15,27,45,.06)}
  nav.open .l{display:flex}
  nav .l a{display:block;padding:12px 0;font-size:17px;border-bottom:1px solid var(--line)}nav .l a:last-child{border-bottom:0}
}

/* buttons */
.pill{display:inline-flex;align-items:center;justify-content:center;height:44px;font:500 15px var(--sans);padding:0 20px;border-radius:10px;background:var(--or);color:var(--on-or);border:0;cursor:pointer;text-decoration:none;transition:background-color .15s var(--ease),transform .12s var(--ease)}
nav .pill{height:36px;padding:0 16px;font-size:14px;border-radius:8px}
.pill:hover{background:var(--or-hover)}
.pill:active{transform:scale(.98)}
.pill.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--control)}
.pill.ghost:hover{background:var(--raised)}
.pill:focus-visible,input:focus-visible,nav a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* hero (home) */
.hero{padding:96px 0 0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:24px 64px;align-items:end}
.hero h1{margin:0;font:500 clamp(40px,6vw,72px)/1.04 var(--disp);letter-spacing:-.03em;text-wrap:balance;max-width:13ch}
.hero h1 em{font-style:normal}
.hside{display:grid;gap:24px;padding-bottom:8px}
.hero p{margin:0;font-size:19px;line-height:1.5;color:var(--body);max-width:36ch}
.hero .acts{display:flex;gap:12px;flex-wrap:wrap}


.strip{margin:40px 0 0;display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center;justify-content:center;color:var(--mute);font-size:14px}
.strip span{font:500 16px var(--disp);color:var(--body)}
.strip .vend{display:inline-flex;align-items:center;gap:8px}

.step{border-top:1px solid var(--line2);padding-top:20px;display:grid;gap:8px;align-content:start;min-width:0}
.step h3{margin:0;font:500 20px/1.3 var(--disp)}
.step p{margin:0;color:var(--body);font-size:15px;line-height:1.5}
.step .n{margin-top:12px;font:500 32px/1 var(--disp);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.step .n small{display:block;font:400 13px/1.4 var(--sans);letter-spacing:0;color:var(--mute);margin-top:8px}

.card{background:var(--card);box-shadow:inset 0 0 0 1px var(--line),0 1px 2px rgba(15,27,45,.04);border-radius:16px;padding:24px;min-width:0}

.strip .lnk{font-size:14px}

.live{margin-top:56px;background:var(--scr);border-radius:20px;overflow:hidden;color:var(--scrtext)}
.live .bar{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:center;padding:16px 24px;border-bottom:1px solid var(--scrline);font:400 13px var(--sans);color:var(--scrmute);font-variant-numeric:tabular-nums}
.live .bar b{color:var(--scrtext);font-weight:500;margin-left:8px}
.live .bar b.o{color:var(--gold)}
.live .bar .site{color:var(--scrtext);font-weight:500}
.code{background:var(--scr);color:var(--scrtext);border-radius:16px;padding:24px;font:14px/1.7 var(--mono);overflow-x:auto;white-space:pre}
.code .c{color:var(--scrmute)}.code .o{color:var(--gold)}

/* waitlist */
.cta{margin:128px 0 0;border-radius:20px;padding:80px 32px;text-align:center;display:grid;gap:16px;justify-items:center;background:var(--raised)}
.cta h2{margin:0;font:500 clamp(32px,4.2vw,48px)/1.1 var(--disp);letter-spacing:-.025em;max-width:18ch;text-wrap:balance}
.cta p{margin:0;color:var(--body);font-size:18px;line-height:1.5}
form{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:100%;max-width:480px;margin-top:8px}
input[type=email]{flex:1;min-width:220px;height:44px;font:16px var(--sans);padding:0 16px;border-radius:10px;border:0;box-shadow:inset 0 0 0 1px var(--line2);background:var(--card);color:var(--ink)}
.hp{position:absolute;left:-9999px}
#msg{min-height:24px;font-size:14px;color:var(--body)}
#msg.ok{color:var(--pos)}#msg.err{color:var(--neg)}
footer{padding:40px 0 56px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:13px;color:var(--mute)}
.site-foot{margin-top:96px;border-top:1px solid var(--line);display:block}
/* shared footer (content/shell.ts): brand + mailto, Product, Company, Legal; promise line; bottom row */
.foot-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px 24px}
.foot-brand{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.foot-mail{font-size:14px;color:var(--body)}.foot-mail:hover{color:var(--ink)}
.foot-col{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.site-foot .foot-h{margin:0 0 2px;font:600 12px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.foot-col a{font-size:14px;color:var(--body)}.foot-col a:hover{color:var(--ink)}
.foot-promise{margin:32px 0 0;font-size:13px;color:var(--mute)}
.foot-base{margin:12px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--mute)}
@media (max-width:600px){.foot-grid{grid-template-columns:repeat(2,1fr)}.foot-brand{grid-column:1/-1}}
.page-note{margin:24px 0 0;font-size:13px;color:var(--mute)}
.cta .pill{margin-top:8px}

/* pricing and proof */
.pagehero{padding:96px 0 0;max-width:820px}
.pagehero h1{margin:0 0 20px;font:500 clamp(40px,5.4vw,64px)/1.05 var(--disp);letter-spacing:-.03em;text-wrap:balance}
.pagehero p{margin:0;font-size:19px;line-height:1.55;color:var(--body);max-width:58ch}
.price-note{margin-top:24px;font-size:15px;color:var(--body)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:56px}
.plan{position:relative;display:flex;flex-direction:column;min-height:340px;padding:28px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.plan.featured{box-shadow:inset 0 0 0 2px var(--or)}
.plan .tag{position:absolute;top:18px;right:18px;padding:5px 8px;border-radius:6px;background:var(--raised);color:var(--or-ink);font-size:12px;font-weight:600}
.plan h2{margin:0 0 16px;font:500 23px/1.2 var(--disp)}
.plan .price{margin:0 0 24px;font:500 36px/1 var(--disp);letter-spacing:-.025em}
.plan .price small{font:400 14px var(--sans);letter-spacing:0;color:var(--mute)}
.plan p{margin:0 0 24px;color:var(--body);font-size:15px;line-height:1.55}
.plan ul{display:grid;gap:10px;margin:0 0 28px;padding:0;list-style:none;color:var(--body);font-size:14px;line-height:1.45}
.plan li{position:relative;padding-left:18px}
.plan li::before{content:"";position:absolute;left:0;top:.58em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.plan .pill{align-self:flex-start;margin-top:auto}
.faq{margin:128px 0 0}
.faq h2,.proof-section h2{margin:0 0 32px;font:500 clamp(30px,3.4vw,40px)/1.1 var(--disp);letter-spacing:-.02em;color:var(--ink)}
.faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}
.faq-grid div{padding:24px 0;border-top:1px solid var(--line2)}
.faq h3{margin:0 0 8px;font:500 18px/1.3 var(--disp)}
.faq p{margin:0;color:var(--body);font-size:15px;line-height:1.55}
.proof-section{margin:96px 0 0}
.proof-table{overflow-x:auto;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.proof-table table{width:100%;border-collapse:collapse;background:var(--card);font-size:15px;line-height:1.4}
.proof-table th,.proof-table td{padding:15px 18px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--line)}
.proof-table tr:last-child th,.proof-table tr:last-child td{border-bottom:0}
.proof-table thead th{color:var(--body);font-size:13px;font-weight:500;background:var(--raised)}
.proof-table thead th:first-child{width:50%}
.proof-table tbody th{font-weight:500;color:var(--ink)}
.proof-table td:nth-child(2){white-space:nowrap}
.proof-table tr.hit{background:var(--ok-tint)}
.proof-table .det{color:var(--ok);white-space:nowrap}
.proof-table .det b{font-weight:700}
.proof-table .det span{color:var(--body)}
.proof-table .mut{color:var(--mute)}
.proof-table tr.hit .mut{color:#5d6a80}
.proof-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.proof-stat{padding:28px;border-radius:14px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.proof-stat b{display:block;margin:0 0 10px;font:500 clamp(34px,4vw,48px)/1 var(--disp);letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums}
.proof-stat span{display:block;color:var(--body);font-size:16px;line-height:1.55;max-width:46ch}

/* pilot request */
.pilot-hero{max-width:900px}.pilot-card{max-width:820px;margin:48px 0 96px;padding:32px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.pilot-form{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;max-width:none;margin:0;justify-content:stretch}
.pilot-form label{display:grid;gap:8px;color:var(--ink);font-size:14px;font-weight:600}.pilot-form label span,.pilot-form small,.consent{color:var(--mute);font-weight:400}
.pilot-form input,.pilot-form select,.pilot-form textarea{width:100%;min-width:0;border:0;border-radius:10px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line2);color:var(--ink);font:16px var(--sans)}
.pilot-form input,.pilot-form select{height:46px;padding:0 14px}.pilot-form textarea{padding:12px 14px;resize:vertical}.pilot-form small{text-align:right}.pilot-form .wide{grid-column:1/-1}.pilot-form .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.pilot-form .consent{margin:0;font-size:13px}.form-error{margin-left:14px;color:#a63b32;font-size:14px}.pilot-thanks{padding:24px 0}.pilot-thanks>span{color:var(--or-ink);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.pilot-thanks h2{margin:12px 0;font:500 36px/1.1 var(--disp)}.pilot-thanks p{margin:0 0 24px;color:var(--body)}

@media (max-width:940px){
  .hero{grid-template-columns:1fr;padding-top:56px;gap:24px}.hero h1{font-size:clamp(36px,8vw,56px)}
  .plans{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .hero,.howhero{padding-top:48px}.hero h1,.howhero h1{font-size:40px}
  .cta{padding:56px 20px}
  .pagehero{padding-top:48px}.pagehero h1{font-size:40px}
  .plans,.faq-grid,.proof-stats{grid-template-columns:1fr}
  .plan{min-height:0}.faq,.proof-section{margin-top:80px}.proof-stat{padding:22px 20px}
  .pilot-card{padding:22px 18px;margin-top:32px}.pilot-form{grid-template-columns:1fr}.pilot-form .wide{grid-column:auto}.form-error{display:block;margin:12px 0 0}
  .proof-table th,.proof-table td{padding:13px 14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

.lnk{font-weight:600;text-decoration:underline;text-underline-offset:4px}





/* legal pages (privacy, dpa, terms) */
.draft-banner{margin:32px 0 0;padding:16px 20px;border:2px solid var(--or);border-radius:12px;background:var(--card);font-size:15px;line-height:1.5;color:var(--ink)}
.draft-banner strong{display:block;font:600 18px/1.3 var(--disp);margin-bottom:4px}
.legal{max-width:760px;margin:56px 0 0}
.legal h2{margin:48px 0 12px;font:500 26px/1.2 var(--disp);letter-spacing:-.01em}
.legal h3{margin:28px 0 8px;font:500 18px/1.3 var(--disp)}
.legal p,.legal li{color:var(--body);font-size:16px;line-height:1.6}
.legal ul,.legal ol{padding-left:22px}
.legal li{margin:4px 0}
.legal code{font:14px var(--mono);background:var(--raised);padding:1px 5px;border-radius:4px;color:var(--ink)}
.legal table{width:100%;border-collapse:collapse;margin:12px 0;font-size:14px}
.legal th,.legal td{text-align:left;vertical-align:top;padding:10px 12px;border-top:1px solid var(--line2);color:var(--body)}
.legal th{color:var(--ink);font-weight:600}
.legal .open{padding:0;background:none}
.legal .meta{font-size:14px;color:var(--mute)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.table-wrap table{min-width:520px}

/* plain look: one flat page background, no grid, no glow; every other section sits on a flat tint (full-bleed, no extra markup) */
body{background:var(--bg)}
main.w>section:nth-of-type(even):not(.hero):not(.pagehero):not(.cta){margin-top:72px;padding-top:72px;padding-bottom:72px;background:var(--tint);box-shadow:0 0 0 100vmax var(--tint);clip-path:inset(0 -100vmax)}
@media (max-width:600px){main.w>section:nth-of-type(even):not(.hero):not(.pagehero):not(.cta){margin-top:48px;padding-top:48px;padding-bottom:48px}}

/* pricing: one featured card, a plain label on the monthly plan, a short compare table */

.plan .label{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--mute)}
.plan .fine{font-size:14px;color:var(--mute)}
.plan .price.word{font-size:26px;line-height:1.2}
.price-note a{white-space:nowrap}
.cmp-section{margin-top:96px}
.cmp-section h2{margin:0 0 24px;font:500 clamp(26px,3vw,34px)/1.1 var(--disp);letter-spacing:-.02em}
.cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.cmp{width:100%;min-width:560px;border-collapse:collapse;background:var(--card);font-size:14px;line-height:1.45}
.cmp th,.cmp td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);color:var(--body)}
.cmp thead th{color:var(--ink);font-weight:600;background:var(--raised)}
.cmp tbody th{color:var(--ink);font-weight:600;width:18%}
.cmp tr:last-child th,.cmp tr:last-child td{border-bottom:0}
.cmp .us{background:color-mix(in srgb,#7c7cff 8%,transparent)}
.cmp-note{margin:16px 0 0;font-size:13px;color:var(--mute);line-height:1.5}
.cmp-src{margin:8px 0 0;padding-left:18px;font-size:13px;color:var(--mute);line-height:1.6;overflow-wrap:anywhere}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* faq: grouped, collapsed questions */
.faq-list h2{margin:48px 0 8px;font:600 14px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.faq-list h2:first-child{margin-top:0}
.faq-list details{border-top:1px solid var(--line2);max-width:760px}
.faq-list summary{display:flex;justify-content:space-between;gap:16px;padding:18px 0;cursor:pointer;list-style:none;font:500 18px/1.35 var(--disp);color:var(--ink)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;font:400 22px/1 var(--sans);color:var(--or-ink)}
.faq-list details[open] summary::after{content:"\2212"}
.faq-list summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.faq-list details p{margin:0 0 20px;max-width:62ch}

@media (max-width:760px){.minicmp{grid-template-columns:1fr;margin-top:80px}.cmp-section{margin-top:64px}}
@media (prefers-reduced-motion:reduce){.faq-list summary::after{transition:none}}
.cmp5{min-width:900px}.cmp5 tbody th{width:15%}.cmp5 th.us{background:#ececfe}
.tip{position:relative;display:inline}
.tipt{text-decoration-style:dotted;cursor:help}
.tipbox{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(calc(-50% + var(--dx,0px)));width:max-content;max-width:min(280px,calc(100vw - 32px));padding:10px 12px;border-radius:10px;background:var(--ink);color:var(--bg);font:400 14px/1.45 var(--sans);letter-spacing:0;text-align:left;white-space:normal;box-shadow:0 6px 20px rgba(15,27,45,.18);opacity:0;visibility:hidden;pointer-events:none;z-index:30;transition:opacity .15s var(--ease),visibility .15s}
.tip:hover .tipbox,.tip:focus-within .tipbox,.tip.open .tipbox{opacity:1;visibility:visible}
.tip.below .tipbox{bottom:auto;top:calc(100% + 10px)}
.faq-list details{scroll-margin-top:88px}
/* deep-link targets (site.js): land below the sticky nav, flash indigo for ~1.5 s; static under reduced motion or without JS */
[id]{scroll-margin-top:88px}
.anchor-hit{border-radius:2px;animation:anchorhit 1.5s var(--ease) both}
tr.anchor-hit{animation-name:anchorrow}
.anchor-hit>th:first-child{animation:anchorbar 1.5s var(--ease) both}
/* blocks: the tint reaches 12px past the edges with a 3px indigo bar outside it, so text never moves */
@keyframes anchorhit{0%,30%{background-color:#ececfe;box-shadow:0 0 0 12px #ececfe,0 0 0 0 transparent}100%{background-color:transparent;box-shadow:0 0 0 12px transparent,-15px 0 0 0 transparent}}
@keyframes anchorrow{0%,30%{background-color:#ececfe}100%{background-color:transparent}}
@keyframes anchorbar{0%,30%{box-shadow:inset 0 0 0 0 transparent}100%{box-shadow:inset 0 0 0 0 transparent}}
html:not(.js) :target,html:not(.js) details:has(:target){background:#ececfe;box-shadow:0 0 0 12px #ececfe,0 0 0 0 transparent}
@media (prefers-reduced-motion:reduce){.anchor-hit:not(section){background-color:#ececfe!important;box-shadow:0 0 0 12px #ececfe,0 0 0 0 transparent!important}tr.anchor-hit{box-shadow:none!important}.anchor-hit>th:first-child{box-shadow:inset 0 0 0 0 transparent!important}}
@media (max-width:600px){.proof-table thead th:nth-child(2),.proof-table td:nth-child(2){display:none}.proof-table thead th:first-child{width:auto}.proof-table th,.proof-table td{padding:13px 12px}}
.plan h3{margin:0 0 16px;font:500 23px/1.2 var(--disp)}
.home-pricing{margin-top:128px}
.home-pricing .hp-head h2{margin:0;font:500 clamp(32px,4.2vw,48px)/1.1 var(--disp);letter-spacing:-.025em}
.home-pricing .hp-head p{margin:16px 0 0;font-size:18px;line-height:1.55;color:var(--body);max-width:52ch}
.home-pricing .plans{margin-top:40px}
.hp-more{margin:24px 0 0;font-size:16px}
@media (max-width:760px){.home-pricing{margin-top:80px}}
.proof-table tr.vend th{padding:12px 18px 10px;background:var(--raised);color:var(--ink);font-size:14px;font-weight:600;letter-spacing:.01em;border-bottom:1px solid var(--line2)}
.proof-table tbody+tbody tr.vend th{border-top:1px solid var(--line2)}
/* proof (vendor groups, gtu-detection2): the table sits right under the hero, no section heading or tint band;
   vendor group rows a step darker so they read as groups; "Partly" rows get a neutral half-filled mark, not the green check */
main.w>section.proof-lead:nth-of-type(even):not(.hero):not(.pagehero):not(.cta),.proof-lead{margin-top:40px;padding:0;background:none;box-shadow:none;clip-path:none}
.proof-table tr.vend th{background:color-mix(in srgb,var(--ink) 7%,var(--raised));color:var(--ink);border-bottom-color:color-mix(in srgb,var(--ink) 16%,transparent)}
.proof-table tbody+tbody tr.vend th{border-top-color:color-mix(in srgb,var(--ink) 16%,transparent)}
.proof-table .prt{color:var(--ink);white-space:nowrap}
.proof-table .prt b{font-weight:700}
.proof-table .prt span{color:var(--body);white-space:normal}
/* status marks: inline, left of the label, one line. Own class (pf-st), never a site-wide one: a page-wide .ic card
   style once turned these into empty white boxes (test/site-method-hidden.test.ts guards it) */
.proof-table .pf-st{display:inline-block;width:18px;height:18px;margin:0 8px 0 0;padding:0;vertical-align:-4px;background:none;box-shadow:none;border-radius:0}
.proof-table .det .pf-st{fill:var(--ok)}
.proof-table .det .pf-st path{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.proof-table .prt .pf-st circle{fill:none;stroke:var(--body);stroke-width:1.6}
.proof-table .prt .pf-st path{fill:var(--body)}
.proof-table .tst{color:var(--mute)}
.proof-table .tst b{font-weight:500}
.proof-table .tst .pf-st circle{fill:none;stroke:var(--mute);stroke-width:1.6;stroke-dasharray:2.2 2.2}
@media (min-width:601px){.proof-table thead th:first-child{width:34%}}
.proof-count{margin:0 0 14px;font-size:14px;color:var(--body)}
@media (max-width:600px){.proof-lead{margin-top:28px}.proof-table .det,.proof-table .prt{white-space:normal}}


/* site-qa: "Detects agents from" strip under the hero, vendor marks link to /proof */
.strip{gap:12px 28px}
.strip-k{font-size:14px;color:var(--mute)}
.strip a.vend{display:inline-flex;align-items:center;gap:8px;font:500 17px var(--disp);color:var(--body);transition:color .15s var(--ease)}
.strip a.vend:hover{color:var(--ink)}
.strip a.vend i{width:10px;height:10px;border-radius:50%}
.strip .vlogo{width:18px;height:18px;fill:currentColor}
.strip a:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
@media (max-width:600px){.strip{gap:10px 20px}.strip-k{flex-basis:100%;text-align:center}}




.cmp .us{font-weight:500}
.cmp thead th.us{background:var(--feat);color:var(--or-ink)}

.plans:has(> .plan .price.word),.plans:has(> .ent-line){grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
/* site-qa: Enterprise as a slim line under the plan cards. .ent-line for the new plans markup;
   the :has() rule slims today's Enterprise card (the one priced in words) the same way */
.plans .ent-line,.plans .plan:has(.price.word){grid-column:1/-1;min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:20px 28px}
.plans .plan:has(.price.word) h2,.plans .plan:has(.price.word) h3{margin:0}
.plans .plan:has(.price.word) .price.word{display:none}
.plans .plan:has(.price.word) p{margin:0;flex:1 1 320px}
.plans .plan:has(.price.word) .pill{margin:0 0 0 auto;align-self:center}
@media (max-width:600px){.plans .plan:has(.price.word){padding:20px}.plans .plan:has(.price.word) .pill{margin:0}}

/* site-qa: generic button rows (right-aligned, primary rightmost; stacked on phones, primary last) */
.btn-row{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}.btn-row .form-error{margin:0 auto 0 0}.btn-row .form-error:empty{display:none}
@media (max-width:600px){.btn-row{flex-direction:column;align-items:stretch}.btn-row .pill{width:100%}}

/* headings that take programmatic focus never show a focus box */
h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus{outline:none}

/* compare tables (home teaser and /compare): green check = yes, em dash = no, partial cells stay as short text */
.cmp .yes{display:inline-flex;align-items:flex-start;gap:8px;color:var(--ink)}
.cmp .ck{flex:none;width:18px;height:18px;margin-top:1px;fill:var(--ok)}
.cmp .ck path{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cmp .no{color:var(--mute);font-size:16px}
.cmp .cmp-why{display:block;margin-top:2px;font-size:13px;color:var(--mute)}/* pricing-now: Free/Pro/Scale cards + Enterprise line + people note */
.plans .ent-line{display:flex;margin:0;background:var(--card);border-radius:16px;box-shadow:inset 0 0 0 1px var(--line);color:var(--body);font-size:15px;line-height:1.5}
.plans .ent-line b{color:var(--ink);font-size:17px}
.plans .ent-line span{flex:1 1 320px}
.plans .ent-line .pill{margin:0 0 0 auto}
.plans .plan-people{grid-column:1/-1;margin:0;color:var(--mute);font-size:14px}
@media (max-width:600px){.plans .ent-line{padding:20px}.plans .ent-line .pill{margin:0}}
.plans:has(> .ent-line){grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:940px){.plans:has(> .ent-line){grid-template-columns:minmax(0,1fr)}}
.cmp-wrap{position:relative} /* contains the absolutely-positioned .sr labels in table cells, which otherwise widen the page on phones */
/* chips (app page) */
.chips span.test{color:var(--scrmute);background:transparent;box-shadow:inset 0 0 0 1px var(--scrline)}
.chips{margin-top:40px;display:flex;flex-wrap:wrap;gap:8px}
.chips span{display:inline-flex;align-items:center;gap:8px;font:400 14px var(--sans);height:32px;padding:0 12px;border-radius:6px;background:var(--scr2);box-shadow:inset 0 0 0 1px var(--scrline);color:var(--scrbody)}
.chips span.hot{color:var(--scrtext)}
.chips span i{width:8px;height:8px;border-radius:50%;flex:none}
.chips span.test{color:var(--scrbody)}
.chips span em{font:600 11px/1 var(--sans);font-style:normal;letter-spacing:.03em;text-transform:uppercase;padding:3px 6px;border-radius:4px;background:var(--scr3);color:var(--scrmute)}

/* clarity: home sections. One story: AI agents shop your store -> see them -> choose what each gets */
.hero-acts{gap:24px}
.hero-acts .lnk{font-size:15px}
@media (max-width:600px){.hero-acts{text-align:center}.hero-acts .lnk{padding:8px 0}}
.how,.dashsec,.outcomes,.home-faq{margin-top:128px}
.how h2,.dashsec h2,.outcomes h2,.home-faq h2{margin:0;font:500 clamp(32px,4.2vw,48px)/1.1 var(--disp);letter-spacing:-.025em;color:var(--ink);text-transform:none}
.sec-lede{margin:16px 0 0;font-size:18px;line-height:1.55;color:var(--body);max-width:60ch}
.how-steps{list-style:none;margin:48px 0 0;padding:0;display:grid;gap:72px}
.hs{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:center}
.hs-n{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--or);color:var(--on-or);font:600 17px/1 var(--sans);margin-bottom:16px}
.hs h3{margin:0 0 12px;font:500 clamp(24px,2.6vw,32px)/1.15 var(--disp);letter-spacing:-.02em}
.hs-txt p{margin:0;font-size:17px;line-height:1.55;color:var(--body);max-width:44ch}
.terms{margin:20px 0 0;display:grid;gap:10px;max-width:46ch}
.terms div{font-size:15px;line-height:1.5;color:var(--body)}
.terms dt{display:inline;font-weight:600;color:var(--ink)}
.terms dt::after{content:": "}
.terms dd{display:inline;margin:0}
/* product-UI illustrations, drawn in HTML with brand tokens */
.ui{background:var(--card);border-radius:16px;box-shadow:inset 0 0 0 1px var(--line2),0 12px 32px rgba(15,27,45,.08);overflow:hidden;min-width:0}
.ui-bar{display:flex;align-items:center;gap:6px;padding:12px 16px;background:var(--raised);border-bottom:1px solid var(--line);font-size:13px;color:var(--mute)}
.ui-bar i{width:9px;height:9px;border-radius:50%;background:var(--control);opacity:.45}
.ui-bar span{margin-left:10px;font-weight:500;color:var(--body)}
.ui-bar .ui-eg{margin-left:auto;font-style:normal;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.ui-body{padding:12px;display:grid;gap:8px}
.ui-opt{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 14px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--line)}
.ui-opt b{font-size:15px;font-weight:600;color:var(--ink)}
.ui-opt span{grid-column:1;font-size:13px;color:var(--mute)}
.ui-opt.on{box-shadow:inset 0 0 0 2px var(--or);background:var(--feat)}
.ui-ok{grid-row:1/3;grid-column:2;align-self:center;font:600 13px var(--sans);font-style:normal;color:var(--ok)}
.ui-ok::before{content:"\2713  "}
.ui-foot{margin:4px 2px 0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--body)}
.ui-dot{flex:none;display:inline-block;width:9px;height:9px;border-radius:50%}
.ui-dot.ok{background:var(--ok)}
.ui-row{display:grid;grid-template-columns:auto 130px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:14px}
.ui-row:nth-child(odd){background:var(--raised)}
.ui-row b{font-weight:600;color:var(--ink);white-space:nowrap}
.ui-read{color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-rule{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;font-size:14px;color:var(--ink);font-weight:500}
.ui-rule:nth-child(odd){background:var(--raised)}
.ui-rule>span{display:flex;align-items:center;gap:10px}
.ui-sel{font:500 13px var(--sans);font-style:normal;padding:5px 10px;border-radius:8px;background:var(--card);box-shadow:inset 0 0 0 1px var(--control);color:var(--body);white-space:nowrap}
.ui-sel.on{background:var(--feat);box-shadow:inset 0 0 0 1px var(--or);color:var(--or-ink)}
.ui-sel.bad{color:var(--neg);box-shadow:inset 0 0 0 1px var(--neg)}
/* dashboard screenshot with numbered callouts */
.dashshot{margin:40px 0 0}
.ds-img{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 0 0 1px var(--line2),0 16px 40px rgba(15,27,45,.14);background:var(--scr)}
.ds-img img{display:block;width:100%;height:auto}
.co{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--bg);color:var(--ink);font:700 15px/1 var(--sans);box-shadow:0 0 0 3px var(--or),0 4px 12px rgba(0,0,0,.35)}
.co-key{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 24px}
.co-key li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--body)}
.co-key b{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--or);color:var(--on-or);font-size:13px}
/* outcomes */
.out-grid{margin-top:40px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.out{padding:24px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.out h3{margin:0 0 10px;font:500 21px/1.2 var(--disp);letter-spacing:-.01em}
.out p{margin:0;font-size:15px;line-height:1.55;color:var(--body)}
.home-faq h2{margin-bottom:24px}
.home-faq details p{font-size:16px;line-height:1.55;color:var(--body)}
/* purpose line and term key at the top of /proof, /compare, /pricing */
.pagehero .purpose{font-size:19px}
.page-key{margin:16px 0 0;max-width:80ch;font-size:14px;line-height:1.6;color:var(--body)}
.page-key b{color:var(--ink);font-weight:600}
.pagehero .page-key{margin-top:16px;max-width:80ch;font-size:14px;line-height:1.6}
@media (max-width:1100px){.out-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:940px){.hs{grid-template-columns:1fr;gap:28px}}
@media (max-width:600px){
  .how,.dashsec,.outcomes,.home-faq,.cta{margin-top:80px}
  .how-steps{gap:56px}.out-grid{grid-template-columns:1fr}
  .ui-row{grid-template-columns:auto 1fr}.ui-read{grid-column:2;margin-top:-6px;font-size:13px}
  .co{width:22px;height:22px;font-size:12px;box-shadow:0 0 0 2px var(--or)}
}
/* clarity round 2: a concrete example under the hero line, and the install as three plain choices */
.hero .hero-eg{padding:14px 16px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);font-size:16px;line-height:1.5;color:var(--body);max-width:44ch}
.hero .hero-eg b{color:var(--ink)}
.hs-more{margin-top:16px!important}
.install-choices{display:grid;gap:12px;min-width:0}
.inst-pick{display:grid;gap:4px;padding:20px 22px;border-radius:14px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line2),0 8px 24px rgba(15,27,45,.06);color:var(--ink);transition:box-shadow .15s var(--ease)}
.inst-pick b{font:500 21px/1.2 var(--disp);letter-spacing:-.01em}
.inst-pick span{font-size:16px;line-height:1.45;color:var(--body)}
.inst-pick:hover{box-shadow:inset 0 0 0 2px var(--or),0 8px 24px rgba(15,27,45,.08)}
.inst-pick:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.inst-pick{position:relative}
.ic-tag{justify-self:start;margin-top:6px;padding:3px 8px;border-radius:6px;background:var(--feat);color:var(--or-ink);font:600 12px var(--sans);font-style:normal}
/* polish: plan pick line, hero audit line, install reassurance */
.plans .plan-pick{grid-column:1/-1;margin:0 0 4px;font-size:17px;line-height:1.5;color:var(--ink)}
.hero .hero-sub{font-size:14px;line-height:1.5;color:var(--mute);text-align:right}
.hero .hero-sub .lnk{font-weight:500}
.ic-safe{margin:12px 0 0;font-size:15px;color:var(--body)}
@media (max-width:600px){.hero .hero-sub{text-align:center}}
/* live demo page (real data only) */
.demo-live{margin-top:48px}
.demo-range{display:flex;gap:8px;justify-content:flex-end;margin-bottom:16px}
.demo-range button{font:inherit;padding:8px 14px;border-radius:999px;border:0;background:var(--card);box-shadow:inset 0 0 0 1px var(--line2);color:var(--body);cursor:pointer}
.demo-range button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.demo-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.demo-card{background:var(--card);border-radius:14px;padding:20px;box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:4px}
.demo-card b{font:500 32px/1 var(--disp);color:var(--ink)}.demo-card span{color:var(--body);font-size:14px}
.demo-live h2{margin:40px 0 12px;font:500 24px/1.2 var(--disp)}
.demo-list{background:var(--card);border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.demo-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);align-items:center}
.demo-row:last-child{border-bottom:0}.demo-name{color:var(--ink);font-weight:500}.demo-kind,.demo-act{color:var(--body);font-size:14px}
.demo-wait{grid-column:1/-1;color:var(--body)}.demo-note{margin:16px 0 0;color:var(--body);font-size:14px}
@media (max-width:760px){.demo-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-row{grid-template-columns:minmax(0,1fr) auto}.demo-kind,.demo-act{display:none}}
.home-demo{margin-top:24px}.home-demo .demo-list{margin-top:12px}
/* hero: one left-aligned column (headline, one sentence, Start free + one text link); vendor names as plain text */
.hero{display:block;max-width:960px}
.hero h1{max-width:18ch}
.hero .hero-lede{margin:24px 0 0;font-size:20px;line-height:1.5;color:var(--body);max-width:46ch}
.hero .hero-acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:32px}
.hero .hero-acts .lnk{font-size:16px}
p.strip{justify-content:flex-start;margin:48px 0 0}
p.strip .vend{font:500 17px var(--disp);color:var(--body)}

@media (max-width:600px){p.strip .strip-k{text-align:left}}

/* page shell (content/shell.ts): every page is a full-height column with the footer at the bottom. Short pages
   (body.shell-short: sign-in, setup, contact, cli, app states, 404) get the hero background over the whole first
   screen, fading softly into the page, with no banded section and no hard edge. */
body.shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body.shell>main{flex:1 0 auto;display:flex;flex-direction:column;width:100%;box-sizing:border-box}
body.shell>main>.site-foot{margin-top:auto}
body.shell>main>:has(+ .site-foot){margin-bottom:96px}

body.shell-short main.w>section:nth-of-type(even):not(.hero):not(.pagehero):not(.cta){margin-top:24px;padding-top:0;padding-bottom:0;background:none;box-shadow:none;clip-path:none}
/* The /start card keeps its own card spacing and frame here: the even-section reset above would otherwise strip them. */
body.shell-short #pilot-card{margin-top:48px;padding:32px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
@media (max-width:600px){body.shell-short #pilot-card{margin-top:32px;padding:22px 18px}}
/* Cards on short pages sit in the middle of the space between nav and footer. */
body.shell-short main>.auth,body.shell-short main>.shell-card,body.shell-short main>.app-gate{margin-top:auto;margin-bottom:auto}
.site-nav.app-nav .w{justify-content:space-between}.app-nav .back-site{font-size:14px;color:var(--body)}.app-nav .back-site:hover{color:var(--ink)}
.shell-card .eyebrow{margin:0 0 12px;color:var(--mute);font:600 13px var(--sans);letter-spacing:.06em;text-transform:uppercase}
.shell-card .acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* home live widget: skeleton keeps the final size; an empty or failed load hides it behind one line instead of collapsing */
.home-demo{position:relative}
.demo-skel b,.demo-skel span{color:transparent;background:var(--raised);border-radius:6px}
.demo-row.demo-skel b{min-width:32px}
.demo-pad{visibility:hidden}
.demo-msg{position:absolute;top:0;left:0;margin:0;color:var(--body)}
.home-demo:not(.demo-empty) .demo-msg{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.demo-empty .demo-cards,.demo-empty .demo-list{visibility:hidden}
/* section targets (/#pricing): an indigo outline 14px outside the content that fades; no box-shadow, so the full-bleed section tint stays */
section.anchor-hit{animation:anchorsection 1.5s var(--ease) both;outline:3px solid transparent;outline-offset:14px;border-radius:14px}
@keyframes anchorsection{0%,30%{outline-color:var(--or);background-color:color-mix(in srgb,#ececfe 60%,transparent)}100%{outline-color:transparent}}
@media (prefers-reduced-motion:reduce){section.anchor-hit{outline-color:var(--or)!important}}
/* step 2 picture: names use the shared plain-word labels, which are longer */
.ui-row{grid-template-columns:auto minmax(0,240px) minmax(0,1fr)}
.ui-row b{white-space:normal}
@media (max-width:600px){.ui-row{grid-template-columns:auto 1fr}}

/* signed-in header (content/shell.ts, nav-account.js): Dashboard and an account menu replace "Start free" */
.nav-acct{display:none;align-items:center;gap:14px;margin-left:auto}
html.in .nav-acct{display:flex}
html.in nav .nav-start{display:none}
.nav-dash{font-size:15px;color:var(--body)}.nav-dash:hover{color:var(--ink)}
.acct{position:relative}
.acct-btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 5px;border:0;border-radius:10px;background:transparent;color:var(--ink);font:500 14px var(--sans);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line2)}
.acct-btn:hover{background:var(--raised)}.acct-btn:focus{outline:none}.acct-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.acct-i{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--or);color:var(--on-or);font:600 13px var(--sans)}
.acct-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.acct-e{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-c{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);margin:0 2px 0 0;opacity:.7}
.acct-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:190px;padding:6px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line),0 8px 24px rgba(15,27,45,.12);z-index:30;display:grid}
.acct-menu[hidden]{display:none}
.acct-menu a,.acct-menu button{display:block;width:100%;box-sizing:border-box;text-align:left;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:500 14px var(--sans);cursor:pointer;text-decoration:none}
.acct-menu a:hover,.acct-menu button:hover,.acct-menu a:focus-visible,.acct-menu button:focus-visible{background:var(--raised);outline:none}
.acct-menu [data-signout]{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 8px 8px;padding-top:11px}
@media (max-width:600px){.acct-e,.nav-dash{display:none}.acct-btn{padding:0 8px 0 5px}.nav-acct{gap:8px}html.in nav .menu{display:flex}}

/* ---- plain look (every public page): flat surfaces, rows with thin dividers, no chips, no notches, no gradients or glows, one accent
   (primary buttons and links). Same rule as /app (app.css), enforced by test/plain-site.test.ts. ---- */
.card,.plan,.out,.proof-stat,.demo-card,.demo-list,.cmp-wrap,.proof-table,.ent-line,.plans .ent-line,.auth,.shell-card,.hero .hero-eg{box-shadow:none;border:1px solid var(--line2);border-radius:8px}
.plan.featured{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.plan li{padding-left:0}.plan li::before{content:none}
.plan .tag,.ic-tag,.ui-eg,.opt .tag{position:static;display:inline;padding:0;border:0;border-radius:0;background:none;color:var(--mute);font:600 12px var(--sans);letter-spacing:0;text-transform:none}
.plan .tag{position:absolute;top:24px;right:24px}
.ui-bar i,.ui-dot,.strip a.vend i{display:none}
.hs-n{display:block;width:auto;height:auto;border-radius:0;background:none;color:var(--mute);font:600 14px/1 var(--sans);font-variant-numeric:tabular-nums;margin-bottom:12px}
.hs-n::after{content:"."}
.inst-pick{padding:16px 0;border-radius:0;box-shadow:none;background:none;border-top:1px solid var(--line2)}
.inst-pick:hover{box-shadow:none}.inst-pick:hover b{text-decoration:underline}
.install-choices{display:grid;gap:0}.install-choices .inst-pick:last-child{border-bottom:1px solid var(--line2)}
.ui{background:none;border:1px solid var(--line2);border-radius:8px;box-shadow:none}
.ui-row,.ui-rule,.ui-opt{padding:11px 14px;border-radius:0;box-shadow:none;background:none;border-top:1px solid var(--line)}
.ui-body>:first-child{border-top:0}
.ui-row{grid-template-columns:minmax(0,1fr) auto}
.ui-opt.on{box-shadow:none;background:none}
.ui-sel,.ui-sel.on,.ui-sel.bad{padding:0;border-radius:0;background:none;box-shadow:none;color:var(--mute);font-weight:500}.ui-sel.bad{color:var(--ink);font-weight:600}
.cta{border-radius:0;background:none;border-top:1px solid var(--line2);padding:72px 0 0;margin-top:112px}
.co{box-shadow:none;border:1px solid var(--ink);border-radius:4px;background:var(--bg)}.co-key b{border-radius:0;background:none;color:var(--mute)}
.acct-i{display:none}.acct-i:has(img){display:inline-flex;background:none}
.acct-btn{padding:0 10px}
.acct-menu{border-radius:8px;box-shadow:inset 0 0 0 1px var(--line2)}.acct-menu a,.acct-menu button{border-radius:0}
.pill,nav .pill{border-radius:8px}
.draft-banner{border:1px solid var(--line2);border-radius:8px}
.proof-table tr.hit{background:none}
.proof-table tr.hit .det{color:var(--ink)}
.chips span{border-radius:4px;background:none;box-shadow:inset 0 0 0 1px var(--scrline)}
.chips span i{display:none}
.anchor-hit{border-radius:0}
.live,.code{border-radius:8px}
.tipbox{box-shadow:none;border:1px solid var(--line2)}
@media (max-width:940px){.plan .tag{top:20px;right:20px}}
.cmp .us,.cmp5 th.us,.cmp thead th.us{background:none;color:var(--ink);font-weight:700}
.live .bar b.o,.code .o{color:inherit}
/* /start: the page is the card; the step choices, audit and install boxes are single-level */
.pilot-card,body.shell-short #pilot-card{border:0;box-shadow:none;background:none;padding:0;border-radius:0}
@media (max-width:600px){.pilot-card,body.shell-short #pilot-card{padding:0}}
.ui-bar .ui-eg{border:0;border-radius:0;padding:0}.ui-body{padding:0}
/* Compare table on phones: it scrolls inside its frame, the first column stays put, and every column is reachable */
.cmp-wrap{max-width:100%}
.cmp tbody th,.cmp thead th:first-child{position:sticky;left:0;z-index:1;background:var(--bg);box-shadow:1px 0 0 var(--line)}
@media (max-width:600px){.cmp{min-width:760px}.cmp tbody th{width:132px;min-width:132px;max-width:132px}.cmp td{min-width:150px}}
