:root{--bg:#fffaf4;--mesh-1:#ff9e3861;--mesh-2:#ffd25a6b;--mesh-3:#ff783c2e;--mesh-4:#ffe8aa73;--grain-opacity:.09;color:#171717;background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Georgia,Times New Roman,serif;transition:background-color .18s,color .18s}*{box-sizing:border-box}[hidden]{display:none!important}body{background:0 0;margin:0;overflow-x:hidden}body:before,body:after{z-index:-1;content:"";pointer-events:none;position:fixed;inset:0}body:before{background:radial-gradient(42% 38% at 18% 12%, var(--mesh-1), transparent 70%), radial-gradient(38% 42% at 84% 8%, var(--mesh-2), transparent 70%), radial-gradient(34% 30% at 62% 46%, var(--mesh-4), transparent 70%), radial-gradient(46% 40% at 10% 88%, var(--mesh-3), transparent 70%);filter:blur(40px);transform:scale(1.1)}body:after{opacity:var(--grain-opacity);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:240px 240px}html{scroll-behavior:smooth}section[id]{scroll-margin-top:6.25rem}#app{width:min(100% - 3rem,76rem);min-height:100svh;margin:0 auto}.site-header,.site-footer{color:#6b6b6b;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;font-family:Arial,sans-serif;font-size:.7rem;display:flex}.site-header{z-index:15;background:linear-gradient(#fa500f, #fa500f) left bottom / calc(var(--scroll-progress,0) * 100%) 2px no-repeat, color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(12px);background-clip:padding-box;border:1px solid #e8e8e8;border-radius:1rem;gap:1.5rem;margin-top:.75rem;padding:.85rem 1.25rem;transition:background-color .18s,border-color .18s,color .18s;position:sticky;top:.75rem;box-shadow:0 .5rem 1.5rem #1715120f}.site-header--on-dark{color:#a7a7a2;background-color:#121212e0;border-color:#2a2a2a}.site-header--on-dark .site-mark,.site-header--on-dark .theme-toggle,.site-header--on-dark .site-nav a:hover,.site-header--on-dark .site-nav a:focus-visible{color:#f4f4f0}.site-header--on-dark .site-nav a{color:#a7a7a2}.site-mark{color:#171717;font-weight:700;text-decoration:none}.theme-toggle{color:#171717;cursor:pointer;width:1.75rem;height:1.75rem;font:inherit;background:0 0;border:0;place-items:center;margin-right:-.25rem;padding:0;line-height:1;transition:color .18s,transform .18s;display:grid}.theme-icon,.theme-icon svg{width:1.25rem;height:1.25rem;display:block}.theme-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px}.theme-toggle:hover,.theme-toggle:focus-visible{color:#171717;transform:rotate(12deg)}.theme-toggle:focus-visible{outline-offset:.25rem;outline:1px solid}main{padding:2.5rem 0 8rem}.intro{text-align:center;grid-template-columns:11rem minmax(0,1fr) 11rem;align-content:center;align-items:center;gap:1.5rem;min-height:calc(100svh - 7rem);margin-bottom:9rem;display:grid}.eyebrow,.section-number{color:#6b6b6b;letter-spacing:.1em;text-transform:uppercase;margin:0 0 1.25rem;font-family:Arial,sans-serif;font-size:.7rem}h1{letter-spacing:-.05em;margin:0;font-size:min(clamp(3.5rem,6.5vw,10rem),11.4cqw);font-weight:400;line-height:.9}h1 em{color:#858585;white-space:nowrap;font-weight:400}.intro-copy{container-type:inline-size}.portrait-wrap{width:11rem;max-width:100%;transform:translateY(-2rem)}.profile-image{aspect-ratio:1;object-fit:cover;clip-path:circle(50%);background:#f2f2f2;border-radius:50%;width:100%;display:block}.status{color:#858585;min-height:1rem;margin:.75rem 0 0;font-family:Arial,sans-serif;font-size:.7rem}.section-heading{border-top:1px solid #171717;grid-template-columns:5rem 1fr;align-items:baseline;padding-top:3rem;display:grid}.section-number{margin:0}h2{letter-spacing:-.04em;margin:0;font-size:clamp(2.25rem,5vw,4.5rem);font-weight:400}.experience-list{margin-top:4rem;padding:1rem 0;position:relative}.experience-item{grid-template-columns:10rem 5rem minmax(0,1fr);align-items:center;min-height:12rem;padding:1.5rem 0;display:grid;position:relative}.experience-list:before{content:"";background:#d9d9d9;width:1px;position:absolute;top:0;bottom:0;left:11rem}.experience-item:before{z-index:1;background:var(--experience-accent,#fa500f);content:"";border-radius:50%;width:.65rem;height:.65rem;position:absolute;top:50%;left:11rem;transform:translate(-50%,-50%)}.experience-content{border-top:1px solid #e8e8e8;grid-column:3;padding:1.5rem 0 1.5rem 2rem}.experience-logo{z-index:2;object-fit:contain;filter:grayscale();opacity:.72;width:min(3.75rem,100%);max-height:3rem;transition:filter .18s,opacity .18s,transform .18s;position:absolute;top:50%;left:14.25rem;transform:translate(-50%,-50%)}.experience-item:hover .experience-logo{filter:grayscale(0);opacity:1;transform:translate(-50%,-50%)scale(1.05)}.experience-period{grid-column:1;justify-self:end;padding-right:1.5rem}.experience-period,.experience-type{text-transform:uppercase;margin:0;font-family:Arial,sans-serif;font-size:.72rem;line-height:1.5}.experience-period{color:#6b6b6b;letter-spacing:.06em}.experience-type{color:var(--experience-accent,#fa500f);letter-spacing:.08em;margin-top:.45rem}.experience-item--professional{--experience-accent:#9b5de5}.experience-item--training{--experience-accent:#2583d8}.experience-item--project{--experience-accent:#d6a928}.experience-content h3{letter-spacing:-.02em;margin:0;font-size:clamp(1.4rem,2.5vw,2.1rem);font-weight:400}.experience-description{color:#555;max-width:34rem;margin:1.25rem 0 0;font-size:1rem;line-height:1.6}.tech-stack-section{margin-top:5.5rem}.tech-stack-section .section-heading{padding-top:5.5rem}.tech-groups{gap:2.5rem;margin-top:4rem;display:grid}.tech-group{grid-template-columns:11rem minmax(0,1fr);align-items:start;gap:1.5rem 2rem;display:grid}.tech-group-title{color:#6b6b6b;letter-spacing:.1em;text-transform:uppercase;margin:0;padding-top:.75rem;font-family:Arial,sans-serif;font-size:.7rem;font-weight:700;position:sticky;top:5.5rem}.tech-list{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.tech-item{letter-spacing:.04em;text-transform:uppercase;background:#ffffffb3;border:1px solid #d9d9d9;border-radius:.35rem;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:8.5rem;padding:1.25rem .75rem;font-family:Arial,sans-serif;font-size:.72rem;font-weight:700;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.tech-item:before{content:"";pointer-events:none;border-top:1px solid #fa500f;border-right:1px solid #fa500f;width:.45rem;height:.45rem;position:absolute;top:.75rem;right:.75rem}.tech-item:hover,.tech-item:focus-within{border-color:#fa500f;transform:translateY(-.4rem);box-shadow:0 .75rem 2rem #fa500f2e}.tech-logo{object-fit:contain;width:2.5rem;height:2.5rem;transition:transform .18s}.contributions-section{margin-top:5.5rem}.contributions-section .section-heading{padding-top:5.5rem}.section-lead{color:#555;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.5rem;max-width:44rem;margin:1.5rem 0 0;font-size:1.05rem;line-height:1.6;display:flex}.section-lead a{color:#171717;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.35rem;font-family:Arial,sans-serif;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex}.section-lead a .button-icon{width:.9rem;height:.9rem;transition:transform .18s}.section-lead a:hover .button-icon,.section-lead a:focus-visible .button-icon{transform:translate(.1rem,-.1rem)}.contribution-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem;margin:3rem 0 0;padding:0;list-style:none;display:grid}.contribution-item{--contribution-accent:#8250df}.contribution-item--open{--contribution-accent:#1a7f37}.contribution-card{background:#ffffffb3;border:1px solid #d9d9d9;border-radius:.75rem;flex-direction:column;gap:1rem;height:100%;padding:1.5rem;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative}.contribution-card:hover,.contribution-card:focus-within{border-color:#fa500f;transform:translateY(-.4rem);box-shadow:0 .75rem 2rem #fa500f2e}.contribution-repo{letter-spacing:.04em;align-items:center;gap:.6rem;min-width:0;font-family:Arial,sans-serif;font-size:.72rem;display:flex}.contribution-avatar{object-fit:cover;background:#f2f2f2;border-radius:.4rem;flex:none;width:1.75rem;height:1.75rem}.contribution-repo-name{z-index:1;color:#6b6b6b;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;transition:color .18s;position:relative;overflow:hidden}.contribution-repo-name:hover,.contribution-repo-name:focus-visible{color:#171717}.contribution-stars{color:#6b6b6b;white-space:nowrap;align-items:center;gap:.3rem;margin-left:auto;display:inline-flex}.contribution-stars svg{fill:#d6a928;width:.85rem;height:.85rem}.contribution-title{letter-spacing:-.02em;margin:0;font-size:clamp(1.2rem,2vw,1.5rem);font-weight:400;line-height:1.2}.contribution-title a{color:inherit;text-decoration:none}.contribution-title a:after{border-radius:inherit;content:"";position:absolute;inset:0}.contribution-summary{color:#555;flex:1;margin:0;font-size:.95rem;line-height:1.6}.contribution-meta{color:#6b6b6b;letter-spacing:.04em;border-top:1px solid #e8e8e8;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding-top:1rem;font-family:monospace;font-size:.7rem;display:flex}.contribution-state{border:1px solid color-mix(in srgb, var(--contribution-accent) 40%, transparent);color:var(--contribution-accent);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-weight:700;display:inline-flex}.contribution-state:before{content:"";background:currentColor;border-radius:50%;width:.4rem;height:.4rem}.contribution-diff{gap:.4rem;display:inline-flex}.contribution-additions{color:#1a7f37}.contribution-deletions{color:#cf222e}.contribution-meta time{margin-left:auto}.contribution-item.is-skeleton .contribution-card{gap:.75rem}.contribution-item.is-skeleton .skeleton-bar{margin-bottom:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-section{margin-top:7rem}.contact-section .section-heading{padding-top:5.5rem}.contact-box{color:#f4f4f0;background:#121212;border:1px solid #2a2a2a;border-radius:1.25rem;grid-template-columns:minmax(12rem,.7fr) minmax(0,1.3fr);gap:4rem;margin-top:4rem;padding:4.5rem 2.5rem 2.5rem;display:grid;position:relative;overflow:hidden;box-shadow:0 1.5rem 3rem #1212122e}.contact-box:before{color:#8a8a85;content:"contact-form / ready";letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #2a2a2a;height:2.5rem;padding:.8rem 1.25rem;font-family:monospace;font-size:.68rem;position:absolute;top:0;left:0;right:0}.contact-box:after{content:"";background:#fa500f;border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.95rem;right:1.25rem;box-shadow:-.9rem 0 #d6a928,-1.8rem 0 #e46c65}.contact-intro p{max-width:17rem;margin:0;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.05}.contact-intro{z-index:1;align-self:center;position:relative}.contact-intro .contact-kicker{color:#fa500f;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;font-family:monospace;font-size:.7rem;font-weight:700}.contact-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.contact-form label{color:#a7a7a2;letter-spacing:.08em;text-transform:uppercase;gap:.5rem;font-family:monospace;font-size:.7rem;display:grid}.contact-form input,.contact-form textarea{color:#f4f4f0;letter-spacing:0;resize:vertical;background:0 0;border:0;border-bottom:1px solid #3a3a3a;border-radius:0;outline:0;width:100%;padding:.8rem 0;font:1rem Georgia,Times New Roman,serif}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8a8a85;opacity:1}.contact-form input:focus,.contact-form textarea:focus{border-color:#fa500f;box-shadow:0 1px #fa500f}.contact-message-field{grid-column:1/-1}.contact-honeypot{clip:rect(0, 0, 0, 0);white-space:nowrap;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.contact-submit{color:#121212;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:#fa500f;border:1px solid #fa500f;border-radius:.55rem;grid-column:1/-1;justify-content:center;justify-self:end;align-items:center;gap:1.5rem;width:fit-content;padding:.8rem 1.15rem;font-family:Arial,sans-serif;font-size:.72rem;font-weight:700;transition:background-color .18s,color .18s,transform .18s;display:flex}.contact-submit:hover,.contact-submit:focus-visible{color:#f4f4f0;background:0 0;transform:translateY(-.15rem)}.contact-submit:disabled{cursor:wait;opacity:.55}.contact-feedback{color:#a7a7a2;grid-column:1/-1;min-height:1.1rem;margin:0;font-family:monospace;font-size:.7rem}.contact-feedback.is-success{color:#16805b}.contact-feedback.is-error{color:#b34343}.tech-item:hover .tech-logo,.tech-item:focus-within .tech-logo{transform:scale(1.1)rotate(-4deg)}.site-footer{border-top:1px solid #e8e8e8;grid-template-columns:1fr auto 1fr;gap:1rem 2rem;padding:1.5rem 0;display:grid}.footer-copyright{justify-self:end}.footer-stack{flex-wrap:wrap;align-items:center;gap:.5rem .45rem;margin:0;padding:0;list-style:none;display:flex}.footer-stack li+li:not(.footer-stack-label+li):before{color:#c4c4c4;content:"·";margin-right:.45rem}.footer-stack-label{color:#858585;margin-right:.3rem}.footer-cv{align-items:center;gap:.4rem;display:inline-flex}.footer-cv .button-icon{width:.9rem;height:.9rem}.social-links{z-index:10;flex-direction:column;gap:.45rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.social-links a{background:0 0;border:0;place-items:center;width:2.6rem;height:2.6rem;transition:transform .18s;display:grid}.social-links a:hover,.social-links a:focus-visible{background:0 0;transform:translate(.25rem)scale(1.08)}.social-links img,.social-links svg{width:2.05rem;height:2.05rem}.social-links img{filter:grayscale()brightness(0)}.social-links svg{fill:none;stroke:#171717;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.social-links .github-logo,.social-links .linkedin-logo{fill:#171717;stroke:none}.social-links a:hover svg,.social-links a:focus-visible svg{stroke:#171717}.dark-mode{--bg:#0b0b0b;--grain-opacity:.08;color:#f4f4f0}.dark-mode body:before{display:none}.dark-mode body{color:#f4f4f0}.dark-mode .site-header,.dark-mode .site-footer,.dark-mode .experience-item{border-color:#2e2e2e}.dark-mode .site-mark,.dark-mode .theme-toggle:hover,.dark-mode .theme-toggle:focus-visible{color:#f4f4f0}.dark-mode .footer-stack-label{color:#858585}.dark-mode .theme-toggle,.dark-mode .eyebrow,.dark-mode .section-number,.dark-mode .experience-period,.dark-mode .status,.dark-mode .site-footer{color:#a7a7a2}.dark-mode .theme-toggle{color:#f4f4f0}.dark-mode .section-heading{border-color:#f4f4f0}.dark-mode h1 em{color:#a7a7a2}.dark-mode .experience-description{color:#c8c8c2}.dark-mode .contact-box{background:#121212;border-color:#2a2a2a}.dark-mode .contact-form label{color:#a7a7a2}.dark-mode .contact-form input,.dark-mode .contact-form textarea{color:#f4f4f0;border-color:#3a3a3a}.dark-mode .contact-submit{color:#121212;border-color:#fa500f}.dark-mode .experience-list:before{background:#2e2e2e}.dark-mode .experience-content{border-color:#2e2e2e}.dark-mode .tech-group-title{color:#a7a7a2}.dark-mode .tech-item{background:#161616b8;border-color:#2e2e2e}.dark-mode .tech-item:hover,.dark-mode .tech-item:focus-within{border-color:#fa500f;box-shadow:0 .75rem 2rem #fa500f2e}.dark-mode .section-lead,.dark-mode .contribution-summary{color:#c8c8c2}.dark-mode .section-lead a,.dark-mode .contribution-repo-name:hover,.dark-mode .contribution-repo-name:focus-visible{color:#f4f4f0}.dark-mode .contribution-card{background:#161616b8;border-color:#2e2e2e}.dark-mode .contribution-repo-name,.dark-mode .contribution-stars,.dark-mode .contribution-meta{color:#a7a7a2}.dark-mode .contribution-meta{border-color:#2e2e2e}.dark-mode .contribution-avatar{background:#2a2a2a}.dark-mode .contribution-item{--contribution-accent:#a371f7}.dark-mode .contribution-item--open{--contribution-accent:#3fb950}.dark-mode .contribution-additions{color:#3fb950}.dark-mode .contribution-deletions{color:#f85149}.dark-mode .profile-image,.dark-mode .social-links a{background:0 0}.dark-mode .social-links img{filter:grayscale()brightness(0)invert()}.dark-mode .social-links svg{stroke:#f4f4f0}.dark-mode .social-links .github-logo,.dark-mode .social-links .linkedin-logo{fill:#f4f4f0}.dark-mode .social-links a:hover svg,.dark-mode .social-links a:focus-visible svg{stroke:#f4f4f0}.skip-link{z-index:30;color:#fff;letter-spacing:.06em;text-transform:uppercase;background:#121212;padding:.75rem 1.25rem;font-family:Arial,sans-serif;font-size:.75rem;transition:transform .18s;position:absolute;top:0;left:0;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-nav{gap:1.5rem;margin-left:auto;display:flex}.site-nav a,.footer-cv{color:#6b6b6b;text-decoration:none;transition:color .18s;position:relative}.site-nav a:after,.footer-cv:after{content:"";background:currentColor;width:0;height:1px;transition:width .18s;position:absolute;bottom:-.35rem;left:0}.site-nav a:hover,.site-nav a:focus-visible,.footer-cv:hover,.footer-cv:focus-visible{color:#171717}.site-nav a:hover:after,.site-nav a:focus-visible:after,.footer-cv:hover:after,.footer-cv:focus-visible:after{width:100%}.intro-about{color:#555;max-width:38rem;margin:2rem auto 0;font-size:1.05rem;line-height:1.65}.intro-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:2rem auto 0;display:flex}.button-link{color:#f4f4f0;letter-spacing:.08em;text-transform:uppercase;background:#121212;border:1px solid #121212;border-radius:.55rem;align-items:center;gap:1rem;padding:.8rem 1.15rem;font-family:Arial,sans-serif;font-size:.72rem;font-weight:700;text-decoration:none;transition:background-color .18s,color .18s,transform .18s;display:inline-flex}.button-icon{fill:currentColor;flex:none;width:1.05rem;height:1.05rem;display:block}.button-link:hover,.button-link:focus-visible{color:#121212;background:0 0;transform:translateY(-.15rem)}.button-link--ghost{color:#121212;background:0 0}.button-link--ghost:hover,.button-link--ghost:focus-visible{color:#f4f4f0;background:#121212}.loading-screen{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(16px);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;animation:.3s both loading-screen-in;display:flex;position:fixed;inset:0}.loading-screen-kicker{color:#fa500f;letter-spacing:.1em;text-transform:uppercase;margin:0 0 1.5rem;font-family:Arial,sans-serif;font-size:.7rem;font-weight:700}.loading-screen-title{letter-spacing:-.05em;margin:0;font-size:clamp(2.5rem,6vw,5rem);line-height:.95}.loading-screen-title em{color:#858585}.loading-screen-bar{background:#e8e8e8;width:min(16rem,70vw);height:2px;margin:2.5rem 0 1.5rem;position:relative;overflow:hidden}.loading-screen-bar:after{content:"";background:#fa500f;width:35%;animation:1.4s ease-in-out infinite loading-screen-bar;position:absolute;inset:0}.loading-screen-text{color:#555;max-width:24rem;margin:0;font-family:Arial,sans-serif;font-size:.8rem;line-height:1.6}@keyframes loading-screen-in{0%{opacity:0}}@keyframes loading-screen-bar{0%{transform:translate(-100%)}to{transform:translate(290%)}}.skeleton-bar,.skeleton-logo{background:#ececec linear-gradient(90deg,#ececec 0%,#f6f6f6 50%,#ececec 100%) 0 0/200% 100%;border-radius:.2rem;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-bar{width:100%;height:.7rem;margin-bottom:.75rem}.skeleton-bar--title{width:45%;height:1.6rem;margin-bottom:1.25rem}.skeleton-bar--medium{width:70%}.skeleton-bar--short{width:35%}.skeleton-logo{border-radius:.35rem;width:2.5rem;height:2.5rem}.experience-item.is-skeleton:before,.tech-item.is-skeleton:before{display:none}.tech-item.is-skeleton{gap:.75rem}.tech-item.is-skeleton .skeleton-bar{margin-bottom:0}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dark-mode .site-nav a,.dark-mode .footer-cv{color:#a7a7a2}.dark-mode .site-nav a:hover,.dark-mode .site-nav a:focus-visible,.dark-mode .footer-cv:hover,.dark-mode .footer-cv:focus-visible{color:#f4f4f0}.dark-mode .intro-about,.dark-mode .loading-screen-text{color:#c8c8c2}.dark-mode .loading-screen-title em{color:#a7a7a2}.dark-mode .loading-screen-bar{background:#2e2e2e}.dark-mode .button-link{color:#121212;background:#fa500f;border-color:#fa500f}.dark-mode .button-link:hover,.dark-mode .button-link:focus-visible,.dark-mode .button-link--ghost{color:#fa500f;background:0 0}.dark-mode .button-link--ghost:hover,.dark-mode .button-link--ghost:focus-visible{color:#121212;background:#fa500f}.dark-mode .skeleton-bar,.dark-mode .skeleton-logo{background:#2a2a2a linear-gradient(90deg,#2a2a2a 0%,#353535 50%,#2a2a2a 100%) 0 0/200% 100%}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:.25rem;outline:2px solid #fa500f}.dark-mode a:focus-visible,.dark-mode button:focus-visible,.dark-mode input:focus-visible,.dark-mode textarea:focus-visible{outline-color:#fa500f}@media (width<=900px){.intro{grid-template-columns:1fr;gap:2rem;min-height:calc(100svh - 9rem);margin-bottom:6rem}.portrait-wrap{justify-self:center;width:9rem;transform:none}}@media (width<=640px){#app{width:min(100% - 2rem,76rem)}.site-header{flex-wrap:wrap;gap:.75rem 1rem;padding-inline:1rem}.site-nav{gap:1.1rem;margin-left:0;font-size:.68rem}.intro-about{margin-top:1.5rem;font-size:1rem}.intro-actions{margin-top:1.5rem}.button-link{flex:auto;justify-content:center}main{padding:2.5rem 0 5rem}.intro{align-content:start;gap:1.5rem;min-height:calc(100svh - 6.5rem);margin-bottom:4rem;padding-top:8.5rem}.theme-toggle{display:none}h1 em{white-space:normal}h1{letter-spacing:-.04em;max-width:100%;font-size:clamp(3rem,13vw,5rem);line-height:.95}.portrait-wrap{display:none}.section-heading{grid-template-columns:3rem 1fr;padding-top:2.75rem}.experience-list{margin-top:2rem;padding:.5rem 0}.experience-item{grid-template-rows:auto auto;grid-template-columns:1.25rem minmax(0,1fr);min-height:0;padding:0 0 1.5rem}.experience-list:before{left:.625rem}.experience-item:before{top:1.2rem;left:.625rem}.experience-period{text-align:left;grid-area:1/2;justify-self:start;padding:0 0 .5rem;font-size:.65rem}.experience-content{border-top:1px solid #e8e8e8;grid-area:2/2;min-width:0;padding:.75rem 5.25rem 1.5rem 0}.experience-logo{filter:none;opacity:1;width:4rem;max-height:2.5rem;top:2.35rem;left:auto;right:.25rem;transform:none}.experience-item:hover .experience-logo{transform:scale(1.05)}.experience-content h3{font-size:clamp(1.35rem,7vw,1.8rem)}.experience-description{margin-top:1rem;font-size:.95rem;line-height:1.55}.tech-stack-section{margin-top:3.875rem}.tech-stack-section .section-heading{padding-top:3.875rem}.tech-groups{gap:2rem;margin-top:2rem}.tech-group{grid-template-columns:1fr;gap:1rem}.tech-group-title{position:static}.tech-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.tech-item{letter-spacing:.02em;text-align:center;overflow-wrap:anywhere;gap:.5rem;min-width:0;min-height:5.75rem;padding:.85rem .35rem;font-size:.6rem}.tech-item:before{top:.5rem;right:.5rem}.tech-logo{width:1.9rem;height:1.9rem}.contributions-section{margin-top:3.875rem}.contributions-section .section-heading{padding-top:3.875rem}.contribution-list{margin-top:2rem}.contribution-card{padding:1.25rem}.contact-section{margin-top:3.875rem}.contact-section .section-heading{padding-top:3.875rem}.contact-box{grid-template-columns:1fr;gap:2.5rem;margin-top:2rem;padding:4.75rem 1.25rem 1.5rem}.contact-intro{padding-top:.25rem}.contact-intro p{max-width:100%;font-size:1.8rem}.contact-form{grid-template-columns:1fr;gap:1.25rem}.contact-message-field,.contact-submit,.contact-feedback{grid-column:auto}.site-footer{padding-inline:3.25rem;text-align:center;grid-template-columns:1fr;justify-items:center;gap:.9rem;padding-bottom:1.5rem}.footer-cv{order:-1}.footer-copyright{justify-self:center}.footer-stack{justify-content:center}.social-links{gap:.4rem;bottom:1rem;right:1rem}.social-links a{width:2.4rem;height:2.4rem}.social-links img,.social-links svg{width:1.9rem;height:1.9rem}}@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}.theme-toggle:hover,.theme-toggle:focus-visible,.tech-item:hover,.tech-item:focus-within,.button-link:hover,.button-link:focus-visible,.contact-submit:hover,.contact-submit:focus-visible,.contribution-card:hover,.contribution-card:focus-within,.social-links a:hover,.social-links a:focus-visible,.tech-item:hover .tech-logo,.tech-item:focus-within .tech-logo{transform:none}.loading-screen-bar:after{left:32.5%;transform:none}}
