/*
Theme Name: Latent Digital Solutions
Theme URI: https://latentdigitalsolutions.com
Author: Latent Digital Solutions
Description: Hand-built marketing site theme. Bold-light-tech design with hand-drawn SVG data visualisations, light/dark theming, and zero build step. Content lives in the template files.
Version: 1.0.0
Requires PHP: 8.0
License: Proprietary
Text Domain: latent-digital-solutions
*/

/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-ff2310f5.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-875ccdd4.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-52306abf.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-001175b1.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-98bbbccb.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_geist_0tvmz3h { font-family: 'Geist', sans-serif; }

.__variable_geist_0tvmz3h { --font-geist-sans: 'Geist', sans-serif; }

/* cyrillic-ext */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-mono-f6b33328.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-mono-44e03052.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* symbols2 */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-mono-0638449e.woff2) format('woff2');
  unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;
}
/* vietnamese */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-mono-971fb274.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-mono-44745446.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(assets/fonts/geist-mono-013b2f2f.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_geist_mono_1diim1n { font-family: 'Geist Mono', sans-serif; }

.__variable_geist_mono_1diim1n { --font-geist-mono: 'Geist Mono', sans-serif; }

/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}}:root{--paper:#fcfcfb;--surface:#fff;--surface-2:#f5f6f8;--ink:#0a0b0d;--ink-soft:#52555c;--muted:#8a8d94;--line:#0a0b0d1a;--line-soft:#0a0b0d0f;--line-strong:#0a0b0d33;--accent:#1946da;--accent-ink:#1238b0;--accent-soft:#1946da14;--accent-line:#1946da38;--amber:#f0810f;--teal:#0fa98c;--grid:#0a0b0d17;--shadow-sm:0 1px 2px #0a0b0d0a,0 8px 24px #0a0b0d0d;--shadow-lg:0 2px 6px #0a0b0d0d,0 30px 70px #0a0b0d1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#0a0b0e;--surface:#121419;--surface-2:#181b22;--ink:#f4f5f7;--ink-soft:#b7bac1;--muted:#7d818b;--line:#ffffff1c;--line-soft:#ffffff0f;--line-strong:#ffffff38;--accent:#5b7cff;--accent-ink:#8ba0ff;--accent-soft:#5b7cff1f;--accent-line:#5b7cff4d;--amber:#ff9d3d;--teal:#2fd0b3;--grid:#ffffff17;--shadow-sm:0 1px 2px #0006,0 8px 24px #00000059;--shadow-lg:0 2px 6px #0006,0 30px 70px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-geist-sans), "Segoe UI", system-ui, sans-serif;font-feature-settings:"cv01","cv03","ss01";-webkit-font-smoothing:antialiased;letter-spacing:-.011em;margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}::selection{background:var(--accent);color:#fff}.mono{font-family:var(--font-geist-mono), ui-monospace, monospace}.wrap{width:min(1220px,100% - 48px);margin-inline:auto}.tnum{font-variant-numeric:tabular-nums}.site-header{z-index:60;border-bottom:1px solid #0000;align-items:center;gap:24px;height:70px;padding-inline:clamp(20px,4vw,44px);transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0;right:0}.site-header.scrolled{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.site-header.scrolled{background:color-mix(in srgb, var(--paper) 82%, transparent)}}.site-header.scrolled{-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-color:var(--line)}.wordmark{letter-spacing:-.04em;align-items:center;gap:0;font-size:20px;font-weight:700;display:inline-flex}.wordmark b{color:var(--accent);font-weight:700}.nav-links{color:var(--ink-soft);gap:30px;margin-inline:auto;font-size:15px;font-weight:450;display:flex}.nav-links a{padding:4px 0;transition:color .2s;position:relative}.nav-links a:hover{color:var(--ink)}.nav-cta{background:var(--accent);color:#fff;height:44px;box-shadow:0 6px 18px var(--accent-soft);border-radius:9px;align-items:center;gap:9px;padding:0 20px;font-size:15px;font-weight:550;transition:transform .18s,box-shadow .18s;display:inline-flex}.nav-cta:hover{box-shadow:0 10px 26px var(--accent-line);transform:translateY(-1px)}.menu-button{background:0 0;border:0;margin-left:auto;padding:12px;display:none}.menu-button span{background:var(--ink);border-radius:2px;width:22px;height:2px;margin:5px 0;transition:transform .25s;display:block}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--ink-soft);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,border-color .2s,transform .18s;display:inline-flex}.theme-toggle:hover{color:var(--ink);border-color:var(--line-strong);transform:translateY(-1px)}.theme-toggle svg{stroke:currentColor;fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}@media (width<=820px){.theme-toggle{margin-left:auto}.menu-button{margin-left:8px}}.eyebrow,.kicker{font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:12.5px;font-weight:500}.eyebrow{color:var(--accent-ink);align-items:center;gap:11px;display:inline-flex}.eyebrow i{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:2px}h1,h2,h3{letter-spacing:-.035em;text-wrap:balance;margin:0;font-weight:640;line-height:1.02}.display{letter-spacing:-.045em;font-size:clamp(46px,6.4vw,96px);font-weight:660;line-height:.98}.display em{color:var(--accent);font-style:normal}.h2{font-size:clamp(32px,4.2vw,58px)}.lede{color:var(--ink-soft);letter-spacing:-.01em;font-size:clamp(16.5px,1.35vw,20px);font-weight:440;line-height:1.55}.btn{border-radius:11px;justify-content:center;align-items:center;gap:11px;height:54px;padding:0 26px;font-size:15.5px;font-weight:550;transition:transform .18s,box-shadow .18s,background .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 22px var(--accent-soft)}.btn-primary:hover{box-shadow:0 14px 34px var(--accent-line);transform:translateY(-2px)}.btn-ghost{border:1px solid var(--line-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}.text-link{color:var(--ink);align-items:center;gap:9px;font-size:15px;font-weight:500;display:inline-flex}.text-link .arw{color:var(--accent);transition:transform .2s}.text-link:hover .arw{transform:translate(3px,-3px)}.hero{padding:132px 0 76px;position:relative;overflow:hidden}.hero:before{content:"";z-index:-2;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 70% at 70% 0,#000 0%,#0000 72%);mask-image:radial-gradient(90% 70% at 70% 0,#000 0%,#0000 72%)}.hero-aura{z-index:-1;aspect-ratio:1;background:radial-gradient(circle at 50% 50%, var(--accent-soft), transparent 66%);filter:blur(8px);pointer-events:none;border-radius:50%;width:52vw;max-width:760px;position:absolute;top:-14%;right:-6%}.hero-grid{grid-template-columns:1.02fr .98fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid}.hero-chart-wrap{will-change:transform}.hero h1{margin:22px 0 24px}.hero .lede{max-width:460px}.hero-actions{flex-wrap:wrap;align-items:center;gap:20px;margin-top:36px;display:flex}.hero-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px 40px;margin-top:52px;padding-top:22px;display:flex}.hero-foot .lbl{font-family:var(--font-geist-mono),monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-size:12px}.hero-foot .divd{background:var(--line);width:1px;height:26px}.chart-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:18px;padding:22px 22px 16px;position:relative}.chart-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.chart-title{letter-spacing:-.01em;font-size:16px;font-weight:600}.chart-sub{font-family:var(--font-geist-mono),monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:12px}.chart-badge{font-family:var(--font-geist-mono),monospace;letter-spacing:.05em;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-line);white-space:nowrap;border-radius:7px;padding:6px 11px;font-size:12px;font-weight:500}.chart svg{width:100%;height:auto;display:block;overflow:visible}.axis-txt{font-family:var(--font-geist-mono),monospace;letter-spacing:.04em;fill:var(--muted);font-size:15px}.grid-line{stroke:var(--grid);stroke-width:1px}.grid-base{stroke:var(--line-strong);stroke-width:1px}.curve-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:1400px;transition:stroke-dashoffset 1.7s cubic-bezier(.4,0,.15,1) .15s}.is-visible .curve-line{stroke-dashoffset:0}.curve-area{fill:url(#areaFill);opacity:0;transition:opacity 1s .6s}.is-visible .curve-area{opacity:1}.curve-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2px;opacity:0;transition:opacity .4s}.is-visible .curve-dot{opacity:1;transition-delay:1.4s}.curve-dot.end{fill:var(--accent);r:6}.phase-tick{fill:var(--ink-soft);font-family:var(--font-geist-mono),monospace;letter-spacing:.03em;font-size:15.5px}.phase-tick.active{fill:var(--accent-ink);font-weight:600}.curve-note{fill:var(--muted);font-size:15px;font-family:var(--font-geist-sans),sans-serif}.curve-callout{fill:var(--accent);font-family:var(--font-geist-mono),monospace;letter-spacing:.04em;font-size:17px;font-weight:600}section.block{padding:clamp(84px,10vw,132px) 0}.sec-head{max-width:760px;margin-bottom:56px}.sec-head .kicker{color:var(--accent-ink);margin-bottom:20px;display:block}.sec-head.split{grid-template-columns:1.2fr .8fr;align-items:end;gap:40px;max-width:none;display:grid}.sec-head.split p{color:var(--ink-soft);max-width:400px;font-size:16px;line-height:1.6}@media (width<=820px){.sec-head.split{grid-template-columns:1fr}}.why-cards{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}@media (width<=920px){.why-cards{grid-template-columns:1fr}}.why-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:column;padding:26px 24px;transition:transform .28s,box-shadow .28s,border-color .28s;display:flex}.why-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-line);transform:translateY(-6px)}.wc-ic{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:12px;place-items:center;width:46px;height:46px;margin-bottom:20px;display:grid}.wc-ic svg{width:23px;height:23px;stroke:var(--accent);fill:none;stroke-width:1.6px}.wc-title{letter-spacing:-.02em;margin:0 0 6px;font-size:21px;font-weight:600}.wc-sub{color:var(--accent-ink);margin:0 0 20px;font-size:14px;font-weight:500}.wc-viz{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:16px}.wc-viz svg{width:100%;height:auto;display:block}.wc-body{color:var(--ink-soft);margin:auto 0 0;font-size:15px;line-height:1.6}.wv-axis{fill:var(--muted);font-family:var(--font-geist-mono),monospace;letter-spacing:.08em;font-size:11px}.wv-box{fill:var(--accent-soft);stroke:var(--accent-line);stroke-width:1px;opacity:0}.wv-check{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:34;stroke-dashoffset:34px}.wv-label{fill:var(--ink);font-family:var(--font-geist-sans),sans-serif;opacity:0;font-size:15px}.wv-dot{transform-box:fill-box;transform-origin:50%;transform:scale(0)}.wv-dot.faint{fill:var(--line-strong)}.wv-dot.hot{fill:var(--accent)}.wv-hot-label{fill:var(--accent-ink);font-family:var(--font-geist-mono),monospace;letter-spacing:.05em;opacity:0;font-size:11px}.wv-launch{stroke:var(--line-strong);stroke-width:1.5px;stroke-dasharray:3 4}.wv-line{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.wv-line.solid{stroke:var(--accent);stroke-dasharray:420;stroke-dashoffset:420px}.wv-line.dashed{stroke:var(--muted);stroke-dasharray:5 6;opacity:0}.is-visible .wv-box{animation:.4s forwards wvfade;animation-delay:var(--d)}.is-visible .wv-check{animation:.5s forwards wvdraw;animation-delay:var(--d)}.is-visible .wv-label{animation:.5s forwards wvfade;animation-delay:var(--d)}.is-visible .wv-dot{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards wvpop}.is-visible .wv-dot.faint{animation-delay:.2s}.is-visible .wv-dot.hot{animation-delay:.45s}.is-visible .wv-hot-label{animation:.5s .7s forwards wvfade}.is-visible .wv-line.solid{animation:1.3s .2s forwards wvdrawline}.is-visible .wv-line.dashed{animation:.7s .75s forwards wvfade}@keyframes wvfade{to{opacity:1}}@keyframes wvdraw{to{stroke-dashoffset:0}}@keyframes wvdrawline{to{stroke-dashoffset:0}}@keyframes wvpop{to{transform:scale(1)}}.cap-list{border-top:1px solid var(--line)}.cap-row{border-bottom:1px solid var(--line);grid-template-columns:56px 1.1fr 1.5fr 40px;align-items:center;gap:26px;padding:24px 8px;transition:background .2s,padding .2s;display:grid;position:relative}.cap-row:hover{background:var(--surface)}.cap-row .c-num{font-family:var(--font-geist-mono),monospace;color:var(--muted);font-size:13px}.cap-row h3{letter-spacing:-.02em;font-size:clamp(19px,1.9vw,24px);font-weight:600}.cap-row p{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.55}.cap-row .c-arw{color:var(--muted);justify-self:end;font-size:18px;transition:color .2s,transform .2s}.cap-row:hover .c-arw{color:var(--accent);transform:translate(3px,-3px)}.cap-row:hover h3{color:var(--accent-ink)}@media (width<=760px){.cap-row{grid-template-columns:38px 1fr}.cap-row p{grid-column:2}.cap-row .c-arw{display:none}}.outcomes{background:var(--surface-2);border-block:1px solid var(--line)}.dash{grid-template-columns:1.35fr 1fr;align-items:stretch;gap:24px;display:grid}@media (width<=900px){.dash{grid-template-columns:1fr}}.bars{flex-direction:column;gap:22px;padding:6px 4px 4px;display:flex}.bar-item .bar-top{justify-content:space-between;align-items:baseline;margin-bottom:9px;display:flex}.bar-item .bar-lbl{color:var(--ink);font-size:14px;font-weight:500}.bar-item .bar-val{font-family:var(--font-geist-mono),monospace;letter-spacing:-.02em;color:var(--accent-ink);font-size:19px;font-weight:600}.bar-item .bar-val small{color:var(--muted);margin-left:1px;font-size:12px;font-weight:500}.bar-track{background:var(--surface);border:1px solid var(--line);border-radius:6px;height:12px;position:relative;overflow:hidden}.bar-fill{background:linear-gradient(90deg, var(--accent), var(--accent));border-radius:6px;width:0;position:absolute;inset:0 auto 0 0}@supports (color:color-mix(in lab, red, red)){.bar-fill{background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 78%, #7d9bff))}}.bar-fill{transition:width 1.2s cubic-bezier(.3,.7,.2,1)}.is-visible .bar-fill{width:var(--w)}.ba-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;padding:22px;display:flex}.ba-card .chart-sub{margin-bottom:18px}.ba-cols{flex:1;grid-template-columns:1fr 1fr;align-items:end;gap:18px;min-height:190px;display:grid}.ba-col{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex}.ba-bar{border-radius:9px 9px 3px 3px;justify-content:center;align-items:flex-start;width:100%;max-width:82px;height:0;padding-top:10px;transition:height 1.1s cubic-bezier(.3,.7,.2,1) .2s;display:flex}.ba-bar.before{background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 6px,var(--line-soft) 6px,var(--line-soft) 7px);border:1px solid var(--line-strong)}.ba-bar.after{background:linear-gradient(180deg,var(--accent),var(--accent-ink))}.is-visible .ba-bar.before,.is-visible .ba-bar.after{height:var(--h)}.ba-bar .ba-pct{font-family:var(--font-geist-mono),monospace;font-size:13px;font-weight:600}.ba-bar.before .ba-pct{color:var(--ink-soft)}.ba-bar.after .ba-pct{color:#fff}.ba-x{text-align:center;font-family:var(--font-geist-mono),monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:12px;font-size:10.5px}.ba-delta{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:18px;padding-top:16px;font-size:14.5px;line-height:1.55}.ba-delta b{color:var(--accent-ink)}.flow{grid-template-columns:repeat(4,1fr);gap:0;margin-top:20px;display:grid;position:relative}.flow:before{content:"";background:linear-gradient(90deg,var(--line),var(--accent-line),var(--accent));height:2px;position:absolute;top:29px;left:6%;right:6%}.flow-step{padding:0 18px;position:relative}.flow-node{background:var(--surface);border:1px solid var(--line);width:60px;height:60px;box-shadow:var(--shadow-sm);z-index:1;font-family:var(--font-geist-mono),monospace;color:var(--accent-ink);border-radius:15px;place-items:center;font-size:15px;font-weight:600;display:grid;position:relative}.flow-step:last-child .flow-node{background:var(--accent);color:#fff;border-color:var(--accent)}.flow-step h3{margin:22px 0 9px;font-size:21px;font-weight:600}.flow-step p{color:var(--ink-soft);max-width:240px;margin:0;font-size:15px;line-height:1.55}@media (width<=760px){.flow{grid-template-columns:1fr;gap:26px}.flow:before{display:none}.flow-step{grid-template-columns:60px 1fr;gap:20px;padding:0;display:grid}.flow-step h3{margin-top:4px}}.shift{background:var(--surface);border-block:1px solid var(--line);position:relative;overflow:hidden}.shift-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px;display:grid}@media (width<=860px){.shift-grid{grid-template-columns:1fr;gap:36px}}.shift h2{font-size:clamp(30px,3.6vw,50px)}.shift h2 .dim{color:var(--muted)}.shift p{max-width:440px;margin-top:24px}.decay-legend{font-family:var(--font-geist-mono),monospace;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);gap:22px;margin-top:16px;font-size:12px;display:flex}.decay-legend i{vertical-align:middle;border-radius:2px;width:22px;height:3px;margin-right:7px;display:inline-block}.about-grid{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid}@media (width<=860px){.about-grid{grid-template-columns:1fr;gap:44px}}.about-copy .lede{max-width:520px;margin:24px 0 30px}.reach{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.reach-stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}.reach-stat .rs-num{font-family:var(--font-geist-mono),monospace;letter-spacing:-.04em;color:var(--ink);font-size:34px;font-weight:640;line-height:1}.reach-stat .rs-num em{color:var(--accent);font-style:normal}.reach-stat .rs-lbl{color:var(--ink-soft);margin-top:9px;font-size:13px;line-height:1.4}.globe-card{aspect-ratio:1/.92;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:20px;place-items:center;display:grid;position:relative;overflow:hidden}.globe-card svg{width:88%;height:88%}.closing{text-align:center;padding:clamp(96px,12vw,150px) 0;position:relative;overflow:hidden}.closing:before{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(circle,var(--accent-soft),transparent 60%);border-radius:50%;width:80vw;max-width:900px;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.closing h2{max-width:900px;margin:20px auto 34px;font-size:clamp(38px,5.4vw,74px)}.closing .lede{max-width:560px;margin:0 auto 38px}.site-footer{border-top:1px solid var(--line);background:var(--surface-2);padding:64px 0 0}.foot-grid{grid-template-columns:1.5fr 1fr 1fr 1fr;gap:44px 32px;padding-bottom:52px;display:grid}.foot-col{min-width:0}.foot-identity .wordmark{margin-bottom:18px;display:inline-block}.foot-tag{color:var(--ink-soft);margin:0 0 16px;font-size:14.5px}.foot-address{color:var(--ink-soft);margin:0;font-size:14.5px;font-style:normal;line-height:1.75}.foot-head{font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0 0 20px;font-size:12.5px;font-weight:500}.foot-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.foot-name{color:var(--ink-soft);margin-bottom:3px;font-size:13px;display:block}.foot-link{color:var(--ink-soft);font-size:15px;text-decoration:none;transition:color .18s;display:inline-block}.foot-link:hover{color:var(--accent-ink)}.foot-social{gap:10px;margin-bottom:18px;display:flex}.foot-social a{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--ink-soft);border-radius:10px;justify-content:center;align-items:center;transition:color .2s,border-color .2s,transform .18s;display:inline-flex}.foot-social a:hover{color:var(--accent-ink);border-color:var(--accent);transform:translateY(-2px)}.foot-social svg{fill:currentColor;width:17px;height:17px}.foot-base{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 0 34px;font-size:13.5px;display:flex}.foot-compliance{font-family:var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;font-size:12px}@media (width<=900px){.foot-grid{grid-template-columns:1fr 1fr;gap:38px 28px}}@media (width<=560px){.foot-grid{grid-template-columns:1fr;gap:34px}.foot-base{flex-direction:column;align-items:flex-start;gap:8px}}.legal{padding:132px 0 90px}.legal .kicker{color:var(--accent-ink);margin-bottom:16px;display:block}.legal h1{letter-spacing:-.02em;max-width:20ch;margin:0 0 14px;font-size:clamp(36px,4.6vw,58px);line-height:1.08}.legal-updated{font-family:var(--font-geist-mono), monospace;color:var(--muted);border-bottom:1px solid var(--line);margin:0 0 44px;padding-bottom:32px;font-size:13px}.legal-lede{color:var(--ink-soft);max-width:72ch;margin:0 0 8px;font-size:19px;line-height:1.7}.legal h2{letter-spacing:-.01em;max-width:72ch;margin:48px 0 16px;font-size:22px;line-height:1.3}.legal p{color:var(--ink-soft);max-width:72ch;margin:0 0 16px;font-size:16.5px;line-height:1.78}.legal ul{gap:10px;max-width:72ch;margin:0 0 16px;padding-left:22px;display:grid}.legal li{color:var(--ink-soft);font-size:16.5px;line-height:1.7}.legal b{color:var(--ink);font-weight:600}.legal a{color:var(--accent-ink);text-underline-offset:3px;text-decoration:underline}.legal-table{border-collapse:collapse;width:100%;max-width:72ch;margin:8px 0 20px;font-size:15px;display:block;overflow-x:auto}.legal-table th,.legal-table td{text-align:left;vertical-align:top;border:1px solid var(--line);padding:14px 16px;line-height:1.65}.legal-table th{background:var(--surface-2);color:var(--ink);letter-spacing:.02em;font-size:13.5px;font-weight:600}.legal-table td{color:var(--ink-soft)}.logo{align-items:center;height:26px;display:inline-flex}.logo svg{width:auto;height:100%;display:block}.logo .lm-word,.logo .lm-mark{fill:var(--ink)}:root[data-theme=dark] .logo .lm-word,:root[data-theme=dark] .logo .lm-mark{fill:#fff}.clients{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.clients-inner{flex-wrap:wrap;align-items:center;gap:26px;padding:26px 0;display:flex}.clients-lbl{font-family:var(--font-geist-mono),monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;border-right:1px solid var(--line);padding-right:26px;font-size:12px}.clients-names{flex-wrap:wrap;flex:1;align-items:center;gap:14px 34px;display:flex}.clients-names span{letter-spacing:-.02em;color:var(--ink-soft);opacity:.85;font-size:16px;font-weight:600;transition:color .2s,opacity .2s}.clients-names span:hover{color:var(--accent-ink);opacity:1}@media (width<=760px){.clients-lbl{border-right:0;padding-right:0}}.scorecard{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=760px){.scorecard{grid-template-columns:repeat(2,1fr)}}.score{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px 22px;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;overflow:hidden}.score:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-line);transform:translateY(-4px)}.score .s-num{font-family:var(--font-geist-mono),monospace;letter-spacing:-.04em;color:var(--ink);font-size:clamp(34px,4vw,46px);font-weight:640;line-height:1}.score .s-num em{color:var(--accent);font-style:normal}.score .s-lbl{color:var(--ink-soft);margin-top:12px;font-size:14.5px;line-height:1.42}.score .s-spark{opacity:.5;width:46px;height:20px;position:absolute;top:18px;right:16px}.badges{flex-wrap:wrap;align-items:center;gap:12px;margin-top:34px;display:flex}.badge{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;align-items:center;gap:9px;padding:10px 16px;font-size:14px;font-weight:500;display:inline-flex}.badge i{width:16px;height:16px;display:inline-block}.badge i svg{width:16px;height:16px;stroke:var(--accent);fill:none;stroke-width:1.8px}.cases{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (width<=860px){.cases{grid-template-columns:1fr}}.case{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;padding:26px 24px 24px;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex}.case .c-img{aspect-ratio:16/9;background:var(--surface-2);border-radius:17px 17px 0 0;margin:-26px -24px 22px;overflow:hidden}.case .c-img img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.case:hover .c-img img{transform:scale(1.04)}.case:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-line);transform:translateY(-5px)}.case .c-tag{font-family:var(--font-geist-mono),monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:7px;align-self:flex-start;padding:6px 11px;font-size:12px}.case h3{letter-spacing:-.03em;margin:20px 0 12px;font-size:25px;font-weight:640}.case p{color:var(--ink-soft);margin:0 0 20px;font-size:15px;line-height:1.6}.case .c-metric{border-top:1px solid var(--line);font-family:var(--font-geist-mono),monospace;letter-spacing:.04em;color:var(--ink);margin-top:auto;padding-top:16px;font-size:13px}.case .c-metric b{color:var(--accent-ink)}.place-card{aspect-ratio:1/.92;box-shadow:var(--shadow-lg);border:1px solid var(--line);border-radius:20px;position:relative;overflow:hidden}.place-card img{object-fit:cover;will-change:transform;width:100%;height:122%;position:absolute;top:-11%;left:0}.place-card .place-scrim{background:linear-gradient(#080a1400 40%,#080a14b8 100%);position:absolute;inset:0}.place-card .place-meta{color:#fff;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:20px;left:22px;right:22px}.place-card .place-meta .pm-city{letter-spacing:-.02em;font-size:22px;font-weight:640;font-family:var(--font-geist-sans),sans-serif}.place-card .place-meta .pm-coords{font-family:var(--font-geist-mono),monospace;letter-spacing:.06em;text-align:right;opacity:.85;font-size:12px;line-height:1.6}.place-card .place-tag{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:var(--font-geist-mono),monospace;letter-spacing:.08em;text-transform:uppercase;color:#0a0b0d;background:#ffffffe6;border-radius:8px;align-items:center;gap:8px;padding:8px 13px;font-size:12px;display:inline-flex;position:absolute;top:16px;left:16px}.place-card .place-tag i{background:var(--accent);border-radius:50%;width:7px;height:7px}.closing.has-image{color:#fff}.closing.has-image:before{display:none}.closing .closing-bg{z-index:-2;position:absolute;inset:0}.closing .closing-bg img{object-fit:cover;will-change:transform;width:100%;height:128%;position:absolute;top:-14%;left:0}.closing .closing-bg:after{content:"";background:linear-gradient(#060810c7,#0608109e 55%,#060810d1);position:absolute;inset:0}.closing.has-image .eyebrow{color:#cdd6ff}.closing.has-image .eyebrow i{background:#8ba0ff;box-shadow:0 0 0 4px #8ba0ff33}.closing.has-image h2{color:#fff}.closing.has-image .lede{color:#ffffffd1}.parallax-band{text-align:center;color:#fff;border-block:1px solid var(--line);place-items:center;min-height:66vh;padding:clamp(88px,11vw,132px) 0;display:grid;position:relative;overflow:hidden}.pb-bg{z-index:-2;position:absolute;inset:0}.pb-bg img{object-fit:cover;will-change:transform;width:100%;height:170%;position:absolute;top:-35%;left:0}.pb-bg:after{content:"";background:linear-gradient(#060810bd,#06081094 50%,#060810cc);position:absolute;inset:0}.pb-content{max-width:920px;position:relative}.pb-content .eyebrow{color:#cdd6ff;margin-bottom:22px}.pb-content .eyebrow i{background:#8ba0ff;box-shadow:0 0 0 4px #8ba0ff38}.pb-content h2{color:#fff;font-size:clamp(38px,5.6vw,76px);line-height:1.01}.pb-content h2 em{color:#9fb2ff;font-style:normal}.pb-content .lede{color:#ffffffd1;max-width:640px;margin:26px auto 0}.clients-viewport{flex:1;overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.clients-track{align-items:center;gap:44px;width:max-content;animation:34s linear infinite marquee;display:flex}.clients-track:hover{animation-play-state:paused}.clients-track span{letter-spacing:-.02em;color:var(--ink-soft);opacity:.8;white-space:nowrap;font-size:16px;font-weight:600;transition:color .2s,opacity .2s}.clients-track span:hover{color:var(--accent-ink);opacity:1}@keyframes marquee{to{transform:translate(calc(-50% - 22px))}}.gauge-card{flex-direction:column;display:flex}.gauge-wrap{flex:1;place-items:center;padding:14px 0 6px;display:grid}.gauge{width:172px;height:172px}.gauge-track{fill:none;stroke:var(--line);stroke-width:12px}.gauge-arc{fill:none;stroke:url(#gaugeGrad);stroke-width:12px;stroke-linecap:round;stroke-dasharray:var(--c);stroke-dashoffset:var(--c);transition:stroke-dashoffset 1.5s cubic-bezier(.3,.7,.2,1) .2s}.is-visible .gauge-arc{stroke-dashoffset:var(--off)}.gauge-num{font-family:var(--font-geist-sans),sans-serif;letter-spacing:-.04em;fill:var(--ink);font-size:40px;font-weight:680}.gauge-num .gauge-unit{fill:var(--accent);font-size:22px;font-weight:600}.gauge-cap{font-family:var(--font-geist-mono),monospace;letter-spacing:.1em;text-transform:uppercase;fill:var(--muted);font-size:12px}.s-spark path{stroke-dasharray:90;stroke-dashoffset:90px;transition:stroke-dashoffset 1.2s .35s}.is-visible .s-spark path{stroke-dashoffset:0}.curve-pulse{fill:none;stroke:var(--accent);stroke-width:1.5px;opacity:0;transform-box:fill-box;transform-origin:50%}.is-visible .curve-pulse{animation:2.8s ease-out 1.7s infinite pulsering}@keyframes pulsering{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}.decay-line{stroke-dasharray:640;stroke-dashoffset:640px;transition:stroke-dashoffset 1.6s .2s}.is-visible .decay-line{stroke-dashoffset:0}.decay-fade{opacity:0;transition:opacity .9s .3s}.is-visible .decay-fade{opacity:1}.decay-dot{opacity:0;transition:opacity .4s 1.5s}.is-visible .decay-dot{opacity:1}.flow:before{transform-origin:0;transition:transform 1.1s cubic-bezier(.3,.7,.2,1) .15s;transform:scaleX(0)}.flow.is-visible:before{transform:scaleX(1)}.flow-node{opacity:0;transition:opacity .5s,transform .5s cubic-bezier(.34,1.56,.64,1);transform:scale(.55)}.flow.is-visible .flow-node{opacity:1;transform:scale(1)}.flow.is-visible .flow-step:first-child .flow-node{transition-delay:.25s}.flow.is-visible .flow-step:nth-child(2) .flow-node{transition-delay:.45s}.flow.is-visible .flow-step:nth-child(3) .flow-node{transition-delay:.65s}.flow.is-visible .flow-step:nth-child(4) .flow-node{transition-delay:.85s}@media (width<=760px){.flow:before{display:none}.flow-node{opacity:1;transform:none}}.hero-aura{animation:14s ease-in-out infinite alternate aura}@keyframes aura{0%{transform:translate(0)scale(1)}to{transform:translate(-3%,4%)scale(1.06)}}[data-reveal]{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0s);transform:translateY(22px)}[data-reveal].is-visible{opacity:1;transform:none}@media (width<=900px){.hero-grid{grid-template-columns:1fr}.chart-card{order:2}.principles{grid-template-columns:1fr}}@media (width<=820px){.nav-links,.nav-cta{display:none}.menu-button{display:block}.nav-links.open{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;gap:6px;margin:0;padding:16px;display:flex;position:absolute;top:70px;left:12px;right:12px}.nav-links.open a{border-bottom:1px solid var(--line-soft);padding:12px 8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation:none!important}[data-reveal]{opacity:1;transform:none}.curve-line{stroke-dashoffset:0}.curve-area,.curve-dot{opacity:1}.bar-fill{width:var(--w)}.ba-bar.before,.ba-bar.after{height:var(--h)}.wv-box,.wv-label,.wv-dot,.wv-hot-label,.wv-line.dashed{opacity:1}.wv-check,.wv-line.solid{stroke-dashoffset:0}.wv-dot{transform:none}.wt-progress{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}

/* ============ WordPress additions ============ */
/* Theme toggle carries both icons; CSS picks per theme (JS only flips data-theme). */
.theme-toggle .i-sun { display:none; }
:root[data-theme="dark"] .theme-toggle .i-sun { display:block; }
:root[data-theme="dark"] .theme-toggle .i-moon { display:none; }
/* WP admin bar offset when logged in */
body.admin-bar .site-header { top:32px; }
body.admin-bar .services-drawer { top:102px; }

/* ============ services drawer (nav) ============ */
.nav-drawer-trigger { background:none; border:0; padding:4px 0; font:inherit; color:inherit; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.nav-drawer-trigger:hover { color:var(--ink); }
.nav-drawer-trigger svg { width:14px; height:14px; stroke:currentColor; stroke-width:2; fill:none; transition:transform .2s ease; }
.nav-drawer-trigger[aria-expanded="true"] svg { transform:rotate(180deg); }

.services-drawer { position:absolute; top:100%; left:0; right:0; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:var(--shadow-lg); }
.services-drawer[hidden] { display:none; }
.services-drawer-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:2px; padding:28px 0; position:relative; }
.sd-item { display:flex; flex-direction:column; gap:8px; padding:20px 22px; border-radius:14px; text-decoration:none; color:inherit; position:relative; transition:background .18s ease; }
.sd-item:hover { background:var(--surface-2); }
.sd-item:hover .sd-arw { opacity:1; transform:translate(2px,-2px); }
.sd-num { font-family:var(--font-geist-mono), monospace; color:var(--muted); font-size:13px; }
.sd-item h3 { font-size:16.5px; font-weight:600; letter-spacing:-.01em; margin:0; }
.sd-item p { font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:0; }
.sd-arw { position:absolute; top:20px; right:22px; opacity:0; transition:opacity .18s ease, transform .18s ease; color:var(--accent-ink); }
.sd-all { grid-column:1 / -1; display:flex; align-items:center; justify-content:center; gap:8px; margin-top:8px; padding-top:20px; border-top:1px solid var(--line); font-size:14.5px; font-weight:500; color:var(--accent-ink); text-decoration:none; }
.sd-all:hover { text-decoration:underline; }

@media (width<=820px) {
  /* .services-drawer stays position:absolute/top:100% of the (position:fixed) header on every
     breakpoint — it's a DOM sibling of .nav-links, not nested inside it, so switching to static
     positioning here would drop it into the header's flex row instead of below it. */
  .nav-drawer-trigger { justify-content:space-between; width:100%; padding:12px 8px; }
  .services-drawer-grid { grid-template-columns:1fr; padding:10px; gap:2px; }
  .sd-item { padding:14px 12px; }
  .sd-arw { display:none; }
}

/* ============ service pages ============ */
.svc-hero .lede { max-width:640px; }
.svc-intro { padding-top:0; }

/* Editorial split for intro sections: heading holds the left column, body the right.
   Body is intentionally not capped at .sec-head.split's 400px — these paragraphs are
   full arguments, not short supporting lines, and 400px made them a tall thin column. */
.svc-intro-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(30px,5vw,64px); align-items:start; }
.svc-intro-grid h2 { margin:0; }
.svc-intro-body { font-size:17px; line-height:1.75; color:var(--ink-soft); }
.svc-intro-body p { margin:0; }
.svc-intro-grid + .svc-cards, .svc-intro-grid + .svc-chips { margin-top:clamp(36px,4vw,52px); }
@media (width<=880px) { .svc-intro-grid { grid-template-columns:1fr; gap:18px; } }

