/* design-system.css */
/* Self-hosted Google Fonts (latin subset). Crimson Pro (display/logo serif), Archivo, IBM Plex Mono — OFL. */
@font-face {
  font-family: 'Archivo';
  font-style: italic;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/design/fonts/Archivo-italic-100_900.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: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/design/fonts/Archivo-normal-100_900.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("/design/fonts/IBMPlexMono-normal-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("/design/fonts/IBMPlexMono-normal-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;
}
@font-face {
  font-family: 'Crimson Pro';
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
  src: url("/design/fonts/CrimsonPro-italic-200_900.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: 'Crimson Pro';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("/design/fonts/CrimsonPro-normal-200_900.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;
}

:root{
/* Base — sampled from the logo + site icon */
--ink:#1A1A1A;--ink-deep:#0E0E0E;--ink-2:#3A3A38;--ink-3:#6B6A66;
--stone:#D5D5D5;--stone-2:#E6E5E1;--paper:#F4F3EF;--white:#FFFFFF;
--mint:#3FCAAE;--mint-deep:#167A67;--mint-wash:#DDF5EF;
/* Semantic status */
--success:#167A67;--warning:#B7790F;--danger:#C2402B;--info:#2B3134;
/* Semantic aliases — light (default) */
--surface-page:var(--paper);--surface-raised:var(--white);--surface-sunken:var(--stone-2);--surface-inverse:var(--ink);
--text-strong:var(--ink);--text-body:var(--ink-2);--text-muted:var(--ink-3);--text-inverse:var(--paper);--text-accent:var(--mint-deep);
--border-strong:var(--ink);--border-default:#C9C8C3;--border-subtle:#E0DFDA;
--accent:var(--mint);--accent-ink:var(--ink);--focus-ring:var(--mint);
--overlay-scrim:rgba(14,14,14,.72);
}
[data-theme="dark"]{
--surface-page:var(--ink-deep);--surface-raised:var(--ink);--surface-sunken:#151515;--surface-inverse:var(--paper);
--text-strong:var(--paper);--text-body:#CFCEC9;--text-muted:#8E8D88;--text-inverse:var(--ink);--text-accent:var(--mint);
--border-strong:var(--paper);--border-default:#3A3A38;--border-subtle:#262626;
}

:root{
/* Crimson Pro — the logo's serif — carries every display/heading moment */
--font-display:'Crimson Pro',Georgia,'Times New Roman',serif;
--font-serif:'Crimson Pro',Georgia,'Times New Roman',serif;
--font-sans:'Archivo','Helvetica Neue',Arial,sans-serif;
--font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
/* Fluid display scale — headlines are the brand */
--fs-mega:clamp(4.75rem,15vw,17.5rem); /* @kind font */
--fs-display:clamp(3.75rem,10vw,10.5rem); /* @kind font */
--fs-h1:clamp(3rem,6.8vw,7rem); /* @kind font */
--fs-h2:clamp(2.25rem,4.6vw,4.5rem); /* @kind font */
--fs-h3:clamp(1.75rem,2.8vw,2.75rem); /* @kind font */
--fs-h4:1.625rem; /* @kind font */
--fs-lead:clamp(1.25rem,1.6vw,1.5rem); /* @kind font */
--fs-body:1.0625rem; /* @kind font */
--fs-sm:.9375rem; /* @kind font */
--fs-xs:.8125rem; /* @kind font */
--fs-micro:.6875rem; /* @kind font */
--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
--fw-heavy:800; /* @kind font */
--fw-black:900; /* @kind font */
/* Crimson Pro weight axis 200–900 — animated for kinetic type */
--wght-kinetic-from:300; /* @kind font */
--wght-kinetic-to:900; /* @kind font */
--lh-tight:.9; /* @kind font */
--lh-snug:1; /* @kind font */
--lh-heading:1.08; /* @kind font */
--lh-body:1.55; /* @kind font */
--tracking-mega:-.04em; /* @kind font */
--tracking-display:-.035em; /* @kind font */
--tracking-heading:-.025em; /* @kind font */
--tracking-body:-.005em; /* @kind font */
--tracking-mono:.04em; /* @kind font */
--text-display-family:var(--font-display); /* @kind font */
--text-display-weight:var(--fw-bold); /* @kind font */
--text-body-family:var(--font-sans); /* @kind font */
}

:root{
--space-0:0;
--space-1:4px;
--space-2:8px;
--space-3:12px;
--space-4:16px;
--space-5:24px;
--space-6:32px;
--space-7:48px;
--space-8:64px;
--space-9:96px;
--space-10:128px;
--space-11:192px;

--gutter:clamp(20px,4vw,56px); /* @kind spacing */
--section-y:clamp(80px,12vw,192px); /* @kind spacing */
--container-max:1600px; /* @kind spacing */
--measure:62ch; /* @kind spacing */

/* Radii — deliberately tight. Square is the default. */
--radius-0:0;
--radius-1:2px;
--radius-2:4px;
--radius-full:999px;

/* Borders */
--border-hair:1px; /* @kind spacing */
--border-rule:2px; /* @kind spacing */

/* Elevation — used sparingly: overlays only */
--shadow-0:none;
--shadow-overlay:0 24px 64px -24px rgba(14,14,14,.35);
--shadow-pop:0 8px 24px -12px rgba(14,14,14,.28);

/* Motion */
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in-out:cubic-bezier(.7,0,.2,1); /* @kind other */
--ease-snap:cubic-bezier(.3,1.4,.5,1); /* @kind other */

--dur-fast:140ms; /* @kind other */
--dur-base:260ms; /* @kind other */
--dur-slow:520ms; /* @kind other */
--dur-reveal:900ms; /* @kind other */
--stagger:38ms; /* @kind other */

--z-nav:50; /* @kind other */
--z-overlay:80; /* @kind other */
--z-toast:90; /* @kind other */

}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--tracking-body)}
img{display:block;max-width:100%}
a{color:var(--text-strong);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-accent)}
::selection{background:var(--mint);color:var(--ink)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
h1,h2,h3,h4,p{margin:0;text-wrap:pretty}
/* Type utilities */
.sp-mega,.sp-display,.sp-h1,.sp-h2,.sp-h3,.sp-h4{font-family:var(--font-display);font-weight:var(--fw-heavy);color:var(--text-strong);text-wrap:balance}
.sp-mega{font-size:var(--fs-mega);line-height:var(--lh-tight);letter-spacing:var(--tracking-mega);font-weight:var(--fw-black)}
.sp-display{font-size:var(--fs-display);line-height:var(--lh-tight);letter-spacing:var(--tracking-display)}
.sp-h1{font-size:var(--fs-h1);line-height:var(--lh-snug);letter-spacing:var(--tracking-display)}
.sp-h2{font-size:var(--fs-h2);line-height:var(--lh-snug);letter-spacing:var(--tracking-heading)}
.sp-h3{font-size:var(--fs-h3);line-height:var(--lh-heading);letter-spacing:var(--tracking-heading);font-weight:var(--fw-bold)}
.sp-h4{font-size:var(--fs-h4);line-height:var(--lh-heading);letter-spacing:-.015em;font-weight:var(--fw-bold)}
.sp-serif{font-family:var(--font-serif);font-weight:var(--fw-bold);letter-spacing:-.02em}
.sp-serif-italic{font-family:var(--font-serif);font-style:italic;font-weight:var(--fw-regular);letter-spacing:-.02em}
.sp-lead{font-size:var(--fs-lead);line-height:1.4;color:var(--text-strong);letter-spacing:-.01em}
.sp-body{font-size:var(--fs-body);line-height:var(--lh-body)}
.sp-small{font-size:var(--fs-sm);line-height:1.5}
.sp-meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-mono);color:var(--text-muted)}
.sp-dot{color:var(--mint)}
.sp-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.sp-rule{border:0;border-top:var(--border-hair) solid var(--border-strong);margin:0}
@media (prefers-reduced-motion:reduce){html:not(.motion-enabled) *,html:not(.motion-enabled) *::before,html:not(.motion-enabled) *::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}

