/* Shared editorial system. Legacy styles remain available, but are not loaded. */
:root{color-scheme:dark;--canvas:#101719;--surface:#182225;--ink:#edf0e9;--muted:#b0bebd;--accent:#aac8c3;--accent-deep:#4c6c76;--line:#435457;--gutter:clamp(24px,6vw,96px);--container:1400px;--sans:"Segoe UI",Arial,sans-serif;--serif:var(--sans);--space:clamp(72px,9vw,144px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px;background:var(--canvas)}body{margin:0;color:var(--ink);background:var(--canvas);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--canvas)}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-weight:500;line-height:1.12}h1,h2,h3{letter-spacing:-.045em}h1 em,h2 em{font-family:var(--serif);font-weight:400;color:var(--accent);letter-spacing:-.055em}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;height:auto;display:block}ul,ol{padding:0;margin:0;list-style:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.container{width:calc(100% - var(--gutter)*2);max-width:var(--container);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:12px;left:20px;z-index:100;padding:10px 20px;background:var(--ink);color:var(--canvas);transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{position:sticky;top:0;z-index:20;background:#101719f5;border-bottom:1px solid #43545766}.header-inner{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}.brand img{width:42px}.brand span{font-size:10px;font-weight:650;line-height:1.28;letter-spacing:.14em}nav{display:flex;gap:34px;align-items:center}nav a{font-size:15px;padding:12px 0;position:relative;color:var(--muted)}nav a:after{content:"";position:absolute;bottom:5px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover,nav a[aria-current]{color:var(--ink)}nav a:hover:after,nav a[aria-current]:after{transform:scaleX(1)}.header-note{font-size:12px;color:var(--muted)}.menu-toggle{display:none}
.intro{padding-top:34px;padding-bottom:80px}.intro-top{display:flex;justify-content:space-between;gap:30px;color:var(--muted);font-size:13px}.intro-top span{font-family:var(--serif);font-style:italic;font-size:15px}.intro h1{font-size:clamp(54px,6.2vw,100px);line-height:1.08;margin:60px 0 46px;letter-spacing:-.065em}.intro h1 em{letter-spacing:-.06em}.intro-bottom{display:flex;justify-content:space-between;gap:60px;align-items:flex-end}.intro-bottom>div{max-width:660px}.intro-copy{font-size:clamp(18px,1.45vw,22px);line-height:1.6;max-width:660px;color:#d3ddda}.actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;min-height:48px;justify-content:center;align-items:center;padding:12px 25px;background:var(--accent);border:1px solid var(--accent);border-radius:2px;font-size:15px;font-weight:600;color:#101719;transition:background .2s,color .2s}.button:hover{background:var(--ink);border-color:var(--ink)}.text-link{display:inline-block;font-size:15px;border-bottom:1px solid var(--accent-deep);padding-bottom:4px;transition:border-color .2s}.text-link:hover{border-color:var(--ink)}.intro-aside{font-size:14px;color:var(--muted);line-height:1.65;min-width:230px;padding-left:24px;border-left:1px solid var(--line)}.intro-aside span{color:var(--ink)}
.work-section{padding-top:35px;padding-bottom:var(--space)}.section-top{border-top:1px solid var(--line);padding-top:27px;display:flex;justify-content:space-between;gap:40px;align-items:center;margin-bottom:48px}.section-top h2{font-size:clamp(34px,3.1vw,46px)}.section-top p{font-size:14px;color:var(--muted)}.project{display:grid;grid-template-columns:.8fr 1.7fr;gap:7%;align-items:center;margin-bottom:88px}.project-copy{padding:20px 0}.project-index{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:22px}.project h3{font-size:clamp(30px,3.2vw,48px);margin-bottom:20px}.project-copy>p{color:var(--muted);font-size:17px;margin-bottom:23px;max-width:370px}.project-tags{display:flex;flex-wrap:wrap;gap:8px 14px;margin:24px 0 28px;font-size:12px;color:#d0ddda}.project-tags li{border-bottom:1px solid var(--line);padding-bottom:4px}.project-disclosure{display:block;font-size:12px;color:var(--muted);line-height:1.6;margin-top:20px;max-width:310px}.project-stage{min-width:0;overflow:hidden}.stage-restaurant{background:#d3d9cc;padding:24px 24px 0;color:#283b36}.image-topline{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:26px}.image-topline span:first-child{font-weight:650}.project-stage img{width:100%;box-shadow:0 12px 30px #0002;border-radius:3px 3px 0 0}.project-stage figcaption{font-size:12px;line-height:1.6;padding:16px 0 18px}.project-aquatics{grid-template-columns:1.7fr .8fr}.stage-aquatics{background:#243f48;padding:24px 24px 0;color:#e7eeeb}.stage-aquatics .image-topline{color:#c6dedd}.project-queue{display:grid;grid-template-columns:.8fr 1.7fr;gap:7%;border-top:1px solid var(--line);padding-top:25px}.project-queue h3{font-size:20px;letter-spacing:-.02em}.project-queue p{font-size:13px;color:var(--muted);margin-top:8px}.project-queue li{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #43545777;padding:0 0 18px;margin-bottom:18px}.project-queue li:last-child{margin-bottom:0}.project-queue li>span{font-size:17px}.project-queue small{font-size:12px;color:var(--muted);padding-top:3px;white-space:nowrap}
.about-section{background:#e5e8df;color:#1a2b2d;padding-block:var(--space);--accent:#41655f;--muted:#445b5b;--line:#9aa9a2}.section-label{text-transform:uppercase;letter-spacing:.12em;font-size:11px;display:block;margin-bottom:25px;color:var(--accent)}.about-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:start}.about-intro h2{font-size:clamp(38px,3.5vw,54px);line-height:1.12}.about-copy>p{margin-bottom:20px;color:#354c4c;font-size:17px}.about-copy .pull-line{font-family:var(--serif);font-style:italic;font-size:28px;line-height:1.3;color:#243e3e;margin:30px 0 0;letter-spacing:-.025em}.experience-preview{margin-top:80px}.subsection-heading{display:flex;justify-content:space-between;gap:25px;padding-bottom:22px;border-bottom:1px solid var(--line)}.subsection-heading h3{font-size:22px;letter-spacing:-.025em}.subsection-heading>p{font-size:13px;color:var(--muted)}.experience-list>li{display:grid;grid-template-columns:.75fr 1.1fr 1.4fr;gap:5%;padding-block:28px;border-bottom:1px solid #9aa9a288;align-items:start}.experience-date{font-size:13px;padding-top:3px;color:#445b5b}.experience-list h4{font-size:21px;line-height:1.3;letter-spacing:-.025em}.employer{font-size:14px;display:block;margin-top:7px;color:#445b5b}.experience-list p{font-size:15px;line-height:1.7;color:#354c4c}.skills-preview{margin-top:60px}.skills-columns{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:6%;padding-top:28px}.skills-columns h4{font-size:17px;margin-bottom:16px}.skills-columns p{font-size:15px;line-height:1.9;color:#354c4c}
.approach-section{padding-block:var(--space);display:grid;grid-template-columns:1fr 1fr;gap:10%}.approach-heading h2{font-size:clamp(38px,3.5vw,55px);line-height:1.13;margin-bottom:25px}.approach-heading>p{color:var(--muted);font-size:18px;max-width:435px}.approach-list li{display:grid;grid-template-columns:34px 1fr;gap:20px;padding:24px 0;border-top:1px solid var(--line)}.approach-list li:first-child{padding-top:0;border:0}.approach-list li>span{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:19px}.approach-list h3{font-size:23px;letter-spacing:-.025em;margin-bottom:12px}.approach-list p{font-size:16px;color:var(--muted);line-height:1.75}
.contact-section{background:var(--surface);padding-block:var(--space)}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}.contact-copy h2{font-size:clamp(40px,4.3vw,64px);line-height:1.1;margin-bottom:30px}.contact-copy>p{max-width:440px;font-size:17px;color:var(--muted);margin-bottom:18px}.email-link{font-family:var(--serif);font-size:clamp(21px,2.4vw,34px);letter-spacing:-.025em;border-bottom:1px solid var(--accent-deep);padding-bottom:5px;display:inline-block;margin-top:15px}.contact-copy .contact-footnote{font-size:13px;margin-top:20px}form{min-width:0}form h3{font-size:25px;margin-bottom:28px;letter-spacing:-.03em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:14px;margin-bottom:20px}label span{font-size:11px;color:var(--muted)}input,textarea{display:block;width:100%;margin-top:9px;border:1px solid #657777;background:#101719;color:var(--ink);border-radius:2px;padding:12px 14px;font-size:16px;line-height:1.5}input::placeholder,textarea::placeholder{color:#9caead}textarea{resize:vertical;min-height:136px}.form-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.cf-turnstile{margin:18px 0;min-height:65px}form .button{width:100%}form .button:disabled{opacity:.65;cursor:wait}.form-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:13px}form a{text-decoration:underline}#form-result{margin-top:20px;border-left:2px solid var(--accent);padding:12px 16px;background:#101719;font-size:15px}.local-form-note{font-size:12px;color:var(--muted);border-left:1px solid var(--accent-deep);padding-left:12px;margin:0 0 22px}.site-footer{padding-block:34px;border-top:1px solid #43545766}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:25px}.site-footer .brand img{width:34px}.site-footer .brand span{font-size:8px}.site-footer p,.site-footer .footer-inner>span{font-size:12px;color:var(--muted)}.site-footer .text-link{font-size:12px}
.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .65s,transform .65s}.motion-ready .reveal.visible{opacity:1;transform:none}
@media(min-width:1600px){.intro h1{font-size:103px}}
@media(max-width:1100px){.header-note{display:none}.project{gap:5%;grid-template-columns:1fr 1.65fr}.project-aquatics{grid-template-columns:1.65fr 1fr}.project-copy>p{font-size:16px}.project h3{font-size:34px}.project-index{font-size:10px}.about-intro,.approach-section,.contact-layout{gap:7%}.experience-list>li{grid-template-columns:.75fr 1.1fr 1.2fr;gap:4%}.intro-aside{min-width:200px;font-size:12px}.project-queue small{white-space:normal}}
@media(max-width:800px){:root{--gutter:28px;--space:80px}.header-inner{min-height:82px}.intro{padding-top:24px;padding-bottom:60px}.intro-top span{display:none}.intro h1{font-size:clamp(48px,7vw,64px);margin-top:44px}.intro-bottom{gap:30px}.intro-aside{display:none}.intro-copy{font-size:19px}.section-top{align-items:start}.section-top p{max-width:220px;font-size:13px}.project{grid-template-columns:1fr;gap:28px;margin-bottom:60px}.project-copy{padding:0}.project h3 br{display:none}.project-copy>p{max-width:560px;margin-bottom:16px}.project-index{margin-bottom:14px}.project-tags{margin:18px 0}.project-disclosure{margin-top:12px;max-width:none}.project-restaurant .project-stage{grid-row:1}.project-aquatics .project-stage{grid-row:1}.project-queue{grid-template-columns:1fr;gap:26px}.about-intro,.approach-section,.contact-layout{grid-template-columns:1fr;gap:38px}.about-intro h2,.approach-heading h2{font-size:46px}.experience-preview{margin-top:55px}.experience-list>li{grid-template-columns:.8fr 1.6fr}.experience-list p{grid-column:2}.skills-columns{grid-template-columns:1fr 1fr;gap:30px}.skills-columns>div:last-child{grid-column:1/-1}.approach-heading>p{max-width:600px}.contact-copy h2{font-size:52px}.contact-copy>p{max-width:600px}.email-link{font-size:32px}.footer-inner{flex-wrap:wrap}.site-footer p{order:3;width:100%}}
@media(max-width:540px){:root{--gutter:22px;--space:64px}.header-inner{min-height:76px;gap:20px}.brand img{width:34px}.brand span{font-size:8px}.brand{gap:9px}.menu-toggle{display:block;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:2px;padding:8px 16px;font-size:14px;min-height:44px}nav{display:none;position:absolute;top:76px;left:0;right:0;padding:18px var(--gutter) 26px;background:var(--canvas);border-bottom:1px solid var(--line);gap:4px}nav.open{display:flex;flex-direction:column;align-items:stretch}nav a{font-size:18px;padding:11px 0}nav a:after{right:auto;width:28px;bottom:7px}.intro-top{font-size:11px}.intro h1{font-size:clamp(43px,9.8vw,55px);line-height:1.1;margin:38px 0 30px;letter-spacing:-.06em}.intro h1 br{display:none}.intro h1 em{display:block;margin-top:12px;max-width:350px}.intro-copy{font-size:17px;line-height:1.7}.actions{gap:20px;margin-top:25px}.button,.text-link{font-size:14px}.button{padding:11px 20px}.intro{padding-bottom:50px}.work-section{padding-top:15px}.section-top{display:block;padding-top:22px;margin-bottom:32px}.section-top h2{font-size:34px}.section-top p{max-width:none;margin-top:15px;font-size:14px}.section-top p br{display:none}.stage-restaurant,.stage-aquatics{padding:14px 14px 0}.image-topline{font-size:8px;margin-bottom:15px;gap:12px}.project-stage figcaption{font-size:10px;padding:12px 0}.project h3{font-size:36px}.project-copy>p{font-size:16px}.project-index{font-size:9px}.project-tags{font-size:11px}.project-disclosure{font-size:11px}.project-queue li{display:block;padding-bottom:15px}.project-queue li>span{font-size:17px}.project-queue small{display:block;margin-top:4px}.about-intro h2,.approach-heading h2{font-size:37px}.section-label{margin-bottom:18px;font-size:10px}.about-copy>p{font-size:16px}.about-copy .pull-line{font-size:25px}.subsection-heading{display:block;padding-bottom:18px}.subsection-heading>p{margin-top:9px}.experience-list>li{grid-template-columns:1fr;gap:12px;padding-block:24px}.experience-list p{grid-column:auto}.experience-list h4{font-size:22px}.experience-date{font-size:12px}.skills-columns{grid-template-columns:1fr;gap:28px}.skills-columns>div:last-child{grid-column:auto}.skills-columns p{font-size:15px}.approach-heading>p{font-size:17px}.approach-list li{gap:12px;grid-template-columns:26px 1fr}.approach-list h3{font-size:22px}.approach-list p{font-size:15px}.contact-copy h2{font-size:43px}.contact-copy>p{font-size:16px}.email-link{font-size:clamp(22px,6.5vw,30px)}.form-row{grid-template-columns:1fr;gap:0}.contact-layout{gap:35px}form h3{font-size:25px}.footer-inner{gap:20px}.site-footer .footer-inner>span{margin-left:auto;font-size:11px}.site-footer p{font-size:11px;width:auto;max-width:220px}.site-footer .text-link{order:4;margin-left:auto}.cf-turnstile{max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.motion-ready .reveal{opacity:1;transform:none}}

.project-links{display:flex;flex-wrap:wrap;gap:14px 20px}

/* Portfolio overview and reusable case-study foundation. */
.work-intro,.case-intro{padding-top:40px;padding-bottom:60px}.work-intro>.section-label,.case-intro>.section-label{margin-top:55px}.work-intro h1,.case-intro h1{font-size:clamp(48px,5.8vw,88px);line-height:1.06;max-width:1050px}.page-lead{max-width:740px;font-size:clamp(18px,1.65vw,23px);line-height:1.6;color:var(--muted);margin-top:30px}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:7%;padding-bottom:var(--space)}.work-preview{min-width:0}.work-preview:nth-child(2){padding-top:110px}.work-image{display:block;padding:24px 24px 0;overflow:hidden}.work-image img{width:100%;aspect-ratio:1.5;object-fit:cover;object-position:top;transition:transform .35s}.work-image:hover img{transform:translateY(-5px)}.work-image:focus-visible{outline-offset:5px}.work-preview-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-top:27px}.work-preview h2{font-size:clamp(29px,2.8vw,41px)}.work-preview .project-index{margin-bottom:12px}.work-preview-heading>.text-link{flex-shrink:0}.work-preview>p{color:var(--muted);font-size:17px;margin-top:20px;max-width:520px}.work-preview .project-tags{margin-bottom:0}.upcoming-work{display:grid;grid-template-columns:1fr 1fr;gap:7%;padding-top:30px;padding-bottom:var(--space);border-top:1px solid var(--line)}.upcoming-work h2{font-size:44px;margin-bottom:25px}.upcoming-work>div>p{color:var(--muted);max-width:400px}.upcoming-work article{border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:30px}.upcoming-work article>span{font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.upcoming-work h3{font-size:27px;margin-top:15px}.upcoming-work article p{color:var(--muted);font-size:16px;margin-top:14px}.upcoming-work small{display:block;color:var(--muted);font-size:12px;margin-top:15px}.portfolio-invitation{background:var(--surface);padding-block:70px}.portfolio-invitation>.container{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.portfolio-invitation h2{font-size:clamp(35px,3.5vw,52px)}.portfolio-invitation p{color:var(--muted);margin-bottom:25px;max-width:430px}.portfolio-invitation .text-link{margin-right:24px;margin-bottom:12px}.case-intro{max-width:1100px}.case-scope{font-size:13px;color:var(--accent);margin-top:25px}.case-meta{display:grid;grid-template-columns:.8fr 1fr 2fr;gap:35px;margin:40px 0 25px;padding-top:25px;border-top:1px solid var(--line)}.case-meta dt{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.case-meta dd{margin:0;font-size:16px;line-height:1.6}.case-actions{display:flex;flex-wrap:wrap;gap:20px}.case-hero{padding:32px 40px 0}.case-hero img{width:100%;max-height:820px;object-fit:contain;object-position:top}.case-hero figcaption{font-size:13px;padding:20px 0}.case-disclosure{font-size:13px;color:var(--muted);padding:20px 0 50px;max-width:820px}.case-body{display:grid;grid-template-columns:.7fr 2fr;gap:10%;align-items:start;padding-bottom:70px}.case-contents{position:sticky;top:135px}.case-contents>p{font-size:13px;color:var(--accent);margin-bottom:18px}.case-contents nav{display:flex;flex-direction:column;align-items:start;gap:4px}.case-contents nav a{font-size:13px;padding:6px 0}.case-contents nav a:after{display:none}.case-section{display:grid;grid-template-columns:1fr 1.5fr;gap:7%;padding:35px 0;border-top:1px solid var(--line);scroll-margin-top:25px}.case-section h2{font-size:28px;line-height:1.2}.case-section .section-label{font-size:10px;margin-bottom:16px}.case-section p{color:var(--muted);font-size:17px}.case-section .pending-copy{font-size:15px;border-left:1px solid var(--line);padding-left:18px}.case-focus{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:12px;color:var(--accent);margin-top:20px}.case-gallery h2{font-size:30px;margin-bottom:25px}.case-gallery figure{margin-bottom:35px}.case-gallery figcaption{font-size:13px;color:var(--muted);margin-top:12px}.next-project{padding:40px 0 75px;border-top:1px solid var(--line)}.next-project>a:first-of-type{font-size:clamp(28px,3.3vw,48px);line-height:1.2;letter-spacing:-.04em;display:block;max-width:900px;margin-bottom:24px}.next-project>a:first-of-type:hover{color:var(--accent)}
@media(max-width:1100px){.work-preview-heading{display:block}.work-preview-heading>.text-link{margin-top:18px}.case-body{grid-template-columns:.65fr 2fr;gap:6%}.case-section{grid-template-columns:1fr;gap:22px}}
@media(max-width:800px){.work-intro,.case-intro{padding-bottom:40px}.work-grid{gap:40px}.work-image{padding:16px 16px 0}.work-image .image-topline{font-size:9px;margin-bottom:18px}.work-preview>p{font-size:16px}.work-preview:nth-child(2){padding-top:60px}.case-meta{grid-template-columns:1fr 1fr}.case-meta>div:last-child{grid-column:1/-1}.case-hero{padding:24px 24px 0}.case-body{grid-template-columns:1fr;gap:25px}.case-contents{position:static;padding-bottom:20px}.case-contents nav{flex-direction:row;flex-wrap:wrap;gap:5px 20px}.case-section{grid-template-columns:1fr 1.4fr;gap:6%}.upcoming-work{gap:40px}.upcoming-work h2{font-size:36px}}
@media(max-width:540px){.work-intro,.case-intro{padding-top:28px}.work-intro>.section-label,.case-intro>.section-label{margin-top:38px}.work-intro h1,.case-intro h1{font-size:45px}.page-lead{font-size:18px;margin-top:24px}.work-grid{grid-template-columns:1fr;gap:46px}.work-preview:nth-child(2){padding-top:0}.work-preview h2{font-size:32px}.work-preview .project-index{font-size:10px}.work-preview-heading{margin-top:22px}.work-preview .project-tags{font-size:12px}.upcoming-work{grid-template-columns:1fr;gap:35px}.upcoming-work article:last-child{margin-bottom:0}.portfolio-invitation>.container{grid-template-columns:1fr;gap:28px}.portfolio-invitation{padding-block:50px}.case-meta{gap:25px;margin-top:30px}.case-meta dd{font-size:15px}.case-hero{padding:14px 14px 0}.case-hero figcaption{font-size:11px;padding:14px 0}.case-section{grid-template-columns:1fr;gap:22px;padding-block:28px}.case-section h2{font-size:29px}.case-section p{font-size:16px}.case-disclosure{font-size:12px;padding-bottom:35px}.case-contents nav a{font-size:13px}.next-project{padding-bottom:50px}.case-intro .case-scope{font-size:12px}}
.all-work-link{margin:-30px 0 45px}
.case-contents nav{position:static;padding:0;border:0;background:transparent}.case-contents nav a{white-space:normal}
/* Final portfolio content and interaction system. */
.project-visual-link{display:block;min-width:0}.project-visual-link .project-stage{transition:transform .3s}.project-visual-link:hover .project-stage{transform:translateY(-4px)}.project-copy h3 a:hover{color:var(--accent)}.project-queue li>div{min-width:0}.project-queue li>div>.text-link{font-size:19px}.project-queue li>div>p{max-width:340px;margin-top:10px;line-height:1.6}.project-queue small{min-width:130px;text-align:right}.stage-tradesperson{background:#ddd5ca;color:#31332e}.stage-melon-loves-mustard{background:#d4b35f;color:#28251a}.work-grid{row-gap:80px;align-items:start}.work-preview:nth-child(2){padding-top:80px}.work-preview:nth-child(2n+1){padding-top:0}.work-preview:nth-child(4){padding-top:80px}.work-preview[hidden]{display:none}.work-grid.is-filtered .work-preview{padding-top:0}.work-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:25px;margin-bottom:40px}.work-toolbar>p{font-size:12px;color:var(--muted);max-width:260px;text-align:right}.work-filters{display:flex;flex-wrap:wrap;gap:10px}.work-filters[hidden]{display:none}.work-filters button{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:2px;padding:10px 15px;min-height:44px;font-size:14px}.work-filters button[aria-pressed=true]{background:var(--accent);color:var(--canvas);border-color:var(--accent)}.work-filters button:hover{border-color:var(--accent)}.work-filters button span{font-size:10px;margin-left:10px}.case-hero.stage-tradesperson,.case-hero.stage-melon-loves-mustard{padding:32px 40px 0}.case-section>.case-detail-image{grid-column:1/-1;min-width:0;margin-top:12px}.case-detail-image{background:var(--surface);padding:18px}.case-detail-image img{width:100%;height:auto}.case-detail-image figcaption{font-size:13px;color:var(--muted);padding-top:18px;line-height:1.7}.image-original{display:inline-block;margin-left:10px;text-decoration:underline;text-underline-offset:4px}.phone-detail{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:30px;padding:30px}.phone-detail img{max-height:680px;width:auto;max-width:100%;justify-self:center}.phone-detail figcaption{align-self:center;padding:0}.phone-detail .image-original{margin:14px 0 0;display:block}.case-contents nav a[aria-current]{color:var(--accent);text-decoration:underline;text-underline-offset:5px}.case-contents nav a{min-height:34px}.case-section{scroll-margin-top:120px}.about-jumps{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:30px}.about-jumps a{font-size:14px;border-bottom:1px solid #718681;padding-bottom:3px}.about-jumps a:hover{border-color:#243e3e}.about-direction{margin-top:40px;border-left:1px solid #9aa9a2;padding-left:20px;color:#354c4c;font-size:17px;max-width:450px}.education-line{display:flex;gap:30px;font-size:15px;padding-top:23px;color:#354c4c}.education-line span{font-size:12px;letter-spacing:.06em;text-transform:uppercase;min-width:120px}.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 5%;padding-top:30px}.capability-grid article{border-bottom:1px solid #9aa9a288;padding-bottom:28px;display:flex;flex-direction:column;align-items:start}.capability-number{font-family:var(--serif);font-style:italic;color:#41655f;font-size:18px;margin-bottom:16px}.capability-grid h4{font-size:22px;line-height:1.25;letter-spacing:-.025em;margin-bottom:15px}.capability-grid p{font-size:16px;color:#354c4c;line-height:1.8}.capability-grid ul{display:flex;gap:6px 12px;flex-wrap:wrap;margin:20px 0;font-size:12px;line-height:1.7;color:#445b5b}.capability-grid .text-link{margin-top:auto;font-size:13px;border-color:#718681}.tools-block{margin-top:50px}.tools-block h4{font-size:25px;letter-spacing:-.025em;margin-bottom:12px}.tools-intro{color:#354c4c;font-size:16px}.tools-block dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5%;padding-top:25px}.tools-block dt{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#445b5b;margin-bottom:12px}.tools-block dd{margin:0;font-size:17px;line-height:1.8;color:#1a2b2d}.about-section a:focus-visible{outline-color:#41655f}.field-help{display:block;font-size:12px!important;margin-top:8px}.form-note{font-size:13px}.form-errors{border-left:2px solid var(--accent);padding:12px 16px;margin-bottom:22px;background:var(--canvas);font-size:14px}.form-errors a{text-decoration:underline}.form-errors ul{list-style:disc;padding-left:20px;margin-top:8px}.field-error{display:block;color:#f4c7b6;font-size:13px!important;margin-top:8px}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#e7ad98}.form-errors:focus,#form-result:focus{outline:2px solid var(--accent);outline-offset:4px}#main:focus{outline:none}.site-header{backdrop-filter:blur(8px)}.work-image{border-radius:2px}.work-preview .work-image img{box-shadow:0 14px 30px #0002}.work-preview .image-topline{margin-bottom:20px}.case-meta dt{font-size:12px}.case-meta dd{max-width:560px}.case-intro{padding-bottom:45px}.case-section p{max-width:58ch}.case-contents>p{font-size:14px}.site-footer .text-link{min-height:34px;display:inline-flex;align-items:center}.site-footer .brand span{font-size:9px}.site-header nav a{min-height:44px}.work-intro .section-label,.case-intro .section-label{font-size:12px}.project-index{font-size:12px}.project-tags{font-size:13px}.project-stage figcaption{font-size:13px}.image-topline{font-size:11px}.project-disclosure{font-size:13px}.section-label{font-size:12px}.case-section .section-label{font-size:11px}.case-disclosure{font-size:14px}.local-form-note{font-size:13px}
@media(max-width:1100px){.work-toolbar{align-items:start;flex-direction:column}.work-toolbar>p{max-width:none;text-align:left}.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 6%}.case-hero img{max-height:none}}
@media(max-width:800px){.project-restaurant .project-visual-link,.project-aquatics .project-visual-link{grid-row:1}.work-grid{row-gap:60px}.work-preview:nth-child(2),.work-preview:nth-child(4){padding-top:50px}.tools-block dl{gap:30px}.case-section>.case-detail-image{margin-top:0}.phone-detail{gap:24px;padding:24px}.case-hero.stage-tradesperson,.case-hero.stage-melon-loves-mustard{padding:24px 24px 0}.about-direction{max-width:600px;margin-top:28px}.case-contents nav{gap:8px 20px}.case-contents nav a{padding:8px 0}.tools-block dd{font-size:16px}.image-topline{font-size:10px}}
@media(max-width:540px){.work-grid{row-gap:50px}.work-preview:nth-child(2),.work-preview:nth-child(4){padding-top:0}.work-toolbar{margin-bottom:28px;padding-top:20px;gap:18px}.work-filters{gap:8px}.work-filters button{font-size:13px;padding:9px 12px}.work-filters button span{margin-left:6px}.work-toolbar>p{font-size:12px}.work-intro{padding-bottom:30px}.work-preview>p{font-size:16px}.work-preview .project-index{font-size:11px}.work-preview .project-tags{font-size:12px}.work-image .image-topline{font-size:10px}.case-hero.stage-tradesperson,.case-hero.stage-melon-loves-mustard{padding:14px 14px 0}.case-detail-image{padding:12px}.case-detail-image figcaption{font-size:12px;padding-top:14px}.phone-detail{display:block;padding:20px}.phone-detail img{max-height:540px;margin:auto}.phone-detail figcaption{padding-top:20px}.case-hero figcaption{font-size:12px}.case-section{scroll-margin-top:90px}.case-contents nav a{font-size:13px;line-height:1.5}.about-jumps{gap:10px 18px}.about-direction{font-size:16px}.capability-grid{grid-template-columns:1fr;gap:28px}.capability-grid article{padding-bottom:25px}.capability-grid h4{font-size:24px}.capability-grid .text-link{font-size:14px;min-height:34px;padding-top:4px}.capability-grid ul{font-size:13px}.education-line{display:block;line-height:1.8}.education-line span{display:block;margin-bottom:8px}.tools-block dl{grid-template-columns:1fr;gap:25px}.tools-block dt{margin-bottom:8px}.tools-block dd{font-size:17px}.project-queue li{display:flex;gap:20px}.project-queue li>div>.text-link{font-size:19px}.project-queue li>div>p{font-size:14px}.project-queue small{min-width:0;max-width:90px;font-size:11px}.project-index{font-size:11px}.project-tags{font-size:12px}.project-disclosure{font-size:12px}.project-stage figcaption{font-size:12px}.image-topline{font-size:10px;line-height:1.6}.site-header nav a{min-height:46px}.intro-top{font-size:12px}.case-disclosure{font-size:13px}.contact-copy .contact-footnote{font-size:14px}.section-label{font-size:11px}}
@media(prefers-reduced-motion:reduce){.project-visual-link:hover .project-stage,.work-image:hover img{transform:none}.site-header{backdrop-filter:none}}
@media(forced-colors:active){.button,.work-filters button{border:1px solid ButtonText}.site-header{background:Canvas}.project-stage,.case-hero,.work-image{border:1px solid CanvasText}}
@media(min-width:541px){.case-section{scroll-margin-top:16px}}@media(max-width:540px){html{scroll-padding-top:90px}.case-section{scroll-margin-top:16px}}@media print{html{scroll-behavior:auto}body{color:#111;background:white}.site-header,.menu-toggle,.case-contents,.work-toolbar,form,.portfolio-invitation{display:none}.motion-ready .reveal{opacity:1;transform:none}.container{width:100%;max-width:none}.intro h1{font-size:42px}.case-intro h1{font-size:42px}.case-body{display:block}.about-section,.contact-section{background:white;color:#111;padding-block:35px}.project-stage,.case-hero,.case-detail-image{break-inside:avoid}.project{margin-bottom:35px}.work-grid{display:block}.work-preview{padding:0!important;margin-bottom:35px}a{color:inherit}.case-section p,.page-lead{color:#333}}
.work-intro{padding-top:30px;padding-bottom:35px}.work-intro>.section-label{margin-top:32px}.work-intro h1{font-size:clamp(45px,5.2vw,80px)}.work-intro .page-lead{font-size:clamp(18px,1.5vw,21px);margin-top:24px}.contact-socials{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:25px}
.form-field{margin-bottom:20px}.form-field>label{margin-bottom:0}.form-field .field-help{color:var(--muted);line-height:1.6}.form-field .field-error{line-height:1.6}#skills,#experience{scroll-margin-top:30px}
.case-questions{margin-top:28px;border-left:1px solid var(--line);padding-left:20px}.case-questions h3{font-size:18px;letter-spacing:-.02em;margin-bottom:14px}.case-questions ul{list-style:disc;padding-left:18px;color:var(--muted);font-size:15px;line-height:1.8}.case-questions li+li{margin-top:10px}
.work-image img{aspect-ratio:auto;object-fit:contain;object-position:top}
/* Homepage: all four projects in image-left 30/70 rows. */
#featured-projects>.homepage-project{grid-template-columns:minmax(0,3fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:center;margin:0;padding:40px 0;border-bottom:1px solid var(--line)}
#featured-projects>.homepage-project:first-child{padding-top:0}
.homepage-project .project-copy{padding:0;min-width:0}
.homepage-project .project-copy>p{max-width:760px}
.homepage-project .project-disclosure{max-width:760px}
.homepage-project .project-index{margin-bottom:16px}
.homepage-project .project-tags{margin:18px 0 22px}
.homepage-project .project-stage{padding:14px 14px 0}
.homepage-project .image-topline{font-size:10px;gap:12px;margin-bottom:16px}
.homepage-project .image-topline span:last-child{display:none}
.homepage-project .project-stage figcaption{font-size:12px;padding:12px 0 14px}
.work-section .all-work-link{margin:30px 0 0}
@media(max-width:800px){#featured-projects>.homepage-project{grid-template-columns:minmax(0,3fr) minmax(0,7fr);gap:26px;padding:32px 0}.homepage-project h3{font-size:32px}.homepage-project .project-copy>p{font-size:16px}.homepage-project .project-stage{padding:10px 10px 0}.homepage-project .project-stage figcaption{font-size:11px}}
@media(max-width:600px){#featured-projects>.homepage-project{grid-template-columns:1fr;gap:24px;padding:32px 0}.homepage-project .project-visual-link{grid-row:1;width:100%}.homepage-project .project-stage{padding:16px 16px 0}.homepage-project .project-stage figcaption{font-size:12px}.homepage-project h3{font-size:36px}}
/* Real desktop and mobile captures inside lightweight CSS device frames. */
.device-pair{width:100%;min-width:0}
.device-scene{position:relative;width:100%;aspect-ratio:1.22;isolation:isolate;transition:transform .25s}
.device-laptop{position:absolute;top:12%;left:2%;width:88%;background:#101719;padding:clamp(4px,.45vw,7px);border:1px solid #6d8186;border-radius:7px 7px 3px 3px;transform:rotate(-4deg);box-shadow:0 15px 22px #0005}
.device-laptop:before{content:"";position:absolute;top:2px;left:50%;width:2px;height:2px;border-radius:50%;background:#6d8186}
.device-laptop:after{content:"";position:absolute;left:-7%;bottom:-8px;width:114%;height:8px;background:linear-gradient(#8fa0a5,#34474e 65%,#1b282e);clip-path:polygon(4% 0,96% 0,100% 55%,96% 100%,4% 100%,0 55%);border-radius:0 0 50% 50%}
.device-laptop-screen{overflow:hidden;background:#101719;border-radius:2px}
.device-laptop-screen img{width:100%;height:100%;object-fit:contain;display:block}
.device-phone{position:absolute;right:1%;bottom:3%;width:27%;padding:5px 4px;background:#101719;border:1px solid #71868e;border-radius:13px;transform:rotate(7deg);box-shadow:0 12px 20px #0007;z-index:2}
.device-phone:before{content:"";position:absolute;top:2px;left:48%;width:2px;height:2px;background:#6d8186;border-radius:50%}
.device-phone:after{content:"";position:absolute;bottom:2px;left:35%;width:30%;height:1px;border-radius:1px;background:#a8b8bd}
.device-phone-screen{overflow:hidden;border-radius:8px;background:#101719;aspect-ratio:390/844}
.device-phone-screen img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.project-visual-link:hover .device-scene{transform:translateY(-3px)}
@media(max-width:800px){.device-phone{padding:4px 3px;border-radius:10px}.device-phone-screen{border-radius:6px}.device-laptop{padding:4px}.device-laptop:after{height:6px;bottom:-6px}}
@media(max-width:600px){.device-scene{max-width:440px;margin-inline:auto;aspect-ratio:1.3}.device-phone{width:25%;padding:5px 4px;border-radius:14px}.device-phone-screen{border-radius:9px}.device-laptop{padding:6px}.device-laptop:after{height:8px;bottom:-8px}}
@media(prefers-reduced-motion:reduce){.project-visual-link:hover .device-scene{transform:none}}
/* Keep section openings focused on their main heading and content. */ .approach-list li{grid-template-columns:1fr;gap:0}.work-preview-heading{margin-top:25px}.work-preview>p{margin-bottom:0}.work-image{padding-top:24px}.case-hero{padding-top:32px}.case-disclosure{font-size:16px;line-height:1.7}.next-project>a:first-of-type{margin-top:0}.intro h1{margin-top:35px}.section-top{align-items:start}.case-intro h1{margin-top:35px}.work-intro h1{margin-top:35px}@media(max-width:540px){.intro h1{margin-top:25px}.case-intro h1,.work-intro h1{margin-top:30px}.case-disclosure{font-size:16px}}
.capability-grid .text-link{margin-top:22px}.tools-block dt{font-size:16px;letter-spacing:0;text-transform:none}.case-hero figcaption,.case-detail-image figcaption{font-size:16px}
/* Professional positioning in the homepage hero. */ .intro h1{font-size:clamp(46px,5.4vw,84px);line-height:1.08}.intro-bottom>div{max-width:850px}.intro-copy{max-width:850px}.intro-detail{font-size:18px;line-height:1.75;color:var(--muted);max-width:800px;margin-top:18px}@media(min-width:1600px){.intro h1{font-size:84px}}@media(max-width:540px){.intro h1{font-size:clamp(37px,9vw,48px)}.intro h1 br{display:block}.intro h1 em{margin-top:0;max-width:none}.intro-detail{font-size:16px;margin-top:16px}}
@media(max-width:540px){.intro h1 em{display:inline}.intro h1 br{display:inline}}
/* Skills & Experience: capabilities first, evidence next, career in support. */
.profile-section{--profile-rule:#a6b2aa}
.profile-section h3{font-size:30px;letter-spacing:-.035em;line-height:1.2}
.profile-section h4{font-weight:500;line-height:1.25;letter-spacing:-.025em}
.profile-intro{align-items:start;gap:8%;grid-template-columns:1.05fr 1fr}
.profile-jumps{position:static;display:flex;flex-wrap:wrap;gap:10px 22px;padding:0;border:0;background:transparent;margin-top:28px;max-width:470px}
.profile-jumps a{font-size:14px;line-height:1.6;padding:3px 0;color:#354c4c;min-height:30px;border-bottom:1px solid #8c9d94}
.profile-jumps a:after{display:none}
.profile-jumps a:hover{color:#172e2e;border-color:#41655f}
.profile-capabilities{margin-top:60px;scroll-margin-top:24px}
.profile-capabilities>h3{padding-bottom:22px;border-bottom:1px solid var(--profile-rule)}
.profile-capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 8%;padding-top:30px}
.profile-capability-grid article{padding-bottom:26px;border-bottom:1px solid #a6b2aa88}
.profile-capability-grid h4{font-size:25px;max-width:420px;margin-bottom:14px}
.profile-capability-grid p{font-size:17px;line-height:1.75;color:#354c4c;max-width:500px}
.practice-section{margin-top:65px;scroll-margin-top:24px}
.practice-section>h3{font-size:clamp(34px,3.6vw,48px);margin-bottom:30px}
.practice-section>h3 em{font-family:var(--serif);font-weight:400;color:#41655f}
.practice-section h4{font-size:27px}
.practice-section p{font-size:17px;line-height:1.8;color:#354c4c}
.practice-business,.practice-design{display:grid;grid-template-columns:1fr 1.7fr;gap:8%;padding:28px 0;border-top:1px solid var(--profile-rule)}
.practice-business .text-link{margin-top:18px}
.practice-independent{padding:32px 0 35px;border-top:1px solid var(--profile-rule)}
.practice-area-heading{display:grid;grid-template-columns:1fr 1.7fr;gap:8%;margin-bottom:28px}
.practice-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.practice-project{min-width:0;display:flex;flex-direction:column;align-items:start}
.practice-image{display:block;overflow:hidden;width:100%;background:#d4dad0;border:1px solid #a6b2aa88}
.practice-image img{display:block;width:100%;height:auto;transition:transform .25s}
.practice-image:hover img{transform:translateY(-3px)}
.practice-project .practice-image{aspect-ratio:1.65;display:flex;align-items:start}
.practice-project h5{font-size:24px;line-height:1.25;letter-spacing:-.025em;font-weight:500;margin:20px 0 12px}
.practice-project h5 a:hover{color:#41655f}
.practice-project p{font-size:16px;line-height:1.75;margin-bottom:18px}
.practice-project>.text-link{margin-top:auto;font-size:14px}
.profile-section .text-link{border-color:#718681}
.profile-section .text-link:hover{border-color:#243e3e}
.practice-websites{display:grid;grid-template-columns:1.1fr 1.5fr;gap:7%;align-items:center;background:#d9dfd5;padding:28px;margin:0 0 5px}
.practice-websites h4{margin-bottom:18px}
.practice-websites .text-link{margin-top:18px}
.practice-design{margin-top:30px}
.practice-design-links{display:flex;gap:12px 24px;flex-wrap:wrap;margin-top:18px}
.career-section{margin-top:55px;scroll-margin-top:24px}
.career-section>h3{padding-bottom:20px;border-bottom:1px solid var(--profile-rule)}
.career-timeline>li{display:grid;grid-template-columns:.8fr 1.2fr 1.6fr;gap:5%;padding:22px 0;border-bottom:1px solid #a6b2aa88;align-items:start}
.career-dates{font-size:14px;line-height:1.7;color:#445b5b;padding-top:2px}
.career-position h4{font-size:20px;letter-spacing:-.02em}
.career-position>p{font-size:15px;color:#445b5b;margin-top:7px;line-height:1.6}
.career-summary{font-size:15px;line-height:1.8;color:#354c4c}
.career-brief .career-position{grid-column:2/-1;display:flex;align-items:baseline;gap:16px 28px;flex-wrap:wrap}
.career-brief .career-position>p{margin:0}
.career-cv{margin-top:24px}
.profile-tools{margin-top:45px;scroll-margin-top:24px}
.profile-tools>h3{font-size:26px;margin-bottom:24px}
.profile-tools dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5%;border-top:1px solid var(--profile-rule);padding-top:24px;margin-bottom:0}
.profile-tools dt{font-size:15px;color:#445b5b;margin-bottom:9px}
.profile-tools dd{margin:0;font-size:17px;line-height:1.8;color:#1a2b2d}
@media(max-width:1000px){.profile-intro{grid-template-columns:1fr 1fr;gap:6%}.profile-intro h2{font-size:42px}.practice-business,.practice-design,.practice-area-heading{grid-template-columns:1fr 1.5fr;gap:6%}.practice-projects{gap:20px}.practice-project h5{font-size:22px}.practice-websites{gap:6%;padding:22px}.career-timeline>li{grid-template-columns:.85fr 1.25fr;gap:10px 6%}.career-summary{grid-column:2}.career-brief .career-position{display:block}.career-brief .career-position>p{margin-top:7px}}
@media(max-width:800px){.profile-intro{grid-template-columns:1fr;gap:30px}.profile-intro h2{font-size:44px}.profile-jumps{max-width:none;margin-top:24px}.profile-capability-grid{gap:28px 6%}.profile-capability-grid h4{font-size:23px}.profile-capability-grid p{font-size:16px}.profile-section h3{font-size:29px}.practice-section>h3{font-size:39px}.practice-business,.practice-design,.practice-area-heading{grid-template-columns:1fr;gap:20px}.practice-section h4{font-size:27px}.practice-projects{grid-template-columns:1fr;gap:28px}.practice-project{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:8px 25px;align-items:start}.practice-project>.practice-image{grid-row:1/4;aspect-ratio:auto}.practice-project h5{margin:0;font-size:25px}.practice-project p{margin:0;font-size:16px}.practice-project>.text-link{justify-self:start;margin-top:5px}.practice-websites{grid-template-columns:1fr 1.2fr;padding:22px}.practice-websites h4{font-size:25px}.practice-websites p{font-size:16px}.career-section{margin-top:45px}}
@media(max-width:540px){.profile-intro h2{font-size:37px}.profile-jumps{gap:10px 18px}.profile-jumps a{font-size:14px;min-height:34px}.profile-capabilities{margin-top:42px}.profile-capability-grid{grid-template-columns:1fr;gap:24px;padding-top:24px}.profile-capability-grid h4{font-size:25px;margin-bottom:12px}.profile-capability-grid article{padding-bottom:22px}.profile-section h3{font-size:29px}.practice-section{margin-top:45px}.practice-section>h3{font-size:36px;margin-bottom:24px}.practice-section p{font-size:16px}.practice-business,.practice-design{padding:24px 0;gap:17px}.practice-section h4{font-size:26px}.practice-independent{padding:25px 0 28px}.practice-area-heading{gap:16px;margin-bottom:24px}.practice-project{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);column-gap:18px;row-gap:8px}.practice-project h5{font-size:22px}.practice-project p{font-size:15px;line-height:1.7}.practice-project>.text-link{font-size:13px;min-height:30px}.practice-websites{grid-template-columns:1fr;padding:20px;gap:24px}.practice-websites .text-link{font-size:14px}.practice-design-links{display:block}.practice-design-links .text-link{margin:0 0 12px;font-size:14px}.career-timeline>li{grid-template-columns:1fr;gap:10px;padding:20px 0}.career-summary,.career-brief .career-position{grid-column:auto}.career-dates{font-size:14px}.career-position h4{font-size:21px}.career-summary{font-size:15px}.profile-tools{margin-top:35px}.profile-tools>h3{font-size:26px;margin-bottom:20px}.profile-tools dl{grid-template-columns:1fr;gap:24px}.profile-tools dt{font-size:15px}.profile-tools dd{font-size:17px}}
@media(prefers-reduced-motion:reduce){.practice-image:hover img{transform:none}}
/* Portrait-led hero and centred About introduction. */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.8fr);gap:7%;align-items:center;padding-top:20px}
.hero-grid .hero-copy{min-width:0}
.hero-grid h1{font-size:clamp(39px,4.1vw,64px);line-height:1.1;margin:15px 0 30px}
.hero-grid .intro-copy{font-size:clamp(17px,1.4vw,21px);line-height:1.7}
.hero-grid .intro-detail{font-size:17px;line-height:1.75;margin-top:16px}
.hero-grid .intro-bottom{display:block}
.hero-portrait{width:100%;max-width:380px;justify-self:end;overflow:hidden;aspect-ratio:4/5;border:1px solid #43545766;border-radius:2px;background:#101719}
.hero-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.profile-section .profile-intro{display:block;max-width:920px;margin-inline:auto;text-align:center}
.profile-intro .about-copy{max-width:880px;margin:25px auto 0}
.profile-intro .about-copy>p{margin:0;font-size:18px;line-height:1.85}
.profile-tools dt{display:flex;align-items:center;gap:10px}
.tool-icon{display:block;width:24px;height:24px;flex-shrink:0;color:#41655f}
.profile-tools dd{padding-left:34px}
@media(max-width:1100px){.hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr);gap:5%}.hero-grid h1{font-size:clamp(36px,4vw,45px)}.hero-grid .intro-copy,.hero-grid .intro-detail{font-size:16px}}
@media(max-width:800px){.hero-grid{grid-template-columns:1fr;gap:30px;padding-top:0}.hero-grid h1{font-size:clamp(40px,7vw,58px);margin-top:15px}.hero-grid .intro-copy{font-size:19px}.hero-grid .intro-detail{font-size:17px}.hero-portrait{width:min(70%,300px);justify-self:center}.profile-intro .about-copy>p{font-size:17px}}
@media(max-width:540px){.hero-grid{gap:30px}.hero-grid h1{font-size:clamp(35px,8.6vw,45px);margin:15px 0 26px}.hero-grid .intro-copy{font-size:17px}.hero-grid .intro-detail{font-size:16px}.hero-portrait{width:min(78%,280px)}.profile-intro .about-copy{margin-top:22px}.profile-intro .about-copy>p{font-size:16px;line-height:1.85}.profile-tools dd{padding-left:34px}}
/* One continuous photographic hero, with the portrait within its environment. */
.intro.hero-environment{position:relative;isolation:isolate;width:100%;max-width:none;margin:0;padding:0;overflow:hidden;background:#101719}
.hero-environment .hero-backdrop{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%}
.hero-environment .hero-backdrop img{width:100%;height:100%;display:block;object-fit:cover;object-position:right center}
.hero-environment:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(16,23,25,.82) 0%,rgba(16,23,25,.65) 40%,rgba(16,23,25,.08) 70%,rgba(16,23,25,0) 100%),linear-gradient(0deg,#101719 0%,rgba(16,23,25,.18) 18%,rgba(16,23,25,0) 42%)}
.hero-environment .hero-grid{position:relative;z-index:2;display:flex;align-items:center;min-height:640px;padding-block:72px;gap:0}
.hero-environment .hero-copy{width:64%;max-width:780px}
.hero-environment .hero-grid h1{margin-top:0}
.hero-environment .intro-copy{color:#e0e7e3}
.hero-environment .intro-detail{color:#c0cdca}
@media(min-width:1600px){.hero-environment .hero-grid{min-height:690px;padding-block:85px}}
@media(max-width:1100px) and (min-width:901px){.hero-environment .hero-copy{width:61%}.hero-environment .hero-grid{min-height:610px}}
@media(max-width:900px){.hero-environment .hero-backdrop{height:470px;bottom:auto}.hero-environment .hero-backdrop img{object-position:center 28%}.hero-environment:after{background:linear-gradient(180deg,rgba(16,23,25,0) 0,rgba(16,23,25,.06) 210px,rgba(16,23,25,.75) 350px,#101719 465px)}.hero-environment .hero-grid{display:block;min-height:0;padding-top:390px;padding-bottom:64px}.hero-environment .hero-copy{width:100%;max-width:780px}.hero-environment .hero-grid h1{font-size:clamp(38px,6.8vw,58px)}.hero-environment .intro-copy{font-size:18px}}
@media(max-width:540px){.hero-environment .hero-backdrop{height:400px}.hero-environment .hero-backdrop img{object-position:center 25%}.hero-environment:after{background:linear-gradient(180deg,rgba(16,23,25,0) 0,rgba(16,23,25,.08) 155px,rgba(16,23,25,.85) 300px,#101719 400px)}.hero-environment .hero-grid{padding-top:335px;padding-bottom:52px}.hero-environment .hero-grid h1{font-size:clamp(35px,8.6vw,45px);margin-bottom:25px}.hero-environment .intro-copy{font-size:17px}}
/* Keep the photographic environment bounded and fade both outer edges. */
@media(min-width:901px){
.hero-environment .hero-backdrop{inset:28px auto 0 50%;width:min(100%,1600px);height:calc(100% - 28px);transform:translateX(-50%);mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 86%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 86%,transparent 100%)}
.hero-environment .hero-backdrop img{object-fit:contain;object-position:right top}
}
@media(max-width:900px){.hero-environment .hero-backdrop img{object-position:right top}}

.case-body.case-body-simple{display:block}.case-body-simple+.next-project>.text-link{font-size:16px;letter-spacing:normal;line-height:1.6;margin:0;display:inline-block}

/* Shared project case studies: paired blocks with top-aligned icons. */
.case-hero[class*="stage-"]{padding:0;background:transparent;border:0}
.case-hero img{display:block;width:100%;height:auto}
.case-body-simple .case-block-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 6%}
.case-body-simple .case-block{display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:20px;row-gap:0;align-items:start;padding:36px 0;margin:0;border-top:1px solid var(--line)}
.case-block-icon{width:28px;height:28px;margin-top:3px;color:var(--accent)}
.case-block-copy h2{margin:0 0 18px;font-size:26px;line-height:1.3}
.case-block-copy p{margin:0;font-size:17px;line-height:1.75}
.case-block-copy .case-questions{margin-top:24px}
@media(max-width:760px){.case-body-simple .case-block-grid{grid-template-columns:1fr}.case-body-simple .case-block{padding:28px 0;column-gap:16px}.case-block-copy h2{font-size:24px}}
.case-hero[class*="stage-"]{border:1px solid #aac8c34d;border-radius:16px;overflow:hidden}

/* Consistent sans-serif typography and aligned portfolio grid. */
em{font-style:normal}h1 em,h2 em{font-weight:500;letter-spacing:inherit}
.work-grid{gap:64px 6%;align-items:stretch}.work-grid .work-preview{padding-top:0;display:flex;flex-direction:column;min-width:0}.work-grid .work-preview[hidden]{display:none}.work-grid .work-image{padding:0;aspect-ratio:16/10;background:var(--surface);border:1px solid #aac8c34d;border-radius:12px;overflow:hidden}.work-grid .work-image img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:top;box-shadow:none}.work-preview-heading{align-items:start;min-height:96px}.work-preview>p{margin-top:18px;max-width:none}.work-grid.is-filtered .work-preview{padding-top:0}
@media(max-width:800px){.work-grid{gap:44px 6%}.work-preview-heading{min-height:0}}
/* Notebook environment shares the hero canvas rather than a separate image card. */
@media(min-width:901px){.hero-process .hero-backdrop{mask-image:linear-gradient(90deg,transparent,#000 10%,#000 91%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 91%,transparent)}.hero-process .hero-copy{width:57%;max-width:740px}.hero-process .hero-grid h1{font-size:clamp(38px,3.6vw,58px)}.hero-process:after{background:linear-gradient(90deg,rgba(16,23,25,.8),rgba(16,23,25,.6) 38%,transparent 65%),linear-gradient(0deg,#101719,transparent 22%)} }
@media(max-width:900px){.hero-process .hero-backdrop img{object-position:right top}.hero-process .hero-backdrop{mask-image:linear-gradient(90deg,transparent,#000 7%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 94%,transparent)}}
/* Feather the notebook's right edge into the same hero canvas. */
@media(min-width:901px){.hero-process .hero-backdrop{mask-image:linear-gradient(90deg,transparent,#000 12%,#000 80%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 80%,transparent 100%)}.hero-process:after{background:linear-gradient(90deg,rgba(16,23,25,.8),rgba(16,23,25,.6) 38%,transparent 65%),linear-gradient(0deg,#101719,transparent 22%)}}

/* Independent transparent objects on the continuous hero canvas. */
.hero-process:after{display:none}.hero-process .hero-objects{position:absolute;inset:30px auto 0 50%;transform:translateX(-50%);z-index:0;pointer-events:none}
.hero-process .hero-notebook{position:absolute;right:50px;top:0;width:43%;height:calc(100% - 25px);object-fit:contain;object-position:center}
.hero-process .hero-pen{position:absolute;right:0;top:130px;width:52px;height:360px;object-fit:contain}
@media(max-width:1100px) and (min-width:901px){.hero-process .hero-notebook{right:26px;width:43%}.hero-process .hero-pen{right:-10px;width:34px;height:290px}}
@media(max-width:900px){.hero-process .hero-objects{top:20px;bottom:auto;height:370px}.hero-process .hero-notebook{right:calc(50% - 130px);width:270px;height:350px}.hero-process .hero-pen{right:calc(50% - 165px);top:70px;width:30px;height:240px}}
@media(max-width:540px){.hero-process .hero-objects{top:15px;height:325px}.hero-process .hero-notebook{right:calc(50% - 120px);width:240px;height:310px}.hero-process .hero-pen{right:calc(50% - 150px);top:65px;width:26px;height:210px}.hero-process .hero-grid{padding-top:355px}}
.hero-process .hero-pen{right:-40px;top:110px;width:130px;height:420px}
@media(max-width:1100px) and (min-width:901px){.hero-process .hero-pen{right:-38px;width:100px;height:340px}}
@media(max-width:900px){.hero-process .hero-pen{right:calc(50% - 180px);top:50px;width:80px;height:280px}}
@media(max-width:540px){.hero-process .hero-pen{right:calc(50% - 168px);top:40px;width:70px;height:250px}}

.homepage-project .project-copy>.project-kind{font-size:14px;font-weight:500;letter-spacing:.025em;color:var(--accent);margin:0 0 12px;line-height:1.5}


