:root{--bg-0: #0a0a0c;--bg-1: #101013;--bg-2: #16171b;--bg-3: #1d1e23;--border: rgba(235, 229, 216, .08);--border-strong: rgba(235, 229, 216, .18);--fg-0: #ebe5d8;--fg-1: #a5a098;--fg-2: #6a6660;--fg-3: #3f3d3a;--accent: #ff5b2e;--accent-soft: rgba(255, 91, 46, .14);--accent-glow: rgba(255, 91, 46, .55);--cool: #6ea6ff;--font-display: "Instrument Serif", "Times New Roman", serif;--font-body: "Instrument Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--max-w: 1280px;--gutter: clamp(1.25rem, 4vw, 3rem)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-0);color:var(--fg-0);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh;overflow-x:hidden;position:relative}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.55) 100%)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}::selection{background:var(--accent);color:var(--bg-0)}.mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-1)}.shell{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter)}.divider{height:1px;background:var(--border);width:100%}.frame{position:fixed;inset:0;z-index:100;pointer-events:none}.frame-edge{position:absolute;background:var(--border)}.frame-edge.top{top:clamp(12px,2vw,22px);left:0;right:0;height:1px}.frame-edge.bottom{bottom:clamp(12px,2vw,22px);left:0;right:0;height:1px}.nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:clamp(14px,2vw,24px) var(--gutter);display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-0);pointer-events:none;background:linear-gradient(to bottom,rgba(10,10,12,.85) 0%,rgba(10,10,12,.55) 70%,transparent 100%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.nav>*{pointer-events:auto}.nav-mark{display:flex;align-items:center;gap:10px;color:var(--fg-0)}.nav-mark .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent-glow);animation:pulse 2.8s ease-in-out infinite;flex-shrink:0}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}.nav-links{display:flex;gap:clamp(18px,2.8vw,32px)}.nav-links a{color:var(--fg-0);transition:color .2s ease;position:relative}.nav-links a:hover{color:var(--accent)}.nav-links a .idx{color:var(--fg-2);margin-right:8px;font-weight:400}.hero{min-height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;padding-top:clamp(80px,14vh,140px);padding-bottom:clamp(60px,10vh,120px)}.hero-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:clamp(60px,8vw,110px) clamp(60px,8vw,110px);mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);opacity:.6}.hero-svg{position:absolute;inset:0;pointer-events:none;width:100%;height:100%;opacity:.5}.hero-content{position:relative;z-index:2}.hero-tag{display:flex;align-items:center;gap:14px;margin-bottom:clamp(28px,6vh,48px);opacity:0;animation:fade-up .9s cubic-bezier(.2,.7,.2,1) .1s forwards}.hero-tag .bar{width:28px;height:1px;background:var(--accent)}.hero-title{font-family:var(--font-display);font-weight:400;font-size:clamp(3.5rem,13vw,12rem);line-height:.88;letter-spacing:-.02em;color:var(--fg-0)}.hero-title .row{display:block;overflow:hidden}.hero-title .row>span{display:inline-block;transform:translateY(110%);animation:rise 1.1s cubic-bezier(.16,.84,.24,1) forwards}.hero-title .row:nth-child(1)>span{animation-delay:.2s}.hero-title .row:nth-child(2)>span{animation-delay:.38s}.hero-title em{font-style:italic;color:var(--accent);font-feature-settings:"ss01" on}.hero-sub{margin-top:clamp(28px,5vh,44px);max-width:38ch;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.55;color:var(--fg-1);opacity:0;animation:fade-up .9s cubic-bezier(.2,.7,.2,1) .75s forwards}@keyframes rise{to{transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.section{padding-block:clamp(80px,14vh,140px);position:relative}.section-head{display:grid;grid-template-columns:110px 1fr;gap:clamp(20px,3vw,48px);align-items:baseline;margin-bottom:clamp(40px,6vh,72px);padding-bottom:20px;border-bottom:1px solid var(--border)}.section-head .idx{font-family:var(--font-mono);font-size:.72rem;color:var(--fg-2);letter-spacing:.1em;text-transform:uppercase}.section-head h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,4.5vw,3.5rem);line-height:1;letter-spacing:-.015em}.section-head h2 em{font-style:italic;color:var(--accent)}.about{display:grid;grid-template-columns:110px 1fr 1fr;gap:clamp(20px,3vw,48px)}.about-body p{font-size:clamp(1.05rem,1.45vw,1.35rem);line-height:1.5;color:var(--fg-0);max-width:38ch}.about-body p+p{margin-top:1.1em;color:var(--fg-1)}.about-meta{display:flex;flex-direction:column;gap:22px;align-self:start}.meta-row{display:grid;grid-template-columns:100px 1fr;gap:18px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;padding-bottom:14px;border-bottom:1px dashed var(--border)}.meta-row .k{color:var(--fg-2);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}.meta-row .v{color:var(--fg-0)}@media (max-width: 820px){.section-head{grid-template-columns:80px 1fr}.about{grid-template-columns:1fr;gap:32px}.about-spacer{display:none}}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border);border-radius:2px;overflow:hidden;background:var(--bg-1)}.project{position:relative;display:flex;flex-direction:column;gap:14px;padding:clamp(28px,3vw,44px) clamp(24px,2.6vw,36px);border-right:1px solid var(--border);background:var(--bg-1);transition:background .3s ease;min-height:380px;overflow:hidden;isolation:isolate}.project:last-child{border-right:none}.project:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 100% 0%,var(--accent-soft),transparent 70%);opacity:0;transition:opacity .4s ease;z-index:-1}.project:hover{background:var(--bg-2)}.project:hover:before{opacity:1}.project-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.project-id{color:var(--fg-2)}.project-status{display:flex;align-items:center;gap:8px;color:var(--fg-1)}.project-status .led{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent-glow)}.project-status.beta .led{background:var(--cool);box-shadow:0 0 10px #6ea6ff8c}.project-status.alpha .led{background:#d4af2a;box-shadow:0 0 10px #d4af2a8c}.project h3{margin-top:clamp(20px,5vh,56px);font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.02;letter-spacing:-.01em;color:var(--fg-0)}.project h3 em{font-style:italic;color:var(--accent)}.project-tag{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2)}.project-desc{font-size:.98rem;line-height:1.5;color:var(--fg-1);flex-grow:1}.project-cta{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-0);margin-top:14px;padding-top:18px;border-top:1px solid var(--border);transition:color .2s ease,gap .25s ease}.project-cta .arrow{display:inline-block;transition:transform .25s ease}.project:hover .project-cta{color:var(--accent);gap:18px}.project:hover .project-cta .arrow{transform:translate(4px)}@media (max-width: 980px){.projects{grid-template-columns:1fr}.project{border-right:none;border-bottom:1px solid var(--border);min-height:0}.project:last-child{border-bottom:none}}.footer{padding-block:clamp(40px,6vh,72px);border-top:1px solid var(--border)}.footer-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.footer-row a{color:var(--fg-1);transition:color .2s ease}.footer-row a:hover{color:var(--fg-0)}.footer-mark{font-family:var(--font-display);font-size:1.5rem;text-transform:none;letter-spacing:-.01em;color:var(--fg-0)}.footer-mark em{color:var(--accent);font-style:italic}.contact-page{min-height:100vh;padding-top:clamp(120px,18vh,180px);padding-bottom:clamp(60px,10vh,120px);position:relative}.contact-page:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:clamp(60px,8vw,110px) clamp(60px,8vw,110px);mask-image:radial-gradient(ellipse at top,black 0%,transparent 65%);-webkit-mask-image:radial-gradient(ellipse at top,black 0%,transparent 65%);opacity:.45}.contact-head{position:relative;margin-bottom:clamp(48px,8vh,80px);max-width:720px}.contact-head .mono{display:inline-block;margin-bottom:18px}.contact-head h1{font-family:var(--font-display);font-weight:400;font-size:clamp(2.75rem,8vw,6rem);line-height:.95;letter-spacing:-.02em;color:var(--fg-0)}.contact-head h1 em{font-style:italic;color:var(--accent)}.contact-lede{margin-top:28px;max-width:50ch;font-size:clamp(1.05rem,1.45vw,1.25rem);line-height:1.55;color:var(--fg-1)}.contact-grid{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:0;border:1px solid var(--border);background:var(--bg-1);border-radius:2px;overflow:hidden}.contact-card{padding:clamp(32px,4vw,56px) clamp(28px,3vw,48px);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:20px;background:radial-gradient(ellipse 70% 100% at 0% 0%,var(--accent-soft),transparent 65%),var(--bg-1)}.contact-card-label{color:var(--fg-2)}.contact-email{font-family:var(--font-display);font-size:clamp(1.6rem,3.4vw,2.8rem);line-height:1.05;letter-spacing:-.01em;color:var(--fg-0);word-break:break-all;transition:color .2s ease}.contact-email:hover{color:var(--accent)}.contact-copy{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;margin-top:8px;padding:10px 16px;border:1px solid var(--border-strong);background:#ebe5d805;color:var(--fg-0);font-size:.72rem;font-weight:500;border-radius:2px;transition:border-color .2s ease,background .2s ease,color .2s ease}.contact-copy:hover{border-color:var(--accent);color:var(--accent);background:#ff5b2e0d}.contact-copy .copy-icon{font-size:.9rem;line-height:1}.contact-meta{padding:clamp(32px,4vw,56px) clamp(28px,3vw,48px);display:flex;flex-direction:column;gap:18px;background:var(--bg-1)}.contact-back{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(40px,6vh,60px);color:var(--fg-1);transition:color .2s ease,gap .25s ease}.contact-back:hover{color:var(--accent);gap:18px}@media (max-width: 760px){.contact-grid{grid-template-columns:1fr}.contact-card{border-right:none;border-bottom:1px solid var(--border)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.hero-title .row>span{transform:translateY(0)}.hero-tag,.hero-sub{opacity:1}}
