:root{--topbar-h: 76px;--bg: #0b0b0b;--surface: #101010;--surface-hover: #161616;--surface-raised: rgba(255, 255, 255, .04);--surface-subtle: rgba(255, 255, 255, .03);--text: #f3f3f3;--muted: #a1a1a1;--faint: #8a8a8a;--accent: #f3f3f3;--on-accent: #0b0b0b;--border: #232323;--border-hover: #3a3a3a;--border-strong: rgba(255, 255, 255, .15);--border-subtle: rgba(255, 255, 255, .05);--scrim: rgba(11, 11, 11, .72);--shadow-sm: 0 4px 15px rgba(0, 0, 0, .25);--shadow-md: 0 15px 30px rgba(0, 0, 0, .3);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .4);--font-sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-display: "VT323", var(--font-mono);color-scheme:dark}[data-theme=light]{--bg: #fbfbfa;--surface: #ffffff;--surface-hover: #f4f4f2;--surface-raised: rgba(15, 15, 15, .04);--surface-subtle: rgba(15, 15, 15, .03);--text: #16161a;--muted: #5c5c66;--faint: #70707a;--accent: #16161a;--on-accent: #fbfbfa;--border: #e4e4e1;--border-hover: #c8c8c4;--border-strong: rgba(15, 15, 15, .18);--border-subtle: rgba(15, 15, 15, .08);--scrim: rgba(251, 251, 250, .75);--shadow-sm: 0 4px 15px rgba(15, 15, 20, .06);--shadow-md: 0 15px 30px rgba(15, 15, 20, .08);--shadow-lg: 0 20px 40px rgba(15, 15, 20, .1);color-scheme:light}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}.project-amber{--project-accent: #fbbf24}.project-blue{--project-accent: #60a5fa}.project-violet{--project-accent: #a78bfa}.project-rose{--project-accent: #fb7185}.project-green{--project-accent: #34d399}[data-theme=light] .project-amber{--project-accent: #b45309}[data-theme=light] .project-blue{--project-accent: #1d4ed8}[data-theme=light] .project-violet{--project-accent: #6d28d9}[data-theme=light] .project-rose{--project-accent: #be123c}[data-theme=light] .project-green{--project-accent: #047857}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-h) + 24px)}body{min-width:320px;background:var(--bg);color:var(--text);font-family:var(--font-sans);overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none;transition:color .3s ease,background-color .3s ease,border-color .3s ease,transform .3s ease}img{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{position:absolute;top:8px;left:8px;z-index:100;padding:10px 18px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:.85rem;font-weight:600;transform:translateY(-150%)}.skip-link:focus-visible{transform:translateY(0)}.site-shell{position:relative;background:var(--bg);min-height:100vh;overflow:hidden;transition:background-color .3s ease}.page-width{width:min(1120px,calc(100% - 48px));margin:0 auto}main,.footer{position:relative;z-index:1}h1,h2,h3,p{margin-top:0}h1{max-width:800px;margin-bottom:24px;font-size:clamp(2.8rem,7vw,5.5rem);font-weight:800;letter-spacing:-.04em;line-height:1.1;color:var(--text)}h1 em{display:inline-block;padding-right:.1em;color:var(--muted);font-style:normal}.section-heading h2,.now-card h2,.contact-copy h2{margin-bottom:16px;font-size:clamp(2rem,4vw,3.5rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--text)}.eyebrow{display:inline-block;margin:0 0 16px;color:var(--muted);font-family:var(--font-mono);font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.section-copy{max-width:650px;margin-bottom:0;color:var(--muted);font-size:1.1rem;line-height:1.8}.topbar{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--topbar-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 max(24px,calc((100% - 1120px)/2));background:var(--scrim);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);transition:background-color .3s ease,border-color .3s ease}.wordmark{font:700 1.4rem/1 var(--font-mono);letter-spacing:-.06em;color:var(--text)}.wordmark span{color:var(--muted)}.topbar-status,.topbar-link{font-family:var(--font-mono);font-size:.75rem}.topbar-status{display:flex;align-items:center;gap:8px;padding:6px 16px;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--muted)}.topbar-status span{width:8px;height:8px;border-radius:50%;background:#10b981;animation:pulseDot 2s infinite}@keyframes pulseDot{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.topbar-actions{display:flex;justify-self:end;align-items:center;gap:10px}.topbar-link{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-weight:500}.topbar-link:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-1px)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:.9rem;cursor:pointer;transition:background-color .3s ease,border-color .3s ease,transform .3s ease}.theme-toggle:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-1px)}.dock{position:fixed;z-index:40;bottom:32px;left:50%;display:flex;align-items:center;gap:4px;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--scrim);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform:translate(-50%);box-shadow:var(--shadow-lg)}.dock a{padding:10px 16px;border-radius:12px;color:var(--muted);font-family:var(--font-mono);font-size:.8rem;font-weight:600;text-transform:capitalize}.dock a:hover{background:var(--surface-raised);color:var(--text)}.dock>span{width:1px;height:20px;margin:0 4px;background:var(--border)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border:1px solid transparent;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.button-primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.button-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.button-quiet{border-color:var(--border);background:var(--surface);color:var(--text)}.button-quiet:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-2px);box-shadow:var(--shadow-sm)}main{padding-top:var(--topbar-h)}.hero{min-height:calc(100vh - var(--topbar-h));padding:80px 0 120px;display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(40px,8vw,100px);align-items:center}.hero-bold{font-family:var(--font-display);letter-spacing:.02em}.hero-summary{max-width:580px;margin-bottom:40px;color:var(--muted);font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;gap:16px}.hero-notes{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:48px;color:var(--faint);font-size:.75rem;letter-spacing:.05em;list-style:none;text-transform:uppercase}.hero-notes li{display:flex;align-items:center;gap:8px}.hero-notes li:before{width:4px;height:4px;border-radius:50%;background:var(--muted);content:""}.portrait-area{justify-self:end;width:min(100%,380px);position:relative}.portrait-frame{position:relative;overflow:hidden;padding:12px;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease,background-color .3s ease}.portrait-frame:before{content:"";position:absolute;top:0;left:0;z-index:5;width:0;height:2px;background:var(--text);transition:width .45s ease}.portrait-frame:hover:before{width:100%}.portrait-frame:hover{transform:translateY(-6px);border-color:var(--border-hover);box-shadow:var(--shadow-md)}.portrait-frame img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;border-radius:14px;filter:grayscale(.12);transition:transform .45s ease,filter .45s ease}.portrait-frame:hover img{transform:scale(1.02);filter:grayscale(0)}.portrait-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 8px 8px;color:var(--faint);font:.72rem/1.3 var(--font-mono);letter-spacing:.12em;opacity:.65;text-transform:uppercase;transition:opacity .35s ease,color .35s ease}.portrait-frame:hover .portrait-caption{opacity:1}.portrait-caption span:first-child{color:var(--text);font-weight:600}.signal-bar{position:relative;z-index:1;overflow:hidden;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.signal-track{display:flex;width:max-content;align-items:center;color:var(--faint);font:.8rem/1 var(--font-mono);letter-spacing:.15em;text-transform:uppercase;animation:drift 30s linear infinite}.signal-track span{display:flex;align-items:center}.signal-track i{margin:0 40px;color:var(--muted);font-style:normal}.signal-duplicate{display:flex}.section-space{padding-top:140px}.project-list{display:grid;gap:24px;margin-top:64px}.project-card{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) minmax(240px,.45fr);gap:32px;padding:40px;border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1)}.project-card:before{position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--project-accent);content:"";opacity:.5;transition:opacity .4s ease,width .4s ease}.project-card:hover{border-color:var(--border-strong);background:var(--surface-hover);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.project-card:hover:before{opacity:1;width:6px}.project-index{color:var(--project-accent);font-family:var(--font-mono);font-size:.8rem;font-weight:600;letter-spacing:.1em}.project-label{display:inline-block;margin-bottom:16px;padding:4px 12px;border:1px solid var(--border-subtle);border-radius:20px;background:var(--surface-subtle);color:var(--project-accent);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.project-main h3{margin-bottom:12px;color:var(--text);font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;letter-spacing:-.03em}.project-description{max-width:650px;margin-bottom:24px;color:var(--muted);font-size:1rem;line-height:1.7}.project-main ul{display:grid;gap:12px;color:var(--muted);font-size:.9rem;line-height:1.6;list-style:none}.project-main li{position:relative;padding-left:20px}.project-main li:before{position:absolute;left:0;top:2px;color:var(--project-accent);content:"✦";font-size:.7rem}.project-meta{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:24px;min-width:0}.stack-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.stack-list li{padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle);color:var(--text);font-family:var(--font-mono);font-size:.7rem;transition:all .3s ease}.project-card:hover .stack-list li{border-color:var(--border-strong);background:var(--surface-raised)}.project-links{display:flex;flex-wrap:wrap;gap:16px}.text-link{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;background:var(--surface-subtle);color:var(--project-accent, var(--text));font-size:.85rem;font-weight:600;transition:all .3s ease}.text-link:hover{background:var(--project-accent, var(--accent));color:var(--on-accent);transform:translateY(-2px)}.text-link svg{font-size:.7rem;transition:transform .3s ease}.text-link:hover svg{transform:translate(2px,-2px)}.skills-section{padding-bottom:140px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px}.skill-card{padding:32px;border:1px solid var(--border);border-radius:20px;background:var(--surface);transition:all .4s ease}.skill-card:hover{transform:translateY(-5px);border-color:var(--border-strong);background:var(--surface-hover);box-shadow:var(--shadow-md)}.skill-card h3{margin-bottom:12px;color:var(--text);font-size:1.25rem;font-weight:700}.skill-card>p{margin-bottom:32px;color:var(--muted);font-size:.95rem;line-height:1.6}.skill-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none}.skill-list li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-subtle);color:var(--text);font-size:.8rem;font-weight:500;transition:all .3s ease}.skill-card:hover .skill-list li{border-color:var(--border-strong)}.skill-list svg{color:var(--muted);font-size:1rem}.about-band{position:relative;z-index:1;padding:120px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-subtle)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.about-facts{display:grid;padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.about-facts>div{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--border)}.about-facts>div:last-child{border-bottom:none;padding-bottom:0}.about-facts>div:first-child{padding-top:0}.about-facts>div>svg{flex:0 0 auto;margin-top:4px;padding:8px;border-radius:8px;background:var(--surface-raised);box-sizing:content-box;color:var(--text);font-size:1.2rem}.about-facts p{color:var(--muted);font-size:.95rem;line-height:1.6}.about-facts strong{display:block;margin-bottom:6px;color:var(--text);font-size:1.05rem;font-weight:600}.about-facts span{display:block;font-size:.9rem}.now-section{padding-bottom:140px}.now-card{position:relative;display:grid;grid-template-columns:1.2fr 1fr auto;gap:40px;align-items:center;padding:48px;border:1px solid var(--border);border-radius:24px;background:var(--surface);overflow:hidden}.now-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border-hover),transparent)}.now-card h2{margin-bottom:0;font-size:clamp(1.8rem,3vw,2.8rem)}.now-card>p{color:var(--muted);font-size:1rem;line-height:1.7}.now-card .text-link{background:var(--accent);color:var(--on-accent)}.now-card .text-link:hover{background:var(--accent);color:var(--on-accent);opacity:.85}.credentials-section{padding-bottom:140px}.credential-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:64px}.credential-card{position:relative;min-height:180px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;border:1px solid var(--border);border-radius:16px;background:var(--surface);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.credential-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}.credential-card:hover{border-color:var(--border-strong);background:var(--surface-hover);transform:translateY(-4px);box-shadow:var(--shadow-sm)}.credential-card:hover:after{transform:scaleX(1)}.credential-card>span:first-child{color:var(--muted);font-family:var(--font-mono);font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.credential-card strong{margin:12px 0;color:var(--text);font-size:1rem;line-height:1.5}.verify{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;transition:color .3s ease}.credential-card:hover .verify{color:var(--text)}.verify svg{font-size:.6rem}.contact-section{position:relative;z-index:1;padding:120px 0 200px;border-top:1px solid var(--border)}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,8vw,100px);align-items:center}.contact-copy>p:not(.eyebrow){max-width:480px;margin-bottom:40px;color:var(--muted);font-size:1.1rem;line-height:1.8}.contact-direct{display:grid;gap:16px}.contact-direct a{display:inline-flex;align-items:center;gap:12px;width:fit-content;padding:8px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle);color:var(--muted);font-size:1rem;font-weight:500}.contact-direct a:hover{border-color:var(--border-strong);background:var(--surface-raised);color:var(--text);transform:translate(4px)}.contact-direct svg{color:var(--text);font-size:1.2rem}.contact-form{display:grid;gap:20px;padding:40px;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-sm)}.contact-form label{display:grid;gap:8px;color:var(--text);font-size:.85rem;font-weight:600}.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:12px;outline:none;background:var(--bg);color:var(--text);font-size:.95rem;resize:vertical;transition:border-color .3s ease,box-shadow .3s ease}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--faint)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--border-hover);box-shadow:0 0 0 3px var(--surface-raised)}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.contact-form .button{justify-self:start;margin-top:8px}.contact-form .button:disabled{cursor:wait;opacity:.7}.form-status{min-height:1.25rem;font-size:.85rem;font-weight:500}.form-status.success{color:#047857}.form-status.error{color:#dc2626}[data-theme=dark] .form-status.success{color:#34d399}[data-theme=dark] .form-status.error{color:#fb7185}.footer{display:flex;justify-content:space-between;gap:16px;padding:32px 0 100px;border-top:1px solid var(--border);color:var(--faint);font-family:var(--font-mono);font-size:.75rem}.reveal{opacity:0;transform:translateY(30px) scale(.98);filter:blur(4px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1),filter .8s cubic-bezier(.4,0,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}@keyframes drift{to{transform:translate(-50%)}}@media(max-width:1024px){.hero{gap:40px}.credential-grid,.skill-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:940px){.hero{grid-template-columns:1fr .8fr}.portrait-area{width:min(100%,320px)}.project-card{grid-template-columns:56px minmax(0,1fr)}.project-meta{grid-column:2;flex-direction:row;align-items:flex-end}.about-grid{grid-template-columns:1fr;gap:48px}.now-card{grid-template-columns:1fr;text-align:center}.now-card .eyebrow{display:flex;justify-content:center}.now-card .text-link{justify-self:center}.contact-grid{grid-template-columns:1fr;gap:48px}.contact-copy{display:flex;flex-direction:column;align-items:center;text-align:center}.contact-direct{display:flex;flex-wrap:wrap;justify-content:center}}@media(max-width:700px){:root{--topbar-h: 64px}.page-width{width:min(100% - 32px,1120px)}.topbar{padding:0 16px;grid-template-columns:1fr auto}.topbar-status{display:none}.hero{padding:64px 0 80px;grid-template-columns:1fr;text-align:center}.hero-summary{margin:0 auto 32px}.hero-actions{justify-content:center}.hero-notes{justify-content:center;margin-top:32px}.portrait-area{justify-self:center;width:min(280px,80vw);margin-top:24px}.section-space{padding-top:100px}.project-list{margin-top:40px}.project-card{display:flex;flex-direction:column;padding:32px 24px;gap:24px}.project-index{margin-bottom:8px}.project-meta{margin-top:16px;flex-direction:column;align-items:flex-start}.project-links{margin-top:16px}.skills-section,.credentials-section,.now-section{padding-bottom:100px}.skill-grid{grid-template-columns:1fr}.about-band{padding:80px 0}.now-card{padding:32px 24px;text-align:left;align-items:flex-start}.now-card .eyebrow{justify-content:flex-start}.now-card .text-link{justify-self:flex-start}.credential-grid{grid-template-columns:1fr}.credential-card{min-height:140px}.contact-section{padding:80px 0 160px}.contact-form{padding:24px}.dock{bottom:16px;width:calc(100% - 32px);justify-content:space-evenly;padding:8px}.dock a{padding:8px 10px;font-size:.75rem}.footer{flex-direction:column;align-items:center;padding-bottom:120px;gap:12px;text-align:center}}@media(max-width:390px){.dock a{padding-inline:6px;font-size:.7rem}.hero h1{font-size:2.4rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none;filter:none}}
