@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Geist+Mono:wght@400;500&display=swap";:root{--bg: #080808;--surface: #0d0d0d;--surface-raised: #131313;--text: #f5f5f3;--muted: #9b9b96;--subtle: #686865;--line: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .18);--pill: rgba(9, 9, 9, .84);--button-text: #0a0a0a;--button-bg: #f4f4f1;--glow: rgba(255, 255, 255, .1);--pointer-x: 50vw;--pointer-y: 30vh;font-family:DM Sans,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility}:root[data-theme=light]{--bg: #ebeae6;--surface: #f4f3ef;--surface-raised: #ffffff;--text: #10100f;--muted: #5d5d59;--subtle: #7b7b76;--line: rgba(10, 10, 10, .11);--line-strong: rgba(10, 10, 10, .2);--pill: rgba(250, 250, 247, .86);--button-text: #f5f5f3;--button-bg: #11110f;--glow: rgba(0, 0, 0, .06)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;min-width:320px;overflow-x:hidden;color:var(--text);background:var(--bg);transition:color .35s ease,background .35s ease}body:before{content:"";position:fixed;z-index:200;inset:0;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}::selection{color:#0b0b0b;background:#f5f5f3}.portfolio{position:relative;min-height:100vh}.route-main{min-height:calc(100vh - 90px);animation:route-enter .52s cubic-bezier(.2,.7,0,1) both}@keyframes route-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pointer-glow{position:fixed;z-index:-1;width:520px;height:520px;left:calc(var(--pointer-x) - 260px);top:calc(var(--pointer-y) - 260px);border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--glow),transparent 68%)}.floating-nav-wrap{position:fixed;z-index:100;top:22px;left:50%;transform:translate(-50%)}.floating-nav{display:flex;align-items:center;gap:3px;padding:5px;border:1px solid var(--line-strong);border-radius:999px;background:var(--pill);box-shadow:0 16px 40px #0000003d,inset 0 1px #ffffff0d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.floating-nav a,.theme-toggle{display:grid;place-items:center;min-height:38px;border:0;border-radius:999px;color:var(--muted);background:transparent;font-size:.78rem;font-weight:600;transition:color .18s ease,background .18s ease,transform .18s ease}.floating-nav a{padding:0 17px}.floating-nav a:hover,.floating-nav a.is-active{color:var(--text);background:var(--surface-raised)}.theme-toggle{width:38px;cursor:pointer}.theme-toggle:hover{color:var(--text);transform:rotate(14deg)}.hero{position:relative;min-height:calc(100svh - 24px);display:flex;flex-direction:column;justify-content:center;margin:12px;padding:130px clamp(26px,8vw,128px) 36px;overflow:hidden;border:1px solid var(--line);border-radius:clamp(28px,4vw,58px);background:var(--surface)}.hero-atmosphere,.hero-grid{position:absolute;inset:0;pointer-events:none}.hero-atmosphere{overflow:hidden;z-index:0}.hero-grid{opacity:.16;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(to bottom,transparent,black 30%,transparent 90%);mask-image:linear-gradient(to bottom,transparent,black 30%,transparent 90%)}.hero-orb{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}.hero-orb-one{top:-36%;left:3%;width:min(70vw,960px);height:min(70vw,960px);background:#ffffffa1;animation:drift-one 16s ease-in-out infinite alternate}.hero-orb-two{top:-24%;right:-25%;width:min(58vw,820px);height:min(58vw,820px);background:#7d7d7d6b;animation:drift-two 19s ease-in-out infinite alternate}:root[data-theme=light] .hero-orb-one{background:#30302e42}:root[data-theme=light] .hero-orb-two{background:#ffffffe0}:root[data-theme=light] .hero-atmosphere:before{content:"";position:absolute;z-index:2;top:-22%;left:-16%;width:136%;height:72%;background:radial-gradient(ellipse at 17% 58%,rgba(55,55,52,.38) 0%,rgba(92,92,88,.18) 25%,transparent 54%),radial-gradient(ellipse at 55% 20%,rgba(103,103,98,.28) 0%,rgba(128,128,122,.12) 31%,transparent 60%),radial-gradient(ellipse at 88% 42%,rgba(70,70,67,.31) 0%,rgba(118,118,112,.12) 27%,transparent 55%);filter:blur(32px);-webkit-mask-image:linear-gradient(to bottom,black 0%,black 67%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 67%,transparent 100%);mix-blend-mode:multiply;opacity:.84;will-change:transform;animation:light-wave-drift 12s ease-in-out infinite alternate}.hero-atmosphere:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to bottom,transparent 7%,var(--surface) 73%)}@keyframes drift-one{0%{transform:translate3d(-10%,-3%,0) scale(1)}to{transform:translate3d(18%,8%,0) scale(1.12)}}@keyframes drift-two{0%{transform:translate3d(8%,-4%,0) scale(1.06)}to{transform:translate3d(-20%,14%,0) scale(.94)}}@keyframes light-wave-drift{0%{transform:translate3d(-6%,-2%,0) skew(-7deg) scale(1.02)}to{transform:translate3d(8%,5%,0) skew(5deg) scale(1.12)}}.hero-content{position:relative;z-index:1;width:min(100%,1160px);display:grid;grid-template-columns:minmax(0,1.16fr) minmax(310px,.84fr);align-items:center;gap:clamp(54px,9vw,150px);margin:auto}.hero-kicker{display:flex;align-items:center;gap:11px;margin-bottom:24px;font-size:clamp(.9rem,1.3vw,1.05rem);font-weight:600}.status-dot{width:9px;height:9px;border-radius:50%;background:#75d89c;box-shadow:0 0 0 5px #75d89c1f}.hero h1{max-width:760px;margin:0;font-size:clamp(3.4rem,6.2vw,7rem);font-weight:500;line-height:.93;letter-spacing:-.065em}.hero h1 span{display:block;color:var(--muted)}.hero-summary{max-width:620px;margin:30px 0 0;color:var(--muted);font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.55}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:0 20px;border:1px solid var(--line);border-radius:13px;font-size:.85rem;font-weight:600;transition:transform .18s ease,background .18s ease,border-color .18s ease}.button:hover{transform:translateY(-3px)}.button-primary{color:var(--button-text);background:var(--button-bg)}.button-secondary{background:#ffffff06}.button-secondary:hover{border-color:var(--line-strong);background:var(--surface-raised)}.hero-visual{position:relative;width:min(100%,440px);justify-self:end}.portrait-frame{position:relative;padding:8px;overflow:hidden;border:1px solid var(--line-strong);border-radius:34px;background:#0404049e;box-shadow:0 35px 80px #00000047;transform:rotate(1.2deg)}.ripple-portrait{position:relative;width:100%;aspect-ratio:.96;overflow:hidden;border-radius:27px;outline:none;isolation:isolate;cursor:crosshair}.ripple-filter{position:absolute;width:0;height:0}.ripple-image-stack,.portrait-image{position:absolute;inset:0;width:100%;height:100%}.ripple-image-stack{filter:url(#portrait-water-ripple);transform:translateZ(0)}.portrait-image{object-fit:cover;transition:opacity .85s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1),filter .85s ease}.portrait-image-base{opacity:1;filter:contrast(1.02) saturate(1.04)}.portrait-image-transition{opacity:0;transform:scale(1.035);filter:contrast(1.03) saturate(.96)}.ripple-portrait.is-transitioned .portrait-image-base{opacity:0;transform:scale(1.025)}.ripple-portrait.is-transitioned .portrait-image-transition{opacity:1;transform:scale(1)}.ripple-surface{position:absolute;z-index:2;inset:-12%;pointer-events:none;border-radius:50%;background:repeating-radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),transparent 0 16px,rgba(255,255,255,.38) 18px,rgba(255,255,255,.08) 20px,transparent 24px 34px);mix-blend-mode:soft-light;animation:portrait-ripple-spread 1.05s cubic-bezier(.18,.68,.24,1) forwards}.ripple-glass{position:absolute;z-index:3;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.12);border-radius:inherit;background:linear-gradient(125deg,rgba(255,255,255,.1),transparent 28%),linear-gradient(to top,rgba(0,0,0,.08),transparent 30%);box-shadow:inset 0 0 32px #ffffff0a;transition:box-shadow .5s ease}.ripple-portrait:hover .ripple-glass,.ripple-portrait:focus-visible .ripple-glass{box-shadow:inset 0 0 45px #ffffff17,inset 0 0 90px #00000014}.ripple-portrait:focus-visible{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--text)}@keyframes portrait-ripple-spread{0%{opacity:.9;clip-path:circle(0% at var(--ripple-x, 50%) var(--ripple-y, 50%));transform:scale(.96)}55%{opacity:.48}to{opacity:0;clip-path:circle(115% at var(--ripple-x, 50%) var(--ripple-y, 50%));transform:scale(1.05)}}.portrait-status,.portrait-code{position:absolute;z-index:2;font-family:Geist Mono,monospace;font-size:.62rem;letter-spacing:.07em;text-transform:uppercase}.portrait-status{top:23px;left:23px;padding:8px 10px;color:#eeeeea;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#0505059e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portrait-code{right:22px;bottom:22px;display:flex;gap:12px;color:#e7e7e4;text-shadow:0 1px 6px #000}.resume-chip{position:absolute;right:-20px;bottom:-20px;display:flex;align-items:center;gap:8px;min-height:46px;padding:0 15px;color:#0a0a0a;border-radius:13px;background:#f4f4f1;box-shadow:0 14px 32px #00000047;font-size:.78rem;font-weight:600;transition:transform .18s ease}.resume-chip:hover{transform:translateY(-4px) rotate(-2deg)}.hero-meta{position:relative;z-index:1;width:min(100%,1160px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin:70px auto 0;padding-top:23px;color:var(--subtle);border-top:1px solid var(--line);font-family:Geist Mono,monospace;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.hero-meta span:nth-child(2){text-align:center}.hero-meta a{display:flex;justify-content:flex-end;align-items:center;gap:7px;color:var(--muted)}.hero-enter{opacity:0;animation:hero-enter .85s cubic-bezier(.2,.7,0,1) forwards}.hero-enter-delay-1{animation-delay:.1s}.hero-enter-delay-2{animation-delay:.22s}.hero-enter-delay-3{animation-delay:.36s}@keyframes hero-enter{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.page-section{width:min(100%,1440px);margin:0 auto;padding:clamp(100px,12vw,180px) clamp(24px,6vw,88px)}.section-heading{display:grid;grid-template-columns:54px minmax(0,1.15fr) minmax(280px,.6fr);align-items:end;gap:clamp(26px,4vw,64px);margin-bottom:clamp(64px,8vw,110px);padding-bottom:30px;border-bottom:1px solid var(--line)}.section-index,.section-kicker,.project-eyebrow,.project-number,.milestone-top,.journey-image figcaption span{font-family:Geist Mono,monospace;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase}.section-index{align-self:start;color:var(--subtle)}.section-kicker{margin:0 0 16px;color:var(--muted)}.section-heading h2{max-width:760px;margin:0;font-size:clamp(2.55rem,5.2vw,5.8rem);font-weight:500;line-height:.98;letter-spacing:-.055em}.section-heading>p{max-width:470px;margin:0;color:var(--muted);font-size:clamp(.95rem,1.25vw,1.1rem);line-height:1.65}.projects-section .section-heading{margin-bottom:clamp(30px,4vw,52px)}.tech-marquee{position:relative;width:100%;margin-bottom:clamp(82px,10vw,140px);padding:17px 0;overflow:hidden;color:var(--text);border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent 0%,black 7%,black 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,black 7%,black 93%,transparent 100%);-webkit-user-select:none;user-select:none}.tech-marquee-track{display:flex;width:max-content;will-change:transform;animation:technology-marquee 34s linear infinite}.tech-marquee-group{display:flex;flex-shrink:0;align-items:center;gap:14px;padding-right:14px}.tech-marquee-item{position:relative;min-width:max-content;display:inline-flex;align-items:center;gap:10px;padding:10px 15px;overflow:hidden;color:var(--text);border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 76%,transparent);isolation:isolate;cursor:default;font-family:Geist Mono,monospace;font-size:.71rem;font-weight:600;letter-spacing:.055em;text-transform:uppercase;transition:color .22s ease,border-color .22s ease,box-shadow .22s ease}.tech-marquee-item:before,.tech-marquee-item:after{content:"";position:absolute;pointer-events:none}.tech-marquee-item:before{z-index:-1;left:14%;bottom:-29px;width:34px;height:34px;border-radius:50%;background:var(--tech-color);transform:scale(0);transition:transform .52s cubic-bezier(.16,1,.3,1)}.tech-marquee-item:after{z-index:0;left:24%;bottom:-10px;width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--tech-ink) 56%,transparent);box-shadow:23px 8px 0 -1px color-mix(in srgb,var(--tech-ink) 42%,transparent),47px 1px 0 -2px color-mix(in srgb,var(--tech-ink) 48%,transparent),72px 10px 0 -2px color-mix(in srgb,var(--tech-ink) 38%,transparent);opacity:0}.tech-marquee-item:hover{color:var(--tech-ink);border-color:color-mix(in srgb,var(--tech-color) 78%,var(--tech-ink));box-shadow:0 8px 22px color-mix(in srgb,var(--tech-color) 24%,transparent)}.tech-marquee-item:hover:before{transform:scale(8)}.tech-marquee-item:hover:after{animation:technology-bubbles .78s ease-out infinite}.tech-marquee-item>*{position:relative;z-index:1}.tech-marquee-icon{width:19px;height:19px;flex:0 0 auto;color:currentColor}@keyframes technology-marquee{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@keyframes technology-bubbles{0%{opacity:0;transform:translate3d(0,8px,0) scale(.45)}24%{opacity:.68}to{opacity:0;transform:translate3d(8px,-27px,0) scale(1.2)}}.project-list{display:flex;flex-direction:column;gap:clamp(90px,13vw,190px)}.project-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:center;gap:clamp(42px,8vw,130px)}.project-card-reverse{grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr)}.project-card-reverse .project-image-wrap{order:2}.project-image-wrap{position:relative;min-height:420px;display:grid;place-items:center;padding:clamp(28px,5vw,70px);overflow:hidden;border:1px solid var(--line);border-radius:clamp(25px,3.5vw,50px);background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.22),transparent 42%),linear-gradient(145deg,#262626,#0f0f0f)}.project-card:nth-child(2) .project-image-wrap,.project-card:nth-child(5) .project-image-wrap{background:radial-gradient(circle at 80% 10%,rgba(255,255,255,.18),transparent 40%),linear-gradient(145deg,#191919,#383838)}.project-card:nth-child(3) .project-image-wrap,.project-card:nth-child(6) .project-image-wrap{background:radial-gradient(circle at 50% 100%,rgba(255,255,255,.16),transparent 45%),linear-gradient(135deg,#323232,#111)}.project-image-wrap:before{content:"";position:absolute;width:65%;aspect-ratio:1;border-radius:50%;background:#ffffff14;filter:blur(28px)}.project-image-wrap img{position:relative;z-index:1;width:100%;border:7px solid #0a0a0a;border-radius:16px;box-shadow:0 28px 60px #00000070;transition:transform .65s cubic-bezier(.2,.7,0,1)}.project-card:hover .project-image-wrap img{transform:scale(1.025) rotate(-.5deg)}.project-number{position:absolute;z-index:2;top:22px;left:24px;color:#ffffffa8}.project-open{position:absolute;z-index:2;right:20px;bottom:20px;width:52px;height:52px;display:grid;place-items:center;color:#0a0a0a;border-radius:50%;background:#f4f4f1;transition:transform .2s ease,background .2s ease}.project-open:hover{transform:rotate(8deg) scale(1.06);background:#fff}.project-details{max-width:500px}.project-eyebrow{margin:0 0 17px;color:var(--subtle)}.project-details h3{margin:0;font-size:clamp(2.5rem,5vw,5.4rem);font-weight:500;line-height:.95;letter-spacing:-.06em}.project-description{margin:25px 0;color:var(--muted);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.65}.project-stack{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px;padding:0;list-style:none}.project-stack li{padding:8px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-family:Geist Mono,monospace;font-size:.65rem}.project-text-link{display:inline-flex;align-items:center;gap:7px;padding-bottom:5px;border-bottom:1px solid var(--line-strong);font-size:.82rem;font-weight:600}.journey-section{width:calc(100% - 24px);max-width:none;border:1px solid var(--line);border-radius:clamp(28px,4vw,58px);background:var(--surface)}.journey-section .section-heading{max-width:1264px;margin-left:auto;margin-right:auto}.journey-grid{max-width:1264px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr);gap:clamp(30px,5vw,78px);margin:0 auto}.milestone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;animation:milestone-grid-enter .7s cubic-bezier(.2,.7,0,1) both}@keyframes milestone-grid-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.milestone-card{width:100%;min-height:250px;display:flex;flex-direction:column;justify-content:flex-end;padding:25px;border:1px solid var(--line);border-radius:24px;color:inherit;background:var(--surface-raised);font:inherit;text-align:left;cursor:pointer;transition:transform .25s ease,border-color .25s ease}.milestone-card:hover{transform:translateY(-5px);border-color:var(--line-strong)}.milestone-card.is-active{color:#0a0a0a;border-color:#f0f0ec;background:#f0f0ec;transform:translateY(-5px)}.milestone-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:auto;color:var(--subtle)}.milestone-card h3{margin:40px 0 12px;font-size:clamp(1.3rem,2.1vw,2rem);font-weight:500;line-height:1.05;letter-spacing:-.035em}.milestone-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}.milestone-card.is-active p,.milestone-card.is-active .milestone-top{color:#62625e}.milestone-card:focus-visible{outline:2px solid var(--text);outline-offset:4px}.milestone-action{display:block;margin-top:22px;color:var(--subtle);font-family:Geist Mono,monospace;font-size:.61rem;letter-spacing:.07em;text-transform:uppercase}.milestone-card.is-active .milestone-action{color:#262624}.journey-image{position:relative;min-height:520px;margin:0;overflow:hidden;border-radius:30px}.journey-image:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),transparent 60%)}.journey-image img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.02)}.journey-image-current{animation:journey-image-enter .52s cubic-bezier(.2,.7,0,1) both}@keyframes journey-image-enter{0%{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}.journey-image figcaption{position:absolute;z-index:1;right:28px;bottom:28px;left:28px;display:flex;flex-direction:column;gap:6px;color:#fff;font-size:1.2rem;font-weight:500;animation:journey-caption-enter .42s ease both}@keyframes journey-caption-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.journey-image figcaption span{color:#ffffff9e}.contact-section{position:relative;width:calc(100% - 24px);max-width:none;display:grid;grid-template-columns:minmax(0,.9fr) minmax(430px,.75fr);gap:clamp(48px,9vw,150px);margin:12px;overflow:hidden;border:1px solid var(--line);border-radius:clamp(28px,4vw,58px);background:var(--surface)}.contact-glow{position:absolute;top:-45%;left:-15%;width:70vw;height:70vw;border-radius:50%;pointer-events:none;background:#ffffff29;filter:blur(100px)}.contact-section:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent,var(--surface) 58%)}.contact-intro,.contact-form,.site-footer{position:relative;z-index:1}.contact-intro h2{max-width:700px;margin:0;font-size:clamp(3.2rem,6vw,7rem);font-weight:500;line-height:.93;letter-spacing:-.065em}.contact-intro>p:not(.section-kicker){max-width:580px;margin:28px 0;color:var(--muted);font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.65}.contact-email{display:inline-flex;align-items:center;gap:8px;padding-bottom:5px;border-bottom:1px solid var(--line-strong);font-size:.86rem;font-weight:600}.contact-socials{display:flex;flex-wrap:wrap;gap:18px;margin-top:42px}.contact-socials a{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.76rem;font-weight:600;transition:color .18s ease}.contact-socials a:hover{color:var(--text)}.social-x-mark{font-size:1.03rem;line-height:1}.contact-form{align-self:start;display:flex;flex-direction:column;gap:17px;padding:clamp(22px,3vw,40px);border:1px solid var(--line);border-radius:28px;background:#08080885;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}:root[data-theme=light] .contact-form{background:#ffffff94}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.contact-form label{display:flex;flex-direction:column;gap:8px}.contact-form label>span{color:var(--muted);font-family:Geist Mono,monospace;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;outline:0;color:var(--text);background:var(--surface-raised);transition:border-color .18s ease,box-shadow .18s ease}.contact-form input{min-height:48px;padding:0 14px}.contact-form textarea{padding:14px;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--subtle)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--line-strong);box-shadow:0 0 0 3px var(--glow)}.form-status{margin:0;padding:10px 12px;border-radius:10px;font-size:.78rem}.form-status-success{color:#b8e9c9;background:#41a0631f}.form-status-error{color:#f0b2b2;background:#bc4a4a21}.form-submit{min-height:50px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;color:var(--button-text);background:var(--button-bg);font-size:.82rem;font-weight:600;cursor:pointer;transition:transform .18s ease,opacity .18s ease}.form-submit:hover:not(:disabled){transform:translateY(-2px)}.form-submit:disabled{opacity:.55;cursor:not-allowed}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.site-footer{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;margin-top:70px;padding-top:24px;border-top:1px solid var(--line);color:var(--subtle);font-family:Geist Mono,monospace;font-size:.63rem;letter-spacing:.05em;text-transform:uppercase}.site-footer strong{color:var(--text);font-family:DM Sans,sans-serif;font-size:.85rem;letter-spacing:0;text-transform:none}.site-footer span:nth-child(2){text-align:center}.site-footer span:last-child{text-align:right}.route-footer{width:calc(100% - 48px);max-width:1312px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;margin:0 auto;padding:30px 0 38px;color:var(--subtle);border-top:1px solid var(--line);font-family:Geist Mono,monospace;font-size:.65rem;letter-spacing:.05em;text-transform:uppercase}.route-footer>a{color:var(--text);font-family:DM Sans,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:0;text-transform:none}.route-footer>span{text-align:center}.route-footer nav{display:flex;justify-content:flex-end;gap:22px}.route-footer nav a{transition:color .18s ease}.route-footer nav a:hover{color:var(--text)}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .75s cubic-bezier(.2,.7,0,1),transform .75s cubic-bezier(.2,.7,0,1)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@media (max-width: 980px){.hero-content{grid-template-columns:1fr .72fr;gap:45px}.hero-meta{grid-template-columns:1fr 1fr}.hero-meta span:nth-child(2){display:none}.section-heading{grid-template-columns:42px 1fr}.section-heading>p{grid-column:2}.project-card{grid-template-columns:1fr;gap:35px}.project-card-reverse .project-image-wrap{order:0}.project-details{max-width:720px}.journey-grid,.contact-section{grid-template-columns:1fr}.contact-form{max-width:720px}}@media (max-width: 720px){.floating-nav-wrap{top:14px;width:calc(100% - 28px)}.floating-nav{width:100%;justify-content:space-between}.floating-nav a{padding:0 11px;font-size:.7rem}.hero{min-height:auto;padding:118px 23px 28px}.hero-content{grid-template-columns:1fr;gap:60px}.hero h1{font-size:clamp(3.2rem,15vw,5.3rem)}.hero-visual{width:min(88%,410px);justify-self:center}.resume-chip{right:-10px}.hero-meta{margin-top:75px;grid-template-columns:1fr}.hero-meta span:first-child{display:none}.hero-meta a{justify-content:flex-start}.page-section{padding-right:23px;padding-left:23px}.section-heading{grid-template-columns:1fr;gap:15px}.section-heading>p{grid-column:auto;margin-top:10px}.section-index{margin-bottom:12px}.project-image-wrap{min-height:300px;padding:46px 20px}.project-details h3{font-size:clamp(2.7rem,13vw,4.2rem)}.milestone-grid{grid-template-columns:1fr}.milestone-card{min-height:230px}.journey-image{min-height:420px}.contact-intro h2{font-size:clamp(3rem,14vw,5.2rem)}.field-row,.site-footer{grid-template-columns:1fr}.site-footer span:nth-child(2),.site-footer span:last-child{text-align:left}.route-footer{grid-template-columns:1fr}.route-footer>span{text-align:left}.route-footer nav{justify-content:flex-start}}@media (max-width: 440px){.floating-nav a:nth-child(3){display:none}.hero-actions{align-items:stretch;flex-direction:column}.button{width:100%}.contact-email{font-size:.73rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.tech-marquee-track{animation-duration:34s!important;animation-iteration-count:infinite!important}}
