:root{--bg:#10181b;--panel:#182225;--line:#303e3e;--muted:#98a9ad;--lime:#cde97d;--text:#ecefe8}body{background:#10181b;isolation:isolate}body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%2395aca9' filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E");background-size:180px 180px}header{position:sticky;top:18px;width:calc(100% - 80px);max-width:1180px;height:72px;margin:18px auto 24px;padding:0 18px;display:grid;grid-template-columns:1fr auto 1fr;gap:28px;background:#f2f5f2;color:#1b2420;border:1px solid #ffffffb3;border-radius:13px;box-shadow:0 14px 35px #0003;z-index:30}header .brand{font-size:14px;letter-spacing:-.035em;gap:12px;line-height:1.3}header .monogram{font-size:37px;color:#19231d}header .monogram span{color:#668536}header .brand-copy{font-weight:650}header .brand-copy small{display:block;font-size:12px;font-weight:400;letter-spacing:.03em;color:#6a766e;margin-top:2px}header nav{gap:24px;font-size:13px;justify-content:center}header nav a:hover{color:#527124}header .nav-contact{justify-self:end;background:#1a211e;color:#f3f5ef;padding:10px 18px;border:1px solid #566057;border-radius:9px;font-size:13px;box-shadow:inset 0 2px 3px #ffffff30;white-space:nowrap}header .nav-contact span{margin-left:15px;color:#d0eaa1}header .nav-contact:hover{background:#303f30}.hero-replit{background-color:transparent;background-image:linear-gradient(#98a9a809 1px,transparent 1px),linear-gradient(90deg,#98a9a809 1px,transparent 1px);background-size:72px 72px}.hero-replit .hero-top{padding-top:22px}.hero-replit .portrait{overflow:hidden}.portrait-baseline{position:absolute;z-index:4;bottom:17px;left:20px;right:20px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e3eddc55;padding-top:10px;color:#f2f5ea;font-size:11px;text-shadow:0 1px 4px #0009}.hero-replit .portrait-field{background:#1d302e}.work-section,.work-sticky,.capabilities,.cap-sticky{background:transparent}.about,.experience,.contact{background:transparent}.toolkit-section{background:#152023}.toolkit-animated .toolkit-sticky{top:104px;height:calc(100svh - 104px)}html{scroll-padding-top:110px}.section,.work-section,.toolkit-section{scroll-margin-top:110px}.closing-type{color:#28383a}
@media(max-width:1050px){header{gap:18px;width:calc(100% - 40px)}header nav{gap:17px}header .brand-copy{font-size:12px}header .brand-copy small{font-size:12px}header .nav-contact{padding:10px 13px}}
@media(max-width:800px){header{grid-template-columns:1fr auto;top:12px;margin-top:12px;width:calc(100% - 32px);height:66px;padding:0 16px}header>.nav-contact{display:none}header .menu{display:block;justify-self:end;border:1px solid #c7d1c6;border-radius:7px;padding:8px 12px;background:transparent;color:#253122;font-size:13px}header nav{display:none;position:absolute;top:76px;left:0;right:0;padding:22px;background:#f2f5f2;border:1px solid #dfe5dc;border-radius:12px;box-shadow:0 16px 30px #0003}header nav.open{display:flex;flex-direction:column;gap:19px;align-items:flex-start}header .brand-copy{font-size:14px}.toolkit-animated .toolkit-sticky{top:90px;height:calc(100svh - 90px)}html{scroll-padding-top:96px}.section,.work-section,.toolkit-section,.capabilities{scroll-margin-top:96px}}
@media(prefers-reduced-motion:reduce){header,.cap-card{transition:none}}
/* Section refinements from the supplied portfolio references. */
.hero-replit,.work-section{border-top:0;border-bottom:0}.work-section{height:auto;margin-top:0}.work-section .projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;overflow:visible;transform:none;align-items:stretch}.work-section .project{width:auto;min-width:0;max-width:none;margin:0;padding:0;transform:none;align-self:stretch}.work-section .project[hidden]{display:none}.work-section .project-offset{margin-top:0;transform:none}.project-open-card{display:block;width:100%;height:100%;padding:26px 26px 30px;text-align:left;background:#1d2528;border:1px solid #2c383b;border-radius:22px;box-shadow:10px 10px 28px #0002;color:var(--text);cursor:pointer;transition:transform .25s,border-color .25s}.project-open-card:hover{transform:translateY(-6px);border-color:#617757}.work-section .project-image{display:block;aspect-ratio:4/3;border-radius:11px;overflow:hidden;background:#252b2e;position:relative}.work-section .project-image img{width:100%;height:100%;object-fit:cover;transform:none;filter:none}.work-section .project-image:after{display:none}.work-section .project-info{display:block;padding:21px 0 0;border:0}.project-category{display:block;text-transform:uppercase;color:var(--lime);font-size:12px;font-weight:600;letter-spacing:.045em;line-height:1.5;margin-bottom:12px}.project-title{font-family:'Space Grotesk',sans-serif;font-size:25px;letter-spacing:-.025em;line-height:1.25;display:block}.project-modal-open{overflow:hidden}#project-dialog{width:min(1180px,92vw);max-width:none;max-height:88svh;overflow:auto;padding:65px 48px 45px;background:#1d2528;border:1px solid #3b484b;border-radius:18px;color:var(--text)}#project-dialog::backdrop{background:#080d10de;backdrop-filter:blur(7px)}.project-close{position:absolute;right:18px;top:15px;width:38px;height:38px;border:0;border-radius:50%;background:#111a1d;color:var(--lime);font-size:27px}.project-dialog-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;align-items:start}.project-gallery>img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;border-radius:10px;background:#11191c}.gallery-controls{display:flex;align-items:center;justify-content:space-between;margin-top:17px}.gallery-controls button,.reviews-controls button{width:42px;height:42px;border:1px solid #475654;border-radius:50%;color:var(--text);background:transparent;font-size:21px}.gallery-controls span{font-size:14px;color:var(--muted)}.project-description h2{font-size:38px;margin:0 0 22px}.project-description>p{font-size:18px;line-height:1.7;color:#a8b7b9}.project-description dl{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0}.project-description dt{font-size:14px;color:var(--text);margin-bottom:7px}.project-description dd{margin:0;color:var(--muted);font-size:16px}.project-visit{display:inline-block;padding:15px 20px;border:1px solid #566a43;color:var(--lime);font-size:14px}
.cap-card,.cap-card:hover,.cap-card[aria-pressed=true]{background:transparent;color:var(--text);box-shadow:none;border-color:#425154}.cap-card:hover{background:#ffffff04;border-color:#a2bd65}.cap-card-description{color:#a7b6b9}.cap-icon{color:#cde97d}.cap-number{color:#8e9fa0}.cap-tags>span{background:transparent;color:#c2ceca;border-color:#4a5958}.cap-sticky{padding-bottom:65px}
.toolkit-animated .tool-signature{box-shadow:none!important;position:relative}.tool-signature:after{content:'';position:absolute;inset:auto 0 0;height:var(--transition-wipe,0%);background:#f4e8df;clip-path:polygon(0 0,100% 7%,100% 100%,0 100%);pointer-events:none}.toolkit-animated .tool-signature{border:1px solid #566680}.toolkit-animated .tool-slot:last-child{z-index:25}
.experience{display:grid;grid-template-columns:.9fr 1.4fr;gap:80px;align-items:start;padding-top:90px;padding-bottom:100px}.experience .section-heading{margin:0;position:sticky;top:125px}.experience h2{font-size:clamp(36px,4vw,60px);line-height:1.12}.background-grid{display:flex;flex-direction:column;gap:0;border:0;counter-reset:foundation}.background-grid article,.background-grid article:first-child,.background-grid article:last-child{counter-increment:foundation;position:relative;padding:0 0 35px 60px;margin-bottom:35px;border:0;border-bottom:1px solid #3c4e4d}.background-grid article:before{content:'0' counter(foundation);position:absolute;left:0;top:0;color:var(--lime);font-family:'Space Grotesk',sans-serif;font-size:18px}.background-grid .eyebrow{font-size:12px;margin:0 0 16px;color:#8ea19e}.background-grid h3{font-size:27px;font-weight:500;letter-spacing:-.035em;margin:0 0 13px}.background-grid p:not(.eyebrow){font-size:16px;margin:0 0 20px;line-height:1.6}.background-grid .mono{font-size:13px;color:#cbd8c7}
.quote-section{background:transparent;color:var(--text);padding:90px 0}.quote-section .eyebrow{color:var(--lime)}.reviews-heading h2{font-size:clamp(36px,4vw,58px);font-weight:400;line-height:1.13;margin:0 0 50px}.reviews-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:0 0 12px}.review-card{flex:0 0 calc((100% - 48px)/3);min-width:0;scroll-snap-align:start;border:1px solid #3a4748;border-radius:4px;display:flex;flex-direction:column;background:#10171966}.review-card blockquote{font-size:20px;line-height:1.6;font-weight:400;margin:0;padding:30px;min-height:320px;flex:1}.review-by{display:flex;align-items:center;gap:12px;border-top:1px solid #3a4748;padding:22px}.review-by img,.review-initial{width:47px;height:47px;border-radius:50%;object-fit:cover;flex-shrink:0}.review-initial{display:grid;place-items:center;background:#263b32;color:var(--lime);font-size:22px}.review-by h3{font-family:'DM Sans',sans-serif;font-size:16px;margin:0 0 5px;font-weight:600;line-height:1.3}.review-by p{font-size:12px;color:var(--muted);margin:0;line-height:1.5}.review-source{font-size:12px;margin-left:auto;color:var(--lime);writing-mode:vertical-rl}.reviews-controls{display:flex;gap:12px;margin-top:22px}.closing-type{font-family:'Space Grotesk','DM Sans',sans-serif;font-weight:400;font-size:21vw;line-height:1.1;letter-spacing:-.075em;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px #9aaea8;padding:0 2vw 10px;white-space:nowrap}.closing-type>span{display:none}
@media(max-width:1000px){.work-section .projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.review-card{flex-basis:calc((100% - 24px)/2)}.experience{gap:35px}.project-dialog-grid{gap:25px}}
@media(max-width:650px){.work-section .projects{grid-template-columns:1fr;gap:24px}.project-open-card{padding:20px}.project-title{font-size:24px}.project-dialog-grid{grid-template-columns:1fr}#project-dialog{padding:65px 20px 30px;width:94vw}.project-description h2{font-size:30px}.project-description>p{font-size:16px}.experience{display:block;padding-top:65px;padding-bottom:45px}.experience .section-heading{position:static;margin-bottom:40px}.background-grid article,.background-grid article:first-child,.background-grid article:last-child{padding-left:44px}.background-grid h3{font-size:25px}.review-card{flex-basis:88%;}.review-card blockquote{font-size:18px;min-height:280px;padding:25px}.review-by{padding:20px}.quote-section{padding:55px 0}.reviews-heading h2{margin-bottom:32px}.closing-type{-webkit-text-stroke:.8px #9aaea8}}
@media(prefers-reduced-motion:reduce){.project-open-card{transition:none}.project-open-card:hover{transform:none}.tool-signature:after{display:none}}
/* Glass navigation and consistent rounded controls. */
header{background:rgba(25,36,39,.48);border:1px solid #cfede32b;box-shadow:0 12px 35px #0002,inset 0 1px 0 #ffffff0d;backdrop-filter:blur(20px) saturate(130%);-webkit-backdrop-filter:blur(20px) saturate(130%);color:#edf3e9}header .monogram{color:#edf3e9}header .monogram span{color:#cde97d}header .brand-copy small{color:#a5b9b7}header nav a:hover{color:#cde97d}header .nav-contact{background:#cde97d;color:#172216;border:1px solid #cde97d;border-radius:30px;box-shadow:none;padding:11px 20px}header .nav-contact span{color:inherit}header .nav-contact:hover{background:#e0f5ab;color:#172216}.hero-actions a,.project-visit,form .button{border-radius:30px;padding:15px 24px;min-height:48px;font-family:'DM Sans',sans-serif;font-size:14px;letter-spacing:0;font-weight:600;transition:background .2s,transform .2s,border-color .2s}.hero-actions .hero-work,.project-visit,form .button{background:#cde97d;color:#192517;border:1px solid #cde97d}.hero-actions .hero-talk{border-color:#798e85;background:transparent}.hero-actions a:hover,.project-visit:hover,form .button:hover{transform:translateY(-2px);border-color:#e0f5ab}.project-visit:hover{background:#e0f5ab}.gallery-controls button,.reviews-controls button,.project-close{background:#253538;border-color:#4f6864;color:#d3ecab;transition:background .2s}.gallery-controls button:hover,.reviews-controls button:hover,.project-close:hover{background:#cde97d;color:#192517}.filters button{border:1px solid #425851;border-radius:30px!important;padding:10px 18px;margin-right:7px}.filters button.active{background:#cde97d;color:#1b2915}
/* Hide internal rails without removing touch, wheel or keyboard scrolling. */
#project-dialog,.reviews-track{scrollbar-width:none;-ms-overflow-style:none}#project-dialog::-webkit-scrollbar,.reviews-track::-webkit-scrollbar{display:none;width:0;height:0}#project-dialog{padding:52px 36px 30px;overscroll-behavior:contain}.project-gallery>img{max-height:calc(88svh - 150px);object-fit:contain}.gallery-controls{margin-top:12px}.reviews-track{padding-bottom:0}
/* The page scrollbar remains visible and uses the portfolio palette. */
html{scrollbar-width:thin;scrollbar-color:#a9c769 #132023}html::-webkit-scrollbar{width:9px}html::-webkit-scrollbar-track{background:#132023}html::-webkit-scrollbar-thumb{background:#a9c769;border:2px solid #132023;border-radius:12px}html::-webkit-scrollbar-thumb:hover{background:#d2ed96}.site-back-top{position:fixed;right:27px;bottom:27px;z-index:25;display:grid;place-items:center;width:52px;height:52px;border:1px solid #b9d777;border-radius:50%;background:#172528d9;backdrop-filter:blur(12px);color:#d2ec9a;font-size:27px;box-shadow:0 8px 24px #0004;transition:background .2s,transform .2s}.site-back-top[hidden]{display:none}.site-back-top:hover{background:#cde97d;color:#172517;transform:translateY(-3px)}.closing-type{font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:-.06em;font-size:20vw;line-height:1.15;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:2.3px #c8dbcd}
@media(max-width:800px){header nav{background:#182629ed;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-color:#4b615955;color:#edf3e9}header .menu{color:#edf3e9;border-color:#758c7366}}
@media(max-width:650px){#project-dialog{padding:55px 20px 28px}.project-gallery>img{max-height:none}.site-back-top{right:18px;bottom:18px;width:46px;height:46px;font-size:24px}.closing-type{-webkit-text-stroke:1.5px #c8dbcd}.hero-actions a{padding:13px 19px}}
@media(prefers-reduced-motion:reduce){.site-back-top,.hero-actions a,.project-visit,form .button{transition:none}}
/* Theme-coloured transition and an uncropped hero portrait. */
.tool-signature:after{background:var(--bg)}
.hero-replit .portrait img{height:94%;width:100%;left:0;bottom:0;object-fit:contain;object-position:center bottom}
/* Credentials layout follows the supplied two-panel reference. */
.experience.foundation-reference{display:block;padding-top:95px;padding-bottom:95px}.foundation-heading{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:60px}.foundation-heading .eyebrow{font-size:12px;letter-spacing:.12em;margin-bottom:23px}.foundation-heading h2{font-family:'DM Sans',sans-serif;font-size:clamp(44px,6.1vw,86px);font-weight:600;line-height:1.02;letter-spacing:-.06em;margin:0}.foundation-heading>p{font-size:16px;line-height:1.6;color:var(--muted);max-width:285px;margin:0 0 5px}.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.credential-panel{border:1px solid #354448;background:transparent}.credential-panel>h3{font-family:'Space Grotesk',sans-serif;font-size:12px;line-height:1.5;font-weight:500;letter-spacing:.11em;color:var(--lime);padding:20px 24px;margin:0;border-bottom:1px solid #354448}.credential-panel article{padding:25px 24px;border-bottom:1px solid #354448}.credential-panel article:last-child{border-bottom:0}.credential-panel h4{font-family:'DM Sans',sans-serif;font-size:18px;line-height:1.4;font-weight:500;letter-spacing:-.02em;margin:0 0 9px}.credential-panel p{font-size:14px;line-height:1.6;color:#9aadb1;margin:0}.foundation-experience{display:grid;grid-template-columns:.7fr 1fr 1.2fr;gap:25px;align-items:center;margin-top:26px;padding:25px 24px;border:1px solid #354448}.foundation-experience .eyebrow{font-size:12px;margin:0}.foundation-experience h3{font-size:19px;font-weight:500;margin:0}.foundation-experience p{font-size:15px;margin:0;color:var(--muted)}.foundation-experience p>span{display:block;font-size:13px;margin-top:5px}
@media(max-width:650px){.hero-replit .portrait img{height:93%;width:100%;left:0}.experience.foundation-reference{padding-top:65px;padding-bottom:65px}.foundation-heading{display:block;margin-bottom:32px}.foundation-heading h2{font-size:clamp(40px,10vw,60px)}.foundation-heading>p{margin-top:22px;max-width:330px}.credential-grid{grid-template-columns:1fr;gap:20px}.credential-panel article{padding:22px 20px}.credential-panel>h3{padding:18px 20px}.foundation-experience{grid-template-columns:1fr;gap:13px;padding:22px 20px}}
/* Lime signature fill and footer outline. */
.tool-signature:after{background:#cde97d}
.closing-type{-webkit-text-stroke-color:#cde97d}
/* Keep the mobile heading, animated deck and controls in separate rows. */
@media(max-width:650px){
 .toolkit-animated .toolkit-sticky{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:14px 0 16px}
 .toolkit-animated .toolkit-heading{position:relative;top:auto;left:auto;right:auto}
 .toolkit-animated .toolkit-heading h2{font-size:40px;line-height:1.1}
 .toolkit-animated .toolkit-heading .eyebrow{font-size:9px;margin-bottom:6px}
 .toolkit-animated .toolkit-subtitles{height:27px;margin-top:8px}
 .toolkit-animated .toolkit-subtitles h3{font-size:18px}
 .toolkit-animated .toolkit-stage{position:relative;inset:auto;height:100%;min-height:0;width:100%;container-type:size;transform-origin:50% 45%}
 .toolkit-animated .tool-slot,.toolkit-animated .toolkit-bridge{top:45%;width:min(36vw,46cqh,180px)}
 .toolkit-animated .tool-card{padding:10px;border-radius:14px}
 .toolkit-animated .tool-card-top{font-size:9px;gap:5px}
 .toolkit-animated .tool-mark{font-size:clamp(20px,27cqw,42px);min-height:20px}
 .toolkit-animated .tool-name{font-size:clamp(12px,17cqw,23px);margin-bottom:3px}
 .toolkit-animated .tool-name-long{font-size:clamp(11px,13cqw,20px)}
 .toolkit-animated .tool-signature{gap:12px}
 .toolkit-animated .signature-logo{font-size:clamp(32px,48cqw,70px)}
 .toolkit-animated .signature-label{font-size:9px;padding:6px 9px}
 .toolkit-animated .toolkit-footer{position:relative;bottom:auto;left:auto;right:auto;gap:8px;align-self:end}
 .toolkit-scroll-hint{font-size:9px}
 .toolkit-navigation{gap:16px}
 .toolkit-navigation button{font-size:12px;min-height:40px}
 .toolkit-progress{display:none}
 .portfolio-toolbar{display:block;border:0;padding:0;margin-bottom:25px}
 .portfolio-toolbar .filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;width:100%;padding:5px;border:1px solid #425851;border-radius:16px;background:#182225}
 .portfolio-toolbar .filters button{min-width:0;min-height:44px;margin:0;padding:9px 5px;border:0;border-radius:11px!important;font-size:12px;line-height:1.3;white-space:nowrap}
 .portfolio-toolbar .filters button:after{display:none}
 .portfolio-toolbar .filters sup{display:none}
 .portfolio-toolbar>#work-count{display:block;margin-top:10px;text-align:right}
}
/* Readable mobile cards with a stable width, independent of the stage height. */
@media(max-width:650px){
 .toolkit-animated .tool-slot,.toolkit-animated .toolkit-bridge{width:clamp(138px,36vw,180px);top:46%}
 .toolkit-animated .tool-card{padding:13px;aspect-ratio:3/4}
 .toolkit-animated .tool-card-top{font-size:10px;line-height:1.25;flex-shrink:0}
 .toolkit-animated .tool-name{font-size:19px;line-height:1.12;overflow-wrap:normal;word-break:normal;flex-shrink:0;margin-bottom:4px}
 .toolkit-animated .tool-name-long{font-size:17px}
 .toolkit-animated .tool-mark{font-size:34px;min-height:24px}
}
@media(max-width:650px) and (max-height:600px){
 .toolkit-animated .toolkit-sticky{padding:5px 0 8px;gap:6px}
 .toolkit-animated .toolkit-heading h2{font-size:34px}
 .toolkit-animated .toolkit-heading .eyebrow{font-size:8px;margin-bottom:3px}
 .toolkit-animated .toolkit-subtitles{height:23px;margin-top:3px}
 .toolkit-animated .toolkit-subtitles h3{font-size:16px}
 .toolkit-animated .tool-slot,.toolkit-animated .toolkit-bridge{width:clamp(128px,31vw,145px);top:43%}
 .toolkit-animated .toolkit-footer{gap:2px}
 .toolkit-animated .toolkit-navigation button{min-height:32px;padding:5px 0}
 .toolkit-animated .tool-name{font-size:18px}
 .toolkit-animated .tool-name-long{font-size:16px}
}
.cv-skills{margin-top:60px}.cv-skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.cv-skills article{padding:26px;border:1px solid var(--line)}.cv-skills h3{font-size:22px;font-weight:500;line-height:1.25;margin:0 0 14px}.cv-skills p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:1.7;margin:0}.career-history{margin-top:70px}.career-history>h3{font-size:clamp(32px,4vw,52px);line-height:1.1;letter-spacing:-.04em;font-weight:500;margin:0 0 35px}.career-row{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:30px 0;border-top:1px solid var(--line)}.career-meta p{color:var(--lime);font-size:14px;margin:0 0 7px}.career-meta span{font-size:13px;color:var(--muted)}.career-company{color:var(--lime);font-size:14px;margin:0 0 8px}.career-row h4{font-size:24px;line-height:1.3;font-weight:500;letter-spacing:-.02em;margin:0 0 15px}.career-row h4+p{color:var(--muted);font-size:16px;line-height:1.75;margin:0}.contact .cv-email{display:block;font-size:clamp(14px,2vw,20px);overflow-wrap:anywhere;margin-top:12px}.about-languages{color:var(--lime)}
@media(max-width:650px){.cv-skills-grid{grid-template-columns:1fr;gap:14px}.cv-skills article{padding:23px}.career-row{grid-template-columns:1fr;gap:16px;padding:25px 0}.career-history{margin-top:50px}.career-row h4{font-size:23px}.review-card blockquote{min-height:0}.review-by{flex-wrap:wrap}.review-by>div{flex:1;min-width:110px}}
/* Project images are directly selectable as well as available through arrows. */
.project-gallery-hint{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font-size:12px;color:var(--lime)}.gallery-thumbnails{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.gallery-thumbnails button{padding:3px;border:1px solid var(--line);border-radius:8px;background:transparent;opacity:.65;transition:opacity .2s,border-color .2s}.gallery-thumbnails button[aria-pressed=true],.gallery-thumbnails button:hover{opacity:1;border-color:var(--lime)}.gallery-thumbnails img{display:block;width:80px;height:60px;object-fit:contain;border-radius:4px;background:#11191c}
/* Menu movement also responds to keyboard focus. */
header nav a{position:relative;display:inline-block;padding-block:7px;transition:color .25s ease,transform .25s ease}
header nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
header nav a:hover,header nav a:focus-visible{color:var(--lime);transform:translateY(-2px)}
header nav a:hover:after,header nav a:focus-visible:after{transform:scaleX(1);transform-origin:left}
header .nav-contact{transition:background .25s,transform .25s,box-shadow .25s}header .nav-contact span{display:inline-block;transition:transform .25s}header .nav-contact:hover span{transform:translate(3px,-3px)}
@media(prefers-reduced-motion:reduce){header nav a,header nav a:after,header .nav-contact,header .nav-contact span,.gallery-thumbnails button{transition:none}header nav a:hover,header nav a:focus-visible,header .nav-contact:hover span{transform:none}}
.portfolio-load{text-align:center;margin-top:35px}.portfolio-load p{font-size:13px;color:var(--muted);margin:0 0 16px}.portfolio-load button{border:1px solid var(--lime);border-radius:30px;background:transparent;color:var(--lime);padding:14px 25px;min-height:48px;transition:background .2s,color .2s}.portfolio-load button span{margin-left:20px}.portfolio-load button:hover{background:var(--lime);color:var(--bg)}.portfolio-load button[hidden]{display:none}@media(prefers-reduced-motion:reduce){.portfolio-load button{transition:none}}
/* The image determines its height, so there are no dark side gutters. */
.gallery-viewport{position:relative;width:100%;min-width:0}
#project-dialog-image{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:initial;border:0;border-radius:10px;background:transparent}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;display:grid;place-items:center;border:1px solid #cde97d66;border-radius:50%;background:#162225ed;color:#cde97d;font-size:23px;box-shadow:0 4px 14px #0003;transition:background .2s,color .2s}
.gallery-prev{left:10px}.gallery-next{right:10px}.gallery-arrow:hover{background:#cde97d;color:#162225}.gallery-arrow[hidden]{display:none}.gallery-controls{justify-content:center;margin-top:10px}.project-description strong{font-weight:700;color:var(--text)}.project-description dl{gap:20px}.project-description dt{font-weight:700;color:var(--lime)}.project-description dd{overflow-wrap:anywhere}.gallery-thumbnails img{background:transparent}
@media(max-width:650px){.gallery-arrow{width:40px;height:40px;font-size:21px}.gallery-prev{left:7px}.gallery-next{right:7px}.project-description dl{grid-template-columns:1fr;gap:16px}}
@media(prefers-reduced-motion:reduce){.gallery-arrow{transition:none}}
/* Minimal glass gallery navigation. */
.gallery-arrow{width:44px;height:44px;border:1px solid #ffffff38;border-radius:50%;background:rgba(16,24,27,.62);color:#f0f3eb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 16px #0002,inset 0 1px 0 #ffffff12;padding:0;transition:background .2s,border-color .2s,color .2s}
.gallery-prev{left:14px}.gallery-next{right:14px}.gallery-arrow svg{display:block;transition:translate .2s}.gallery-arrow:hover,.gallery-arrow:focus-visible{background:rgba(16,24,27,.86);border-color:#cde97d;color:#cde97d}.gallery-prev:hover svg{translate:-2px 0}.gallery-next:hover svg{translate:2px 0}.gallery-arrow:focus-visible{outline:2px solid #cde97d;outline-offset:3px}
@media(max-width:650px){.gallery-arrow{width:40px;height:40px;border-radius:50%}.gallery-prev{left:10px}.gallery-next{right:10px}}
@media(prefers-reduced-motion:reduce){.gallery-arrow,.gallery-arrow svg{transition:none}.gallery-arrow:hover svg{translate:none}}
/* Liquid logo fill, cutout and curtain reveal. */
html.site-loading{overflow:hidden}.site-preloader{position:fixed;inset:0;z-index:1000;overflow:hidden;background:transparent;pointer-events:auto}.site-preloader[hidden]{display:none}.preloader-canvas{display:block;width:100%;height:100%}
