/* NightWarden home + pricing, v3: Clifford's own mockups reproduced; small sourced retention changes tagged v3-N in the HTML. Static, no JS.
   Type: Figtree (SIL OFL 1.1), self-hosted. Grid: 12 columns, 1240px max. Spacing: multiples of 8px. */
@font-face{font-family:"Figtree";src:url("fonts/figtree-latin.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
:root{
--accent:#0450FC;--accent-hover:#033FCB;--accent-on-dark:#7FB0FF;--cyan:#38C6F4;--on-accent:#FFFFFF;
--ink:#071433;--muted:#4A5878;--eyebrow:#3F5088;--line:#DDE5F3;--soft:#F5F8FD;--tint:#EAF4FE;--white:#FFFFFF;
--night:#061A3A;--night-2:#0B2A5E;--night-text:#FFFFFF;--night-muted:#C3D0EA;
--font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;
--r:8px;--rb:6px;--wrap:1240px;--gut:24px;--focus:#FFB020;--hdh:72px}
@media(max-width:640px){:root{--gut:16px}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdh) + 16px)}
body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.5;color:var(--ink);background:var(--white);overflow-wrap:break-word}
img,svg{max-width:100%}
a{color:var(--accent)}
a:hover{color:var(--accent-hover)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--s2);top:-80px;background:var(--white);color:var(--ink);padding:var(--s1) var(--s2);border-radius:var(--r);z-index:30}
.skip:focus{top:var(--s1)}
.ic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gut));margin:0 auto;padding:0 var(--gut)}
h1,h2,h3,p{margin:0}
h1,h2,h3{letter-spacing:-.03em;line-height:1.08;font-weight:800;text-wrap:balance}
h2{font-size:2.75rem}
@media(max-width:900px){h2{font-size:2.25rem}}
@media(max-width:640px){h2{font-size:1.875rem}}
.eyebrow{font-size:.8125rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--eyebrow);margin-bottom:var(--s1)}
.eyebrow.b{color:var(--accent)}
.dark .eyebrow,.eyebrow.on-dark{color:var(--cyan)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);min-height:48px;padding:0 var(--s3);border-radius:var(--rb);font:inherit;font-weight:700;text-decoration:none;border:2px solid var(--accent);background:var(--white);color:var(--accent);cursor:pointer;text-align:center;transition:background-color .15s,color .15s,border-color .15s}
.btn:hover{background:var(--tint);color:var(--accent-hover)}
.btn.pri{background:var(--accent);color:var(--on-accent)}
.btn.pri:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}
.btn.sm{min-height:44px;padding:0 var(--s2)}
.btn.lg{min-height:60px;padding:0 var(--s5);font-size:1.1875rem}
.btn.block{width:100%}
.btn.ghost-dark{background:transparent;border-color:var(--night-text);color:var(--night-text)}
.btn.ghost-dark:hover{background:rgba(255,255,255,.14);color:var(--white)}
.link{display:inline-flex;align-items:center;gap:var(--s1);font-weight:700;text-decoration:none;color:var(--accent)}
.link:hover{text-decoration:underline}
.link .ic{width:20px;height:20px}
.dark .link,.cta-band .link{color:var(--accent-on-dark)}

