/* Koala Ventures — design tokens & global styles (translated from the handoff) */
:root{
  --ink:#05130c;--ink-soft:#0f2018;--ink-line:rgb(255 255 255 / 10%);
  --mint:#81f0a3;--mint-deep:#43a96e;--ember:#f6a65d;--clay:#cd8369;
  --paper:#f2f3ea;--haze:#a9b5aa;
  --font-display:"Syne",sans-serif;--font-body:"Inter",sans-serif;--font-accent:"Instrument Serif",serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@supports (color: oklch(0 0 0)){
  :root{
    --ink:oklch(0.17 0.024 163);--ink-soft:oklch(0.225 0.028 163);
    --mint:oklch(0.87 0.15 152);--mint-deep:oklch(0.66 0.13 155);
    --ember:oklch(0.79 0.13 62);--clay:oklch(0.68 0.1 40);
    --paper:oklch(0.96 0.012 110);--haze:oklch(0.76 0.02 150);
  }
}
*,*::before,*::after{box-sizing:border-box;border-color:var(--ink-line)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
@supports (overflow-x:clip){html,body{overflow-x:clip}}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font-body);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;min-height:100vh}
::selection{background:var(--mint);color:var(--ink)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,h4,p,dl,dd,dt,figure{margin:0}
button,input,select,textarea{font:inherit;color:inherit}

/* film grain */
.grain{position:relative}
.grain::after{content:"";position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.25;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}

/* ambient glows */
.glow{position:absolute;border-radius:9999px;pointer-events:none;z-index:0}
.glow-mint{top:-10rem;left:-8rem;width:560px;height:560px;background:color-mix(in srgb,var(--mint) 12%,transparent);filter:blur(120px);animation:drift 16s ease-in-out infinite alternate}
.glow-ember{top:38%;right:-10rem;width:520px;height:520px;background:color-mix(in srgb,var(--ember) 10%,transparent);filter:blur(130px);animation:float 9s ease-in-out infinite}

/* keyframes — verbatim from design/styles.css */
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:.95}}
@keyframes route{from{stroke-dashoffset:247}to{stroke-dashoffset:0}}
@keyframes reveal{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-18px) rotate(1.5deg)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(4%,-6%,0) scale(1.15)}}
@keyframes draw{from{stroke-dashoffset:420}to{stroke-dashoffset:0}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes ping{75%,100%{transform:scale(2);opacity:0}}

.animate-reveal{opacity:0;animation:reveal .9s var(--ease) both}
.animate-draw{stroke-dasharray:420;animation:draw 2.4s cubic-bezier(.22,1,.36,1) forwards}
.animate-float{animation:float 9s ease-in-out infinite}
.animate-marquee{animation:marquee 32s linear infinite}
.animate-marquee-slow{animation:marquee 48s linear infinite}
.animate-drift{animation:drift 16s ease-in-out infinite alternate}
.animate-twinkle{animation:twinkle 3.6s ease-in-out infinite}
.animate-route{stroke-dasharray:7 240;animation:route 3.4s linear infinite}
.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}
.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite;transform-box:fill-box;transform-origin:center}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .animate-reveal{opacity:1}
}