/* ---------- Button ---------- */
.sp-btn{position:relative;display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-sans);font-weight:var(--fw-semibold);letter-spacing:-.01em;line-height:1;border:1.5px solid var(--border-strong);border-radius:var(--radius-0);cursor:pointer;text-decoration:none;overflow:hidden;isolation:isolate;transition:color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out);white-space:nowrap}
.sp-btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-slow) var(--ease-out)}
.sp-btn:hover::before{transform:scaleX(1)}
.sp-btn:active{transform:translateY(1px)}
.sp-btn .sp-btn__arrow{display:inline-block;transition:transform var(--dur-base) var(--ease-out)}
.sp-btn:hover .sp-btn__arrow{transform:translateX(4px)}
.sp-btn--sm{font-size:var(--fs-xs);padding:9px 14px}
.sp-btn--md{font-size:var(--fs-sm);padding:14px 22px}
.sp-btn--lg{font-size:1.125rem;padding:20px 32px}
.sp-btn--primary{background:var(--surface-inverse);color:var(--text-inverse)}
.sp-btn--primary::before{background:var(--mint)}
.sp-btn--primary:hover{color:var(--ink);border-color:var(--mint)}
.sp-btn--secondary{background:transparent;color:var(--text-strong)}
.sp-btn--secondary::before{background:var(--surface-inverse)}
.sp-btn--secondary:hover{color:var(--text-inverse)}
.sp-btn--accent{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.sp-btn--accent::before{background:var(--ink)}
.sp-btn--accent:hover{color:var(--paper);border-color:var(--ink)}
.sp-btn--ghost{background:transparent;border-color:transparent;color:var(--text-strong);padding-left:0;padding-right:0}
.sp-btn--ghost::before{display:none}
.sp-btn--ghost::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1.5px;background:currentColor;transform:scaleX(.25);transform-origin:left;transition:transform var(--dur-slow) var(--ease-out)}
.sp-btn--ghost:hover::after{transform:scaleX(1)}
.sp-btn--block{width:100%;justify-content:space-between}
.sp-btn:disabled,.sp-btn[aria-disabled="true"]{opacity:.35;cursor:not-allowed;pointer-events:none}
/* ---------- IconButton ---------- */
.sp-iconbtn{display:inline-grid;place-items:center;width:44px;height:44px;border:1.5px solid var(--border-strong);background:transparent;color:var(--text-strong);border-radius:var(--radius-0);cursor:pointer;font-size:18px;line-height:1;transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}
.sp-iconbtn:hover{background:var(--surface-inverse);color:var(--text-inverse)}
.sp-iconbtn--round{border-radius:var(--radius-full)}
.sp-iconbtn--sm{width:36px;height:36px;font-size:15px}
.sp-iconbtn--bare{border-color:transparent}
.sp-iconbtn:disabled{opacity:.35;cursor:not-allowed}
/* ---------- ArrowLink ---------- */
.sp-alink{display:inline-flex;align-items:baseline;gap:.35em;color:var(--text-strong);text-decoration:none;font-weight:var(--fw-bold);letter-spacing:-.02em;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size var(--dur-slow) var(--ease-out),color var(--dur-fast)}
.sp-alink:hover{background-size:100% 1.5px;color:var(--text-strong)}
.sp-alink__arrow{display:inline-block;transition:transform var(--dur-base) var(--ease-out);color:var(--text-accent)}
.sp-alink:hover .sp-alink__arrow{transform:rotate(45deg)}
.sp-alink--sm{font-size:var(--fs-sm)}.sp-alink--md{font-size:1.25rem}.sp-alink--lg{font-size:var(--fs-h3)}
/* ---------- Tag / Badge ---------- */
.sp-tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-mono);line-height:1;padding:7px 10px;border:1px solid var(--border-default);color:var(--text-body);background:transparent;border-radius:var(--radius-0);cursor:default;transition:all var(--dur-fast) var(--ease-out)}
button.sp-tag{cursor:pointer}
button.sp-tag:hover{border-color:var(--border-strong);color:var(--text-strong)}
.sp-tag--selected{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--text-inverse)}
button.sp-tag--selected:hover{color:var(--text-inverse)}
.sp-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-mono);line-height:1;padding:5px 8px;border-radius:var(--radius-1);text-transform:uppercase;font-weight:500}
.sp-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.sp-badge--mint{background:var(--mint-wash);color:var(--mint-deep)}
.sp-badge--mint::before{background:var(--mint)}
.sp-badge--ink{background:var(--ink);color:var(--paper)}
.sp-badge--ink::before{background:var(--mint)}
.sp-badge--neutral{background:var(--stone-2);color:var(--ink-2)}
.sp-badge--danger{background:#F6E1DC;color:var(--danger)}
.sp-badge--warning{background:#F5EBD3;color:var(--warning)}
.sp-badge--plain::before{display:none}
/* ---------- Form fields ---------- */
.sp-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.sp-field__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-strong);display:flex;justify-content:space-between;gap:12px}
.sp-field__opt{font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:400;color:var(--text-muted);letter-spacing:var(--tracking-mono)}
.sp-field__hint{font-size:var(--fs-xs);color:var(--text-muted)}
.sp-field--error .sp-field__hint{color:var(--danger)}
.sp-input{width:100%;font:inherit;font-size:1.125rem;color:var(--text-strong);background:transparent;border:0;border-bottom:1.5px solid var(--border-default);border-radius:0;padding:10px 0 12px;outline:none;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.sp-input::placeholder{color:var(--text-muted);opacity:.8}
.sp-input:hover{border-bottom-color:var(--ink-3)}
.sp-input:focus{border-bottom-color:var(--border-strong);box-shadow:0 1.5px 0 0 var(--mint)}
.sp-field--error .sp-input{border-bottom-color:var(--danger)}
.sp-input:disabled{opacity:.4;cursor:not-allowed}
.sp-input--boxed{border:1.5px solid var(--border-default);padding:12px 14px;background:var(--surface-raised)}
.sp-input--boxed:focus{border-color:var(--border-strong);box-shadow:inset 0 -2px 0 var(--mint)}
textarea.sp-input{resize:vertical;min-height:120px;line-height:1.5}
.sp-select{position:relative}
.sp-select .sp-input{appearance:none;-webkit-appearance:none;padding-right:28px;cursor:pointer}
.sp-select::after{content:"↓";position:absolute;right:2px;bottom:13px;font-size:14px;color:var(--text-strong);pointer-events:none}
/* Checkbox / Radio / Switch */
.sp-check{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-size:var(--fs-sm);color:var(--text-strong);user-select:none}
.sp-check input{position:absolute;opacity:0;pointer-events:none}
.sp-check__box{position:relative;flex:none;width:20px;height:20px;border:1.5px solid var(--border-strong);background:transparent;transition:background var(--dur-fast) var(--ease-out)}
.sp-check__box--radio{border-radius:50%}
.sp-check input:checked+.sp-check__box{background:var(--ink)}
.sp-check input:checked+.sp-check__box::after{content:"";position:absolute;left:5.5px;top:1.5px;width:5px;height:10px;border:solid var(--mint);border-width:0 2px 2px 0;transform:rotate(45deg)}
.sp-check input:checked+.sp-check__box--radio{background:transparent}
.sp-check input:checked+.sp-check__box--radio::after{left:3.5px;top:3.5px;width:10px;height:10px;border:0;border-radius:50%;background:var(--mint);transform:none}
.sp-check input:focus-visible+.sp-check__box{outline:2px solid var(--focus-ring);outline-offset:2px}
.sp-check--disabled{opacity:.4;cursor:not-allowed}
.sp-switch__track{position:relative;flex:none;width:44px;height:24px;border:1.5px solid var(--border-strong);border-radius:var(--radius-1);transition:background var(--dur-base) var(--ease-out)}
.sp-switch__track::after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;background:var(--ink);border-radius:1px;transition:transform var(--dur-base) var(--ease-snap),background var(--dur-base)}
.sp-check input:checked+.sp-switch__track{background:var(--ink)}
.sp-check input:checked+.sp-switch__track::after{transform:translateX(20px);background:var(--mint);border-radius:50%}
.sp-check input:focus-visible+.sp-switch__track{outline:2px solid var(--focus-ring);outline-offset:2px}
/* ---------- ProjectCard ---------- */
.sp-pcard{display:flex;flex-direction:column;gap:16px;color:inherit;text-decoration:none;min-width:0}
.sp-pcard:hover{color:inherit}
.sp-pcard__media{position:relative;overflow:hidden;background:var(--stone-2)}
.sp-pcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out),filter var(--dur-slow)}
.sp-pcard:hover .sp-pcard__media img{transform:scale(1.045)}
.sp-pcard__ph{position:absolute;inset:0;display:grid;place-items:center;background:repeating-linear-gradient(135deg,var(--stone-2) 0 10px,#DCDBD6 10px 11px);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3)}
.sp-pcard__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.sp-pcard__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:1.5rem;letter-spacing:-.025em;line-height:1.1;color:var(--text-strong)}
.sp-pcard__arrow{font-size:1.5rem;color:var(--text-strong);transform:translate(-8px,0);opacity:0;transition:all var(--dur-base) var(--ease-out)}
.sp-pcard:hover .sp-pcard__arrow{transform:none;opacity:1}
.sp-pcard__meta{display:flex;gap:8px;flex-wrap:wrap}
/* ---------- ServiceRow ---------- */
.sp-srow{display:grid;grid-template-columns:80px minmax(0,1.4fr) minmax(0,1fr) 48px;gap:24px;align-items:baseline;padding:32px 0;border-top:1.5px solid var(--border-strong);color:var(--text-strong);text-decoration:none;cursor:pointer;transition:padding var(--dur-slow) var(--ease-out)}
.sp-srow:hover{color:var(--text-strong);padding-left:12px}
.sp-srow__num{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--tracking-mono);color:var(--text-muted)}
.sp-srow__title{font-family:var(--font-display);font-weight:var(--fw-heavy);font-size:var(--fs-h2);line-height:1;letter-spacing:var(--tracking-heading);transition:font-weight var(--dur-slow) var(--ease-out),letter-spacing var(--dur-slow) var(--ease-out)}
.sp-srow:hover .sp-srow__title{font-weight:var(--fw-light);font-style:italic;letter-spacing:-.04em}
.sp-srow__title .sp-dot{display:inline-block;transform:scale(0);transition:transform var(--dur-base) var(--ease-snap)}
.sp-srow:hover .sp-srow__title .sp-dot{transform:scale(1)}
.sp-srow__desc{font-size:var(--fs-sm);color:var(--text-body);max-width:42ch}
.sp-srow__arrow{justify-self:end;font-size:1.75rem;transition:transform var(--dur-base) var(--ease-out)}
.sp-srow:hover .sp-srow__arrow{transform:rotate(-45deg)}
@media (max-width:720px){.sp-srow{grid-template-columns:48px minmax(0,1fr) 32px}.sp-srow__desc{grid-column:2/3}}
/* ---------- Quote ---------- */
.sp-quote{margin:0;display:flex;flex-direction:column;gap:28px}
.sp-quote__text{font-family:var(--font-serif);font-style:italic;font-weight:var(--fw-light);font-size:var(--fs-h2);line-height:1.12;letter-spacing:-.025em;color:var(--text-strong);text-wrap:balance;margin:0}
.sp-quote--sm .sp-quote__text{font-size:var(--fs-h3)}
.sp-quote__by{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-strong);font-weight:var(--fw-semibold)}
/* ---------- NavBar ---------- */
.sp-nav{position:sticky;top:0;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px var(--gutter);background:color-mix(in srgb,var(--surface-page) 88%,transparent);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border-bottom:1px solid var(--border-subtle);color:var(--text-strong)}
.sp-nav--overlay{position:absolute;left:0;right:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom-color:transparent;color:var(--paper)}
.sp-nav__brand{display:flex;align-items:center;text-decoration:none;color:inherit;font-family:var(--font-serif);font-weight:800;font-size:1.5rem}
.sp-nav__brand img{height:34px;width:auto}
.sp-nav--overlay .sp-nav__brand img{filter:none}
.sp-nav__links{display:flex;align-items:center;gap:32px;list-style:none;margin:0;padding:0}
.sp-nav__link{position:relative;color:inherit;text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);background:none;border:0;padding:4px 0;cursor:pointer;font-family:inherit}
.sp-nav__link:hover{color:inherit}
.sp-nav__link::after{content:"";position:absolute;left:50%;bottom:-6px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--mint);transform:scale(0);transition:transform var(--dur-base) var(--ease-snap)}
.sp-nav__link:hover::after,.sp-nav__link[aria-current="page"]::after{transform:scale(1)}
.sp-nav__right{display:flex;align-items:center;gap:20px}
.sp-nav__burger{display:none}
@media (max-width:860px){.sp-nav__links{display:none}.sp-nav__burger{display:inline-grid}.sp-nav__cta{display:none}}
/* ---------- Tabs ---------- */
.sp-tabs{display:flex;gap:28px;border-bottom:1px solid var(--border-default);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.sp-tabs::-webkit-scrollbar{display:none}
.sp-tab{position:relative;background:none;border:0;padding:0 0 14px;font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:color var(--dur-fast)}
.sp-tab:hover{color:var(--text-strong)}
.sp-tab[aria-selected="true"]{color:var(--text-strong)}
.sp-tab::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--text-strong);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-slow) var(--ease-out)}
.sp-tab[aria-selected="true"]::after{transform:scaleX(1)}
.sp-tab__count{font-family:var(--font-mono);font-size:var(--fs-micro);margin-left:6px;color:var(--text-muted);vertical-align:super}
.sp-tabs--large .sp-tab{font-family:var(--font-display);font-weight:var(--fw-heavy);font-size:var(--fs-h3);letter-spacing:-.03em}
/* ---------- Dialog ---------- */
.sp-dialog__scrim{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--overlay-scrim);display:grid;place-items:center;padding:var(--gutter);animation:sp-fade var(--dur-base) var(--ease-out)}
.sp-dialog{position:relative;width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--surface-raised);color:var(--text-body);padding:40px;box-shadow:var(--shadow-overlay);animation:sp-rise var(--dur-slow) var(--ease-out)}
.sp-dialog--inline{position:relative;animation:none}
.sp-dialog__close{position:absolute;top:16px;right:16px}
.sp-dialog__title{font-family:var(--font-display);font-weight:var(--fw-heavy);font-size:2rem;letter-spacing:-.035em;line-height:1.05;color:var(--text-strong);margin:0 0 12px;padding-right:48px}
.sp-dialog__body{font-size:var(--fs-body)}
.sp-dialog__actions{display:flex;gap:12px;justify-content:flex-start;margin-top:32px;flex-wrap:wrap}
/* ---------- Toast ---------- */
.sp-toast{display:flex;align-items:center;gap:16px;min-width:300px;max-width:480px;background:var(--ink);color:var(--paper);padding:16px 18px;font-size:var(--fs-sm);box-shadow:var(--shadow-pop);animation:sp-rise var(--dur-slow) var(--ease-out)}
.sp-toast__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--mint)}
.sp-toast--danger .sp-toast__dot{background:#F07B66}
.sp-toast__msg{flex:1;min-width:0}
.sp-toast__action{background:none;border:0;color:var(--mint);font:inherit;font-weight:var(--fw-semibold);cursor:pointer;padding:0}
.sp-toast__close{background:none;border:0;color:var(--stone);cursor:pointer;font-size:16px;padding:0 0 0 4px;line-height:1}
.sp-toast-stack{position:fixed;z-index:var(--z-toast);bottom:24px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px}
/* ---------- Tooltip ---------- */
.sp-tip{position:relative;display:inline-flex}
.sp-tip__bubble{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,4px);background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-mono);line-height:1.3;padding:7px 9px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast),transform var(--dur-base) var(--ease-out);z-index:5}
.sp-tip--bottom .sp-tip__bubble{bottom:auto;top:calc(100% + 10px);transform:translate(-50%,-4px)}
.sp-tip:hover .sp-tip__bubble,.sp-tip:focus-within .sp-tip__bubble,.sp-tip--open .sp-tip__bubble{opacity:1;transform:translate(-50%,0)}
/* ---------- KineticHeading ---------- */
.sp-kh{font-family:var(--font-display);font-weight:var(--fw-heavy);color:var(--text-strong);line-height:var(--lh-tight);letter-spacing:var(--tracking-display);margin:0}
.sp-kh--mega{font-size:var(--fs-mega);letter-spacing:var(--tracking-mega);font-weight:var(--fw-black)}
.sp-kh--display{font-size:var(--fs-display)}
.sp-kh--h1{font-size:var(--fs-h1);line-height:var(--lh-snug)}
.sp-kh--h2{font-size:var(--fs-h2);line-height:var(--lh-snug)}
.sp-kh__line{display:block}
.sp-kh__mask{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.2em;margin-bottom:-.2em}
.sp-kh__w{display:inline-block;transform:translateY(130%);transition:transform var(--dur-reveal) var(--ease-out)}
.sp-kh--in .sp-kh__w{transform:none}
.sp-kh__ch{display:inline-block;transition:font-weight var(--dur-slow) var(--ease-out),color var(--dur-base)}
.sp-kh--stretch .sp-kh__ch{font-weight:var(--wght-kinetic-from);cursor:default}
.sp-kh--stretch.sp-kh--in .sp-kh__ch{font-weight:var(--fw-heavy)}
.sp-kh--stretch.sp-kh--in .sp-kh__ch:hover{font-weight:200;color:var(--text-accent);transition-delay:0ms!important}
.sp-kh__cycle{display:inline-grid;overflow:hidden;vertical-align:top;padding-bottom:.2em;margin-bottom:-.2em}
.sp-kh__cycle>span{grid-area:1/1;transition:transform var(--dur-reveal) var(--ease-out),opacity var(--dur-slow);transform:translateY(130%);opacity:0}
.sp-kh__cycle>span[data-state="on"]{transform:none;opacity:1}
.sp-kh__cycle>span[data-state="off"]{transform:translateY(-130%);opacity:0}
.sp-kh__accent{color:var(--text-accent)}
.sp-kh__serif{font-family:var(--font-serif);font-style:italic;font-weight:var(--fw-light);letter-spacing:-.04em}
/* ---------- Marquee ---------- */
.sp-marquee{overflow:hidden;white-space:nowrap;border-top:1.5px solid var(--border-strong);border-bottom:1.5px solid var(--border-strong);padding:.12em 0;color:var(--text-strong);user-select:none}
.sp-marquee--bare{border:0}
.sp-marquee--inverse{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sp-marquee__track{display:inline-flex;animation:sp-marquee var(--sp-mq-dur,30s) linear infinite}
.sp-marquee--reverse .sp-marquee__track{animation-direction:reverse}
.sp-marquee:hover .sp-marquee__track{animation-play-state:paused}
.sp-marquee__item{display:inline-flex;align-items:center;font-family:var(--font-display);font-weight:var(--fw-heavy);letter-spacing:var(--tracking-display);line-height:1.05}
.sp-marquee__item::after{content:"";display:inline-block;width:.22em;height:.22em;border-radius:50%;background:var(--mint);margin:0 .5em;transform:translateY(.12em)}
.sp-marquee__item:nth-child(even){font-family:var(--font-serif);font-style:italic;font-weight:var(--fw-light);letter-spacing:-.04em}
.sp-marquee--plain .sp-marquee__item:nth-child(even){font-family:var(--font-display);font-style:normal;font-weight:var(--fw-heavy);letter-spacing:var(--tracking-display)}
@keyframes sp-marquee{to{transform:translateX(-50%)}}
@keyframes sp-fade{from{opacity:0}}
@keyframes sp-rise{from{opacity:0;transform:translateY(16px)}}

/* Generated by work/font-metrics/generate_fallbacks.py.
   Width-calibrated local fallbacks reduce reflow while brand fonts load.
   Brand font files, weights, font-display and final appearance are unchanged.
   Calibration uses advance widths; browser cold-load QA remains required. */
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia");
  font-style: normal;
  font-weight: 200;
  size-adjust: 87.74806%;
  ascent-override: 102.16573%;
  descent-override: 24.48416%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Italic"), local("Georgia-Italic");
  font-style: italic;
  font-weight: 200;
  size-adjust: 76.47525%;
  ascent-override: 117.22543%;
  descent-override: 28.09324%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia");
  font-style: normal;
  font-weight: 300;
  size-adjust: 88.95466%;
  ascent-override: 100.77993%;
  descent-override: 24.15205%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Italic"), local("Georgia-Italic");
  font-style: italic;
  font-weight: 300;
  size-adjust: 78.17822%;
  ascent-override: 114.67189%;
  descent-override: 27.48128%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia");
  font-style: normal;
  font-weight: 400;
  size-adjust: 90.57864%;
  ascent-override: 98.97305%;
  descent-override: 23.71903%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Italic"), local("Georgia-Italic");
  font-style: italic;
  font-weight: 400;
  size-adjust: 80.52277%;
  ascent-override: 111.33302%;
  descent-override: 26.68112%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia");
  font-style: normal;
  font-weight: 500;
  size-adjust: 92.42269%;
  ascent-override: 96.99830%;
  descent-override: 23.24578%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Italic"), local("Georgia-Italic");
  font-style: italic;
  font-weight: 500;
  size-adjust: 83.11287%;
  ascent-override: 107.86348%;
  descent-override: 25.84964%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold"), local("Georgia-Bold");
  font-style: normal;
  font-weight: 600;
  size-adjust: 80.79419%;
  ascent-override: 110.95902%;
  descent-override: 26.59149%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold Italic"), local("Georgia-BoldItalic");
  font-style: italic;
  font-weight: 600;
  size-adjust: 73.21591%;
  ascent-override: 122.44393%;
  descent-override: 29.34386%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold"), local("Georgia-Bold");
  font-style: normal;
  font-weight: 700;
  size-adjust: 82.77316%;
  ascent-override: 108.30616%;
  descent-override: 25.95573%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold Italic"), local("Georgia-BoldItalic");
  font-style: italic;
  font-weight: 700;
  size-adjust: 76.34123%;
  ascent-override: 117.43123%;
  descent-override: 28.14256%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold"), local("Georgia-Bold");
  font-style: normal;
  font-weight: 800;
  size-adjust: 84.86893%;
  ascent-override: 105.63163%;
  descent-override: 25.31477%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold Italic"), local("Georgia-BoldItalic");
  font-style: italic;
  font-weight: 800;
  size-adjust: 79.59452%;
  ascent-override: 112.63142%;
  descent-override: 26.99228%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold"), local("Georgia-Bold");
  font-style: normal;
  font-weight: 900;
  size-adjust: 86.73761%;
  ascent-override: 103.35590%;
  descent-override: 24.76939%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Crimson Pro Fallback';
  src: local("Georgia Bold Italic"), local("Georgia-BoldItalic");
  font-style: italic;
  font-weight: 900;
  size-adjust: 82.43694%;
  ascent-override: 108.74790%;
  descent-override: 26.06159%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial"), local("ArialMT");
  font-style: normal;
  font-weight: 300;
  size-adjust: 96.88454%;
  ascent-override: 90.62333%;
  descent-override: 21.67529%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Italic"), local("Arial-ItalicMT");
  font-style: italic;
  font-weight: 300;
  size-adjust: 97.04254%;
  ascent-override: 90.47578%;
  descent-override: 21.63999%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial"), local("ArialMT");
  font-style: normal;
  font-weight: 400;
  size-adjust: 98.68917%;
  ascent-override: 88.96620%;
  descent-override: 21.27893%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Italic"), local("Arial-ItalicMT");
  font-style: italic;
  font-weight: 400;
  size-adjust: 98.95777%;
  ascent-override: 88.72471%;
  descent-override: 21.22117%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial"), local("ArialMT");
  font-style: normal;
  font-weight: 500;
  size-adjust: 100.47913%;
  ascent-override: 87.38133%;
  descent-override: 20.89986%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Italic"), local("Arial-ItalicMT");
  font-style: italic;
  font-weight: 500;
  size-adjust: 100.84253%;
  ascent-override: 87.06644%;
  descent-override: 20.82455%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-style: normal;
  font-weight: 600;
  size-adjust: 95.10932%;
  ascent-override: 92.31482%;
  descent-override: 22.07986%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold Italic"), local("Arial-BoldItalicMT");
  font-style: italic;
  font-weight: 600;
  size-adjust: 95.56391%;
  ascent-override: 91.87569%;
  descent-override: 21.97482%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-style: normal;
  font-weight: 700;
  size-adjust: 98.43598%;
  ascent-override: 89.19503%;
  descent-override: 21.33366%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold Italic"), local("Arial-BoldItalicMT");
  font-style: italic;
  font-weight: 700;
  size-adjust: 98.78792%;
  ascent-override: 88.87727%;
  descent-override: 21.25766%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-style: normal;
  font-weight: 800;
  size-adjust: 103.41863%;
  ascent-override: 84.89766%;
  descent-override: 20.30582%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold Italic"), local("Arial-BoldItalicMT");
  font-style: italic;
  font-weight: 800;
  size-adjust: 103.62393%;
  ascent-override: 84.72946%;
  descent-override: 20.26559%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-style: normal;
  font-weight: 900;
  size-adjust: 110.39561%;
  ascent-override: 79.53215%;
  descent-override: 19.02250%;
  line-gap-override: 0.00000%;
}
@font-face {
  font-family: 'Archivo Fallback';
  src: local("Arial Bold Italic"), local("Arial-BoldItalicMT");
  font-style: italic;
  font-weight: 900;
  size-adjust: 110.39561%;
  ascent-override: 79.53215%;
  descent-override: 19.02250%;
  line-gap-override: 0.00000%;
}
:root {
  --font-display: 'Crimson Pro', 'Crimson Pro Fallback', Georgia, 'Times New Roman', serif;
  --font-serif: 'Crimson Pro', 'Crimson Pro Fallback', Georgia, 'Times New Roman', serif;
  --font-sans: 'Archivo', 'Archivo Fallback', 'Helvetica Neue', Arial, sans-serif;
}

