:root{color-scheme:dark light;--green-50: oklch(97% 0.010 130);--green-100: oklch(93% 0.019 130);--green-200: oklch(86% 0.029 130);--green-300: oklch(78% 0.038 129);--green-400: oklch(70% 0.045 128);--green-500: oklch(60% 0.051 128);--green-600: oklch(50% 0.054 130);--green-700: oklch(42% 0.051 132);--green-800: oklch(34% 0.045 133);--green-850: oklch(29.5% 0.038 134);--green-900: oklch(25% 0.032 135);--green-925: oklch(20.5% 0.026 135);--green-950: oklch(16% 0.019 135);--ochre-50: oklch(97% 0.014 60);--ochre-100: oklch(93% 0.029 58);--ochre-200: oklch(86% 0.050 56);--ochre-300: oklch(78% 0.072 54);--ochre-400: oklch(72% 0.094 55);--ochre-500: oklch(64% 0.101 50);--ochre-600: oklch(58% 0.108 45);--ochre-700: oklch(50% 0.101 40);--ochre-800: oklch(42% 0.086 38);--ochre-900: oklch(32% 0.065 35);--ochre-950: oklch(22% 0.043 33);--brown-400: oklch(68% 0.045 55);--brown-800: oklch(30% 0.035 55);--brown-950: oklch(14% 0.020 55);--neutral-50: oklch(97.5% 0.005 90);--neutral-100: oklch(94% 0.008 90);--neutral-200: oklch(88% 0.010 90);--neutral-300: oklch(80% 0.012 90);--neutral-400: oklch(70% 0.012 90);--neutral-500: oklch(60% 0.012 90);--neutral-600: oklch(50% 0.010 90);--neutral-700: oklch(40% 0.008 90);--neutral-800: oklch(30% 0.006 90);--neutral-900: oklch(20% 0.004 90);--neutral-950: oklch(12% 0.003 90);--step--2: clamp(0.694rem, 0.686rem + 0.035vi, 0.750rem);--step--1: clamp(0.833rem, 0.824rem + 0.016vi, 0.844rem);--step-0: clamp(1rem, 0.958rem + 0.185vi, 1.125rem);--step-1: clamp(1.2rem, 1.100rem + 0.444vi, 1.500rem);--step-2: clamp(1.44rem, 1.254rem + 0.828vi, 2.000rem);--step-3: clamp(1.728rem, 1.416rem + 1.387vi, 2.665rem);--step-4: clamp(2.074rem, 1.581rem + 2.190vi, 3.552rem);--step-5: clamp(2.488rem, 1.740rem + 3.326vi, 4.733rem);--font-display: "Fraunces", Georgia, serif;--font-body: "Source Serif 4", "Source Serif Pro", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--leading-tight: 1.1;--leading-snug: 1.25;--leading-normal: 1.4;--leading-relaxed: 1.5;--leading-body: 1.65;--space-3xs: clamp(0.25rem, 0.24rem + 0.046vi, 0.281rem);--space-2xs: clamp(0.5rem, 0.479rem + 0.093vi, 0.563rem);--space-xs: clamp(0.75rem, 0.719rem + 0.139vi, 0.844rem);--space-s: clamp(1rem, 0.958rem + 0.185vi, 1.125rem);--space-m: clamp(1.5rem, 1.438rem + 0.278vi, 1.688rem);--space-l: clamp(2rem, 1.917rem + 0.370vi, 2.25rem);--space-xl: clamp(3rem, 2.875rem + 0.556vi, 3.375rem);--space-2xl: clamp(4rem, 3.833rem + 0.741vi, 4.5rem);--space-3xl: clamp(6rem, 5.75rem + 1.111vi, 6.75rem);--space-2xs-xs: clamp(0.5rem, 0.385rem + 0.509vi, 0.844rem);--space-xs-s: clamp(0.75rem, 0.667rem + 0.370vi, 1.125rem);--space-s-m: clamp(1rem, 0.771rem + 1.019vi, 1.688rem);--space-m-l: clamp(1.5rem, 1.25rem + 1.111vi, 2.25rem);--space-l-xl: clamp(2rem, 1.542rem + 2.037vi, 3.375rem);--space-xl-2xl: clamp(3rem, 2.5rem + 2.222vi, 4.5rem);--space-2xl-3xl: clamp(4rem, 3.083rem + 4.074vi, 6.75rem)}[data-theme=dark]{--surface-page: color-mix(in oklch, var(--green-800) 95%, transparent);--surface-card: var(--green-850);--surface-hero: var(--green-950);--hero-bg: url("/assets/images/masthead-bg-1.1.jpg");--hero-graphic: url("/assets/images/masthead-graphic-1.1.png");--surface-band: color-mix(in oklch, var(--green-700) 90%, transparent);--surface-cta: color-mix(in oklch, var(--brown-950) 60%, transparent);--surface-footer: var(--green-925);--nav-bg: color-mix(in oklch, var(--green-925) 88%, transparent);--nav-border: color-mix(in oklch, var(--green-950) 50%, transparent);--nav-text: var(--neutral-400);--nav-wordmark: var(--green-100);--hero-overline: var(--ochre-500);--hero-heading: var(--green-100);--hero-sub: var(--neutral-400);--hero-metrics-bg: var(--green-925);--hero-metric-val: var(--ochre-400);--hero-metric-lbl: var(--neutral-400);--hero-glow-1: color-mix(in oklch, var(--green-900) 50%, transparent);--hero-glow-2: color-mix(in oklch, var(--ochre-950) 30%, transparent);--sect-heading: var(--green-100);--sect-body: var(--neutral-300);--sect-muted: var(--neutral-400);--card-bg: color-mix(in oklch, var(--green-850) 90%, transparent);--card-border: var(--green-850);--card-border-hov: var(--ochre-400);--card-shadow-hov: color-mix(in oklch, var(--green-950) 20%, transparent);--card-link-c: var(--ochre-700);--card-link-hov: var(--ochre-600);--step-num-c: var(--ochre-200);--band-heading: var(--green-100);--band-body: var(--neutral-400);--band-label: var(--neutral-400);--band-glow: color-mix(in oklch, var(--green-925) 50%, transparent);--tech-bg: color-mix(in oklch, var(--green-900) 60%, transparent);--tech-bdr: color-mix(in oklch, var(--green-800) 30%, transparent);--tech-hov: color-mix(in oklch, var(--green-900) 70%, transparent);--btn-bg: var(--ochre-500);--btn-fg: var(--green-950);--btn-hov: var(--ochre-400);--ghost-bdr: color-mix(in oklch, var(--green-600) 30%, transparent);--ghost-fg: var(--neutral-400);--proc-from: var(--ochre-600);--proc-to: var(--ochre-300);--ft-border: color-mix(in oklch, var(--green-950) 50%, transparent);--ft-text: var(--green-600);--ft-heading: var(--green-500);--ft-bar-bdr: var(--green-950);--ft-copy: var(--green-700);--ic-erl-bg: oklch(30% 0.06 15 / 0.5);--ic-erl-fg: oklch(45% 0.12 15);--ic-dist-bg: color-mix(in oklch, var(--green-800) 50%, transparent);--ic-dist-fg: var(--green-700);--ic-ai-bg: color-mix(in oklch, var(--ochre-900) 50%, transparent);--ic-ai-fg: var(--ochre-600);--tog-track: var(--green-900);--tog-border: var(--green-700);--tog-thumb: var(--ochre-500);--tog-active: var(--neutral-100);--tog-idle: var(--green-600)}[data-theme=light]{--surface-page: var(--green-50);--surface-card: var(--neutral-50);--surface-hero: var(--green-50);--hero-bg: url("/assets/images/masthead-bg-1.2-light.jpg");--hero-graphic: url("/assets/images/masthead-graphic-1.2-light.png");--surface-band: color-mix(in oklch, var(--ochre-100) 50%, transparent);--surface-cta: var(--green-200);--surface-footer: var(--green-900);--nav-bg: color-mix(in oklch, var(--neutral-50) 92%, transparent);--nav-border: color-mix(in oklch, var(--neutral-200) 50%, transparent);--nav-text: var(--neutral-700);--nav-wordmark: var(--green-800);--hero-overline: var(--ochre-700);--hero-heading: var(--green-900);--hero-sub: var(--neutral-700);--hero-metrics-bg: color-mix(in oklch, var(--neutral-100) 85%, transparent);--hero-metric-val: var(--ochre-700);--hero-metric-lbl: var(--neutral-600);--hero-glow-1: color-mix(in oklch, var(--green-100) 60%, transparent);--hero-glow-2: color-mix(in oklch, var(--ochre-100) 30%, transparent);--sect-heading: var(--green-900);--sect-body: var(--neutral-700);--sect-muted: var(--neutral-500);--card-bg: var(--neutral-50);--card-border: var(--neutral-200);--card-border-hov: var(--ochre-400);--card-shadow-hov: color-mix(in oklch, var(--neutral-600) 6%, transparent);--card-link-c: var(--ochre-800);--card-link-hov: var(--ochre-700);--step-num-c: var(--ochre-100);--band-heading: var(--green-950);--band-body: var(--neutral-700);--band-label: var(--neutral-600);--band-glow: color-mix(in oklch, var(--green-100) 30%, transparent);--tech-bg: color-mix(in oklch, var(--ochre-300) 50%, transparent);--tech-bdr: color-mix(in oklch, var(--neutral-200) 50%, transparent);--tech-hov: var(--neutral-50);--btn-bg: var(--ochre-700);--btn-fg: var(--ochre-50);--btn-hov: var(--ochre-600);--ghost-bdr: var(--neutral-300);--ghost-fg: var(--neutral-700);--proc-from: var(--ochre-500);--proc-to: var(--ochre-200);--ft-border: color-mix(in oklch, var(--green-900) 50%, transparent);--ft-text: var(--green-400);--ft-heading: var(--green-400);--ft-bar-bdr: var(--green-900);--ft-copy: var(--green-600);--ic-erl-bg: oklch(92% 0.04 15 / 0.3);--ic-erl-fg: oklch(45% 0.12 15);--ic-dist-bg: color-mix(in oklch, var(--green-100) 30%, transparent);--ic-dist-fg: var(--green-700);--ic-ai-bg: color-mix(in oklch, var(--ochre-100) 30%, transparent);--ic-ai-fg: var(--ochre-600);--tog-track: var(--neutral-100);--tog-border: var(--neutral-300);--tog-thumb: var(--ochre-600);--tog-active: var(--brown-800);--tog-idle: var(--neutral-400)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:"Lora",Georgia,serif;font-size:var(--step-0);line-height:1.65;color:var(--sect-heading);background:var(--surface-page);transition:background .4s ease,color .4s ease}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.theme-toggle{position:relative;width:52px;height:28px;background:var(--tog-track);border:1px solid var(--tog-border);border-radius:14px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:0 6px;transition:background .3s ease,border-color .3s ease;flex-shrink:0}.theme-toggle:hover{border-color:var(--ochre-500)}.theme-toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--tog-thumb);border-radius:50%;transition:transform .3s cubic-bezier(.4, 0, .2, 1),background .3s ease;box-shadow:0 1px 3px oklch(20% .02 80/.3)}[data-theme=light] .theme-toggle::after{transform:translateX(24px)}.toggle-icon{font-size:12px;line-height:1;position:relative;z-index:1;transition:color .3s ease}.toggle-moon{color:var(--tog-active)}.toggle-sun{color:var(--tog-idle)}[data-theme=light] .toggle-moon{color:var(--tog-idle)}[data-theme=light] .toggle-sun{color:var(--tog-active)}.section-label{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);letter-spacing:.14em;text-transform:uppercase;color:var(--sect-muted);margin-bottom:var(--space-s);transition:color .4s ease}.section-label-light{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);letter-spacing:.14em;text-transform:uppercase;color:var(--band-label);transition:color .4s ease}.nav{position:fixed;top:0;left:0;right:0;z-index:100;backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);background:var(--nav-bg);border-bottom:1px solid var(--nav-border);transition:background .4s ease,border-color .4s ease}.nav::before{content:"";position:absolute;inset:0;background:url("/assets/images/texture-bg.jpg") repeat;opacity:.1;pointer-events:none}.nav-inner{max-width:1280px;margin:0 auto;padding:var(--space-xs) var(--space-m);display:flex;align-items:center;justify-content:space-between}.nav-brand{display:flex;align-items:center;gap:var(--space-xs)}.nav-logo{height:36px;width:auto}.nav-wordmark{font-family:"Brygada 1918",serif;font-weight:500;font-size:var(--step-1);letter-spacing:.02em;color:var(--nav-wordmark);line-height:1.1;transition:color .4s ease}.nav-links{display:flex;align-items:center;gap:var(--space-m);list-style:none}.nav-links a{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--1);font-weight:400;color:var(--nav-text);letter-spacing:.03em;transition:color .2s ease}.nav-links a:hover{color:var(--ochre-500)}.nav-cta{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--btn-fg) !important;background:var(--btn-bg);padding:.5em 1.2em;border-radius:4px;transition:background .2s ease,transform .15s ease}.nav-cta:hover{background:var(--btn-hov);transform:translateY(-1px)}@media (max-width: 768px){.nav-links li:not(:last-child):not(.toggle-li){display:none}}.hero{min-height:100vh;background:var(--hero-bg) repeat;display:grid;grid-template-columns:1fr;align-items:end;position:relative;overflow:hidden;padding-top:80px}.hero-geo{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;animation:fadeUp .8s ease-out .5s forwards;background:var(--hero-graphic) no-repeat right/auto}.hero-content{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:var(--space-3xl) var(--space-m) var(--space-2xl);width:100%}.hero-overline{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--hero-overline);margin-bottom:var(--space-s);opacity:0;animation:fadeUp .8s ease-out .2s forwards;transition:color .4s ease}.hero h1{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-5);line-height:1.05;letter-spacing:.01em;color:var(--hero-heading);max-width:14ch;margin-bottom:var(--space-m);opacity:0;animation:fadeUp .8s ease-out .35s forwards;transition:color .4s ease}.hero h1 em{font-style:normal;color:var(--hero-overline)}.hero-sub{font-family:"Lora",serif;font-size:var(--step-1);font-weight:300;line-height:1.5;color:var(--hero-sub);max-width:75%;margin-bottom:var(--space-l);opacity:0;animation:fadeUp .8s ease-out .5s forwards;transition:color .4s ease}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-s);align-items:center;opacity:0;animation:fadeUp .8s ease-out .65s forwards}.btn-primary{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--1);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--btn-fg);background:var(--btn-bg);padding:.75em 2em;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5em}.btn-primary:hover{background:var(--btn-hov);transform:translateY(-2px);box-shadow:0 8px 24px oklch(45% .12 55/.25)}.btn-primary.large{font-size:var(--step-0);padding:.85em 2.4em}.btn-ghost{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--1);font-weight:400;letter-spacing:.04em;color:var(--ghost-fg);background:rgba(0,0,0,0);padding:.75em 1.5em;border:1px solid var(--ghost-bdr);border-radius:4px;cursor:pointer;transition:all .2s ease}.btn-ghost:hover{border-color:var(--ochre-500);color:var(--ochre-500)}.hero-metrics{position:relative;z-index:2;background:var(--hero-metrics-bg);backdrop-filter:blur(8px);border-top:1px solid var(--nav-border);transition:background .4s ease,border-color .4s ease}.hero-metrics-inner{max-width:1280px;margin:0 auto;padding:var(--space-m);display:flex;flex-wrap:wrap;gap:var(--space-l)}.metric{opacity:0;animation:fadeUp .6s ease-out forwards}.metric:nth-child(1){animation-delay:.8s}.metric:nth-child(2){animation-delay:.9s}.metric:nth-child(3){animation-delay:1s}.metric:nth-child(4){animation-delay:1.1s}.metric-value{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-2);color:var(--hero-metric-val);line-height:1.2;transition:color .4s ease}.metric-label{font-family:"Recursive",monospace;font-size:var(--step--2);color:var(--hero-metric-lbl);letter-spacing:.05em;transition:color .4s ease}@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.expertise{padding:var(--space-3xl) var(--space-m);max-width:1280px;margin:0 auto}.expertise-header{margin-bottom:var(--space-xl)}.expertise h2{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-3);line-height:1.15;color:var(--sect-heading);max-width:20ch;transition:color .4s ease}.expertise-intro{font-family:"Lora",serif;font-size:var(--step-0);color:var(--sect-body);max-width:var(--measure);margin-top:var(--space-xs);line-height:1.6;transition:color .4s ease}.expertise-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,320px), 1fr));gap:var(--space-m);margin-bottom:var(--space-xl)}.expertise-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;padding:var(--space-l) var(--space-m);display:flex;flex-direction:column;gap:var(--space-s);transition:all .3s ease;position:relative;overflow:hidden}.expertise-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ochre-600);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.expertise-card:hover{border-color:var(--card-border-hov);box-shadow:0 4px 24px var(--card-shadow-hov);transform:translateY(-3px)}.expertise-card:hover::before{transform:scaleX(1)}.card-icon{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;font-size:1.4rem;flex-shrink:0;transition:all .4s ease}.card-icon.erlang{background:var(--ic-erl-bg);color:var(--ic-erl-fg)}.card-icon.distributed{background:var(--ic-dist-bg);color:var(--ic-dist-fg)}.card-icon.ai{background:var(--ic-ai-bg);color:var(--ic-ai-fg)}.card-title{font-family:"Brygada 1918",serif;font-weight:500;font-size:var(--step-1);color:var(--sect-heading);line-height:1.25;transition:color .4s ease}.card-desc{font-family:"Lora",serif;font-size:var(--step--1);color:var(--sect-body);line-height:1.6;flex-grow:1;transition:color .4s ease}.card-link{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--card-link-c);display:inline-flex;align-items:center;gap:.4em;transition:gap .2s ease,color .2s ease}.card-link:hover{color:var(--card-link-hov);gap:.7em}.tech-band{background:var(--surface-band);position:relative;overflow:hidden;transition:background .4s ease}.tech-band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 80% 50%, var(--band-glow), rgba(0,0,0,0));pointer-events:none}.tech-inner{max-width:1280px;margin:0 auto;padding:var(--space-3xl) var(--space-m);position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl);align-items:center}@media (max-width: 768px){.tech-inner{grid-template-columns:1fr}}.tech-content h2{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-3);line-height:1.12;color:var(--band-heading);margin-bottom:var(--space-xs);transition:color .4s ease}.tech-content h2 em{font-style:normal;color:var(--hero-overline)}.tech-content p{font-family:"Lora",serif;font-size:var(--step-0);color:var(--band-body);max-width:var(--measure-narrow);line-height:1.65;margin-bottom:var(--space-m);transition:color .4s ease}.tech-stack{display:grid;grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));gap:var(--space-s)}.tech-item{background:var(--tech-bg);border:1px solid var(--tech-bdr);border-radius:8px;padding:var(--space-s);text-align:center;transition:all .3s ease}.tech-item:hover{background:var(--tech-hov);border-color:var(--ochre-500);transform:translateY(-2px)}.tech-item-icon{font-size:var(--step-2);margin-bottom:var(--space-3xs);display:block}.tech-item-name{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);font-weight:500;color:var(--band-heading);letter-spacing:.04em;transition:color .4s ease}.tech-item-role{font-family:"Recursive",monospace;font-size:.65rem;color:var(--band-body);margin-top:2px;transition:color .4s ease}.process{padding:var(--space-3xl) var(--space-m);max-width:1280px;margin:0 auto}.process h2{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-3);line-height:1.15;color:var(--sect-heading);margin-bottom:var(--space-xl);transition:color .4s ease}.process-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:var(--space-m)}@media (max-width: 900px){.process-grid{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 500px){.process-grid{grid-template-columns:1fr}}.process-step{position:relative;padding:var(--space-m) 0}.process-step::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right, var(--proc-from), var(--proc-to))}.step-num{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-4);color:var(--step-num-c);line-height:1;margin-bottom:var(--space-2xs);transition:color .4s ease}.step-title{font-family:"Brygada 1918",serif;font-weight:500;font-size:var(--step-1);color:var(--sect-heading);line-height:1.25;margin-bottom:var(--space-2xs);transition:color .4s ease}.step-desc{font-family:"Lora",serif;font-size:var(--step--1);color:var(--sect-body);line-height:1.6;transition:color .4s ease}.cta-band{background:var(--surface-cta);position:relative;overflow:hidden;transition:background .4s ease}.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(circle 600px at 20% 50%, oklch(20% .06 55/.25), rgba(0,0,0,0)),radial-gradient(circle 400px at 80% 60%, oklch(22% .05 130/.3), rgba(0,0,0,0));pointer-events:none}.cta-inner{max-width:1280px;margin:0 auto;padding:var(--space-3xl) var(--space-m);position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-l)}.cta-text h2{font-family:"Brygada 1918",serif;font-weight:400;font-size:var(--step-3);line-height:1.12;color:var(--band-heading);max-width:18ch;transition:color .4s ease}.cta-text h2 em{font-style:normal;color:var(--ochre-500)}.cta-text p{font-family:"Lora",serif;font-size:var(--step-0);color:var(--band-body);max-width:var(--measure-narrow);margin-top:var(--space-xs);transition:color .4s ease}.footer{background:var(--surface-footer);border-top:1px solid var(--ft-border);transition:background .4s ease}.footer-inner{max-width:1280px;margin:0 auto;padding:var(--space-2xl) var(--space-m) var(--space-l)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-xl);margin-bottom:var(--space-xl)}@media (max-width: 768px){.footer-grid{grid-template-columns:1fr 1fr}}.footer-logo{height:32px;width:auto;margin-bottom:var(--space-xs)}.footer-tagline{font-family:"Lora",serif;font-size:var(--step--1);color:var(--ft-text);max-width:30ch;line-height:1.55}.footer-heading{font-family:"Recursive",monospace;font-variation-settings:"MONO" 1,"CASL" 0;font-size:var(--step--2);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ft-heading);margin-bottom:var(--space-s)}.footer-links{list-style:none;display:flex;flex-direction:column;gap:var(--space-2xs)}.footer-links a{font-family:"Lora",serif;font-size:var(--step--1);color:var(--ft-text);transition:color .2s ease}.footer-links a:hover{color:var(--ochre-400)}.footer-bar{border-top:1px solid var(--ft-bar-bdr);padding-top:var(--space-s);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-s)}.footer-copy{font-family:"Recursive",monospace;font-size:.7rem;color:var(--ft-copy);letter-spacing:.03em}.footer-legal{display:flex;gap:var(--space-s)}.footer-legal a{font-family:"Recursive",monospace;font-size:.7rem;color:var(--ft-copy);transition:color .2s ease}.footer-legal a:hover{color:var(--ochre-400)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease-out,transform .7s ease-out}.reveal.visible{opacity:1;transform:translateY(0)}