/* =====================================================================
   Converant showpiece · main.css
   Base styles are the calm, static version (no JS / reduced motion).
   Everything under html.motion is the enhanced, animated version.
   ===================================================================== */

@font-face{font-family:'Syne';font-style:normal;font-weight:700 800;font-display:swap;src:url(../fonts/syne.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/manrope.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/plex-mono-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/plex-mono-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Metric-matched fallbacks keep layout shift near zero while fonts swap in */
@font-face{font-family:'Syne Fallback';src:local('Arial Black'),local('Arial');size-adjust:96%;ascent-override:92%;descent-override:26%}
@font-face{font-family:'Manrope Fallback';src:local('Arial');size-adjust:103%;ascent-override:104%;descent-override:29%}

@property --s-bg{syntax:'<color>';inherits:true;initial-value:#0f0f0f}
@property --s-accent{syntax:'<color>';inherits:true;initial-value:#c8372d}
@property --s-accent2{syntax:'<color>';inherits:true;initial-value:#5b8fd6}

:root{
  --ink:#050706; --ink-2:#0a0f0c; --surface:#0e1511; --surface-2:#131c17;
  --paper:#f6f7f3; --paper-ink:#10261a;
  --emerald-d:#0c5a34; --emerald:#13a45a; --emerald-l:#2bbd65; --mint:#5cf07a;
  --forest:#1a3225; --sage:#9fbfab; --muted:#8a9a90; --line:rgba(246,247,243,.12);
  --line-2:rgba(246,247,243,.2);

  --f-display:'Syne','Syne Fallback',system-ui,sans-serif;
  --f-serif:'Instrument Serif',Georgia,serif;
  --f-body:'Manrope','Manrope Fallback',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --fs-hero:clamp(2.45rem,1.4rem + 4.1vw,7.2rem);
  --fs-h2:clamp(2.1rem,1.25rem + 3.9vw,5.6rem);
  --fs-h3:clamp(1.2rem,1.05rem + .6vw,1.65rem);
  --fs-lede:clamp(1.02rem,.95rem + .35vw,1.3rem);
  --fs-body:clamp(.98rem,.94rem + .18vw,1.08rem);
  --fs-small:clamp(.82rem,.8rem + .1vw,.9rem);
  --fs-mono:clamp(.7rem,.68rem + .1vw,.78rem);

  --gutter:clamp(16px,4.2vw,56px);
  --maxw:1320px;
  --radius:22px;
  --ease:cubic-bezier(.22,.7,.2,1);
  --ease-io:cubic-bezier(.65,0,.25,1);
  --dur:800ms;
  --nav-h:64px;
}

*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px;background:var(--ink)}
html.motion{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--paper);font:400 var(--fs-body)/1.6 var(--f-body);overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body::after{/* film grain */content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.1;background:url(../img/grain.png) 0 0/96px 96px}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3,p,ul,ol,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
em{font-style:normal}
::selection{background:var(--mint);color:var(--ink)}
:focus-visible{outline:2px solid var(--mint);outline-offset:3px;border-radius:6px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.mono{font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase}
.wrap{width:100%;max-width:calc(var(--maxw) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
[hidden]{display:none!important}
main>section{overflow-x:clip}

.skip{position:fixed;left:16px;top:12px;z-index:200;padding:12px 18px;border-radius:12px;background:var(--mint);color:var(--ink);font-weight:700;text-decoration:none;transform:translateY(-150%);transition:transform .3s var(--ease)}
.skip:focus{transform:none}

/* ---------- Type ---------- */
.display{font-family:var(--f-display);font-weight:800;letter-spacing:-.028em;line-height:1.04}
.display em{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--emerald-l);padding-right:.04em}
.h2{font-size:var(--fs-h2);max-width:16ch;text-wrap:balance}
.lede{font-size:var(--fs-lede);color:var(--sage);max-width:46ch;line-height:1.5}
.lede a{color:var(--paper);text-decoration-color:var(--emerald);text-underline-offset:4px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:clamp(14px,2vw,22px)}
.eyebrow--dark{color:#2d5a41}
.dot{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px rgba(92,240,122,.14),0 0 14px var(--mint);flex:none}
.dot--warn{background:#f0b45c;box-shadow:0 0 0 4px rgba(240,180,92,.15),0 0 14px #f0b45c}
.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:rgba(5,7,6,.86);color:var(--paper);border:1px solid var(--line-2);white-space:nowrap}

/* ---------- Buttons ---------- */
.btn{--bh:52px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--bh);padding:0 26px;border-radius:999px;font-weight:700;font-size:1rem;letter-spacing:-.005em;text-decoration:none;white-space:nowrap;transition:transform .5s var(--ease),box-shadow .5s var(--ease),background-color .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease);isolation:isolate}
.btn>span{position:relative;z-index:1}
.btn--sm{--bh:44px;padding:0 18px;font-size:.92rem}
.btn--lg{--bh:64px;padding:0 38px;font-size:1.12rem}
.btn--block{width:100%}
.btn--primary{color:#04140b;background:linear-gradient(180deg,#6ff58a 0%,#2bbd65 100%);box-shadow:0 0 0 1px rgba(92,240,122,.5) inset,0 10px 30px -10px rgba(43,189,101,.7),0 0 40px -12px rgba(92,240,122,.6)}
.btn--primary::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120px 60px at var(--bx,50%) var(--by,0%),rgba(255,255,255,.55),transparent 70%);opacity:0;transition:opacity .4s var(--ease);z-index:0}
.btn--primary:hover::before{opacity:1}
.btn--primary:hover{box-shadow:0 0 0 1px rgba(92,240,122,.7) inset,0 16px 40px -12px rgba(43,189,101,.85),0 0 60px -10px rgba(92,240,122,.75)}
.btn--ghost{color:var(--paper);background:rgba(14,21,17,.6);border:1px solid var(--line-2)}
.btn--ghost:hover{background:rgba(246,247,243,.09);border-color:rgba(246,247,243,.35)}
.btn:active{transform:scale(.97)}
.btn__arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;position:relative;z-index:1}
.magnet{display:inline-block}

/* ---------- Progress line ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:120;pointer-events:none}
.progress span{display:block;height:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--emerald-d),var(--emerald-l),var(--mint));box-shadow:0 0 12px var(--mint)}

/* ---------- Nav ---------- */
.nav{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:0;right:0;z-index:100;display:flex;justify-content:center;padding-inline:12px;pointer-events:none;transition:transform .7s var(--ease),opacity .5s var(--ease)}
.nav.is-hidden{transform:translateY(calc(-100% - 20px));opacity:0}
.nav__bar{pointer-events:auto;display:flex;align-items:center;gap:6px;height:var(--nav-h);padding:0 8px 0 14px;border-radius:999px;background:rgba(10,15,12,.62);border:1px solid var(--line);box-shadow:0 10px 40px -10px rgba(0,0,0,.7),0 0 0 1px rgba(92,240,122,.04),0 0 50px -20px rgba(43,189,101,.35);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}
.nav__brand{display:flex;align-items:center;gap:10px;text-decoration:none;padding:6px 10px 6px 2px;margin-right:6px;min-height:44px;border-radius:999px}
.nav__mark{width:30px;height:30px;filter:drop-shadow(0 0 10px rgba(92,240,122,.35))}
.nav__word{font-family:var(--f-display);font-weight:800;font-size:1.08rem;letter-spacing:-.02em}
.nav__links{position:relative;display:flex;align-items:center;gap:2px;margin-right:8px}
.nav__links a{position:relative;z-index:1;display:inline-flex;align-items:center;min-height:44px;padding:0 15px;border-radius:999px;color:var(--sage);text-decoration:none;font-weight:500;font-size:.94rem;transition:color .4s var(--ease)}
.nav__links a:hover,.nav__links a.is-active{color:var(--paper)}
.nav__pill{position:absolute;left:0;top:50%;height:38px;width:var(--pw,0px);margin-top:-19px;border-radius:999px;background:rgba(246,247,243,.08);border:1px solid var(--line);transform:translateX(var(--px,0px));opacity:var(--po,0);transition:transform .6s var(--ease),width .6s var(--ease),opacity .4s var(--ease);pointer-events:none}
.nav__pill::after{content:"";position:absolute;left:50%;bottom:-1px;width:16px;height:2px;margin-left:-8px;border-radius:2px;background:var(--mint);box-shadow:0 0 10px var(--mint)}
.nav__menu{display:none}
@media (max-width:899px){
  .nav{justify-content:center}
  .nav__word{font-size:1rem}
  .nav__bar{width:100%;min-width:0;max-width:520px;margin-inline:auto;height:58px;padding:0 6px 0 12px}
  .nav__links,.nav__cta-wrap{display:none}
  .nav__brand{margin-right:auto}
  .nav__menu{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:48px;height:46px;padding:0 16px;border-radius:999px;background:rgba(246,247,243,.06);border:1px solid var(--line)}
  .nav__menu::before{content:"Menu";font-weight:600;font-size:.9rem}
  .nav__menu[aria-expanded="true"]::before{content:"Close"}
}
.nav__burger{position:relative;width:18px;height:10px}
.nav__burger i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.nav__burger i:first-child{top:0}.nav__burger i:last-child{top:8px}
.nav__menu[aria-expanded="true"] .nav__burger i:first-child{top:4px;transform:rotate(45deg)}
.nav__menu[aria-expanded="true"] .nav__burger i:last-child{top:4px;transform:rotate(-45deg)}

/* ---------- Mobile menu sheet ---------- */
.menu{position:fixed;inset:0;z-index:95;background:rgba(5,7,6,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.menu::before{content:"";position:absolute;inset:auto -20% -30% -20%;height:70%;background:radial-gradient(closest-side,rgba(19,164,90,.35),transparent);pointer-events:none}
.menu__inner{position:relative;height:100%;display:flex;flex-direction:column;padding:96px var(--gutter) max(24px,env(safe-area-inset-bottom));overflow-y:auto}
.menu__eyebrow{color:var(--muted);margin-bottom:16px}
.menu__links a{display:flex;align-items:baseline;gap:16px;padding:12px 0;font-family:var(--f-display);font-weight:800;font-size:clamp(2rem,9vw,3.2rem);letter-spacing:-.035em;line-height:1.05;text-decoration:none;border-bottom:1px solid var(--line)}
.menu__links .mono{color:var(--emerald-l);font-size:.72rem;transform:translateY(-.6em)}
.menu__foot{margin-top:auto;padding-top:28px;display:grid;gap:14px;text-align:center}
.menu__mail{color:var(--sage);padding:10px;text-decoration:none}
html.motion .menu{transition:opacity .45s var(--ease),visibility 0s .45s;opacity:0;visibility:hidden}
html.motion .menu.is-open{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
html.motion .menu__links li,html.motion .menu__foot{opacity:0;transform:translateY(28px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
html.motion .menu.is-open .menu__links li,html.motion .menu.is-open .menu__foot{opacity:1;transform:none;transition-delay:calc(var(--i,0)*60ms + 80ms)}
html:not(.motion) .menu.is-open{display:block}

/* ---------- Intro ---------- */
.intro{display:none}
html.is-intro .intro{position:fixed;inset:0;z-index:300;display:grid;place-items:center;align-content:center;gap:18px;background:var(--ink);animation:introOut .5s var(--ease) 1s forwards;cursor:pointer}
html.is-intro .intro::before{content:"";position:absolute;width:60vmin;height:60vmin;border-radius:50%;background:radial-gradient(closest-side,rgba(43,189,101,.4),transparent);opacity:0;animation:introGlow .9s var(--ease) .35s forwards}
.intro__mark{position:relative;width:clamp(96px,22vmin,170px);height:auto;overflow:visible}
.intro__draw{fill:none;stroke:var(--mint);stroke-width:.8;stroke-dasharray:1;stroke-dashoffset:1;animation:introDraw .6s var(--ease-io) forwards}
.intro__fill{opacity:0;animation:introFill .45s var(--ease) .45s forwards}
.intro__slash{stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:introDraw .35s var(--ease) .55s forwards;filter:drop-shadow(0 0 3px var(--mint))}
.intro__word{position:relative;font-family:var(--f-display);font-weight:800;font-size:clamp(1.1rem,3vmin,1.5rem);letter-spacing:-.02em;opacity:0;transform:translateY(8px);animation:introWord .5s var(--ease) .5s forwards}
html.is-intro-done .intro{display:none}
@keyframes introDraw{to{stroke-dashoffset:0}}
@keyframes introFill{to{opacity:1}}
@keyframes introGlow{to{opacity:1}}
@keyframes introWord{to{opacity:1;transform:none}}
@keyframes introOut{to{opacity:0;visibility:hidden}}

/* ---------- Reveal system ---------- */
html.motion [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);transition-delay:calc(var(--d,0s) + var(--i,0)*70ms)}
html.motion [data-reveal].is-in{opacity:1;transform:none}
html.motion.is-intro [data-reveal]{transition-delay:calc(var(--d,0s) + var(--i,0)*70ms + 1.05s)}
.w{display:inline-block;overflow:clip;vertical-align:top;padding-bottom:.24em;margin-bottom:-.24em;padding-right:.04em;margin-right:-.02em}
.w>span{display:inline-block}
html.motion [data-split] .w>span{transform:translate3d(0,108%,0);transition:transform 1s var(--ease);transition-delay:calc(var(--l,0)*90ms + var(--d,0s))}
html.motion [data-split].is-in .w>span{transform:none}
html.motion.is-intro .hero [data-split] .w>span{transition-delay:calc(var(--l,0)*90ms + .95s)}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 56px) 0 40px;overflow:clip}
.hero__bg{position:absolute;inset:0;pointer-events:none}
.aurora{position:absolute;inset:-10% -10% 0;opacity:.95}
.aurora i{position:absolute;border-radius:50%;will-change:transform}
.aurora .a1{width:70vmax;height:70vmax;left:-25vmax;top:-30vmax;background:radial-gradient(closest-side,rgba(19,164,90,.5),rgba(19,164,90,0))}
.aurora .a2{width:60vmax;height:60vmax;right:-22vmax;top:-10vmax;background:radial-gradient(closest-side,rgba(12,90,52,.75),rgba(12,90,52,0))}
.aurora .a3{width:46vmax;height:46vmax;left:20vw;bottom:-28vmax;background:radial-gradient(closest-side,rgba(92,240,122,.22),rgba(92,240,122,0))}
html.motion .aurora .a1{animation:drift1 22s ease-in-out infinite alternate}
html.motion .aurora .a2{animation:drift2 26s ease-in-out infinite alternate}
html.motion .aurora .a3{animation:drift3 19s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate3d(12vw,8vh,0) scale(1.15)}}
@keyframes drift2{to{transform:translate3d(-10vw,14vh,0) scale(.9)}}
@keyframes drift3{to{transform:translate3d(14vw,-12vh,0) scale(1.2)}}
.grid-lines{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:72px 72px;opacity:.35;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%)}
.hero__bigmark{position:absolute;width:min(120vmin,1100px);right:-18vmin;top:50%;margin-top:calc(min(120vmin,1100px)/-2);opacity:.07}
.hero__inner{position:relative;display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
.hero__title{font-size:var(--fs-hero);max-width:none;margin-bottom:clamp(20px,2.4vw,32px)}
.hero__title br{display:none}
@media (min-width:980px){.hero__title br{display:inline}}
.hero__title em{color:var(--mint);text-shadow:0 0 40px rgba(92,240,122,.35)}
.hero__sub{font-size:var(--fs-lede);color:var(--sage);max-width:40ch;line-height:1.5;margin-bottom:clamp(26px,3vw,40px)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero__ctas .btn{flex:1 1 auto}
@media (min-width:600px){.hero__ctas .btn{flex:0 0 auto}}
.hero__device{position:relative;justify-self:center}
.hero__halo{position:absolute;inset:10% -30% -10%;z-index:-1;background:radial-gradient(closest-side,rgba(43,189,101,.35),transparent 70%)}
.facts{position:relative;display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:clamp(40px,6vw,72px)}
.facts li{display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 11px;border-radius:999px;border:1px solid var(--line);background:rgba(14,21,17,.55);font-size:var(--fs-small);color:var(--paper);font-weight:500}
.facts svg{width:16px;height:16px;fill:none;stroke:var(--mint);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media (min-width:980px){
  .hero__inner{grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,4vw,80px)}
  .hero__device{justify-self:end}
}

/* ---------- Phone frame ---------- */
.phone{--pw:300px;position:relative;width:var(--pw);height:calc(var(--pw)*2.1333);max-width:100%;flex:none;border-radius:calc(var(--pw)*.15);padding:calc(var(--pw)*.035);background:linear-gradient(145deg,#2a332e,#0b0f0d 40%,#1a221e);box-shadow:0 0 0 1px rgba(246,247,243,.14) inset,0 0 0 1.5px #000,0 50px 100px -30px rgba(0,0,0,.9),0 30px 80px -40px rgba(43,189,101,.55)}
.phone::before{/* notch */content:"";position:absolute;top:calc(var(--pw)*.06);left:50%;width:28%;height:calc(var(--pw)*.07);margin-left:-14%;border-radius:999px;background:#000;z-index:3}
.phone__screen{position:relative;height:100%;border-radius:calc(var(--pw)*.12);overflow:hidden;background:#000;isolation:isolate}
.phone--hero{--pw:clamp(250px,68vw,330px)}
.phone .tag--float{position:absolute;top:56%;left:-14px;z-index:5;transform:rotate(-4deg);box-shadow:0 8px 24px -8px rgba(0,0,0,.6)}
.phone__scroll{will-change:transform;transform:translate3d(0,var(--sy,0px),0)}
.phone__toast{position:absolute;left:8%;right:8%;bottom:6%;z-index:4;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:rgba(246,247,243,.92);color:#10261a;font-size:12.5px;font-weight:700;box-shadow:0 14px 30px -10px rgba(0,0,0,.6);opacity:0;transform:translateY(16px) scale(.96)}
.phone__toast-dot{width:8px;height:8px;border-radius:50%;background:var(--emerald);box-shadow:0 0 0 4px rgba(19,164,90,.2)}
html.motion .phone__toast{animation:toast 7s var(--ease) 2.6s infinite}
@keyframes toast{0%,8%{opacity:0;transform:translateY(16px) scale(.96)}14%,52%{opacity:1;transform:none}60%,100%{opacity:0;transform:translateY(-6px) scale(.98)}}

/* ---------- Mini site (inside devices) ----------
   Same pieces for every example (nav, photo, hero, svc, hours, map);
   each .lay-* arranges them differently so switching can move them. */
@property --s-surface{syntax:'<color>';inherits:true;initial-value:#1b1b1b}
@property --s-ink{syntax:'<color>';inherits:true;initial-value:#f1ebe0}
@property --s-muted{syntax:'<color>';inherits:true;initial-value:#b9b1a3}
@property --s-on{syntax:'<color>';inherits:true;initial-value:#fff}
.ms{--r:14px;display:grid;gap:10px;align-content:start;padding:0 12px 16px;background:var(--s-bg);color:var(--s-ink);font-family:var(--f-body);min-height:100%;transition:--s-bg .8s var(--ease),--s-surface .8s var(--ease),--s-ink .8s var(--ease),--s-muted .8s var(--ease),--s-accent .8s var(--ease),--s-accent2 .8s var(--ease),--s-on .8s var(--ease)}
.ms>[data-piece]{min-width:0;transform-origin:0 0}
.ms>[data-piece]{transition:box-shadow .3s var(--ease),background-color .3s var(--ease)}
.ms.is-swapping>[data-piece]{border-radius:var(--r);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--s-accent) 70%,transparent),0 14px 30px -12px rgba(0,0,0,.45)}
.ms.is-swapping>[data-piece="nav"],.ms.is-swapping>[data-piece="hero"]{background-color:color-mix(in srgb,var(--s-accent) 14%,var(--s-bg))}
.ms.is-morphing>[data-piece]{transition:transform .75s var(--ease),box-shadow .3s var(--ease),background-color .3s var(--ease);will-change:transform}
.pc{transition:opacity .22s var(--ease)}
.ms.is-swapping .pc,.ms.is-fading .pc{opacity:0}
.ms--phone{font-size:11px;line-height:1.4;grid-template-columns:minmax(0,1fr)}
.ms-status{grid-area:status;display:flex;justify-content:space-between;align-items:center;padding:10px 10px 0;font-size:10px;font-weight:700}
.ms-status__i{display:flex;gap:3px}.ms-status__i i{width:12px;height:7px;border-radius:2px;background:currentColor;opacity:.75}
.ms-foot{grid-area:foot;text-align:center;font-family:var(--f-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--s-muted);padding-top:4px}
[data-piece="nav"]{grid-area:nav}[data-piece="photo"]{grid-area:photo}[data-piece="hero"]{grid-area:hero}
[data-piece="svc"]{grid-area:svc}[data-piece="hours"]{grid-area:hours}[data-piece="map"]{grid-area:map}
.ms-nav .pc{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 2px}
.ms-logo{font-weight:800;font-size:13px;letter-spacing:-.01em;white-space:nowrap}
.ms-burger{display:grid;gap:4px}.ms-burger i{display:block;width:16px;height:2px;border-radius:2px;background:currentColor}
.ms-photo{position:relative;border-radius:var(--r);min-height:120px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--s-accent) 55%,var(--s-bg)),color-mix(in srgb,var(--s-accent2) 45%,var(--s-bg)))}
.ms-photo::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 10px,transparent 10px 20px)}
.ms-photo .pc{position:absolute;inset:0;display:grid;place-items:center}
.ms-photo span{position:relative;font-family:var(--f-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.35);color:#fff;white-space:nowrap}
.ms-hero .pc{padding:6px 4px}
.ms-kicker{display:inline-block;font-family:var(--f-mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--s-muted);margin-bottom:6px}
.ms-title{font-family:var(--f-display);font-weight:800;font-size:23px;line-height:1.05;letter-spacing:-.03em;margin-bottom:8px}
.ms-sub{color:var(--s-muted);font-size:11px;margin-bottom:12px}
.ms-btn{display:inline-flex;align-items:center;padding:9px 16px;border-radius:999px;background:var(--s-accent);color:var(--s-on);font-weight:800;font-size:11px;white-space:nowrap}
.ms-btn--sm{padding:6px 12px;font-size:10px}
.ms-card{border-radius:var(--r);background:var(--s-surface)}
.ms-card .pc{padding:12px 13px}
.ms-h{font-weight:800;font-size:12px;margin-bottom:8px}
.ms-svc li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:7px 0;border-top:1px solid color-mix(in srgb,var(--s-ink) 12%,transparent)}
.ms-svc li:first-child{border-top:0}
.ms-svc__n{font-weight:700}.ms-svc__d{color:var(--s-muted);font-size:10px}
.ms-svc__b{font-size:9.5px;font-weight:800;padding:4px 9px;border-radius:999px;border:1px solid var(--s-accent);color:var(--s-ink)}
.ms-hours li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;color:var(--s-muted)}
.ms-hours li span:first-child{color:var(--s-ink);font-weight:600}
.ms-map__svg{width:100%;height:70px;border-radius:10px;background:color-mix(in srgb,var(--s-ink) 6%,var(--s-surface));margin-bottom:8px}
.ms-map__svg .r1{fill:none;stroke:color-mix(in srgb,var(--s-ink) 30%,transparent);stroke-width:5}
.ms-map__svg .r2{fill:none;stroke:color-mix(in srgb,var(--s-ink) 16%,transparent);stroke-width:2.5}
.ms-map__svg .pin{fill:var(--s-accent);opacity:.3}.ms-map__svg .pin-c{fill:var(--s-accent)}
.ms-link{font-weight:800;color:var(--s-ink);text-decoration:underline;text-decoration-color:var(--s-accent);text-underline-offset:3px}
/* type styles */
.ms--serif .ms-title,.ms--serif .ms-logo,.ms--soft .ms-title{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.ms--serif .ms-title,.ms--soft .ms-title{font-size:27px;line-height:1.02}
.ms--serif .ms-logo{font-size:16px}
.ms--bold .ms-title,.ms--bold .ms-logo{text-transform:uppercase}
.ms--bold .ms-title{font-size:22px;letter-spacing:-.02em}
.ms--bold .ms-btn{border-radius:6px}
.ms--trade .ms-title{font-family:var(--f-body);font-weight:800;letter-spacing:-.025em}
.ms--trade .ms-btn,.ms--trade .ms-svc__b{border-radius:8px}
.ms--soft{--r:22px}

/* --- Phone arrangements --- */
.ms--phone.lay-barber{grid-template-areas:"status" "nav" "photo" "hero" "svc" "hours" "map" "foot"}
.ms--phone.lay-salon{grid-template-areas:"status" "nav" "hero" "photo" "svc" "hours" "map" "foot"}
.ms--phone.lay-plumber{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"status status" "nav nav" "hero hero" "hours hours" "svc svc" "map photo" "foot foot"}
.ms--phone.lay-roofer{grid-template-areas:"status" "nav" "photo" "hero" "hours" "svc" "map" "foot"}
.ms--phone.lay-nails{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"status status" "nav nav" "hero hero" "svc svc" "photo photo" "hours map" "foot foot"}
.ms--phone.lay-barber [data-piece="photo"]{min-height:150px}
.ms--phone.lay-roofer [data-piece="photo"]{min-height:210px;border-radius:0 0 var(--r) var(--r);margin:0 -12px}
.ms--phone.lay-plumber [data-piece="photo"]{min-height:0}
.ms--phone.lay-nails [data-piece="hours"] .ms-hours li{flex-direction:column;gap:0}
.ms--phone.lay-nails .ms-map__svg{height:54px}
/* --- Laptop arrangements --- */
.ms--laptop{font-size:11px;line-height:1.45;gap:12px;padding:0 22px 18px}
.ms--laptop .ms-nav{border-bottom:1px solid color-mix(in srgb,var(--s-ink) 10%,transparent)}
.ms--laptop .ms-nav .pc{padding:12px 0}
.ms-links{display:flex;gap:16px;margin-left:auto;margin-right:14px;color:var(--s-muted)}.ms-links i{font-style:normal;font-weight:600}
.ms--laptop .ms-hero .pc{padding:10px 0}
.ms--laptop .ms-title{font-size:30px}
.ms--laptop.ms--serif .ms-title,.ms--laptop.ms--soft .ms-title{font-size:36px}
.ms--laptop .ms-photo{min-height:150px}
.ms--laptop.lay-barber{grid-template-columns:1.2fr 1fr 1fr;grid-template-areas:"nav nav nav" "hero hero photo" "svc hours map"}
.ms--laptop.lay-salon{grid-template-columns:.9fr 1.1fr 1fr;grid-template-areas:"nav nav nav" "hero hero hero" "photo svc hours" "photo svc map"}
.ms--laptop.lay-plumber{grid-template-columns:1.25fr .75fr;grid-template-areas:"nav nav" "hero hours" "svc svc" "map photo"}
.ms--laptop.lay-roofer{grid-template-columns:.8fr 1.2fr;grid-template-areas:"nav nav" "photo hero" "photo svc" "hours map"}
.ms--laptop.lay-nails{grid-template-columns:1fr 1.3fr 1fr;grid-template-areas:"nav nav nav" "photo hero hero" "svc svc svc" "hours map map"}
.ms--laptop.lay-salon [data-piece="hero"] .pc{text-align:center;max-width:520px;margin-inline:auto}
.ms--laptop.lay-roofer [data-piece="photo"],.ms--laptop.lay-salon [data-piece="photo"]{min-height:0}
.ms--laptop.lay-nails [data-piece="photo"]{border-radius:999px 999px var(--r) var(--r);min-height:170px}
.ms--laptop.lay-plumber [data-piece="map"],.ms--laptop.lay-nails [data-piece="map"]{display:block}
.ms--laptop.lay-plumber .ms-map__svg{height:56px}
.ms--laptop.lay-plumber [data-piece="photo"]{min-height:0}
/* --- Per-business touches --- */
.lay-plumber [data-piece="hours"]{background:var(--s-accent);color:var(--s-on)}
.lay-plumber [data-piece="hours"] .ms-hours li,.lay-plumber [data-piece="hours"] .ms-hours li span:first-child{color:var(--s-on)}
.lay-plumber .ms-svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ms--laptop.lay-plumber .ms-svc{grid-template-columns:repeat(4,minmax(0,1fr))}
.lay-plumber .ms-svc li{grid-template-columns:1fr;gap:3px;padding:9px 10px;border:0;border-radius:8px;background:color-mix(in srgb,var(--s-ink) 6%,transparent)}
.lay-plumber .ms-svc__b{justify-self:start}
.lay-nails .ms-svc{display:flex;flex-wrap:wrap;gap:6px}
.lay-nails .ms-svc li{display:inline-flex;gap:6px;padding:6px 11px;border:1px solid color-mix(in srgb,var(--s-accent) 40%,transparent);border-radius:999px}
.lay-nails .ms-svc__b{display:none}
.lay-roofer .ms-nav .pc{border-bottom:1px solid color-mix(in srgb,var(--s-accent2) 50%,transparent)}
.lay-roofer .ms-kicker{color:var(--s-accent2)}
.lay-salon [data-piece="hero"] .pc{text-align:center}
/* ---------- HOW IT WORKS (v2: three calm steps) ---------- */
.how{position:relative;padding:clamp(80px,10vw,140px) 0 clamp(70px,9vw,120px)}
.steps3{display:grid;gap:14px;margin-top:clamp(32px,4vw,56px);counter-reset:s}
.s3{position:relative;padding:clamp(22px,2.6vw,32px);border-radius:24px;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line)}
.s3__num{display:inline-grid;place-items:center;width:44px;height:44px;margin-bottom:18px;border-radius:50%;background:rgba(92,240,122,.1);border:1px solid rgba(92,240,122,.4);color:var(--mint);letter-spacing:.04em}
.s3__title{font-family:var(--f-display);font-weight:800;font-size:var(--fs-h3);letter-spacing:-.025em;line-height:1.15;margin-bottom:10px;max-width:18ch}
.s3 p{color:var(--sage);max-width:36ch}
@media (min-width:860px){.steps3{grid-template-columns:repeat(3,1fr)}}
.how__cost{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:22px;padding:16px 20px;border-radius:18px;border:1px dashed var(--line-2);color:var(--paper);font-weight:600}
.how__cost a{color:var(--mint);text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px}

/* ---------- SHOWCASE ---------- */
.showcase{position:relative;padding:clamp(90px,12vw,170px) 0 clamp(80px,9vw,130px);overflow:clip;--s-bg:#0f0f0f;--s-accent:#c8372d;--s-accent2:#5b8fd6;transition:--s-bg .9s var(--ease),--s-accent .9s var(--ease),--s-accent2 .9s var(--ease)}
.showcase__bg{position:absolute;inset:0;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);background:linear-gradient(180deg,var(--ink) 0%,color-mix(in srgb,var(--s-bg) 55%,var(--ink)) 45%,var(--ink) 100%)}
.showcase__bg i{position:absolute;border-radius:50%;width:60vmax;height:60vmax}
.showcase__bg i:first-child{left:-20vmax;top:10%;background:radial-gradient(closest-side,color-mix(in srgb,var(--s-accent) 45%,transparent),transparent)}
.showcase__bg i:last-child{right:-25vmax;bottom:-10%;background:radial-gradient(closest-side,color-mix(in srgb,var(--s-accent2) 35%,transparent),transparent)}
.showcase__head{position:relative;display:grid;gap:4px;justify-items:start}
.showcase__head .lede{margin-top:18px}
.showcase .display em{color:var(--s-accent2);transition:color .9s var(--ease)}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.pill{min-height:46px;padding:0 20px;border-radius:999px;border:1px solid var(--line-2);background:rgba(246,247,243,.04);color:var(--sage);font-weight:600;font-size:.95rem;transition:background-color .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease),transform .4s var(--ease)}
.pill:hover{color:var(--paper);border-color:rgba(246,247,243,.35)}
.pill[aria-selected="true"]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.devices{position:relative;display:grid;place-items:center;margin-top:clamp(40px,6vw,80px);min-height:420px}
.laptop{position:relative;width:min(100%,860px);margin-right:clamp(0px,12vw,200px);transform:translate3d(0,var(--fy1,0px),0)}
.laptop__lid{position:relative;padding:2.2% 2.2% 3%;border-radius:22px 22px 6px 6px;background:linear-gradient(160deg,#2b332f,#0d1110);box-shadow:0 0 0 1px rgba(246,247,243,.12) inset,0 60px 120px -40px rgba(0,0,0,.95)}
.laptop__cam{position:absolute;top:.9%;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#000}
.laptop__screen{position:relative;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--s-bg);display:flex;flex-direction:column}
.laptop__base{height:18px;margin:0 -6%;border-radius:0 0 18px 18px;background:linear-gradient(180deg,#3a433e,#151a18);box-shadow:0 30px 60px -20px rgba(0,0,0,.9)}
.laptop__base::before{content:"";display:block;width:16%;height:6px;margin:0 auto;border-radius:0 0 8px 8px;background:#0b0e0d}
.browser-bar{flex:none;display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;background:#e8e8e3;color:#333;font-size:11px}
.browser-bar i{width:9px;height:9px;border-radius:50%;background:#c9c9c2}
.browser-bar span{margin-left:12px;flex:1;max-width:280px;padding:3px 12px;border-radius:6px;background:#fff;font-family:var(--f-mono);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.screen-layer{position:relative;flex:1;min-height:0;overflow:hidden;display:block}
.screen-layer>.ms{grid-area:1/1}
.phone--show{--pw:clamp(170px,22vw,250px);position:absolute;right:max(var(--gutter),calc(50% - 600px));bottom:-40px;z-index:2;transform:translate3d(0,var(--fy2,0px),0)}
.phone--show .phone__screen{display:flex;flex-direction:column}
.phone--show .ms--phone{font-size:10px}
.tag--devices{position:absolute;left:var(--gutter);top:-16px;z-index:3}
.screen-layer>.ms.is-entering{animation:wipeIn .9s var(--ease) both}
@keyframes wipeIn{from{clip-path:inset(0 0 100% 0 round 0 0 24px 24px);transform:translate3d(0,24px,0)}to{clip-path:inset(0 0 0 0 round 0);transform:none}}
@media (max-width:759px){
  .devices{min-height:0;padding-bottom:20px}
  .laptop{width:100%;margin-right:0}
  .phone--show{--pw:clamp(130px,36vw,190px);right:var(--gutter);bottom:-26px}
  .tag--devices{position:static;order:-1;justify-self:start;margin-bottom:14px}
  .devices{display:flex;flex-direction:column;align-items:stretch}
}

/* ---------- BOOKING DEMO ---------- */
.booking{position:relative;padding:clamp(70px,8vw,120px) 0}
.booking__copy .lede{margin-top:18px}
.booking__grid{display:grid;gap:56px;align-items:center}
.benefits{display:grid;gap:22px;margin-top:clamp(28px,4vw,44px)}
.benefits li{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline;padding-top:20px;border-top:1px solid var(--line)}
.benefits .mono{color:var(--emerald-l)}
.benefits p{color:var(--sage);font-size:var(--fs-lede);line-height:1.45;max-width:36ch}
.benefits strong{color:var(--paper);font-weight:700}
.booking__hint{margin-top:28px;font-size:var(--fs-small);color:var(--muted)}
.booking__device{justify-self:center;position:relative}
.booking__device::before{content:"";position:absolute;inset:-10% -40%;z-index:-1;background:radial-gradient(closest-side,rgba(43,189,101,.28),transparent)}
.phone--demo{--pw:clamp(280px,80vw,340px)}
.phone--demo .tag--float{top:-14px;left:28px;transform:rotate(-3deg)}
@media (min-width:960px){.booking__grid{grid-template-columns:1.1fr .9fr}.booking__device{justify-self:end;margin-right:4%}}
/* booking UI */
.bk{display:flex;flex-direction:column;background:radial-gradient(140% 50% at 50% 0%,#3b1714 0%,#141010 45%,#0d0d0d 100%);color:#f1ebe0;font-size:13.5px;padding:0}
.bk__top{display:flex;align-items:center;gap:8px;padding:0 16px 8px;min-height:56px;margin-top:-22px;position:relative}
.bk__back{width:44px;height:44px;margin-left:-8px;border-radius:50%;display:grid;place-items:center;color:#f1ebe0}
.bk__back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bk__biz{display:flex;align-items:center;gap:10px;line-height:1.2}
.bk__biz small{display:block;color:#b9b1a3;font-size:11px}
.bk__logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#e04a3d,#a5261d);color:#fff;font-family:var(--f-display);font-weight:800;font-size:18px;box-shadow:0 0 0 3px #141010,0 10px 24px -8px rgba(200,55,45,.8)}
.bk__biz strong{display:block;margin-top:18px}
.bk__hero{position:relative;flex:none;height:118px;display:grid;place-items:end center;padding-bottom:30px;background:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 10px,transparent 10px 20px),linear-gradient(135deg,#7a2a24,#2b3f63)}
.bk__hero span{font-family:var(--f-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.35);color:#fff}
.bk__hero::after{content:"";position:absolute;inset:auto 0 0;height:40px;background:linear-gradient(transparent,#1a1111)}
.bk__steps{display:flex;gap:6px;padding:0 16px 12px;counter-reset:s}
.bk__steps li{flex:1;font-size:10.5px;color:#8f877b;padding-top:8px;border-top:3px solid rgba(255,255,255,.08);border-radius:2px;transition:border-color .5s var(--ease),color .5s var(--ease)}
.bk__steps li.is-on{border-color:#c8372d;color:#f1ebe0}
.bk__views{position:relative;flex:1;min-height:0;display:grid}
.bk__view{grid-area:1/1;padding:6px 16px 20px;overflow:auto;display:flex;flex-direction:column}
html.motion .bk__view.is-on{animation:bkIn .55s var(--ease) both}
html.motion .bk__view.is-back{animation:bkBack .55s var(--ease) both}
@keyframes bkIn{from{opacity:0;transform:translate3d(28px,0,0)}to{opacity:1;transform:none}}
@keyframes bkBack{from{opacity:0;transform:translate3d(-28px,0,0)}to{opacity:1;transform:none}}
.bk__h{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.02em;margin-bottom:12px}
.bk__h--sm{font-size:14px;margin:16px 0 10px}
.bk__list{display:grid;gap:8px}
.bk__opt{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0 16px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 20px -14px rgba(0,0,0,.9);text-align:left;font-weight:700;transition:border-color .3s var(--ease),background-color .3s var(--ease),transform .3s var(--ease)}
.bk__opt small{color:#b9b1a3;font-weight:500}
.bk__opt:hover{border-color:#4a4a4a}
.bk__opt[aria-checked="true"]{border-color:#e04a3d;background:linear-gradient(135deg,rgba(200,55,45,.45),rgba(200,55,45,.15));box-shadow:0 10px 26px -12px rgba(200,55,45,.8)}
.bk:not(.is-used) .bk__opt:first-child::after{content:"";position:absolute;right:58px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 0 0 0 rgba(255,255,255,.6);animation:tapPulse 1.6s var(--ease) infinite}
@keyframes tapPulse{0%{transform:scale(.7);box-shadow:0 0 0 0 rgba(255,255,255,.55)}60%{transform:scale(1);box-shadow:0 0 0 14px rgba(255,255,255,0)}100%{transform:scale(.7)}}
.bk__days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.bk__day{display:grid;justify-items:center;gap:1px;min-height:58px;padding:7px 0;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.08);font-size:11px;color:#b9b1a3;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.bk__day b{font-size:17px;color:#f1ebe0;font-family:var(--f-display)}
.bk__day[aria-checked="true"]{background:linear-gradient(160deg,#e04a3d,#a5261d);border-color:#e04a3d;color:#fff;box-shadow:0 10px 22px -10px rgba(200,55,45,.9)}
.bk__day[aria-checked="true"] b{color:#fff}
.bk__times{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.bk__time{min-height:44px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-weight:700;font-size:12.5px;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.bk__time:disabled{opacity:.45;text-decoration:line-through;cursor:not-allowed}
.bk__time[aria-checked="true"]{background:#f1ebe0;color:#0f0f0f;border-color:#f1ebe0}
.bk__next,.bk__again{margin-top:auto;min-height:50px;border-radius:999px;background:linear-gradient(180deg,#e04a3d,#b52c22);box-shadow:0 12px 26px -12px rgba(200,55,45,.9);color:#fff;font-weight:800;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.bk__view[data-view="2"] .bk__next{margin-top:16px}
.bk__next:disabled{opacity:.4;cursor:not-allowed}
.bk__sum{display:grid;gap:0;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.08);padding:4px 14px;margin-bottom:14px}
.bk__sum div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #2a2a2a}
.bk__sum div:first-child{border-top:0}
.bk__sum dt{color:#b9b1a3}.bk__sum dd{font-weight:700;text-align:right}
.bk__field{display:grid;gap:6px;margin-bottom:14px;font-size:12px;color:#b9b1a3}
.bk__field input{min-height:46px;padding:0 14px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:#f1ebe0;font-size:16px}
.bk__field input:focus{outline:none;border-color:#c8372d}
.bk__fine{margin-top:10px;text-align:center;font-size:11px;color:#b9b1a3}
.bk__done{align-items:center;justify-content:center;text-align:center;gap:6px}
.bk__done-text{color:#b9b1a3;max-width:24ch;margin-bottom:18px}
.bk__again{margin-top:0;padding:0 26px;background:transparent;border:1px solid #4a4a4a}
.bk__tick{width:64px;height:64px;margin-bottom:12px}
.bk__tick circle{fill:none;stroke:var(--mint);stroke-width:2.5;stroke-dasharray:145;stroke-dashoffset:145}
.bk__tick path{fill:none;stroke:var(--mint);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40}
.is-on>.bk__tick circle,.drawer__done:not([hidden]) .bk__tick circle{animation:dash .7s var(--ease) forwards}
.is-on>.bk__tick path,.drawer__done:not([hidden]) .bk__tick path{animation:dash .45s var(--ease) .45s forwards}
html:not(.motion) .bk__tick circle,html:not(.motion) .bk__tick path{stroke-dashoffset:0;animation:none!important}
@keyframes dash{to{stroke-dashoffset:0}}

/* ---------- LIGHT SECTION: what you get ---------- */
.light{position:relative;color:var(--paper-ink);padding:clamp(80px,10vw,140px) 0}
.light__bg{position:absolute;inset:0;background:var(--paper)}
.light__inner{position:relative}
.light .display em{color:var(--emerald-d)}
.light__head{margin-bottom:clamp(36px,5vw,64px)}

/* Bento cards with small diagrams (restored from v1; the scroll-driven wipe stays off) */
.bento{display:grid;gap:14px;grid-template-columns:1fr;grid-auto-flow:row dense}
.card{--mx:50%;--my:50%;position:relative;padding:22px 22px 26px;border-radius:24px;background:#fff;border:1px solid rgba(16,38,26,.1);box-shadow:0 1px 0 rgba(16,38,26,.04),0 20px 40px -30px rgba(16,38,26,.35);isolation:isolate;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.card::before{/* cursor-following gradient border */content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;background:radial-gradient(240px circle at var(--mx) var(--my),var(--emerald) 0%,rgba(19,164,90,.25) 40%,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(300px circle at var(--mx) var(--my),rgba(43,189,101,.08),transparent 60%);opacity:0;transition:opacity .4s var(--ease);z-index:-1}
@media (hover:hover) and (pointer:fine){
  .card:hover{transform:translateY(-4px);box-shadow:0 1px 0 rgba(16,38,26,.04),0 30px 60px -30px rgba(16,38,26,.45)}
  .card:hover::before,.card:hover::after{opacity:1}
}
.card h3{font-family:var(--f-display);font-weight:800;font-size:clamp(1.12rem,1rem + .5vw,1.4rem);letter-spacing:-.025em;line-height:1.15;margin-bottom:8px}
.card p{color:#3c5547;font-size:var(--fs-small);line-height:1.55;max-width:40ch}
.card__art{height:110px;margin-bottom:20px;border-radius:16px;background:#eef1ea;position:relative;overflow:hidden;display:grid;place-items:center}
@media (min-width:640px){.bento{grid-template-columns:repeat(2,1fr)}.card--wide{grid-column:span 2}}
@media (min-width:1080px){.bento{grid-template-columns:repeat(4,1fr)}.card--wide{grid-column:span 2}}
/* card art */
.art-mobile{gap:12px;grid-auto-flow:column}
.am-phone{width:54px;height:92px;border-radius:12px;background:#10261a;padding:10px 7px;display:grid;align-content:start;gap:5px;transform:translateY(16px)}
.am-phone i{height:6px;border-radius:3px;background:rgba(246,247,243,.25)}.am-phone i:first-child{height:22px;background:linear-gradient(135deg,#2bbd65,#0c5a34)}
.am-phone b{height:12px;border-radius:6px;background:var(--mint);margin-top:4px}
.am-phone--2{transform:translateY(30px) rotate(6deg);background:#1a3225}
.art-cal .ac-grid{display:grid;grid-template-columns:repeat(7,16px);gap:6px}
.ac-grid i{height:16px;border-radius:5px;background:#dfe6dc}.ac-grid i.on{background:var(--emerald);box-shadow:0 0 0 4px rgba(19,164,90,.18)}
html.motion .ac-grid i.on{animation:calPick 4s var(--ease) infinite}
@keyframes calPick{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
.art-speed svg{width:150px}
.sp-track{fill:none;stroke:#dfe6dc;stroke-width:10;stroke-linecap:round}
.sp-fill{fill:none;stroke:var(--emerald);stroke-width:10;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:.12}
html.motion .sp-fill{stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) .3s}
html.motion .is-in .sp-fill{stroke-dashoffset:.12}
.art-pin svg{width:56px;fill:#10261a;stroke:none}
.art-pin .ok{fill:none;stroke:var(--mint);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
.art-domain span{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#fff;border:1px solid rgba(16,38,26,.15);font-weight:700;font-size:14px;color:#10261a}
.art-domain i{width:12px;height:12px;border-radius:3px;border:2px solid var(--emerald)}
.art-map{padding:0}
.art-map svg{width:100%;height:100%}
.art-map .m1{fill:none;stroke:#fff;stroke-width:9}.art-map .m2{fill:none;stroke:#fff;stroke-width:4}
.art-map .mp{fill:rgba(19,164,90,.25)}.art-map .mc{fill:var(--emerald-d)}
html.motion .art-map .mp{animation:mapPing 2.4s var(--ease) infinite;transform-origin:118px 46px}
@keyframes mapPing{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.2);opacity:0}}
.art-edit{grid-auto-flow:column;gap:10px}
.ae-tag{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid rgba(16,38,26,.12);font-family:var(--f-display);font-weight:800;font-size:16px;letter-spacing:-.02em;color:#10261a;box-shadow:0 8px 20px -14px rgba(16,38,26,.5)}
.ae-tag svg{width:18px;height:18px;fill:none;stroke:var(--emerald-d);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ae-ok{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#10261a;color:var(--mint);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.ae-ok svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.art-link{grid-auto-flow:column;gap:14px;padding:0 16px}
.al-btn{padding:10px 16px;border-radius:999px;background:var(--emerald-d);color:#fff;font-weight:800;font-size:13px;white-space:nowrap}
.art-link svg{width:54px;fill:none;stroke:#2d5a41;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.al-dest{display:grid;gap:5px}
.al-dest i{font-style:normal;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:8px;background:#fff;color:#2d5a41;border:1px solid rgba(16,38,26,.1);white-space:nowrap}
.art-costs span{display:grid;gap:6px;width:72%}
.art-costs i{font-style:normal;display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:8px;background:#fff;color:#2d5a41}
.art-costs i:last-child{background:#10261a;color:var(--mint)}

/* ---------- PRICING ---------- */
.pricing{position:relative;padding:clamp(80px,10vw,140px) 0}
.pricing__head{display:grid;justify-items:center;text-align:center;margin-bottom:clamp(40px,5vw,64px)}
.pricing__head .h2{margin-inline:auto}
.pricing__head .lede{margin-top:16px}
.plans{display:grid;gap:18px;max-width:960px;margin-inline:auto}
@media (min-width:820px){.plans{grid-template-columns:1fr 1fr}}
.plan{position:relative;display:flex;flex-direction:column;padding:clamp(26px,3vw,40px);border-radius:28px;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);overflow:hidden;isolation:isolate}
.plan--featured{border-color:rgba(92,240,122,.45);box-shadow:0 0 0 1px rgba(92,240,122,.15),0 40px 100px -40px rgba(43,189,101,.6)}
.plan__glow{position:absolute;inset:-40% -20% auto;height:80%;z-index:-1;background:radial-gradient(closest-side,rgba(43,189,101,.35),transparent);opacity:0}
.plan--featured .plan__glow{opacity:1}
.plan__head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.plan__name{font-family:var(--f-display);font-weight:800;font-size:var(--fs-h3);letter-spacing:-.02em}
.plan__tag{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:999px;border:1px solid var(--line-2);color:var(--sage)}
.plan--featured .plan__tag{border-color:rgba(92,240,122,.5);color:var(--mint)}
.plan__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;font-family:var(--f-display);font-weight:800;letter-spacing:-.05em;line-height:1;margin-bottom:16px}
.plan__cur{font-size:clamp(1.8rem,1.4rem + 1.4vw,2.6rem);color:var(--sage)}
.plan__num{font-size:clamp(4rem,3rem + 4vw,6.6rem)}
.plan__once{white-space:nowrap;align-self:center;font-family:var(--f-mono);font-weight:400;font-size:var(--fs-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:10px}
.plan__blurb{color:var(--sage);margin-bottom:22px;max-width:36ch}
.plan__list{display:grid;gap:10px;margin-bottom:28px;padding-top:22px;border-top:1px solid var(--line)}
.plan__list li{display:flex;gap:10px;align-items:flex-start}
.plan__list svg{width:18px;height:18px;margin-top:3px;flex:none;fill:none;stroke:var(--mint);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.plan__cta{margin-top:auto}
.pricing__notes{display:grid;gap:12px;max-width:960px;margin:28px auto 0;padding:22px 24px;border-radius:20px;border:1px dashed var(--line-2)}
.pricing__notes p{display:grid;gap:4px;color:var(--sage)}
.pricing__notes .mono{color:var(--paper)}
@media (min-width:820px){.pricing__notes{grid-template-columns:1fr 1.6fr auto;align-items:center;gap:28px}}
.pricing__limited{display:flex!important;align-items:center;gap:10px;color:var(--paper)!important;font-weight:700;white-space:nowrap}

/* ---------- FAQ ---------- */
.faq{padding:clamp(80px,10vw,150px) 0;background:linear-gradient(180deg,var(--ink),var(--ink-2) 40%,var(--ink-2) 60%,var(--ink))}
.faq__grid{display:grid;gap:40px}
@media (min-width:960px){.faq__grid{grid-template-columns:.8fr 1.2fr;gap:80px}.faq__head{position:sticky;top:120px;align-self:start}}
.faq__head .lede{margin-top:18px}
.faq__list{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:18px 0;text-align:left;font-family:var(--f-display);font-weight:700;font-size:clamp(1.08rem,1rem + .5vw,1.45rem);letter-spacing:-.02em;line-height:1.25;transition:color .3s var(--ease)}
.faq__q button:hover{color:var(--mint)}
.faq__icon{position:relative;flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);transition:background-color .4s var(--ease),border-color .4s var(--ease),transform .5s var(--ease)}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.8px;margin:-.9px 0 0 -6px;border-radius:2px;background:currentColor;transition:transform .5s var(--ease)}
.faq__icon::after{transform:rotate(90deg)}
[aria-expanded="true"] .faq__icon{background:var(--mint);border-color:var(--mint);color:var(--ink);transform:rotate(180deg)}
[aria-expanded="true"] .faq__icon::after{transform:rotate(0)}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.faq__a>div{overflow:hidden}
.faq__a p{padding:0 56px 24px 0;color:var(--sage);font-size:var(--fs-lede);line-height:1.5;opacity:0;transform:translateY(-6px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.faq__item.is-open .faq__a{grid-template-rows:1fr}
.faq__item.is-open .faq__a p{opacity:1;transform:none;transition-delay:.1s}
html:not(.js) .faq__a{grid-template-rows:1fr}
html:not(.js) .faq__a p{opacity:1;transform:none}
html:not(.js) .faq__icon{display:none}

/* ---------- FINAL CTA ---------- */
.cta{position:relative;padding:clamp(110px,16vw,220px) 0;overflow:clip;text-align:center}
.cta__bg{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}
.cta__mark{position:absolute;width:min(110vmin,980px);opacity:.16;filter:drop-shadow(0 0 60px rgba(92,240,122,.35))}
.cta__glow{position:absolute;width:80vmax;height:80vmax;border-radius:50%;background:radial-gradient(closest-side,rgba(19,164,90,.35),transparent 70%)}
html.motion .cta__glow{animation:breathe 7s ease-in-out infinite alternate}
@keyframes breathe{from{transform:scale(.85);opacity:.7}to{transform:scale(1.1);opacity:1}}
.cta__inner{position:relative;display:grid;justify-items:center}
.cta__title{font-size:clamp(3rem,1.4rem + 8vw,10rem);max-width:10ch;margin-bottom:24px;text-wrap:balance}
.cta__title em{color:var(--mint);text-shadow:0 0 50px rgba(92,240,122,.45)}
.cta__inner .lede{margin-inline:auto;text-align:center}
.cta__actions{display:grid;justify-items:center;gap:18px;margin-top:40px}
.cta__mail{font-family:var(--f-mono);font-size:.95rem;letter-spacing:.04em;color:var(--paper);text-decoration:none;padding:12px 6px;border-bottom:1px solid var(--emerald)}
.cta__mail:hover{color:var(--mint)}

/* ---------- FOOTER ---------- */
.foot{border-top:1px solid var(--line);padding:56px 0 calc(32px + env(safe-area-inset-bottom));background:var(--ink)}
.foot__inner{display:grid;gap:36px}
.foot__brand{display:flex;gap:14px;align-items:center}
.foot__brand svg{width:44px;height:44px;flex:none}
.foot__name{font-family:var(--f-display);font-weight:800;font-size:1.3rem;letter-spacing:-.02em}
.foot__line{color:var(--sage);font-size:var(--fs-small)}
.foot__nav{display:flex;flex-wrap:wrap;gap:4px 8px}
.foot__nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;margin-left:-10px;color:var(--sage);text-decoration:none}
.foot__nav a:hover{color:var(--paper)}
.foot__base{display:grid;gap:6px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-small)}
.foot__base a{color:var(--sage);display:inline-block;padding:8px 0}
@media (min-width:900px){.foot__inner{grid-template-columns:1fr auto}.foot__base{grid-column:1/-1;grid-template-columns:1fr auto auto;gap:24px;align-items:center}}

/* ---------- BOOK A CHAT PAGE ---------- */
.drawer{position:fixed;inset:0;z-index:150}
.drawer__overlay{position:absolute;inset:0;background:rgba(2,4,3,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.drawer__panel{position:absolute;inset:clamp(12px,3vh,32px) clamp(12px,3vw,40px);max-width:1180px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;border-radius:30px;background:var(--ink-2);border:1px solid var(--line-2);box-shadow:0 60px 140px -40px rgba(0,0,0,.95),0 0 0 1px rgba(92,240,122,.06)}
.drawer__panel:focus{outline:none}
.drawer__grab{display:none}
.bp__top{flex:none;display:flex;align-items:center;justify-content:space-between;padding:14px 16px 14px 22px;border-bottom:1px solid var(--line)}
.bp__brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:800;letter-spacing:-.02em}
.bp__brand svg{width:28px;height:28px}
.drawer__close{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);background:rgba(246,247,243,.04);font-weight:600;font-size:.9rem}
.drawer__close:hover{background:rgba(246,247,243,.1)}
.drawer__close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.bp__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);overflow:hidden}
.bp__side{position:relative;overflow:auto;padding:clamp(28px,4vw,56px);background:radial-gradient(600px 400px at 0% 0%,rgba(43,189,101,.28),transparent 70%),radial-gradient(500px 400px at 100% 100%,rgba(12,90,52,.5),transparent 70%),var(--surface);border-right:1px solid var(--line)}
.bp__side::after{content:"";position:absolute;right:-60px;bottom:-60px;width:280px;height:280px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M82.7 20.56A44 44 0 1 0 82.7 79.44L67.83 66.06A24 24 0 1 1 67.83 33.94Z' fill='%235cf07a' opacity='.07'/%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none}
.bp__main{overflow:auto;padding:clamp(24px,3.6vw,52px)}
.drawer__title{font-size:clamp(1.9rem,1.3rem + 2vw,3.2rem);margin-bottom:14px;max-width:14ch}
.drawer__title:focus{outline:none}
.drawer__lede{color:var(--sage);margin-bottom:24px;max-width:40ch;font-size:var(--fs-lede);line-height:1.45}
.bp__preview{display:flex;align-items:center;gap:14px;margin-bottom:26px;padding:14px 16px;border-radius:18px;background:rgba(5,7,6,.45);border:1px solid var(--line-2);max-width:420px}
.bp__preview-dot{flex:none;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--pv-accent,#c8372d),var(--pv-bg,#0f0f0f));box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.bp__preview small{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage)}
.bp__preview strong{display:block;font-size:1.05rem}
.bp__preview em{font-style:normal;color:var(--sage);font-size:.85rem}
.bp__steps{display:grid;gap:16px;margin-bottom:26px;counter-reset:s}
.bp__steps li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.bp__steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(92,240,122,.12);border:1px solid rgba(92,240,122,.4);color:var(--mint);font-family:var(--f-mono);font-size:.85rem}
.bp__steps span{color:var(--sage);font-size:.95rem;line-height:1.45}
.bp__steps strong{display:block;color:var(--paper);font-size:1rem}
.bp__facts{display:flex;flex-wrap:wrap;gap:8px}
.bp__facts li{padding:8px 13px;border-radius:999px;border:1px solid var(--line-2);font-size:.85rem;color:var(--paper);background:rgba(5,7,6,.3)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:rgba(240,180,92,.08);border:1px solid rgba(240,180,92,.3);color:#f6d9a8;font-size:var(--fs-small);margin-bottom:22px}
.notice svg{width:18px;height:18px;flex:none;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.notice strong{color:#ffe2b3}
.notice--strong{font-size:var(--fs-body)}
.form{display:grid;gap:16px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:grid;gap:7px;font-size:var(--fs-small);font-weight:600;color:var(--sage);min-width:0}
.field i{font-style:normal;font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:0 16px;border-radius:14px;background:rgba(5,7,6,.6);border:1px solid var(--line-2);font-size:16px;color:var(--paper);transition:border-color .3s var(--ease),box-shadow .3s var(--ease);-webkit-appearance:none;appearance:none}
.field textarea{padding:14px 16px;min-height:96px;resize:vertical;font-family:var(--f-body);line-height:1.45}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 8l5 5 5-5' fill='none' stroke='%239fbfab' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:44px}
.field select option{background:#0e1511;color:var(--paper)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 4px rgba(92,240,122,.15)}
.field input[aria-invalid="true"]{border-color:#e96a4a}
.chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips legend{width:100%;margin-bottom:7px;padding:0}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);color:var(--sage);font-weight:600;cursor:pointer;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.chips input:checked+span{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.chips input:focus-visible+span{outline:2px solid var(--mint);outline-offset:3px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__err{min-height:1.2em;color:#ff9b7a;font-size:var(--fs-small)}
.form__fine{font-size:.8rem;color:var(--muted);text-align:center}
.btn.is-busy{opacity:.7;pointer-events:none}
.drawer__done{display:grid;gap:14px;justify-items:start;max-width:460px}
.drawer__done .bk__tick{width:72px;height:72px}
.drawer__done .btn{width:100%}
html.motion .drawer{visibility:hidden;transition:visibility 0s .5s}
html.motion .drawer.is-open{visibility:visible;transition:none}
html.motion .drawer__overlay{opacity:0;transition:opacity .45s var(--ease)}
html.motion .drawer.is-open .drawer__overlay{opacity:1}
html.motion .drawer__panel{opacity:0;transform:translate3d(0,28px,0) scale(.985);transition:opacity .45s var(--ease),transform .6s var(--ease)}
html.motion .drawer.is-open .drawer__panel{opacity:1;transform:none}
html.motion .drawer.is-open .bp__steps li{animation:stepIn .6s var(--ease) both}
html.motion .drawer.is-open .bp__steps li:nth-child(2){animation-delay:.08s}
html.motion .drawer.is-open .bp__steps li:nth-child(3){animation-delay:.16s}
@keyframes stepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:859px){
  .drawer__panel{inset:0;border-radius:0;border:0}
  .bp__grid{display:block;overflow:auto}
  .bp__side,.bp__main{overflow:visible}
  .bp__side{border-right:0;border-bottom:1px solid var(--line);padding:24px var(--gutter) 22px}
  .bp__main{padding:24px var(--gutter) calc(32px + env(safe-area-inset-bottom))}
  .bp__steps{gap:12px;margin-bottom:18px}
  .bp__top{padding:10px 10px 10px var(--gutter)}
  .drawer__title{font-size:clamp(1.7rem,1.2rem + 3vw,2.3rem)}
}
@media (max-width:520px){.form__row{grid-template-columns:1fr}}
body.is-locked{overflow:hidden}

/* ---------- Reduced motion safety ---------- */
/* Calm version keeps soft colour and opacity fades but no looping or moving animation */
html:not(.motion) *,html:not(.motion) *::before,html:not(.motion) *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}


/* ---------- Round 4 additions ---------- */
/* Syne 800 draws "g" with a flat, clipped-looking tail; a touch lighter gives it a full one */
.gfix{font-weight:720}

/* "Try it" prompt */
.tryme{position:relative;display:inline-flex;align-items:center;gap:12px;padding:12px 18px 12px 14px;border-radius:999px;background:rgba(92,240,122,.09);border:1px solid rgba(92,240,122,.35);color:var(--paper);font-size:var(--fs-small);line-height:1.35;box-shadow:0 0 40px -18px rgba(92,240,122,.7)}
.tryme strong{color:var(--mint)}
.tryme svg{position:relative;z-index:1;width:24px;height:24px;flex:none;fill:none;stroke:var(--mint);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tryme__ring{position:absolute;left:14px;top:50%;width:24px;height:24px;margin-top:-12px;border-radius:50%;border:2px solid var(--mint);opacity:0}
html.motion .tryme__ring{animation:tryRing 2s var(--ease) infinite}
html.motion .tryme svg{animation:tryTap 2s var(--ease) infinite}
@keyframes tryRing{0%{transform:scale(.6);opacity:.9}70%,100%{transform:scale(1.9);opacity:0}}
@keyframes tryTap{0%,100%{transform:none}15%{transform:translateY(2px) scale(.92)}30%{transform:none}}
.tryme--booking{margin-top:28px}

/* Device bar: hint + view toggle */
.devbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:clamp(28px,4vw,48px)}
.viewtoggle{display:inline-flex;padding:4px;border-radius:999px;background:rgba(246,247,243,.06);border:1px solid var(--line-2)}
.viewtoggle button{min-height:44px;min-width:44px;padding:0 16px;border-radius:999px;color:var(--sage);font-weight:600;font-size:.92rem;transition:background-color .4s var(--ease),color .4s var(--ease)}
.viewtoggle button[aria-pressed="true"]{background:var(--paper);color:var(--ink)}
.devices{margin-top:clamp(28px,4vw,48px)}

/* View modes */
.devices[data-view="phone"] .laptop,.devices[data-view="laptop"] .phone--show{display:none}
.devices[data-view="phone"]{display:flex;flex-direction:column;align-items:center}
.devices[data-view="phone"] .phone--show{position:relative;right:auto;bottom:auto;--pw:clamp(250px,72vw,320px);margin:8px auto 0}
.devices[data-view="laptop"] .laptop{width:min(100%,1060px);margin:0 auto}
@media (max-width:899px){
  .devices[data-view="both"]{display:flex;flex-direction:column;align-items:center;gap:36px}
  .devices[data-view="both"] .laptop{width:calc(100% - 6%);margin:0 auto}
  .devices[data-view="both"] .phone--show{position:relative;right:auto;bottom:auto;--pw:clamp(220px,62vw,290px);margin:0 auto}
  .laptop__base{margin:0 -3%}
  .devbar{flex-direction:column;align-items:flex-start}
}
.devices .tag--devices{z-index:3}
.devices[data-view="phone"] .tag--devices,.devices[data-view="laptop"] .tag--devices{position:static;align-self:flex-start;margin-bottom:14px}

/* Scrollable, clickable mini sites */
.screen-layer{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.screen-layer::-webkit-scrollbar{display:none}
.ms button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
.ms .ms-btn{background:var(--s-accent);color:var(--s-on);padding:9px 16px;transition:transform .3s var(--ease),filter .3s var(--ease)}
.ms .ms-btn--sm{padding:6px 12px}
.ms .ms-btn:hover,.ms .ms-svc__b:hover{filter:brightness(1.12)}
.ms .ms-btn:active,.ms .ms-svc__b:active{transform:scale(.95)}
.ms .ms-svc__b{padding:4px 9px;border:1px solid var(--s-accent);border-radius:999px}
.ms--trade .ms-svc__b{border-radius:8px}
.ms .ms-link{text-decoration:underline;text-decoration-color:var(--s-accent);text-underline-offset:3px;font-weight:800}
.ms button:focus-visible{outline:2px solid var(--s-accent2);outline-offset:2px}
.devices:not(.is-used) .phone--show [data-piece="hero"] .ms-btn{animation:msPulse 1.8s var(--ease) infinite}
@keyframes msPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--s-accent) 70%,transparent)}70%,100%{box-shadow:0 0 0 12px transparent}}

/* In-device sheets (booking + directions) */
.ms-ov{position:absolute;left:0;right:0;bottom:0;top:var(--ov-top,0px);z-index:6;display:flex;flex-direction:column;justify-content:flex-end;background:color-mix(in srgb,#000 45%,transparent);font-family:var(--f-body);font-size:11px;line-height:1.4;animation:ovIn .35s var(--ease) both;overflow:hidden}
.ms-ov--laptop{justify-content:center;align-items:center}
.ms-ov.is-closing{animation:ovOut .3s var(--ease) both}
.ms-ov__sheet{background:var(--s-bg);color:var(--s-ink);border-radius:20px 20px 0 0;padding:14px 14px 16px;max-height:94%;overflow:auto;box-shadow:0 -20px 50px -20px rgba(0,0,0,.7);animation:sheetIn .45s var(--ease) both;scrollbar-width:none}
.ms-ov--laptop .ms-ov__sheet{width:380px;border-radius:18px;max-height:90%}
.ms-ov__head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.ms-ov__title{font-weight:800;font-size:14px}
.ms-ov__x{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--s-surface)!important;font-size:15px;line-height:1}
.ms-ov__label{font-family:var(--f-mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--s-muted);margin:10px 0 6px}
.ms-ov__list{display:grid;gap:6px}
.ms-ov__opt{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px!important;border-radius:12px;background:var(--s-surface)!important;border:1px solid transparent!important;font-weight:700;text-align:left;transition:border-color .25s var(--ease),background-color .25s var(--ease)}
.ms-ov__opt small{color:var(--s-muted);font-weight:500}
.ms-ov__opt[aria-pressed="true"]{border-color:var(--s-accent)!important;background:color-mix(in srgb,var(--s-accent) 22%,var(--s-surface))!important}
.ms-ov__days{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.ms-ov__days .ms-ov__opt{flex-direction:column;justify-content:center;padding:7px 0!important;text-align:center;font-size:10px}
.ms-ov__days .ms-ov__opt b{font-size:14px}
.ms-ov__times{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.ms-ov__times .ms-ov__opt{justify-content:center;padding:8px 0!important}
.ms-ov__go{display:flex;justify-content:center;width:100%;margin-top:12px;padding:11px!important;border-radius:999px;background:var(--s-accent)!important;color:var(--s-on)!important;font-weight:800;font-size:12px;transition:opacity .25s var(--ease)}
.ms-ov__go:disabled{opacity:.4;cursor:not-allowed}
.ms-ov__done{display:grid;justify-items:center;text-align:center;gap:6px;padding:10px 0 4px}
.ms-ov__done svg{width:48px;height:48px}
.ms-ov__done circle{fill:none;stroke:var(--s-accent);stroke-width:2.5;stroke-dasharray:145;stroke-dashoffset:145;animation:dash .7s var(--ease) forwards}
.ms-ov__done path{fill:none;stroke:var(--s-accent);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:dash .45s var(--ease) .4s forwards}
.ms-ov__done p{color:var(--s-muted)}
.ms-ov__done strong{font-size:14px}
.ms-ov__map{position:relative;border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--s-ink) 7%,var(--s-surface));margin-bottom:10px}
.ms-ov__map svg{display:block;width:100%;height:auto}
.ms-ov__map .road{fill:none;stroke:color-mix(in srgb,var(--s-ink) 18%,transparent);stroke-width:7;stroke-linecap:round}
.ms-ov__map .road2{fill:none;stroke:color-mix(in srgb,var(--s-ink) 10%,transparent);stroke-width:3.5}
.ms-ov__map .park{fill:color-mix(in srgb,#2bbd65 25%,transparent)}
.ms-ov__map .water{fill:color-mix(in srgb,#5b8fd6 30%,transparent)}
.ms-ov__map .route{fill:none;stroke:var(--s-accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:dash 1.4s var(--ease) .25s forwards}
.ms-ov__map .you{fill:#5b8fd6;stroke:#fff;stroke-width:2}
.ms-ov__map .dest{fill:var(--s-accent);stroke:#fff;stroke-width:2}
.ms-ov__map .lbl{font:700 8px var(--f-body);fill:var(--s-ink)}
.ms-ov__trip{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ms-ov__trip strong{font-size:13px;display:block}
.ms-ov__trip span{color:var(--s-muted)}
.ms-ov__demo{font-family:var(--f-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--s-muted);text-align:center;margin-top:10px}
@keyframes ovIn{from{opacity:0}to{opacity:1}}
@keyframes ovOut{to{opacity:0}}
@keyframes sheetIn{from{transform:translateY(40%);opacity:0}to{transform:none;opacity:1}}
.ms-ov button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer}

/* ---------- Round 5 ---------- */
/* Your business name */
.yourbiz{width:100%;max-width:760px;margin-top:26px;padding:16px;border-radius:22px;background:linear-gradient(180deg,rgba(246,247,243,.07),rgba(246,247,243,.03));border:1px solid var(--line-2)}
.yourbiz__label{color:var(--sage);font-size:var(--fs-small);margin-bottom:12px}
.yourbiz__label strong{color:var(--paper)}
.yourbiz__row{display:flex;flex-wrap:wrap;gap:10px}
.yourbiz input,.yourbiz select{flex:1 1 200px;min-width:0;min-height:48px;padding:0 16px;border-radius:14px;background:rgba(5,7,6,.65);border:1px solid var(--line-2);color:var(--paper);font-size:16px;-webkit-appearance:none;appearance:none}
.yourbiz select{flex:1 1 180px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 8l5 5 5-5' fill='none' stroke='%239fbfab' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:42px}
.yourbiz select option{background:#0e1511}
.yourbiz input:focus,.yourbiz select:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 4px rgba(92,240,122,.15)}
.yourbiz .btn{min-height:48px;flex:0 0 auto}
@media (max-width:599px){.yourbiz .btn{flex:1 1 100%}}

/* Colour swatches */
.devbar__tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.swatches{display:inline-flex;align-items:center;gap:2px;padding:2px 8px 2px 14px;border-radius:999px;background:rgba(246,247,243,.06);border:1px solid var(--line-2)}
.swatches__label{font-size:.85rem;color:var(--sage);margin-right:4px}
.swatch{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.swatch::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.swatch--orig::before{background:conic-gradient(#c8372d,#c2a55f,#13a45a,#2f6fd6,#7a2438,#c8372d)}
.swatch:hover::before{transform:scale(1.12)}
.swatch[aria-pressed="true"]::before{box-shadow:0 0 0 2px var(--ink),0 0 0 4px var(--paper)}
@media (max-width:599px){.swatches{padding:2px 6px}.swatches__label{display:none}.swatch{width:44px;height:44px}}

/* Preview CTA under the devices */
.previewcta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;margin-top:clamp(56px,7vw,90px);padding:clamp(22px,3vw,34px);border-radius:28px;background:radial-gradient(600px 240px at 0% 0%,color-mix(in srgb,var(--s-accent) 30%,transparent),transparent 70%),rgba(14,21,17,.75);border:1px solid var(--line-2);transition:background .9s var(--ease)}
.previewcta__title{font-family:var(--f-display);font-weight:800;font-size:clamp(1.3rem,1rem + 1.2vw,2.1rem);letter-spacing:-.025em;line-height:1.15;max-width:24ch;margin-bottom:8px}
.previewcta__title em{font-family:var(--f-serif);font-style:italic;font-weight:400;color:var(--mint)}
.previewcta__text{color:var(--sage);max-width:52ch}

/* Before / after slider */
.ba{position:relative;padding:clamp(60px,8vw,110px) 0 clamp(70px,9vw,130px)}
.ba .lede{margin-top:18px}
.ba__frame{--pos:50%;margin-top:clamp(32px,4vw,52px);border-radius:18px;overflow:hidden;background:#e8e8e3;box-shadow:0 0 0 1px rgba(246,247,243,.12),0 60px 120px -50px rgba(0,0,0,.95),0 30px 90px -50px rgba(43,189,101,.5)}
.ba__bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;color:#333}
.ba__bar i{width:10px;height:10px;border-radius:50%;background:#c9c9c2}
.ba__bar span{margin-left:12px;flex:0 1 320px;padding:4px 12px;border-radius:7px;background:#fff;font-family:var(--f-mono);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ba__stage{position:relative;height:clamp(420px,52vw,640px);overflow:hidden;touch-action:pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none}
.ba__old,.ba__new{position:absolute;inset:0;overflow:hidden}
.ba__new{clip-path:inset(0 0 0 var(--pos));background:#0f0f0f}
.ba__new>.ms{min-height:100%}
.ba__handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15),0 0 24px rgba(92,240,122,.8);pointer-events:none}
.ba__handle span{position:absolute;top:50%;left:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink);box-shadow:0 10px 30px -8px rgba(0,0,0,.6),0 0 0 6px rgba(92,240,122,.25)}
.ba__handle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ba__stage:focus-within .ba__handle span{box-shadow:0 0 0 3px var(--mint),0 10px 30px -8px rgba(0,0,0,.6)}
.ba__tag{position:absolute;top:14px;z-index:2;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;border-radius:999px;pointer-events:none}
.ba__tag--old{left:14px;background:#fff200;color:#000;border:2px solid #000}
.ba__tag--new{right:14px;background:rgba(5,7,6,.85);color:var(--mint);border:1px solid rgba(92,240,122,.5)}
.ba__range{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize;pointer-events:none}
.ba__range:focus-visible{outline:none}
/* The deliberately dated "before" site (fictional) */
.old{min-height:100%;padding:14px 18px 20px;background:#e0f0ff repeating-conic-gradient(#d6e9fb 0 25%,#eaf5ff 0 50%) 0 0/28px 28px;color:#000080;font:14px/1.35 "Times New Roman",Times,serif}
.old__construction{display:inline-block;padding:4px 12px;background:repeating-linear-gradient(45deg,#ffd400 0 12px,#111 12px 24px);color:#fff;font:bold 12px Arial,sans-serif;text-shadow:1px 1px 0 #000;letter-spacing:1px}
.old__title{margin:10px 0 6px;font:bold clamp(22px,3.2vw,36px)/1.1 "Comic Sans MS","Comic Sans","Chalkboard SE",cursive;color:#d40000;text-shadow:2px 2px 0 #ffcc00;text-align:center}
.old__scroll{background:#000;color:#00ff00;font:bold 13px "Courier New",monospace;padding:4px 8px;white-space:nowrap;overflow:hidden}
.old__body{display:flex;gap:14px;margin-top:12px}
.old__nav{flex:0 0 130px;background:#fff;border:3px ridge #999;padding:8px}
.old__nav li{color:#0000ee;text-decoration:underline;font-size:13px;padding:2px 0}
.old__main{flex:1;min-width:0;background:#ffffe0;border:2px dashed #c00;padding:10px;font-size:12.5px;text-align:justify}
.old__main p{margin-bottom:8px}
.old__img{display:flex;align-items:center;gap:6px;width:160px;height:90px;float:right;margin:0 0 8px 10px;padding:6px;border:2px inset #aaa;background:#fff;font:11px Arial,sans-serif;color:#555;align-items:flex-start}
.old__img span{color:#c00;font-weight:bold}
.old__link{color:#0000ee;text-decoration:underline;font-weight:bold}
.old__counter b{font-family:"Courier New",monospace;background:#000;color:#ff0;padding:0 4px;letter-spacing:2px}
.old__foot{margin-top:12px;text-align:center;font-size:11px;color:#555;font-style:italic}
@media (max-width:599px){.old__body{flex-direction:column}.old__nav{flex:none;display:flex;flex-wrap:wrap;gap:4px 10px}.old__img{width:110px;height:70px}}

/* QR code (laptop / desktop only) */
.qr{display:none}
@media (min-width:900px) and (hover:hover){.qr:not([hidden]){display:flex}}
.qr{align-items:center;gap:18px;margin-top:48px;padding:14px 22px 14px 14px;border-radius:22px;background:rgba(14,21,17,.8);border:1px solid var(--line-2);text-align:left;max-width:420px}
.qr__code{flex:none;width:112px;height:112px;padding:8px;border-radius:14px;background:var(--paper)}
.qr__code svg{display:block;width:100%;height:100%}
.qr p{color:var(--sage);font-size:var(--fs-small)}
.qr strong{color:var(--paper);display:block;margin-bottom:2px}

/* ---------- Round 6: colour panel ---------- */
.colours{position:relative}
.colours__btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 10px 0 8px;border-radius:999px;background:rgba(246,247,243,.06);border:1px solid var(--line-2);color:var(--paper);font-weight:600;font-size:.92rem;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.colours__btn:hover,.colours__btn[aria-expanded="true"]{border-color:rgba(246,247,243,.4);background:rgba(246,247,243,.1)}
.colours__wheel{width:30px;height:30px;border-radius:50%;background:conic-gradient(#ff4d4d,#ffb84d,#f5f04d,#4df07a,#4dd8f0,#4d6cf0,#b04df0,#f04dbd,#ff4d4d);box-shadow:inset 0 0 0 3px rgba(5,7,6,.35)}
html.motion .colours__btn:not([aria-expanded="true"]) .colours__wheel{animation:spinWheel 8s linear infinite}
@keyframes spinWheel{to{transform:rotate(360deg)}}
.colours__now{display:inline-flex;padding:3px;border-radius:999px;background:rgba(5,7,6,.5)}
.colours__now i{width:18px;height:18px;border-radius:50%;background:var(--c,#333);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);transition:background-color .5s var(--ease)}
.colours__now i+i{margin-left:-6px}
.colours__panel{position:absolute;z-index:20;top:calc(100% + 10px);right:0;width:min(380px,calc(100vw - 2*var(--gutter)));padding:16px;border-radius:22px;background:rgba(14,21,17,.97);border:1px solid var(--line-2);box-shadow:0 30px 80px -20px rgba(0,0,0,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
html.motion .colours__panel:not([hidden]){animation:panelIn .35s var(--ease) both}
@keyframes panelIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
@media (max-width:899px){.colours__panel{left:0;right:auto}}
.colours__h{font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin:2px 0 10px}
.colours__h+*{margin-bottom:16px}
.colours__themes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.theme{display:grid;justify-items:center;gap:5px;min-height:64px;padding:8px 2px 6px;border-radius:14px;border:1px solid transparent;font-size:.72rem;color:var(--sage);transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.theme:hover{background:rgba(246,247,243,.06)}
.theme[aria-pressed="true"]{border-color:var(--paper);color:var(--paper);background:rgba(246,247,243,.08)}
.theme__dot{position:relative;width:32px;height:32px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.theme__dot::after{content:"";position:absolute;right:-2px;bottom:-2px;width:15px;height:15px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 2px rgba(14,21,17,.97)}
.theme--orig .theme__dot{background:conic-gradient(#0f0f0f 0 25%,#f4f0e8 0 50%,#141a20 0 75%,#f6dcd6 0)}
.theme--orig .theme__dot::after{background:conic-gradient(#c8372d,#c2a55f,#c46a2b,#7a2438,#c8372d)}
.colours__custom{display:grid;gap:8px}
.colorfield{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 12px 6px 6px;border-radius:14px;background:rgba(5,7,6,.55);border:1px solid var(--line-2);cursor:pointer}
.colorfield:hover{border-color:rgba(246,247,243,.35)}
.colorfield input{flex:none;width:42px;height:42px;padding:0;border:0;border-radius:10px;background:none;cursor:pointer}
.colorfield input::-webkit-color-swatch-wrapper{padding:0}
.colorfield input::-webkit-color-swatch{border:none;border-radius:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.colorfield input::-moz-color-swatch{border:none;border-radius:10px}
.colorfield strong{display:block;font-size:.92rem}
.colorfield small{font-family:var(--f-mono);font-size:.75rem;color:var(--sage)}
.colorfield:focus-within{border-color:var(--mint)}
.colours__note{font-size:.8rem;color:var(--muted);margin:8px 2px 12px}
.colours__reset{width:100%;min-height:44px;border-radius:999px;border:1px solid var(--line-2);color:var(--sage);font-weight:600;font-size:.88rem}
.colours__reset:hover{color:var(--paper);border-color:rgba(246,247,243,.4)}
.ms.is-live{transition-duration:.12s!important}
.bp__ref{font-family:var(--f-mono);font-size:.85rem;color:var(--sage)}
.bp__ref strong{color:var(--paper);letter-spacing:.06em}
.turnstile{min-height:65px}

/* ---------- Launch changes ---------- */
.ba__label{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:8px 14px;border-radius:999px;background:rgba(246,247,243,.06);border:1px solid var(--line-2);font-size:var(--fs-small);color:var(--paper)}
.ba__label strong{color:var(--mint)}
.ba__drag{position:absolute;top:calc(50% + 34px);left:50%;transform:translateX(-50%);padding:4px 10px;border-radius:999px;background:var(--paper);color:var(--ink);font:700 11px var(--f-body);font-style:normal;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 6px 16px -6px rgba(0,0,0,.6);white-space:nowrap}
.plan__deposit{font-weight:700;color:var(--paper);margin:-6px 0 10px}
.plan--featured .plan__deposit{color:var(--mint)}
.bp__next{width:100%;padding:16px 18px;border-radius:18px;background:rgba(246,247,243,.05);border:1px solid var(--line-2)}
.bp__next h3{font-family:var(--f-display);font-weight:800;font-size:1.05rem;letter-spacing:-.02em;margin-bottom:10px}
.bp__next ol{display:grid;gap:8px;counter-reset:n}
.bp__next li{position:relative;padding-left:32px;color:var(--sage);font-size:.95rem;line-height:1.4}
.bp__next li::before{counter-increment:n;content:counter(n);position:absolute;left:0;top:-1px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(92,240,122,.12);border:1px solid rgba(92,240,122,.4);color:var(--mint);font:500 .72rem var(--f-mono)}
.bp__next li strong{color:var(--paper)}
.bp__next p{margin-top:10px;font-size:.85rem;color:var(--muted)}

/* Reduced-motion device: offer to turn animations on */
.motionpill{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:110;display:flex;align-items:center;gap:6px;max-width:calc(100vw - 32px);padding:4px 4px 4px 16px;border-radius:999px;background:rgba(14,21,17,.94);border:1px solid var(--line-2);box-shadow:0 16px 40px -14px rgba(0,0,0,.8);font-size:.88rem;color:var(--sage)}
.motionpill__on{min-height:44px;padding:0 16px;border-radius:999px;background:var(--mint);color:var(--ink);font-weight:700;white-space:nowrap}
.motionpill__x{width:44px;height:44px;border-radius:50%;color:var(--sage);font-size:1.2rem}
.motionpill__x:hover{color:var(--paper)}
.foot__motion button{min-height:44px;color:var(--sage);text-decoration:underline;text-underline-offset:3px}
.foot__motion button:hover{color:var(--paper)}

/* ---------- v2 simplify ---------- */
/* Nav: both main actions on desktop */
@media (min-width:900px){.nav__cta-wrap{display:flex;gap:6px;align-items:center}}
@media (max-width:1099px) and (min-width:900px){.nav__links a{padding:0 11px}.nav__chat{display:none}}
/* Phone: both main actions stay in reach */
.dock{display:none}
@media (max-width:899px){
  .dock{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:105;display:flex;gap:8px;padding:8px;border-radius:999px;background:rgba(10,15,12,.82);border:1px solid var(--line-2);box-shadow:0 16px 40px -14px rgba(0,0,0,.85);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);transform:translateY(calc(100% + 24px));visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s}
  .dock.is-on{transform:none;visibility:visible;transition:transform .45s var(--ease)}
  .dock .btn{flex:1 1 0;min-width:0;padding:0 12px}
  .motionpill{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .foot{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
/* Pricing: the "something more" card and the 24-hour line */
.plan--more{background:linear-gradient(180deg,rgba(246,247,243,.05),rgba(246,247,243,.02))}
.plan__talk{font-size:clamp(2.4rem,1.8rem + 2.4vw,4rem);margin-bottom:16px}
.plan__talk,.plan__talk *{color:var(--paper)}
.pricing__promise{display:flex;align-items:center;justify-content:center;gap:12px;max-width:960px;margin:22px auto 0;color:var(--paper);font-weight:700;font-size:var(--fs-lede);text-align:center}
/* Examples: closing button row */
.previewcta .btn{flex:none}
/* Before / after: folded away until asked for */
.ba__toggle{margin-top:26px}
.ba__toggle .btn__arrow{transition:transform .4s var(--ease)}
.ba__toggle[aria-expanded="true"] .btn__arrow{transform:rotate(180deg)}
html.js .ba__body:not(.is-open){display:none}
html:not(.js) .ba__toggle{display:none}
html.motion .ba__body.is-open{animation:baIn .5s var(--ease) both}
@keyframes baIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* Final CTA: two buttons */
.cta__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
@media (max-width:520px){.cta__btns{width:100%}.cta__btns>*{width:100%}.cta__btns .btn{width:100%}}
/* Order form */
.opts{border:0;margin:0;padding:0;display:grid;gap:8px}
.opts legend{margin-bottom:7px;padding:0}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt>span{display:grid;gap:2px;min-height:52px;padding:13px 16px 13px 48px;border-radius:14px;border:1px solid var(--line-2);background:rgba(5,7,6,.45);color:var(--paper);font-weight:600;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.opt>span::before{content:"";position:absolute;left:16px;top:16px;width:18px;height:18px;border-radius:50%;border:2px solid var(--sage)}
.opt>span::after{content:"";position:absolute;left:21px;top:21px;width:8px;height:8px;border-radius:50%;background:var(--mint);transform:scale(0);transition:transform .25s var(--ease)}
.opt small{font-weight:400;color:var(--sage);font-size:.86rem;line-height:1.4}
.opt input:checked+span{border-color:rgba(92,240,122,.6);background:rgba(92,240,122,.07)}
.opt input:checked+span::before{border-color:var(--mint)}
.opt input:checked+span::after{transform:scale(1)}
.opt input:focus-visible+span{outline:2px solid var(--mint);outline-offset:3px}
.opt__link{display:grid;gap:2px;margin-top:-6px;padding:12px 16px;border-radius:14px;background:rgba(246,247,243,.04);font-size:var(--fs-small);color:var(--sage)}
.opt__link a{color:var(--mint);font-weight:700;text-underline-offset:4px;display:inline-flex;align-items:center;min-height:44px}
.field__area{width:100%;min-height:120px;margin-top:-9px;padding:14px 16px;border-radius:14px;background:rgba(5,7,6,.6);border:1px solid var(--line-2);font:16px/1.45 var(--f-body);color:var(--paper);resize:vertical}
.field__area:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 4px rgba(92,240,122,.15)}
.field__area[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#e96a4a}
.field__help{margin-top:-8px;font-size:.86rem;color:var(--sage);line-height:1.45}
.field__count{margin-top:-12px;min-height:0;font-size:.8rem;color:var(--muted)}
.field__count:empty{display:none}
.order__warn{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:rgba(92,240,122,.07);border:1px solid rgba(92,240,122,.3);color:var(--paper);font-size:var(--fs-small);line-height:1.45}
.order__warn svg{width:18px;height:18px;flex:none;margin-top:1px;fill:none;stroke:var(--mint);stroke-width:1.8;stroke-linecap:round}
.form__fine a{color:var(--sage);text-underline-offset:3px}
/* Order success: pay the deposit on Stripe */
.pay{width:100%;display:grid;gap:12px;padding:18px;border-radius:20px;background:radial-gradient(400px 200px at 0% 0%,rgba(43,189,101,.22),transparent 70%),rgba(246,247,243,.04);border:1px solid rgba(92,240,122,.35)}
.pay .btn{white-space:normal;text-align:center}
.pay__note{color:var(--sage);font-size:.92rem;line-height:1.5}
.account{width:100%;display:grid;gap:8px;padding:16px 18px;border-radius:18px;border:1px solid var(--line-2)}
.account__text{color:var(--sage);font-size:.92rem}
.bp__ref{color:var(--sage)}
.bp__ref strong{color:var(--paper);font-family:var(--f-mono)}
/* Below the hero: calmer, smaller headings and tighter sections so pricing arrives sooner */
.how .h2,.light .h2,.booking .h2,.pricing .h2,.showcase .h2,.ba .h2,.faq .h2{font-size:clamp(2rem,1.25rem + 2.5vw,3.9rem);max-width:20ch}
.how{padding:clamp(56px,7vw,100px) 0 clamp(48px,6vw,80px)}
.light{padding:clamp(56px,7vw,100px) 0}
.light__head{margin-bottom:clamp(26px,3.4vw,44px)}
.booking{padding:clamp(56px,7vw,100px) 0}
.booking__grid{gap:36px}
.phone--demo{--pw:clamp(270px,74vw,310px)}
.pricing{padding:clamp(56px,7vw,100px) 0}
.pricing__head{margin-bottom:clamp(28px,3.6vw,48px)}
.showcase{padding:clamp(60px,8vw,110px) 0 clamp(60px,7vw,100px)}
@media (max-width:859px){
  .steps3{gap:10px;margin-top:26px}
  .s3{display:grid;grid-template-columns:auto 1fr;column-gap:16px;padding:18px 18px 20px}
  .s3__num{grid-row:span 2;margin:0}
  .s3__title{margin-bottom:6px}
}
@media (min-width:860px){
  .how .h2,.light .h2,.booking .h2,.pricing .h2,.showcase .h2,.ba .h2,.faq .h2{font-size:clamp(2rem,1.2rem + 2.2vw,3.4rem)}
  .how{padding:72px 0 56px}
  .light,.booking{padding:72px 0}
  .pricing{padding:72px 0 80px}
}
.ba{padding:clamp(56px,7vw,96px) 0}
.account{border-color:rgba(92,240,122,.35);background:rgba(92,240,122,.05)}
.account__status{font-size:.9rem;color:var(--paper)}
.account__status:empty{display:none}
/* Pricing sooner on laptops (about two screens below the hero at 1440 x 900): tighter how-it-works, features and demo */
@media (min-width:860px){
  .how{padding:56px 0 40px}
  .steps3{margin-top:28px;gap:12px}
  .s3{display:grid;grid-template-columns:auto 1fr;column-gap:16px;padding:22px 22px 24px}
  .s3__num{grid-row:span 2;margin:0}
  .s3__title{font-size:clamp(1.1rem,.95rem + .5vw,1.4rem);margin-bottom:6px}
  .how__cost{margin-top:14px;padding:10px 18px}
  .light{padding:56px 0}
  .light__head{margin-bottom:24px}
  .booking{padding:48px 0}
  .phone--demo{--pw:280px}
}
/* Restored feature cards: keep the diagrams tidy and a little more compact */
.art-mobile{justify-content:center}
.ae-tag{white-space:nowrap;font-size:15px}
@media (min-width:860px){
  .card{padding:18px 18px 22px}
  .card__art{height:96px;margin-bottom:16px}
  .light__head{margin-bottom:22px}
}
@media (min-width:860px){.card__art.art-link,.card__art.art-costs{height:110px}}
.art-edit{gap:6px;padding:0 8px}
.art-edit .ae-tag{font-size:13px;padding:8px 10px;gap:6px}
.art-edit .ae-ok{padding:5px 8px;font-size:9.5px}