/* site.css */
[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:110px;scrollbar-gutter:stable}.wrap{width:100%;max-width:var(--container-max);padding-left:var(--gutter);padding-right:var(--gutter);margin-inline:auto}main{outline:none}.section{padding-block:clamp(72px,9vw,144px)}.tone-stone{background:var(--surface-sunken)}.section-rule{border-top:1px solid var(--border-default)}.split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(32px,8vw,128px);align-items:start}.prose{display:flex;flex-direction:column;gap:22px;align-items:flex-start;max-width:62ch;min-width:0;overflow-wrap:break-word}.prose p{width:100%}.prose .sp-btn,.prose .sp-alink{margin-top:6px}.lead-prose{font-size:var(--fs-lead);line-height:1.5}.sp-h1 em,.sp-h2 em{font-weight:300}.sp-btn{white-space:normal;line-height:1.25;justify-content:space-between;max-width:100%}.sp-btn__arrow{flex:none}.skip-link{position:fixed;top:8px;left:16px;transform:translateY(-160%);background:var(--ink);color:var(--paper);padding:12px 20px;z-index:100}.skip-link:focus{transform:none}.sp-nav{min-height:82px;padding-block:16px;gap:22px;background:var(--surface-page);backdrop-filter:none;-webkit-backdrop-filter:none}.sp-nav__brand{flex:none}.sp-nav__brand img{height:auto;width:112px;mix-blend-mode:multiply}.sp-nav__links{gap:clamp(14px,1.6vw,28px)}.sp-nav__link{font-size:14px}.sp-nav__right>.sp-btn{font-size:12px;padding:12px 14px}.sp-nav__burger{display:none}.creative-nav{position:relative}.creative-nav summary{list-style:none;white-space:nowrap}.creative-nav summary::-webkit-details-marker{display:none}.creative-menu{position:absolute;top:38px;left:-20px;background:var(--paper);border:1px solid var(--border-default);min-width:180px;padding:18px;display:flex;flex-direction:column;gap:18px}.creative-menu .sp-nav__link{white-space:nowrap}#mobile-nav{position:fixed;z-index:49;top:80px;left:0;right:0;background:var(--paper);padding:20px var(--gutter) 32px;border-bottom:1px solid var(--border-strong);max-height:calc(100dvh - 80px);overflow:auto}#mobile-nav a{display:flex;padding-block:11px;font-size:18px}#mobile-nav .sp-btn{margin-top:20px;display:inline-flex;font-size:15px}.home-hero{padding-top:clamp(28px,4vw,64px);padding-bottom:48px;min-height:0;display:flex;flex-direction:column;gap:clamp(44px,6vw,88px)}.hero-kh{font-size:clamp(4.2rem,10.3vw,10.7rem);line-height:.88;letter-spacing:-.045em}.hero-focus{font-size:.56em;line-height:1.04;margin-top:.15em}.hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end;margin-top:12px}.hero-intro{max-width:58ch;display:flex;flex-direction:column;gap:14px;font-size:clamp(1.05rem,1.4vw,1.2rem)}.hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:22px}.section-head{display:block;margin-bottom:64px}.section-head>.sp-h1{max-width:32ch}.service-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;padding:38px 0;border-top:1.5px solid var(--border-strong)}.service-row:last-child{border-bottom:1.5px solid var(--border-strong)}.service-row .sp-srow__title{font-size:clamp(2.2rem,3.7vw,4rem);max-width:16ch;font-weight:var(--fw-heavy);font-style:normal;transition:color var(--dur-base) var(--ease-out)}.service-row:hover .sp-srow__title,.service-row:focus-within .sp-srow__title{color:var(--text-accent)}.editorial-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,8vw,128px);padding-block:40px;border-top:1px solid var(--border-strong)}.editorial-row .sp-h2{max-width:18ch}.page-hero{padding-top:clamp(36px,5vw,72px);padding-bottom:clamp(56px,6vw,96px)}.page-kh{font-size:clamp(3.4rem,7.7vw,8.2rem);max-width:19ch;line-height:.96}.page-hero-bottom{margin-top:40px;margin-left:auto;width:58%;max-width:66ch;font-size:var(--fs-lead)}.page-hero-bottom .sp-btn{font-size:var(--fs-sm);margin-top:10px}.service-content{padding-bottom:24px}.faq-list{border-top:1.5px solid var(--border-strong)}.faq{border-bottom:1px solid var(--border-default)}.faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:24px;cursor:pointer;list-style:none;font-family:var(--font-display);font-size:clamp(1.6rem,2.5vw,2.2rem);font-weight:700;line-height:1.15;padding-block:24px;color:var(--text-strong)}.faq summary::-webkit-details-marker{display:none}.faq summary span{display:inline-block;flex:none;font-family:var(--font-sans);font-weight:400;transition:transform var(--dur-base) var(--ease-out)}.faq[open] summary span{transform:rotate(45deg)}.faq .prose{padding:0 0 28px}.contact-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,8vw,120px);padding-bottom:70px}.contact-explain{display:flex;flex-direction:column;gap:50px}.contact-form-area>.sp-h2{margin-bottom:28px}.form-intro{margin-bottom:30px}#consultation-form{display:flex;flex-direction:column;gap:28px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.field-wide{grid-column:1/-1}.form-preview-note{border-top:1px solid var(--border-default);padding-top:18px;font-size:var(--fs-sm);line-height:1.6}.field-error{font-size:14px;color:var(--danger)}.error-summary{border:1.5px solid var(--danger);padding:20px;color:var(--danger)}.error-summary ul{padding-left:20px}.form-status{border-top:2px solid var(--mint-deep);padding-top:24px}.form-status h2,.form-status h3{font-family:var(--font-display);font-size:2rem;color:var(--text-strong)}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.site-footer{padding:clamp(64px,8vw,128px) 0 28px;background:var(--surface-page);color:var(--text-body)}.footer-invite{display:flex;justify-content:space-between;align-items:center;gap:clamp(16px,3vw,48px);color:var(--text-strong);text-decoration:none;font-family:var(--font-display);font-size:clamp(5rem,16vw,17rem);font-weight:900;line-height:.9;letter-spacing:-.05em;padding-bottom:64px;transition:color var(--dur-base) var(--ease-out)}.footer-invite em{font-weight:300}.footer-invite:hover,.footer-invite:focus-visible{color:var(--mint)}.footer-invite>span:first-child{min-width:0}.footer-invite:hover .footer-arrow,.footer-invite:focus-visible .footer-arrow{transform:translate(4px,-4px)}.footer-arrow{flex:none;font-family:var(--font-sans);font-size:.55em;font-weight:300;transition:transform var(--dur-base) var(--ease-out)}.footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.7fr);gap:clamp(28px,4vw,64px);border-top:1px solid var(--border-default);padding-top:36px}.footer-grid p{max-width:44ch;margin-top:22px}.footer-grid nav{display:flex;flex-direction:column;gap:10px;align-items:start}.footer-grid nav a{text-decoration:none;max-width:100%;overflow-wrap:anywhere}.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;padding-top:56px}.motion-button{background:none;border:0;color:var(--text-body);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.legal-copy{max-width:900px;margin-inline:auto;padding-bottom:120px}.sp-kh__line{overflow-wrap:normal}.sp-kh__mask{max-width:100%}html:not(.js) .sp-kh__w{transform:none}html.motion-paused .sp-marquee__track{animation-play-state:paused!important}html.motion-paused .sp-kh__w{transform:none;transition:none}.sp-input:focus-visible{outline:2px solid var(--mint-deep);outline-offset:4px}:focus-visible{outline-color:var(--mint-deep)}[data-theme=dark] :focus-visible{outline-color:var(--mint)}
@media(min-width:1100px){#mobile-nav{display:none!important}}@media(max-width:1099px){.desktop-nav{display:none}.sp-nav__burger{display:inline-grid}.sp-nav__right>.sp-btn{font-size:12px;padding:11px}.hero-actions{align-items:flex-start}.hero-bottom{grid-template-columns:1.2fr 1fr;gap:28px}.service-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px}}@media(max-width:720px){.sp-nav{padding-block:13px;min-height:72px}.sp-nav__brand img{width:102px}.sp-nav__right>.sp-btn{display:none}#mobile-nav{top:71px;max-height:calc(100dvh - 71px)}.home-hero{padding-top:32px;min-height:auto;gap:30px;padding-bottom:40px}.hero-kh{font-size:clamp(3rem,11.8vw,5.5rem);line-height:.94}.hero-focus{font-size:.64em;line-height:1.05;margin-top:.2em}.hero-bottom{display:flex;flex-direction:column;gap:26px;align-items:stretch}.hero-actions{align-items:flex-start;gap:18px}.split,.editorial-row,.contact-layout{grid-template-columns:1fr;gap:30px}.section-head{margin-bottom:40px}.section{padding-block:64px}.sp-h1{font-size:clamp(2.6rem,9vw,4rem)}.sp-h2{font-size:clamp(2.1rem,7.2vw,3rem)}.service-row{grid-template-columns:minmax(0,1fr);gap:18px;padding-block:30px}.service-row .prose{grid-column:auto}.service-row .sp-srow__title{font-size:2.35rem;max-width:18ch}.service-row .prose{gap:16px}.page-kh{font-size:clamp(2.3rem,9.4vw,4.7rem);max-width:20ch;line-height:1}.page-hero-bottom{width:100%;margin-top:28px;font-size:1.13rem}.page-hero{padding-top:32px;padding-bottom:48px}.editorial-row{padding-block:30px;gap:20px}.editorial-row .sp-h2{max-width:22ch}.lead-prose{font-size:1.13rem}.footer-grid{grid-template-columns:1fr 1fr;gap:36px}.footer-grid>div{grid-column:1/-1}.footer-invite{padding-bottom:44px;font-size:clamp(3.25rem,14vw,6.5rem)}.footer-bottom{padding-top:44px;gap:18px}.footer-bottom>.sp-meta:first-child{flex-basis:100%}.contact-explain{gap:32px}.form-grid{grid-template-columns:1fr;gap:26px}.sp-btn--md{padding:14px 17px;font-size:14px}.prose{gap:18px}.faq-section .split{gap:36px}.faq summary{font-size:1.7rem}.contact-layout{padding-bottom:24px}}


.cursor-guide{position:fixed;inset:0;z-index:70;pointer-events:none;overflow:hidden;contain:strict}.cursor-guide>*{position:absolute;pointer-events:none;transition:none!important;animation:none!important;will-change:transform}.cursor-guide__line-x{left:0;right:0;top:0;height:1px;background:var(--mint);opacity:.2;transform:translateY(calc(var(--cursor-y) - .5px))}.cursor-guide__line-y{top:0;bottom:0;left:0;width:1px;background:var(--mint);opacity:.2;transform:translateX(calc(var(--cursor-x) - .5px))}.cursor-guide__dot-top,.cursor-guide__dot-left{top:0;left:0;width:8px;height:8px;border-radius:50%;background:var(--mint)}.cursor-guide__dot-top{transform:translate(calc(var(--cursor-x) - 4px),1px)}.cursor-guide__dot-left{transform:translate(1px,calc(var(--cursor-y) - 4px))}
.motion-button,.footer-bottom>a{min-height:44px;display:inline-flex;align-items:center;padding-block:8px}
html.cursor-paused .cursor-guide{display:none!important}
@media(hover:none),(pointer:coarse),print{.cursor-guide{display:none!important}}

.split>*,.editorial-row>*,.service-row>*,.contact-layout>*,.hero-bottom>*,.footer-grid>*{min-width:0}.sp-alink{max-width:100%;min-width:0}.sp-btn>span:first-child,.sp-alink>span:first-child{min-width:0}.sp-alink .sp-btn__arrow{display:inline-block;flex:none;transition:transform var(--dur-base) var(--ease-out)}.sp-alink:hover .sp-btn__arrow,.sp-alink:focus-visible .sp-btn__arrow{transform:translate(3px,-3px)}
@media(max-width:480px){.footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}.footer-grid>div{grid-column:auto}.footer-bottom{align-items:flex-start}.hero-actions .sp-btn{width:100%}.faq summary{gap:16px}}

