/* BOLDTHINGS agency homepage: Ridgelines.
   Two themes on :root[data-theme] (set before paint by the nonce'd boot script). Dark is the original plate;
   light is the same plate printed in ink on warm paper. agency.js reads the --field-* and --lead-* tokens for the canvas. */

/* size-matched local fallbacks so the swap to the web fonts does not shift the layout */
@font-face{font-family:"Poppins Fallback";src:local("Arial"),local("Helvetica Neue"),local("Helvetica");size-adjust:112.2%;ascent-override:93.6%;descent-override:31.2%;line-gap-override:8.9%}
@font-face{font-family:"Space Mono Fallback";src:local("Courier New"),local("Courier");size-adjust:102%;ascent-override:108%;descent-override:36%;line-gap-override:0%}

:root{
 --sans:"Poppins","Poppins Fallback",system-ui,sans-serif;--monof:"Space Mono","Space Mono Fallback",ui-monospace,monospace;
 /* spacing scale (4px base) + fluid section rhythm */
 --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;
 --gut:clamp(16px,4vw,44px);--maxw:1760px;--safe-x:max(env(safe-area-inset-left),env(safe-area-inset-right));--padx:max(var(--gut),calc((100vw - var(--maxw)) / 2),var(--safe-x));
 --ease:cubic-bezier(.2,.8,.2,1);--hit:44px;
}
:root,:root[data-theme="dark"]{color-scheme:dark;
 --bg:#070405;--fg:#f2efe4;--mute:#8e8777;--cream:#e9e7c4;--teal:#7fb5aa;--line:rgba(242,239,228,.1);
 --fg2:#d6d1c2;--body:#d2ccbb;--lede:#e6e1d2;--li:#c9c2b1;--accent:var(--cream);
 --bg-rgb:7,4,5;--edge:rgba(242,239,228,.35);--edge-2:rgba(242,239,228,.25);
 --nav-a:.9;--scrim-a:.85;--scrim-b:.2;--hero-scrim:.72;
 --card-a:rgba(14,9,11,.78);--card-b:rgba(14,9,11,.5);--card-m:rgba(14,9,11,.8);--card-edge:rgba(242,239,228,.09);--card-shadow:0 -30px 80px rgba(0,0,0,.45);
 --outline:rgba(242,239,228,.5);--own-fg:var(--bg);--own-bg:var(--cream);
 --cta-bg:var(--fg);--cta-fg:var(--bg);--cta-hover:var(--cream);
 --focus:#e9e7c4;--sel-bg:#e9e7c4;--sel-fg:#070405;--wm:rgba(242,239,228,.55);--grain:.06;--grain-blend:normal;
 --ok:#9fd3c4;--bad:#f0a08f;--dim-c:#000;
 /* canvas field */
 --field-bg:7,4,5;--field-ink:242,239,228;--field-a0:.12;--field-a1:.62;--field-w0:.8;--field-w1:.9;--lead-w:2.2;--lead-glow:.8;
 --lead-teal:127,181,170;--lead-cream:233,231,196;--lead-rose:216,110,140;--lead-sage:156,195,185;--lead-gold:201,185,138;
 /* enquiry panel */
 --e-bg:#0f0a0c;--e-fg:#f2efe4;--e-mute:#8e8777;--e-line:rgba(242,239,228,.14);--e-edge:rgba(242,239,228,.3);--e-accent:#e9e7c4;--e-accent-fg:#0f0a0c;
 --e-veil:rgba(4,2,3,.6);--e-shadow:-30px 0 80px rgba(0,0,0,.4);--e-rec:#d8452f;--e-err:#f0a08f;--e-font:var(--sans);--e-mono:var(--monof)}
:root[data-theme="light"]{color-scheme:light;
 --bg:#f1eee5;--fg:#141211;--mute:#5f584d;--cream:#551c30;--teal:#2f5d56;--line:rgba(20,18,17,.14);
 --fg2:#2c2825;--body:#2f2b27;--lede:#1d1a18;--li:#37322d;--accent:#551c30;
 --bg-rgb:241,238,229;--edge:rgba(20,18,17,.4);--edge-2:rgba(20,18,17,.3);
 --nav-a:.92;--scrim-a:.9;--scrim-b:.35;--hero-scrim:.8;
 --card-a:rgba(246,243,235,.86);--card-b:rgba(244,241,232,.74);--card-m:rgba(246,243,235,.9);--card-edge:rgba(20,18,17,.16);--card-shadow:0 -18px 60px rgba(60,40,30,.12),0 1px 0 rgba(255,255,255,.6) inset;
 --outline:rgba(20,18,17,.55);--own-fg:#f6f3ea;--own-bg:#551c30;
 --cta-bg:#141211;--cta-fg:#f4f1e8;--cta-hover:#551c30;
 --focus:#551c30;--sel-bg:#551c30;--sel-fg:#f4f1e8;--wm:rgba(20,18,17,.62);--grain:.09;--grain-blend:multiply;
 --ok:#2f5d56;--bad:#9b2c1d;--dim-c:#efece3;
 --field-bg:241,238,229;--field-ink:20,18,17;--field-a0:.1;--field-a1:.66;--field-w0:.6;--field-w1:.75;--lead-w:1.9;--lead-glow:0;
 --lead-teal:47,93,86;--lead-cream:85,28,48;--lead-rose:122,36,64;--lead-sage:47,93,86;--lead-gold:122,84,30;
 --e-bg:#f6f3ea;--e-fg:#141211;--e-mute:#5f584d;--e-line:rgba(20,18,17,.16);--e-edge:rgba(20,18,17,.35);--e-accent:#551c30;--e-accent-fg:#f6f3ea;
 --e-veil:rgba(30,24,20,.32);--e-shadow:-24px 0 60px rgba(40,25,20,.18);--e-rec:#c23a26;--e-err:#9b2c1d}

*{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;
 font-kerning:normal;font-feature-settings:"kern","liga";font-synthesis:none}
h1,h2,h3{text-rendering:optimizeLegibility}
a{color:inherit}
::selection{background:var(--sel-bg);color:var(--sel-fg)}
/* the ring keeps each control's own shape (pills, circles); the 4px radius only fills in where an element sets none */
:root :focus-visible{outline:2px solid var(--focus);outline-offset:3px}
:where(:focus-visible){border-radius:4px}
:root :focus:not(:focus-visible){outline:none}
/* the theme switch crossfades every colour for 300ms, then gets out of the way */
:root.theming *,:root.theming *:before,:root.theming *:after{transition:background-color .3s ease,color .3s ease,border-color .3s ease,fill .3s ease,stroke .3s ease,box-shadow .3s ease,-webkit-text-stroke-color .3s ease!important}
.mono{font-family:var(--monof);font-size:0.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-variant-numeric:tabular-nums}
#cv{position:fixed;inset:0;width:100%;height:100%;z-index:0}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:var(--grain);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.skip{position:fixed;left:var(--gut);top:calc(8px + env(safe-area-inset-top));z-index:60;padding:12px 18px;border-radius:999px;background:var(--cta-bg);color:var(--cta-fg);font-size:0.875rem;text-decoration:none;transform:translateY(-200%)}
.skip:focus{transform:none}
#main{position:absolute;top:0}

/* ── header ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
 padding:calc(12px + env(safe-area-inset-top)) max(var(--padx),env(safe-area-inset-right)) 16px max(var(--padx),env(safe-area-inset-left));
 background:linear-gradient(rgba(var(--bg-rgb),var(--nav-a)) 45%,rgba(var(--bg-rgb),0));transition:transform .45s var(--ease)}
.nav.hide{transform:translateY(-100%)}
.nav:focus-within{transform:none}
.wm{display:grid;place-items:center start;min-width:var(--hit);min-height:var(--hit);color:var(--cream);line-height:0;transition:transform .35s var(--ease)}
.wm:hover{transform:translateY(-2px)}
.bmk{display:block;width:31px;height:auto}
.nr{display:flex;align-items:center;gap:clamp(6px,1.2vw,14px)}
.nl{display:inline-flex;align-items:center;justify-content:center;min-height:var(--hit);min-width:var(--hit);padding:0 10px;font-size:0.875rem;text-decoration:none;color:var(--fg2);transition:color .2s}
.nl:hover{color:var(--fg)}
.enq{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;min-height:var(--hit);font-size:0.875rem;border:1px solid var(--edge);padding:0 20px;border-radius:999px;transition:background .25s,color .25s}
.enq:hover{background:var(--fg);color:var(--bg)}
.tt{all:unset;box-sizing:border-box;cursor:pointer;display:grid;place-items:center;width:var(--hit);height:var(--hit);border-radius:50%;color:var(--fg2);transition:color .2s}
.tt:hover{color:var(--fg)}
.tt svg{display:block;transition:transform .5s var(--ease)}
:root[data-theme="light"] .tt svg{transform:rotate(180deg)}
.mb{all:unset;box-sizing:border-box;cursor:pointer;display:none;align-items:center;min-height:var(--hit);min-width:var(--hit);font-size:0.875rem;padding:0 4px;justify-content:flex-end}
@media(max-width:760px){.nr .nl,.nr .enq{display:none}.mb{display:inline-flex}}

/* ── menu overlay (phones) ── */
.ov{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;overscroll-behavior:contain;overflow:auto;
 padding:calc(12px + env(safe-area-inset-top)) max(var(--padx),env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(var(--padx),env(safe-area-inset-left));
 clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .6s cubic-bezier(.7,0,.2,1),visibility 0s .6s}
.ov.on{clip-path:inset(0);visibility:visible;transition:clip-path .6s cubic-bezier(.7,0,.2,1)}
.ov .top{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px}
.ovb{display:grid;place-items:center start;min-height:var(--hit);color:var(--cream)}
.ovr{display:flex;align-items:center;gap:6px}
.ov .x{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:flex-end;min-height:var(--hit);min-width:var(--hit);font-size:0.875rem;padding:0 4px}
.ov nav{flex:1;display:flex;flex-direction:column;justify-content:center;padding:3vh 0}
.ov nav a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;text-decoration:none;font-weight:600;font-size:clamp(28px,min(8vw,6.4svh),84px);letter-spacing:-.045em;line-height:1.04;min-height:var(--hit);padding:max(.08em,calc((var(--hit) - 1.04em) / 2)) 0;
 transform:translateY(30px);opacity:0;transition:transform .6s var(--ease),opacity .6s}
.ov.on nav a{transform:none;opacity:1}
.ov nav a span{font-family:var(--monof);font-size:0.6875rem;letter-spacing:.14em;color:var(--mute);font-weight:400}
.ovm{display:inline-flex;align-items:center;min-height:var(--hit);text-decoration:none;align-self:flex-start}

main{position:relative;z-index:3}

/* ── 1. pinned hero ── */
.hero{height:230svh;position:relative}
.hero .pin{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--padx) max(10svh,calc(24px + env(safe-area-inset-bottom)));overflow:hidden}
/* a soft floor of paper/ink under the copy so the ridges never fight the text */
.hero .pin:before{content:"";position:absolute;left:0;right:0;bottom:0;height:62%;z-index:-1;pointer-events:none;
 background:linear-gradient(to top,rgba(var(--bg-rgb),var(--hero-scrim)) 0%,rgba(var(--bg-rgb),calc(var(--hero-scrim) * .7)) 45%,rgba(var(--bg-rgb),0))}
.hl{font-weight:600;font-size:clamp(44px,min(11vw,17svh),190px);line-height:.88;letter-spacing:-.06em;margin:0;will-change:transform;transform-origin:0 100%}
.hl span{display:block;will-change:transform,opacity;text-wrap:balance}
.hl span+span{font-style:italic;color:var(--cream);padding-right:.08em}
.hsub{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s6);align-items:end;margin-top:clamp(20px,4svh,48px);will-change:opacity,transform}
.hsub p{max-width:520px;color:var(--body);font-size:clamp(1rem,1.35vw,1.1875rem);line-height:1.6;margin:0;text-wrap:pretty}
.cta{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;background:var(--cta-bg);color:var(--cta-fg);padding:0 26px;border-radius:999px;font-weight:500;font-size:1rem;white-space:nowrap;transition:background .25s,color .25s,transform .25s}
.cta:hover{background:var(--cta-hover);transform:translateY(-2px)}
:root[data-theme="light"] .cta:hover{color:#f6f3ea}
.cta:active{transform:translateY(0) scale(.98)}
.scrollhint{position:absolute;left:var(--padx);top:calc(84px + env(safe-area-inset-top));display:flex;gap:12px;align-items:center}
.scrollhint i{display:block;width:44px;height:1px;background:var(--edge);position:relative;overflow:hidden}
.scrollhint i:after{content:"";position:absolute;inset:0;background:var(--cream);transform:translateX(-100%);animation:sh 2.2s ease-in-out infinite}
@keyframes sh{60%,100%{transform:translateX(100%)}}
@media(max-width:760px){.hsub{grid-template-columns:1fr;gap:var(--s5)}}
@media(max-height:520px){.scrollhint{display:none}.hsub{grid-template-columns:minmax(0,1fr) auto}.hsub p{font-size:0.9375rem;line-height:1.5}}

/* ── 2. manifesto, word by word on scroll ── */
.mf{height:280svh;position:relative}
.mf .pin{position:sticky;top:0;height:100svh;display:flex;align-items:center;padding:0 var(--padx)}
.mf .txt{max-width:1180px;margin:0;font-weight:300;font-size:clamp(28px,min(4.4vw,7svh),64px);line-height:1.1;letter-spacing:-.035em;text-wrap:pretty}
.mf .w{opacity:.1;transition:opacity .25s linear}
.mf .w.on{opacity:1}
.mf .w.b{font-weight:600}
/* no scrim band: the field calms itself behind the words (agency.js), and each glyph carries a soft halo of the ground colour */
.mf .txt{text-shadow:0 0 1px rgb(var(--bg-rgb)),0 0 6px rgba(var(--bg-rgb),.95),0 0 14px rgba(var(--bg-rgb),.85),0 0 28px rgba(var(--bg-rgb),.7),0 0 48px rgba(var(--bg-rgb),.5)}
@media(max-height:560px){.mf .txt{font-size:clamp(18px,min(4.4vw,5.6svh),34px);max-width:46em}}

/* ── 3. horizontal pinned strip ── */
.hs{height:340svh;position:relative}
.hs .pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.hs .lab{margin:0 0 4svh;padding:0 var(--padx);font-weight:400;color:var(--fg2)}
.hs .row{display:flex;gap:6vw;padding:0 var(--padx);will-change:transform;white-space:nowrap}
.hs .it{font-weight:600;font-size:clamp(54px,min(12vw,22svh),200px);letter-spacing:-.06em;line-height:.9;display:flex;align-items:baseline;gap:18px;color:transparent;-webkit-text-stroke:1.2px var(--outline);transition:color .3s,-webkit-text-stroke-color .3s}
.hs .it.on{color:var(--fg);-webkit-text-stroke-color:transparent}
.hs .it small{font-family:var(--monof);font-size:0.75rem;letter-spacing:.14em;-webkit-text-stroke:0;color:var(--teal);font-weight:400}
.hs .bar{margin:5svh var(--padx) 0;height:1px;background:var(--line);position:relative}
.hs .bar i{position:absolute;left:0;top:0;height:1px;background:var(--cream);width:100%;transform-origin:0 50%;transform:scaleX(0)}

/* ── 4. stacking capability cards ──
   --top is set by agency.js from the real header height, so a card always sticks below the header, never under it.
   A card taller than the room left becomes a window (.win): fixed height, its content (.ci) scrolls inside the clip (.cw). */
.stack{position:relative;padding:0 max(clamp(12px,3vw,40px),calc((100vw - var(--maxw)) / 2),var(--safe-x)) 30svh}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.card h3 .wd{display:inline-block;white-space:nowrap}
.card h3 .ch{display:inline-block;will-change:transform,filter,opacity}
.card .rule{height:1px;background:var(--line);transform-origin:0 50%;transform:scaleX(var(--d,0));margin:22px 0 0}
.stack .gap{height:38svh}.stack .gap:last-child{height:0}
.card{position:sticky;top:var(--top,calc(88px + var(--i) * 16px));min-height:min(68svh,640px);border-radius:26px;
 background:linear-gradient(160deg,var(--card-a),var(--card-b));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--card-edge);
 box-shadow:var(--card-shadow);display:flex;flex-direction:column;transform-origin:50% 0;will-change:transform,filter}
