:root{--bg:#0a0a0f;--bg-2:#0f0f17;--ink:#ece9e2;--ink-dim:#8a8693;--accent:#ff5b1f;--accent-2:#5b8def;--rule:#ece9e214;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Space Grotesk", ui-sans-serif, system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:16px;line-height:1.5}body{cursor:none;overflow-x:hidden}body.no-custom-cursor{cursor:auto}body.no-custom-cursor .cursor,body.no-custom-cursor .cursor-dot{display:none}input,textarea,select{cursor:text}@media (hover:none){body{cursor:auto}.cursor,.cursor-dot{display:none}}body.hal-active{cursor:auto;overflow:hidden}body.hal-active .cursor,body.hal-active .cursor-dot{display:none}body.hal-active #dotfield,body.hal-active #legacy-page,body.hal-active #boot,body.hal-active main,body.hal-active .nav{visibility:hidden;opacity:0!important}.hal-stage{z-index:100000;color:#ff7a3d;font-family:var(--mono);cursor:auto;background:#000;justify-content:center;align-items:center;padding:40px;transition:opacity 1.1s,visibility 1.1s;display:flex;position:fixed;inset:0}.hal-stage.done{opacity:0;visibility:hidden;pointer-events:none}.hal-scanlines{pointer-events:none;mix-blend-mode:screen;z-index:1;background:repeating-linear-gradient(0deg,#ff321e0b 0 1px,#0000 1px 3px);position:absolute;inset:0}.hal-frame{z-index:2;flex-direction:column;align-items:center;gap:56px;width:100%;max-width:720px;display:flex;position:relative}.hal-eye{opacity:0;background:radial-gradient(circle,#ffd9c0 0%,#ff4f1a 12%,#d31000 30%,#4d0500 65%,#050000 95%);border-radius:50%;width:220px;height:220px;animation:2.1s cubic-bezier(.2,.7,.2,1) forwards hal-bloom;position:relative;top:70px;transform:scale(.55);box-shadow:inset 0 0 30px 4px #000000a6,0 0 60px 6px #ff1a1a73,0 0 140px 30px #ff1a1a40}.hal-eye:before{content:"";pointer-events:none;border:1px solid #ff643c2e;border-radius:50%;position:absolute;inset:-28px}.hal-eye:after{content:"";pointer-events:none;border:1px dashed #ff643c1a;border-radius:50%;position:absolute;inset:-54px}.hal-eye-glow{pointer-events:none;border-radius:50%;animation:4.2s ease-in-out 2.1s infinite hal-breathe;position:absolute;inset:0;box-shadow:0 0 80px 14px #ff1e1e80,0 0 180px 50px #ff1e1e40}.hal-eye-pupil{filter:blur(2px);background:radial-gradient(circle,#fff5e0 0%,#ffd49c 30%,#ff8040 65%,#0000 85%);border-radius:50%;width:24%;height:24%;position:absolute;top:38%;left:38%}@keyframes hal-bloom{0%{opacity:0;transform:scale(.45)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes hal-breathe{0%,to{box-shadow:0 0 80px 14px #ff1e1e80,0 0 180px 50px #ff1e1e40}50%{box-shadow:0 0 100px 20px #ff1e1ea6,0 0 220px 70px #ff1e1e52}}.hal-stage.hal-dying .hal-eye{animation:3.2s cubic-bezier(.5,0,.65,1) forwards hal-die}.hal-stage.hal-dying .hal-eye-glow{opacity:0;transition:opacity 2.8s cubic-bezier(.5,0,.65,1);animation:none}@keyframes hal-die{0%{filter:brightness()saturate();opacity:1;transform:scale(1)}60%{filter:brightness(.45)saturate(.85);opacity:.7;transform:scale(1)}to{filter:brightness(0)saturate(0);opacity:0;transform:scale(1)}}.hal-console{color:#ff8a4d;text-shadow:0 0 6px #ff5a1e59;width:100%;font-size:13.5px;line-height:1.75}.hal-log{letter-spacing:.01em;flex-direction:column;justify-content:flex-end;height:26vh;margin:0;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 32% 100%);mask-image:linear-gradient(#0000 0%,#000 32% 100%)}.hal-log>div{white-space:pre-wrap;flex:none}.hal-log .hal-self{color:#ffb380}.hal-log .hal-dim{color:#a85a30}.hal-log .hal-user{color:#ece9e2}.hal-menu{opacity:0;flex-direction:column;gap:6px;margin:22px 0 0;padding:0;list-style:none;transition:opacity .45s,transform .45s;display:flex;transform:translateY(8px)}.hal-menu.visible{opacity:1;transform:translateY(0)}.hal-menu li{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #ff8a4d2e;border-radius:4px;padding:7px 12px;transition:background .2s,border-color .2s,transform .15s}.hal-menu li:hover{background:#ff8a4d12;border-color:#ff8a4d8c;transform:translate(2px)}.hal-menu li.locked{pointer-events:none;opacity:.45}.hal-menu kbd{background:#ff8a4d0f;border:1px solid #ff8a4d66;border-radius:3px;margin-right:12px;padding:1px 7px;font-family:inherit;font-size:11px;display:inline-block}.hal-prompt{color:#ece9e2;align-items:center;gap:8px;margin-top:16px;display:none}.hal-prompt.visible{display:flex}.hal-prompt-cursor{vertical-align:-2px;background:#ff8a4d;width:7px;height:14px;animation:1s steps(2,end) infinite blink;display:inline-block;box-shadow:0 0 6px #ff8a4d}body.booting{overflow:hidden}body.booting .nav,body.booting #dotfield,body.booting .hero-title .word,body.booting .eyebrow,body.booting .hero-sub,body.booting .hero-meta,body.booting .now-line{opacity:0}#legacy-page{z-index:50;color:#000;cursor:auto;opacity:0;background:silver;padding:36px 48px;font-family:Times New Roman,Times,serif;font-size:16px;line-height:1.45;transition:background .55s,color .55s,font-family .45s,opacity .9s;position:fixed;inset:0;overflow:auto}#legacy-page.is-live{opacity:1}.legacy-wrap{max-width:760px;margin:0 auto}.legacy-block{opacity:1}.legacy-block>*{opacity:0;transition:opacity .35s,transform .35s;transform:translateY(-4px)}.legacy-block.built>*{opacity:1;transform:translateY(0)}.legacy-block.built>:first-child{transition-delay:0s}.legacy-block.built>:nth-child(2){transition-delay:.1s}.legacy-block.built>:nth-child(3){transition-delay:.2s}.legacy-block.built>:nth-child(4){transition-delay:.3s}.legacy-block.built>:nth-child(5){transition-delay:.4s}.legacy-block.built>:nth-child(6){transition-delay:.5s}.legacy-block.built>:nth-child(7){transition-delay:.6s}#legacy-page h1{text-shadow:1px 1px #888;letter-spacing:0;margin:12px 0;font-size:32px;font-weight:700}#legacy-page h2{letter-spacing:0;margin:24px 0 8px;font-size:22px;font-weight:700}#legacy-page p{margin:8px 0}#legacy-page a{color:#00e;text-decoration:underline}#legacy-page a:visited{color:#551a8b}#legacy-page hr{border:0;border-top:1px solid #888;border-bottom:1px solid #fff;height:0;margin:14px 0}#legacy-page ul{margin-left:28px;list-style:outside}#legacy-page li{margin:4px 0}#legacy-page font[color=blue]{color:#00e}.legacy-center{margin:8px 0 16px}.legacy-marquee{color:#000;white-space:nowrap;background:#ff0;border:1px solid #888;margin:18px 0 4px;padding:6px 0;font-family:Courier New,monospace;font-size:13px;overflow:hidden}.legacy-marquee span{padding-left:100%;animation:22s linear infinite legacy-scroll;display:inline-block}@keyframes legacy-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}#legacy-page.up-reset h1{text-shadow:none;transition:text-shadow .35s}#legacy-page.up-reset hr{border-top:1px solid #888;border-bottom:0}#legacy-page.up-reset font[color=blue]{color:inherit}#legacy-page.up-reset a:visited{color:#00e}#legacy-page.up-dark{color:var(--ink);background:#0a0a0f}#legacy-page.up-dark a{color:var(--accent);text-decoration:none}#legacy-page.up-dark a:visited{color:var(--accent)}#legacy-page.up-dark hr{border-top:1px solid #ece9e214;border-bottom:0}#legacy-page.up-dark font[color=blue]{color:var(--accent)}#legacy-page.up-dark .legacy-marquee{color:var(--ink);background:#ff5b1f14;border-color:#ece9e214}#legacy-page.up-dark h1{text-shadow:none}#legacy-page.up-modern-font{font-family:var(--sans);letter-spacing:-.005em}#legacy-page.up-modern-font h1{letter-spacing:-.03em;font-size:56px;font-weight:700}#legacy-page.up-modern-font h2{letter-spacing:-.02em;font-size:26px}#legacy-page.up-modern-font .legacy-marquee{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px}#legacy-page.up-layout{padding:80px 100px;transition:padding .5s,background .55s,color .55s,opacity .7s}#legacy-page.up-layout .legacy-wrap{max-width:680px;margin:0 auto;transition:max-width .5s}#legacy-page.up-layout h2{color:var(--ink-dim);letter-spacing:.14em;text-transform:uppercase;border-top:1px solid #ece9e214;margin-top:40px;padding-top:18px;font-size:12.5px;font-weight:500}#legacy-page.up-layout ul{margin-left:0;padding-left:0;list-style:none}#legacy-page.up-layout li{padding:4px 0}#legacy-page.up-layout li:before{content:"→ ";color:var(--accent);font-family:var(--mono);margin-right:10px}#legacy-page.up-layout a{border-bottom:1px solid #ff5b1f4d;padding-bottom:1px;text-decoration:none;transition:border-color .2s,color .2s}#legacy-page.up-layout a:hover{border-color:var(--accent)}#legacy-page.up-layout p{line-height:1.6}#legacy-page.up-cleanup .legacy-marquee,#legacy-page.up-cleanup .legacy-hr,#legacy-page.up-cleanup .legacy-center p,#legacy-page.up-cleanup .legacy-foot{display:none}#legacy-page.up-fade{opacity:0;pointer-events:none}.boot{z-index:9999;pointer-events:none;background:0 0;justify-content:flex-end;align-items:flex-end;padding:40px;transition:opacity .7s,visibility .7s;display:flex;position:fixed;inset:0}.boot .boot-editor{pointer-events:auto}.boot.done{opacity:0;visibility:hidden;pointer-events:none}.boot-editor{-webkit-backdrop-filter:blur(14px)saturate(140%);width:min(620px,92vw);height:min(440px,70vh);font-family:var(--mono);color:var(--ink);background:#0b0707d1;border:1px solid #ff3c1e29;border-radius:8px;flex-direction:column;transition:transform .7s cubic-bezier(.6,0,.2,1),opacity .55s;display:flex;overflow:hidden;transform:translateY(0)scale(1);box-shadow:0 30px 80px #0009,inset 0 0 40px #ff1e0a0a,0 0 0 1px #ff3c1e0a,0 0 80px #ff3c1e1a}.boot.done .boot-editor{opacity:0;transform:translateY(24px)scale(.97)}.boot-titlebar{background:#ff1e0a06;border-bottom:1px solid #ff3c1e14;align-items:center;gap:10px;padding:10px 14px;display:flex}.boot-eye{background:radial-gradient(circle,#ffe5cc 0%,#ff4f1a 25%,#b40000 60%,#2a0000 95%);border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:3.6s ease-in-out infinite hal-mini-breathe;display:inline-block;box-shadow:0 0 6px #ff3c1eb3,0 0 14px #ff3c1e4d}@keyframes hal-mini-breathe{0%,to{box-shadow:0 0 6px #ff3c1eb3,0 0 14px #ff3c1e4d}50%{box-shadow:0 0 10px #ff3c1ef2,0 0 22px #ff3c1e80}}.boot-status{border-radius:1px;flex-shrink:0;width:7px;height:7px;display:inline-block}.boot-status--armed{background:#f3b061;box-shadow:0 0 4px #f3b06199}.boot-status--ok{background:#6ee7b7;box-shadow:0 0 4px #6ee7b78c}.boot-filename{font-family:var(--mono);color:#ff8a4d8c;letter-spacing:.18em;text-transform:uppercase;margin-left:14px;font-size:11px}.boot-filename b{color:#ff8a4d;font-weight:500}.boot-skip{color:#ff8a4db3;font-family:var(--mono);cursor:pointer;letter-spacing:.16em;text-transform:uppercase;background:0 0;border:1px solid #ff5a3238;border-radius:3px;margin-left:auto;padding:4px 10px;font-size:10.5px;transition:all .2s}.boot-skip:hover{color:#ff3a1a;border-color:#ff3a1a;box-shadow:0 0 10px #ff3c1e4d}.boot-code{font-family:var(--mono);color:var(--ink);white-space:pre-wrap;word-break:break-word;scroll-behavior:smooth;flex:1;margin:0;padding:18px 18px 8px;font-size:13px;line-height:1.75;overflow:auto}.boot-code::-webkit-scrollbar{width:6px}.boot-code::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.boot-code .tk-comment{color:#7c5e54;font-style:italic}.boot-code .tk-keyword{color:#ff3a1a}.boot-code .tk-string{color:#f3b061}.boot-code .tk-fn{color:#ff6c3a}.boot-code .tk-var{color:#ece9e2}.boot-code .tk-num{color:#ffb86c}.boot-code .tk-prop{color:#ffa570}.boot-code .tk-tag{color:#ff3a1a}.boot-code .tk-punct{color:#7c5e54}.boot-code .tk-ok{color:#f3b061}.boot-cursor{vertical-align:-2px;background:#ff3a1a;width:7px;height:15px;animation:1s steps(2,end) infinite blink;display:inline-block;box-shadow:0 0 10px #ff3a1a}.boot-statusbar{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#ff8a4da6;background:#ff1e0a06;border-top:1px solid #ff3c1e14;align-items:center;gap:14px;padding:8px 14px;font-size:10.5px;display:flex}.boot-dot-mini{vertical-align:0;background:#ff3a1a;border-radius:50%;width:7px;height:7px;margin-right:8px;animation:1.6s ease-in-out infinite pulse;display:inline-block;box-shadow:0 0 5px #ff3a1a}.boot-vu{flex-shrink:0;align-items:flex-end;gap:2px;height:12px;display:inline-flex}.boot-vu i{background:#ff5b1f;border-radius:1px;width:2px;height:30%;animation:.8s ease-in-out infinite boot-vu;display:block}.boot-vu i:first-child{animation-duration:.72s;animation-delay:0s}.boot-vu i:nth-child(2){animation-duration:.94s;animation-delay:.18s}.boot-vu i:nth-child(3){animation-duration:.56s;animation-delay:.32s}.boot-vu i:nth-child(4){animation-duration:.81s;animation-delay:.1s}.boot-vu i:nth-child(5){animation-duration:.66s;animation-delay:.26s}@keyframes boot-vu{0%,to{opacity:.55;height:22%}50%{opacity:1;height:100%}}.boot-progress{background:#ff3c1e14;border-radius:2px;flex:1;height:2px;position:relative;overflow:hidden}.boot-progress b{background:#ff3a1a;width:0%;height:100%;transition:width .3s;display:block;box-shadow:0 0 8px #ff3a1a}.cursor,.cursor-dot{pointer-events:none;z-index:9000;will-change:transform;position:fixed;top:0;left:0;transform:translate(-100px,-100px)}.cursor{border:1.5px solid var(--ink);mix-blend-mode:difference;border-radius:50%;width:28px;height:28px;margin-top:-14px;margin-left:-14px;transition:width .2s,height .2s,margin .2s,border-color .2s,background .2s,opacity .2s}.cursor.hover{border-color:var(--accent);background:#ff5b1f1a;width:56px;height:56px;margin-top:-28px;margin-left:-28px}.cursor-dot{background:var(--accent);border-radius:50%;width:4px;height:4px;margin-top:-2px;margin-left:-2px}.now-line{font-family:var(--mono);color:var(--ink);letter-spacing:.04em;border:1px solid var(--rule);background:#ff5b1f0a;border-radius:4px;align-items:center;gap:12px;margin-bottom:28px;padding:6px 12px;font-size:12.5px;display:inline-flex}.now-label{color:var(--accent);letter-spacing:.12em}.resume-link{border-top:1px dashed var(--rule);margin-top:16px;padding-top:16px}.resume-link+.resume-link{border-top:none;margin-top:0;padding-top:0}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}#dotfield{z-index:0;pointer-events:none;width:100vw;height:100vh;transition:opacity .9s;position:fixed;inset:0;-webkit-mask-image:radial-gradient(65% 60%,#0000008c 0%,#000 75%);mask-image:radial-gradient(65% 60%,#0000008c 0%,#000 75%)}main{z-index:2;position:relative}.hero-sub,.about-body p,.t-body p,.project-blurb,.eyebrow,.now-line,.tag-list li,.project-stack li,.contact-links a{text-shadow:0 0 14px #0a0a0fd9,0 0 28px #0a0a0f80}.nav{z-index:100;font-family:var(--mono);justify-content:space-between;align-items:center;padding:24px 40px;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0}.nav-mark{letter-spacing:.05em;color:var(--ink);font-weight:700}@keyframes blink{50%{opacity:0}}.nav-eye{mix-blend-mode:normal;opacity:0;background:radial-gradient(circle,#ffe5cc 0%,#ff4f1a 22%,#b40000 55%,#2a0000 90%);border-radius:50%;width:22px;height:22px;transition:transform .25s;display:inline-block;position:relative;top:6px;box-shadow:0 0 8px #ff3c1e8c,0 0 18px #ff3c1e38}.nav-eye:hover{transform:scale(1.12)}.nav-eye.live{animation:1.5s cubic-bezier(.5,0,.5,1) forwards nav-eye-flicker,3.6s ease-in-out 1.5s infinite hal-mini-breathe}@keyframes nav-eye-flicker{0%{opacity:0}10%{opacity:.7}14%{opacity:0}22%{opacity:1}26%{opacity:.2}34%{opacity:.9}42%{opacity:0}56%{opacity:1}62%{opacity:.35}72%{opacity:1}78%{opacity:.6}to{opacity:1}}.boot.done .boot-eye{animation:.55s steps(10,end) forwards boot-eye-flicker-out}@keyframes boot-eye-flicker-out{0%{opacity:1}15%{opacity:.2}30%{opacity:.8}45%{opacity:.1}60%{opacity:.5}75%{opacity:0}85%{opacity:.3}to{opacity:0}}.nav-eye-pupil{filter:blur(1px);pointer-events:none;background:radial-gradient(circle,#fff5e0 0%,#ffd49c 35%,#ff8040 70%,#0000 90%);border-radius:50%;width:34%;height:34%;position:absolute;top:33%;left:33%}.nav-links{mix-blend-mode:difference;gap:28px;display:flex}.nav-links a{color:var(--ink);transition:color .2s;position:relative}.nav-links a:before{content:"·";color:var(--accent);opacity:0;margin-right:6px;transition:opacity .2s}.nav-links a:hover:before{opacity:1}.nav-links a:hover{color:var(--accent)}section{max-width:1280px;margin:0 auto;padding:120px 40px;position:relative}.eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:10px;margin-bottom:32px;font-size:12px;display:inline-flex}.eyebrow .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:1.8s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.hero{align-items:center;min-height:100vh;padding-top:80px;display:flex}.hero-inner{max-width:920px}.hero-title{font-family:var(--sans);letter-spacing:-.04em;flex-wrap:wrap;gap:.18em;margin-bottom:32px;font-size:clamp(64px,13vw,200px);font-weight:700;line-height:.92;display:flex}.hero-title .word{display:inline-block;position:relative;overflow:hidden}.hero-title .word>span,.hero-title .word{will-change:transform}.hero-sub{max-width:560px;color:var(--ink);margin-bottom:64px;font-size:clamp(18px,1.6vw,22px);line-height:1.4}.hero-meta{font-family:var(--mono);color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:14px;font-size:12px;display:flex}.scroll-arrow{color:var(--accent);animation:1.8s ease-in-out infinite float;display:inline-block}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.about{padding-top:140px;padding-bottom:120px}.about-grid{grid-template-columns:200px 1fr;align-items:start;gap:60px;display:grid}.about-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);font-size:12px;position:sticky;top:100px}.about-label span{color:var(--accent)}.big-text{letter-spacing:-.02em;max-width:900px;margin-bottom:32px;font-size:clamp(28px,3.4vw,48px);font-weight:500;line-height:1.18}.big-text em{color:var(--accent);font-style:normal;font-weight:700}.about-body p{max-width:640px;color:var(--ink-dim);margin-bottom:18px;font-size:17px}.about-body p strong{color:var(--ink);font-weight:500}.project-blurb code{font-family:var(--mono);color:var(--accent);background:#ff5b1f14;border:1px solid #ff5b1f33;border-radius:3px;padding:1px 6px;font-size:.88em}.tag-list{flex-wrap:wrap;justify-content:center;gap:8px;max-width:640px;margin-top:48px;padding:0;list-style:none;display:flex}.tag-list li{font-family:var(--mono);border:1px solid var(--rule);color:var(--ink);background:#ffffff05;border-radius:4px;padding:6px 12px;font-size:12px;transition:all .25s}.tag-list li:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.awards-line{font-family:var(--mono);color:var(--ink-dim);letter-spacing:.01em;max-width:720px;margin-top:32px;font-size:12.5px;line-height:1.7}.awards-label{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin-right:8px}.more-wrap{margin-top:-32px}.more-toggle{color:var(--accent);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:8px 0;font-size:12px;transition:opacity .2s;display:inline-flex}.more-toggle:hover{opacity:.75}.more-toggle-arrow{color:var(--accent);font-size:14px;line-height:1;transition:transform .3s;display:inline-block}.more-toggle[aria-expanded=true] .more-toggle-arrow{transform:rotate(180deg)}.more-list{flex-direction:column;margin:32px 0 0;padding:0;list-style:none;animation:.35s more-fade-in;display:flex}.more-list[hidden]{display:none}@keyframes more-fade-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.more-list li{border-top:1px solid var(--rule);padding:24px 0}.more-list li:last-child{border-bottom:1px solid var(--rule)}.more-list h3{letter-spacing:-.005em;margin:0 0 8px;font-size:18px;font-weight:500}.more-meta{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-left:14px;font-size:11px;font-weight:400}.more-list p{color:#ece9e2c7;max-width:760px;margin:0;line-height:1.6}.experience{padding-top:80px;padding-bottom:80px}.timeline{border-left:1px solid var(--rule);flex-direction:column;gap:0;margin-left:8px;list-style:none;display:flex}.t-item{border-bottom:1px solid var(--rule);grid-template-columns:200px 1fr;gap:48px;padding:36px 0 36px 40px;display:grid;position:relative}.t-item:last-child{border-bottom:none}.t-item:before{content:"";background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 4px var(--bg);border-radius:50%;position:absolute;top:44px;left:-5px}.t-date{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase;padding-top:6px;font-size:12px}.t-body h3{letter-spacing:-.01em;margin-bottom:4px;font-size:clamp(20px,2vw,26px);font-weight:700}.t-org{font-family:var(--mono);color:var(--accent);letter-spacing:.02em;margin-bottom:12px;font-size:12.5px;display:block}.t-body p{color:var(--ink-dim);max-width:640px;font-size:15.5px;line-height:1.55}.projects{padding-top:120px;padding-bottom:120px}.section-head{margin-bottom:64px}.section-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:24px;font-size:12px}.section-label span{color:var(--accent)}.section-head h2,.contact-title{letter-spacing:-.03em;font-size:clamp(48px,8vw,112px);font-weight:700;line-height:.95}.project{border-top:1px solid var(--rule);grid-template-columns:1.3fr 1fr;align-items:center;gap:60px;padding:56px 0;display:grid}.scroll-word{will-change:color;transition:color .1s linear;display:inline}.project:nth-child(2n){grid-template-columns:1fr 1.3fr}.project:nth-child(2n) .project-media{order:2}.project-media{aspect-ratio:16/10;background:var(--bg-2);border:1px solid var(--rule);border-radius:6px;transition:transform .4s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.project-media:hover{transform:translateY(-4px)scale(1.01)}.project-media video,.project-media img{object-fit:cover;width:100%;height:100%;display:block}.media-placeholder{font-family:var(--mono);color:var(--ink-dim);letter-spacing:.15em;text-transform:uppercase;background:radial-gradient(circle at 30% 20%,#ff5b1f14,#0000 50%),radial-gradient(circle at 70% 80%,#5b8def0f,#0000 50%);place-items:center;font-size:12px;display:grid;position:absolute;inset:0}.media-placeholder:after{content:"";border:1px dashed var(--rule);border-radius:4px;position:absolute;inset:12px}.project-num{font-family:var(--mono);color:var(--accent);letter-spacing:.15em;margin-bottom:16px;font-size:12px}.project-info h3{letter-spacing:-.02em;margin-bottom:20px;font-size:clamp(28px,3vw,42px);font-weight:700;line-height:1.05}.project-blurb{color:var(--ink-dim);max-width:480px;margin-bottom:24px;line-height:1.55}.project-stack{flex-wrap:wrap;gap:8px;margin-bottom:28px;list-style:none;display:flex}.project-stack li{font-family:var(--mono);border:1px solid var(--rule);color:var(--ink-dim);border-radius:3px;padding:4px 10px;font-size:11px}.project-link{font-family:var(--mono);border:1px solid var(--ink);border-radius:4px;align-items:center;gap:10px;padding:12px 18px;font-size:13px;transition:all .25s;display:inline-flex}.project-link:hover{background:var(--ink);color:var(--bg);gap:16px}.project-link .arrow{transition:transform .25s}.project-link:hover .arrow{transform:translate(4px)}.contact{align-items:center;padding-top:80px;padding-bottom:80px;display:flex}.contact-inner{width:100%}.contact-title{margin:24px 0 48px}.contact-links{flex-direction:column;gap:14px;margin-bottom:64px;display:flex}.contact-links a{letter-spacing:-.02em;width:fit-content;font-size:clamp(20px,2.4vw,32px);font-weight:500;transition:all .3s;position:relative}.contact-links a:hover{color:var(--accent);transform:translate(8px)}.footer{border-top:1px solid var(--rule);font-family:var(--mono);color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;padding-top:24px;font-size:12px;display:flex}@media (width<=780px){.nav{padding:20px 24px}.nav-links{gap:18px}section{padding:80px 24px}.about-grid{grid-template-columns:1fr;gap:32px}.about-label{position:static}.project,.project:nth-child(2n){grid-template-columns:1fr;gap:32px}.project:nth-child(2n) .project-media{order:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.project,body:not(.pm-open):not(.hal-active) a,body:not(.pm-open):not(.hal-active) button,body:not(.pm-open):not(.hal-active) [role=button],body:not(.pm-open):not(.hal-active) summary{cursor:none}.project .project-media,.project .project-info{transition:transform .4s cubic-bezier(.2,.8,.2,1)}.project:hover .project-media{transform:translateY(-3px)scale(1.005)}.pm{z-index:9500;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .55s,visibility .55s;position:fixed;inset:0}.pm.open{visibility:visible;opacity:1;pointer-events:auto}.pm-backdrop{-webkit-backdrop-filter:blur(10px)saturate(130%);background:#050508eb;position:absolute;inset:0}.pm-shell{flex-direction:column;width:100%;height:100%;transition:transform .55s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;overflow:hidden;transform:scale(.985)}.pm.open .pm-shell{transform:scale(1)}.pm-header{z-index:2;flex-direction:column;flex-shrink:0;align-items:center;gap:8px;padding:12px 20px 4px;display:flex;position:relative}.pm-close{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.pm-eye{background:radial-gradient(circle,#ffe5cc 0%,#ff4f1a 22%,#b40000 58%,#2a0000 92%);border-radius:50%;width:44px;height:44px;transition:transform .25s;animation:3.6s ease-in-out infinite hal-mini-breathe;display:inline-block;position:relative;box-shadow:0 0 14px #ff3c1e99,0 0 36px #ff3c1e47}.pm-close:hover .pm-eye{transform:scale(1.08)}.pm-eye-pupil{filter:blur(1px);pointer-events:none;background:radial-gradient(circle,#fff5e0 0%,#ffd49c 35%,#ff8040 70%,#0000 90%);border-radius:50%;width:34%;height:34%;position:absolute;top:33%;left:33%}.pm-close-hint{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#ff8a4d8c;font-size:10.5px;transition:opacity 1s}.pm-header.faded .pm-close-hint{opacity:0}.pm.closing .pm-eye{animation:.55s steps(10,end) forwards boot-eye-flicker-out}.pm-body{flex:1;grid-template-columns:1.4fr 1fr;align-items:start;gap:48px;padding:4px 56px 32px;display:grid;overflow-y:auto}.pm-body::-webkit-scrollbar{width:6px}.pm-body::-webkit-scrollbar-thumb{background:#ece9e214;border-radius:4px}@media (width<=980px){.pm-body{grid-template-columns:1fr;gap:32px;padding:16px 24px 32px}}.pm-stage{flex-direction:column;gap:14px;display:flex}.pm-media{aspect-ratio:16/10;background:var(--bg-2);border:1px solid var(--rule);border-radius:8px;position:relative;overflow:hidden}.pm-media video,.pm-media img{object-fit:cover;width:100%;height:100%;display:block}.pm-caption{font-family:var(--mono);color:var(--ink-dim);letter-spacing:.02em;min-height:1.5em;font-size:12.5px}.pm-caption b{color:var(--accent);font-weight:500}.pm-thumbs{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.pm-thumb{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--rule);color:var(--ink-dim);cursor:pointer;background:#ffffff05;border-radius:4px;padding:7px 14px;font-size:11px;transition:all .2s}.pm-thumb:hover{color:var(--ink);border-color:#ff5b1f8c}.pm-thumb.active{border-color:var(--accent);color:var(--accent);background:#ff5b1f12;box-shadow:0 0 12px #ff5b1f33}.pm-meta{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:11px}.pm-title{letter-spacing:-.02em;margin-bottom:12px;font-size:clamp(26px,2.6vw,38px);font-weight:700;line-height:1.05}.pm-blurb{color:var(--ink);text-shadow:0 0 14px #0a0a0fd9;margin-bottom:14px;font-size:14.5px;line-height:1.5}.pm-blurb p{margin:8px 0}.pm-stack{flex-wrap:wrap;gap:6px;margin-bottom:16px;list-style:none;display:flex}.pm-stack li{font-family:var(--mono);border:1px solid var(--rule);color:var(--ink-dim);border-radius:3px;padding:4px 9px;font-size:11px}.pm-link{font-family:var(--mono);border:1px solid var(--ink);border-radius:4px;align-items:center;gap:10px;margin-bottom:32px;padding:10px 16px;font-size:13px;transition:all .25s;display:inline-flex}.pm-link:hover{background:var(--ink);color:var(--bg);gap:16px}.pm-hal{border-top:1px solid #ff3c1e2e;margin-top:4px;padding-top:14px}.pm-hal-label{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#ff8a4d99;margin-bottom:12px;font-size:10.5px}.pm-hal-log{font-family:var(--mono);color:#ff8a4d;text-shadow:0 0 6px #ff5a1e4d;letter-spacing:.01em;flex-direction:column;justify-content:flex-end;height:18vh;margin:0;font-size:12.5px;line-height:1.7;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 32% 100%);mask-image:linear-gradient(#0000 0%,#000 32% 100%)}.pm-hal-log>div{white-space:pre-wrap;flex:none}.pm-hal-log>div.hal-user{color:#ece9e2}.pm-hal-menu{flex-direction:column;gap:6px;margin:16px 0 0;padding:0;list-style:none;display:flex}.pm-hal-menu li{cursor:pointer;font-family:var(--mono);color:#ff8a4d;-webkit-user-select:none;user-select:none;border:1px solid #ff8a4d2e;border-radius:4px;padding:7px 12px;font-size:12.5px;transition:background .2s,border-color .2s,transform .15s}.pm-hal-menu li:hover{background:#ff8a4d12;border-color:#ff8a4d8c;transform:translate(2px)}.pm-hal-menu li.locked{pointer-events:none;opacity:.5}.pm-hal-menu kbd{background:#ff8a4d0f;border:1px solid #ff8a4d66;border-radius:3px;margin-right:12px;padding:1px 7px;font-family:inherit;font-size:10.5px;display:inline-block}body.pm-open{cursor:auto;overflow:hidden}body.pm-open .cursor,body.pm-open .cursor-dot{opacity:0}.lb{z-index:10000;-webkit-backdrop-filter:blur(6px);visibility:hidden;opacity:0;pointer-events:none;cursor:zoom-out;background:#000000f0;justify-content:center;align-items:center;padding:4vh 4vw;transition:opacity .35s,visibility .35s;display:flex;position:fixed;inset:0}.lb.open{visibility:visible;opacity:1;pointer-events:auto}.lb-content{justify-content:center;align-items:center;max-width:100%;max-height:100%;transition:transform .4s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;transform:scale(.98)}.lb.open .lb-content{transform:scale(1)}.lb-content img,.lb-content video{object-fit:contain;-webkit-user-select:none;user-select:none;max-width:92vw;max-height:92vh;display:block}.lb-hint{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#ff8a4d80;pointer-events:none;font-size:11px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.pm-media img,.pm-media video{cursor:zoom-in}.lb{z-index:10001;opacity:0;pointer-events:none;cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;transition:opacity .22s;display:flex;position:fixed;inset:0}.lb.open{opacity:1;pointer-events:auto}.lb-content{justify-content:center;align-items:center;max-width:95vw;max-height:95vh;display:flex}.lb-content img,.lb-content video{object-fit:contain;width:auto;max-width:95vw;height:auto;max-height:95vh;display:block}.lb-hint{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#ff8a4d8c;pointer-events:none;opacity:0;font-size:10.5px;transition:opacity .6s;position:absolute;top:28px;left:50%;transform:translate(-50%)}.lb.open .lb-hint{opacity:1}.lb.open.hint-faded .lb-hint{opacity:0}.lb-close{color:#ece9e2d9;cursor:pointer;background:0 0;border:none;padding:8px 14px;font-family:inherit;font-size:2.4rem;line-height:1;position:absolute;top:20px;right:28px}.lb-close:hover{color:#fff}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