.services-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(24px,3vw,48px);align-items:center;margin-bottom:clamp(40px,6vw,80px)}.services-map-layout>*{min-width:0}.services-map-layout>.sp-h1{font-size:clamp(2.5rem,4.4vw,4.8rem);line-height:1.02;max-width:12ch}
@media(max-width:900px){.services-map-layout{grid-template-columns:minmax(0,1fr);gap:32px}.services-map-layout>.sp-h1{font-size:clamp(2.6rem,7vw,4rem);max-width:22ch}}

/* A quiet photographic backdrop, with content reserving its own space. */
.home-masthead{position:relative;isolation:isolate;background:var(--surface-page)}
.home-masthead__image{position:absolute;z-index:-1;inset:calc(-1 * var(--header-height,82px)) 0 0;pointer-events:none;overflow:hidden}
.home-masthead__image img{display:block;width:100%;height:100%;object-fit:cover;object-position:70% 44%;opacity:.18}
.home-masthead__image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--surface-page) 58%,transparent),transparent 80%),linear-gradient(0deg,var(--surface-page),transparent 28%)}
.home-page>.sp-nav{background:transparent;transition:background-color 180ms ease-out}
.home-page.nav-scrolled>.sp-nav{background:var(--surface-page)}
.home-masthead .home-hero{position:relative;min-height:min(780px,calc(100svh - var(--header-height,82px)));justify-content:space-between}
html[data-theme=dark] .home-masthead__image img{opacity:.16}
html.a11y-high-contrast .home-masthead__image{display:none}
html.a11y-high-contrast .home-page>.sp-nav{background:var(--surface-page)}
@media(max-width:720px){.home-masthead .home-hero{min-height:calc(100svh - var(--header-height,72px));gap:36px}.home-masthead__image img{object-position:70% center;opacity:.13}}
@media(forced-colors:active),print{.home-masthead__image{display:none}.home-page>.sp-nav{background:Canvas}}