/* layout helpers */
.wrap{max-width:72rem;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}
@media (min-width:768px){.wrap{padding-left:2.5rem;padding-right:2.5rem}}
.wrap-narrow{max-width:48rem;margin:0 auto;padding:0 1.5rem}
.wrap-mid{max-width:56rem;margin:0 auto;padding:0 1.5rem}
main{position:relative;z-index:10}
.font-display{font-family:var(--font-display);font-weight:700}
.text-mint{color:var(--mint)}.text-ember{color:var(--ember)}.text-haze{color:var(--haze)}
.underline-sweep{background-image:linear-gradient(var(--mint),var(--mint));background-repeat:no-repeat;background-position:0 100%;background-size:0% 2px;transition:background-size .35s var(--ease);padding-bottom:.125rem}
.underline-sweep:hover{background-size:100% 2px}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;font-weight:600;padding:.875rem 1.75rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s,background .3s;cursor:pointer;border:0;white-space:nowrap}
.btn-mint{background:var(--mint);color:var(--ink);box-shadow:0 0 40px -8px rgb(129 240 163 / 50%)}
.btn-mint:hover{transform:translateY(-2px);box-shadow:0 0 60px -6px rgb(129 240 163 / 60%)}
.btn-ghost{background:transparent;color:var(--paper);border:1px solid rgb(255 255 255 / 15%)}
.btn-ghost:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--mint) 50%,transparent);background:rgb(255 255 255 / 5%)}
.btn-sm{padding:.625rem 1.25rem;font-size:.875rem}
.btn-lg{padding:1rem 2rem}
.btn .arr{display:inline-block;transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:30;background:transparent;border-bottom:1px solid transparent;transition:background .4s,border-color .4s,backdrop-filter .4s}
.site-header.scrolled{background:color-mix(in srgb,var(--ink) 55%,transparent);border-bottom-color:rgb(255 255 255 / 6%);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header.menu-open{background:color-mix(in srgb,var(--ink) 92%,transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
body{padding-top:4.75rem}
[id]{scroll-margin-top:5rem}
/* reading progress */
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;background:linear-gradient(90deg,var(--mint),var(--ember));box-shadow:0 0 12px rgb(129 240 163 / 60%);transition:width .12s linear;pointer-events:none}
.site-header .in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-top:1rem;padding-bottom:1rem}
.wordmark{height:1.5rem;width:auto;display:block;color:var(--paper)}
.wordmark .dot{fill:var(--mint)}
.site-nav{display:none;align-items:center;gap:2rem;font-size:.875rem;color:var(--haze)}
.site-nav a{transition:color .3s}.site-nav a:hover{color:var(--paper)}
@media (min-width:768px){.site-nav{display:flex}}
.site-header .cta-desk{display:none}
@media (min-width:768px){.site-header .cta-desk{display:inline-flex}}
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:2.75rem;height:2.75rem;padding:0 .75rem;border-radius:9999px;border:1px solid rgb(255 255 255 / 15%);background:transparent;cursor:pointer;transition:border-color .3s,background .3s}
.burger span{display:block;height:2px;width:100%;background:var(--paper);border-radius:2px;transition:transform .3s var(--ease),opacity .3s}
.burger:hover{border-color:color-mix(in srgb,var(--mint) 50%,transparent);background:rgb(255 255 255 / 5%)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (min-width:768px){.burger{display:none}}
.mobile-nav{display:none;border-top:1px solid rgb(255 255 255 / 8%)}
.mobile-nav.open{display:block}
.mobile-nav .in{display:grid;gap:.25rem;padding:.75rem 1.5rem 1.25rem}
.mobile-nav a{display:block;padding:.875rem 0;font-family:var(--font-display);font-weight:700;font-size:1.25rem;border-bottom:1px solid rgb(255 255 255 / 6%);color:var(--paper)}
.mobile-nav a:last-of-type{border-bottom:0}
.mobile-nav .btn{display:inline-flex;margin-top:.75rem;justify-content:center;width:100%}
@media (min-width:768px){.mobile-nav{display:none!important}}

/* badge */
.badge{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:1px solid color-mix(in srgb,var(--mint) 30%,transparent);background:color-mix(in srgb,var(--mint) 8%,transparent);padding:.375rem 1rem;font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mint)}
.dot-mint{width:.375rem;height:.375rem;border-radius:9999px;background:var(--mint);display:inline-block}

/* eyebrows */
.num{font-family:var(--font-display);font-weight:700;font-size:.875rem;letter-spacing:.3em;color:var(--ember)}
.kicker{margin-top:.5rem;font-size:.75rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--haze)}
.h2{margin-top:1rem;font-family:var(--font-display);font-weight:700;font-size:2.25rem;line-height:1.08;letter-spacing:-.01em}
@media (min-width:768px){.h2{font-size:3rem}}
.lead{margin-top:1.5rem;max-width:36rem;font-size:1.125rem;line-height:1.625;color:var(--haze)}

