*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{margin:0}#root{width:100%;min-height:100svh}@property --bg{syntax:"<color>";inherits:true;initial-value:#09080a}:root{--font-display:"Bebas Neue", sans-serif;--font-serif:"Cormorant Garamond", Georgia, serif;--font-mono:"JetBrains Mono", monospace;--font-body:"Syne", sans-serif;--nav-h:68px;--section-pad:128px;--container:1300px;--gutter:48px}[data-theme=dark]{--bg-s:#0f0e10;--bg-e:#161418;--border:#221f24;--border-s:#0f0f18;--text:#ede9e4;--text-2:#756e6a;--text-m:#38323a;--accent:#e2cfa8;--accent-dim:#e2cfa814;--grain-op:.05}[data-theme=light]{--bg-s:#e8e3db;--bg-e:#faf7f2;--border:#ccc8be;--border-s:#dedad2;--text:#120f10;--text-2:#5a5450;--text-m:#a09890;--accent:#7a5c30;--accent-dim:#7a5c301a;--grain-op:.028}html{transition:--bg .85s}html,body{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:color .38s;overflow-x:hidden}body:before{content:"";z-index:9999;pointer-events:none;opacity:var(--grain-op);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:190px 190px;position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(80% 50% at 50% -10%,#e2cfa809 0%,#0000 65%),radial-gradient(55% 50% at 5% 100%,#b48c6405 0%,#0000 65%);position:fixed;inset:0}.site{z-index:1;position:relative}.container{max-width:var(--container);padding:0 var(--gutter);margin:0 auto}.nav{z-index:1000;height:var(--nav-h);border-bottom:1px solid #0000;transition:border-color .35s,background .35s;position:fixed;top:0;left:0;right:0}.nav.scrolled{border-bottom-color:var(--border);-webkit-backdrop-filter:blur(22px);background:#07070ad6}[data-theme=light] .nav.scrolled{background:#f0ede6e0}.nav-inner{height:100%;max-width:var(--container);padding:0 var(--gutter);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-logo{font-family:var(--font-display);letter-spacing:.1em;color:var(--accent);font-size:22px;text-decoration:none;transition:opacity .2s}.nav-logo:hover{opacity:.65}.nav-links{gap:38px;list-style:none;display:flex}.nav-links a{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-2);font-size:10px;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--text)}.theme-btn{border:1px solid var(--border);cursor:pointer;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);background:0 0;align-items:center;gap:8px;padding:7px 16px;font-size:9.5px;transition:border-color .2s,color .2s;display:flex}.theme-btn:hover{border-color:var(--accent);color:var(--accent)}.hero-scroll-wrapper{height:600vh}.hero{min-height:100svh;padding-top:var(--nav-h);flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden}.hero-grid-bg{background-image:linear-gradient(var(--border-s) 1px, transparent 1px), linear-gradient(90deg, var(--border-s) 1px, transparent 1px);opacity:.35;background-size:76px 76px;position:absolute;inset:0}.hero-glow{pointer-events:none;background:radial-gradient(#e2cfa808 0%,#0000 70%);width:800px;height:400px;position:absolute;top:0;left:50%;transform:translate(-50%)}.hero-circle{pointer-events:none;will-change:clip-path, background-color;position:absolute;inset:0}.hero-circle--a{z-index:1}.hero-circle--b{z-index:2}.hero-diag-bg{background-image:repeating-linear-gradient(45deg, var(--border-s) 0, var(--border-s) 1px, transparent 1px, transparent 58px);opacity:.09;pointer-events:none;position:absolute;inset:0}.hero-body{z-index:3;flex-direction:column;flex:1;justify-content:flex-end;padding-bottom:56px;display:flex;position:relative}.marquee{z-index:3;position:relative}.scroll-ind{z-index:5}.hero--started .scroll-ind{opacity:0;pointer-events:none;transition:opacity .55s}.hero-name--base,.hero-eyebrow,.eyebrow-line,.hero-tagline,.hero-strip,.meta-label,.meta-val,.marquee-item,.marquee-dot,.marquee{transition:color .35s,border-color .35s,background .35s}.hero--text-black .hero-name--base{color:#080406}.hero--text-black .hero-eyebrow{color:#080406d1}.hero--text-black .eyebrow-line{background:#080406d1}.hero--text-black .hero-tagline{color:#0c0608ad}.hero--text-black .hero-tagline strong,.hero--text-black .hero-tagline em{color:#080406}.hero--text-black .meta-label{color:#00000061}.hero--text-black .meta-val{color:#0a0505b8}.hero--text-black .meta-val.available{color:#7a1200}.hero--text-black .hero-strip{border-top-color:#0000002e}.hero--text-black .marquee{border-top-color:#00000024}.hero--text-black .marquee-item{color:#0000004d}.hero--text-black .marquee-dot{color:#0a040494}[data-theme=light] .hero--text-black .hero-name--base{color:#fff}[data-theme=light] .hero--text-black .hero-eyebrow{color:#ffffffe0}[data-theme=light] .hero--text-black .eyebrow-line{background:#ffffffe0}[data-theme=light] .hero--text-black .eyebrow-diamond{color:#ffffffe0}[data-theme=light] .hero--text-black .hero-tagline{color:#ffffffb8}[data-theme=light] .hero--text-black .hero-tagline strong,[data-theme=light] .hero--text-black .hero-tagline em{color:#fff}[data-theme=light] .hero--text-black .meta-label{color:#ffffff6b}[data-theme=light] .hero--text-black .meta-val{color:#ffffffc7}[data-theme=light] .hero--text-black .meta-val.available{color:#ffb8a0}[data-theme=light] .hero--text-black .hero-strip{border-top-color:#fff3}[data-theme=light] .hero--text-black .marquee{border-top-color:#ffffff24}[data-theme=light] .hero--text-black .marquee-item{color:#ffffff57}[data-theme=light] .hero--text-black .marquee-dot{color:#ffc3afb3}[data-theme=light] .hero--text-black .hero-corner{border-color:#ffffffa6}[data-theme=light] .hero--text-black .hero-corner:before{background:#ffffffa6}[data-theme=light] .hero--text-black .status-pip{background:#ffffffd9}@keyframes hero-line-up{0%{transform:translateY(108%)}to{transform:translateY(0)}}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes eyebrow-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes eyebrow-text-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes name-sweep{0%{opacity:0;background-position:0 0}12%{opacity:1}88%{opacity:1}to{opacity:0;background-position:100% 0}}.hero-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);align-items:center;gap:16px;margin-bottom:30px;font-size:10px;display:flex}.eyebrow-line{background:var(--accent);transform-origin:0;flex-shrink:0;width:34px;height:1px;animation:.38s 50ms forwards eyebrow-draw;display:block;transform:scaleX(0)}.eyebrow-text{opacity:0;animation:.5s .38s forwards eyebrow-text-in}.hero-name-wrap{position:relative}.hero-name{font-family:var(--font-display);letter-spacing:.025em;flex-direction:column;font-size:clamp(78px,13.5vw,198px);line-height:.88;display:flex}.hero-name--base{color:var(--text);z-index:1;position:relative}.hero-name--accent{color:var(--accent);pointer-events:none;z-index:2;width:100%;position:absolute;top:0;left:0}.hero-name-line{padding-bottom:.06em;display:block;overflow:hidden}.hero-name-line-inner{animation:1s cubic-bezier(.16,1,.3,1) forwards hero-line-up;display:block;transform:translateY(108%)}.hero-name-line:first-child .hero-name-line-inner{animation-delay:.1s}.hero-name-line:nth-child(2) .hero-name-line-inner{animation-delay:.22s}.hero-name-line:nth-child(3) .hero-name-line-inner{animation-delay:.34s}.hero-static{animation:none!important;transform:translateY(0)!important}.hero-name--sweep{pointer-events:none;z-index:3;background:linear-gradient(90deg,#0000 0%,#e2cfa88c 25%,#fff8e6eb 50%,#e2cfa88c 75%,#0000 100%) 0 0/400% 100%;-webkit-text-fill-color:transparent;opacity:0;-webkit-background-clip:text;background-clip:text;width:100%;animation:.9s cubic-bezier(.4,0,.6,1) 1.35s forwards name-sweep;position:absolute;top:0;left:0}.eyebrow-diamond{color:var(--accent);opacity:0;font-size:6px;transition:color .35s;animation:.5s .42s forwards eyebrow-text-in}.hero-corners-wrap{z-index:4;pointer-events:none;position:absolute;inset:28px}@keyframes corner-in{0%{opacity:0}to{opacity:1}}.hero-corner{border-style:solid;border-color:var(--accent);opacity:0;width:46px;height:46px;transition:border-color .35s,opacity .35s;animation:.5s 1.1s forwards corner-in;position:absolute}.hero-corner--tl{border-width:1px 0 0 1px;top:0;left:0}.hero-corner--tr{border-width:1px 1px 0 0;top:0;right:0}.hero-corner--bl{border-width:0 0 1px 1px;bottom:0;left:0}.hero-corner--br{border-width:0 1px 1px 0;bottom:0;right:0}.hero-corner:before{content:"";background:var(--accent);width:5px;height:5px;transition:background .35s;position:absolute;transform:rotate(45deg)}.hero-corner--tl:before{top:-3px;left:-3px}.hero-corner--tr:before{top:-3px;right:-3px}.hero-corner--bl:before{bottom:-3px;left:-3px}.hero-corner--br:before{bottom:-3px;right:-3px}.hero--text-black .hero-corner{border-color:#0804068c}.hero--text-black .hero-corner:before{background:#0804068c}.hero--text-black .eyebrow-diamond{color:#080406bf}.status-pip{background:var(--accent);width:5px;height:5px;margin-right:8px;transition:background .35s;animation:2s ease-in-out infinite pip-pulse;display:inline-block;transform:rotate(45deg)}@keyframes pip-pulse{0%,to{opacity:.4;transform:rotate(45deg)scale(.8)}50%{opacity:1;transform:rotate(45deg)scale(1.1)}}.hero--text-black .status-pip{background:#7a1200}.hero-strip{border-top:1px solid var(--border);opacity:0;justify-content:space-between;align-items:flex-end;gap:48px;margin-top:40px;padding-top:36px;animation:.8s .65s forwards hero-fade-up;display:flex}.hero-tagline{color:var(--text-2);max-width:480px;font-size:clamp(14px,1.6vw,19px);line-height:1.6}.hero-tagline strong{color:var(--text);font-weight:700}.hero-tagline em{color:var(--text);font-style:normal}.hero-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:10px;display:flex}.meta-row{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;font-size:9.5px;display:flex}.meta-label{color:var(--text-m)}.meta-val{color:var(--text-2)}.meta-val.available{color:var(--accent)}.scroll-ind{bottom:60px;right:var(--gutter);z-index:2;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute}.scroll-line{background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:52px;animation:2.2s ease-in-out infinite pulse-line}@keyframes pulse-line{0%,to{opacity:.3}50%{opacity:1}}.scroll-label{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--text-m);writing-mode:vertical-rl;font-size:8px}.marquee{z-index:1;border-top:1px solid var(--border);opacity:0;padding:13px 0;animation:.6s .85s forwards hero-fade-up;position:relative;overflow:hidden}.marquee-track{white-space:nowrap;align-items:center;width:max-content;animation:30s linear infinite marquee-run;display:flex}@keyframes marquee-run{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-item{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-m);padding:0 22px;font-size:9.5px}.marquee-dot{color:var(--accent)}.section{padding:var(--section-pad) 0;border-top:1px solid var(--border)}.section-header{align-items:flex-start;gap:32px;margin-bottom:68px;display:flex}.section-num{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text-m);flex-shrink:0;padding-top:14px;font-size:9.5px;transition:color .6s .1s}.section-header.visible .section-num{color:var(--accent)}.section-title{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-m);font-size:clamp(52px,7.5vw,100px);line-height:.92;transition:color .75s .2s}.section-header.visible .section-title{color:var(--text)}.fade-in{opacity:0;transition:opacity .78s,transform .78s;transform:translateY(26px)}.fade-in.visible{opacity:1;transform:translateY(0)}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about-quote{font-family:var(--font-serif);letter-spacing:.01em;color:var(--text);font-size:clamp(30px,3.5vw,52px);font-style:italic;font-weight:400;line-height:1.18}.about-quote em{color:var(--accent);font-style:italic}.about-body{flex-direction:column;gap:20px;display:flex}.body-text{color:var(--text-2);font-size:15px;line-height:1.78}.body-text strong{color:var(--text);font-weight:600}.body-text em{color:var(--text);font-style:italic}.stat-grid{border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1px;margin-top:8px;display:grid}.stat-block{background:var(--bg-s);padding:22px 26px;transition:background .22s}.stat-block:hover{background:var(--bg-e)}.stat-num{font-family:var(--font-display);color:var(--accent);font-size:38px;line-height:1}.stat-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-m);margin-top:5px;font-size:9.5px}.projects-grid{border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.project-card{background:var(--bg-s);flex-direction:column;gap:20px;padding:48px;transition:background .28s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .4s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:hover{background:var(--bg-e)}.project-card:hover:before{transform:scaleX(1)}.proj-num{font-family:var(--font-mono);letter-spacing:.24em;color:var(--text-m);font-size:9.5px}.proj-name{font-family:var(--font-display);letter-spacing:.02em;color:var(--text);font-size:clamp(36px,3.8vw,52px);line-height:1;transition:color .3s}.project-card:hover .proj-name{color:var(--accent)}.proj-desc{color:var(--text-2);flex:1;font-size:14.5px;line-height:1.74}.proj-tags{flex-wrap:wrap;gap:7px;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--border);color:var(--text-m);padding:5px 11px;font-size:9px;transition:border-color .2s,color .2s}.project-card:hover .tag{border-color:var(--accent);color:var(--accent)}.proj-link{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);border-top:1px solid var(--border-s);align-items:center;gap:10px;margin-top:auto;padding-top:20px;font-size:10px;text-decoration:none;transition:gap .22s;display:inline-flex}.proj-link:hover{gap:16px}.proj-link.disabled{opacity:.38;pointer-events:none;color:var(--text-m)}.arrow{transition:transform .22s;display:inline-block}.proj-link:hover .arrow{transform:translate(4px)}.skills-grid{border:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.skill-cat{background:var(--bg-s);padding:40px 36px}.skill-cat-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:28px;font-size:9px}.skill-list{flex-direction:column;gap:15px;list-style:none;display:flex}.skill-item{justify-content:space-between;align-items:center;gap:20px;display:flex}.skill-name{color:var(--text);white-space:nowrap;font-size:14.5px;font-weight:500}.skill-track{background:var(--border);flex:1;max-width:96px;height:1.5px;overflow:hidden}.skill-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform 1.2s cubic-bezier(.16,1,.3,1);transform:scaleX(0)}.contact-section{padding-bottom:0}.full-ticket{--t-bg:#ece8df;--t-text:#120f10;--t-text-2:#5a5450;--t-border:#c4bfb8;--t-muted:#9a9590;--t-accent:#6e4e28;background:var(--t-bg);color:var(--t-text);font-family:var(--font-mono);border-top:1px solid var(--t-border);opacity:0;margin-top:64px;transition:transform 1.25s cubic-bezier(.16,1,.3,1),opacity 1s;transform:translateY(80px)}.full-ticket.visible{opacity:1;transform:translateY(0)}.ft-header{padding:16px var(--gutter);border-bottom:1px solid var(--t-border);justify-content:space-between;align-items:center;display:flex}.ft-brand{letter-spacing:.24em;text-transform:uppercase;color:var(--t-muted);font-size:9.5px}.ft-serial{letter-spacing:.2em;text-transform:uppercase;color:var(--t-muted);font-size:9px}.tear-line{height:0;position:relative}.tear-line:before{content:"";border-top:1px dashed var(--t-border);margin:0 36px;display:block}.tear-circle{background:var(--bg);border:1px solid var(--t-border);border-radius:50%;width:18px;height:18px;position:absolute;top:-9px}.tear-circle--left{left:18px}.tear-circle--right{right:18px}.ft-cta{padding:48px 0 44px}.ft-cta-text{font-family:var(--font-display);letter-spacing:.025em;color:var(--t-text);font-size:clamp(60px,9vw,130px);line-height:.88}.ft-cta-accent{color:var(--t-accent)}.link-marquee{border-top:1px dashed var(--t-border);border-bottom:1px dashed var(--t-border);cursor:default;padding:14px 0;overflow:hidden}.link-marquee-track{white-space:nowrap;align-items:center;width:max-content;animation:22s linear infinite marquee-run;display:flex}.link-marquee-item{letter-spacing:.08em;color:var(--t-text-2);padding:0 20px;font-size:11.5px;text-decoration:none;transition:color .2s}.link-marquee-item:hover{color:var(--t-text)}.link-marquee-sep{color:var(--t-muted)}.ft-grid{border-top:1px solid var(--t-border);border-bottom:1px solid var(--t-border);grid-template-columns:repeat(3,1fr);display:grid}.ft-col{padding:30px var(--gutter);flex-direction:column;gap:8px;display:flex}.ft-col--border{border-left:1px solid var(--t-border)}.ft-col-label{letter-spacing:.24em;text-transform:uppercase;color:var(--t-muted);font-size:8.5px}.ft-col-val{color:var(--t-text);letter-spacing:.02em;font-size:13px}.ft-col-link{color:var(--t-text);text-decoration:none;transition:color .2s}.ft-col-link:hover{color:var(--t-accent)}.ft-foot{padding:14px var(--gutter);letter-spacing:.18em;text-transform:uppercase;color:var(--t-muted);justify-content:space-between;align-items:center;font-size:9px;display:flex}@media (width<=900px){:root{--section-pad:80px;--gutter:24px}.nav-links{display:none}.hero-strip{flex-direction:column;align-items:flex-start;gap:28px}.hero-meta{align-items:flex-start}.about-grid{grid-template-columns:1fr;gap:48px}.projects-grid,.skills-grid,.ft-grid{grid-template-columns:1fr}.ft-col--border{border-left:none;border-top:1px solid var(--t-border)}.ft-foot{flex-direction:column;align-items:flex-start;gap:6px}}@media (width<=600px){.project-card{padding:32px 24px}.skill-cat{padding:30px 24px}.ft-col{padding:24px var(--gutter)}.ft-cta-text{font-size:clamp(52px,14vw,80px)}}
