:root{--ink:#202226;--muted:#6b7078;--line:#dfe1e4;--paper:#fafafa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #4166a6;outline-offset:5px}button{font:inherit;cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,h4,p,figure{margin:0}.skip{position:fixed;top:-80px;padding:10px;background:white;z-index:10}.skip:focus{top:0}.site-header,main,footer{max-width:1080px;margin:auto;padding-left:44px;padding-right:44px}.site-header{display:flex;justify-content:space-between;align-items:center;padding-top:32px;padding-bottom:32px}.identity{font-size:15px;font-weight:650;letter-spacing:-.3px}nav{display:flex;gap:30px;font-size:13px;color:var(--muted)}.hero{display:flex;align-items:flex-start;justify-content:space-between;gap:56px;padding:90px 0 76px}.hero-copy{max-width:730px}.eyebrow{color:var(--muted);letter-spacing:1.5px;font-size:10px;font-weight:550;margin-bottom:22px}h1{font-size:clamp(36px,4.2vw,54px);line-height:1.12;letter-spacing:-2.3px;font-weight:550}.hero-intro{font-size:17px;line-height:1.7;color:#5b6067;max-width:580px;margin-top:26px}.hero-links{display:flex;flex-wrap:wrap;gap:24px;font-size:12px;margin-top:28px}.hero-links a:first-child{font-weight:600}.location{font-size:11px;color:var(--muted);margin-top:33px;line-height:1.8}.portrait{width:132px;height:152px;object-fit:cover;border-radius:2px;filter:grayscale(1);margin-top:38px;flex-shrink:0}.projects-section{padding:0 0 32px}.section-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px}h2{font-size:15px;font-weight:600;letter-spacing:-.2px}.section-heading p{color:var(--muted);font-size:11px}.projects{border-top:1px solid var(--line)}.project{border-bottom:1px solid var(--line);scroll-margin-top:25px}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.case>summary{display:grid;grid-template-columns:275px 1fr 24px;align-items:center;gap:25px;padding:29px 0;transition:background .15s}.case>summary:hover .company-name{color:#355f9e}.row-brand{display:grid;grid-template-columns:38px 1fr;column-gap:16px;align-items:center}.logo-wrap{grid-row:1/3;width:38px;height:38px;display:flex;align-items:center;justify-content:center}.logo-wrap img{max-width:36px;max-height:30px;object-fit:contain}.company-name{font-size:18px;font-weight:550;letter-spacing:-.5px;line-height:1.4}.role{grid-column:2;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.5}.row-description{font-size:13px;color:#52575f;max-width:460px}.row-date{display:block;font-size:10px;color:var(--muted);margin-top:5px}.row-toggle{font-size:22px;font-weight:300;text-align:right;color:var(--muted)}details[open]>summary .row-toggle{transform:rotate(45deg)}.case-body{padding:5px 49px 35px 54px;max-width:850px;font-size:14px;color:#555c65}.case-body h4{font-size:11px;font-weight:600;color:var(--ink);margin:26px 0 8px}.case-body p{margin:0 0 12px;max-width:690px}.copy-block{margin-bottom:20px}.copy-block h4{margin-top:12px}.tags{display:flex;gap:14px;flex-wrap:wrap;list-style:none;padding:0;margin:22px 0;font-size:10px;color:var(--muted)}.tags li:not(:last-child):after{content:'·';padding-left:14px}.project-visual{margin:0 0 27px}.project-visual img{width:100%;max-height:450px;object-fit:contain;background:#f2f3f4}.zoom{border:0;background:transparent;padding:0;position:relative;width:100%;text-align:left}.enlarge{position:absolute;bottom:12px;right:12px;font-size:10px;background:#fffE;padding:5px 10px}.project-visual figcaption,.detail-figure figcaption{font-size:10px;color:var(--muted);margin-top:8px}.detail-figure{margin:25px 0}.detail-figure img{max-height:520px;margin:auto}.textlink{display:inline-block;font-size:12px;border-bottom:1px solid #b7bbc0;margin:5px 20px 10px 0}.resource-note{color:var(--muted);font-size:11px;margin-top:20px!important}.clients{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;list-style:none;padding:6px 0 4px;margin:0}.clients li{display:flex;align-items:center;min-height:36px}.clients img{height:32px;width:auto;max-width:148px;object-fit:contain}.clients img[alt="Qantas"]{height:52px;max-width:64px}.clients span{font-size:15px;font-weight:550;letter-spacing:-.4px}.journey{border-bottom:1px solid var(--line);padding-bottom:5px}.career>summary{display:flex;align-items:center;gap:25px;padding:13px 0 17px;font-size:12px}.career-note{color:var(--muted);font-size:11px;margin-left:auto}.career .row-toggle{width:24px}.career-body{padding:15px 0 30px 54px}.timeline{list-style:none;padding:0;margin:0;max-width:760px}.timeline li{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:15px 0}.timeline time{font-size:11px;color:var(--muted)}.timeline h3{font-size:13px;font-weight:550}.timeline p{font-size:12px;color:var(--muted);margin-top:3px}.education{font-size:11px;color:var(--muted);margin-top:25px}.contact{padding:70px 0 75px;display:flex;justify-content:space-between;align-items:end;gap:25px}.contact h2{font-size:24px;letter-spacing:-.7px;font-weight:500}.contact-email{display:inline-block;margin-top:10px;font-size:15px}.contact-aside{text-align:right;font-size:12px}.contact-aside p{font-size:11px;color:var(--muted);margin-top:7px}footer{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;padding-bottom:28px}dialog{padding:45px 20px 20px;border:0;background:var(--paper);color:var(--ink);border-radius:3px;max-width:95vw;max-height:94vh}dialog::backdrop{background:#111c}dialog img{max-height:77vh;max-width:88vw;object-fit:contain;margin:auto}dialog p{font-size:12px;margin-top:12px}.close-dialog{position:absolute;right:18px;top:10px;border:0;background:transparent;padding:5px;color:var(--ink)}.source-page{max-width:850px;padding:55px 30px}.source-page h1{font-size:40px}.source-page h2{font-size:22px;margin:35px 0 15px}.source-page ul{padding-left:20px}.source-page li{margin-bottom:14px}.source-page a{text-decoration:underline}.source-page p{margin:15px 0}
@media(max-width:850px){.hero{gap:30px;padding-top:65px}.portrait{width:100px;height:120px}h1{font-size:43px}.case>summary{grid-template-columns:230px 1fr 20px;gap:18px}.role{font-size:9px}.row-description{font-size:12px}}
@media(max-width:600px){.site-header,main,footer{padding-left:24px;padding-right:24px}.site-header{padding-top:25px;padding-bottom:20px}nav{gap:22px;font-size:12px}.hero{position:relative;padding-top:51px;padding-bottom:47px;display:block}.eyebrow{margin-bottom:20px;font-size:9px}.hero-copy{max-width:100%}h1{font-size:37px;letter-spacing:-1.7px;line-height:1.15}.hero-intro{font-size:15px;line-height:1.7;margin-top:23px;max-width:95%}.portrait{position:absolute;right:0;top:13px;margin:0;width:44px;height:44px;object-position:center 35%;border-radius:2px}.hero-links{gap:23px;margin-top:23px;font-size:11px}.location{font-size:10px;margin-top:25px}.section-heading{padding-bottom:16px}.section-heading h2{font-size:13px}.section-heading p{display:none}.case>summary{grid-template-columns:1fr 20px;gap:0 15px;padding:23px 0}.row-brand{grid-column:1;grid-template-columns:31px 1fr;column-gap:12px}.logo-wrap{width:31px;height:31px}.logo-wrap img{max-width:29px;max-height:26px}.company-name{font-size:18px}.role{font-size:10px}.row-description{grid-row:2;grid-column:1;max-width:none;margin-top:14px;font-size:12px;line-height:1.7;padding-left:43px}.row-date{font-size:10px;margin-top:7px}.case>summary .row-toggle{grid-column:2;grid-row:1/3;align-self:center}.case-body{padding:0 0 26px;font-size:13px}.case-body h4{font-size:11px}.project-visual figcaption,.detail-figure figcaption{font-size:9px}.tags{font-size:10px;gap:8px}.tags li:not(:last-child):after{padding-left:8px}.career>summary{font-size:11px;gap:10px}.career-note{font-size:9px}.career .row-toggle{width:20px}.career-body{padding-left:0}.timeline li{grid-template-columns:85px 1fr;gap:15px}.timeline time{font-size:10px}.timeline h3{font-size:12px}.timeline p{font-size:11px}.contact{display:block;padding:45px 0}.contact h2{font-size:23px}.contact-email{font-size:14px}.contact-aside{text-align:left;margin-top:25px;font-size:12px}.contact-aside p{font-size:10px}.source-page h1{font-size:32px}.resource-note{font-size:10px}.clients{gap:12px 14px;padding-top:16px}.clients img{height:26px}.clients img[alt="Qantas"]{height:40px}.clients span{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Portrait */
.portrait{width:174px;height:196px;border-radius:22px;filter:none}
@media(max-width:850px){.portrait{width:132px;height:152px;border-radius:18px}}
@media(max-width:600px){.portrait{width:64px;height:72px;top:12px;border-radius:14px}.hero{padding-top:72px}}
/* Geographic journey */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.places{padding:34px 0 30px;border-bottom:1px solid var(--line);margin-bottom:18px}
.places-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.places-heading>span{font-size:11px;color:var(--muted)}
.places-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:48px;align-items:center}
.place-story{padding:15px 0;min-height:220px;display:flex;flex-direction:column;align-items:start}
.place-phase{font-size:10px;color:var(--muted);margin-bottom:12px}
.place-story h3{font-size:29px;font-weight:500;letter-spacing:-.8px;line-height:1.2}
#place-description{font-size:13px;color:#5b6067;margin-top:13px;max-width:300px;line-height:1.7}
.place-controls{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:300px;margin-top:auto;padding-top:23px}
.place-controls[hidden],.place-steps[hidden]{display:none}
#place-count{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.place-controls>div{display:flex;gap:8px}
.place-controls button{width:34px;height:32px;background:transparent;border:1px solid var(--line);border-radius:3px;color:var(--ink);font-size:17px;line-height:1}
.place-controls button:hover:not(:disabled){background:#eceef0}.place-controls button:disabled{opacity:.25;cursor:default}
.place-map{position:relative;background:#f0f2f4;border-radius:4px;overflow:hidden;height:235px}
#route-map{display:block;width:100%;height:100%}.map-country{fill:#e0e4e8;stroke:#fafafa;stroke-width:.06;stroke-linejoin:round}.map-country.is-current{fill:#d0d9e1}
#route-line{stroke:#8396ab;stroke-width:.045;stroke-dasharray:.12 .12;opacity:.7}
#route-stops circle{fill:#8b9bad;stroke:var(--paper);stroke-width:.035}
.marker-halo{fill:#406f9f;opacity:.12}.marker-dot{fill:#315d8b;stroke:#fff}
#map-area-label{position:absolute;top:13px;left:15px;font-size:10px;color:#586574;pointer-events:none}
.map-credit{position:absolute;right:10px;bottom:7px;font-size:8px;color:#78818a}
.place-steps{display:flex;gap:0;justify-content:space-between;padding-top:21px}
.place-steps button{border:0;border-top:1px solid var(--line);flex:1;background:transparent;padding:11px 5px 0;color:var(--muted);font-size:10px;text-align:center;position:relative;white-space:nowrap}
.place-steps button:before{content:'';position:absolute;top:-3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#bac0c7}
.place-steps button[aria-current="step"]{color:var(--ink);font-weight:600;border-color:#738ca6}
.place-steps button[aria-current="step"]:before{background:#315d8b;width:6px;height:6px;top:-4px;left:calc(50% - 3px)}
@media(max-width:600px){.places{padding:18px 0 25px}.places-heading{margin-bottom:18px}.places-heading h2{font-size:13px}.places-heading>span{display:none}.places-layout{grid-template-columns:1fr;gap:16px}.place-story{min-height:170px;padding:0}.place-story h3{font-size:26px}#place-description{font-size:12px;max-width:100%;min-height:41px}.place-controls{max-width:100%;padding-top:15px}.place-map{height:220px}.place-steps{justify-content:flex-start;overflow-x:auto;padding:22px 0 8px;scrollbar-width:thin}.place-steps button{flex:0 0 auto;min-width:68px;padding:12px 9px 2px}.map-credit{font-size:8px}}

#route-line{stroke-width:.065}
/* Larger, more legible typography and a dedicated full-width journey. */
body{font-size:17px}.site-header,main,footer{max-width:1160px}
.identity{font-size:18px}nav{font-size:15px}.hero{gap:42px;padding-top:72px;padding-bottom:66px}.hero-copy{min-width:0;max-width:790px}
h1{font-size:clamp(42px,4.5vw,58px)}.eyebrow{font-size:12px}.hero-intro{font-size:19px;max-width:650px}.hero-links{font-size:15px;gap:27px}.location{font-size:14px;line-height:1.7}
h2,.section-heading h2{font-size:18px}.section-heading p{font-size:13px}.case>summary{grid-template-columns:295px 1fr 24px;padding:30px 0}.company-name{font-size:22px}.role{font-size:13px;line-height:1.6}.row-description{font-size:16px;max-width:530px}.row-date{font-size:13px;margin-top:8px}.row-toggle{font-size:26px}.case-body{font-size:16px;max-width:950px}.case-body h4{font-size:14px}.tags{font-size:13px}.project-visual figcaption,.detail-figure figcaption,.resource-note{font-size:12px}.textlink{font-size:15px}.clients span{font-size:17px}.enlarge{font-size:12px}
.career>summary{font-size:15px;padding:20px 0}.career-note{font-size:13px}.timeline time{font-size:14px}.timeline h3{font-size:16px}.timeline p{font-size:14px}.education{font-size:13px}.contact h2{font-size:29px}.contact-email{font-size:18px}.contact-aside{font-size:15px}.contact-aside p{font-size:13px}footer{font-size:12px}.close-dialog,dialog p{font-size:14px}
.places{padding:32px 0 30px;margin-bottom:18px}.places-heading{margin-bottom:28px}.places-heading>span{font-size:13px}.places-layout{grid-template-columns:minmax(270px,1fr) 1.9fr;gap:40px}.place-map{height:310px;border:1px solid #e4e8eb;border-radius:10px;background:radial-gradient(ellipse at 65% 40%,#f6f8fa,#ecf0f3)}.place-story{min-height:276px}.place-phase{font-size:13px;margin-bottom:13px}.place-story h3{font-size:34px}.place-period{font-size:15px;line-height:1.7;font-variant-numeric:tabular-nums;margin-top:10px;max-width:310px}.place-duration{display:block;font-size:13px;color:var(--muted);margin-top:2px}#place-description{font-size:15px;line-height:1.7;margin-top:17px;max-width:330px}.place-controls{max-width:330px;padding-top:24px}.place-controls button{width:40px;height:38px;font-size:21px;transition:background .2s,transform .2s}.place-controls button:active:not(:disabled){transform:translateX(2px)}#place-count{font-size:13px}.map-country{transition:fill .6s;fill:#dfe5eb}.map-country.is-current{fill:#c4d2df}#map-area-label{top:16px;left:18px;font-size:13px;color:#405870}.map-credit{font-size:10px;right:12px;bottom:10px}.place-steps{gap:0;padding-top:29px}.place-steps button{font-size:14px;padding:16px 8px 0;line-height:1.5}.step-name,.step-period{display:block}.step-period{font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}.place-steps button:before{width:6px;height:6px;top:-4px;left:calc(50% - 3px)}.place-steps button[aria-current="step"]:before{width:8px;height:8px;top:-5px;left:calc(50% - 4px)}.place-steps .step-completed{border-color:#a8b9c9}.place-steps .step-completed:before{background:#8da5bc}.step-period{white-space:nowrap}
@media(max-width:950px) and (min-width:601px){.hero{gap:26px}h1{font-size:47px}.portrait{width:136px;height:155px}.case>summary{grid-template-columns:260px 1fr 22px;gap:20px}.places-layout{grid-template-columns:1fr 1.4fr;gap:27px}.place-map{height:300px}.place-steps button{font-size:12px;padding-left:4px;padding-right:4px}.step-period{font-size:11px}}
@media(max-width:600px){.site-header{padding-top:25px}.identity{font-size:17px}nav{font-size:14px;gap:20px}.hero{padding-top:78px;padding-bottom:48px}h1{font-size:40px;line-height:1.15}.eyebrow{font-size:11px}.hero-intro{font-size:18px;max-width:100%;line-height:1.7}.hero-links{font-size:14px;gap:23px}.location{font-size:13px;line-height:1.8;margin-top:26px}.section-heading h2{font-size:17px}.case>summary{grid-template-columns:1fr 24px;gap:0 14px;padding:26px 0}.company-name{font-size:22px}.role{font-size:12px}.row-brand{grid-template-columns:34px 1fr;column-gap:12px}.row-description{font-size:15px;padding-left:46px;margin-top:15px}.row-date{font-size:12px}.case-body{font-size:16px;padding-bottom:30px}.case-body h4{font-size:13px}.tags{font-size:12px}.project-visual figcaption,.detail-figure figcaption,.resource-note{font-size:12px}.textlink{font-size:14px}.clients span{font-size:16px}.career>summary{font-size:14px;gap:12px;flex-wrap:wrap}.career-note{font-size:12px}.career .row-toggle{font-size:24px}.timeline li{grid-template-columns:100px 1fr;gap:14px}.timeline time{font-size:12px}.timeline h3{font-size:15px}.timeline p{font-size:14px}.education{font-size:12px}.contact h2{font-size:27px}.contact-email{font-size:17px}.contact-aside{font-size:15px}.contact-aside p{font-size:13px}footer{font-size:12px;gap:15px;flex-wrap:wrap}.places{padding-top:14px}.places-heading{margin-bottom:24px}.places-heading h2{font-size:17px}.places-layout{grid-template-columns:1fr;gap:23px}.place-story{min-height:240px}.place-phase{font-size:13px}.place-story h3{font-size:31px}.place-period{font-size:15px;max-width:100%}.place-duration{font-size:13px}#place-description{font-size:16px;max-width:100%;margin-top:14px;min-height:0}.place-controls{max-width:100%;padding-top:20px}.place-map{height:255px}.map-credit{font-size:10px}#map-area-label{font-size:12px}.place-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 0;overflow:visible;padding:27px 0 8px}.place-steps button{min-width:0;white-space:normal;font-size:13px;padding:13px 4px 0}.step-period{font-size:11px;margin-top:5px}}
@media(prefers-reduced-motion:reduce){.map-country,.place-controls button{transition:none}}

.shots{display:flex;gap:14px;align-items:flex-start;margin-top:16px}
.shots .project-visual{flex:1;min-width:0;margin:0}
.shots img{max-height:340px;width:100%;object-fit:contain;background:#111}
.clients img[alt="Sarenza"],.clients img[alt="Bayard"],.clients img[alt="Kayo Sports"]{height:26px;max-width:148px}
.clients img[alt="Darty"]{height:40px;max-width:44px}
.place-notes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.place-notes li{position:relative;padding-left:14px}
.place-notes li:before{content:'';position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:#315d8b}
.place-marks{display:flex;flex-wrap:wrap;gap:12px 16px;margin-top:16px}
.place-marks figure{display:flex;align-items:center;gap:8px;margin:0}
.place-marks img{height:32px;width:auto;max-width:128px;object-fit:contain}
.place-marks figcaption{font-size:12px;color:var(--muted)}
.step-marks{display:flex;justify-content:center;align-items:center;gap:4px;min-height:18px;margin:0 auto 5px}
.step-mark{display:block;height:16px;width:auto;max-width:36px;object-fit:contain;margin:0}
.hero-links a,.contact-aside a{display:inline-flex;align-items:center;gap:6px}
.hero-links svg,.contact-aside svg{width:15px;height:15px;flex:none}
.contact-aside{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 16px}
@media(max-width:600px){.contact-aside{justify-content:flex-start}}
@media(max-width:600px){.shots{flex-direction:column}.shots img{max-height:420px}.place-marks img{height:28px}}
