: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;--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:1.0625rem;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:1rem;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;border-radius:11px;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-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:720px){.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}}.nav a{color:#fffffff2;text-decoration:none;padding:.55rem .75rem;border-radius:8px;font-size:.95rem;font-weight:500;transition:background .15s ease}.nav a:hover,.nav a:focus-visible{background:#ffffff1f;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 2rem;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 2.5rem;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:5.8 / 1;max-height:100px;width:100%;object-fit:cover;object-position:center center}@media(min-width:640px){.hero-home--banner-below .hero-home-visual picture,.hero-home--banner-below .hero-home-visual img{aspect-ratio:6 / 1;max-height:118px}}@media(min-width:960px){.hero-home--banner-below .hero-home-visual picture,.hero-home--banner-below .hero-home-visual img{max-height:128px}}.hero-home-copy h1{margin:0 0 .5rem;font-size:clamp(2rem,4.5vw,2.75rem);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 .5rem;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}h2{margin:0 0 .75rem;font-size:1.45rem;color:var(--color-primary);letter-spacing:-.01em}.content-section h2{margin-top:0}h3{margin:1.5rem 0 .5rem;font-size:1.12rem;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:1.25rem}@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:1.35rem 1.4rem;transition:box-shadow .2s ease,border-color .2s ease}.pillar:hover{box-shadow:var(--shadow-card);border-color:#33669947}.pillar h3{margin-top:0;color:var(--color-primary)}.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:.9rem;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}address{font-style:normal}.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:1.15rem;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:2rem;padding-top:1.5rem;border-top:1px solid rgba(0,51,102,.12);max-width:36rem}.contact-form h2{margin-top:0}.form-field{margin-bottom:1.1rem}.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:8rem;resize:vertical}.contact-form button[type=submit]{margin-top:.25rem}.form-status{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--radius);background:#33669914;color:var(--color-text-muted);font-size:.9rem}
