/* Layout concept: a navy-and-signal-orange contractor site set like a site plan — dimension lines, drawn
   measurements and plan-view details carry the identity; the studio is a dark drafting-table workspace. */
:root{
  --night:#10224a;--deep:#0a1733;--char:#24272e;
  --paper:#f7f6f2;--card:#ffffff;--line:#e2ded5;--line2:#cbc4b6;--ink:#1a2135;--mute:#59606f;
  --signal:#e5612f;--signal-d:#b9481c;--signal-t:rgba(229,97,47,.11);--glow:#ffc47e;
  --ok:#22704a;--err:#b42318;--warn:#8a5a00;--st-ok:#1d6b45;--st-warn:#8a5a00;--st-err:#b42318;--bar:#2c5aa0;--bar-h:#1f4682;
  --head:Montserrat,"Helvetica Neue",Arial,sans-serif;--body:Barlow,"Segoe UI",Roboto,Arial,sans-serif;
  --r-s:4px;--r-m:8px;--r-l:14px;--wrap:1180px;--hdr:68px;--gut:24px;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#0e1420;--card:#151d2d;--line:#253047;--line2:#34415d;--ink:#e8ebf2;--mute:#a3acbf;--signal-d:#ff8c5f;--signal-t:rgba(229,97,47,.18);--st-ok:#5cc08a;--st-warn:#f0c060;--st-err:#ff8b80;--bar:#6a93dc;--bar-h:#86a9e6;color-scheme:dark}}
:root[data-theme="dark"]{--paper:#0e1420;--card:#151d2d;--line:#253047;--line2:#34415d;--ink:#e8ebf2;--mute:#a3acbf;--signal-d:#ff8c5f;--signal-t:rgba(229,97,47,.18);--st-ok:#5cc08a;--st-warn:#f0c060;--st-err:#ff8b80;--bar:#6a93dc;--bar-h:#86a9e6;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--hdr) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--body)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--head);line-height:1.12;margin:0;letter-spacing:-.015em;text-wrap:balance}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px;border-radius:3px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}
@media (max-width:560px){:root{--gut:16px}}
.skip{position:absolute;left:12px;top:-60px;background:var(--signal);color:#fff;padding:10px 14px;border-radius:var(--r-s);z-index:100;text-decoration:none;font-weight:600}
.skip:focus{top:8px}
.tnum{font-variant-numeric:tabular-nums}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--r-s);border:1.5px solid transparent;background:var(--signal);color:#fff;font:700 15px/1 var(--head);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s;text-align:center}
.btn:hover{background:#c94f22}
.btn.ghost{background:transparent;border-color:currentColor;color:inherit}
.btn.ghost:hover{background:rgba(127,127,127,.12)}
.btn.navy{background:var(--night);color:#fff}.btn.navy:hover{background:#1b3570}
.btn.small{min-height:38px;padding:0 14px;font-size:13.5px}
.btn.block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.link{color:var(--signal-d);font-weight:600;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer}

/* header */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--card);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:16px;height:var(--hdr)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--night);flex:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hdr .brand{color:#fff}}
:root[data-theme="dark"] .hdr .brand{color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hdr .brand svg{color:#fff}}
:root[data-theme="dark"] .hdr .brand svg{color:#fff}
.brand svg{width:52px;height:33.6px;flex:none;color:#1a2147;overflow:visible}
.brand b{font:800 12.5px/1.08 var(--head);letter-spacing:.03em}
.nav{display:flex;gap:2px;margin:0 auto;align-items:center}
.nav a,.navbtn{padding:10px 10px;border-radius:var(--r-s);font:600 15px var(--body);text-decoration:none;color:var(--ink);background:none;border:0;cursor:pointer}
.nav a:hover,.navbtn:hover{background:rgba(127,127,127,.1)}
.nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--signal)}
.hdr .tel{font:700 15px var(--body);text-decoration:none;white-space:nowrap;color:var(--ink)}
.dd{position:relative}
.ddm{position:absolute;top:100%;left:0;min-width:520px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);box-shadow:0 18px 40px rgba(10,23,51,.16);padding:10px;display:none;grid-template-columns:1fr 1fr;gap:2px 10px}
.dd.open .ddm{display:grid}
.ddm a{display:block;padding:8px 10px;font-size:15px}
.ddm .lbl{font:600 13px var(--body);color:var(--mute);padding:8px 10px 2px}
.ddm .col{display:grid;align-content:start}
.menubtn{display:none;margin-left:auto;background:none;border:1.5px solid var(--line2);border-radius:var(--r-s);height:42px;padding:0 14px;font-weight:600;cursor:pointer;color:var(--ink)}
.mnav{display:none}
@media (max-width:1180px){.nav,.hdr .tel,.hdr .cta{display:none}.menubtn{display:inline-flex;align-items:center}
  .mnav.open{display:block;position:fixed;inset:calc(env(safe-area-inset-top,0px) + var(--hdr)) 0 0 0;background:var(--card);overflow:auto;z-index:39;padding:12px var(--gut) 120px}
  .mnav a{display:block;padding:13px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600;font-size:18px}
  .mnav .sub a{font-weight:500;font-size:16px;padding-left:14px}}

/* hero */
.hero{position:relative;background:var(--night);color:#fff;overflow:hidden;isolation:isolate}
.hero .ph{position:absolute;inset:0 0 0 32%;background-size:cover;background-position:center;z-index:-2}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--night) 0,var(--night) 32%,rgba(16,34,74,.85) 50%,rgba(16,34,74,.2) 100%)}
.hero .wrap{padding-block:clamp(52px,8vw,104px)}
.hero h1{font-size:clamp(38px,6vw,76px);font-weight:800;line-height:1.0;letter-spacing:-.03em;max-width:11.5em}
.hero h1 span{display:block}
.dimline{display:flex;align-items:center;gap:12px;margin:26px 0 22px;max-width:600px;color:#ffb08f;font:500 14px var(--body)}
.dimline i{flex:1;height:1px;background:currentColor;position:relative}
.dimline i::before{content:"";position:absolute;top:-6px;left:0;width:1px;height:13px;background:currentColor}
.dimline i:last-child::before{left:auto;right:0}
.hero p.lede{font-size:clamp(18px,1.6vw,21px);max-width:31em;color:#dfe4f1}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero .ctas .ghost{color:#fff}
.trust{display:flex;flex-wrap:wrap;gap:8px 22px;margin:34px 0 0;padding:0;list-style:none;font:600 15px var(--body);color:#e8ebf4}
.trust li{display:flex;align-items:center;gap:8px}
.trust svg{width:16px;height:16px;color:var(--signal)}
.trust.assure{margin-top:22px}
@media (max-width:760px){.hero .ph{inset:0;opacity:.3}.hero::before{background:linear-gradient(180deg,rgba(16,34,74,.75),var(--night))}}
/* home page motion (Oct 2026): hero line reveal, live 3D backyard, marquee, scroll reveals, 3D tilt cards, scroll-tilted studio preview */
.hero h1 .ml{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .ml>span{display:block;animation:hx-rise 1s cubic-bezier(.2,.75,.15,1) both;animation-delay:calc(.1s + var(--i,0) * .13s)}
@keyframes hx-rise{from{transform:translateY(110%)}to{transform:none}}
.hero .dimline i{transform-origin:right center;animation:hx-draw .9s .5s cubic-bezier(.3,.7,.2,1) both}
.hero .dimline i:last-child{transform-origin:left center}
.hero .dimline span{animation:hx-fade .6s .8s both}
.hero .lede{animation:hx-up .8s .6s cubic-bezier(.2,.75,.15,1) both}
.hero .ctas{animation:hx-up .8s .72s cubic-bezier(.2,.75,.15,1) both}
.hero .trust{animation:hx-up .8s .84s cubic-bezier(.2,.75,.15,1) both}
@keyframes hx-draw{from{transform:scaleX(0)}to{transform:none}}
@keyframes hx-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes hx-fade{from{opacity:0}to{opacity:1}}
.hero .ctas .btn{transition:transform .3s cubic-bezier(.2,.7,.2,1),background .15s,border-color .15s}
.hero .ctas .btn:not(.ghost){position:relative;overflow:hidden}
.hero .ctas .btn:not(.ghost)::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-120%);animation:hx-shine 5s 2.2s ease-in-out infinite;pointer-events:none}
@keyframes hx-shine{0%,70%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
.hero3d{position:absolute;inset:0 0 0 30%;z-index:-2;opacity:0;transition:opacity 1.6s ease;pointer-events:none;transform:perspective(1400px) rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg)) scale(1.05);transition:opacity 1.6s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.hero3d.on{opacity:1}
.hero3d canvas{display:block;width:100%!important;height:100%!important}
.hero3d video{display:block;width:100%;height:100%;object-fit:cover}
.hero3d .h3stage{position:absolute;inset:0;transition:transform 3s cubic-bezier(.4,0,.2,1)}
.hero3d .h3stage.push{transform:scale(1.045);transition:transform 8s cubic-bezier(.25,.1,.25,1)}
.hero3d .h3still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease-in-out}
.hero3d .h3still.on{opacity:1}
.hero3d video,.hero3d .h3still{object-position:64% 50%}
@media (max-width:760px){.hero3d video,.hero3d .h3still{object-position:60% 50%}}
.hero .ph{transition:opacity 1.6s ease}
.hero.has3d .ph{opacity:0}
.h3chip{position:absolute;right:max(var(--gut),calc((100% - var(--wrap)) / 2 + var(--gut)));bottom:22px;z-index:1;display:none;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:30px;background:rgba(8,16,38,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);color:#fff;text-decoration:none;font:500 13.5px/1.2 var(--body)}
.h3chip b{font-weight:700;color:#fff;margin-left:4px}
.h3chip .tod{color:var(--glow);font-weight:600}
.h3chip:hover{background:rgba(8,16,38,.82)}
.h3chip .dot{width:8px;height:8px;border-radius:50%;background:#5ee08f;flex:none;animation:hx-ping 2s infinite}
.hero[data-tod="dusk"] .h3chip .dot{background:var(--glow)}
@keyframes hx-ping{0%{box-shadow:0 0 0 0 rgba(94,224,143,.55)}80%,100%{box-shadow:0 0 0 9px rgba(94,224,143,0)}}
.hero.has3d .h3chip{display:inline-flex}
.sprog{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);height:3px;z-index:60;background:var(--signal);transform-origin:0 50%;transform:scaleX(var(--sp,0));pointer-events:none}
body.scrolled .hdr{box-shadow:0 8px 28px -16px rgba(10,23,51,.35)}
.marq{background:var(--night);color:#fff;border-top:1px solid rgba(255,255,255,.08);padding-block:18px;overflow:hidden}
.mqw{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.mq{display:flex;width:max-content;animation:hx-marq 52s linear infinite}
.marq:hover .mq{animation-play-state:paused}
.mq span{display:inline-flex;align-items:center;gap:30px;padding-right:30px;white-space:nowrap;font:800 clamp(18px,2vw,24px)/1 var(--head);letter-spacing:-.01em;color:#e8ebf4}
.mq span::after{content:"";width:8px;height:8px;background:var(--signal);transform:rotate(45deg);flex:none}
@keyframes hx-marq{to{transform:translateX(-50%)}}
#design .mock{position:relative;transform:perspective(1600px) rotateX(calc((1 - var(--mp,1)) * 14deg)) rotateY(calc((1 - var(--mp,1)) * -12deg)) scale(calc(.92 + var(--mp,1) * .08));transform-origin:50% 60%;will-change:transform}
#design .mock::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.16) 48%,transparent 60%);transform:translateX(calc(-130% + var(--mp,1) * 260%));pointer-events:none}
.rv{opacity:.2;transform:perspective(900px) translateY(28px) rotateX(7deg);transform-origin:50% 100%;transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform 1s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.rv.in{opacity:1;transform:none}
.tilt{position:relative;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease}
.tilt.tilting{transition:transform .12s linear,box-shadow .3s ease;box-shadow:0 26px 44px -22px rgba(10,23,51,.45);z-index:2}
.tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.24),transparent 45%);opacity:0;transition:opacity .3s ease}
.tilt.tilting::after{opacity:1}
/* AI Visualizer (Oct 2026): a dark drafting table; the before/after stage with its laser-line reveal is the one bold element */
.nav a,.navbtn,.hdr .cta,.hdr .tel{white-space:nowrap}
.vz{background:var(--deep);color:#fff;color-scheme:dark;padding-block:clamp(30px,4.5vw,60px) clamp(52px,7vw,88px);position:relative;isolation:isolate}
.vz::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse 75% 60% at 22% 12%,#000,transparent 72%);mask-image:radial-gradient(ellipse 75% 60% at 22% 12%,#000,transparent 72%)}
.vz .crumbs a{color:#aeb7cf}
.vz-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px 48px;align-items:end;margin-bottom:clamp(22px,3.2vw,38px)}
.vz-head>*{min-width:0}
.vz-head h1{font-size:clamp(36px,5.4vw,68px);font-weight:800;line-height:.98;letter-spacing:-.035em;max-width:10.5em}
.vz-lede{color:#c3cbe0;font-size:clamp(17px,1.45vw,19px);max-width:33em;padding-bottom:6px}
.vz-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(330px,1fr);gap:clamp(22px,3vw,44px);align-items:start}
.vz-left{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--vz-top,0px) + 18px);min-width:0}
.vz-frame{position:relative;padding:12px}
.vz-frame .cm{position:absolute;width:18px;height:18px;border:0 solid rgba(255,255,255,.45);pointer-events:none}
.vz-frame .cm.tl{top:0;left:0;border-top-width:1.5px;border-left-width:1.5px}
.vz-frame .cm.tr{top:0;right:0;border-top-width:1.5px;border-right-width:1.5px}
.vz-frame .cm.bl{bottom:0;left:0;border-bottom-width:1.5px;border-left-width:1.5px}
.vz-frame .cm.br{bottom:0;right:0;border-bottom-width:1.5px;border-right-width:1.5px}
.vz-stage{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:6px;background:#13214a;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:ew-resize;-webkit-tap-highlight-color:transparent;box-shadow:0 34px 70px -34px rgba(0,0,0,.75)}
.vz-l{position:absolute;inset:0}
.vz-l img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.vz-a{clip-path:inset(0 0 0 calc(var(--p,50) * 1%))}
.vz-a img.nx{opacity:0;transition:opacity .5s ease}
.vz-a img.nx.in{opacity:1}
.vz-a::after{content:"";position:absolute;top:0;bottom:0;z-index:2;left:calc(var(--p,50) * 1%);width:20%;background:linear-gradient(90deg,rgba(255,112,62,.4),rgba(255,112,62,0));opacity:0;transition:opacity .7s ease;pointer-events:none}
.vz-stage.lasing .vz-a::after{opacity:1;transition:none}
.vz-tag{position:absolute;top:12px;z-index:3;max-width:44%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 11px;border-radius:999px;background:rgba(8,16,38,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font:600 13px/1.15 var(--body);pointer-events:none;transition:opacity .25s}
.vz-tag.l{left:12px}
.vz-tag.r{right:12px}
.vz-tag:empty,.vz-stage.lo .vz-tag.l,.vz-stage.hi .vz-tag.r{opacity:0}
.vz-h{position:absolute;top:0;bottom:0;z-index:4;left:calc(var(--p,50) * 1%);width:48px;margin-left:-24px;cursor:ew-resize;outline:none;touch-action:none}
.vz-h::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(8,16,38,.2);transition:background .45s,box-shadow .45s}
.vz-k{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#fff;color:var(--night);display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.35);transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .4s}
.vz-k svg{width:22px;height:22px}
.vz-h:focus-visible .vz-k{outline:3px solid var(--glow);outline-offset:3px}
.vz-stage.drag .vz-k{transform:scale(1.08)}
.vz-stage.lasing .vz-h::before{background:#ff7d4a;box-shadow:0 0 4px 1px #ff7d4a,0 0 22px 5px rgba(229,97,47,.7);transition:none}
.vz-stage.lasing .vz-k{opacity:0;transform:scale(.4);transition:none}
.vz-stage.own{background:#050c1f}
.vz-stage.own .vz-l img{object-fit:contain}


.vz-lock{display:none}
.vz-stage.locked .vz-lock{display:grid;position:absolute;z-index:3;left:50%;bottom:14px;transform:translateX(-50%);width:min(88%,380px);gap:5px;justify-items:center;padding:13px 16px 14px;border-radius:12px;background:rgba(8,16,40,.84);border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center}
.vz-lock svg{width:22px;height:22px;color:var(--glow)}
.vz-lock b{display:block;font:700 16px/1.2 var(--head);color:#fff}
.vz-lock span{display:block;color:#c3cbe0;font-size:14px;line-height:1.35}
.vz-stage.locked .vz-a,.vz-stage.locked .vz-h,.vz-stage.locked .vz-tag.r{display:none}
.vz-empty{display:none}
.vz-stage.empty{cursor:default}
.vz-stage.empty .vz-h,.vz-stage.empty .vz-tag,.vz-stage.empty .vz-l{display:none}
.vz-stage.empty .vz-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:16px;padding:24px;text-align:center;color:#c3cbe0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px}
.vz-empty p{max-width:25em;font-size:15.5px}
.vz-empty b{display:block;color:#fff;font:700 clamp(17px,1.8vw,20px)/1.25 var(--head);margin-bottom:6px}
.vz-cap{margin:10px 12px 0;color:#9eabc9;font-size:14.5px;max-width:52em;min-height:1.5em}
.vz-panel{min-width:0;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.035);padding:clamp(18px,2.2vw,28px)}
.vz-steps{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;color:#7f8bab;font:600 13.5px/1.2 var(--body)}
.vz-steps::before,.vz-steps::after{content:"";position:absolute;left:0;top:6px;height:1px}
.vz-steps::before{right:0;background:rgba(255,255,255,.22)}
.vz-steps::after{width:calc(var(--k,0) * 25%);background:var(--signal);transition:width .5s cubic-bezier(.3,.7,.2,1)}
.vz-steps li{position:relative;padding-top:21px;min-width:0}
.vz-steps li::before{content:"";position:absolute;left:0;top:0;width:1.5px;height:13px;background:currentColor}
.vz-steps li:last-child::after{content:"";position:absolute;right:0;top:0;width:1.5px;height:13px;background:rgba(255,255,255,.22)}
.vz-steps li.done{color:#ffb08f}
.vz-steps li.cur{color:#fff}
.vz-steps li.cur::before{width:9px;height:9px;top:2px;left:-4px;border-radius:50%;background:var(--glow);box-shadow:0 0 0 4px rgba(255,196,126,.18)}
.vz-steps button{background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:rgba(255,176,143,.45);text-underline-offset:3px}
.vz-steps button:hover{text-decoration-color:currentColor}
.vz-q{font:800 clamp(22px,2.1vw,27px)/1.15 var(--head);letter-spacing:-.02em;outline:none}
.vz-p{color:#c3cbe0;margin-top:8px;font-size:16px}
.vz-p.sm{font-size:14.5px;color:#9eabc9;margin-top:12px}
.vz-projs{display:grid;gap:10px;margin-top:18px}
.vz-opt{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.14);border-radius:10px;cursor:pointer;transition:border-color .2s,background .2s}
.vz-opt>span{min-width:0}
.vz-opt:hover,.vz-sty:hover{border-color:rgba(255,255,255,.34)}
.vz-opt.on,.vz-sty.on{border-color:var(--glow);background:rgba(255,196,126,.08)}
.vz-opt img,.vz-ph{width:96px;height:64px;border-radius:6px;object-fit:cover;background:#16244a}
.vz-ph{display:block;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:12px 12px;background-position:center}
.vz-opt b{display:block;font:700 16px/1.2 var(--head)}
.vz-opt small{display:block;color:#9eabc9;font-size:14px;line-height:1.35;margin-top:3px}
.vz-opt:has(input:focus-visible),.vz-sty:has(input:focus-visible),.vz-chip:has(input:focus-visible),.vz-drop:has(input:focus-visible){outline:3px solid var(--signal);outline-offset:2px}
.vz-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.vz-nav .btn{flex:1 1 auto}
.vz .btn.ghost,.vz-band .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.vz-drop{display:grid;justify-items:center;gap:3px;margin-top:18px;padding:26px 18px;border:1.5px dashed rgba(255,255,255,.3);border-radius:12px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.vz-drop:hover,.vz-drop.over{border-color:var(--glow);background:rgba(255,196,126,.06)}
.vz-di{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(229,97,47,.18);color:var(--glow);margin-bottom:8px}
.vz-di svg{width:23px;height:23px}
.vz-drop b{font:700 16px/1.2 var(--head)}
.vz-drop small{color:#9eabc9;font-size:14px}
.vz-file{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:16px;padding:8px;border:1px solid rgba(255,196,126,.5);border-radius:10px;background:rgba(255,196,126,.06)}
.vz-file img,.vz-file .vz-ph{width:72px;height:48px;object-fit:cover;border-radius:5px}
.vz-file>span{min-width:0}
.vz-file b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vz-file small{display:block;color:#9eabc9;font-size:13.5px;line-height:1.3}
.vz-x{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;min-height:36px;padding:0 11px;font:600 13.5px var(--body);cursor:pointer}
.vz-x:hover{border-color:#fff}
.vz-err{color:#ffa094;font-weight:600;font-size:14.5px;margin-top:10px}
.vz-err:empty{display:none}
.vz-stys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.vz-stys.txt{grid-template-columns:repeat(2,minmax(0,1fr))}
.vz-sty{display:flex;flex-direction:column;gap:3px;min-width:0;padding:6px 6px 11px;border:1px solid rgba(255,255,255,.14);border-radius:10px;cursor:pointer;transition:border-color .2s,background .2s}
.vz-sty img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:6px;margin-bottom:6px}
.vz-sty b{font:700 14.5px/1.2 var(--head);padding-inline:4px}
.vz-sty small{color:#9eabc9;font-size:13px;line-height:1.3;padding-inline:4px}
.vz-stys.txt .vz-sty{padding:12px 10px}
.vz-g{border:0;margin:22px 0 0;padding:0;min-width:0}
.vz-g legend{font:700 15px/1.2 var(--head);padding:0;margin-bottom:10px}
.vz-g legend span{font:500 13.5px var(--body);color:#9eabc9;margin-left:4px}
.vz-chips{display:flex;flex-wrap:wrap;gap:8px}
.vz-chip{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.24);border-radius:999px;font:500 14.5px/1.1 var(--body);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.vz-chip:hover{border-color:rgba(255,255,255,.55)}
.vz-chip.on{background:var(--glow);border-color:var(--glow);color:var(--night);font-weight:600}
.vz-chip.on::before{content:"";width:9px;height:5px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(-45deg)}
.vz-chip:has(input:disabled){opacity:.38;cursor:not-allowed}
.vz .fld{margin-top:16px}
.vz .fld label{color:#fff}
.vz .hint{color:#9eabc9;font-weight:500}
.vz .fld input,.vz .fld select,.vz .fld textarea{background:#0d1a3a;border-color:#34446e;color:#fff}
.vz .fld input:focus,.vz .fld select:focus,.vz .fld textarea:focus{border-color:var(--glow)}
.vz .fld textarea::placeholder{color:#7f8bab}
.vz-cnt{align-self:flex-end;color:#7f8bab;font-size:13px}
.vz .check{color:#c3cbe0}
.vz .check a{color:#fff}
.vz .err{color:#ffa094}
.vz .fld [aria-invalid="true"],.vz .check [aria-invalid="true"]{border-color:#ff8b80;outline-color:#ff8b80}
.vz .notice{color:#fff}
.vz .notice.err{background:rgba(255,120,100,.1);border-color:rgba(255,139,128,.5)}
.vz .notice.warn{background:rgba(255,196,126,.1);border-color:rgba(255,196,126,.45)}
.vz .formerr .btnrow{margin-top:10px}
.vz-sum{margin:18px 0 2px;border-top:1px solid rgba(255,255,255,.13)}
.vz-sum>div{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.13)}
.vz-sum dt{color:#9eabc9;font-size:14px}
.vz-sum dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.vz-sum dd small{display:block;font-weight:400;color:#c3cbe0;font-size:14px;margin-top:2px}
.vz-link{background:none;border:0;padding:0;color:var(--glow);font:600 14px var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.vz-done .sel{color:#fff;overflow-wrap:anywhere}
.vz-done .notice{margin-top:12px}
.vz-next{margin:24px 0 18px;padding:0;list-style:none;counter-reset:n;display:grid;gap:12px}
.vz-next li{counter-increment:n;display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;color:#c3cbe0;font-size:15.5px}
.vz-next li::before{content:counter(n);width:26px;height:26px;border-radius:50%;border:1.5px solid var(--glow);color:var(--glow);display:grid;place-items:center;font:700 13px/1 var(--head)}
.vz-next b{color:#fff}
.vz-fine{color:#9eabc9;font-size:13.5px;margin-top:10px}
.steps.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.vz-note{margin-top:44px;padding:18px 22px;border:1px solid var(--line);border-left:3px solid var(--signal);border-radius:var(--r-m);background:var(--card);max-width:62em}
.vz-note p{color:var(--mute);font-size:15.5px}
.vz-note p+p{margin-top:8px}
.vz-note b{color:var(--ink)}
.vz-note a{color:var(--signal-d);font-weight:600}
.vz-band{background:var(--deep);color:#fff;padding-block:clamp(52px,6.5vw,88px)}
.vz-band-in{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(26px,4vw,60px);align-items:center}
.vz-band-in>div{min-width:0}
.vz-band-t h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;letter-spacing:-.02em;max-width:12em}
.vz-band-t p{color:#c3cbe0;margin-top:14px;font-size:18px;max-width:30em}
.vz-band-t .btnrow{margin-top:24px}
.vz-band-t .vz-fine{font-size:13.5px;color:#9eabc9;margin-top:14px}
@media (max-width:1100px){.vz-grid{grid-template-columns:minmax(0,1.35fr) minmax(310px,1fr)}}
@media (max-width:900px){
  .vz-head{grid-template-columns:1fr;gap:10px}
  .vz-grid{display:block}
  .vz-left{top:calc(env(safe-area-inset-top,0px) + var(--vz-top,0px));z-index:6;background:var(--deep);margin-inline:calc(var(--gut) * -1);padding:4px calc(var(--gut) - 8px) 6px}
  .vz-cap{display:none}
  .vz-panel{margin-top:14px}
  .vz-band-in{grid-template-columns:1fr}
  .steps.three{grid-template-columns:1fr}
}
@media (max-width:900px) and (max-height:620px){.vz-left{position:static;margin-inline:0;padding:0}.vz-cap{display:block}}
@media (max-width:560px){
  .vz-frame{padding:8px}.vz-frame .cm{width:13px;height:13px}
  .vz-tag{top:8px;font-size:12px;padding:5px 9px}.vz-tag.l{left:8px}.vz-tag.r{right:8px}
  .vz-k{width:40px;height:40px;margin:-20px 0 0 -20px}
  .vz-stys{gap:8px}.vz-sty small{display:none}
  .vz-opt{grid-template-columns:76px minmax(0,1fr);gap:12px}.vz-opt img,.vz-opt .vz-ph{width:76px;height:51px}
  .vz-sum>div{grid-template-columns:60px minmax(0,1fr) auto}
}
@media (prefers-reduced-motion:reduce){.vz-a img.nx,.vz-steps::after,.vz-k,.vz-h::before{transition:none}}
@media (max-width:760px){.hero3d{inset:0}.hero3d.on{opacity:.45}.h3chip{display:none!important}.marq{padding-block:14px}}
@media (prefers-reduced-motion:reduce){.hero h1 .ml>span,.hero .dimline i,.hero .dimline span,.hero .lede,.hero .ctas,.hero .trust,.hero .ctas .btn:not(.ghost)::after,.h3chip .dot{animation:none}.mq{animation:none}.rv{opacity:1;transform:none;transition:none}.tilt,.hero3d{transition:none}#design .mock{transform:none}#design .mock::after{display:none}}

.sec{padding-block:clamp(56px,7vw,96px)}
.sec.alt{background:var(--card)}
.sec.dark{background:var(--night);color:#fff}
.sec h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;max-width:22em}
.intro{color:var(--mute);margin-top:12px;max-width:40em;font-size:18px}
.sec.dark .intro{color:#c9d0e4}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:34px}
.head-row>div{min-width:0}

/* studio preview */
.preview{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center}
.mock{display:block;border-radius:var(--r-l);overflow:hidden;background:var(--deep);box-shadow:0 30px 60px rgba(10,23,51,.25);aspect-ratio:16/10;max-width:100%}
.mock svg{width:100%;height:100%;display:block}
.checks{list-style:none;padding:0;margin:22px 0 28px;display:grid;gap:12px}
.checks li{padding-left:30px;position:relative;color:var(--mute)}
.checks li b{color:var(--ink);font-weight:600}
.checks li::before{content:"";position:absolute;left:0;top:7px;width:16px;height:9px;border-left:2.5px solid var(--signal);border-bottom:2.5px solid var(--signal);transform:rotate(-45deg)}
@media (max-width:900px){.preview{grid-template-columns:1fr;gap:32px}}

/* services */
.svc-groups{display:grid;gap:40px}
.svc-group>h3{font:600 15px var(--body);color:var(--mute);margin-bottom:14px;letter-spacing:0}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.svc{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;text-decoration:none;transition:border-color .15s;min-width:0}
.svc:hover{border-color:var(--signal)}
.svc img,.svc svg{width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:center 60%;background:var(--line)}
.svc .b{padding:16px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.svc h4{font-size:18px;font-weight:700}
.svc p{color:var(--mute);font-size:15.5px}
.svc .more{margin-top:auto;font-weight:600;font-size:14.5px;color:var(--signal-d)}
.tag{align-self:flex-start;font:600 12.5px var(--body);background:var(--signal-t);color:var(--signal-d);border-radius:20px;padding:3px 10px}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:s;margin:0;padding:0;list-style:none}
.steps li{counter-increment:s;border-top:2px solid var(--line2);padding-top:18px;min-width:0}
.steps li::before{content:counter(s);font:800 34px/1 var(--head);color:var(--signal);display:block;margin-bottom:12px}
.steps h4{font-size:18px;margin-bottom:6px}
.steps p{color:var(--mute);font-size:15.5px}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* lighting showcase */
.lightsec{background:#0b1226;color:#fff}
.lightsec .intro{color:#c3cbe0}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.lcard{border:1px solid #233056;border-radius:var(--r-m);padding:16px;background:#101a35;display:grid;gap:8px;align-content:start;min-width:0}
.lcard svg{width:100%;height:96px;display:block}
.lcard h4{font-size:16px}
.lcard p{color:#b9c2d8;font-size:15px}
.lopts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.lopts>div{border-top:2px solid var(--glow);padding-top:12px;min-width:0}
.lopts h4{font-size:16px;margin-bottom:6px}
.lopts p{color:#b9c2d8;font-size:15px}
@media (max-width:760px){.lopts{grid-template-columns:1fr}}
/* promotions (Oct 2026): offer banner in the lighting section, the Promotions page, and the Promotions tab, which glows orange while an offer is live */
.promo{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px clamp(24px,4vw,52px);align-items:center;margin:0 0 34px;padding:clamp(20px,3vw,36px);border:1px solid rgba(255,196,126,.55);border-radius:var(--r-l);background:radial-gradient(ellipse 70% 90% at 100% 0%,rgba(229,97,47,.26),transparent 70%),linear-gradient(135deg,#17244d,#101a35);box-shadow:0 26px 60px -34px rgba(229,97,47,.6)}
.promo>*{min-width:0}
.promo-kick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font:700 13px/1.2 var(--head);letter-spacing:.08em;text-transform:uppercase;color:var(--glow);margin-bottom:14px}
.promo-kick span{background:var(--glow);color:var(--night);border-radius:999px;padding:6px 11px}
.promo h2,.promo h3{font-size:clamp(28px,3.4vw,42px);font-weight:800;letter-spacing:-.02em;color:#fff}
.promo-sub{color:#c3cbe0;margin-top:10px;font-size:17px;max-width:32em}
.promo-over{color:#e3e7f1;margin-top:14px;font-size:15.5px;max-width:36em}
.promo-over a{color:var(--glow);font-weight:700;text-underline-offset:3px}
.promo .btnrow{margin-top:22px;gap:10px}
.promo .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.promo-tiers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.promo-tiers li{display:grid;gap:4px;align-content:start;min-width:0;padding:18px 16px;border:1px solid rgba(255,196,126,.42);border-radius:var(--r-m);background:rgba(8,15,34,.55)}
.promo-tiers small{font:700 12.5px/1.2 var(--head);letter-spacing:.08em;text-transform:uppercase;color:#aeb7cf}
.promo-tiers b{font:800 clamp(36px,4.2vw,52px)/1 var(--head);letter-spacing:-.03em;color:var(--glow);margin:6px 0 4px}
.promo-tiers em{font:700 16px/1.3 var(--body);font-style:normal;color:#fff}
.promo-tiers span{color:#b9c2d8;font-size:14.5px;line-height:1.4}
.promo-fine{grid-column:1/-1;font-size:13.5px;color:#9eabc9;border-top:1px solid #2a3866;padding-top:16px}
.promo-tiers.one{grid-template-columns:1fr}
.promo-hero{grid-column:1/-1;margin:0;min-width:0}
.promo-hero img{width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;border-radius:var(--r-m);background:#16213f;box-shadow:0 18px 44px -24px rgba(0,0,0,.7)}
.promo-hero figcaption{margin-top:8px;font-size:13px;color:#9eabc9}
@media (max-width:760px){.promo-hero img{aspect-ratio:4/3;object-position:50% 50%!important}}
.promo-tiers b i{font:700 18px/1 var(--body);font-style:normal;letter-spacing:0;color:#e3e7f1;margin-left:4px}
.promo-svcs{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.promo-svcs li{padding:6px 12px;border:1px solid rgba(255,196,126,.45);border-radius:999px;background:rgba(255,196,126,.08);color:#fff;font:600 14px/1.2 var(--body)}
.heat .promo{margin:48px 0 0}
.promo-sec+.promo-sec{border-top:1px solid #233056}
.promo-sec .promo{margin-bottom:20px}
.promo-story{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px clamp(28px,4vw,56px);margin:44px 0 40px}
.ps-copy p{color:#d3d9ea;font-size:17px;max-width:38em}
.ps-copy p+p{margin-top:14px}
.ps-copy .btnrow{margin-top:22px;gap:10px}
.promo-story .btn.ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.ps-svcs{display:grid;gap:20px;align-content:start}
.ps-svcs>div{border-top:2px solid var(--glow);padding-top:12px;min-width:0}
.ps-svcs h3{font-size:17px;margin-bottom:6px}
.ps-video{margin:0;min-width:0;align-self:start}
.ps-video video{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-m);background:#0a1733;box-shadow:0 22px 50px -26px rgba(0,0,0,.7)}
.ps-video figcaption{margin-top:10px;font-size:13.5px;color:#9eabc9}
.lightbox .lb-img{width:auto;height:auto;max-width:100%;max-height:75vh}
.lightbox .lb-full{color:var(--signal-d);font-weight:600;white-space:nowrap}
.ps-svcs p{color:#b9c2d8;font-size:15px}
.promo-jump{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.promo-jump li{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:15px}
.promo-jump a{color:#fff;font-weight:700}
.promo-jump span{color:var(--glow);font-weight:600;font-size:13.5px}
@media (max-width:900px){.promo-story{grid-template-columns:1fr}}
.promo-terms{border:1px solid #233056;background:#101a35;border-radius:var(--r-m);padding:18px 22px;margin-bottom:clamp(44px,6vw,72px)}
.promo-terms h3{font-size:17px;margin-bottom:8px}
.promo-terms ul{margin:0;padding-left:20px;display:grid;gap:5px;color:#b9c2d8;font-size:15px}
.promo-gal>h3{font-size:clamp(24px,2.6vw,32px)}
.promo-gal>.intro{margin-bottom:26px}
.pg-home+.pg-home{margin-top:34px}
.pg-home h4{display:flex;align-items:center;gap:14px;font-size:18px;margin-bottom:14px}
.pg-home h4::after{content:"";flex:1;height:1px;background:#2a3866}
.pg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pg-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;margin-inline:auto}
.pg-grid figure{margin:0;min-width:0}
.pg-grid button{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;border-radius:var(--r-m);overflow:hidden;background:#16213f;cursor:zoom-in}
.pg-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.pg-grid button:hover img{transform:scale(1.03)}
.pg-grid figcaption{margin-top:9px;font-size:14.5px;color:#b9c2d8}
.pg-grid figcaption b{color:#fff;margin-right:4px}
.pg-tag{position:absolute;top:10px;right:10px;padding:5px 9px;border:1px dashed rgba(255,196,126,.85);border-radius:4px;background:rgba(8,16,38,.8);color:var(--glow);font:600 12px/1 var(--body);pointer-events:none}
.pg-miss img{visibility:hidden}
.pg-miss::before{content:"Image not uploaded yet";position:absolute;inset:0;display:grid;place-items:center;color:#9eabc9;font-size:14px;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px}
.promo-note{font-size:13.5px;color:#9eabc9;margin-top:22px}
@media (max-width:900px){.promo{grid-template-columns:1fr}}
@media (max-width:560px){.pg-grid,.pg-grid.two{grid-template-columns:1fr}.promo-tiers li{padding:14px 12px}.promo .btnrow .btn{flex:1 1 auto}}
@media (max-width:360px){.promo-tiers{grid-template-columns:1fr}}
/* Promotions tab: shiny orange while an offer is live, the normal navy nav text otherwise; one slow sheen, no flashing, off for reduced motion */
.nav a.promo-tab.on{position:relative;isolation:isolate;overflow:hidden;color:var(--signal-d);background:linear-gradient(180deg,rgba(255,196,126,.2),rgba(229,97,47,.1));box-shadow:inset 0 0 0 1px rgba(229,97,47,.45),0 0 16px -3px rgba(229,97,47,.55);text-shadow:0 0 14px rgba(255,140,80,.4)}
.nav a.promo-tab.on:hover{background:linear-gradient(180deg,rgba(255,196,126,.26),rgba(229,97,47,.12))}
.nav a.promo-tab.on[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--signal),inset 0 0 0 1px rgba(229,97,47,.45),0 0 16px -3px rgba(229,97,47,.55)}
.nav a.promo-tab.on::after,.promo-badge::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,240,224,.75) 50%,transparent 70%);transform:translateX(-120%);animation:promo-sheen 7s 1.2s ease-in-out infinite;pointer-events:none}
.promo-badge::after{background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%)}
@keyframes promo-sheen{0%,72%{transform:translateX(-120%)}88%,100%{transform:translateX(120%)}}
.mnav a.promo-tab.on{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--signal-d);text-shadow:0 0 14px rgba(255,140,80,.35)}
.promo-badge{position:relative;isolation:isolate;overflow:hidden;flex:none;padding:6px 11px;border-radius:999px;background:linear-gradient(135deg,#c94f22,#a8401a);color:#fff;font:700 13px/1 var(--body);text-shadow:none;box-shadow:0 0 14px -2px rgba(229,97,47,.6)}
.promo-dot{width:8px;height:8px;margin-left:8px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 3px rgba(229,97,47,.18),0 0 10px rgba(229,97,47,.7)}
/* room for the extra tab: the header may run a little wider than the page, and drops its phone number where the full menu would not fit (the phone stays in the footer, on Contact and in the menu below 1180px) */
.hdr .wrap{max-width:1300px}
@media (min-width:1181px) and (max-width:1259px){.hdr .tel{display:none}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav a.promo-tab.on{background:linear-gradient(180deg,rgba(229,97,47,.16),rgba(229,97,47,.07))}:root:not([data-theme="light"]) .nav a.promo-tab.on:hover{background:linear-gradient(180deg,rgba(229,97,47,.22),rgba(229,97,47,.1))}:root:not([data-theme="light"]) .nav a.promo-tab.on::after{background:linear-gradient(110deg,transparent 30%,rgba(255,196,126,.14) 50%,transparent 70%)}}
:root[data-theme="dark"] .nav a.promo-tab.on{background:linear-gradient(180deg,rgba(229,97,47,.16),rgba(229,97,47,.07))}
:root[data-theme="dark"] .nav a.promo-tab.on:hover{background:linear-gradient(180deg,rgba(229,97,47,.22),rgba(229,97,47,.1))}
:root[data-theme="dark"] .nav a.promo-tab.on::after{background:linear-gradient(110deg,transparent 30%,rgba(255,196,126,.14) 50%,transparent 70%)}
@media (prefers-reduced-motion:reduce){.nav a.promo-tab.on::after,.promo-badge::after{animation:none;display:none}.pg-grid button:hover img{transform:none}}
.dvphotos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0}
.dvphotos figure{margin:0;min-width:0}
.dvphotos img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-m);background:var(--line)}
.dvphotos figcaption{font-size:14.5px;color:var(--mute);margin-top:8px}
.dvopts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 28px;margin:40px 0 0}
.dvopts>div{border-top:2px solid var(--signal);padding-top:12px;min-width:0}
.dvopts h4{font-size:17px;margin-bottom:6px}
.dvopts p{color:var(--mute);font-size:15.5px}
.dvsub{font-size:clamp(22px,2.4vw,28px);margin:52px 0 22px}
.heat{background:#0b1226;color:#fff;background-image:radial-gradient(ellipse 60% 50% at 85% 0%,rgba(229,97,47,.16),transparent 70%)}
.heat .intro{color:#c3cbe0}
.heat .kick{font:700 13px/1 var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--glow);margin-bottom:12px}
.heat-top,.heat-how{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:center}
.heat-top.solo,.heat-how.solo{grid-template-columns:1fr}
.heat-how{grid-template-columns:1.05fr 1fr;margin-top:56px}
.heat-top>div,.heat-how>div{min-width:0}
.heat-fig{margin:0;min-width:0}
.heat-fig img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-l);background:#16213f;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.heat-fig figcaption{font-size:13.5px;color:#9eabc9;margin-top:10px}
.heat-facts{list-style:none;margin:24px 0 8px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.heat-facts li{border:1px solid #233056;background:#101a35;border-radius:var(--r-m);padding:14px;min-width:0}
.heat-facts b{display:block;font:800 clamp(22px,2.4vw,28px)/1.05 var(--head);color:var(--glow)}
.heat-facts span{display:block;font-size:14px;color:#b9c2d8;margin-top:6px}
.heat-pts{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px}
.heat-pts>div{border-top:2px solid var(--glow);padding-top:12px;min-width:0}
.heat-pts h4{font-size:17px;margin-bottom:6px}
.heat-pts p{color:#b9c2d8;font-size:15px}
.heat-sub{font-size:clamp(22px,2.6vw,30px);margin:64px 0 20px}
.heat-sum{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.heat-sum>div{border:1px solid #233056;background:#101a35;border-radius:var(--r-m);padding:18px 20px;min-width:0}
.heat-sum>div.save{border-color:rgba(255,196,126,.55);background:linear-gradient(135deg,rgba(229,97,47,.2),rgba(255,196,126,.08))}
.heat-sum small{display:block;font:700 12.5px/1 var(--head);letter-spacing:.1em;text-transform:uppercase;color:#9eabc9}
.heat-sum b{display:block;font:800 clamp(26px,3.4vw,40px)/1.1 var(--head);margin:8px 0 4px;font-variant-numeric:tabular-nums}
.heat-sum .save b{color:var(--glow)}
.heat-sum span{color:#c3cbe0;font-size:15px}
.heat-tbl{width:100%;border-collapse:collapse;font-size:15.5px;min-width:560px}
.heat-tbl th,.heat-tbl td{text-align:left;padding:12px 10px;border-bottom:1px solid #233056;vertical-align:top}
.heat-tbl thead th{color:#9eabc9;font:700 12.5px/1.2 var(--head);letter-spacing:.08em;text-transform:uppercase}
.heat-tbl tbody th{font-weight:700;color:#fff;width:28%}
.heat-tbl td{color:#c3cbe0}
.heat-tbl td.ok{color:#8fe0b0;font-weight:700;white-space:nowrap}
.heat-note{font-size:13.5px;color:#9eabc9;margin-top:14px;max-width:60em}
.heat-tip{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:34px;border:1px solid rgba(255,196,126,.45);border-radius:var(--r-m);padding:18px 20px;background:#101a35}
.heat-tip p{max-width:46em;color:#e3e7f1;min-width:0;flex:1 1 320px}
@media (max-width:900px){.heat-top,.heat-how{grid-template-columns:1fr;gap:28px}.heat-how .heat-fig{order:2}.dvopts{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.dvphotos{grid-template-columns:1fr}.dvopts,.heat-pts,.heat-sum{grid-template-columns:1fr}.heat-facts{grid-template-columns:1fr}}
@media (max-width:760px){.heat-tbl{min-width:0}.heat-tbl thead{display:none}.heat-tbl tr{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:12px 0;border-bottom:1px solid #233056}.heat-tbl th,.heat-tbl td{border:0;padding:0}.heat-tbl tbody th{grid-column:1/-1;width:auto}.heat-tbl td.ok{white-space:normal;text-align:right;max-width:9em}}

/* why */
.why{display:grid;grid-template-columns:1.3fr repeat(2,1fr);gap:28px 40px}
.why .lead{grid-row:span 2}
.why .lead p{color:#d2d8ea;margin-top:16px;font-size:18px}
.why .it{border-top:2px solid var(--signal);padding-top:14px}
.why .it h4{font-size:18px;margin-bottom:6px}
.why .it p{color:#c9d0e4;font-size:15.5px}
@media (max-width:900px){.why{grid-template-columns:1fr 1fr}.why .lead{grid-column:1/-1;grid-row:auto}}@media (max-width:560px){.why{grid-template-columns:1fr}}

/* work */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery figure{margin:0;min-width:0}
.gallery button{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:var(--r-m);overflow:hidden}
.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{font-size:14px;color:var(--mute);margin-top:6px}
.vids{margin-bottom:48px}
.vids h2,.gal-h{font-size:clamp(24px,2.6vw,32px);margin-bottom:18px}
.vgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.vid{margin:0;min-width:0}
.vid video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#0a1733;border-radius:var(--r-m)}
.vid figcaption{font-size:15px;line-height:1.5;color:var(--mute);margin-top:10px}
.vid figcaption strong{color:var(--ink);font-weight:700}
@media (max-width:760px){.vgrid{grid-template-columns:1fr}}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:56px}
.ba figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:14px;min-width:0}
.ba figcaption{font-size:14px;color:var(--mute);margin-top:10px}
.svgw{position:relative;border-radius:6px;overflow:hidden;line-height:0}
.svgw svg{width:100%;height:auto;display:block}
.tg{position:absolute;top:10px;font:600 12px/1 var(--body);color:#fff;background:rgba(16,34,74,.86);padding:6px 9px;border-radius:3px}
.tg.r{right:10px;background:rgba(229,97,47,.94)}.tg.l{left:10px}
@media (max-width:900px){.gallery{grid-template-columns:1fr 1fr}.ba{grid-template-columns:1fr}}

/* reviews */
.revs{display:flex;gap:20px;justify-content:center;align-items:stretch}
.rev{flex:1 1 0;min-width:0;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:26px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.rev .logo{background:none;border-radius:6px;padding:0;line-height:0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rev .logo{background:#fff;padding:8px 10px}}
:root[data-theme="dark"] .rev .logo{background:#fff;padding:8px 10px}
.rev img{height:30px;width:auto}
.rev .score{font:800 20px var(--head)}
.rev .score .stars{display:inline-block;vertical-align:-3px;margin-left:8px;width:108px;height:20px}
.rev .btn{margin-top:auto}
.rev p{color:var(--mute)}
@media (max-width:860px){.revs{flex-direction:column;align-items:center}.rev{flex:none;width:100%;max-width:520px}}

/* estimate band + forms */
.band{background:var(--deep);color:#fff;padding-block:clamp(56px,7vw,88px)}
.band .wrap{display:grid;grid-template-columns:1fr 460px;gap:56px;align-items:center}
.band .wrap>div{min-width:0}
.band p{color:#cbd2e5;margin-top:12px;max-width:30em;font-size:18px}
.contact-lines{margin-top:26px;display:grid;gap:6px;font-weight:600}
.contact-lines a{text-decoration:none}
@media (max-width:960px){.band .wrap{grid-template-columns:1fr;gap:32px}}
.form{background:var(--card);color:var(--ink);border-radius:var(--r-l);padding:28px;box-shadow:0 24px 50px rgba(0,0,0,.25);min-width:0}
@media (max-width:480px){.form{padding:20px}}
.form h3{font-size:22px}.form .sub{color:var(--mute);margin:6px 0 14px;font-size:15.5px}
.fld{display:flex;flex-direction:column;gap:5px;margin-top:12px;min-width:0}
.fld label{font:600 15px var(--body)}
.hint{font-size:14px;color:var(--mute);font-weight:400}
.fld input,.fld select,.fld textarea{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:16px}
.fld textarea{min-height:90px;resize:vertical}
.fld [aria-invalid="true"],.check [aria-invalid="true"]{border-color:var(--err);outline-color:var(--err)}
.err{color:var(--err);font-size:14.5px;font-weight:600}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .err{color:#ff8b80}}
:root[data-theme="dark"] .err{color:#ff8b80}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
@media (max-width:480px){.row2{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:15px;color:var(--mute)}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--signal)}
.fine{font-size:14px;color:var(--mute);margin-top:12px}
.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.notice{border-radius:var(--r-m);padding:12px 14px;font-size:15px;margin-top:14px;color:var(--ink)}
.notice.ok{background:rgba(34,112,74,.1);border:1px solid rgba(34,112,74,.4)}
.notice.err{background:rgba(180,35,24,.08);border:1px solid rgba(180,35,24,.45)}
.notice.warn{background:rgba(138,90,0,.08);border:1px solid rgba(138,90,0,.35)}
.success h3{font-size:24px;margin-bottom:8px}.success ol{padding-left:20px;color:var(--mute);margin:12px 0 0;display:grid;gap:4px}
.copybox{display:flex;gap:8px;margin-top:8px}
.copybox input,.copybox textarea{flex:1;min-width:0;min-height:42px;padding:8px 10px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--paper);font:500 14px/1.4 var(--body);color:var(--ink)}
.copybox textarea{min-height:110px;resize:vertical}
.sel{user-select:all;-webkit-user-select:all;font-weight:700}

/* footer */
.foot{background:var(--night);color:#fff;padding-block:52px 30px}
.foot .grid{display:grid;grid-template-columns:1.2fr 1.35fr 1fr 1fr;gap:32px}
.foot .grid>div{min-width:0}
.foot h4{font:600 15px var(--body);color:#aeb7cf;margin-bottom:10px;letter-spacing:0}
.foot a{color:#fff;text-decoration:none;display:block;padding:4px 0;overflow-wrap:anywhere}
.foot a:hover{text-decoration:underline}
.foot a.brand{color:#fff;display:flex;padding:0}.foot .brand svg{color:#fff}
.foot .big{font:800 22px var(--head);margin:18px 0 6px}
.soc{display:flex;gap:10px;margin-top:14px}
.soc a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;padding:0}
.soc a:hover{background:var(--signal)}
.soc svg{width:19px;height:19px}
.legal{border-top:1px solid rgba(255,255,255,.15);margin-top:36px;padding-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;color:#aeb7cf}
@media (max-width:900px){.foot .grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.foot .grid{grid-template-columns:1fr}}
.mbar{display:none}
@media (max-width:760px){.mbar{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))}
  .mbar .btn{min-height:46px;padding:0 6px;font-size:13.5px}.mbar .ghost{color:var(--signal-d)}body:not(.in-studio) .foot{padding-bottom:100px}}

/* page headers & service page */
.phead{background:var(--night);color:#fff;padding-block:52px 46px}
.crumbs{font-size:14.5px;color:#aeb7cf;margin-bottom:14px}.crumbs a{color:#fff}
.phead h1{font-size:clamp(34px,4.6vw,56px);font-weight:800}
.phead p{color:#d2d8ea;margin-top:14px;max-width:40em;font-size:19px}
.svcpage{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}
.svcpage>div,.svcpage>aside{min-width:0}
.svcpage .hero-img{border-radius:var(--r-m);width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}
.svcpage h2{font-size:26px;margin:34px 0 12px}
ul.inc{padding-left:20px;color:var(--mute);display:grid;gap:6px}
.ptbl{width:100%;border-collapse:collapse;font-size:16px}
.ptbl th,.ptbl td{text-align:left;padding:13px 0;border-bottom:1px solid var(--line);vertical-align:top}
.ptbl th{font-weight:700;color:var(--ink);padding-right:18px}
.ptbl th small{display:block;color:var(--mute);font-weight:400;font-size:14.5px;line-height:1.45;margin-top:3px}
.ptbl td{text-align:right;white-space:nowrap;color:var(--ink)}
.ptbl td small{display:block;color:var(--mute);font-size:12.5px;text-transform:uppercase;letter-spacing:.06em}
.ptbl td b{font:800 20px/1.2 var(--head)}
.ptbl td i{display:block;font-style:normal;color:var(--mute);font-size:14px}
.pnote{color:var(--mute);font-size:14.5px;line-height:1.55;margin-top:12px}
.side{position:sticky;top:calc(var(--hdr) + 20px);display:grid;gap:18px}
.side .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:22px}
.side .card h3{font-size:19px;margin-bottom:8px}.side .card p{color:var(--mute);font-size:15.5px;margin-bottom:14px}
@media (max-width:960px){.svcpage{grid-template-columns:1fr}.side{position:static}}
.story{max-width:46em}.story h2{font-size:clamp(26px,3vw,34px);margin-bottom:18px}.story p{color:var(--mute);font-size:18px;line-height:1.7;margin-top:14px}.story .mission{color:var(--ink);font-weight:600;border-left:4px solid var(--signal);padding:4px 0 4px 18px;margin-top:26px}
.prose{max-width:46em}.prose h2{font-size:24px;margin:30px 0 10px}.prose p,.prose li{color:var(--mute);margin-top:10px}

/* modal / toast */
.modal{position:fixed;inset:0;z-index:80;background:rgba(6,12,28,.62);display:grid;place-items:center;padding:16px}
.modal .box{background:var(--card);color:var(--ink);border-radius:var(--r-l);width:min(720px,100%);max-height:calc(100% - 32px);overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.modal.wide .box{width:min(980px,100%)}
.modal .mh{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:2}
.modal .mh h2{font-size:20px}
.modal .mb{padding:18px 20px 22px}
.x{width:42px;height:42px;flex:none;border-radius:50%;border:0;background:rgba(127,127,127,.14);cursor:pointer;font-size:22px;line-height:1;color:var(--ink)}
.lightbox img{max-height:75vh;margin:0 auto;border-radius:var(--r-m)}
.lightbox .lbnav{justify-content:space-between;align-items:center;flex-wrap:nowrap;margin-top:14px}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--char);color:#fff;padding:12px 18px;border-radius:var(--r-m);z-index:90;font-weight:600;font-size:15px;box-shadow:0 12px 30px rgba(0,0,0,.3);max-width:calc(100% - 32px)}
.toast.err{background:var(--err)}

/* ================= STUDIO (deliberately dark workspace in both themes) ================= */
body.in-studio{overflow:hidden}
body.in-studio .foot,body.in-studio .mbar{display:none!important}
.studio{position:fixed;inset:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px) 0;display:grid;grid-template-rows:56px minmax(0,1fr);background:var(--deep);color:#e9ecf3;font-size:15px;z-index:20}
body.in-studio .studio{top:calc(env(safe-area-inset-top,0px) + var(--hdr))} /* the site header (logo + menu) stays visible above the studio */
body.in-studio .hdr .wrap{max-width:none}body.in-studio .hdr .cta{display:none}
.sbar{display:flex;align-items:center;gap:8px;padding:0 10px;background:#081129;border-bottom:1px solid #1b2a4f;min-width:0}
.sbar .brand{color:#fff}
.pname{background:transparent;border:1px solid transparent;color:#fff;font:700 15px var(--head);padding:7px 9px;border-radius:var(--r-s);min-width:0;flex:1;max-width:300px}
.pname:hover,.pname:focus{border-color:#33467a}
.sbar .sp{flex:1}
.ib{height:38px;min-width:38px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#132147;border:1px solid #22356a;color:#e9ecf3;border-radius:var(--r-s);cursor:pointer;font:600 13.5px var(--body);white-space:nowrap;text-decoration:none}
.ib:hover{background:#1b2c5c}.ib[disabled]{opacity:.4;cursor:default}.ib[aria-pressed="true"]{background:var(--signal);border-color:var(--signal);color:#fff}
.ib svg{width:18px;height:18px}
.sbody{display:grid;grid-template-columns:minmax(0,1fr) 410px;min-height:0}
.stage{position:relative;min-width:0;min-height:0;background:#cfdbe6;overflow:hidden}
.stage canvas{display:block;width:100%;height:100%;outline:none}
.vtools{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:8px;flex-wrap:wrap;pointer-events:none;z-index:3}
.vtools>*{pointer-events:auto}
.seg{display:inline-flex;background:rgba(8,17,41,.88);border-radius:var(--r-s);padding:3px;gap:2px}
.seg button{height:32px;padding:0 10px;border:0;border-radius:3px;background:transparent;color:#d9deeb;font:600 13.5px var(--body);cursor:pointer}
.seg button[aria-pressed="true"]{background:#fff;color:var(--night)}
.seg button.duskon[aria-pressed="true"]{background:var(--glow);color:#1a1205}
.hint3d{position:absolute;left:10px;bottom:10px;background:rgba(8,17,41,.85);color:#d9deeb;font-size:13.5px;padding:7px 10px;border-radius:var(--r-s);z-index:3;max-width:calc(100% - 20px)}
.hint3d.bad{background:rgba(180,35,24,.92);color:#fff}
.loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--deep);color:#c9d0e4;z-index:4;text-align:center;padding:24px}
.loading .bar{width:180px;height:3px;background:#22356a;border-radius:3px;overflow:hidden;margin:14px auto 0}
.loading .bar i{display:block;height:100%;width:40%;background:var(--signal);animation:ld 1.1s ease-in-out infinite}
@keyframes ld{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
.plan{position:absolute;inset:0;background:#eef1ec;z-index:2;touch-action:none}
.plan svg{width:100%;height:100%;display:block;user-select:none;-webkit-user-select:none}
.plan .fb{position:absolute;left:10px;right:10px;top:54px;z-index:3;background:#fff8eb;color:#3b2a00}

.panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0;background:var(--card);color:var(--ink);border-left:1px solid #1b2a4f}
.handle{grid-row:1}.tabs{grid-row:2}.pbody{grid-row:3}.est{grid-row:4}
.tabs{display:flex;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs button{flex:1;min-width:max-content;height:46px;padding:0 11px;background:none;border:0;border-bottom:3px solid transparent;font:600 14.5px var(--body);color:var(--mute);cursor:pointer}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--signal)}
.pbody{overflow:auto;padding:14px 16px 24px;min-height:0;overscroll-behavior:contain}
.pbody details{border-bottom:1px solid var(--line);padding:8px 0}
.pbody summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;font:700 16px var(--head)}
.pbody summary::-webkit-details-marker{display:none}
.pbody summary::after{content:"+";font:600 20px var(--body);color:var(--mute)}
.pbody details[open]>summary::after{content:"–"}
.pbody h3{font-size:16px;margin:16px 0 6px}
.muted{color:var(--mute);font-size:14.5px}
.ctl{display:grid;gap:6px;margin:10px 0}
.ctl>label,.ctl>.lab{display:flex;justify-content:space-between;gap:8px;font-weight:600;font-size:14.5px}
.ctl>label output{font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums}
.ctl input[type=range]{width:100%;accent-color:var(--signal);height:28px}
.ctl select,.ctl input[type=number],.ctl input[type=text],.ctl input[type=search],.ctl textarea{width:100%;min-height:42px;padding:8px 10px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:15px}
.numrow{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{min-height:36px;padding:0 12px;border:1.5px solid var(--line2);border-radius:20px;background:var(--card);font:600 14px var(--body);cursor:pointer;color:var(--ink)}
.chips button[aria-pressed="true"]{border-color:var(--signal);background:var(--signal-t);color:var(--signal-d)}
.tog{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;font-weight:600;font-size:14.5px}
.tog input{width:22px;height:22px;accent-color:var(--signal)}
.matbtn{display:flex;align-items:center;gap:10px;width:100%;min-height:54px;padding:6px 10px 6px 6px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);cursor:pointer;text-align:left;color:var(--ink)}
.matbtn img{width:42px;height:42px;border-radius:3px;flex:none;background:var(--line)}
.matbtn span{flex:1;font-weight:600;font-size:14.5px;min-width:0}.matbtn small{display:block;font-weight:500;color:var(--mute);font-size:13px}
.lib{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lib button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border:1.5px solid var(--line2);border-radius:var(--r-m);background:var(--card);cursor:pointer;text-align:left;min-height:84px;color:var(--ink);min-width:0}
.lib button:hover{border-color:var(--signal)}
.patgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.patgrid button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:1.5px solid var(--line2);border-radius:var(--r-m);background:var(--card);cursor:pointer;color:var(--ink);min-width:0;font:inherit;text-align:center}
.patgrid button:hover{border-color:var(--signal)}.patgrid button[aria-pressed="true"]{border-color:var(--signal);background:var(--signal-t)}
.patgrid img{width:100%;height:auto;aspect-ratio:1;border-radius:4px;object-fit:cover;display:block}
.patgrid b{font-size:12px;line-height:1.2}.patgrid small{font-size:11px;color:var(--mute);line-height:1.2}
.lib b{font-size:14.5px}.lib small{color:var(--mute);font-size:13px;line-height:1.35}
.lib .lt{display:flex;align-items:center;gap:8px}
.tierb{display:inline-block;font-style:normal;font-size:11.5px;font-weight:700;letter-spacing:.02em;padding:1px 7px;border-radius:999px;margin-right:4px;vertical-align:1px;background:var(--line);color:var(--ink)}.tierb.t2{background:#dfe7f6;color:#10224a}.tierb.t3{background:#f3e6c8;color:#5a3d06}
.lcats .cnt{font-size:12px;opacity:.7;font-variant-numeric:tabular-nums}.lfix{margin-top:10px}.lib .lt i{width:10px;height:10px;border-radius:50%;background:var(--glow);box-shadow:0 0 0 3px rgba(255,196,126,.3);flex:none}
.issues{display:grid;gap:6px;margin:8px 0}
.issue{font-size:14px;padding:8px 10px;border-radius:var(--r-s);border-left:3px solid var(--warn);background:rgba(138,90,0,.08)}
.issue.error{border-color:var(--err);background:rgba(180,35,24,.08)}
.objlist{display:grid;gap:6px}
.objlist button{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--card);cursor:pointer;font-weight:600;font-size:14.5px;text-align:left;color:var(--ink)}
.objlist button[aria-current="true"]{border-color:var(--signal);box-shadow:inset 3px 0 0 var(--signal)}
.objlist small{color:var(--mute);font-weight:500;font-variant-numeric:tabular-nums}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.mods{display:grid;gap:6px}
.mod{display:grid;grid-template-columns:minmax(0,1fr) 84px 36px 36px 36px;gap:4px;align-items:center}
.mod select{min-height:38px;padding:4px 6px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:14px;min-width:0}
.mod button{height:38px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);cursor:pointer;color:var(--ink)}
.lstat{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}
.lstat div{border:1px solid var(--line);border-radius:var(--r-s);padding:8px;text-align:center}
.lstat b{display:block;font:800 18px var(--head);font-variant-numeric:tabular-nums}
.lstat small{color:var(--mute);font-size:12.5px}
.est{border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--card);display:grid;gap:8px}
.est .rng{display:flex;justify-content:space-between;align-items:center;gap:8px}
.est .rng b{font:800 21px var(--head);font-variant-numeric:tabular-nums}
.est .rng small{color:var(--mute);font-size:13px}
.est .rng .mo{display:inline-block;margin-top:3px;line-height:1.3;font-size:12.5px}.est .rng .mo b{font:700 13.5px/1.2 var(--head);color:var(--ink);white-space:nowrap}
.pill{display:inline-block;font:600 12px var(--body);padding:2px 8px;border-radius:20px;background:rgba(138,90,0,.14);color:var(--warn)}
.pill.bad{background:rgba(180,35,24,.12);color:var(--err)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pill{color:#f0c060}:root:not([data-theme="light"]) .pill.bad{color:#ff8b80}}
:root[data-theme="dark"] .pill{color:#f0c060}:root[data-theme="dark"] .pill.bad{color:#ff8b80}
.scroll{overflow-x:auto}
table.lines{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
table.lines th{text-align:left;font-weight:600;color:var(--mute);padding:6px 4px;border-bottom:1px solid var(--line)}
table.lines td{padding:7px 4px;border-bottom:1px solid var(--line);vertical-align:top}
table.lines td.n,table.lines th.n{text-align:right;white-space:nowrap}
table.lines tr.sc td{font-weight:700;background:rgba(127,127,127,.07)}
.flags{padding-left:18px;font-size:14px;color:var(--mute);display:grid;gap:4px}
.dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14.5px}.dl dt{color:var(--mute)}.dl dd{margin:0;font-weight:600;min-width:0}
.designs{display:grid;gap:8px}
.dcard{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:8px;border:1px solid var(--line);border-radius:var(--r-m);align-items:center}
.dcard img{width:72px;height:48px;object-fit:cover;border-radius:4px;background:var(--line)}
.dcard b{font-size:14.5px}.dcard small{color:var(--mute);display:block;font-size:13px}
.cmp{width:100%;border-collapse:collapse;font-size:14px}.cmp th,.cmp td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
.cmp td.diff{background:var(--signal-t)}
.start{position:absolute;inset:0;z-index:6;background:var(--deep);overflow:auto;padding:26px 16px 40px}
.start .in{max-width:1000px;margin:0 auto}
.start h1{font-size:clamp(26px,3.6vw,40px);color:#fff}
.start p{color:#c9d0e4;margin-top:8px}
.types{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:20px}
.types button{background:#101d40;border:1.5px solid #22356a;color:#fff;border-radius:var(--r-m);padding:16px;text-align:left;cursor:pointer;min-height:118px;display:flex;flex-direction:column;gap:6px;min-width:0}
.types button:hover{border-color:var(--signal)}
.types b{font:700 16px var(--head)}.types small{color:#b6bfd6;font-size:14px;line-height:1.4}
.types button.soon{opacity:.8;border-style:dashed}
.soonpill{align-self:flex-start;font:600 12px var(--body);background:#22356a;padding:2px 8px;border-radius:20px;margin-top:auto}
.codein{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-top:28px}
.codein .ctl{flex:1;min-width:220px;margin:0}
.codein label{color:#fff}
.codein input{background:#101d40!important;color:#fff;border-color:#22356a!important}
.handle{display:none}
@media (max-width:980px){
  .studio{grid-template-rows:52px minmax(0,1fr)}
  .sbody{grid-template-columns:minmax(0,1fr);position:relative}
  .hide-m{display:none!important}
  .panel{position:absolute;left:0;right:0;bottom:0;height:var(--sheet,300px);border-left:0;border-radius:16px 16px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.35);z-index:10;transition:height .22s ease}
  .panel.dragging{transition:none}
  .handle{display:flex;justify-content:center;align-items:center;height:24px;cursor:ns-resize;touch-action:none;border:0;background:none;width:100%}
  .handle i{width:44px;height:5px;border-radius:3px;background:var(--line2)}
  .hint3d{bottom:calc(var(--sheet,300px) + 8px)}
  .vtools .seg button{padding:0 8px;font-size:13px}
  .est{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding-block:8px}
  .est .rng b{font-size:18px;white-space:nowrap}.est .rng{min-width:0}.est .btn.block{width:auto;min-height:44px;padding:0 14px;font-size:14px}
  .est p.muted{grid-column:1/-1}
}
@media (max-width:560px){.vtools [data-cam=front],.vtools [data-cam=side],.vtools [data-act=dims]{display:none}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* admin */
.admin{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;align-items:start}
.anav{display:grid;gap:4px;position:sticky;top:calc(var(--hdr) + 20px)}
.anav button{text-align:left;padding:10px 12px;border:0;border-radius:var(--r-s);background:none;font-weight:600;cursor:pointer;color:var(--ink)}
.anav button[aria-current="true"]{background:var(--night);color:#fff}
.acard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:20px;margin-bottom:18px;min-width:0}
.acard h2{font-size:21px;margin-bottom:6px}
.atable{width:100%;border-collapse:collapse;font-size:14.5px}
.atable th,.atable td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.atable th{color:var(--mute);font-weight:600;font-size:13.5px}
.atable td input,.atable td select{width:100%;min-height:36px;padding:4px 8px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:14px}
.atable td input[type=number]{max-width:110px}
.atable tr.rowbtn{cursor:pointer}.atable tr.rowbtn:hover td{background:rgba(127,127,127,.06)}
.status{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12.5px;font-weight:600;background:rgba(127,127,127,.14);white-space:nowrap}
.status.new{background:var(--signal-t);color:var(--signal-d)}.status.won{background:rgba(34,112,74,.14);color:var(--st-ok)}.status.lost{background:rgba(127,127,127,.2)}
.ck{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.ck .st{font-weight:800;font-size:15px}.ck .st.ok{color:var(--ok)}.ck .st.v{color:var(--warn)}.ck .st.no{color:var(--err)}
.ck b{display:block}.ck small{color:var(--mute);display:block;font-size:14px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kpis div{border:1px solid var(--line);border-radius:var(--r-s);padding:12px}
.kpis b{display:block;font:800 22px var(--head);font-variant-numeric:tabular-nums}.kpis small{color:var(--mute)}
@media (max-width:900px){.admin{grid-template-columns:1fr}.anav{position:static;display:flex;flex-wrap:wrap}.kpis{grid-template-columns:1fr 1fr}}
/* staff dashboard: a Wix-style workspace (sidebar of business tools, one working pane) */
body.in-dash .foot,body.in-dash .mbar{display:none!important}
.dash{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:calc(100vh - var(--hdr));background:var(--paper)}
.dside{background:var(--card);border-right:1px solid var(--line);padding:16px 12px 24px;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--hdr));align-self:start;height:calc(100vh - var(--hdr));overflow:auto}
.dside .who{padding:4px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.dside .who b{display:block;font:700 14.5px/1.3 var(--head)}
.dside .who small{color:var(--mute);font-size:13px}
.dnav{display:grid;gap:2px}
.dnav .grp{font:600 12px var(--body);letter-spacing:.07em;text-transform:uppercase;color:var(--mute);padding:14px 10px 4px}
.dnav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:0;border-radius:var(--r-s);background:none;font:600 15px var(--body);color:var(--ink);cursor:pointer}
.dnav button svg{width:19px;height:19px;flex:none;color:var(--mute)}
.dnav button:hover{background:rgba(127,127,127,.09)}
.dnav button[aria-current="true"]{background:var(--signal-t);color:var(--signal-d)}
.dnav button[aria-current="true"] svg{color:var(--signal-d)}
.dnav .cnt{margin-left:auto;font:700 12px/1.5 var(--body);background:var(--signal);color:#fff;border-radius:20px;padding:0 7px}
.dmain{padding:26px clamp(16px,3vw,36px) 64px;min-width:0}
.dmain:focus{outline:none}
.dhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin-bottom:18px}
.dhead>div{min-width:0}
.dhead h1{font-size:clamp(24px,2.6vw,32px);font-weight:800}
.dhead p{color:var(--mute);margin-top:4px;max-width:46em}
.dhead .btnrow{margin:0}
.rowh{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.rowh h2{margin:0!important}
.subtabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}
.subtabs button{padding:10px 14px;border:0;border-bottom:3px solid transparent;background:none;font:600 15px var(--body);color:var(--mute);cursor:pointer;white-space:nowrap}
.subtabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--signal)}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:16px;min-width:0}
.tile small{display:block;color:var(--mute);font-size:13.5px;font-weight:600}
.tile b{display:block;font:800 26px var(--head);margin-top:6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tile span{display:block;color:var(--mute);font-size:13.5px;margin-top:2px}
.cols2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.task{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.task:last-child{border-bottom:0}
.task input[type=checkbox]{width:20px;height:20px;margin:2px 0 0;accent-color:var(--signal)}
.task b{font-weight:600;display:block;overflow-wrap:anywhere}
.task small{color:var(--mute);font-size:13.5px;display:block}
.task.done b{text-decoration:line-through;color:var(--mute)}
.task .tact{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.task .tact button{font:600 13px var(--body);padding:4px 10px;border:1px solid var(--line2);border-radius:20px;background:var(--card);color:var(--ink);cursor:pointer}
.task .side2{display:grid;justify-items:end;gap:6px}
.xbtn{border:0;background:none;color:var(--mute);cursor:pointer;font-size:18px;line-height:1;padding:2px 4px}
.due{font:600 12.5px var(--body);padding:2px 8px;border-radius:20px;background:rgba(127,127,127,.12);white-space:nowrap}
.due.late{background:rgba(180,35,24,.12);color:var(--st-err)}.due.today{background:var(--signal-t);color:var(--signal-d)}
.feed>div{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;align-items:baseline}
.feed>div:last-child{border-bottom:0}
.feed i{width:8px;height:8px;border-radius:50%;background:var(--bar);display:inline-block}
.feed small{color:var(--mute);font-size:13px;white-space:nowrap}
.setup{display:grid;gap:0}
.setup>div{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.setup>div:last-child{border-bottom:0}
.setup .st{font-weight:800}.setup .st.ok{color:var(--st-ok)}.setup .st.v{color:var(--st-warn)}
.setup small{display:block;color:var(--mute);font-size:14px}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px}
.bcol{background:rgba(127,127,127,.06);border:1px solid var(--line);border-radius:var(--r-m);padding:10px;min-height:170px;display:flex;flex-direction:column;gap:8px;min-width:0}
.bcol h3{font:700 14.5px/1.3 var(--head);display:flex;flex-direction:column;gap:2px;padding:2px 2px 6px;border-bottom:2px solid var(--line2)}
.bcol h3 small{color:var(--mute);font:600 12.5px var(--body);font-variant-numeric:tabular-nums}
.bcol.won h3{border-bottom-color:var(--st-ok)}.bcol.lost h3{border-bottom-color:var(--line2)}
.bcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);padding:10px;text-align:left;cursor:pointer;color:var(--ink);font:inherit;display:grid;gap:3px;width:100%}
.bcard:hover{border-color:var(--signal)}
.bcard b{font-size:14.5px;line-height:1.3;overflow-wrap:anywhere}.bcard small{color:var(--mute);font-size:13px}.bcard .v{font:700 14px var(--body);font-variant-numeric:tabular-nums}
.bempty{color:var(--mute);font-size:13.5px;padding:6px 2px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.toolbar .ctl{margin:0}
.toolbar .grow{flex:1;min-width:200px}
.chart{position:relative;margin-top:8px}
.chart svg{width:100%;max-width:560px;height:auto;display:block}
.chart .bar{fill:var(--bar)}
.chart g.b{outline:none}
.chart g.b:hover .bar,.chart g.b:focus .bar{fill:var(--bar-h)}
.chart g.b:focus-visible .hit{stroke:var(--signal);stroke-width:2}
.chart .hit{fill:transparent}
.chart text{fill:var(--mute);font:500 12px var(--body)}
.chart text.val{fill:var(--ink);font-weight:600}
.chart .gl{stroke:var(--line);stroke-width:1}
.chart .base{stroke:var(--line2);stroke-width:1}
.chart .tip{position:absolute;pointer-events:none;background:var(--char);color:#fff;font:600 13px var(--body);padding:6px 9px;border-radius:var(--r-s);white-space:nowrap;transform:translate(-50%,calc(-100% - 8px));z-index:3}
.chart details{margin-top:8px;font-size:14px}.chart summary{cursor:pointer;color:var(--signal-d);font-weight:600}
.cempty{color:var(--mute);font-size:14.5px;padding:28px 0;text-align:center}
.rec{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}
.rec:last-child{border-bottom:0}
.rec b{display:block;font:700 16px var(--head)}
.rec p{color:var(--mute);font-size:15px;margin-top:4px}
.rec .meta{font-size:13.5px;color:var(--mute);margin-top:6px}
.rec input[type=number]{width:64px;min-height:34px;padding:3px 6px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:15px;text-align:center}
.switch{position:relative;display:inline-block;width:46px;height:26px;flex:none}
.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.switch i{position:absolute;inset:0;border-radius:20px;background:var(--line2);transition:background .15s}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.switch input:checked+i{background:var(--signal)}.switch input:checked+i::after{transform:translateX(20px)}
.switch input:focus-visible+i{outline:3px solid var(--signal);outline-offset:2px}
.items{width:100%;border-collapse:collapse;font-size:14.5px}
.items th{text-align:left;color:var(--mute);font-weight:600;font-size:13px;padding:6px 4px;border-bottom:1px solid var(--line)}
.items td{padding:5px 4px;border-bottom:1px solid var(--line);vertical-align:middle}
.items input{width:100%;min-height:38px;padding:6px 8px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:14.5px}
.items td.n,.items th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.items .q{width:76px}.items .p{width:120px}
.totals{display:grid;grid-template-columns:auto auto;justify-content:end;gap:4px 22px;margin-top:12px;font-variant-numeric:tabular-nums}
.totals span{color:var(--mute)}.totals b{text-align:right}
.totals .big{font:800 18px var(--head);color:var(--ink)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.fgrid .full{grid-column:1/-1}
.fgrid .ctl{margin:8px 0}
.ctl input[type=email],.ctl input[type=tel],.ctl input[type=url],.ctl input[type=date]{width:100%;min-height:42px;padding:8px 10px;border:1.5px solid var(--line2);border-radius:var(--r-s);background:var(--card);font-size:15px}
.docview{border:1px solid var(--line);border-radius:var(--r-m);padding:22px;background:var(--card)}
.docview .dh{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:14px}
.docview .dh h3{font-size:22px}
.docview .meta{display:grid;grid-template-columns:auto auto;gap:2px 14px;font-size:14px;align-content:start}
.docview .meta span{color:var(--mute)}
.docview .two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px;font-size:14.5px}
.docview .two h4{font:600 12.5px var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin-bottom:4px}
.docview .note{margin-top:14px;font-size:14px;color:var(--mute);white-space:pre-wrap}
.dact{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.agentwrap{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.agent{display:grid;grid-template-rows:minmax(0,1fr) auto;height:min(72vh,760px);min-height:440px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m)}
.agent .log{overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.agent form{border-top:1px solid var(--line);padding:12px;display:grid;gap:8px}
.agent form .chips{margin:0}
.agent textarea{width:100%;min-height:62px;border:1.5px solid var(--line2);border-radius:var(--r-m);padding:10px 12px;font:inherit;background:var(--card);color:var(--ink);resize:vertical}
.msg.ai .txt{white-space:pre-wrap;overflow-wrap:anywhere}
.msg .acts{display:grid;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.msg .acts div{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:13.5px}
.msg .acts button,.msg .mtools button{font:600 12.5px var(--body);padding:3px 9px;border:1px solid var(--line2);border-radius:20px;background:var(--card);color:var(--ink);cursor:pointer}
.msg .mtools{display:flex;gap:6px;margin-top:8px}
.msg .errn{color:var(--st-err);font-size:14px;margin-top:6px}
.tpl{border:1px solid var(--line);border-radius:var(--r-m);padding:14px;display:grid;gap:8px;min-width:0}
.tpl b{font:700 15px var(--head)}
.tpl textarea{width:100%;min-height:96px;border:1.5px solid var(--line2);border-radius:var(--r-s);padding:8px 10px;font:inherit;font-size:14.5px;background:var(--paper);color:var(--ink);resize:vertical}
.tplgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.empty{border:1.5px dashed var(--line2);border-radius:var(--r-m);padding:22px;text-align:center;color:var(--mute)}
.confirm{color:var(--st-err)}
.status.paid{background:rgba(34,112,74,.14);color:var(--st-ok)}.status.late{background:rgba(180,35,24,.12);color:var(--st-err)}.status.part{background:rgba(138,90,0,.13);color:var(--st-warn)}
.atable td.n,.atable th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.atable tfoot td{font-weight:700;border-bottom:0}
@media (max-width:1100px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.cols2,.grid2,.agentwrap{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){.dash{grid-template-columns:minmax(0,1fr)}.dside{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px 12px}.dside .who{display:none}.dnav{display:flex;overflow-x:auto;gap:2px;scrollbar-width:thin}.dnav .grp{display:none}.dnav button{width:auto;white-space:nowrap;padding:8px 10px}}
@media (max-width:560px){.tile b{font-size:21px}.fgrid,.docview .two{grid-template-columns:1fr}.dmain{padding-inline:16px}.items .p{width:96px}.agent{height:68vh}}
.legaldoc{max-width:46em}
.legaldoc .lead{font-size:18px;color:var(--ink);margin-top:0}
.legaldoc h2{font-size:22px;margin:30px 0 8px}
.legaldoc ul{padding-left:20px;margin:10px 0 0;display:grid;gap:6px}
.legaldoc li{color:var(--mute)}
.legaldoc .toc{margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--card);columns:2;column-gap:24px;font-size:15px}
.legaldoc .toc a{display:block;padding:3px 0;color:var(--ink);text-decoration:none}
.legaldoc .toc a:hover{text-decoration:underline}
@media (max-width:560px){.legaldoc .toc{columns:1}}
.slogin{min-height:calc(100vh - var(--hdr));display:grid;place-items:center;padding:40px 16px 64px;background:var(--paper)}
.signcard{width:min(430px,100%);background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);padding:28px;box-shadow:0 24px 50px rgba(10,23,51,.12)}
.signcard .lbrand{display:flex;align-items:center;gap:10px;color:var(--ink);margin-bottom:20px}
.signcard .lbrand svg{width:46px;height:30px;flex:none;overflow:visible}
.signcard .lbrand b{font:800 11.5px/1.08 var(--head);letter-spacing:.03em}
.signcard h1{font-size:26px;font-weight:800}
.signcard>.muted{margin-top:6px}
.signcard form{margin-top:6px}
.signcard .btn.block{margin-top:18px}
.signcard .err{margin-top:10px}.signcard .err:empty{display:none}
.signcard .alt{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
@media (max-width:480px){.signcard{padding:22px}}
/* Dim light that trails the pointer */
.cursor-glow{position:fixed;left:0;top:0;width:360px;height:360px;border-radius:50%;pointer-events:none;z-index:70;opacity:0;transition:opacity .45s ease;will-change:transform,opacity;
  background:radial-gradient(circle closest-side,rgba(255,196,126,.20) 0%,rgba(255,186,110,.10) 32%,rgba(255,176,100,.035) 62%,rgba(255,176,100,0) 100%)}
.cursor-glow.on{opacity:1}
.cursor-glow::after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:radial-gradient(circle closest-side,rgba(255,214,160,.28),rgba(255,214,160,0))}
body.in-studio .cursor-glow{width:260px;height:260px;mix-blend-mode:screen}
@media print{.cursor-glow{display:none}}
/* Smooth image motion */
.svc img,.svc svg,.gallery img{transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s ease}
.svc:hover img,.svc:hover svg,.gallery button:hover img,.gallery button:focus-visible img{transform:scale(1.035);filter:saturate(1.06)}
@media (prefers-reduced-motion:reduce){.svc:hover img,.svc:hover svg,.gallery button:hover img{transform:none}}
/* assistant, photo, HD render, cards */
.lib button[aria-pressed="true"]{border-color:var(--signal);background:var(--signal-t)}
.filebtn{position:relative;overflow:hidden;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.filebtn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0;width:100%;height:100%}
.filebtn:focus-within{outline:3px solid var(--signal);outline-offset:2px}
.describe{background:#101d40;border:1.5px solid #22356a;border-radius:var(--r-l);padding:18px;margin-top:20px}
.describe label{color:#fff;font-weight:700}
.describe textarea{width:100%;background:#0b1633;color:#fff;border:1.5px solid #2c447f;border-radius:var(--r-m);padding:10px 12px;font:inherit;min-height:84px;resize:vertical}
.describe .btn.ghost{color:#fff;border-color:#4a63a6}
.describe .fine{color:#aeb9d6;font-size:13px;margin-top:10px}
.chat{display:flex;flex-direction:column;gap:10px;max-height:min(46vh,420px);overflow:auto;padding:4px 2px;margin:12px 0 4px}
.msg{max-width:94%;border-radius:14px;padding:10px 13px;font-size:15.5px;line-height:1.45}
.msg p{margin:0}
.msg.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--soft,#f1f3f8);color:#1a2135;border:1px solid var(--line);border-bottom-left-radius:4px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .msg.me{color:#1a2135}}
:root[data-theme="dark"] .msg.me{color:#1a2135}
.msg.busy p{animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.msg.busy p{animation:none}}
.msg details{margin-top:8px;font-size:14px}.msg details summary{cursor:pointer;font-weight:600;color:var(--signal-d)}
.msg details ul{margin:6px 0 0 18px;padding:0}.msg details li{margin:2px 0}
.msgnote{font-size:13.5px;color:var(--mute);margin-top:6px!important}.msgnote.warn{color:#8a5a00}
.msg .eng{display:block;color:var(--mute);font-size:12px;margin-top:6px}
.chips.quick{margin:8px 0 10px}
.chatform textarea{width:100%;border:1.5px solid var(--line2);border-radius:var(--r-m);padding:10px 12px;font:inherit;min-height:76px;resize:vertical;background:var(--card);color:var(--ink)}
.photo-row{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}
.photo-thumb{width:96px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none}
.rbar{width:100%;height:6px;background:var(--line);border-radius:4px;overflow:hidden;margin:8px 0}
.rbar i{display:block;height:100%;width:0;background:var(--signal);transition:width .2s}
.rimg{width:100%;height:auto;border-radius:8px;border:1px solid var(--line);display:block}
.chips button small{font-weight:500;opacity:.75}
@media (max-width:560px){.vtools [data-act=tour]{display:none}}

/* service-area map (home page): live 3D map of the 100-mile radius around Louisville */
.amap{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:radial-gradient(90% 85% at 72% 48%,#1a3672 0%,var(--night) 46%,var(--deep) 100%)}
.amap::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(70% 80% at 70% 50%,#000 15%,transparent 75%);mask-image:radial-gradient(70% 80% at 70% 50%,#000 15%,transparent 75%)}
.amap-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:36px;align-items:center}
.amap-kick{font:700 13px/1 var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--glow);margin-bottom:12px}
.amap h2{color:#fff}
.amap .intro{color:#c9d0e4}
.amap-find{margin-top:26px}
.amap-find label{display:block;font:600 15px var(--body);color:#dfe4f2;margin-bottom:8px}
.amap-q{display:flex;gap:8px}
.amap-q input{flex:1;min-width:0;min-height:48px;padding:0 14px;border-radius:var(--r-s);border:1.5px solid rgba(255,255,255,.24);background:rgba(8,16,38,.55);color:#fff;font-size:16px}
.amap-q input::placeholder{color:#8f9bb8}
.amap-q input:focus{border-color:var(--glow);outline:none;box-shadow:0 0 0 3px rgba(255,196,126,.25)}
.amap-geo{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:8px 0;background:none;border:0;color:var(--glow);font:600 15px var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.amap-geo svg{width:17px;height:17px;flex:none}
.amap-geo[disabled]{opacity:.6;cursor:progress}
.amap-res{margin-top:14px}
.amap-res:empty{display:none}
.amap-res .card{padding:14px 16px;border-radius:var(--r-m);background:rgba(8,16,38,.62);border:1px solid rgba(255,255,255,.14);border-left:3px solid var(--glow);color:#dfe4f2;font-size:16px;line-height:1.5}
.amap-res .card.in{border-left-color:#5ee08f}
.amap-res .card b{color:#fff}
.amap-res .card a:not(.btn){color:var(--glow);font-weight:600}
.amap-res .btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.amap-res .alt{min-height:38px;padding:0 14px;border-radius:var(--r-s);border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);color:#fff;font:600 14px var(--body);cursor:pointer}
.amap-res .alt:hover{border-color:var(--glow)}
.amap-stats{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:10px 28px;margin:28px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.14)}
.amap-stats div{display:flex;flex-direction:column-reverse;gap:4px}
.amap-stats dd{margin:0;font:800 24px/1.1 var(--head);color:#fff;font-variant-numeric:tabular-nums}
.amap-stats dt{font-size:13.5px;color:#a9b3cc}
.amap-stage{position:relative;height:clamp(420px,44vw,580px);-webkit-user-select:none;user-select:none}
.amap-flat,.amap-3d,.amap-ov{position:absolute;inset:0}
.amap-flat{display:flex;align-items:center;justify-content:center;transition:opacity .9s ease;pointer-events:none}
.amap-flat svg{height:92%;width:auto;max-width:100%}
.amap-3d{opacity:0;transition:opacity 1.2s ease;touch-action:pan-y;cursor:grab}
.amap-3d.drag{cursor:grabbing}
.amap-3d canvas{display:block;width:100%!important;height:100%!important;outline:none}
.amap-stage.has3d .amap-3d{opacity:1}
.amap-stage.has3d .amap-flat{opacity:0}
.amap-ov{pointer-events:none;overflow:hidden}
.amap-dim{position:absolute;inset:0;width:100%;height:100%}
.amap-dim path{fill:none;stroke:var(--glow);stroke-width:1.2;opacity:.75}
.amap-dim .ln{stroke-dasharray:6 5;opacity:.55}
.amap-lb{position:absolute;left:0;top:0;will-change:transform;transition:opacity .4s ease}
.amap-lb>span{position:absolute;left:0;bottom:7px;transform:translateX(-50%);white-space:nowrap;font:600 13px/1 var(--body);color:#f1f4fa;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 10px rgba(5,12,30,.95)}
.amap-lb.t2>span{font-size:12px;font-weight:500;color:#d3d9ea}
.amap-lb small{font:600 11.5px/1 var(--body);margin-left:6px;color:var(--glow)}
.amap-lb.hq>span{display:flex;align-items:center;gap:7px;padding:6px 12px 6px 8px;border-radius:30px;background:var(--signal);color:#fff;font:700 13px/1 var(--head);text-shadow:none;box-shadow:0 6px 24px rgba(229,97,47,.5)}
.amap-lb.hq svg{width:26px;height:17px;flex:none}
.amap-lb.hq small{color:#fff;opacity:.9;font-weight:500}
.amap-lb.st>span{bottom:auto;transform:translate(-50%,-50%);font:700 11px/1 var(--head);letter-spacing:.45em;color:rgba(214,222,240,.4)}
.amap-lb.cmp>span{bottom:auto;transform:translate(-50%,-50%);font:800 13px/1 var(--head);color:#c9d0e4}
.amap-lb.ring>span{bottom:auto;transform:translate(8px,-50%);font:700 11.5px/1 var(--head);color:var(--glow)}
.amap-lb.pin>span,.amap-lb.hov>span{bottom:10px;padding:7px 11px;border-radius:7px;background:rgba(8,16,38,.88);border:1px solid #5ee08f;font-weight:700;text-shadow:none}
.amap-lb.pin small{color:#5ee08f}
.amap-lb.pin.out>span{border-color:var(--glow)}
.amap-lb.pin.out small{color:var(--glow)}
.amap-lb.hov>span{border-color:rgba(255,255,255,.3)}
.amap-lb.off{display:none}
.amap-chip{position:absolute;left:12px;top:12px;z-index:2;display:inline-flex;align-items:center;gap:9px;margin:0;padding:8px 14px 8px 12px;border-radius:30px;background:rgba(8,16,38,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);font:600 13px/1.2 var(--body);color:#dfe4f2}
.amap-chip .dot{width:8px;height:8px;border-radius:50%;background:#5ee08f;flex:none;animation:hx-ping 2s infinite}
.amap-stage[data-tod="night"] .amap-chip .dot{background:var(--glow)}
.amap-ctl{position:absolute;right:12px;bottom:12px;z-index:2;display:flex;gap:8px}
.amap-ctl button{width:42px;height:42px;display:grid;place-items:center;padding:0;border-radius:50%;background:rgba(8,16,38,.66);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer}
.amap-ctl button:hover{background:rgba(8,16,38,.9);border-color:var(--glow)}
.amap-ctl svg{width:16px;height:16px}
.amap-hint{position:absolute;left:14px;bottom:22px;z-index:2;margin:0;font:500 13px var(--body);color:#a9b3cc;pointer-events:none}
.amap-stage:not(.has3d) .amap-ctl,.amap-stage:not(.has3d) .amap-hint{display:none}
.amap-all{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.amap-all summary{display:inline-flex;align-items:center;gap:10px;cursor:pointer;list-style:none;font:700 15px var(--head);color:#fff;padding:6px 0}
.amap-all summary::-webkit-details-marker{display:none}
.amap-all summary::before{content:"+";display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--glow);color:var(--glow);font:700 16px/1 var(--body)}
.amap-all[open] summary::before{content:"\2212"}
.amap-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 34px;margin-top:18px}
.amap-cols h3{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--glow);margin-bottom:12px}
.amap-cols p{display:flex;flex-wrap:wrap;gap:6px}
.amap-cols button{padding:6px 11px;border-radius:20px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#dfe4f2;font:500 14px var(--body);cursor:pointer}
.amap-cols button:hover{border-color:var(--glow);color:#fff}
@media (max-width:960px){.amap-in{grid-template-columns:1fr;gap:26px}.amap-stage{height:min(80vw,540px)}}
@media (max-width:760px){.amap-cols{grid-template-columns:1fr}.amap-stats{grid-template-columns:repeat(2,auto)}.amap-lb.t2{display:none}.amap-hint{display:none}}
@media (max-width:560px){.amap-stage{height:430px;margin-inline:calc(-1 * var(--gut))}.amap-chip{font-size:12px}.amap-lb>span{font-size:12px}.amap-lb.hq>span{padding:5px 10px 5px 7px;font-size:12px}.amap-lb.hq small{display:none}}
@media (prefers-reduced-motion:reduce){.amap-chip .dot{animation:none}.amap-3d,.amap-flat,.amap-lb{transition:none}}
/* AI Visualizer catalog (Oct 2026): goal chips, concept cards, option cards and the live concept board */
.vz-grid{grid-template-columns:minmax(0,1.42fr) minmax(360px,1fr)}
.vz-head>div:last-child{min-width:0}
.vz-stats{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:10px 30px}
.vz-stats li{display:flex;flex-direction:column;min-width:0}
.vz-stats b{font:800 clamp(22px,2.3vw,30px)/1 var(--head);color:#fff;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.vz-stats span{color:#9eabc9;font-size:13.5px;margin-top:5px}
.vz-steps{grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
.vz-steps::after{width:calc(var(--k,0) * 100% / var(--n,4))}
/* stage modes: a sample pair to compare, a single example, or the concept board */
.vz-stage.single{cursor:default}
.vz-stage.single .vz-a{clip-path:none}
.vz-stage.single .vz-b,.vz-stage.single .vz-h,.vz-stage.single .vz-tag.l{display:none}
.vz-stage.single .vz-a::after{display:none}
.vz-stage.brd .vz-a{background:radial-gradient(120% 90% at 20% 0%,#1d3164,#0d1836 70%)}
.vz-l img[data-crop],.vz-ci img[data-crop],.vz-rvi img[data-crop],.vz-rvt img[data-crop]{width:200%;max-width:none}
.vz-l img[data-crop="r"],.vz-ci img[data-crop="r"],.vz-rvi img[data-crop="r"],.vz-rvt img[data-crop="r"]{left:-100%}
/* concept board: under the stage, and full size inside it when there is no example photo */
.vz-board{margin:12px 12px 0}
.vzb{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"h h" "p m" "f f";gap:10px 14px;padding:12px 14px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.035)}
.vzb-h{grid-area:h;display:flex;align-items:baseline;gap:10px;min-width:0}
.vzb-h b{font:700 15px/1.2 var(--head);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.vzb-h span{color:#9eabc9;font-size:13px;white-space:nowrap}
.vzb-pal{grid-area:p;display:grid;grid-template-columns:repeat(4,20px);grid-auto-rows:46px;border-radius:8px;overflow:hidden;align-self:start;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.vzb-pal i{display:block}
.vzb-mat{grid-area:m;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:7px 12px;align-content:start}
.vzb-mat li{display:flex;align-items:center;gap:9px;min-width:0;font-size:13.5px;color:#e4e8f2;line-height:1.2}
.vzb-mat li>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.vzb-mat small{display:block;color:#8f9bb8;font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1px}
.vzb-mat .vz-sw{width:28px;height:28px;border-radius:6px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.16) inset}
.vzb-ft{grid-area:f;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.vzb-ft li{padding:4px 10px;border-radius:999px;background:rgba(255,196,126,.1);border:1px solid rgba(255,196,126,.3);color:#ffd9a8;font-size:12.5px;line-height:1.3}
.vzb.vzx{position:absolute;inset:0;border:0;border-radius:0;background:none;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);grid-template-rows:auto minmax(0,1fr) auto;padding:clamp(18px,3.4vw,34px) clamp(18px,3.4vw,34px) clamp(16px,3vw,28px);gap:14px clamp(14px,2.4vw,26px)}
.vzb.vzx .vzb-h{flex-direction:column;align-items:flex-start;gap:4px}
.vzb.vzx .vzb-h b{font-size:clamp(18px,2vw,24px)}
.vzb.vzx .vzb-pal{grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;height:100%;border-radius:12px;align-self:stretch}
.vzb.vzx .vzb-mat{grid-template-columns:1fr 1fr;gap:12px 16px}
.vzb.vzx .vzb-mat .vz-sw{width:42px;height:42px;border-radius:9px}
.vzb.vzx .vzb-mat .vz-ic{width:42px;height:42px}
.vzb.vzx .vzb-mat .vz-plan{width:42px;height:32px}.vzb.vzx .vzb-mat .vz-plan svg{width:42px;height:32px}
/* search and goals */
.vz-find{position:relative;margin-top:18px}
.vz-find svg{position:absolute;left:14px;top:50%;width:19px;height:19px;margin-top:-9.5px;color:#9eabc9;pointer-events:none}
.vz-find input{width:100%;min-height:50px;padding:0 14px 0 42px;border-radius:10px;border:1.5px solid #34446e;background:#0d1a3a;color:#fff;font-size:16px}
.vz-find input:focus{border-color:var(--glow);outline:none;box-shadow:0 0 0 3px rgba(255,196,126,.22)}
.vz-find input::placeholder{color:#7f8bab}
.vz-starts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.vz-start{min-height:40px;padding:0 15px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:none;color:#e4e8f2;font:600 14px var(--body);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.vz-start:hover{border-color:rgba(255,255,255,.6)}
.vz-start[aria-pressed="true"]{background:var(--glow);border-color:var(--glow);color:var(--night)}
.vz-reshead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:18px}
.vz-count{color:#c3cbe0;font-size:14.5px}
/* project types */
.vz-cats{border:0;margin:22px 0 0;padding:0;min-width:0}
.vz-cats legend{font:700 12.5px/1 var(--head);letter-spacing:.13em;text-transform:uppercase;color:#9eabc9;margin-bottom:10px;padding:0}
.vz-catg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vz-cat{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid rgba(255,255,255,.14);border-radius:12px;overflow:hidden;cursor:pointer;background:rgba(255,255,255,.02);transition:border-color .2s,background .2s}
.vz-cat:hover{border-color:rgba(255,255,255,.36)}
.vz-ci{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#16244a}
.vz-ci img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.vz-cat:hover .vz-ci img{transform:scale(1.04)}
.vz-ct{display:block;padding:10px 12px 12px;min-width:0}
.vz-ct b{display:block;font:700 15px/1.2 var(--head)}
.vz-ct small{display:block;color:#9eabc9;font-size:13px;line-height:1.35;margin-top:3px}
.vz-cat.on{border-color:var(--glow);background:rgba(255,196,126,.07);box-shadow:0 0 0 1px var(--glow) inset}
.vz-cat.on::after,.vz-rec.on::after{content:"\2713";position:absolute;top:9px;right:9px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--glow);color:var(--night);font:800 14px/1 var(--body);box-shadow:0 2px 8px rgba(0,0,0,.35)}
.vz-cat:has(input:focus-visible),.vz-rec:has(input:focus-visible),.vz-o:has(input:focus-visible){outline:3px solid var(--signal);outline-offset:2px}
/* palettes and swatches */
.vz-pal{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border-radius:6px;overflow:hidden}
.vz-pal i{display:block;min-height:100%}
.vz-pal.fill{position:absolute;inset:0;border-radius:0}
.vz-pal.vcol{grid-auto-flow:row;grid-auto-rows:1fr;grid-auto-columns:auto;border-radius:0}
.vz-pal.sm{display:inline-grid;width:46px;height:14px;vertical-align:-2px;margin-right:7px;border-radius:3px}
.vz-pal.wide{height:10px;margin:14px 0 2px;border-radius:999px}
.vz-sw{display:block}
/* concept cards */
.vz-recs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.vz-rec{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid rgba(255,255,255,.14);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.025);transition:border-color .2s,background .2s}
.vz-rec>label{display:flex;flex-direction:column;flex:1 1 auto;cursor:pointer;min-width:0}
.vz-rec.pick{cursor:pointer;text-align:left;color:inherit;font:inherit;padding:0;width:100%}
.vz-rec.pick:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.vz-rec:hover{border-color:rgba(255,255,255,.36)}
.vz-rec.on{border-color:var(--glow);background:rgba(255,196,126,.07);box-shadow:0 0 0 1px var(--glow) inset}
.vz-rv{display:grid;grid-template-columns:minmax(0,1fr) 30px;height:118px}
.vz-rvi{position:relative;display:block;overflow:hidden;background:#16244a}
.vz-rvi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.vz-rec:hover .vz-rvi img{transform:scale(1.04)}
.vz-rvi em{position:absolute;left:8px;bottom:8px;padding:3px 8px;border-radius:999px;background:rgba(8,16,38,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:600 11px/1.2 var(--body);font-style:normal;color:#dfe4f2}
.vz-rvi.brd{display:grid;place-items:center}
.vz-rec.own .vz-rvi{background:repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 16px),repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 16px),#13214a}
.vz-rvs{display:grid;grid-template-rows:2fr 1fr 1fr;min-height:0}
.vz-rvs .vz-sw{min-height:0}
.vz-rt{display:block;padding:10px 12px 12px;min-width:0}
.vz-rt b{display:block;font:700 15px/1.22 var(--head)}
.vz-rt small{display:block;color:#b7c0d6;font-size:13.5px;line-height:1.38;margin-top:4px}
.vz-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.vz-tags span{font-size:11.5px;line-height:1.3;color:#9eabc9;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:2px 8px}
.vz-badge{display:inline-block;margin-bottom:6px;padding:3px 9px;border-radius:999px;background:var(--signal);color:#fff;font:700 10.5px/1.25 var(--head);letter-spacing:.06em;text-transform:uppercase}
.vz-ic.vzx{width:58px;height:58px}
.vz-ic.vzx svg{width:28px;height:28px}
.vz-cmpb{align-self:flex-start;margin:-2px 12px 12px;min-height:34px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:none;color:#c3cbe0;font:600 13px var(--body);cursor:pointer}
.vz-cmpb:hover{border-color:rgba(255,255,255,.6)}
.vz-cmpb[aria-pressed="true"]{background:rgba(255,196,126,.15);border-color:var(--glow);color:#ffd9a8}
.vz-cmphint{margin-top:14px;color:#9eabc9;font-size:14px}
.vz-cmp{margin-top:18px;padding:14px;border:1px solid rgba(255,196,126,.4);border-radius:12px;background:rgba(255,196,126,.05)}
.vz-cmpw{overflow-x:auto}
.vz-cmp table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.35}
.vz-cmp th,.vz-cmp td{padding:7px 8px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.1)}
.vz-cmp thead th{font:700 14px/1.2 var(--head);color:#fff}
.vz-cmp tbody th{color:#9eabc9;font-weight:500;white-space:nowrap}
.vz-cmp tr.diff td{color:#ffd9a8;background:rgba(255,196,126,.07)}
.vz-cmpact{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px}
.vz-cmp .vz-fine{margin-top:8px}
/* option cards */
.vz-what{color:#9eabc9;font-size:14px;margin:-4px 0 10px}
.vz-os{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.vz-o{position:relative;display:flex;align-items:center;gap:10px;min-width:0;min-height:60px;padding:8px 22px 8px 9px;border:1px solid rgba(255,255,255,.14);border-radius:10px;cursor:pointer;background:rgba(255,255,255,.02);transition:border-color .15s,background .15s}
.vz-o:hover{border-color:rgba(255,255,255,.42)}
.vz-o.on{border-color:var(--glow);background:rgba(255,196,126,.09);box-shadow:0 0 0 1px var(--glow) inset}
.vz-o.on::after{content:"";position:absolute;top:9px;right:9px;width:8px;height:4.5px;border-left:2px solid var(--glow);border-bottom:2px solid var(--glow);transform:rotate(-45deg)}
.vz-o:has(input:disabled){cursor:not-allowed}
.vz-o:has(input:disabled):not(.req){opacity:.4}
.vz-o.req{border-style:dashed}
.vz-ot{min-width:0}
.vz-ot b{display:block;font:600 14.5px/1.22 var(--body);color:#fff}
.vz-ot small{display:block;color:#9eabc9;font-size:12.5px;line-height:1.32;margin-top:2px}
.vz-o .vz-sw{width:42px;height:42px;border-radius:8px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.16) inset}
.vz-o .vz-pal{width:52px;height:42px;flex:none;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.vz-plan{flex:none;display:block;width:50px;height:38px;color:var(--glow)}
.vz-plan svg{display:block;width:50px;height:38px}
.vz-ic{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(229,97,47,.15);color:var(--glow)}
.vz-ic svg{width:21px;height:21px}
.vz-hid{margin-top:8px;color:#8f9bb8;font-size:13px;line-height:1.45}
.vz-hid b{color:#b7c0d6;font-weight:600}
.vz-msg{margin-top:8px;padding:9px 12px;border-radius:8px;background:rgba(255,196,126,.1);border:1px solid rgba(255,196,126,.32);color:#ffd9a8;font-size:14px}
.vz-msg:empty{display:none}
.vz-jump{display:flex;gap:6px;overflow-x:auto;margin:14px -4px 0;padding:2px 4px 6px;scrollbar-width:thin}
.vz-jump button{flex:none;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.03);color:#c3cbe0;font:600 12.5px var(--body);cursor:pointer;white-space:nowrap}
.vz-jump button:hover{border-color:var(--glow);color:#fff}
.vz-g{scroll-margin-top:calc(var(--vz-top,0px) + 16px)}
/* review */
.vz-review{margin-top:18px;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.03)}
.vz-rvh{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center}
.vz-rvt{position:relative;display:block;width:96px;height:64px;border-radius:8px;overflow:hidden;background:#16244a}
.vz-rvt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vz-rvn{min-width:0}
.vz-rvn small{display:block;color:#9eabc9;font-size:12px;letter-spacing:.07em;text-transform:uppercase}
.vz-rvn b{display:block;font:700 17px/1.2 var(--head);margin-top:2px}
.vz-rvn span{display:block;color:#c3cbe0;font-size:13.5px;margin-top:2px}
.vz-review .vz-sum{margin-top:8px}
.vz-review .vz-sum>div{grid-template-columns:118px minmax(0,1fr);padding:8px 0}
.vz-review .vz-sum dd{font-weight:500;font-size:14.5px}
.vz-rvact{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px}
@media (max-width:1100px){.vz-grid{grid-template-columns:minmax(0,1.3fr) minmax(330px,1fr)}.vz-recs,.vz-catg{grid-template-columns:1fr}}
@media (max-width:900px){
  .vz-recs,.vz-catg{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vz-board{margin:8px 0 0}
  .vzb{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"p h" "p m";padding:7px 10px;gap:3px 10px}
  .vzb-h b{font-size:13.5px}.vzb-h span{font-size:12px}
  .vzb-pal{grid-template-columns:repeat(4,9px);grid-auto-rows:36px;border-radius:6px}
  .vzb-mat{display:flex;gap:5px;overflow:hidden}
  .vzb-mat li{flex:none}.vzb-mat li>span:last-child{display:none}
  .vzb-mat .vz-sw{width:20px;height:20px;border-radius:5px}
  .vzb-ft{display:none}
  .vzb.vzx .vzb-mat li>span:last-child{display:block}.vzb.vzx .vzb-mat{display:grid}.vzb.vzx .vzb-ft{display:flex}
}
@media (min-width:561px) and (max-width:900px){.vz-left .vz-frame,.vz-left .vz-board{width:min(100%,calc(34vh * 1.5));margin-inline:auto}}
@media (max-width:560px){
  .vz-recs,.vz-catg{grid-template-columns:1fr}
  .vz-rv{height:140px}
  .vz-steps{font-size:12px}
  .vz-os{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vz-o{flex-direction:column;align-items:flex-start;gap:8px;padding:9px 10px 10px}
  .vz-o .vz-sw,.vz-o .vz-pal{width:100%;height:38px}
  .vz-os.k-pal{grid-template-columns:1fr 1fr}
  .vz-rvh{grid-template-columns:72px minmax(0,1fr)}.vz-rvh .vz-link{grid-column:2}
  .vz-rvt{width:72px;height:48px}
  .vz-review .vz-sum>div{grid-template-columns:1fr;gap:2px}
  .vzb.vzx{grid-template-columns:1fr;grid-template-rows:auto 34px minmax(0,1fr)}
  .vzb.vzx .vzb-pal{grid-auto-rows:34px;height:34px}
  .vzb.vzx .vzb-mat .vz-sw,.vzb.vzx .vzb-mat .vz-ic{width:30px;height:30px}.vzb.vzx .vzb-ft{display:none}
  .vz-stats{gap:8px 20px}
}
@media (prefers-reduced-motion:reduce){.vz-ci img,.vz-rvi img,.vz-start,.vz-o,.vz-rec,.vz-cat{transition:none}.vz-cat:hover .vz-ci img,.vz-rec:hover .vz-rvi img{transform:none}}

/* visualizer-v2:start */
/* AI Visualizer v2 (Oct 2026): one row per choice, "what we'll draw", priced-only work, the drawing state */
.vz-rows{display:grid;gap:8px;margin-top:14px}
.vz-row{border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.02)}
.vz-row.open{border-color:var(--glow);background:rgba(255,196,126,.05)}
.vz-row.off .vz-rowb{opacity:.62}
.vz-rowb{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:58px;padding:9px 12px;background:none;border:0;border-radius:12px;color:#fff;text-align:left;font:inherit;cursor:pointer}
.vz-rowb:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.vz-rowb>.vz-sw,.vz-rowb>.vz-pal,.vz-rowb>.vz-ic,.vz-rowb>.vz-plan{width:44px;height:44px;margin:0;border-radius:8px;flex:none}
.vz-rowt{min-width:0}
.vz-rowt small{display:block;color:#9eabc9;font-size:13px;line-height:1.25}
.vz-rowt b{display:block;font:700 15.5px/1.25 var(--head);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vz-rowc{color:var(--glow);font:600 14px var(--body);text-decoration:underline;text-underline-offset:3px}
.vz-rowp{padding:0 12px 14px}
.vz-rowp .vz-g{margin-top:0}
.vz-est{margin-top:22px;padding:14px;border:1px dashed rgba(255,255,255,.28);border-radius:12px}
.vz-est h3{font:700 16px/1.2 var(--head);margin:0 0 6px}
.vz-est h3 span{font:500 13.5px var(--body);color:#9eabc9}
.vz-est .vz-g{margin-top:0}
.vz-scn{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.06);color:#c3cbe0;font-size:14.5px}
.vz-scn.warn{background:rgba(255,120,100,.12);color:#ffd8d2}
.vz-dlh{margin:16px 0 8px;font:700 15px/1.25 var(--head);color:#fff}
.vz-dl{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.vz-dl li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;color:#dfe5f3;font-size:14.5px;line-height:1.35}
.vz-ck{position:relative;width:18px;height:18px;margin-top:1px;border-radius:50%;background:var(--glow)}
.vz-ck::after{content:"";position:absolute;left:5px;top:5px;width:7px;height:4px;border-left:2px solid var(--night);border-bottom:2px solid var(--night);transform:rotate(-45deg)}
.vz-pr{margin-top:10px;color:#c3cbe0;font-size:14px}
.vz-drawn{margin-top:18px;padding:4px 14px 14px;border:1px solid rgba(255,255,255,.13);border-radius:12px}
.vz-share{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-top:16px}
.vz-share .vz-fine{margin:0}
.vz-q .vz-opt{font:500 15px var(--body);color:#9eabc9;letter-spacing:0}
.vz-ci{position:relative}
.vz-ci em{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 8px;border-radius:999px;background:rgba(8,16,38,.72);color:#fff;font:600 11.5px/1.25 var(--body);font-style:normal}
button.vz-chip{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:none;color:#fff;font:500 14.5px/1.1 var(--body);cursor:pointer}
button.vz-chip.on{background:var(--glow);border-color:var(--glow);color:var(--night);font-weight:600}
.vz-stage.gen{pointer-events:none}
.vz-stage.gen .vz-a{filter:saturate(.6) brightness(.85)}
.vz-stage.mine{background:#050c1f}
.vz-stage.mine .vz-l img{object-fit:contain}
.vz-nav .btn[disabled]{opacity:.5;cursor:not-allowed}
@media (prefers-reduced-motion:reduce){.vz-stage.gen .vz-a{filter:none}}
.vz-phbox{margin-top:18px;padding:14px;border:1px solid rgba(255,255,255,.13);border-radius:12px}
.vz-phbox h3{margin:0 0 4px;font:700 16px/1.25 var(--head)}
.vz-drop.sm{margin-top:10px;padding:14px 12px}
.vz-drop.sm .vz-di{width:38px;height:38px;margin-bottom:4px}
.vz-wait{margin:12px 0 0;padding:12px 14px;border:1px solid rgba(255,196,126,.32);border-radius:10px;background:rgba(255,196,126,.08);color:#f3e7d8;font-size:15px;line-height:1.45}
.vz-ready{margin:10px 0 0;padding:10px 14px;border:1px solid rgba(120,220,160,.4);border-radius:10px;background:rgba(120,220,160,.1);color:#d6f7e3;font-size:15px;line-height:1.45}
.vz-report{margin-top:16px}
.vz-reply{margin:0 0 10px;padding:12px 14px;border:1px solid rgba(255,196,126,.4);border-radius:10px;background:rgba(255,196,126,.1);color:#f3e7d8;font-size:15px;line-height:1.45}.vz-reply p{margin:6px 0 0}
.vz-chat{position:fixed;right:16px;bottom:16px;z-index:60;font:16px/1.45 var(--body)}
.vz-chat-open{padding:12px 20px;border:0;border-radius:999px;background:var(--signal);color:#fff;font:700 15px var(--head);cursor:pointer;box-shadow:0 6px 22px rgba(0,0,0,.35)}
.vz-chat-open:focus-visible,.vz-chat-x:focus-visible{outline:3px solid #ffc47e;outline-offset:2px}
.vz-chat-box{width:min(360px,calc(100vw - 32px));max-height:min(520px,calc(100vh - 32px));display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:#0a1733;color:#eef1f8;box-shadow:0 12px 40px rgba(0,0,0,.5);overflow:hidden}
.vz-chat-box[hidden]{display:none}
.vz-chat-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#10224a;font-size:15px}
.vz-chat-x{border:0;background:none;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.vz-chat-log{flex:1;overflow:auto;padding:12px 14px;min-height:120px}
.vz-chat-m{margin:0 0 8px;padding:9px 12px;border-radius:12px;font-size:15px;max-width:92%;white-space:pre-wrap;overflow-wrap:anywhere}
.vz-chat-m.bot{background:rgba(255,255,255,.1)}.vz-chat-m.you{background:var(--signal);color:#fff;margin-left:auto}
.vz-chat-rep{margin:0 14px 8px}
.vz-chat-rep[hidden],.vz-chat-open[hidden]{display:none!important}
.vz-chat-form{display:flex;gap:8px;padding:0 14px 8px}.vz-chat-form input{flex:1;min-width:0;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:#050c1f;color:#fff;font-size:16px}
.vz-chat .vz-fine{margin:0;padding:0 14px 12px;font-size:12px;opacity:.75}
@media print{.vz-chat{display:none}}
.vz-report textarea{width:100%;box-sizing:border-box}
.vz-report .vz-ok{margin:0;padding:12px 14px;border:1px solid rgba(120,220,160,.4);border-radius:10px;background:rgba(120,220,160,.1);color:#d6f7e3;font-size:15px;line-height:1.45}
.vz-staffbadge{display:inline-block;margin:6px 0 2px;padding:5px 12px;border-radius:999px;background:rgba(255,196,126,.14);border:1px solid rgba(255,196,126,.4);color:#ffd9a8;font:600 13px/1.3 var(--body)}
.vz-pen{margin-top:12px;text-align:center}
.vz-penimg{position:relative;display:inline-block;max-width:100%;line-height:0;border-radius:10px;overflow:hidden;background:#050c1f}
.vz-penimg img{display:block;max-width:100%;max-height:62vh;width:auto;height:auto;-webkit-user-select:none;user-select:none;pointer-events:none}
.vz-penimg canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.vz-pen .vz-fine{text-align:left}
.vz-pentools{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:8px;text-align:left}
.vz-penl{color:#9eabc9;font-size:13.5px}
.vz-pentools .vz-link[disabled]{opacity:.45;cursor:default}
.vz-pennote{flex-basis:100%;color:#c3cbe0;font-size:13.5px}
/* visualizer-v2:end */

/* ---- service-area pages and links (October 2026, added by build_crawlable_site.py) ---- */
.area-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.area-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:26px;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.area-card:hover{border-color:var(--signal);box-shadow:0 12px 30px -18px rgba(16,34,74,.45)}
.area-card h2{font-size:26px;margin-bottom:10px}
.area-card p{color:var(--mute);margin-bottom:14px}
.area-svcs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px 34px}
.area-svcs li{border-top:2px solid var(--line2);padding-top:12px;min-width:0}
.area-svcs a{display:block;font:700 18px/1.25 var(--head);color:var(--ink);text-decoration:none;margin-bottom:4px}
.area-svcs a:hover{color:var(--signal-d);text-decoration:underline;text-underline-offset:3px}
.area-svcs span{color:var(--mute);font-size:15.5px}
.area-st{font-size:20px;margin:28px 0 10px}
.area-towns{list-style:none;margin:14px 0 0;padding:0;columns:4 190px;column-gap:28px}
.area-towns li{break-inside:avoid;padding:4px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.area-towns .mi{color:var(--mute);font-size:14px;white-space:nowrap}
.area-faq h3{font-size:19px;margin:26px 0 6px;color:var(--ink)}
.area-faq p{margin-top:0}
.area-cta .btnrow{display:flex;flex-wrap:wrap;gap:12px}
.area-note a{color:var(--signal-d);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.amap-links{margin-top:16px;color:#c9d0e4;font-size:15.5px}
.amap-links a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.bap{margin:0 0 44px}
.bap h3{font-size:clamp(21px,2.2vw,26px);margin:0 0 14px;color:var(--ink)}
.bap h4{font-size:13px;letter-spacing:.09em;text-transform:uppercase;margin:0 0 10px;color:var(--mute)}
.bap-a h4{color:var(--signal-d)}
.bap-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.bap-col .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.bap-during{margin-top:20px}
.bap-intro{max-width:70ch;color:var(--mute);margin:-6px 0 26px}
.gal-h + .bap-intro{margin-top:-6px}
.bap-more{margin-bottom:34px}
@media (max-width:700px){.bap-cols{grid-template-columns:1fr;gap:18px}}
/* Blog (/blog and /blog/<slug>), added by build_crawlable_site.py. Everything else (banner, cards, chips, buttons,
   colors, fonts, the article + sidebar layout) comes from the site's own styles. */
/* The Blog menu link makes the desktop menu about 50px wider: hide the header phone number up to 1339px (the site already
   hides it from 1181 to 1259px), or the "Design your project" button is pushed off the screen at about 1260 to 1300px. */
@media (min-width:1181px) and (max-width:1339px){.hdr .tel{display:none}}
.blog-filters{margin:0 0 26px}
.svc .meta{font-size:14px;color:var(--mute);margin-top:4px}
.svc[hidden]{display:none!important}
.blog-empty{color:var(--mute)}
.phead .meta{font-size:15px;color:#aeb7cf;margin-top:16px}
.post .prose{max-width:none}
.svcpage.post>article{min-width:0} /* the service-page grid sets this for div/aside only; without it a wide table widens the phone page */
.post .prose>p:first-of-type{font-size:19px;color:var(--ink)}
.post .prose h3{font-size:19px;margin:24px 0 4px}
.post .prose ul,.post .prose ol{padding-left:20px}
.post .prose a{color:var(--signal-d)}
.post-toc{margin-top:22px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--card);font-size:15px}
.post-toc strong{font-family:var(--head)}
.post-toc ol{margin:8px 0 0;padding-left:20px}
.post .prose .post-toc a{color:var(--ink);text-decoration:none}
.post .prose .post-toc a:hover{text-decoration:underline}
.callout{color:var(--ink);border-left:4px solid var(--signal);padding:4px 0 4px 18px;margin-top:26px}
.callout p{color:var(--ink)}
.post-faq{margin-top:10px}
.post-faq details{border-bottom:1px solid var(--line);padding:10px 0}
.post-faq details p{margin-top:6px}
.post-faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;font:700 16px var(--head);color:var(--ink)}
.post-faq summary::after{content:"+";font-size:20px;color:var(--signal-d)}
.post-faq details[open] summary::after{content:"\2212"}
.post-faq summary::-webkit-details-marker{display:none}
.post-fig{margin:26px 0}
.post-fig img{width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;border-radius:var(--r-m)}
.post-fig figcaption{font-size:14px;color:var(--mute);margin-top:8px}
.post-table{overflow-x:auto;margin:18px 0 8px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--card)}
.post-table table{width:100%;border-collapse:collapse;font-size:15px;min-width:480px}
.post-table th,.post-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.post-table th{font:700 14px var(--head);color:var(--ink)}
.post-table tr:last-child td{border-bottom:0}
.post-table td:first-child{font-weight:600;color:var(--ink)}
@media (max-width:560px){.post-table table{min-width:0;font-size:13.5px}.post-table th,.post-table td{padding:8px 8px}.post-table th{font-size:13px}}
.post .prose .post-note{font-size:14px;color:var(--mute);margin-top:6px}
.post .prose .post-sources{font-size:14.5px}
.post .prose .post-sources li{margin-bottom:6px}
.side .card .btn{margin-top:14px;width:100%}
.side .card .btn+.btn{margin-top:10px}
.blog-more ul{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:10px}
.blog-more a{color:var(--ink);font-weight:600;font-size:15px;line-height:1.35;text-decoration:none}
.blog-more a:hover{text-decoration:underline}