/* top bar + header */
.topbar{background:var(--night);color:var(--night-muted);font-size:.875rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:var(--s2);padding-top:10px;padding-bottom:10px}
.topbar ul{display:flex;gap:var(--s1);list-style:none;margin:0;padding:0}
.topbar li+li::before{content:"\2022";margin-right:var(--s1)}
@media(max-width:760px){.topbar ul{display:none}}
.hd{position:sticky;top:0;z-index:20;background:var(--white);border-bottom:1px solid var(--line)}
.hd .wrap{display:flex;align-items:center;gap:var(--s5);min-height:var(--hdh)}
.logo{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.75rem;letter-spacing:-.04em}
.logo:hover{color:var(--ink)}
.logo .moon{width:40px;height:40px;fill:currentColor;stroke:none}
.nav{display:flex;gap:var(--s4);margin-right:auto;margin-left:var(--s2)}
.nav a{display:inline-flex;align-items:center;gap:4px;color:var(--ink);text-decoration:none;font-weight:600;padding:var(--s1) 0;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--accent)}
.nav a[aria-current]{border-bottom-color:var(--accent)}
.hd-r{display:flex;gap:var(--s2);margin-left:auto}
.nav+.hd-r{margin-left:0}
@media(max-width:1000px){.hd .wrap{gap:var(--s3)}.nav{gap:var(--s3)}.logo{font-size:1.5rem}.logo .moon{width:34px;height:34px}}
/* mobile: the link strip sits above and scrolls away; logo + Log in + Start free trial stay stuck (v3-3) */
@media(max-width:860px){
 :root{--hdh:60px}
 .hd{top:-45px}
 .hd .wrap{flex-wrap:wrap;gap:0 var(--s1);min-height:0;padding-top:0;padding-bottom:0}
 .nav{order:1;width:100%;margin:0;gap:var(--s2);font-size:.9375rem;height:44px;align-items:center;border-bottom:1px solid var(--line);overflow-x:auto;background:var(--white)}
 .nav a{white-space:nowrap}
 .hd .logo{order:2;height:60px;flex:0 1 auto;font-size:1.25rem}
 .hd .logo .moon{width:28px;height:28px}
 .hd-r{order:3;margin-left:auto;height:60px;align-items:center;gap:4px}
 html{scroll-padding-top:76px}
}
@media(max-width:480px){.hd .logo{font-size:1.125rem;gap:8px}.btn.sm{padding:0 12px;font-size:.9375rem}.btn.sm.login{border-color:transparent;background:transparent}}
@media(max-width:380px){.hd .logo span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}