.cw{position:relative;flex:1 1 auto;min-height:0;border-radius:inherit;overflow:hidden;overflow:clip}
.ci{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:5vw;padding:clamp(24px,4vw,60px)}
.card.win .ci{will-change:transform}
/* a window fades its content out softly at both edges instead of cutting it */
.card.win .cw{-webkit-mask-image:linear-gradient(transparent,#000 20px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(transparent,#000 20px,#000 calc(100% - 28px),transparent)}
.card.under{backdrop-filter:none;-webkit-backdrop-filter:none}
/* a covered card recedes towards the ground colour (in dark this equals the original brightness() dimming) */
.card .dim{position:absolute;inset:-1px;border-radius:inherit;background:var(--dim-c);opacity:0;pointer-events:none}
.card .num{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.card .num b{font-family:var(--monof);font-size:0.75rem;letter-spacing:.14em;color:var(--teal);font-weight:400;font-variant-numeric:tabular-nums}
.card .own{font-family:var(--monof);font-size:0.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--own-fg);background:var(--own-bg);padding:4px 8px;border-radius:3px}
.card h3{font-weight:600;font-size:clamp(34px,5vw,84px);line-height:.93;letter-spacing:-.05em;margin:18px 0 0;text-wrap:balance}
.card .lede{font-size:clamp(1.125rem,1.7vw,1.5625rem);line-height:1.42;letter-spacing:-.015em;color:var(--lede);margin:0 0 30px;max-width:34em;text-wrap:pretty}
.card ol{list-style:none;counter-reset:s;margin:0 0 24px;padding:0;columns:2;column-gap:36px}
.card li{counter-increment:s;break-inside:avoid;padding:13px 0;border-top:1px solid var(--line);font-size:0.9375rem;line-height:1.45;color:var(--li);opacity:0;transform:translateY(10px);transition:opacity .6s,transform .6s;text-wrap:pretty}
.card.live li{opacity:1;transform:none}
.card.live li:nth-child(2){transition-delay:.06s}.card.live li:nth-child(3){transition-delay:.12s}.card.live li:nth-child(4){transition-delay:.18s}.card.live li:nth-child(5){transition-delay:.24s}
.card li:before{content:counter(s,decimal-leading-zero);display:block;font-family:var(--monof);font-size:0.625rem;letter-spacing:.14em;color:var(--mute);margin-bottom:5px;font-variant-numeric:tabular-nums}
.lk{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;gap:10px;align-items:center;min-height:var(--hit);font-size:0.9375rem;
 text-decoration:underline;text-decoration-color:var(--edge);text-decoration-thickness:1px;text-underline-offset:7px;transition:color .2s,text-decoration-color .2s}
.lk:hover{text-decoration-color:var(--cream);color:var(--cream)}
@media(max-width:860px){.card{top:var(--top,calc(76px + var(--i) * 8px));min-height:auto;border-radius:20px;background:var(--card-m)}.ci{grid-template-columns:1fr;gap:16px}.card ol{columns:1}.card h3{margin-top:12px}.card .lede{margin-bottom:20px}}
@media(min-width:861px) and (max-height:620px){.card{min-height:auto}.card ol{margin-bottom:16px}.card li{padding:9px 0}}

/* ── 5. close: the circular wipe clears the field, then the copy and the ask form sit on a quiet ground ── */
.end{position:relative;isolation:isolate;padding:30svh var(--padx) clamp(72px,12svh,140px)}
.wipew{position:absolute;inset:0;z-index:-1;pointer-events:none}
.end .wipe{position:sticky;top:0;height:100lvh;background:var(--bg);clip-path:circle(var(--r,0%) at 50% 50%)}
.endi{position:relative}
.end h2{font-weight:600;font-size:clamp(46px,min(11vw,20svh),190px);letter-spacing:-.06em;line-height:.86;margin:0 0 clamp(36px,6svh,72px)}
.end h2 span{display:block;will-change:transform,opacity;text-wrap:balance}
.end h2 span+span{font-style:italic;color:var(--cream);padding-right:.08em}
.end .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,120px);align-items:start}
.end .lead p{color:var(--body);font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.55;margin:0 0 var(--s6);max-width:26em;text-wrap:pretty}
.askf{position:relative;max-width:560px;padding-top:2px}
.askh{margin:0 0 var(--s5);color:var(--fg2)}
.askf .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.fld{position:relative;margin-bottom:var(--s5)}
.fld label{display:block;font-size:0.875rem;line-height:1.3;color:var(--mute);margin-bottom:2px}
.askf input,.askf textarea{display:block;width:100%;min-height:52px;background:transparent;border:0;border-bottom:1px solid var(--edge-2);color:var(--fg);font:inherit;font-size:1.125rem;line-height:1.4;padding:12px 0;border-radius:0;resize:none;-webkit-appearance:none;appearance:none;transition:border-color .2s}
.askf textarea{min-height:52px;max-height:40svh;overflow:auto}
.askf input:focus,.askf textarea:focus{outline:none;border-bottom-color:var(--accent);box-shadow:0 1px 0 var(--accent)}
.askf input:focus-visible,.askf textarea:focus-visible{outline:none}
.askf [aria-invalid="true"]{border-bottom-color:var(--bad)}
.askb{display:flex;align-items:center;gap:var(--s4) var(--s5);flex-wrap:wrap;margin-top:var(--s6)}
.askb button{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border:1px solid var(--edge);border-radius:999px;font-size:0.9375rem;font-weight:500;transition:background .25s,color .25s,border-color .25s,opacity .2s}
.askb button:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.askb button:disabled{opacity:.5;cursor:progress}
.askf .msg{flex:1 1 200px;margin:0;font-size:0.875rem;line-height:1.45;color:var(--mute);min-height:1.45em}
.askf .msg[data-state="ok"]{color:var(--ok)}
.askf .msg[data-state="err"]{color:var(--bad)}
.askf .msg a{color:inherit}
@media(max-width:760px){
 .end{padding-top:24svh}
 .end .row{grid-template-columns:1fr;gap:0}
 .end .lead .cta{display:flex;width:100%}
 .askf{max-width:none;margin-top:var(--s8);padding-top:var(--s7);border-top:1px solid var(--line)}
 .askb{flex-direction:column;align-items:stretch}
 .askb button{width:100%}
 .askf .msg{flex:none;text-align:center}
}

