@font-face{font-family:DM Serif Display;font-style:normal;font-display:swap;font-weight:400;src:url(../media/dm-serif-display-latin-ext-400-normal.2jjhs6si3ctjg.woff2)format("woff2"),url(../media/dm-serif-display-latin-ext-400-normal.1g4mv5724cxff.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:normal;font-display:swap;font-weight:400;src:url(../media/dm-serif-display-latin-400-normal.3w9mgxbw0q0s8.woff2)format("woff2"),url(../media/dm-serif-display-latin-400-normal.0lkllo23fyt1g.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:DM Serif Display;font-style:italic;font-display:swap;font-weight:400;src:url(../media/dm-serif-display-latin-ext-400-italic.454a25o7qrr7t.woff2)format("woff2"),url(../media/dm-serif-display-latin-ext-400-italic.1go9x_5kwthv1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:italic;font-display:swap;font-weight:400;src:url(../media/dm-serif-display-latin-400-italic.3hwmm54jrg_42.woff2)format("woff2"),url(../media/dm-serif-display-latin-400-italic.32fqiko4qi-9k.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-ext-400-normal.06jgjxwem-j4l.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-400-normal.2sh6eiud8p5to.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-400-normal.350ekqw02c4ub.woff2)format("woff2"),url(../media/instrument-sans-latin-400-normal.0y101ejb90zo_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/instrument-sans-latin-ext-500-normal.3_j4pp7s_oson.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-500-normal.39gv8qzlsfdpj.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/instrument-sans-latin-500-normal.1m_u3k-3_nxk9.woff2)format("woff2"),url(../media/instrument-sans-latin-500-normal.16b_u8jrvdjgm.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-ext-600-normal.1s9509amcneue.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-600-normal.2gzep0q8z_mik.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-600-normal.31b98hgxp8isy.woff2)format("woff2"),url(../media/instrument-sans-latin-600-normal.09hqi4pw218gc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--serif:"DM Serif Display", Georgia, serif;--sans:"Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease:cubic-bezier(.25, .46, .45, .94);--transition-theme:background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);--fs-eyebrow:.75rem;--fs-meta:.875rem;--fs-body:.95rem;--fs-lead:1.05rem;--fs-card-title:1.25rem;--fs-item-title:1.5rem;--fs-section-title:clamp(2rem, 4vw, 3rem)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0e12;--bg-elevated:#13161c;--nav-glass:#0c0e129e;--nav-glass-border:#b9cdff24;--bg-mobile:#0c0e12f7;--text-primary:#e2e6ed;--text-secondary:#8a92a1;--text-muted:#7f8798;--accent:#6b9eff;--accent-dim:#6b9eff1a;--accent-dim-hover:#6b9eff2e;--glow-tint:#6b9eff2e;--border:#8ca0c812;--border-hover:#8ca0c824;--selection-bg:#6b9eff;--selection-text:#0c0e12;--toggle-bg:#1e2330;--toggle-icon:#6b9eff;--card-shadow:0 8px 30px #0003;--dot-color:#8ca0c80b;--card-glass:#1418201f;--card-glass-border:#b9cdff24;--card-glass-shadow:0 12px 40px #00000052;--form-glass:#0c0e12ad;--form-glass-highlight:#ffffff0f;--form-glass-filter:blur(2.5px) saturate(1.5) brightness(2.1);--form-field:#ffffff0d;--form-field-focus:#ffffff17}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f8f7f4;--bg-elevated:#edf2f5;--nav-glass:#f8f7f49e;--nav-glass-border:#1e28501f;--bg-mobile:#f8f7f4f7;--text-primary:#172d3d;--text-secondary:#4d6473;--text-muted:#607484;--accent:#315f7d;--accent-dim:#47759414;--accent-dim-hover:#47759424;--accent-on-photo:#b0daf7;--glow-tint:#a8d6ff4d;--border:#315f7d24;--border-hover:#315f7d4d;--selection-bg:#315f7d;--selection-text:#fff;--toggle-bg:#e7eef2;--toggle-icon:#315f7d;--card-shadow:0 8px 24px #26455a0f;--dot-color:#315f7d06;--card-glass:#ffffff40;--card-glass-border:#1e285024;--card-glass-shadow:0 12px 40px #14143c1a;--form-glass:#f8f7f4b8;--form-glass-highlight:#ffffff80;--form-glass-filter:blur(2.5px) saturate(1.4) contrast(1.12);--form-field:#ffffff52;--form-field-focus:#fff9}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}section[id]{scroll-margin-top:5rem}.skip-link{background:var(--bg);border:1px solid var(--accent);color:var(--accent);font-family:var(--sans);transition:top .2s var(--ease);z-index:1000;border-radius:6px;padding:.6rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:1rem}.skip-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;top:1rem}body{background:var(--bg);color:var(--text-primary);font-family:var(--sans);min-width:320px;transition:var(--transition-theme);-webkit-font-smoothing:antialiased;margin:0;line-height:1.7;overflow-x:hidden}body:before{background-image:radial-gradient(var(--dot-color) 1px, transparent 1px);content:"";pointer-events:none;transition:opacity .45s var(--ease);z-index:-2;background-size:28px 28px;position:fixed;inset:0}.backdrop-constellation{opacity:0;pointer-events:none;height:100%;transition:opacity .5s var(--ease);z-index:-1;width:100%;position:fixed;inset:0}.backdrop-constellation[data-visible=true]{opacity:1}::selection{background:var(--selection-bg);color:var(--selection-text)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{display:block}.site-nav{isolation:isolate;max-width:1280px;transition:max-width .4s var(--ease), padding .4s var(--ease);z-index:100;background:0 0;justify-content:space-between;align-items:center;width:calc(100% - 2rem);margin-inline:auto;padding:1rem 3rem;display:flex;position:fixed;inset:0 0 auto}.site-nav:before{background:var(--nav-glass);-webkit-backdrop-filter:blur(40px)saturate(1.4);backdrop-filter:blur(40px)saturate(1.4);border:1px solid var(--nav-glass-border);content:"";opacity:0;pointer-events:none;transform-origin:top;transition:opacity .2s var(--ease), transform .24s var(--ease), var(--transition-theme);z-index:0;border-radius:999px;position:absolute;inset:.35rem 0;transform:translateY(-.35rem)scaleX(.985);box-shadow:0 8px 24px #0000002e}.site-nav>*{z-index:1;position:relative}.site-nav.is-scrolled{max-width:1180px;padding-block:.75rem}.site-nav.is-scrolled:before{opacity:1;transform:translateY(0)scaleX(1)}.nav-brand{color:var(--text-primary);font-family:var(--serif);letter-spacing:.02em;transition:color .3s var(--ease), text-shadow .3s var(--ease);font-size:1.75rem;line-height:1}.nav-brand span{color:var(--accent)}.nav-actions,.nav-links{align-items:center;display:flex}.nav-actions{gap:1rem}.nav-links{gap:2.5rem}.nav-links a{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;transition:color .3s var(--ease), text-shadow .3s var(--ease);font-size:.82rem;font-weight:500;position:relative}.nav-links a:after{background:var(--accent);content:"";height:1px;transition:width .3s var(--ease);width:0;position:absolute;bottom:-4px;left:0}.nav-links a:hover,.nav-links a:focus-visible{color:var(--text-primary)}.nav-links a:hover:after,.nav-links a:focus-visible:after{width:100%}.theme-toggle,.menu-toggle{background:var(--toggle-bg);border:1px solid var(--border-hover);color:var(--toggle-icon);transition:var(--transition-theme), transform .3s var(--ease);justify-content:center;align-items:center;display:inline-flex}.theme-toggle{height:38px;transition:background .2s var(--ease), border-color .2s var(--ease), color .45s var(--ease), transform .2s var(--ease);background:0 0;border-color:#0000;border-radius:50%;width:38px}.theme-toggle:hover,.theme-toggle:focus-visible{background:var(--toggle-bg)}.menu-toggle{border-radius:6px;width:38px;height:38px;display:none}.menu-toggle:hover,.menu-toggle:focus-visible{border-color:var(--accent);transform:scale(1.06)}.theme-toggle svg,.menu-toggle svg{width:21px;height:21px}.theme-toggle-icons{place-items:center;display:grid}.theme-toggle-icons>svg{transition:opacity .3s var(--ease), transform .3s var(--ease);grid-area:1/1}.theme-toggle-icon-sun{opacity:0;transform:rotate(-90deg)scale(.9)}[data-theme=light] .theme-toggle-icon-sun{opacity:1;transform:none}[data-theme=light] .theme-toggle-icon-moon{opacity:0;transform:rotate(90deg)scale(.9)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-image-pair(root){isolation:auto}.theme-reveal-overlay{pointer-events:none;will-change:clip-path, opacity;z-index:9999;position:fixed;inset:0}[data-theme-switching] *,[data-theme-switching] :before,[data-theme-switching] :after{transition-duration:0s!important}.mobile-menu{background:var(--bg-mobile);-webkit-backdrop-filter:blur(30px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease), transform .3s var(--ease), var(--transition-theme);z-index:90;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;display:flex;position:fixed;inset:0;transform:translateY(-8px)}.mobile-menu.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-menu a{color:var(--text-secondary);font-family:var(--serif);transition:color .3s var(--ease);font-size:2rem}.mobile-menu a:hover,.mobile-menu a:focus-visible{color:var(--accent)}.section-label{color:var(--text-muted);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;transition:color .45s var(--ease);margin:0;font-weight:600}.button svg{width:15px;height:15px}.section{max-width:1100px;margin:0 auto;padding:7rem 3rem}.section-title{color:var(--text-primary);font-family:var(--serif);font-size:var(--fs-section-title);text-wrap:balance;transition:color .45s var(--ease);margin:.8rem 0 3.5rem;font-weight:400;line-height:1.2}.about-layout{grid-template-columns:280px 1fr;align-items:start;gap:4rem;display:grid}.about-photo{aspect-ratio:3/4;background:var(--bg-elevated);border:1px solid var(--border);transition:var(--transition-theme);border-radius:8px;position:sticky;top:5rem;overflow:hidden}.about-photo:after{background:linear-gradient(160deg, var(--accent-dim) 0%, transparent 50%);content:"";pointer-events:none;position:absolute;inset:0}.about-photo img{object-fit:cover}.about-copy{color:color-mix(in srgb, var(--text-primary) 86%, var(--text-secondary));font-size:var(--fs-lead);transition:color .45s var(--ease);line-height:1.85}.about-copy p{margin:0}.about-copy p+p{margin-top:1.2rem}.about-copy strong{color:var(--text-primary);font-weight:600}.highlight-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin:2.5rem 0 0;display:grid}.highlight-grid div{border-top:1px solid var(--border);padding-top:1rem}.highlight-grid dt{color:var(--text-muted);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:600}.highlight-grid dd{color:var(--text-primary);font-family:var(--serif);font-size:var(--fs-card-title);margin:.35rem 0 0;line-height:1.25}.contact-layout{max-width:760px;margin:0}.service-item h3,.project-info h3{color:var(--text-primary);font-family:var(--serif);margin:0;font-weight:400;line-height:1.25}.project-title-link{color:inherit;align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.project-title-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.service-item p,.project-info p,.contact-intro{color:var(--text-secondary);transition:color .45s var(--ease)}.project-media-frame{background:var(--bg-elevated);border-radius:8px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.project-media img{object-fit:cover;transition:transform .6s var(--ease)}.skills-list{flex-wrap:wrap;gap:.7rem;margin-bottom:3rem;display:flex}.skills-list span{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-meta);letter-spacing:.04em;transition:border-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease), background .45s var(--ease);border-radius:100px;padding:.5rem 1.1rem;font-weight:500}.skills-list span:hover{border-color:var(--accent);color:var(--accent)}.services-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:3.5rem;display:grid}.service-item{border:1px solid var(--border);transition:all .4s var(--ease);border-radius:6px;padding:1.5rem}.service-item:hover{background:var(--bg-elevated);border-color:var(--border-hover)}.service-item h3{font-size:var(--fs-card-title)}.service-item p{font-size:var(--fs-body);margin:.5rem 0 0;line-height:1.65}.experience-timeline{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.timeline-item{border-bottom:1px solid var(--border);transition:border-color .3s var(--ease);grid-template-columns:minmax(140px,180px) 1fr;gap:2.5rem;padding:2.2rem 0;display:grid}.timeline-item:hover{border-bottom-color:var(--border-hover)}.timeline-year{color:var(--text-muted);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;margin:.5rem 0 0;font-weight:500}.timeline-role{color:var(--text-primary);font-family:var(--serif);font-size:var(--fs-item-title);margin:0;font-weight:400;line-height:1.25}.timeline-company{color:var(--accent);font-size:var(--fs-meta);margin:.3rem 0 1rem;font-weight:500}.timeline-desc{color:var(--text-secondary);font-size:var(--fs-body);max-width:60ch;transition:color .45s var(--ease);margin:0;line-height:1.7}.projects-list{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.25rem;display:grid}.project-card{--project-delay:calc(var(--project-order) * 70ms);-webkit-backdrop-filter:blur(32px)saturate(1.6);backdrop-filter:blur(32px)saturate(1.6);background:linear-gradient(145deg, #ffffff0e, transparent 38%), var(--card-glass);border:1px solid var(--card-glass-border);box-shadow:var(--card-glass-shadow), inset 0 1px 0 #ffffff14;transform-origin:bottom;transition:border-color .45s var(--ease), box-shadow .45s var(--ease), opacity .7s var(--ease), transform .7s var(--ease);border-radius:18px;flex-direction:column;grid-column:span 5;display:flex;position:relative;overflow:hidden}.project-card:nth-child(4n+1),.project-card:nth-child(4n){grid-column:span 7}.project-card-content{flex-direction:column;flex:1;display:flex}.project-card.reveal{opacity:0;transform:translateY(34px)scale(.985)}.project-card.reveal.is-visible{opacity:1;transform:translateY(0)scale(1)}.project-card:focus-within{border-color:var(--accent-dim-hover);box-shadow:var(--card-shadow), var(--card-glass-shadow);transform:translateY(-4px)}.project-card:focus-within .project-media-frame img{transform:scale(1.04)}.project-card:focus-within .project-info h3{color:var(--accent)}.project-card:focus-within .project-link-icon{transform:translate(2px,-2px)}@media (hover:hover) and (pointer:fine){.project-card:hover{border-color:var(--accent-dim-hover);box-shadow:var(--card-shadow), var(--card-glass-shadow);transform:translateY(-4px)}:is(.project-card:has(.project-media-link:hover) .project-media-frame img,.project-card:has(.project-title-link:hover) .project-media-frame img){transform:scale(1.04)}:is(.project-card:has(.project-media-link:hover) .project-info h3,.project-card:has(.project-title-link:hover) .project-info h3){color:var(--accent)}:is(.project-card:has(.project-media-link:hover) .project-link-icon,.project-card:has(.project-title-link:hover) .project-link-icon){transform:translate(2px,-2px)}}.project-link-icon{color:var(--accent);height:.72em;transition:transform .35s var(--ease);flex-shrink:0;width:.72em}.project-media{aspect-ratio:16/10;padding:1rem 1.25rem 0;position:relative}.project-media-link{width:100%;height:100%;display:block}.project-card:nth-child(4n+2) .project-media,.project-card:nth-child(4n+3) .project-media{aspect-ratio:4/3}.project-info{flex-direction:column;flex:1;justify-content:center;padding:1.6rem 2rem 2rem;display:flex}.project-info h3{font-size:var(--fs-item-title);transition:color .3s var(--ease);margin-bottom:.8rem}.project-info p{font-size:var(--fs-body);max-width:58ch;margin:0 0 1.5rem;line-height:1.75}.project-card.reveal .project-info>*{opacity:0;transition:opacity .5s var(--ease) calc(var(--project-delay) + .18s), transform .5s var(--ease) calc(var(--project-delay) + .18s);transform:translateY(12px)}.project-card.reveal .project-info h3{transition:color .3s var(--ease), opacity .5s var(--ease) calc(var(--project-delay) + .18s), transform .5s var(--ease) calc(var(--project-delay) + .18s)}.project-card.reveal.is-visible .project-info>*{opacity:1;transform:translateY(0)}.project-tags{flex-wrap:wrap;gap:.5rem;display:flex}.project-tags span{background:var(--accent-dim);color:var(--accent);font-size:var(--fs-meta);letter-spacing:.04em;transition:background .3s var(--ease), border-color .3s var(--ease);border:1px solid #0000;border-radius:999px;padding:.4rem .95rem;font-weight:500}.contact-stage{position:relative;overflow:hidden}.contact-stage>.contact-section,.contact-stage>.site-footer{position:relative}.contact-moon{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.contact-section{padding-bottom:7rem}.contact-section .section-title{max-width:560px;margin-bottom:1.2rem}.contact-intro{font-size:var(--fs-lead);max-width:480px;margin:0 0 2.5rem;line-height:1.7}.contact-form{-webkit-backdrop-filter:var(--form-glass-filter);backdrop-filter:var(--form-glass-filter);background:var(--form-glass);border:1px solid var(--nav-glass-border);box-shadow:0 8px 24px #0000002e, var(--card-glass-shadow), inset 0 1px 0 var(--form-glass-highlight);transition:var(--transition-theme), border-color .3s var(--ease);border-radius:20px;flex-direction:column;gap:1.2rem;padding:2.25rem;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.contact-form{background:var(--bg-elevated)}}.contact-form:focus-within{border-color:var(--accent-dim-hover)}.contact-form-honeypot{opacity:0;pointer-events:none;width:0;height:0;position:absolute;left:-10000px}.contact-form-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:.4rem;display:flex}.contact-form-socials{flex-wrap:wrap;gap:1.4rem;display:flex}.contact-form-socials a{color:var(--text-secondary);font-size:var(--fs-meta);transition:color .3s var(--ease);align-items:center;gap:.45rem;display:inline-flex}.contact-form-socials a:hover,.contact-form-socials a:focus-visible{color:var(--accent)}.contact-form-socials svg{width:16px;height:16px;transform:translateY(-1px)}.contact-form input:disabled,.contact-form textarea:disabled{cursor:not-allowed;opacity:.6}.contact-form .button:disabled{cursor:not-allowed;opacity:.7}.contact-form-status{font-size:var(--fs-meta);border-radius:6px;justify-content:space-between;align-items:flex-start;gap:.75rem;margin:0;padding:.7rem .7rem .7rem .9rem;line-height:1.5;display:flex}.contact-form-status-message{margin:0}.contact-form-status-close{color:inherit;cursor:pointer;opacity:.7;transition:opacity .3s var(--ease);background:0 0;border:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin:-.15rem 0;padding:.25rem;display:inline-flex}.contact-form-status-close:hover,.contact-form-status-close:focus-visible{opacity:1}.contact-form-status-close svg{width:16px;height:16px}.contact-form-status.is-success{background:var(--accent-dim);color:var(--accent)}.contact-form-status.is-error{color:#ff8585;background:#ff5a5a1f}.contact-form-spinner{animation:.8s linear infinite contact-spin}@keyframes contact-spin{to{transform:rotate(360deg)}}.form-row{grid-template-columns:1fr 1fr;gap:1.2rem;display:grid}.contact-form label{flex-direction:column;gap:.4rem;display:flex}.contact-form label span{color:var(--text-muted);font-size:var(--fs-eyebrow);letter-spacing:.04em;font-weight:600}.contact-form input,.contact-form textarea{background:var(--form-field);border:1px solid var(--border);color:var(--text-primary);resize:vertical;transition:all .3s var(--ease);border-radius:6px;outline:none;padding:.8rem 1rem}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-muted)}.contact-form input:focus,.contact-form textarea:focus{background:var(--form-field-focus);border-color:var(--accent)}.contact-form textarea{min-height:140px}.site-footer{border-top:1px solid var(--border);max-width:1100px;transition:border-color .45s var(--ease);justify-content:flex-start;align-items:center;margin:0 auto;padding:2rem 3rem;display:flex}.site-footer span{color:var(--text-muted);font-size:var(--fs-eyebrow);letter-spacing:.06em}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.project-card.reveal,.project-card.reveal .project-info>*{opacity:1;transform:none}}@media (max-width:1024px){.projects-list{grid-template-columns:minmax(0,1fr)}.project-card,.project-card:nth-child(4n+1),.project-card:nth-child(4n){grid-column:1}}@media (max-width:900px){.services-grid{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;gap:.5rem;padding:1.8rem 0}.timeline-year{margin:0 0 .4rem}}@media (max-width:768px){.site-nav{width:calc(100% - 1.5rem);max-width:none;padding:.8rem .75rem}.site-nav.is-scrolled{padding-block:.65rem}.site-nav:before{inset:.3rem 0}.nav-links{display:none}.menu-toggle{display:inline-flex}.section{padding:5rem 1.5rem}.section-title{margin-bottom:2.5rem}.about-layout{grid-template-columns:1fr;gap:2rem}.about-photo{width:min(220px,100%);margin-inline:auto;position:relative;top:auto}.highlight-grid,.form-row{grid-template-columns:1fr}.project-info,.contact-form{padding:1.5rem}.site-footer{padding:2rem 1.5rem}}@media (max-width:420px){.button{justify-content:center;width:100%}.contact-form-footer{flex-direction:column-reverse;align-items:stretch}.contact-form-socials{justify-content:center}}[data-glow]{position:relative;overflow:hidden}[data-glow]>:not(.glow-layer){z-index:1;position:relative}.glow-layer{background:radial-gradient(closest-side, var(--glow-tint), transparent 70%);opacity:0;pointer-events:none;height:480px;transition:opacity .35s var(--ease);will-change:transform;z-index:0;border-radius:50%;width:480px;position:absolute;top:-240px;left:-240px}@media (prefers-reduced-motion:reduce){.glow-layer{display:none}}
:root{--radius-control:999px;--control-height:44px;--control-transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease)}[data-theme=dark]{--btn-primary-bg:#f4f2ec;--btn-primary-bg-hover:#fff;--btn-primary-text:#14161b;--btn-primary-border:#ffffff4d;--btn-primary-shadow:0 6px 20px #00000059;--btn-primary-shadow-hover:0 10px 26px #0006;--btn-secondary-bg:#e2e6ed14;--btn-secondary-bg-hover:#e2e6ed24;--btn-secondary-border:#b9cdff38;--btn-secondary-border-hover:#b9cdff57;--btn-secondary-highlight:#ffffff29;--btn-secondary-shadow:0 8px 26px #0000004d}[data-theme=light]{--btn-primary-bg:#203e52;--btn-primary-bg-hover:#172d3d;--btn-primary-text:#f8f7f4;--btn-primary-border:#203e524d;--btn-primary-shadow:0 4px 12px #203e521f;--btn-primary-shadow-hover:0 6px 16px #203e5229;--btn-secondary-bg:#ffffff80;--btn-secondary-bg-hover:#ffffffad;--btn-secondary-border:#14143c29;--btn-secondary-border-hover:#14143c42;--btn-secondary-highlight:#ffffffbf;--btn-secondary-shadow:0 3px 10px #203e520d}.button{border-radius:var(--radius-control);box-sizing:border-box;letter-spacing:.015em;min-height:var(--control-height);transition:var(--control-transition);-webkit-tap-highlight-color:transparent;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.55rem;font-size:.9rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.button-ripple{opacity:.2;pointer-events:none;will-change:opacity, transform;animation:button-ripple .62s var(--ease) forwards;background:currentColor;border-radius:50%;position:absolute;transform:scale(0)}@keyframes button-ripple{to{opacity:0;transform:scale(1)}}.button-primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-border);box-shadow:var(--btn-primary-shadow);color:var(--btn-primary-text)}.button-primary:hover,.button-primary:focus-visible{background:var(--btn-primary-bg-hover);box-shadow:var(--btn-primary-shadow-hover);transform:translateY(-1px)}.button-primary:active{box-shadow:var(--btn-primary-shadow);transform:translateY(0)}.button-secondary{background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);box-shadow:inset 0 1px 0 var(--btn-secondary-highlight), var(--btn-secondary-shadow);color:var(--text-primary);-webkit-backdrop-filter:blur(20px)saturate(1.4);backdrop-filter:blur(20px)saturate(1.4)}.button-secondary:hover,.button-secondary:focus-visible{background:var(--btn-secondary-bg-hover);border-color:var(--btn-secondary-border-hover);transform:translateY(-1px)}.button-secondary:active{transform:translateY(0)}.button:disabled,.button[aria-disabled=true]{box-shadow:none;cursor:not-allowed;opacity:.55;pointer-events:none;transform:none}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle,.menu-toggle{height:36px;transition:var(--control-transition);border-radius:50%;width:36px;position:relative}.theme-toggle:after,.menu-toggle:after{border-radius:inherit;content:"";position:absolute;inset:-4px}.theme-toggle:hover,.theme-toggle:focus-visible,.menu-toggle:hover,.menu-toggle:focus-visible{transform:translateY(-1px)}.theme-toggle:focus-visible,.menu-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.button,.theme-toggle,.menu-toggle{transition:none}.button-ripple{display:none}.button-primary:hover,.button-primary:focus-visible,.button-secondary:hover,.button-secondary:focus-visible,.theme-toggle:hover,.theme-toggle:focus-visible,.menu-toggle:hover,.menu-toggle:focus-visible{transform:none}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.button-secondary{background:var(--bg-elevated)}}
[data-theme=light] .backdrop-constellation{display:none}[data-theme=light] .site-nav:before{box-shadow:0 4px 18px #26455a12,inset 0 1px #ffffffb3}[data-theme=light] .site-nav:not(.is-scrolled):not(.is-menu-open){--accent:var(--accent-on-photo);--toggle-icon:#fff;--toggle-bg:#ffffff2e;--border-hover:#fff6}[data-theme=light] .site-nav:not(.is-scrolled):not(.is-menu-open) .nav-brand,[data-theme=light] .site-nav:not(.is-scrolled):not(.is-menu-open) .nav-links a{color:#fff;text-shadow:0 1px 2px #0a1a2899}[data-theme=light] .hero,[data-theme=light] .contact-form{--btn-primary-bg:#fff;--btn-primary-bg-hover:#fff;--btn-primary-text:#14161b;--btn-primary-border:#ffffff80;--btn-primary-shadow:0 6px 20px #0c1c2a47;--btn-primary-shadow-hover:0 10px 26px #0c1c2a57}[data-theme=light] .section-label,[data-theme=light] .highlight-grid dt,[data-theme=light] .service-item h3,[data-theme=light] .contact-form label span{color:var(--accent)}[data-theme=light] .timeline-company{color:#2a6a92}[data-theme=light] .about-photo{border-color:#315f7d2e;box-shadow:0 8px 24px #26455a12}[data-theme=light] .about-photo:after{background:0 0}[data-theme=light] .highlight-grid div{border-top-color:#315f7d4d}[data-theme=light] .skills-list span{background:#edf2f5;border-color:#315f7d1a}[data-theme=light] .skills-list span:hover{border-color:var(--accent);color:var(--accent)}[data-theme=light] .service-item{transition:background-color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);background:#f0f4f6;border-color:#315f7d24;border-radius:8px;box-shadow:inset 0 1px #ffffffb3}[data-theme=light] .project-card{-webkit-backdrop-filter:none;background:#edf2f5;border-color:#315f7d26;border-radius:12px;box-shadow:0 3px 12px #26455a09}[data-theme=light] .project-media-frame{border-radius:6px}[data-theme=light] .project-tags span{background:#fff;border-color:#315f7d14}[data-theme=light] .project-card:focus-within{border-color:var(--border-hover);box-shadow:var(--card-shadow);transform:none}@media (hover:hover) and (pointer:fine){[data-theme=light] .service-item:hover{border-color:var(--border-hover);background:#eaf1f5;box-shadow:0 4px 14px #26455a0a}[data-theme=light] .project-card:hover{border-color:var(--border-hover);box-shadow:var(--card-shadow);transform:none}}[data-theme=light] .contact-stage{background:linear-gradient(#f8f7f4,#eaf1f5 42%,#e5eef3)}[data-theme=light] .contact-form{background:var(--form-glass);-webkit-backdrop-filter:var(--form-glass-filter);box-shadow:0 8px 28px #26455a0f, inset 0 1px 0 var(--form-glass-highlight);border:1px solid #315f7d2e;border-radius:12px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){[data-theme=light] .contact-form{background:var(--bg-elevated)}}[data-theme=light] .contact-form:focus-within{border-color:var(--border-hover)}[data-theme=light] .contact-form input,[data-theme=light] .contact-form textarea{transition:background-color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease)}[data-theme=light] .contact-form input:focus-visible,[data-theme=light] .contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}[data-theme=light] .contact-form-status.is-error{color:#9d3028;background:#f8e9e7}
.hero{isolation:isolate;background:var(--bg);align-items:center;min-height:min(900px,100svh);display:flex;position:relative;overflow:hidden}.hero-atmosphere{background:var(--bg);pointer-events:none;z-index:-1;position:absolute;inset:0}.hero-orbit-fallback{aspect-ratio:1;border:1px solid var(--accent-dim-hover);height:56%;max-height:700px;box-shadow:0 0 70px var(--accent-dim), inset 0 0 60px var(--accent-dim);border-radius:50%;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%)}.hero-canvas{opacity:0;width:100%;height:100%;transition:opacity .2s var(--ease);position:absolute;inset:0}.hero-canvas[data-ready=true]{opacity:1}.hero[data-atmosphere-ready=true] .hero-orbit-fallback{visibility:hidden}.hero-stars{width:100%;height:100%;position:absolute;inset:0}.hero-content{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:760px;margin-inline:auto;padding:6rem 3rem;display:flex;position:relative}.hero-label{color:var(--text-secondary);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:.65rem;margin:0;font-size:.71rem;font-weight:500;line-height:1.7;display:flex}.hero-label>span{background:var(--accent);box-shadow:0 0 12px var(--accent-dim-hover);border-radius:50%;flex-shrink:0;width:5px;height:5px}.hero h1{color:var(--text-primary);font-family:var(--serif);letter-spacing:-.035em;text-wrap:balance;max-width:820px;margin:1.8rem 0 0;font-size:clamp(3.2rem,5.8vw,5.3rem);font-weight:400;line-height:1.09}.hero-headline em{color:var(--accent);font-weight:400}.headline-line{margin-bottom:-.16em;padding-bottom:.16em;display:block;overflow:hidden}.headline-word{display:inline-block}.hero-summary{color:var(--text-secondary);text-wrap:pretty;max-width:460px;margin:1.65rem auto 0;font-size:1.05rem;line-height:1.85}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:2rem;display:flex}.hero-social-actions{display:contents}@media (prefers-reduced-motion:no-preference){.hero-orbit-fallback{animation:orbit-emerge 2.4s var(--ease) both}.hero-label,.hero-summary,.hero-actions{animation:hero-arrive .85s var(--ease) both}.hero-summary{animation-delay:.34s}.hero-actions{animation-delay:.46s}.headline-word{animation:headline-word-in .95s var(--ease) both;opacity:0;transform-origin:0 100%;transform:translateY(115%)rotate(2deg)}.headline-word.delay-1{animation-delay:.1s}.headline-word.delay-2{animation-delay:.18s}.headline-word.delay-3{animation-delay:.26s}.headline-word.delay-4{animation-delay:.34s}.headline-word.delay-5{animation-delay:.42s}.headline-word.delay-6{animation-delay:.5s}}@keyframes headline-word-in{to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes orbit-emerge{0%{opacity:0;transform:translate(-50%,-50%)scale(.014)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes hero-arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.hero{min-height:min(760px,100svh)}.hero-content{padding:5rem 1.5rem 6rem}.hero h1{font-size:clamp(2rem,10.2vw,4.2rem)}.hero-label{letter-spacing:.095em;font-size:.64rem}.hero-summary{max-width:340px;font-size:.95rem}.hero-actions{gap:1rem .65rem}.hero-actions .button{width:auto;padding-inline:1.2rem}.hero-social-actions{flex-basis:100%;justify-content:center;gap:.65rem;display:flex}}.hero-earth{--ease-in-out:cubic-bezier(.77, 0, .175, 1);pointer-events:none;z-index:-1;background:#bbd3e1;display:none;position:absolute;inset:0;overflow:hidden}[data-theme=light] .hero-earth{display:block}[data-theme=light] .hero-atmosphere{display:none}[data-theme=light] .hero{--text-primary:#fff;--text-secondary:#fff;--accent:var(--accent-on-photo);--btn-secondary-bg:#e2e6ed1c;--btn-secondary-bg-hover:#e2e6ed21;--btn-secondary-border:#b9cdff57;--btn-secondary-border-hover:#b9cdff85;--btn-secondary-highlight:#ffffff42;--btn-secondary-shadow:0 8px 26px #0000004d;align-items:flex-start;min-height:max(760px,100svh)}[data-theme=light] .hero-content{max-width:900px;padding-top:clamp(7.5rem,15svh,10rem);padding-bottom:20rem}[data-theme=light] .hero h1{text-shadow:0 1px 3px #08182866;margin-top:1.15rem;font-size:clamp(3.2rem,5.8vw,5.3rem)}[data-theme=light] .hero-label,[data-theme=light] .hero-summary{color:#fff;text-shadow:0 1px 2px #0a1a28b8,0 6px 20px #0a1a2880}[data-theme=light] .hero-label{font-weight:600}[data-theme=light] .hero-label>span{box-shadow:none}[data-theme=light] .hero-summary{margin-top:1.25rem;font-weight:500}[data-theme=light] .hero-actions{margin-top:1.5rem}.hero-earth-image,.hero-earth-veil{position:absolute;inset:0}[data-theme=light] .hero-earth-image{background-image:url(/assets/hero-earth.webp);background-position:50% 60%;background-size:cover}.hero-earth-veil{background:linear-gradient(180deg, #0e22365c, #0e223685 22%, #0e223682 44%, #0e223652 56%, transparent 68%), linear-gradient(0deg, var(--bg), #f8f7f459 4%, transparent 16%)}.hero-sun-rays{mix-blend-mode:screen;transform-origin:25% 49%;position:absolute;inset:-55% -50%;-webkit-mask-image:radial-gradient(at 25% 49%,#000 4%,#000000b3 30%,#0000 64%);mask-image:radial-gradient(at 25% 49%,#000 4%,#000000b3 30%,#0000 64%)}.hero-sun-rays-wide{animation:sunlight-drift 24s var(--ease-in-out) infinite alternate;filter:blur(9px);opacity:.5;background:repeating-conic-gradient(from 72deg at 25% 49%,#0000 0deg 12deg,#fff3d07a 15deg,#0000 20deg 33deg)}.hero-sun-rays-fine{animation:sunlight-drift 17s var(--ease-in-out) -8s infinite alternate-reverse;filter:blur(3px);opacity:.35;background:repeating-conic-gradient(from 84deg at 25% 49%,#0000 0deg 8deg,#fffae259 9deg,#0000 12deg 24deg)}.hero-cloud-shadow{animation:cloud-shadow-drift 32s var(--ease-in-out) -12s infinite alternate;mix-blend-mode:multiply;background:radial-gradient(at 20% 55%,#1c303f42,#0000 40%),radial-gradient(at 75% 85%,#1c303f33,#0000 35%);position:absolute;inset:25% -25% -10%}.hero-water-light{animation:water-light-drift 18s var(--ease-in-out) -5s infinite alternate;mix-blend-mode:soft-light;background:radial-gradient(at 25% 35%,#fff1c580,#0000 55%);position:absolute;inset:48% 5% 12% -10%}.hero-earth:not([data-running=true]) *{animation-play-state:paused}@keyframes sunlight-drift{0%{opacity:.3;transform:rotate(-7deg)scale(.98)}to{opacity:.75;transform:rotate(8deg)scale(1.04)}}@keyframes cloud-shadow-drift{0%{opacity:.3;transform:translate(-8%)rotate(-5deg)}to{opacity:.8;transform:translate(10%)rotate(4deg)}}@keyframes water-light-drift{0%{opacity:.35;transform:translate(-4%)}to{opacity:.8;transform:translate(8%)}}@media (max-width:768px){[data-theme=light] .hero{min-height:max(780px,100svh)}[data-theme=light] .hero-content{padding:7.5rem 1.5rem 24rem}[data-theme=light] .hero h1{font-size:clamp(2rem,10.2vw,4.2rem)}[data-theme=light] .hero-earth-image{background-position:20% 0;background-size:auto 124%}.hero-earth-veil{background:linear-gradient(180deg, #0e223666, #0e22368f 22%, #0e22368c 44%, #0e223657 56%, transparent 68%), linear-gradient(0deg, var(--bg), transparent 14%)}}@media (prefers-reduced-motion:reduce){.hero-earth *{animation:none}}