/* Light pill row — used where the copy names things (tools, artefacts) that read
   better as discrete tokens than as a sentence. */
.svc-chips { display:flex; flex-wrap:wrap; gap:10px; }
.svc-chip { font-size:14.5px; font-weight:500; color:var(--ink-soft); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:9px 18px; box-shadow:var(--shadow-sm); }
.svc-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:20px; }
.svc-card { padding:24px; }
.svc-card .wc-title { margin-bottom:8px; }
@media (width<=920px) { .svc-cards { grid-template-columns:1fr; } }

/* ============ contact page ============ */
.contact-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:start; }
@media (width<=920px) { .contact-grid { grid-template-columns:1fr; } }

.contact-notice { border-radius:12px; padding:14px 18px; margin-bottom:22px; font-size:14.5px; font-weight:500; }
.contact-notice.ok { background:rgba(16,185,129,.1); color:#0a8a5f; border:1px solid rgba(16,185,129,.25); }
:root[data-theme="dark"] .contact-notice.ok { color:#3ddba0; }
.contact-notice.err { background:rgba(220,38,38,.08); color:#c0362c; border:1px solid rgba(220,38,38,.22); }
:root[data-theme="dark"] .contact-notice.err { color:#ff8a80; }
.contact-notice a { color:inherit; text-decoration:underline; }

.contact-form { display:grid; gap:20px; }
.contact-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cf-field { display:grid; gap:8px; }
.cf-field label { font-size:13.5px; font-weight:600; color:var(--ink); }
.cf-optional { font-weight:400; color:var(--muted); }
.cf-field input, .cf-field textarea, .cf-field select { font:inherit; font-size:15.5px; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:12px 14px; color:var(--ink); width:100%; transition:border-color .18s ease, box-shadow .18s ease; }
.cf-field input:focus, .cf-field textarea:focus, .cf-field select:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.cf-field textarea { resize:vertical; min-height:100px; }
.cf-phone-row { display:grid; grid-template-columns:150px 1fr; gap:10px; }
.cf-dial { padding-right:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (width<=480px) { .cf-phone-row { grid-template-columns:1fr; } }
.cf-submit { border:0; cursor:pointer; margin-top:6px; justify-self:start; }

.contact-uae { background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:32px 30px; box-shadow:var(--shadow-sm); }
.contact-address { font-style:normal; color:var(--ink-soft); line-height:1.7; font-size:15.5px; margin:14px 0 26px; }
.contact-people { display:grid; gap:18px; margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.contact-person-name { display:block; font-size:13px; color:var(--muted); margin-bottom:3px; }
.contact-person-tel { font-size:16.5px; font-weight:600; color:var(--ink); text-decoration:none; }
.contact-person-tel:hover { color:var(--accent-ink); }

/* ============ insights (blog) ============ */
.insights-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:26px; }
.insight-card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow-sm); overflow:hidden; text-decoration:none; color:inherit; transition:transform .28s, box-shadow .28s, border-color .28s; }
.insight-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--accent-line); }
.insight-card .ic-img { aspect-ratio:16/9; background:var(--surface-2); overflow:hidden; }
.insight-card .ic-img img { width:100%; height:100%; object-fit:cover; display:block; }
.insight-card .ic-date { font-family:var(--font-geist-mono), monospace; font-size:12px; color:var(--muted); margin:22px 24px 0; }
.insight-card h2 { font-size:19px; font-weight:600; letter-spacing:-.01em; margin:10px 24px 0; line-height:1.35; }
.insight-card p { font-size:14.5px; line-height:1.6; color:var(--ink-soft); margin:10px 24px 0; }
.insight-card .ic-arw { font-size:13.5px; font-weight:500; color:var(--accent-ink); margin:16px 24px 22px; }
.insights-pagination { display:flex; justify-content:center; gap:16px; margin-top:48px; font-size:14.5px; }
.insights-pagination .page-numbers { padding:8px 14px; border-radius:8px; color:var(--ink-soft); text-decoration:none; }
.insights-pagination a.page-numbers:hover { background:var(--surface-2); }
.insights-pagination .current { background:var(--accent); color:#fff; }

.insight-post-img { aspect-ratio:16/9; border-radius:16px; overflow:hidden; margin:8px 0 36px; background:var(--surface-2); }
.insight-post-img img { width:100%; height:100%; object-fit:cover; display:block; }
.insight-post-body img { max-width:100%; height:auto; border-radius:12px; margin:20px 0; }

/* ============ consent banner ============ */
.consent-banner { position:fixed; left:20px; right:20px; bottom:20px; z-index:80; max-width:640px; margin-inline:auto; background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-lg); padding:20px 22px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.consent-banner[hidden] { display:none; }
.consent-copy p { margin:0; font-size:14px; line-height:1.55; color:var(--ink-soft); flex:1; min-width:220px; }
.consent-copy a { color:var(--accent-ink); text-decoration:underline; }
.consent-actions { display:flex; gap:10px; margin-left:auto; }
.consent-actions button { font:inherit; font-size:14px; font-weight:600; border-radius:9px; padding:9px 18px; cursor:pointer; border:1px solid var(--line); background:var(--surface); color:var(--ink); }
.consent-actions .consent-accept { background:var(--accent); border-color:var(--accent); color:#fff; }
@media (width<=560px) { .consent-banner { flex-direction:column; align-items:stretch; } .consent-actions { margin-left:0; } .consent-actions button { flex:1; } }

/* ============ service page fixes (Chinmay feedback round) ============ */
/* .flow defaults to 4 columns (matches the homepage's 4-step "How We Work"); every
   service page's process block has 5 steps, so the 5th was wrapping to its own row.
   flow-{n} is emitted dynamically from the actual step count rather than hardcoding 5,
   so this self-corrects if a block's step count ever changes. */
.flow-5 { grid-template-columns:repeat(5,1fr); }
.flow-5 .flow-step { padding:0 12px; }
.flow-5 .flow-node { width:52px; height:52px; font-size:14px; }
@media (width<=920px) { .flow-5 { grid-template-columns:1fr; gap:28px; } .flow-5:before { display:none; } .flow-5 .flow-step { padding:0; } }

/* svc-card icons (was text-only, read as empty per feedback) */
.svc-card .wc-ic { margin-bottom:16px; }

/* Copy + chart, side by side. Chart gets the larger column so the SVG has room to
   breathe; below 980px it stacks with the copy first so the argument still leads. */
.svc-split { display:grid; grid-template-columns:1fr 1.25fr; gap:clamp(32px,4vw,56px); align-items:center; }
.svc-split .lede { max-width:none; }
.svc-split .decay-legend { flex-wrap:wrap; margin-top:24px; }
@media (width<=980px) { .svc-split { grid-template-columns:1fr; gap:36px; } }
/* muted comparison bar — the "before" side of a before/after pair */
.bar-fill.muted { background:var(--line-strong); }

/* ============ /work/ case studies ============
   Deliberately a stack of full-width stories, not a thumbnail grid — per the note in the
   copy doc, a category grid reads as a conventional dev agency. Rows alternate side so the
   page has rhythm rather than repeating one card shape. */
.cs-list { display:flex; flex-direction:column; gap:clamp(56px,7vw,96px); }
.cs-item { display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(28px,4vw,56px); align-items:center; }
.cs-item:nth-child(even) .cs-media { order:2; }
.cs-media { border-radius:20px; overflow:hidden; background:var(--surface-2); border:1px solid var(--line); box-shadow:var(--shadow-sm); aspect-ratio:4/3; }
.cs-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.cs-item:hover .cs-media img { transform:scale(1.03); }

.cs-client { display:block; font-family:var(--font-geist-mono), monospace; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-ink); margin-bottom:14px; }
.cs-client em { display:block; font-style:normal; color:var(--muted); letter-spacing:.04em; margin-top:4px; }
.cs-headline { font-size:clamp(23px,2.5vw,31px); font-weight:600; letter-spacing:-.02em; line-height:1.25; margin:0 0 26px; }
.cs-block { margin-bottom:20px; }
.cs-block h4 { font-family:var(--font-geist-mono), monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:0 0 7px; font-weight:500; }
.cs-block p { font-size:15.5px; line-height:1.7; color:var(--ink-soft); margin:0; }

.cs-results { display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }
.cs-metric { display:flex; align-items:baseline; gap:9px; }
.cs-metric b { font-family:var(--font-geist-mono), monospace; font-size:27px; font-weight:640; letter-spacing:-.03em; color:var(--ink); line-height:1; }
.cs-metric span { font-size:13.5px; color:var(--ink-soft); line-height:1.4; }
/* outcome chip — used where there is no published figure, so the row never implies a stat */
.cs-metric.outcome { gap:7px; background:var(--accent-soft); border:1px solid var(--accent-line); border-radius:8px; padding:6px 12px; align-items:center; }
.cs-metric.outcome i { font-style:normal; color:var(--accent-ink); font-size:13px; }
.cs-metric.outcome span { color:var(--accent-ink); font-weight:500; font-size:13px; }

@media (width<=880px) {
  .cs-item { grid-template-columns:1fr; gap:24px; }
  .cs-item:nth-child(even) .cs-media { order:0; }
  .cs-media { aspect-ratio:16/9; }
}
