/* All UI inherits the approved type, colour and motion tokens in style.css. */
:root{--preview-image-blur:6px}
.navigation-switch *{transition:none!important}
.header{view-transition-name:site-header}
.mobile-toggle{view-transition-name:site-mobile-toggle}
[data-transition-header-hidden]{visibility:hidden!important;view-transition-name:none!important}
.transition-header-overlay{position:fixed;inset:0;z-index:100;pointer-events:none}
.transition-header-overlay:not([inert]) :is(.header,.mobile-toggle){pointer-events:auto}
/* Scale down / from bottom, adapted from the supplied Codrops reference. */
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 ::view-transition{background:#090908;pointer-events:none}
 ::view-transition-group(root){animation:none}
 ::view-transition-image-pair(root){isolation:isolate}
 ::view-transition-old(root){animation:rolfe-page-scale-down .7s ease both;mix-blend-mode:normal;transform-origin:50% 50%;z-index:0}
 ::view-transition-new(root){animation:rolfe-page-from-bottom .6s ease both;mix-blend-mode:normal;z-index:1}
 ::view-transition-group(site-header),::view-transition-group(site-mobile-toggle){animation:none;z-index:2}
 ::view-transition-old(site-header),::view-transition-old(site-mobile-toggle){animation:none;opacity:0}
 ::view-transition-new(site-header),::view-transition-new(site-mobile-toggle){animation:none;opacity:1;mix-blend-mode:normal}
}
/* Keep page controls idle while the fixed header accepts the next navigation. */
html[data-page-transition=running] :is(#page-content,#home-content,.site-page-frame){pointer-events:none}
@keyframes rolfe-page-scale-down{to{opacity:0;transform:scale(.8)}}
@keyframes rolfe-page-from-bottom{from{transform:translateY(100%)}}
html.page-arrival .landscape{clip-path:inset(0);transition-property:transform,border-radius}
html.page-arrival .hero-heading-line>span{transform:none;transition:none}
.contact-panel-title{font-size:var(--type-section);font-weight:var(--weight-section);letter-spacing:var(--tracking-section);line-height:var(--leading-section);margin:20px 0 16px;color:var(--text-primary)}
.footer-legal{display:flex;gap:20px;flex-wrap:wrap;font-size:var(--type-small);line-height:var(--leading-small);color:var(--text-secondary)}
.footer-legal a:hover{color:var(--text-primary)}
.policy-reading{width:min(var(--measure-reading),calc(100% - 9vw));margin:0 auto;padding:0 0 100px;color:var(--text-primary)}
.policy-reading>section{margin-top:48px;scroll-margin-top:150px}
.policy-reading h2{font-size:var(--type-title);line-height:var(--leading-title);letter-spacing:var(--tracking-title);font-weight:400;margin:0 0 20px}
.policy-reading p{color:var(--text-secondary);margin:0 0 20px}
.policy-reading a:not(.action-button):not(.privacy-secondary),.spotify-permission a{text-decoration:underline;text-underline-offset:4px}
.privacy-actions{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin:20px 0}
.privacy-actions .action-button,.privacy-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;font-size:var(--type-control);line-height:var(--leading-control);border-radius:var(--radius-button)}
.privacy-secondary{border:1px solid #ffffff40;background:none;color:var(--text-primary)}
.privacy-actions button:disabled{opacity:.5;cursor:default}
.privacy-checkbox{display:flex;align-items:center;gap:12px;min-height:44px;font-size:var(--type-body);line-height:var(--leading-body);cursor:pointer}
.privacy-checkbox input{width:20px;height:20px;flex:none;accent-color:#e9e6dc}
.policy-table-wrap{overflow:auto;margin:24px 0;max-width:100%}
.policy-reading table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--type-small);line-height:var(--leading-body)}
.policy-reading caption{text-align:left;margin-bottom:12px;color:var(--text-secondary)}
.policy-reading th,.policy-reading td{padding:14px 12px;border-bottom:1px solid #ffffff30;vertical-align:top;overflow-wrap:anywhere}
.policy-reading th{font-weight:500}.policy-reading td{color:var(--text-secondary)}
.listening-module .spotify-player:has(.spotify-permission){height:auto;min-height:152px}
.spotify-permission{padding:16px;border:1px solid #ffffff20;border-radius:12px;background:#090908}
.spotify-permission p{font-size:var(--type-small);line-height:var(--leading-small);margin:0 0 12px;color:var(--text-secondary)}
.spotify-permission .spotify-permission-title{color:var(--text-primary)}
.spotify-permission .privacy-actions{margin:16px 0 0;gap:8px}
.spotify-permission .privacy-actions>*{flex:1 1 100%;font-size:var(--type-small)}
.dashboard-page :is(.studio-intro,.studio-services,.calculator-heading) h2{font-size:var(--type-title);line-height:var(--leading-title);letter-spacing:var(--tracking-title);font-weight:var(--weight-title)}
.dashboard-page .studio-intro h2{margin:31px 0 20px}.dashboard-page .studio-services h2{margin:24px 0}.dashboard-page .calculator-heading h2{margin:0}
@media(max-width:640px){.policy-reading{width:calc(100% - 48px);padding-bottom:72px}.policy-reading>section{margin-top:36px}.privacy-actions>*{flex:1 1 auto}.footer-legal{gap:16px}.dashboard-page .studio-intro h2{margin-top:25px}.dashboard-page .studio-services h2{margin:20px 0}}
.site-music-bar{position:fixed;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px;padding:2px 8px 2px 14px;border:1px solid #ffffff12;border-top:0;border-radius:0 0 10px 10px;background:#141412ee;backdrop-filter:blur(24px);color:var(--text-primary);transition:background .5s,border-color .5s,border-radius .5s,backdrop-filter .5s}
.site-music-bar[data-appearance=hero]{border-color:transparent;border-radius:0;background:transparent;backdrop-filter:none;text-shadow:0 1px 12px #0008}
.site-music-bar[data-appearance=hero] .site-music-artist{color:inherit;opacity:.75}
.site-music-bar[hidden]{display:none!important}
.site-music-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--type-small);line-height:var(--leading-small)}
.site-music-artist{color:var(--text-secondary)}
.site-music-controls{display:flex;gap:4px;flex:none}
.site-music-controls button{position:relative;display:grid;place-items:center;width:32px;height:32px;padding:8px;border:0;border-radius:var(--radius-button);background:none;color:inherit}
.site-music-controls button:hover{background:#ffffff10}
.site-music-controls svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.site-music-controls .music-play{display:none;fill:currentColor;stroke:none}
.site-music-bar[data-playing=false] .music-pause{display:none}
.site-music-bar[data-playing=false] .music-play{display:block}
.site-audio-host{position:relative;width:100%;height:152px;overflow:hidden;border-radius:12px}
.site-audio-host iframe{display:block;width:100%;height:152px;border:0;border-radius:12px}
.site-page-frame{position:fixed;z-index:1;inset:0;width:100%;height:100%;border:0;background:#090908}
.site-page-frame-pending{z-index:2;opacity:.001;pointer-events:none}
body.music-shell{height:100svh;min-height:0;overflow:hidden;background:#090908}
body.music-shell>:not(main):not(.site-page-frame):not(.site-music-bar):not(.transition-header-overlay){display:none!important}
/* Keep the original dashboard and audio iframe mounted while another page is shown. */
body.music-shell>main{position:fixed!important;left:-200vw!important;top:0!important;width:100%!important;pointer-events:none}
/* The retained audio document is inactive. Its fixed header must not compete
   with the visible page's named header snapshot or receive navigation clicks. */
body.music-shell>main .header{visibility:hidden!important;view-transition-name:none!important;pointer-events:none!important}
html:has(>body.music-shell){overflow:hidden}
.music-active{scroll-padding-top:146px}
@media(min-width:641px){html.music-active .portfolio-page .page-heading{padding-top:156px}}
@media(max-width:640px){
 /* The player belongs to the viewport on phones, independently of header geometry. */
 .site-music-bar,.site-music-bar[data-appearance=hero]{top:auto!important;left:0!important;right:0;bottom:0;width:auto!important;gap:6px;min-height:48px;padding:2px max(8px,env(safe-area-inset-right)) calc(2px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border:0;border-top:1px solid #ffffff20;border-radius:0;background:#141412f5;backdrop-filter:blur(24px);text-shadow:none}
 .site-music-bar[data-appearance=hero] .site-music-artist{color:var(--text-secondary);opacity:1}
 .site-music-controls button{width:44px;height:44px}
 .music-active{scroll-padding-top:90px;scroll-padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 html.music-active>body:not(.music-shell){padding-bottom:calc(52px + env(safe-area-inset-bottom))}
}
.nav-service-visual{position:absolute;inset:0;opacity:0;transition:opacity .4s var(--ease)}
.nav-service-visual.active{opacity:1}
.nav-service-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(145deg,#09090833,#09090877);pointer-events:none}
.explore-preview .nav-preview-background{opacity:1;transform:scale(1.08);filter:blur(var(--preview-image-blur)) saturate(.65) brightness(.8)}
.explore-preview .nav-service-icon{z-index:1;left:50%;top:50%;width:176px;height:176px;object-fit:contain;opacity:1;transform:translate(-50%,-50%);filter:drop-shadow(0 4px 18px #0003)}
#panel-experiences .image-card>img{filter:blur(var(--preview-image-blur)) saturate(.65) brightness(.75);transform:scale(1.08)}
.nav-approach-symbol{position:absolute;left:50%;top:30%;width:120px;height:120px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 4px 18px #0003)}
.nav-approach-symbol img{display:block;width:100%;height:100%;object-fit:contain}
.process-visual{position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:0;height:100%;border-radius:13px;background:#141412}
.process-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(145deg,#09090810,#09090855);pointer-events:none}
.process-visual .process-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);filter:blur(var(--preview-image-blur)) saturate(.65) brightness(.8)}
.process-visual .process-icon{position:absolute;z-index:1;left:50%;top:50%;width:clamp(112px,14vw,176px);height:clamp(112px,14vw,176px);object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 4px 18px #0003)}
@media(max-width:640px){.process-visual{border-radius:11px}}
@media(prefers-reduced-motion:reduce){.nav-service-visual{transition:none}}
.identity-mark{width:44px;height:28px;object-fit:contain;filter:brightness(0) invert(1);transition:opacity .25s}
.brand:hover .identity-mark{opacity:.7}
.navigation>.brand{width:46px}
.nav-trigger[aria-current=page]{color:var(--text-primary)}
.nav-links{gap:26px;margin-left:24px}
.skip-link{position:fixed;z-index:150;top:12px;left:12px;transform:translateY(-160%);padding:12px 20px;background:var(--text-primary);color:#090908;border-radius:var(--radius-button)}
.skip-link:focus{transform:none}
.identity-loader[hidden]{display:none!important}
.identity-loading{overflow:hidden}
.js .identity-loader{display:none;opacity:1;pointer-events:auto;background:#090908;color:var(--text-primary);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.js.identity-loading .identity-loader,.js .identity-loader[aria-hidden=true]{display:block}
.js .identity-loader[aria-hidden=true]{opacity:0;transform:translateY(-3%);pointer-events:none}
.identity-loader .loader-track{top:auto;bottom:85px;left:4.5vw;right:4.5vw;background:#ffffff18}
.identity-loader .loader-percent{left:4.5vw;top:36px;transform:none;color:var(--text-secondary);font-size:var(--type-control);font-variant-numeric:tabular-nums}
.identity-loader .loader-percent:before{content:'('}.identity-loader .loader-percent:after{content:')'}
.identity-loader-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:96px;height:96px}
.identity-loader-mark img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1)}
.identity-loader-name,.identity-loader-role{position:absolute;top:50%;transform:translateY(-50%);font-size:var(--type-control)}
.identity-loader-name{left:9vw}.identity-loader-role{right:9vw;text-align:right}
.identity-loader-practice,.identity-loader-copyright{position:absolute;bottom:32px;font-size:var(--type-small);color:var(--text-secondary)}
.identity-loader-practice{left:4.5vw}.identity-loader-copyright{right:4.5vw}
.content-page,.content-page main{min-height:100svh;background:#090908}
.content-page .header .navigation{background:#141412d9;backdrop-filter:blur(24px)}
.content-page .header.compact .navigation{background:#141412ee}
.content-page .page-heading{padding:174px 4.5vw 48px;max-width:1600px;margin:auto}
.module-kicker{color:var(--text-secondary)}
.page-heading h1{font-size:var(--type-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);font-weight:400;margin:24px 0 0}
.page-heading-row{display:flex;justify-content:space-between;align-items:last baseline;gap:48px}
.page-heading-row>p{max-width:var(--measure-reading);margin:0;color:var(--text-secondary);font-size:var(--type-body)}
.work-section{padding:0 4.5vw;max-width:1600px;margin:auto}
.work-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:20px 0 24px;border-top:1px solid #ffffff30;padding-top:24px;color:var(--text-secondary);font-size:var(--type-small)}
.view-controls{display:flex;gap:8px}.view-controls button,.work-navigation button,.type-controls button,.alternate-toggle{min-height:44px;border:1px solid #ffffff30;background:transparent;padding:11px 18px;border-radius:var(--radius-button);font-size:var(--type-control);line-height:var(--leading-control)}
.view-controls button span{font-size:var(--type-small);margin-left:16px;font-variant-numeric:tabular-nums}
.view-controls button[aria-pressed=true],.type-controls button[aria-pressed=true]{background:#e9e6dc;border-color:#e9e6dc;color:#141412}
[hidden]{display:none!important}
.work-slide-media{position:relative;display:block;overflow:hidden;border-radius:16px;background:#141412}
.work-slide-media>img{display:block;width:100%;height:clamp(320px,51vw,660px);object-fit:cover;transition:transform .9s var(--ease)}
.work-slide-media:hover>img{transform:scale(1.025)}
.work-slide-cover{position:relative}
.work-slide-media>video{display:block;width:100%;height:clamp(320px,51vw,660px);object-fit:cover;background:#090908}
/* Frame the plaque without changing the original photograph. */
.plaque-crop{position:relative;display:block;overflow:hidden;border-radius:14px;isolation:isolate}
.plaque-crop>img{display:block;width:100%;height:100%;object-fit:cover;object-position:48% 100%;transform:scale(1.5);transform-origin:48% 85%;transition:transform .9s var(--ease)}
.work-slide-media>.plaque-crop{height:clamp(320px,51vw,660px);border-radius:inherit}
.work-slide-media:hover .plaque-crop>img{transform:scale(1.53)}
.work-thumbnails a>span.plaque-crop{display:block;margin:0;aspect-ratio:1.65}
.index-project>.plaque-crop{width:120px;height:82px;flex-shrink:0}
.index-project>.plaque-crop>img,.work-thumbnails .plaque-crop>img{height:100%;aspect-ratio:auto}
.project-hero>.plaque-crop{height:clamp(260px,56.875vw,800px);max-height:80svh;border-radius:inherit}
.project-hero .plaque-crop>img{height:100%;max-height:none;min-height:0}
.work-open{position:absolute;right:24px;bottom:24px;display:flex;gap:32px;align-items:center;padding:14px 18px;border-radius:var(--radius-button);font-size:var(--type-control);background:#e9e6dc;color:#141412}
.work-slide-info{display:grid;grid-template-columns:1fr 1fr;align-items:last baseline;gap:64px;padding:28px 0 24px}
.work-slide-info h2{font-size:var(--type-section);margin:12px 0 0}
.work-slide-info h2>span{display:inline-block;font-size:.6em;vertical-align:middle;margin-left:12px}
.work-slide-info p{margin:0;color:var(--text-secondary);max-width:var(--measure-reading)}
.work-navigation{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff30;padding:20px 0 32px;gap:16px}
.work-counter{font-size:var(--type-small);color:var(--text-secondary);font-variant-numeric:tabular-nums}
.work-navigation>div{display:flex;gap:8px}.work-navigation button{display:flex;align-items:center;gap:26px}
.work-progress{height:1px;background:#ffffff20;overflow:hidden;margin-bottom:24px}
.work-progress>span{display:block;width:100%;height:100%;background:#e9e7df;transform:scaleX(0);transform-origin:left;will-change:transform}
.work-navigation button:hover,.view-controls button:hover,.type-controls button:hover{border-color:var(--text-primary)}
.work-thumbnails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.work-thumbnails a{display:block;background:transparent;border:0;border-top:2px solid #ffffff28;padding:12px 0 0;text-align:left;opacity:.65;transition:opacity .3s,border-color .3s;min-width:0}
.work-thumbnails a:hover,.work-thumbnails a[data-active=true]{opacity:1;border-color:var(--text-primary)}
.work-thumbnails img{width:100%;aspect-ratio:1.65;object-fit:cover;border-radius:14px;display:block}
.work-thumbnails a>span{display:flex;gap:16px;margin-top:12px;font-size:var(--type-small);line-height:var(--leading-small)}
.work-thumbnails a>span>span{color:var(--text-secondary);font-variant-numeric:tabular-nums}
.index-head,.work-index-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 100px;gap:32px;align-items:center}
.index-head{padding:20px 0;font-size:var(--type-small);color:var(--text-secondary)}
.work-index-row{padding:24px 0;border-top:1px solid #ffffff40;min-height:142px;transition:background .25s}
.work-index-row:hover{background:#141412}.index-project{display:flex;align-items:center;gap:24px;font-size:var(--type-title);line-height:var(--leading-title)}
.index-project>img{width:120px;height:82px;object-fit:cover;border-radius:14px}.index-number{font-size:var(--type-small);color:var(--text-secondary)}
.work-index-row>span:not(:first-child){font-size:var(--type-body);color:var(--text-secondary)}
.work-index-row>span:last-child{display:flex;justify-content:space-between}
.page-outro{display:flex;justify-content:space-between;align-items:last baseline;gap:48px;margin:104px 4.5vw 0;padding:64px 0 80px;border-top:1px solid #ffffff30}
.page-outro h2{font-size:var(--type-section);margin:16px 0 0}.page-outro .action-button{min-width:210px;justify-content:space-between}
.outro-links{min-width:240px}.outro-links .text-link{min-height:44px}
.content-page .site-footer{position:relative;z-index:1}
.content-page .site-footer .brand{width:auto;white-space:nowrap}
.about-page .header .navigation{background:#141412a8}
.about-portrait{position:relative;min-height:720px;height:100svh;display:grid;place-items:center;isolation:isolate}
.about-portrait-image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center top}
.about-portrait-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#09090822,#09090810 35%,#090908a8)}
.about-portrait h1{position:absolute;top:70%;left:0;right:0;transform:translateY(-50%);font-size:var(--type-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display);margin:0;text-align:center;font-weight:400;padding:0 24px;text-shadow:0 3px 32px #0004}
.about-portrait h1>span{display:inline-block}.about-name{white-space:nowrap}
.about-name picture{display:inline-block;width:.85em;height:.85em;margin-right:.025em;vertical-align:-.035em}
.about-name img{width:100%;height:100%;filter:brightness(0) invert(1)}
.about-portrait-bottom{position:absolute;bottom:48px;left:4.5vw;right:4.5vw;display:flex;align-items:center;justify-content:space-between;gap:24px}
.about-portrait-bottom p{color:var(--text-primary);margin:0}
.about-portrait-bottom a{display:flex;gap:32px;padding:12px 0;font-size:var(--type-control);min-height:44px}
.about-story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;padding:104px 4.5vw;scroll-margin-top:110px}
.about-story h2{font-size:var(--type-section);margin:24px 0 0}
.about-reading{max-width:var(--measure-reading)}
.about-reading p{color:var(--text-secondary);margin:0 0 24px}.about-reading p:last-child{margin-bottom:0}
.intro-copy,.about-reading p.intro-copy{font-size:var(--type-intro);line-height:var(--leading-intro);color:var(--text-primary)}
.outside-story{border-top:1px solid #ffffff30;margin:0 4.5vw;padding-inline:0}
.about-credentials{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px;margin:0 4.5vw;padding:40px 0 0;border-top:1px solid #ffffff30}
.about-credentials h3{font-size:var(--type-title);font-weight:400;letter-spacing:var(--tracking-title);line-height:var(--leading-title);margin:20px 0 12px}
.about-credentials p{color:var(--text-secondary);margin:0}
.brand-carousel{margin-top:88px;padding:56px 0;background:#000;border-block:1px solid #ffffff20;scroll-margin-top:110px}
.brand-carousel-inner{width:calc(100% - 9vw);max-width:var(--site-content-max);margin-inline:auto}
.brand-carousel-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:36px}
.brand-carousel-heading h2{margin:0;font-size:var(--type-title);line-height:var(--leading-title);letter-spacing:var(--tracking-title);font-weight:400}
.brand-logo-viewport{--brand-gap:24px;--brand-logo-width:280px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.brand-logo-viewport::-webkit-scrollbar{display:none}
.brand-logo-belt{display:flex;width:max-content}
.brand-logo-track{display:flex;flex:none;gap:var(--brand-gap);list-style:none;margin:0;padding:8px var(--brand-gap) 8px 0}
.brand-logo{width:var(--brand-logo-width);height:132px;flex:none;min-width:0;display:flex;align-items:center;justify-content:center;padding:16px}
.brand-logo img{display:block;width:100%;max-width:216px;height:80px;object-fit:contain;filter:brightness(0) invert(1)}
.brand-logo-emblem img{max-width:144px;height:100px}
@media(max-width:640px){.brand-carousel{margin-top:56px;padding:40px 0}.brand-carousel-inner{width:calc(100% - 48px)}.brand-carousel-heading{align-items:start;gap:20px;margin-bottom:24px;flex-wrap:wrap}.brand-carousel-heading h2{max-width:15ch}.brand-logo-viewport{--brand-gap:16px}.brand-logo{height:128px;padding:12px}.brand-logo img{height:64px}.brand-logo-emblem img{height:88px}}
.dashboard-page .wip-preview{display:block;min-height:0;overflow:hidden}
.dashboard-page .wip-preview img{display:block;width:100%;max-width:none;height:auto}
.project-back{display:inline-flex;align-items:center;min-height:44px;color:var(--text-secondary);font-size:var(--type-control);margin-bottom:38px}
.project-back:hover{color:var(--text-primary)}.project-year{color:var(--text-secondary)}
.project-hero{margin:0 4.5vw;background:#141412;border-radius:16px;overflow:hidden}
.project-hero img{display:block;width:100%;height:auto;max-height:80svh;object-fit:cover}
.project-overview{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:64px;padding:72px 4.5vw 88px}
.project-overview h2{font-size:var(--type-title);margin:0}
.project-overview .intro-copy{max-width:var(--measure-reading);margin:0 0 32px}
.project-notes{border-block:1px solid #ffffff40;max-width:var(--measure-reading)}
.project-notes summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;min-height:64px;font-size:var(--type-control);cursor:pointer}
.project-notes summary::-webkit-details-marker{display:none}.project-notes summary::marker{content:''}
.project-notes[open] summary>span{transform:rotate(45deg)}.project-notes summary:focus-visible{outline:2px solid var(--text-primary);outline-offset:4px}
.project-notes-content{padding:12px 0 32px}.project-notes-content h3{font-size:var(--type-title);font-weight:400;line-height:var(--leading-title);margin:36px 0 18px}
.project-notes-content p{color:var(--text-secondary);max-width:var(--measure-reading)}
.project-facts{margin:0}.project-facts>div{display:grid;grid-template-columns:100px 1fr;gap:24px;margin-bottom:12px}.project-facts dt{color:var(--text-secondary)}.project-facts dd{margin:0}
.project-media-stack{padding:0 4.5vw;display:grid;gap:24px}.project-split-row{display:grid;grid-template-columns:1fr 1.45fr;gap:24px;align-items:stretch}.project-split-row.is-reversed{grid-template-columns:1.45fr 1fr}
.project-media{margin:0;min-width:0;overflow:hidden;border-radius:16px;background:#141412}
.project-media img{display:block;width:100%;height:100%;object-fit:cover}.project-media video{display:block;width:100%;height:auto;max-height:85svh;object-fit:contain;background:#141412}
.project-media video[data-autoplay-in-view]{height:100%;max-height:none;object-fit:cover}
.project-media.is-full img{height:auto}.project-media figcaption{padding:16px 24px;color:var(--text-secondary);font-size:var(--type-small)}
.evoluto-gallery-heading,.project-gallery-heading{padding:16px 0 20px}.evoluto-gallery-heading h2,.project-gallery-heading h2{font-size:var(--type-section);margin:20px 0 0}
.evoluto-gallery .project-media img{height:auto;object-fit:contain}
.evoluto-gallery .evoluto-detail-pair{grid-template-columns:1fr 1fr}
.sos-project-cover{background:#090908}
.sos-project-cover>:is(img,video){display:block;width:100%;height:clamp(320px,51vw,660px);object-fit:cover;background:#090908}
.campaign-films{margin:64px 4.5vw 88px}
.campaign-film-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.campaign-film{display:grid;grid-template-rows:subgrid;grid-row:span 4;gap:16px;min-width:0}
.campaign-film-order{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:var(--type-small);color:var(--text-secondary)}
.campaign-film-order>span:first-child{border:1px solid #ffffff40;border-radius:var(--radius-button);padding:7px 10px;letter-spacing:var(--tracking-label)}
.campaign-film-order>span:last-child{white-space:nowrap}
.campaign-film video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;background:#090908;border-radius:16px}
.campaign-film h3{font-size:var(--type-title);line-height:var(--leading-title);font-weight:400;margin:0}
.campaign-film p{margin:0;color:var(--text-secondary);font-size:var(--type-body)}
.sos-identity-pair,.sos-digital-row{grid-template-columns:1fr 1fr}
.sos-identity-pair>.project-media{aspect-ratio:1;min-height:0}
.sos-gallery .sos-guidelines-frame>img{width:100%;height:100%;object-fit:cover;object-position:left center}
.sos-digital-row{height:min(720px,calc(100svh - 160px))}
.campaign-carousel{min-width:0;overflow:hidden;background:#141412;border-radius:16px;align-self:stretch;display:flex;flex-direction:column;scroll-margin-top:110px}
.campaign-carousel-stage{flex:1;min-height:0;touch-action:pan-y}
.campaign-carousel-stage>[data-campaign-slide],.campaign-carousel-stage .project-media{height:100%}
.campaign-carousel-stage .project-media{border-radius:0}
.campaign-carousel-stage img{width:100%;height:100%;object-fit:contain}
.campaign-carousel-controls{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;font-size:var(--type-small);color:var(--text-secondary)}
.campaign-carousel-controls>div{display:flex;gap:8px}
.campaign-carousel button{min-width:44px;min-height:44px;background:transparent;border:1px solid #ffffff40;border-radius:var(--radius-button);font-size:var(--type-control)}
.campaign-carousel button:focus-visible,.campaign-carousel:focus-visible{outline:2px solid var(--text-primary);outline-offset:4px}
.mistd-print-ar-row{grid-template-columns:8fr 3fr}
.mistd-motion{position:relative}
.mistd-motion-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}
.mistd-motion-grid .mistd-motion img{height:auto;aspect-ratio:9/16;object-fit:contain}
/* Paired frames share both edges; captions occupy the same bottom track. */
@media(min-width:641px){
 .project-split-row>.project-media{display:grid;grid-template-rows:minmax(0,1fr) auto;align-self:stretch}
 .project-split-row>.project-media>img,.project-split-row>.project-media>video{height:100%;min-height:0;max-height:none;object-fit:cover}
}
.next-project{position:relative;display:grid;grid-template-columns:1fr auto;gap:20px;margin:104px 4.5vw 80px;padding:40px 0;border-top:1px solid #ffffff40}
.next-project>.module-kicker{grid-column:1/-1}.next-project>span:not(.module-kicker){font-size:var(--type-section);line-height:var(--leading-section);letter-spacing:var(--tracking-section)}
.next-project:hover>span:last-child{transform:translate(5px,-5px)}.next-project>span:last-child{transition:transform .3s var(--ease)}
/* The only custom fonts belong to the typeface being exhibited, never site UI. */
@font-face{font-family:'RS Display Strike';src:url('../fonts/RS-Display-Strike.woff2') format('woff2');font-display:swap}
@font-face{font-family:'RS Display Solid';src:url('../fonts/RS-Display-Solid.woff2') format('woff2');font-display:swap}
.rs-strike{font-family:'RS Display Strike',Arial,sans-serif}.rs-solid{font-family:'RS Display Solid',Arial,sans-serif}
.specimen-section{margin:0 4.5vw 72px}.specimen-heading{border-top:1px solid #ffffff30;padding-top:40px}.specimen-heading h2{font-size:var(--type-section)}.specimen-heading>p{max-width:var(--measure-reading);color:var(--text-secondary)}
.type-tester{background:#141412;border:1px solid #ffffff20;border-radius:16px;padding:32px;margin-top:36px}
.type-controls{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:32px}.type-controls>div{display:flex;gap:8px}.type-controls>label{display:grid;grid-template-columns:1fr auto;gap:8px 24px;min-width:220px;font-size:var(--type-small)}.type-controls input{grid-column:1/-1;accent-color:#e9e6dc;width:100%;min-height:24px}
.type-tester>label{display:block;margin-bottom:12px;font-size:var(--type-body)}
.type-tester textarea{display:block;border:1px solid #ffffff40;border-radius:var(--radius-button);padding:16px;background:#090908;width:100%;resize:vertical;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--type-body);line-height:var(--leading-body);min-height:88px}
.type-preview{font-size:var(--tester-size,82px);line-height:1.2;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-primary);padding:40px 0;min-height:180px}
.type-hint{font-size:var(--type-small);color:var(--text-secondary);margin-bottom:0}.alternate-toggle:disabled{opacity:.45;cursor:default}
.type-styles{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:40px 0}.type-styles>div{border-top:1px solid #ffffff30;padding-top:24px;min-width:0}.type-styles p{font-size:clamp(32px,4vw,70px);line-height:1.15;color:var(--text-primary);margin-bottom:0;overflow-wrap:anywhere}
.character-set{max-width:none}.character-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-bottom:24px}.character-columns>div{min-width:0}.character-columns h3{font-weight:400;font-size:var(--type-title)}.character-columns p{font-size:32px;overflow-wrap:anywhere;color:var(--text-primary)}
@media(max-width:1000px){.nav-links{gap:20px;margin-left:0}.page-heading-row{gap:32px}.page-heading-row>p{max-width:36ch}.work-slide-info{gap:32px}.index-project{gap:14px}.index-project>img{width:80px;height:65px}.index-head,.work-index-row{gap:24px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 70px}.about-story{gap:40px}.about-credentials{gap:24px}.project-overview{grid-template-columns:.6fr 1.4fr;gap:40px}}
@media(min-width:641px) and (max-width:760px){.nav-links{gap:12px}.navigation{padding:0 8px}.contact{padding-inline:14px}}
@media(max-width:760px){.work-thumbnails{gap:10px}.work-thumbnails a>span{display:block}.work-thumbnails a>span>span{display:block;margin-bottom:4px}.about-story{grid-template-columns:1fr;gap:32px}.about-credentials{grid-template-columns:1fr;gap:32px}.project-overview{grid-template-columns:1fr;gap:28px}.page-heading-row{flex-wrap:wrap;gap:24px}.page-heading-row>p{max-width:var(--measure-reading)}.desktop-break{display:none}.index-project>img{display:none}.type-controls{align-items:start;flex-direction:column}.type-controls>label{width:100%}}
@media(max-width:640px){
 .reveal-group-heading{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px}
 .reveal-submenu-toggle{display:grid;place-items:center;width:44px;height:44px;padding:12px;border:1px solid #ffffff30;background:none;border-radius:var(--radius-button)}
 .reveal-submenu-toggle svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;transition:transform .3s var(--ease)}
 .reveal-submenu-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
 /* Match the homepage reveal: move the content above the menu, not the menu
    across a stationary page. Keep the fixed header outside this moving layer. */
 .content-page #page-content{position:relative;z-index:3;background:#090908;transform-origin:left var(--reveal-origin-y,50svh);transition:transform .85s cubic-bezier(.76,0,.24,1),border-radius .85s}
 .content-page.reveal-open #page-content{transform:translateX(calc(-1 * var(--reveal-width))) scale(.97);border-radius:12px;pointer-events:none}
 .content-page .site-footer{z-index:3}
 .content-page .header .navigation,.content-page .header.compact .navigation,.dashboard-page .header .navigation{background:none;backdrop-filter:none;box-shadow:none}
 .navigation>.brand{width:40px}.identity-mark{width:38px;height:26px}
 .identity-loader-name{left:24px;top:35%}.identity-loader-role{right:24px;top:65%}.identity-loader-mark{width:82px;height:82px}
 .identity-loader .loader-percent{left:24px;top:30px}.identity-loader .loader-track{left:24px;right:24px;bottom:100px}
 .identity-loader-practice{left:24px;bottom:58px}.identity-loader-copyright{left:24px;right:auto;bottom:30px}
 .content-page .page-heading{padding:136px 24px 32px}.page-heading h1{margin-top:16px}.page-heading-row{display:block}.page-heading-row>p{margin-top:24px}
 .work-section{padding:0 24px}.work-toolbar{align-items:flex-start;flex-direction:column;gap:16px;margin-top:0}.view-controls{width:100%}.view-controls button{flex:1;display:flex;justify-content:space-between}
 .work-slide-media>img{height:360px;max-height:65svh}.work-open{right:16px;bottom:16px;padding:12px 14px;gap:20px}.work-slide-info{grid-template-columns:1fr;gap:20px;padding:24px 0}.work-slide-info h2{font-size:var(--type-section)}
 .work-navigation{align-items:start}.work-navigation button{padding:10px 14px}.work-navigation button span{display:none}.work-navigation>div{flex-shrink:0}.work-counter{max-width:190px}
 .work-thumbnails{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.work-thumbnails a>span{display:flex;gap:10px}.work-thumbnails a>span>span{margin:0}
 .index-head{display:none}.work-index-row{grid-template-columns:1fr auto;gap:10px 16px;min-height:120px;padding:24px 0}.index-project{grid-column:1;grid-row:1;gap:14px}.work-index-row>span:nth-child(2){grid-column:1;grid-row:2;padding-left:30px}.work-index-row>span:last-child{grid-column:2;grid-row:1;gap:12px;font-size:var(--type-small)}.index-number{font-size:var(--type-small)}
 .page-outro{margin:72px 24px 0;padding:40px 0 64px;flex-direction:column;align-items:start;gap:32px}.page-outro .action-button{min-width:210px}.page-outro h2{margin-top:0}.outro-links{width:100%}
 .about-portrait{min-height:640px}.about-portrait h1{font-size:clamp(40px,10vw,48px)}.about-portrait h1>span{display:block}.about-portrait-image{object-position:54% top}.about-portrait-bottom{left:24px;right:24px;bottom:36px;flex-direction:column;align-items:start;gap:14px}.about-portrait-bottom p{max-width:26ch}
 .about-story{padding:72px 24px;gap:32px}.about-story h2{margin-top:20px}.outside-story{margin:0 24px;padding:64px 0}.about-credentials{margin:0 24px;padding-top:32px}.about-reading p.intro-copy,.intro-copy{font-size:18px}
 .project-heading .page-heading-row{display:flex;flex-wrap:nowrap;align-items:last baseline;gap:14px}.project-heading h1{overflow-wrap:anywhere}.project-year{font-size:var(--type-small);flex-shrink:0}.project-back{margin-bottom:24px}
 .project-hero{margin:0 24px}.project-hero img{min-height:260px;object-fit:cover}.project-overview{padding:40px 24px 56px;gap:24px}.project-facts>div{grid-template-columns:80px 1fr;gap:16px}
 .project-media-stack{padding:0 24px;gap:16px}.project-split-row,.project-split-row.is-reversed{grid-template-columns:1fr;gap:16px}.project-media img{height:auto}.next-project{margin:64px 24px 56px;padding:32px 0;gap:20px 12px}
 .specimen-section{margin:0 24px 56px}.specimen-heading{padding-top:32px}.type-tester{padding:24px}.type-controls{gap:24px}.type-controls>div{width:100%}.type-controls button{flex:1;padding-inline:14px}.type-preview{font-size:min(var(--tester-size),68px);min-height:160px;padding:32px 0}.type-styles{grid-template-columns:1fr;gap:32px}.type-styles p{font-size:clamp(24px,6vw,32px)}.character-columns{grid-template-columns:1fr;gap:16px}.character-columns p{font-size:28px}
}
@media(max-width:1000px){.index-project>.plaque-crop{width:80px;height:65px}}
@media(max-width:760px){.index-project>.plaque-crop{display:none}}
@media(max-width:640px){.work-slide-media>.plaque-crop{height:360px;max-height:65svh}}
@media(max-width:640px){.evoluto-gallery .evoluto-detail-pair{grid-template-columns:1fr}}
@media(max-width:640px){
 .campaign-films{margin:48px 24px 56px}.campaign-film-grid{grid-template-columns:1fr;gap:40px}.campaign-film{grid-template-rows:auto;grid-row:auto;gap:16px}
 .sos-digital-row{height:auto}
 .campaign-carousel{height:auto;align-self:start}
 .campaign-carousel-stage{flex:none;height:auto;aspect-ratio:1128/1398;max-height:calc(100svh - 228px)}
 .campaign-carousel-stage img{height:100%}
 .sos-project-cover>:is(img,video){height:360px;max-height:65svh}
 .sos-identity-pair>.project-media:not(.sos-guidelines-frame){aspect-ratio:auto}
 .work-slide-media>video{height:360px;max-height:65svh}
}
@media(min-width:641px) and (max-width:900px){.mistd-motion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.mistd-motion-grid{grid-template-columns:1fr;gap:16px}}
@media(prefers-reduced-motion:reduce){.work-slide-media>img,.plaque-crop>img,.identity-loader,.next-project>span:last-child,.content-page #page-content{transition:none!important}}

/* One reading and layout measure across all nine pages. Backgrounds stay full bleed. */
:root{--site-content-max:1280px}
.action-text{font:inherit;letter-spacing:inherit;line-height:inherit;min-width:0;max-width:100%}
.action-text>.slide-text-word{font:inherit;line-height:1.25;vertical-align:middle}
.action-text .slide-text-glyph{font:inherit;line-height:1.25}
.slide-text-button:disabled .slide-text-glyph{transform:none;transition:none}
.home-page .package-note a{display:inline-block;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;vertical-align:baseline}
.home-page .package-note a .slide-text-word{vertical-align:baseline}
@media(max-width:640px){.home-page .package-note a{display:block;width:fit-content}}
.listening-selection{min-width:0}
.listening-list-label{margin:0 0 12px;color:var(--text-secondary);font-size:var(--type-small);line-height:var(--leading-small)}
.listening-track-list{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff25}
.listening-track-list>li{border-bottom:1px solid #ffffff25}
.listening-track{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:8px 6px;border-radius:var(--radius-button);text-align:left;color:var(--text-primary);font-size:var(--type-body);line-height:var(--leading-body)}
.listening-track:hover,.listening-track[aria-current=true]{background:#ffffff08}
.listening-track-number{color:var(--text-secondary);font-size:var(--type-small);line-height:var(--leading-small)}
.listening-track-number{font-variant-numeric:tabular-nums}
.listening-track-copy{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.listening-track-title{font-weight:500}
.listening-module .spotify-player{margin-top:auto}
/* Keep the featured project's details and controls beside its cover. */
.portfolio-page .page-heading{padding-top:136px;padding-bottom:24px}
.portfolio-page .page-heading h1{margin-top:16px}
.portfolio-page .work-toolbar{margin-top:0;padding-top:16px}
.portfolio-page .work-thumbnails{margin-top:32px}
.portfolio-page .work-navigation>div{align-items:center;flex-wrap:nowrap}
.portfolio-page .work-navigation button{height:46px}
.portfolio-page .work-view-project{min-height:46px;white-space:nowrap;gap:16px;padding:11px 14px}
@media(min-width:901px){
 .portfolio-page .work-feature-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;column-gap:40px;height:clamp(400px,calc(100svh - 440px),560px)}
 .portfolio-page .work-stage,.portfolio-page .work-slide{display:grid;grid-column:1/-1;grid-row:1/-1;grid-template-columns:subgrid;grid-template-rows:subgrid;min-width:0}
 .portfolio-page .work-slide>.work-slide-media,.portfolio-page .work-slide>.work-slide-cover{grid-column:1;grid-row:1/-1;min-width:0;min-height:0}
 .portfolio-page .work-slide-cover>.work-slide-media{height:100%}
 .portfolio-page .work-slide-media>img,.portfolio-page .work-slide-media>video,.portfolio-page .work-slide-media>.plaque-crop{height:100%;min-height:0;max-height:none}
 .portfolio-page .work-slide-info{grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:start;gap:24px;padding:32px 0 20px;min-width:0;min-height:0}
 .portfolio-page .work-slide-info h2{overflow-wrap:anywhere}
 .portfolio-page .work-navigation{position:relative;grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:start;gap:16px;padding:20px 0 0;min-width:0}
 .portfolio-page .work-navigation button{gap:16px;padding-inline:14px}
}
@media(max-width:900px){
 .portfolio-page .work-feature-layout{display:flex;flex-direction:column}
 .portfolio-page .work-navigation{order:-1;border-top:0;padding:0 0 20px;flex-direction:column;align-items:start;gap:12px}
 .portfolio-page .work-counter{max-width:none}
 .portfolio-page .work-navigation>div{width:100%}
 .portfolio-page .work-view-project{flex:1}
 .portfolio-page .work-navigation button span{display:none}
 .portfolio-page .work-navigation button{min-width:44px;justify-content:center;padding:11px}
 .portfolio-page .work-slide-info{grid-template-columns:1fr;align-content:start;gap:20px;padding:24px 0 0;min-height:var(--work-info-height,0px)}
 .portfolio-page .work-slide-media>img,.portfolio-page .work-slide-media>video,.portfolio-page .work-slide-media>.plaque-crop{height:min(42svh,360px);max-height:none}
}
@media(min-width:901px) and (max-width:1200px){.portfolio-page .work-navigation button span{display:none}.portfolio-page .work-navigation button{justify-content:center;min-width:46px}}
:where(p:not(.hero-attribution)){max-inline-size:var(--measure-reading)}
@media(min-width:1400px){
 :root{--site-content-inset:max(4.5vw,calc((100% - var(--site-content-max)) / 2))}
 .header,.header.compact{max-width:var(--site-content-max)}
 .section-inner,.testimonials-inner,.studio-section-heading,.studio-grid,.stack-heading{max-width:var(--site-content-max)}
 :is(.content-page .page-heading,.work-section,.about-story,.project-overview,.project-media-stack){max-width:none;padding-inline:var(--site-content-inset)}
 :is(.project-hero,.campaign-films,.specimen-section,.next-project,.page-outro,.about-credentials,.outside-story){margin-inline:var(--site-content-inset)}
 .outside-story{padding-inline:0}
 .js .stack-heading{left:var(--site-content-inset);right:var(--site-content-inset)}
 .hero-heading,.home-page .hero-heading{left:var(--site-content-inset);max-width:var(--site-content-max)}
 .hero-actions,.home-page .hero-actions{left:var(--site-content-inset)}
 .hero-summary,.home-page .hero-summary,.media-controls{right:var(--site-content-inset)}
 .about-portrait-bottom{left:var(--site-content-inset);right:var(--site-content-inset)}
}

/* Draw action arrows consistently, without platform emoji font fallback. */
.action-arrow{display:inline-block;width:1em;height:1em;flex-shrink:0;vertical-align:-.125em;pointer-events:none}

/* Small social mark with a full-size touch and keyboard target. */
.site-footer .footer-linkedin{justify-content:center;width:44px;min-width:44px;border-radius:var(--radius-button)}
.footer-linkedin svg{display:block;width:20px;height:20px;flex-shrink:0}
