.logo{letter-spacing:.02em;color:var(--text);cursor:pointer;font-family:Tangerine,cursive;font-size:4.4rem;font-weight:700;line-height:1;text-decoration:none;transition:color .2s}.logo:hover{color:var(--accent)}.nav-link{list-style:none;display:inline-block}.nav-link a{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;font-size:1.25rem;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex;position:relative}.nav-link a:after{content:"";background:var(--accent);width:0;height:1px;transition:width .24s cubic-bezier(.2,.65,.2,1);position:absolute;bottom:-.5rem;left:0}.nav-link:hover a{color:var(--text)}.nav-link:hover a:after{width:100%}@media (width<=768px){.nav-link a{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;color:var(--text);font-size:clamp(3.2rem,11vw,5rem);font-weight:800}.nav-link a:after{height:2px;bottom:-.4rem}}.contact-btn{background:var(--accent);min-height:5.4rem;color:var(--accent-ink);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 2.4rem;font-size:1.25rem;font-weight:600;text-decoration:none;transition:transform .2s cubic-bezier(.2,.65,.2,1),background .2s;display:inline-flex}.contact-btn:hover{transform:translateY(-2px)}.contact-btn--secondary{border:1px solid var(--line-strong);color:var(--text);background:0 0}.contact-btn--secondary:hover{border-color:var(--accent);background:0 0}.contact-btn--primary{background:var(--accent);color:var(--accent-ink);border:1px solid #0000}.contact-btn--primary:hover{background:color-mix(in srgb, var(--accent) 82%, var(--text))}.contact-btn--compact{min-height:4.4rem;padding:0 1.6rem;font-size:1.1rem}.contact-btn--full{width:100%}.site-nav{flex:1;justify-content:flex-end;align-items:center;margin-left:2rem;display:flex}.nav-links{align-items:center;gap:clamp(1.6rem,2.4vw,2.8rem);display:flex}.site-nav--overlay{z-index:100;background:var(--bg);pointer-events:none;visibility:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;justify-content:flex-start;align-items:stretch;width:100%;height:100dvh;margin:0;padding:10rem 2.4rem 8rem;transition:transform .32s cubic-bezier(.2,.65,.2,1),visibility 0s linear .32s;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translate(100%)}.site-nav--overlay.is-open{pointer-events:auto;visibility:visible;transition:transform .32s cubic-bezier(.2,.65,.2,1),visibility linear;transform:translate(0)}.site-nav--overlay .nav-links{flex-direction:column;flex:none;align-items:flex-start;gap:1.6rem;padding-bottom:1.5rem}.nav-resume{margin-top:2.4rem;padding-top:1rem}.site-nav--overlay .nav-close-btn{border:1px solid var(--line);background:var(--surface);width:4.2rem;height:4.2rem;color:var(--text);border-radius:999px;place-items:center;display:grid;position:absolute;top:2rem;right:2.4rem}@media (width<=568px){.site-nav--overlay{padding-inline:1.6rem;padding-bottom:0}.site-nav--overlay .nav-close-btn{top:1.6rem;right:1.6rem}.nav-resume{padding-block:2rem;position:sticky;bottom:0}}.site-header{z-index:60;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);width:100%;position:sticky;top:0}.site-header__bar{width:var(--container);align-items:center;gap:1.2rem;margin-inline:auto;padding-block:1.6rem;display:flex}.site-header__actions{align-items:center;gap:.8rem;margin-left:auto;display:flex}.icon-button{border:1px solid var(--line);background:var(--surface);width:4rem;height:4rem;color:var(--text);border-radius:999px;place-items:center;transition:border-color .2s,background .2s,color .2s;display:inline-grid}.icon-button:hover{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.menu-toggle{display:none}@media (width<=768px){.site-header__bar{padding-block:1.3rem}.menu-toggle{display:inline-grid}}.socials{align-items:center;gap:1rem;display:flex}.socials a{border:1px solid var(--line-strong);width:4.6rem;height:4.6rem;color:var(--text);border-radius:999px;place-items:center;transition:border-color .2s,background .2s,color .2s,transform .2s;display:inline-grid}.socials a:hover{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);transform:translateY(-2px)}footer{border-top:1px solid var(--line);padding:clamp(4rem,6vw,6rem) 0 clamp(3rem,4vw,4rem)}.footer{width:var(--container);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.6rem;margin-inline:auto;display:flex}.footer-meta{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);flex-wrap:wrap;justify-content:center;gap:1rem 2rem;font-size:1.15rem;display:flex}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-shell__main{flex:1 0 auto;width:100%}:root{--bg:#0c0c0b;--bg-2:#111110;--surface:#ffffff08;--surface-strong:#ffffff0d;--text:#f4f1ea;--text-muted:#a8a399;--text-soft:#6f6b62;--line:#f4f1ea24;--line-strong:#f4f1ea47;--accent:#ccf24e;--accent-ink:#0c0c0b;--accent-warm:#e8703a;--font-display:"Archivo", "Arial Narrow", sans-serif;--font-body:"Hanken Grotesk", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--container:min(92vw, 132rem);--font-xs:1.2rem;--font-base:1.6rem;--font-md:1.8rem;--font-lg:2.1rem;--font-xl:2.6rem;--font-2xl:3.4rem;--font-3xl:clamp(3.6rem, 6vw, 6rem);--font-4xl:clamp(5rem, 9vw, 9rem);--display-huge:clamp(7rem, 16vw, 20rem);font-size:62.5%}body.light{--bg:#f3efe6;--bg-2:#fbf8f1;--surface:#11100e06;--surface-strong:#11100e0d;--text:#121110;--text-muted:#57534b;--text-soft:#8f897d;--line:#11100e24;--line-strong:#11100e4d;--accent:#5c7d12;--accent-ink:#f3efe6;--accent-warm:#c4541f}html{scroll-behavior:smooth;scroll-padding-top:12rem}*{box-sizing:border-box;margin:0;padding:0}:before,:after{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-body);font-size:var(--font-base);color:var(--text);background:var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.6;transition:background .4s,color .4s;overflow-x:hidden}body:before{content:"";z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(60rem 40rem at 78% -8%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%), radial-gradient(50rem 40rem at -10% 12%, color-mix(in srgb, var(--accent-warm) 8%, transparent), transparent 70%);position:fixed;inset:0}#root{z-index:2;min-height:100dvh;position:relative}body,button,input,textarea,select{font-family:var(--font-body)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);text-wrap:balance;font-weight:800;line-height:.9}img,svg{max-width:100%;display:block}a{color:inherit}button{font:inherit;background:0 0;border:0}p{color:var(--text-muted)}::selection{background:var(--accent);color:var(--accent-ink)}.section{width:var(--container);margin-inline:auto;padding-block:clamp(7rem,11vw,15rem);scroll-margin-top:11rem;position:relative}.section+.section{border-top:1px solid var(--line)}.grid{gap:2.4rem;display:grid}.icon-cursor,a,button,[role=button],summary{cursor:pointer}.eyebrow{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft);font-size:1.2rem;font-weight:500}.accent{color:var(--accent)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.reveal{animation:.9s cubic-bezier(.2,.65,.2,1) both fade-up}.reveal-delay-1{animation-delay:80ms}.reveal-delay-2{animation-delay:.16s}.reveal-delay-3{animation-delay:.24s}.reveal-delay-4{animation-delay:.32s}.reveal-delay-5{animation-delay:.4s}@keyframes fade-up{0%{opacity:0;filter:blur(6px);transform:translateY(26px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
