@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-600.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/fraunces-700.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/fraunces-800.woff2) format("woff2")}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/geist-400.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-600.woff2) format("woff2")}:root{--bg: #f1f2f5;--bg-soft: #ffffff;--panel: #ffffff;--panel-strong: #ffffff;--sunken: #f6f7f9;--line: #e3e5ea;--line-strong: #cbced6;--text: #0d0e12;--muted: #565a63;--faint: #8b8f99;--accent: #2440ff;--accent-deep: #1730d6;--accent-tint: rgba(36, 64, 255, .08);--accent-tint-strong: rgba(36, 64, 255, .14);--accent-line: rgba(36, 64, 255, .3);--on-accent: #ffffff;--topbar-glass: rgba(255, 255, 255, .82);--amber: var(--accent);--amber-soft: var(--accent-deep);--cyan: var(--accent);--violet: var(--accent-deep);--accent-2: var(--accent-deep);--success: #12a150;--warning: #d9822b;--danger: #e5484d;--success-tint: rgba(18, 161, 80, .09);--success-line: rgba(18, 161, 80, .28);--warning-tint: rgba(217, 130, 43, .1);--warning-line: rgba(217, 130, 43, .3);--danger-tint: rgba(229, 72, 77, .08);--danger-line: rgba(229, 72, 77, .28);--on-success: #ffffff;--on-danger: #ffffff;--skeleton-a: rgba(13, 14, 18, .03);--skeleton-b: rgba(13, 14, 18, .08);--grad-warm: var(--accent);--grad-cold: var(--accent);--ink-fill: #0d0e12;--on-ink-fill: #ffffff;--shadow: 0 1px 2px rgba(13, 14, 18, .04), 0 10px 30px rgba(13, 14, 18, .06);--shadow-glow: 0 0 0 1px var(--line);--grid-line: rgba(13, 14, 18, .028);--scrollbar-thumb: rgba(13, 14, 18, .16);--scrollbar-thumb-hover: rgba(13, 14, 18, .28);--maze-wall: #1a1c22;--maze-closed: rgba(36, 64, 255, .16);--maze-open: rgba(217, 130, 43, .42);--maze-start: #12a150;--maze-goal: #e5484d;--maze-path: #2440ff;--maze-path-glow: rgba(36, 64, 255, .35);--radius: .75rem;--radius-lg: 1rem;--font-display: "Fraunces", ui-serif, Georgia, Cambria, "Times New Roman", serif;--font-body: "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", ui-monospace, monospace;--max: 1180px;color-scheme:light}:root[data-theme=dark]{--bg: #0b0c0f;--bg-soft: #101114;--panel: #17181c;--panel-strong: #1c1d22;--sunken: #111216;--line: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .18);--text: #f2f3f5;--muted: #a6abb5;--faint: #6c7078;--accent: #5b7cff;--accent-deep: #aab8ff;--accent-tint: rgba(91, 124, 255, .16);--accent-tint-strong: rgba(91, 124, 255, .24);--accent-line: rgba(91, 124, 255, .38);--on-accent: #ffffff;--topbar-glass: rgba(23, 24, 28, .78);--ink-fill: #f2f3f5;--on-ink-fill: #0d0e12;--success: #34cd85;--warning: #e2a13f;--danger: #ff6b70;--success-tint: rgba(52, 205, 133, .14);--success-line: rgba(52, 205, 133, .36);--warning-tint: rgba(226, 161, 63, .14);--warning-line: rgba(226, 161, 63, .36);--danger-tint: rgba(255, 107, 112, .13);--danger-line: rgba(255, 107, 112, .34);--on-success: #062013;--on-danger: #2a0405;--skeleton-a: rgba(255, 255, 255, .04);--skeleton-b: rgba(255, 255, 255, .11);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 16px 44px rgba(0, 0, 0, .42);--grid-line: rgba(255, 255, 255, .045);--scrollbar-thumb: rgba(255, 255, 255, .14);--scrollbar-thumb-hover: rgba(255, 255, 255, .24);--maze-wall: #e4e6ec;--maze-closed: rgba(91, 124, 255, .26);--maze-open: rgba(226, 161, 63, .5);--maze-start: #34cd85;--maze-goal: #ff6b70;--maze-path: #5b7cff;--maze-path-glow: rgba(91, 124, 255, .45);color-scheme:dark}*{box-sizing:border-box}*,*:before,*:after{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}html{min-height:100%;background:var(--bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{min-height:100%;margin:0;color:var(--text);font-family:var(--font-body);font-feature-settings:"ss01","cv01";background:var(--bg);position:relative;overflow-x:hidden}body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:1;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 60%);mask-image:linear-gradient(180deg,#000 0%,transparent 60%)}button,a,input{font:inherit}button{cursor:pointer;border:none;background:none;color:inherit}a{color:inherit}button,.primary-button,.secondary-button,.brand,.nav a,.live-pill,.lang-switch button,.social,.foot-social a,.eyebrow,.tag,.proj-role,.proj-stack span,.skill-label,.skill-items span,.cal-weekdays,.cal-legend,.mode-switch button,.ctrl,.slot,.kind,.ghost,.ident-no,.ticker-track{user-select:none;-webkit-user-select:none}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}h1,h2,h3,h4,p{margin-top:0}h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,6vw,5.2rem);line-height:1.04;letter-spacing:-.01em;padding-bottom:.14em}h1 .accent,h2 .accent{display:inline-block;padding-right:.1em;padding-bottom:.06em}h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.05;letter-spacing:-.008em}h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.006em}p{color:var(--muted);line-height:1.7}.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);color:var(--amber);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase}.eyebrow:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--accent);animation:blink 2.4s ease-in-out infinite}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.page{padding:clamp(2.5rem,6vw,6rem) 0 clamp(3rem,6vw,6rem)}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3rem;padding:0 1.35rem;border-radius:.55rem;text-decoration:none;font-weight:600;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.primary-button{color:var(--on-ink-fill);background:var(--ink-fill);border:1px solid var(--ink-fill)}.secondary-button{border:1px solid var(--line-strong);color:var(--text);background:var(--panel)}.primary-button:hover{transform:translateY(-2px);background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.secondary-button:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent)}.mono{font-family:var(--font-mono)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}.metric{padding:1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--sunken);transition:border-color .25s ease,transform .25s ease}.metric:hover{border-color:var(--line-strong);transform:translateY(-3px)}.metric span{display:block;color:var(--faint);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.metric strong{display:block;margin-top:.5rem;font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:-.008em}@media(max-width:920px){.metric-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.metric-grid{grid-template-columns:1fr}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.rise{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}.turnstile-widget,.turnstile-widget>div,.turnstile-widget iframe{width:100%!important;max-width:100%!important}
