@layer reset, tokens, base, components, utilities;
@layer tokens {
  :root {
    --color-paper:#f4f2ec; --color-surface:#fff; --color-ink:#14221d; --color-muted:#56635e;
    --color-line:#cdd4cf; --color-accent:#175c45; --color-accent-strong:#0d4433; --color-signal:#e9693b; --color-dark:#10251e;
    --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; --font-mono:"SFMono-Regular",Consolas,monospace;
    --step--1:clamp(.82rem,.79rem + .12vw,.9rem); --step-0:clamp(1rem,.96rem + .18vw,1.125rem); --step-1:clamp(1.25rem,1.12rem + .6vw,1.65rem);
    --step-2:clamp(1.6rem,1.32rem + 1.2vw,2.4rem); --step-3:clamp(2.1rem,1.5rem + 2.8vw,4rem); --step-4:clamp(2.8rem,1.55rem + 5.5vw,6.5rem);
    --leading-tight:1.04; --leading-copy:1.65; --space-1:.5rem; --space-2:.75rem; --space-3:1rem; --space-4:1.5rem; --space-5:2rem; --space-6:3rem; --space-7:4.5rem; --space-8:7rem;
    --radius-sm:.25rem; --radius-md:.75rem; --radius-lg:1.25rem; --shadow-card:0 1.25rem 4rem rgb(20 34 29 / .08);
    --container:76rem; --container-narrow:52rem; --header-height:5rem; --z-header:20; --z-skip:100;
    --bp-tablet:48rem; --bp-desktop:72rem;
  }
}
@layer reset { *,*::before,*::after{box-sizing:border-box} html{scroll-behavior:smooth} body,h1,h2,h3,p,ol,ul{margin:0} ul,ol{padding:0} img{display:block;max-width:100%} button,input,textarea{font:inherit} }
@layer base {
  body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:var(--leading-copy);text-rendering:optimizeLegibility}
  a{color:inherit} a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:.2rem solid var(--color-signal);outline-offset:.2rem}
  h1,h2,h3{font-weight:750;line-height:var(--leading-tight);letter-spacing:-.035em;text-wrap:balance} h1{font-size:var(--step-4);max-width:16ch} h2{font-size:var(--step-3);max-width:22ch} h3{font-size:var(--step-1)}
  p{max-width:68ch} main{min-height:65vh}.container{width:min(var(--container),calc(100% - 2rem));margin-inline:auto}.section{padding-block:var(--space-7)}
}
@layer components {
  .skip-link{position:fixed;z-index:var(--z-skip);top:var(--space-2);left:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-ink);color:white;transform:translateY(-160%)}.skip-link:focus{transform:none}
  .site-header{position:relative;z-index:var(--z-header);border-bottom:1px solid var(--color-line);background:rgb(244 242 236 / .94)}.header-inner{min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.brand img{width:clamp(10rem,25vw,13.375rem)}
  .desktop-nav,.header-cta{display:none}.nav-list{list-style:none}.nav-list a{text-decoration:none;font-size:var(--step--1);font-weight:650}.nav-list a:hover{text-decoration:underline;text-underline-offset:.35em}
  .nav-pending{font-size:var(--step--1);color:var(--color-muted)}.site-footer .nav-pending{color:#95a39d}.availability{display:inline-block;margin-top:var(--space-4);font:700 var(--step--1) var(--font-mono);color:var(--color-muted)}
  .mobile-nav summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.65rem;min-width:3rem;min-height:3rem}.mobile-nav summary::-webkit-details-marker{display:none}.menu-icon,.menu-icon::before{display:block;width:1.4rem;height:2px;background:currentColor;content:""}.menu-icon::before{transform:translateY(.45rem)}.mobile-nav nav{position:absolute;inset:var(--header-height) 0 auto;background:var(--color-paper);border-bottom:1px solid var(--color-line);padding:var(--space-4)}.mobile-nav .nav-list{display:grid;gap:var(--space-3)}
  .button-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.72rem 1.15rem;border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:white;font-weight:750;text-decoration:none}.button:hover{background:var(--color-accent-strong)}.button--secondary{background:transparent;color:var(--color-ink);border-color:var(--color-line)}.button--compact{font-size:var(--step--1);min-height:2.65rem}.header-cta{display:none}
  .eyebrow,.card-meta,.step-number{font:700 var(--step--1)/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent)}
  .hero{padding-block:var(--space-7);overflow:hidden}.hero-grid{display:grid;gap:var(--space-6);align-items:center}.hero h1{margin-top:var(--space-3)}.hero-text{margin-top:var(--space-4);font-size:var(--step-1);color:var(--color-muted)}.proof{margin-top:var(--space-5);font-size:var(--step--1)}.proof span{color:var(--color-signal)}
  .hero-visual{min-height:22rem;display:grid;place-items:center}.blueprint{position:relative;width:min(100%,30rem);aspect-ratio:4/3;padding:var(--space-4);border:1px solid var(--color-accent);background-color:#e8eee9;background-image:linear-gradient(rgb(23 92 69/.1) 1px,transparent 1px),linear-gradient(90deg,rgb(23 92 69/.1) 1px,transparent 1px);background-size:1.5rem 1.5rem;transform:rotate(2deg);box-shadow:var(--shadow-card)}.blueprint-label,.blueprint-code{font:700 .72rem var(--font-mono)}.blueprint-code{position:absolute;right:1rem;bottom:1rem}.blueprint-window{height:45%;margin-top:2rem;border:1px solid var(--color-accent);background:var(--color-surface);display:flex;gap:.35rem;padding:.7rem}.blueprint-window i{width:.5rem;height:.5rem;border-radius:50%;background:var(--color-signal)}.blueprint-lines{display:grid;gap:.6rem;margin-top:1.25rem}.blueprint-lines i{display:block;height:.35rem;background:var(--color-accent);width:75%}.blueprint-lines i:nth-child(2){width:50%}.blueprint-lines i:nth-child(3){width:63%}
  .breadcrumb{padding-block:var(--space-3);font-size:var(--step--1)}.breadcrumb ol{display:flex;flex-wrap:wrap;list-style:none;gap:.55rem}.breadcrumb li{display:inline-flex;gap:.55rem;align-items:baseline}.breadcrumb li+li::before{content:"/";flex:none;color:var(--color-muted)}
  .process-grid{list-style:none;display:grid;border-top:1px solid var(--color-line)}.process-grid li{padding:var(--space-4) 0;border-bottom:1px solid var(--color-line)}.process-grid h3{margin-top:var(--space-3)}.process-grid p{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--step--1)}
  .card-grid{display:grid;gap:var(--space-3);margin-top:var(--space-5)}.card{position:relative;display:flex;flex-direction:column;min-height:19rem;padding:var(--space-4);border:1px solid var(--color-line);background:var(--color-surface);transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-.2rem);box-shadow:var(--shadow-card)}.card h3{margin-top:auto;padding-top:var(--space-6)}.card h3 a{text-decoration:none}.card h3 a::after{content:"";position:absolute;inset:0}.card p:not(.eyebrow,.card-meta){margin-top:var(--space-3);color:var(--color-muted)}.text-link{margin-top:var(--space-4);font-weight:750;text-decoration:none}.card-meta{color:var(--color-muted);margin-bottom:var(--space-2)}
  .cta-block{padding:var(--space-5);border:1px solid var(--color-line);background:var(--color-surface)}.cta-block h2{margin-top:var(--space-3)}.cta-block>p:not(.eyebrow){margin-block:var(--space-3) var(--space-5);color:var(--color-muted)}.cta-block--primary{background:var(--color-dark);color:white}.cta-block--primary .eyebrow{color:#91d4bb}.cta-block--quiet{background:transparent}
  .faq-list{border-top:1px solid var(--color-line)}.faq-list details{border-bottom:1px solid var(--color-line)}.faq-list summary{cursor:pointer;font-weight:750;font-size:var(--step-1);padding:var(--space-4) 3rem var(--space-4) 0}.faq-list details div{padding-bottom:var(--space-4);color:var(--color-muted)}
  .site-footer{padding-top:var(--space-7);background:var(--color-dark);color:#e9f0ec}.footer-grid{display:grid;gap:var(--space-5)}.footer-brand img{margin-bottom:var(--space-4)}.footer-brand p{font-size:var(--step-1);line-height:1.35}.footer-brand small{display:block;margin-top:var(--space-3);color:#afbbb6}.site-footer h2{font-size:var(--step-0);letter-spacing:0}.site-footer ul{list-style:none;margin-top:var(--space-3)}.site-footer a{color:#d9e3de;text-underline-offset:.25em}.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6);padding-block:var(--space-4);border-top:1px solid #385047}.status-dot::before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.5rem;border-radius:50%;background:#91d4bb}
  .style-intro{padding-block:var(--space-7)}.swatches{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2);margin-top:var(--space-4)}.swatch{min-height:8rem;padding:var(--space-3);border:1px solid var(--color-line)}
  .section--contrast{background:#e8ebe6}.section--dark{background:var(--color-dark);color:#edf3ef}.section--dark .eyebrow{color:#91d4bb}.section--dark p{color:#c8d2cd}.split{display:grid;gap:var(--space-5)}.flow-copy{display:grid;gap:var(--space-3);align-content:start}.section-heading{display:flex;justify-content:space-between;gap:var(--space-4);align-items:end}
  .feature-grid,.capability-grid,.quality-list,.empty-proof{display:grid;gap:var(--space-3);margin-top:var(--space-5)}.feature-grid article,.capability-grid article,.empty-proof article{padding:var(--space-4);border:1px solid var(--color-line)}.feature-grid article{background:rgb(255 255 255/.45)}.feature-grid article>span,.tech-list article>span{font:700 var(--step--1) var(--font-mono);color:var(--color-accent)}.feature-grid h3,.capability-grid h3{margin-block:var(--space-5) var(--space-2)}.feature-grid p,.capability-grid p,.quality-list p,.empty-proof p{color:var(--color-muted)}.section--dark .capability-grid p{color:#c8d2cd}.capability-grid a,.empty-proof a{display:inline-block;margin-top:var(--space-4);font-weight:700}.quality-list article{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-line)}.quality-list p{margin-top:var(--space-2)}
  .timeline{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block:var(--space-5)}.timeline span{padding:.55rem .8rem;border:1px solid var(--color-line);font:700 var(--step--1) var(--font-mono)}.section-note{margin-bottom:var(--space-4);color:var(--color-muted)}
  .comparison{display:grid;gap:var(--space-3)}.comparison>div{padding:var(--space-5);border:1px solid var(--color-line);background:var(--color-surface)}.comparison h2{margin-block:var(--space-3)}.tech-list{display:grid}.tech-list article{display:grid;gap:var(--space-3);padding-block:var(--space-6);border-top:1px solid var(--color-line)}.tech-list p{color:var(--color-muted)}.profile-links,.check-list{padding-left:1.25rem}.config-note{padding:var(--space-3);border-left:.25rem solid var(--color-signal);background:var(--color-surface)}
  .contact-panel,.form-layout{display:grid;gap:var(--space-5)}.contact-details{padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-line)}.check-list{margin-top:var(--space-3)}.page-intro{padding-block:var(--space-7);border-bottom:1px solid var(--color-line)}.page-intro h1{margin-block:var(--space-3)}.narrow{max-width:var(--container-narrow)}
  .analysis-form{position:relative;display:grid;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-line)}.field-grid{display:grid;gap:var(--space-4)}.field{display:grid;gap:.35rem}.field label,.check-field label{font-weight:700}.field label span{font-size:var(--step--1);font-weight:500;color:var(--color-muted)}.field input,.field select,.field textarea{width:100%;min-height:3rem;padding:.7rem;border:1px solid #66736e;border-radius:var(--radius-sm);background:white;color:var(--color-ink)}.field textarea{resize:vertical}.field>span,.check-field>span,.validation-summary{color:#8a2715;font-size:var(--step--1)}.field-validation-error:not(:empty){font-weight:650}.input-validation-error{border-color:#8a2715!important;border-width:2px!important}.check-field{display:grid;grid-template-columns:1.75rem 1fr;gap:var(--space-2)}.check-field input{width:1.5rem;height:1.5rem}.check-field small,.check-field>span{grid-column:2}.form-status{padding:var(--space-3);border-left:.25rem solid var(--color-signal);background:#fff3ec}.anti-spam-field{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
  .landing-hero{padding-block:var(--space-7);overflow:hidden}.landing-hero-grid{display:grid;gap:var(--space-6);align-items:center}.service-diagram{margin:0;padding:var(--space-4);border:1px solid var(--color-accent);background:#e8eee9;background-image:linear-gradient(rgb(23 92 69/.09) 1px,transparent 1px),linear-gradient(90deg,rgb(23 92 69/.09) 1px,transparent 1px);background-size:1.25rem 1.25rem;box-shadow:var(--shadow-card)}.diagram-track{display:grid;gap:var(--space-3)}.diagram-track span{position:relative;padding:var(--space-3);border:1px solid var(--color-accent);background:var(--color-surface);font:700 var(--step--1) var(--font-mono)}.diagram-track span+span::before{content:"↓";position:absolute;top:calc(-1 * var(--space-3) - .8rem);left:50%;color:var(--color-signal)}.service-diagram figcaption{margin-top:var(--space-4);font-size:var(--step--1);color:var(--color-muted)}
  .empty-portfolio{max-width:var(--container-narrow);padding:var(--space-6);border:1px solid var(--color-line);background:var(--color-surface)}.empty-portfolio h2,.empty-portfolio .button{margin-top:var(--space-4)}.portfolio-grid{display:grid;gap:var(--space-4)}.project-card{display:grid;border:1px solid var(--color-line);background:var(--color-surface)}.project-card>div{padding:var(--space-4)}.project-card h2{margin-block:var(--space-3)}.project-card h2 a{text-decoration:none}.project-card-image{width:100%;height:auto}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin-top:var(--space-4)}.tag-list li{padding:.35rem .6rem;border:1px solid var(--color-line);font:700 var(--step--1) var(--font-mono)}.project-hero{padding-block:var(--space-7)}.project-cover{margin-bottom:var(--space-5)}.project-cover img{width:100%;height:auto}.project-cover figcaption,.gallery figcaption{margin-top:var(--space-2);color:var(--color-muted);font-size:var(--step--1)}.project-facts{display:grid;gap:var(--space-3)}.project-facts div{padding:var(--space-3);border-top:1px solid var(--color-line)}.project-facts span{display:block;font:700 var(--step--1) var(--font-mono);color:var(--color-muted)}.case-sections{display:grid;gap:var(--space-6)}.case-sections article{max-width:var(--container-narrow)}.case-sections h2{margin-block:var(--space-3)}.gallery{display:grid;gap:var(--space-5)}.gallery figure{margin:0}.gallery img{width:100%;height:auto}
  .guide-clusters{display:grid;gap:var(--space-7)}.guide-grid{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.guide-list-card{display:grid;border:1px solid var(--color-line);background:var(--color-surface)}.guide-list-card img{width:100%;height:auto}.guide-list-card>div{padding:var(--space-4)}.guide-list-card h3{margin-block:var(--space-3)}.guide-list-card h3 a{text-decoration:none}.guide-list-card span{display:block;margin-top:var(--space-4);font-size:var(--step--1);color:var(--color-muted)}.guide-header{padding-block:var(--space-7)}.guide-header h1{margin-block:var(--space-3)}.article-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);font:700 var(--step--1) var(--font-mono);color:var(--color-muted)}.guide-hero-image{margin-bottom:var(--space-6)}.guide-hero-image img{width:100%;height:auto}.guide-hero-image figcaption{margin-top:var(--space-2);font-size:var(--step--1);color:var(--color-muted)}.article-layout{display:grid;gap:var(--space-5);align-items:start}.toc{padding:var(--space-4);border:1px solid var(--color-line);background:var(--color-surface)}.toc h2{font-size:var(--step-0);letter-spacing:0}.toc ol{margin-top:var(--space-3);padding-left:1.3rem}.toc a{text-underline-offset:.2em}.prose{max-width:46rem}.prose h2{margin-top:var(--space-7);scroll-margin-top:var(--space-4)}.prose h3{margin-top:var(--space-5);scroll-margin-top:var(--space-4)}.prose p,.prose ul{margin-top:var(--space-3)}.prose ul{padding-left:1.4rem}.prose a{color:var(--color-accent);font-weight:650;text-underline-offset:.2em}
}
@media (min-width:48rem){.hero{padding-block:var(--space-8)}.hero-grid,.landing-hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr)}.card-grid,.process-grid{grid-template-columns:repeat(2,1fr)}.process-grid li{padding:var(--space-5);border-right:1px solid var(--color-line)}.footer-grid{grid-template-columns:2fr repeat(3,1fr)}.swatches{grid-template-columns:repeat(4,1fr)}.split,.comparison,.contact-panel,.form-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-grid,.quality-list,.empty-proof,.guide-grid{grid-template-columns:repeat(2,1fr)}.capability-grid{grid-template-columns:repeat(3,1fr)}.field-grid{grid-template-columns:repeat(2,1fr)}.tech-list article{grid-template-columns:8rem minmax(15rem,.75fr) 1fr;align-items:start}.article-layout{grid-template-columns:16rem minmax(0,1fr)}.toc{position:sticky;top:var(--space-3)}}
@media (min-width:72rem){.desktop-nav{display:block}.header-cta{display:inline-flex}.mobile-nav{display:none}.desktop-nav .nav-list{display:flex;gap:clamp(.8rem,1.5vw,1.5rem)}.card-grid{grid-template-columns:repeat(4,1fr)}.process-grid{grid-template-columns:repeat(3,1fr)}}

.consent-banner{position:fixed;z-index:1000;inset:auto var(--space-3) var(--space-3);display:grid;gap:var(--space-3);max-width:52rem;margin-inline:auto;padding:var(--space-4);border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card)}.consent-banner[hidden]{display:none}.consent-banner p{margin:.5rem 0}.consent-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}@media (min-width:48rem){.consent-banner{grid-template-columns:1fr auto;align-items:center;left:50%;right:auto;width:min(52rem,calc(100% - 3rem));transform:translateX(-50%)}}
.footer-cookie-button{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
@media (min-width:72rem){.portfolio-grid{grid-template-columns:repeat(2,1fr)}.project-facts{grid-template-columns:repeat(4,1fr)}.gallery{grid-template-columns:repeat(2,1fr)}}
@media (min-width:100rem){:root{--container:88rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.anti-spam-field{display:none!important}