/* ── footer ── */
.ft{position:relative;z-index:3;background:var(--bg);border-top:1px solid var(--line);overflow:hidden;
 padding:clamp(48px,8vw,104px) max(var(--padx),env(safe-area-inset-right)) calc(clamp(24px,3vw,40px) + env(safe-area-inset-bottom)) max(var(--padx),env(safe-area-inset-left))}
.ft .big{display:block;width:100%;height:auto;margin:0 0 clamp(36px,5vw,72px);color:var(--wm);overflow:visible}
/* the outline is drawn in screen pixels (non-scaling stroke) and thickens with the width, so it never goes hairline */
.ft .big path{stroke-width:clamp(1.1px,.16vw,3px)}
.fm{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;column-gap:clamp(24px,4vw,64px);row-gap:var(--s2);border-top:1px solid var(--line);padding-top:var(--s5)}
.fm p{margin:0}
.fmail{display:inline-flex;align-items:center;min-height:var(--hit);font-size:clamp(1.0625rem,1.5vw,1.375rem);letter-spacing:-.01em;text-decoration:underline;text-decoration-color:var(--edge);text-decoration-thickness:1px;text-underline-offset:6px;transition:text-decoration-color .2s,color .2s}
.fmail:hover{color:var(--cream);text-decoration-color:var(--cream)}
.ftag{justify-self:start}
.ftop{display:inline-flex;align-items:center;gap:8px;min-height:var(--hit);text-decoration:none;justify-self:end;transition:color .2s}
.ftop:hover{color:var(--fg)}
@media(max-width:760px){
 .fm{grid-template-columns:1fr auto;row-gap:var(--s3)}
 .fmail{grid-column:1/-1}
 .ftag{grid-column:1/-1;grid-row:2}
 .fcopy{grid-column:1;grid-row:3}
 .ftop{grid-column:2;grid-row:3}
}

/* ── reduced motion: nothing pins, nothing hides, everything is readable as a plain page ── */
@media(prefers-reduced-motion:reduce){
 .hero,.mf,.hs{height:auto}
 .hero .pin,.mf .pin,.hs .pin{position:relative;height:auto;min-height:100svh;padding-top:calc(96px + env(safe-area-inset-top))}
 .mf .pin,.hs .pin{min-height:0;padding-block:clamp(72px,14svh,160px)}
 .hs .row{flex-wrap:wrap;white-space:normal;row-gap:.2em;transform:none!important}
 .hs .it{color:var(--fg);-webkit-text-stroke-color:transparent;font-size:clamp(40px,8vw,120px)}
 .hs .bar,.scrollhint{display:none}
 .mf .w{opacity:1;transition:none}
 .stack .gap{height:var(--s5)!important}.stack .gap:last-child{height:0!important}
 .card{position:relative;top:auto;height:auto!important;transform:none!important;filter:none!important}
 .ci{transform:none!important}
 .card li{opacity:1;transform:none;transition:none}
 .end .wipe{clip-path:none}
 .nav,.ov,.ov nav a,.cta,.wm{transition:none}
}
.agency-root{background:var(--bg);color:var(--fg);min-height:100vh}
