@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/archivo-black-latin-ext-400-normal-DQAASfvW.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Black;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/archivo-black-latin-400-normal-BTVu2TQR.woff2)format("woff2");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:Arimo;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/arimo-latin-ext-400-normal-B-XWcJFt.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Arimo;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/arimo-latin-400-normal-Bqnq6eT5.woff2)format("woff2");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:Arimo;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/arimo-latin-ext-700-normal-DDeQOfiM.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Arimo;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/arimo-latin-700-normal-DhEW593l.woff2)format("woff2");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:Roboto;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/roboto-latin-ext-400-italic-BilqUbDw.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/roboto-latin-400-italic-CSuqwwKr.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:100;font-display:swap;src:url(/assets/roboto-latin-ext-100-normal-Bue4UH9m.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:100;font-display:swap;src:url(/assets/roboto-latin-100-normal-vTzS_GaG.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/roboto-latin-ext-300-normal-B90pq-BC.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/roboto-latin-300-normal-CCzlftfr.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-latin-ext-400-normal-C3tdtHj3.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/roboto-latin-400-normal-BqEyEoaF.woff2)format("woff2");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:Roboto;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/roboto-latin-ext-700-normal-DSBUz0N1.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/roboto-latin-700-normal-BZpUvMxY.woff2)format("woff2");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{--color-bg:#000;--color-bg-secondary:#333;--color-text:#fff;--color-text-secondary:#ccc;--font-primary:"Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem}*,:before,:after{box-sizing:border-box}html,body{background-color:#10181d;flex-direction:column;min-height:100vh;margin:0;padding:0;display:flex}body{min-height:100vh;color:var(--color-text);font-family:var(--font-primary);background-color:#10181d;line-height:1.6}.skip-link{top:var(--space-1);left:var(--space-1);padding:var(--space-1) var(--space-2);background-color:var(--color-text);color:var(--color-bg);position:absolute;transform:translateY(-250%)}.skip-link:focus-visible{transform:none}#app{width:min(72rem, calc(100% - 2 * var(--space-2)));padding-block:var(--space-4);margin-inline:auto}#home,#select{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;justify-content:center;min-height:70vh;animation:.3s ease-out fade-in;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.welcome-text{color:var(--color-text-secondary);letter-spacing:.35em;margin:0}.thanks-text{color:var(--color-text-secondary);margin:0}.button-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));width:100%;display:grid}.button-grid button{min-height:2.75rem;padding:var(--space-1) var(--space-2);transition:transform .15s ease-out,background-color .15s ease-out}.button-grid button:hover{transform:translateY(-.125rem)}.button-grid button:active{transform:none}.nav-btn svg,#download-link svg{width:100%;height:auto;display:block}.nav-btn .art-over,.nav-btn .art-down,#download-link .art-over,#download-link .art-down,.nav-btn:hover .art-up,.nav-btn:focus-visible .art-up,#download-link:hover .art-up,#download-link:focus-visible .art-up{display:none}.nav-btn:hover .art-over,.nav-btn:focus-visible .art-over,#download-link:hover .art-over,#download-link:focus-visible .art-over{display:block}.nav-btn:active .art-over,#download-link:active .art-over{display:none}.nav-btn:active .art-down,#download-link:active .art-down{display:block}@media (prefers-reduced-motion:reduce){.button-grid button{transition:none}.button-grid button:hover{transform:none}}.home-links{gap:var(--space-2);margin:var(--space-2) 0 0;flex-wrap:wrap;justify-content:center;display:flex}h1,h2,h3{color:var(--color-text);line-height:1.2}p{color:var(--color-text-secondary)}a{color:var(--color-text)}button{font:inherit;color:var(--color-bg);background-color:var(--color-text);cursor:pointer;border:0;border-radius:.25rem}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:.1875rem solid var(--color-text);outline-offset:.125rem}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#home,#contact,#work,#education{flex:1;justify-content:center;align-items:center;min-height:0;padding:0;display:flex}#app:has(>#home,>#contact,>#work,>#education){flex-direction:column;flex:1;width:100%;max-width:none;padding:0;display:flex}.scene{aspect-ratio:16/9;color:#333;--pictures-duration:.8s;--pictures-ease:linear;background-image:linear-gradient(#a7a7a7 0% 33%,#f0f0f0 100%);width:min(100%,177.778dvh);margin-inline:auto;position:relative;overflow:hidden;container-type:size}.scene-band{opacity:0;height:11.037%;transition:opacity var(--pictures-duration) var(--pictures-ease);background-color:#dbf752;position:absolute;bottom:0;left:0;right:0}.scene.pictures-open>.scene-band{opacity:1}.scene-grid{filter:grayscale()contrast(.3)brightness();transition:filter var(--pictures-duration) var(--pictures-ease);position:absolute;inset:0;overflow:hidden}.scene-grid:after{content:"";pointer-events:none;transition:opacity var(--pictures-duration) var(--pictures-ease);background-color:#ffffff47;position:absolute;inset:0}.scene-tile,.scene-tile img{width:100%;height:100%}.scene-tile{transition:transform var(--pictures-duration) var(--pictures-ease);display:block;position:absolute}.scene.pictures-open>.scene-grid{filter:grayscale(0)contrast()brightness()}.scene.pictures-open>.scene-grid:after{opacity:0}.scene.pictures-open>.scene-grid>.scene-tile:nth-last-child(-n+5){transform:translateY(16.472cqh)}.scene-tile img{object-fit:fill;width:calc(100.5% + 1px);height:calc(100.5% + 1px);display:block}.scene-wash{pointer-events:none;transition:opacity var(--pictures-duration) var(--pictures-ease);background-image:linear-gradient(#fff9 0%,#ffffff80 50% 100%);position:absolute;inset:0}.scene.pictures-open>.scene-wash{opacity:0}.scene svg{display:block}.scene-btn{cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.scene-btn:hover{transform:none}.scene-btn svg{width:100%;height:auto}.scene-btn .art-over,.scene-btn .art-down,.scene-back .art-over,.scene-back .art-down,.scene-btn:hover .art-up,.scene-btn:focus-visible .art-up,.scene-back:hover .art-up,.scene-back:focus-visible .art-up{display:none}.scene-btn:hover .art-over,.scene-btn:focus-visible .art-over,.scene-back:hover .art-over,.scene-back:focus-visible .art-over{display:block}.scene-btn:active .art-over,.scene-back:active .art-over{display:none}.scene-btn:active .art-down,.scene-back:active .art-down{display:block}.scene-tree,.scene-canopy{pointer-events:none;height:auto;position:absolute}.scene-trunk{color:#fff;white-space:nowrap;transform-origin:0 100%;margin:0;font-family:Roboto,sans-serif;font-size:1.72cqw;position:absolute;bottom:.4%;left:49.9%;transform:rotate(-80deg)}.scene-tree,.scene-canopy,.scene-trunk,.scene-heading,.scene-bio,.scene-btn,.scene.scene-ready .scene-name{transition:transform var(--pictures-duration) var(--pictures-ease), opacity var(--pictures-duration) var(--pictures-ease)}.scene.pictures-open .scene-tree{transform:translateY(101.065cqh)}.scene.pictures-open .scene-canopy{transform:translateY(101.852cqh)}.scene.pictures-open .scene-trunk{transform:translateY(101.481cqh)rotate(-80deg)}.scene.pictures-open .nav-btn:not([data-section=pictures]):not([data-section=contact]),.scene.pictures-open #download-link{transform:translateY(101.852cqh)}.scene.pictures-open .scene-btn[data-section=pictures]{transform:translateY(-11.111cqh)}.scene.pictures-open .scene-btn[data-section=contact]{transform:translate(20cqw)}.scene.pictures-open .scene-help{transform:translate(-12.5cqw)}.scene.pictures-open .scene-heading,.scene.pictures-open .scene-bio{transform:translate(-40.417cqw)}.scene.pictures-open .scene-first-name{transform:translate(73.776cqw,-1.75cqh)scale(1.017,.7);bottom:-4.4%!important}.scene.pictures-open .scene-last-name{transform:translate(73.776cqw,-1.75cqh)scale(1.083,.7)}.scene-heading{color:#fff;margin:0;font-family:Roboto,sans-serif;font-size:2.97cqw;text-decoration:none;position:absolute}.scene-heading:hover{color:#23a3dc}.scene-bio{color:#fff;text-shadow:0 0 .4cqw #00000059;margin:0;font-family:Roboto,sans-serif;font-size:1.82cqw;font-weight:300;position:absolute}.scene-name{color:#333;white-space:nowrap;transform-origin:0 100%;margin:0;font-family:Roboto,sans-serif;font-size:12.4cqw;font-weight:400;line-height:1;position:absolute;transform:scale(1.21,.82)}.scene-last-name{transform:scale(1.29,.82)}.scene-explainers{display:none}.scene.show-explainers .scene-explainers{display:block}.scene-explainers p{color:#fff;text-shadow:0 0 .5cqw #0009;margin:0;font-family:Roboto,sans-serif;font-size:2.34cqw;font-style:italic;position:absolute}.scene-pictures-back{cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;width:10.6%;transition:opacity var(--pictures-duration) var(--pictures-ease), visibility 0s linear var(--pictures-duration);background:0 0;border:0;padding:0;position:absolute;bottom:2.72%;left:1.8%}.scene-pictures-back svg{width:100%;height:auto}.scene.pictures-open>.scene-pictures-back{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--pictures-duration) var(--pictures-ease), visibility 0s linear}.contact-mode .scene-back{cursor:pointer;background:0 0;border:0;width:10.98%;padding:0;position:absolute;top:90.6%;left:3.65%}.contact-mode .scene-back svg{width:100%;height:auto}.contact-mode .scene-name-etched{font-size:10.39cqw;bottom:-2.5%;left:69.6%}.contact-mode .scene-grid{filter:grayscale()contrast(.28)brightness(1.24)}.contact-mode>.scene-wash{background-image:linear-gradient(#ffffff6b 0%,#ffffff85 55%,#ffffffa3 100%)}.contact-title{color:#1d4b61;margin:0;font-family:Roboto,sans-serif;font-size:1.88cqw;font-weight:300;line-height:1.2;position:absolute;top:19.93%;left:30.1%}.contact-cv-header{color:#fff;text-transform:uppercase;margin:0;font-family:Roboto,sans-serif;font-size:2.97cqw;font-weight:400;line-height:1.2;position:absolute;top:.15%;left:3.3%}.contact-portrait{width:20%;position:absolute;top:19.54%;left:6.56%}.contact-portrait img{width:100%;height:auto;display:block}.contact-details{color:#1d4b61;width:42%;font-family:Roboto,sans-serif;font-size:1.25cqw;line-height:1.67;position:absolute;top:29.4%;left:30.1%}.contact-row{margin:0}.contact-key{color:#1d4b61;min-width:10.3em;display:inline-block}.contact-val{color:#1d4b61;font-weight:100}a.contact-row-link,button.contact-row-link{width:calc(100% + 1.2cqw);color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.45cqw;margin-left:-.6cqw;padding:.12cqw .6cqw;text-decoration:none;transition:background-color .2s ease-out,color .2s ease-out;display:block;position:relative}.contact-row-link .contact-val{color:#1a6b8d}.contact-row-link .contact-key,.contact-row-link .contact-val{transition:color .15s ease-out}.contact-row-link:hover,.contact-row-link:focus-visible,.contact-form-toggle[aria-expanded=true]{background-color:#23a3dc14}.contact-row-link:hover .contact-key,.contact-row-link:hover .contact-val,.contact-row-link:focus-visible .contact-key,.contact-row-link:focus-visible .contact-val,.contact-form-toggle[aria-expanded=true] .contact-key,.contact-form-toggle[aria-expanded=true] .contact-val{color:#23a3dc}.contact-link-hint{color:#23a3dc8c;margin-left:.45em;font-size:.95em;line-height:1;transition:color .15s ease-out,transform .25s ease-out;display:inline-block}a.contact-row-link .contact-link-hint:before{content:"↗"}.contact-form-toggle .contact-link-hint:before{content:"+"}.contact-form-toggle[aria-expanded=true] .contact-link-hint{transform:rotate(45deg)}.contact-row-link:hover .contact-link-hint,.contact-row-link:focus-visible .contact-link-hint,.contact-form-toggle[aria-expanded=true] .contact-link-hint{color:#23a3dc}.contact-details :focus-visible{outline-offset:.15cqw;outline-color:#23a3dc}.contact-phone-value.is-revealed{color:#1a6b8d;font-weight:400}.contact-phone-reveal{color:#1a6b8d;font:inherit;cursor:pointer;text-underline-offset:.22em;background:0 0;border:0;align-items:center;padding:0;font-size:.92em;text-decoration:underline;text-decoration-thickness:.06em;transition:color .15s ease-out;display:inline-flex}.contact-phone-reveal:hover,.contact-phone-reveal:focus-visible{color:#23a3dc}.contact-phone-reveal:disabled{cursor:progress;opacity:.65}.contact-phone-captcha{margin-top:.6cqw}.contact-phone-captcha[hidden]{display:none}.contact-phone-status{color:#1d4b61b8;margin:.4cqw 0 0;font-size:.82cqw;line-height:1.35}.contact-phone-status:empty{display:none}.contact-phone-status[data-tone=success]{color:#1f7a4d}.contact-phone-status[data-tone=error]{color:#a8382a}.contact-form-panel{z-index:3;opacity:0;visibility:hidden;pointer-events:none;transform-origin:top;width:calc(100% + 3.3cqw);min-height:0;transition:opacity .2s ease-out,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s linear .32s;position:absolute;top:-1.35cqw;left:-1.65cqw;transform:translateY(-.7cqw)scale(.985)}.contact-form-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .24s ease-out,transform .34s cubic-bezier(.22,1,.36,1),visibility linear;transform:none}.contact-form{-webkit-backdrop-filter:blur(.9cqw);backdrop-filter:blur(.9cqw);background:0 0;border:none;border-radius:.85cqw;min-height:0;padding:1.5cqw 1.85cqw 1.6cqw;position:relative;box-shadow:0 1.1cqw 2.6cqw #1d4b6117}.contact-form-close{color:#1d4b61;cursor:pointer;background:#1d4b6114;border:0;border-radius:50%;justify-content:center;align-items:center;width:2.2cqw;height:2.2cqw;padding:0;font-size:1.3cqw;line-height:1;transition:background-color .15s ease-out,color .15s ease-out;display:inline-flex;position:absolute;top:.55cqw;right:.65cqw}.contact-form-close:hover,.contact-form-close:focus-visible{color:#fff;background:#23a3dc}.contact-form-kicker{color:#1d4b61;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.86cqw;font-weight:500}.contact-form-intro{color:#1d4b61b8;margin:.35cqw 0 1.1cqw;font-size:.84cqw;line-height:1.45}.contact-form-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85cqw 1.2cqw;display:grid}.contact-field{flex-direction:column;gap:.3cqw;min-width:0;display:flex}.contact-field-wide{grid-column:1/-1}.contact-field-label{color:#1d4b61ad;letter-spacing:.11em;text-transform:uppercase;font-size:.72cqw;font-weight:500}.contact-field input,.contact-field textarea{color:#1d4b61;width:100%;font:inherit;background:0 0;border:0;border-bottom:.08cqw solid #1d4b6147;border-radius:0;margin:0;padding:.28cqw .1cqw .42cqw;font-size:.98cqw;line-height:1.35;transition:border-color .18s ease-out,background-color .18s ease-out}.contact-field textarea{resize:vertical;border:.08cqw solid #1d4b6138;border-radius:.48cqw;min-height:15.4cqw;padding:.55cqw .65cqw}.contact-field input:focus,.contact-field textarea:focus{background-color:none;border-color:#23a3dc}.contact-field input[aria-invalid=true],.contact-field textarea[aria-invalid=true]{border-color:#b14732}.contact-form-honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-form-footer{flex-wrap:wrap;align-items:center;gap:.6cqw 1cqw;margin-top:1.15cqw;display:flex}.contact-form-submit{color:#fff;letter-spacing:.02em;background:#1d4b61;border-radius:999px;justify-content:center;align-items:center;gap:.5cqw;min-width:10.5cqw;padding:.62cqw 1.2cqw;font-size:.88cqw;font-weight:500;transition:background-color .18s ease-out,transform .18s ease-out,opacity .18s ease-out;display:inline-flex}.contact-form-submit:hover{background:#23a3dc;transform:translateY(-.08cqw)}.contact-form-submit:disabled{cursor:wait;opacity:.72;transform:none}.contact-form-spinner{border:.12cqw solid #ffffff59;border-top-color:#fff;border-radius:50%;width:.9cqw;height:.9cqw;animation:.7s linear infinite contact-spin;display:none}@keyframes contact-spin{to{transform:rotate(360deg)}}.contact-form [data-submit-success]{display:none}.contact-form[data-state=sending] .contact-form-spinner{display:block}.contact-form[data-state=success] [data-submit-label]{display:none}.contact-form[data-state=success] [data-submit-success]:not([hidden]){display:inline}.contact-form-status{color:#1d4b61b8;margin:0;font-size:.82cqw;line-height:1.35}.contact-form-status[data-tone=success]{color:#1f7a4d}.contact-form-status[data-tone=error]{color:#a8382a}.contact-booth{pointer-events:none;width:13%;position:absolute;top:2%;right:4%}.contact-booth svg{width:100%;height:auto}.contact-booth .art-up{display:none}.contact-booth .art-over{display:block}.content-scroll{z-index:2;color:#1d4b61;scroll-behavior:smooth;scrollbar-color:#555 #d2d2d200;scrollbar-width:thin;background-color:#fff0;border:.08cqw solid #1d4b6100;width:75.26%;height:83.06%;padding:2.4cqw 3.2cqw 3cqw;font-family:Roboto,sans-serif;font-size:1.12cqw;line-height:1.55;position:absolute;top:5.556%;left:3.385%;overflow:hidden auto;box-shadow:0 .25cqw 1.2cqw #0000}.content-scroll:focus-visible{outline-offset:-.3cqw;outline:.15cqw solid #23a3dc}.content-scroll::-webkit-scrollbar{width:1.3cqw}.content-scroll::-webkit-scrollbar-track{background-color:#d2d2d2}.content-scroll::-webkit-scrollbar-thumb{background-color:#555;border:.25cqw solid #d2d2d2}.content-header{border-bottom:.08cqw solid #1d4b6140;margin:0 0 2.2cqw;padding-bottom:1.6cqw}.content-eyebrow{color:#6e8fa1;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .4cqw;font-size:.95cqw}.content-title{color:#1d4b61;margin:0;font-family:Roboto,sans-serif;font-size:2.8cqw;font-weight:300;line-height:1.05}.content-lede{color:#4a6b80;max-width:52em;margin:1cqw 0 0}.content-block{margin-top:2.6cqw}.content-heading{color:#1d4b61;margin:0 0 1.2cqw;font-size:1.8cqw;font-weight:400}.work-roles{gap:1.6cqw;display:grid}.work-role{border-left:.22cqw solid #23a3dc;padding-left:1.8cqw;position:relative}.work-role-marker{z-index:1;width:2.2cqw;height:2.2cqw;display:block;position:absolute;top:0;left:-1.21cqw}.work-role-marker img{width:100%;height:100%;display:block}.work-role h4{margin:0;font-size:1.35cqw;font-weight:700}.work-role-place{color:#6e8fa1;font-weight:400}.work-role-meta{color:#6e8fa1;margin:.2cqw 0 .8cqw;font-size:1cqw}.work-role p{color:#1d4b61;margin:0 0 .8cqw}.work-role-list{color:#1d4b61;margin:0 0 .8cqw;padding-left:1.2em}.work-role-list li{margin:0 0 .25cqw}.work-tagline{color:#3b6b84;font-style:italic}.work-abilities{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5cqw 2cqw;display:grid}.ability-group h4{color:#6e8fa1;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .6cqw;font-size:1.05cqw}.skill-list{gap:.35cqw;margin:0;padding:0;list-style:none;display:grid}.skill{justify-content:space-between;align-items:center;gap:1em;font-size:1.02cqw;display:flex}.skill-meter{background-color:#1d4b611f;border-radius:1em;flex:0 0 6em;height:.38cqw;overflow:hidden}.skill-meter>span{width:calc(var(--level) / 5 * 100%);background-color:#23a3dc;height:100%;display:block}.work-projects{gap:2.2cqw;display:grid}.project-group-header{border-bottom:.08cqw solid #1d4b6140;justify-content:space-between;align-items:baseline;gap:1em;margin-bottom:.9cqw;padding-bottom:.5cqw;display:flex}.project-group-header h4{margin:0;font-size:1.35cqw}.project-group-header a{color:#23a3dc;font-size:1cqw;text-decoration:none}.project-group-header a:hover,.project-group-header a:focus-visible{text-decoration:underline}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8cqw;display:grid}.project-card{background-color:#1d4b6109;border:.06cqw solid #1d4b6129;border-radius:.35cqw;padding:.7cqw .9cqw}.project-card summary{cursor:pointer;gap:.15cqw;list-style:none;display:grid}.project-card summary::-webkit-details-marker{display:none}.project-title{color:#1d4b61;font-size:1.02cqw;font-weight:700}.project-title:before{content:"▸";color:#23a3dc;margin-right:.45em}.project-card[open] .project-title:before{content:"▾"}.project-card summary:focus-visible{outline-offset:.15cqw;outline:.12cqw solid #23a3dc}.content-scroll :focus-visible{outline-color:#23a3dc}.project-stack{color:#6e8fa1;font-size:.88cqw}.project-body{margin-top:.6cqw;font-size:.98cqw}.project-body p{color:#1d4b61;margin:0 0 .5cqw}.project-body ul{margin:0;padding-left:1.2em}.project-body li{margin:0 0 .25cqw}.content-mode .scene-back{cursor:pointer;background:0 0;border:0;width:10.98%;padding:0;position:absolute;top:90.6%;left:3.85%}.content-mode .scene-back svg{width:100%;height:auto}.education-timeline{gap:1.1cqw;display:grid;position:relative}.education-timeline:before{content:"";background-color:#23a3dc73;width:.16cqw;position:absolute;top:0;bottom:0;left:0}.timeline-entry{grid-template-columns:9.5cqw minmax(0,1fr);gap:1.2cqw;padding-left:2.4cqw;display:grid;position:relative}.timeline-marker{z-index:1;width:2.2cqw;height:2.2cqw;display:block;position:absolute;top:0;left:-1.1cqw}.timeline-marker img{width:100%;height:100%;display:block}.timeline-date{color:#6e8fa1;margin:0;font-size:1cqw;font-weight:700}.timeline-body h4{color:#1d4b61;margin:0;font-size:1.15cqw;font-weight:700}.timeline-org{color:#23a3dc;margin:.15cqw 0 .45cqw;font-size:.98cqw}.timeline-body p{color:#1d4b61;margin:0 0 .45cqw}.timeline-body p:last-child{margin-bottom:0}.education-split{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:2.4cqw;margin-top:2.6cqw;display:grid}.education-split>div>.content-block{margin-top:2.4cqw}.education-split>div>.content-block:first-child,.education-split>aside.content-block{margin-top:0}.cert-list{gap:.55cqw;margin:0;padding:0;list-style:none;display:grid}.cert-list li{color:#1d4b61;grid-template-columns:6.5cqw minmax(0,1fr);gap:.8cqw;font-size:.98cqw;display:grid}.cert-year{color:#6e8fa1;font-size:.9cqw;font-weight:700}#home .intro-greet,#home .intro-count,#home .intro-since{display:none}#home .scene.intro-paused *{animation-play-state:paused!important}#home .scene.intro .scene-btn,#home .scene.intro .scene-heading{pointer-events:none}#home .scene.intro .intro-greet{text-align:center;pointer-events:none;animation:1.2s ease-out -.3s both intro-greet-life;display:block;position:absolute;top:14%;left:0;right:0}#home .scene.intro .intro-welcome{color:#333;margin:0;font-family:Roboto,sans-serif;font-size:7.5cqw;line-height:1}#home .scene.intro .intro-thanks{color:#333;margin:1cqw 0 0;font-family:Roboto,sans-serif;font-size:4.5cqw}@keyframes intro-greet-life{0%{opacity:0}15%{opacity:1}65%{opacity:1}to{opacity:0}}#home .scene.intro .scene-heading,#home .scene.intro .scene-bio{opacity:0;animation:1s ease-out .3s both intro-bio-slide,.6s ease-out both intro-bio-fade;animation-delay:.3s, var(--bd,.25s);transform:translate(-12%)}@keyframes intro-bio-slide{0%{transform:translate(-12%)}to{transform:none}}@keyframes intro-bio-fade{0%{opacity:0}to{opacity:1}}#home .scene.intro .scene-tree{transform-origin:48% 100%;animation:4.9s ease-in-out 1.3s both intro-tree-grow;transform:scale(.25)}@keyframes intro-tree-grow{0%{transform:scale(.25)}85%{transform:scale(1)}to{transform:scale(1)}}#home .scene.intro .intro-count{color:#fff;text-align:right;white-space:nowrap;pointer-events:none;opacity:0;margin:0;font-family:Roboto,sans-serif;font-size:2.2cqw;line-height:1.2;animation:8s linear 2s both intro-count-life;display:block;position:absolute;top:21%;right:22%}#home .intro-age-line{opacity:0;transition:opacity .2s linear;display:block}#home .scene.intro .intro-age-line.is-revealed{opacity:1}@keyframes intro-count-life{0%{opacity:0}6%{opacity:1}94%{opacity:1}to{opacity:0}}#home .scene.intro .scene-canopy{transform-origin:50.7% 125.8%;animation:4.9s ease-in-out 1.3s both intro-tree-grow;transform:scale(.25)}#home .scene.intro .scene-trunk{opacity:0;animation:9.1s ease-out 2s both intro-trunk-fly}@keyframes intro-trunk-fly{0%{opacity:0;transform:translate(10.3cqw,-45.5cqw)rotate(0)}3%{opacity:1;transform:translate(10.3cqw,-45.5cqw)rotate(0)}88%{opacity:1;transform:translate(10.3cqw,-45.5cqw)rotate(0)}to{opacity:1;transform:translate(0)rotate(-80deg)}}#home .scene.intro .scene-trunk .intro-since{animation:9.1s linear 2s both intro-since-fade;display:inline}@keyframes intro-since-fade{0%,88%{opacity:1}to{opacity:0}}#home .scene.intro .scene-tile{opacity:0;animation:1s ease-out both intro-tile-in;animation-delay:var(--td,11s)}@keyframes intro-tile-in{0%{opacity:0;transform:translate(var(--tx,0px), var(--ty,28px))}to{opacity:1;transform:none}}#home .scene.intro .intro-leaf{opacity:0;transform-box:fill-box;animation:1.6s ease-out 11.3s both intro-leaf-grow;transform:scale(.3)}#home .scene.intro a.scene-btn.cv-download .intro-leaf,#home .scene.intro button[data-section=education] .intro-leaf{transform-origin:100% 100%}#home .scene.intro button[aria-label=Work\ abilities] .intro-leaf{transform-origin:50% 100%}#home .scene.intro button[aria-label=Work] .intro-leaf{transform-origin:0 100%}@keyframes intro-leaf-grow{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}#home .scene.intro .intro-detail{opacity:0;animation:.5s ease-out 12s both intro-detail-fade}@keyframes intro-detail-fade{0%{opacity:0}to{opacity:1}}#home .scene.intro button[data-section=pictures],#home .scene.intro button[data-section=contact]{opacity:0;animation:.3s ease-out 12.5s both intro-btn-pop}#home .scene.intro button[data-explain]{opacity:0;animation:.6s ease-out 12.5s both intro-help-slide}@keyframes intro-help-slide{0%{opacity:0;transform:translate(-15cqw)}to{opacity:1;transform:none}}@keyframes intro-btn-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
