*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}blockquote,body,dd,dl,figure,h1,h2,h3,h4,ol,p,ul{margin:0}ol[class],ul[class]{list-style:none;padding:0}img,svg{display:block;max-width:100%}button,input,select,textarea{color:inherit;font:inherit}button{background:none;border:0;cursor:pointer;padding:0}a{color:inherit;text-decoration:none}:focus-visible{border-radius:3px;outline:2px solid #1d4ed8;outline:2px solid var(--accent);outline-offset:3px}::selection{background:#eef3ff;background:var(--accent-tint);color:#16307f;color:var(--accent-ink)}:root{--paper:#fbfaf8;--paper-sunken:#f5f3ef;--surface:#fff;--ink:#17171b;--ink-2:#43454c;--ink-3:#5c5f66;--ink-4:#6b6e76;--rule:#e6e2da;--rule-strong:#d5d0c6;--accent:#1d4ed8;--accent-hover:#1e40af;--accent-ink:#16307f;--accent-tint:#eef3ff;--accent-rule:#c9d8fb;--live:#15803d;--nav-bg:hsla(40,27%,98%,.82);--wash:rgba(23,23,27,.04);--surface-hover:#fdfdfc;--ink-max:#000;--accent-glow:rgba(29,78,216,.05);--font-sans:"Inter","Inter var",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SF Mono","JetBrains Mono","Menlo","Consolas",monospace;--r-sm:6px;--r:10px;--r-lg:14px;--r-xl:20px;--shadow-1:0 1px 2px rgba(23,23,27,.04);--shadow-2:0 2px 6px rgba(23,23,27,.05),0 12px 28px -12px rgba(23,23,27,.14);--ease:cubic-bezier(0.22,0.61,0.36,1);--dur:0.22s;--shell:1120px;--shell-narrow:780px;--gutter:24px;--nav-h:64px}:root[data-theme=dark]{--paper:#161512;--paper-sunken:#121110;--surface:#26241e;--ink:#f6f4ed;--ink-2:#dedbd1;--ink-3:#b3afa4;--ink-4:#989488;--rule:#38352e;--rule-strong:#4e4a40;--accent:#7ca5ff;--accent-hover:#9bbbff;--accent-ink:#d3e0fc;--accent-tint:#22304d;--accent-rule:#3e5c8f;--live:#4ade80;--nav-bg:rgba(22,21,18,.85);--wash:hsla(0,0%,100%,.07);--surface-hover:#2e2c25;--ink-max:#fff;--accent-glow:rgba(124,165,255,.1);--shadow-1:0 1px 2px rgba(0,0,0,.5);--shadow-2:0 2px 8px rgba(0,0,0,.5),0 14px 32px -12px rgba(0,0,0,.8)}:root[data-theme=green]{--accent:#15803d;--accent-hover:#166534;--accent-ink:#124d28;--accent-tint:#ecfdf3;--accent-rule:#bbe9cc;--accent-glow:rgba(21,128,61,.05)}:root[data-theme=amber]{--accent:#b45309;--accent-hover:#92400e;--accent-ink:#7c3a08;--accent-tint:#fdf1e3;--accent-rule:#f3d8b6;--accent-glow:rgba(180,83,9,.05)}:root[data-theme=violet]{--accent:#6d28d9;--accent-hover:#5b21b6;--accent-ink:#4c1d95;--accent-tint:#f4eefe;--accent-rule:#ddd0fa;--accent-glow:rgba(109,40,217,.05)}:root[data-theme=crimson]{--paper:#fcfcfd;--paper-sunken:#f4f4f6;--surface:#fff;--ink:#14141a;--ink-2:#3b3b44;--ink-3:#55555f;--ink-4:#6a6a75;--rule:#e7e7ea;--rule-strong:#d3d3d8;--accent:#c0362b;--accent-hover:#a22b22;--accent-ink:#86221b;--accent-tint:#fcedec;--accent-rule:#f3c9c4;--nav-bg:rgba(252,252,253,.82);--wash:rgba(20,20,26,.04);--surface-hover:#fbfbfc;--accent-glow:rgba(192,54,43,.05)}body{-webkit-font-feature-settings:"kern" 1,"liga" 1,"calt" 1;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fbfaf8;background:var(--paper);color:#43454c;color:var(--ink-2);font-family:Inter,Inter var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:16px;line-height:1.65}h1,h2,h3,h4{color:#17171b;color:var(--ink);font-weight:600;letter-spacing:-.02em;line-height:1.2}p+p{margin-top:1em}strong{color:#17171b;color:var(--ink);font-weight:600}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#fbfaf8;background:var(--paper)}::-webkit-scrollbar-thumb{background:#d5d0c6;background:var(--rule-strong);border:3px solid #fbfaf8;border:3px solid var(--paper);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#6b6e76;background:var(--ink-4)}.shell{margin-inline:auto;max-width:1120px;max-width:var(--shell);padding-inline:24px;padding-inline:var(--gutter);width:100%}.shell--narrow{max-width:780px;max-width:var(--shell-narrow)}.section{padding-block:96px;position:relative}.section--sunken{background:#f5f3ef;background:var(--paper-sunken)}.section--ruled{border-top:1px solid #e6e2da;border-top:1px solid var(--rule)}@media (max-width:720px){:root{--gutter:20px}.section{padding-block:64px}}.eyebrow{align-items:center;color:#6b6e76;color:var(--ink-4);display:flex;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:11px;font-weight:500;gap:10px;letter-spacing:.14em;margin-bottom:18px;text-transform:uppercase}.eyebrow:before{background:#d5d0c6;background:var(--rule-strong);content:"";flex-shrink:0;height:1px;width:24px}.section-head{margin-bottom:56px;max-width:640px}.section-title{font-size:clamp(1.75rem,3.6vw,2.35rem);letter-spacing:-.03em}.section-lede{color:#5c5f66;color:var(--ink-3);font-size:1rem;line-height:1.7;margin-top:14px;max-width:58ch}@media (max-width:720px){.section-head{margin-bottom:36px}}.link{color:#1d4ed8;color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:#c9d8fb;text-decoration-color:#c9d8fb;-webkit-text-decoration-color:var(--accent-rule);text-decoration-color:var(--accent-rule);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .22s cubic-bezier(.22,.61,.36,1),-webkit-text-decoration-color .22s cubic-bezier(.22,.61,.36,1);transition:text-decoration-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1);transition:text-decoration-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1),-webkit-text-decoration-color .22s cubic-bezier(.22,.61,.36,1);transition:color var(--dur) var(--ease),-webkit-text-decoration-color var(--dur) var(--ease);transition:text-decoration-color var(--dur) var(--ease),color var(--dur) var(--ease);transition:text-decoration-color var(--dur) var(--ease),color var(--dur) var(--ease),-webkit-text-decoration-color var(--dur) var(--ease)}.link:hover{color:#1e40af;color:var(--accent-hover);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.link-arrow{align-items:center;color:#1d4ed8;color:var(--accent);display:inline-flex;font-size:.875rem;font-weight:500;gap:6px;transition:color .22s cubic-bezier(.22,.61,.36,1);transition:color var(--dur) var(--ease)}.link-arrow svg{height:14px;transition:-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:transform .22s cubic-bezier(.22,.61,.36,1);transition:transform .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:-webkit-transform var(--dur) var(--ease);transition:transform var(--dur) var(--ease);transition:transform var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease);width:14px}.link-arrow:hover{color:#1e40af;color:var(--accent-hover)}.link-arrow:hover svg{-webkit-transform:translate(2px,-2px);transform:translate(2px,-2px)}.btn{align-items:center;border-radius:10px;border-radius:var(--r);display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;height:44px;justify-content:center;letter-spacing:-.005em;padding-inline:20px;transition:background .22s cubic-bezier(.22,.61,.36,1),border-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:background .22s cubic-bezier(.22,.61,.36,1),border-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1);transition:background .22s cubic-bezier(.22,.61,.36,1),border-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease);white-space:nowrap}.btn svg{flex-shrink:0;height:16px;width:16px}.btn--primary{background:#17171b;background:var(--ink);box-shadow:0 1px 2px rgba(23,23,27,.04);box-shadow:var(--shadow-1);color:#fbfaf8;color:var(--paper)}.btn--primary:hover{background:#000;background:var(--ink-max);box-shadow:0 2px 6px rgba(23,23,27,.05),0 12px 28px -12px rgba(23,23,27,.14);box-shadow:var(--shadow-2);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn--primary:active{-webkit-transform:translateY(0);transform:translateY(0)}.btn--ghost{background:#fff;background:var(--surface);border:1px solid #d5d0c6;border:1px solid var(--rule-strong);color:#17171b;color:var(--ink)}.btn--ghost:hover{background:#fbfaf8;background:var(--paper);border-color:#6b6e76;border-color:var(--ink-4);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn--ghost:active{-webkit-transform:translateY(0);transform:translateY(0)}.card,.panel{background:#fff;background:var(--surface);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:14px;border-radius:var(--r-lg)}.card{transition:border-color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:border-color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1);transition:border-color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease)}.card--interactive:hover{border-color:#d5d0c6;border-color:var(--rule-strong);box-shadow:0 2px 6px rgba(23,23,27,.05),0 12px 28px -12px rgba(23,23,27,.14);box-shadow:var(--shadow-2);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.rule{background:#e6e2da;background:var(--rule);border:0;height:1px}.meta{color:#6b6e76;color:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em}.meta-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px}.meta-dot{background:#d5d0c6;background:var(--rule-strong);border-radius:50%;flex-shrink:0;height:3px;width:3px}.tag{align-items:center;background:#f5f3ef;background:var(--paper-sunken);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:6px;border-radius:var(--r-sm);color:#5c5f66;color:var(--ink-3);display:inline-flex;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.01em;padding:3px 9px;transition:border-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);white-space:nowrap}.tag--accent,.tag:hover{border-color:#c9d8fb;border-color:var(--accent-rule);color:#16307f;color:var(--accent-ink)}.tag--accent{background:#eef3ff;background:var(--accent-tint)}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.badge{align-items:center;background:#fff;background:var(--surface);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:999px;box-shadow:0 1px 2px rgba(23,23,27,.04);box-shadow:var(--shadow-1);color:#43454c;color:var(--ink-2);display:inline-flex;font-size:.8rem;font-weight:500;gap:8px;padding:6px 14px 6px 12px}.badge-dot{background:#15803d;background:var(--live);border-radius:50%;flex-shrink:0;height:7px;position:relative;width:7px}.badge-dot:after{-webkit-animation:ping 2.4s cubic-bezier(.22,.61,.36,1) infinite;animation:ping 2.4s cubic-bezier(.22,.61,.36,1) infinite;-webkit-animation:ping 2.4s var(--ease) infinite;animation:ping 2.4s var(--ease) infinite;border:1px solid #15803d;border:1px solid var(--live);border-radius:50%;content:"";inset:-3px;opacity:0;position:absolute}@-webkit-keyframes ping{0%{opacity:.6;-webkit-transform:scale(.7);transform:scale(.7)}70%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}to{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes ping{0%{opacity:.6;-webkit-transform:scale(.7);transform:scale(.7)}70%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}to{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}.nav{backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);background:hsla(40,27%,98%,.82);background:var(--nav-bg);border-bottom:1px solid transparent;height:64px;height:var(--nav-h);position:-webkit-sticky;position:sticky;top:0;transition:border-color .22s cubic-bezier(.22,.61,.36,1),background .22s cubic-bezier(.22,.61,.36,1);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);z-index:50}.nav.is-scrolled{border-bottom-color:#e6e2da;border-bottom-color:var(--rule)}.nav-inner{align-items:center;display:flex;gap:24px;height:100%;justify-content:space-between}.wordmark{align-items:baseline;color:#17171b;color:var(--ink);display:inline-flex;font-size:.95rem;font-weight:600;gap:2px;letter-spacing:-.02em}.wordmark-dot{background:#1d4ed8;background:var(--accent);border-radius:50%;height:5px;margin-left:3px;-webkit-transform:translateY(-1px);transform:translateY(-1px);width:5px}.nav-links{align-items:center;display:flex;gap:4px}.nav-link{border-radius:6px;border-radius:var(--r-sm);color:#5c5f66;color:var(--ink-3);font-size:.875rem;font-weight:450;padding:7px 12px;position:relative;transition:color .22s cubic-bezier(.22,.61,.36,1),background .22s cubic-bezier(.22,.61,.36,1);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-link:hover{background:rgba(23,23,27,.04);background:var(--wash);color:#17171b;color:var(--ink)}.nav-link.is-active{color:#17171b;color:var(--ink);font-weight:500}.nav-link.is-active:after{background:#1d4ed8;background:var(--accent);border-radius:2px;bottom:1px;content:"";height:1.5px;left:12px;position:absolute;right:12px}.nav-cta{margin-left:8px}.nav-toggle{align-items:center;background:#fff;background:var(--surface);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:6px;border-radius:var(--r-sm);color:#17171b;color:var(--ink);display:none;height:38px;justify-content:center;transition:border-color .22s cubic-bezier(.22,.61,.36,1);transition:border-color var(--dur) var(--ease);width:38px}.nav-toggle:hover{border-color:#d5d0c6;border-color:var(--rule-strong)}.nav-toggle svg{height:18px;width:18px}.nav-panel{grid-gap:2px;background:#fff;background:var(--surface);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:14px;border-radius:var(--r-lg);box-shadow:0 2px 6px rgba(23,23,27,.05),0 12px 28px -12px rgba(23,23,27,.14);box-shadow:var(--shadow-2);display:grid;gap:2px;inset-inline:24px;inset-inline:var(--gutter);padding:8px;position:absolute;top:70px;top:calc(var(--nav-h) + 6px)}.nav-panel a{border-radius:6px;border-radius:var(--r-sm);color:#43454c;color:var(--ink-2);font-size:.925rem;padding:11px 14px;transition:background .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-panel a:hover{background:#f5f3ef;background:var(--paper-sunken);color:#17171b;color:var(--ink)}@media (max-width:860px){.nav-links{display:none}.nav-toggle{display:inline-flex}}.hero{overflow:hidden;padding-block:clamp(44px,6.5vw,84px) clamp(64px,9vw,112px);position:relative}.hero-grid{background-image:radial-gradient(circle at 1px 1px,#d5d0c6 1px,transparent 0);background-image:radial-gradient(circle at 1px 1px,var(--rule-strong) 1px,transparent 0);background-size:32px 32px;inset:0;-webkit-mask-image:radial-gradient(ellipse 80% 65% at 50% 30%,#000 30%,transparent 78%);mask-image:radial-gradient(ellipse 80% 65% at 50% 30%,#000 30%,transparent 78%);opacity:.55;pointer-events:none;position:absolute}.hero-inner{grid-gap:clamp(32px,6vw,72px);align-items:center;display:grid;gap:clamp(32px,6vw,72px);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);position:relative}.hero-name{color:#17171b;color:var(--ink);font-size:clamp(2.75rem,7.2vw,4.5rem);font-weight:620;letter-spacing:-.045em;line-height:1.02;margin-block:22px 0}.hero-role{color:#43454c;color:var(--ink-2);font-size:clamp(1.0625rem,2vw,1.25rem);font-weight:450;letter-spacing:-.015em;line-height:1.5;margin-top:18px;max-width:30ch}.hero-role .hl{color:#17171b;color:var(--ink);font-weight:600}.hero-quote{border-left:2px solid #c9d8fb;border-left:2px solid var(--accent-rule);color:#5c5f66;color:var(--ink-3);font-size:.95rem;font-style:italic;line-height:1.6;margin-top:26px;max-width:42ch;padding-left:16px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero-social{align-items:center;border-top:1px solid #e6e2da;border-top:1px solid var(--rule);display:flex;gap:18px;margin-top:36px;padding-top:24px}.hero-social-label{color:#6b6e76;color:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.social-row{align-items:center;display:flex;gap:14px}.social-link{color:#6b6e76;color:var(--ink-4);display:inline-flex;transition:color .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:color .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1);transition:color .22s cubic-bezier(.22,.61,.36,1),transform .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:color var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease);transition:color var(--dur) var(--ease),transform var(--dur) var(--ease);transition:color var(--dur) var(--ease),transform var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease)}.social-link svg{height:19px;width:19px}.social-link:hover{color:#17171b;color:var(--ink);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.hero-art{align-items:center;display:flex;justify-content:center}.hero-art svg{height:auto;max-width:460px;overflow:visible;width:100%}.art-plate{fill:#fff;fill:var(--surface);stroke:#d5d0c6;stroke:var(--rule-strong);stroke-width:1.25}.art-plate-tint{fill:#eef3ff;fill:var(--accent-tint);stroke:#c9d8fb;stroke:var(--accent-rule);stroke-width:1.25}.art-line{fill:none;stroke:#d5d0c6;stroke:var(--rule-strong);stroke-width:1.25}.art-line-accent{fill:none;stroke:#1d4ed8;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.art-node{fill:#fff;fill:var(--surface);stroke:#6b6e76;stroke:var(--ink-4);stroke-width:1.25}.art-node-accent{fill:#1d4ed8;fill:var(--accent);stroke:none}.art-bar{fill:#d5d0c6;fill:var(--rule-strong)}.art-bar-accent{fill:#c9d8fb;fill:var(--accent-rule)}.art-bar-dot{fill:#d5d0c6;fill:var(--rule-strong)}.art-label{fill:#6b6e76;fill:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em}.art-title{fill:#17171b;fill:var(--ink);font-family:Inter,Inter var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:.005em}.art-sub{fill:#6b6e76;fill:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:6.5px;letter-spacing:.04em}.art-flow{fill:none;stroke:#1d4ed8;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-dasharray:26 460;stroke-dashoffset:26;-webkit-animation:flow 3.4s linear infinite;animation:flow 3.4s linear infinite}@-webkit-keyframes flow{to{stroke-dashoffset:-440}}@keyframes flow{to{stroke-dashoffset:-440}}.art-node-pulse{fill:none;stroke:#1d4ed8;stroke:var(--accent);stroke-width:1.25;-webkit-animation:node-pulse 3.4s cubic-bezier(.22,.61,.36,1) infinite;animation:node-pulse 3.4s cubic-bezier(.22,.61,.36,1) infinite;-webkit-animation:node-pulse 3.4s var(--ease) infinite;animation:node-pulse 3.4s var(--ease) infinite;-webkit-transform-origin:215px 194px;transform-origin:215px 194px}@-webkit-keyframes node-pulse{0%,45%{opacity:0;-webkit-transform:scale(1);transform:scale(1)}60%{opacity:.5;-webkit-transform:scale(1.35);transform:scale(1.35)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes node-pulse{0%,45%{opacity:0;-webkit-transform:scale(1);transform:scale(1)}60%{opacity:.5;-webkit-transform:scale(1.35);transform:scale(1.35)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.art-dash{stroke-dasharray:3 4;opacity:.7}@media (max-width:900px){.hero-inner{grid-template-columns:1fr}.hero-art{margin-bottom:8px;order:-1}.hero-art svg{max-width:340px}}.skills-grid{grid-gap:1px;background:#e6e2da;background:var(--rule);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:14px;border-radius:var(--r-lg);display:grid;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.skill-col{background:#fff;background:var(--surface);padding:26px 22px 28px;transition:background .22s cubic-bezier(.22,.61,.36,1);transition:background var(--dur) var(--ease)}.skill-col:hover{background:#fdfdfc;background:var(--surface-hover)}.skill-icon{align-items:center;background:#eef3ff;background:var(--accent-tint);border-radius:6px;border-radius:var(--r-sm);color:#1d4ed8;color:var(--accent);display:flex;height:34px;justify-content:center;margin-bottom:16px;width:34px}.skill-icon svg{height:17px;width:17px}.skill-title{color:#17171b;color:var(--ink);font-size:.9rem;font-weight:600;margin-bottom:14px}.skill-list{display:flex;flex-direction:column;gap:7px}.skill-item{color:#5c5f66;color:var(--ink-3);font-size:.85rem;line-height:1.45}@media (max-width:900px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.skills-grid{grid-template-columns:1fr}}.about-grid{grid-gap:clamp(32px,6vw,72px);align-items:start;display:grid;gap:clamp(32px,6vw,72px);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.prose p{color:#43454c;color:var(--ink-2);font-size:1rem;line-height:1.75}.prose p+p{margin-top:1.1em}.prose strong{color:#17171b;color:var(--ink);font-weight:600}.about-quote{align-items:flex-start;background:#eef3ff;background:var(--accent-tint);border-left:2px solid #1d4ed8;border-left:2px solid var(--accent);border-radius:0 10px 10px 0;border-radius:0 var(--r) var(--r) 0;display:flex;gap:16px;margin-block:28px;padding:20px 24px}.about-quote svg{color:#1d4ed8;color:var(--accent);flex-shrink:0;height:22px;margin-top:3px;width:22px}.about-quote p{color:#17171b;color:var(--ink);font-size:1.0625rem;font-style:italic;font-weight:500;letter-spacing:-.01em;line-height:1.5;margin:0}.about-focus{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.about-focus span{background:#eef3ff;background:var(--accent-tint);border:1px solid #c9d8fb;border:1px solid var(--accent-rule);border-radius:999px;color:#16307f;color:var(--accent-ink);font-size:.8rem;font-weight:500;padding:6px 14px;white-space:nowrap}.about-aside{grid-gap:16px;display:grid;gap:16px;position:-webkit-sticky;position:sticky;top:88px;top:calc(var(--nav-h) + 24px)}.about-card{grid-gap:16px;background:#fff;background:var(--surface);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:14px;border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(23,23,27,.04);box-shadow:var(--shadow-1);display:grid;gap:16px;grid-template-columns:44px minmax(0,1fr);padding:20px}.about-card__icon{background:#eef3ff;background:var(--accent-tint);border-radius:10px;border-radius:var(--r);color:#1d4ed8;color:var(--accent);display:grid;height:44px;place-items:center;width:44px}.about-card__icon svg{height:22px;width:22px}.about-card__content{min-width:0;padding-top:2px}.about-card__label{color:#6b6e76;color:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:11px;letter-spacing:.13em;margin-bottom:12px;text-transform:uppercase}.about-card__title{color:#17171b;color:var(--ink);font-size:.95rem;font-weight:600;margin-bottom:6px}.about-card__title span{color:#6b6e76;color:var(--ink-4);font-weight:400;margin-left:8px}.about-card__body{color:#5c5f66;color:var(--ink-3);font-size:.85rem;line-height:1.6}.about-card__body+.about-card__link{margin-top:10px}.about-card__link{align-items:center;color:#1d4ed8;color:var(--accent);display:inline-flex;font-size:.875rem;font-weight:500;gap:6px;transition:color .22s cubic-bezier(.22,.61,.36,1);transition:color var(--dur) var(--ease)}.about-card__link svg{flex-shrink:0;height:14px;transition:-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:transform .22s cubic-bezier(.22,.61,.36,1);transition:transform .22s cubic-bezier(.22,.61,.36,1),-webkit-transform .22s cubic-bezier(.22,.61,.36,1);transition:-webkit-transform var(--dur) var(--ease);transition:transform var(--dur) var(--ease);transition:transform var(--dur) var(--ease),-webkit-transform var(--dur) var(--ease);width:14px}.about-card__link span{text-decoration:underline;-webkit-text-decoration-color:#c9d8fb;text-decoration-color:#c9d8fb;-webkit-text-decoration-color:var(--accent-rule);text-decoration-color:var(--accent-rule);text-decoration-thickness:1px;text-underline-offset:3px;word-break:break-all}.about-card__link:hover{color:#1e40af;color:var(--accent-hover)}.about-card__link:hover svg{-webkit-transform:translate(2px,-2px);transform:translate(2px,-2px)}.about-card__link:hover span{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.fact-list{grid-gap:11px;display:grid;gap:11px}.fact{align-items:baseline;display:flex;font-size:.875rem;gap:16px;justify-content:space-between}.fact-key{color:#6b6e76;color:var(--ink-4);flex-shrink:0}.fact-val{color:#17171b;color:var(--ink);font-weight:500;text-align:right}@media (max-width:900px){.about-grid{grid-template-columns:1fr}.about-aside{position:static}}@media (max-width:400px){.about-card{gap:14px;grid-template-columns:1fr}}.tabs{background:#f5f3ef;background:var(--paper-sunken);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:10px;border-radius:var(--r);display:inline-flex;gap:2px;margin-bottom:14px;max-width:100%;overflow-x:auto;padding:4px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:6px;border-radius:var(--r-sm);color:#5c5f66;color:var(--ink-3);font-size:.875rem;font-weight:450;padding:8px 16px;transition:background .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1),box-shadow .22s cubic-bezier(.22,.61,.36,1);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);white-space:nowrap}.tab.is-active,.tab:hover{color:#17171b;color:var(--ink)}.tab.is-active{background:#fff;background:var(--surface);box-shadow:0 1px 2px rgba(23,23,27,.04);box-shadow:var(--shadow-1);font-weight:500}.tab-count{color:#6b6e76;color:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.68rem;margin-left:7px}.tab.is-active .tab-count{color:#1d4ed8;color:var(--accent)}.tab-desc{color:#6b6e76;color:var(--ink-4);font-size:.875rem;margin-bottom:40px}.org{grid-column-gap:18px;border-bottom:1px solid #e6e2da;border-bottom:1px solid var(--rule);-webkit-column-gap:18px;column-gap:18px;display:grid;grid-template-columns:44px minmax(0,1fr);margin-bottom:34px;padding-bottom:34px}.org:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.org-mark{align-items:center;background:#fff;background:var(--surface);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:10px;border-radius:var(--r);color:#17171b;color:var(--ink);display:flex;font-size:1rem;font-weight:600;grid-row:1/span 2;height:44px;justify-content:center;letter-spacing:-.02em;width:44px}.org-head{padding-top:2px}.org-name{color:#17171b;color:var(--ink);font-size:1.0625rem;font-weight:600;letter-spacing:-.02em}.org-tenure{margin-top:3px}.org-roles{grid-gap:26px;display:grid;gap:26px;grid-column:2;margin-top:20px}.org-roles.is-multi{padding-left:22px;position:relative}.org-roles.is-multi:before{background:#e6e2da;background:var(--rule);bottom:6px;content:"";left:3px;position:absolute;top:6px;width:1px}.role{position:relative}.org-roles.is-multi .role:before{background:#fff;background:var(--surface);border:1.5px solid #d5d0c6;border:1.5px solid var(--rule-strong);border-radius:50%;content:"";height:7px;left:-22px;position:absolute;top:6px;width:7px}.org-roles.is-multi .role--current:before{background:#1d4ed8;background:var(--accent);border-color:#1d4ed8;border-color:var(--accent)}.role-title{color:#17171b;color:var(--ink);font-size:.95rem;font-weight:600;letter-spacing:-.015em}.role-meta{margin-top:5px}.role-stack{margin-top:10px}.bullets{grid-gap:9px;display:grid;gap:9px;margin-top:12px}.bullets li{color:#43454c;color:var(--ink-2);font-size:.9rem;line-height:1.65;padding-left:17px;position:relative}.bullets li:before{background:#6b6e76;background:var(--ink-4);content:"";height:1px;left:2px;position:absolute;top:.68em;width:5px}.role-note{color:#43454c;color:var(--ink-2);font-size:.9rem;line-height:1.65;margin-top:12px}@media (max-width:560px){.org{-webkit-column-gap:14px;column-gap:14px;grid-template-columns:36px minmax(0,1fr)}.org-mark{font-size:.875rem;height:36px;width:36px}}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}.project{display:flex;flex-direction:column;overflow:hidden}.project-visual{aspect-ratio:16/9;background:#f5f3ef;background:var(--paper-sunken);border-bottom:1px solid #e6e2da;border-bottom:1px solid var(--rule);overflow:hidden;position:relative}.project-visual img{height:100%;object-fit:cover;object-position:top center;transition:-webkit-transform .5s cubic-bezier(.22,.61,.36,1);transition:transform .5s cubic-bezier(.22,.61,.36,1);transition:transform .5s cubic-bezier(.22,.61,.36,1),-webkit-transform .5s cubic-bezier(.22,.61,.36,1);transition:-webkit-transform .5s var(--ease);transition:transform .5s var(--ease);transition:transform .5s var(--ease),-webkit-transform .5s var(--ease);width:100%}.card--interactive:hover .project-visual img{-webkit-transform:scale(1.03);transform:scale(1.03)}.project-cover{align-items:center;background:radial-gradient(circle at 50% 45%,rgba(29,78,216,.05) 0,transparent 62%),radial-gradient(circle at 1px 1px,#d5d0c6 1px,transparent 0) 0 0 /18px 18px,#f5f3ef;background:radial-gradient(circle at 50% 45%,var(--accent-glow) 0,transparent 62%),radial-gradient(circle at 1px 1px,var(--rule-strong) 1px,transparent 0) 0 0 /18px 18px,var(--paper-sunken);display:flex;height:100%;justify-content:center;width:100%}.project-cover svg{color:#6b6e76;color:var(--ink-4);height:88px;opacity:.7;width:88px}.project-body{display:flex;flex:1 1;flex-direction:column;padding:20px 22px 22px}.project-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.project-name{color:#17171b;color:var(--ink);font-size:1rem;font-weight:600;letter-spacing:-.02em}.project-links{display:flex;flex-shrink:0;gap:10px}.icon-link{color:#6b6e76;color:var(--ink-4);display:inline-flex;transition:color .22s cubic-bezier(.22,.61,.36,1);transition:color var(--dur) var(--ease)}.icon-link svg{height:17px;width:17px}.icon-link:hover{color:#17171b;color:var(--ink)}.project-desc{color:#5c5f66;color:var(--ink-3);flex:1 1;font-size:.9rem;line-height:1.65;margin-top:10px}.project-foot{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:16px}@media (max-width:980px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:660px){.projects-grid{grid-template-columns:1fr}}.stack-list{grid-gap:14px;display:grid;gap:14px}.entry{grid-column-gap:18px;align-items:start;-webkit-column-gap:18px;column-gap:18px;display:grid;grid-template-columns:44px minmax(0,1fr);padding:22px 24px}.entry-mark{align-items:center;background:#eef3ff;background:var(--accent-tint);border-radius:10px;border-radius:var(--r);color:#1d4ed8;color:var(--accent);display:flex;height:44px;justify-content:center;width:44px}.entry-mark svg{height:20px;width:20px}.entry-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.entry-title{color:#17171b;color:var(--ink);font-size:.975rem;font-weight:600;letter-spacing:-.015em}.entry-sub{color:#43454c;color:var(--ink-2);font-size:.9rem;margin-top:4px}.entry-desc{color:#5c5f66;color:var(--ink-3);font-size:.9rem;line-height:1.65;margin-top:10px}.stat-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.stat{background:#f5f3ef;background:var(--paper-sunken);border:1px solid #e6e2da;border:1px solid var(--rule);border-radius:6px;border-radius:var(--r-sm);padding:8px 14px}.stat-val{color:#17171b;color:var(--ink);font-size:.95rem;font-weight:500;line-height:1.2}.stat-key,.stat-val{font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono)}.stat-key{color:#6b6e76;color:var(--ink-4);font-size:.65rem;letter-spacing:.1em;margin-top:3px;text-transform:uppercase}@media (max-width:560px){.entry{-webkit-column-gap:14px;column-gap:14px;grid-template-columns:36px minmax(0,1fr);padding:18px}.entry-mark{height:36px;width:36px}.entry-mark svg{height:17px;width:17px}}.footer{background:#f5f3ef;background:var(--paper-sunken);border-top:1px solid #e6e2da;border-top:1px solid var(--rule);padding-block:64px 40px}.footer-top{grid-gap:40px;align-items:start;border-bottom:1px solid #e6e2da;border-bottom:1px solid var(--rule);display:grid;gap:40px;grid-template-columns:minmax(0,1fr) auto;padding-bottom:40px}.footer-cta{color:#17171b;color:var(--ink);font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:600;letter-spacing:-.035em;line-height:1.15;max-width:20ch}.footer-note{color:#5c5f66;color:var(--ink-3);font-size:.95rem;margin-top:14px;max-width:44ch}.footer-contact{grid-gap:12px;display:grid;gap:12px;justify-items:start}.footer-mail{border-bottom:1px solid #d5d0c6;border-bottom:1px solid var(--rule-strong);color:#17171b;color:var(--ink);font-size:1.05rem;font-weight:500;letter-spacing:-.02em;padding-bottom:2px;transition:border-color .22s cubic-bezier(.22,.61,.36,1),color .22s cubic-bezier(.22,.61,.36,1);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.footer-mail:hover{border-bottom-color:#1d4ed8;border-bottom-color:var(--accent);color:#1d4ed8;color:var(--accent)}.footer-bottom{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding-top:26px}.footer-copy{color:#6b6e76;color:var(--ink-4);font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.01em}@media (max-width:760px){.footer-top{gap:28px;grid-template-columns:1fr}}.loader{align-items:center;background:#fbfaf8;background:var(--paper);display:flex;flex-direction:column;gap:22px;inset:0;justify-content:center;position:fixed;z-index:100}.loader-mark{color:#17171b;color:var(--ink);font-size:1.35rem;font-weight:600;letter-spacing:-.03em}.loader-bar{background:#e6e2da;background:var(--rule);border-radius:2px;height:2px;overflow:hidden;width:132px}.loader-bar span{-webkit-animation:loader-slide 1.05s cubic-bezier(.22,.61,.36,1) infinite;animation:loader-slide 1.05s cubic-bezier(.22,.61,.36,1) infinite;-webkit-animation:loader-slide 1.05s var(--ease) infinite;animation:loader-slide 1.05s var(--ease) infinite;background:#1d4ed8;background:var(--accent);border-radius:2px;display:block;height:100%;width:40%}@-webkit-keyframes loader-slide{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(330%);transform:translateX(330%)}}@keyframes loader-slide{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(330%);transform:translateX(330%)}}.reveal{opacity:0;-webkit-transform:translateY(14px);transform:translateY(14px);transition:opacity .55s cubic-bezier(.22,.61,.36,1),-webkit-transform .55s cubic-bezier(.22,.61,.36,1);transition:opacity .55s cubic-bezier(.22,.61,.36,1),transform .55s cubic-bezier(.22,.61,.36,1);transition:opacity .55s cubic-bezier(.22,.61,.36,1),transform .55s cubic-bezier(.22,.61,.36,1),-webkit-transform .55s cubic-bezier(.22,.61,.36,1);transition:opacity .55s var(--ease),-webkit-transform .55s var(--ease);transition:opacity .55s var(--ease),transform .55s var(--ease);transition:opacity .55s var(--ease),transform .55s var(--ease),-webkit-transform .55s var(--ease);will-change:opacity,transform}.reveal.is-visible{opacity:1;-webkit-transform:none;transform:none}.fade-in{-webkit-animation:fade-up .4s cubic-bezier(.22,.61,.36,1) forwards;animation:fade-up .4s cubic-bezier(.22,.61,.36,1) forwards;-webkit-animation:fade-up .4s var(--ease) forwards;animation:fade-up .4s var(--ease) forwards;opacity:0}@-webkit-keyframes fade-up{0%{opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fade-up{0%{opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}to{opacity:1;-webkit-transform:none;transform:none}}.skip-link{background:#17171b;background:var(--ink);border-radius:6px;border-radius:var(--r-sm);color:#fbfaf8;color:var(--paper);font-size:.875rem;left:-9999px;padding:10px 16px;position:absolute;top:8px;z-index:100}.skip-link:focus{left:16px}.visually-hidden{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{-webkit-animation-duration:.001ms!important;animation-duration:.001ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{-webkit-transform:none;transform:none}.fade-in,.reveal{opacity:1}}
/*# sourceMappingURL=main.2a68f6de.css.map*/