.back-to-top{bottom:20px;pointer-events:none;position:fixed;right:18px;z-index:40}.back-to-top-button{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#0f3039db;border:1px solid #ffffff38;border-radius:50%;box-shadow:0 12px 28px #04151a47;color:#eafaf2;cursor:pointer;display:grid;place-items:center;pointer-events:all;transition:transform .2s ease,background .2s ease}.back-to-top-button:hover{background:#d9f5eb;color:#13232c;transform:translateY(-2px)}@media (max-width:760px){.back-to-top{display:none}}.contact-section{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#031621cc;border-bottom:1px solid #c7f6eb26;color:#f4fff8}.contact-wrap{grid-gap:clamp(38px,8vw,132px);display:grid;gap:clamp(38px,8vw,132px);grid-template-columns:minmax(0,.82fr) minmax(340px,1.18fr)}.contact-section .section-title{color:#f4fff8;margin-bottom:18px}.contact-email{color:#b7f2e4;display:inline-flex;font-size:clamp(1rem,2vw,1.25rem);font-weight:750;text-decoration:underline;text-underline-offset:5px}.contact-intro{color:#f4fff8b8;line-height:1.7;margin:0 0 22px;max-width:430px}.contact-email:hover{color:#f8db99}.contact-form{grid-gap:15px;backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);background:#0e303d8f;border:1px solid #e2f7ee33;border-radius:8px;box-shadow:0 24px 60px #000c1638,14px 16px 0 #45d7cb1a,inset 0 1px 0 #ffffff24;display:grid;gap:15px;padding:clamp(22px,3vw,34px)}.contact-form .MuiTextField-root{width:100%}.contact-form .MuiOutlinedInput-root{background:#ffffff12;border-radius:6px;color:#f4fff8}.contact-form .MuiFormHelperText-root,.contact-form .MuiInputLabel-root{color:#f4fff8bf}.contact-form .MuiOutlinedInput-notchedOutline{border-color:#f4fff84d}.contact-form .MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline,.contact-form .MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline{border-color:#9ce9d9}.contact-form .MuiButton-root{background:#eab24b;border-radius:6px;color:#113039;font-weight:850}.contact-form .MuiButton-root:hover{background:#f7dfa4}.contact-form .MuiAlert-root{border-radius:6px}.contact-privacy{color:#f4fff894;font-size:.76rem;margin:0;text-align:center}@media (max-width:760px){.contact-wrap{gap:30px;grid-template-columns:1fr}}.experience-section{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#051b28b3;border-bottom:1px solid #c7f6eb26;border-top:1px solid #c7f6eb2e}.experience-list{list-style:none;max-width:1060px;position:relative}.experience-list:before{background:#8eebd957;bottom:18px;content:"";left:34px;position:absolute;top:18px}.experience-entry{grid-gap:26px;display:grid;gap:26px;grid-template-columns:70px minmax(0,1fr);position:relative}.experience-entry:first-child{padding-top:0}.experience-entry:last-child{padding-bottom:0}.experience-index{background:#164b56cc;border:1px solid #96efdd80;border-radius:50%;box-shadow:0 0 0 7px #051b28b3,0 0 26px #45d7cb38;color:#d8fff2;display:grid;font-size:.78rem;font-weight:900;height:38px;position:relative;width:70px;z-index:1}.experience-entry article{grid-column-gap:34px;align-items:start;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);background:#0e303d94;border:1px solid #dbf8f138;border-radius:8px;box-shadow:0 22px 54px #000c162e,13px 15px 0 #45d7cb1c,inset 0 1px 0 #ffffff24;column-gap:34px;display:grid;isolation:isolate;min-height:178px;overflow:hidden;padding:30px 34px;position:relative;transition:border-color .18s ease,box-shadow .22s ease,background-color .18s ease}.experience-entry article:before{background:#5be0ce;bottom:22px;box-shadow:0 42px 0 #ee7567,0 84px 0 #eab24b;content:"";left:0;position:absolute;top:22px;width:3px}.experience-entry article:after{border-left:1px solid #bcfbec2e;border-right:1px solid #ee756738;content:"";height:140%;pointer-events:none;position:absolute;right:7%;top:-20%;transform:rotate(24deg);width:26%}.experience-entry article:hover{background:#123d4aa8;border-color:#b1f7e87a;box-shadow:0 28px 64px #000c1647,16px 18px 0 #ee75672b,-9px 11px 0 #45d7cb21,inset 0 1px 0 #ffffff2e}.experience-heading h3{color:var(--ink);font-size:clamp(1.35rem,2.8vw,2.08rem);font-weight:850;line-height:1.08;margin:0}.experience-heading p,.experience-period,.experience-summary{margin:0}.experience-heading p{color:var(--ink-muted);font-size:.95rem;font-weight:700;margin-top:8px}.experience-period{color:#a8f0df;font-size:.88rem;font-weight:800;grid-column:2;grid-row:1;text-align:right;white-space:nowrap}.experience-summary{color:var(--ink);font-size:1rem;grid-column:1/-1;line-height:1.68;margin-top:18px;max-width:790px}.dark-theme .experience-section{background:#02101cc4}@media (max-width:680px){.experience-list:before{left:22px}.experience-entry{gap:16px;grid-template-columns:46px minmax(0,1fr);padding-bottom:18px}.experience-index{font-size:.7rem;height:34px;width:46px}.experience-entry article{gap:0;grid-template-columns:1fr;min-height:0;padding:24px 22px}.experience-period{grid-column:1;grid-row:auto;margin-top:10px;text-align:left;white-space:normal}.experience-summary{font-size:.95rem;grid-column:1;margin-top:13px}}.experience-summary{padding-left:1.2em}.experience-summary li+li{margin-top:8px}.experience-technologies{color:var(--ink-muted);grid-column:1/-1;line-height:1.6;margin:16px 0 0;overflow-wrap:anywhere}.site-footer{background:#13383f;color:#ebfbf4b8;display:flex;font-size:.85rem;font-weight:700;gap:16px;justify-content:center;padding:25px 20px 32px}.site-footer a:hover{color:#f8db99}.hero-section{align-items:center;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0416218a;color:#f8fff9;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.52fr);overflow:clip;padding:132px max(5vw,32px) 104px;position:relative;z-index:1}.hero-section:after,.hero-section:before{content:"";pointer-events:none;position:absolute}.hero-section:before{border:1px solid #e2f7ee21;inset:15% 41% 15% -14%;transform:perspective(900px) rotateY(31deg) rotate(-7deg)}.hero-section:after{background:#e2f7ee7a;bottom:13vh;box-shadow:0 24px 0 #45d7cb66,0 48px 0 #ee75675c;height:1px;right:7vw;transform:rotate(-18deg);width:min(24vw,360px)}.hero-content{max-width:700px;position:relative;z-index:2}.hero-role-line{color:#aee7dc;font-size:clamp(.72rem,1.25vw,.88rem);font-weight:800;letter-spacing:.06em;margin:0 0 18px;text-transform:uppercase}.hero-content h1{color:#f8fff9;font-size:clamp(3.35rem,7.7vw,8rem);font-weight:900;letter-spacing:0;margin:0}.hero-intro{color:#f0fff8cc;font-size:clamp(1rem,1.7vw,1.25rem);font-weight:550;margin:26px 0 0;max-width:620px}.hero-actions,.hero-socials{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.hero-actions{margin-top:30px}.primary-action,.secondary-action{align-items:center;border:1px solid #0000;border-radius:6px;display:inline-flex;font-size:.95rem;font-weight:800;justify-content:center;transition:transform .18s ease,background-color .18s ease,color .18s ease}.primary-action{background:#eab24b;color:#12232b}.primary-action:hover{background:#f7dfa4}.secondary-action{background:#0718205c;border-color:#e2f7ee57;color:#f8fff9}.secondary-action:hover{border-color:#aee7dc;color:#aee7dc}.hero-socials{margin-top:26px}.hero-socials a{background:#0718206b;border:1px solid #e2f7ee33;border-radius:50%;color:#f8fff9;display:grid;height:38px;place-items:center;transition:color .18s ease,background-color .18s ease,transform .18s ease;width:38px}.hero-socials a:hover{background:#d9f5eb;color:#12232b;transform:translateY(-2px)}.hero-visual-stage{animation:hero-prism-drift 7s ease-in-out infinite;aspect-ratio:.86;justify-self:center;margin:0;min-width:270px;position:relative;transform-style:preserve-3d;width:min(31vw,400px);z-index:2}.hero-portrait{backdrop-filter:blur(14px) saturate(1.28);-webkit-backdrop-filter:blur(14px) saturate(1.28);background:#12364194;border:1px solid #e2f7ee85;border-radius:8px;box-shadow:22px 24px 0 #ee756775,-16px 16px 0 #45d7cb4d,0 28px 55px #000b1457,inset 0 1px 0 #ffffff2e;inset:32px 40px 30px 34px;margin:0;padding:10px;position:absolute;transform:perspective(1200px) rotateY(-11deg) rotateX(4deg) rotate(3deg);z-index:2}.hero-portrait:after,.hero-portrait:before{content:"";pointer-events:none;position:absolute}.hero-portrait:before{border:1px solid #e2f7ee38;inset:-18px;transform:translateZ(-24px)}.hero-portrait:after{background:#eab24b24;border:1px solid #eab24b;border-radius:8px;bottom:-26px;height:80px;right:-34px;width:80px}.hero-portrait img{display:block;filter:saturate(.96) contrast(1.04);height:100%;object-fit:cover}.hero-prism{background:currentColor;border:1px solid;border-radius:8px;box-shadow:0 22px 48px currentColor;display:block;opacity:.18;position:absolute;transform-style:preserve-3d}.hero-prism--teal{color:#54d9c7;height:41%;right:5%;top:1%;transform:perspective(900px) rotateY(-31deg) rotateX(11deg) translateZ(-42px);width:68%}.hero-prism--coral{bottom:4%;color:#ee7567;height:48%;left:0;transform:perspective(900px) rotateY(28deg) rotateX(-12deg) translateZ(-55px);width:58%}.hero-prism--gold{color:#eab24b;height:64%;left:18%;opacity:.1;top:19%;transform:perspective(900px) rotateY(-8deg) rotateX(14deg) translateZ(-80px);width:72%}@keyframes hero-prism-drift{50%{transform:translate3d(0,-12px,0) rotate(-1.5deg)}}.hero-scroll{animation:hero-scroll-pulse 2.2s ease-in-out infinite;background:#0718206b;border:1px solid #e2f7ee47;border-radius:50%;bottom:30px;color:#f8fff9;display:grid;height:40px;left:50%;place-items:center;position:absolute;transform:translateX(-50%);width:40px;z-index:3}@keyframes hero-scroll-pulse{50%{transform:translateX(-50%) translateY(7px)}}@media (max-width:860px){.hero-section{grid-template-columns:1fr;min-height:auto;padding-top:132px}.hero-portrait{inset:32px 42px 28px 32px}.hero-visual-stage{justify-self:start;margin-top:54px;width:min(54vw,360px)}.hero-scroll{display:none}}@media (max-width:560px){.hero-section{min-height:100svh;padding:112px 22px 62px}.hero-section:after{bottom:25vh;right:-7vw;width:52vw}.hero-content h1{font-size:clamp(3.1rem,15.2vw,4.9rem);line-height:.9}.hero-role-line{line-height:1.55;max-width:320px}.hero-intro{font-size:1rem;margin-top:20px}.hero-actions{display:grid;grid-template-columns:1fr;width:min(100%,360px)}.hero-visual-stage{display:none}}@media (prefers-reduced-motion:reduce){.hero-scroll,.hero-visual-stage{animation:none}}.journey-scene{inset:0;opacity:1;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.journey-scene-canvas,.journey-scene-canvas canvas{height:100%;width:100%}.journey-scene-canvas canvas{display:block}.journey-scene-fallback{background:radial-gradient(circle at 22% 17%,color-mix(in srgb,var(--signal) 38%,#0000) 0 1px,#0000 2px),radial-gradient(circle at 68% 29%,color-mix(in srgb,var(--text) 28%,#0000) 0 1px,#0000 2px),radial-gradient(circle at 82% 18%,color-mix(in srgb,var(--mineral) 46%,#0000) 0 13%,#0000 13.4%),radial-gradient(circle at 82% 18%,color-mix(in srgb,var(--signal) 16%,#0000) 0 18%,#0000 18.5%),linear-gradient(168deg,#0000 0 67%,color-mix(in srgb,var(--signal) 18%,#0000) 67.2% 72%,#0000 72.2%),linear-gradient(174deg,#0000 0 76%,color-mix(in srgb,var(--text) 12%,#0000) 76.2% 82%,#0000 82.2%),var(--page);background-size:260px 220px,310px 260px,auto,auto,auto,auto,auto;inset:0;opacity:1;overflow:hidden;position:absolute}.journey-scene-fallback:after,.journey-scene-fallback:before{content:"";pointer-events:none;position:absolute}.journey-scene-fallback:before{background:color-mix(in srgb,var(--signal) 58%,#0000);bottom:25%;box-shadow:42px 32px 0 color-mix(in srgb,var(--mineral) 44%,#0000),-64px 46px 0 color-mix(in srgb,var(--text) 22%,#0000);height:24%;right:18%;width:2px}.journey-scene-fallback:after{border:1px solid color-mix(in srgb,var(--signal) 22%,#0000);border-radius:50%;height:34%;right:6%;top:34%;transform:perspective(600px) rotateX(72deg) rotate(-12deg);width:34%}@media (max-width:720px){.journey-scene{opacity:.9}}@media (prefers-reduced-motion:reduce){.journey-scene{opacity:.72}}.projects-section{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#051c2bb0;border-bottom:1px solid #c7f6eb26}.projects-gallery{grid-gap:20px clamp(24px,4vw,48px);gap:20px clamp(24px,4vw,48px);grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading-row{grid-gap:40px;align-items:end;display:grid;gap:40px;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);margin-bottom:clamp(38px,5vw,64px)}.section-heading-row .section-title{margin-bottom:0}.section-heading-row>p{color:var(--ink-muted);line-height:1.65;margin:0 0 6px;max-width:440px}.section-eyebrow{color:#8ee8d6;font-size:.75rem;font-weight:850;letter-spacing:.1em;margin:0 0 12px;text-transform:uppercase}.project-item{grid-gap:24px;align-items:center;backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);background:#0d313f94;border:1px solid #dbf8f133;border-radius:8px;box-shadow:0 22px 52px #000c162e,inset 0 1px 0 #ffffff24;display:grid;gap:24px;grid-template-columns:152px minmax(0,1fr);isolation:isolate;min-height:278px;overflow:hidden;padding:30px;position:relative;transition:border-color .18s ease,box-shadow .22s ease,background-color .18s ease}.project-item:nth-child(-n+2){border-top:1px solid #dbf8f133;padding-top:30px}.project-item:before{border:1px solid color-mix(in srgb,var(--project-accent) 64%,#0000);border-radius:8px;bottom:18px;content:"";height:56px;opacity:.7;pointer-events:none;position:absolute;right:18px;transform:perspective(520px) rotateX(56deg) rotate(26deg);width:56px}.project-item:hover{background:#113d4bad;border-color:color-mix(in srgb,var(--project-accent) 64%,#eafff8);box-shadow:0 28px 66px #000c164d,inset 0 1px 0 #ffffff2b}.project-screenshot{aspect-ratio:4/3;background:#102c37;border:1px solid color-mix(in srgb,var(--project-accent) 58%,#153642);border-radius:8px;overflow:hidden;width:152px}.project-screenshot img{display:block;object-position:top left;transition:transform .26s ease}.project-item:hover .project-screenshot img{transform:scale(1.035)}.project-visual{background:#143541;border:1px solid color-mix(in srgb,var(--project-accent) 58%,#153642);border-radius:8px;box-shadow:10px 11px 0 color-mix(in srgb,var(--project-accent) 45%,#0000);height:160px;isolation:isolate;overflow:hidden;position:relative;width:132px}.project-visual span,.project-visual:after,.project-visual:before{content:"";display:block;pointer-events:none;position:absolute}.project-visual:before{background:#f4fff8a8;box-shadow:0 22px 0 #f4fff861,0 44px 0 #f4fff840;height:1px;inset:15px 14px auto}.project-visual:after{border:1px solid #f4fff8b3;bottom:15px;height:26px;right:15px;width:26px}.project-visual-plane{background:color-mix(in srgb,var(--project-accent) 23%,#0000);border:1px solid var(--project-accent);bottom:-21px;height:92px;right:-27px;transform:rotate(27deg);transition:transform .24s ease;width:92px}.project-visual-orbit{border:1px solid color-mix(in srgb,var(--project-accent) 78%,#fff);border-radius:50%;bottom:24px;height:52px;left:25px;transform:rotateX(56deg) rotate(22deg);transition:transform .28s ease;width:52px}.project-visual-signal{background:var(--project-accent);border-radius:50%;bottom:38px;box-shadow:0 0 0 7px color-mix(in srgb,var(--project-accent) 16%,#0000);height:11px;left:51px;width:11px}.project-item:hover .project-visual-plane{transform:rotate(40deg) translate3d(-4px,-4px,0)}.project-item:hover .project-visual-orbit{transform:rotateX(56deg) rotate(68deg)}.project-meta{color:#8ee8d6;display:flex;font-size:.74rem;font-weight:850;gap:12px;justify-content:space-between;letter-spacing:.08em;margin-bottom:11px;text-transform:uppercase}.project-copy h3,.project-copy p{margin:0}.project-copy h3{color:var(--ink);font-size:clamp(1.45rem,3vw,2.15rem);font-weight:850;line-height:1.04}.project-subtitle{color:var(--ink-muted);font-size:.92rem;font-weight:750;margin-top:8px!important}.project-summary{color:var(--ink);line-height:1.64;margin-top:15px!important}.project-metric{background:color-mix(in srgb,var(--project-accent) 14%,#0000);border:1px solid color-mix(in srgb,var(--project-accent) 60%,#0000);border-radius:999px;color:var(--ink);display:inline-flex;font-size:.76rem;font-weight:850;margin-top:14px!important;padding:5px 9px}.project-technologies{color:#9ae9d8;font-size:.83rem;font-weight:750;line-height:1.55;margin-top:14px!important}.project-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}.project-actions a{align-items:center;color:#a8f0df;display:inline-flex;font-size:.88rem;font-weight:850;gap:5px}.project-actions a:hover{color:#bd514b}.project-actions .project-primary-link{border-bottom:1px solid;padding-bottom:3px}.section-toggle{align-items:center;background:#0d313f94;border:1px solid #a8f0df59;border-radius:6px;color:#c8f5e9;cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:7px;margin-top:32px;min-height:44px;padding:0 15px}.section-toggle:hover{background:#d9f5eb;color:#13232c}.project-actions svg{font-size:.9rem}.dark-theme .project-actions a,.dark-theme .project-meta,.dark-theme .project-technologies{color:#a8e8d9}@media (max-width:900px){.section-heading-row{gap:18px}.projects-gallery,.section-heading-row{grid-template-columns:1fr}.project-item:nth-child(2){border-top-color:#dbf8f133;padding-top:30px}}@media (max-width:540px){.project-item{gap:18px;grid-template-columns:104px minmax(0,1fr);min-height:0;padding:22px}.project-visual{box-shadow:7px 8px 0 color-mix(in srgb,var(--project-accent) 45%,#0000);height:118px;width:96px}.project-screenshot{width:104px}.project-visual:before{box-shadow:0 17px 0 #f4fff861,0 34px 0 #f4fff840;inset:13px 12px auto}.project-visual:after{bottom:11px;height:18px;right:11px;width:18px}.project-visual-plane{height:72px;width:72px}.project-visual-orbit{bottom:18px;height:40px;left:18px;width:40px}.project-visual-signal{bottom:29px;left:37px}.project-copy h3{font-size:1.35rem}.project-summary{font-size:.93rem}}.research-section{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#05202fad;border-bottom:1px solid #c7f6eb26}.research-columns{grid-gap:clamp(38px,7vw,100px);display:grid;gap:clamp(38px,7vw,100px);grid-template-columns:repeat(2,minmax(0,1fr))}.research-column h3{color:#a8f0df;font-weight:850;letter-spacing:.05em;margin:0 0 15px;text-transform:uppercase}.research-list{grid-gap:14px;display:grid;gap:14px;list-style:none;margin:0;padding:0}.research-list li{min-width:0}.research-list article{backdrop-filter:blur(18px) saturate(1.16);-webkit-backdrop-filter:blur(18px) saturate(1.16);background:#0d33428c;border:1px solid #dbf8f133;border-radius:8px;box-shadow:0 20px 48px #000c162e,11px 13px 0 #45d7cb1a,inset 0 1px 0 #ffffff1f;height:100%;overflow:hidden;padding:26px;position:relative;transition:border-color .18s ease,box-shadow .22s ease,background-color .18s ease}.research-list article:after{border:1px solid #eab24b57;border-radius:8px;bottom:-56px;content:"";height:152px;pointer-events:none;position:absolute;right:-48px;transform:perspective(600px) rotateX(57deg) rotate(27deg);width:152px}.research-list article:hover{background:#113e4ca8;border-color:#aef3e575;box-shadow:0 25px 60px #000c1647,13px 16px 0 #ee756726,-7px 10px 0 #45d7cb1c,inset 0 1px 0 #ffffff26}.research-meta{color:#8ee8d6;display:flex;font-size:.75rem;font-weight:850;gap:14px;justify-content:space-between;letter-spacing:.08em;margin-bottom:12px;text-transform:uppercase}.research-list h4{color:var(--ink);font-size:clamp(1.18rem,2.2vw,1.55rem);font-weight:820;margin:0}.research-list p{color:var(--ink);font-size:.98rem;line-height:1.63;margin:12px 0 0;max-width:560px}.research-list .research-organization{color:var(--ink-muted);font-size:.9rem;font-weight:700;line-height:1.5;margin-top:8px}.inline-link{align-items:center;color:#a8f0df;display:inline-flex;font-size:.9rem;font-weight:850;gap:6px;margin-top:16px}.inline-link:hover{color:#bf514b}.inline-link svg{font-size:.85rem}.dark-theme .research-section{background:#011321c2}@media (max-width:840px){.research-columns{gap:52px;grid-template-columns:1fr}}.site-navigation{align-items:center;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#06131c94;border-bottom:1px solid #e6f6ef29;box-shadow:0 10px 34px #020f1933;color:#f8fff9;display:grid;grid-template-columns:minmax(112px,1fr) auto minmax(112px,1fr);left:0;padding:0 4.5vw;position:fixed;top:0;width:100%;z-index:50}.site-navigation:after{background:#70e5cfa8;bottom:-1px;box-shadow:-96px 0 0 #ee756785,96px 0 0 #eab24b85;content:"";height:1px;pointer-events:none;position:absolute;right:8%;width:min(30vw,360px)}.site-wordmark{color:inherit;font-size:1.05rem;font-weight:850;justify-self:start;letter-spacing:0}.site-actions,.site-links{align-items:center;display:flex}.site-links{gap:2px}.resume-link,.site-actions>.weather-control>.weather-trigger,.site-actions>button,.site-links a{align-items:center;border:0;border-radius:6px;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-size:.84rem;font-weight:750;justify-content:center;letter-spacing:0;min-height:38px;padding:0 10px;transition:color .18s ease,background-color .18s ease}.resume-link:hover,.site-actions>.weather-control>.weather-trigger:hover,.site-actions>button:hover,.site-links a.is-active,.site-links a:hover{background:#d9f5eb;color:#13232c}.site-actions{gap:3px;justify-self:end}.resume-link{background:#eab24b;color:#13232c;gap:6px;padding:0 11px}.resume-link:hover{background:#f8e1a6}.menu-toggle{display:none!important}.dark-theme .site-navigation{background:#030d15a8;border-bottom-color:#e6f6ef1f}@media (max-width:1040px){.site-navigation{grid-template-columns:auto 1fr auto;padding:0 24px}.site-links a{font-size:.78rem;padding:0 8px}}@media (max-width:860px){.site-navigation{min-height:64px;padding:0 16px}.site-links{grid-gap:1px;background:#06131cf0;border-bottom:0 solid #e6f6ef29;display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr));left:0;max-height:0;opacity:0;overflow:hidden;padding:0 16px;pointer-events:none;position:fixed;right:0;top:64px;transition:max-height .22s ease,opacity .16s ease,padding .22s ease}.site-links.is-open{border-bottom-width:1px;max-height:240px;opacity:1;padding-bottom:14px;padding-top:12px;pointer-events:auto}.site-links a{font-size:.92rem;justify-content:flex-start;min-height:44px;padding:0 12px}.resume-link span{display:none}.resume-link,.site-actions>.weather-control>.weather-trigger,.site-actions>button{min-width:38px;padding:0}.menu-toggle{display:inline-flex!important}}.weather-control{position:relative}.weather-trigger{gap:6px}.weather-trigger svg{color:#f8d276}.weather-panel{backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);background:#0a1e2ad1;border:1px solid #dff8f047;border-radius:8px;box-shadow:0 24px 70px #010d1657,12px 14px 0 #ee75672e,-8px 9px 0 #45d7cb24,inset 0 1px 0 #ffffff24;color:#f6fff9;padding:18px;position:absolute;right:0;top:calc(100% + 14px);width:min(332px,calc(100vw - 32px))}.weather-panel-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.weather-panel-heading span,.weather-panel-heading strong{display:block}.weather-panel-heading span{color:#98e7db;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.weather-panel-heading strong{font-size:1.12rem;margin-top:4px}.weather-panel-heading>button{background:#0000;border:1px solid #dff8f038;border-radius:50%;color:inherit;cursor:pointer;display:grid;height:32px;padding:0;place-items:center;width:32px}.weather-panel-heading>button:hover{background:#d9f5eb;color:#102b36}.weather-empty p{color:#f6fff9c7;font-size:.9rem;line-height:1.55;margin:17px 0 14px}.weather-empty>button,.weather-refresh{align-items:center;background:#98e7db;border:1px solid #dff8f047;border-radius:7px;color:#102b36;cursor:pointer;display:inline-flex;font:inherit;font-size:.86rem;font-weight:850;gap:6px;min-height:38px;padding:0 12px}.weather-empty>button:hover,.weather-refresh:hover{background:#d9f5eb}.weather-empty>button:disabled,.weather-refresh:disabled{cursor:wait;opacity:.66}.weather-reading{margin-top:18px}.weather-temperature{align-items:flex-end;display:flex;gap:12px}.weather-temperature strong{color:#f8d276;font-size:3.2rem;font-weight:850;line-height:.9}.weather-temperature span{color:#f6fff9;font-weight:750;padding-bottom:4px}.weather-details{grid-gap:8px;color:#f6fff9cc;display:grid;font-size:.86rem;gap:8px;margin-top:18px}.weather-details span{align-items:center;display:inline-flex;gap:6px}.weather-details svg{color:#98e7db}.weather-refresh{margin-top:18px}@media (max-width:1040px){.weather-trigger span{display:none}}@media (max-width:860px){.weather-panel{left:16px;position:fixed;right:16px;top:76px;width:auto}}.skills-section{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#041e2cb3;border-bottom:1px solid #c7f6eb26}.skills-list{grid-gap:12px;gap:12px;margin:0;max-width:1050px}.skills-list>div{grid-gap:28px;backdrop-filter:blur(16px) saturate(1.16);-webkit-backdrop-filter:blur(16px) saturate(1.16);background:#0d313f8f;border:1px solid #dbf8f133;border-radius:8px;box-shadow:0 18px 42px #000c1629,10px 12px 0 #45d7cb17,inset 0 1px 0 #ffffff1f;gap:28px;grid-template-columns:minmax(180px,.28fr) minmax(0,1fr);padding:24px 26px;transition:border-color .18s ease,box-shadow .22s ease,background-color .18s ease}.skills-list>div:hover{background:#113e4ca6;border-color:#aef3e570;box-shadow:0 24px 56px #000c1640,13px 15px 0 #eab24b21,-7px 9px 0 #45d7cb1a,inset 0 1px 0 #ffffff29}.skills-list dd,.skills-list dt{margin:0}.skills-list dt{color:#a8f0df;font-size:.95rem;font-weight:850}.skills-list dd{color:var(--ink);font-size:clamp(1rem,1.8vw,1.22rem);font-weight:650;gap:0 10px;line-height:1.7}.skills-list dd i{color:#6ce3cf;font-style:normal}.dark-theme .skills-section{background:#01131fc7}@media (max-width:620px){.skills-list>div{gap:9px;grid-template-columns:1fr;padding:20px}}.testimonials-section{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#051e2bb0;border-bottom:1px solid #c7f6eb26}.testimonials-grid{grid-gap:20px clamp(24px,4vw,48px);gap:20px clamp(24px,4vw,48px);grid-template-columns:repeat(2,minmax(0,1fr))}.testimonial-entry{align-content:start;backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);background:#0d313f94;border:1px solid #dbf8f133;border-radius:8px;box-shadow:0 20px 48px #000c162e,inset 0 1px 0 #ffffff21;display:grid;min-height:292px;overflow:hidden;padding:28px;position:relative;transition:border-color .18s ease,box-shadow .22s ease,background-color .18s ease}.testimonial-entry:nth-child(-n+2){border-top:1px solid #dbf8f133;padding-top:28px}.testimonial-entry:after{background:#5be0ce;box-shadow:0 9px 0 #ee7567,0 18px 0 #eab24b;content:"";height:1px;position:absolute;right:22px;top:21px;width:42px}.testimonial-entry:hover{background:#113e4cab;border-color:#aef3e575;box-shadow:0 25px 60px #000c1647,inset 0 1px 0 #ffffff29}.testimonial-entry figcaption{align-items:center;display:flex;gap:14px}.testimonial-entry figcaption img{border:1px solid #a8f0df66;flex:0 0 auto;height:54px;object-fit:cover;width:54px}.testimonial-entry h3,.testimonial-entry p{margin:0}.testimonial-entry h3{color:var(--ink);font-size:1.08rem;font-weight:850}.testimonial-entry h3 a{color:inherit;text-decoration:none}.testimonial-entry h3 a:hover{text-decoration:underline;text-underline-offset:3px}.testimonial-entry figcaption p{color:var(--ink-muted);font-size:.82rem;font-weight:650;line-height:1.45;margin-top:4px}.testimonial-entry figcaption .testimonial-context{color:#8ee8d6;font-weight:750;margin-top:5px}.testimonial-entry blockquote{color:var(--ink);font-size:1.03rem;font-weight:580;line-height:1.65;margin:22px 0 0}.testimonial-entry blockquote:before{color:#75e5d1;content:"“";font-size:2.1rem;font-weight:900;line-height:0;vertical-align:-.35em}.testimonial-entry button{background:#0000;border:0;color:#a8f0df;cursor:pointer;font:inherit;font-size:.88rem;font-weight:850;margin-top:18px;padding:0;width:-webkit-fit-content;width:fit-content}.testimonial-entry button:hover{color:#be514a}.testimonial-modal{display:grid;inset:0;padding:24px;place-items:center;position:fixed;z-index:100}.testimonial-modal-scrim{background:#040e14b8;inset:0;position:absolute}.testimonial-modal-content{background:#12303a;border:1px solid #e2f7ee3d;border-radius:8px;box-shadow:0 28px 80px #00000059;color:#edf8f2;max-height:min(760px,88vh);overflow:auto;padding:clamp(28px,5vw,48px);position:relative;width:min(680px,100%);z-index:1}.testimonial-modal-content>img{border-radius:50%;height:70px;object-fit:cover;width:70px}.testimonial-modal-content h2,.testimonial-modal-content p{margin:0}.testimonial-modal-content h2{color:#fff;font-size:1.65rem;margin-top:18px}.testimonial-modal-content .testimonial-modal-role{color:#aee7dc;font-weight:700;margin-top:6px}.testimonial-modal-content .testimonial-modal-context{color:#edf8f2a8;font-size:.82rem;margin-top:6px}.testimonial-modal-content>p:last-child{color:#edf8f2db;line-height:1.72;margin-top:22px}.testimonial-modal-close{background:#0000;border:1px solid #e2f7ee38;border-radius:50%;color:#edf8f2;cursor:pointer;display:grid;height:36px;place-items:center;position:absolute;right:16px;top:16px;width:36px}.testimonial-modal-close:hover{background:#d9f5eb;color:#12303a}.dark-theme .testimonials-section{background:#01121ec4}@media (max-width:820px){.testimonials-grid{grid-template-columns:1fr}.testimonial-entry:nth-child(2){border-top-color:#dbf8f133;padding-top:28px}}:root{--ink:#effff8;--ink-muted:#b7d2ca;--line:#d6faf033;--paper:#061a27;--teal:#63dbc9;--coral:#f17e70;--gold:#edbd57;--text-color:var(--ink);--background-color:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#061a27;background:var(--paper);color:#effff8;color:var(--text-color);font-family:Inter,Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}body.dark-theme{--ink:#f3fff9;--ink-muted:#aec8c1;--line:#e3f8f02e;--paper:#020d17;--text-color:#f3fff9;--background-color:#020d17}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #eab24b;outline-offset:3px}.portfolio-app{background:#041622;min-height:100svh;overflow:clip;position:relative}.portfolio-section{padding:clamp(74px,10vw,144px) 0;scroll-margin-top:88px}.section-wrap{width:min(1160px,calc(100% - 48px))}.section-title{color:#effff8;color:var(--ink);font-size:clamp(2.35rem,5vw,5.4rem);font-weight:900;letter-spacing:0;line-height:.94;margin:0 0 clamp(38px,5vw,64px);max-width:760px}.has-scroll-observer [data-animate=true]{transform:translate3d(0,28px,0);transition:transform .68s cubic-bezier(.2,.75,.25,1)}.has-scroll-observer [data-animate=true].animate-in{transform:translateZ(0)}@media (max-width:620px){.portfolio-section{padding:70px 0;scroll-margin-top:76px}.section-wrap{width:min(100% - 36px,1160px)}.section-title{font-size:clamp(2.1rem,12vw,3.45rem);margin-bottom:36px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}[data-animate=true]{opacity:1;transform:none}}:root{--page:#e9efec;--surface:#f7faf8;--surface-raised:#fff;--surface-translucent:#f7faf8e6;--text:#142220;--muted:#51625e;--border:#bdcbc6;--signal:#176f62;--signal-strong:#0c5148;--mineral:#a85f35;--flare:#8c5a12;--focus:#8c5a12;--shadow:#14222024;--ink:var(--text);--ink-muted:var(--muted);--paper:var(--page);--line:var(--border);--accent:var(--signal);--accent-strong:var(--signal-strong);--accent-soft:#176f621a;--content-width:1200px;--nav-height:72px;color-scheme:light}body.dark-theme{--page:#061116;--surface:#0b1b20;--surface-raised:#10262b;--surface-translucent:#0b1b20e8;--text:#f2f5ef;--muted:#aab8b3;--border:#2b3e40;--signal:#8fd3c5;--signal-strong:#b8e6db;--mineral:#bf7b4b;--flare:#e2b45f;--focus:#e2b45f;--shadow:#0000005c;--accent:var(--signal);--accent-strong:var(--signal-strong);--accent-soft:#8fd3c51c;color-scheme:dark}html{background:#e9efec;background:var(--page);scroll-padding-top:90px;scroll-padding-top:calc(var(--nav-height) + 18px)}body,body.dark-theme,body.light-theme{background:#e9efec;background:var(--page);color:#142220;color:var(--text);font-family:IBM Plex Sans,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font-family:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8c5a12;outline:3px solid var(--focus);outline-offset:4px}.portfolio-app{background:#0000;color:#142220;color:var(--text);overflow:visible}.portfolio-main,.portfolio-section{position:relative;z-index:1}.portfolio-section{background:#0000;border:0;color:#142220;color:var(--text);isolation:isolate;min-height:86svh;padding:clamp(104px,12vw,176px) 0;scroll-margin-top:0}.portfolio-section:before{content:"";inset:0;pointer-events:none;position:absolute;z-index:-1}.section-wrap{margin:0 auto;width:min(1200px,calc(100% - 64px));width:min(var(--content-width),calc(100% - 64px))}.destination-heading{display:grid;margin-bottom:clamp(56px,8vw,104px);max-width:900px}.destination-heading--split{align-items:end;gap:clamp(40px,7vw,96px);grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);max-width:none}.destination-label{align-items:center;color:#176f62;color:var(--signal);display:flex;font-size:.78rem;font-weight:650;gap:14px;letter-spacing:.045em;margin-bottom:22px}.destination-label span:first-child{font-feature-settings:"tnum";border-inline:1px solid currentColor;display:inline-grid;font-variant-numeric:tabular-nums;height:24px;place-items:center;width:36px}.section-title{text-wrap:balance;color:#142220;color:var(--text);font-family:Archivo,Arial Narrow,sans-serif;font-size:clamp(3rem,6.1vw,6rem);font-weight:680;letter-spacing:-.052em;line-height:.96;margin:0;max-width:930px}.section-lede{color:#51625e;color:var(--muted);font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.7;margin:0 0 8px;max-width:50ch}[data-animate=true]{opacity:1;transform:none}.has-scroll-observer [data-animate=true]{opacity:.001;transform:translate3d(0,22px,0);transition:opacity .6s ease-out,transform .75s cubic-bezier(.16,1,.3,1)}.has-scroll-observer [data-animate=true].animate-in{opacity:1;transform:none}.site-navigation{backdrop-filter:blur(16px) saturate(1.12);-webkit-backdrop-filter:blur(16px) saturate(1.12);background:color-mix(in srgb,#e9efec 89%,#0000);background:color-mix(in srgb,var(--page) 89%,#0000);border:0;border-bottom:1px solid color-mix(in srgb,#bdcbc6 78%,#0000);border-bottom:1px solid color-mix(in srgb,var(--border) 78%,#0000);box-shadow:none;color:#142220;color:var(--text);grid-template-columns:1fr auto 1fr;min-height:72px;min-height:var(--nav-height);padding:0 max(32px,calc(50vw - 600px));padding:0 max(32px,calc((100vw - var(--content-width))/2))}.site-navigation:after{display:none}.site-wordmark{font-family:Archivo,sans-serif;font-size:1rem;font-weight:680;letter-spacing:-.025em}.site-links{gap:22px}.resume-link,.site-actions>.weather-control>.weather-trigger,.site-actions>button,.site-links a{background:#0000;border-radius:0;color:#51625e;color:var(--muted);font-size:.78rem;font-weight:600;min-height:44px;padding:0;position:relative}.site-links a:after{background:#176f62;background:var(--signal);bottom:7px;content:"";height:1px;left:0;position:absolute;right:0;transform:scaleX(0);transform-origin:left;transition:transform .18s ease-out}.site-actions>.weather-control>.weather-trigger:hover,.site-actions>button:hover,.site-links a.is-active,.site-links a:hover{background:#0000;color:#142220;color:var(--text)}.site-links a.is-active:after,.site-links a:hover:after{transform:scaleX(1)}.site-actions{gap:16px}.site-actions>.weather-control>.weather-trigger,.site-actions>button{min-width:44px}.weather-trigger svg{color:#176f62;color:var(--signal)}.resume-link{border:1px solid #bdcbc6;border:1px solid var(--border);color:#142220;color:var(--text);gap:7px;padding:0 13px}.resume-link:hover{background:#0000;border-color:#176f62;border-color:var(--signal);color:#0c5148;color:var(--signal-strong)}.journey-progress{font-feature-settings:"tnum";align-items:center;bottom:-25px;color:#51625e;color:var(--muted);display:flex;font-size:.68rem;font-variant-numeric:tabular-nums;gap:12px;position:absolute;right:max(32px,calc(50vw - 600px));right:max(32px,calc((100vw - var(--content-width))/2))}.journey-progress-track{background:#bdcbc6;background:var(--border);display:block;height:1px;overflow:hidden;width:96px}.journey-progress-track>span{background:#176f62;background:var(--signal);display:block;height:100%;transition:width .5s cubic-bezier(.16,1,.3,1);width:var(--journey-progress)}.hero-section{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(90deg,color-mix(in srgb,#e9efec 72%,#0000) 0 50%,#0000 76%);background:linear-gradient(90deg,color-mix(in srgb,var(--page) 72%,#0000) 0 50%,#0000 76%);color:#142220;color:var(--text);gap:clamp(54px,8vw,120px);grid-template-columns:minmax(0,1fr) minmax(280px,370px);min-height:100svh;padding:152px max(32px,calc(50vw - 600px)) 96px;padding:calc(var(--nav-height) + 80px) max(32px,calc((100vw - var(--content-width))/2)) 96px}.hero-section:after,.hero-section:before{display:none}.hero-content{max-width:780px}.hero-content .destination-label{margin-bottom:28px}.hero-content h1{text-wrap:balance;color:#142220;color:var(--text);font-family:Archivo,Arial Narrow,sans-serif;font-size:clamp(4rem,7.8vw,7.65rem);font-weight:690;letter-spacing:-.07em;line-height:.88;max-width:760px}.hero-role-line{color:#142220;color:var(--text);font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:560;letter-spacing:-.018em;line-height:1.45;margin:32px 0 0;max-width:660px;text-transform:none}.hero-intro{color:#51625e;color:var(--muted);font-size:clamp(1rem,1.3vw,1.12rem);font-weight:400;line-height:1.7;margin:16px 0 0;max-width:64ch}.hero-actions{gap:10px;margin-top:34px}.primary-action,.secondary-action{border-radius:3px;font-size:.9rem;font-weight:620;gap:7px;min-height:46px;padding:0 17px;transition:color .18s ease-out,border-color .18s ease-out,background-color .18s ease-out,transform .18s ease-out}.primary-action{background:#0c5148;background:var(--signal-strong);color:#f5fbf8}.primary-action:hover{background:#176f62;background:var(--signal);color:#fff;transform:translateY(-2px)}.secondary-action{background:color-mix(in srgb,#f7faf8 50%,#0000);background:color-mix(in srgb,var(--surface) 50%,#0000);border-color:#bdcbc6;border-color:var(--border);color:#142220;color:var(--text)}.secondary-action:hover{background:#f7faf8;background:var(--surface);border-color:#176f62;border-color:var(--signal);color:#0c5148;color:var(--signal-strong);transform:translateY(-2px)}.hero-socials{gap:8px;margin-top:24px}.hero-socials a{background:color-mix(in srgb,#f7faf8 48%,#0000);background:color-mix(in srgb,var(--surface) 48%,#0000);border-color:#bdcbc6;border-color:var(--border);border-radius:3px;color:#51625e;color:var(--muted);height:44px;width:44px}.hero-socials a:hover{background:#f7faf8;background:var(--surface);border-color:#176f62;border-color:var(--signal);color:#0c5148;color:var(--signal-strong);transform:none}.hero-visual-stage{animation:none;aspect-ratio:4/5;min-width:0;width:100%}.hero-portrait{-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7faf8;background:var(--surface);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:2px;box-shadow:18px 18px 0 color-mix(in srgb,#a85f35 20%,#0000);box-shadow:18px 18px 0 color-mix(in srgb,var(--mineral) 20%,#0000);inset:0;overflow:hidden;padding:0;transform:none}.hero-portrait:after,.hero-portrait:before{display:none}.hero-portrait img{filter:none;height:calc(100% - 66px);object-position:center;width:100%}.hero-portrait figcaption{align-content:center;background:#f7faf8;background:var(--surface);color:#51625e;color:var(--muted);display:grid;font-size:.75rem;height:66px;line-height:1.5;padding:0 16px}.hero-portrait figcaption span:first-child{color:#142220;color:var(--text);font-weight:620}.hero-scroll-cue{align-items:center;bottom:30px;color:#51625e;color:var(--muted);display:inline-flex;font-size:.76rem;font-weight:600;gap:10px;left:max(32px,calc(50vw - 600px));left:max(32px,calc((100vw - var(--content-width))/2));min-height:44px;position:absolute}.hero-scroll-cue:hover{color:#0c5148;color:var(--signal-strong)}.experience-section:before{background:linear-gradient(90deg,color-mix(in srgb,#f7faf8 94%,#0000) 0 58%,color-mix(in srgb,#f7faf8 14%,#0000) 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--surface) 94%,#0000) 0 58%,color-mix(in srgb,var(--surface) 14%,#0000) 100%)}.experience-section .destination-heading{max-width:860px}.experience-list{display:grid;margin:0;max-width:980px;padding:0}.experience-list:before{background:#bdcbc6;background:var(--border);bottom:0;display:block;left:30px;top:0;width:1px}.experience-entry{border:0;gap:28px;grid-template-columns:62px minmax(0,1fr);padding:0 0 24px}.experience-entry:nth-child(2n){margin-left:0}.experience-index{background:#f7faf8;background:var(--surface);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:0;box-shadow:0 0 0 8px color-mix(in srgb,#f7faf8 92%,#0000);box-shadow:0 0 0 8px color-mix(in srgb,var(--surface) 92%,#0000);color:#51625e;color:var(--muted);font-size:.72rem;font-weight:620;height:34px;padding:0;place-items:center;width:62px}.experience-entry.is-current .experience-index{border-color:#176f62;border-color:var(--signal);color:#0c5148;color:var(--signal-strong)}.experience-entry article{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:0;border-bottom:1px solid #bdcbc6;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none;grid-template-columns:minmax(0,1fr) auto;min-height:0;overflow:visible;padding:0 0 42px}.experience-entry article:after,.experience-entry article:before{display:none}.experience-entry article:hover{background:#0000;border-color:#176f62;border-color:var(--signal);box-shadow:none}.experience-heading h3{color:#142220;color:var(--text);font-family:Archivo,sans-serif;font-size:clamp(1.55rem,2.7vw,2.4rem);font-weight:650;letter-spacing:-.035em}.experience-heading p{color:#176f62;color:var(--signal);font-size:.9rem;font-weight:560;margin:8px 0 0}.experience-period{color:#51625e;color:var(--muted);font-size:.8rem;font-weight:520}.experience-summary{color:#51625e;color:var(--muted);font-size:1.03rem;line-height:1.7;margin-top:20px;max-width:68ch}.research-section:before{background:linear-gradient(90deg,color-mix(in srgb,#e9efec 84%,#0000) 0 46%,color-mix(in srgb,#e9efec 10%,#0000) 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--page) 84%,#0000) 0 46%,color-mix(in srgb,var(--page) 10%,#0000) 100%)}.research-columns{gap:clamp(56px,9vw,132px);grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr)}.research-column h3{align-items:center;color:#142220;color:var(--text);display:flex;font-family:Archivo,sans-serif;font-size:1.05rem;font-weight:620;gap:12px;letter-spacing:-.015em;margin:0 0 24px;text-transform:none}.research-column h3 span{color:#176f62;color:var(--signal);font-size:.75rem}.research-list{gap:0}.research-list li{border:0;border-top:1px solid #bdcbc6;border-top:1px solid var(--border)}.research-list li:last-child{border-bottom:1px solid #bdcbc6;border-bottom:1px solid var(--border)}.publication-list li:first-child{border-top:2px solid #176f62;border-top:2px solid var(--signal)}.research-list article{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:0;border-radius:0;box-shadow:none;overflow:visible;padding:30px 0 34px}.research-list article:after{display:none}.research-list article:hover{background:#0000;border:0;box-shadow:none}.research-meta{color:#51625e;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.04em;margin-bottom:15px}.research-list h4{color:#142220;color:var(--text);font-family:Archivo,sans-serif;font-size:clamp(1.25rem,2vw,1.7rem);font-weight:620;letter-spacing:-.025em;line-height:1.2;max-width:42ch}.research-list p{color:#51625e;color:var(--muted);line-height:1.68;max-width:64ch}.research-list .research-organization{color:#176f62;color:var(--signal);font-weight:560}.inline-link{color:#0c5148;color:var(--signal-strong);font-size:.86rem;font-weight:620;min-height:44px}.inline-link:hover{color:#a85f35;color:var(--mineral)}.projects-section{min-height:100svh}.projects-section:before{background:linear-gradient(90deg,color-mix(in srgb,#f7faf8 92%,#0000) 0 56%,color-mix(in srgb,#f7faf8 10%,#0000) 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--surface) 92%,#0000) 0 56%,color-mix(in srgb,var(--surface) 10%,#0000) 100%)}.projects-gallery{grid-gap:clamp(96px,14vw,180px);display:grid;gap:clamp(96px,14vw,180px);grid-template-columns:1fr}.project-item,.project-item:first-child{grid-gap:clamp(42px,7vw,100px);align-items:start;-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:0;border-radius:0;box-shadow:none;display:grid;gap:clamp(42px,7vw,100px);grid-template-columns:minmax(300px,.95fr) minmax(0,1.05fr);min-height:0;overflow:visible;padding:0}.project-item--reverse .project-screenshot,.project-item--reverse .project-visual{grid-column:2;grid-row:1}.project-item--reverse .project-copy{grid-column:1;grid-row:1}.project-item:before{display:none}.project-item:hover{background:#0000;border:0;box-shadow:none}.project-item:first-child .project-screenshot,.project-screenshot,.project-visual{aspect-ratio:16/10;background:#fff;background:var(--surface-raised);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:2px;box-shadow:18px 18px 0 color-mix(in srgb,var(--project-accent) 16%,#0000);overflow:hidden;width:100%}.project-screenshot img{height:100%;object-fit:cover;object-position:center;transition:none;width:100%}.project-item:hover .project-screenshot img{transform:none}.project-visual{height:auto}.project-copy{padding-top:4px}.project-meta{color:#176f62;color:var(--signal);font-size:.75rem;font-weight:620;letter-spacing:.04em;margin-bottom:22px}.project-copy h3{color:#142220;color:var(--text);font-family:Archivo,sans-serif;font-size:clamp(2.5rem,5.6vw,5rem);font-weight:660;letter-spacing:-.055em;line-height:.94}.project-subtitle{color:#176f62;color:var(--signal);font-size:1rem;font-weight:580;margin-top:12px!important}.project-summary{color:#51625e;color:var(--muted);font-size:1.05rem;line-height:1.7;margin-top:24px!important;max-width:58ch}.project-decisions{display:grid;margin:30px 0 0}.project-decisions>div{grid-gap:18px;border-top:1px solid #bdcbc6;border-top:1px solid var(--border);display:grid;gap:18px;grid-template-columns:86px minmax(0,1fr);padding:15px 0}.project-decisions>div:last-child{border-bottom:1px solid #bdcbc6;border-bottom:1px solid var(--border)}.project-decisions dt{color:#176f62;color:var(--signal);font-size:.75rem;font-weight:640}.project-decisions dd{color:#142220;color:var(--text);font-size:.92rem;line-height:1.6;margin:0}.project-footnote{display:flex;gap:18px;justify-content:space-between;margin-top:20px}.project-metric,.project-technologies{background:#0000;border:0;border-radius:0;color:#51625e;color:var(--muted);font-size:.8rem;font-weight:520;line-height:1.55;margin:0!important;padding:0}.project-metric{color:#a85f35;color:var(--mineral);flex:0 0 auto;font-weight:640}.project-actions{gap:20px;margin-top:26px}.dark-theme .project-actions a,.project-actions a{color:#0c5148;color:var(--signal-strong);font-size:.88rem;font-weight:620;min-height:44px}.project-actions a:hover{color:#a85f35;color:var(--mineral)}.section-toggle{background:#f7faf8;background:var(--surface);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:3px;color:#142220;color:var(--text);margin-top:72px;min-height:46px;padding:0 16px}.section-toggle:hover{background:#fff;background:var(--surface-raised);border-color:#176f62;border-color:var(--signal);color:#0c5148;color:var(--signal-strong)}.skills-section:before{background:linear-gradient(90deg,color-mix(in srgb,#e9efec 89%,#0000) 0 48%,color-mix(in srgb,#e9efec 8%,#0000) 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--page) 89%,#0000) 0 48%,color-mix(in srgb,var(--page) 8%,#0000) 100%)}.skills-list{grid-gap:1px;background:#bdcbc6;background:var(--border);border:1px solid #bdcbc6;border:1px solid var(--border);display:grid;gap:1px;grid-template-columns:repeat(12,minmax(0,1fr));max-width:none}.skills-list>div{grid-gap:22px;align-content:start;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7faf8e6;background:var(--surface-translucent);border:0;border-radius:0;box-shadow:none;display:grid;gap:22px;grid-template-columns:1fr;min-height:230px;padding:28px;position:relative}.skills-list>div:first-child,.skills-list>div:nth-child(2){grid-column:span 6}.skills-list>div:nth-child(n+3){grid-column:span 4}.skills-list>div:hover{background:#fff;background:var(--surface-raised);border:0;box-shadow:none}.skill-coordinate{font-feature-settings:"tnum";color:#51625e;color:var(--muted);font-size:.7rem;font-variant-numeric:tabular-nums}.skills-list dt{color:#142220;color:var(--text);font-family:Archivo,sans-serif;font-size:1.35rem;font-weight:620;letter-spacing:-.025em}.skills-list dd{align-content:flex-start;color:#51625e;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.96rem;font-weight:450;gap:9px 0;line-height:1.55}.skills-list dd i{color:#176f62;color:var(--signal);margin:0 9px}.testimonials-section:before{background:linear-gradient(90deg,color-mix(in srgb,#f7faf8 94%,#0000) 0 58%,color-mix(in srgb,#f7faf8 10%,#0000) 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--surface) 94%,#0000) 0 58%,color-mix(in srgb,var(--surface) 10%,#0000) 100%)}.testimonials-grid{grid-gap:1px;background:#bdcbc6;background:var(--border);border:1px solid #bdcbc6;border:1px solid var(--border);display:grid;gap:1px;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr)}.testimonial-entry{align-content:space-between;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7faf8e6;background:var(--surface-translucent);border:0;border-radius:0;box-shadow:none;gap:24px;grid-template-columns:1fr;margin:0;min-height:0;overflow:visible;padding:32px}.testimonial-entry--primary{grid-row:span 2;min-height:520px;padding:clamp(38px,6vw,72px)}.testimonial-entry:after{display:none}.testimonial-entry:hover{background:#fff;background:var(--surface-raised);border:0;box-shadow:none}.testimonial-entry figcaption img{border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:50%;height:50px;width:50px}.testimonial-entry h3{color:#142220;color:var(--text);font-family:Archivo,sans-serif;font-size:1rem;font-weight:620}.testimonial-entry figcaption p{color:#51625e;color:var(--muted);font-size:.8rem}.testimonial-entry figcaption .testimonial-context{color:#176f62;color:var(--signal);font-size:.72rem}.testimonial-entry blockquote{color:#142220;color:var(--text);font-family:Archivo,sans-serif;font-size:clamp(1.15rem,2vw,1.55rem);font-weight:520;letter-spacing:-.02em;line-height:1.45;margin:0;max-width:42ch}.testimonial-entry--primary blockquote{font-size:clamp(2rem,4vw,4rem);line-height:1.08}.testimonial-entry blockquote:before{color:#a85f35;color:var(--mineral);font-size:1.3em}.testimonial-entry button{color:#0c5148;color:var(--signal-strong);font-size:.84rem;font-weight:620;justify-self:start;margin:0;min-height:44px}.testimonial-entry button:hover{color:#a85f35;color:var(--mineral)}.testimonial-modal-scrim{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00070ab8}.testimonial-modal-content{background:#fff;background:var(--surface-raised);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:3px;box-shadow:0 32px 84px #14222024;box-shadow:0 32px 84px var(--shadow);color:#142220;color:var(--text)}.testimonial-modal-content h2{color:#142220;color:var(--text);font-family:Archivo,sans-serif}.testimonial-modal-content .testimonial-modal-role{color:#176f62;color:var(--signal)}.testimonial-modal-content .testimonial-modal-context,.testimonial-modal-content>p:last-child{color:#51625e;color:var(--muted)}.testimonial-modal-close{border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:0;color:#142220;color:var(--text);height:44px;width:44px}.contact-section{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;color:#142220;color:var(--text);min-height:100svh}.contact-section:before{background:linear-gradient(90deg,color-mix(in srgb,#e9efec 88%,#0000) 0 52%,color-mix(in srgb,#e9efec 8%,#0000) 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--page) 88%,#0000) 0 52%,color-mix(in srgb,var(--page) 8%,#0000) 100%)}.contact-wrap{align-items:start;gap:clamp(64px,10vw,148px);grid-template-columns:minmax(0,.9fr) minmax(380px,.75fr)}.contact-section .section-title{color:#142220;color:var(--text)}.contact-intro{color:#51625e;color:var(--muted);font-size:1.08rem;line-height:1.75;margin-top:28px;max-width:52ch}.contact-email{color:#0c5148;color:var(--signal-strong);display:inline-block;font-size:clamp(1rem,2vw,1.28rem);font-weight:620;margin-top:28px;min-height:44px}.contact-coordinate{color:#51625e;color:var(--muted);font-size:.76rem;margin:20px 0 0}.contact-form{-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7faf8e6;background:var(--surface-translucent);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:2px;box-shadow:20px 20px 0 color-mix(in srgb,#176f62 12%,#0000);box-shadow:20px 20px 0 color-mix(in srgb,var(--signal) 12%,#0000);gap:20px;padding:clamp(28px,4vw,46px)}.contact-form .MuiOutlinedInput-root{background:#fff;background:var(--surface-raised);border-radius:2px;color:#142220;color:var(--text);min-height:52px}.contact-form .MuiFormHelperText-root,.contact-form .MuiInputLabel-root{color:#51625e;color:var(--muted)}.contact-form .MuiOutlinedInput-notchedOutline{border-color:#bdcbc6;border-color:var(--border)}.contact-form .MuiButton-root{background:#0c5148;background:var(--signal-strong);border-radius:2px;box-shadow:none;color:#fff;font-family:inherit;font-weight:620;min-height:48px;text-transform:none}.contact-form .MuiButton-root:hover{background:#176f62;background:var(--signal);box-shadow:none}.contact-privacy,.site-footer{color:#51625e;color:var(--muted)}.site-footer{background:#f7faf8;background:var(--surface);border-top:1px solid #bdcbc6;border-top:1px solid var(--border);justify-content:space-between;padding:32px max(32px,calc(50vw - 600px));padding:32px max(32px,calc((100vw - var(--content-width))/2));position:relative;z-index:1}.back-to-top-button{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;background:var(--surface-raised);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:2px;box-shadow:none;color:#142220;color:var(--text);height:46px;width:46px}.back-to-top-button:hover{background:#0c5148;background:var(--signal-strong);color:#fff;transform:none}.weather-panel{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;background:var(--surface-raised);border:1px solid #bdcbc6;border:1px solid var(--border);border-radius:2px;box-shadow:0 24px 64px #14222024;box-shadow:0 24px 64px var(--shadow);color:#142220;color:var(--text)}.weather-panel button{min-height:44px;min-width:44px}.weather-details svg,.weather-panel-heading span{color:#176f62;color:var(--signal)}.weather-panel-heading strong,.weather-temperature span{color:#142220;color:var(--text)}.weather-details,.weather-empty p{color:#51625e;color:var(--muted)}.weather-empty>button,.weather-refresh{background:#0c5148;background:var(--signal-strong);color:#fff}@media (max-width:1099px){:root{--nav-height:68px}.site-navigation{grid-template-columns:auto 1fr auto;padding:0 24px}.site-links{gap:12px}.site-links a{font-size:.73rem}.journey-progress{right:24px}.hero-section{gap:52px;grid-template-columns:minmax(0,1fr) 300px;padding-inline:32px}.hero-content h1{font-size:clamp(4rem,8vw,6.2rem)}.project-item,.project-item:first-child{gap:46px}}@media (max-width:860px){.site-navigation{padding:0 20px}.site-links{background:#fff;background:var(--surface-raised);border-color:#bdcbc6;border-color:var(--border)}.site-links a{color:#142220;color:var(--text);min-height:48px}.journey-progress{display:none}.contact-wrap,.destination-heading--split,.research-columns{grid-template-columns:1fr}.destination-heading--split{gap:28px}.hero-section{gap:60px;grid-template-columns:1fr;min-height:auto;padding:142px 32px 100px;padding:calc(var(--nav-height) + 70px) 32px 100px}.hero-content{max-width:720px}.hero-visual-stage{justify-self:end;margin:0;width:min(360px,70vw)}.hero-scroll-cue{display:none}.research-columns{gap:72px}.project-item,.project-item--reverse,.project-item:first-child{gap:44px;grid-template-columns:1fr}.project-item--reverse .project-screenshot,.project-item--reverse .project-visual{grid-column:1;grid-row:1}.project-item--reverse .project-copy{grid-column:1;grid-row:2}.skills-list>div:nth-child(n){grid-column:span 6}.skills-list>div:last-child{grid-column:1/-1}.testimonials-grid{grid-template-columns:1fr}.testimonial-entry--primary{grid-row:auto;min-height:440px}}@media (max-width:620px){:root{--nav-height:64px}.portfolio-section{min-height:auto;padding:96px 0}.section-wrap{width:min(100% - 40px,1200px);width:min(100% - 40px,var(--content-width))}.destination-heading{margin-bottom:54px}.destination-label{margin-bottom:18px}.section-title{font-size:clamp(2.55rem,12vw,4rem);line-height:.98}.hero-section{background:linear-gradient(180deg,color-mix(in srgb,#e9efec 62%,#0000) 0 58%,color-mix(in srgb,#e9efec 90%,#0000) 100%);background:linear-gradient(180deg,color-mix(in srgb,var(--page) 62%,#0000) 0 58%,color-mix(in srgb,var(--page) 90%,#0000) 100%);min-height:100svh;padding:128px 20px 72px;padding:calc(var(--nav-height) + 56px) 20px 72px}.hero-content h1{font-size:clamp(3.25rem,15vw,4.8rem);line-height:.91}.hero-role-line{font-size:1.12rem;margin-top:26px}.hero-intro{font-size:1rem}.hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.hero-actions .primary-action{grid-column:1/-1}.hero-visual-stage{justify-self:start;width:min(300px,88vw)}.contact-section:before,.experience-section:before,.projects-section:before,.research-section:before,.skills-section:before,.testimonials-section:before{background:color-mix(in srgb,#e9efec 82%,#0000);background:color-mix(in srgb,var(--page) 82%,#0000)}.experience-entry,.experience-entry:nth-child(2n){gap:16px;grid-template-columns:42px minmax(0,1fr);margin-left:0}.experience-list:before{left:21px}.experience-index{width:42px}.experience-entry article{grid-template-columns:1fr;padding-bottom:32px}.experience-period{grid-column:1;grid-row:auto;margin-top:10px;text-align:left;white-space:normal}.skills-list,.testimonials-grid{grid-template-columns:1fr}.skills-list>div:nth-child(n){grid-column:1;min-height:190px;padding:24px}.project-item,.project-item:first-child{gap:34px}.project-copy h3{font-size:clamp(2.45rem,13vw,3.6rem)}.project-decisions>div{gap:6px;grid-template-columns:1fr}.project-footnote{display:grid}.testimonial-entry,.testimonial-entry--primary{min-height:0;padding:26px}.testimonial-entry--primary blockquote{font-size:clamp(1.7rem,8vw,2.45rem)}.contact-form{box-shadow:10px 10px 0 color-mix(in srgb,#176f62 12%,#0000);box-shadow:10px 10px 0 color-mix(in srgb,var(--signal) 12%,#0000);padding:24px}.site-footer{flex-wrap:wrap;padding-inline:20px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}.has-scroll-observer [data-animate=true]{opacity:1;transform:none}}body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}canvas,img,svg{max-width:100%}
/*# sourceMappingURL=main.04652ec8.css.map*/