.breadcrumb{margin-bottom:var(--space-md)}.breadcrumb ol{display:flex;align-items:center;gap:0;list-style:none}.breadcrumb li{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary)}.breadcrumb li:not(:last-child)::after{content:"/";margin:0 var(--space-xs);color:var(--border)}.breadcrumb a{color:var(--accent-mid);transition:color .2s}.breadcrumb a:hover,.breadcrumb a:focus-visible{color:var(--accent)}.resume-header{padding:calc(var(--nav-height) + var(--space-xl)) 0 var(--space-xl);border-bottom:1px solid var(--border)}.resume-header__accent{width:40px;height:4px;background-color:var(--accent);margin-bottom:var(--space-md);border-radius:2px}.resume-header__name{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3rem);letter-spacing:-0.03em;line-height:1;color:var(--text-primary);margin-bottom:var(--space-xs)}.resume-header__title{font-family:var(--font-display);font-weight:600;font-size:clamp(.9rem,2vw,1.1rem);letter-spacing:-0.025em;line-height:1.35;color:var(--accent);margin-bottom:var(--space-md)}.resume-header__summary{font-size:1rem;line-height:1.65;letter-spacing:.01em;color:var(--text-secondary);max-width:640px;margin-bottom:var(--space-lg)}.resume-header__contact{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:var(--space-sm) var(--space-lg);margin-bottom:var(--space-lg)}.resume-header__contact a{color:var(--accent-mid);transition:color .2s}.resume-header__contact a:hover,.resume-header__contact a:focus-visible{color:var(--accent)}.resume-header__label{display:block;font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin-bottom:2px}.resume-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.resume-project__card{display:grid;grid-template-columns:1fr 240px;gap:var(--col-gap);padding:var(--space-lg);background-color:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md)}.resume-project__title-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xs)}.resume-project__title{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-0.025em;line-height:1.35;color:var(--text-primary)}.resume-project__type{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap}.resume-project__url{display:inline-block;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--accent-mid);margin-bottom:var(--space-sm);transition:color .2s}.resume-project__url:hover,.resume-project__url:focus-visible{color:var(--accent)}.resume-project__stack-label{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:var(--space-xs)}.resume-project__stack-text{font-size:.875rem;line-height:1.55;color:var(--text-secondary)}.resume-list{list-style:none}.resume-list li{position:relative;padding-left:14px;margin-top:var(--space-xs);font-size:.9rem;line-height:1.55;color:var(--text-secondary)}.resume-list li::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;border-radius:50%;background-color:var(--accent)}.resume-body{padding-bottom:var(--space-xl)}.resume-grid{display:grid;grid-template-columns:1fr 280px;gap:var(--col-gap);align-items:start}.resume-job{margin-top:var(--space-lg)}.resume-job:first-of-type{margin-top:0}.resume-job__role{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-0.025em;line-height:1.35;color:var(--text-primary);margin-bottom:var(--space-xs)}.resume-job__company{font-size:.95rem;font-weight:400;color:var(--text-primary);margin-bottom:2px}.resume-job__meta{display:flex;justify-content:space-between;gap:var(--space-md);font-family:var(--font-body);font-size:.75rem;font-weight:400;letter-spacing:.04em;color:var(--accent-mid);font-style:italic;margin-bottom:var(--space-sm)}.resume-sidebar-section{margin-top:var(--space-lg)}.resume-sidebar-section:first-child{margin-top:0}.resume-skills{display:grid;gap:var(--space-sm)}.resume-skill-group{padding-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.resume-skill-group:last-child{border-bottom:none;padding-bottom:0}.resume-skill-group__label{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary);margin-bottom:var(--space-xs)}.resume-skill-group__text{font-size:.875rem;line-height:1.55;color:var(--text-secondary)}.resume-edu{margin-top:var(--space-sm)}.resume-edu:first-of-type{margin-top:0}.resume-edu__degree{font-family:var(--font-body);font-weight:400;font-size:.95rem;color:var(--text-primary);margin-bottom:2px}.resume-edu__school{font-size:.875rem;color:var(--text-secondary)}.resume-edu__dates{font-family:var(--font-body);font-size:.75rem;font-weight:400;letter-spacing:.04em;color:var(--text-tertiary)}.resume-focus__title{font-family:var(--font-body);font-weight:400;font-size:.95rem;color:var(--text-primary);margin-bottom:var(--space-xs)}.resume-focus__text{font-size:.875rem;line-height:1.55;color:var(--text-secondary)}@media(max-width: 768px){.resume-project__card{grid-template-columns:1fr;padding:var(--space-md)}.resume-grid{grid-template-columns:1fr}.resume-job__meta{flex-direction:column;gap:2px}.resume-project__title-row{flex-direction:column;gap:var(--space-xs)}.resume-header__contact{grid-template-columns:1fr 1fr}}@media(max-width: 480px){.resume-header__contact{grid-template-columns:1fr}.resume-header__actions{flex-direction:column}.resume-header__actions .btn{justify-content:center}}@media print{.site-header,.skip-link,.footer,.breadcrumb,.resume-header__actions{display:none !important}@page{size:Letter;margin:.34in .42in}html{font-size:12px}body{--accent: #2A3A8C;--accent-mid: #2A3A8C;--accent-rule: #B8C0E0;--border: #C9D0D8;--text-primary: #17202B;--text-secondary: #536174;--text-tertiary: #536174;--card-bg: #F6F8FA;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 18px;--col-gap: 30px;background:#fff !important;font-size:8.8px;line-height:1.24;print-color-adjust:exact;-webkit-print-color-adjust:exact}.resume-header{position:relative;padding-top:0 !important;padding-bottom:18px !important;border-bottom:3px solid var(--text-primary)}.resume-header .section__inner{display:grid;grid-template-columns:minmax(0, 1fr) 340px;column-gap:28px;align-items:start}.resume-header__accent{display:none}.resume-header__name{grid-column:1;font-size:2.85rem;letter-spacing:-0.035em;margin-bottom:5px}.resume-header__title{grid-column:1;font-size:1.25rem;line-height:1.2;color:var(--accent);margin-bottom:9px}.resume-header__summary{grid-column:1;max-width:680px;font-size:.94rem;line-height:1.36;color:var(--text-secondary);margin-bottom:0}.resume-header__contact{grid-column:2;grid-row:1/span 3;display:block;text-align:right;margin-bottom:0;font-size:.86rem;line-height:1.55}.resume-header__contact>div{margin-bottom:4px}.resume-header__label{display:inline;font-family:var(--font-body);font-size:.86rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--text-primary);margin:0 4px 0 0}.section{padding:10px 0 0 !important}.section__inner{padding:0 !important;max-width:none}.section--surface{background:rgba(0,0,0,0) !important}.section--surface .section__inner{position:relative}.section--surface .section-label{position:absolute;left:26px;top:18px;margin-bottom:0 !important}.resume-project__card{position:relative;grid-template-columns:minmax(0, 1fr) 245px;gap:26px;background:#f6f8fa !important;border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:0;padding:22px 24px 11px 26px}.resume-project__title-row{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:2px}.resume-project__title{font-size:1.18rem;letter-spacing:0}.resume-project__type{font-size:.78rem;color:var(--text-secondary);font-weight:700;letter-spacing:.02em}.resume-project__url{font-size:.86rem;margin-bottom:4px}.resume-project__stack-label{font-size:.82rem;font-weight:700;color:var(--text-primary);margin-bottom:7px}.resume-project__stack-text{font-size:.86rem;line-height:1.26}.resume-body{padding-bottom:0 !important}.resume-grid{grid-template-columns:minmax(0, 1fr) 250px;gap:30px}.section-label{font-size:1rem !important;line-height:1;letter-spacing:.16em;color:var(--accent);margin-bottom:8px !important}.section-label::before{content:none !important}.resume-job{margin-top:8px !important;break-inside:avoid}.resume-job:first-of-type{margin-top:0 !important}.resume-job__role{font-size:1.1rem;letter-spacing:0;margin-bottom:1px}.resume-job__company{font-size:.92rem;font-weight:700;line-height:1.2}.resume-job__meta{flex-direction:row;justify-content:space-between;gap:12px;font-size:.82rem;color:var(--accent);margin-bottom:4px}.resume-sidebar-section{margin-top:10px !important}.resume-sidebar-section:first-child{margin-top:0 !important}.resume-skills{gap:0}.resume-skill-group{padding-bottom:6px;margin-bottom:6px}.resume-skill-group__label{font-size:.82rem;font-weight:700;color:var(--text-primary);margin-bottom:5px}.resume-skill-group__text,.resume-focus__text{font-size:.86rem;line-height:1.3}.resume-edu{margin-top:8px}.resume-edu__degree,.resume-focus__title{font-size:.9rem;font-weight:700;line-height:1.2}.resume-edu__school,.resume-edu__dates{font-size:.86rem;line-height:1.25}.resume-list li{padding-left:14px;margin-top:3px;font-size:.86rem;line-height:1.28}.resume-list li::before{top:.55em;width:4px;height:4px}}:root{--accent: oklch(0.45 0.18 260);--accent-mid: oklch(0.53 0.13 260);--accent-rule: oklch(0.74 0.07 260);--accent-pale: oklch(0.93 0.03 260);--bg: oklch(0.97 0.005 260);--surface: oklch(0.94 0.008 260);--border: oklch(0.87 0.01 260);--text-primary: oklch(0.17 0.015 260);--text-secondary: oklch(0.43 0.025 260);--text-tertiary: oklch(0.38 0.02 260);--card-bg: var(--bg);--space-xs: 0.375rem;--space-sm: 0.75rem;--space-md: 1.5rem;--space-lg: 3rem;--space-xl: 5rem;--space-2xl: 8rem;--radius-sm: 4px;--radius-md: 8px;--radius-pill: 100px;--max-width: 1100px;--inline-pad: clamp(1.25rem, 5vw, 3rem);--col-gap: clamp(1.5rem, 4vw, 3rem);--nav-height: 56px;--nav-transition-duration: 300ms;--font-display: 'Schibsted Grotesk', sans-serif;--font-body: 'Source Sans 3', sans-serif;--font-mono: 'JetBrains Mono', monospace}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{font-family:var(--font-body);font-weight:400;line-height:1.6;color:var(--text-primary);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}::selection{background-color:var(--accent-pale);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-100%;left:var(--space-md);z-index:1000;padding:var(--space-xs) var(--space-sm);background:var(--accent);color:oklch(.98 .003 260);font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm)}.skip-link:focus{top:var(--space-sm)}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-height);transition:background-color var(--nav-transition-duration),box-shadow var(--nav-transition-duration)}.site-header.scrolled{background-color:oklch(.97 .005 260/.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--border)}.site-header.scrolled .nav__logo{color:var(--text-primary)}.site-header.scrolled .nav__link{color:var(--text-primary)}.site-header.scrolled .nav__link:hover,.site-header.scrolled .nav__link:focus-visible{color:var(--accent)}.site-header.scrolled .nav__link.active{color:var(--accent)}.site-header.scrolled .nav__link--cta{border-color:var(--border);color:var(--text-primary)}.site-header.scrolled .nav__link--cta:hover,.site-header.scrolled .nav__link--cta:focus-visible{border-color:var(--accent);color:var(--accent)}.site-header.scrolled .nav__toggle span{background:var(--text-primary)}.nav{display:flex;align-items:center;max-width:calc(var(--max-width) + var(--inline-pad)*2);margin:0 auto;padding:0 var(--inline-pad);height:100%}.nav__logo{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:oklch(.98 .003 260);transition:color var(--nav-transition-duration)}.nav__links{display:flex;align-items:center;gap:var(--space-lg);margin-left:auto}.nav__link{font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:oklch(.98 .003 260/.82);transition:color .2s}.nav__link:hover,.nav__link:focus-visible{color:oklch(.98 .003 260)}.nav__link.active{color:oklch(.98 .003 260)}.nav__link--cta{padding:var(--space-xs) var(--space-sm);border:1px solid oklch(.98 .003 260/.3);border-radius:var(--radius-sm)}.nav__link--cta:hover,.nav__link--cta:focus-visible{border-color:oklch(.98 .003 260/.6);color:oklch(.98 .003 260)}.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;min-width:44px;min-height:44px;background:none;border:none;cursor:pointer;padding:10px}.nav__toggle span{display:block;width:100%;height:2px;background:oklch(.98 .003 260);border-radius:1px;transition:transform var(--nav-transition-duration),opacity var(--nav-transition-duration)}.nav__toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav__toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.btn{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-body);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,0);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn--primary{background-color:var(--accent);color:oklch(.98 .003 260);border-color:var(--accent)}.btn--primary:hover,.btn--primary:focus-visible{background-color:var(--accent-mid);border-color:var(--accent-mid)}.btn--secondary{background-color:rgba(0,0,0,0);color:var(--text-primary);border-color:var(--border)}.btn--secondary:hover,.btn--secondary:focus-visible{border-color:var(--accent);color:var(--accent)}.btn--secondary-light{background-color:rgba(0,0,0,0);color:oklch(.98 .003 260/.85);border-color:oklch(.98 .003 260/.3)}.btn--secondary-light:hover,.btn--secondary-light:focus-visible{border-color:oklch(.98 .003 260/.6);color:oklch(.98 .003 260)}.section{padding:var(--space-2xl) 0}.section--tight{padding:var(--space-xl) 0}.section--surface{background-color:var(--surface)}.section__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--inline-pad)}.section-label{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-mid);margin-bottom:var(--space-lg)}.section-label::before{content:"";display:block;width:16px;height:2px;background:var(--accent-rule);flex-shrink:0}.hero{min-height:85vh;min-height:85svh;display:flex;align-items:center;background-color:oklch(.2 .04 260);position:relative;padding:calc(var(--nav-height) + var(--space-xl)) 0 var(--space-xl)}.hero ::selection{background-color:var(--accent);color:oklch(.98 .003 260)}.hero__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--inline-pad);width:100%}.hero__accent{width:40px;height:4px;background-color:var(--accent);margin-bottom:var(--space-lg);border-radius:2px}.hero__name{font-family:var(--font-display);font-weight:700;font-size:clamp(3.5rem,10vw,6.5rem);letter-spacing:-0.03em;line-height:1;color:oklch(.98 .003 260);margin-bottom:var(--space-md)}.hero__title{font-family:var(--font-body);font-size:clamp(.95rem,2vw,1.125rem);font-weight:300;color:oklch(.98 .003 260/.78);letter-spacing:.01em;line-height:1.75;max-width:600px;margin-bottom:var(--space-lg)}.hero__statement{padding:var(--space-md);margin-bottom:var(--space-lg);max-width:700px;background:oklch(.98 .003 260/.12);border-radius:var(--radius-sm)}.hero__statement p{font-size:clamp(1rem,1.8vw,1.15rem);line-height:1.65;letter-spacing:.01em;color:oklch(.98 .003 260/.84)}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.project-card{display:grid;grid-template-columns:1fr 1fr;gap:var(--col-gap);align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg)}.project-card__content{min-width:0}.project-card__preview img{width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--border)}.project-card__header{margin-bottom:var(--space-md)}.project-card__status{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-mid)}.project-card__dot{width:8px;height:8px;background-color:oklch(.55 .14 150);border-radius:50%;display:inline-block}.project-card__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-0.03em;line-height:1;color:var(--text-primary);margin-bottom:var(--space-sm)}.project-card__url{display:inline-block;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--accent-mid);margin-bottom:var(--space-md);transition:color .2s}.project-card__url:hover,.project-card__url:focus-visible{color:var(--accent)}.project-card__desc{font-size:1rem;line-height:1.6;color:var(--text-secondary);margin-bottom:var(--space-md)}.project-card__highlights{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-lg)}.project-card__highlights li{font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--text-secondary);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm)}.experience-list{display:grid;gap:var(--space-md)}.experience-item{padding:var(--space-md) var(--space-lg);background-color:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md)}.experience-item__role{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-0.025em;line-height:1.25;color:var(--text-primary);margin-bottom:var(--space-xs)}.experience-item__company{font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-mid);margin-bottom:2px}.experience-item__dates{font-size:.75rem;letter-spacing:.04em;color:var(--text-tertiary);font-style:italic;margin-bottom:var(--space-sm)}.experience-item__desc{font-size:.925rem;line-height:1.6;color:var(--text-secondary)}.skills-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-lg)}.skill-group__label{font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:var(--space-sm)}.skill-group__desc{font-size:.925rem;line-height:1.6;color:var(--text-secondary);margin-bottom:var(--space-sm)}.skill-group__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.tag{font-family:var(--font-body);font-size:.75rem;font-weight:400;letter-spacing:.02em;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary)}.contact__intro{font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.65;letter-spacing:.01em;color:var(--text-secondary);max-width:640px;margin-bottom:var(--space-lg)}.contact-rows{display:grid;gap:var(--space-sm);max-width:640px}.contact-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background-color:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .2s}.contact-row:hover,.contact-row:focus-visible,.contact-row:focus-within{border-color:var(--accent-rule)}.contact-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-row--split{justify-content:space-between}.contact-row__main{display:flex;align-items:center;gap:var(--space-md);min-width:0}.contact-row__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:var(--surface);border-radius:var(--radius-md);color:var(--accent-mid);flex-shrink:0}.section--surface .contact-row__icon{background-color:var(--border)}.contact-row__label{display:block;font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);margin-bottom:2px}.contact-row__value{display:block;font-size:.925rem;color:var(--text-primary)}.contact-row__action{min-width:64px;min-height:44px;padding:0 var(--space-sm);background:rgba(0,0,0,0);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent-mid);cursor:pointer;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;transition:border-color .2s,color .2s,background-color .2s}.contact-row__action:hover,.contact-row__action:focus-visible{background-color:var(--surface);border-color:var(--accent-rule);color:var(--accent)}.contact-row__action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-status{max-width:640px;margin-top:var(--space-sm);color:var(--accent-mid);font-size:.875rem}.contact-status:empty{display:none}.footer{padding:var(--space-lg) 0;border-top:1px solid var(--border)}.footer__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--inline-pad);display:flex;align-items:center;justify-content:space-between}.footer__logo{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--text-primary)}.footer__copy{font-family:var(--font-body);font-size:.75rem;font-weight:400;letter-spacing:.04em;color:var(--text-tertiary)}@media(max-width: 768px){.nav{flex-wrap:wrap;align-content:flex-start;height:auto;min-height:var(--nav-height)}.js-enabled .nav{flex-wrap:nowrap;align-content:center;height:100%;min-height:0}.js-enabled .nav__toggle{display:flex;margin-left:auto}.theme-toggle{margin-left:var(--space-xs);order:4}.nav__links{flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;background-color:oklch(.17 .015 260/.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);margin:0 calc(var(--inline-pad)*-1);padding:var(--space-sm) var(--inline-pad);border-bottom:1px solid oklch(.98 .003 260/.1)}.js-enabled .nav__links{position:absolute;top:var(--nav-height);left:0;right:0;flex-basis:auto;margin:0;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform var(--nav-transition-duration),opacity var(--nav-transition-duration),visibility var(--nav-transition-duration)}.js-enabled .nav__links.open{transform:translateY(0);opacity:1;visibility:visible}.site-header.scrolled .nav__links{background-color:oklch(.97 .005 260/.95);border-bottom-color:var(--border)}.nav__link{display:block;padding:var(--space-sm) 0;color:oklch(.98 .003 260/.85);border-bottom:1px solid oklch(.98 .003 260/.1)}.site-header.scrolled .nav__link{color:var(--text-primary);border-bottom-color:var(--border)}.nav__link--cta{border:none;border-bottom:1px solid var(--border);border-radius:0;padding:var(--space-sm) 0}.nav__link:last-child,.nav__link--cta:last-child{border-bottom:none}.hero__name{font-size:clamp(2.5rem,12vw,4rem)}.section{padding:var(--space-xl) 0}.project-card{grid-template-columns:1fr;padding:var(--space-md)}.project-card__preview{order:-1}.experience-item{padding:var(--space-md)}.contact-row{padding:var(--space-sm) var(--space-md)}.contact-row--split{align-items:stretch}.skills-grid{grid-template-columns:1fr;gap:var(--space-lg)}}@media(max-width: 480px){.hero__actions{flex-direction:column}.hero__actions .btn{justify-content:center}}@media(prefers-color-scheme: dark){html:not([data-theme]){--bg: oklch(0.18 0.02 260);--surface: oklch(0.22 0.025 260);--border: oklch(0.30 0.03 260);--text-primary: oklch(0.93 0.006 260);--text-secondary: oklch(0.68 0.02 260);--text-tertiary: oklch(0.62 0.02 260);--accent: oklch(0.68 0.16 260);--accent-mid: oklch(0.72 0.10 260);--accent-rule: oklch(0.36 0.06 260);--accent-pale: oklch(0.24 0.04 260);--card-bg: oklch(0.25 0.025 260)}html:not([data-theme]) .hero{background-color:oklch(.14 .03 260)}html:not([data-theme]) .btn--primary{color:oklch(.17 .015 260)}html:not([data-theme]) .site-header.scrolled{background-color:oklch(.18 .02 260/.85);box-shadow:0 1px 0 var(--border)}html:not([data-theme]) .project-card__dot{background-color:oklch(.65 .16 150)}html:not([data-theme]) .section--surface .contact-row__icon{background-color:var(--card-bg)}}@media(prefers-color-scheme: dark)and (max-width: 768px){html:not([data-theme]) .nav__links{background-color:oklch(.14 .03 260/.95)}html:not([data-theme]) .site-header.scrolled .nav__links{background-color:oklch(.18 .02 260/.95);border-bottom-color:var(--border)}html:not([data-theme]) .site-header.scrolled .nav__link{color:var(--text-primary);border-bottom-color:var(--border)}}html[data-theme=dark]{--bg: oklch(0.18 0.02 260);--surface: oklch(0.22 0.025 260);--border: oklch(0.30 0.03 260);--text-primary: oklch(0.93 0.006 260);--text-secondary: oklch(0.68 0.02 260);--text-tertiary: oklch(0.62 0.02 260);--accent: oklch(0.68 0.16 260);--accent-mid: oklch(0.72 0.10 260);--accent-rule: oklch(0.36 0.06 260);--accent-pale: oklch(0.24 0.04 260);--card-bg: oklch(0.25 0.025 260)}html[data-theme=dark] .hero{background-color:oklch(.14 .03 260)}html[data-theme=dark] .btn--primary{color:oklch(.17 .015 260)}html[data-theme=dark] .site-header.scrolled{background-color:oklch(.18 .02 260/.85);box-shadow:0 1px 0 var(--border)}html[data-theme=dark] .project-card__dot{background-color:oklch(.65 .16 150)}html[data-theme=dark] .section--surface .contact-row__icon{background-color:var(--card-bg)}@media(max-width: 768px){html[data-theme=dark] .nav__links{background-color:oklch(.14 .03 260/.95)}html[data-theme=dark] .site-header.scrolled .nav__links{background-color:oklch(.18 .02 260/.95);border-bottom-color:var(--border)}html[data-theme=dark] .site-header.scrolled .nav__link{color:var(--text-primary);border-bottom-color:var(--border)}}.theme-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;background:none;border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm);cursor:pointer;color:oklch(.98 .003 260/.72);transition:color .2s,border-color .2s;flex-shrink:0;margin-left:var(--space-sm)}.theme-toggle:hover,.theme-toggle:focus-visible{color:oklch(.98 .003 260);border-color:oklch(.98 .003 260/.2)}.site-header.scrolled .theme-toggle{color:var(--text-secondary)}.site-header.scrolled .theme-toggle:hover,.site-header.scrolled .theme-toggle:focus-visible{color:var(--accent);border-color:var(--border)}.theme-toggle__sun{display:none}html[data-theme=dark] .theme-toggle__moon{display:none}html[data-theme=dark] .theme-toggle__sun{display:block}@media(prefers-color-scheme: dark){html:not([data-theme]) .theme-toggle__moon{display:none}html:not([data-theme]) .theme-toggle__sun{display:block}}.error-page__main{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-lg)}.error-page__label{font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-mid);margin-bottom:var(--space-md)}.error-page__heading{font-family:var(--font-display);font-weight:700;font-size:clamp(2.5rem,8vw,4rem);letter-spacing:-0.03em;line-height:1;color:var(--text-primary);margin-bottom:var(--space-md)}.error-page__desc{font-size:1rem;line-height:1.65;color:var(--text-secondary);max-width:460px;margin:0 auto var(--space-lg)}.error-page__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-sm)}@media(max-width: 480px){.error-page__actions{flex-direction:column}.error-page__actions .btn{justify-content:center}}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}
