@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-ext-500-normal-zeox_O30.woff2) format("woff2"),url(/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2) format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-ext-700-normal-CI4iH74K.woff2) format("woff2"),url(/assets/outfit-latin-ext-700-normal-fjS8-Gm7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-700-normal-Cu9v6i1X.woff2) format("woff2"),url(/assets/outfit-latin-700-normal-D4itBLBr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-italic-BpitL8Uu.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-italic-2EvOpbQN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-italic-DRLHr0TN.woff2) format("woff2"),url(/assets/dm-sans-latin-400-italic-i6QPgQBE.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg-deep: #14304a;--color-accent: #336699;--color-primary: #003366;--color-surface: #ffffff;--color-text: #1a2d42;--color-text-muted: #4d5c6b;--color-mesh-1: rgba(51, 102, 153, .12);--color-mesh-2: rgba(20, 48, 74, .35);--font-display: "Outfit", system-ui, sans-serif;--font-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: 12px;--radius-lg: 16px;--shadow: 0 8px 32px rgba(0, 51, 102, .14);--shadow-card: 0 4px 20px rgba(0, 51, 102, .08);--shadow-hover: 0 12px 36px rgba(0, 51, 102, .12);--max: 1120px;--header-h: 4rem;--nav-pad-x: .62rem;--space-section: 2.5rem}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.pillar,.btn{transition:none}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:1rem;line-height:1.65;color:var(--color-text);background-color:var(--color-bg-deep);background-image:radial-gradient(ellipse 120% 80% at 100% -20%,var(--color-mesh-1),transparent 50%),radial-gradient(ellipse 80% 60% at -10% 60%,var(--color-mesh-2),transparent 45%);background-attachment:fixed;min-height:100vh}h1,h2,h3,.brand{font-family:var(--font-display)}.skip-link{position:absolute;left:-999px;top:0;z-index:100;padding:.75rem 1rem;background:var(--color-surface);color:var(--color-primary);font-weight:600}.skip-link:focus{left:0}.site-header{position:sticky;top:0;z-index:50;background:linear-gradient(180deg,var(--color-accent) 0%,#2a5580 100%);border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 4px 24px #0000002e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-inner{position:relative;max-width:var(--max);margin:0 auto;padding:.65rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:var(--header-h)}.brand{text-decoration:none;color:#fff;font-weight:700;font-size:1.2rem;letter-spacing:.03em}.brand:hover,.brand:focus-visible{text-decoration:underline;outline:none}.brand-plate{flex-shrink:0;text-decoration:none;color:var(--color-primary);background:linear-gradient(180deg,#fff,#f3f6fb);padding:.4rem 1.15rem .45rem .8rem;border-radius:11px;display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.85);box-shadow:0 4px 20px #0363,0 1px #fffffff2 inset;border-bottom:2px solid rgba(201,162,39,.55)}.brand-mark{width:1.35em;height:1.35em;display:block;flex-shrink:0}.brand-plate:hover,.brand-plate:focus-visible{text-decoration:none;color:#002952;box-shadow:0 6px 26px #00336642,0 1px #fff inset;outline:none}.brand-plate:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:3px}.slogan{display:none;color:#ffffffe6;font-size:.8rem;font-weight:500;font-style:italic;font-family:var(--font-sans);max-width:15rem;line-height:1.35}@media(min-width:1200px){.slogan{display:block}}.nav-toggle{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:var(--radius);background:#ffffff1a;color:#fff;cursor:pointer}.nav-toggle:hover{background:#ffffff2e}.nav-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}@media(min-width:900px){.nav-toggle{display:none}}.nav-panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--color-primary);padding:.75rem 1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.1)}.nav-panel.is-open{display:block}@media(min-width:900px){.nav-panel{display:flex!important;position:static;padding:0;background:transparent;border:0;gap:.35rem;align-items:center}}.nav{display:flex;flex-direction:column;gap:.15rem}@media(min-width:900px){.nav{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center}}.nav a{color:#fffffff2;text-decoration:none;padding:.55rem var(--nav-pad-x);border-radius:8px;font-size:.95rem;font-weight:500;transition:background .15s ease}.nav a:hover,.nav a:focus-visible{background:#ffffff1f;color:#60b8ff;outline:none}.nav a[aria-current=page]{background:#ffffff38;font-weight:600}.shell{max-width:var(--max);margin:0 auto;padding:1.75rem 1.25rem 3rem}main{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:2rem 1.5rem;margin-top:.5rem;border:1px solid rgba(255,255,255,.06)}@media(min-width:640px){main{padding:2.5rem}}.page-banner{position:relative;overflow:hidden;background:linear-gradient(125deg,var(--color-primary) 0%,#0d4a7a 40%,var(--color-accent) 100%);color:#fff;margin:-2rem -1.5rem 1rem;padding:2rem 1.5rem;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.page-banner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.14),transparent 42%),radial-gradient(circle at 10% 80%,rgba(0,51,102,.25),transparent 40%);pointer-events:none}.page-banner.page-banner--accent{background-image:linear-gradient(125deg,#003366f0,#0d4a7ae6 40%,#336699eb),url(/images/section-accent.png);background-size:cover,cover;background-position:center,center;background-repeat:no-repeat,no-repeat}.page-banner>*{position:relative;z-index:1}@media(min-width:640px){.page-banner{margin:-2.5rem -2.5rem 1rem;padding:2.5rem}}.page-banner h1{margin:0 0 .35rem;font-size:clamp(1.85rem,4vw,2.5rem);color:#fff;line-height:1.15}.page-banner .slogan-inline{color:#ffffffeb;font-style:italic;font-weight:600;margin:0 0 .75rem;font-size:1rem}.page-banner .tagline{color:#ffffffe0;margin:0;max-width:48rem;font-size:1.05rem}.hero-home{display:grid;gap:2rem;align-items:center;padding-bottom:2rem;margin-bottom:var(--space-section);border-bottom:1px solid rgba(0,51,102,.1)}@media(min-width:960px){.hero-home:not(.hero-home--banner-below){grid-template-columns:1fr minmax(300px,44%);gap:2.5rem}}.hero-home--banner-below{grid-template-columns:1fr;align-items:start;padding-bottom:.5rem;margin-bottom:1.25rem}.hero-home--banner-below .hero-home-visual{order:-1;margin-top:0;margin-bottom:.15rem;width:100%;max-width:100%}.hero-home--banner-below .hero-home-copy{order:1}.hero-home--banner-below .hero-home-visual picture,.hero-home--banner-below .hero-home-visual img{aspect-ratio:11.6 / 1;max-height:50px;width:100%;object-fit:cover;object-position:center 88%}@media(min-width:640px){.hero-home--banner-below .hero-home-visual picture,.hero-home--banner-below .hero-home-visual img{aspect-ratio:12 / 1;max-height:59px}}@media(min-width:960px){.hero-home--banner-below .hero-home-visual picture,.hero-home--banner-below .hero-home-visual img{max-height:64px}}.hero-home-copy h1{margin:0 0 .5rem;font-size:clamp(1.6rem,3.2vw,2.1rem);color:var(--color-primary);line-height:1.12;letter-spacing:-.02em}.hero-home-copy .resume-line{font-weight:600;color:var(--color-primary);margin:0 0 1.25rem;font-size:1.05rem;line-height:1.4}.hero-home-copy .slogan-inline{margin:0 0 1rem;font-style:italic;color:var(--color-accent);font-weight:600;font-size:1.05rem}.hero-home-copy .tagline{margin:0 0 1.25rem;font-size:1.05rem;color:var(--color-text-muted);max-width:40rem}.hero-home-visual{position:relative}.hero-home-visual:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-accent),var(--color-primary));opacity:.35;z-index:0}.hero-home-visual picture,.hero-home-visual img{position:relative;z-index:1;display:block;width:100%;height:auto;border-radius:var(--radius-lg);object-fit:cover;aspect-ratio:4 / 3;box-shadow:var(--shadow)}@media(min-width:960px){.hero-home:not(.hero-home--banner-below) .hero-home-visual picture,.hero-home:not(.hero-home--banner-below) .hero-home-visual img{aspect-ratio:1 / 1;max-height:420px}}.hero{padding-bottom:1rem;border-bottom:1px solid rgba(0,51,102,.1);margin-bottom:2rem}.hero h1{margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.35rem);color:var(--color-primary);line-height:1.2}.hero .tagline{margin:0 0 1rem;font-size:1.1rem;color:var(--color-text-muted);max-width:42rem}.hero .slogan-inline{margin:0 0 1.25rem;font-style:italic;color:var(--color-accent);font-weight:600;font-size:1rem}.cta-row{display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.35rem;border-radius:var(--radius);font-weight:600;text-decoration:none;font-size:.95rem;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(180deg,#3d73ad 0%,var(--color-accent) 100%);color:#fff;box-shadow:0 4px 14px #33669959}.btn-primary:hover,.btn-primary:focus-visible{filter:brightness(1.06);outline:2px solid var(--color-primary);outline-offset:2px}.btn-ghost{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-ghost:hover,.btn-ghost:focus-visible{background:#3366991a}.content-section{margin-bottom:var(--space-section)}.content-section:last-child{margin-bottom:0}address{margin-bottom:.2rem}.content-section:first-of-type{margin-bottom:.5rem}h2{margin:0 0 .75rem;font-size:1.325rem;color:var(--color-primary);letter-spacing:-.01em}.content-section h2{margin-top:0}h3{margin:1.5rem 0 .5rem;font-size:1rem;color:var(--color-accent)}p{margin:0 0 1rem;color:var(--color-text-muted);max-width:52rem}a{color:var(--color-accent);font-weight:500}a:hover{color:var(--color-primary)}ul{margin:0 0 1rem;padding-left:1.25rem;color:var(--color-text-muted);max-width:48rem}li{margin-bottom:.4rem}li::marker{color:var(--color-accent)}.pillars{display:grid;gap:.95rem;margin-bottom:.95rem}@media(min-width:720px){.pillars{grid-template-columns:repeat(3,1fr)}}.pillar{background:linear-gradient(160deg,#f3f6fa,#fff 55%);border:1px solid rgba(51,102,153,.14);border-radius:var(--radius);padding:.55rem .75rem;transition:box-shadow .2s ease,border-color .2s ease}.pillar:hover{box-shadow:var(--shadow-card);border-color:#33669947}.pillar h3{margin-top:0;margin-bottom:.3rem;color:var(--color-primary)}.pillar p{margin:0}.card-grid{display:grid;gap:1.25rem}@media(min-width:640px){.card-grid{grid-template-columns:repeat(2,1fr)}}.card{border:1px solid rgba(51,102,153,.16);border-radius:var(--radius);padding:1.35rem;background:linear-gradient(180deg,#fbfcfe,#f5f7fb);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:#33669947}.card h3{margin-top:0}.card a{font-weight:600}.card--full{max-width:none;width:100%}address a{color:var(--color-accent)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1rem 0;border-radius:var(--radius);border:1px solid rgba(0,51,102,.1)}.table-scroll .stack-table{margin:0;min-width:36rem}.stack-table{width:100%;border-collapse:collapse;font-size:1rem;margin:1rem 0}.stack-table th,.stack-table td{border:1px solid rgba(0,51,102,.15);padding:.5rem .65rem;text-align:left}.stack-table th{background:#3366991a;color:var(--color-primary)}.site-footer{max-width:var(--max);margin:2rem auto 0;padding:1.75rem 1.25rem 2.5rem;text-align:center;color:#ffffffd1;font-size:.92rem}.site-footer strong{color:#fff;font-family:var(--font-display);letter-spacing:.04em}.site-footer .footer-slogan{display:block;margin-top:.4rem;font-style:italic;opacity:.92}.site-footer .footer-build{display:block;margin-top:.65rem;font-size:.78rem;font-style:normal;letter-spacing:.04em;opacity:.65;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace}.site-footer .footer-copyright{display:block;margin-top:.5rem;font-size:.78rem;opacity:.78}.site-footer .footer-terms{display:block;margin-top:.5rem;font-size:.78rem;opacity:.75;text-decoration:underline}.site-footer .footer-terms:hover,.site-footer .footer-terms:focus-visible{opacity:1}address{font-style:normal}address p{margin:0;line-height:1.4}.case-toc{padding:1rem 1.25rem;background:#3366990f;border:1px solid rgba(0,51,102,.1);border-radius:var(--radius)}.case-toc-heading{margin:0 0 .5rem;font-size:1rem;color:var(--color-primary)}.case-toc-list{margin:0;padding-left:1.25rem}.case-toc-list li{margin-bottom:.25rem}.case-toc-list a{font-weight:600}.case-note{margin-top:1.25rem}#tech-stack h3{margin:1.75rem 0 .65rem;font-size:1rem;color:var(--color-primary)}#tech-stack h3:first-of-type{margin-top:1rem}.note{font-size:.9rem;padding:1rem 1.15rem;background:linear-gradient(135deg,#fff9e6,#fff4d6);border:1px solid #e6d9a8;border-radius:var(--radius);color:#5c4a1a}.contact-form{margin-top:.4rem;padding-top:.4rem;border-top:1px solid rgba(0,51,102,.12);max-width:48rem}.contact-form h2{margin-top:0;margin-bottom:.75rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.2rem}.form-field{margin-bottom:0}.form-col-span{grid-column:1 / -1}.contact-form label{display:block;font-weight:600;color:var(--color-primary);margin-bottom:.35rem;font-size:.95rem}.contact-form .hint{font-weight:400;color:var(--color-text-muted);font-size:.85rem}.contact-form input,.contact-form select,.contact-form textarea{width:100%;max-width:100%;padding:.55rem .65rem;font:inherit;border:1px solid rgba(51,102,153,.35);border-radius:8px;background:#fff;color:var(--color-text)}.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-accent)}.contact-form textarea{min-height:6rem;resize:vertical}.contact-form button[type=submit]{margin-top:.5rem;margin-right:.5rem}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.form-status{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--radius);background:#33669914;color:var(--color-text-muted);font-size:.9rem}.form-status[data-status-type=success]{background:#228b221a;color:#1a5c1a}.form-status[data-status-type=error]{background:#b41e1e14;color:#8b1a1a}.nav-dropdown{position:relative}.nav-dropdown-trigger{display:flex;align-items:center;gap:.2rem;color:#fffffff2;background:transparent;border:none;padding:.55rem var(--nav-pad-x);border-radius:8px;font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s ease;white-space:nowrap}.nav-dropdown-trigger:hover,.nav-dropdown-trigger:focus-visible,.nav-dropdown.is-open .nav-dropdown-trigger{background:#ffffff1f;color:#60b8ff;outline:none}.nav-dropdown-trigger .dd-arrow{font-size:.75rem;transition:transform .15s ease;line-height:1}.nav-dropdown.is-open .nav-dropdown-trigger .dd-arrow{transform:rotate(180deg)}.nav-dropdown-menu{display:none;flex-direction:column;position:absolute;top:calc(100% + .25rem);left:0;min-width:13rem;background:#1a3a5c;border-radius:8px;padding:.35rem;box-shadow:0 6px 20px #0006;border:1px solid rgba(255,255,255,.1);z-index:200}.nav-dropdown.is-open .nav-dropdown-menu{display:flex}.nav-dropdown-menu a{color:#ffffffeb;text-decoration:none;padding:.55rem .85rem;border-radius:6px;font-size:.93rem;font-weight:500;transition:background .15s ease;white-space:nowrap}.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:#ffffff1f;color:#60b8ff;outline:none}.nav-dropdown-menu a[aria-current=page]{background:#ffffff38;font-weight:600}@media(max-width:899px){.nav-dropdown{display:contents}.nav-dropdown-trigger{display:none}.nav-dropdown-menu{display:flex!important;position:static;background:transparent;box-shadow:none;border:none;padding:0;min-width:0;flex-direction:column;gap:0}.nav-dropdown-menu a{padding:.55rem var(--nav-pad-x)}}.blog-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.75rem}.blog-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);display:flex;flex-direction:column;transition:box-shadow .15s,border-color .15s,transform .15s;overflow:hidden}.blog-card:hover{border-color:var(--color-primary);box-shadow:0 4px 18px #00000014;transform:translateY(-2px)}.blog-card-body{padding:1.5rem 1.75rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.blog-card-meta{display:flex;align-items:center;gap:.75rem}.blog-date{font-size:.78rem;color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase}.blog-tag{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);padding:.15rem .55rem;border-radius:99px}.blog-card-title{font-size:1.1rem;margin:0;line-height:1.35}.blog-card-title a{color:var(--color-heading, var(--color-text));text-decoration:none}.blog-card-title a:hover{color:var(--color-primary)}.blog-card-excerpt{margin:0;color:var(--color-muted);font-size:.9rem;line-height:1.65;flex:1}.blog-card-footer{padding:.85rem 1.75rem;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.blog-read-more{font-size:.85rem;font-weight:600;color:var(--color-primary);text-decoration:none;display:inline-flex;align-items:center;gap:.3rem}.blog-read-more:hover{text-decoration:underline}.blog-read-time{font-size:.8rem;color:var(--color-muted)}.blog-post-layout{display:grid;grid-template-columns:1fr minmax(0,68ch) 220px 1fr;gap:0 2.5rem;align-items:start}.blog-post-body{grid-column:2;grid-row:1;min-width:0}.blog-post-toc{grid-column:3;grid-row:1;position:sticky;top:2rem;padding:1.25rem 1.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.blog-post-toc-heading{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:0 0 .75rem}.blog-post-toc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.1rem}.blog-post-toc-list a{display:block;font-size:.85rem;color:var(--color-muted);text-decoration:none;padding:.3rem .5rem;border-radius:calc(var(--radius) / 2);line-height:1.4;transition:background .12s,color .12s}.blog-post-toc-list a:hover,.blog-post-toc-list a.is-active{background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary)}.blog-byline{display:flex;align-items:center;gap:1.25rem;padding:.9rem 2rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:.85rem;color:var(--color-muted)}.blog-byline-sep{width:1px;height:1rem;background:var(--color-border)}.code-block{background:#1e1e2e;color:#cdd6f4;font-family:Cascadia Code,Fira Code,Consolas,Monaco,monospace;font-size:.875rem;line-height:1.65;padding:1.25rem 1.5rem;border-radius:var(--radius);overflow-x:auto;margin:1rem 0;white-space:pre}@media(max-width:900px){.blog-grid{grid-template-columns:1fr}.blog-post-layout{grid-template-columns:1fr;gap:0}.blog-post-body{grid-column:1;grid-row:auto}.blog-post-toc{grid-column:1;grid-row:auto;position:static;margin:0 0 1.5rem;order:-1}}.proj-list{display:grid;gap:1.15rem}.proj{border:1px solid rgba(51,102,153,.16);border-radius:var(--radius-lg);padding:1.5rem 1.6rem;background:linear-gradient(180deg,#fbfcfe,#f4f7fb);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;scroll-margin-top:calc(var(--header-h) + 1rem)}.proj:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:#3366994d}.proj-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.proj-head h3{margin:0;font-family:var(--font-display);font-size:1.3rem;color:var(--color-primary);letter-spacing:-.01em}.proj-desc{margin:.6rem 0 1rem;color:var(--color-text-muted);max-width:62ch}.proj-status{font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .6rem;border-radius:999px;white-space:nowrap;border:1px solid transparent;display:inline-flex;align-items:center;gap:.4rem}.proj-status:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.proj-status.is-live{color:#1f7a43;background:#e7f4ec;border-color:#1f7a4340}.proj-status.is-beta{color:#9a6a12;background:#fbf0da;border-color:#9a6a1240}.proj-status.is-arch{color:var(--color-accent);background:#3366991a;border-color:#33669938}.proj-status.is-wip{color:#6b5b8a;background:#f0ecf7;border-color:#6b5b8a40}.proj-status.is-arch:before{border-radius:1px}.tech-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.15rem;padding:0;list-style:none;max-width:none}.tech-list li{margin:0;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.74rem;color:var(--color-text);background:#33669914;border:1px solid rgba(51,102,153,.16);border-radius:6px;padding:.18rem .5rem}.tech-list li::marker{content:""}.proj-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.proj-actions .btn{font-size:.88rem;padding:.5rem 1rem}.btn[aria-disabled=true]{opacity:.6;pointer-events:none}.proj-note{font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace;font-size:.72rem;color:var(--color-text-muted);margin:.75rem 0 0}.page-banner--accent a{color:#c7dcf3;text-decoration:underline;text-underline-offset:2px}.page-banner--accent a:hover,.page-banner--accent a:focus-visible{color:#fff}.page-banner--cta{margin-top:0}.evo-mini-mark{vertical-align:-.15em;margin-right:.4em}.proj-media{display:flex;gap:1.4rem;align-items:flex-start}.proj-media>.proj-media-text{flex:1 1 auto;min-width:0}.proj-shot{flex:0 0 200px;padding:0;border:1px solid rgba(51,102,153,.25);border-radius:10px;overflow:hidden;cursor:zoom-in;background:none;transition:box-shadow .15s ease,transform .15s ease}.proj-shot img{display:block;width:100%;height:auto}.proj-shot:hover,.proj-shot:focus-visible{box-shadow:var(--shadow-hover);transform:translateY(-2px);outline:2px solid var(--color-accent);outline-offset:2px}.proj-shot .shot-hint{display:block;font-size:.68rem;color:var(--color-text-muted);padding:.3rem .5rem;background:#f4f7fb;border-top:1px solid rgba(51,102,153,.14)}@media(max-width:720px){.proj-media{flex-direction:column}.proj-shot{flex-basis:auto;width:100%;max-width:320px}}.shot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;background:#0a1826e0;cursor:zoom-out}.shot-overlay[hidden]{display:none}.shot-overlay img{max-width:min(1600px,96vw);max-height:88vh;width:auto;height:auto;border-radius:10px;box-shadow:0 24px 80px #0000008c;background:#fff}.shot-overlay-hint{color:#ffffffbf;font-size:.85rem;margin:0}
