/* Layout: sticky white header; white pages with cool mist bands; navy for page banners and brand moments. Marcellus (a Roman inscriptional serif that echoes the logo's lettering) for headings, Lato for reading. Teal = action, blue = wayfinding. Single light look by design. */
:root{
  --white:#FFFFFF; --mist:#F2F6F9; --line:#DAE3EA; --line-2:#C3CFD9;
  --navy:#0B1F3A; --navy-2:#07152A; --navy-3:#13305A; --muted:#4A5A6E; --on-navy:#C9D6E6;
  --teal:#0A6E6C; --teal-dk:#075452; --teal-hi:#13CABA; --teal-tint:#E3F3F2;
  --blue:#185ABD; --blue-hi:#5EC8F2; --violet:#7A5BD6; --violet-hi:#B9A4F5; --emerald-hi:#1FA67A; --error:#A3261E;
  --brand:"Cinzel","Trajan Pro",Georgia,serif;
  --display:"Marcellus","Optima",Georgia,"Times New Roman",serif;
  --body:"Lato","Helvetica Neue",Arial,sans-serif;
  --s-1:15px; --s0:18px; --s1:21px; --s2:clamp(28px,4.4vw,40px); --s3:clamp(36px,6.4vw,60px);
  --radius:2px; --max:1200px; --read:660px; --hdr:72px;
  color-scheme:light;
}
@media (min-width:960px){:root{--hdr:112px}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--white);color:var(--navy);font-family:var(--body);font-size:var(--s0);line-height:1.65;-webkit-font-smoothing:antialiased;padding-bottom:80px}
@media (min-width:900px){body{padding-bottom:0}}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:41;background:var(--white)}
img{max-width:100%;display:block;height:auto}
a{color:var(--blue)}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
h1:focus,[tabindex="-1"]:focus{outline:none}
.skip{position:absolute;left:-9999px;top:8px;background:var(--white);padding:12px 16px;z-index:60}
.skip:focus{left:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.band{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.inner{max-width:var(--max);margin:0 auto}
.mist{background:var(--mist)}
.navy{background:var(--navy);color:var(--white)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.14;margin:0;text-wrap:balance;letter-spacing:.005em}
h2{font-size:var(--s2)}
h3{font-size:var(--s1)}
p{margin:0}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--violet)}
.navy .eyebrow,.banner .eyebrow{color:var(--violet-hi)}
.lead{font-size:var(--s1);color:var(--muted);max-width:44ch;line-height:1.55}
.navy .lead,.navy p{color:var(--on-navy)}
.stripe{display:grid;gap:3px;width:72px}
.stripe i{height:4px;display:block}
.stripe i:nth-child(1){background:var(--violet)}.stripe i:nth-child(2){background:var(--teal-hi)}.stripe i:nth-child(3){background:var(--emerald-hi)}
.head{display:flex;flex-direction:column;gap:14px;max-width:var(--read)}
.head p{font-size:var(--s1);color:var(--muted);line-height:1.55}
.navy .head p{color:var(--on-navy)}
.sec{padding-block:64px}
@media (min-width:900px){.sec{padding-block:104px}}
.sec>.inner{display:grid;gap:40px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border-radius:var(--radius);border:2px solid var(--teal);font:700 17px/1.2 var(--body);letter-spacing:.01em;text-decoration:none;cursor:pointer;text-align:center;transition:background .2s,color .2s,border-color .2s}
.btn-primary{background:var(--teal);color:var(--white)}
.btn-primary:hover{background:var(--teal-dk);border-color:var(--teal-dk)}
.btn-ghost{background:transparent;color:var(--teal)}
.btn-ghost:hover{background:var(--teal);color:var(--white)}
.navy .btn-primary{background:var(--teal-hi);border-color:var(--teal-hi);color:var(--navy)}
.navy .btn-primary:hover{background:#3FE0D1;border-color:#3FE0D1}
.navy .btn-ghost{border-color:var(--white);color:var(--white)}
.navy .btn-ghost:hover{background:var(--white);color:var(--navy)}
.textlink{font-weight:700;color:var(--blue);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:1px;justify-self:start;align-self:flex-start}
.textlink:hover{color:var(--teal)}
.navy .textlink{color:var(--blue-hi)}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* proto note */
.proto{background:var(--navy-2);color:var(--on-navy);font-size:14px;text-align:center;padding:8px 16px}
.proto b{color:#fff}
/* STICKY HEADER */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--white);border-bottom:1px solid transparent;transition:box-shadow .25s,border-color .25s}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 6px 24px rgba(11,31,58,.07)}
.util{background:var(--navy);color:var(--white);font-size:14px;font-weight:700;letter-spacing:.02em;max-height:44px;overflow:hidden;transition:max-height .25s}
.util-in{max-width:var(--max);margin:0 auto;min-height:36px;display:flex;align-items:center;justify-content:center;gap:16px;text-align:center}
.util a{color:var(--white)}
.u-right{display:none}
.site-header.scrolled .util{max-height:0}
@media (min-width:960px){.util-in{justify-content:space-between;text-align:left}.u-right{display:inline;font-weight:400;color:var(--on-navy)}}
.site-header .inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:var(--hdr);transition:height .25s}
.logo{display:block;flex:none}
.logo img{height:62px;width:auto;transition:height .25s}
@media (min-width:960px){
  .logo img{height:100px}
  .site-header.scrolled .inner{height:76px}
  .site-header.scrolled .logo img{height:70px}
}
.nav-desk{display:none}
@media (min-width:960px){
  .nav-desk{display:flex;align-items:center;gap:30px}
  .nav-desk a{color:var(--navy);text-decoration:none;font-size:16px;font-weight:700;padding:8px 0;border-bottom:2px solid transparent}
  .nav-desk a:hover,.nav-desk a[aria-current="page"]{border-bottom-color:var(--teal-hi)}
  .nav-desk a.btn{color:var(--white);min-height:48px;padding:0 20px;border:2px solid var(--teal);margin-left:6px}
  .nav-desk a.btn:hover{border-color:var(--teal-dk)}
  .nav-desk a.btn[aria-current="page"]{background:var(--teal-dk);border-color:var(--teal-dk)}
  .menu-btn,.hdr-call{display:none}
}
.hdr-right{display:flex;align-items:center;gap:8px}
.hdr-call{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:2px solid var(--teal);border-radius:var(--radius);color:var(--teal);font:700 15px var(--body);text-decoration:none}
.menu-btn{min-height:44px;min-width:44px;padding:0 14px;background:var(--navy);border:2px solid var(--navy);border-radius:var(--radius);font:700 15px var(--body);color:var(--white);cursor:pointer}
@media (min-width:960px){.hdr-right{display:none}}
.nav-mob{border-top:1px solid var(--line);background:var(--white);max-height:calc(100vh - var(--hdr));overflow:auto}
.nav-mob ul{list-style:none;margin:0 auto;padding:6px 0 20px;max-width:var(--max)}
.nav-mob a{display:flex;align-items:center;min-height:58px;font-size:20px;font-weight:700;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line)}
.nav-mob a[aria-current="page"]{color:var(--teal)}
.nav-mob a.btn{margin-top:16px;width:100%;color:var(--white);border:2px solid var(--teal);justify-content:center}
.nav-mob .phone{margin-top:14px;font-size:17px;color:var(--muted)}
/* PLACEHOLDERS: paint-chip swatch panels, clearly labeled */
.ph{position:relative;overflow:hidden;isolation:isolate;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
  linear-gradient(160deg,var(--t1,#EFE7DA),var(--t2,#DCCDB6))}
.ph::before{content:"";position:absolute;right:9%;top:12%;width:clamp(54px,20%,120px);height:62%;transform:rotate(-7deg);background:linear-gradient(180deg,var(--c1,#E9DFCF) 0 30%,#fff 30% 34%,var(--c2,#C9B79B) 34% 64%,#fff 64% 68%,var(--c3,#8F7A5C) 68%);border:6px solid #fff;border-bottom-width:22px;box-shadow:0 10px 30px rgba(11,31,58,.12)}
.ph::after{content:"";position:absolute;right:calc(9% + clamp(30px,11%,66px));top:16%;width:clamp(54px,20%,120px);height:62%;transform:rotate(5deg);background:linear-gradient(180deg,var(--c4,#DCE6EA) 0 30%,#fff 30% 34%,var(--c5,#9DB6C2) 34% 64%,#fff 64% 68%,var(--c6,#0B1F3A) 68%);border:6px solid #fff;border-bottom-width:22px;box-shadow:0 10px 30px rgba(11,31,58,.12);z-index:-1}
.ph img.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;display:block}
.ph .tag{position:absolute;left:14px;bottom:14px;z-index:3;background:rgba(255,255,255,.96);color:var(--navy);font-size:13px;line-height:1.35;padding:8px 11px;max-width:calc(100% - 28px)}
.ph .tag b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.ph-ext{--t1:#F1E6D5;--t2:#D9C2A0;--c1:#F3ECDF;--c2:#D8C2A2;--c3:#9C7F5B;--c4:#E6ECE9;--c5:#8FA8A0;--c6:#2F4253}
.ph-int{--t1:#F3F2EE;--t2:#DEE4E7;--c1:#F4F1EA;--c2:#C9D3D6;--c3:#5F7680;--c4:#EEF0E8;--c5:#B6C2A8;--c6:#0A6E6C}
.ph-com{--t1:#EEF1F3;--t2:#CED8DF;--c1:#F2F2EF;--c2:#AFC0CC;--c3:#13305A;--c4:#ECEDEA;--c5:#A7A9A3;--c6:#4A5A6E}
.ph-mural{--t1:#F2E9DF;--t2:#D8C4AE;--c1:#EADBC8;--c2:#C9896A;--c3:#6E8A6A;--c4:#EFE7DC;--c5:#B9A27C;--c6:#7A5BD6}
.ph-prep{--t1:#F1EFEA;--t2:#D9D6CE;--c1:#FFFFFF;--c2:#2E7FB0;--c3:#D9D3C7;--c4:#F2EEE6;--c5:#C8BFAE;--c6:#185ABD}
.ph.plain::before,.ph.plain::after{display:none}
/* HERO */
.hero .inner{display:grid;gap:30px;padding-block:32px 52px}
.hero h1{font-family:var(--brand);font-weight:600;font-size:var(--s3);line-height:1.08;max-width:12ch}
.hero .copy{display:flex;flex-direction:column;gap:20px}
.hero .actions .btn{flex:1 1 230px}
.assure{font-size:var(--s-1);color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 18px}
.assure span::before{content:"";display:inline-block;width:6px;height:6px;background:var(--teal-hi);margin-right:8px;vertical-align:middle}
.hero-media{position:relative}
.hero-media .ph{aspect-ratio:4/3}
.hero-media::before{content:"";position:absolute;inset:14px -10px -10px 14px;border:2px solid var(--teal-hi);z-index:-1}
.hero{isolation:isolate}
@media (min-width:900px){
  .hero .inner{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:72px;padding-block:72px 104px}
  .hero .actions .btn{flex:0 0 auto}
  .hero-media .ph{aspect-ratio:5/6}
}
/* WHY */
.why .inner{display:grid;gap:40px}
.points{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.points li{display:grid;gap:6px;padding:22px 0;border-bottom:1px solid var(--line)}
.points p{color:var(--muted);max-width:52ch}
.vision{background:var(--navy);color:var(--white);padding:36px 24px;display:grid;gap:22px;justify-items:center;text-align:center;align-content:center}
.vision img{width:min(240px,64%)}
.vision blockquote{margin:0;font-family:var(--display);font-size:var(--s1);line-height:1.45;max-width:34ch}
.vision small{display:block;margin-top:12px;font-family:var(--body);font-size:13px;font-weight:700;color:var(--blue-hi);letter-spacing:.16em}
@media (min-width:900px){
  .why .inner{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:stretch}
  .points li{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:baseline}
  .vision{padding:52px 40px}
}
/* EDITORIAL FEATURE ROWS (services) */
.feature-list{display:grid;gap:64px}
.feature{display:grid;gap:26px;align-items:center}
.feature .media{position:relative;min-width:0}
.feature .ph{aspect-ratio:4/3}
.feature .copy{display:grid;gap:16px;max-width:var(--read);min-width:0}
.feature h2,.feature h3.big{font-size:var(--s2)}
.feature p{color:var(--muted)}
.ticks{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}
.ticks li{padding-left:28px;position:relative}
.ticks li::before{content:"";position:absolute;left:2px;top:.5em;width:12px;height:7px;border-left:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(-45deg)}
.ticks.two{grid-template-columns:1fr}
@media (min-width:640px){.ticks.two{grid-template-columns:1fr 1fr;column-gap:24px}}
.note{font-size:var(--s-1);color:var(--muted);border-left:3px solid var(--blue);padding-left:12px}
.num-label{font-family:var(--display);font-size:15px;color:var(--teal);letter-spacing:.12em}
@media (min-width:900px){
  .feature-list{gap:112px}
  .feature{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px}
  .feature.flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .feature.flip .media{order:2}
  .feature .ph{aspect-ratio:7/6}
}
.callout{background:var(--teal-tint);border-left:3px solid var(--teal);padding:20px 22px;max-width:var(--read)}
/* STEPS */
.steps{list-style:none;margin:0;padding:0;display:grid;counter-reset:s}
.steps li{position:relative;display:grid;grid-template-columns:56px 1fr;gap:16px;padding-bottom:32px}
.steps li::before{counter-increment:s;content:counter(s);font-family:var(--display);font-size:22px;width:48px;height:48px;border:2px solid var(--violet);color:var(--violet);display:flex;align-items:center;justify-content:center;background:var(--white);position:relative;z-index:1}
.steps li:not(:last-child)::after{content:"";position:absolute;left:23px;top:48px;bottom:0;width:2px;background:var(--line-2)}
.steps h3{margin-top:8px}
.steps p{color:var(--muted);margin-top:6px;max-width:46ch}
@media (min-width:900px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:44px}
  .steps li{grid-template-columns:1fr;gap:10px;padding-bottom:0}
  .steps li:not(:last-child)::after{left:64px;right:-28px;top:23px;bottom:auto;width:auto;height:2px}
}
/* DAILY */
.daily .inner{display:grid;gap:44px;align-items:center}
.daily h2{font-size:var(--s3)}
.daily .copy{display:flex;flex-direction:column;gap:18px;max-width:var(--read)}
.daily .copy>p{font-size:var(--s1);line-height:1.55}
.facts{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:10px;color:var(--white)}
.facts li{padding-left:24px;position:relative}
.facts li::before{content:"";position:absolute;left:0;top:.66em;width:12px;height:2px;background:var(--teal-hi)}
.device-wrap{justify-self:center;display:grid;gap:10px;justify-items:center}
.device{width:min(300px,100%);background:#020B18;border-radius:36px;padding:14px;box-shadow:0 0 0 1px var(--navy-3),0 0 60px rgba(19,202,186,.18)}
.screen{background:#F2F4F6;border-radius:24px;padding:16px 14px 18px;display:grid;gap:10px;font-size:15px;line-height:1.45;color:var(--navy)}
.screen .who{text-align:center;font-size:13px;color:var(--muted);padding-bottom:4px}
.msg{background:var(--white);border-radius:16px 16px 16px 4px;padding:10px 12px;max-width:92%}
.msg small{display:block;font-size:12px;color:var(--muted)}
.clip{position:relative;aspect-ratio:4/5;border-radius:14px;max-width:92%}
.clip .play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:4}
.clip .play span{width:58px;height:58px;border-radius:50%;background:rgba(11,31,58,.82);display:flex;align-items:center;justify-content:center}
.clip .play span::after{content:"";border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}
.clip .len{position:absolute;right:10px;top:10px;z-index:4;background:rgba(11,31,58,.82);color:#fff;font-size:12px;padding:2px 7px;border-radius:10px}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:92%}
.thumbs .ph{aspect-ratio:1;border-radius:8px}
.sample-note{font-size:13px;color:var(--on-navy)}
@media (min-width:900px){.daily .inner{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:80px}}
/* BEFORE/AFTER */
.ba-wrap{display:grid;gap:12px;min-width:0}
.ba{position:relative;aspect-ratio:16/10;width:100%;max-width:960px;overflow:hidden;--pos:50%}
.ba .layer{position:absolute;inset:0}
.ba .before{filter:saturate(.25) brightness(.92) sepia(.35)}
.ba .after{clip-path:inset(0 0 0 var(--pos))}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;background:var(--white);transform:translateX(-50%);z-index:5;pointer-events:none}
.ba .handle::after{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;border-radius:50%;background:var(--white);border:3px solid var(--teal);transform:translate(-50%,-50%)}
.ba .lab{position:absolute;top:12px;z-index:5;background:rgba(11,31,58,.88);color:#fff;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px}
.ba .lab.l{left:12px}.ba .lab.r{right:12px}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:6;margin:0}
.ba-btns{display:flex;flex-wrap:wrap;gap:8px}
.seg{min-height:48px;padding:0 18px;border:2px solid var(--line-2);background:var(--white);font:700 16px var(--body);color:var(--navy);border-radius:var(--radius);cursor:pointer}
.seg[aria-pressed="true"]{border-color:var(--teal);background:var(--teal-tint);color:var(--teal-dk)}
.cap{font-size:var(--s-1);color:var(--muted)}
/* CONFIDENCE */
.conf .inner{display:grid;gap:40px}
.standards{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.standards li{padding:18px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.standards b{font-family:var(--display);font-weight:400;font-size:var(--s1)}
.standards span{color:var(--muted)}
.creds{display:grid;gap:12px;align-content:start}
.cred{display:grid;gap:4px;padding:16px 18px;background:var(--white);border:1px solid var(--line)}
.cred .k{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.cred .v{font-size:var(--s1);font-weight:700}
.cred .v small.cred-note{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}
.cred .v.pending{color:var(--muted);font-weight:400;font-style:italic}
.dashed{padding:22px;border:1px dashed var(--line-2);display:grid;gap:8px}
.dashed p{color:var(--muted)}
@media (min-width:900px){.conf .inner{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px}.conf .head{grid-column:1/-1}.standards li{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;align-items:baseline}}
/* CLOSING */
.closing .inner{display:grid;gap:30px;align-items:center;padding-block:72px}
.closing .copy{display:grid;gap:20px;justify-items:start}
.closing h2{font-size:var(--s3);max-width:16ch}
.closing p{font-size:var(--s1);max-width:46ch;line-height:1.55}
.closing .call{color:var(--white)}
.closing .call a{color:var(--white)}
.closing .mark{width:170px;justify-self:end}
.closing.alt .mark{justify-self:center;order:-1;width:150px}
@media (min-width:900px){.closing .inner{grid-template-columns:minmax(0,1fr) auto;padding-block:112px;gap:72px}.closing .mark{width:280px;justify-self:end}.closing.alt .inner{grid-template-columns:auto minmax(0,1fr)}.closing.alt .mark{width:280px;justify-self:start}}
/* PAGE BANNER (inner pages) */
.banner{background:radial-gradient(120% 140% at 85% 0%,#163B6B 0%,var(--navy) 55%);color:var(--white)}
.banner .inner{display:grid;gap:18px;padding-block:52px 60px}
.banner h1{font-size:var(--s3);max-width:20ch;color:var(--white)}
.banner .lead{color:var(--on-navy);max-width:56ch}
.banner .tagline{font-family:var(--display);font-size:clamp(22px,2.6vw,28px);line-height:1.3;color:var(--white);max-width:40ch;margin-top:-4px;text-wrap:balance}
.banner .crumb{font-size:var(--s-1);color:var(--on-navy)}
.banner .crumb a{color:var(--blue-hi);font-weight:700;text-decoration:none}
@media (min-width:900px){.banner .inner{padding-block:96px 104px}}
/* VALUES */
.values{display:grid;border-top:1px solid var(--line)}
.values div{padding:24px 0;border-bottom:1px solid var(--line);display:grid;gap:6px;align-content:start}
.values p{color:var(--muted);max-width:50ch}
@media (min-width:760px){.values{grid-template-columns:1fr 1fr;column-gap:64px}}
@media (min-width:1000px){.values.five{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:48px}}
.head .vision-line,.vision-line{font-family:var(--display);font-size:var(--s1);line-height:1.45;color:var(--navy);max-width:48ch;margin:4px 0 0}
.lead .svc{font-weight:600;color:var(--navy)}
.vision-line small{display:block;margin-bottom:8px;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--teal)}
/* DETAIL BLOCKS */
.detail{display:grid;gap:0;border-top:1px solid var(--line)}
.detail section{display:grid;gap:10px;padding:28px 0;border-bottom:1px solid var(--line)}
.detail p{color:var(--muted);max-width:64ch}
@media (min-width:900px){.detail section{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:baseline;padding:36px 0}}
/* FAQ */
.faq{display:grid;border-top:1px solid var(--line);max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:700;font-size:var(--s1);padding:12px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:28px;color:var(--teal);line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 0 20px;color:var(--muted);max-width:64ch}
/* WORK */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.gallery{display:grid;gap:48px}
.card{display:grid;gap:12px;min-width:0}
.card .ph{aspect-ratio:4/3}
.card .meta{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.card p{color:var(--muted)}
.demo-flag{display:inline-block;justify-self:start;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--violet);border:1px solid var(--violet);padding:2px 8px}
@media (min-width:760px){.gallery{grid-template-columns:1fr 1fr;gap:64px 48px}.gallery .card.wide{grid-column:1/-1}.gallery .card.wide .ph{aspect-ratio:21/9}}
.example{display:grid;gap:28px}
.example .copy{display:grid;gap:12px;max-width:var(--read)}
@media (min-width:900px){.example{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:center}}
/* ABOUT */
.story{display:grid;gap:18px;max-width:700px}
.story p{font-size:var(--s1);line-height:1.65}
.story p:first-of-type::first-letter{font-family:var(--display);float:left;font-size:68px;line-height:.9;padding:6px 10px 0 0;color:var(--teal)}
.founder .inner{display:grid;gap:36px;align-items:start;isolation:isolate}
.portrait{margin:0;position:relative;max-width:420px}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}
.portrait::before{content:"";position:absolute;inset:14px -12px -12px 14px;border:2px solid var(--teal-hi);z-index:-1}
.founder .copy{display:grid;gap:18px;max-width:var(--read)}
.founder .copy>p{color:var(--muted)}
.founder .name{font-weight:700;color:var(--navy)}
.founder .name span{display:block;font-weight:400;color:var(--muted);font-size:var(--s-1)}
.pull{margin:0;font-family:var(--display);font-size:var(--s1);line-height:1.5;border-left:3px solid var(--teal-hi);padding-left:20px;color:var(--navy)}
@media (min-width:900px){.founder .inner{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px}}
.promise .inner{max-width:780px;display:block}
.promise.sec{padding-block:44px}
@media (min-width:900px){.promise.sec{padding-block:60px}}
.promise blockquote{margin:0;font-family:var(--display);font-size:clamp(19px,2.2vw,25px);line-height:1.45;color:var(--white)}
.promise .stripe{margin-bottom:16px}
.local .inner{display:grid;gap:32px;align-items:center}
.local img{width:min(260px,64%);justify-self:center}
.zones{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.zones li{padding:14px 0;border-bottom:1px solid var(--line);display:grid;gap:2px}
.zones b{font-size:var(--s1);font-family:var(--display);font-weight:400}
.zones span{color:var(--muted);font-size:var(--s-1)}
@media (min-width:900px){.local .inner{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:80px}.local img{width:300px;order:-1}}
/* QUOTE */
.quote-wrap{padding-block:44px 88px}
.quote-wrap .inner{display:grid;gap:40px;align-items:start}
@media (min-width:980px){.quote-wrap .inner{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:56px}}
form{display:grid;gap:22px;background:var(--white);padding:24px;border:1px solid var(--line)}
@media (min-width:640px){form{padding:36px}}
.field{display:grid;gap:8px;min-width:0}
.field>*{min-width:0}
.field label,.field legend,.field .lbl{font-weight:700;font-size:17px;padding:0}
.opt{font-weight:400;color:var(--muted)}
.field input[type=text],.field input[type=tel],.field input[type=email],.field textarea{width:100%;min-height:56px;padding:14px 16px;font:400 18px/1.4 var(--body);color:var(--navy);background:var(--white);border:2px solid #A9B7C3;border-radius:var(--radius)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px rgba(10,110,108,.2)}
.err{color:var(--error);font-size:16px;font-weight:700}
.field[data-invalid] input,.field[data-invalid] .chips{border-color:var(--error)}
fieldset{border:0;margin:0;padding:0;min-width:0}
.chips{display:grid;grid-template-columns:1fr;gap:10px;border:2px solid transparent;border-radius:var(--radius)}
.chip{position:relative;display:block}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{display:flex;align-items:center;min-height:56px;padding:0 16px;border:2px solid #A9B7C3;font-weight:700;font-size:17px;background:var(--white)}
.chip span::before{content:"";width:20px;height:20px;border-radius:50%;border:2px solid #A9B7C3;margin-right:12px;flex:none}
.chip input:checked+span{border-color:var(--teal);background:var(--teal-tint);color:var(--teal-dk)}
.chip input:checked+span::before{border-color:var(--teal);background:radial-gradient(circle,var(--teal) 45%,transparent 50%)}
.chip input:focus-visible+span{outline:3px solid var(--violet);outline-offset:2px}
.row2{display:grid;gap:22px}
@media (min-width:640px){.row2{grid-template-columns:1fr 1fr}.chips{grid-template-columns:1fr 1fr}}
.upload{border:2px dashed #A9B7C3;padding:18px;display:grid;gap:10px;background:var(--mist)}
.upload>*{min-width:0}
.upload .pick{justify-self:start}
.upload input:focus-visible+.pick{outline:3px solid var(--violet);outline-offset:3px}
.upload .hint{font-size:var(--s-1);color:var(--muted)}
.files{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.files li{display:grid;gap:6px;font-size:13px;color:var(--muted);min-width:0}
.files img,.files .noprev{width:100%;aspect-ratio:1;object-fit:cover;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:12px}
.files button{min-height:40px;border:2px solid var(--line-2);background:var(--white);font:700 14px var(--body);color:var(--navy);cursor:pointer}
.files .fname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.consent{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;font-size:16px;color:var(--muted)}
.consent input{width:24px;height:24px;margin-top:2px;accent-color:var(--teal)}
.submit .btn{width:100%}
.reassure{text-align:center;color:var(--muted);font-size:var(--s-1);margin-top:10px}
.alert{border-left:4px solid var(--error);background:#FBEDEB;padding:16px 18px;display:grid;gap:10px}
.alert h2{font-size:var(--s1);font-family:var(--body);font-weight:700}
.protobox{border:2px solid var(--violet);background:#F3F0FC;padding:18px 20px;display:grid;gap:12px}
.protobox .preview-tag{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}
.thanks{background:var(--white);border:1px solid var(--line);padding:32px 24px;display:grid;gap:16px;justify-items:start}
.thanks img{width:130px}
.side{display:grid;gap:24px}
.talk{background:var(--navy);color:var(--white);padding:28px 24px;display:grid;gap:12px}
.talk h2{font-size:var(--s1)}
.talk .num{font-size:26px;font-weight:700;color:var(--white);text-decoration:none}
.talk a{color:var(--white)}
.talk p{color:var(--on-navy)}
.assurances{display:grid;border-top:1px solid var(--line)}
.assurances div{padding:18px 0;border-bottom:1px solid var(--line);display:grid;gap:4px}
.assurances b{font-family:var(--display);font-weight:400;font-size:var(--s1)}
.assurances span{color:var(--muted);font-size:var(--s-1)}
/* FOOTER */
.site-footer{background:var(--navy-2);color:var(--on-navy);font-size:16px}
.site-footer .inner{padding-block:56px 32px;display:grid;gap:32px}
.site-footer h3{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--white);margin-bottom:12px}
.site-footer a{color:var(--white);text-decoration:none;overflow-wrap:anywhere}
.site-footer a:hover{text-decoration:underline}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.site-footer .inner>div{min-width:0}
@media (max-width:350px){.menu-btn{min-width:72px!important;padding:0 12px!important}}
.foot-logo{width:240px}
.foot-creds{font-weight:700;letter-spacing:.04em;color:var(--white)}
.foot-creds span{white-space:nowrap}
.site-footer .foot-svc{gap:8px}
.foot-svc li{display:flex;align-items:center;gap:10px}
.foot-svc li::before{content:"";width:6px;height:6px;flex:none;background:var(--teal-hi)}
.legal{border-top:1px solid rgba(255,255,255,.14);padding-top:20px;font-size:14px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
@media (min-width:900px){.site-footer .inner{grid-template-columns:minmax(0,3fr) minmax(0,3fr) minmax(0,3fr) minmax(0,2fr);gap:40px}.legal{grid-column:1/-1}}
/* MOBILE BAR */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--white);border-top:1px solid var(--line);display:flex;gap:10px;padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));transition:transform .25s ease}
.mbar .btn{flex:1;min-height:50px}
.mbar.hide{transform:translateY(110%)}
@media (min-width:900px){.mbar{display:none}}

/* ===== PAINTERLY LAYER (subtle) ===== */
:root{--paint-ease:cubic-bezier(.22,.8,.24,1)}
/* paint-stroke menu (desktop) */
@media (min-width:960px){
  .nav-desk{position:relative;isolation:isolate;height:66px;padding:0 76px 0 92px;gap:28px;transition:height .25s}
  .nav-desk .paint{position:absolute;inset:0 34px 0 0;z-index:-1;background:var(--navy);
    -webkit-mask:url(/assets/stroke-nav.svg) center/100% 100% no-repeat;mask:url(/assets/stroke-nav.svg) center/100% 100% no-repeat}
  .nav-desk>a:not(.btn),.has-sub>a{color:var(--white)}
  .nav-desk>a:not(.btn):hover,.nav-desk>a[aria-current="page"]:not(.btn),.has-sub>a:hover,.has-sub>a[aria-current="page"]{border-bottom-color:var(--teal-hi)}
  .nav-desk a.btn{background:var(--teal-hi);border-color:var(--teal-hi);color:var(--navy);min-height:44px}
  .nav-desk a.btn:hover{background:#3FE0D1;border-color:#3FE0D1}
  .nav-desk a.btn[aria-current="page"]{background:var(--white);border-color:var(--white)}
  .nav-desk .roller{position:absolute;right:0;top:50%;height:94px;width:auto;transform:translateY(-52%);pointer-events:none;transition:height .25s}
  .site-header.scrolled .nav-desk{height:56px}
  .site-header.scrolled .nav-desk .roller{height:80px}
  .has-sub{position:relative;display:flex;align-items:center;gap:2px}
  .sub-toggle{width:28px;height:36px;border:0;background:transparent;cursor:pointer;color:var(--white);display:flex;align-items:center;justify-content:center;padding:0}
  .sub-toggle::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
  .has-sub.open .sub-toggle::before{transform:rotate(-135deg) translateY(-2px)}
  .sub{position:absolute;left:-22px;top:calc(100% + 14px);width:290px;background:var(--white);padding:12px 0 10px;box-shadow:0 18px 40px rgba(11,31,58,.16);border-top:3px solid var(--teal-hi);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility 0s .18s;z-index:5}
  .sub::before{content:"";position:absolute;left:0;right:0;top:-17px;height:14px}
  .has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{opacity:1;visibility:visible;transform:none;transition:opacity .18s,transform .18s}
  .sub a{display:grid;gap:2px;padding:10px 22px;color:var(--navy);text-decoration:none;border:0}
  .sub a b{font-size:16px}
  .sub a span{font-size:14px;color:var(--muted);font-weight:400}
  .sub a:hover,.sub a:focus-visible{background:var(--mist)}
  .sub a.all{font-size:15px;font-weight:700;color:var(--blue);border-top:1px solid var(--line);margin-top:6px;padding-top:12px}
}
/* mobile: brush-stroke Menu button + painted panel with a drip edge */
@media (max-width:959px){
  .menu-btn{border:0;background:var(--navy);-webkit-mask:url(/assets/stroke-hl.svg) center/100% 100% no-repeat;mask:url(/assets/stroke-hl.svg) center/100% 100% no-repeat;min-width:86px;min-height:48px;padding:0 18px;border-radius:0}
  .nav-mob{background:var(--navy);border-top:0;position:relative;overflow:visible;max-height:none}
  .nav-mob ul{padding:8px 0 28px}
  .nav-mob a{color:var(--white);border-bottom-color:rgba(255,255,255,.14)}
  .nav-mob a[aria-current="page"]{color:var(--teal-hi)}
  .nav-mob .subs{display:grid;padding:2px 0 8px 18px;border-bottom:1px solid rgba(255,255,255,.14)}
  .nav-mob .subs a{min-height:46px;font-size:17px;font-weight:400;border:0;color:var(--on-navy)}
  .nav-mob a.btn{background:var(--teal-hi);border-color:var(--teal-hi);color:var(--navy)}
  .nav-mob .phone{color:var(--on-navy)}
  .nav-mob .phone b{color:var(--white)}
  .nav-mob::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 2px);height:84px;background:var(--navy);pointer-events:none;
    -webkit-mask:linear-gradient(#000,#000) top left/100% 9px no-repeat,url(/assets/drip.svg) top left/680px 84px repeat-x;mask:linear-gradient(#000,#000) top left/100% 9px no-repeat,url(/assets/drip.svg) top left/680px 84px repeat-x}
}
/* one drip edge per page: inner-page banners and the home Daily Update */
.banner,.daily{position:relative;z-index:1}
.banner::after,.daily::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 22px);height:112px;background:var(--navy);pointer-events:none;z-index:2;
  -webkit-mask:linear-gradient(#000,#000) top left/100% 12px no-repeat,url(/assets/drip.svg) top left/900px 112px repeat-x;mask:linear-gradient(#000,#000) top left/100% 12px no-repeat,url(/assets/drip.svg) top left/900px 112px repeat-x}
.banner + section,.daily + section{padding-top:104px}
@media (min-width:900px){.banner::after,.daily::after{height:150px;-webkit-mask-size:100% 16px,1200px 150px;mask-size:100% 16px,1200px 150px}.banner + section,.daily + section{padding-top:136px}}
/* brush-stroke highlight behind one phrase per page */
.hl{position:relative;z-index:0;white-space:nowrap}
.hl::before{content:"";position:absolute;left:-.18em;right:-.22em;top:.42em;bottom:-.08em;z-index:-1;background:linear-gradient(90deg,var(--teal-hi) 0%,var(--teal-hi) 30%,var(--violet) 100%);opacity:.38;
  -webkit-mask:url(/assets/stroke-hl.svg) center/100% 100% no-repeat;mask:url(/assets/stroke-hl.svg) center/100% 100% no-repeat}
.banner .hl::before{opacity:.5;background:linear-gradient(90deg,var(--teal-hi) 0%,var(--teal-hi) 30%,var(--violet-hi) 100%)}
@media (max-width:420px){.hl{white-space:normal}}
/* the one orchestrated moment: a roller rolls the highlight on, once */
.hl.roll::after{content:"";position:absolute;top:-.02em;height:1.08em;width:.8em;left:100%;background:url(/assets/roller.svg) left center/contain no-repeat;opacity:0;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
  .hl.roll::before{animation:rollPaint 1.1s var(--paint-ease) .45s both}
  .hl.roll::after{animation:rollRoller 1.1s var(--paint-ease) .45s both}
  .hl.roll.onscroll:not(.go)::before{animation:none;clip-path:inset(0 100% 0 0)}
  .hl.roll.onscroll:not(.go)::after{animation:none;opacity:0}
  .hl.roll.onscroll.go::before,.hl.roll.onscroll.go::after{animation-delay:.2s}
}
@keyframes rollPaint{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes rollRoller{0%{left:-.4em;opacity:1}85%{left:calc(100% - .2em);opacity:1}100%{left:calc(100% - .2em);opacity:0}}
/* painted edges on photo areas */
.hero-media .ph,.feature .ph,.card .ph,.portrait img,.example .ba{-webkit-mask:url(/assets/frame.svg) center/100% 100% no-repeat;mask:url(/assets/frame.svg) center/100% 100% no-repeat}
/* roller back-to-top (desktop) */
.to-top{position:fixed;right:max(24px,env(safe-area-inset-right,0px));bottom:28px;z-index:35;width:58px;height:58px;border-radius:50%;border:2px solid var(--teal-hi);background:var(--white);box-shadow:0 10px 26px rgba(11,31,58,.18);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .2s}
.to-top img{height:38px;width:auto}
.to-top:hover{transform:translateY(-3px)}
@media (max-width:899px){.to-top{display:none!important}}
/* custom murals */
.mural-cats{display:grid;gap:40px}
@media (min-width:860px){.mural-cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}}
.mural-cats .card{align-content:start}
.mural-cats .card h3{margin-top:6px}
.mural-cats .card .card-sub{color:var(--navy);font-weight:600}
.ph .credit-tag{position:absolute;right:16px;bottom:16px;z-index:3;background:rgba(11,31,58,.8);color:#fff;font-size:12px;line-height:1.3;padding:5px 9px}
.feature .ph.grid4{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;aspect-ratio:5/6;background:var(--white)}
.ph.grid4::before,.ph.grid4::after{display:none}
.ph.grid4 img.photo{position:relative;inset:auto;width:100%;height:100%;min-height:0}
.mural-gallery{columns:2;column-gap:14px}
@media (min-width:860px){.mural-gallery{columns:3;column-gap:28px}}
.mural-gallery figure{break-inside:avoid;margin:0 0 18px;display:grid;gap:8px}
@media (min-width:860px){.mural-gallery figure{margin-bottom:30px}}
.mural-gallery img{width:100%;height:auto;display:block;border-radius:6px;box-shadow:0 10px 26px rgba(11,31,58,.10)}
.mural-gallery figcaption{font-size:14px;line-height:1.4;color:var(--muted)}
.styles-block{display:grid;gap:8px;margin-top:8px}
.styles-block h3{font-size:clamp(24px,2.4vw,30px)}
.styles-note{max-width:var(--read);color:var(--muted);font-size:var(--s1);line-height:1.55}
.artists{display:grid;gap:32px}
@media (min-width:760px){.artists{grid-template-columns:repeat(3,minmax(0,1fr))}}
.artist .credit{font-size:14px;color:var(--muted)}
.mural-extra{display:grid;gap:18px;border-left:3px solid var(--violet);padding:4px 0 4px 18px}
.mural-extra .intro{font-size:15px;color:var(--muted)}

/* ---- production additions ---- */
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.fineprint{font-size:14px;color:var(--muted);margin-top:6px}
.fineprint a{color:var(--blue)}
.cf-turnstile{margin:4px 0 2px;min-height:65px}
.btn[disabled]{opacity:.65;cursor:progress}
.legal-doc{max-width:760px;display:grid;gap:14px}
.legal-doc h2{font-size:clamp(22px,2.6vw,28px);margin-top:22px}
.legal-doc h3{font-size:19px;margin-top:10px}
.legal-doc p,.legal-doc li{color:var(--muted);line-height:1.7}
.legal-doc ul{margin:0;padding-left:22px;display:grid;gap:6px}
.legal-doc strong{color:var(--navy)}
.legal-doc .note-box{border-left:3px solid var(--teal-hi);background:var(--mist);padding:14px 18px}