/* dark hero (home) */
.dark{background:var(--night);color:var(--night-text)}
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--night)}
.hero-img{position:absolute;top:0;right:0;z-index:-2;width:72%;height:100%;object-fit:cover;object-position:50% 52%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40%);mask-image:linear-gradient(90deg,transparent 0,#000 40%)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,26,58,.96) 0,rgba(6,26,58,.82) 34%,rgba(6,26,58,.2) 62%,rgba(6,26,58,.05) 100%)}
.hero-in{position:relative;padding-top:72px;padding-bottom:64px;min-height:560px}
.hero-copy{max-width:620px}
.hero h1{font-size:4rem;color:var(--white);letter-spacing:-.035em;line-height:1.07}
.hero h1 .sub{display:block;margin-top:10px;font-size:2.5rem;line-height:1.1;letter-spacing:-.03em}
.hero .lede{margin-top:var(--s3);font-size:1.5rem;line-height:1.45;font-weight:400;color:var(--night-text);max-width:600px}
.hero .cta{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.hero .note{margin-top:var(--s2);font-size:1rem;color:var(--night-text)}
.hero-tags{list-style:none;margin:0;padding:0}
.hero-tags li{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 22px;border:1.5px solid #4AA8FF;border-radius:10px;background:rgba(7,34,82,.86);backdrop-filter:blur(3px);box-shadow:0 0 22px rgba(56,150,255,.45),inset 0 0 14px rgba(56,150,255,.18);font-size:1.125rem;font-weight:700;color:var(--white)}
.hero-tags .ic{color:var(--cyan);width:30px;height:30px}
.hero-tags li::after{content:"";position:absolute;width:2px;background:#4AA8FF;box-shadow:0 0 8px #4AA8FF}
.hero-tags li::before{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#7FD4FF;box-shadow:0 0 10px #38C6F4}
.hero-tags .t1{left:calc(var(--gut) + 640px);top:60px}
.hero-tags .t1::after{left:50%;top:100%;height:44px}.hero-tags .t1::before{left:calc(50% - 4px);top:calc(100% + 44px)}
.hero-tags .t2{right:var(--gut);top:80px;transform:translateX(-24px)}
.hero-tags .t2::after{left:50%;top:100%;height:64px}.hero-tags .t2::before{left:calc(50% - 4px);top:calc(100% + 64px)}
.hero-tags .t3{right:var(--gut);bottom:84px;transform:translateX(-10px)}
.hero-tags .t3::after{left:50%;bottom:100%;height:44px}.hero-tags .t3::before{left:calc(50% - 4px);bottom:calc(100% + 44px)}
.photo-credit{position:absolute;right:var(--s2);bottom:6px;font-size:.75rem;color:var(--night-muted);background:rgba(6,26,58,.8);padding:0 6px;border-radius:4px}
.photo-credit a{color:var(--night-text)}
@media(max-width:1280px){.hero-tags .t1{left:auto;right:calc(var(--gut) + 250px)}}
@media(max-width:1100px){.hero h1{font-size:3.25rem}.hero h1 .sub{font-size:2rem}.hero-tags .t1{display:none}}
@media(max-width:900px){.hero-img{width:100%;-webkit-mask-image:none;mask-image:none;opacity:.55}.hero::before{background:linear-gradient(180deg,rgba(6,26,58,.9),rgba(6,26,58,.82))}
 .hero-in{min-height:0}.hero-tags{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}.hero-tags li{position:static;transform:none!important}.hero-tags li::before,.hero-tags li::after{display:none}.hero-tags .t1{display:flex}.photo-credit{display:none}}
@media(max-width:640px){.hero-in{padding-top:var(--s5);padding-bottom:var(--s5)}.hero h1{font-size:2.5rem}.hero h1 .sub{font-size:1.5rem}.hero .lede{font-size:1.125rem}.btn.lg{min-height:56px;padding:0 var(--s3);flex:1 1 100%;font-size:1.0625rem}.hero-tags li{padding:10px 16px;font-size:1rem}.hero-tags .ic{width:24px;height:24px}}

/* small moon, home hero (decorative) */
.hero-in::after{content:"";position:absolute;right:calc(var(--gut) + 60px);top:36px;width:34px;height:34px;border-radius:50%;background:#EEF3FF;-webkit-mask-image:radial-gradient(circle at 72% 30%,transparent 0 62%,#000 63%);mask-image:radial-gradient(circle at 72% 30%,transparent 0 62%,#000 63%);filter:drop-shadow(0 0 8px rgba(200,220,255,.7))}
@media(max-width:900px){.hero-in::after{display:none}}
/* product strip + plan strip */
.strip{background:var(--white)}
.strip ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.strip li{display:flex;align-items:center;justify-content:center;gap:var(--s2);padding:30px var(--s2);font-weight:700}
.strip li+li{border-left:1px solid var(--line)}
.strip .ic{color:var(--accent);width:40px;height:40px;stroke-width:1.6}
.strip{border-bottom:1px solid var(--line)}
@media(max-width:640px){.strip ul{grid-template-columns:1fr}.strip li{justify-content:flex-start;padding:var(--s2) 0}.strip li+li{border-left:0;border-top:1px solid var(--line)}}
.plans{background:var(--soft);border-bottom:1px solid var(--line)}
.plans .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s5);padding-top:12px;padding-bottom:12px}
.plans ul{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s5);list-style:none;margin:0 auto 0 0;padding:0}
.plans li{display:flex;align-items:baseline;gap:8px}
.plans b{font-weight:700}.plans .v{font-weight:800;font-size:1.25rem}.plans small{font-size:1rem;color:var(--muted)}
@media(max-width:640px){.plans ul{gap:4px var(--s3)}.plans .link{min-height:44px}}

/* sections + cards */
.sec{padding:56px 0 var(--s5)}
@media(max-width:640px){.sec{padding:var(--s5) 0 var(--s4)}}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s3)}
.cards{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s2);list-style:none;margin:0;padding:0}
.card{grid-column:span 4;position:relative;display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s3) var(--s3) 28px;border:1px solid var(--line);border-radius:var(--r);background:var(--white);min-height:136px;box-shadow:0 1px 2px rgba(7,20,51,.03)}
.card>.ic{width:40px;height:40px;color:var(--accent);margin-top:4px;stroke-width:1.6}
.card h3{font-size:1.1875rem;letter-spacing:-.02em;margin-bottom:6px}
.card p{color:var(--muted);padding-right:32px}
.card .go{position:absolute;right:var(--s3);bottom:var(--s2);color:var(--accent)}
.card.on{background:var(--tint);border-color:#9EC3F6}
.card a.stretch{position:absolute;inset:0;border-radius:var(--r);text-indent:-9999px;overflow:hidden}
.card:hover{border-color:var(--accent);box-shadow:0 8px 24px rgba(7,20,51,.08)}
@media(max-width:1000px){.card{grid-column:span 6}}
@media(max-width:640px){.card{grid-column:1/-1;min-height:0;padding:var(--s3)}}

/* visibility band */
.band{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));margin-top:var(--s2)}
.band-v{grid-column:1/span 6;min-height:408px;position:relative;overflow:hidden;background:var(--night)}
.band-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.band-c{grid-column:7/span 6;background:var(--tint);padding:var(--s5) max(var(--gut),calc((100vw - var(--wrap))/2)) var(--s5) 56px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--s3)}
.band-c .eyebrow{margin:0}
.band-c h2{font-size:2.5rem}
.band-c .lead{font-size:1.25rem;color:var(--muted)}
.ticks{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);list-style:none;margin:0;padding:0;font-weight:600}
.ticks li{display:flex;align-items:center;gap:var(--s1)}
.ticks .ic{width:24px;height:24px;color:var(--accent)}
@media(max-width:900px){.band-v{grid-column:1/-1;min-height:280px}.band-c{grid-column:1/-1;padding:var(--s5) var(--gut)}.band-c h2{font-size:2.25rem}}
@media(max-width:640px){.band-c h2{font-size:1.875rem}}