/* Service-page navigation follows the existing editorial layout. */
.service-contents{padding-bottom:40px}.service-contents ul{list-style:none;margin:0;padding:24px 0;border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default);display:flex;flex-wrap:wrap;gap:18px 32px}.service-contents li{min-width:0;max-width:100%}.service-contents a{display:inline-block;max-width:100%;color:var(--text-body);text-underline-offset:.2em;overflow-wrap:anywhere}.service-contents a:hover{color:var(--text-accent)}.service-content article[id]{scroll-margin-top:120px}@media(max-width:720px){.service-contents ul{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.service-contents a{padding-block:12px}.service-contents{padding-bottom:24px}}

.service-visual{margin:12px 0 64px;padding:clamp(16px,3vw,40px);background:var(--surface-sunken);border:1px solid var(--border-default);min-width:0}.service-visual img{display:block;width:100%;height:auto;border:1px solid var(--border-default)}.service-visual figcaption{font-size:.9375rem;line-height:1.5;margin-top:20px;max-width:72ch;color:var(--text-body)}.service-visual--diagram img{aspect-ratio:2/1}.service-visual a{display:block}.service-visual a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:5px}@media(max-width:600px){.service-visual--diagram img{aspect-ratio:4/5}.service-visual{margin-bottom:40px}.service-visual figcaption{margin-top:14px}}

