*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,p,ul,ol{margin:0}body{min-height:100vh}ul,ol{padding:0;list-style:none}img,picture,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{overflow-wrap:break-word}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f4f0e7;--surface:#fffdf8;--surface-emphasis:#e9e2d6;--text:#111820;--muted-text:#5c6470;--border:#cec5b7;--accent-primary:#102f4a;--accent-primary-hover:#081f33;--accent-secondary:#f06432;--accent-secondary-soft:#ffede5;--accent-tertiary:#f2c94c;--accent-tertiary-soft:#fff5c5;--on-accent:#fffdf8;--panel-background:#102f4a;--panel-surface:#173d5c;--panel-border:#34566f;--panel-text:#fffdf8;--panel-muted:#bdccd7;--font-family:ui-sans-serif, -apple-system, blinkmacsystemfont, "Segoe UI", sans-serif;--font-serif:ui-serif, georgia, cambria, "Times New Roman", serif;--content-width:78rem;--text-width:46rem;--header-height:4rem;--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;--space-9:6rem;--radius-small:.25rem;--radius-medium:.5rem;--radius-large:1rem;--radius-pill:999px;--transition-duration:.16s}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0c1218;--surface:#151e26;--surface-emphasis:#202c35;--text:#f7f3eb;--muted-text:#b6c0c9;--border:#34414c;--accent-primary:#a9cee8;--accent-primary-hover:#c8e2f4;--accent-secondary:#ff7847;--accent-secondary-soft:#3a241c;--accent-tertiary:#ffd45d;--accent-tertiary-soft:#332e18;--on-accent:#0c1218;--panel-background:#142330;--panel-surface:#1b3142;--panel-border:#395064;--panel-text:#f7f3eb;--panel-muted:#bac7d1}html{scroll-behavior:smooth;background:var(--background)}body{background:var(--background);min-width:20rem;min-height:100vh;color:var(--text);font-family:var(--font-family);-webkit-font-smoothing:antialiased;font-size:1rem;line-height:1.6;overflow-x:hidden}main{display:block}section{scroll-margin-top:calc(var(--header-height) + var(--space-4))}a{text-underline-offset:.2em;text-decoration-thickness:.08em}a:hover{text-decoration-thickness:.12em}button{border:0}h1,h2,h3{text-wrap:balance;line-height:1.12}p{max-width:var(--text-width)}::selection{background:var(--accent-secondary);color:#fff}:focus-visible{outline:.1875rem solid var(--accent-secondary);outline-offset:.1875rem}[hidden]{display:none!important}.skip-link{top:var(--space-3);left:var(--space-3);z-index:100;padding:var(--space-3) var(--space-4);border-radius:var(--radius-small);background:var(--accent-primary);color:var(--on-accent);transform:translateY(calc(-100% - var(--space-6)));transition:transform var(--transition-duration);font-weight:700;text-decoration:none;display:inline-flex;position:fixed}.skip-link:focus-visible{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}}.container{width:min(100% - 2rem, var(--content-width));margin-inline:auto}.section{padding-block:var(--space-8)}.section-header{gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.stack{gap:var(--space-4);display:grid}@media (min-width:48rem){.container{width:min(100% - 4rem, var(--content-width))}.section{padding-block:var(--space-9)}}.button{justify-content:center;align-items:center;gap:var(--space-3);border:.0625rem solid var(--accent-primary);border-radius:var(--radius-small);background:var(--accent-primary);min-height:3rem;color:var(--on-accent);transition:background-color var(--transition-duration), border-color var(--transition-duration), color var(--transition-duration), transform var(--transition-duration);padding:.85rem 1.15rem;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.button:after{background:var(--accent-tertiary);content:"";flex:none;width:.45rem;height:.45rem}.button:hover{border-color:var(--accent-secondary);background:var(--accent-secondary);color:#fff;transform:translateY(-.125rem)}.button-secondary{background:var(--surface);color:var(--accent-primary)}.button-secondary:after{background:var(--accent-secondary)}.button-secondary:hover{background:var(--accent-primary);color:var(--on-accent)}.text-link{align-items:center;gap:var(--space-1);color:var(--accent-primary);-webkit-text-decoration-color:var(--accent-secondary);text-decoration-color:var(--accent-secondary);font-weight:800;display:inline-flex}.text-link:after{color:var(--accent-secondary);content:"↗";transition:transform var(--transition-duration);text-decoration:none}.text-link:hover{color:var(--accent-secondary)}.text-link:hover:after{transform:translate(.125rem,-.125rem)}.card{border:.0625rem solid var(--border);border-radius:var(--radius-medium);background:var(--surface)}.tag-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{padding:var(--space-1) var(--space-3);border:.0625rem solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted-text);font-size:.875rem;line-height:1.5}.detail-list{gap:var(--space-2);padding-left:var(--space-5);color:var(--muted-text);list-style:outside;display:grid}.demo-panel{gap:var(--space-2);padding:var(--space-4);border-left:.25rem solid var(--accent-secondary);background:var(--accent-secondary-soft);display:grid}.demo-panel code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem}.cv-download{z-index:3;position:relative}.cv-download-summary{cursor:pointer;list-style:none}.cv-download-summary::-webkit-details-marker{display:none}.cv-download-summary::marker{content:""}.cv-download-options{top:calc(100% + var(--space-2));border:.0625rem solid var(--border);border-radius:var(--radius-small);background:var(--surface);width:100%;min-width:11rem;display:grid;position:absolute;left:0;overflow:hidden}.cv-download-option{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);color:var(--text);font-size:.875rem;font-weight:800;text-decoration:none;display:flex}.cv-download-option:not(:last-child){border-bottom:.0625rem solid var(--border)}.cv-download-option:hover{background:var(--accent-secondary-soft);color:var(--accent-primary)}.cv-download-icon{color:var(--accent-secondary)}.site-header{z-index:10;border-bottom:.0625rem solid var(--border);background:var(--background);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--header-height);flex-wrap:wrap;display:flex}.site-name{align-items:center;gap:var(--space-3);color:var(--text);letter-spacing:-.025em;order:1;font-weight:850;text-decoration:none;display:inline-flex}.site-name:before{background:var(--accent-secondary);content:"";flex:none;width:.8rem;height:.8rem}.site-name:hover{color:var(--accent-primary)}.header-controls{gap:var(--space-2);order:2;display:flex}.language-switcher{border:.0625rem solid var(--border);border-radius:var(--radius-small);background:var(--surface);align-items:center;height:2.65rem;padding:.2rem;display:inline-flex}.language-button{border-radius:calc(var(--radius-small) - .15rem);min-width:2rem;height:2.15rem;color:var(--muted-text);letter-spacing:.04em;background:0 0;border:0;padding-inline:.4rem;font-size:.7rem;font-weight:850}.language-button:hover{color:var(--text)}.language-button[aria-pressed=true]{background:var(--accent-primary);color:var(--background)}.language-button:focus-visible{outline:.125rem solid var(--accent-secondary);outline-offset:.125rem}.menu-button{border:.0625rem solid var(--border);border-radius:var(--radius-small);background:var(--surface);width:2.65rem;height:2.65rem;color:var(--text);transition:border-color var(--transition-duration), color var(--transition-duration), background-color var(--transition-duration), transform var(--transition-duration);flex:none;place-items:center;display:grid}.theme-button{border-radius:var(--radius-small);width:auto;height:2.65rem;color:var(--text);transition:border-color var(--transition-duration), background-color var(--transition-duration);background:0 0;border:.0625rem solid #0000;flex:none;justify-content:center;align-items:center;gap:.65rem;padding-inline:.7rem;display:inline-flex;position:relative}.menu-button:hover{border-color:var(--accent-secondary);background:var(--accent-tertiary-soft);color:var(--accent-primary);transform:translateY(-.0625rem)}.theme-button:hover{border-color:var(--border);background:var(--surface)}.site-navigation{width:100%;margin-bottom:var(--space-3);background:var(--panel-background);order:3;display:none}.site-navigation[data-open=true]{display:block}.navigation-list{padding:var(--space-2);flex-direction:column;align-items:stretch;display:flex}.navigation-list a{padding:var(--space-3);color:var(--panel-muted);font-size:.9375rem;font-weight:700;text-decoration:none;display:block}.navigation-list a:hover{background:var(--panel-surface);color:var(--panel-text)}.hero{padding-block:var(--space-7) var(--space-8)}.hero-grid{gap:var(--space-7);display:grid}.hero-copy{align-content:start;gap:var(--space-5);display:grid}.hero-eyebrow{align-items:center;gap:var(--space-3);display:flex}.hero-eyebrow:before{background:var(--accent-secondary);content:"";width:2.5rem;height:.25rem}.hero-eyebrow p{color:var(--accent-primary);letter-spacing:.1em;text-transform:uppercase;font-size:.8125rem;font-weight:850}.hero-title{max-width:18ch;line-height:.94;display:grid}.hero-title-main{color:var(--text);letter-spacing:-.06em;font-size:clamp(3rem,5.2vw,4.75rem);font-weight:900}.hero-title-accent{margin-top:var(--space-2);color:var(--accent-primary);font-family:var(--font-serif);letter-spacing:-.05em;font-size:clamp(2.75rem,4.8vw,4.3rem);font-style:italic;font-weight:600}.hero-text{max-width:42rem;color:var(--muted-text);font-size:1.0625rem;line-height:1.7}.hero-actions,.contact-actions,.project-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.hero-actions .text-link{padding-block:var(--space-2)}.glance-panel{padding-left:var(--space-7);border-left:.0625rem solid var(--border)}.glance-label{margin-bottom:var(--space-5);color:var(--accent-secondary);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:850}.glance-grid{gap:var(--space-5) var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.glance-item{align-items:start;gap:var(--space-4);grid-template-columns:3rem minmax(0,1fr);display:grid}.glance-item-icon{background:var(--accent-secondary-soft);width:3rem;height:3rem;color:var(--accent-secondary);border-radius:50%;place-items:center;display:grid}.glance-item h3{margin-bottom:var(--space-2);color:var(--text);font-size:.9375rem;line-height:1.25}.glance-item p{color:var(--muted-text);font-size:.8125rem;line-height:1.55}.glance-tech{margin-top:var(--space-5)}.glance-tech-label{margin-bottom:var(--space-3);color:var(--accent-secondary);letter-spacing:.1em;text-transform:uppercase;font-size:.6875rem;font-weight:850}.glance-tech-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.glance-tech-list li{border:.0625rem solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--muted-text);padding:.35rem .65rem;font-size:.6875rem;font-weight:700}.glance-meta{margin-top:var(--space-4);padding-top:var(--space-4);border-top:.0625rem solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.glance-meta li{gap:var(--space-1);padding-inline:var(--space-4);display:grid}.glance-meta li:first-child{padding-left:0}.glance-meta li:not(:last-child){border-right:.0625rem solid var(--border)}.glance-meta strong{color:var(--text);font-size:.875rem}.glance-meta span{color:var(--muted-text);font-size:.75rem;line-height:1.35}.projects-section{padding-top:0}.projects-section .section-header{margin-bottom:var(--space-5)}.projects-section .section-title{letter-spacing:-.025em;word-spacing:.08em;font-size:clamp(2rem,3vw,2.75rem)}.project-grid,.contribution-grid,.skills-grid{gap:var(--space-5);display:grid}.project-card{border-radius:var(--radius-medium);min-width:0;transition:transform var(--transition-duration), border-color var(--transition-duration);transform-origin:50%;grid-template-rows:.25rem 1fr;display:grid;position:relative;overflow:hidden}.project-card:hover{border-color:var(--accent-secondary);transform:scale(1.015)}.project-card:before{background:var(--accent-secondary);content:"";width:100%;height:100%}.project-card-content{gap:var(--space-4);grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr) auto;padding:1.25rem;display:grid}.project-card .stack{align-content:start;gap:var(--space-3);grid-column:1/-1;display:grid}.project-type{min-height:2.9em;color:var(--accent-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:850;line-height:1.45}.project-card h3{color:var(--text);letter-spacing:-.04em;font-size:1.45rem;line-height:1.1}.project-description{color:var(--muted-text);font-size:.875rem;line-height:1.55}.project-technologies{color:var(--accent-primary);font-size:.75rem;font-weight:750;line-height:1.5}.project-actions{grid-area:2/1;display:block}.project-actions .button{width:100%;min-height:2.65rem;padding:.7rem .85rem;font-size:.8125rem}.project-actions .button:after{width:auto;height:auto;color:var(--accent-secondary);content:"↗";background:0 0;font-size:1.1em;line-height:1}.project-source-link{align-self:center;align-items:center;gap:var(--space-1);color:var(--text);-webkit-text-decoration-color:var(--accent-secondary);text-decoration-color:var(--accent-secondary);text-underline-offset:.25em;grid-area:2/2;font-size:.8125rem;font-weight:800;display:inline-flex}.project-source-link:after{color:var(--accent-secondary);content:"↗";font-size:1.1em;line-height:1}.project-source-link:hover{color:var(--accent-secondary)}.about-section{border-top:.0625rem solid var(--border)}.about-grid{gap:var(--space-6);display:grid}.about-heading-wrap{align-content:start;justify-items:start;gap:var(--space-4);display:grid}.about-marker{background:var(--accent-secondary);width:3rem;height:.25rem}.about-title{letter-spacing:-.025em;word-spacing:.08em;font-size:clamp(2.5rem,4vw,4rem);line-height:1}.about-copy{gap:var(--space-5);max-width:49rem;display:grid}.about-copy p{color:var(--muted-text);font-size:1.0625rem;line-height:1.75}.about-intro{color:var(--text)}.contribution-section{border-top:.0625rem solid var(--border)}.contribution-header{gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.contribution-header .section-label{color:var(--accent-secondary);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:850}.contribution-header .section-title{letter-spacing:-.02em;word-spacing:.12em;font-size:clamp(2.5rem,4vw,4rem);line-height:1}.contribution-item{border-radius:var(--radius-medium);position:relative;overflow:hidden}.contribution-item:before{background:var(--accent-secondary);content:"";width:3.5rem;height:.25rem;position:absolute;top:0;left:0}.contribution-number{color:var(--accent-secondary);font-family:var(--font-serif);font-size:1rem;font-style:italic;font-weight:700}.contribution-item,.skill-group,.experience-item,.education-item,.contact-panel{gap:var(--space-3);padding:var(--space-5);display:grid}.contribution-item h3,.skill-group h3{font-size:1.25rem}.contribution-item p,.skill-group p,.experience-item p,.education-item p{color:var(--muted-text)}.item-meta{color:var(--accent-secondary);font-size:.875rem;font-weight:750}.contact-panel{border-left:.3rem solid var(--accent-secondary)}.site-footer{padding-block:var(--space-6);border-top:.0625rem solid var(--border);color:var(--muted-text)}@media (min-width:48rem){.project-grid,.contribution-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.header-inner{flex-wrap:nowrap}.menu-button{display:none}.site-navigation{width:auto;margin-right:var(--space-4);background:0 0;order:2;margin-bottom:0;margin-left:auto;display:block}.navigation-list{align-items:center;gap:var(--space-4);flex-direction:row;padding:0}.navigation-list a{color:var(--muted-text);padding:0}.navigation-list a:hover{color:var(--accent-secondary);background:0 0}.header-controls{order:3}.hero{padding-block:var(--space-8)}.hero-grid{align-items:center;gap:var(--space-7);grid-template-columns:minmax(0,1.15fr) minmax(24rem,.85fr)}.hero-title{max-width:none}.hero-title-main{white-space:nowrap;font-size:clamp(3rem,4.6vw,4.1rem)}.hero-title-accent{white-space:nowrap;font-size:clamp(2.8rem,4.2vw,3.8rem)}}@media (min-width:75rem){.project-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr))}.project-card-content{padding:var(--space-4)}}.theme-button-label{color:var(--muted-text);letter-spacing:.04em;white-space:nowrap;font-size:.75rem;font-weight:800;line-height:1}.theme-mark{border:.0625rem solid var(--accent-primary);width:1.15rem;height:1.15rem;transition:border-color var(--transition-duration), transform var(--transition-duration);display:block;position:relative;overflow:hidden;transform:rotate(45deg)}.theme-mark:before,.theme-mark:after{content:"";width:50%;position:absolute;inset-block:0}.theme-mark:before{background:var(--accent-secondary);left:0}.theme-mark:after{background:var(--accent-primary);right:0}.theme-mark-centre{z-index:1;border:.0625rem solid var(--border);background:var(--background);width:.28rem;height:.28rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}html[data-theme=dark] .theme-mark{border-color:var(--accent-tertiary);transform:rotate(135deg)}html[data-theme=dark] .theme-mark:before{background:var(--accent-tertiary)}html[data-theme=dark] .theme-mark:after{background:var(--accent-primary)}.theme-button:hover .theme-mark{transform:rotate(135deg)scale(1.08)}html[data-theme=dark] .theme-button:hover .theme-mark{transform:rotate(45deg)scale(1.08)}@media (min-width:64rem){.about-grid{align-items:start;gap:var(--space-8);grid-template-columns:minmax(12rem,.4fr) minmax(0,1fr)}}.skills-section{border-top:.0625rem solid var(--border)}.skills-header{gap:var(--space-3);margin-bottom:var(--space-6);display:grid}.skills-header .section-label{color:var(--accent-secondary);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:850}.skills-header .section-title{letter-spacing:-.02em;word-spacing:.12em;font-size:clamp(2.5rem,4vw,4rem);line-height:1}.skill-group{border-radius:var(--radius-medium);transition:border-color var(--transition-duration), transform var(--transition-duration);align-content:start;position:relative;overflow:hidden}.skill-group:before{background:var(--accent-secondary);content:"";width:3.5rem;height:.25rem;position:absolute;top:0;left:0}.skill-group:hover{border-color:var(--accent-secondary);transform:translateY(-.2rem)}.skill-list{gap:var(--space-2);color:var(--muted-text);font-size:.9375rem;display:grid}.skill-item{padding-left:var(--space-4);position:relative}.skill-item:before{background:var(--accent-tertiary);content:"";width:.35rem;height:.35rem;position:absolute;top:.65em;left:0;transform:translateY(-50%)}@media (min-width:75rem){.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.experience-section{border-top:.0625rem solid var(--border)}.experience-layout{gap:var(--space-6);display:grid}.experience-heading{align-content:start;justify-items:start;gap:var(--space-4);display:grid}.experience-marker{background:var(--accent-secondary);width:3rem;height:.25rem}.experience-heading .section-title{letter-spacing:-.02em;font-size:clamp(2.5rem,4vw,4rem);line-height:1}.experience-record{gap:var(--space-6);padding:var(--space-6);border:.0625rem solid var(--border);border-top:.25rem solid var(--accent-secondary);border-radius:var(--radius-medium);background:var(--surface);transition:border-color var(--transition-duration), transform var(--transition-duration);display:grid}.experience-record:hover{border-color:var(--accent-secondary);transform:translateY(-.2rem)}.experience-summary{align-content:start;gap:var(--space-2);display:grid}.experience-period{color:var(--accent-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:850}.experience-summary h3{margin-top:var(--space-2);letter-spacing:-.035em;font-size:clamp(1.6rem,2.5vw,2.15rem)}.experience-company{color:var(--accent-primary);font-weight:800}.experience-location{color:var(--muted-text);font-size:.9375rem}.experience-points{gap:var(--space-4);display:grid}.experience-point{padding-left:var(--space-5);color:var(--muted-text);line-height:1.6;position:relative}.experience-point:before{background:var(--accent-tertiary);content:"";width:.45rem;height:.45rem;position:absolute;top:.7em;left:0;transform:translateY(-50%)}@media (min-width:64rem){.experience-layout{align-items:start;gap:var(--space-8);grid-template-columns:minmax(12rem,.35fr) minmax(0,1fr)}.experience-record{grid-template-columns:minmax(14rem,.42fr) minmax(0,1fr);align-items:start}}.education-section{border-top:.0625rem solid var(--border)}.education-header{justify-items:start;gap:var(--space-4);margin-bottom:var(--space-6);display:grid}.education-marker{background:var(--accent-secondary);width:3rem;height:.25rem}.education-header .section-title{letter-spacing:-.02em;word-spacing:.12em;font-size:clamp(2.5rem,4vw,4rem);line-height:1}.education-layout,.education-column{gap:var(--space-5);display:grid}.education-record{align-content:start;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-medium);transition:border-color var(--transition-duration), transform var(--transition-duration);display:grid;position:relative;overflow:hidden}.education-record:before{background:var(--accent-secondary);content:"";width:3.5rem;height:.25rem;position:absolute;top:0;left:0}.education-record:hover{border-color:var(--accent-secondary);transform:translateY(-.2rem)}.education-period{color:var(--accent-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:850}.education-name{margin-top:var(--space-2);font-size:1.3rem;line-height:1.25}.education-institution{color:var(--accent-primary);font-weight:800}.education-location{color:var(--muted-text);font-size:.9375rem}@media (min-width:64rem){.education-column{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-section{border-top:.0625rem solid var(--border)}.contact-layout{gap:var(--space-6);display:grid}.contact-heading{align-content:start;justify-items:start;gap:var(--space-4);display:grid}.contact-marker{background:var(--accent-secondary);width:3rem;height:.25rem}.contact-heading .section-title{letter-spacing:-.02em;font-size:clamp(2.5rem,4vw,4rem);line-height:1}.contact-intro{max-width:28rem;color:var(--muted-text);font-size:1rem;line-height:1.7}.contact-card{border:.0625rem solid var(--border);border-top:.25rem solid var(--accent-secondary);border-radius:var(--radius-medium);background:var(--surface);overflow:hidden}.contact-email{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5);border-bottom:.0625rem solid var(--border);color:var(--accent-primary);letter-spacing:-.025em;font-size:clamp(1.35rem,2.5vw,2rem);font-weight:850;text-decoration:none;display:flex}.contact-email:hover{color:var(--accent-secondary)}.contact-list{padding-inline:var(--space-5);display:grid}.contact-entry{gap:var(--space-4);padding-block:var(--space-4);border-bottom:.0625rem solid var(--border);grid-template-columns:8rem minmax(0,1fr);display:grid}.contact-entry:last-child{border-bottom:0}.contact-entry dt{color:var(--text);font-weight:850}.contact-entry dd{color:var(--muted-text);line-height:1.55}.contact-entry-link{align-items:center;gap:var(--space-2);color:var(--accent-primary);-webkit-text-decoration-color:var(--accent-secondary);text-decoration-color:var(--accent-secondary);text-underline-offset:.2em;font-weight:750;display:inline-flex}.contact-entry-link:hover{color:var(--accent-secondary)}@media (min-width:64rem){.contact-layout{align-items:start;gap:var(--space-8);grid-template-columns:minmax(14rem,.4fr) minmax(0,1fr)}}.footer-inner{justify-content:space-between;align-items:end;gap:var(--space-5);flex-wrap:wrap;display:flex}.footer-identity{gap:var(--space-2);display:grid}.footer-name{align-items:center;gap:var(--space-3);color:var(--text);font-weight:850;text-decoration:none;display:inline-flex}.footer-name:before{background:var(--accent-secondary);content:"";flex:none;width:.7rem;height:.7rem}.footer-name:hover{color:var(--accent-secondary)}.footer-identity p{color:var(--muted-text);font-size:.8125rem}.footer-navigation{gap:var(--space-4);flex-wrap:wrap;display:flex}.footer-link{color:var(--muted-text);-webkit-text-decoration-color:var(--accent-secondary);text-decoration-color:var(--accent-secondary);text-underline-offset:.2em;font-size:.8125rem;font-weight:750}.footer-link:hover{color:var(--accent-secondary)}@media not (min-width:48rem){.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.hero-actions>.button,.hero-actions>.cv-download,.hero-actions .cv-download-summary{width:100%}.hero-actions .text-link{justify-self:start}.cv-download-options{width:100%}.glance-panel{padding-top:var(--space-5);border-top:.0625rem solid var(--border);border-left:0;padding-left:0}.glance-grid{gap:var(--space-4);grid-template-columns:1fr}.glance-item{gap:var(--space-3);grid-template-columns:2.5rem minmax(0,1fr)}.glance-item-icon{width:2.5rem;height:2.5rem}.glance-meta{grid-template-columns:1fr}.glance-meta li{padding:var(--space-3) 0}.glance-meta li:not(:last-child){border-right:0;border-bottom:.0625rem solid var(--border)}.contact-email{overflow-wrap:anywhere;font-size:1.15rem}.contact-entry{gap:var(--space-2);grid-template-columns:1fr}.footer-inner{align-items:start}.footer-navigation{gap:var(--space-3);width:100%}}.project-details{padding-top:var(--space-3);border-top:.0625rem solid var(--border)}.project-details summary{color:var(--text);cursor:pointer;font-size:.8125rem;font-weight:850}.project-details[open] summary{margin-bottom:var(--space-3)}.project-detail-list{gap:var(--space-3);display:grid}.project-detail-list>div{gap:var(--space-1);display:grid}.project-detail-list dt{color:var(--muted-text);letter-spacing:.08em;text-transform:uppercase;font-size:.6875rem;font-weight:850}.project-detail-list dd{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:.8125rem}.project-detail-list code{font-size:.75rem}.project-details .project-detail-list a{color:var(--accent-primary);text-underline-offset:.2em;font-weight:750}.project-details .project-detail-list a:hover{color:var(--accent-secondary)}