/* hero */
.hero{display:grid;gap:3.5rem;align-items:center;padding-top:4rem;padding-bottom:5rem}
@media (min-width:1024px){.hero{grid-template-columns:repeat(12,minmax(0,1fr));padding-top:6rem}.hero>.l{grid-column:span 7}.hero>.r{grid-column:span 5}}
.h1{margin-top:1.75rem;font-family:var(--font-display);font-weight:800;font-size:2.6rem;line-height:1.03;letter-spacing:-.025em}
@media (min-width:768px){.h1{font-size:3.75rem}}
.h1 .that{color:color-mix(in srgb,var(--haze) 70%,transparent)}
.h1 .live{font-family:var(--font-accent);font-style:italic;font-weight:400;font-size:1.15em;letter-spacing:0;background:linear-gradient(90deg,var(--mint),color-mix(in srgb,var(--mint) 70%,transparent));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.h1 .scales{background:linear-gradient(90deg,var(--ember),var(--clay));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero-p{margin-top:1.75rem;max-width:36rem;font-size:1.125rem;line-height:1.625;color:var(--haze)}
.hero-cta{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:.75rem}
.hero-stats{margin-top:3rem;display:grid;max-width:32rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;border-top:1px solid rgb(255 255 255 / 8%);padding-top:1.75rem}
.hero-stats dt{font-family:var(--font-display);font-weight:700;font-size:1.5rem}
@media (min-width:768px){.hero-stats dt{font-size:1.875rem}}
.hero-stats dd{margin-top:.25rem;font-size:.875rem;color:var(--haze)}

/* live panel */
.lp-stage{position:relative;margin-right:1rem;transition:transform .3s;transform-style:preserve-3d}
@media (min-width:640px){.lp-stage{margin-right:2.5rem}}
.lp{position:relative;overflow:hidden;border-radius:1.75rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 80%,transparent);padding:1.5rem 1.5rem 3rem;backdrop-filter:blur(24px)}
.lp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.lp-title{font-family:var(--font-display);font-weight:700;font-size:.875rem;letter-spacing:.025em}
.lp-sub{margin-top:.25rem;font-size:.75rem;color:var(--haze)}
.pill-live{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border:1px solid color-mix(in srgb,var(--mint) 30%,transparent);background:color-mix(in srgb,var(--mint) 10%,transparent);padding:.25rem .75rem;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mint)}
.lp svg{margin-top:1.5rem;width:100%;height:auto}
.lp-stats{margin-top:1.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1.25rem}
@media (min-width:640px){.lp-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-stats p:first-child{font-size:.75rem;letter-spacing:.025em;color:var(--haze)}
.lp-stats p+p{margin-top:.25rem;font-family:var(--font-display);font-weight:700;font-size:1.125rem;font-variant-numeric:tabular-nums}
.chip{position:absolute;border-radius:1rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 90%,transparent);padding:1rem 1.25rem;box-shadow:0 25px 50px -12px rgb(0 0 0 / 25%);backdrop-filter:blur(24px)}
.chip .big{font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--mint)}
.chip .big.ember{color:var(--ember)}
.chip p{font-size:.75rem;color:var(--haze)}
.chip-1{top:-1.75rem;right:-1rem}
@media (max-width:639px){.lp{padding-top:4.5rem}.chip-1{top:-1.25rem;right:-.5rem}.chip-2{right:-.5rem}}
.chip-2{right:-1rem;bottom:6rem;animation-duration:13s}
.chip-3{bottom:-1.5rem;left:.5rem;display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;padding:.625rem 1rem;font-size:.875rem;animation-duration:11s}
@media (min-width:640px){.chip-3{left:1.5rem}}
.chip-3 .dot-mint{width:.5rem;height:.5rem}