.service-visual:not(.service-visual--diagram) img{aspect-ratio:1265/712;object-fit:cover}.service-visual{scroll-margin-top:120px}

/* Homepage photography follows the service-row grid and reserves its full area. */
.service-row--photo{align-items:center}.home-service-heading{min-width:0;display:flex;flex-direction:column;gap:26px}.home-service-photo{margin:0;max-width:640px;min-width:0}.home-service-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--border-default)}.home-service-photo figcaption{margin-top:10px;color:var(--text-body);font-size:.8125rem;line-height:1.5}.home-service-photo{scroll-margin-top:120px}@media(max-width:720px){.home-service-heading{gap:18px}.home-service-photo{max-width:none}}

/* Photographs use the same editorial grid as the service copy. */
.page-photo{margin:24px 0 48px;max-width:1040px;min-width:0;scroll-margin-top:120px}.page-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--border-default)}.page-photo figcaption{margin-top:10px;color:var(--text-body);font-size:.8125rem;line-height:1.5;overflow-wrap:anywhere}.page-photo--compact{margin:28px 0 0;max-width:600px}.editorial-row>div{min-width:0}.contact-explain>.page-photo{margin:0}.guide-body>.page-photo{width:100%;max-width:72ch}@media(max-width:720px){.page-photo{margin-block:20px 32px}.page-photo--compact{margin-bottom:0}.contact-explain>.page-photo{margin:0}}

