:root{--i-cnc-steel-cutting:url(img/cnc-steel-cutting.webp);--i-core-pins-parts:url(img/core-pins-parts.webp);}
/* Layout concept: a tooling shop's process monitor — steel plates, parting lines and a live mold cycle; purple bulb = the idea that saves the tool. */
/* Layout concept: a tooling shop after hours. Machined-steel darks, the logo's purple as the light source,
   and Bob's own mold photos and Moldflow plots framed like inspection plates. Dark by default; light on request. */
/* Light, high-contrast default: lavender-tinted page, white cards, near-black text.
   Color comes from photo headers, a purple stats band and a dark photo gallery. Dark mode on request. */
:root{
  --bg:#EFEDF7; --bg-2:#E2DDF3; --surface:#FFFFFF; --surface-2:#ECE9F8; --ink:#0A0912; --muted:#262433; --line:#CDC8E2; --line-2:#A9A2CE;
  --accent:#4A2BD9; --accent-soft:#E6E0FF; --btn:#5B3DEB; --btn-hover:#4628D2; --on-accent:#FFFFFF; --brand:#8067FF; --glow:rgb(91 61 235 / .28);
  --heat:#D4581F; --ok:#0F6E3F; --warn:#8A5000; --bad:#A81E38;
  --steel-1:#C9CDD8; --steel-2:#9EA3B3; --steel-3:#6F758A; --cavity:#1A1B26; --plate-ink:#3B3F4E;
  --shadow:0 1px 2px rgb(20 16 60 / .1),0 16px 36px -16px rgb(20 16 60 / .35);
  color-scheme:light;
}
:root[data-bg="dark"],.island{
  --bg:#0B0B13; --bg-2:#11111C; --surface:#171726; --surface-2:#21213A; --ink:#F4F3FC; --muted:#D3D1E6; --line:#34335A; --line-2:#4A4878;
  --accent:#B4A6FF; --accent-soft:#2B2559; --btn:#6B4DF2; --btn-hover:#7E64FF; --on-accent:#FFFFFF; --brand:#8067FF; --glow:rgb(128 103 255 / .4);
  --heat:#FF8A5B; --ok:#4CD18F; --warn:#F0B44C; --bad:#FF7A93;
  --steel-1:#4A4F66; --steel-2:#33364A; --steel-3:#6A7090; --cavity:#07070C; --plate-ink:#A6ACC2;
  --shadow:0 1px 2px rgb(0 0 0 / .5),0 22px 44px -20px rgb(0 0 0 / .85);
  color-scheme:dark;
}
.island{color:var(--ink)}
:root{
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r:10px; --gut:clamp(16px,4vw,40px); --max:1200px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:500 16.5px/1.65 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--f-display);font-stretch:112%;line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5.6vw,4.1rem);font-weight:850}
h2{font-size:clamp(1.6rem,3.4vw,2.5rem);font-weight:800}
h3{font-size:1.18rem;font-weight:750}
p{margin:0}
a{color:var(--accent)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--accent);color:var(--on-accent);padding:10px 14px;border-radius:8px;font-weight:700;text-decoration:none}
.skip:focus{top:calc(env(safe-area-inset-top,0px) + 10px)}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.eyebrow{font:600 .8rem/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);display:inline-flex;gap:.5em;align-items:center}
.eyebrow::before{content:"";width:18px;height:2px;background:currentColor}
.lede{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--muted);max-width:62ch;font-weight:500}
.mono{font-family:var(--f-mono)}
.muted{color:var(--muted)}
.stack{display:grid;gap:14px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.row.end{justify-content:flex-end}
section{padding-block:clamp(56px,8vw,104px)}
.sec-head{display:grid;gap:12px;margin-bottom:clamp(28px,4vw,44px);max-width:760px}

/* buttons */
.btn{--b:var(--btn);display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;padding:0 20px;border-radius:999px;border:2px solid var(--b);background:var(--b);color:var(--on-accent);font:700 .95rem/1 var(--f-body);text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s}
.btn:hover{--b:var(--btn-hover);transform:translateY(-2px);box-shadow:0 12px 26px -10px var(--glow)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:none}
.btn.sm{min-height:36px;padding:0 14px;font-size:.85rem}
.btn.danger{--b:var(--bad);color:#fff}
.icon-btn{width:42px;height:42px;display:inline-grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;position:relative}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.icon-btn svg{width:20px;height:20px}
.badge{position:absolute;top:-4px;right:-4px;min-width:19px;height:19px;border-radius:10px;background:var(--heat);color:#1a0e06;font:700 .68rem/19px var(--f-mono);text-align:center;padding:0 4px}

/* header */
.hdr{border-top:4px solid var(--brand);position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:16px;min-height:70px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex-shrink:0;background:none;border:0;padding:0;cursor:pointer}
.logo svg{width:34px;height:40px;color:var(--brand)}
.logo b{font:850 1.08rem/1 var(--f-display);font-stretch:118%;letter-spacing:.01em;display:block}
.logo small{font:600 .68rem/1 var(--f-body);letter-spacing:.02em;color:var(--accent);display:block;margin-top:5px;white-space:nowrap}
.nav{display:flex;gap:2px;margin-left:auto}
.nav button{background:none;border:0;color:var(--ink);font:600 .9rem var(--f-body);padding:10px 11px;border-radius:8px;cursor:pointer;position:relative}
.nav button::after{content:"";position:absolute;left:11px;right:11px;bottom:5px;height:2px;background:var(--accent);transform:scaleX(0);transition:transform .25s;transform-origin:left}
.nav button:hover::after,.nav button[aria-current="page"]::after{transform:scaleX(1)}
.nav button[aria-current="page"]{color:var(--accent)}
.hdr-tools{display:flex;gap:8px;align-items:center}
#menuBtn{display:none}
.mnav{border-top:1px solid var(--line);background:var(--surface);padding:12px var(--gut) 20px}
.mnav button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:14px 4px;font:700 1.2rem var(--f-display);font-stretch:110%;color:var(--ink);cursor:pointer}
@media (max-width:1060px){.nav{display:none}#menuBtn{display:inline-grid}.hdr-tools{margin-left:auto}.hdr .btn.book{display:none}}
@media (max-width:420px){.logo small{display:none}.hdr-tools{gap:5px}.icon-btn{width:38px;height:38px}}
.maint{background:var(--warn);color:#1a1200;text-align:center;font:600 .85rem var(--f-body);padding:8px var(--gut)}

/* hero */
.hero{padding-block:clamp(36px,6vw,72px) clamp(40px,6vw,80px);position:relative;overflow:hidden}
.hero{background:var(--cavity) var(--i-cnc-steel-cutting) 70% center/cover no-repeat;border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 75% at 78% 35%,rgb(128 103 255 / .38),transparent 70%),linear-gradient(90deg,rgb(7 7 12 / .97) 0%,rgb(7 7 12 / .9) 40%,rgb(10 8 28 / .7) 100%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgb(255 255 255 / .04) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .04) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.hero .lede{color:#D2D0E6}
@media (max-width:900px){.hero::before{background:linear-gradient(180deg,rgb(7 7 12 / .9),rgb(7 7 12 / .96))}}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,64px);align-items:center;position:relative;z-index:1}
.hero-copy{display:grid;gap:22px;min-width:0}
.hero h1 em{font-style:normal;color:var(--accent);font-stretch:125%}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.hero-meta{display:flex;gap:18px;flex-wrap:wrap;font:500 .82rem var(--f-mono);color:var(--muted)}
.hero-meta span{display:inline-flex;gap:6px;align-items:center}
.hero-meta i{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}}

.monitor{box-shadow:0 30px 60px -25px rgb(0 0 0 / .9),0 0 0 1px rgb(128 103 255 / .25),0 0 60px -20px var(--glow)!important;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;min-width:0}
.mon-top{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font:500 .72rem var(--f-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;gap:10px}
.mon-top .dots{display:flex;gap:6px}.mon-top .dots i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.mon-top .live{color:var(--ok)}
#moldSvg{display:block;width:100%;height:auto;background:var(--surface-2)}
.mon-read{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.mon-read div{padding:10px 14px;border-right:1px solid var(--line);min-width:0}
.mon-read div:last-child{border-right:0}
.mon-read small{display:block;font:500 .64rem var(--f-mono);letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
.mon-read b{font:600 1.05rem var(--f-mono);font-variant-numeric:tabular-nums}
.stages{display:flex;gap:4px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}
.stages span{font:600 .64rem var(--f-mono);letter-spacing:.1em;padding:4px 8px;border-radius:5px;background:var(--surface-2);color:var(--muted);transition:background .2s,color .2s}
.stages span.on{background:var(--accent);color:var(--on-accent)}
.mon-note{font:400 .7rem var(--f-mono);color:var(--muted);padding:0 14px 10px}

/* marquee */
.brands{border-block:1px solid var(--line);background:var(--bg-2);padding-block:18px;overflow:hidden}
.brands .lbl{font:500 .7rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:10px}
.track{display:flex;gap:56px;width:max-content;animation:mq 38s linear infinite}
.brands:hover .track{animation-play-state:paused}
.track span{font:800 1.35rem var(--f-display);font-stretch:120%;color:var(--ink);white-space:nowrap}
@keyframes mq{to{transform:translateX(-50%)}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgb(128 103 255 / .5);border-radius:14px;background:linear-gradient(120deg,#2A1B7A 0%,#4F33D6 60%,#7A5CFF 100%);color:#fff;overflow:hidden;box-shadow:var(--shadow)}
.stats div{padding:22px 20px;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font:850 clamp(1.8rem,3.4vw,2.6rem)/1 var(--f-display);font-stretch:118%;color:#fff;font-variant-numeric:tabular-nums}
.stats span{display:block;margin-top:8px;color:#ECE8FF;font-size:.95rem;font-weight:600}
.stats div{border-color:rgb(255 255 255 / .2)!important}
@media (max-width:720px){.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(2){border-right:0}.stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* lifecycle */
.life{display:grid;grid-template-columns:repeat(7,1fr);position:relative;margin-bottom:24px}
.life::before{content:"";position:absolute;left:4%;right:4%;top:21px;height:2px;background:var(--line)}
.life button{background:none;border:0;cursor:pointer;display:grid;justify-items:center;gap:8px;color:var(--muted);font:600 .8rem var(--f-body);text-align:center;padding:0 2px;position:relative}
.life-prog{position:absolute;left:4%;top:21px;height:2px;width:calc(92% * var(--lp,0));background:linear-gradient(90deg,var(--brand),var(--accent));border-radius:2px;transition:width .2s linear}
.life button i{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--line);font:600 .8rem var(--f-mono);font-style:normal;color:var(--muted);transition:all .25s}
.life button[aria-selected="true"]{color:var(--ink)}
.life button[aria-selected="true"] i{background:var(--accent);border-color:var(--accent);color:var(--on-accent);transform:scale(1.08)}
.life button[aria-selected="true"] i::after{content:"";position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--tp,0) * 1turn),transparent 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px));opacity:.85}
.life-panel>*{animation:panelIn .55s cubic-bezier(.2,.8,.2,1) both}.life-panel>*:nth-child(2){animation-delay:.07s}
@keyframes panelIn{from{opacity:0;transform:translateX(18px)}}
#lifePause{gap:8px;flex-shrink:0}#lifePI{font-size:.7rem;letter-spacing:-2px}
.life-panel{background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:clamp(16px,2.4vw,24px);display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(18px,3vw,32px);min-height:220px;box-shadow:var(--shadow);align-items:start}
.life-fig{aspect-ratio:4/3}
.life-panel>*{min-width:0}
.svc-mini{display:grid;gap:10px}
.svc-mini div{padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:10px;background:var(--bg-2)}
.svc-mini b{display:block;margin-bottom:3px}
.svc-mini p{color:var(--muted);font-size:.92rem}
@media (max-width:800px){.life{grid-template-columns:repeat(4,1fr);row-gap:18px}.life::before,.life-prog{display:none}.life-panel{grid-template-columns:1fr}}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
.split>*{min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.checks li{display:grid;grid-template-columns:24px 1fr;gap:10px}
.checks li::before{content:"";width:18px;height:18px;margin-top:4px;border-radius:5px;background:var(--accent-soft);border:2px solid var(--accent);box-sizing:border-box;background-image:linear-gradient(45deg,transparent 45%,var(--accent) 45% 60%,transparent 60%)}
.spec{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.spec dl{margin:0;display:grid;grid-template-columns:auto 1fr}
.spec dt,.spec dd{margin:0;padding:12px 16px;border-bottom:1px solid var(--line)}
.spec dt{font:600 .76rem var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border-right:1px solid var(--line)}
.spec dd{font-weight:600}
.spec .cap{padding:14px 16px;background:var(--surface-2);font:600 .78rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase}

/* product cards */
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.cover{aspect-ratio:4/3;max-width:100%;position:relative;background:var(--cavity);color:#fff;overflow:hidden}
.cover svg,.cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.cover.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(7 7 12 / .15) 0%,rgb(7 7 12 / .35) 45%,rgb(10 8 30 / .92) 100%)}
.cover .ct,.cover .tag{z-index:1}
.pcard:hover .cover>img{transform:scale(1.05)}
.cover .ct{position:absolute;left:16px;right:16px;bottom:14px;font:800 1.05rem/1.15 var(--f-display);font-stretch:112%;color:#fff;text-wrap:balance}
.cover .tag{position:absolute;left:16px;top:14px;font:600 .64rem var(--f-mono);letter-spacing:.14em;background:var(--brand);color:#fff;padding:4px 8px;border-radius:4px}
.pbody{padding:18px;display:flex;flex-direction:column;gap:12px;flex:1}
.pbody p{color:var(--muted);font-size:.93rem}
.pfoot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;gap:10px;flex-wrap:wrap}
.price{font:600 1.25rem var(--f-mono)}
.pcard.soon{border-style:dashed;background:transparent;justify-content:center;padding:28px;gap:10px}

/* testimonials */
.tst{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,48px);align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,4vw,44px)}
.tst>*{min-width:0}
.tst .q{font:600 clamp(1.1rem,2.1vw,1.45rem)/1.45 var(--f-body);max-width:62ch}
.tst .who{margin-top:18px;display:flex;gap:12px;align-items:center}
.tst .av{width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:800 .95rem var(--f-display)}
.tst-nav{display:flex;gap:8px;margin-top:20px}
.qmark{font:900 6rem/0.8 var(--f-display);color:var(--accent);opacity:.9}
@media (max-width:640px){.tst{grid-template-columns:1fr}.qmark{font-size:4rem}}

/* areas */
.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px}
.area{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none;font-weight:600;cursor:pointer;text-align:left;font-size:.95rem}
.area small{font:500 .7rem var(--f-mono);color:var(--muted)}
.area:hover{border-color:var(--accent);color:var(--accent)}
.area.hq{border-color:var(--accent);background:var(--accent-soft)}

/* blog */
.bcard{background:var(--surface);border:1px solid var(--line-2);border-radius:14px;padding:0 22px 22px;overflow:hidden;display:flex;flex-direction:column;gap:12px;cursor:pointer;text-align:left;color:var(--ink);font:inherit}
.bcard:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:var(--shadow)}
.bcard{transition:transform .25s,box-shadow .25s,border-color .25s}
.bthumb{display:block;margin:0 -22px 4px;aspect-ratio:16/9;overflow:hidden;background:#fff;border-bottom:1px solid var(--line-2)}
.bthumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.bthumb.plate img{object-fit:contain;padding:3%}
.bcard:hover .bthumb img{transform:scale(1.05)}
.bcard .d{font:500 .74rem var(--f-mono);color:var(--muted);letter-spacing:.06em}
.bcard p{color:var(--muted);font-size:.93rem}

/* cta band */
.cta-band{background:linear-gradient(100deg,rgb(9 7 26 / .96) 0%,rgb(36 22 100 / .88) 55%,rgb(107 77 242 / .55) 100%),var(--i-core-pins-parts) center/cover;color:#EDEBFF;border:1px solid rgb(128 103 255 / .4);box-shadow:0 30px 60px -30px rgb(0 0 0 / .8);border-radius:20px;padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:1.4fr auto;gap:24px;align-items:center;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:40px solid var(--brand);opacity:.18}
.cta-band h2{color:#fff}.cta-band p{color:#C9C5E8}
.cta-band .btn{--b:#FFFFFF;color:#1A1240}.cta-band .btn:hover{--b:#E9E4FF}
@media (max-width:760px){.cta-band{grid-template-columns:1fr}}

/* page heads */
.phead{padding-block:clamp(48px,7vw,88px);border-bottom:4px solid var(--brand);position:relative;overflow:hidden;background:radial-gradient(55% 75% at 78% 35%,rgb(128 103 255 / .38),transparent 70%),linear-gradient(90deg,rgb(7 7 12 / .95) 0%,rgb(7 7 12 / .86) 40%,rgb(10 8 28 / .66) 100%),var(--i-cnc-steel-cutting) 70% center/cover no-repeat,var(--cavity)}
.phead::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgb(255 255 255 / .035) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .035) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.phead .wrap{display:grid;gap:clamp(24px,4vw,56px);position:relative;z-index:1;grid-template-columns:minmax(0,1fr);align-items:center}
.phead.has-img .wrap{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.phead-copy{display:grid;gap:14px;min-width:0}
.phead .lede{color:#E6E4F4}
.phead h1{text-shadow:0 2px 24px rgb(0 0 0 / .45)}
.phead-fig{aspect-ratio:4/3;max-height:320px;width:100%;transform:rotate(1.2deg)}
@media (max-width:860px){.phead.has-img .wrap{grid-template-columns:1fr}.phead-fig{max-height:240px;transform:none}}
/* framed photos and plots */
.fig{margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--line-2);background:var(--cavity);box-shadow:var(--shadow);position:relative;max-width:100%}
.fig img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.fig.plate{background:#FFFFFF}
.fig.plate img{object-fit:contain;padding:4%}
.fig figcaption{position:absolute;left:10px;bottom:10px;font:600 .64rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;background:rgb(10 8 26 / .86);color:#fff;padding:6px 9px;border-radius:5px;border:1px solid rgb(128 103 255 / .45)}
/* gallery */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,16vw,210px);gap:14px;grid-auto-flow:dense}
.bento .fig{height:100%}
.bento .b-lg{grid-column:span 2;grid-row:span 2}
.bento .b-wide{grid-column:span 2}
.bento .fig:hover img{transform:scale(1.05)}
@media (max-width:760px){.bento{grid-template-columns:1fr 1fr;grid-auto-rows:140px;gap:10px}}
.band{background:var(--bg-2);border-block:1px solid var(--line)}
.gallery-band{background:radial-gradient(60% 80% at 85% 0%,rgb(128 103 255 / .25),transparent 60%),#100E1C}
.chip{display:inline-flex;align-items:center;padding:8px 15px;border-radius:999px;background:var(--surface);border:1.5px solid var(--line-2);font:700 .95rem/1.1 var(--f-body);color:var(--ink)}
.svc-fig{aspect-ratio:4/3;margin-top:6px}
.crumbs{font:600 .8rem var(--f-mono);color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}
.crumbs button{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer}

/* services page */
.svc-group{display:grid;grid-template-columns:260px 1fr;gap:28px;padding-block:28px;border-top:1px solid var(--line)}
.svc-group>*{min-width:0}
.svc-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.svc{background:var(--surface);border:1px solid var(--line-2);transition:border-color .2s,transform .2s;border-radius:12px;padding:20px;display:grid;gap:8px;align-content:start}
.svc .st{font:600 .68rem var(--f-mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.svc p{color:var(--muted);font-size:.94rem}
@media (max-width:760px){.svc-group{grid-template-columns:1fr}}

/* forms */
.fm{display:grid;gap:14px}
.fld{display:grid;gap:6px}
.fld label{font-weight:600;font-size:.88rem}
.fld .hint{font-size:.8rem;color:var(--muted)}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:9px;padding:11px 12px;min-height:46px}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.two{grid-template-columns:1fr}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:clamp(18px,3vw,28px)}
.err{color:var(--bad);font-size:.88rem;font-weight:600}

/* booking */
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
.cal button,.slots button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:10px 6px;cursor:pointer;font:600 .85rem var(--f-body);display:grid;gap:2px;justify-items:center}
.cal button small{font:500 .66rem var(--f-mono);color:var(--muted);text-transform:uppercase}
.cal button b{font:800 1.25rem var(--f-display)}
.cal button[aria-pressed="true"],.slots button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
.cal button[aria-pressed="true"] small{color:var(--on-accent)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.slots button{font-family:var(--f-mono)}

/* faq */
.faq{display:grid;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:0 18px}
.faq summary{cursor:pointer;font-weight:700;padding:16px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";font:600 1.3rem/1 var(--f-mono);color:var(--accent)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding-bottom:16px;color:var(--muted)}

/* footer */
.ftr{background:linear-gradient(180deg,#12101F,#0A0A12);border-top:1px solid var(--line);padding-block:56px 28px;margin-top:40px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
.fgrid>*{min-width:0}
.fgrid h3{font:600 .74rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-stretch:100%}
.flinks{display:grid;gap:8px}
.flinks button{background:none;border:0;padding:0;text-align:left;color:var(--ink);font:500 .93rem var(--f-body);cursor:pointer}
.flinks button:hover{color:var(--accent)}
.fbot{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:.84rem;color:var(--muted)}
.copyline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.copyline .sel{user-select:all;font-family:var(--f-mono);font-weight:600}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}

/* overlays */
.scrim{position:fixed;inset:0;background:rgb(8 8 14 / .55);z-index:90;animation:fade .2s}
@keyframes fade{from{opacity:0}}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--surface);z-index:95;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 18px) 20px calc(env(safe-area-inset-bottom,0px) + 18px);box-shadow:-20px 0 40px -20px rgb(0 0 0 / .4);animation:slide .3s cubic-bezier(.2,.8,.2,1)}
@keyframes slide{from{transform:translateX(100%)}}
.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.citem{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.citem .mini{width:56px;height:56px;border-radius:8px;background:var(--cavity);display:grid;place-items:center;color:var(--brand)}
.modal{position:fixed;inset:0;z-index:96;display:grid;place-items:center;padding:16px;pointer-events:none}
.modal-box{pointer-events:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;width:min(620px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:clamp(18px,3vw,28px);display:grid;gap:16px;animation:pop .25s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow)}
.modal-box.wide{width:min(920px,100%)}
@keyframes pop{from{transform:translateY(12px) scale(.98);opacity:0}}
#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);transform:translateX(-50%);z-index:120;display:grid;gap:8px;pointer-events:none;width:min(440px,calc(100% - 32px))}
.tmsg{background:var(--ink);color:var(--bg);padding:12px 16px;border-radius:10px;font-weight:600;font-size:.92rem;animation:pop .25s;box-shadow:var(--shadow)}

html,body{margin:0}[hidden]{display:none!important}img{max-width:100%}
/* page transition: content lifts and blurs out while a molten fill bar runs; new page rises in, staggered */
.fillbar{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);height:3px;z-index:150;pointer-events:none;transform-origin:left;transform:scaleX(0);opacity:1;background:linear-gradient(90deg,#FFD08A,#FF7A45 30%,#E5487C 60%,#8067FF)}
.leaving .fillbar{transform:scaleX(.72);transition:transform .36s cubic-bezier(.3,.7,.3,1)}
.entering .fillbar{transform:scaleX(.72)}
.done .fillbar{transform:scaleX(1);opacity:0;transition:transform .35s ease,opacity .3s .3s}
#main,#ftr{transition:opacity .3s ease,transform .3s ease,filter .3s ease}
.leaving #main,.leaving #ftr{opacity:0;transform:translateY(-14px) scale(.99);filter:blur(6px)}
.entering #main,.entering #ftr{opacity:0;transform:translateY(24px);transition:none}
main.stagger>*,main.stagger .hero-copy>*{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
main.stagger>*:nth-child(2){animation-delay:.08s}main.stagger>*:nth-child(3){animation-delay:.16s}main.stagger>*:nth-child(n+4){animation-delay:.22s}
main.stagger .hero-copy>*:nth-child(2){animation-delay:.06s}main.stagger .hero-copy>*:nth-child(3){animation-delay:.12s}main.stagger .hero-copy>*:nth-child(n+4){animation-delay:.18s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}}

/* DFM review monitor */
.mk circle{fill:none;stroke:var(--bad);stroke-width:2;stroke-dasharray:4 3}
.mk line{stroke:var(--bad);stroke-width:1.2}
.mk rect{fill:var(--surface);stroke:var(--bad);stroke-width:1.2}
.mk text{font:600 9.5px var(--f-mono);fill:var(--bad);letter-spacing:.06em}
.mk .g{display:none}.mk.ok .g{display:inline}.mk.ok .b{display:none}
.mk.ok circle,.mk.ok line,.mk.ok rect{stroke:var(--ok)}.mk.ok text{fill:var(--ok)}.mk.ok circle{stroke-dasharray:none}
.prt{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.mon-top .live.hold{color:var(--warn)}

/* chat */
.chat-fab{position:fixed;right:18px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:80;width:60px;height:60px;border-radius:50%;border:0;background:var(--brand);color:#fff;cursor:pointer;display:grid;place-items:center;box-shadow:0 14px 30px -10px var(--brand)}
.chat-fab svg{width:26px;height:30px}
.chat-fab::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--brand);animation:ring 2.4s infinite;opacity:0}
@keyframes ring{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.25);opacity:0}}
.chat{position:fixed;right:18px;bottom:calc(env(safe-area-inset-bottom,0px) + 90px);z-index:85;width:min(380px,calc(100% - 36px));height:min(560px,calc(100dvh - 130px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;animation:pop .25s}
.chat-h{display:flex;gap:10px;align-items:center;padding:14px 16px;background:var(--cavity);color:#fff}
.chat-h .bulbw{width:36px;height:36px;border-radius:50%;background:var(--brand);display:grid;place-items:center}
.chat-h .bulbw svg{width:18px;height:22px}
.chat-h b{display:block;font:800 1rem var(--f-display)}.chat-h small{font:500 .7rem var(--f-mono);color:#B9B4E6}
.chat-h button{margin-left:auto;background:none;border:0;color:#fff;cursor:pointer;width:36px;height:36px;border-radius:50%}
.chat-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:86%;padding:10px 13px;border-radius:14px;font-size:.93rem;line-height:1.5}
.msg.bot{background:var(--surface-2);border-bottom-left-radius:4px}
.msg.me{background:var(--accent);color:var(--on-accent);margin-left:auto;border-bottom-right-radius:4px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{border:1.5px solid var(--accent);color:var(--accent);background:transparent;border-radius:999px;padding:6px 11px;font:600 .8rem var(--f-body);cursor:pointer}
.chips button:hover{background:var(--accent);color:var(--on-accent)}
.chat-f{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.chat-f input{min-height:42px}
.typing{display:inline-flex;gap:4px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:bl 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes bl{50%{opacity:.25}}

/* dashboards */
.dash{display:grid;grid-template-columns:232px 1fr;gap:24px;padding-block:28px 60px;align-items:start}
.dash>*{min-width:0}
.side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 86px);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px;display:grid;gap:2px}
.side .who{padding:12px 10px 14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.side .who b{display:block}.side .who small{color:var(--muted);font-size:.8rem;word-break:break-all}
.side button{display:flex;gap:10px;align-items:center;background:none;border:0;padding:10px 12px;border-radius:8px;color:var(--ink);font:600 .9rem var(--f-body);cursor:pointer;text-align:left;white-space:nowrap}
.side button svg{width:18px;height:18px;flex-shrink:0;color:var(--muted)}
.side button:hover{background:var(--surface-2)}
.side button[aria-current="true"]{background:var(--accent-soft);color:var(--accent)}
.side button[aria-current="true"] svg{color:var(--accent)}
.side .pill{margin-left:auto;font:600 .66rem var(--f-mono);background:var(--heat);color:#1a0e06;border-radius:9px;padding:1px 7px}
@media (max-width:880px){.dash{grid-template-columns:1fr}.side{position:static;display:flex;overflow-x:auto;padding:6px}.side .who{display:none}}
.dh{display:flex;justify-content:space-between;align-items:end;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.dh h1{font-size:clamp(1.6rem,3vw,2.2rem)}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:12px;margin-bottom:20px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px}
.kpi small{font:500 .68rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kpi b{display:block;font:700 1.6rem var(--f-mono);margin-top:6px;font-variant-numeric:tabular-nums}
.kpi span{font-size:.8rem;color:var(--muted)}
.cards2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.cards2>*{min-width:0}
@media (max-width:980px){.cards2{grid-template-columns:1fr}}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem;min-width:620px}
.tbl th{text-align:left;font:600 .68rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl .ta{text-align:right;white-space:nowrap}
.tbl .num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.tbl select{min-height:34px;padding:4px 8px;width:auto}
.empty{text-align:center;color:var(--muted);padding:28px!important}
.st{display:inline-flex;align-items:center;gap:6px;font:600 .78rem var(--f-mono);padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);text-transform:capitalize;white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st.paid,.st.published,.st.confirmed,.st.active,.st.completed,.st.yes{color:var(--ok)}
.st.requested,.st.draft,.st.unread,.st.new{color:var(--warn)}
.st.refunded,.st.cancelled,.st.disabled,.st.hidden,.st.no{color:var(--bad)}
.tbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:12px}
.tbar input{max-width:280px;min-height:40px}
.demo-note{font:500 .74rem var(--f-mono);color:var(--muted);background:var(--surface-2);border:1px dashed var(--line);border-radius:8px;padding:8px 12px;margin-bottom:16px}
.lib{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
.reader{background:var(--surface-2);border-radius:10px;aspect-ratio:8.5/11;max-width:100%;max-height:60vh;margin-inline:auto;position:relative;display:grid;place-items:center;overflow:hidden;width:100%}
.reader .wm{position:absolute;inset:0;display:grid;place-items:center;transform:rotate(-24deg);font:600 .9rem var(--f-mono);color:var(--muted);opacity:.35;pointer-events:none;text-align:center}
.tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:999px;width:max-content;max-width:100%}
.tabs button{border:0;background:none;padding:9px 16px;border-radius:999px;font:700 .88rem var(--f-body);color:var(--muted);cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.auth{max-width:460px;margin:clamp(30px,6vw,70px) auto;display:grid;gap:18px}
.chart svg{width:100%;height:auto;display:block}
.prose{max-width:68ch;display:grid;gap:16px;font-size:1.04rem}
.prose h2{font-size:1.45rem;margin-top:14px}
.prose ul{margin:0;padding-left:1.2em;display:grid;gap:6px}.prose li::marker{color:var(--accent)}
.post-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(28px,5vw,64px);align-items:start}
.post-side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 90px);display:grid;gap:16px}
.side-link{background:none;border:0;border-top:1px solid var(--line);padding:12px 0 0;text-align:left;font:600 .92rem/1.35 var(--f-body);color:var(--ink);cursor:pointer;display:grid;gap:3px}
.side-link small{font:500 .68rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.side-link:hover{color:var(--accent)}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.post-nav button{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;cursor:pointer;text-align:left;display:grid;gap:4px;color:var(--ink);font:600 .92rem/1.35 var(--f-body)}
.post-nav button:hover{border-color:var(--accent)}.post-nav small{font:500 .7rem var(--f-mono);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:900px){.post-grid{grid-template-columns:1fr}.post-side{position:static}}
@media (max-width:560px){.post-nav{grid-template-columns:1fr}}


/* legal pages */
.legal-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:start}
.legal-toc{position:sticky;top:calc(env(safe-area-inset-top,0px) + 90px);display:grid;gap:10px}
.legal-toc ol{margin:0;padding-left:1.4em;display:grid;gap:7px;font-size:.92rem}
.legal-toc ol li::marker{color:var(--accent);font-family:var(--f-mono);font-size:.8em}
.legal-toc a{color:var(--ink);text-decoration:none}.legal-toc a:hover{color:var(--accent);text-decoration:underline}
.prose.legal{max-width:72ch}
.prose.legal section{display:grid;gap:12px;padding-top:6px;scroll-margin-top:100px}
.prose.legal h2{display:flex;gap:12px;align-items:baseline;font-size:1.35rem}
.prose.legal h2 .mono{font-size:.8rem;color:var(--accent);font-weight:500}
.prose.legal p,.prose.legal li{color:var(--muted)}.prose.legal b{color:var(--ink)}
.callout{border:1px solid var(--line-2);border-left:4px solid var(--brand);background:var(--accent-soft);padding:16px 18px;border-radius:10px;color:var(--ink)}
.inl{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.inl:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:3px}
@media (max-width:860px){.legal-grid{grid-template-columns:1fr}.legal-toc{position:static}}
.flegal{display:flex;flex-wrap:wrap;gap:6px 18px;width:100%;padding-top:14px;border-top:1px solid var(--line);margin-top:4px}
.flegal button{all:unset;cursor:pointer;color:var(--muted);font-size:.84rem}
.flegal button:hover{color:var(--accent)}.flegal button:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:3px}
.agree{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:.88rem;color:var(--muted);padding:12px 14px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg-2)}
.agree input{width:20px;height:20px;min-height:0;margin:2px 0 0;accent-color:var(--brand)}
/* cookie consent */
.consent{position:fixed;left:18px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:110;width:min(470px,calc(100% - 36px));background:linear-gradient(160deg,#1B1932,#11101D);border:1px solid rgb(128 103 255 / .5);border-radius:16px;padding:20px;display:grid;gap:14px;box-shadow:0 30px 60px -20px rgb(0 0 0 / .85),0 0 50px -20px var(--glow);animation:pop .35s cubic-bezier(.2,.8,.2,1)}
.consent h2{font-size:1.15rem}
.consent p{font-size:.9rem;color:var(--muted)}
.cn-head{display:flex;gap:10px;align-items:center}
.cn-ico{width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;flex-shrink:0}
.cn-btns{display:flex;gap:8px;flex-wrap:wrap}
.cn-opts{display:grid;gap:8px}
.cn-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgb(255 255 255 / .03);cursor:pointer}
.cn-row small{display:block;color:var(--muted);font-size:.8rem}
.cn-row input{width:20px;height:20px;min-height:0;flex-shrink:0;accent-color:var(--brand)}
@media (max-width:560px){.consent{left:10px;right:10px;width:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 10px)}body.has-consent .chat-fab{display:none}}

/* nationwide service area */
.usa{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(20px,3vw,36px);align-items:start;background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:clamp(18px,3vw,30px);box-shadow:var(--shadow)}
.usa-stat{display:grid;gap:10px;align-content:start}
.usa-stat b{font:850 clamp(3.5rem,7vw,5.5rem)/.9 var(--f-display);font-stretch:118%;color:var(--accent)}
.usa-stat span{font:700 1.1rem var(--f-body)}
.usa-states{display:flex;flex-wrap:wrap;gap:7px}
.usa-states span{padding:6px 11px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font:600 .86rem/1.1 var(--f-body);color:var(--ink)}
.usa-states span.hq{background:var(--btn);border-color:var(--btn);color:#fff}
@media (max-width:800px){.usa{grid-template-columns:1fr}}
@media (max-width:640px){.logo small{display:none}}
@media (max-width:480px){.hdr .wrap{gap:8px}.logo{gap:7px;min-width:0;flex-shrink:1}.logo svg{width:26px;height:32px}.logo b{font-size:.9rem;font-stretch:100%;white-space:normal;line-height:1.1}.hdr-tools{gap:4px}.icon-btn{width:36px;height:36px}.icon-btn svg{width:18px;height:18px}}
/* warm light on inner-page banners */
.phead::before{content:"";position:absolute;z-index:0;pointer-events:none;width:min(62vw,860px);aspect-ratio:1;right:-6%;top:-55%;border-radius:50%;
  background:radial-gradient(circle,rgb(255 200 110 / .8) 0%,rgb(255 150 50 / .5) 24%,rgb(235 95 35 / .2) 50%,transparent 70%);mix-blend-mode:screen;filter:blur(4px) saturate(1.2);animation:warm 8s ease-in-out infinite alternate}
.phead .wrap::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-12%;bottom:-70%;width:min(40vw,520px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgb(255 150 70 / .22) 0%,rgb(255 120 40 / .08) 45%,transparent 70%);mix-blend-mode:screen}
.phead{border-bottom:4px solid transparent;border-image:linear-gradient(90deg,#8067FF,#FF9A4A 70%,#FFC27A) 1}
.phead .eyebrow{color:#FFC68A}
.phead-fig{box-shadow:0 30px 60px -25px rgb(0 0 0 / .8),0 0 70px -10px rgb(255 150 60 / .45)}
.hero.svc-hero::before{background:radial-gradient(42% 58% at 84% 20%,rgb(255 185 90 / .62),rgb(255 130 40 / .22) 45%,transparent 72%),radial-gradient(55% 75% at 78% 35%,rgb(128 103 255 / .3),transparent 70%),linear-gradient(90deg,rgb(7 7 12 / .95) 0%,rgb(7 7 12 / .86) 40%,rgb(10 8 28 / .62) 100%)}
.hero.svc-hero{border-bottom:4px solid transparent;border-image:linear-gradient(90deg,#8067FF,#FF9A4A 70%,#FFC27A) 1}
.hero.svc-hero .eyebrow{color:#FFC68A}
@keyframes warm{0%{transform:translate(0,0) scale(1);opacity:.82}100%{transform:translate(-5%,7%) scale(1.1);opacity:1}}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;gap:12px 32px}
}

/* header fit: keep nav labels and the Book button on one line in the 1061-1240px range (no change above 1240px or on tablet/mobile) */
.nav button,.hdr .btn.book{white-space:nowrap}
@media (min-width:1061px) and (max-width:1240px){.hdr .wrap{gap:12px}.nav button{padding:10px 8px;font-size:.86rem}.nav button::after{left:8px;right:8px}.logo small{font-size:.62rem}.hdr .btn.book{padding:0 12px}.hdr-tools{gap:6px}}

/* ---------------------------------------------------------------------------
   Service detail pages.
   These rules used to be injected by svc.js at runtime; they are part of the
   stylesheet now, so there is no unstyled flash while a script loads.
   --------------------------------------------------------------------------- */
.svc-more{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-weight:600;font-size:.92rem;color:var(--brand,#5B3DEB);text-decoration:none}
.svc-more:hover{text-decoration:underline}
a.side-link{display:block;text-decoration:none;color:inherit}
a.side-link small{display:block;margin-bottom:3px}
.seo-home .prose h3{margin-top:1.4em}
.prose h3{margin:1.2em 0 .4em}
[data-ext=svc]+.phead .phead-copy{min-width:0}
[data-ext=svc]+.phead h1{font-size:clamp(2rem,3.4vw,3.1rem);overflow-wrap:break-word}

/* ---------------------------------------------------------------------------
   Page entrance, in CSS.
   The arriving page used to be held at opacity 0 until JavaScript cleared the
   .entering class, so content waited on a 160 KB script. The same staggered
   rise now runs as a CSS animation: identical motion, but the page is visible
   the moment it paints and stays visible even if the script never arrives.
   (The global prefers-reduced-motion rule above still disables it.)
   --------------------------------------------------------------------------- */
.entering #main,.entering #ftr{opacity:1;transform:none;filter:none;transition:none}
.entering #main>*,.entering #main .hero-copy>*{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.entering #main>*:nth-child(2){animation-delay:.08s}
.entering #main>*:nth-child(3){animation-delay:.16s}
.entering #main>*:nth-child(n+4){animation-delay:.22s}
.entering #main .hero-copy>*:nth-child(2){animation-delay:.06s}
.entering #main .hero-copy>*:nth-child(3){animation-delay:.12s}
.entering #main .hero-copy>*:nth-child(n+4){animation-delay:.18s}
.entering .fillbar{animation:bgi-fill .7s .04s cubic-bezier(.3,.7,.3,1) forwards}
@keyframes bgi-fill{0%{transform:scaleX(.72);opacity:1}70%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}

/* ---------------------------------------------------------------------------
   Signed-in account menu in the header.
   Signed out, the control stays the plain round icon. Signed in it shows the
   person's initials and name, and opens a menu with their dashboard, guides,
   orders, consultations, profile and sign-out.
   --------------------------------------------------------------------------- */
.acct{position:relative;display:inline-flex}
.acct-btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 10px 0 5px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font:600 .88rem var(--f-body);max-width:190px;transition:border-color .18s ease,color .18s ease}
.acct-btn:hover{border-color:var(--accent);color:var(--accent)}
.acct-btn[aria-expanded="true"]{border-color:var(--accent);color:var(--accent)}
.acct-av{width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font:800 .78rem var(--f-display);letter-spacing:.02em}
.acct-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-chev{width:14px;height:14px;flex-shrink:0;opacity:.7;transition:transform .2s ease}
.acct-btn[aria-expanded="true"] .acct-chev{transform:rotate(180deg)}

.acct-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:60;min-width:248px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px;display:grid;gap:2px;box-shadow:var(--shadow);animation:pop .18s cubic-bezier(.2,.8,.2,1)}
.acct-head{padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;display:grid;gap:2px}
.acct-head b{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-head small{color:var(--muted);font-size:.78rem;word-break:break-all}
.acct-menu button{display:flex;gap:10px;align-items:center;width:100%;background:none;border:0;padding:10px 12px;border-radius:8px;color:var(--ink);font:600 .9rem var(--f-body);cursor:pointer;text-align:left;white-space:nowrap}
.acct-menu button svg{width:18px;height:18px;flex-shrink:0;color:var(--muted)}
.acct-menu button:hover{background:var(--surface-2)}
.acct-menu button:hover svg{color:var(--accent)}
.acct-sep{height:1px;background:var(--line);margin:6px 4px}

/* The name is the first thing to go when the header gets tight. */
@media (max-width:1060px){.acct-btn{max-width:150px}}
@media (max-width:640px){
  .acct-btn{gap:0;padding:0;width:42px;justify-content:center;border-radius:50%}
  .acct-name,.acct-chev{display:none}
  .acct-av{width:40px;height:40px;flex-basis:40px}
  .acct-menu{right:0;min-width:236px}
}
@media (max-width:480px){.acct-btn{width:36px}.acct-av{width:34px;height:34px;flex-basis:34px;font-size:.72rem}}

/* A grid container stretches its auto rows to fill spare height, so in the
   two-up dashboard layout the shorter form spread its fields and left a very
   tall button. Keep those forms packed to the top; the cards still match
   height, the contents just stay their natural size. */
.cards2 .fm{align-content:start}

/* ---------------------------------------------------------------------------
   No page-transition animation.

   Clicking a link used to fade and blur the page out for 330ms before the
   browser was even asked for the next page, and the arriving page then held
   its sections invisible through a staggered fade-in. Together that was close
   to a second of waiting on every click, for no benefit.

   These rules cancel all of it, so a page paints the instant it arrives. The
   content animations - the mold cycle, the DFM review, the lifecycle tabs,
   the brand ticker, card hovers - are deliberately left alone; they are part
   of the design, not part of loading.
   --------------------------------------------------------------------------- */
#main,#ftr{transition:none}
.leaving #main,.leaving #ftr,
.entering #main,.entering #ftr,
.loading #main,.loading #ftr{opacity:1;transform:none;filter:none;transition:none;animation:none}
.entering #main>*,.entering #main .hero-copy>*,
main.stagger>*,main.stagger .hero-copy>*{animation:none}
.fillbar,.leaving .fillbar,.entering .fillbar,.done .fillbar{display:none}
