@font-face{font-family:Space Grotesk;src:url(/assets/SpaceGrotesk-Variable-BUwR3fZg.ttf) format("truetype");font-weight:300 700;font-style:normal;font-display:swap}:root{color-scheme:dark;--bg: #030303;--panel: #101010;--panel-soft: #1a1a1a;--panel-strong: #101010;--border: rgba(255, 255, 255, .13);--border-strong: rgba(255, 255, 255, .2);--text: #f7f7f1;--muted: #a6a6a0;--subtle: #71716d;--accent: #28e98c;--accent-dark: #0bbd6b;--cyan: #00d7c7;--gold: #ffc400;--shadow: 0 24px 80px rgba(0, 0, 0, .38);--radius-lg: 22px;--radius-md: 16px;--radius-sm: 10px;font-family:Space Grotesk,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 74% 11%,rgba(40,244,154,.06),transparent 27rem),radial-gradient(circle at 72% 38%,rgba(0,128,255,.05),transparent 22rem),#030303}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.ambient{position:fixed;z-index:-1;width:30rem;height:30rem;pointer-events:none;border-radius:999px;filter:blur(80px);opacity:.15;transform:translateZ(0);animation:ambientDrift 18s ease-in-out infinite alternate}.ambient-one{top:6%;right:12%;background:#28f49a47}.ambient-two{right:3%;bottom:18%;background:#157bff38;animation-delay:-6s}.app-shell{display:grid;grid-template-columns:360px minmax(0,1fr);gap:64px;width:calc(100% - 96px);max-width:1480px;margin:0 auto;padding:60px 0 80px}.sidebar-column{position:relative}.scroll-hint{display:none}.profile-card{position:sticky;top:60px;display:flex;flex-direction:column;align-items:center;width:100%;padding:20px;border:0;border-radius:30px;background:linear-gradient(180deg,#ffffff09,#ffffff03),var(--panel);box-shadow:inset 0 0 0 1px var(--border),var(--shadow)}.profile-card-copy{display:flex;flex-direction:column;align-items:center;width:100%}.portrait{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--border);border-radius:24px;background:#202020}.portrait-img{width:100%;height:100%;object-fit:cover;display:block}.availability{display:inline-flex;gap:8px;align-items:center;justify-content:center;margin-top:30px;padding:6px 15px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:#ffffff06;font-size:16px;line-height:1.6}.availability-dot{position:relative;width:8px;height:8px;display:inline-block;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px #28f49a14,0 0 24px #28f49a73}.availability-dot:after{content:"";position:absolute;inset:-7px;border:1px solid rgba(40,244,154,.32);border-radius:inherit;opacity:0;transform:scale(.7);animation:availabilityPulse 2.6s ease-out infinite}.profile-card h2{margin:22px 0 20px;font-size:26px;font-weight:600;letter-spacing:-.04em}.social-row{display:flex;justify-content:center;gap:8px;width:100%}.social-row a{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--border);border-radius:10px;color:var(--text);background:#ffffff05;transition:color .24s ease,border-color .24s ease,background .24s ease,transform .24s ease}.social-row a:hover{color:var(--accent);border-color:#28f49a5c;background:#28f49a14;transform:translateY(-2px)}.profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:24px}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:500;line-height:1;transition:transform .24s ease,border-color .24s ease,background .24s ease,color .24s ease,box-shadow .24s ease}.button svg,.button .asset-icon{width:18px;height:18px}.button-primary{color:#03140c;background:linear-gradient(180deg,#31ffa2,#20e88d);box-shadow:0 16px 30px #28f49a2e}.button-primary:hover{transform:translateY(-2px);box-shadow:0 20px 38px #28f49a42}.button-secondary{color:var(--text);border-color:var(--border);background:#ffffff06}.button-secondary:hover{border-color:var(--border-strong);background:#ffffff0f;transform:translateY(-2px)}.icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.asset-icon{display:block;width:1em;height:1em;flex:0 0 auto;object-fit:contain}.social-row .icon{width:20px;height:20px}main{min-width:0}.hero{min-height:auto;display:flex;flex-direction:column;justify-content:flex-start;padding-top:0}.hero h1{container-type:inline-size;max-width:980px;margin:0;color:var(--text);font-size:52px;line-height:1.2;letter-spacing:-.02em;font-weight:500}.hero h1 .typing-title{display:block;color:var(--accent)}.hero-name-emoji{white-space:nowrap}.typing-title{min-height:1.2em}@container (max-width: 620px){.typing-title{min-height:2.4em}}.typing-title:after{content:"";display:inline-block;width:.08em;height:.9em;margin-left:.08em;background:currentColor;transform:translateY(.1em);animation:typingCursor .9s ease-in-out infinite}.hero-description{max-width:940px;margin:28px 0 0;color:#f4f4ee;font-size:16px;font-weight:500;line-height:1.6;letter-spacing:-.02em}.section{margin-top:80px;scroll-margin-top:36px}.section-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.section-header h2{margin:0;font-size:24px;font-weight:500;line-height:1.4;letter-spacing:-.02em}.section-header .asset-icon{width:24px;height:24px}.timeline-list,.education-list{display:grid;gap:12px}.record-card,.education-card,.stack-card,.contact-card{border:1px solid var(--border);background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--panel);transition:transform .26s ease,border-color .26s ease,background .26s ease}.record-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px;padding:16px 24px;border-radius:12px;animation-delay:var(--delay)}.record-content{min-width:0}.record-card:hover,.education-card:hover,.stack-card:hover,.contact-card:hover{border-color:#ffffff3d;background:linear-gradient(180deg,#ffffff0d,#ffffff05),var(--panel);transform:translateY(-2px)}.record-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:0}.record-icon .asset-icon{width:24px;height:24px}.record-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.record-card .record-topline{flex-wrap:wrap;gap:10px 16px;min-width:0}.record-card .record-topline>div{flex:1 1 min(100%,280px);min-width:0;max-width:100%}.record-topline h3,.project-info h3,.stack-card h3{margin:0;color:var(--text);font-size:19px;font-weight:600;line-height:1.6;letter-spacing:-.02em}.record-card .record-topline h3{overflow-wrap:break-word}.record-topline p,.project-info p,.stack-card p,.contact-heading p{margin:5px 0 0;color:var(--muted);font-size:14px;font-weight:500;line-height:1.6;letter-spacing:-.02em}.record-topline span{flex:0 0 auto;max-width:100%;padding:6px 12px;border:1px solid var(--border);border-radius:4px;color:var(--text);background:#ffffff0a;font-size:16px;font-weight:500;line-height:1.6;white-space:nowrap}.record-description{margin:10px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);color:#d7d7d0;font-size:16px;font-weight:500;line-height:1.6;letter-spacing:-.02em}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}.project-card{display:block;padding:16px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#ffffff09,#ffffff04),var(--panel);transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s ease,background .3s ease;animation-delay:var(--delay)}.project-card:hover{border-color:#28f49a47;background:linear-gradient(180deg,#28f49a0d,#ffffff04),var(--panel);transform:translateY(-5px)}.project-card:hover .project-art{transform:scale(1.018)}.project-art{position:relative;aspect-ratio:1.2874;height:auto;overflow:hidden;border-radius:10px;transition:transform .42s cubic-bezier(.2,.8,.2,1)}.project-art img{display:block;width:100%;height:100%;object-fit:cover}.project-info{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 2px 4px}.project-info h3{font-size:18px}.project-link{position:relative;display:grid;width:48px;height:48px;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:999px;color:var(--text);background:#ffffff0f;transition:color .24s ease,transform .24s ease,background .24s ease,border-color .24s ease}.project-card:hover .project-link,.project-link:hover{border-color:#ffffff47;background:#ffffff14}.project-arrow-track{position:relative;display:block;width:24px;height:24px}.project-arrow-track .asset-icon{position:absolute;inset:0;width:24px;height:24px;transition:opacity .28s ease,transform .28s cubic-bezier(.2,.8,.2,1)}.project-arrow-track .asset-icon:nth-child(2){opacity:0;transform:translate(-130%,130%)}.project-card:hover .project-arrow-track .asset-icon:first-child{opacity:0;transform:translate(130%,-130%)}.project-card:hover .project-arrow-track .asset-icon:nth-child(2){opacity:1;transform:translate(0)}.education-card{padding:18px;border-radius:var(--radius-md)}.stack-list{display:grid;gap:12px}.stack-card{display:grid;grid-template-columns:minmax(140px,180px) minmax(0,1fr);align-items:center;gap:24px;min-height:0;padding:18px 20px;border-color:#ffffff2e;border-radius:16px}.stack-card-heading{display:flex;align-items:center;min-width:0}.stack-icon{display:grid;width:52px;height:52px;place-items:center;overflow:hidden;border-radius:16px}.stack-icon--plain{padding:3px;background:transparent;box-shadow:none}.stack-icon--plain .asset-icon{width:150%;height:150%;transform:scale(1.12)}.stack-icon--subtle-tile{background:#19191b;border:1px solid #303036;box-shadow:none}.stack-icon-glyph{flex:0 0 auto}.stack-icon--subtle-tile .stack-icon-glyph{width:30px;height:30px}.stack-icon .asset-icon{width:100%;height:100%;object-fit:cover;object-position:center}.stack-card h3{font-size:18px;line-height:1.2}.stack-tech-list{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}.stack-tech-item{display:flex}.stack-tech-badge{display:grid;width:52px;height:52px;place-items:center;overflow:hidden;padding:10px;border:1px solid #303036;border-radius:16px;background:#19191b;box-shadow:none}.stack-tech-logo{width:100%;height:100%;object-fit:contain}.stack-tech-logo--wide{transform:scale(1.08)}.stack-tech-logo--tall{transform:scale(1.12)}.stack-card p{margin-top:0;line-height:1.2}.contact-heading{margin-bottom:20px}.contact-heading h2{margin:0;font-size:28px;letter-spacing:-.055em}.contact-heading p{max-width:500px;margin-top:10px;font-size:13px}.contact-layout{display:block}.contact-cards{display:grid;gap:12px;width:min(450px,100%)}.contact-card{display:flex;align-items:center;gap:16px;min-height:68px;padding:10px;border-radius:8px}.contact-card .asset-icon{width:24px;height:24px}.contact-card span{display:grid;gap:4px;color:var(--muted);font-size:14px;line-height:1.2}.contact-card strong{color:var(--text);font-size:16px}.site-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:81px;padding:20px max(28px,calc((100% - 1440px)/2));border-top:1px solid var(--border);background:#101010}.signature{grid-column:2;display:inline-flex;align-items:center;gap:14px;color:#f1f1ea;opacity:.86}.footer-legal-nav{justify-self:end;color:var(--muted);font-size:13px;font-weight:500;line-height:1.4}.footer-legal-nav a{transition:color .22s ease,opacity .22s ease}.footer-legal-nav a:hover,.footer-legal-nav a:focus-visible{color:var(--accent)}.footer-avatar{display:block;width:28px;height:28px;flex:0 0 28px;object-fit:cover;object-position:center 28%;border:1px solid rgba(255,255,255,.14);border-radius:999px;opacity:.82}.footer-avatar:after{display:none}.signature-name{display:block;width:220px;height:auto;object-fit:contain}.legal-shell{width:calc(100% - 96px);max-width:980px;min-height:calc(100vh - 81px);margin:0 auto;padding:60px 0 80px}.legal-back-link{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:0 15px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:#ffffff06;font-size:14px;font-weight:500;line-height:1;transition:transform .24s ease,border-color .24s ease,background .24s ease,color .24s ease}.legal-back-link:before{content:"";width:8px;height:8px;margin-right:9px;border-bottom:1.5px solid currentColor;border-left:1.5px solid currentColor;transform:rotate(45deg)}.legal-back-link:hover,.legal-back-link:focus-visible{border-color:var(--border-strong);background:#ffffff0f;color:var(--accent);transform:translateY(-2px)}.legal-hero{margin-top:58px}.legal-hero h1{max-width:820px;margin:0;color:var(--text);font-size:52px;font-weight:500;line-height:1.08;letter-spacing:-.02em}.legal-hero p{max-width:660px;margin:18px 0 0;color:var(--muted);font-size:16px;font-weight:500;line-height:1.6;letter-spacing:-.02em}.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:34px}.legal-card{min-width:0;padding:20px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#ffffff08,#ffffff03),var(--panel)}.legal-card--wide{grid-column:1 / -1}.legal-card h2{margin:0 0 14px;color:var(--text);font-size:19px;font-weight:600;line-height:1.4;letter-spacing:-.02em}.legal-card address,.legal-card p,.legal-card dl{margin:0;color:#d7d7d0;font-size:16px;font-weight:500;line-height:1.6;letter-spacing:-.02em}.legal-card address{display:grid;gap:4px;font-style:normal}.legal-card address strong{color:var(--text)}.legal-card dl{display:grid;gap:12px}.legal-card dl div{display:grid;gap:3px}.legal-card dt{color:var(--muted);font-size:14px}.legal-card dd{margin:0}.legal-card a{color:var(--text);transition:color .22s ease}.legal-card a:hover,.legal-card a:focus-visible{color:var(--accent)}[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .68s cubic-bezier(.2,.8,.2,1),transform .68s cubic-bezier(.2,.8,.2,1)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.profile-card[data-reveal]{transition-delay:60ms}.hero-copy[data-reveal]{transition-delay:.18s}.record-card,.project-card{animation:itemSettle .62s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--delay)}@keyframes ambientDrift{0%{transform:translate3d(-2%,-1%,0) scale(.96)}to{transform:translate3d(4%,3%,0) scale(1.08)}}@keyframes availabilityPulse{0%{opacity:.38;transform:scale(.72)}70%,to{opacity:0;transform:scale(1.75)}}@keyframes itemSettle{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typingCursor{0%,to{opacity:.2}50%{opacity:1}}@media(max-width:1240px){.app-shell{grid-template-columns:320px minmax(0,1fr);gap:48px;width:calc(100% - 64px)}.hero h1{font-size:46px}}@media(max-width:1120px){.app-shell{grid-template-columns:1fr;gap:32px;width:calc(100% - 56px);max-width:1080px;padding:40px 0 72px}.profile-card{position:relative;top:auto;display:grid;grid-template-columns:minmax(188px,228px) minmax(0,1fr);align-items:center;gap:24px;padding:18px;border-radius:24px}.profile-card-copy{align-items:flex-start;min-width:0}.portrait{max-width:228px;margin:0;border-radius:20px}.profile-card h2{width:100%;margin:16px 0 14px;font-size:24px;text-align:left}.availability{margin-top:0;padding:5px 12px;font-size:13px;justify-content:flex-start}.social-row{justify-content:flex-start;max-width:320px}.profile-actions{max-width:320px;margin-top:18px}.hero h1{font-size:44px}}@media(max-width:920px){.app-shell{gap:28px;width:calc(100% - 40px);padding:36px 0 64px}.profile-card{grid-template-columns:minmax(168px,204px) minmax(0,1fr);gap:20px;padding:16px}.portrait{max-width:204px}.profile-card h2{margin:14px 0 12px;font-size:22px}.availability{font-size:13px}.social-row a{width:38px;height:38px}.profile-actions{max-width:300px;margin-top:16px}.hero h1{font-size:40px;line-height:1.16}.hero-description{margin-top:18px;font-size:13px;line-height:1.6}.section{margin-top:54px}.section-header{margin-bottom:14px}.section-header h2{font-size:18px}.record-card{grid-template-columns:24px minmax(0,1fr);gap:12px;padding:16px;border-radius:12px}.record-icon,.record-icon .asset-icon{width:24px;height:24px}.record-topline{gap:10px}.record-topline h3,.project-info h3,.stack-card h3{font-size:16px}.record-topline span{padding:6px 10px;font-size:12px}.record-description{margin-top:14px;font-size:13px;line-height:1.6}.project-card{padding:9px;border-radius:12px}.project-art{height:auto}.project-info{padding:13px 0 2px}.project-link{width:34px;height:34px}.education-card{padding:13px;border-radius:12px}.stack-card{grid-template-columns:1fr;gap:14px;min-height:0;padding:15px}.contact-card{min-height:58px}.stack-card-heading{gap:12px}.stack-tech-list{gap:10px}.stack-tech-badge{width:52px;height:52px;padding:10px;border-radius:16px}.contact-heading h2{font-size:20px}.site-footer{padding:24px 16px}.legal-shell{width:calc(100% - 40px);padding:40px 0 64px}.legal-hero{margin-top:42px}.legal-hero h1{font-size:40px}.legal-hero p,.legal-card address,.legal-card p,.legal-card dl{font-size:13px}.legal-grid{grid-template-columns:1fr;margin-top:24px}}@media(max-width:640px){.app-shell{grid-template-columns:1fr;gap:28px;width:100%;max-width:430px;padding:28px 20px 60px}.profile-card{display:flex;flex-direction:column;align-items:center;width:100%;margin:0 auto;padding:16px;border-radius:24px}.profile-card-copy{align-items:center}.portrait{width:92%;max-width:none;border-radius:20px}.profile-card h2{margin:16px 0 14px;font-size:22px;text-align:center}.availability{margin-top:16px;padding:5px 12px;font-size:13px}.social-row{justify-content:center;max-width:none}.profile-actions{max-width:none;margin-top:16px}.scroll-hint{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;color:var(--muted);font-size:12px;font-weight:500;opacity:.76;animation:scrollHintSettle 1.8s ease-in-out infinite}.scroll-hint:after{content:"";width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px)}.hero h1{font-size:36px}.site-footer{grid-template-columns:1fr;gap:14px;justify-items:center}.signature{grid-column:auto}.footer-legal-nav{justify-self:center}.legal-shell{width:100%;max-width:430px;padding:28px 20px 60px}.legal-hero h1{font-size:36px}}@media(max-width:380px){.app-shell{width:100%;padding-right:12px;padding-left:12px}.profile-card{padding:14px}.portrait{width:90%}.social-row a{width:36px;height:36px}.record-topline{flex-direction:column;align-items:flex-start}.project-art{height:auto}.legal-shell{padding-right:12px;padding-left:12px}}@keyframes scrollHintSettle{0%,to{opacity:.58;transform:translateY(0)}50%{opacity:.88;transform:translateY(3px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}[data-reveal]{opacity:1;transform:none}.typing-title:after{animation:none}.availability-dot:after,.scroll-hint{animation:none}}