.business-contact{display:flex;flex-direction:column;gap:8px;max-width:100%;overflow-wrap:anywhere}.business-contact p{margin:0}.business-contact a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding-block:6px}.footer-grid .business-contact{margin-top:16px}
.quote-comparison{max-width:100%;min-width:0;scroll-margin-top:110px}.quote-comparison .prose{margin-bottom:28px}.quote-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.quote-supplier{border:0;border-top:1px solid var(--border-strong);padding:20px 0 0;min-width:0;display:flex;flex-direction:column;gap:22px}.quote-supplier legend{font-family:var(--font-display);font-size:1.6rem;font-weight:700;padding:0 10px 0 0;max-width:100%}.quote-supplier label{display:block;font-size:.875rem;line-height:1.5;margin-bottom:8px}.quote-supplier .sp-input{width:100%;min-width:0}.quote-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-block:32px}.quote-reset{background:none;border:0;color:var(--text-strong);font:inherit;min-height:44px;padding:10px 4px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.quote-results{border-top:2px solid var(--mint-deep);padding-top:28px;scroll-margin-top:110px}.quote-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-block:24px}.quote-results-grid article{min-width:0;overflow-wrap:anywhere}.quote-results-grid h4{font-size:1.55rem;margin-bottom:20px}.quote-results-grid dl{margin:0}.quote-results-grid dt{font-size:.875rem;color:var(--text-body);margin-top:14px}.quote-results-grid dd{margin:4px 0 0;font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-strong)}.quote-results>p{margin-top:20px;line-height:1.6}.quote-privacy{margin-block:24px 0;line-height:1.6}#quote-errors{margin-bottom:28px;scroll-margin-top:110px}#quote-errors p{margin-bottom:12px}#quote-errors a{color:inherit}.quote-comparison button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1050px){.quote-inputs,.quote-results-grid{grid-template-columns:1fr;gap:32px}.quote-supplier{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.quote-results-grid article{border-top:1px solid var(--border-default);padding-top:20px}}@media(max-width:480px){.quote-supplier{display:flex}.quote-actions{align-items:stretch;flex-direction:column}.quote-actions .sp-btn{justify-content:center}.quote-results-grid dd{font-size:1.2rem}}

