@font-face{font-family:Open Sans;src:url('assets/open-sans.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--page);color:var(--ink);font-family:Open Sans,Arial,sans-serif;line-height:1.55}a{color:inherit;text-underline-offset:5px}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.skip{position:fixed;left:20px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:12px}.site-header{margin:0 4%;padding:28px 0;display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid var(--rule)}.wordmark{font-size:23px;font-weight:800;text-decoration:none;white-space:nowrap}.wordmark span{font-size:11px;vertical-align:top;margin-left:4px}nav{display:flex;align-items:center;gap:24px;font-size:12px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.hero{padding:40px 4% 0}.hero-meta,.hero-bottom,.project-top{display:flex;justify-content:space-between;gap:24px}.hero-meta,.eyebrow,.project-top,.date{font-size:12px;letter-spacing:.06em}.hero h1{font-size:clamp(50px,7.7vw,130px);font-weight:700;line-height:1.02;letter-spacing:-.07em;max-width:1300px;margin:75px 0 50px}.hero h1>span:last-child{display:block}.divider{color:var(--accent);font-weight:400}.hero-bottom{align-items:end;font-size:14px}.hero-bottom p{margin:0}.hero-bottom a{text-decoration:none}.hero-intro{max-width:760px;min-width:0;width:100%;font-size:clamp(16px,1.35vw,19px);line-height:1.65}.hero-intro p+p{margin-top:18px}@media(max-width:700px){.hero-bottom{flex-direction:column;align-items:flex-start;gap:24px}.hero-bottom a{max-width:none}}.rhythm{display:flex;gap:clamp(3px,1vw,18px);height:75px;margin-top:60px;align-items:end;overflow:hidden}.rhythm i{display:block;flex:1;background:var(--accent);height:100%}.rhythm i:nth-child(3n){height:64%}.rhythm i:nth-child(5n){height:36%}.section{padding:110px 4% 0}.section-heading{margin-bottom:55px}.eyebrow{margin:0 0 24px;text-transform:uppercase}h2{font-size:clamp(44px,6vw,90px);line-height:1.07;font-weight:600;letter-spacing:-.065em;margin:0}.red{color:var(--accent)}.project{margin-bottom:100px}.project-top{padding:14px 0;border-top:1px solid var(--rule)}.image-frame{margin:0;overflow:hidden;background:var(--surface)}.image-frame img{width:100%;height:auto;display:block;will-change:transform}.project-copy{display:grid;grid-template-columns:1.15fr 1fr;gap:12%;margin-top:28px}.project h3{font-size:clamp(28px,3.5vw,52px);line-height:1.15;letter-spacing:-.045em;margin:0;max-width:650px}.project-copy p{margin:0 0 20px;max-width:550px}details{border-top:1px solid var(--rule)}summary{cursor:pointer;list-style:none;padding:16px 0;display:flex;justify-content:space-between;gap:15px}summary::-webkit-details-marker{display:none}details[open] summary>span:last-child{transform:rotate(45deg)}details p{font-size:14px;max-width:680px}.media-link{display:inline-block;margin-top:15px}.practice{padding-top:20px}.practice-row{display:grid;grid-template-columns:60px 1fr 1fr;gap:30px;padding:35px 0;border-top:1px solid var(--rule);align-items:baseline}.practice-row h3{font-size:clamp(36px,5vw,70px);letter-spacing:-.06em;line-height:1.1;margin:0;font-weight:500}.practice-row p{max-width:420px;margin:0}.tools{display:grid;grid-template-columns:1fr 1.1fr;gap:8%;padding-bottom:90px}.experiments{padding-top:40px}.experiments summary{align-items:baseline;padding:26px 0}.experiments summary>span:first-child{font-size:23px;letter-spacing:-.04em}.experiments small{font-size:10px;text-transform:uppercase}.experiments details p{padding-bottom:20px}.experience{border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr 1.2fr;gap:5%}.job{display:grid;grid-template-columns:100px 1fr;gap:22px;border-top:1px solid var(--rule);padding:25px 0}.job h3{font-size:21px;line-height:1.3;margin:0}.job p{margin:8px 0;font-size:13px}.job .date{margin:0}.job-description{color:var(--muted);max-width:480px}.contact{margin-top:110px;padding-top:65px;padding-bottom:100px;background:var(--accent);color:#fff8ec}.contact h2{font-size:clamp(55px,8vw,120px);margin-bottom:50px}.contact em{font-style:normal}.contact a{display:block;width:fit-content;margin-top:22px}.email{font-size:clamp(18px,3vw,38px);letter-spacing:-.04em}footer{padding:28px 4%;display:flex;justify-content:space-between;font-size:12px}.reveal.is-ready{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--delay,0ms)}.reveal.is-ready.is-visible{opacity:1;transform:none}
/* Pass 2: editorial rhythm and hierarchy. */
.project:nth-of-type(2){width:86%;margin-left:auto}.project:nth-of-type(3){width:94%}.project:nth-of-type(2) .project-copy{grid-template-columns:1.1fr 1fr;gap:8%}.section-heading>p:last-child:not(.eyebrow){max-width:320px;margin-top:24px}.practice+.tools{margin-top:30px}.jobs{padding-top:7px}.project-copy details{margin-top:28px}.project-copy summary{font-size:13px}.media-link{font-size:13px}.contact a:hover{text-decoration-thickness:2px}
/* Pass 3: compact screens, keyboard targets and motion preferences. */
nav a{padding:9px 0;min-height:44px;display:inline-flex;align-items:center}summary{min-height:48px}section[id]{scroll-margin-top:24px}
@media(min-width:1600px){body{max-width:1900px;margin:auto}}
@media(max-width:1000px){.site-header{align-items:start}nav{justify-content:flex-end;flex-wrap:wrap;gap:0 18px;max-width:520px}.experience{display:block}.experience .section-heading{margin-bottom:40px}.tools{gap:5%}.experiments summary{flex-wrap:wrap}.experiments small{margin-left:auto}.hero h1{margin-top:55px}}
@media(max-width:700px){.site-header{display:block;padding:18px 0 12px}nav{justify-content:flex-start;gap:0 17px;margin-top:14px;font-size:11px;max-width:none}.hero{padding-top:26px}.hero-meta{font-size:10px;gap:12px}.hero h1{font-size:clamp(43px,10.6vw,74px);letter-spacing:-.065em;margin:48px 0 30px}.hero-bottom{font-size:12px;gap:18px}.hero-bottom a{max-width:140px}.rhythm{height:44px;margin-top:35px}.section{padding-top:70px}.section-heading{margin-bottom:30px}.project,.project:nth-of-type(2),.project:nth-of-type(3){width:100%;margin:0 0 60px}.project-top{font-size:9px;letter-spacing:.02em;gap:10px}.project-copy,.project:nth-of-type(2) .project-copy{display:block;margin-top:20px}.project h3{font-size:34px;margin-bottom:20px}.project-copy p{font-size:14px}.practice{padding-top:10px}.practice-row{grid-template-columns:25px 1fr;gap:16px;padding:26px 0}.practice-row>span{font-size:11px}.practice-row p{grid-column:2;font-size:14px}.tools{display:block;padding-bottom:50px}.experiments{padding-top:0}.experiments summary>span:first-child{font-size:20px}.experiments small{font-size:9px}.experience{padding-top:55px}.job{grid-template-columns:74px 1fr;gap:15px}.job h3{font-size:19px}.contact{margin-top:65px;padding-top:45px;padding-bottom:60px}.contact h2{font-size:clamp(49px,10vw,70px);margin-bottom:35px}.email{font-size:clamp(16px,4.6vw,29px);overflow-wrap:anywhere}footer{gap:20px;font-size:10px}footer a{min-height:44px}.image-frame img{transform:none!important;will-change:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal.is-ready{opacity:1;transform:none}.image-frame img{transform:none!important;will-change:auto}}
@media print{body{background:white;color:black}.site-header nav,.rhythm,.skip{display:none}.section{padding-top:35px}.hero h1{font-size:48px}.reveal.is-ready{opacity:1;transform:none}.contact{background:white;color:black}.project{break-inside:avoid}.image-frame img{transform:none!important}}

/* Visual review: stronger type, restrained accent. */
.hero h1,h2,.project h3,.practice-row h3{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:-.055em}
.hero h1{font-size:clamp(48px,7.1vw,120px)}
.contact{background:transparent;color:var(--ink);border-top:1px solid var(--accent)}
.contact em,.contact .email{color:var(--accent)}
.rhythm{height:38px;opacity:.95}
@media(max-width:700px){.hero h1{font-size:clamp(40px,10.2vw,70px)}.rhythm{height:25px}}

/* Full portfolio: readable originals and campaign-level grouping. */
.portfolio{padding:65px 4%}.portfolio>h1{font-family:Arial,sans-serif;font-size:clamp(48px,7vw,110px);letter-spacing:-.06em;line-height:1.05;max-width:1100px;margin:25px 0}.intro{max-width:760px;font-size:18px}.work-nav{flex-wrap:wrap;justify-content:flex-start;margin:35px 0 70px;border-block:1px solid var(--rule);padding:12px 0}.campaign{margin:70px 0}.campaign h2,.live-title{font-size:clamp(30px,4vw,55px);margin-bottom:30px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px;align-items:start}.work-image{margin:0;min-width:0}.work-image img,.feature-image img{display:block;width:100%;height:auto}.work-image a{display:block;cursor:zoom-in}.work-image figcaption{font-size:13px;margin-top:12px}.media-slot{border-top:1px solid var(--rule);margin-top:16px;font-size:13px;color:var(--muted)}.media-slot video,.media-slot audio{width:100%;margin-top:16px}.radio-entry{display:grid;grid-template-columns:90px 1fr 1fr;gap:20px;border-top:1px solid var(--rule);padding:25px 0;align-items:baseline}.radio-entry h3{font-size:25px;margin:0}.radio-entry .media-slot{border:0;margin:0}.client-logos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:25px}.client-logos figure{margin:0}.client-logos img{width:100%;height:100px;object-fit:contain}.client-logos figcaption{font-size:11px;text-align:center}.all-work{margin:30px 0 90px;font-size:21px}.feature-image{display:block}.project h3 a{text-decoration:none}.lightbox{border:0;background:var(--page);color:var(--ink);max-width:96vw;max-height:95vh;padding:20px}.lightbox::backdrop{background:#000d}.lightbox img{display:block;max-width:100%;height:auto;margin:auto}.lightbox button{position:sticky;top:0;display:block;margin:0 0 15px auto;padding:12px 20px;background:var(--ink);color:white;border:0;font:inherit;cursor:pointer}.lightbox button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.lightbox p{margin-bottom:0}@media(max-width:700px){.gallery{grid-template-columns:1fr}.portfolio{padding-top:35px}.work-nav{margin-bottom:40px}.client-logos{grid-template-columns:repeat(3,minmax(0,1fr))}.radio-entry{grid-template-columns:65px 1fr}.radio-entry .media-slot{grid-column:2}.campaign{margin:50px 0}}

/* Additional selected work. */
.campaign-video{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;background:var(--ink)}.new-work{border-top:1px solid var(--rule);padding:28px 0}.new-work h3{font-size:28px;letter-spacing:-.04em}.new-work p{max-width:850px}

/* Media category structure. */
.work-category{margin:0 0 65px;border-top:1px solid var(--rule);padding-top:18px}.category-top{display:flex;justify-content:space-between;gap:20px;font-size:12px}.category-copy{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;margin:28px 0 35px;align-items:start}.category-copy h3{font:700 clamp(32px,4.5vw,65px)/1.1 Arial,Helvetica,sans-serif;letter-spacing:-.055em;margin:0}.category-copy h3 a{text-decoration:none}.category-copy p{margin:0;max-width:500px}.featured-caption{display:flex;justify-content:space-between;gap:25px;margin-top:18px;font-size:14px}.featured-caption a{font-weight:700}.work-category .feature-image img{aspect-ratio:16/9;object-fit:cover}@media(max-width:700px){.category-top{font-size:10px}.category-copy{display:block;margin:24px 0}.category-copy p{font-size:14px;margin-top:18px}.featured-caption{display:block}.featured-caption span{display:block;margin-top:8px}.work-category{margin-bottom:45px}}

/* Wrapping and narrow-screen resilience. */
.category-copy{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.category-copy>*{min-width:0;overflow-wrap:anywhere}.category-top,.featured-caption{flex-wrap:wrap;row-gap:12px}.category-top>a,.featured-caption>*{min-width:0;overflow-wrap:anywhere}.category-top>span{flex-shrink:0}.gallery>*{min-width:0}.work-nav a{overflow-wrap:anywhere}iframe,img,video,audio{max-width:100%}@media(max-width:850px){.category-copy{grid-template-columns:1fr;gap:20px}.featured-caption{flex-direction:column;gap:8px}}@media(max-width:480px){.category-top{flex-direction:column;gap:8px}.category-copy h3{font-size:clamp(30px,9vw,42px)}}

/* Real project imagery in every media category. Preserve artwork without cropping. */
.work-category .category-image{background:var(--surface);overflow:hidden}.work-category .category-image img{aspect-ratio:auto;width:100%;height:auto;max-height:680px;object-fit:contain}.work-category .client-image{display:flex;align-items:center;justify-content:center;min-height:clamp(220px,32vw,430px);background:#fff}.work-category .client-image img{width:200px;max-width:55%;height:auto}@media(max-width:700px){.work-category .category-image img{max-height:500px}}

/* Selected broadcast spots: one full-width slide, with deliberate navigation. */
.broadcast-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;gap:24px;position:relative;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface)}
.broadcast-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.broadcast-media{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.broadcast-play{display:block;width:100%;height:100%;position:relative;color:white}
.broadcast-play[hidden]{display:none}.broadcast-play img{display:block;width:100%;height:100%;object-fit:contain}
.broadcast-media iframe{width:100%;height:100%;border:0;display:block}
.play-label{position:absolute;left:24px;bottom:24px;padding:12px 18px;background:var(--ink);color:#fff;font-size:14px;font-weight:700}
.broadcast-caption{display:flex;justify-content:space-between;gap:24px;padding:20px 0 16px}.broadcast-caption h4{font-size:clamp(20px,2.5vw,32px);line-height:1.2;margin:8px 0}.broadcast-caption .eyebrow{color:var(--accent)}.broadcast-caption p{font-size:13px;max-width:310px;margin:0}
.broadcast-controls{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-top:12px}.broadcast-controls[hidden]{display:none}.broadcast-controls button{background:transparent;border:1px solid var(--rule);color:var(--ink);width:48px;height:48px;font:24px Arial;cursor:pointer}.broadcast-controls button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.broadcast-count{font-size:13px;font-variant-numeric:tabular-nums;min-width:42px;text-align:center}.broadcast-slider :focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
@media(max-width:700px){.broadcast-caption{display:block}.broadcast-caption p{margin-top:10px}.play-label{left:12px;bottom:12px;padding:10px 12px;font-size:12px}.broadcast-controls{margin-top:8px}}
@media print{.broadcast-track{display:block;overflow:visible}.broadcast-slide{break-inside:avoid;margin-bottom:20px}.broadcast-controls,.play-label{display:none}}

/* Website previews keep their original proportions inside a consistent frame. */
.website-preview{display:block;aspect-ratio:16/10;background:var(--surface);overflow:hidden}.website-preview img{display:block;width:100%;height:100%;object-fit:contain}.website-slider .broadcast-caption h4{margin:0}.website-slider .broadcast-caption h4 a{text-decoration:none}.radio-spots{margin-top:30px}.radio-spots .radio-entry{grid-template-columns:85px minmax(0,1fr) minmax(260px,1fr);align-items:center}.radio-entry audio{display:block;width:100%;min-width:0}.radio-spots .radio-entry h3{font-size:clamp(20px,2.4vw,28px)}@media(max-width:700px){.radio-spots .radio-entry{grid-template-columns:65px minmax(0,1fr);gap:12px}.radio-entry audio{grid-column:1/-1}.website-preview{aspect-ratio:4/3}}

/* Decorative scroll response without moving the surrounding layout. */
.rhythm i{transform-origin:center bottom}
@media(prefers-reduced-motion:reduce){.rhythm i{transform:none!important}}

/* One-page work collections: bounded frames and media loaded only when needed. */
.collection-media{height:clamp(260px,46vw,560px);background:var(--surface)}.collection-media>a{display:block;width:100%;height:100%;cursor:zoom-in}.collection-media img,.collection-media video{display:block;width:100%;height:100%;object-fit:contain}.collection-slider details{max-width:760px;margin:0 0 18px}.collection-slider .broadcast-caption h4{font-size:clamp(19px,2.4vw,30px)}.collection-slider .broadcast-caption{align-items:start}.publication-link{font-size:14px;margin-top:24px}#work>.work-nav{margin:0 0 40px;font-size:13px;gap:12px 24px}.collection-slider .broadcast-slide{align-self:start}@media(max-width:700px){.collection-media{height:320px}.collection-slider .broadcast-caption>a{display:block;margin-top:12px}}


/* Portrait space beside the personal introduction. */
.hero .hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);column-gap:clamp(32px,6vw,100px);row-gap:24px;align-items:start}
.hero-bottom>.hero-intro{grid-column:1;grid-row:1}
.hero-portrait{grid-column:2;grid-row:1/3;width:100%;max-width:340px;aspect-ratio:4/5;background:var(--ink);object-fit:cover;justify-self:end}
.hero-bottom>a{grid-column:1;grid-row:2;justify-self:start;display:inline-flex;align-items:center;min-height:44px;max-width:none}
@media(max-width:850px){
 .hero .hero-bottom{grid-template-columns:minmax(0,1fr);gap:24px}
 .hero-portrait{grid-column:1;grid-row:2;width:min(240px,100%);justify-self:start}
 .hero-bottom>a{grid-column:1;grid-row:3;max-width:none}
}
@media print{.hero .hero-bottom{display:block}.hero-portrait{display:none}}


/* Clear navigation on the artwork, with native swipe and optional mouse dragging. */
.broadcast-slider{position:relative}
.broadcast-slider .broadcast-controls{position:absolute;top:var(--media-mid,160px);left:14px;right:14px;height:0;margin:0;justify-content:space-between;pointer-events:none;z-index:2}
.broadcast-slider .broadcast-controls[hidden]{display:none}
.broadcast-slider .broadcast-controls button{pointer-events:auto;flex:none;width:52px;height:52px;border:1px solid #fff8;background:#191919e8;color:#fff;font:30px Arial;box-shadow:0 2px 12px #0003;border-radius:50%;transition:background .15s,box-shadow .15s}
.broadcast-slider .broadcast-controls button:hover{background:var(--accent);box-shadow:0 3px 18px #0005}
.broadcast-slider .broadcast-controls button:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px var(--accent)}
.broadcast-slider .broadcast-count{position:absolute;left:50%;top:calc(var(--media-half,160px) - 40px);transform:translateX(-50%);min-width:58px;padding:5px 12px;border-radius:20px;background:#191919e8;color:#fff;white-space:nowrap}
.broadcast-track.is-grabbable,.broadcast-track.is-grabbable a,.broadcast-track.is-grabbable img{cursor:grab}
.broadcast-track.is-dragging,.broadcast-track.is-dragging *{cursor:grabbing!important;user-select:none}
.broadcast-track.is-dragging{scroll-snap-type:none;scroll-behavior:auto}
.broadcast-track img{-webkit-user-drag:none}
@media(max-width:700px){.broadcast-slider .broadcast-controls{left:10px;right:10px}.broadcast-slider .broadcast-controls button{width:46px;height:46px;font-size:27px}}
@media print{.broadcast-slider .broadcast-controls{display:none}}

/* An editorial lead that can accept a publication photograph later. */
.collection-media>.editorial-preview{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(32px,7vw,100px);background:var(--surface);text-decoration:none;cursor:pointer;gap:24px}
.editorial-preview .eyebrow{margin:0;color:var(--accent)}
.editorial-title{font:700 clamp(48px,7vw,100px)/1 Arial,Helvetica,sans-serif;letter-spacing:-.055em}
.editorial-read{font-size:14px;text-decoration:underline;text-underline-offset:5px}
@media(max-width:700px){.collection-media>.editorial-preview{padding:40px 55px}.editorial-title{font-size:50px}}


/* Work modules settle gently at content boundaries; long originals remain scrollable. */
html.portfolio-chapters{scroll-snap-type:y proximity;scroll-padding-top:24px}
.portfolio-chapters main>.section:not(#work),.portfolio-chapters main>.hero,.portfolio-chapters .work-category{scroll-snap-align:start;scroll-snap-stop:normal}
.portfolio-chapters .work-category{margin-bottom:0;scroll-margin-top:0}
.portfolio-chapters .category-top{flex-direction:row;gap:12px}
.portfolio-chapters .collection-slider details{margin-bottom:0}
@media(prefers-reduced-motion:reduce){html.portfolio-chapters{scroll-snap-type:none}}
@media print{html.portfolio-chapters{scroll-snap-type:none}}
/* Compact audio listings keep the radio module in the same frame. */
.portfolio-chapters .radio-spots{margin-top:8px}
.portfolio-chapters .radio-spots>.eyebrow{display:none}
.portfolio-chapters .radio-spots .radio-entry{padding:10px 0;gap:8px 16px}
.portfolio-chapters .radio-entry .eyebrow{font-size:9px;margin:0 0 4px}
.portfolio-chapters .radio-spots .radio-entry h3{font-size:20px}
.portfolio-chapters .radio-entry audio{height:34px}
@media(max-width:700px){.portfolio-chapters .radio-spots .radio-entry{padding:8px 0;gap:6px 12px}.portfolio-chapters .radio-spots .radio-entry h3{font-size:18px}}
.portfolio-chapters .radio-spots>.eyebrow{display:block;font-size:11px;margin:0 0 8px}
.portfolio-chapters .radio-entry .eyebrow{display:none}


/* Image-first hierarchy: content determines the module's height. */
html.portfolio-chapters{scroll-snap-type:y proximity}
.portfolio-chapters .work-category{min-height:0;padding-top:24px;padding-bottom:56px}
.portfolio-chapters .category-copy{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin:18px 0 24px;align-items:baseline}
.category-copy h3,.portfolio>h1{font-size:clamp(28px,2.8vw,40px);line-height:1.15;letter-spacing:-.035em}
.category-copy p,.intro{font-size:14px;line-height:1.5;max-width:480px}
#work-title{font-size:clamp(38px,4vw,58px)}
.portfolio-chapters .work-category .collection-media,.collection-media{height:auto;aspect-ratio:var(--artwork-ratio,16 / 9);background:transparent}
.collection-media.portrait-media{width:min(100%,900px);margin-inline:auto}
.collection-media.landscape-media{width:100%}
.portfolio-chapters .work-category .broadcast-media{height:auto;aspect-ratio:16 / 9}
.portfolio-chapters .work-category .website-preview{height:auto;aspect-ratio:16 / 10}
.broadcast-track{align-items:flex-start}
.broadcast-caption h4,.collection-slider .broadcast-caption h4{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.02em}
.broadcast-caption .eyebrow{font-size:10px;line-height:1.5;margin:0 0 8px;letter-spacing:.04em}
.broadcast-caption>a{font-size:13px}
.collection-slider details{font-size:13px}
#flow-state .collection-media{background:transparent}
#flow-state .broadcast-caption{max-width:900px;margin-inline:auto}
@media(max-width:700px){.portfolio-chapters .category-copy{display:block;margin:16px 0 20px}.category-copy h3{font-size:28px}.category-copy p{font-size:13px;margin-top:10px}.broadcast-caption h4,.collection-slider .broadcast-caption h4{font-size:20px}.portfolio-chapters .work-category{padding-bottom:40px}}

.broadcast-slider .broadcast-controls{left:calc(var(--media-inset,0px) + 14px);right:calc(var(--media-inset,0px) + 14px)}
@media(max-width:700px){.broadcast-slider .broadcast-controls{left:calc(var(--media-inset,0px) + 10px);right:calc(var(--media-inset,0px) + 10px)}}

/* Controls live inside the actual media frame, so counters cannot collide with captions. */
.collection-media,.website-preview{position:relative}
.broadcast-slider .broadcast-controls{position:absolute;inset:0;height:auto;display:block;margin:0;pointer-events:none}
.broadcast-slider .broadcast-controls[hidden]{display:none}
.broadcast-slider .broadcast-controls button{position:absolute;top:50%;transform:translateY(-50%)}
.broadcast-slider .broadcast-controls button[data-direction="-1"]{left:14px}
.broadcast-slider .broadcast-controls button[data-direction="1"]{right:14px}
.broadcast-slider .broadcast-count{position:absolute;top:12px;bottom:auto;left:50%;transform:translateX(-50%);font-size:12px;min-width:50px;padding:5px 10px;line-height:1.5}
.broadcast-slider .broadcast-caption{position:relative;padding:20px 0 16px;gap:16px}
.broadcast-caption>div{min-width:0}
.broadcast-caption h4{overflow-wrap:anywhere}
.broadcast-caption>a{flex-shrink:0}
.broadcast-track{overflow-anchor:none}
.portfolio-chapters .work-category{scroll-margin-top:0;padding-bottom:64px}
@media(max-width:700px){.broadcast-slider .broadcast-controls button[data-direction="-1"]{left:10px}.broadcast-slider .broadcast-controls button[data-direction="1"]{right:10px}.broadcast-slider .broadcast-caption{display:block;padding:16px 0}.broadcast-caption>a{display:inline-block;margin-top:8px}.portfolio-chapters .work-category{padding-bottom:48px}}
@media print{.broadcast-slider .broadcast-controls{display:none}}

.website-media{position:relative}

/* Landscape work keeps its captions in view without shrinking portrait originals. */
.collection-media,.broadcast-media,.website-media{margin-inline:auto}
.broadcast-caption,.collection-slider details{width:100%;max-width:var(--slide-media-width,100%);margin-inline:auto}
#flow-state .broadcast-caption{max-width:var(--slide-media-width,900px)}
@media(min-width:900px){.broadcast-media,.website-media{width:100%}}

/* The slide number gets its own place in the caption rather than covering the work. */
.caption-meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px}
.caption-meta .eyebrow{margin-bottom:0;min-width:0}
.broadcast-slider .caption-meta .broadcast-count{position:static;transform:none;min-width:44px;padding:0;background:none;color:var(--muted);font-size:12px;line-height:1.5;flex-shrink:0;text-align:right;border-radius:0}
.broadcast-count[hidden]{display:none}

.broadcast-track{overflow-y:hidden}
.broadcast-caption>div{flex:1}

/* Livestream results: a compact row with a quick count on entering view. */
.livestream-results{width:100%;max-width:var(--slide-media-width,100%);margin:0 auto 20px}
.livestream-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start;border-block:1px solid var(--rule);padding:18px 0}
.livestream-metrics>div{min-width:0;text-align:center}
.livestream-metrics strong{display:block;font-family:Arial,Helvetica,sans-serif;font-size:clamp(24px,3.8vw,44px);font-weight:700;letter-spacing:-.055em;line-height:1.05;white-space:nowrap;font-variant-numeric:tabular-nums}
.livestream-metrics>div:last-child strong{color:var(--accent)}
.livestream-metrics .metric-label{display:block;font-size:12px;margin-top:8px;line-height:1.4}
.livestream-results .metric-note{font-size:11px;margin:14px 0 0;color:var(--muted)}
@media(max-width:420px){.livestream-metrics{gap:10px}.livestream-metrics strong{font-size:clamp(17px,5.3vw,22px)}.livestream-metrics .metric-label{font-size:11px}}

/* Compact desktop livestream caption, results and disclosure. */
@media(min-width:900px){
 #livestreams-1 .broadcast-caption,#livestreams-1 .livestream-results,#livestreams-1>details{max-width:min(var(--slide-media-width,100%),760px);margin-inline:auto}
 #livestreams-1 .broadcast-caption{padding:12px 0 8px}
 #livestreams-1 .broadcast-caption h4{font-size:20px;margin:4px 0}
 #livestreams-1 .caption-meta{margin-bottom:4px}
 #livestreams-1 .livestream-results{margin-bottom:10px}
 #livestreams-1 .livestream-metrics{gap:28px;padding:12px 24px}
 #livestreams-1 .livestream-metrics strong{font-size:32px}
 #livestreams-1 .metric-label{margin-top:5px}
 #livestreams-1 .metric-note{margin-top:8px;text-align:center}
}

/* A shallow, scroll-responsive client strip just below the introduction. */
.client-strip{padding:24px 4% 12px}
.client-strip-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px;color:var(--muted)}
.client-strip-window{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;overscroll-behavior-x:contain}
.client-strip-window:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.client-strip-track{display:flex;align-items:center;gap:32px;list-style:none;margin:0;padding:0 0 8px;width:max-content}
.client-strip-track li{flex:0 0 160px;width:160px}
.client-strip-track img{display:block;width:160px;height:88px;object-fit:contain;mix-blend-mode:multiply}
.client-strip+#work{padding-top:55px}
@media(max-width:700px){.client-strip{padding-top:20px}.client-strip-track{gap:22px}.client-strip-track li,.client-strip-track img{width:132px}.client-strip-track li{flex-basis:132px}.client-strip-track img{height:76px}.client-strip+#work{padding-top:40px}}
@media print{.client-strip-window{overflow:visible}.client-strip-track{width:auto;flex-wrap:wrap}}

.client-strip-secondary{padding-left:0;padding-right:0}

/* Space visible artwork, compensating for whitespace within source logos. */
.client-strip-track{gap:40px;--logo-scale:1}
.client-strip-track li{flex:0 0 calc(var(--logo-w)*var(--logo-scale));width:calc(var(--logo-w)*var(--logo-scale))}
.client-logo-artwork{display:block;position:relative;overflow:hidden;width:100%;height:88px}
.client-strip-track .client-logo-artwork img{position:absolute;max-width:none;width:calc(var(--logo-iw)*var(--logo-scale));height:calc(var(--logo-ih)*var(--logo-scale));left:calc(var(--logo-x)*var(--logo-scale));top:50%;margin-top:calc(var(--logo-y)*var(--logo-scale));object-fit:fill}
@media(max-width:700px){.client-strip-track{gap:28px;--logo-scale:.82}.client-logo-artwork{height:76px}}

/* Consistent collection stages keep portrait and landscape slides from shifting the page. */
.portfolio-chapters .work-category .collection-media,.collection-media,.collection-media.portrait-media,.collection-media.landscape-media{width:min(100%,1000px);height:clamp(280px,64svh,640px);aspect-ratio:auto;background:transparent;margin-inline:auto}
.collection-media img,.collection-media video{width:100%;height:100%;object-fit:contain}
.collection-slider .broadcast-caption{min-height:88px}
@media(max-width:700px){.portfolio-chapters .work-category .collection-media,.collection-media,.collection-media.portrait-media,.collection-media.landscape-media{height:clamp(240px,46svh,420px)}.collection-slider .broadcast-caption{min-height:96px}}
@media print{.portfolio-chapters .work-category .collection-media,.collection-media{height:auto;aspect-ratio:var(--artwork-ratio,16 / 9)}.collection-slider .broadcast-caption{min-height:0}}

/* Client logo rows move without a visible scrollbar. */
.client-strip-window{scrollbar-width:none;-ms-overflow-style:none}
.client-strip-window::-webkit-scrollbar{display:none;width:0;height:0}

/* Radio waveform presentation. */
#category-radio .radio-spots>.eyebrow{font-size:10px;color:var(--accent);margin-bottom:18px} #category-radio .radio-spots .radio-entry{display:grid;grid-template-columns:112px 66px minmax(160px,1fr) minmax(280px,.9fr);gap:24px;align-items:center;padding:18px 0;border-color:var(--rule)} #category-radio .radio-entry>span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums} #category-radio .radio-entry h3{font:600 24px/1.2 Arial,sans-serif;letter-spacing:-.025em} #category-radio .radio-entry div>.eyebrow{display:none} #category-radio .radio-entry audio{height:38px;width:100%} #category-radio .radio-art{width:112px;height:72px;background:var(--accent);display:flex;align-items:center;justify-content:center;gap:3px;padding:12px;border-radius:2px} #category-radio .radio-art i{display:block;width:3px;height:var(--h);background:#fff8ec;transform-origin:center} #category-radio .radio-entry:nth-of-type(even) .radio-art{background:var(--ink)} #category-radio .radio-entry.is-playing .radio-art i{animation:pulse .6s ease-in-out infinite alternate;animation-delay:var(--delay)} @keyframes pulse{ to{transform:scaleY(.35)}} @media(max-width:700px){ #category-radio .radio-spots .radio-entry{grid-template-columns:76px 1fr;gap:10px 16px;padding:18px 0} #category-radio .radio-art{grid-row:1/3;width:76px;height:66px;padding:8px;gap:2px} #category-radio .radio-art i{width:2px} #category-radio .radio-entry>span{grid-column:2;font-size:10px} #category-radio .radio-entry>div:not(.radio-art){grid-column:2} #category-radio .radio-entry h3{font-size:21px} #category-radio .radio-entry audio{grid-column:1/-1;margin-top:4px}} @media(prefers-reduced-motion:reduce){ #category-radio .radio-entry.is-playing .radio-art i{animation:none}}

#category-radio .radio-spots .radio-entry{padding:18px 0;grid-template-columns:112px 66px minmax(160px,1fr) minmax(280px,.9fr)}
@media(max-width:700px){#category-radio .radio-spots .radio-entry{grid-template-columns:76px 1fr}}

.hero-portrait{height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center}

/* Give the portrait more presence beside the introduction. */
@media(min-width:851px){.hero .hero-bottom{grid-template-columns:minmax(0,1fr) minmax(280px,400px);column-gap:clamp(28px,4vw,64px)}.hero-portrait{max-width:400px}}

/* Center the introductory copy alongside the portrait. */
@media(min-width:851px){.hero .hero-bottom{row-gap:20px;align-content:center}.hero-bottom>.hero-intro{align-self:end}.hero-bottom>a{align-self:start}.hero-portrait{align-self:center}}

/* Lead with personality, with professional positioning directly below. */
.hero h1.hero-idea-headline{font-size:clamp(48px,6.7vw,112px);margin:64px 0 24px;max-width:1400px;line-height:1.04;letter-spacing:-.055em}
.hero-role{font:600 clamp(20px,2.2vw,32px)/1.35 Arial,Helvetica,sans-serif;letter-spacing:-.025em;margin:0 0 46px;max-width:100%;text-wrap:balance}
.hero-role .divider{padding:0 .16em}
@media(max-width:700px){.hero h1.hero-idea-headline{font-size:clamp(36px,8.8vw,62px);margin:40px 0 20px}.hero-role{font-size:20px;line-height:1.4;margin-bottom:30px;text-wrap:initial}}

/* Tighten the transition from positioning to the personal introduction. */
.hero-role{margin-bottom:20px}
@media(max-width:700px){.hero-role{margin-bottom:20px}}

/* Compact desktop hero with the portrait starting at the headline baseline. */
@media(min-width:851px){
 .hero{display:grid;grid-template-columns:minmax(0,1fr) clamp(260px,25vw,340px);column-gap:clamp(28px,4vw,64px)}
 .hero-meta{grid-column:1/-1;grid-row:1}
 .hero h1.hero-idea-headline{grid-column:1/-1;grid-row:2;margin:36px 0 0;font-size:clamp(48px,6.2vw,100px)}
 .hero-role{grid-column:1;grid-row:3;margin:14px 0 14px;font-size:clamp(20px,2vw,28px);align-self:start}
 .hero .hero-bottom{display:contents}
 .hero-bottom>.hero-intro{grid-column:1;grid-row:4;align-self:start;font-size:clamp(15px,1.2vw,18px);line-height:1.55}
 .hero-intro p+p{margin-top:14px}
 .hero-bottom>a{grid-column:1;grid-row:5;margin-top:16px;align-self:start}
 .hero-portrait{grid-column:2;grid-row:3/6;align-self:start;width:100%;max-width:340px;justify-self:end}
 .hero .rhythm{grid-column:1/-1;grid-row:6;margin-top:28px;height:30px}
}
@media(min-width:851px) and (max-height:800px){
 .hero{padding-top:24px;grid-template-columns:minmax(0,1fr) 260px}
 .hero h1.hero-idea-headline{margin-top:24px;font-size:clamp(46px,5.6vw,86px)}
 .hero-bottom>.hero-intro{font-size:15px;line-height:1.45}
 .hero-intro p+p{margin-top:10px}
 .hero-role{font-size:22px;margin-top:10px;margin-bottom:10px}
 .hero .rhythm{margin-top:20px;height:24px}
}

/* Portrait matches the complete headline, role and body-copy lockup. */
@media(min-width:851px){
 .hero h1.hero-idea-headline{grid-column:1;grid-row:2;font-size:clamp(40px,4.7vw,76px);margin-top:36px}
 .hero-portrait{grid-column:2;grid-row:2/5;align-self:stretch;height:100%!important;min-height:0;aspect-ratio:auto!important;margin-top:36px;height:calc(100% - 36px)!important;object-fit:cover}
 .hero-bottom>a{grid-row:5}
}
@media(min-width:851px) and (max-height:800px){.hero h1.hero-idea-headline{margin-top:24px;font-size:clamp(38px,4.5vw,64px)}.hero-portrait{margin-top:24px;height:calc(100% - 24px)!important}}

@media(min-width:851px){.hero-portrait{contain:size}}

/* Snap the visible content edge, consistently accounting for section padding. */
html.portfolio-chapters{scroll-padding-top:24px}
.portfolio-chapters main>.hero{scroll-snap-align:none}
.portfolio-chapters .site-header{scroll-snap-align:start;scroll-margin-top:-24px}
.portfolio-chapters main>.section,.portfolio-chapters .work-category{scroll-snap-align:start;scroll-margin-top:calc(-1 * var(--snap-inset,0px));scroll-snap-stop:normal}
@media(prefers-reduced-motion:reduce){html.portfolio-chapters{scroll-snap-type:none}}

/* Slightly firmer desktop stops through Websites and Radio. */
@media(min-width:900px){.portfolio-chapters #category-websites,.portfolio-chapters #category-radio{scroll-snap-stop:always;padding-bottom:48px}}

/* Wheel navigation owns desktop chapter landings; anchors remain native. */
@media(min-width:900px){html.portfolio-chapters.section-step-scroll{scroll-snap-type:none;overscroll-behavior-y:none}}

/* Land on the section divider, flush with the viewport edge. */
html.portfolio-chapters{scroll-padding-top:0}
.portfolio-chapters .site-header{scroll-margin-top:0}
.portfolio-chapters main>.section,.portfolio-chapters .work-category{scroll-margin-top:0}

/* Let the final chapter settle higher with room below the footer. */
body{padding-bottom:clamp(140px,24vh,280px)}
@media print{body{padding-bottom:0}}

/* Prevent browser scroll anchoring from shifting explicit chapter landings. */
@media(min-width:900px){html.portfolio-chapters.section-step-scroll, .portfolio-chapters.section-step-scroll body{overflow-anchor:none}}

/* Natural page scrolling; horizontal project carousels retain their own snapping. */
html.portfolio-chapters{scroll-snap-type:none;overscroll-behavior-y:auto;overflow-anchor:auto;scroll-padding-top:0}
.portfolio-chapters .site-header,.portfolio-chapters main>.section,.portfolio-chapters .work-category{scroll-snap-align:none;scroll-snap-stop:normal;scroll-margin-top:0}

/* Always-visible project credits, aligned with the existing artwork and caption. */
.project-info{width:100%;max-width:var(--slide-media-width,100%);margin:0 auto 12px;font-size:13px;line-height:1.55;color:var(--muted);text-align:left}
.project-info p{margin:0 0 6px;max-width:100%}
.project-info p:last-child{margin-bottom:0}
.project-info strong{font-weight:600;color:var(--ink)}
.project-info a{font-size:12px}
#livestreams-1>.project-info{max-width:min(var(--slide-media-width,100%),760px)}

/* Give carousel navigation its own gutters when the viewport has room. */
@media(min-width:900px){
 .broadcast-slider{position:relative}
 .broadcast-slider .broadcast-track{width:calc(100% - 140px);margin-inline:auto}
 .broadcast-slider>.broadcast-controls{inset:auto;top:var(--controls-top);left:var(--controls-left);width:var(--controls-width);height:0}
 .broadcast-slider>.broadcast-controls button{top:0}
 .broadcast-slider>.broadcast-controls button[data-direction="-1"]{left:-68px}
 .broadcast-slider>.broadcast-controls button[data-direction="1"]{right:-68px}
}

/* The portfolio palette changes; original artwork keeps its own colors. */
:root{color-scheme:light;--page:#f3f1e9;--ink:#191919;--muted:#514f49;--rule:#aaa79f;--surface:#e8e5dc;--accent:#ac291d}
:root[data-theme="dark"]{color-scheme:dark;--page:#171717;--ink:#f3f1e9;--muted:#bdb9b0;--rule:#55534e;--surface:#252525;--accent:#f07868}
html{background:var(--page)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid var(--rule);border-radius:3px;background:transparent;color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.theme-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.theme-toggle>span:first-child{font-size:18px;line-height:1}
.skip{color:var(--page)}
.broadcast-media,.campaign-video,.play-label,.lightbox button{background:#191919}
.play-label,.lightbox button{color:#fff8ec}
#category-radio .radio-art{background:#ac291d}
#category-radio .radio-entry:nth-of-type(even) .radio-art{background:#303030}
:root[data-theme="dark"] .broadcast-slider .broadcast-controls button{background:#f3f1e9;color:#191919;border-color:#f3f1e9;box-shadow:0 2px 12px #0005}
:root[data-theme="dark"] .broadcast-slider .broadcast-controls button:hover{background:var(--accent);border-color:var(--accent)}
:root[data-theme="dark"] .client-strip-window{background:transparent;border-radius:0;padding-inline:0}
:root[data-theme="dark"] .client-strip-track img{filter:grayscale(1) invert(1) brightness(3);mix-blend-mode:screen;opacity:.88}
:root[data-theme="dark"] .client-image{background:#f3f1e9}
@media print{:root[data-theme="dark"]{color-scheme:light;--page:#fff;--ink:#191919;--muted:#514f49;--rule:#aaa79f;--surface:#e8e5dc;--accent:#ac291d}.theme-toggle{display:none}}

.broadcast-media>video{display:block;width:100%;height:100%;object-fit:contain}



@media(min-width:900px){#category-out-of-home .collection-media{width:min(100%,1120px)}}

/* More variation per scroll, with a little extra breathing room. */
.client-strip-track{gap:48px}
@media(max-width:700px){.client-strip-track{gap:32px}}

/* Keep experiment status labels in a shared column. */
.experiments summary{display:grid;grid-template-columns:minmax(0,1fr) max-content 16px;column-gap:20px;align-items:baseline}
.experiments summary small{margin-left:0;white-space:nowrap}
@media(max-width:480px){.experiments summary{column-gap:12px}.experiments summary>span:first-child{font-size:18px}.experiments small{font-size:9px}}

/* Cash Walk shares the compact livestream results treatment. */
#livestreams-2 .broadcast-caption,#livestreams-2 .livestream-results,#livestreams-2>.project-info,.cash-walk-format{max-width:min(var(--slide-media-width,100%),760px);margin-inline:auto}
.cash-walk-format{font-size:13px;color:var(--muted);margin-top:6px;margin-bottom:12px}
@media(min-width:900px){#livestreams-2 .broadcast-caption{padding:12px 0 8px}#livestreams-2 .livestream-results{margin-bottom:10px}#livestreams-2 .livestream-metrics{gap:28px;padding:12px 24px}#livestreams-2 .livestream-metrics strong{font-size:32px}#livestreams-2 .metric-label{margin-top:5px}#livestreams-2 .metric-note{margin-top:8px;text-align:center}}

/* Keep radio titles and players comfortably inside the frame on tablets. */
@media(min-width:701px) and (max-width:899px){
 #category-radio .radio-spots .radio-entry{grid-template-columns:96px minmax(0,1fr);gap:10px 20px}
 #category-radio .radio-art{grid-row:1/3;width:96px;height:72px}
 #category-radio .radio-entry>span,#category-radio .radio-entry>div:not(.radio-art){grid-column:2}
 #category-radio .radio-entry audio{grid-column:1/-1;margin-top:4px}
}

/* Oaklawn: the approved, compact search-results row. */
.oaklawn-results{width:100%;max-width:var(--slide-media-width,100%);margin:8px auto 18px;padding-top:20px;border-top:1px solid var(--rule)}
.oaklawn-results-intro{display:flex;justify-content:space-between;gap:24px;align-items:baseline}.oaklawn-results-intro p{margin:0;font-size:12px}.oaklawn-results-intro p:first-child{color:var(--accent);font-weight:700}.oaklawn-results-intro p:last-child{color:var(--muted)}
.oaklawn-metrics{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:32px;margin:20px 0 16px}.oaklawn-metrics .metric{min-width:0}.oaklawn-metrics .number{font-size:clamp(36px,4.5vw,64px);line-height:1.08;letter-spacing:-.06em;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0 0 10px}.oaklawn-metrics .metric:last-child .number{color:var(--accent)}.oaklawn-metrics .number small{font-size:.44em;font-weight:650;letter-spacing:-.025em;margin-left:7px}.oaklawn-metrics h3{font-family:inherit;font-size:13px;font-weight:600;letter-spacing:normal;line-height:1.5;margin:0 0 6px}.oaklawn-metrics .context{font-size:11px;line-height:1.5;color:var(--muted);margin:0}.oaklawn-results .qualification{font-size:10px;line-height:1.7;color:var(--muted);margin:0;max-width:870px}
@media(max-width:700px){.oaklawn-results-intro{display:block}.oaklawn-results-intro p+p{margin-top:8px}.oaklawn-metrics{grid-template-columns:1fr;gap:22px;margin:22px 0}.oaklawn-metrics .metric{display:grid;grid-template-columns:135px 1fr;column-gap:20px;align-items:center}.oaklawn-metrics .number{grid-row:1/3;font-size:46px;margin:0}.oaklawn-metrics h3{font-size:12px}.oaklawn-metrics .context{font-size:10px}}

/* Published articles retain their complete, original two-page spreads. */
.collection-media.article-spread{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:stretch}
.collection-media.article-spread>a{width:100%;height:100%;min-width:0}
.collection-media.article-spread img{width:100%;height:100%;object-fit:contain}

.collection-media.article-spread{grid-template-rows:minmax(0,1fr)}.collection-media.article-spread>a{min-height:0;overflow:hidden}

/* Scale Oaklawn results to their actual frame, including compact laptops. */
.oaklawn-results{container-type:inline-size}.oaklawn-results-intro{display:block}.oaklawn-results-intro p+p{margin-top:8px;max-width:65ch}.oaklawn-metrics{gap:clamp(18px,3cqi,36px)}.oaklawn-metrics .number{font-size:clamp(28px,6.8cqi,54px)}
@media(max-width:700px){.oaklawn-metrics .number{font-size:42px}.oaklawn-metrics{gap:22px}}

/* Original covers mark the beginning of each published article. */
.collection-media.article-spread.with-publication-cover{grid-template-columns:minmax(0,.32fr) minmax(0,2fr);column-gap:clamp(12px,2.4vw,30px);align-items:center}
.article-spread .article-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);height:100%;min-width:0;min-height:0}
.article-spread .article-pages>a{display:block;min-width:0;min-height:0;height:100%;overflow:hidden}
.collection-media.article-spread>a.publication-cover{height:auto;align-self:center;overflow:visible}
.article-spread .publication-cover img{height:auto;width:100%;display:block;box-shadow:0 8px 20px #0003}
@media(max-width:700px){.collection-media.article-spread.with-publication-cover{grid-template-columns:minmax(0,.36fr) minmax(0,2fr);column-gap:12px}}

.collection-media.article-spread.with-publication-cover{display:flex;justify-content:center;gap:clamp(12px,2vw,24px)}
.article-spread.with-publication-cover .article-pages{flex:0 1 auto;width:calc(clamp(280px,64svh,640px)*1.524);max-width:calc(86% - 24px)}
.collection-media.article-spread>a.publication-cover{flex:0 0 14%;width:14%;max-width:140px}
@media(max-width:700px){.article-spread.with-publication-cover .article-pages{max-width:calc(86% - 12px)}}

/* Give image-based work more presence on laptop and desktop screens. */
@media(min-width:900px){.portfolio-chapters .work-category .collection-media,.collection-media,.collection-media.portrait-media,.collection-media.landscape-media{width:min(100%,1120px)}}

/* A one-page feature retains its original format beside the publication cover. */
.article-spread.single-article-page .article-pages{grid-template-columns:minmax(0,1fr);width:calc(clamp(280px,64svh,640px)*.762);max-width:calc(86% - 24px)}

/* LOTTO launch has two supported metrics, using the shared replaying count-up. */
.lotto-launch-results .livestream-metrics{grid-template-columns:repeat(2,minmax(0,1fr));max-width:640px;margin-inline:auto}
#livestreams-3 .livestream-results{max-width:min(var(--slide-media-width,100%),760px)}

/* Independent, irregular accents keep the introduction feeling like sound. */
.rhythm i{transform:scaleY(.85);transition:transform 600ms cubic-bezier(.22,.61,.36,1);will-change:transform}
@media(prefers-reduced-motion:reduce){.rhythm i{animation:none;transform:none;will-change:auto}}

/* A fuller, uneven resting distribution; motion timing remains independent. */
.rhythm i:nth-child(1){height:72%}.rhythm i:nth-child(2){height:91%}.rhythm i:nth-child(3){height:58%}.rhythm i:nth-child(4){height:84%}.rhythm i:nth-child(5){height:100%}.rhythm i:nth-child(6){height:66%}.rhythm i:nth-child(7){height:87%}.rhythm i:nth-child(8){height:53%}.rhythm i:nth-child(9){height:78%}.rhythm i:nth-child(10){height:95%}.rhythm i:nth-child(11){height:62%}.rhythm i:nth-child(12){height:82%}.rhythm i:nth-child(13){height:48%}.rhythm i:nth-child(14){height:89%}.rhythm i:nth-child(15){height:70%}.rhythm i:nth-child(16){height:98%}.rhythm i:nth-child(17){height:56%}.rhythm i:nth-child(18){height:80%}.rhythm i:nth-child(19){height:93%}.rhythm i:nth-child(20){height:64%}.rhythm i:nth-child(21){height:86%}.rhythm i:nth-child(22){height:51%}.rhythm i:nth-child(23){height:76%}.rhythm i:nth-child(24){height:100%}.rhythm i:nth-child(25){height:68%}.rhythm i:nth-child(26){height:90%}.rhythm i:nth-child(27){height:59%}.rhythm i:nth-child(28){height:83%}.rhythm i:nth-child(29){height:96%}.rhythm i:nth-child(30){height:63%}.rhythm i:nth-child(31){height:88%}.rhythm i:nth-child(32){height:74%}

/* Preserve the interior detail of illustrated client emblems. */
:root[data-theme="dark"] .client-strip-track img[src*="arkansas-state-parks"],:root[data-theme="dark"] .client-strip-track img[src*="arkansas-state-police"]{filter:grayscale(1) invert(1) contrast(1.35);opacity:1}

/* Keep pointer clicks clean and keyboard focus visible. */
button{-webkit-user-select:none;user-select:none}
.broadcast-controls button,.broadcast-controls button *{-webkit-user-select:none;user-select:none}
.broadcast-controls button::selection{background:transparent}
.broadcast-slider .broadcast-controls button:focus:not(:focus-visible){outline:none}
.broadcast-slider .broadcast-controls button:focus-visible{outline:2px solid var(--accent);outline-offset:4px;box-shadow:none}

/* Solid, square-ended arrows echo the portfolio rhythm bars. */
.broadcast-controls button{display:inline-flex;align-items:center;justify-content:center}
.gallery-arrow{position:relative;display:block;width:24px;height:20px;pointer-events:none}
.gallery-arrow::before{content:"";position:absolute;left:0;top:8px;width:22px;height:4px;background:currentColor}
.gallery-arrow::after{content:"";position:absolute;right:1px;top:4px;width:12px;height:12px;border-top:4px solid currentColor;border-right:4px solid currentColor;transform:rotate(45deg)}
button[data-direction="-1"] .gallery-arrow{transform:rotate(180deg)}
@media(max-width:700px){.gallery-arrow{transform:scale(.8)}button[data-direction="-1"] .gallery-arrow{transform:rotate(180deg) scale(.8)}}
