:root { --ink:#0b0e14; --surface:#121824; --line:#273243; --paper:#e8ecf3; --muted:#8d99aa; --signal:#78e7ee; --warm:#d2bca1; }
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--ink);color:var(--paper);font-family:"DM Sans",sans-serif;line-height:1.45}.grain{pointer-events:none;position:fixed;inset:0;opacity:.04;z-index:4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}.wrap{width:min(1160px,calc(100% - 48px));margin:auto}.nav{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.wordmark{font:500 18px "DM Mono",monospace;letter-spacing:-.1em}.wordmark span{color:var(--signal);margin-left:4px}.nav-links{display:flex;gap:28px;align-items:center;font-size:14px}.nav-contact{border:1px solid #394759;padding:9px 12px}.nav-contact span,.contact-link span,.project-link span{color:var(--signal);margin-left:6px}.hero{min-height:650px;padding:68px 0 50px;display:flex;flex-direction:column}.eyebrow,.kicker,.trace-head,.visual-label,.project-type,.about-label{font:500 11px "DM Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.status-dot{display:inline-block;height:7px;width:7px;margin-right:8px;background:var(--signal);border-radius:50%;box-shadow:0 0 12px var(--signal)}.hero-copy{margin:auto 0 60px}.hero h1,.section-head h2,.contact h2{font:600 clamp(3.5rem,8.2vw,7rem)/.9 Fraunces,serif;letter-spacing:-.07em;margin:0;max-width:930px}.hero h1 em,.contact h2 em{font-weight:600;color:var(--warm)}.intro{font-size:18px;max-width:510px;color:#b6c0ce;margin:32px 0 0}.hero-foot{display:flex;justify-content:space-between;align-items:end;font:12px "DM Mono",monospace;color:var(--muted)}.text-link{color:var(--paper);border-bottom:1px solid var(--signal);padding-bottom:5px}.text-link span{color:var(--signal);margin-left:12px}.hero-foot p{text-align:right;margin:0}.trace{border:1px solid var(--line);background:linear-gradient(110deg,#101722,#0c1018);margin-bottom:160px}.trace-head{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);font-size:10px}.trace-body{padding:19px 16px;font:13px/2 "DM Mono",monospace;color:#aab8c7}.trace-line{display:flex;gap:12px}.time{color:#607083}.prompt{color:var(--signal)}.trace-line.active{color:var(--paper)}.trace i{display:inline-block;width:7px;height:15px;background:var(--signal);animation:blink 1s steps(1) infinite;margin-top:7px}@keyframes blink{50%{opacity:0}}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:64px}.section-head h2,.contact h2{font-size:clamp(2.8rem,5vw,4.8rem);margin-top:14px}.section-note{width:310px;font-size:14px;color:var(--muted);margin:0}.projects{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project{border:1px solid var(--line);background:#0e131d}.project-featured{grid-column:span 2;display:grid;grid-template-columns:1.4fr .9fr}.project-visual{min-height:350px;padding:20px;position:relative;overflow:hidden;background:#111927}.project-info{padding:28px;display:flex;flex-direction:column;align-items:flex-start}.project-info h3{font:600 36px/1 Fraunces,serif;letter-spacing:-.05em;margin:8px 0 20px}.project-info>p{color:#aeb9c8;font-size:15px;max-width:330px;margin:0}.project-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:30px}.project-meta span{font:11px "DM Mono",monospace;border:1px solid #374354;padding:5px 7px;color:#b9c7d5}.project-link{font:500 13px "DM Mono",monospace;margin-top:24px}.visual-label{position:relative;z-index:2}.visual-beacon{background:radial-gradient(circle at 68% 50%,#184051 0%,#111c2a 25%,#0c131e 70%)}.ledger{position:absolute;left:15%;top:29%;display:grid;gap:3px;font:11px "DM Mono",monospace;color:#a5bbca}.ledger b{font:500 43px "DM Sans",sans-serif;color:#dfe9ed;letter-spacing:-.06em}.ledger .up{color:var(--signal)}.agent-card{position:absolute;right:7%;bottom:17%;width:245px;padding:16px;background:rgba(13,20,29,.85);border:1px solid #4f7780;box-shadow:0 15px 50px #0008}.agent-card p{margin:8px 0;font:500 18px/1.15 Fraunces,serif}.agent-card small{font:10px "DM Mono",monospace;color:#8facb5}.agent-dot{display:block;width:8px;height:8px;border-radius:50%;background:var(--signal)}.visual-signal{background:#17172a}.signal-map{position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:30px 30px}.signal-map i{position:absolute;border-radius:50%;background:var(--signal);box-shadow:0 0 20px var(--signal)}.signal-map i:nth-child(1){height:8px;width:8px;left:25%;top:30%}.signal-map i:nth-child(2){height:12px;width:12px;left:66%;top:22%}.signal-map i:nth-child(3){height:6px;width:6px;left:54%;top:62%}.signal-map i:nth-child(4){height:10px;width:10px;left:77%;top:69%}.signal-map i:nth-child(5){height:7px;width:7px;left:16%;top:70%}.visual-signal>p,.visual-orbit>p{position:absolute;left:25px;bottom:5px;font:500 33px/.95 Fraunces,serif;letter-spacing:-.06em}.visual-signal strong,.visual-orbit strong{color:var(--signal)}.visual-orbit{background:#1d1716}.orbit{position:absolute;left:50%;top:46%;width:165px;height:165px;transform:translate(-50%,-50%);border:1px solid #b9916b;border-radius:50%;display:grid;place-items:center}.orbit:before,.orbit:after{content:"";position:absolute;border:1px solid #7b5540;border-radius:50%}.orbit:before{inset:23px}.orbit:after{inset:50px}.orbit span{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--warm)}.orbit span:nth-child(1){top:15px;left:27px}.orbit span:nth-child(2){bottom:22px;right:20px}.orbit span:nth-child(3){right:-4px;top:55px}.orbit b{font:11px "DM Mono",monospace;color:var(--warm)}.about{margin-top:170px;padding:50px 0 140px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr}.about-label span{display:inline-block;width:8px;height:8px;background:var(--warm);margin-right:8px}.statement{font:600 clamp(2.4rem,4.8vw,4.5rem)/.98 Fraunces,serif;letter-spacing:-.06em;margin:0;max-width:720px}.statement em{color:var(--warm)}.principles{display:flex;gap:28px;margin-top:54px}.principles p{font-size:14px;color:#9ba8b6;max-width:150px}.principles b{display:block;font:11px "DM Mono",monospace;color:var(--signal);margin-bottom:9px}.contact{border-top:1px solid var(--line);padding:100px 0 90px}.contact h2{margin:15px 0 36px}.contact-link{font:500 clamp(1rem,2vw,1.45rem) "DM Mono",monospace;border-bottom:1px solid var(--signal);padding-bottom:7px}.footer{padding:20px 0 34px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font:11px "DM Mono",monospace;color:var(--muted)}.footer div{display:flex;gap:20px}.footer a:hover,.nav-links a:hover,.project-link:hover{color:var(--signal)}
.wordmark{letter-spacing:.075em;font-size:12px}.hero h1{font-size:clamp(4.25rem,9.1vw,7.8rem)}.intro{max-width:610px;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.5}
.profile-strip{display:grid;grid-template-columns:1.55fr 1fr 1.1fr;margin-bottom:160px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.profile-item{min-height:164px;padding:24px 26px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;background:#0d131d}.profile-item:last-child{border-right:0}.profile-item p{margin:0;font:500 10px "DM Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--signal)}.profile-item h2{margin:0;font:500 clamp(1.65rem,2.4vw,2.25rem)/.98 Fraunces,serif;letter-spacing:-.055em}.profile-item h2 em{color:var(--warm)}.profile-item strong{font:500 16px/1.25 "DM Sans",sans-serif;letter-spacing:-.025em}.profile-item strong span{display:inline-block;margin-top:4px;color:var(--muted);font-size:13px;letter-spacing:0}
.contact-links{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px}.contact-social{min-width:170px;padding:10px 13px;border:1px solid #394759;font:500 14px "DM Mono",monospace;transition:border-color .2s ease,background .2s ease}.contact-social small{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.04em}.contact-social span{float:right;color:var(--signal)}.contact-social:hover{border-color:var(--signal);background:#101923}.contact-heading-email{letter-spacing:-.065em;transition:color .2s ease}.contact-heading-email span{color:var(--signal);font-family:"DM Mono",monospace;font-size:.48em;vertical-align:middle;letter-spacing:0}.contact-heading-email:hover{color:var(--signal)}
.visual-beacon{background:#f7f5ef;color:#28352b}.visual-beacon .visual-label{color:#6c746b}.beacon-mark{position:absolute;top:18%;left:15%;display:flex;align-items:center;gap:7px;font:600 14px "DM Sans",sans-serif;letter-spacing:-.02em}.beacon-mark span{width:20px;height:20px;border-radius:6px;background:#2f5d3a;position:relative}.beacon-mark span:after{content:"";position:absolute;left:5px;top:4px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #fff}.visual-beacon .ledger{left:15%;top:34%;color:#697267}.visual-beacon .ledger b{color:#26352a;font:500 37px/1.05 Fraunces,serif;letter-spacing:-.06em}.visual-beacon .ledger .up{color:#2f5d3a;font-size:10px}.visual-beacon .agent-card{background:#fff;border:1px solid #b8d0bb;box-shadow:0 15px 40px #293e2924;color:#27352a;border-radius:14px}.visual-beacon .agent-dot{background:#2f5d3a}.visual-beacon .agent-card p{font-size:11px;font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:#2f5d3a}.visual-beacon .agent-card small{color:#68736a}.visual-beacon .agent-card hr{border:0;border-top:1px solid #e0e5de;margin:12px 0}.visual-beacon .agent-card strong{display:block;font:500 13px/1.42 "DM Sans",sans-serif}
.beacon-app{position:absolute;inset:48px 8% 22px 12%;background:#fff;border:1px solid #d9ded6;border-radius:13px;box-shadow:0 19px 35px #263a2a22;overflow:hidden}.beacon-app-head{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4e8e2}.beacon-app .beacon-mark{position:static;font-size:13px}.beacon-app .beacon-mark span{width:18px;height:18px;border-radius:5px}.beacon-app .beacon-mark span:after{left:4px;top:4px;border-left-width:5px;border-right-width:5px;border-bottom-width:8px}.beacon-live{font:600 9px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.04em;color:#2f5d3a;display:flex;align-items:center;gap:5px}.beacon-live i{display:block;width:5px;height:5px;background:#2f5d3a;border-radius:50%;box-shadow:0 0 0 3px #e2eee4}.beacon-summary{padding:17px 18px 13px}.beacon-summary>p{margin:0 0 4px;color:#778076;font-size:10px}.beacon-summary>div:not(.allocation){display:flex;align-items:baseline;gap:9px}.beacon-summary b{font:500 29px/1 Fraunces,serif;letter-spacing:-.045em;color:#27352a}.beacon-summary>div>span{font-size:10px;font-weight:600;color:#2f5d3a;background:#e7f0e8;border-radius:8px;padding:3px 5px}.allocation{height:9px;display:flex;gap:2px;margin:14px 0 10px}.allocation i{display:block;border-radius:3px}.allocation i:nth-child(1){flex:8;background:#2f5d3a}.allocation i:nth-child(2){flex:1.5;background:#8fba96}.allocation i:nth-child(3){flex:1;background:#d2ded1}.beacon-summary small{display:flex;justify-content:space-between;color:#788176;font-size:8px}.beacon-notice{margin:0 12px;padding:12px 13px 10px;border:1px solid #bdd6c1;border-radius:10px;background:#f2f8f1}.beacon-notice>div{display:flex;align-items:center;gap:6px}.beacon-notice .agent-dot{width:6px;height:6px;background:#2f5d3a}.beacon-notice p{margin:0;color:#2f5d3a;font:600 9px "DM Mono",monospace;letter-spacing:.045em;text-transform:uppercase}.beacon-notice strong{display:block;margin:8px 0 9px;font:500 11px/1.35 "DM Sans",sans-serif;color:#304034}.beacon-notice em{font-style:normal;color:#2f5d3a}.beacon-notice small{display:block;padding-top:8px;border-top:1px solid #d6e6d7;color:#788176;font-size:8px}
.project-loadout{grid-column:span 2;display:grid;grid-template-columns:1.4fr .9fr}.visual-loadout{background:radial-gradient(circle at 75% 30%,#183743 0%,#0b141c 52%,#0a0e15 100%)}.loadout-terminal{position:absolute;inset:58px 9% 28px 13%;border:1px solid #38515b;border-radius:10px;background:#0a1118;box-shadow:0 20px 45px #0008;overflow:hidden;font:12px/1.65 "DM Mono",monospace;color:#d2dce1}.terminal-head{height:35px;display:flex;align-items:center;gap:6px;padding:0 12px;background:#111d27;border-bottom:1px solid #263b46}.terminal-head span{height:6px;width:6px;border-radius:50%;background:#51656d}.terminal-head span:first-child{background:#d27666}.terminal-head span:nth-child(2){background:#d3aa64}.terminal-head span:nth-child(3){background:#6eb991}.terminal-head b{font-size:10px;font-weight:500;color:#90a2a9;margin-left:7px}.terminal-body{padding:15px 17px}.terminal-body p{margin:0}.terminal-body i{color:#78e7ee;font-style:normal}.terminal-body em{color:#7ad69a;font-style:normal}.terminal-body strong{color:#e4bb6e;font-weight:500}.terminal-body small{color:#78909a;font-size:10px;margin-left:8px}.terminal-dim{color:#758892;margin-bottom:7px!important}.terminal-result{margin-top:11px!important;padding-top:9px;border-top:1px solid #263b46;color:#bbcbd1}.terminal-result b{color:#78e7ee;font-weight:500}
.skills{margin-top:170px;padding:50px 0 140px;border-top:1px solid var(--line)}.skills-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:56px}.skills-head h2{font:600 clamp(2.8rem,5vw,4.8rem)/.94 Fraunces,serif;letter-spacing:-.065em;margin:14px 0 0}.skills-head h2 em{color:var(--warm)}.skills-head>p{width:320px;font-size:14px;line-height:1.55;color:var(--muted);margin:0;transform:translateX(28px)}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.skill-card{min-height:360px;padding:23px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(145deg,#101722,#0d121c);transition:background .25s ease}.skill-card:hover{background:#142130}.skill-index{margin:0;color:var(--signal);font:500 11px "DM Mono",monospace;letter-spacing:.06em;text-transform:uppercase}.skill-card h3{margin:46px 0 28px;font:500 27px/.98 Fraunces,serif;letter-spacing:-.055em}.skill-card ul{list-style:none;padding:0;margin:0}.skill-card li{padding:9px 0;border-top:1px solid #263242;font-size:15px;line-height:1.35;color:#c0cad7}.skill-card li:last-child{border-bottom:1px solid #263242}
@media(max-width:720px){.wrap{width:min(100% - 32px,1160px)}.nav{height:70px}.nav-links a:not(.nav-contact){display:none}.nav-contact{font-size:12px}.hero{min-height:590px;padding-top:45px}.hero h1{font-size:clamp(3.9rem,17vw,5.7rem)}.intro{font-size:18px}.profile-strip{grid-template-columns:1fr;margin-bottom:100px}.profile-item{min-height:125px;border-right:0;border-bottom:1px solid var(--line);padding:20px}.profile-item:last-child{border-bottom:0}.profile-item h2{font-size:28px}.trace-body{font-size:11px}.trace-line .time{display:none}.section-head{display:block;margin-bottom:38px}.section-note{width:auto;margin-top:20px}.projects,.project-featured{grid-template-columns:1fr}.project-featured{grid-column:auto}.project-visual{min-height:280px}.project-info{min-height:310px}.about{margin-top:100px;padding:42px 0 90px;display:block}.about-copy{margin-top:50px}.principles{display:block;margin-top:35px}.principles p{max-width:none;margin:22px 0}.contact{padding:70px 0}.footer{font-size:10px}.agent-card{right:5%;bottom:12%;width:215px}.ledger{left:9%}.visual-beacon .ledger{left:9%}.visual-beacon .beacon-mark{left:9%}}
@media(max-width:720px){.skills{margin-top:100px;padding:42px 0 90px}.skills-head{display:block;margin-bottom:38px}.skills-head>p{width:auto;margin-top:20px;transform:none}.skill-grid{grid-template-columns:1fr 1fr}.skill-card{min-height:310px;padding:18px 15px}.skill-card h3{margin:35px 0 24px;font-size:23px}.skill-card li{font-size:13px;padding:7px 0}}
@media(max-width:720px){.contact-links{display:grid;grid-template-columns:1fr}.contact-social{min-width:0}.contact-link{width:max-content}}
@media(max-width:720px){.beacon-app{inset:38px 7% 14px 7%}.beacon-app-head{height:38px;padding:0 12px}.beacon-summary{padding:11px 13px 9px}.beacon-summary b{font-size:24px}.allocation{margin:9px 0 7px}.beacon-notice{margin:0 8px;padding:8px 9px 7px}.beacon-notice strong{font-size:10px;margin:5px 0 6px}.beacon-notice small{padding-top:5px}}
@media(max-width:720px){.project-loadout{grid-column:auto;grid-template-columns:1fr}.loadout-terminal{inset:46px 6% 16px}.terminal-body{padding:12px;font-size:10px}.terminal-head{height:31px}.terminal-body small{font-size:8px}.terminal-result{margin-top:6px!important;padding-top:6px}}
.hero-foot p span{color:var(--signal)}
.hero .eyebrow{font-size:13px}.hero-foot{font-size:14px}.profile-strip{grid-template-columns:1.55fr 1fr 1.1fr}.profile-item{min-height:190px;padding:28px 30px}.profile-item p{font-size:12px}.profile-item h2{font-size:clamp(2rem,2.8vw,2.7rem)}.profile-item strong{font-size:19px}.profile-item strong span{font-size:15px}.theme-toggle{appearance:none;border:1px solid #394759;background:transparent;color:var(--paper);padding:8px 10px;cursor:pointer;font:500 11px "DM Mono",monospace;transition:background .2s ease,border-color .2s ease}.theme-toggle:hover{border-color:var(--signal);background:#101923}
body.light{--ink:#f5f3ee;--surface:#fff;--line:#cbd2d0;--paper:#1e282d;--muted:#637076;--signal:#16707a;--warm:#80664f;background:#f5f3ee}body.light .grain{opacity:.018}body.light .nav-contact,body.light .theme-toggle{border-color:#aebbb8}body.light .theme-toggle:hover{background:#e8efed}body.light .profile-item,body.light .project{background:#fff}body.light .skill-card{background:linear-gradient(145deg,#fff,#f4f7f5)}body.light .skill-card:hover{background:#e9f1ee}body.light .skill-card li{border-color:#d3dcda;color:#435158}body.light .project-info>p{color:#536169}body.light .project-meta span{border-color:#bbc8c4;color:#526067}body.light .contact-social{border-color:#aebbb8}body.light .contact-social:hover{background:#e8efed;border-color:var(--signal)}body.light .footer,body.light .contact,body.light .skills{border-color:var(--line)}
@media(max-width:720px){.hero .eyebrow{font-size:11px}.hero-foot{font-size:12px}.profile-item{min-height:140px;padding:22px}.profile-item p{font-size:10px}.profile-item strong{font-size:17px}.profile-item strong span{font-size:13px}.theme-toggle{width:34px;height:34px;padding:0;font-size:0}.theme-toggle:after{content:"◐";font-size:16px;color:var(--signal)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.trace i{animation:none}}