/* marquees */
.ticker{border-top:1px solid rgb(255 255 255 / 8%);border-bottom:1px solid rgb(255 255 255 / 8%);background:color-mix(in srgb,var(--ink-soft) 40%,transparent);padding:1rem 0}
.mask{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent);mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent)}
.track{display:flex;width:max-content;align-items:center;gap:2rem;padding-right:2rem}
.track>span{display:flex;align-items:center;gap:2rem;font-size:.875rem;letter-spacing:.16em;white-space:nowrap;text-transform:uppercase;color:color-mix(in srgb,var(--paper) 45%,transparent)}
.track>span b{color:var(--mint);font-weight:400}
.trusted{padding:3.5rem 0}
.trusted-k{margin-bottom:2rem;text-align:center;font-size:.75rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--haze)}
.brands{display:flex;width:max-content;align-items:center;gap:2.5rem;padding-right:2.5rem}
.brand{display:flex;flex-shrink:0;align-items:center;gap:.75rem;border-radius:9999px;border:1px solid rgb(255 255 255 / 8%);background:color-mix(in srgb,var(--ink-soft) 50%,transparent);padding:.625rem 1.25rem;transition:border-color .3s,background .3s}
.brand img{width:1.5rem;height:1.5rem;border-radius:.25rem;opacity:.7;filter:grayscale(1);transition:opacity .3s,filter .3s}
.brand span{font-size:.875rem;white-space:nowrap;color:color-mix(in srgb,var(--paper) 60%,transparent);transition:color .3s}
.brand:hover{border-color:color-mix(in srgb,var(--mint) 40%,transparent);background:var(--ink-soft)}
.brand:hover img{opacity:1;filter:none}.brand:hover span{color:var(--paper)}

/* stats band */
.stats{padding-bottom:6rem}
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border-radius:1.5rem;border:1px solid var(--ink-line);background:rgb(255 255 255 / 10%)}
@media (min-width:768px){.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat{background:var(--ink);padding:2.5rem 1.5rem;transition:background .3s}
.stat:hover{background:var(--ink-soft)}
.stat div{font-family:var(--font-display);font-weight:700;font-size:1.875rem;transition:color .3s}
@media (min-width:768px){.stat div{font-size:2.25rem}}
.stat:hover div{color:var(--mint)}
.stat p{margin-top:.5rem;font-size:.875rem;color:var(--haze)}

/* sections */
.sec{padding-bottom:6rem}
.grid12{display:grid;gap:2.5rem}
@media (min-width:1024px){.grid12{grid-template-columns:repeat(12,minmax(0,1fr))}.span7{grid-column:span 7}.span5{grid-column:span 5}}
.chips{display:flex;flex-wrap:wrap;align-content:flex-start;gap:.625rem}
.pchip{display:flex;align-items:center;gap:.5rem;border-radius:9999px;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 60%,transparent);padding:.5rem .875rem;font-size:.875rem;color:color-mix(in srgb,var(--paper) 70%,transparent);transition:transform .3s,border-color .3s,color .3s}
.pchip img{width:18px;height:18px;border-radius:.125rem}
.pchip:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--mint) 40%,transparent);color:var(--paper)}
.pchip.more{border-style:dashed;border-color:rgb(255 255 255 / 15%);color:var(--haze)}
.cards{margin-top:3rem;display:grid;gap:1.25rem}
@media (min-width:768px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.card{position:relative;overflow:hidden;border-radius:1.5rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 60%,transparent);padding:2rem;transition:transform .5s var(--ease),border-color .5s}
.card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--mint) 40%,transparent)}
.card .ghost{position:absolute;top:-2rem;right:-.5rem;font-family:var(--font-display);font-weight:700;font-size:6rem;line-height:1;color:rgb(255 255 255 / 4%);transition:color .5s}
.card:hover .ghost{color:color-mix(in srgb,var(--mint) 12%,transparent)}
.card .n{position:relative;font-size:.75rem;letter-spacing:.2em;color:var(--mint)}
.card h3{position:relative;margin-top:.75rem;font-family:var(--font-display);font-weight:700;font-size:1.5rem;line-height:1.375}
.card p{position:relative;margin-top:.75rem;max-width:28rem;line-height:1.625;color:var(--haze)}
.card .go{position:relative;margin-top:1.5rem;display:inline-block;color:var(--mint);opacity:0;transition:all .5s}
.card:hover .go{opacity:1;transform:translateX(4px)}

