.appbar{transition:background-color var(--duration-normal) var(--ease), border-color var(--duration-normal) var(--ease), backdrop-filter var(--duration-normal) var(--ease);min-height:var(--nav-height);background:0 0!important}.appbar.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:var(--border-width) solid var(--divider);background:color-mix(in srgb, var(--bg-paper) 88%, transparent)!important}.appbar .MuiToolbar-root{min-height:var(--nav-height);gap:var(--space-2)}.appbar__brand{align-items:center;gap:var(--space-2);color:var(--text-primary);text-decoration:none;display:flex}.appbar__brand--mobile{position:absolute;left:50%;transform:translate(-50%)}.appbar__brand--desktop{display:none}.appbar__brand-icon{color:var(--text-primary);display:block;font-size:1.35rem!important}.appbar__logo{letter-spacing:.1rem;line-height:1;text-decoration:none;font-family:var(--font-display)!important;font-weight:var(--weight-semibold)!important;color:var(--text-primary)!important}.appbar__menu-btn{color:var(--text-primary)!important}.appbar__nav{justify-content:flex-end;align-items:center;gap:var(--space-1);flex-grow:1;display:none}.appbar__spacer{flex-shrink:0;width:48px;margin-left:auto}.nav-link{min-height:auto;position:relative;font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--text-secondary)!important;transition:color var(--duration-fast) var(--ease)!important;padding:var(--space-2) var(--space-3)!important}.nav-link:hover{color:var(--accent)!important;background:0 0!important}.nav-link:active{transform:translateY(1px)}.nav-link:after{content:"";background:var(--accent);width:0;height:2px;transition:width var(--duration-fast) var(--ease);position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.nav-link:hover:after,.nav-link:focus-visible:after{width:calc(100% - 1.5rem)}.nav-menu-item{font-family:var(--font-display)!important;color:var(--text-primary)!important}.theme-toggle{color:var(--text-secondary)!important}.theme-toggle:hover{color:var(--accent)!important;background:0 0!important}@media (width>=900px){.appbar__menu-btn,.appbar__brand--mobile,.appbar__spacer{display:none!important}.appbar__brand--desktop,.appbar__nav{display:flex}}.section{width:100%;scroll-margin-top:var(--nav-height);padding:var(--section-pad-y) var(--section-pad-x);position:relative}.section__inner{width:100%;max-width:var(--content-max);flex-direction:column;margin:0 auto;display:flex}.section--experience{background:linear-gradient(180deg, var(--bg-experience-end) 0%, var(--bg-experience) 100%)}.section--education{background:var(--bg-education)}.section--projects{background:linear-gradient(180deg, var(--bg-section-end) 0%, var(--bg-section) 100%);min-height:60vh}.section--footer{background:var(--bg-footer);border-top:var(--border-width) solid var(--divider)}.icon-buttons{justify-content:center;align-items:center;gap:var(--space-1);margin:var(--space-2) 0;flex-direction:row;display:flex}.icon-buttons__link{line-height:0;display:inline-flex}.social-icon{transition:background-color var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease);border-radius:var(--radius-lg)!important;padding:var(--space-3)!important}.social-icon .MuiSvgIcon-root{color:var(--text-secondary);transition:color var(--duration-fast) var(--ease)}.social-icon img{object-fit:contain;filter:var(--icon-filter);opacity:.7;transition:opacity var(--duration-fast) var(--ease);display:block}.social-icon:hover{transform:translateY(-2px);background:var(--accent-soft)!important}.social-icon:active{transform:translateY(0)}.social-icon:hover .MuiSvgIcon-root{color:var(--accent)!important}.social-icon:hover img{opacity:1!important}.social-icon:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.skill-chip{align-items:center;gap:var(--space-2);-webkit-user-select:none;user-select:none;color:var(--text-secondary);flex-shrink:0;line-height:1;display:inline-flex}.skill-chip__icon{flex-shrink:0;width:.95rem;height:.95rem;display:block}.skill-chip__label{white-space:nowrap;font-family:var(--font-display)}.skill-chip--pixel{border:2px solid var(--text-muted);box-shadow:2px 2px 0 var(--border-color);font-size:var(--text-xs);letter-spacing:.02em;color:var(--text-primary);background:color-mix(in srgb, var(--bg-paper) 70%, transparent);padding:.4rem .65rem}.skill-chip--pixel .skill-chip__icon{width:1rem;height:1rem}.skill-chip--clean{border:var(--border-width) solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);background:0 0;padding:.28rem .55rem;font-size:.7rem}.skill-chip--clean .skill-chip__icon{opacity:.85;width:.85rem;height:.85rem}.skill-chips{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-start;align-items:center;display:flex}.skill-chips--hero{justify-content:flex-start;max-width:100%}.skill-chips--project{justify-content:flex-start}@media (width<=600px){.skill-chip--pixel{box-shadow:1px 1px 0 var(--border-color);border-width:1.5px;padding:.32rem .5rem;font-size:.68rem}.skill-chips--hero{gap:var(--space-2);justify-content:center}.skill-chips--project{justify-content:flex-start}}.hero{width:100%;min-height:100vh;padding:calc(var(--nav-height) + var(--space-6)) var(--section-pad-x) var(--space-6);background:linear-gradient(180deg, var(--bg-hero) 0%, var(--bg-hero-end) 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(ellipse at 50% 0%, var(--hero-glow) 0%, transparent 60%);pointer-events:none;position:absolute;inset:0}.hero-content{z-index:var(--z-base);width:100%;max-width:var(--content-max);align-items:center;gap:var(--space-6);flex-direction:column;display:flex;position:relative}.hero__layout{justify-content:center;align-items:center;gap:var(--space-6);flex-direction:column;width:100%;display:flex}.hero__copy{align-items:flex-start;gap:var(--space-5);flex-direction:column;width:100%;max-width:28rem;display:flex}.hero-title{white-space:nowrap;font-size:var(--text-hero)!important;font-weight:var(--weight-semibold)!important;line-height:var(--leading-tight)!important;color:var(--text-primary)!important}.knight-stage{padding:var(--space-5);justify-content:center;align-items:center;display:flex;position:relative}.knight-stage:before{content:"";border-radius:var(--radius-md);background-image:linear-gradient(var(--divider) 1px, transparent 1px), linear-gradient(90deg, var(--divider) 1px, transparent 1px);opacity:.55;pointer-events:none;background-size:12px 12px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 70%,#000 20%,#0000 75%)}[data-theme=light] .knight-stage:before{opacity:.35}.knight-container{z-index:var(--z-base);padding:var(--space-3);position:relative}img#knight{--knight-w:170px;--knight-h:235px;--knight-sheet:calc(var(--knight-w) * 4);height:var(--knight-h);width:var(--knight-w);background:url(/images/knight.png);background-size:var(--knight-sheet);image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;border:none;outline:none;animation:.5s steps(4,end) infinite knight}.description{max-width:var(--measure);color:var(--text-secondary)!important;font-family:var(--font-body)!important;font-size:var(--text-lg)!important;font-weight:var(--weight-regular)!important;line-height:var(--leading-relaxed)!important}.scroll-indicator{margin-top:var(--space-2);color:var(--text-muted);transition:color var(--duration-fast) var(--ease);justify-content:center;align-items:center;animation:2s ease-in-out infinite scrollBounce;display:flex}.scroll-indicator__icon{width:2.25rem!important;height:2.25rem!important}.scroll-indicator:hover,.scroll-indicator:focus-visible{color:var(--accent);outline:none}.scroll-indicator:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:var(--radius-sm)}@keyframes knight{0%{background-position:0 0}to{background-position:var(--knight-sheet) 0}}@keyframes scrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media (width>=900px){.hero__layout{gap:var(--space-8);flex-direction:row}.hero__copy{align-items:flex-start}}@media (width<=900px){.hero{height:100svh;min-height:100svh;max-height:100svh;padding:calc(var(--nav-height) + var(--space-2)) var(--section-pad-x) var(--space-2);justify-content:stretch}.hero-content{gap:var(--space-2);flex:1;justify-content:space-between;min-height:0}.hero__layout{gap:var(--space-3);flex:1;justify-content:center;min-height:0}.hero__copy{text-align:center;align-items:center;gap:var(--space-3);max-width:100%}.hero-title{text-align:center;font-size:clamp(1.6rem,7vw,2.25rem)!important}.description{text-align:center;font-size:var(--text-md)!important;line-height:var(--leading-normal)!important}.knight-stage{padding:var(--space-2);flex-shrink:1}.knight-container{padding:var(--space-1)}img#knight{--knight-w:120px;--knight-h:166px}.hero .icon-buttons{margin:0}.hero .social-icon{padding:var(--space-2)!important}.hero .social-icon .MuiSvgIcon-root{width:28px!important;height:28px!important}.scroll-indicator{flex-shrink:0;margin-top:0}.scroll-indicator__icon{width:1.75rem!important;height:1.75rem!important}}@media (width<=600px){.hero__layout,.hero__copy{gap:var(--space-2)}img#knight{--knight-w:100px;--knight-h:138px}.skill-chips--hero{gap:var(--space-1)}}@media (width<=360px){.hero-title{white-space:normal}}@media (prefers-reduced-motion:reduce){.scroll-indicator{animation:none!important}}.project-band{gap:var(--space-5);width:100%;padding:var(--space-5);background:var(--card-bg);border:var(--border-width) solid var(--border-color);border-radius:var(--radius-xl);grid-template-columns:1fr;display:grid}.project-band__media{border-radius:var(--radius-lg);background:color-mix(in srgb, var(--bg-default) 55%, transparent);min-width:0;overflow:hidden}.project-band__hero{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:220px;max-height:360px;display:block}.project-band__copy{align-items:flex-start;gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.project-band__title{font-family:var(--font-display)!important;font-weight:var(--weight-medium)!important;font-size:var(--text-2xl)!important;line-height:var(--leading-tight)!important;color:var(--text-primary)!important;margin:0!important}.project-band__subheader{opacity:.9;font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--accent)!important;margin:var(--space-1) 0 0!important}.project-band__description{max-width:48ch;font-family:var(--font-body)!important;font-size:var(--text-md)!important;line-height:var(--leading-normal)!important;color:var(--text-secondary)!important;margin:0!important}.project-band__links{margin-top:var(--space-1)}.project-band__links .icon-buttons{justify-content:flex-start;margin:0}@media (width>=900px){.project-band{align-items:center;gap:var(--space-6);padding:var(--space-6);grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.project-band__hero{height:280px}}.section-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-7);text-align:center;flex-direction:column;display:flex}.section-header__title{font-family:var(--font-display)!important;font-weight:var(--weight-semibold)!important;font-size:var(--text-3xl)!important;line-height:var(--leading-tight)!important;color:var(--text-primary)!important;margin:0!important}.section-header__rule{background:var(--accent);opacity:.85;border:none;border-radius:1px;width:3rem;height:2px}.projects-list{gap:var(--space-6);flex-direction:column;width:100%;display:flex}.footer{align-items:center;gap:var(--space-5);text-align:center;flex-direction:column;width:100%;max-width:36rem;margin:0 auto;display:flex}.footer .section-header{margin-bottom:var(--space-2)}.footer-copyright{font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--text-muted)!important}.experience{width:100%;padding-left:var(--space-6);position:relative}.experience:after{content:"";background:var(--accent);border:3px solid var(--bg-experience);width:14px;height:14px;z-index:var(--z-base);border-radius:50%;position:absolute;top:.5rem;left:0}.experience-timeline{gap:var(--space-6);flex-direction:column;display:flex;position:relative}.experience-timeline:before{content:"";background:linear-gradient(180deg, var(--accent) 0%, var(--accent-dark) 100%);opacity:.3;width:2px;position:absolute;top:0;bottom:0;left:5px}.job-info,.company-info{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.company-link{align-items:center;gap:var(--space-2);transition:opacity var(--duration-fast) var(--ease);text-decoration:none;display:inline-flex}.company-link:hover{opacity:.85}.company-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}.company-link-icon{margin-left:var(--space-1);vertical-align:middle;font-size:var(--text-md)!important;color:var(--accent)!important;opacity:.7!important}.company-location{font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--text-muted)!important;font-style:italic!important}.company-name{font-family:var(--font-display)!important;color:var(--accent)!important;opacity:.9!important}.job-title{font-family:var(--font-display)!important;color:var(--text-primary)!important;font-weight:var(--weight-medium)!important}.job-dates{font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--text-muted)!important}.job-details{margin-top:var(--space-3);padding-left:var(--space-5);color:var(--text-secondary)!important}.job-details li{margin-bottom:var(--space-2);line-height:var(--leading-normal)}.job-details li:last-child{margin-bottom:0}@media (width<=600px){.job-info,.company-info{align-items:flex-start;gap:var(--space-1);flex-direction:column}}.education{gap:var(--space-4);flex-direction:row;width:100%;display:flex}.education-logo{flex-shrink:0}.education-logo img{object-fit:contain;width:80px;height:60px}.school-info,.institution-info{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.institution-link{align-items:center;gap:var(--space-2);transition:opacity var(--duration-fast) var(--ease);text-decoration:none;display:inline-flex}.institution-link:hover{opacity:.85}.institution-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:var(--radius-sm)}.institution-link-icon{margin-left:var(--space-1);vertical-align:middle;font-size:var(--text-md)!important;color:var(--accent)!important;opacity:.7!important}.institution-location{font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--text-muted)!important;font-style:italic!important}.institution-name{font-family:var(--font-display)!important;color:var(--accent)!important;opacity:.9!important}.degree-title{font-family:var(--font-display)!important;color:var(--text-primary)!important;font-weight:var(--weight-medium)!important}.school-dates{font-family:var(--font-display)!important;font-size:var(--text-sm)!important;color:var(--text-muted)!important}@media (width<=600px){.education{flex-direction:column;align-items:flex-start}.education-logo{margin-bottom:var(--space-2)}.school-info,.institution-info{align-items:flex-start;gap:var(--space-1);flex-direction:column}}*{box-sizing:border-box;margin:0;padding:0}:root{--font-display:"Fira Code", monospace;--font-body:"Inter", system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-hero:clamp(2rem, 5vw, 3.5rem);--leading-tight:1.25;--leading-snug:1.4;--leading-normal:1.6;--leading-relaxed:1.75;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--section-pad-y:clamp(3rem, 6vw, 5rem);--section-pad-x:clamp(1.25rem, 5vw, 3rem);--content-max:1000px;--nav-height:64px;--measure:40ch;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--border-width:1px;--shadow-sm:0 2px 8px #0000001f;--shadow-md:0 4px 16px #00000029;--z-base:1;--z-nav:1100;--z-menu:1200;--ease:cubic-bezier(.22, 1, .36, 1);--duration-fast:.15s;--duration-normal:.22s;--duration-slow:.32s;--reveal-distance:12px}[data-theme=dark]{--bg-default:#111117;--bg-paper:#18181f;--bg-hero:#111117;--bg-hero-end:#14141c;--bg-section:#14141c;--bg-section-end:#18181f;--bg-experience:#14141c;--bg-experience-end:#18181f;--bg-education:#111117;--bg-footer:#14141c;--text-primary:#e8e8e8;--text-secondary:#888;--text-muted:#555;--accent:#00d9ff;--accent-dark:#00a8c7;--accent-soft:#00d9ff14;--accent-selection:#00d9ff4d;--divider:#ffffff0f;--border-color:#ffffff14;--card-bg:#18181f;--focus-ring:var(--accent);--scrollbar-track:#0a0a0f;--scrollbar-thumb:#2a2a35;--icon-filter:invert(1);--hero-glow:#00d9ff14}[data-theme=light]{--bg-default:#f0f1f2;--bg-paper:#f5f5f5;--bg-hero:#f0f1f2;--bg-hero-end:#f5f5f5;--bg-section:#f5f5f5;--bg-section-end:#ebeced;--bg-experience:#ebeced;--bg-experience-end:#f5f5f5;--bg-education:#f0f1f2;--bg-footer:#e5e5e5;--text-primary:#1a1a1a;--text-secondary:#555;--text-muted:#888;--accent:#00a8c7;--accent-dark:#08a;--accent-soft:#00a8c71a;--accent-selection:#00a8c747;--divider:#00000014;--border-color:#00000014;--card-bg:#f5f5f5;--focus-ring:var(--accent);--scrollbar-track:#e0e0e0;--scrollbar-thumb:#b0b0b0;--icon-filter:invert(0);--hero-glow:#00a8c70f}html{scroll-behavior:smooth}body{background-color:var(--bg-default);width:100%;min-height:100%;color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-normal);margin:0}#root{width:100%;min-height:100vh}a{color:inherit;text-decoration:none}::selection{background-color:var(--accent-selection)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--accent) 40%, var(--scrollbar-thumb))}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.reveal{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--duration-slow) var(--ease), transform var(--duration-slow) var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}img#knight{animation:.5s steps(4,end) infinite knight!important}.reveal{opacity:1;transition:none;transform:none}}
