/* homepage sections, revision 4 (feat/conversion-2026-10-23). Generated by site-conv/build.py from Pixel's handoff (site-conv/mock-src); all rules scoped to body.hp. */
body.hp .dateline{border-bottom:1px solid var(--line);font:700 .7rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}
body.hp .dateline .wrap{display:flex;flex-wrap:wrap;gap:2px 18px;padding-top:8px;padding-bottom:8px}
body.hp .dateline b{color:var(--tx2);font-weight:700}
body.hp .tile{flex:0 0 auto;width:42px;height:30px;border-radius:6px;background:#fff;display:grid;place-items:center}
body.hp .tile svg{width:30px;height:auto;display:block}
body.hp .hp-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:0 24px 0 26px;border-radius:6px;border:2px solid var(--acc);background:var(--acc);color:#04101f;font:800 1.08rem var(--font);text-decoration:none;white-space:nowrap}
body.hp .hp-btn::after{content:"";width:9px;height:9px;border-right:3px solid currentColor;border-top:3px solid currentColor;transform:rotate(45deg);margin-left:-2px}
body.hp .hp-btn:hover{background:#7dbbff;border-color:#7dbbff}
body.hp .hero{position:relative;overflow:hidden;padding:28px 0 0;background:radial-gradient(90% 45% at 60% 55%,#0a0f1c 0%,#000 100%)}
body.hp .hero-g{position:relative;display:flex;flex-direction:column}
body.hp .hero-c{position:relative;z-index:2}
body.hp .badge{display:inline-block;border:1px solid var(--amb);color:var(--amb);font:800 .7rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:3px}
body.hp .kick{margin-top:18px;font:700 .78rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
body.hp .hero h1{font-size:clamp(1.9rem,7.6vw,3.3rem);font-weight:700;letter-spacing:-.035em;line-height:1.02;margin:12px 0 16px}
body.hp .hero h1 em{font-style:normal;color:var(--acc)}
body.hp .hero .sub{color:var(--tx2);font-size:1.1rem;max-width:34em}
body.hp .hero .sub a{color:var(--tx);text-underline-offset:3px}
body.hp .hero .sub-b{margin-top:12px;font-size:1rem}
body.hp .cta-w{margin-top:24px}
body.hp .cta-n{margin-top:12px;color:var(--mu);font-size:.88rem;max-width:34em}
body.hp .cta-n a{color:var(--tx2)}
body.hp .elig{margin-top:22px;padding:2px 0 2px 14px;border-left:3px solid var(--amb);color:var(--tx2);font-size:.93rem;max-width:34em}
body.hp .elig b{color:var(--tx)}
body.hp .hg{order:2;position:relative;z-index:0;-webkit-mask-image:linear-gradient(transparent 0,#000 30%,#000 72%,transparent);mask-image:linear-gradient(transparent 0,#000 30%,#000 72%,transparent);height:calc(140vw * .86);margin:-120px -16px 0;overflow:hidden}
body.hp .hg-g{position:absolute;top:0;width:140vw;left:calc(50% - 62vw)}
body.hp .hg-g img{display:block;position:relative;z-index:0;width:100%;height:auto}
body.hp .hg-pins{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
body.hp .hg-pulse{transform-box:fill-box;transform-origin:center;animation:hg-pl 3.2s ease-out infinite}
@media (prefers-reduced-motion:reduce){body.hp .hg-pulse{animation:none}}
body.hp .hg-lab{position:absolute;z-index:3;display:inline-flex;align-items:center;white-space:nowrap;font-size:.875rem;line-height:1;color:#e8ecf3;background:#07090dE6;border:1px solid var(--acc);border-radius:999px;padding:6px 10px;box-shadow:0 0 0 1px var(--acc),0 4px 18px #0009;transform:translate(calc(-100% - 12px),-50%)}
body.hp .hg-lab b{font-weight:800}
body.hp .hg-ring{position:absolute;z-index:3;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;border:1.5px solid #9cccff;box-shadow:0 0 10px #4da3ffaa;pointer-events:none}
body.hp .hg-dc{left:60.49%;top:53.33%}
@media (max-width:359px){body.hp .hg-lab .hg-lx{display:none}}
body.hp .sec-sum{border-top:1px solid var(--line)}
body.hp .what li{padding:15px 0;border-top:1px solid var(--line);font-size:1.02rem;line-height:1.55;color:var(--tx2)}
body.hp .what li:first-child{border-top:0;padding-top:0}
body.hp .what b{display:block;color:var(--tx);font-size:1.12rem;font-weight:700;letter-spacing:-.01em;margin-bottom:2px}
body.hp .samp{margin-top:30px;border-top:2px solid var(--tx);padding-top:16px}
body.hp .samp-h{font:700 .875rem/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--tx2);margin-bottom:2px}
body.hp .sl li{padding:14px 0;border-top:1px solid var(--line)}
body.hp .sl li:first-child{border-top:0}
body.hp .dl-w{font:500 .9rem/1.45 var(--mono);color:var(--tx2)}
body.hp .dl{color:var(--tx2)}
body.hp .dl-n{color:var(--mu);white-space:nowrap}
body.hp .dl-n.urgent{color:#ffb454}
body.hp .sl h3{margin-top:3px;font-size:1.05rem;font-weight:600;line-height:1.35;letter-spacing:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.hp .sl h3 a{color:var(--tx);text-decoration:none}
body.hp .sl h3 a:hover{text-decoration:underline}
body.hp .sl-m{margin-top:3px;font-size:.9rem;color:var(--mu)}
body.hp .sum-f{margin-top:6px;color:var(--mu);font-size:.9rem;max-width:44em}
body.hp .sum-f a{color:var(--tx2)}
body.hp .sec{display:grid;gap:14px;grid-template-columns:1fr;padding:34px 0;border-top:1px solid var(--line)}
body.hp .sec-h .no{font:800 .78rem var(--mono);letter-spacing:.1em;color:var(--acc)}
body.hp .sec-h .no::before{content:"";display:inline-block;width:20px;height:2px;background:var(--acc);transform:skewX(-45deg);margin-right:10px;vertical-align:middle}
body.hp .sec-h h2{font-size:clamp(1.55rem,5.5vw,2.1rem);font-weight:800;letter-spacing:-.025em;margin-top:8px}
body.hp .sec-h p{margin-top:8px;color:var(--mu);font-size:.95rem;max-width:22em}
body.hp .rail{position:relative;display:grid;gap:26px}
body.hp .rail::before{content:"";position:absolute;left:25px;top:30px;bottom:30px;width:2px;background:linear-gradient(var(--acc),var(--line2))}
body.hp .rail li{position:relative;padding-left:72px}
body.hp .rail .num{position:absolute;left:0;top:-2px;width:52px;height:38px;display:grid;place-items:center;background:#000;font:800 1.55rem/1 var(--mono);letter-spacing:-.04em;color:var(--acc)}
body.hp .rail h3{font-size:1.22rem;font-weight:800;letter-spacing:-.015em}
body.hp .rail p{margin-top:4px;color:var(--tx2);max-width:36em}
body.hp .cats{margin-top:26px;border-top:1px solid var(--line2);display:grid;grid-template-columns:1fr}
body.hp .cats li{border-bottom:1px solid var(--line)}
body.hp .cats a{display:flex;align-items:center;justify-content:space-between;min-height:46px;color:var(--tx);text-decoration:none;font-weight:700}
body.hp .cats a:hover{color:var(--acc)}
body.hp .cats a span{font:700 .72rem var(--mono);color:var(--mu)}
body.hp .cats-h{margin-top:30px;font:800 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
body.hp .cov{margin:0 0 16px;color:var(--tx2);font-size:.93rem;max-width:44em}
body.hp .cov b{font:800 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin-right:10px}
body.hp .ledger{border-top:2px solid var(--tx)}
body.hp .lr{display:grid;gap:10px;grid-template-columns:1fr;padding:20px 0 20px 14px;border-bottom:1px solid var(--line2);position:relative}
body.hp .lr.free::before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;background:var(--acc)}
body.hp .lr .nm{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
body.hp .lr h3{font-size:1.2rem;font-weight:800}
body.hp .lr .st{font:800 .66rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#04101f;background:var(--acc);padding:2px 8px;border-radius:3px}
body.hp .lr .pr{font:800 2.5rem/1 var(--mono);letter-spacing:-.05em;margin-top:6px}
body.hp .lr .pr small{font:700 .78rem var(--mono);letter-spacing:.02em;color:var(--mu)}
body.hp .lr .gist{margin-top:6px;color:var(--tx2);font-size:.95rem}
body.hp .lr ul{display:grid;gap:7px;align-content:start}
body.hp .lr li{position:relative;padding-left:22px;font-size:.96rem;color:var(--tx)}
body.hp .lr li::before{content:"";position:absolute;left:0;top:.72em;width:12px;height:2px;background:var(--acc)}
body.hp .lr li.nt{color:var(--mu);font-size:.86rem;padding-left:0}
body.hp .lr li.nt::before{content:none}
body.hp .pl-f{margin-top:22px;display:grid;gap:12px;justify-items:start}
body.hp .pl-f p{color:var(--mu);font-size:.9rem;max-width:44em}
body.hp .qa{border-top:2px solid var(--tx)}
body.hp .qa details{border-bottom:1px solid var(--line2)}
body.hp .qa summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px;padding:12px 2px;font-weight:800;font-size:1.02rem}
body.hp .qa summary::-webkit-details-marker{display:none}
body.hp .qa summary::after{content:"+";font:700 1.4rem/1 var(--mono);color:var(--acc);flex:0 0 auto}
body.hp .qa details[open] summary::after{content:"\2212"}
body.hp .qa .a{padding:0 2px 16px;color:var(--tx2);font-size:.96rem;display:grid;gap:8px;max-width:44em}
body.hp .qa-m{margin-top:14px}
body.hp .run p{color:var(--tx2);max-width:40em}
body.hp .run p+p{margin-top:8px}
@media (min-width:880px){body.hp .hero{padding:0}
body.hp .hero-g{display:block;min-height:800px}
body.hp .hero-c{width:560px;padding:64px 0 60px}
body.hp .hg{position:absolute;inset:0 -200px 0 auto;width:960px;height:auto;margin:0;overflow:visible;z-index:0;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
body.hp .hg-g{top:44px;left:0;width:960px}
body.hp .hg-lab{transform:translate(calc(-100% - 14px),-50%);font-size:.9rem;padding:7px 12px}
body.hp .hg-ring{width:22px;height:22px;margin:-11px 0 0 -11px}
body.hp .what{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
body.hp .what li:nth-child(2){border-top:0;padding-top:0}
body.hp .sec{grid-template-columns:260px 1fr;gap:40px;padding:56px 0}
body.hp .sec-h{position:sticky;top:84px;align-self:start}
body.hp .cats{grid-template-columns:1fr 1fr;column-gap:36px}
body.hp .lr{grid-template-columns:230px 1fr;gap:30px;padding:26px 0 26px 18px}
body.hp .lr.free::before{top:26px;bottom:26px}}
/* variables and base type of the mock's :root/body (above the carried range): warm text colours and the 17px base, homepage only */
body.hp{--panel:#0b0b10;--line2:#3a3a46;--tx:#f4f0e8;--tx2:#d9d4ca;--mu:#aeaab4;--amb:#ffd166;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:17px;line-height:1.6}
body.hp .sec-h{display:block}
body.hp .st{width:auto}
body.hp .wrap.hero-g{max-width:1180px}
body.hp .sec{padding-top:34px;padding-bottom:34px}
body.hp main ul,body.hp main ol{margin:0;padding:0;list-style:none}
body.hp .hdr-auth .auth-up{display:none}
body.hp{padding-bottom:0}
html[data-as=free] body.hp .hp-cta,html[data-as=pro] body.hp .hp-cta{display:none}
body.hp .hp-in{display:none}
/* Oct 24 bottom-of-hero tweak (hero sign-up block = button + note): sits a little higher on every width; on phones it is also centred a little. Desktop keeps the left column. */
body.hp .cta-w{margin-top:14px}
@media (max-width:879px){body.hp .hero{padding-top:12px}}
@media (min-width:880px){body.hp .hero-c{padding-top:40px}}
@media (max-width:640px){body.hp .cta-w{text-align:center}body.hp .cta-n{margin-left:auto;margin-right:auto}}
html[data-as=free] body.hp .hp-in,html[data-as=pro] body.hp .hp-in{display:inline-flex;align-items:center;min-height:44px;font-weight:800}
/* globe pin pulse (revision 4): scope_css cannot parse @keyframes, so the one rule is added here, unscoped (the name is unique) */
@keyframes hg-pl{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}

/* Ottawa marker (feat/canada): same as .hg-dc (Washington) with Ottawa's position, from the old live globe (is-560a7d98) */
body.hp .hg-ot{left:60.23%;top:47.70%}