/* studio band */
.band{position:relative;margin-top:5rem}
.band .ph{position:relative;height:320px;overflow:hidden}
@media (min-width:768px){.band .ph{height:440px}}
.band img{width:100%;height:100%;object-fit:cover}
.band .ov{position:absolute;inset:0;background:linear-gradient(to top,var(--ink),color-mix(in srgb,var(--ink) 55%,transparent),color-mix(in srgb,var(--ink) 70%,transparent))}
.band .q{position:absolute;inset:0;display:flex;align-items:center}
.band .q p{max-width:36rem;font-size:1.125rem;line-height:1.625;color:color-mix(in srgb,var(--paper) 90%,transparent)}
@media (min-width:768px){.band .q p{font-size:1.5rem}}
.band .q small{display:block;margin-top:.75rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mint)}

/* how we work */
.how{display:grid;gap:3rem;padding-top:6rem;padding-bottom:6rem}
@media (min-width:1024px){.how{grid-template-columns:repeat(12,minmax(0,1fr))}}
.steps{margin-top:2.5rem;display:grid;gap:1.75rem}
.step{position:relative;display:flex;align-items:flex-start;gap:1.25rem;border-left:1px solid rgb(255 255 255 / 12%);padding-left:1.5rem;transition:border-color .3s}
.step:hover{border-color:var(--mint)}
.step::before{content:"";position:absolute;left:-5px;top:.625rem;width:.625rem;height:.625rem;border-radius:9999px;background:rgb(255 255 255 / 25%);transition:background .3s}
.step:hover::before{background:var(--mint)}
.step .sn{font-family:var(--font-display);font-weight:700;font-size:.875rem;color:var(--mint)}
.step h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem}
.step p{margin-top:.25rem;line-height:1.625;color:var(--haze)}
.step .w{flex-shrink:0;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--haze) 70%,transparent)}
.step .body{flex:1}
.how img{width:100%;height:100%;border-radius:2rem;border:1px solid var(--ink-line);object-fit:cover}

/* work */
.work-grid{margin-top:3rem;display:grid;gap:1.5rem}
@media (min-width:768px){.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.wcard{overflow:hidden;border-radius:1.5rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 60%,transparent);transition:transform .5s var(--ease),border-color .5s}
.wcard:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--mint) 40%,transparent)}
.wcard .ph{position:relative;height:11rem;overflow:hidden}
.wcard img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.wcard:hover img{transform:scale(1.05)}
.wcard .ov{position:absolute;inset:0;background:linear-gradient(to top,var(--ink-soft),color-mix(in srgb,var(--ink) 30%,transparent),transparent)}
.wcard .body{padding:1.75rem}
.wcard .tag{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mint)}
.wcard .metric{margin-top:.75rem;font-family:var(--font-display);font-weight:700;font-size:1.875rem}
.wcard .txt{margin-top:.75rem;line-height:1.625;color:var(--haze)}
.wcard .ch{margin-top:1.25rem;border-top:1px solid rgb(255 255 255 / 8%);padding-top:1rem;font-size:.875rem;color:color-mix(in srgb,var(--paper) 50%,transparent)}

/* about */
.about-img{position:relative;overflow:hidden;border-radius:1.75rem;border:1px solid var(--ink-line);height:100%}
.about-img img{height:14rem;width:100%;object-fit:cover}
@media (min-width:768px){.about-img img{height:100%}}
.about-img .ov{position:absolute;inset:0;background:color-mix(in srgb,var(--ink) 30%,transparent)}
.map-panel{position:relative;margin-top:3rem;overflow:hidden;border-radius:2rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 60%,transparent);padding:1.25rem}
@media (min-width:768px){.map-panel{padding:2.25rem}}
.map-panel .glow{bottom:-6rem;left:-4rem;width:18rem;height:18rem;background:color-mix(in srgb,var(--mint) 10%,transparent);filter:blur(100px)}
.map{position:relative;width:100%;height:auto;overflow:visible;display:block}
.map .land{fill:rgb(255 255 255 / 12%)}
.map .land.tw{fill:color-mix(in srgb,var(--mint) 25%,transparent)}
.map .routes{stroke:color-mix(in srgb,var(--mint) 45%,transparent)}
.map .pin{cursor:pointer;outline:none}
.map .halo{transition:opacity .5s}
.map .ping{fill:color-mix(in srgb,var(--mint) 25%,transparent)}
.map .core{fill:var(--mint);transition:r .3s}
.map .ring{fill:none;stroke:color-mix(in srgb,var(--mint) 60%,transparent);stroke-width:1.4;transition:r .3s}
.map text{pointer-events:none;fill:var(--paper);font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.025em;transition:opacity .3s}

