:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#111015;--color-surface:#17161c;--color-surface-raised:#1d1b22;--color-text:#f4f3ef;--color-secondary:#aaa7a0;--color-muted:#77746e;--color-border:#f4f3ef29;--color-border-strong:#f4f3ef52;--color-accent:#eab308;--color-accent-cool:#96c8ff;--container-width:76rem;--space-page:clamp(1.25rem, 4vw, 3rem);--space-section:clamp(5rem, 10vw, 9rem);--space-grid:clamp(1.5rem, 4vw, 4rem)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-background)}body{color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}img{max-width:100%;height:auto}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--color-accent-cool);outline-offset:4px}::selection{background:var(--color-accent);color:var(--color-background)}.header{z-index:1000;color:#f4f3ef;background:0 0;min-height:4.5rem;transition:background-color .18s;position:fixed;inset:0 0 auto}.header.scrolled{-webkit-backdrop-filter:blur(12px);background:#111015eb}.header-shell{grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;width:min(100%,90rem);min-height:4.5rem;margin-inline:auto;padding-inline:clamp(1rem,3vw,3rem);display:grid}.wordmark,.nav-list a,.language-toggle button,.mobile-menu-btn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.wordmark{align-items:center;width:max-content;min-height:4rem;text-decoration:none;display:inline-flex}.wordmark-logo-frame{place-items:center;width:5rem;height:4rem;display:grid}.wordmark-logo{object-fit:contain;object-position:center;flex:none;width:100%;height:100%;display:block}.nav-list{align-items:center;gap:clamp(1rem,2vw,2rem);list-style:none;display:flex}.nav-list a{color:#f4f3efc2;letter-spacing:.05em;padding:.75rem 0;font-size:.75rem;font-weight:600;text-decoration:none;position:relative}.nav-list a:after{content:"";transform-origin:100%;background:#eab308;height:1px;transition:transform .18s;position:absolute;inset:auto 0 0;transform:scaleX(0)}.nav-list a:hover,.nav-list a:focus-visible,.nav-list a[aria-current=page]{color:#f4f3ef}.nav-list a:hover:after,.nav-list a:focus-visible:after,.nav-list a[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.header-actions{justify-content:flex-end;align-items:center;gap:1rem;display:flex}.language-toggle{color:#f4f3ef9e;letter-spacing:.08em;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:650;display:inline-flex}.language-toggle button{min-width:1.75rem;min-height:2.75rem;color:inherit}.language-toggle button[aria-pressed=true]{color:#f4f3ef;text-underline-offset:.3rem;-webkit-text-decoration:underline #eab308;text-decoration:underline #eab308}.mobile-menu-btn{width:2.75rem;height:2.75rem;padding:.75rem;display:none}.mobile-menu-btn span{background:currentColor;width:100%;height:1px;margin-block:.3125rem;transition:transform .18s;display:block}.mobile-menu-btn.nav-open span:first-child{transform:translateY(.3125rem)rotate(45deg)}.mobile-menu-btn.nav-open span:last-child{transform:translateY(-.3125rem)rotate(-45deg)}.header button:focus-visible{outline-offset:3px;outline:2px solid #eab308}@media (width<=53.75rem){.header-shell{grid-template-columns:1fr auto}.wordmark-logo-frame{width:4.5rem;height:3.5rem}.wordmark-logo{width:100%}.mobile-menu-btn{display:block}.nav{visibility:hidden;opacity:0;background:#111015;align-items:start;padding:clamp(2rem,8vh,5rem) 1rem;transition:opacity .18s,transform .18s,visibility .18s;display:grid;position:fixed;inset:4.5rem 0 0;transform:translateY(-.75rem)}.nav.nav-open{visibility:visible;opacity:1;transform:translateY(0)}.nav-list{gap:.5rem;width:min(100%,40rem);margin-inline:auto;display:grid}.nav-list a{color:#f4f3ef;letter-spacing:-.04em;text-align:left;align-items:center;width:100%;min-height:4rem;padding:.75rem 0;font-size:clamp(1.5rem,7vw,2.5rem);font-weight:500;display:flex}.nav-list a:after{display:none}}@media (prefers-reduced-motion:reduce){.header,.nav,.nav-list a:after,.mobile-menu-btn span{transition:none}}.footer{padding:clamp(3rem, 7vw, 6rem) 0 max(2rem, env(safe-area-inset-bottom));border-top:1px solid var(--color-border-strong);background:var(--color-background)}.footer-content{gap:var(--space-grid);grid-template-columns:2fr 1fr 1fr;padding-bottom:clamp(3rem,6vw,5rem);display:grid}.footer-section h4{color:var(--color-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.25rem;font-size:.7rem;font-weight:600}.footer-section p{max-width:30rem;color:var(--color-secondary);font-size:.9rem}.footer-section .footer-name{color:var(--color-text);letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(1.3rem,2vw,1.8rem);font-weight:600}.footer-links{list-style:none}.footer-links li+li{margin-top:.35rem}.footer-links a{min-height:2.25rem;color:var(--color-secondary);align-items:center;font-size:.9rem;text-decoration:none;transition:color .16s;display:inline-flex}.footer-links a:hover{color:var(--color-text)}.social-links{gap:.5rem;display:flex}.social-links a{border:1px solid var(--color-border);width:2.75rem;height:2.75rem;color:var(--color-secondary);justify-content:center;align-items:center;text-decoration:none;transition:color .16s,border-color .16s;display:inline-flex}.social-links a:hover{color:var(--color-text);border-color:var(--color-border-strong)}.resume-download-section{margin-top:1.25rem}.resume-download-btn{border:1px solid var(--color-border-strong);min-height:2.75rem;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:.65rem;padding:.65rem 1rem;font-size:.8rem;text-decoration:none;transition:background-color .16s,color .16s;display:inline-flex}.resume-download-btn:hover{background:var(--color-text);color:var(--color-background)}.footer-bottom{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:1.5rem;display:flex}.footer-info p{color:var(--color-muted);font-size:.75rem}.scroll-to-top{border:1px solid var(--color-border);width:2.75rem;height:2.75rem;color:var(--color-text);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}@media (prefers-reduced-motion:reduce){.footer-links a,.social-links a,.resume-download-btn{transition:none}}@media (width<=700px){.footer-content{grid-template-columns:1fr;gap:2.5rem}.footer-bottom{align-items:flex-start;gap:1rem}}.side-rays-container{pointer-events:none;z-index:3;width:100%;height:100%;position:relative;overflow:hidden}.tech-text{touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative}.tech-text-canvas{width:100%;height:100%;display:block}.tech-text-active-canvas{z-index:2;pointer-events:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}.hero{isolation:isolate;color:#f4f3ef;background:radial-gradient(circle at 94% 0,#96c8ff29,#0000 38%),radial-gradient(circle at 82% 8%,#eab3081a,#0000 30%),#111015;align-items:center;min-height:100svh;margin-top:-5rem;padding:calc(4.5rem + clamp(1rem,3vh,2rem)) 0 clamp(1.5rem,3vh,2.5rem);display:flex;position:relative;overflow:hidden}.hero-rays{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-rays .side-rays-container{z-index:0;position:absolute;inset:0}.hero-shell{z-index:1;flex-direction:column;align-items:center;width:min(100%,76rem);margin-inline:auto;padding-inline:clamp(1rem,3vw,3rem);display:flex;position:relative}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero-tech-text{color:#f4f3ef;width:100%}.hero-tech-text-frame{width:100%;height:clamp(13rem,31vh,17rem);position:relative}.hero-intro{text-align:center;flex-direction:column;align-items:center;margin-top:-.5rem;display:flex}.hero-role{letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.75rem);font-weight:600;line-height:.95}.hero-stack{color:#f4f3efb8;letter-spacing:.035em;text-wrap:balance;max-width:64rem;margin-top:1rem;font-size:clamp(.6875rem,1.05vw,.875rem);font-weight:600;line-height:1.7}.hero-stack span{color:#eab308;margin-inline:.25rem}.hero-description{color:#f4f3efad;text-wrap:balance;max-width:42rem;margin-top:1.25rem;font-size:clamp(.9375rem,1.2vw,1.0625rem);line-height:1.55}.hero-actions{justify-content:center;gap:.75rem;margin-top:1.5rem;display:flex}.hero-action{min-width:9.5rem;min-height:3rem;font:inherit;letter-spacing:.04em;cursor:pointer;border:1px solid #f4f3ef61;border-radius:0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.75rem;font-weight:650;text-decoration:none;transition:color .16s,background-color .16s,border-color .16s;display:inline-flex}.hero-action-primary{color:#111015;background:#f4f3ef;border-color:#f4f3ef}.hero-action-secondary{color:#f4f3ef;background:#1110153d}.hero-action:hover{color:#111015;background:#eab308;border-color:#eab308}.hero-action:focus-visible{outline-offset:3px;outline:2px solid #eab308}@media (width<=48rem){.hero{min-height:100svh;padding-top:6rem;padding-bottom:max(3rem, env(safe-area-inset-bottom));align-items:flex-start;overflow:clip}.hero-shell{padding-inline:1rem}.hero-tech-text-frame{height:clamp(13rem,36vh,16rem)}.hero-intro{margin-top:0}.hero-stack{max-width:32rem;line-height:1.9}}@media (width<=26rem){.hero-actions{flex-direction:column;width:100%}.hero-action{width:100%}}@media (prefers-reduced-motion:reduce){.hero-action{transition:none}}.home-overview{border-top:1px solid var(--color-border);background:var(--color-background);padding-block:clamp(3rem,5vw,4.5rem)}.home-overview-intro{gap:var(--space-grid);grid-template-columns:minmax(5rem,1fr) 3fr;display:grid}.home-overview-label{color:var(--color-muted);letter-spacing:.14em;text-transform:uppercase;padding-top:.35rem;font-size:.7rem;font-weight:700}.home-overview h2{letter-spacing:-.035em;text-wrap:balance;max-width:27ch;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:500;line-height:1.15}.home-overview-intro div>p{max-width:38rem;color:var(--color-secondary);margin-top:1rem;font-size:clamp(.95rem,1.4vw,1.05rem);line-height:1.65}.home-destinations{width:calc((100% - var(--space-grid)) * .75);border-top:1px solid var(--color-border-strong);margin-top:clamp(2rem,4vw,3rem);margin-left:auto}.home-destinations a{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;padding:1.25rem 0;text-decoration:none;display:grid}.home-destination-copy{grid-template-columns:minmax(7rem,.7fr) minmax(0,1.8fr);align-items:baseline;gap:clamp(1rem,3vw,2.5rem);display:grid}.home-destination-copy h3{letter-spacing:-.025em;font-size:clamp(1.1rem,1.7vw,1.35rem);font-weight:500;line-height:1.25}.home-destination-copy>span{max-width:30rem;color:var(--color-secondary);font-size:.85rem;line-height:1.55}.home-destination-arrow{color:var(--color-secondary);transition:transform .16s,color .16s}.home-destinations a:hover .home-destination-arrow{color:var(--color-accent);transform:translate(.2rem,-.2rem)}.home-contact-callout{width:calc((100% - var(--space-grid)) * .75);color:var(--color-muted);justify-content:space-between;align-items:baseline;gap:1.25rem;margin-left:auto;padding-top:1.25rem;font-size:.8rem;display:flex}.home-contact-callout a{border-bottom:1px solid var(--color-border-strong);min-height:2.75rem;color:var(--color-text);align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:reduce){.home-destination-arrow{transition:none}}@media (width<=700px){.home-overview-intro{grid-template-columns:1fr;gap:1rem}.home-overview-label{padding-top:0}.home-destinations,.home-contact-callout{width:100%}.home-destination-copy{grid-template-columns:1fr;gap:.4rem}.home-contact-callout{flex-direction:column;align-items:flex-start;gap:.5rem}}.selected-work{border-top:1px solid var(--color-border);background:var(--color-background);padding-block:clamp(4rem,8vw,7rem)}.selected-work-title{max-width:14ch;color:var(--color-text);letter-spacing:-.055em;font-size:clamp(2.75rem,6vw,4.75rem);font-weight:600;line-height:.95}.selected-work-kicker{color:var(--color-accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem;font-size:.7rem;font-weight:700}.selected-work-intro{max-width:42rem;color:var(--color-secondary);margin-top:1.5rem;font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.7}.work-list{border-top:1px solid var(--color-border-strong);margin-top:clamp(3rem,6vw,5rem)}.work-case{gap:var(--space-grid);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(4rem,.6fr) minmax(0,2.5fr) minmax(11rem,.9fr);padding:clamp(2.25rem,4vw,3.5rem) 0;display:grid}.work-case-index>span{color:var(--color-muted);letter-spacing:.12em;font-size:.7rem}.work-case-index p{max-width:10rem;color:var(--color-secondary);margin-top:1.25rem;font-size:.8rem}.work-case-main>h2{letter-spacing:-.04em;max-width:20ch;font-size:clamp(1.65rem,3vw,2.5rem);font-weight:500;line-height:1.05}.work-case-description{max-width:44rem;color:var(--color-secondary);margin-top:1.5rem;font-size:clamp(1rem,1.5vw,1.1rem);line-height:1.7}.work-case-details{gap:var(--space-grid);grid-template-columns:1.3fr 1fr;margin-top:clamp(2rem,4vw,3rem);display:grid}.work-case-details h3{color:var(--color-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem;font-size:.65rem;font-weight:700}.work-case-details p{color:var(--color-secondary);font-size:.9rem}.work-case-details ul,.work-case-meta ul{list-style:none}.work-case-details li{border-bottom:1px solid var(--color-border);color:var(--color-secondary);padding:.35rem 0;font-size:.8rem}.work-case-meta{flex-direction:column;justify-content:space-between;align-items:flex-start;gap:2rem;min-height:100%;display:flex}.work-case-meta li{color:var(--color-muted);font-size:.72rem;line-height:1.8}.work-case-links{gap:.5rem;display:grid}.work-case-links>p{max-width:11rem;color:var(--color-muted);font-size:.72rem;line-height:1.5}.work-case-meta a{border-bottom:1px solid var(--color-border-strong);min-height:2.5rem;color:var(--color-text);align-items:center;gap:.75rem;font-size:.8rem;text-decoration:none;display:inline-flex}.work-case-meta a span{transition:transform .16s}.work-case-meta a:hover span{transform:translate(.2rem,-.2rem)}.work-complementary{padding:clamp(3rem,6vw,5rem) 0 0}.work-complementary>header{gap:var(--space-grid);grid-template-columns:minmax(5rem,1fr) 3fr;align-items:baseline;display:grid}.work-complementary>header p,.work-complementary-category{color:var(--color-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:700}.work-complementary>header h2{letter-spacing:-.035em;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:500}.work-complementary-list{border-top:1px solid var(--color-border-strong);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2rem;display:grid}.work-complementary-list article{padding:1.75rem 0 0}.work-complementary-list article+article{padding-left:var(--space-grid);border-left:1px solid var(--color-border)}.work-complementary-list h3{letter-spacing:-.025em;margin-top:.75rem;font-size:clamp(1.15rem,2vw,1.5rem);font-weight:500}.work-complementary-list article>p:not(.work-complementary-category){max-width:34rem;color:var(--color-secondary);margin-top:.75rem;font-size:.88rem;line-height:1.6}.work-complementary-list ul{flex-wrap:wrap;gap:.35rem 1rem;margin-top:1.25rem;list-style:none;display:flex}.work-complementary-list li,.work-complementary-list small{color:var(--color-muted);font-size:.72rem}.work-complementary-list small{margin-top:1.25rem;display:block}.work-api-note{color:var(--color-muted);margin-top:1rem;font-size:.75rem}@media (prefers-reduced-motion:reduce){.work-case-meta a span{transition:none}}@media (width<=800px){.work-case{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.work-case-index p{display:none}.work-case-meta{grid-column:2;min-height:auto}.work-complementary>header{grid-template-columns:1fr;gap:.75rem}}@media (width<=520px){.work-case-details{grid-template-columns:1fr;gap:2rem}.work-complementary-list{grid-template-columns:1fr}.work-complementary-list article+article{border-top:1px solid var(--color-border);border-left:0;margin-top:1.75rem;padding-left:0}}.resume-page{border-top:1px solid var(--color-border);background:var(--color-background);padding-block:clamp(3rem,7vw,6rem)}.resume-actions{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:clamp(2rem,5vw,4rem);padding-bottom:1rem;display:flex}.resume-actions p{color:var(--color-muted);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;font-weight:700}.resume-actions button{border:1px solid var(--color-border-strong);min-height:2.75rem;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;padding:.65rem 1rem;font-size:.8rem;transition:background-color .16s,color .16s}.resume-actions button:hover{background:var(--color-text);color:var(--color-background)}.resume-grid{grid-template-columns:minmax(14rem,.8fr) minmax(0,2.2fr);grid-template-areas:"sidebar primary";align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.resume-primary{grid-area:primary;min-width:0}.resume-sidebar{border-right:1px solid var(--color-border);grid-area:sidebar;gap:3rem;padding-right:clamp(1.5rem,3vw,3rem);display:grid}.resume-intro{padding-bottom:clamp(3rem,6vw,5rem)}.resume-intro h1{letter-spacing:-.065em;max-width:10ch;font-size:clamp(3.25rem,8vw,7rem);font-weight:600;line-height:.86}.resume-role{color:var(--color-accent-cool);margin-top:1.5rem;font-size:clamp(1rem,2vw,1.35rem);font-weight:500}.resume-summary{gap:1rem;max-width:48rem;margin-top:2rem;display:grid}.resume-summary p{color:var(--color-secondary);font-size:clamp(.95rem,1.4vw,1.08rem);line-height:1.7}.resume-section{padding:0}.resume-section+.resume-section{margin-top:clamp(3rem,6vw,5rem)}.resume-section>h2,.resume-sidebar section>h2{border-bottom:1px solid var(--color-border-strong);letter-spacing:.13em;text-transform:uppercase;padding-bottom:.75rem;font-size:.72rem;font-weight:700}.resume-timeline,.resume-education-list{display:grid}.resume-entry,.resume-education-item,.resume-project{border-bottom:1px solid var(--color-border);break-inside:avoid;padding:1.75rem 0}.resume-entry-heading{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.resume-entry h3,.resume-education-item h3,.resume-project h3{font-size:1.05rem;font-weight:600;line-height:1.35}.resume-entry-heading div>p,.resume-education-item div>p{color:var(--color-accent-cool);margin-top:.2rem;font-size:.82rem}.resume-entry time,.resume-education-item time{color:var(--color-muted);white-space:nowrap;font-size:.75rem}.resume-entry-description,.resume-education-item>p,.resume-project>p{color:var(--color-secondary);margin-top:.85rem;font-size:.88rem;line-height:1.65}.resume-entry ul{color:var(--color-secondary);margin-top:1rem;padding-left:1rem;font-size:.84rem;line-height:1.6}.resume-entry li+li{margin-top:.45rem}.resume-education-item{grid-template-columns:minmax(0,1fr) auto;gap:.25rem 1rem;display:grid}.resume-education-item>p{grid-column:1/-1}.resume-project a{border-bottom:1px solid var(--color-border-strong);align-items:center;gap:.6rem;min-height:2.5rem;margin-top:1rem;font-size:.78rem;text-decoration:none;display:inline-flex}.resume-sidebar section{break-inside:avoid}.resume-contact-list,.resume-specialties,.resume-certificates ul{list-style:none}.resume-contact-list li{border-bottom:1px solid var(--color-border);padding:.8rem 0}.resume-contact-list span{color:var(--color-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.65rem;font-weight:700;display:block}.resume-contact-list a,.resume-contact-list strong{overflow-wrap:anywhere;color:var(--color-secondary);margin-top:.25rem;font-size:.76rem;font-weight:400;text-decoration:none;display:block}.resume-skill-group{border-bottom:1px solid var(--color-border);padding:1rem 0}.resume-skill-group h3{font-size:.8rem;font-weight:600}.resume-skill-group p{color:var(--color-secondary);margin-top:.35rem;font-size:.75rem;line-height:1.6}.resume-specialties li{border-bottom:1px solid var(--color-border);color:var(--color-secondary);padding:.55rem 0;font-size:.78rem}.resume-certificates li{border-bottom:1px solid var(--color-border)}.resume-certificates a{grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:.85rem 0;text-decoration:none;display:grid}.resume-certificates strong{font-size:.82rem;font-weight:500}.resume-certificates span,.resume-status{color:var(--color-muted);text-align:right;font-size:.72rem}@media (prefers-reduced-motion:reduce){.resume-actions button{transition:none}}@media (width<=800px){.resume-grid{grid-template-columns:1fr;grid-template-areas:"primary""sidebar";gap:4rem}.resume-sidebar{border-right:0;border-top:1px solid var(--color-border-strong);gap:2.5rem;padding:3rem 0 0}.resume-entry-heading{flex-direction:column;gap:.5rem}.resume-education-item{grid-template-columns:1fr}.resume-education-item>p{grid-column:auto}.resume-certificates a{grid-template-columns:1fr;gap:.25rem}.resume-certificates span{text-align:left}}@media print{@page{size:A4;margin:12mm}html,body,#root,.App{color:#111!important;background:#fff!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9pt}.header,.footer,.skip-link,.resume-actions{display:none!important}main{padding-top:0!important}.resume-page{border:0;padding:0;color:#111!important;background:#fff!important}.resume-shell{width:100%}.resume-grid{grid-template-columns:48mm minmax(0,1fr);grid-template-areas:"sidebar primary";gap:9mm}.resume-sidebar{border-color:#c8c8c8;gap:7mm;padding-right:6mm}.resume-intro{padding-bottom:9mm}.resume-intro h1{color:#111;font-size:32pt}.resume-role{color:#333;margin-top:4mm;font-size:11pt}.resume-summary{gap:2mm;margin-top:5mm}.resume-summary p,.resume-entry-description,.resume-education-item>p,.resume-project>p{color:#333;font-size:8.5pt;line-height:1.45}.resume-section+.resume-section{margin-top:9mm}.resume-section>h2,.resume-sidebar section>h2{color:#111;border-color:#999;font-size:7.5pt}.resume-entry,.resume-education-item,.resume-project{border-color:#d8d8d8;padding:4mm 0}.resume-entry h3,.resume-education-item h3,.resume-project h3{color:#111;font-size:9.5pt}.resume-entry-heading div>p,.resume-education-item div>p,.resume-entry time,.resume-education-item time{color:#444}.resume-entry ul{color:#333;font-size:8pt;line-height:1.4}.resume-contact-list li,.resume-skill-group,.resume-specialties li,.resume-certificates li{border-color:#d8d8d8}.resume-contact-list a,.resume-contact-list strong,.resume-skill-group p,.resume-specialties li,.resume-certificates span{color:#333}.resume-project a,.resume-certificates a{color:#111;border-color:#999}.resume-certificates a{padding:2.5mm 0}}.contact-page{border-top:1px solid var(--color-border);background:var(--color-background);min-height:calc(100vh - 5rem);padding-block:clamp(4rem,8vw,7rem)}.contact-page-shell{gap:clamp(4rem,9vw,8rem);display:grid}.contact-page-header{gap:var(--space-grid);grid-template-columns:minmax(5rem,.55fr) minmax(0,2.45fr);align-items:start;display:grid}.contact-page-eyebrow{color:var(--color-accent);letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;font-weight:700}.contact-page h1{letter-spacing:-.055em;max-width:12ch;font-size:clamp(2.75rem,6vw,4.75rem);font-weight:600;line-height:.95}.contact-page-intro{max-width:38rem;color:var(--color-secondary);margin-top:1.5rem;font-size:clamp(1rem,1.5vw,1.125rem);line-height:1.7}.contact-directory{border-top:1px solid var(--color-border-strong);font-style:normal}.contact-directory-row{gap:var(--space-grid);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(7rem,.65fr) minmax(0,2.35fr) auto;align-items:center;min-height:5.5rem;padding-block:1.25rem;text-decoration:none;display:grid}.contact-directory-label{color:var(--color-muted);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:700}.contact-directory-row strong{overflow-wrap:anywhere;font-size:clamp(.95rem,1.7vw,1.3rem);font-weight:500;line-height:1.4}.contact-directory-arrow{color:var(--color-secondary);transition:color .16s,transform .16s}a.contact-directory-row:hover .contact-directory-arrow{color:var(--color-accent-cool);transform:translate(.2rem,-.2rem)}@media (prefers-reduced-motion:reduce){.contact-directory-arrow{transition:none}}@media (width<=640px){.contact-page-header{grid-template-columns:1fr;gap:1.25rem}.contact-directory-row{grid-template-columns:1fr auto;gap:.45rem 1rem}.contact-directory-label{grid-column:1/-1}}.route-page{border-top:1px solid var(--color-border);background:var(--color-background);min-height:calc(100vh - 5rem)}.route-page-content{min-height:calc(100vh - 5rem - 2 * var(--space-section));flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.route-page-eyebrow{color:var(--color-accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem;font-weight:700}.route-page h1{letter-spacing:-.06em;max-width:13ch;font-size:clamp(3rem,9vw,7rem);font-weight:600;line-height:.9}.route-page-content>p:not(.route-page-eyebrow){max-width:38rem;color:var(--color-secondary);margin-top:1.5rem;font-size:clamp(1rem,2vw,1.2rem)}.route-page a{border-bottom:1px solid var(--color-border-strong);align-items:center;gap:.75rem;min-height:2.75rem;margin-top:2rem;font-size:.85rem;text-decoration:none;display:inline-flex}.App{background:var(--color-background);min-height:100vh;overflow:clip}main{padding-top:5rem}main:focus{outline:none}.skip-link{top:.75rem;left:var(--space-page);z-index:10000;background:var(--color-text);color:var(--color-background);padding:.65rem 1rem;font-size:.85rem;text-decoration:none;transition:transform .16s;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}section{padding:var(--space-section) 0}.container{width:min(100% - 2 * var(--space-page), var(--container-width));margin:0 auto}.about-heading,.skills-heading,.projects-heading,.contact-heading,.selected-work-heading{gap:var(--space-grid);grid-template-columns:minmax(5rem,1fr) 3fr;align-items:start;display:grid}.section-index{color:var(--color-muted);letter-spacing:.14em;padding-top:.4rem;font-size:.75rem;font-weight:600}.section-title{max-width:14ch;color:var(--color-text);letter-spacing:-.055em;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:600;line-height:.95}.btn{border:1px solid var(--color-border-strong);min-height:2.75rem;font:inherit;cursor:pointer;border-radius:0;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s,border-color .18s;display:inline-flex}.btn-primary{background:var(--color-text);color:var(--color-background)}.btn-primary:hover{background:var(--color-accent);border-color:var(--color-accent)}.btn-secondary{color:var(--color-text);background:0 0}.btn-secondary:hover{background:var(--color-text);color:var(--color-background)}@media (prefers-reduced-motion:reduce){.btn,.skip-link{transition:none}}@media (width<=700px){.about-heading,.skills-heading,.projects-heading,.contact-heading,.selected-work-heading{grid-template-columns:1fr;gap:1rem}.section-index{padding-top:0}}
