@charset "UTF-8";:root{color-scheme:light;--navy-950: #020b1a;--navy-900: #031530;--navy-800: #01204a;--blue-700: #02306b;--blue-600: #0a3f87;--blue-500: #1d5fb8;--blue-400: #4d8fe6;--blue-200: #bcd2f0;--blue-100: #dde8f6;--blue-50: #eef3fa;--warm: #d0a28c;--ink: #0d0e10;--bg: #eef2f8;--surface: #ffffff;--surface-2: #f6f8fc;--line: #d9e1ec;--line-strong: #b8c6da;--text: #031530;--text-muted: #4b5b74;--text-faint: #8794a8;--on-dark: #f3f7fd;--on-dark-muted: #9fb3d1;--on-dark-line: rgba(188, 210, 240, .16);--primary: var(--blue-700);--primary-hover: var(--navy-900);--shadow-sm: 0 1px 2px rgba(3, 21, 48, .06), 0 2px 8px rgba(3, 21, 48, .04);--shadow-md: 0 10px 30px rgba(3, 21, 48, .1);--shadow-lg: 0 30px 70px rgba(3, 21, 48, .18);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--container: 1320px;--header-height: 84px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--font: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}@property --reveal-r{syntax: "<length>"; inherits: true; initial-value: 0px;}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.08;font-weight:700;letter-spacing:-.02em}h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}p{margin:0 0 1rem}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}button{font:inherit;color:inherit;cursor:pointer}::selection{background:var(--blue-700);color:#fff}:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px;border-radius:6px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 2rem}.section{position:relative;padding:7rem 0;overflow-x:clip}.section--tight{padding:4rem 0}.section--dark{background:var(--navy-900);color:var(--on-dark)}.lead{font-size:clamp(1.02rem,1.5vw,1.2rem);line-height:1.6;color:var(--text-muted);max-width:60ch}.muted{color:var(--text-muted)}.skip-link{position:absolute;left:1rem;top:-4rem;z-index:300;padding:.7rem 1.2rem;border-radius:var(--radius-pill);background:var(--primary);color:#fff;font-weight:600;transition:top .2s var(--ease)}.skip-link:focus{top:1rem}.sec-head{position:relative;margin-bottom:3.5rem}.sec-head--center{text-align:center}.sec-head__ghost{position:absolute;left:50%;top:50%;z-index:0;font-size:clamp(4.5rem,15vw,14rem);font-weight:800;line-height:1;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:#02306b0e;transform:translate(calc(-50% + var(--ghost-shift, 0px)),-50%);pointer-events:none;-webkit-user-select:none;user-select:none}.sec-head:not(.sec-head--center) .sec-head__ghost{left:-.05em;transform:translate(var(--ghost-shift, 0px),-50%)}.section--dark .sec-head__ghost{color:#bcd2f00f}.sec-head__title{position:relative;z-index:1;margin:0;font-size:clamp(2rem,4.4vw,3.4rem);font-weight:600;letter-spacing:-.01em;text-transform:uppercase}.sec-head__title:before{content:"/";margin-right:.08em;color:var(--blue-500)}.section--dark .sec-head__title:before{color:var(--blue-400)}.sec-head__aside{position:relative;z-index:1;color:var(--text-muted);font-weight:500}.section--dark .sec-head__aside{color:var(--on-dark-muted)}.sec-head--row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.85rem 1.4rem;border:1px solid transparent;border-radius:var(--radius-pill);font-size:.92rem;font-weight:600;letter-spacing:.005em;white-space:nowrap;transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease)}.btn app-icon{transition:transform .4s var(--ease)}.btn:hover app-icon[name=arrow-up-right]{transform:translate(2px,-2px)}.btn--primary{background:var(--primary);color:#fff;box-shadow:0 8px 22px #02306b47}.btn--primary:hover{background:var(--primary-hover)}.btn--light{background:#fff;color:var(--navy-900);box-shadow:0 8px 22px #020b1a40}.btn--light:hover{background:var(--blue-100)}.btn--ghost{background:transparent;border-color:var(--line-strong);color:var(--text)}.btn--ghost:hover{border-color:var(--text);background:var(--surface)}.btn--ghost-dark{background:rgba(255,255,255,.04);border-color:#bcd2f059;color:var(--on-dark)}.btn--ghost-dark:hover{background:rgba(255,255,255,.1);border-color:var(--on-dark)}.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:.86rem;font-weight:500;white-space:nowrap;box-shadow:var(--shadow-sm);transition:border-color .3s var(--ease),background-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}a.pill:hover,button.pill:hover{border-color:var(--blue-500);transform:translateY(-1px)}.pill--dark{background:rgba(255,255,255,.06);border-color:#bcd2f047;color:var(--on-dark);box-shadow:none;backdrop-filter:blur(6px)}a.pill--dark:hover{background:rgba(255,255,255,.14);border-color:var(--on-dark)}.status-dot{position:relative;width:8px;height:8px;flex:none;border-radius:50%;background:#3fd28b}.status-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid #3fd28b;opacity:0;animation:pulse 2.4s var(--ease) infinite}.status-dot--warm{background:var(--warm)}.status-dot--warm:after{border-color:var(--warm)}@keyframes pulse{0%{transform:scale(.6);opacity:.7}to{transform:scale(1.8);opacity:0}}.chip{display:inline-block;padding:.3rem .75rem;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);color:var(--text-muted);font-size:.76rem;font-weight:500;white-space:nowrap}.chip--dark{background:rgba(255,255,255,.05);border-color:var(--on-dark-line);color:var(--on-dark-muted)}.tabs{display:flex;flex-wrap:wrap;gap:.35rem}.tabs__btn{padding:.5rem 1rem;border:1px solid transparent;border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font-size:.88rem;font-weight:600;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}.tabs__btn:hover{color:var(--text)}.tabs__btn--active{background:var(--surface);border-color:var(--line);color:var(--text);box-shadow:var(--shadow-sm)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.box{padding:clamp(1.4rem,2.5vw,2rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.bezel{padding:clamp(8px,1.4vw,14px);background:#0b0d12;border:1px solid #2a3140;border-radius:clamp(12px,2vw,22px);box-shadow:var(--shadow-lg)}.bezel img{width:100%;height:auto;aspect-ratio:3/2;border-radius:3px}.blueprint{position:relative;color:var(--on-dark);background:radial-gradient(ellipse 70% 60% at 50% 55%,rgba(29,95,184,.45),transparent 70%),linear-gradient(150deg,var(--blue-700) 0%,var(--navy-800) 55%,var(--navy-900) 100%);overflow:hidden}.grid-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}.page-head{padding:calc(var(--header-height) + clamp(3rem,9vh,6rem)) 0 3rem;overflow-x:clip}.page-head .lead{position:relative;margin:0 auto}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--reveal-delay, 0ms)}.reveal--visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.001ms!important;transition-delay:0ms!important}.reveal{opacity:1;transform:none}}@media (max-width: 760px){.grid-projects{grid-template-columns:1fr}}@media (max-width: 720px){.container{padding:0 1rem}.section{padding:5rem 0}.sec-head{margin-bottom:2.5rem}}
