@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");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:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/fraunces-italic-latin.woff2) format("woff2");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:JetBrains Mono Fallback;src:local("Menlo");size-adjust:99.65%;ascent-override:102.36%;descent-override:30.11%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback;src:local("Courier New");size-adjust:99.98%;ascent-override:102.02%;descent-override:30.01%;line-gap-override:0%}@font-face{font-family:Fraunces Fallback;font-style:italic;src:local("Georgia Italic"),local("Georgia-Italic");size-adjust:115.02%;ascent-override:85.03%;descent-override:22.17%;line-gap-override:0%}:root{--font-mono: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, "Cascadia Code", "Fira Code", monospace;--font-serif: "Fraunces", "Fraunces Fallback", Georgia, "Times New Roman", serif;--bg: #161614;--bg-surface: #1e1e1b;--bg-elevated: #252520;--bg-deep: #0e0e0d;--sage: #8aad6a;--sage-dim: rgba(138, 173, 106, .12);--sage-border: rgba(138, 173, 106, .35);--sage-glow: rgba(138, 173, 106, .25);--sage-whisper: rgba(138, 173, 106, .04);--text: #e6e4db;--text-muted: #9e9b90;--text-dim: #6a6860;--border: #3a3935;--border-hover: #4a4944;--info: #4a90cc;--info-dim: rgba(74, 144, 204, .1);--warning: #cc6b4a;--warning-dim: rgba(204, 107, 74, .1);--error: #c45555;--overlay: rgba(8, 8, 7, .86);--scanline: rgba(0, 0, 0, .025);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .5);--glitch-sage: color-mix(in srgb, var(--sage) 15%, transparent);--glitch-red: rgba(180, 40, 40, .1);--z-overlay: 10;--z-skip: 11;--z-bar: 20;--z-menu: 30;--z-modal: 50;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--ease-default: .15s ease;--ease-slow: .3s ease;--glow-sage: 0 0 6px var(--sage-glow);--fs-10: clamp(10px, .1829vw + 7.9878px, 11.5px);--fs-11: clamp(11px, .2012vw + 8.7866px, 12.65px);--fs-12: clamp(12px, .2195vw + 9.5854px, 13.8px);--fs-13: clamp(13px, .2378vw + 10.3842px, 14.95px);--fs-14: clamp(14px, .2561vw + 11.1829px, 16.1px);--pad-sec-y: clamp(1.5rem, 1.1vw + 1.1rem, 2.25rem);--pad-sec-x: clamp(1.25rem, 2.582vw - 1.58px, 3rem);--measure: 90ch}*,*:before,*:after,::backdrop{box-sizing:border-box;margin:0;padding:0;border:0 solid}html{color-scheme:dark;scrollbar-color:var(--border) var(--bg-deep);scroll-behavior:smooth;scrollbar-gutter:stable;-webkit-text-size-adjust:100%;tab-size:4;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}small{font-size:80%}code,kbd,samp,pre{font-family:var(--font-mono);font-size:1em}ol,ul,menu{list-style:none}summary{display:list-item}hr{height:0;color:inherit;border-top-width:1px}img,svg,video,canvas,iframe{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::placeholder{opacity:1;color:color-mix(in oklab,currentcolor 50%,transparent)}textarea{resize:vertical}[hidden]:where(:not([hidden=until-found])){display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{font-family:var(--font-mono);background:var(--bg-deep);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65;font-size:var(--fs-13)}body:has(dialog[open]){overflow:hidden}::selection{background:var(--sage-dim);color:var(--sage)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.sec{padding:var(--pad-sec-y) var(--pad-sec-x);border-bottom:.5px solid var(--border);opacity:0}.sec.visible{animation:fadeSlideUp .5s forwards}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes nameReveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes slideRight{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes dotPulse{0%{transform:scale(1);opacity:.9}to{transform:scale(2.4);opacity:0}}@keyframes glitch1{0%,90%,to{clip-path:none;transform:none}92%{clip-path:polygon(0 20%,100% 20%,100% 35%,0 35%);transform:translate(-3px)}94%{clip-path:polygon(0 60%,100% 60%,100% 75%,0 75%);transform:translate(3px)}96%{clip-path:none;transform:none}}@keyframes glitch2{0%,91%,to{clip-path:none;transform:none}93%{clip-path:polygon(0 40%,100% 40%,100% 55%,0 55%);transform:translate(4px)}95%{clip-path:polygon(0 70%,100% 70%,100% 80%,0 80%);transform:translate(-4px)}97%{clip-path:none;transform:none}}.chip{display:inline-block;font-size:var(--fs-10);line-height:1.5;padding:2px 6px;border:.5px solid var(--border);color:var(--text-dim);white-space:nowrap}.chip--accent{border-color:var(--sage-border);color:var(--sage);background:var(--sage-dim)}.bracket-link{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-muted);letter-spacing:.02em;text-decoration:none;background:none;border:none;padding:0;cursor:pointer;transition:color var(--ease-default)}.bracket-link:before{content:"[";color:var(--sage);margin-right:3px}.bracket-link:after{content:"\2197]";color:var(--sage);margin-left:3px}.bracket-link:hover,.bracket-link:focus-visible{color:var(--sage)}@media print{:root{--bg: #fff;--bg-deep: #fff;--bg-surface: #fff;--bg-elevated: #fff;--text: #000;--text-muted: #222;--text-dim: #444;--border: #999;--border-hover: #999;--sage: #3f6a2a;--sage-dim: transparent;--sage-border: #3f6a2a;--sage-glow: transparent;--sage-whisper: transparent;--glow-sage: none}html{scroll-behavior:auto}body{background:#fff!important;color:#000}.outer{padding:0!important;min-height:0!important}.shell-wrapper{max-width:none!important}.portfolio-shell{border:0!important}.scanlines,.skip-link,app-keyboard-hint,.typewriter,.cursor-blink,.g-ov,.lb-overlay{display:none!important}.hero-name:before,.hero-name:after{display:none!important}.nav,.sec,.hero-pre,.hero-name,.badge,.hero-langs,.bio-prompt,.bio-line,.exp-item,.testimonial{opacity:1!important;transform:none!important;animation:none!important}.sec,.exp-item,.g-tile{break-inside:avoid}.strip{flex-wrap:wrap;overflow:visible!important}.bracket-link:after{content:"] " attr(href)!important;font-size:.85em;color:#444!important}.c-val a:after{content:" (" attr(href) ")";font-size:.85em;color:#444}}