/* CTA */
.cta{position:relative;overflow:hidden;border-radius:2rem;border:1px solid color-mix(in srgb,var(--mint) 25%,transparent);background:var(--ink-soft);padding:2.5rem}
@media (min-width:768px){.cta{padding:4rem}}
.cta .glow{top:-6rem;right:-4rem;width:20rem;height:20rem;background:color-mix(in srgb,var(--mint) 15%,transparent);filter:blur(100px)}
.cta .in{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
@media (min-width:768px){.cta .in{flex-direction:row;align-items:flex-end}}
.cta h2{font-family:var(--font-display);font-weight:700;font-size:2.25rem;line-height:1.1}
@media (min-width:768px){.cta h2{font-size:3rem}}
.cta p{margin-top:1.25rem;font-size:1.125rem;color:var(--haze);max-width:36rem}

/* contact */
.contact{display:grid;gap:3rem}
@media (min-width:1024px){.contact{grid-template-columns:repeat(12,minmax(0,1fr))}}
.contact .h2{font-size:3rem;line-height:1.05}
@media (min-width:768px){.contact .h2{font-size:3.75rem}}
.contact dl{margin-top:2.5rem;display:grid;gap:1.25rem;border-top:1px solid rgb(255 255 255 / 8%);padding-top:2rem}
.contact dt{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mint)}
.contact dd{margin-top:.25rem;color:var(--haze)}
.contact dd a{color:var(--paper)}
.contact dd a.mint{color:var(--mint)}
.form{border-radius:2rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 60%,transparent);padding:1.75rem}
@media (min-width:768px){.form{padding:2.25rem}}
.fgrid{display:grid;gap:1rem}
@media (min-width:640px){.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fgrid .full{grid-column:span 2}}
.field{width:100%;border-radius:.75rem;border:1px solid rgb(255 255 255 / 12%);background:color-mix(in srgb,var(--ink) 70%,transparent);padding:.875rem 1rem;color:var(--paper);transition:border-color .3s,box-shadow .3s;outline:none;appearance:none;-webkit-appearance:none}
.field::placeholder{color:color-mix(in srgb,var(--haze) 70%,transparent)}
.field:focus{border-color:var(--mint);box-shadow:0 0 0 3px color-mix(in srgb,var(--mint) 20%,transparent)}
select.field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23a9b5aa' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
select.field option{background:var(--ink-soft);color:var(--paper)}
textarea.field{resize:vertical;min-height:6rem}
.hidden{display:none}
.sent{margin-bottom:1rem;border-radius:.75rem;border:1px solid color-mix(in srgb,var(--mint) 40%,transparent);background:color-mix(in srgb,var(--mint) 10%,transparent);padding:.75rem 1rem;font-size:.875rem;color:var(--mint)}

/* footer */
.site-footer{border-top:1px solid rgb(255 255 255 / 8%)}
.site-footer .in{display:flex;flex-direction:column;gap:1.5rem;padding-top:2.5rem;padding-bottom:2.5rem}
.site-footer .row{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:1.25rem}
@media (min-width:640px){.site-footer .row{flex-direction:row;align-items:center}}
.site-footer .links{display:flex;flex-wrap:wrap;column-gap:1.75rem;row-gap:.5rem;font-size:.875rem;color:var(--haze)}
.site-footer .links a{transition:color .3s}.site-footer .links a:hover{color:var(--paper)}
.site-footer .legal{display:flex;flex-direction:column;gap:.5rem;border-top:1px solid rgb(255 255 255 / 8%);padding-top:1.5rem;font-size:.875rem;color:color-mix(in srgb,var(--paper) 40%,transparent)}
@media (min-width:640px){.site-footer .legal{flex-direction:row;align-items:center;justify-content:space-between}}
.site-footer .legal p{display:flex;align-items:center;gap:.5rem}
.site-footer .legal a:hover{color:var(--paper)}

