:root{color-scheme:dark;--background: #030508;--background-soft: #080d14;--surface: rgb(10 15 24 / 76%);--surface-strong: rgb(15 23 42 / 88%);--text: #f3f4f6;--muted: #9ca3af;--muted-strong: #cbd5e1;--line: rgb(148 163 184 / 18%);--line-strong: rgb(148 163 184 / 28%);--accent: #7dd3fc;--accent-strong: #38bdf8;--accent-soft: rgb(56 189 248 / 11%);--shadow: 0 24px 80px rgb(0 0 0 / 32%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}@keyframes fade-in-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}body{margin:0;background:radial-gradient(circle at 15% 0%,rgb(56 189 248 / 15%),transparent 30rem),radial-gradient(circle at 84% 12%,rgb(20 184 166 / 10%),transparent 28rem),linear-gradient(180deg,#030508,#080d14 46%,#030508);color:var(--text);line-height:1.6}body::selection{background:var(--accent-strong);color:#020617}.top-header-backdrop{display:none}a{color:inherit}.site-header{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;width:min(1160px,calc(100% - 2rem));margin:0 auto;padding:1rem 1.25rem;border:1px solid rgb(148 163 184 / 10%);border-top:0;border-radius:0 0 1.25rem 1.25rem;background:#030508c7;box-shadow:0 18px 60px #00000042;backdrop-filter:blur(20px)}.brand{display:grid;gap:.12rem;min-width:0;color:var(--text);text-decoration:none}.brand-title{font-weight:740;letter-spacing:-.02em}.brand-subtitle{color:var(--muted);font-size:.78rem;font-weight:560;letter-spacing:.01em}nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem 1rem;margin-left:auto;color:var(--muted);font-size:.92rem}nav a{text-decoration:none}nav a:hover,.text-link:hover,.inline-links a:hover,.contact-panel a:hover{color:var(--accent)}.section-shell{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:4.8rem 0;animation:fade-in-up .7s ease both}.hero{width:100%;min-height:27rem;display:grid;align-content:center;justify-items:center;margin:0;padding:5.2rem clamp(1rem,6vw,4rem) 7.2rem;text-align:center}.eyebrow,.section-kicker,.project-type{margin:0 0 .85rem;color:var(--accent);font-size:.75rem;font-weight:760;letter-spacing:.14em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:860px;margin-bottom:1.25rem;font-size:clamp(2.55rem,5vw,4.65rem);line-height:1;letter-spacing:-.05em}.hero h1{margin-bottom:.55rem;color:var(--text);font-size:clamp(2.85rem,6vw,5rem);font-weight:820;letter-spacing:-.045em}.hero-role{margin-bottom:1.85rem;color:var(--muted-strong);font-size:clamp(1.08rem,2.1vw,1.45rem);font-weight:650}h2{max-width:860px;margin-bottom:1.15rem;font-size:clamp(1.85rem,3vw,3.1rem);line-height:1.08;letter-spacing:-.04em}h3{margin-bottom:.65rem;font-size:1.14rem;line-height:1.25;letter-spacing:-.02em}.hero-summary{max-width:840px;margin:1.75rem auto 0;color:var(--muted-strong);font-size:clamp(1rem,1.35vw,1.16rem);line-height:1.75}.hero-contact,.actions,.inline-links,.project-links{display:flex;flex-wrap:wrap;gap:.7rem}.hero-contact{justify-content:center;gap:.9rem 1.45rem;color:var(--muted);font-size:clamp(.92rem,1.4vw,1.04rem);font-weight:650}.hero-contact a,.hero-contact span{text-decoration:none}.hero-contact a:hover{color:var(--accent)}.actions,.inline-links{margin-top:1.8rem}.button,.inline-links a,.text-link{display:inline-flex;align-items:center;min-height:2.6rem;border-radius:999px;font-weight:720;text-decoration:none}.button{padding:.72rem 1.05rem;border:1px solid var(--line-strong);background:#ffffff08}.button.primary{border-color:#7dd3fc6b;background:linear-gradient(135deg,#38bdf83d,#14b8a621);color:var(--text)}.button.secondary{color:var(--muted-strong)}.button:hover{border-color:#7dd3fca6;color:var(--text)}.snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding-top:0}.snapshot-card,.feature-card,.project-card,.skill-card,.compact-experience article{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.snapshot-card{display:grid;gap:.25rem;padding:1.15rem;border-radius:1.25rem}.snapshot-card strong{color:var(--text);font-size:1.25rem;letter-spacing:-.03em}.snapshot-card span{color:var(--muted);font-size:.9rem}.intro-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);gap:3rem;border-top:1px solid var(--line)}.contact{position:relative;display:grid;grid-template-columns:minmax(7rem,.2fr) minmax(0,1fr);align-items:center;gap:clamp(1rem,3vw,2rem);margin-top:4.8rem;margin-bottom:4.8rem;padding:clamp(1rem,2.4vw,1.35rem);border:1px solid var(--line-strong);border-radius:1.35rem;background:radial-gradient(circle at 12% 20%,rgb(56 189 248 / 9%),transparent 16rem),linear-gradient(135deg,#0a0f18db,#030508f0);box-shadow:var(--shadow);overflow:hidden}.contact:before{content:"";position:absolute;inset:1px;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,rgb(148 163 184 / 5%),transparent 34%,rgb(125 211 252 / 5%))}.contact-heading{position:relative;display:flex;align-items:center;min-height:2.9rem;padding-left:clamp(.75rem,2vw,1.25rem)}.contact-heading .section-kicker{margin-bottom:0;font-size:.72rem;line-height:1.2;letter-spacing:.14em;text-transform:uppercase}.prose{color:var(--muted-strong);font-size:1.04rem}.section-heading{position:relative;max-width:900px;margin:0 auto 3rem;padding-bottom:1rem;text-align:center}.section-heading h2{margin-right:auto;margin-left:auto}.section-heading:after{content:"";position:absolute;bottom:0;left:50%;width:5rem;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--accent-strong),rgb(20 184 166 / 86%),transparent);transform:translate(-50%)}.feature-card{padding:clamp(1.25rem,4vw,2.4rem);border-radius:1.5rem;background:linear-gradient(145deg,#0f172adb,#030712b8)}.snapshot-card,.feature-card,.project-card,.skill-card,.compact-card{position:relative;overflow:hidden;transition:border-color .28s ease,box-shadow .28s ease,transform .28s ease,background .28s ease}.snapshot-card:before,.feature-card:before,.project-card:before,.skill-card:before,.compact-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent,rgb(125 211 252 / 8%),transparent);opacity:0;transition:opacity .28s ease}.snapshot-card:hover,.feature-card:hover,.project-card:hover,.skill-card:hover,.compact-card:hover{border-color:#7dd3fc57;box-shadow:0 26px 90px #0000006b;transform:translateY(-5px)}.snapshot-card:hover:before,.feature-card:hover:before,.project-card:hover:before,.skill-card:hover:before,.compact-card:hover:before{opacity:1}.feature-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.3rem;color:var(--muted);font-size:.92rem}.lead{max-width:900px;color:var(--muted-strong);font-size:1.12rem}.columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}ul{margin:0;padding-left:1.1rem}li+li{margin-top:.55rem}.inline-links a,.text-link{color:var(--accent)}.inline-links a{min-height:auto}.inline-links a,.project-links .text-link{border:1px solid rgb(125 211 252 / 18%);border-radius:999px;padding:.45rem .75rem;background:#38bdf812;transition:border-color .25s ease,background .25s ease,color .25s ease,transform .25s ease}.inline-links a:hover,.project-links .text-link:hover{border-color:#7dd3fc6b;background:#38bdf821;color:var(--text);transform:translateY(-2px)}.compact-card,.skill-card{padding:1.25rem;border-radius:1.25rem}.compact-card p,.project-card p,.skill-card li{color:var(--muted)}.timeline{position:relative;display:grid;gap:1.15rem;max-width:980px;margin:0 auto;padding-left:2rem}.timeline:before{content:"";position:absolute;top:.65rem;bottom:.65rem;left:.45rem;width:2px;border-radius:999px;background:linear-gradient(180deg,var(--accent-strong),rgb(20 184 166 / 76%),transparent)}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;top:1.45rem;left:-2rem;width:.8rem;height:.8rem;border:3px solid var(--background);border-radius:999px;background:var(--accent-strong);box-shadow:0 0 0 4px #38bdf821,0 0 24px #38bdf840}.timeline-item-featured:before{width:1rem;height:1rem;left:-2.08rem;background:linear-gradient(135deg,var(--accent-strong),rgb(20 184 166))}.timeline-content{width:100%}.compact-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-card{display:flex;flex-direction:column;border-radius:1.35rem}.project-media{display:grid;place-items:center;padding:1rem;border-bottom:1px solid rgb(148 163 184 / 12%);overflow:hidden;aspect-ratio:16 / 10;background:radial-gradient(circle at 20% 20%,rgb(56 189 248 / 16%),transparent 38%),linear-gradient(180deg,#0f172ae0,#030712d6)}.project-media img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:1rem;box-shadow:0 18px 50px #00000047}.project-body{display:flex;flex-direction:column;flex:1;padding:clamp(1.2rem,3vw,1.65rem)}.tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.15rem 0 1.35rem}.tags span{border:1px solid var(--line);border-radius:999px;padding:.32rem .58rem;color:var(--muted-strong);background:#ffffff08;font-size:.8rem;font-weight:680;transition:border-color .25s ease,color .25s ease,background .25s ease}.tags span:hover{border-color:#7dd3fc66;color:var(--text);background:var(--accent-soft)}.project-links{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.75rem;padding-top:.35rem;border-top:1px solid rgb(148 163 184 / 14%);margin-top:auto}.project-links .button{justify-content:center;min-width:9rem;border:1px solid rgb(125 211 252 / 42%);padding:.6rem .9rem;color:var(--text);font-size:.92rem;box-shadow:0 12px 28px #00000038}.project-links .button.secondary{background:#ffffff14}.project-links .button.primary{background:linear-gradient(135deg,#38bdf84d,#14b8a62e)}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.skill-card ul{display:flex;flex-wrap:wrap;gap:.45rem;padding:0;list-style:none}.skill-card li{margin:0;font-size:.94rem}.contact-panel{display:grid;grid-template-columns:repeat(3,minmax(7.5rem,1fr));gap:.65rem;align-self:center;width:100%}.contact-panel a{display:flex;align-items:center;justify-content:center;min-height:2.9rem;border:1px solid var(--line);border-radius:.9rem;color:var(--muted-strong);font-size:.95rem;font-weight:720;padding:.68rem 1rem;text-align:center;text-decoration:none;white-space:nowrap;background:#03071270;transition:border-color .25s ease,background .25s ease,color .25s ease,transform .25s ease}.contact-panel a:hover{border-color:#7dd3fc57;background:#38bdf814;color:var(--text);transform:translateY(-2px)}.contact-panel a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 3rem;border-top:1px solid var(--line);border-radius:1.25rem 1.25rem 0 0;background:linear-gradient(135deg,#0f172a8a,#030712b8);color:var(--muted);font-size:.9rem}.site-footer span:first-child{padding-left:clamp(1rem,3vw,2rem)}.site-footer span:last-child{padding-right:clamp(1rem,3vw,2rem)}@media(max-width:900px){.snapshot-grid,.project-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-links .text-link{min-height:2.35rem;padding:.38rem .82rem;font-size:.98rem;font-weight:680;line-height:1}@media(max-width:820px){.site-header{align-items:flex-start;flex-direction:column;padding-inline:1rem}nav{justify-content:flex-start}.section-shell{padding:3.8rem 0}.hero{min-height:auto;padding-top:4.2rem;padding-bottom:6.4rem}.intro-grid,.contact,.columns,.timeline{grid-template-columns:1fr}.contact-panel{justify-self:stretch;width:100%}.timeline{padding-left:1.5rem}.timeline-item:before{left:-1.57rem}.timeline-item-featured:before{left:-1.65rem}}@media(max-width:580px){.site-header{position:static}.brand-subtitle{max-width:18rem}h1{font-size:clamp(2.25rem,12vw,3.4rem)}.hero{padding-top:3.6rem}.hero-contact{align-items:center;flex-direction:column;gap:.45rem}.snapshot-grid,.project-grid,.skills-grid,.contact-panel{grid-template-columns:1fr}.contact-panel a{white-space:normal;overflow-wrap:anywhere}.project-links .button{width:100%}.actions .button{width:100%;justify-content:center}}
