@layer theme, base, site, components, utilities;
@font-face{font-family:Fraunces;src:url('/fonts/Fraunces-variable.woff2') format('woff2');font-display:swap;font-weight:100 900}
/* Retain the existing family alias while using the bundled, licensed font. */
@font-face{font-family:Departure;src:url('/fonts/FiraCode-400.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
:root,.theme-light{--paper:#f5f7f3;--ink:#16231e;--muted:#53605a;--line:#ced4cc;--cyan:#4ee4d9;--dark:#17241f;--danger:#a33626;--selected:#ffffff;--node:color-mix(in srgb,var(--ink) 40%,var(--paper));--chart-1:#087870;--chart-2:#7050a8;--chart-3:#a45718;--chart-4:#346b9b;--chart-5:#4c626a;--signal:#b91324;--rule:color-mix(in srgb,var(--line) 50%,var(--paper));--font-body:Arial,Helvetica,sans-serif;--font-data:Departure,ui-monospace,SFMono-Regular,Menlo,monospace;--font-display:Fraunces,Georgia,serif;--ease:cubic-bezier(.22,1,.36,1);color-scheme:light}
/* Element resets sit in a layer above Tailwind's preflight (base) and below its utilities, so component classes in src/components/ui override them. This file loads first, so this statement fixes the layer order. */
@layer site{
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scrollbar-color:#82968a var(--paper);background:var(--paper)}
body{margin:0;font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
::selection{background:#4ee4d9;color:#16231e}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
button{font:inherit;cursor:pointer}
a,button,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button:disabled{opacity:.4;cursor:default}
}
.inner{width:min(100% - 112px,1328px);margin-inline:auto}
.site-header{height:88px;margin-inline:auto;padding-inline:56px;display:flex;justify-content:space-between;align-items:center;gap:32px;border-bottom:1px solid var(--rule);position:relative;z-index:5;background:var(--paper)}
.brand img{width:226px;height:auto;display:block}
.desktop-nav{display:flex;align-items:center;gap:34px;font-size:var(--step--1)}
.desktop-nav a{display:flex;align-items:center;gap:12px;min-height:44px;text-decoration:none}
.desktop-nav a:hover{color:var(--accent)}
.mobile-nav{display:none}
.icon{display:inline-block;flex:none;width:20px;height:20px;mask:var(--icon) center/contain no-repeat;background:currentColor}
.arrow-up{--icon:url('/site/icons/ArrowUpRight.svg')}
.arrow-left{--icon:url('/site/icons/ArrowLeft.svg')}
.arrow-right{--icon:url('/site/icons/ArrowRight.svg')}
.arrow-down{--icon:url('/site/icons/ArrowRight.svg');transform:rotate(90deg)}
.hero{position:relative;isolation:isolate;overflow:clip;min-height:calc(100svh - 176px);display:flex;align-items:center}
.hero-inner{padding-block:68px 92px;position:relative;z-index:1}
.hero h2{font:var(--heading-hero-weight) var(--heading-hero-size)/var(--heading-hero-leading) var(--font-heading);margin:0;max-width:660px;text-wrap:balance}
.hero-deck{font-size:var(--step-0);line-height:1.7;max-width:46ch;margin:28px 0 0;color:var(--muted)}
.hero-actions{display:flex;align-items:center;gap:30px;margin-top:34px}
.pattern{position:absolute;z-index:-1;pointer-events:none;mask-image:url('/site/assets/flow-lines.png');mask-repeat:no-repeat;mask-size:100% 100%;background:currentColor}
.hero-pattern{width:1000px;height:1000px;left:calc(50% + 120px);top:50%;transform:translateY(-45%) rotate(-12deg);color:#718378;opacity:.76}
.work{position:relative;background:#e9eee7;padding:0 0 36px;scroll-margin-top:24px}
.section-header{padding-block:32px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.section-header h2{font:var(--heading-section-weight) var(--heading-section-size)/var(--heading-section-leading) var(--font-heading);margin:0}


















.method{position:relative;isolation:isolate;overflow:hidden;min-height:740px;background:var(--dark);color:var(--paper);scroll-margin-top:0}
.method-inner{padding-block:108px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:110px}
.method-copy{grid-column:2;max-width:590px}
.method h2{font:var(--heading-section-weight) var(--heading-section-size)/var(--heading-section-leading) var(--font-heading);max-width:16ch;margin:0 0 32px;text-wrap:balance}
.method p{font-size:var(--step-0);line-height:1.7;color:#b9c9c0;margin:24px 0 0;max-width:52ch}
.method p a{color:var(--cyan);text-decoration-line:underline;text-decoration-color:#4ee4d980;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-skip-ink:auto}
.method p a:hover{color:var(--paper);text-decoration-color:currentColor}
.method p a:focus-visible{outline-color:var(--cyan)}
.method .method-lead{color:var(--paper);font-size:var(--step-1);line-height:1.55;margin:0}
.method [data-slot=button]{margin-top:32px}
.method-pattern{width:1150px;height:1150px;right:calc(50% + 170px);top:50%;transform:translateY(-50%) rotate(90deg);color:#a3c0ad;opacity:.55}
.contact-section{background:var(--paper);padding-block:92px}
.contact-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}
.contact-inner h2{font:var(--heading-section-weight) var(--heading-section-size)/var(--heading-section-leading) var(--font-heading);margin:0;max-width:19ch;text-wrap:balance}
.contact-inner p{font-size:var(--step-0);line-height:1.6;margin:0 0 24px;color:var(--muted)}
.site-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--rule);gap:24px;padding-block:32px}
.site-footer img{width:225px;height:auto}
.site-footer nav{display:flex;gap:26px;font-size:var(--step--1)}
.site-footer a{min-height:44px;display:flex;align-items:center;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:20;background:var(--paper);padding:12px}
@media(min-width:1700px){.hero-pattern{width:1200px;height:1200px;left:calc(50% + 160px)}.hero h2{font-size:var(--heading-hero-size);font-weight:var(--heading-hero-weight);line-height:var(--heading-hero-leading);font-family:var(--font-heading)}}
@media(max-width:1100px){.inner{width:calc(100% - 64px)}.site-header{padding-inline:32px}.desktop-nav{gap:24px}.hero h2{font-size:var(--heading-hero-size);max-width:570px;font-weight:var(--heading-hero-weight);line-height:var(--heading-hero-leading);font-family:var(--font-heading)}.hero-deck{max-width:43ch;font-size:var(--step-0)}.hero-pattern{left:65%;opacity:.55}.hero-inner{padding-block:64px 80px}.method-inner{gap:70px;grid-template-columns:.7fr 1fr}.method h2{font-size:var(--heading-section-size);font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}.method .method-lead{font-size:var(--step-1)}.method-pattern{right:calc(50% + 130px)}.contact-inner h2{font-size:var(--heading-section-size);font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}}
@media(max-width:760px){.inner{width:calc(100% - 40px)}.site-header{height:76px;padding-inline:20px}.brand img{width:205px}.desktop-nav{display:none}.mobile-nav{display:block}.mobile-nav summary{list-style:none;width:44px;height:44px;display:grid;place-items:center;cursor:pointer}.mobile-nav summary::-webkit-details-marker{display:none}.menu-icon{width:20px;height:20px;mask:url('/site/assets/menu.svg') center/contain no-repeat;background:var(--ink)}.mobile-nav nav{position:absolute;top:75px;left:0;right:0;display:flex;flex-direction:column;padding:20px;background:var(--paper);border-bottom:1px solid var(--rule)}.mobile-nav nav a{min-height:48px;display:flex;align-items:center;text-decoration:none}.hero{min-height:calc(100svh - 152px)}.hero-inner{padding-block:42px 146px}.hero h2{font-size:var(--heading-hero-size);max-width:500px;font-weight:var(--heading-hero-weight);line-height:var(--heading-hero-leading);font-family:var(--font-heading)}.hero-deck{font-size:var(--step-0);line-height:1.65;max-width:41ch;margin-top:24px}.hero-actions{gap:20px;flex-wrap:wrap;margin-top:28px}.hero-pattern{width:840px;height:840px;left:0;top:auto;bottom:-700px;transform:rotate(-12deg);opacity:.75}.section-header{padding-block:24px}.section-header h2{font-size:var(--heading-section-size);font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}.method{min-height:0}.method-inner{display:block;padding-block:66px 178px}.method-copy{max-width:620px}.method h2{font-size:var(--heading-section-size);max-width:20ch;margin-bottom:26px;font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}.method h2 br{display:none}.method .method-lead{font-size:var(--step-1)}.method p{font-size:var(--step-0);line-height:1.7}.method [data-slot=button]{margin-top:26px}.method-pattern{width:900px;height:900px;right:auto;left:-320px;top:auto;bottom:-770px;transform:rotate(90deg);opacity:.6}.contact-section{padding-block:56px}.contact-inner{grid-template-columns:1fr;gap:26px}.contact-inner h2{font-size:var(--heading-section-size);max-width:20ch;font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}.contact-inner p{font-size:var(--step-0)}.site-footer{align-items:flex-start;flex-direction:column;gap:20px;padding-block:26px}.site-footer img{width:205px}}
@media(max-width:370px){.hero h2{font-size:var(--heading-hero-size);font-weight:var(--heading-hero-weight);line-height:var(--heading-hero-leading);font-family:var(--font-heading)}.hero-actions{gap:12px}.hero-inner{padding-bottom:130px}.method h2{font-size:var(--heading-section-size);font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}.contact-inner h2{font-size:var(--heading-section-size);font-weight:var(--heading-section-weight);line-height:var(--heading-section-leading);font-family:var(--font-heading)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media(max-width:760px){.site-footer nav a{display:inline-flex;align-items:center;min-height:44px}}