/* built around + chips */
.sec h2{margin-bottom:var(--s3)}
.sec-h h2{margin-bottom:0}
.sec-h .link{margin-bottom:6px}
.two{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s2);list-style:none;margin:0;padding:0}
.two .card{grid-column:span 6;min-height:0;padding:var(--s3) var(--s3) var(--s3) 28px}
.two .card>div{display:flex;flex-direction:column;gap:6px}
.two .card h3{margin:0}
.two .card .link{position:relative;margin-top:6px;min-height:44px}
@media(max-width:800px){.two .card{grid-column:1/-1}}
.chips{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);list-style:none;margin:var(--s2) 0 0;padding:0;color:var(--muted);font-size:.9375rem}
.chips li+li::before{content:"\2022";margin-right:var(--s2)}

/* FAQ (v3-6) */
.faq-sec{padding-top:var(--s3)}
.faq{margin-top:var(--s3);display:grid;gap:10px;max-width:100%}
.faq details{border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);font-weight:700;cursor:pointer;list-style:none;min-height:56px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:var(--soft);border-radius:var(--r)}
.faq summary .ic{color:var(--accent);width:24px;height:24px;stroke-width:2.2}
.faq summary .minus{display:none}
.faq details[open] summary .plus{display:none}
.faq details[open] summary .minus{display:block}
.faq details[open]{border-color:#9EC3F6}
.faq .a{padding:0 var(--s3) var(--s3);color:var(--muted);max-width:72ch}

/* CTA band + footer */
.cta-band{position:relative;overflow:hidden;background:var(--night);color:var(--night-text);margin-top:var(--s2)}
.cta-band::after,.p-hero::after{content:"";position:absolute;border-radius:50%;background:radial-gradient(circle at 38% 38%,#F4F7FF 0,#C3D0F0 38%,#7E93C6 70%,#4A6199 100%);-webkit-mask-image:radial-gradient(circle at 78% 30%,transparent 0 68%,#000 69%);mask-image:radial-gradient(circle at 78% 30%,transparent 0 68%,#000 69%);filter:drop-shadow(0 0 22px rgba(160,190,255,.45));pointer-events:none}
.cta-band::after{right:-60px;top:-40px;width:300px;height:300px}
.cta-band .wrap{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;padding-top:var(--s5);padding-bottom:var(--s5)}
.cta-band h2{font-size:2.25rem;color:var(--white);margin:0}
.cta-band .t p{margin-top:var(--s1);font-size:1.25rem;color:var(--night-text)}
.cta-band .t{flex:1 1 360px;max-width:620px}
.cta-band .acts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-right:140px;max-width:400px}
.cta-band .acts .link{flex:1 1 100%;min-height:32px}
.cta-band .acts .note{flex:1 1 100%;font-size:1rem;color:var(--night-text);margin:0}
@media(max-width:1000px){.cta-band .acts{margin-right:0}.cta-band::after{display:none}}
@media(max-width:640px){.cta-band h2{font-size:1.875rem}.cta-band .btn{flex:1 1 100%}}
.ft{background:var(--white)}
.ft .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4);padding-top:var(--s4);padding-bottom:var(--s4)}
.ft .logo{font-size:1.75rem}
.ft nav{display:flex;flex-wrap:wrap;gap:0 var(--s4)}
.ft nav a{color:var(--ink);text-decoration:none;font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.ft nav a:hover{text-decoration:underline}
.ft small{display:block;width:100%;text-align:right;color:var(--muted);font-size:.875rem}
@media(max-width:640px){.ft small{text-align:left}.ft nav{gap:0 var(--s3)}}

/* pricing */
.p-hero{position:relative;overflow:hidden;background:linear-gradient(110deg,var(--night) 35%,var(--night-2))}
.p-hero::after{right:3%;top:-6px;width:230px;height:230px}
.p-hero::before{content:"";position:absolute;right:0;bottom:0;width:46%;height:70px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 70' preserveAspectRatio='none'%3E%3Cpath fill='%23030B1C' d='M0 70V50l8-14 6 10 8-24 8 26 8-16 6 12 10-30 10 34 8-14 8 10 8-28 8 30 10-18 8 12 10-34 10 38 8-12 8 8 8-26 8 30 10-20 8 14 10-30 10 36 8-12 8 10 8-24 8 26 10-16 8 12 10-32 10 36 8-14 8 10 8-26 8 28 10-18 8 12 10-30 10 34 8-12 8 8 8-24 8 26 10-16 8 12 10-32 10 36 8-14 8 10 8-26 8 28 10-18 8 12 10-30 10 34 8-12 8 8 8-24 8 26 10-16 8 12V70z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat}
.p-hero .wrap{position:relative;z-index:2;padding-top:var(--s5);padding-bottom:var(--s4)}
.p-hero h1{font-size:3.25rem;color:var(--white);line-height:1.08}
.p-hero h1 span{display:block}
.p-hero p.sub{margin-top:var(--s2);font-size:1.5rem;color:var(--night-text)}
@media(max-width:640px){.p-hero h1{font-size:2.25rem}.p-hero p.sub{font-size:1.125rem}.p-hero::after{display:none}.p-hero::before{width:100%;height:36px}}
.limits{display:flex;gap:var(--s2);align-items:flex-start;margin-top:var(--s2);padding:14px var(--s3);background:var(--tint);border:1px solid #BDD6F5;border-radius:var(--r)}
.limits .ic{color:var(--accent);width:32px;height:32px;margin-top:2px}
.limits b{display:block;font-size:1.125rem}
.limits span{color:var(--muted)}
.plan-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s3);margin-top:var(--s5);align-items:stretch}
.plan{grid-column:span 4;position:relative;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4) var(--s3) var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--white);margin-top:var(--s2)}
.plan.rec{margin-top:0;border:2px solid #7FA6F6;background:var(--tint);box-shadow:0 12px 32px rgba(4,80,252,.12);padding-top:var(--s5)}
.plan .tag{position:absolute;top:-2px;left:-2px;right:-2px;background:var(--accent);color:var(--on-accent);font-size:.8125rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-align:center;padding:6px var(--s1);border-radius:var(--r) var(--r) 0 0}
.plan h2,.plan h3{font-size:1.5rem;margin:0}
.price{display:flex;align-items:baseline;gap:var(--s1);font-size:3.75rem;font-weight:800;letter-spacing:-.04em;line-height:1}
.price small{font-size:1.5rem;font-weight:600;color:var(--muted);letter-spacing:0}
.plan .desc{color:var(--muted);font-size:1.0625rem}
.plan ul.ft-list{list-style:none;margin:var(--s1) 0 var(--s2);padding:0;display:grid;gap:12px}
.plan ul.ft-list li{display:flex;gap:12px;align-items:flex-start;color:#2A3858}
.plan ul.ft-list .ic{width:22px;height:22px;color:var(--accent);margin-top:1px}
.plan .more{font-weight:700;color:var(--muted)}
.plan .btn{margin-top:auto}
.plan .more+.btn{margin-top:var(--s1)}
.fine{margin-top:var(--s2);color:var(--muted);font-size:.9375rem}
.fine.c{text-align:center}
@media(max-width:1000px){.plan{grid-column:1/-1}.plan.rec{margin-top:var(--s2)}.plan-grid{margin-top:var(--s3)}}
.ent{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s4);margin-top:var(--s4);padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.ent-ic{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--r);background:var(--tint);color:var(--accent)}
.ent-ic .ic{width:36px;height:36px}
.ent .eyebrow{margin-bottom:4px}
.ent h2{font-size:1.75rem;margin:0 0 4px}
.ent p{color:var(--muted)}
.ent .right{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s1);padding-left:var(--s4);border-left:1px solid var(--line)}
.ent .right b{font-size:1.5rem;letter-spacing:-.02em}
@media(max-width:860px){.ent{grid-template-columns:auto 1fr;padding:var(--s3)}.ent .right{grid-column:1/-1;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:var(--s2);flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}}
@media(max-width:480px){.ent{gap:var(--s2)}.ent-ic{width:48px;height:48px}.ent-ic .ic{width:28px;height:28px}.ent h2{font-size:1.375rem}.ent .right .btn{width:100%}}
.extras{background:var(--tint);padding:var(--s5) 0 var(--s5);margin-top:var(--s5)}
.extras h2{margin:0}
.extra-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s2);margin-top:var(--s3);list-style:none;padding:0}
.extra{grid-column:span 4;display:flex;align-items:flex-start;gap:var(--s2);padding:var(--s3);background:var(--white);border:1px solid var(--line);border-radius:var(--r)}
.extra>.ic{width:44px;height:44px;color:var(--accent);stroke-width:1.6}
.extra h3{font-size:1.1875rem;letter-spacing:-.02em;margin-bottom:6px}
.extra p{color:var(--ink)}
.extra .vp{margin-top:2px}
.extra .link{margin-top:6px;min-height:32px}
@media(max-width:1000px){.extra{grid-column:1/-1}}
.cmp-sec{padding-top:var(--s5)}
.cmp-sec h2{margin:0}
.cmp-wrap{margin-top:var(--s3);border:1px solid var(--line);border-radius:var(--r);overflow:clip}
.cmp{width:100%;border-collapse:collapse}
.cmp th,.cmp td{padding:14px var(--s3);text-align:center;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.cmp th:first-child,.cmp td:first-child{border-left:0}
.cmp thead th{position:sticky;top:var(--hdh);background:var(--soft);color:var(--ink);font-weight:700;z-index:2}
.cmp thead th:first-child{text-align:left}
.cmp .pp{display:block;font-weight:600;color:var(--muted);font-size:.9375rem}
.cmp .pp small{font-size:.875rem}
.cmp tbody th{text-align:left;font-weight:500}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp td{vertical-align:middle}
.cmp td .ic{display:block;margin:0 auto;color:var(--accent);width:24px;height:24px;stroke-width:2.2}
.cmp td .no{color:var(--muted);font-weight:700}
@media(max-width:640px){.cmp th,.cmp td{padding:12px 8px;font-size:.9375rem}.cmp tbody th{font-size:.9375rem}.cmp thead th{top:60px}}
@media(max-width:420px){.cmp{table-layout:fixed}.cmp th:first-child{width:34%}.cmp th,.cmp td{padding:10px 2px;font-size:.875rem}.cmp tbody th{padding-left:8px}.cmp .pp{font-size:.75rem}.cmp .pp small{font-size:.75rem}.cmp td .ic{width:20px;height:20px}}

@media(prefers-reduced-motion:no-preference){.hero-tags li{animation:rise .6s ease both}.hero-tags .t2{animation-delay:.1s}.hero-tags .t3{animation-delay:.2s}@keyframes rise{from{opacity:0}to{opacity:1}}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* v3-shots: real product UI (demo data). Neutral CSS browser frame + phone frame, one radius, one soft shadow */
.browser{margin:0;background:#fff;border:1px solid rgba(255,255,255,.22);border-radius:12px;overflow:hidden;box-shadow:0 22px 48px rgba(2,10,30,.42),0 2px 8px rgba(2,10,30,.25)}
.browser-bar{display:flex;align-items:center;gap:6px;height:24px;padding:0 12px;background:#EEF2F9;border-bottom:1px solid #D9E1F0}
.browser-bar i{width:8px;height:8px;border-radius:50%;background:#C3CDE2}
.browser picture,.browser img,.phone picture,.phone img,.dialog picture,.dialog img{display:block;width:100%;height:auto}
.phone{margin:0;border:6px solid #0B1220;border-radius:28px;overflow:hidden;background:#0B1220;box-shadow:0 0 0 1px rgba(255,255,255,.16),0 20px 40px rgba(2,10,30,.5)}
.dialog{margin:0;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px rgba(7,20,51,.08),0 18px 40px rgba(7,20,51,.28)}
/* hero: dashboard framed over the night photo, field app check-in layered at its lower left; his three tags kept */
.hero-ui{position:absolute;top:64px;right:var(--gut);width:clamp(420px,calc(100% - 720px),580px)}
.hero-ui .ph-hero{position:absolute;left:-60px;bottom:-56px;width:160px}
.hero-ui .hero-tags li{transform:none;animation:none}
.hero-ui .hero-tags li::before,.hero-ui .hero-tags li::after{display:none}
.hero-ui .hero-tags .t1{display:flex;left:36px;right:auto;top:-30px;bottom:auto}
.hero-ui .hero-tags .t2{left:auto;right:-14px;top:-30px;bottom:auto}
.hero-ui .hero-tags .t3{left:auto;right:-14px;top:auto;bottom:-26px}
.hero-in::after{right:calc(var(--gut) + 20px);top:14px}
@media(max-width:1100px){
.hero-img{width:100%;-webkit-mask-image:none;mask-image:none;opacity:.55}.hero::before{background:linear-gradient(180deg,rgba(6,26,58,.9),rgba(6,26,58,.82))}
.hero-in{min-height:0}.hero-in::after{display:none}.photo-credit{display:none}
.hero-ui{position:relative;top:auto;right:auto;width:100%;max-width:640px;margin-top:var(--s5)}
.hero-ui .ph-hero{left:auto;right:-8px;bottom:-40px;width:128px}
.hero-ui .hero-tags{display:flex;flex-wrap:wrap;gap:var(--s2);margin:calc(var(--s5) + 12px) 0 0}
.hero-ui .hero-tags li,.hero-ui .hero-tags .t1,.hero-ui .hero-tags .t2,.hero-ui .hero-tags .t3{position:static;display:flex}
}
@media(max-width:640px){.hero-ui{margin-top:var(--s4)}.hero-ui .ph-hero{width:96px;right:-4px;bottom:-36px;border-width:4px;border-radius:20px}.hero-ui .hero-tags{margin-top:var(--s5)}}
/* band: Control Room roster + field app checkpoints on the night panel */
.band-v{display:flex;align-items:center;padding:var(--s5) 0 var(--s5) var(--s5);background:linear-gradient(135deg,#16295A,#071735)}
.band-v .browser{width:78%}
.band-v .ph-band{position:absolute;right:var(--s4);bottom:var(--s4);width:132px}
@media(max-width:900px){.band-v{min-height:0;padding:var(--s4) var(--s4) calc(var(--s4) + 40px)}.band-v .browser{width:84%}.band-v .ph-band{width:104px;right:var(--s2);bottom:var(--s2);border-width:4px;border-radius:20px}}
@media(max-width:480px){.band-v{padding:var(--s3) var(--s2) calc(var(--s3) + 24px)}.band-v .ph-band{width:84px;right:var(--s1);bottom:var(--s1)}}
/* "Built around" cards: screenshot panel under the text, cropped at the bottom edge */
.two .card{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}
.two .card .card-body{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s3) var(--s3) 28px}
.card-media{position:relative;margin:0;padding:var(--s3) var(--s3) 0;background:var(--tint);border-top:1px solid var(--line);max-height:268px;overflow:hidden;pointer-events:none}
.card-media .browser{border-color:#D3DDEE;border-bottom:0;border-radius:12px 12px 0 0;box-shadow:0 10px 28px rgba(7,20,51,.14)}
.card-media .dialog{position:absolute;right:calc(var(--s3) + 12px);top:calc(var(--s3) + 44px);width:34%;max-width:200px}
@media(max-width:480px){.two .card .card-body{padding:var(--s3)}.card-media{padding:var(--s2) var(--s2) 0}.card-media .dialog{right:var(--s3);top:calc(var(--s2) + 30px);width:36%}}
/* v3-shots fixes */
.two .card>.card-body{display:flex;flex-direction:row;gap:var(--s3)}
.two .card .card-body>div{display:flex;flex-direction:column;gap:6px}
.hero-ui .ph-hero{left:-34px}
.hero-ui .hero-tags .t2{left:200px;right:auto}
.band-v .browser{width:86%}
@media(max-width:900px){.band-v .browser{width:88%}}
@media(max-width:1100px){.hero-ui .ph-hero{left:auto}.hero-ui .hero-tags .t2{left:auto}}
@media(max-width:640px){.hero-ui .ph-hero{width:80px;right:8px;bottom:-22px}.hero-ui .hero-tags{margin-top:44px}}
.hero-shot{position:relative}

/* footer: live nightwarden.co.uk pages (added in the site repo, not in final-v3) */
.ft .ft-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3) var(--s4);width:100%;padding-top:var(--s3);border-top:1px solid var(--line)}
.ft .ft-cols h2{font-size:.875rem;font-weight:800;color:var(--ink);margin:0 0 var(--s1)}
.ft .ft-cols ul{list-style:none;margin:0;padding:0}
.ft .ft-cols a{color:var(--ink);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.ft .ft-cols a:hover{text-decoration:underline}
@media(max-width:640px){.ft .ft-cols{grid-template-columns:1fr}}

/* logo: the file served on nightwarden.co.uk (/images/nightwarden-logo-white.png, white artwork); darkened with a filter on the white header/footer */
.logo img{display:block;height:36px;width:auto;filter:brightness(0)}
.ft .logo img{height:40px}
@media(max-width:1000px){.logo img{height:32px}}
@media(max-width:640px){.hd .logo img{height:28px}.ft .logo img{height:32px}}
@media(max-width:380px){.hd .logo img{height:24px}}

/* contact + security guard software pages: v3 chrome, old wording */
.p-hero .eyebrow+h1{margin-top:0}
.p-hero .g-cta{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.p-hero .g-cta .btn{min-height:52px}
@media(max-width:640px){.p-hero .g-cta .btn{flex:1 1 100%}}
.p-hero h1{max-width:900px}
.p-hero p.sub{max-width:820px}
.ct{padding-top:var(--s6);padding-bottom:var(--s6)}
.ct-g{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.ct .lede{font-size:1.5rem;line-height:1.3;font-weight:700;letter-spacing:-.02em}
.ct .det{margin:var(--s3) 0 0;display:grid;grid-template-columns:max-content 1fr;gap:var(--s2) var(--s4);padding:var(--s3) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ct .det dt{font-size:.8125rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--eyebrow);padding-top:3px}
.ct .det dd{margin:0;font-size:1.125rem}
.ct .det a{font-weight:700}
.ct .small{margin-top:var(--s3);color:var(--muted)}
.ct-f{padding:var(--s4);border:1px solid var(--line);border-radius:var(--r);background:var(--soft);display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3)}
.ct-f .lede{font-size:1.375rem}
@media(max-width:900px){.ct-g{grid-template-columns:1fr;gap:var(--s4)}}
@media(max-width:640px){.ct{padding-top:var(--s5);padding-bottom:var(--s5)}.ct .lede{font-size:1.25rem}.ct .det{grid-template-columns:1fr;gap:4px}.ct .det dd{margin-bottom:var(--s2)}.ct-f{padding:var(--s3)}.ct-f .btn{width:100%}}
.g-prose{padding-top:var(--s6)}
.g-prose .pr{max-width:820px}
.g-prose .pr p{font-size:1.125rem;line-height:1.65;color:#2A3858}
.g-prose .pr p+p{margin-top:var(--s3)}
.g-feat{background:var(--soft);padding:var(--s6) 0;margin-top:var(--s6)}
.g-feat h2{max-width:820px;margin-bottom:var(--s4)}
.g-f8{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.g-f8 li{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3);box-shadow:0 1px 2px rgba(7,20,51,.03)}
.g-f8 h3{font-size:1.25rem;margin-bottom:var(--s1)}
.g-f8 p{color:var(--muted)}
@media(max-width:1100px){.g-f8{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.g-f8{grid-template-columns:1fr}.g-feat,.g-prose{padding-top:var(--s5)}.g-feat{padding-bottom:var(--s5);margin-top:var(--s5)}.g-prose .pr p{font-size:1.0625rem}}
.cta-band{margin-top:0}
.g-more{padding:var(--s6) 0}
.g-more h2{font-size:2.25rem;margin-bottom:var(--s3)}
.g-more ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2)}
.g-more a{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:72px;padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--white);color:var(--ink);font-weight:700;font-size:1.125rem;text-decoration:none;box-shadow:0 1px 2px rgba(7,20,51,.03)}
.g-more a:hover{background:var(--tint);color:var(--accent-hover)}
.g-more a span{color:var(--accent)}
@media(max-width:900px){.g-more ul{grid-template-columns:1fr}.g-more h2{font-size:1.875rem}.g-more{padding:var(--s5) 0}}