/* legal / questionnaire shells */
.legal-main{padding:4rem 0}
.legal-main h1{font-family:var(--font-display);font-weight:700;font-size:2.25rem;line-height:1.25}
@media (min-width:768px){.legal-main h1{font-size:3rem}}
.legal-main .meta{margin-top:1rem;font-size:.875rem;color:var(--haze)}
.clauses{margin-top:3rem;display:grid;gap:2.25rem}
.clause{border-left:1px solid var(--ink-line);padding-left:1.5rem;transition:border-color .3s}
.clause:hover{border-color:color-mix(in srgb,var(--mint) 60%,transparent)}
.clause h2{font-family:var(--font-display);font-weight:700;font-size:1.25rem}
.clause p,.clause div{margin-top:.75rem;line-height:1.625;color:var(--haze)}
.clause a{color:var(--mint)}
.q-main{padding:4rem 0}
.q-main h1{margin-top:1.75rem;font-family:var(--font-display);font-weight:700;font-size:2.25rem;line-height:1.06}
@media (min-width:768px){.q-main h1{font-size:3.75rem}}
.q-main .intro{margin-top:1.5rem;max-width:42rem;font-size:1.125rem;line-height:1.625;color:var(--haze)}
.q-form{margin-top:3.5rem;display:grid;gap:1.5rem}
.qsec{border-radius:2rem;border:1px solid var(--ink-line);background:color-mix(in srgb,var(--ink-soft) 60%,transparent);padding:1.75rem}
@media (min-width:768px){.qsec{padding:2.5rem}}
.qsec .head{display:flex;align-items:baseline;gap:1rem}
.qsec h2{font-family:var(--font-display);font-weight:700;font-size:1.5rem}
.qsec .sub{margin-top:.25rem;font-size:.875rem;color:var(--haze)}
.qsec .fields{margin-top:2rem;display:grid;gap:1.5rem}
.qsec label.lbl,.qsec legend{font-size:.875rem;font-weight:600;color:var(--paper)}
.qsec .req{margin-left:.25rem;color:var(--mint)}
.qsec .hint{margin-top:.25rem;font-size:.75rem;color:var(--haze)}
.qsec .lblwrap{margin-bottom:.5rem}
.qsec fieldset{border:0;padding:0;margin:0;min-width:0}
.checks{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.625rem}
.check{display:flex;cursor:pointer;align-items:center;gap:.625rem;border-radius:9999px;border:1px solid rgb(255 255 255 / 12%);background:color-mix(in srgb,var(--ink) 70%,transparent);padding:.625rem 1rem;font-size:.875rem;color:color-mix(in srgb,var(--paper) 80%,transparent);transition:transform .3s,border-color .3s,color .3s,background .3s}
.check:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--mint) 50%,transparent);color:var(--paper)}
.check:has(:checked){border-color:var(--mint);background:color-mix(in srgb,var(--mint) 10%,transparent);color:var(--paper)}
.check input{width:1rem;height:1rem;accent-color:var(--mint);margin:0}
.g2{display:grid;gap:1.5rem}.g3{display:grid;gap:1.5rem}
@media (min-width:640px){.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.q-submit{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
@media (min-width:640px){.q-submit{flex-direction:row;align-items:center}}
.q-submit p{max-width:28rem;font-size:.875rem;color:var(--haze)}

/* questionnaire field blocks (existing markup) */
.fld>label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:var(--paper)}
.fld .req{color:var(--mint)}
.fld .hint{margin-top:.25rem;font-size:.75rem;color:var(--haze)}
.fld .checks{margin-top:.25rem}
.q-form legend{display:none}