/* accessibility.css */
html{--header-height:82px;scroll-padding-top:calc(var(--header-height) + 24px);color-scheme:light}
html[data-theme=dark]{color-scheme:dark;--danger:#FF9A88;--text-muted:#B0AFA9}
html[data-theme=dark] .sp-nav__brand img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}
.creative-menu,#mobile-nav{background:var(--surface-page)}
#mobile-nav{top:var(--header-height);max-height:calc(100dvh - var(--header-height))}
.sp-nav__right{gap:12px}.sp-nav__right>.sp-btn{font-size:.75rem}.sp-nav__link{font-size:.875rem}
.accessibility-open{width:44px;height:44px;flex:none;border:1px solid var(--text-muted);background:transparent;color:var(--text-strong);display:inline-grid;place-items:center;cursor:pointer}
.accessibility-open svg{width:24px;height:24px;display:block}
[data-accessibility-open][hidden]{display:inline-grid!important;visibility:hidden}
[data-motion-toggle][hidden]{display:inline-flex!important;visibility:hidden}
.accessibility-open:hover,.accessibility-open[aria-expanded=true]{background:var(--surface-sunken)}
.accessibility-panel{position:fixed;inset:calc(var(--header-height) + 12px) 20px auto auto;width:min(28rem,calc(100% - 32px));max-width:none;max-height:calc(100dvh - var(--header-height) - 28px);margin:0;padding:24px;overflow:auto;overscroll-behavior:contain;background:var(--surface-page);color:var(--text-body);border:1px solid var(--text-muted);box-shadow:0 12px 48px #0003;z-index:200}
.accessibility-panel::backdrop{background:#0005}
.accessibility-panel:not([open]){display:none}.accessibility-panel[open]{display:block}
html:not(.js) .sp-nav__burger{display:none}html:not(.js) #mobile-nav{display:block!important;position:static;max-height:none}
.accessibility-panel__heading{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:16px}
.accessibility-panel h2{font-family:var(--font-display);font-size:2rem;line-height:1.1;color:var(--text-strong);margin:0}
.accessibility-panel h2{min-width:0;overflow-wrap:anywhere}
.accessibility-panel__close{min-width:44px;min-height:44px;background:transparent;border:1px solid var(--text-muted);color:inherit;font:inherit;font-size:1.5rem;cursor:pointer;flex:none}
.accessibility-panel p{font-size:.9375rem;line-height:1.5;margin-bottom:16px}
.accessibility-option{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px;padding:12px 0;border-top:1px solid var(--border-default);font-size:1rem;line-height:1.4;cursor:pointer}
.accessibility-option>span{min-width:0}.accessibility-option input{width:24px;height:24px;flex:none;accent-color:var(--text-accent)}
.accessibility-option select{font:inherit;min-height:44px;min-width:5.6em;max-width:55%;padding:6px;color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--text-muted)}
.accessibility-reset{min-height:44px;margin-top:12px;padding:10px 14px;font:inherit;font-size:.9375rem;line-height:1.3;color:var(--text-strong);background:var(--surface-sunken);border:1px solid var(--text-muted);cursor:pointer}
.accessibility-panel .accessibility-status{font-size:.875rem;margin:12px 0 0}
.sp-input{border-bottom-color:var(--text-muted)}.sp-input:hover{border-bottom-color:var(--text-strong)}
.field-error{font-size:.875rem}.motion-button{font-size:.8125rem}.sp-nav__link,.footer-grid nav a{min-height:24px}
.footer-grid a,.contact-explain a{overflow-wrap:anywhere}
:focus-visible{outline:3px solid var(--text-accent);outline-offset:4px}.sp-input:focus-visible{outline-color:var(--text-accent)}
html.motion-paused{scroll-behavior:auto}
html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
html.page-hidden *{animation-play-state:paused!important}
html.a11y-high-contrast{--surface-page:#FFF;--surface-raised:#FFF;--surface-sunken:#F2F2F2;--surface-inverse:#000;--text-strong:#000;--text-body:#111;--text-muted:#333;--text-accent:#075E4F;--text-inverse:#FFF;--border-default:#444;--border-subtle:#555;--border-strong:#000;--danger:#A82012}
html.a11y-high-contrast[data-theme=dark],html.a11y-high-contrast [data-theme=dark]{--surface-page:#000;--surface-raised:#111;--surface-sunken:#111;--surface-inverse:#FFF;--text-strong:#FFF;--text-body:#FFF;--text-muted:#EEE;--text-accent:#69E7CE;--text-inverse:#000;--border-default:#BBB;--border-subtle:#999;--border-strong:#FFF;--danger:#FFB8AA}
html.a11y-underline-links a:not(.sp-nav__brand){text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
html.a11y-readable-font{--font-display:Arial,Helvetica,sans-serif;--font-serif:Arial,Helvetica,sans-serif;--font-sans:Arial,Helvetica,sans-serif;--font-mono:Arial,Helvetica,sans-serif}
html.a11y-readable-font .sp-kh,html.a11y-readable-font .sp-h1,html.a11y-readable-font .sp-h2{letter-spacing:normal;line-height:1.1}
html.a11y-text-spacing :is(p,li,label,input,textarea,select,button,summary,a,h1,h2,h3){line-height:1.5!important;letter-spacing:.12em!important;word-spacing:.16em!important}
html.a11y-text-spacing p{margin-bottom:2em}
html.a11y-large-text :is(.split,.editorial-row,.service-row,.contact-layout,.hero-bottom,.footer-grid,.services-map-layout){grid-template-columns:minmax(0,1fr)}
html.a11y-large-text .page-hero-bottom{width:100%}
html.a11y-large-text .desktop-nav,html.a11y-large-text .sp-nav__right>.sp-btn{display:none}
html.a11y-large-text .sp-nav__burger{display:inline-grid}
html.a11y-large-text #mobile-nav:not([hidden]){display:block!important}
html.a11y-large-text .services-map-layout>.sp-h1{max-width:none}
html.a11y-large-text :is(.sp-kh__w,.sp-kh__mask,.sp-kh__line),html.a11y-readable-font :is(.sp-kh__w,.sp-kh__mask,.sp-kh__line){overflow-wrap:anywhere;max-width:100%}
html.a11y-large-text :is(h1,h2,h3,.footer-invite),html.a11y-readable-font :is(h1,h2,h3,.footer-invite){overflow-wrap:anywhere}
html:is(.a11y-large-text,.a11y-text-spacing) :is(p,li,label,summary,button,a){overflow-wrap:anywhere}
html:is(.a11y-large-text,.a11y-text-spacing) .sp-field__label{flex-wrap:wrap;gap:.5em}
html.a11y-large-text .footer-invite{font-size:clamp(2.5rem,12vw,8rem)}
html.a11y-text-spacing .sp-kh__mask{overflow:visible}
@media(max-width:1199px){.desktop-nav{display:none}.sp-nav__burger{display:inline-grid}.sp-nav__right>.sp-btn{font-size:.75rem}}
@media(min-width:1100px) and (max-width:1199px){#mobile-nav:not([hidden]){display:block!important}}
@media(max-width:720px){html{--header-height:72px}.sp-nav__right{gap:10px}.accessibility-panel{inset:calc(var(--header-height) + 8px) 12px auto;width:calc(100% - 24px);padding:20px}.sp-nav__right>.sp-btn{display:none}#mobile-nav a{font-size:1.125rem}#mobile-nav .sp-btn{font-size:.9375rem}.sp-btn--md{font-size:.875rem}.accessibility-panel h2{font-size:1.5rem}}
@media(max-width:480px){html.a11y-large-text .accessibility-panel__heading{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}html.a11y-large-text .accessibility-panel__close{grid-row:1;justify-self:end}html.a11y-large-text .accessibility-panel h2{grid-row:2;font-size:1.25rem}}
@media(max-width:600px){html.a11y-large-text .accessibility-option--size{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}html.a11y-large-text .accessibility-option--size select{min-width:0;max-width:100%;width:100%}}
@media(forced-colors:active){.accessibility-open,.accessibility-panel,.accessibility-panel__close,.accessibility-reset,.sp-input{border:1px solid CanvasText}.sp-btn{border:1px solid ButtonText}.cursor-guide{display:none!important}}

/* guides.css */
.prose ul,.prose ol{padding-left:1.4em;display:flex;flex-direction:column;gap:.8em;max-width:100%;margin:0}.prose li{padding-left:.2em;overflow-wrap:anywhere}.guide-recommendations>.sp-h2{max-width:24ch;margin-bottom:32px}.guide-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-bottom:28px}.guide-links article{border-top:1px solid var(--border-strong);padding-top:24px;min-width:0}.guide-links h3{line-height:1.15;margin-bottom:16px}.guide-links a,.guide-index h2 a{color:var(--text-strong);text-decoration:none;text-underline-offset:.15em;transition:color var(--dur-base) var(--ease-out)}.guide-links a:hover,.guide-index h2 a:hover{color:var(--text-accent);text-decoration:underline}.guide-links p{max-width:58ch}.guide-index{padding-bottom:80px}.guide-title{font-size:clamp(2.6rem,6.5vw,6.8rem);line-height:1.02;max-width:23ch;overflow-wrap:anywhere}.guide-byline{font-size:.9rem}.guide-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(32px,6vw,100px);align-items:start}.guide-contents{border-top:1px solid var(--border-strong);padding-top:24px}.guide-contents h2{margin-bottom:20px}.guide-contents ol{padding-left:1.2em;display:flex;flex-direction:column;gap:16px}.guide-contents a{color:var(--text-body);text-underline-offset:.2em;overflow-wrap:anywhere}.guide-body{min-width:0}.guide-section{max-width:72ch;border-top:1px solid var(--border-default);padding-top:32px;padding-bottom:48px;scroll-margin-top:24px}.guide-section .sp-h2{font-size:clamp(2rem,3.3vw,3.2rem);max-width:26ch}.guide-table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.guide-table-wrap table{width:100%;border-collapse:collapse;text-align:left;font-size:.9375rem;line-height:1.6}.guide-table-wrap caption{text-align:left;font-weight:600;padding-bottom:14px}.guide-table-wrap th,.guide-table-wrap td{padding:14px 12px;border-bottom:1px solid var(--border-default);vertical-align:top;min-width:10ch}.guide-table-wrap th{color:var(--text-strong);font-weight:600}.guide-table-wrap thead{background:var(--surface-sunken)}.guide-footer{padding-top:24px;padding-bottom:48px}.guide-contents,.guide-links>*{min-width:0}html.a11y-large-text .guide-layout,html.a11y-large-text .guide-links{grid-template-columns:minmax(0,1fr)}html.a11y-text-spacing .guide-table-wrap :is(td,th){line-height:1.5!important;letter-spacing:.12em!important;word-spacing:.16em!important}
@media(max-width:900px){.guide-layout{grid-template-columns:minmax(0,1fr)}.guide-contents{max-width:72ch}.guide-body{max-width:100%}}
@media(max-width:720px){.guide-links{grid-template-columns:minmax(0,1fr)}.guide-contents ol{gap:18px}.guide-section{padding-top:24px;padding-bottom:32px}.guide-table-wrap th,.guide-table-wrap td{padding:12px 8px}.guide-table-wrap{padding-bottom:8px}}
@media print{.sp-nav,#mobile-nav,.site-footer,.accessibility-panel,.cursor-guide,.guide-contents,.guide-recommendations{display:none!important}.guide-layout{display:block}.guide-section{break-inside:avoid}.guide-title{font-size:30pt}.guide-table-wrap{overflow:visible}html{color-scheme:light}.guide-article{color:#000;background:#fff}.guide-article a{color:#000}}

.guide-notice{border-left:3px solid var(--mint-deep);padding:14px 18px;font-size:1rem;line-height:1.6;background:var(--surface-section,var(--surface-page))}.page-photo--screenshot img{aspect-ratio:auto;object-fit:contain}.guide-section>.sp-alink{margin-top:12px}

/* brand-headings.css */
/* Rendered with the heading, so decoration never shifts text after load. */
/* Allow for serif overhang and negative tracking inside the reveal mask.
   Matching negative margins preserve word positions and line wrapping. */
.sp-kh__mask{padding-inline:.12em;margin-inline:-.12em;max-width:calc(100% + .24em)}
.sp-heading-end{display:inline-block;max-width:100%;vertical-align:baseline;white-space:normal;overflow-wrap:anywhere}
.sp-heading-tail{display:inline;white-space:nowrap;overflow-wrap:normal}
.sp-heading-dot{color:var(--mint);font:inherit;letter-spacing:inherit}
.sp-srow__title .sp-heading-dot{display:inline;transform:none;transition:none}
.sp-heading-punctuation{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}

/* local-pages.css */
.local-breadcrumbs{margin-bottom:32px;font-size:.875rem;line-height:1.6;color:var(--text-body)}.local-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;padding:0;margin:0}.local-breadcrumbs li{min-width:0;overflow-wrap:anywhere}.local-breadcrumbs li+li::before{content:"/";margin-right:14px;color:var(--text-muted)}.local-breadcrumbs a{color:inherit;text-underline-offset:.2em}.local-sections,.local-directory{padding-bottom:32px}.local-directory h2 a{color:var(--text-strong);text-decoration:none;text-underline-offset:.15em;transition:color var(--dur-base) var(--ease-out)}.local-directory h2 a:hover{color:var(--text-accent);text-decoration:underline}.local-hero .page-kh{font-size:clamp(2.5rem,6.1vw,6.6rem);max-width:24ch}.local-discovery{border-top:1px solid var(--border-default)}
@media(max-width:720px){.local-breadcrumbs{margin-bottom:24px}.local-hero .page-kh{font-size:clamp(2.15rem,9vw,4.7rem)}.local-breadcrumbs ol{gap:6px 10px}.local-breadcrumbs li+li::before{margin-right:10px}}
