:root{--bg:#000;--bg-soft:#050505;--panel:#0a0a0a;--fg:#fff;--on-fg:#000;--muted:#8b8b8b;--dim:#4a4a4a;--line:#242424;--line-hi:#3a3a3a;--signal:#fff;--font-display:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--font-body:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);color-scheme:dark}[data-theme=light]{--bg:#fff;--bg-soft:#f1f1f1;--panel:#fff;--fg:#000;--on-fg:#fff;--muted:#5c5c5c;--dim:#a3a3a3;--line:#e5e5e5;--line-hi:#161616;--signal:#000;color-scheme:light}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#000;background:var(--bg);height:100%}body{color:#fff;color:var(--fg);font-family:var(--font-body);line-height:1.5;min-height:100%;overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}ol,ul{list-style:none}::selection{background:#fff;background:var(--signal);color:#000;color:var(--bg)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#000;background:var(--bg)}::-webkit-scrollbar-thumb{background:#242424;background:var(--line);border-radius:3px}.frame{inset:clamp(12px,2.5vw,32px);overflow:hidden;position:fixed;z-index:500}.frame-viewport{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;height:100%;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;width:100%}.frame-viewport::-webkit-scrollbar{display:none}.frame-viewport--home{overflow-y:auto}.frame-border{border:1px solid #242424;border:1px solid var(--line);inset:0;pointer-events:none;position:absolute;z-index:10}.frame-border:before{border-color:#fff;border-color:var(--fg);border-style:solid;border-width:2px 0 0 2px;left:-1px;top:-1px}.frame-border:after,.frame-border:before{content:"";height:clamp(10px,1.5vw,18px);position:absolute;width:clamp(10px,1.5vw,18px)}.frame-border:after{border-color:#fff;border-color:var(--fg);border-style:solid;border-width:0 2px 2px 0;bottom:-1px;right:-1px}.site-nav{align-items:center;backdrop-filter:none;-webkit-backdrop-filter:none;background:#0000;border:2px solid #ffffff1f;border-radius:clamp(8px,1.2vw,16px);box-sizing:border-box;display:flex;height:42px;justify-content:space-between;left:clamp(12px,1.5vw,20px);padding:0 clamp(14px,2vw,22px);pointer-events:auto;position:absolute;right:clamp(12px,1.5vw,20px);top:clamp(8px,1vw,14px);transition:background .45s ease,border-color .45s ease,-webkit-backdrop-filter .45s ease;transition:background .45s ease,border-color .45s ease,backdrop-filter .45s ease;transition:background .45s ease,border-color .45s ease,backdrop-filter .45s ease,-webkit-backdrop-filter .45s ease;z-index:9000}.site-nav.is-scrolled{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#000000e0;border-color:#fff3}.nav-left{align-items:center;display:flex;flex:1 1;min-width:0}.nav-left-text{color:#ffffff8c;display:inline-block;font-family:var(--font-body);font-size:.65rem;font-weight:800;letter-spacing:.16em;min-width:9ch;text-decoration:none;text-transform:uppercase;transition:color .25s;white-space:nowrap}a.nav-left-text{cursor:pointer}a.nav-left-text:hover{color:#fff;color:var(--fg)}.nav-icons{align-items:center;display:flex;gap:24px;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%)}.nav-icon{color:#ffffff8c;flex-shrink:0;height:18px;opacity:1;pointer-events:auto;width:18px}.nav-icon svg{display:block;height:100%;opacity:.55;transition:opacity .25s;width:100%}.nav-icon:hover svg{opacity:1}.nav-links{align-items:center;display:flex;flex:1 1;gap:24px;justify-content:flex-end}.nav-link{color:#ffffff6b;font-family:var(--font-body);font-size:.6rem;font-weight:800;letter-spacing:.14em;position:relative;text-decoration:none;text-transform:uppercase;transition:color .25s;white-space:nowrap}.nav-link:after{background:currentColor;bottom:-4px;content:"";height:1.5px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.22,1,.36,1)}.nav-link:hover{color:#fff;color:var(--fg)}.nav-link:hover:after{transform:scaleX(1)}.nav-link.is-active{color:#fff;color:var(--fg)}.nav-link.is-active:after{opacity:.55;transform:scaleX(1)}.nav-burger{background:none;border:none;cursor:pointer;display:none;flex-shrink:0;height:22px;padding:0;pointer-events:auto;position:relative;width:22px}.hamburger-line{border-radius:999px;height:2px;left:0;overflow:hidden;position:absolute;right:0;transition:transform .35s cubic-bezier(.25,.46,.45,.94),opacity .25s ease}.hamburger-line--top{top:3px}.hamburger-line--mid{top:10px}.hamburger-line--bot{top:17px}.hamburger-bar{animation:drawBar .2s cubic-bezier(.25,.46,.45,.94) forwards;background:color-mix(in srgb,#fff 92%,#0000);background:color-mix(in srgb,var(--fg) 92%,#0000);border-radius:inherit;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);display:block;height:100%;will-change:clip-path}.hamburger-line--mid .hamburger-bar{animation-delay:70ms}.hamburger-line--bot .hamburger-bar{animation-delay:.14s}@keyframes drawBar{0%{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}}.hamburger-line:after{animation:scanMove .2s linear forwards;background:linear-gradient(90deg,#0000,color-mix(in srgb,#fff 12%,#0000) 15%,color-mix(in srgb,#fff 65%,#0000) 35%,#fff 50%,color-mix(in srgb,#fff 65%,#0000) 65%,color-mix(in srgb,#fff 12%,#0000) 85%,#0000);background:linear-gradient(90deg,#0000 0,color-mix(in srgb,var(--fg) 12%,#0000) 15%,color-mix(in srgb,var(--fg) 65%,#0000) 35%,var(--fg) 50%,color-mix(in srgb,var(--fg) 65%,#0000) 65%,color-mix(in srgb,var(--fg) 12%,#0000) 85%,#0000 100%);bottom:-6px;content:"";filter:blur(2.5px);left:-20px;pointer-events:none;position:absolute;top:-6px;width:16px;will-change:left}.hamburger-line--mid:after{animation-delay:70ms}.hamburger-line--bot:after{animation-delay:.14s}@keyframes scanMove{0%{left:-20px}to{left:calc(100% + 4px)}}.nav-burger.is-open .hamburger-line--top{transform:translateY(7px) rotate(45deg)}.nav-burger.is-open .hamburger-line--mid{opacity:0}.nav-burger.is-open .hamburger-line--bot{transform:translateY(-7px) rotate(-45deg)}.nav-burger.is-open .hamburger-line:after{opacity:0;transition:opacity .15s ease}.mob-socials{bottom:clamp(32px,6vh,60px);gap:24px;left:50%;position:absolute;transform:translateX(-50%);z-index:10}.mob-social-link,.mob-socials{align-items:center;display:flex}.mob-social-link{border:1px solid #ffffff26;border-radius:50%;color:#ffffff80;height:40px;justify-content:center;text-decoration:none;transition:color .25s ease,border-color .25s ease;width:40px}.mob-social-link:hover{color:#fff;color:var(--fg)}@media (max-width:768px){.site-nav{border-radius:10px;border-width:1.5px;height:40px;left:clamp(8px,1vw,14px);padding:0 12px;right:clamp(8px,1vw,14px);top:clamp(6px,.8vw,10px)}.nav-icons{display:none}.nav-left-text{font-size:.6rem;letter-spacing:.11em;min-width:0}.nav-links{display:none}.nav-burger{display:flex}}@media (max-width:400px){.site-nav{left:6px;padding:0 10px;right:6px}}.mob-menu-overlay{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#000000eb;display:flex;inset:0;justify-content:center;pointer-events:auto;position:fixed;z-index:9990}.mob-menu-panel{align-items:center;display:flex;flex-direction:column;gap:28px;max-width:320px;padding:40px 24px;width:100%}.mob-menu-link{color:#8b8b8b;color:var(--muted);font-family:var(--font-display);font-size:clamp(2rem,9vw,4rem);letter-spacing:.06em;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.mob-menu-link.is-active,.mob-menu-link:hover{color:#fff;color:var(--fg)}.frame-info{bottom:clamp(6px,.8vw,12px);font-family:var(--font-body);font-size:clamp(.4rem,.5vw,.55rem);font-weight:500;left:50%;letter-spacing:.1em;opacity:.4;pointer-events:none;position:absolute;text-transform:uppercase;transform:translateX(-50%);z-index:11}.grain-overlay{display:none}.grain-overlay svg{height:100%;width:100%}.ambient-blob{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.ambient-blob-inner{background:radial-gradient(circle,#fff,#0000 70%);background:radial-gradient(circle,var(--signal),#0000 70%);border-radius:50%;filter:blur(120px);height:60vw;left:20%;opacity:.08;position:absolute;top:20%;width:60vw}.tl-overlay{align-items:center;background:#000;background:var(--bg);display:flex;inset:0;justify-content:center;overflow:hidden;position:fixed;will-change:transform;z-index:9997}.tl-border{border:1px solid #ffffff26;inset:clamp(12px,2.5vw,32px);pointer-events:none;position:absolute;z-index:10}.tl-corner{height:clamp(10px,1.5vw,18px);position:absolute;width:clamp(10px,1.5vw,18px);z-index:11}.tl-corner--tl{border-left:2px solid #ffffff59;border-top:2px solid #ffffff59;left:clamp(11px,2.4vw,31px);top:clamp(11px,2.4vw,31px)}.tl-corner--br{border-bottom:2px solid #ffffff59;border-right:2px solid #ffffff59;bottom:clamp(11px,2.4vw,31px);right:clamp(11px,2.4vw,31px)}.tl-grain{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23a)' d='M0 0h200v200H0z'/%3E%3C/svg%3E");background-size:100px 100px;mix-blend-mode:overlay;opacity:.025;z-index:4}.tl-grain,.tl-scanlines{inset:0;pointer-events:none;position:absolute}.tl-scanlines{background:repeating-linear-gradient(180deg,#0000 0,#0000 3px,hsla(0,0%,100%,.015) 0,hsla(0,0%,100%,.015) 4px);z-index:3}.tl-scroll{inset:0;justify-content:center;overflow:hidden;position:absolute}.tl-scroll,.tl-track{align-items:center;display:flex}.tl-track{flex-direction:column;gap:0;will-change:transform,opacity}.tl-line{color:#fff;color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display);font-size:clamp(4rem,14vw,16vw);font-weight:700;letter-spacing:-.025em;line-height:.85;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}@media (min-width:481px) and (max-width:1024px){.tl-line{font-size:clamp(3.5rem,16vw,18vw)}}.tx-overlay{background:#000;background:var(--bg);inset:0;overflow:hidden;position:fixed;z-index:9997}.tx-scanlines{background:repeating-linear-gradient(180deg,#0000 0,#0000 3px,#0000000a 0,#0000000a 4px);inset:0;pointer-events:none;position:absolute;z-index:10}.tx-curtain{border-bottom:1px solid color-mix(in srgb,#fff 8%,#0000);border-bottom:1px solid color-mix(in srgb,var(--fg) 8%,#0000);inset:0;position:absolute;z-index:1}.tx-text{pointer-events:none;z-index:5}.tx-text,.tx-words{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute}.tx-words{overflow:hidden;padding:.15em 0}.tx-words--o .tx-word{-webkit-text-stroke:1.5px #ffffff26;color:#0000}.tx-words--f .tx-word{color:#fff;color:var(--fg)}.tx-word{display:block;flex-shrink:0;font-size:clamp(3.5rem,11vw,13rem);font-weight:900;letter-spacing:-.01em;line-height:.92;text-align:center;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.boot-overlay{align-items:center;display:flex;flex-direction:column;gap:clamp(12px,2vh,24px);inset:0;justify-content:center;position:fixed;transform-origin:top;z-index:9998}.boot-status{color:#8b8b8b;color:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:clamp(.7rem,.9vw,.9rem);font-weight:600;letter-spacing:.18em;text-transform:uppercase}.boot-percent{color:#fff;color:var(--signal);font-family:var(--font-display);font-size:clamp(5rem,20vw,14rem);letter-spacing:-.03em;line-height:.85}.boot-bar-wrap{background:#242424;background:var(--line);height:3px;margin-top:8px;overflow:hidden;width:clamp(180px,30vw,400px)}.boot-bar-fill{background:#fff;background:var(--fg);height:100%;transition:width .1s linear;width:0}.boot-skip{animation:bootPulse 2s ease-in-out infinite;bottom:clamp(40px,6vh,80px);color:#8b8b8b;color:var(--muted);font-family:var(--font-body);font-size:clamp(.5rem,.6vw,.65rem);font-weight:500;letter-spacing:.12em;opacity:.5;position:absolute;text-transform:uppercase}@keyframes bootPulse{0%,to{opacity:.5}50%{opacity:.2}}.page{align-items:center;display:flex;flex-direction:column;min-height:100%;padding:clamp(60px,8vh,90px) clamp(20px,3vw,48px) clamp(80px,10vh,110px);position:relative;z-index:1}.page-inner{display:flex;flex:1 1;flex-direction:column;max-width:1200px;width:100%}.page-inner>:first-child{flex:1 1}.chapter-nav{align-items:center;bottom:clamp(10px,1.2vw,20px);color:#8b8b8b;color:var(--muted);display:flex;font-family:var(--font-body);font-size:clamp(.5rem,.6vw,.65rem);font-weight:700;gap:8px;letter-spacing:.1em;pointer-events:auto;position:absolute;text-decoration:none;text-transform:uppercase;transition:color .3s ease;z-index:15}.chapter-nav:hover{color:#fff;color:var(--fg)}.chapter-nav--prev{left:clamp(20px,3.5vw,48px)}.chapter-nav--next{right:clamp(20px,3.5vw,48px)}.chapter-nav .arrow{display:inline-block;font-size:1.1em;transition:transform .3s cubic-bezier(.16,1,.3,1);transition:transform .3s var(--ease-out-expo)}.chapter-nav:hover .arrow--right{transform:translateX(4px)}.chapter-nav:hover .arrow--left{transform:translateX(-4px)}.chapter-nav .number{opacity:.4}.display-hero{font-size:clamp(3rem,12vw,10rem);line-height:.85}.display-hero,.display-large{color:#fff;color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase}.display-large{font-size:clamp(2.2rem,6vw,5rem);line-height:.9}.display-medium{font-size:clamp(1.4rem,3.5vw,2.8rem);letter-spacing:-.01em;line-height:.95}.display-medium,.section-title{color:#fff;color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display);text-transform:uppercase}.section-title{font-size:clamp(1.8rem,5vw,4rem);letter-spacing:-.02em;line-height:.9;margin-bottom:.5em}.section-number{color:#fff;color:var(--signal);display:block;font-family:var(--font-display);font-size:clamp(.75rem,.9vw,1rem);letter-spacing:.05em;margin-bottom:.5em}.body-text{color:#8b8b8b;color:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:clamp(.9rem,1.1vw,1.1rem);line-height:1.7;max-width:65ch}.body-text strong,.link-arrow{color:#fff;color:var(--fg);font-weight:600}.link-arrow{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.85rem;gap:6px;letter-spacing:.05em;padding:0;transition:gap .3s cubic-bezier(.16,1,.3,1);transition:gap .3s var(--ease-out-expo)}.link-arrow:hover{gap:10px}.link-arrow .arrow-glyph{display:inline-block;transition:transform .3s cubic-bezier(.16,1,.3,1);transition:transform .3s var(--ease-out-expo)}.link-arrow:hover .arrow-glyph{transform:translateX(2px) translateY(-2px)}.link-underline{color:#fff;color:var(--fg);cursor:pointer;position:relative;text-decoration:none}.link-underline:after{background:#fff;background:var(--fg);bottom:-2px;content:"";height:1px;left:0;position:absolute;transition:width .35s cubic-bezier(.16,1,.3,1);transition:width .35s var(--ease-out-expo);width:0}.link-underline:hover:after{width:100%}.hero{display:flex;flex-direction:column;justify-content:center;padding:10px 0;position:relative}.hero-name{color:#fff;color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display);font-size:clamp(3rem,12vw,10rem);letter-spacing:-.03em;line-height:.85;margin-bottom:.1em;text-transform:uppercase}.hero-role{color:#8b8b8b;color:var(--muted);font-size:clamp(1rem,1.4vw,1.4rem);font-weight:500;letter-spacing:.08em;margin-bottom:.6em}.hero-role,.hero-tagline{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body)}.hero-tagline{font-size:clamp(.85rem,1.1vw,1.1rem);line-height:1.6;margin-bottom:2em;max-width:min(50ch,100%)}.portrait-wrap{border:1px solid #242424;border:1px solid var(--line);flex-shrink:0;height:clamp(180px,20vw,280px);overflow:hidden;position:relative;width:clamp(180px,20vw,280px);will-change:transform,clip-path}.portrait-wrap.is-black,.portrait-wrap.is-settled{background:#000;background:var(--bg)}.portrait-photo{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.sweep-line{animation:sweepDown .7s ease-in-out forwards;background:#ffffff40;height:3px;left:-4px;pointer-events:none;position:absolute;right:-4px;z-index:20}@keyframes sweepDown{0%{top:-4px}to{top:calc(100% + 4px)}}.settled-image{transform:translateZ(0)}.crt-scanlines{background:repeating-linear-gradient(180deg,#0000 0,#0000 2px,#0000001f 0,#0000001f 4px);transition:opacity .15s ease;z-index:10}.crt-noise,.crt-scanlines{border-radius:inherit;inset:0;pointer-events:none;position:absolute}.crt-noise{animation:crtNoiseScramble .08s steps(2) infinite;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23a)' d='M0 0h120v120H0z'/%3E%3C/svg%3E");background-size:60px 60px;mix-blend-mode:overlay;transition:opacity .1s ease;z-index:8}@keyframes crtNoiseScramble{0%{background-position:0 0}25%{background-position:-3px 5px}50%{background-position:4px -2px}75%{background-position:-2px 4px}to{background-position:3px -3px}}.crt-rgb{pointer-events:none;z-index:6}.crt-rgb,.crt-rgb-channel{border-radius:inherit;inset:0;mix-blend-mode:screen;position:absolute}.crt-rgb-channel{height:100%;object-fit:cover;opacity:.3;width:100%}.crt-rgb--r{filter:brightness(0) sepia(1) hue-rotate(0deg) saturate(8) contrast(1.5)}.crt-rgb--g{filter:brightness(0) sepia(1) hue-rotate(90deg) saturate(8) contrast(1.5)}.crt-rgb--b{filter:brightness(0) sepia(1) hue-rotate(240deg) saturate(8) contrast(1.5)}.crt-tear{background:#ffffff40;mix-blend-mode:overlay;pointer-events:none;position:absolute;z-index:5}.crt-sync-slip{border-bottom:2px solid #0000002e;border-top:2px solid #ffffff14;will-change:transform;z-index:4}.crt-dots,.crt-sync-slip{border-radius:inherit;inset:0;pointer-events:none;position:absolute}.crt-dots{z-index:9}.crt-dot{border-radius:50%;pointer-events:none;position:absolute}@media (prefers-reduced-motion:reduce){.portrait-wrap.is-black{background:#000;background:var(--bg)}.crt-dots,.crt-noise,.crt-rgb,.crt-scanlines,.crt-sync-slip,.crt-tear{display:none!important}}.hero-layout{grid-gap:clamp(32px,5vw,80px);align-items:center;display:grid;gap:clamp(32px,5vw,80px);grid-template-columns:1fr auto}.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}.hero-cta{align-items:center;background:#0000;border:1px solid #fff;border:1px solid var(--fg);color:#fff;color:var(--fg);cursor:pointer;display:inline-flex;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.85rem;font-weight:600;gap:10px;justify-content:center;letter-spacing:.08em;line-height:1;min-height:48px;padding:14px 32px;text-decoration:none;text-transform:uppercase;transition:all .3s cubic-bezier(.16,1,.3,1);transition:all .3s var(--ease-out-expo);white-space:nowrap}.hero-cta:hover{background:#fff;background:var(--fg);color:#000;color:var(--bg)}.hero-cta--signal{border-color:#fff;border-color:var(--fg);color:var(--bg)}.hero-cta--signal:hover{background:#0000}.hero-socials{display:flex;gap:12px;margin-top:2em}.hero-social-link{align-items:center;border:1px solid #242424;border:1px solid var(--line);border-radius:50%;color:#8b8b8b;color:var(--muted);display:flex;height:40px;justify-content:center;transition:all .3s cubic-bezier(.16,1,.3,1);transition:all .3s var(--ease-out-expo);width:40px}.hero-social-link:hover{color:#fff;color:var(--fg);transform:translateY(-2px)}.work-intro{color:#8b8b8b;color:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:clamp(.9rem,1.3vw,1.3rem);line-height:1.7;margin-bottom:3em;max-width:min(60ch,100%)}.projects-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));margin-bottom:4em}.project-card{background:#0000;border:1px solid #242424;border:1px solid var(--line);border-radius:0;color:inherit;display:block;min-width:0;overflow:hidden;text-decoration:none;transition:all .4s cubic-bezier(.16,1,.3,1);transition:all .4s var(--ease-out-expo)}.project-card:hover{transform:translateY(-4px)}.project-image-wrap{aspect-ratio:16/10;background:color-mix(in srgb,#fff 3%,#0000);background:color-mix(in srgb,var(--fg) 3%,#0000);overflow:hidden;width:100%}.project-image{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1);transition:transform .6s var(--ease-out-expo);width:100%}.project-card:hover .project-image{transform:scale(1.05)}.project-content{padding:20px}.project-tag{color:var(--signal);font-family:var(--font-body);font-size:.65rem;font-weight:600;letter-spacing:.1em;margin-bottom:4px;text-transform:uppercase}.project-name{color:#fff;color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.8rem);letter-spacing:-.01em;line-height:.95;margin-bottom:8px;text-transform:uppercase}.project-desc{color:#8b8b8b;color:var(--muted);font-size:.85rem;line-height:1.6;margin-bottom:12px}.project-footer{align-items:center;display:flex;justify-content:space-between}.project-link{align-items:center;color:#8b8b8b;color:var(--muted);display:inline-flex;font-size:.75rem;font-weight:600;gap:6px;letter-spacing:.05em;transition:color .3s ease}.project-card:hover .project-link{color:#fff;color:var(--fg)}.skills-section{margin-bottom:4em}.skills-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.skill-category{border:1px solid #242424;border:1px solid var(--line);min-width:0;padding:16px}.skill-category-head{color:#fff;color:var(--signal);font-family:var(--font-body);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.skill-items{display:flex;flex-wrap:wrap;gap:6px}.skill-item{border:1px solid #242424;border:1px solid var(--line);color:#8b8b8b;color:var(--muted);font-size:.75rem;padding:4px 10px;transition:all .2s ease}.skill-item:hover{color:#fff;color:var(--fg)}.timeline{margin-bottom:4em;max-width:600px}.timeline-item{border-left:1px solid #242424;border-left:1px solid var(--line);padding-bottom:28px;padding-left:28px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{background:#fff;background:var(--fg);border-radius:50%;height:9px;left:-5px;position:absolute;top:4px;width:9px}.timeline-year{color:var(--signal);display:block;font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-bottom:4px}.timeline-title{color:#fff;color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display);font-size:clamp(1rem,1.5vw,1.4rem);letter-spacing:-.01em;line-height:.95;margin-bottom:4px;text-transform:uppercase}.timeline-sub{font-size:.85rem;margin-bottom:4px}.timeline-grade,.timeline-sub{color:#8b8b8b;color:var(--muted)}.timeline-grade{display:inline-block;font-size:.65rem;letter-spacing:.05em;padding:2px 8px}.resume-link,.timeline-grade{border:1px solid #242424;border:1px solid var(--line);font-weight:600}.resume-link{align-items:center;color:#fff;color:var(--fg);display:inline-flex;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.8rem;gap:8px;letter-spacing:.08em;padding:12px 28px;text-decoration:none;text-transform:uppercase;transition:all .3s cubic-bezier(.16,1,.3,1);transition:all .3s var(--ease-out-expo)}.resume-link:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--bg)}.work-cta{border-top:1px solid #242424;border-top:1px solid var(--line);margin-top:4em;padding:3em 0}.gallery-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}.gallery-item{aspect-ratio:4/3;border:1px solid #242424;border:1px solid var(--line);cursor:pointer;min-width:0;overflow:hidden;position:relative;transition:border-color .3s ease}.gallery-item:hover{border-color:#fff;border-color:var(--fg)}.gallery-item img{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1);transition:transform .6s var(--ease-out-expo);width:100%}.gallery-item:hover img{transform:scale(1.05)}.gallery-item-overlay{align-items:center;background:#000000b3;display:flex;inset:0;justify-content:center;opacity:0;position:absolute;transition:opacity .3s ease}.gallery-item:hover .gallery-item-overlay{opacity:1}.gallery-item-ref{color:#fff;color:var(--fg);font-family:var(--font-body);font-size:.65rem;font-weight:600;letter-spacing:.08em}.lightbox-backdrop{align-items:center;background:#000000f2;display:flex;inset:0;justify-content:center;padding:clamp(40px,6vw,80px);position:fixed;z-index:9999}.lightbox-content{align-items:center;display:flex;flex-direction:column;max-height:85vh;max-width:90vw;position:relative}.lightbox-image{border:1px solid #242424;border:1px solid var(--line);max-height:75vh;max-width:100%;object-fit:contain}.lightbox-info{align-items:center;display:flex;justify-content:space-between;margin-top:16px;width:100%}.lightbox-ref{color:#8b8b8b;color:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.08em}.lightbox-controls{align-items:center;display:flex;gap:12px}.lightbox-btn{background:none;border:1px solid #242424;border:1px solid var(--line);color:#fff;color:var(--fg);cursor:pointer;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:8px 16px;text-transform:uppercase;transition:all .2s ease}.lightbox-btn:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--bg)}.lightbox-close{background:none;border:none;color:#8b8b8b;color:var(--muted);cursor:pointer;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.08em;position:absolute;right:0;text-transform:uppercase;top:-40px;transition:color .2s ease}.lightbox-close:hover{color:#fff;color:var(--fg)}.contact-layout{grid-gap:48px;display:grid;gap:48px;grid-template-columns:1fr 1fr}.contact-text{color:#8b8b8b;color:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:clamp(.9rem,1.2vw,1.2rem);line-height:1.7;margin-bottom:2em;max-width:min(45ch,100%)}.contact-links{display:flex;flex-direction:column;gap:16px}.contact-link{align-items:center;border:1px solid #242424;border:1px solid var(--line);color:inherit;display:flex;gap:12px;padding:16px;text-decoration:none;transition:border-color .3s ease}.contact-link:hover{border-color:#fff;border-color:var(--fg)}.contact-link-label{color:#fff;color:var(--signal);display:block;font-size:.6rem;font-weight:600;letter-spacing:.1em;margin-bottom:2px;text-transform:uppercase}.contact-link-value{color:#fff;color:var(--fg);font-size:.85rem}.contact-form{gap:20px}.contact-form,.form-field{display:flex;flex-direction:column}.form-field{gap:6px}.form-field label{color:#8b8b8b;color:var(--muted);font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.form-field input,.form-field textarea{background:#0000;border:1px solid #242424;border:1px solid var(--line);color:#fff;color:var(--fg);font-family:var(--font-body);font-size:.9rem;max-width:100%;outline:none;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-field textarea{min-height:120px;resize:vertical}.form-submit{align-items:center;align-self:flex-start;background:#0000;border:1px solid #fff;border:1px solid var(--fg);color:#fff;color:var(--fg);cursor:pointer;display:inline-flex;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-body);font-size:.8rem;font-weight:600;gap:8px;letter-spacing:.08em;padding:12px 28px;text-transform:uppercase;transition:all .3s cubic-bezier(.16,1,.3,1);transition:all .3s var(--ease-out-expo)}.form-submit:hover{background:#fff;background:var(--fg);color:#000;color:var(--bg)}.form-submit:disabled{opacity:.5;pointer-events:none}.form-error{border:1px solid #fff;border:1px solid var(--signal);color:#fff;color:var(--signal);font-size:.75rem;font-weight:600;letter-spacing:.05em;line-height:1.5;padding:10px 14px}.contact-sent{flex-direction:column;padding:60px 20px;text-align:center}.contact-sent,.contact-sent-icon{align-items:center;display:flex;justify-content:center}.contact-sent-icon{border:1px solid #242424;border:1px solid var(--line);color:#fff;color:var(--fg);height:48px;margin-bottom:1.5em;width:48px}.footer{align-items:center;border-top:1px solid #242424;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:auto;padding:28px 0 12px;width:100%}.footer-city{font-size:.6rem;font-weight:500}.footer-city,.footer-copy{color:#8b8b8b;color:var(--muted)}.footer-copy{font-size:.55rem;opacity:.5}@media (max-width:360px){:root{--frame-inset:6px}.frame{inset:var(--frame-inset)}.page{padding:40px 12px 64px}.hero{padding:8px 0}.hero-layout{gap:12px;grid-template-columns:1fr;text-align:center}.hero-portrait-col{order:-1}.hero-ctas,.hero-socials{justify-content:center}.portrait-wrap{margin:0 auto}.hero-name{font-size:clamp(2rem,14vw,2.8rem)}.hero-tagline{font-size:.8rem;margin-bottom:.8em}.hero-cta{font-size:.65rem;gap:6px;padding:8px 14px}.portrait-wrap{height:100px;width:100px}.section-title{font-size:clamp(1.4rem,10vw,1.8rem)}.project-card{min-width:0}.project-content{padding:14px}.contact-layout,.gallery-grid,.skills-grid{grid-template-columns:1fr}.contact-layout{gap:24px}.contact-link{gap:8px;padding:12px}.contact-link-value{font-size:.75rem;word-break:break-all}.chapter-nav{font-size:.4rem}.chapter-nav .number{display:none}.chapter-nav .arrow{font-size:.7rem}.frame-info{bottom:4px;font-size:.35rem}}@media (min-width:361px) and (max-width:480px){.page{padding:48px 14px 70px}.hero{padding:12px 0}.hero-layout{gap:16px;grid-template-columns:1fr;text-align:center}.hero-portrait-col{order:-1}.hero-ctas,.hero-socials{justify-content:center}.portrait-wrap{margin:0 auto}.contact-layout{gap:28px;grid-template-columns:1fr}.contact-link{padding:12px}.contact-link-value{font-size:.78rem;word-break:break-all}.hero-name{font-size:clamp(2.4rem,13vw,3.5rem)}.portrait-wrap{height:140px;width:140px}.hero-cta{font-size:.75rem;padding:10px 20px}.section-title{font-size:clamp(1.6rem,9vw,2.2rem)}.gallery-grid,.projects-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(2,1fr)}.chapter-nav .number{display:none}}@media (min-width:481px) and (max-width:640px){.page{padding:52px 18px 76px}.hero-name{font-size:clamp(3rem,12vw,4.5rem)}.hero-layout{grid-template-columns:1fr;text-align:center}.hero-portrait-col{order:-1}.hero-ctas{justify-content:center}.portrait-wrap{height:160px;margin:0 auto;width:160px}.hero-tagline{margin-left:auto;margin-right:auto}.hero-cta,.hero-socials{justify-content:center}.projects-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.contact-layout{gap:32px;grid-template-columns:1fr}.contact-link{padding:14px}.contact-link-value{word-break:break-all}.chapter-nav .number{display:none}}@media (min-width:641px) and (max-width:768px){.page{padding:48px 18px 72px}.hero-layout{gap:clamp(16px,3vh,32px);grid-template-columns:1fr;text-align:center}.hero-portrait-col{order:-1}.hero-ctas{justify-content:center}.portrait-wrap{height:clamp(140px,22vw,180px);margin:0 auto;width:clamp(140px,22vw,180px)}.hero-tagline{margin-left:auto;margin-right:auto}.hero-cta,.hero-socials{justify-content:center}.hero-cta{font-size:.75rem;padding:10px 20px}.projects-grid{gap:14px}.gallery-grid,.projects-grid{grid-template-columns:repeat(2,1fr)}.contact-layout{gap:32px;grid-template-columns:1fr}.chapter-nav .number{display:none}.skills-grid{grid-template-columns:repeat(3,1fr)}.footer{flex-direction:column;text-align:center}}@media (min-width:769px) and (max-width:1024px){.hero-layout{gap:clamp(24px,3vw,48px)}.hero-name{font-size:clamp(3.5rem,9vw,6rem)}.projects-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.portrait-wrap{height:clamp(140px,18vw,220px);width:clamp(140px,18vw,220px)}.footer{flex-direction:column;text-align:center}}@media (min-width:1025px) and (max-width:1280px){.hero-layout{gap:clamp(32px,4vw,60px)}.hero-name{font-size:clamp(4rem,8vw,7rem)}}@media (max-height:500px) and (orientation:landscape){.hero{padding:8px 0}.hero-layout{gap:20px;grid-template-columns:1fr auto}.portrait-wrap{height:100px;width:100px}.hero-name{font-size:clamp(1.6rem,6vw,2.8rem);margin-bottom:0}.hero-role{font-size:.7rem;margin-bottom:.2em}.hero-tagline{font-size:.7rem;margin-bottom:.8em}.hero-cta{font-size:.65rem;padding:8px 16px}.hero-socials{justify-content:center;margin-top:.8em}.hero-social-link{height:32px;width:32px}}@media (min-height:501px) and (max-height:700px) and (orientation:landscape){.hero{padding:16px 0}.portrait-wrap{height:130px;width:130px}.hero-name{font-size:clamp(2rem,7vw,3.5rem)}}@media (max-width:768px){.navbar-links{display:none}.navbar-burger{display:flex}.form-submit{justify-content:center;text-align:center;width:100%}}@media (min-width:1920px){.page-inner{max-width:1400px}.hero-name{font-size:clamp(6rem,7vw,12rem)}.section-title{font-size:clamp(2.5rem,3.5vw,5rem)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}}@media (min-width:2560px){.page-inner{max-width:1600px}.frame{inset:clamp(32px,3vw,48px)}.hero-name{font-size:clamp(8rem,6vw,14rem)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.ambient-blob,.boot-overlay,.grain-overlay{display:none}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}:focus-visible{outline:1px solid #fff;outline:1px solid var(--fg);outline-offset:3px}:focus:not(:focus-visible){outline:none}body{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);letter-spacing:-.01em}.frame,body{background:#000;background:var(--bg)}.frame{border-radius:2px}.frame-viewport{background:#000;background:var(--bg);overscroll-behavior-y:contain;touch-action:pan-y}.frame-viewport:before{content:"";display:block;height:0;position:-webkit-sticky;position:sticky;top:0;z-index:5}.frame:after{background:none;box-shadow:inset 0 0 120px color-mix(in srgb,#fff 10%,#0000);box-shadow:inset 0 0 120px color-mix(in srgb,var(--fg) 10%,#0000);content:"";inset:0;pointer-events:none;position:absolute;z-index:9}.body-text,.chapter-nav,.contact-text,.footer-city,.footer-copy,.form-field input,.form-field label,.form-field textarea,.hero-role,.hero-tagline,.nav-left-text,.nav-link,.project-desc,.skill-item,.timeline-sub,.work-intro{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.prompt:before{color:#fff;color:var(--fg);content:">$ ";font-weight:800}.comment-line{color:#4a4a4a;color:var(--dim)}.block-cursor{animation:blinkBlock 1.05s steps(1) infinite;background:#fff;background:var(--fg);display:inline-block;height:1.05em;margin-left:6px;vertical-align:text-bottom;width:.6em}@keyframes blinkBlock{0%,49%{opacity:1}50%,to{opacity:0}}.cursor-line:after{animation:blinkBlock 1.05s steps(1) infinite;content:"█";font-size:.9em;margin-left:6px}.site-nav{background:color-mix(in srgb,#000 92%,#0000);background:color-mix(in srgb,var(--bg) 92%,#0000);border:1px solid #3a3a3a;border:1px solid var(--line-hi);border-radius:6px;box-shadow:0 0 0 1px #000,4px 4px 0 color-mix(in srgb,#fff 8%,#0000);box-shadow:0 0 0 1px var(--bg),4px 4px 0 color-mix(in srgb,var(--fg) 8%,#0000);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.site-nav.is-scrolled{background:#000;background:var(--bg);border-color:#4a4a4a;border-color:var(--dim)}.nav-left-text{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.04em}.nav-left-text,.nav-left-text .user{color:#fff;color:var(--fg)}.nav-left-text .at,.nav-left-text:before{color:#4a4a4a;color:var(--dim)}.nav-left-text:before{content:"● ○ ○";font-size:.55rem;letter-spacing:.3em;margin-right:10px;vertical-align:middle}.nav-link{border:1px solid #0000;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.06em;padding:4px 8px;text-transform:lowercase}.nav-link:after{display:none}.nav-link.is-active,.nav-link:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--on-fg)}.hero-role{align-items:center;background:#000;background:var(--bg);border:1px solid #3a3a3a;border:1px solid var(--line-hi);color:#fff;color:var(--fg);display:inline-flex;font-size:.72rem;font-weight:700;gap:8px;letter-spacing:.14em;margin-bottom:1.1em;padding:6px 12px;text-transform:uppercase}.hero-role:before{animation:blinkBlock 1.4s steps(1) infinite;background:#fff;background:var(--fg);content:"";display:inline-block;height:7px;width:7px}.hero-name{position:relative;text-shadow:3px 3px 0 color-mix(in srgb,#fff 14%,#0000);text-shadow:3px 3px 0 color-mix(in srgb,var(--fg) 14%,#0000)}.hero-name:after{animation:blinkBlock 1.05s steps(1) infinite;content:"_";font-weight:400}.hero-tagline{border-left:2px solid #fff;border-left:2px solid var(--fg);color:#8b8b8b;color:var(--muted);font-size:.86rem;line-height:1.7;padding-left:14px}.hero-tagline:before{color:#4a4a4a;color:var(--dim);content:"// "}.term-status{color:#4a4a4a;color:var(--dim);display:flex;flex-wrap:wrap;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.64rem;gap:8px 16px;letter-spacing:.08em;margin-top:1.6em;text-transform:uppercase}.term-status b{color:#fff;color:var(--fg);font-weight:700}.form-submit,.hero-cta,.lightbox-btn,.resume-link{border:1px solid #fff;border:1px solid var(--fg);border-radius:0;box-shadow:4px 4px 0 #fff;box-shadow:4px 4px 0 var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);letter-spacing:.04em;text-transform:lowercase}.form-submit:hover,.hero-cta:hover,.lightbox-btn:hover,.resume-link:hover{background:#fff;background:var(--fg);box-shadow:2px 2px 0 #fff;box-shadow:2px 2px 0 var(--fg);color:#000;color:var(--on-fg);transform:translate(2px,2px)}.hero-cta--signal{background:#fff;background:var(--fg);box-shadow:4px 4px 0 #3a3a3a;box-shadow:4px 4px 0 var(--line-hi);color:#000;color:var(--on-fg)}.hero-cta--signal:hover{background:#000;background:var(--bg);box-shadow:2px 2px 0 #fff;box-shadow:2px 2px 0 var(--fg);color:#fff;color:var(--fg)}.section-number{background:#fff;background:var(--fg);color:#000;color:var(--on-fg);display:inline-block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;margin-bottom:.9em;padding:4px 10px}.section-title{display:inline-block;position:relative}.section-title:after{color:#4a4a4a;color:var(--dim);content:".sh";font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.32em;letter-spacing:.1em;margin-left:10px;vertical-align:super}.contact-link,.gallery-item,.project-card,.skill-category{background:#000;background:var(--bg);border:1px solid #3a3a3a;border:1px solid var(--line-hi);border-radius:0;position:relative}.project-card{box-shadow:5px 5px 0 color-mix(in srgb,#fff 9%,#0000);box-shadow:5px 5px 0 color-mix(in srgb,var(--fg) 9%,#0000)}.project-card:hover{border-color:#fff;border-color:var(--fg);box-shadow:7px 7px 0 #fff;box-shadow:7px 7px 0 var(--fg);transform:translate(-2px,-2px)}.project-image-wrap{border-bottom:1px solid #3a3a3a;border-bottom:1px solid var(--line-hi);filter:grayscale(1) contrast(1.08)}.project-tag{border:1px solid #3a3a3a;border:1px solid var(--line-hi);color:#fff;color:var(--fg);display:inline-block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.62rem;margin-bottom:10px;padding:2px 8px}.project-tag:before{color:#4a4a4a;color:var(--dim);content:"[";margin-right:4px}.project-tag:after{color:#4a4a4a;color:var(--dim);content:"]";margin-left:4px}.project-name{font-size:clamp(1.1rem,1.9vw,1.6rem)}.project-name:before{color:#4a4a4a;color:var(--dim);content:">$ ";font-size:.7em;vertical-align:middle}.project-link,.project-name:before{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.project-link{text-transform:lowercase}.project-card:before{background:#050505;background:var(--bg-soft);border-bottom:1px solid #242424;border-bottom:1px solid var(--line);color:#4a4a4a;color:var(--dim);content:"● ● ●  ~/projects";display:block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.08em;padding:7px 12px}.skill-category{box-shadow:3px 3px 0 color-mix(in srgb,#fff 7%,#0000);box-shadow:3px 3px 0 color-mix(in srgb,var(--fg) 7%,#0000)}.skill-category-head{background:#fff;background:var(--fg);color:#000;color:var(--on-fg);display:inline-block;font-size:.62rem;margin-bottom:12px;padding:2px 8px}.skill-category-head,.skill-item{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.skill-item{background:#000;background:var(--bg);border-radius:0;font-size:.72rem}.skill-item:before{color:#4a4a4a;color:var(--dim);content:">";margin-right:6px}.skill-item:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg)}.skill-item:hover,.skill-item:hover:before{color:#000;color:var(--on-fg)}.timeline-item{border-left:1px dashed #4a4a4a;border-left:1px dashed var(--dim)}.timeline-dot{background:#000;background:var(--bg);border:2px solid #fff;border:2px solid var(--fg);border-radius:0;box-shadow:0 0 0 3px #000;box-shadow:0 0 0 3px var(--bg);height:10px;left:-5.5px;width:10px}.timeline-year{background:#050505;background:var(--bg-soft);border:1px solid #3a3a3a;border:1px solid var(--line-hi);color:#fff;color:var(--fg);display:inline-block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);margin-bottom:8px;padding:2px 8px}.timeline-year:before{content:"● ";font-size:.7em}.gallery-item{box-shadow:4px 4px 0 color-mix(in srgb,#fff 8%,#0000);box-shadow:4px 4px 0 color-mix(in srgb,var(--fg) 8%,#0000);filter:grayscale(1) contrast(1.08)}.gallery-item:hover{box-shadow:4px 4px 0 #fff;box-shadow:4px 4px 0 var(--fg)}.gallery-item-overlay{background:color-mix(in srgb,#000 82%,#0000);background:color-mix(in srgb,var(--bg) 82%,#0000)}.gallery-item-overlay,.gallery-item-ref{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.gallery-item-ref{background:#000;background:var(--bg);border:1px solid #fff;border:1px solid var(--fg);padding:6px 12px}.gallery-item-ref:before{content:"[VIEW] "}.form-field input,.form-field textarea{background:#050505;background:var(--bg-soft);border-radius:0;caret-color:#fff;caret-color:var(--fg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.form-field input:focus,.form-field textarea:focus{border-color:#fff;border-color:var(--fg);box-shadow:3px 3px 0 #fff;box-shadow:3px 3px 0 var(--fg)}.form-field label:before{color:#4a4a4a;color:var(--dim);content:">$ "}.form-error{border-radius:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.form-error,.portrait-wrap{background:#000;background:var(--bg)}.portrait-wrap{border:1px solid #fff;border:1px solid var(--fg);border-radius:50%;box-shadow:0 0 0 6px #000,0 0 0 7px #3a3a3a;box-shadow:0 0 0 6px var(--bg),0 0 0 7px var(--line-hi)}.portrait-photo{filter:grayscale(1) contrast(1.15) brightness(.96)}.hero-portrait-col{position:relative}.portrait-caption{color:#4a4a4a;color:var(--dim);display:flex;font-size:.62rem;gap:12px;justify-content:space-between;letter-spacing:.1em;margin-top:12px;text-transform:uppercase}.footer,.portrait-caption{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.footer{background:#050505;background:var(--bg-soft);border:1px solid #3a3a3a;border:1px solid var(--line-hi);margin-top:3em;padding:10px 14px}.footer-copy:before{background:#fff;background:var(--fg);color:#000;color:var(--on-fg);content:"-- NORMAL --  ";font-size:.6rem;font-weight:800;margin-right:10px;padding:2px 8px}.frame-info{background:#000;background:var(--bg);border:1px solid #3a3a3a;border:1px solid var(--line-hi);color:#8b8b8b;color:var(--muted);left:auto;opacity:.85;padding:3px 8px;right:clamp(14px,2vw,24px);transform:none}.frame-info,.frame-info-left{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.58rem}.frame-info-left{bottom:clamp(6px,.8vw,12px);color:#4a4a4a;color:var(--dim);left:clamp(20px,3.5vw,48px);letter-spacing:.08em;pointer-events:none;position:absolute;text-transform:lowercase;z-index:11}.boot-overlay{align-items:flex-start;background:#000;background:var(--bg);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);justify-content:flex-start;padding:clamp(20px,4vw,48px);text-align:left}.boot-overlay:before{display:none}.boot-term{background:#000;background:var(--bg);border:1px solid #3a3a3a;border:1px solid var(--line-hi);box-shadow:8px 8px 0 color-mix(in srgb,#fff 10%,#0000);box-shadow:8px 8px 0 color-mix(in srgb,var(--fg) 10%,#0000);width:min(640px,92vw)}.boot-term-bar{align-items:center;border-bottom:1px solid #3a3a3a;border-bottom:1px solid var(--line-hi);color:#8b8b8b;color:var(--muted);display:flex;font-size:.62rem;gap:8px;letter-spacing:.08em;padding:8px 12px;text-transform:uppercase}.boot-term-dots{display:flex;gap:6px}.boot-term-dots i{border:1px solid #4a4a4a;border:1px solid var(--dim);border-radius:50%;display:block;height:9px;width:9px}.boot-term-dots i:first-child{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg)}.boot-term-body{min-height:220px;padding:18px 16px 20px}.boot-log{color:#8b8b8b;color:var(--muted);font-size:.72rem;line-height:1.8}.boot-log div:before{color:#4a4a4a;color:var(--dim);content:">$ "}.boot-log .ok{color:#fff;color:var(--fg)}.boot-percent{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:clamp(3rem,10vw,6rem);font-weight:800;letter-spacing:-.04em;line-height:1;margin:12px 0 8px}.boot-bar-wrap{background:#000;background:var(--bg);border:1px solid #3a3a3a;border:1px solid var(--line-hi);height:14px;padding:2px;width:100%}.boot-bar-fill{background:repeating-linear-gradient(90deg,#fff 0 8px,#000 8px 10px);background:repeating-linear-gradient(90deg,var(--fg) 0 8px,var(--bg) 8px 10px)}.boot-skip{animation:blinkBlock 1.2s steps(1) infinite;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);margin-top:14px;position:static}.tx-curtain{background:#000;background:var(--bg)}.tx-word{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-display)}.tx-words--o .tx-word{-webkit-text-stroke:1px color-mix(in srgb,#fff 22%,#0000);-webkit-text-stroke:1px color-mix(in srgb,var(--fg) 22%,#0000)}.tx-scanlines{background:repeating-linear-gradient(180deg,#0000 0 2px,color-mix(in srgb,#fff 3%,#0000) 2px 3px);background:repeating-linear-gradient(to bottom,#0000 0 2px,color-mix(in srgb,var(--fg) 3%,#0000) 2px 3px)}.chapter-nav{background:#000;background:var(--bg);border:1px solid #3a3a3a;border:1px solid var(--line-hi);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.6rem;padding:6px 12px}.chapter-nav:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--on-fg)}.hero-social-link{border-radius:0;box-shadow:2px 2px 0 color-mix(in srgb,#fff 15%,#0000);box-shadow:2px 2px 0 color-mix(in srgb,var(--fg) 15%,#0000)}.hero-social-link:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);box-shadow:1px 1px 0 #fff;box-shadow:1px 1px 0 var(--fg);color:#000;color:var(--on-fg);transform:translate(1px,1px)}.lightbox-backdrop{background:color-mix(in srgb,#000 97%,#0000);background:color-mix(in srgb,var(--bg) 97%,#0000)}.lightbox-image{border-radius:0;box-shadow:8px 8px 0 color-mix(in srgb,#fff 12%,#0000);box-shadow:8px 8px 0 color-mix(in srgb,var(--fg) 12%,#0000);filter:grayscale(1) contrast(1.05)}.lightbox-btn{border-radius:0}.ascii-div{color:#4a4a4a;color:var(--dim);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;margin:2.5em 0 1.5em;overflow:hidden;-webkit-user-select:none;user-select:none;white-space:nowrap}.chapter-nav{bottom:clamp(32px,5vh,54px)}.tw-caret{animation:blinkBlock 1.05s steps(1) infinite;background:currentColor;display:inline-block;height:1em;margin-left:3px;vertical-align:text-bottom;width:.55em}@media (max-height:700px){.portrait-caption,.term-status{display:none}.hero-tagline{margin-bottom:1em}.hero-socials{margin-top:1.2em}.hero-ctas{margin-top:.4em}}.mob-menu-link{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:clamp(1.6rem,8vw,3rem);font-weight:700;letter-spacing:.02em;text-transform:lowercase}.mob-menu-link:before{color:#4a4a4a;color:var(--dim);content:">$ ";font-size:.7em}.mob-menu-overlay{background:color-mix(in srgb,#000 97%,#0000);background:color-mix(in srgb,var(--bg) 97%,#0000)}@media (max-width:768px){.hero-tagline{text-align:left}.project-card:before{font-size:.52rem}}body{transition:background-color .3s ease,color .3s ease}.boot-term,.chapter-nav,.contact-link,.footer,.frame-viewport,.gallery-item,.project-card,.site-nav,.skill-category{transition:background-color .3s ease,border-color .3s ease}.nav-icon,.nav-link{color:#8b8b8b;color:var(--muted)}.nav-icon:hover{color:#fff;color:var(--fg)}.mob-social-link{border-color:#3a3a3a;border-color:var(--line-hi);color:#8b8b8b;color:var(--muted)}.mob-social-link:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--on-fg)}.theme-toggle{background:#0000;border:1px solid #3a3a3a;border:1px solid var(--line-hi);border-radius:4px;color:#8b8b8b;color:var(--muted);cursor:pointer;flex-shrink:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.06em;margin-left:16px;padding:5px 10px;text-transform:lowercase;transition:color .2s ease,background .2s ease,border-color .2s ease;white-space:nowrap}.theme-toggle:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--on-fg)}.theme-toggle:focus-visible{outline:1px solid #fff;outline:1px solid var(--fg);outline-offset:2px}.mob-theme-toggle{background:#0000;border:1px solid #3a3a3a;border:1px solid var(--line-hi);color:#8b8b8b;color:var(--muted);cursor:pointer;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.08em;margin-top:8px;padding:10px 18px;text-transform:lowercase}.mob-theme-toggle:hover{background:#fff;background:var(--fg);border-color:#fff;border-color:var(--fg);color:#000;color:var(--on-fg)}[data-theme=light] .portrait-photo{filter:grayscale(1) contrast(1.05) brightness(1.02)}[data-theme=light] .hero-name{text-shadow:3px 3px 0 color-mix(in srgb,#fff 12%,#0000);text-shadow:3px 3px 0 color-mix(in srgb,var(--fg) 12%,#0000)}[data-theme=light] .grain-overlay{opacity:.05}
/*# sourceMappingURL=main.360f3434.css.map*/