:root{--clr-bg:#FFFFFF;--clr-surface:#FAFAFA;--clr-border:#000000;--clr-border-dim:#E5E5E5;--clr-shadow:rgba(0,0,0,0.05);--nav-shadow:rgba(0,0,0,0.10);--clr-text:#000000;--clr-muted:#444444;--clr-faint:#757575;--clr-grid:#F5F5F5;--clr-accent:#FF3B30;--clr-accent-text:#D70015;--clr-on-accent:#FFFFFF;--clr-green:#1FB574;--clr-pink:#FF4FA3;--clr-cyan:#1FB6CE;--font-display:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"SF Mono","Fira Code","Menlo","Monaco","Consolas",monospace;--text-2xs:0.625rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-md:1.25rem;--text-lg:1.5rem;--text-xl:2rem;--text-2xl:clamp(2.5rem,6vw,4rem);--text-hero:clamp(2.75rem,9vw,7rem);--leading-body:1.6;--space-unit:0.5rem;--space-4:calc(var(--space-unit) * 0.5);--space-8:var(--space-unit);--space-16:calc(var(--space-unit) * 2);--space-24:calc(var(--space-unit) * 3);--space-32:calc(var(--space-unit) * 4);--space-48:calc(var(--space-unit) * 6);--space-64:calc(var(--space-unit) * 8);--space-96:calc(var(--space-unit) * 12);--space-160:calc(var(--space-unit) * 20);--space-xs:var(--space-8);--space-sm:var(--space-16);--space-md:var(--space-32);--space-lg:var(--space-64);--space-xl:var(--space-96);--space-xxl:var(--space-160);--border-width:1px;--container-max:1600px;--nav-h:72px;--grid-gutter:var(--space-32);--ease-swiss:cubic-bezier(0.25,0.1,0.25,1);--dur-fast:150ms;--dur-base:300ms;--dur-slow:500ms;}:root[data-theme="dark"]{--clr-bg:#0A0A0A;--clr-surface:#141414;--clr-border:#FFFFFF;--clr-border-dim:#2A2A2A;--clr-shadow:rgba(255,255,255,0.06);--nav-shadow:rgba(0,0,0,0.60);--clr-text:#FFFFFF;--clr-muted:#B5B5B5;--clr-faint:#8A8A8A;--clr-grid:#1A1A1A;--clr-accent:#FF453A;--clr-accent-text:#FF6B61;--clr-on-accent:#0A0A0A;--clr-green:#2FD08A;--clr-pink:#FF6FB5;--clr-cyan:#3FD3E8;}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--clr-bg:#0A0A0A;--clr-surface:#141414;--clr-border:#FFFFFF;--clr-border-dim:#2A2A2A;--clr-shadow:rgba(255,255,255,0.06);--nav-shadow:rgba(0,0,0,0.60);--clr-text:#FFFFFF;--clr-muted:#B5B5B5;--clr-faint:#8A8A8A;--clr-grid:#1A1A1A;--clr-accent:#FF453A;--clr-accent-text:#FF6B61;--clr-on-accent:#0A0A0A;--clr-green:#2FD08A;--clr-pink:#FF6FB5;--clr-cyan:#3FD3E8;}}@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/inter-latin.woff2") format("woff2");}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}html{-webkit-text-size-adjust:100%;}body{min-height:100vh;min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto;}input,button,textarea,select{font:inherit;}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;}ul,ol{list-style:none;}a{color:inherit;text-decoration:none;}button{cursor:pointer;background:none;border:none;}:focus-visible{outline:2px solid var(--clr-accent);outline-offset:4px;}::selection{background:var(--clr-accent-text);color:var(--clr-on-accent);}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--space-16) + env(safe-area-inset-top));font-size:100%;-webkit-text-size-adjust:100%;}html:not(.js) .reveal{opacity:1 !important;transform:none !important;}body{background-color:var(--clr-bg);color:var(--clr-text);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:800;line-height:1;letter-spacing:-0.04em;color:var(--clr-text);text-transform:uppercase;text-wrap:balance;}.hero__inner,.about__grid,.skills__grid,.ai__grid,.edu__meta,.contact__inner,.project-item,.project-item__content,.project-details,.exp__card,.skills__group,.ai__group,.contact__links,.hero__meta{min-width:0;}p{max-width:60ch;margin-bottom:var(--space-16);}a{color:inherit;text-decoration:none;transition:color var(--dur-fast) var(--ease-swiss);outline:none;}a:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}.mono{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0.05em;text-transform:uppercase;}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-lg);}.section{padding-block:var(--space-xl);border-top:var(--border-width) solid var(--clr-border);position:relative;}.section__header{margin-bottom:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-8);}.section__num{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--clr-accent-text);font-weight:700;}.section__title{font-size:var(--text-2xl);margin-left:-0.05em;}.btn{display:inline-flex;align-items:center;justify-content:center;padding:0.65rem 1.4rem;font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;background-color:transparent;border:var(--border-width) solid var(--clr-text);color:var(--clr-text);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-swiss),color var(--dur-fast) var(--ease-swiss),border-color var(--dur-fast) var(--ease-swiss);position:relative;overflow:hidden;}.btn:hover{background-color:var(--clr-text);color:var(--clr-bg);}.btn--accent{border-color:var(--clr-accent-text);color:var(--clr-accent-text);}.btn--accent:hover{background-color:var(--clr-accent-text);border-color:var(--clr-accent-text);color:var(--clr-on-accent);}.btn--disabled{opacity:0.5;cursor:not-allowed;pointer-events:none;}.tag{display:inline-flex;align-items:center;gap:var(--space-8);padding:0.5rem 1rem;font-family:var(--font-display);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:0.05em;border:var(--border-width) solid var(--clr-border-dim);color:var(--clr-faint);background:transparent;line-height:1;}.badge{display:inline-flex;align-items:center;padding:0.4rem 0.85rem;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;border:var(--border-width) solid var(--clr-border-dim);color:var(--clr-text);background:var(--clr-surface);line-height:1;white-space:nowrap;}.badge--accent{border-color:var(--clr-accent);color:var(--clr-accent-text);}.status-pill{display:inline-flex;align-items:center;gap:var(--space-8);padding:0.35rem 0.75rem;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.1em;border:1px solid var(--clr-accent);border-radius:999px;color:var(--clr-accent-text);white-space:nowrap;}.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--clr-accent-text);}.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--clr-faint);}.tag--accent::before{background:var(--clr-accent);}.reveal{opacity:0;transform:translateY(30px);transition:opacity var(--dur-base) var(--ease-swiss),transform var(--dur-base) var(--ease-swiss);}.reveal.visible{opacity:1;transform:translateY(0);}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}::-webkit-scrollbar{width:10px;}::-webkit-scrollbar-track{background:var(--clr-bg);}::-webkit-scrollbar-thumb{background:var(--clr-text);border:3px solid var(--clr-bg);}.text-muted{color:var(--clr-muted);}.text-center{text-align:center;}.mb-16{margin-bottom:var(--space-16);}.mb-sm{margin-bottom:var(--space-sm);}.mb-lg{margin-bottom:var(--space-lg);}.mt-48{margin-top:var(--space-48);}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}.sr-only-focusable:focus,.sr-only-focusable:focus-within{position:fixed;top:0;left:0;width:auto;height:auto;margin:0;padding:1rem;overflow:visible;clip:auto;clip-path:none;white-space:normal;background:var(--clr-bg);color:var(--clr-text);outline:2px solid var(--clr-accent-text);z-index:10000;}.scroll-progress-container{position:fixed;top:0;left:0;width:100%;height:2px;background:transparent;z-index:1100;}.scroll-progress-bar{height:100%;width:0%;background:var(--clr-accent);}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:calc(var(--nav-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:var(--clr-bg);border-bottom:var(--border-width) solid var(--clr-border);display:flex;align-items:center;transition:transform var(--dur-base) var(--ease-swiss);}.nav--hidden{transform:translateY(-100%);}.nav .container{display:flex;align-items:center;justify-content:space-between;}.nav__brand{font-family:var(--font-display);font-size:var(--text-md);font-weight:900;color:var(--clr-text);letter-spacing:-0.05em;text-transform:uppercase;display:flex;align-items:center;gap:var(--space-8);}.nav__brand::before{content:"";display:block;width:12px;height:12px;background:var(--clr-accent);}.nav__theme{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;padding:0;cursor:pointer;color:var(--clr-muted);background:none;border:1px solid var(--clr-border);border-radius:50%;transition:color var(--dur-fast) var(--ease-swiss),border-color var(--dur-fast) var(--ease-swiss),background-color var(--dur-fast) var(--ease-swiss);}.nav__theme:hover,.nav__theme:focus-visible{color:var(--clr-on-accent);background:var(--clr-accent);border-color:var(--clr-accent);}.nav__theme:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}.nav__theme-icon{display:none;}:root[data-theme="light"] .nav__theme-icon--moon{display:block;}:root[data-theme="dark"] .nav__theme-icon--sun{display:block;}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav__theme-icon--sun{display:block;}:root:not([data-theme="light"]) .nav__theme-icon--moon{display:none;}}@media (prefers-color-scheme:light){:root:not([data-theme="dark"]) .nav__theme-icon--moon{display:block;}:root:not([data-theme="dark"]) .nav__theme-icon--sun{display:none;}}.nav__links{display:flex;align-items:center;gap:var(--space-32);margin-left:auto;}.nav__links a{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--clr-muted);position:relative;}.nav__links a::after{content:"";position:absolute;bottom:-4px;left:0;width:100%;height:1px;background:var(--clr-accent);transform:scaleX(0);transform-origin:right;transition:transform var(--dur-fast) var(--ease-swiss);}.nav__links a:hover::after,.nav__links a.active::after{transform:scaleX(1);transform-origin:left;}.nav__links a:hover,.nav__links a.active{color:var(--clr-text);}.nav__toggle{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;background:none;border:none;z-index:1001;}.nav__toggle span{display:block;width:20px;height:2px;background:var(--clr-text);margin-bottom:4px;transition:transform var(--dur-base) var(--ease-swiss),opacity var(--dur-base) var(--ease-swiss);}.nav__toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}.nav__toggle.open span:nth-child(2){opacity:0;}.nav__toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}@media (min-width:769px) and (max-width:1024px){.nav__links{gap:var(--space-16);}}@media (max-width:768px){.nav__links{display:none;}.nav__links.open{display:flex;}.nav__toggle{display:flex;}}.hero{min-height:100vh;min-height:100dvh;padding-top:calc(var(--nav-h) + var(--space-xl) + env(safe-area-inset-top));padding-bottom:var(--space-xl);display:flex;align-items:center;background-color:var(--clr-bg);position:relative;overflow:hidden;}.hero::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(to right,var(--clr-grid) 1px,transparent 1px),linear-gradient(to bottom,var(--clr-grid) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(circle at 50% 50%,black,transparent 80%);pointer-events:none;z-index:0;}.hero__inner{width:100%;position:relative;z-index:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gutter);}.hero__content{grid-column:1 / span 10;min-width:0;}.hero__avatar{grid-column:11 / span 2;align-self:start;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-16);}.hero__avatar-frame{width:100%;aspect-ratio:1 / 1;border:var(--border-width) solid var(--clr-text);background-color:var(--clr-surface);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}.hero__avatar-frame::before{content:"";position:absolute;inset:0;opacity:0.06;background-image:radial-gradient(var(--clr-text) 1px,transparent 1px);background-size:16px 16px;}.hero__avatar-frame .mono{font-size:var(--text-2xl);font-weight:700;color:var(--clr-text);letter-spacing:0.05em;}.hero__avatar-caption{font-size:var(--text-2xs);color:var(--clr-faint);}.hero__name{font-family:var(--font-display);font-size:var(--text-hero);line-height:0.85;font-weight:900;text-transform:uppercase;letter-spacing:-0.04em;margin-bottom:var(--space-24);color:var(--clr-text);word-break:break-word;min-width:0;}.hero__title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--clr-accent-text);text-transform:uppercase;letter-spacing:0.2em;margin-bottom:var(--space-16);display:flex;align-items:center;gap:var(--space-16);}.hero__title::before{content:"";width:40px;height:2px;background:var(--clr-accent);}.hero__summary{font-size:var(--text-md);line-height:var(--leading-body);color:var(--clr-muted);max-width:45ch;margin-bottom:var(--space-48);font-weight:500;}.hero__badges{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-bottom:var(--space-32);}.hero__meta{grid-column:1 / span 12;margin-top:var(--space-64);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-32);border-top:var(--border-width) solid var(--clr-text);padding-top:var(--space-24);}.hero__meta-item{display:flex;flex-direction:column;gap:var(--space-4);}.hero__meta-label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--clr-faint);text-transform:uppercase;letter-spacing:0.1em;}.hero__meta-value{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--clr-text);}.hero__links{display:flex;gap:var(--space-16);}@media (max-width:1024px){.hero__content{grid-column:1 / span 12;}.hero__avatar{display:none;}.hero__meta{grid-template-columns:repeat(2,1fr);gap:var(--space-24);}}@media (max-width:768px){.hero{padding-top:calc(var(--nav-h) + var(--space-lg) + env(safe-area-inset-top));}.hero__name{font-size:clamp(2.5rem,16vw,4.5rem);}.hero__summary{margin-bottom:var(--space-32);}.hero__meta{grid-template-columns:repeat(2,1fr);gap:var(--space-16);margin-top:var(--space-48);}}.about__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gutter);}.about__bio{grid-column:span 8;}.about__bio p{font-size:var(--text-base);line-height:var(--leading-body);color:var(--clr-text);margin-bottom:var(--space-md);}.about__bio strong,.about__bio em{color:var(--clr-text);font-weight:700;font-style:normal;}.about__sidebar{grid-column:span 4;padding-left:var(--space-lg);border-left:1px solid var(--clr-border);}.about__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-16);margin-block:var(--space-32);border-block:1px solid var(--clr-border-dim);padding-block:var(--space-24);}.stat{display:flex;flex-direction:column;gap:var(--space-4);}.stat__num{font-family:var(--font-display);font-size:var(--text-xl);font-weight:900;letter-spacing:-0.03em;color:var(--clr-accent-text);line-height:1;}.stat__label{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.1em;color:var(--clr-faint);}.about__tags{display:flex;flex-wrap:wrap;gap:var(--space-8);}@media (max-width:768px){.about__bio,.about__sidebar{grid-column:1 / -1;}.about__sidebar{padding-left:0;border-left:none;border-top:1px solid var(--clr-border);padding-top:var(--space-lg);}.about__stats{grid-template-columns:repeat(2,1fr);}}.edu__meta{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gutter);}.edu__table-wrapper{grid-column:span 12;}.edu__table{width:100%;border-collapse:collapse;}.edu__table tr{border-bottom:1px solid var(--clr-border);}.edu__table td{padding-block:var(--space-md);vertical-align:top;}.edu__table td:first-child{width:30%;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-accent-text);text-transform:uppercase;}.edu__table td:last-child{font-size:var(--text-base);color:var(--clr-text);}.edu__table a{color:var(--clr-text);font-weight:700;text-decoration:underline;text-underline-offset:4px;}.edu__table a:hover{color:var(--clr-accent);}@media (max-width:768px){.edu__table td{display:block;width:100% !important;padding-bottom:0;}.edu__table td:last-child{padding-top:var(--space-xs);padding-bottom:var(--space-md);}}.exp__list{display:flex;flex-direction:column;gap:0;border-left:1px solid var(--clr-border);}.exp__card{position:relative;padding-left:var(--space-lg);padding-bottom:var(--space-xl);display:grid;grid-template-columns:1fr auto;column-gap:var(--space-32);align-items:baseline;}.exp__desc{grid-column:1 / -1;}@media (max-width:480px){.exp__card{grid-template-columns:1fr;}}.exp__card::before{content:'';position:absolute;left:-5px;top:0;width:9px;height:9px;background-color:var(--clr-bg);border:1px solid var(--clr-accent);border-radius:50%;}.exp__title{font-size:var(--text-lg);font-weight:700;text-transform:uppercase;margin-bottom:0.25rem;}.exp__date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-accent-text);text-transform:uppercase;margin-bottom:var(--space-md);display:block;}.exp__desc{font-size:var(--text-base);color:var(--clr-muted);max-width:60ch;}.exp__desc strong{color:var(--clr-accent-text);font-weight:700;}.exp__desc a{color:var(--clr-accent-text);font-weight:700;text-decoration:underline;text-underline-offset:2px;}.exp__desc a:hover{color:var(--clr-accent);}.skills__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gutter);}.skills__group{grid-column:span 4;margin-bottom:var(--space-lg);}.skills__group-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--clr-accent-text);margin-bottom:var(--space-md);display:block;}.skills__list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-8);}.skills__list li{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--clr-text);border:1px solid var(--clr-border-dim);background:var(--clr-surface);padding:0.4rem 0.75rem;line-height:1;transition:border-color var(--dur-fast) var(--ease-swiss),color var(--dur-fast) var(--ease-swiss);}.skills__list li:hover{border-color:var(--clr-accent);color:var(--clr-accent-text);}.skills__list .text-muted{color:var(--clr-faint);}@media (max-width:1024px){.skills__group{grid-column:span 6;}}@media (max-width:768px){.skills__group{grid-column:span 12;margin-bottom:var(--space-md);}}.projects__list{display:flex;flex-direction:column;}.project-item{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border-bottom:var(--border-width) solid var(--clr-border);transition:background-color var(--dur-base) var(--ease-swiss);}.project-item:hover{background-color:var(--clr-surface);}.project-item__image-container{grid-column:1 / span 4;aspect-ratio:4 / 3;align-self:start;border-right:var(--border-width) solid var(--clr-border);padding:var(--space-32);display:flex;align-items:center;justify-content:center;background-color:var(--clr-bg);position:relative;overflow:hidden;}.project-item__image-container::before{content:"";position:absolute;inset:0;opacity:0.05;background-image:radial-gradient(var(--clr-text) 1px,transparent 1px);background-size:20px 20px;}.project-item__image{width:100%;height:100%;border:var(--border-width) solid var(--clr-text);background-color:var(--clr-bg);display:flex;align-items:center;justify-content:center;position:relative;z-index:1;transition:transform var(--dur-slow) var(--ease-swiss);}.project-item__image img{width:100%;height:100%;object-fit:contain;display:block;}.project-item:hover .project-item__image{transform:scale(0.98) rotate(-1deg);}.project-item__content{grid-column:5 / span 8;padding:var(--space-48) var(--space-64);display:flex;flex-direction:column;}.project-item__tagline{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--clr-accent-text);text-transform:uppercase;letter-spacing:0.2em;margin-bottom:var(--space-16);font-weight:700;}.project-item__title{font-size:var(--text-xl);line-height:0.9;margin-bottom:var(--space-24);letter-spacing:-0.04em;}.project-item__description{font-size:var(--text-base);color:var(--clr-muted);margin-bottom:var(--space-32);line-height:var(--leading-body);}.project-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-32);margin-bottom:var(--space-48);border-top:1px solid var(--clr-border-dim);padding-top:var(--space-24);}.detail-group__label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--clr-faint);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:var(--space-8);display:block;}.detail-group__value{font-size:var(--text-sm);font-weight:600;color:var(--clr-text);}.detail-list{list-style:none;font-size:var(--text-sm);color:var(--clr-muted);}.detail-list li{position:relative;padding-left:var(--space-16);margin-bottom:var(--space-4);}.detail-list li::before{content:"→";position:absolute;left:0;color:var(--clr-accent);}.project-item__meta{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;}.project-item__year{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-faint);}.project-item__links{display:flex;gap:var(--space-16);}.project-item__links .btn{padding:0.35rem 0.75rem;font-size:var(--text-2xs);letter-spacing:0.03em;}@media (max-width:1200px){.project-item__content{padding:var(--space-32) var(--space-48);}}@media (max-width:1024px){.project-item__content{grid-column:5 / span 8;padding:var(--space-32) var(--space-48);}.project-item__image-container{grid-column:1 / span 4;aspect-ratio:4 / 3;}}@media (max-width:768px){.project-item{grid-template-columns:1fr;}.project-item__image-container{grid-column:1 / span 1;border-right:none;border-bottom:var(--border-width) solid var(--clr-border);aspect-ratio:16 / 9;}.project-item__content{grid-column:1 / span 1;padding:var(--space-32) var(--space-16);}.project-details{grid-template-columns:1fr;gap:var(--space-24);}.project-item__links .btn{min-height:44px;padding:0.75rem 1.25rem;font-size:var(--text-xs);}}@media (max-width:480px){.project-item__meta{flex-wrap:wrap;gap:var(--space-16);}.project-item__links{width:100%;flex-wrap:wrap;}.project-item__links .btn{flex:1 1 auto;}}.contact__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gutter);}.contact__head{grid-column:span 6;display:flex;flex-direction:column;gap:var(--space-16);}.contact__line{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.1;font-weight:700;text-transform:uppercase;letter-spacing:-0.04em;overflow-wrap:break-word;}.contact__status{display:inline-flex;align-items:center;gap:var(--space-8);align-self:flex-start;font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.1em;color:var(--clr-accent-text);border:1px solid var(--clr-accent);border-radius:999px;padding:0.35rem 0.75rem;}.contact__status-dot{width:8px;height:8px;border-radius:50%;background:var(--clr-accent-text);box-shadow:0 0 0 0 var(--clr-accent-text);animation:contact-pulse 2s infinite var(--ease-swiss);}@keyframes contact-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--clr-accent-text) 60%,transparent);}70%{box-shadow:0 0 0 8px transparent;}100%{box-shadow:0 0 0 0 transparent;}}.contact__links{grid-column:span 6;display:flex;flex-direction:column;gap:var(--space-sm);padding-top:0.5rem;}.contact__links a{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--clr-text);border-bottom:1px solid var(--clr-border);padding-block:0.5rem;display:flex;justify-content:space-between;align-items:center;transition:color var(--dur-fast) var(--ease-swiss),border-color var(--dur-fast) var(--ease-swiss);}.contact__links a:hover,.contact__links a:focus-visible{color:var(--clr-accent);border-color:var(--clr-accent);}.contact__links a:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}.contact__arrow{display:inline-block;transition:transform var(--dur-fast) var(--ease-swiss);}.contact__links a:hover .contact__arrow,.contact__links a:focus-visible .contact__arrow{transform:translate(4px,-4px);}.contact__email-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);border-bottom:1px solid var(--clr-border);padding-block:0.5rem;transition:border-color var(--dur-fast) var(--ease-swiss);}.contact__email-row:hover,.contact__email-row:focus-within{border-color:var(--clr-accent);}.contact__email-link{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--clr-text);display:flex;align-items:center;gap:var(--space-8);text-decoration:none;transition:color var(--dur-fast) var(--ease-swiss);}.contact__email-link:hover,.contact__email-link:focus-visible{color:var(--clr-accent);}.contact__email-link:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}.contact__copy{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.1em;color:var(--clr-accent-text);border:1px solid var(--clr-accent);border-radius:999px;padding:0.35rem 0.75rem;display:inline-flex;align-items:center;gap:var(--space-8);background:none;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-swiss),color var(--dur-fast) var(--ease-swiss);}.contact__copy:hover{background:var(--clr-accent);color:var(--clr-on-accent);}.contact__copy:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}.contact__copy-status{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.1em;color:var(--clr-accent-text);}@media (max-width:768px){.contact__head,.contact__links{grid-column:span 12;}.contact__line{font-size:var(--text-xl);}}@media (prefers-reduced-motion:reduce){.contact__status-dot{animation:none;}.contact__arrow{transition:none;}}.footer{padding-block:var(--space-lg);border-top:var(--border-width) solid var(--clr-border);background:var(--clr-bg);}.footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-24);}.footer__left{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;}.footer__note{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--clr-faint);text-transform:uppercase;letter-spacing:0.05em;max-width:100%;overflow-wrap:break-word;}.footer__links{display:flex;align-items:center;gap:var(--space-16);min-width:0;margin-right:calc(48px + var(--space-24) + env(safe-area-inset-right));}.footer__links a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--clr-faint);border:1px solid var(--clr-border);border-radius:50%;text-decoration:none;transition:color var(--dur-fast) var(--ease-swiss),border-color var(--dur-fast) var(--ease-swiss),background-color var(--dur-fast) var(--ease-swiss);}.footer__icon{display:block;}.footer__links a:hover,.footer__links a:focus-visible{color:var(--clr-on-accent);background:var(--clr-accent);border-color:var(--clr-accent);}.footer__links a:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}@media (max-width:768px){.footer .container{flex-direction:column;align-items:center;text-align:center;gap:var(--space-16);}.footer__left{align-items:center;}.footer__links{flex-wrap:wrap;justify-content:center;gap:var(--space-16);margin-right:0;}}.to-top{position:fixed;right:calc(var(--space-24) + env(safe-area-inset-right));bottom:calc(var(--space-24) + env(safe-area-inset-bottom));width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:700;color:var(--clr-on-accent);background:var(--clr-accent-text);border:none;border-radius:50%;cursor:pointer;z-index:1050;box-shadow:0 8px 24px -8px var(--nav-shadow);opacity:0;transform:translateY(12px);transition:opacity var(--dur-base) var(--ease-swiss),transform var(--dur-base) var(--ease-swiss),background-color var(--dur-fast) var(--ease-swiss);}.to-top:not([hidden]){opacity:1;transform:translateY(0);}.to-top:hover{background:var(--clr-accent);}.to-top:focus-visible{outline:2px solid var(--clr-accent-text);outline-offset:4px;}@media (prefers-reduced-motion:reduce){.to-top{transition:opacity var(--dur-fast) var(--ease-swiss);transform:none;}}@media (min-width:1600px){:root{--space-unit:0.625rem;}}@media (max-width:1024px){:root{--space-lg:var(--space-48);--space-xl:var(--space-64);--space-xxl:var(--space-96);}.container{padding-inline:var(--space-32);}.section__title{font-size:var(--text-xl);}}@media (max-width:768px){:root{--nav-h:64px;--space-lg:var(--space-32);--space-xl:var(--space-48);--space-xxl:var(--space-64);--grid-gutter:var(--space-16);}.container{padding-inline:var(--space-16);}.hero__inner,.about__grid,.skills__grid,.ai__grid,.edu__meta,.contact__inner{grid-template-columns:1fr;}.ai__group{grid-column:1 / -1;}.nav__links{position:fixed;top:0;right:0;width:100%;height:100vh;height:100dvh;background:var(--clr-bg);flex-direction:column;justify-content:safe center;align-items:center;gap:var(--space-24);padding-top:calc(var(--nav-h) + env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);padding-inline:calc(var(--space-16) + env(safe-area-inset-left)) calc(var(--space-16) + env(safe-area-inset-right));overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(100%);transition:transform var(--dur-base) var(--ease-swiss);z-index:999;}.nav__links.open{transform:translateX(0);}.nav__links a{font-size:var(--text-md);font-weight:800;padding:var(--space-8) var(--space-16);}.section{padding-block:var(--space-lg);}.section__title{font-size:var(--text-lg);}}@media (max-width:480px){.hero__links{flex-direction:column;width:100%;}.hero__links .btn{width:100%;}}@media (max-height:500px) and (orientation:landscape){.hero{min-height:auto;}}@media (max-width:768px) and (max-height:500px) and (orientation:landscape){.nav__links{flex-direction:row;flex-wrap:wrap;align-content:center;gap:var(--space-16);padding-block:calc(var(--nav-h) + env(safe-area-inset-top)) var(--space-16);}.nav__links a{font-size:var(--text-md);}}