@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-500-normal.DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-500-normal.ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-greek-500-normal.JMMifIXV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-500-normal.CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-vietnamese-500-normal.e4dixQRQ.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-500-normal.BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-500-normal.D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fraunces-vietnamese-600-normal.BjlAJixd.woff2)format("woff2"),url(/_astro/fraunces-vietnamese-600-normal.DlAl5EAR.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fraunces-latin-ext-600-normal.BtzmzP0X.woff2)format("woff2"),url(/_astro/fraunces-latin-ext-600-normal.B0Dy4lqi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fraunces-latin-600-normal.BFCDtZfi.woff2)format("woff2"),url(/_astro/fraunces-latin-600-normal.DL5QCzvS.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/fraunces-vietnamese-700-normal.DH94m5DZ.woff2)format("woff2"),url(/_astro/fraunces-vietnamese-700-normal.DxawQjq2.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/fraunces-latin-ext-700-normal.CanUGppC.woff2)format("woff2"),url(/_astro/fraunces-latin-ext-700-normal.DuBstVeD.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/fraunces-latin-700-normal.CEOla-zY.woff2)format("woff2"),url(/_astro/fraunces-latin-700-normal.DTjk5d1Q.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--background:#f4efe4;--background-muted:#ffffff94;--surface:#fffaf2;--surface-strong:#fffaf2eb;--text:#16171c;--text-soft:#16171cb8;--border:#16171c1f;--accent:#20496b;--accent-contrast:#fff;--accent-soft:#20496b24;--accent-warm:#c8a87f;--shadow:0 24px 80px #10121814;--container:min(1200px, calc(100vw - 2.5rem));color-scheme:light dark;font-family:IBM Plex Sans,sans-serif}html[data-theme=dark]{--background:#0c1014;--background-muted:#0d1116a3;--surface:#11161c;--surface-strong:#11161ceb;--text:#efe7db;--text-soft:#efe7dbc2;--border:#efe7db1f;--accent:#7ea9cf;--accent-contrast:#0c1014;--accent-soft:#7ea9cf2e;--accent-warm:#d6b48a;--shadow:0 32px 96px #00000047}@media (prefers-color-scheme:dark){html[data-theme=system]{--background:#0c1014;--background-muted:#0d1116a3;--surface:#11161c;--surface-strong:#11161ceb;--text:#efe7db;--text-soft:#efe7dbc2;--border:#efe7db1f;--accent:#7ea9cf;--accent-contrast:#0c1014;--accent-soft:#7ea9cf2e;--accent-warm:#d6b48a;--shadow:0 32px 96px #00000047}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #c8a87f29, transparent 30%), radial-gradient(circle at top right, color-mix(in srgb, var(--accent) 18%, transparent), transparent 28%), linear-gradient(180deg, var(--background), color-mix(in srgb, var(--background) 72%, #fff 28%));min-height:100vh;color:var(--text);margin:0;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.container{width:var(--container);margin:0 auto}.section{padding:clamp(3.75rem,6vw,5rem) 0}.panel{border:1px solid var(--border);background:var(--surface-strong);backdrop-filter:blur(20px);box-shadow:var(--shadow);border-radius:1.5rem}.button{border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;gap:.6rem;min-height:3rem;padding:0 1.1rem;transition:transform .18s,border-color .18s,background-color .18s;display:inline-flex}.button:hover,.button:focus-visible,.inline-link:hover,.inline-link:focus-visible{transform:translateY(-1px)}.button--primary{border-color:color-mix(in srgb, var(--accent) 72%, var(--border) 28%);background:var(--accent);color:var(--accent-contrast)}.button--ghost{background:0 0}.inline-link{color:var(--accent);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.inline-link--action{align-self:start;min-height:2.5rem;padding:.45rem 0}.skip-link{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:.75rem 1rem;position:absolute;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.site-header{z-index:50;backdrop-filter:blur(18px);background:var(--background-muted);border-bottom:1px solid var(--border);padding:1rem 0;position:sticky;top:0}.site-header__inner,.site-header__nav,.site-header__controls,.site-header__brand{align-items:center;display:flex}.site-header__inner{justify-content:space-between;gap:1rem}.site-header__brand{flex-direction:column;align-items:flex-start;gap:0}.site-header__wordmark,.site-footer__title{font-family:Fraunces,serif;font-size:1.35rem;line-height:1.1}.site-header__meta{color:var(--text-soft);font-size:.85rem}.site-header__nav,.site-header__controls{gap:1rem}.site-header__nav a,.locale-switcher__link,.theme-menu__summary,.theme-menu__panel button{color:var(--text);border-radius:999px;padding:.55rem .8rem;transition:background-color .18s,border-color .18s,color .18s,transform .18s}.site-header__nav a:hover,.site-header__nav a:focus-visible,.locale-switcher__link:hover,.locale-switcher__link:focus-visible,.theme-menu__summary:hover,.theme-menu__summary:focus-visible,.theme-menu__panel button:hover,.theme-menu__panel button:focus-visible{background:var(--accent-soft)}.locale-switcher{align-items:center;gap:.6rem;display:flex}.locale-switcher__label{color:var(--text-soft);font-size:.8rem}.locale-switcher__list{align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.locale-switcher__link.is-active{background:var(--text);color:var(--surface)}.theme-menu{position:relative}.theme-menu__summary{border:1px solid var(--border);background:0 0;list-style:none}.theme-menu[open] .theme-menu__summary{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, var(--border) 55%)}.theme-menu__summary::-webkit-details-marker{display:none}.theme-menu:not([open]) .theme-menu__panel{display:none}.theme-menu__panel{background:color-mix(in srgb, var(--surface) 92%, var(--background) 8%);border:1px solid var(--border);min-width:8rem;box-shadow:var(--shadow);border-radius:1rem;gap:.3rem;padding:.55rem;display:grid;position:absolute;top:calc(100% + .4rem);right:0}.theme-menu__panel button{text-align:left;color:var(--text);background:0 0;border:0;width:100%}.theme-menu__option[aria-checked=true]{background:var(--accent);color:var(--accent-contrast);font-weight:600}.theme-menu__option[aria-checked=true]:hover,.theme-menu__option[aria-checked=true]:focus-visible{background:color-mix(in srgb, var(--accent) 88%, white 12%);color:var(--accent-contrast)}.theme-menu__option:not([aria-checked=true]):hover,.theme-menu__option:not([aria-checked=true]):focus-visible{background:var(--accent-soft);color:var(--text)}.hero__grid,.split-section,.project-hero__grid,.project-layout{gap:1.25rem;display:grid}.hero__grid{grid-template-columns:minmax(0,1.4fr) minmax(18rem,.9fr);align-items:center}.hero__copy{padding-top:1.4rem}.hero-announcement{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border) 82%);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 58%), color-mix(in srgb, var(--surface) 88%, var(--background) 12%);border-radius:1.1rem;gap:.65rem;max-width:42rem;margin-bottom:1.5rem;padding:1rem 1.1rem;display:grid;box-shadow:0 18px 44px #10121814}.hero-announcement--highlight{border-color:color-mix(in srgb, var(--accent) 34%, var(--border) 66%)}.hero-announcement__eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.hero-announcement strong{color:var(--text);font-size:1rem;line-height:1.35}.hero-announcement p{color:var(--text-soft);margin:0}.hero__eyebrow,.section-heading__eyebrow,.project-card__status,.hero__aside-label{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 1rem;font-size:.9rem;font-weight:600}h1,h2,h3{margin:0;font-family:Fraunces,serif;line-height:1.05}h1{letter-spacing:-.04em;font-size:clamp(3rem,8vw,6.4rem)}h2{font-size:clamp(2.1rem,5vw,3.5rem)}h3{font-size:1.45rem}.hero__description,.section-heading__intro,.project-card__summary,.section-note,.prose p,.legal-page__section p,.hero__aside,.focus-panel__list strong,.project-hero__panel,.project-sidebar,.site-footer{color:var(--text-soft)}.hero__actions{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.hero__aside,.focus-panel,.project-hero__panel,.project-sidebar .panel,.legal-page__section{padding:1.5rem}.hero__aside-name{color:var(--text);font-size:1.4rem;font-weight:700}.hero__aside{gap:1rem;padding:1.35rem;display:grid}.hero__aside-header{gap:.55rem;display:grid}.hero__aside-summary{color:var(--text-soft);margin:0}.hero__aside-highlights{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.hero__aside-highlights li{border:1px solid color-mix(in srgb, var(--border) 76%, var(--accent) 24%);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 65%), color-mix(in srgb, var(--surface) 90%, var(--background) 10%);border-radius:1rem;grid-template-columns:auto 1fr;align-items:center;gap:.75rem;padding:.8rem .9rem;display:grid}.hero__aside-highlights strong{color:var(--text);font-size:.98rem;line-height:1.4}.hero__aside-marker{background:var(--accent);width:.62rem;height:.62rem;box-shadow:0 0 0 .28rem color-mix(in srgb, var(--accent) 16%, transparent);border-radius:999px}.tag-list,.stack-list,.project-card__platforms{flex-wrap:wrap;gap:.65rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.tag-list li,.project-card__platforms li,.stack-list li{border:1px solid var(--border);border-radius:999px;padding:.4rem .75rem}.project-platform-link{color:inherit;text-decoration:none}.project-platform-link:hover{color:var(--accent);text-underline-offset:.2em;text-decoration:underline .08em}.project-platform-link:focus-visible{outline:2px solid var(--accent);outline-offset:.2rem;border-radius:.2rem}.section-heading{gap:.9rem;max-width:48rem;margin-bottom:1.5rem;display:grid}.section-heading--compact{gap:.55rem;margin-bottom:1rem}.services-grid,.projects-grid{gap:1rem;display:grid}.services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}.service-card,.project-card{padding:1.5rem}.project-card{gap:1rem;display:grid}.project-card__content{align-content:start;gap:1rem;display:grid}.project-card__header{justify-content:space-between;gap:1rem;display:flex}.project-card__pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-self:start;padding:.35rem .7rem;font-size:.85rem;font-weight:700}.project-card--sand{background:linear-gradient(145deg, #c8a87f1f, transparent 50%), var(--surface-strong)}.project-card--teal{background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 50%), var(--surface-strong)}.projects-grid--single{max-width:42rem}.split-section{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);align-items:start}.split-section__copy{gap:1rem;display:grid}.split-section__copy--about{gap:.85rem}.split-section--contact{grid-template-columns:minmax(14rem,.52fr) minmax(0,1fr);align-items:start}.split-section__copy--contact{max-width:18rem}.about-stack{gap:1.25rem;display:grid}.focus-panel__list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.focus-panel__list li{border-bottom:1px solid var(--border);gap:.2rem;padding-bottom:1rem;display:grid}.focus-panel__list li:last-child{border-bottom:0;padding-bottom:0}.focus-panel__list span{color:var(--text-soft);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.focus-panel__list strong{color:var(--text);font-size:1.02rem;line-height:1.45}.contact-form{gap:.95rem;display:grid}.contact-form__honeypot{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-card{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 28%), linear-gradient(145deg, #c8a87f1a, transparent 52%), var(--surface-strong);justify-self:end;width:100%;max-width:44rem;padding:1.2rem;position:relative;overflow:hidden}.contact-form__field{gap:.55rem;display:grid}.contact-form__label{color:var(--text-soft);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;font-weight:600}.contact-form__control{border:1px solid color-mix(in srgb, var(--border) 88%, var(--accent) 12%);background:color-mix(in srgb, var(--surface) 88%, var(--background) 12%);width:100%;min-height:3.35rem;color:var(--text);border-radius:1rem;padding:.95rem 1rem;transition:border-color .18s,box-shadow .18s,background-color .18s;box-shadow:inset 0 1px #ffffff0a}.contact-form__control:hover{border-color:color-mix(in srgb, var(--accent) 32%, var(--border) 68%)}.contact-form__control:focus-visible{border-color:color-mix(in srgb, var(--accent) 72%, var(--border) 28%);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-soft) 82%, transparent), inset 0 1px 0 #ffffff0d;outline:none}.contact-form__control--textarea{resize:vertical;min-height:9.5rem}.contact-form__turnstile{margin-top:.1rem}.contact-form__turnstile-slot{min-height:65px}.contact-form__disclosure{color:var(--text-soft);margin:0;font-size:.9rem;line-height:1.6}.contact-form__footer{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-top:.25rem;display:flex}.contact-form__submit{min-width:11rem}.contact-form__status{max-width:24rem;min-height:1.5rem;color:var(--text-soft);margin:0;font-size:.95rem;line-height:1.5}.contact-form__status[data-state=success]{color:var(--accent)}.contact-form__status[data-state=error]{color:color-mix(in srgb, #e26d5c 72%, var(--text) 28%)}.back-link{color:var(--accent);align-items:center;margin-bottom:1.5rem;font-weight:600;display:inline-flex}.back-link--action{min-height:2.5rem;padding:.45rem 0}.project-layout{grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);align-items:start}.project-page{grid-template-columns:minmax(0,1.18fr) minmax(18rem,.72fr);align-items:start;gap:1.5rem;display:grid}.project-page__main{gap:1.5rem;min-width:0;display:grid}.project-hero__grid{grid-template-columns:minmax(0,.95fr) minmax(22rem,1.05fr);align-items:center}.project-hero__summary{max-width:43rem;color:var(--text-soft);margin:1rem 0 0;font-size:1.02rem}.project-hero__visual{min-width:0}.project-section{gap:1rem;padding:1.6rem;display:grid}.project-section.prose{padding:0}.project-section__body{gap:.85rem;display:grid}.project-section__body p,.project-section__body ul,.project-section__body ol,.project-section.prose p{margin:0}.project-section__list,.project-sidebar__list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.project-section__list li,.project-sidebar__list li{border-bottom:1px solid var(--border);padding-bottom:.85rem}.project-section__list li:last-child,.project-sidebar__list li:last-child{border-bottom:0;padding-bottom:0}.project-section--note{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 32%), linear-gradient(145deg, #c8a87f1a, transparent 58%), var(--surface-strong)}.project-gallery{gap:1.4rem;scroll-margin-top:7rem;display:grid}.project-gallery__header{gap:.6rem;max-width:36rem;display:grid}.project-gallery__grid{gap:1rem;max-width:52rem;display:grid}.project-media{gap:.75rem;margin:0;display:grid}.project-media__frame{padding:.65rem;overflow:hidden}.project-media__asset{border:1px solid color-mix(in srgb, var(--border) 88%, var(--accent) 12%);border-radius:1rem;width:100%;height:auto}.project-media__caption{color:var(--text-soft);font-size:.95rem;line-height:1.5}.project-sidebar{gap:1rem;display:grid;position:sticky;top:6.5rem}.project-sidebar__panel{padding:1.5rem}.project-sidebar__panel h3{color:var(--text);margin-bottom:1rem}.project-sidebar__panel .tag-list{margin-top:0}.project-sidebar__panel .tag-list li{color:var(--text)}.prose--compact{gap:.95rem;display:grid}.prose--compact p{margin:0}.builder-note{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 62%), linear-gradient(145deg, #c8a87f14, transparent 52%), var(--surface-strong);padding:1.35rem 1.5rem}.builder-note__copy{gap:.85rem;max-width:56rem;display:grid}.builder-note h3{color:var(--text)}.donation-section{scroll-margin-top:7rem}.donation-shell,.donation-shell__copy,.donation-shell__interactive,.donation-shell__meta,.donation-form,.donation-form__frequency,.donation-form__preset-grid,.donation-form__field,.donation-checkout,.donation-checkout__intro,.donation-checkout__mock-inner,.donation-checkout__mock-actions,.support-manage,.support-manage__copy,.support-manage__form,.support-manage__field,.support-manage__actions{display:grid}.donation-shell{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%), linear-gradient(145deg, #c8a87f17, transparent 56%), var(--surface-strong);grid-template-columns:minmax(0,1.05fr) minmax(18rem,.95fr);align-items:start;gap:1.25rem;padding:1.35rem}.donation-shell__copy{gap:.7rem}.donation-shell__interactive{gap:.85rem}.donation-shell__eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:700}.donation-shell__meta{gap:.65rem;margin-top:.2rem}.donation-shell__meta-item{color:var(--text-soft);align-items:start;gap:.75rem;margin:0;font-size:.95rem;display:inline-flex}.donation-shell__meta-item .icon{color:var(--accent);margin-top:.12rem}.donation-form{background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 86%, transparent), transparent 100%), var(--surface);gap:.85rem;padding:1rem}.donation-form__frequency{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.donation-form__frequency-button,.donation-form__preset{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--text);border-radius:1rem;transition:border-color .18s,transform .18s,background-color .18s,box-shadow .18s}.donation-form__frequency-button{min-height:3rem;padding:.8rem 1rem;font-weight:700}.donation-form__frequency-button:hover,.donation-form__frequency-button:focus-visible,.donation-form__preset:hover,.donation-form__preset:focus-visible{border-color:color-mix(in srgb, var(--accent) 30%, var(--border) 70%);transform:translateY(-1px)}.donation-form__frequency-button.is-active,.donation-form__preset.is-active{border-color:color-mix(in srgb, var(--accent) 44%, var(--border) 56%);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 16%, transparent), transparent 100%), var(--surface-strong);box-shadow:0 0 0 .18rem color-mix(in srgb, var(--accent) 14%, transparent)}.donation-form__preset-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.donation-form__preset{place-items:center;min-height:3.75rem;padding:.9rem}.donation-form__preset strong{font-size:1.05rem}.donation-form__field{gap:.45rem}.donation-form__field span{color:var(--text);font-weight:700}.donation-form__field input{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);min-height:3rem;color:var(--text);border-radius:.9rem;padding:.8rem .95rem}.donation-form__field input:disabled{opacity:.65;cursor:not-allowed}.donation-form__field small{color:var(--text-soft)}.donation-form__submit{justify-content:center;width:100%}.donation-form__status{min-height:1.4rem;color:var(--text-soft);margin:0}.donation-form__status[data-state=error]{color:#d64545}.donation-form__status[data-state=success]{color:#17804c}.donation-checkout{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 42%), linear-gradient(145deg, #c8a87f14, transparent 54%), var(--surface);align-content:start;gap:.7rem;padding:.9rem}.donation-checkout__intro{gap:.4rem}.donation-checkout__intro h3,.donation-checkout__intro p,.donation-checkout__mock-inner h3,.donation-checkout__mock-inner p{margin:0}.donation-checkout__eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.donation-checkout__mount,.donation-checkout__mock{min-height:0}.donation-checkout__mount{border-radius:1rem;overflow:hidden}.donation-checkout__mount:empty,.donation-checkout__mock[hidden]{display:none}.donation-checkout[data-checkout-state=active] .donation-checkout__mount{min-height:10rem;display:block}.donation-checkout[data-checkout-state=mock] .donation-checkout__mock{min-height:7.75rem}.donation-checkout__mock{align-items:start;display:grid}.donation-checkout__mock-inner{border:1px dashed color-mix(in srgb, var(--accent) 30%, var(--border) 70%);background:color-mix(in srgb, var(--surface-strong) 90%, transparent);border-radius:1rem;gap:.85rem;padding:1.1rem}.donation-checkout__mock-summary{color:var(--text);font-weight:700}.donation-checkout__mock-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.legal-page__inner{gap:1.5rem;min-width:0;display:grid}.legal-page__sections{gap:1rem;min-width:0;display:grid}.legal-page__header,.legal-page__section{overflow-wrap:anywhere;min-width:0}.donation-manage{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 100%), var(--surface);padding:0;scroll-margin-top:7rem;overflow:hidden}.donation-manage__summary{cursor:pointer;min-height:3rem;color:var(--text);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;font-weight:700;list-style:none;display:flex}.donation-manage__summary::-webkit-details-marker{display:none}.donation-manage__summary .icon{flex:none;transition:transform .18s}.donation-manage[open] .donation-manage__summary{border-bottom:1px solid var(--border)}.donation-manage[open] .donation-manage__summary .icon{transform:rotate(90deg)}.support-manage{gap:.9rem;padding:1rem}.support-manage--page{padding:0}.support-manage__copy{gap:.45rem}.support-manage__copy h3,.support-manage__copy p,.support-manage__note{margin:0}.support-manage__form{gap:.85rem}.support-manage__field{gap:.45rem}.support-manage__field span{color:var(--text);font-weight:700}.support-manage__field input{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);min-height:3rem;color:var(--text);border-radius:.9rem;padding:.8rem .95rem}.support-manage__field small{color:var(--text-soft)}.support-manage__actions{grid-template-columns:repeat(2,minmax(0,auto));align-items:center;gap:.75rem}.support-manage__submit{color:var(--accent);justify-content:center}.support-manage__status{min-height:1.4rem;color:var(--text-soft);margin:0}.support-manage__status[data-state=error]{color:#d64545}.support-manage__status[data-state=success]{color:#17804c}.back-link--action{width:fit-content;max-width:100%}.site-footer{border-top:1px solid var(--border);padding:2rem 0 3rem}.site-footer__stack{gap:1.35rem;display:grid}.site-footer__inner{grid-template-columns:minmax(0,1fr) auto auto;gap:2rem;display:grid}.site-footer__legal,.site-footer__socials{gap:.8rem;display:grid}.site-footer__socials{margin:0;padding:0;list-style:none}.site-footer__socials a{align-items:center;gap:.65rem;min-height:2.5rem;padding:.35rem 0;display:inline-flex}.site-footer__legal a,.site-footer__consent-button{align-items:center;min-height:2.5rem;padding:.35rem 0;display:inline-flex}.site-footer__consent-button{color:var(--text-soft);text-align:left;background:0 0;border:0}.site-footer__subfooter{justify-content:flex-start;padding-top:.2rem;display:flex}.site-footer__support{width:fit-content;max-width:100%;min-height:2.5rem;color:var(--text-soft);align-items:center;gap:.45rem;padding:.35rem 0;font-weight:500;display:inline-flex}.site-footer__support:hover,.site-footer__support:focus-visible{color:var(--text)}.site-footer__support .icon{color:currentColor;flex:none;width:.82rem;height:.82rem}.consent-banner{z-index:80;width:min(34rem,100vw - 2rem);padding:1.2rem;position:fixed;bottom:1.25rem;right:1.25rem}.consent-banner__content,.consent-banner__actions{gap:1rem;display:grid}.consent-banner__eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.8rem;font-weight:700}.icon{width:1rem;height:1rem}[hidden]{display:none!important}.not-found{justify-items:start;gap:1rem;display:grid}[data-reveal]{animation:.5s 40ms both fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=980px){.site-header__inner,.site-header__nav,.site-header__controls,.hero__grid,.services-grid,.projects-grid,.split-section,.project-hero__grid,.project-page,.project-layout,.site-footer__inner{flex-wrap:wrap;grid-template-columns:1fr}.site-header__nav,.site-header__controls{justify-content:space-between;width:100%}.services-grid,.projects-grid,.donation-shell,.donation-checkout__mock-actions,.support-manage__actions,.donation-form__preset-grid{grid-template-columns:1fr}.hero-announcement{padding:.95rem 1rem}.contact-card{padding:1.05rem}.split-section--contact{align-items:start}.split-section__copy--contact{max-width:none}.contact-form__footer{flex-direction:column;align-items:stretch}.contact-form__submit{width:100%}.contact-form__status{max-width:none;min-height:0}.theme-menu__panel{min-width:10.5rem}.project-sidebar{position:static;top:auto}.consent-banner{width:auto;left:1rem;right:1rem}.donation-manage__summary{padding:.85rem .95rem}.site-footer__stack{gap:1.1rem}.site-footer__subfooter{padding-top:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
