@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-grotesk-700.woff2) format("woff2");font-weight:700;font-display:optional;font-style:normal}@font-face{font-family:Cabinet Grotesk;src:url(/fonts/cabinet-grotesk-800.woff2) format("woff2");font-weight:800;font-display:block;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-300.woff2) format("woff2");font-weight:300;font-display:optional;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-400.woff2) format("woff2");font-weight:400;font-display:block;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-500.woff2) format("woff2");font-weight:500;font-display:optional;font-style:normal}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-400.woff2) format("woff2");font-weight:400;font-display:block;font-style:normal}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2");font-weight:500;font-display:optional;font-style:normal}:root{color-scheme:dark;--bg: #0c0b09;--surface-1: #141310;--surface-2: #1a1916;--surface-3: #24221d;--text: #e8e6e1;--muted: #9a9790;--muted-2: #6b6a66;--accent: oklch(.72 .14 65);--accent-strong: oklch(.78 .16 65);--accent-soft: oklch(.72 .14 65 / .14);--border: oklch(from #e8e6e1 l c h / .08);--border-strong: oklch(from #e8e6e1 l c h / .16);--shadow: 0 24px 80px oklch(.12 .03 65 / .55);--shadow-soft: 0 16px 48px oklch(.12 .03 65 / .28);--font-display: "Cabinet Grotesk", system-ui, sans-serif;--font-body: "Satoshi", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--container: min(1180px, calc(100vw - 40px) )}[data-theme=light]{color-scheme:light;--bg: #eee8dc;--surface-1: #fbf8f0;--surface-2: #e5ddce;--surface-3: #d5cab8;--text: #1c1a16;--muted: #534d43;--muted-2: #746c5e;--accent: oklch(.52 .13 65);--accent-strong: oklch(.46 .14 65);--accent-soft: oklch(.52 .13 65 / .16);--border: oklch(from #1c1a16 l c h / .14);--border-strong: oklch(from #1c1a16 l c h / .24);--shadow: 0 24px 80px oklch(.52 .05 65 / .24);--shadow-soft: 0 14px 42px oklch(.52 .05 65 / .18)}*{box-sizing:border-box}html,html.has-lenis{scroll-behavior:auto}@media (max-width: 1024px){html{scroll-behavior:smooth}}body{min-width:320px;margin:0;background:linear-gradient(115deg,transparent 0 42%,oklch(from var(--accent) l c h / .075) 42% 42.35%,transparent 42.35% 100%),radial-gradient(circle at 50% -20%,oklch(.72 .06 65 / .08),transparent 34rem),var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;text-rendering:optimizeLegibility;overflow-x:hidden;transition:background-color .24s ease,color .24s ease}[data-theme=light] body{background:linear-gradient(115deg,transparent 0 41.75%,oklch(from var(--accent) l c h / .16) 41.75% 42.2%,transparent 42.2% 100%),linear-gradient(90deg,oklch(from var(--text) l c h / .035) 1px,transparent 1px),radial-gradient(circle at 50% -18%,oklch(from var(--accent) l c h / .18),transparent 34rem),var(--bg);background-size:auto,96px 96px,auto,auto}body.menu-open{overflow:hidden}body.is-loading{overflow:hidden;overscroll-behavior:none}img,svg{display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:#0c0b09}.skip-link{position:fixed;top:var(--space-4);left:var(--space-4);z-index:1000;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--accent);color:#0c0b09;font-weight:700;transform:translateY(-150%);transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}.preloader{position:fixed;inset:0;z-index:900;display:grid;place-items:center;background:linear-gradient(135deg,oklch(from var(--accent) l c h / .09),transparent 38%),var(--bg);color:var(--text);pointer-events:none}.preloader:after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,transparent,oklch(from var(--text) l c h / .06),transparent),repeating-linear-gradient(0deg,transparent 0 7px,oklch(from var(--text) l c h / .018) 7px 8px);transform:translate(-18%);opacity:.45}.preloader__panel{position:relative;z-index:1;display:grid;justify-items:center;gap:var(--space-4);padding:var(--space-8);color:var(--accent)}.preloader__name{color:var(--text);font-family:var(--font-display);font-size:clamp(1.35rem,1rem + 1.4vw,2.4rem);font-weight:800;letter-spacing:-.03em}.preloader__line{width:min(220px,48vw);height:1px;overflow:hidden;background:var(--border)}.preloader__line span{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.34;background-image:repeating-radial-gradient(circle at 0 0,oklch(from var(--text) l c h / .08) 0 1px,transparent 1px 3px),linear-gradient(90deg,oklch(from var(--text) l c h / .03) 1px,transparent 1px),linear-gradient(0deg,oklch(from var(--text) l c h / .025) 1px,transparent 1px);background-size:4px 4px,96px 96px,96px 96px;mask-image:linear-gradient(to bottom,black,transparent 86%)}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:999;pointer-events:none;border-radius:999px;transform:translate(-50%,-50%);opacity:0;will-change:transform,opacity}.cursor-dot{width:6px;height:6px;background:var(--accent)}.cursor-ring{width:12px;height:12px;border:1px solid var(--accent);mix-blend-mode:difference;display:grid;place-items:center;color:var(--accent);font-family:var(--font-mono);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase}.cursor-ring.is-active{width:40px;height:40px;background:#e0903614}.cursor-ring.has-label{width:58px;height:58px;background:#e090361f;backdrop-filter:blur(8px)}.cursor-ring.has-label:after{content:attr(data-label)}.site-header{position:sticky;top:var(--space-4);z-index:50;width:var(--container);margin:var(--space-4) auto 0;transition:transform .26s ease,opacity .26s ease}.nav-shell{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-2);border:1px solid var(--border);border-radius:999px;background:oklch(from var(--surface-1) l c h / .72);box-shadow:var(--shadow-soft);backdrop-filter:blur(22px);transition:background-color .24s ease,border-color .24s ease,box-shadow .24s ease,transform .24s ease}.site-header.is-scrolled .nav-shell{border-color:var(--border-strong);background:oklch(from var(--surface-1) l c h / .84);box-shadow:var(--shadow);transform:translateY(-2px)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-4);border-radius:999px;color:var(--text);font-family:var(--font-display);font-weight:800;letter-spacing:.04em}.logo-mark{display:block;flex:0 0 auto;object-fit:contain;object-position:center}.preloader__mark{width:150px;height:150px;color:currentColor}.brand-mark{width:55px;height:55px;color:var(--accent)}.nav-links{display:flex;justify-content:center;gap:var(--space-1)}.nav-link{min-height:44px;padding:0 var(--space-4);border-radius:999px;color:var(--muted);display:inline-flex;align-items:center;font-weight:500;transition:color .18s ease,background-color .18s ease,transform .18s ease}.nav-link:hover,.nav-link.is-active{color:var(--text);background:var(--accent-soft);transform:translateY(-1px)}.theme-toggle,.nav-toggle{min-width:48px;min-height:48px;border-radius:999px;background:transparent;color:var(--text);cursor:pointer}.theme-toggle__track{position:relative;display:block;width:48px;height:28px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2)}.theme-toggle__thumb{position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:var(--accent);transition:transform .22s ease}[data-theme=light] .theme-toggle__thumb{transform:translate(20px)}.nav-toggle{display:none;position:relative}.nav-toggle span{position:absolute;left:14px;right:14px;height:2px;border-radius:2px;background:currentColor;transition:transform .22s ease,top .22s ease}.nav-toggle span:first-child{top:18px}.nav-toggle span:last-child{top:28px}.nav-toggle.is-open span:first-child{top:23px;transform:rotate(45deg)}.nav-toggle.is-open span:last-child{top:23px;transform:rotate(-45deg)}.section{width:var(--container);margin:0 auto;padding:var(--space-24) 0}.hero{min-height:calc(100vh - 84px);display:grid;align-items:center;padding-top:var(--space-12);position:relative}.hero:after{content:"";position:absolute;right:min(6vw,80px);bottom:12%;width:min(34vw,440px);height:min(34vw,440px);border:1px solid var(--border);border-radius:48% 52% 46% 54%/52% 46% 54% 48%;background:linear-gradient(90deg,transparent 48%,var(--border) 48% 52%,transparent 52%),linear-gradient(0deg,transparent 48%,var(--border) 48% 52%,transparent 52%);opacity:.46;transform:rotate(-12deg);pointer-events:none}.hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.72fr);align-items:center;gap:var(--space-12);position:relative;z-index:1}.hero__content{max-width:1040px}.hero-visual{min-height:430px;width:min(100%,440px);justify-self:end;padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-xl);background:linear-gradient(145deg,oklch(from var(--surface-1) l c h / .94),oklch(from var(--surface-2) l c h / .72)),radial-gradient(circle at 80% 12%,var(--accent-soft),transparent 36%);box-shadow:var(--shadow);backdrop-filter:blur(18px);position:relative;overflow:hidden;transform-style:preserve-3d;display:flex;flex-direction:column;justify-content:center;gap:var(--space-6)}.hero-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 49.8%,var(--border) 49.8% 50.2%,transparent 50.2% 100%),linear-gradient(0deg,transparent 0 49.8%,var(--border) 49.8% 50.2%,transparent 50.2% 100%);opacity:.34;pointer-events:none}.hero-visual:after{content:"";position:absolute;right:-22%;bottom:-18%;width:280px;height:280px;border:1px solid var(--border-strong);border-radius:50%;opacity:.55;pointer-events:none}.hero-visual__eyebrow,.hero-visual h2,.hero-visual__proofs,.hero-visual__note{position:relative;z-index:1}.hero-visual__eyebrow{margin:0;color:var(--accent);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.hero-visual h2{max-width:9ch;margin:0;font-size:clamp(2rem,1.35rem + 2.2vw,3.5rem);line-height:.96}.hero-visual__proofs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.hero-visual__proofs div{display:flex;flex-direction:column;gap:var(--space-2);min-height:118px;justify-content:center;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:oklch(from var(--surface-1) l c h / .58)}.hero-visual__proofs strong{color:var(--text);font-family:var(--font-display);font-size:clamp(1.7rem,1.2rem + 1.4vw,2.5rem);line-height:1;letter-spacing:-.04em}.hero-visual__proofs span,.hero-visual__note{color:var(--muted);font-size:.92rem}.hero-visual__note{max-width:36ch;margin:0}.eyebrow{margin:0 0 var(--space-4);color:var(--accent);font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3{font-family:var(--font-display);line-height:1.02;letter-spacing:-.04em}h1{margin:0;font-size:clamp(3rem,.5rem + 7vw,8rem);font-weight:800;max-width:920px}h1 span{display:block}h2{max-width:820px;margin:0;font-size:clamp(2.2rem,1.2rem + 4vw,5.5rem);font-weight:800}h3{margin:0;font-size:clamp(1.45rem,1rem + 1.2vw,2.25rem);font-weight:700}.hero__kicker{min-height:1.6em;margin:var(--space-6) 0 var(--space-4);color:var(--accent);font-family:var(--font-mono);font-size:clamp(1rem,.85rem + .7vw,1.35rem)}.hero__kicker span:after{content:"";display:inline-block;width:.58em;height:1.05em;margin-left:.22em;border-right:2px solid currentColor;transform:translateY(.16em)}.hero__lead{max-width:640px;margin:0;color:var(--muted);font-size:clamp(1.08rem,.96rem + .55vw,1.35rem)}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--space-5);border-radius:999px;border:1px solid var(--border-strong);font-weight:700;cursor:pointer;position:relative;overflow:hidden;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.button:before{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(110deg,transparent,oklch(from var(--text) l c h / .18),transparent);transform:translate(-120%);transition:transform .52s ease}.button:hover{transform:translateY(-3px);border-color:var(--accent)}.button:hover:before{transform:translate(120%)}.button--primary{border-color:transparent;background:var(--accent);color:#0c0b09}.button--secondary{background:oklch(from var(--surface-1) l c h / .66);color:var(--text)}.identity-card,.panel,.impact-card,.skill-cluster,.timeline-card,.project-card,.education-card,.contact-form,.contact-card{border:1px solid var(--border);background:linear-gradient(180deg,oklch(from var(--surface-1) l c h / .92),oklch(from var(--surface-2) l c h / .78));box-shadow:var(--shadow-soft);backdrop-filter:blur(18px)}[data-theme=light] .identity-card,[data-theme=light] .panel,[data-theme=light] .impact-card,[data-theme=light] .skill-cluster,[data-theme=light] .timeline-card,[data-theme=light] .project-card,[data-theme=light] .education-card,[data-theme=light] .contact-form,[data-theme=light] .contact-card,[data-theme=light] .hero-visual{background:linear-gradient(180deg,oklch(from var(--surface-1) l c h / .96),oklch(from var(--surface-2) l c h / .82));border-color:var(--border-strong);box-shadow:var(--shadow-soft)}.identity-card{max-width:420px;justify-self:end;padding:var(--space-6);border-radius:var(--radius-xl);transform-style:preserve-3d;will-change:transform}.identity-card__top{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:.9rem;font-weight:700}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}.identity-card__mono{margin:var(--space-8) 0;color:var(--accent);font-family:var(--font-mono);font-size:.9rem}.identity-card__list{display:grid;gap:var(--space-4);margin:0}.identity-card__list div{display:flex;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.identity-card dt{color:var(--muted-2)}.identity-card dd{margin:0;color:var(--text);text-align:right;font-weight:700}.section-heading{margin-bottom:var(--space-12)}.split-line,.word-mask{display:inline-block;overflow:hidden;padding:.06em 0 .14em;margin:-.06em 0 -.14em;vertical-align:top}.split-line__inner,.word{display:inline-block;line-height:1.08;will-change:transform}.section-heading h2 .word-mask{margin-right:.16em}.about__grid,.contact__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-5);align-items:stretch}.panel,.contact-form,.contact-card{border-radius:var(--radius-xl);padding:clamp(var(--space-6),4vw,var(--space-10))}.panel p{max-width:78ch;margin:0;color:var(--muted);font-size:clamp(1rem,.95rem + .25vw,1.12rem)}.panel p+p{margin-top:var(--space-5)}.impact-grid{display:grid;gap:var(--space-5)}.impact-card{min-height:160px;padding:var(--space-6);border-radius:var(--radius-lg)}.impact-card span{display:block;color:var(--accent);font-family:var(--font-display);font-size:clamp(2.4rem,2rem + 2vw,4rem);font-weight:800;letter-spacing:-.04em;line-height:.9}.impact-card p{margin:var(--space-4) 0 0;color:var(--muted)}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}.skill-cluster{min-height:220px;padding:var(--space-6);border-radius:var(--radius-xl)}.skill-cluster h3{margin-bottom:var(--space-6)}.skill-pills{display:flex;flex-wrap:wrap;gap:var(--space-3)}.skill-pill{display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3);border:1px solid var(--border);border-radius:999px;background:oklch(from var(--surface-2) l c h / .7);color:var(--text);font-size:.94rem;transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.skill-pill img{width:18px;height:18px}.skill-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;border-radius:5px;background:color-mix(in srgb,var(--brand),transparent 78%);color:var(--brand);font-family:var(--font-mono);font-size:.58rem;font-weight:700;line-height:1;text-transform:uppercase}.skill-pill:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--brand),transparent 45%);background:color-mix(in srgb,var(--brand),transparent 88%)}.timeline{display:grid;gap:var(--space-5);position:relative}.timeline:before,.timeline-progress{content:"";position:absolute;top:var(--space-2);bottom:var(--space-2);left:16px;width:1px;border-radius:999px}.timeline:before{background:var(--border)}.timeline-progress{background:linear-gradient(to bottom,var(--accent),transparent);transform:scaleY(0);transform-origin:top;pointer-events:none}.timeline-card{display:grid;grid-template-columns:220px 1fr;gap:var(--space-8);padding:var(--space-6);border-radius:var(--radius-xl);position:relative;overflow:hidden}.timeline-card:after{content:"";position:absolute;top:calc(var(--space-6) + 2px);left:var(--space-5);width:10px;height:10px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:0 0 0 7px oklch(from var(--accent) l c h / .05);transition:background-color .22s ease,box-shadow .22s ease}.timeline-card.is-active:after{background:var(--accent);box-shadow:0 0 0 9px var(--accent-soft)}.timeline-card:before{content:"";position:absolute;top:var(--space-6);bottom:var(--space-6);left:220px;width:1px;background:linear-gradient(to bottom,transparent,var(--accent),transparent);opacity:.46}.timeline-card--featured{min-height:360px;background:linear-gradient(135deg,var(--accent-soft),transparent 44%),linear-gradient(180deg,oklch(from var(--surface-1) l c h / .94),oklch(from var(--surface-2) l c h / .82))}.timeline-card__date,.project-card__meta{color:var(--accent);font-family:var(--font-mono);font-size:.82rem;letter-spacing:.03em}.timeline-card__date,.timeline-card__body{padding-left:var(--space-8)}.badge{display:inline-flex;align-items:center;min-height:34px;padding:0 var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--border-strong);border-radius:999px;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:.78rem;font-weight:500}.timeline-card__company{margin:var(--space-2) 0 var(--space-5);color:var(--muted)}.timeline-card ul{display:grid;gap:var(--space-3);margin:0;padding-left:1.1rem;color:var(--muted)}.timeline-card li::marker{color:var(--accent)}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(180px,auto);grid-auto-flow:dense;align-items:stretch;gap:var(--space-5)}.project-card{grid-column:span 4;min-height:320px;padding:var(--space-6);border-radius:var(--radius-xl);transform-style:preserve-3d;will-change:transform;display:flex;flex-direction:column;position:relative;overflow:hidden;--mx: 50%;--my: 0%}.project-card:before{content:"";position:absolute;inset:1px;border-radius:calc(var(--radius-xl) - 1px);background:radial-gradient(circle at var(--mx) var(--my),oklch(from var(--accent) l c h / .18),transparent 34%),linear-gradient(120deg,oklch(from var(--accent) l c h / .08),transparent 42%);opacity:0;pointer-events:none;transition:opacity .22s ease}.project-card:hover:before{opacity:1}.project-card--wide{grid-column:span 6;min-height:380px}.project-card--accent{grid-column:span 4;background:linear-gradient(160deg,var(--accent-soft),transparent 55%),linear-gradient(180deg,oklch(from var(--surface-1) l c h / .94),oklch(from var(--surface-2) l c h / .86))}.project-card--wide.project-card--accent{grid-column:span 6;min-height:380px}.project-card--github{grid-column:span 4;min-height:280px}.project-card:nth-child(6){min-height:380px}.project-card:nth-child(9){grid-column:span 12;min-height:260px}.project-card:nth-child(9) p{max-width:760px}.project-card h3{margin:var(--space-5) 0 var(--space-4);position:relative;z-index:1;transition:transform .26s ease,color .26s ease}.project-card p{margin:0;color:var(--muted);position:relative;z-index:1;transition:transform .26s ease}.project-card strong{display:block;margin-top:auto;padding-top:var(--space-6);color:var(--text);font-family:var(--font-display);font-size:clamp(1.3rem,1rem + 1.2vw,2rem);line-height:1;position:relative;z-index:1;transition:transform .26s ease}.stack-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6);position:relative;z-index:1;transition:transform .26s ease}.project-card:has(.project-link) .stack-list{margin-bottom:auto}.stack-list span{min-height:32px;padding:0 var(--space-3);display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-family:var(--font-mono);font-size:.76rem;transition:transform .18s ease,color .18s ease,border-color .18s ease,background-color .18s ease}.project-card:hover h3,.project-card:hover p,.project-card:hover strong,.project-card:hover .stack-list{transform:translateY(-3px)}.project-card:hover .stack-list span{color:var(--text);border-color:var(--border-strong)}.project-card .stack-list span:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft)}.project-link{display:inline-flex;align-items:center;min-height:42px;margin-top:var(--space-5);align-self:flex-start;padding:0 var(--space-4);border:1px solid var(--border-strong);border-radius:999px;color:var(--text);font-weight:700;position:relative;z-index:1;transition:transform .18s ease,border-color .18s ease,color .18s ease}.project-link:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.education-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:var(--space-5)}.education-card{min-height:240px;padding:var(--space-6);border-radius:var(--radius-xl)}.education-card--current{background:linear-gradient(135deg,var(--accent-soft),transparent 50%),linear-gradient(180deg,oklch(from var(--surface-1) l c h / .96),oklch(from var(--surface-2) l c h / .82))}.education-card p{margin:var(--space-4) 0 0;color:var(--muted)}.contact-form{display:grid;gap:var(--space-3)}.contact-form label{color:var(--muted);font-weight:700}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:oklch(from var(--surface-2) l c h / .74);color:var(--text);padding:var(--space-4);resize:vertical;transition:border-color .18s ease,background-color .18s ease}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);background:var(--surface-2)}.contact-form button{justify-self:start;margin-top:var(--space-3)}.contact-card{display:flex;flex-direction:column;gap:var(--space-4)}.contact-card a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--border);color:var(--text);font-weight:700;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:color .18s ease,border-color .18s ease,background-size .26s ease}.contact-card a:hover{color:var(--accent);border-color:var(--accent);background-size:100% 1px}.contact-card p{margin:auto 0 0;color:var(--muted)}.site-footer{width:var(--container);margin:0 auto;padding:var(--space-8) 0 var(--space-10);display:flex;justify-content:space-between;gap:var(--space-4);border-top:1px solid var(--border);color:var(--muted)}.site-footer p{margin:0}.site-footer a{color:var(--text);font-weight:700}.tilt-card{transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.tilt-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.js [data-animate]{opacity:0;transform:translateY(24px)}.js .project-card,.js .timeline-card,.js .skill-cluster,.js .education-card,.js .contact-form,.js .contact-card,.js .panel,.js .impact-card{clip-path:inset(10% 0 0 0 round var(--radius-xl))}@media (max-width: 1024px){:root{--container: min(100% - 32px, 920px)}html{overflow-x:clip}body{-webkit-overflow-scrolling:touch;overscroll-behavior-y:none}.preloader__mark{width:clamp(104px,28vw,140px);height:clamp(104px,28vw,140px)}.preloader__name{max-width:18ch;text-align:center;line-height:1.15}.hero__grid,.about__grid,.contact__grid{grid-template-columns:minmax(0,1fr)}.hero-visual{justify-self:stretch;width:100%;max-width:100%;min-height:auto;transform-style:flat;perspective:none}.hero-visual h2{max-width:none}.hero-visual__proofs{grid-template-columns:minmax(0,1fr)}.identity-card{justify-self:start;max-width:100%;transform-style:flat}.skills-grid,.education-grid{grid-template-columns:minmax(0,1fr)}.bento-grid{grid-template-columns:minmax(0,1fr);grid-auto-flow:row;grid-auto-rows:auto;gap:var(--space-4)}.project-card,.project-card--wide,.project-card--wide.project-card--accent,.project-card--accent,.project-card--github,.project-card:nth-child(6),.project-card:nth-child(9){grid-column:1 / -1;grid-row:auto;width:100%;min-width:0;max-width:100%;min-height:auto;transform-style:flat;perspective:none;will-change:auto}.project-card h3,.project-card p,.project-card strong,.project-card .stack-list,.project-card .project-link{max-width:100%}.project-card p,.project-card h3,.project-card__meta{overflow-wrap:break-word;word-break:normal;hyphens:auto}.project-card:nth-child(9) p{max-width:none}.stack-list{width:100%}.project-card:has(.project-link) .project-link{margin-top:auto;align-self:stretch;justify-content:center}.timeline-card{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.timeline-card:before,.timeline-card:after,.timeline:before,.timeline-progress{display:none}.timeline-card__body,.timeline-card__date{padding-left:0}}@media (max-width: 768px){:root{--container: min(100% - 28px, 720px)}body{background:linear-gradient(115deg,transparent 0 52%,oklch(.72 .14 65 / .05) 52% 52.7%,transparent 52.7% 100%),var(--bg)}.site-header{top:var(--space-3)}.nav-shell{grid-template-columns:auto auto auto;justify-content:space-between}.nav-toggle{display:inline-flex}.nav-links{position:fixed;inset:0;width:100%;max-width:100vw;min-height:100vh;padding:120px 24px 40px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-3);border-radius:0 0 var(--radius-xl) var(--radius-xl);background:oklch(from var(--surface-1) l c h / .96);backdrop-filter:blur(24px);transform:translateY(-105%);transition:transform .32s ease;z-index:-1}.nav-links.is-open{transform:translateY(0)}.nav-link{min-height:56px;justify-content:center;font-family:var(--font-display);font-size:2rem;color:var(--text)}.section{padding:var(--space-16) 0}.hero{min-height:auto;padding-top:var(--space-16)}.hero:after{width:220px;height:220px;right:-72px;bottom:20%}.hero-visual{min-height:auto}.hero-visual__proofs{grid-template-columns:minmax(0,1fr)}.hero__actions,.site-footer{flex-direction:column}.button,.contact-form button{width:100%}.skills-grid,.bento-grid{grid-template-columns:minmax(0,1fr)}.timeline-card{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.timeline-card:before{display:none}.timeline:before,.timeline-progress,.timeline-card:after{display:none}.timeline-card__body,.timeline-card__date{padding-left:0}}@media (max-width: 430px){:root{--container: min(100% - 24px, 390px)}.brand span{display:none}.panel,.impact-card,.skill-cluster,.timeline-card,.project-card,.education-card,.contact-form,.contact-card,.identity-card{padding:var(--space-5)}.identity-card__list div{flex-direction:column;gap:var(--space-1)}.identity-card dd{text-align:left}.hero-visual__proofs{grid-template-columns:1fr}}@media (hover: none),(pointer: coarse){.cursor-dot,.cursor-ring{display:none}.tilt-card,.hero-visual,.project-card,.identity-card{transform-style:flat;perspective:none}.tilt-card:hover,.button:hover,.skill-pill:hover,.project-card:hover h3,.project-card:hover p,.project-card:hover strong,.project-card:hover .stack-list{transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}.js [data-animate]{opacity:1;transform:none}.preloader{display:none}.js .project-card,.js .timeline-card,.js .skill-cluster,.js .education-card,.js .contact-form,.js .contact-card,.js .panel,.js .impact-card{clip-path:none}}
