:root{--paper:#f3efe4;--paper-soft:#ebe5d7;--paper-warm:#ded4bf;--paper-on-dark:#f8f1df;--ink:#151714;--ink-soft:#4e4a40;--ink-faint:#817968;--line:#c9beaa;--line-dark:#393830;--moss:#56613f;--moss-deep:#3f4930;--moss-shadow:#2e3724;--clay:#984e36;--gold:#b88938;--color-primary:var(--clay);--color-primary-dark:#7a3e2b;--color-primary-light:var(--gold);--color-bg:var(--paper);--color-bg-alt:rgba(222, 212, 191, 0.44);--color-text:var(--ink);--color-text-muted:var(--ink-soft);--color-border:var(--line);--font-sans:"Jost", system-ui, sans-serif;--font-display:"Newsreader", Georgia, serif;--font-mono:"Spline Sans Mono", ui-monospace, monospace;--radius:2px;--shadow:none;--container:1180px;--nav-font-size:0.936rem;--header-height:4.25rem}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:clip}body{overflow-x:clip;font-family:var(--font-sans);font-size:1rem;font-weight:400;line-height:1.58;color:var(--color-text);background:linear-gradient(90deg,rgba(21,23,20,.045) 1px,transparent 1px),linear-gradient(rgba(21,23,20,.035) 1px,transparent 1px),var(--paper);background-size:72px 72px,72px 72px,auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(rgba(21,23,20,6%) .75px,transparent .75px);background-size:18px 18px;opacity:.28}#content,.site-header,.site-footer{position:relative;z-index:1}img{max-width:100%;height:auto;display:block}a{color:var(--clay);text-decoration-color:rgba(152,78,54,.45);text-underline-offset:.18em}a:hover{color:var(--color-primary-dark)}h1,h2{font-family:var(--font-display);font-weight:500;line-height:.98;letter-spacing:0}h3,h4{font-weight:500;line-height:1.12}.eyebrow{display:inline-block;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--clay);margin-bottom:1rem}.eyebrow--light{color:rgba(248,241,223,.72)}.container{width:min(100% - clamp(1.25rem,4vw,2.8rem),var(--container));margin-inline:auto}.site-header{position:sticky;top:0;z-index:100;background:var(--ink);color:var(--paper-on-dark);border-bottom:1px solid rgba(248,241,223,.16)}.site-header__inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--header-height);padding:.5rem 0}.logo{display:inline-flex;align-items:center;gap:.7rem;color:var(--paper-on-dark);font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;text-decoration:none}.logo:hover{color:var(--paper-on-dark)}.logo__img{flex:none;display:block;object-fit:contain}.logo__img--full{width:auto;height:2.5rem;max-width:min(210px,48vw)}.logo__img--header{height:2.35rem}.logo__img--footer{height:2.25rem;max-width:200px}.logo__img--mark{width:2.5rem;height:2.5rem}.logo--footer{color:var(--ink)}.logo--footer:hover{color:var(--ink)}.logo--footer .logo__text strong{color:var(--clay)}.logo__mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;background:var(--moss);color:var(--paper-on-dark);font-weight:500;border-radius:var(--radius);font-family:var(--font-display);font-size:1.1rem;text-transform:none}.logo__text strong{color:var(--paper-on-dark);font-weight:500}.nav ul{display:flex;gap:clamp(.5rem,1.2vw,1rem);list-style:none}.nav a{display:block;padding:.5rem .65rem;color:rgba(248,241,223,.72);font-size:var(--nav-font-size);text-decoration:none;transition:color .2s ease;white-space:nowrap}.nav a:hover,.nav a.active{color:var(--paper-on-dark);background:0 0}.nav-toggle{display:none;flex-direction:column;gap:5px;padding:.5rem;background:0 0;border:none;cursor:pointer}.nav-toggle span{display:block;width:22px;height:2px;background:var(--paper-on-dark);border-radius:1px}.hero{background:radial-gradient(circle at 52% 42%,rgba(248,241,223,.045),transparent 45%),var(--ink);color:var(--paper-on-dark);padding:clamp(4rem,9vw,7rem)0 clamp(3.2rem,6vw,5rem);border-bottom:1px solid var(--line-dark)}.hero__content{max-width:740px}.hero__badge{margin-bottom:1.25rem;color:rgba(248,241,223,.58)}.hero h1{margin:0 0 1.25rem;font-size:clamp(2.4rem,6vw,4.5rem)}.hero__lead{margin:0 0 2rem;font-size:clamp(1rem,1.45vw,1.2rem);color:rgba(248,241,223,.74);line-height:1.58;max-width:650px}.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.76rem 1rem;font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;text-decoration:none;border-radius:var(--radius);border:1px solid;transition:background .2s ease,color .2s ease,border-color .2s ease;cursor:pointer}.btn:hover{transform:none}.btn--solid{background:var(--paper-on-dark);color:var(--ink);border-color:var(--paper-on-dark)}.btn--solid:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn--ghost{background:0 0;color:inherit;border-color:rgba(248,241,223,.38)}.btn--ghost:hover{border-color:initial;color:inherit}.btn--primary,.btn--light{background:var(--paper-on-dark);color:var(--ink);border-color:var(--paper-on-dark)}.btn--primary:hover,.btn--light:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn--outline{background:0 0;color:inherit;border-color:rgba(248,241,223,.38)}.btn--outline:hover{border-color:initial;color:inherit}.section{padding:clamp(4rem,8vw,6rem)0;scroll-margin-top:90px}.section--alt{background:var(--color-bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section__header{display:grid;grid-template-columns:minmax(100px,180px)minmax(0,1fr);column-gap:clamp(1.4rem,4vw,3rem);align-items:start;margin-bottom:clamp(2rem,4vw,3rem);text-align:left}.section__header .eyebrow{grid-column:1;margin-top:.4rem;margin-bottom:0}.section__header h2,.section__header p{grid-column:2}.section__header h2{margin:0 0 .75rem;font-size:clamp(2rem,4.5vw,3.5rem)}.section__header p{margin:0;color:var(--ink-soft);font-size:1.04rem;max-width:640px}.section__cta{text-align:left;margin-top:2.5rem;padding-left:clamp(100px,15vw,180px)}.grid{display:grid;gap:0}.grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));border-top:2px solid var(--ink)}.cards .card{min-height:260px;padding:clamp(1.5rem,3vw,2.2rem);background:rgba(243,239,228,.55);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s ease}.cards .card:hover{transform:none;box-shadow:none;background:rgba(235,229,215,.85)}.card__icon{font-size:1.5rem;margin-bottom:1.5rem;opacity:.9}.card h3{margin:0 0 .75rem;font-family:var(--font-display);font-size:clamp(1.35rem,2vw,1.85rem)}.card p{margin:0;color:var(--ink-soft);font-size:.95rem}.card--post .card__link{display:block;color:inherit;text-decoration:none}.card--post .card__link:hover{color:inherit}.card__date{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--clay);margin-bottom:1rem;text-transform:uppercase}.card__tags{display:flex;gap:.4rem;margin:1rem 0;flex-wrap:wrap}.tag{display:inline-block;padding:.35rem .65rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--ink);background:rgba(243,239,228,.9);border:1px solid var(--line);border-radius:var(--radius)}.tag--small{font-size:.68rem;padding:.2rem .45rem}.tags-cloud{display:flex;flex-wrap:wrap;gap:.5rem;padding-left:clamp(100px,15vw,180px)}.cta-banner{background:var(--moss-deep);color:var(--paper-on-dark);border-top:1px solid rgba(248,241,223,.12);border-bottom:1px solid rgba(248,241,223,.12)}.cta-banner__inner{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}.cta-banner h2{margin:0 0 .75rem;font-size:clamp(1.8rem,3.5vw,2.8rem);color:var(--paper-on-dark)}.cta-banner p{margin:0;color:rgba(248,241,223,.74);max-width:520px}.page__header{padding:clamp(2.7rem,5vw,4rem)0 clamp(2rem,4vw,3rem);background:radial-gradient(circle at 72% 22%,rgba(248,241,223,5%),transparent 38%),var(--ink);color:var(--paper-on-dark);border-bottom:1px solid rgba(248,241,223,.12)}.page__header h1{margin:0;font-size:clamp(2rem,4.5vw,3.8rem);color:var(--paper-on-dark)}.page__lead{margin:1rem 0 0;font-size:clamp(1rem,1.4vw,1.15rem);color:rgba(248,241,223,.74);max-width:640px}.page__body{padding:clamp(2.5rem,5vw,4rem)0 clamp(3rem,6vw,5rem);max-width:760px;margin-inline:auto;width:100%}.page__body h2{margin:2.5rem 0 1rem;font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,2rem);color:var(--ink)}.page__body h3{margin:2rem 0 .75rem;font-size:1.1rem;color:var(--ink)}.page__body p,.page__body li{color:var(--ink-soft)}.page__body ul{padding-left:1.25rem}.page__body li{margin-bottom:.5rem}.page__body a{color:var(--clay)}.services-grid{display:grid;gap:0;margin-top:2rem;border-top:2px solid var(--ink)}.service-item{display:flex;gap:1.25rem;padding:1.5rem;background:rgba(243,239,228,.55);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.service-item__icon{flex-shrink:0;width:3rem;height:3rem;display:grid;place-items:center;background:rgba(86,97,63,.12);color:var(--moss);font-size:1.3rem;border-radius:var(--radius);border:1px solid var(--line)}.service-item h3{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.25rem}.service-item p{margin:0;font-size:.95rem;color:var(--ink-soft)}.contact-grid{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:2rem;border-top:2px solid var(--ink)}.contact-card{padding:1.5rem;background:rgba(243,239,228,.55);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.contact-card h3{margin:0 0 .5rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--clay);font-weight:400}.contact-card a,.contact-card p{margin:0;font-size:1rem;font-weight:500;color:var(--ink);text-decoration:none}.contact-card a:hover{color:var(--clay)}.project-card{padding:1.5rem;border:1px solid var(--line);border-top:2px solid var(--ink);margin-bottom:0;background:rgba(243,239,228,.4)}.project-card+.project-card{border-top:1px solid var(--line)}.project-card h3{font-family:var(--font-display);font-size:1.35rem}.project-card__meta{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--clay);margin-bottom:.75rem}.blog-listing{padding:clamp(2.5rem,5vw,4rem)0 clamp(3rem,6vw,5rem)}.blog-intro{max-width:760px;margin:0 auto clamp(2rem,4vw,3rem)}.blog-intro p,.blog-intro li{color:var(--ink-soft)}.blog-intro ul{padding-left:1.25rem}.blog-intro li{margin-bottom:.5rem}.blog-intro p+p{margin-top:1rem}.blog-grid{border-top:2px solid var(--ink)}.post__meta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:rgba(248,241,223,.6)}.post__content{max-width:720px;margin-inline:auto;width:100%}.post__content pre{overflow-x:auto;padding:1rem;background:var(--ink);color:var(--paper-on-dark);border-radius:var(--radius);font-family:var(--font-mono);font-size:.85rem;border:1px solid var(--line-dark)}.post__content code{font-family:var(--font-mono);font-size:.9em}.post__content :not(pre)>code{padding:.15rem .4rem;background:var(--paper-soft);border:1px solid var(--line);border-radius:var(--radius)}.post__footer{padding-bottom:4rem}.link-arrow{font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;color:var(--clay);text-decoration:none}.link-arrow:hover{color:var(--ink)}.pagination{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:2rem 0 4rem}.pagination__info{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--ink-faint)}.site-footer{background:rgba(248,241,223,.96);color:var(--ink);padding:3rem 0 0;border-top:1px solid rgba(21,23,20,.12)}.site-footer a{color:var(--ink-soft);text-decoration:none}.site-footer a:hover{color:var(--ink)}.site-footer__grid{display:grid;gap:2.5rem;grid-template-columns:2fr 1fr 1fr;padding-bottom:2.5rem}.site-footer h4{margin:0 0 1rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:var(--clay);font-weight:400}.site-footer__desc{margin:1rem 0 0;font-size:.95rem;line-height:1.58;color:var(--ink-soft)}.footer-links{list-style:none}.footer-links li{margin-bottom:.5rem}.logo--footer .logo__mark{background:var(--moss)}.site-footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:1rem 0 1.25rem;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;color:rgba(21,23,20,.66)}@media(max-width:991px){.nav-toggle{display:flex}.nav{position:absolute;top:100%;left:0;right:0;background:var(--ink);border-bottom:1px solid rgba(248,241,223,.16);display:none;max-height:calc(100vh - var(--header-height));overflow-y:auto;-webkit-overflow-scrolling:touch}.nav--open{display:block}.nav ul{flex-direction:column;gap:0;padding:.5rem 0 1rem}.nav a{padding:.85rem 1.25rem;font-size:var(--nav-font-size);white-space:normal;border-top:1px solid rgba(248,241,223,8%)}.nav li:first-child a{border-top:none}.site-header{position:sticky}.logo__img--header{height:2rem;max-width:min(160px,42vw)}.logo__img--footer{height:2rem}}@media(max-width:768px){.section__header{grid-template-columns:1fr}.section__header .eyebrow,.section__header h2,.section__header p{grid-column:1}.section__cta,.tags-cloud{padding-left:0}.grid--3{grid-template-columns:1fr}.cards .card{min-height:auto;border-right:none}.service-item{flex-direction:column;align-items:flex-start}.contact-grid{grid-template-columns:1fr}.contact-card{border-right:none}.site-footer__grid{grid-template-columns:1fr}.cta-banner__inner{flex-direction:column;align-items:flex-start}.pagination{flex-direction:column;gap:1rem}.hero__actions .btn{width:100%;justify-content:center}.page__body{overflow-wrap:anywhere}.post__content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:480px){:root{--header-height:3.75rem}.logo__img--header{height:1.85rem;max-width:130px}.hero h1{font-size:clamp(2rem,9vw,2.6rem);line-height:1.05}.section__header h2{font-size:clamp(1.75rem,8vw,2.25rem)}.btn{width:100%;justify-content:center}.cta-banner .btn{width:auto}}@media(min-width:1400px){:root{--container:1280px}.nav ul{gap:clamp(.75rem,1.5vw,1.35rem)}.nav a{padding:.55rem .75rem}.section{padding:clamp(5rem,7vw,7rem)0}.hero__content{max-width:820px}}@media(min-width:992px) and (max-width:1100px){.nav a{padding:.5rem .4rem;font-size:calc(var(--nav-font-size) * .92)}}