:root{--paper:#f7f7f2;--ink:#191917;--muted:#71716a;--line:#d3d3cb;--gutter:28px;}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;padding:0 var(--gutter);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,select,input{color:inherit}button{cursor:pointer}button,a,select,input{-webkit-tap-highlight-color:transparent}button{border:0;background:none}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,main:focus-visible{outline:2px solid var(--ink);outline-offset:5px}::selection{background:var(--ink);color:var(--paper)}.utility{text-transform:uppercase}.site-header{min-height:105px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:25px;border-bottom:1px solid var(--ink)}.brand{display:flex;align-items:flex-start;gap:4px;width:max-content}.header-note{color:var(--muted)}nav{display:flex;gap:30px}nav a{position:relative;padding:10px 0}nav a::after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover::after,nav a[aria-current=page]::after{transform:scaleX(1)}.nav-num{vertical-align:super;margin-left:5px;color:var(--muted)}main{min-height:70vh}.hero{padding:38px 0 35px;display:grid;grid-template-columns:1fr 270px;gap:24px;align-items:end}.hero-overline{display:flex;gap:10px;align-items:center;margin-bottom:15px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--ink);border-radius:50%}.hero-title{margin:0 0 0 -.065em}.hero-title span{vertical-align:top;display:inline-block;margin: .3em 0 0 .3em}.hero-aside{padding-bottom:6px}.hero-aside p{margin:0 0 25px}.hero-aside .utility{color:var(--muted)}.archive-bar{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:15px 0;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px}.filter-list{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.filter-button{text-transform:uppercase;padding:8px 11px;border:1px solid transparent;transition:background .18s,color .18s,border-color .18s}.filter-button:hover{border-color:var(--line)}.filter-button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.archive-tools{display:flex;align-items:center;gap:23px;flex-shrink:0}.year-select{text-transform:uppercase;border:0;background:transparent;padding:7px 18px 7px 0;max-width:95px}.view-options{display:flex;gap:8px}.view-button{padding:5px;opacity:.35}.view-button[aria-pressed=true],.view-button:hover{opacity:1}.grid-icon{display:grid;grid-template-columns:repeat(4,3px);gap:2px}.grid-icon i{display:block;width:3px;height:13px;background:currentColor}.grid-icon.wide{grid-template-columns:repeat(2,7px)}.grid-icon.wide i{width:7px}.feed-label{display:flex;justify-content:space-between;padding:16px 0 19px;color:var(--muted)}.feed-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;align-items:start}.feed-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.feed-column{min-width:0}.work-tile{display:block;position:relative;break-inside:avoid;margin:0 0 27px;animation:appear .45s ease both;animation-delay:var(--delay,0ms)}.tile-media{position:relative;background:#e8e8e1;overflow:hidden;aspect-ratio:var(--ratio);isolation:isolate}.tile-media img,.tile-media video{width:100%;height:100%;object-fit:cover;display:block}.tile-media video{position:absolute;inset:0;opacity:0;transition:opacity .3s}.tile-media video.playing{opacity:1}.tile-media::after{content:'';position:absolute;inset:0;border:1px solid rgba(0,0,0,.035);pointer-events:none}.tile-media img{transition:transform .55s cubic-bezier(.2,.7,.2,1)}.work-tile:hover .tile-media img{transform:scale(1.025)}.tile-open{position:absolute;right:10px;top:10px;width:26px;height:26px;display:grid;place-items:center;background:var(--paper);opacity:0;transform:translateY(3px);transition:opacity .2s,transform .2s}.work-tile:hover .tile-open,.work-tile:focus-visible .tile-open{opacity:1;transform:none}.tile-caption{display:flex;gap:12px;align-items:baseline;justify-content:space-between;padding-top:9px;text-transform:uppercase}.tile-caption .year{color:var(--muted);white-space:nowrap}.tile-category{text-transform:uppercase;color:var(--muted);margin-top:4px;}.media-count{position:absolute;left:9px;bottom:9px;background:rgba(20,20,18,.7);color:white;padding:4px 5px;backdrop-filter:blur(8px)}.collection-end{border-top:1px solid var(--line);margin-top:35px;padding:20px 0 65px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.collection-end p{margin:0}.collection-end a{border-bottom:1px solid var(--ink);padding-bottom:4px}.site-footer{padding:22px 0 27px;display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--ink);gap:20px}.site-footer>.utility{color:var(--muted)}.text-button{padding:0}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.page-heading{padding:57px 0 44px;display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.page-heading h1{margin:0}.page-heading .utility{max-width:250px;color:var(--muted);margin:0}.heading-sup{vertical-align:top;display:inline-block;padding:7px 0 0 13px}.directory-section{display:grid;grid-template-columns:25% 1fr;border-top:1px solid var(--ink);padding:19px 0 57px;gap:25px}.directory-label{margin:10px 0 0;color:var(--muted);text-transform:uppercase;}.directory-row{display:grid;grid-template-columns:1fr 60px 20px;gap:15px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line);transition:padding .22s,color .2s}.directory-row:hover,.directory-row:focus-visible{padding-left:12px}.directory-year{color:var(--muted)}.directory-row:hover .directory-arrow{transform:translate(2px,-2px)}.directory-arrow{transition:transform .2s}.client-directory{padding:0 0 65px}.client-row{display:grid;grid-template-columns:50px 1fr 170px 20px;align-items:center;gap:20px;border-top:1px solid var(--line);padding:24px 0;transition:padding .25s,background .25s}.client-row:first-child{border-color:var(--ink)}.client-row:hover{padding-left:12px}.client-row .utility{color:var(--muted)}.client-row .client-count{text-align:right}.back-link{display:inline-block;margin-top:28px;color:var(--muted);transition:color .2s}.back-link:hover{color:var(--ink)}.client-view-heading{padding-top:30px}.project-layout{display:grid;grid-template-columns:minmax(240px,28%) 1fr;gap:65px;padding:43px 0 70px;align-items:start}.project-info{position:sticky;top:30px}.project-info h1{margin:18px 0 36px}.project-number{color:var(--muted)}.project-meta{margin:0}.project-meta>div{display:grid;grid-template-columns:80px 1fr;gap:15px;padding:12px 0;border-top:1px solid var(--line)}.project-meta dt{color:var(--muted);text-transform:uppercase}.project-meta dd{margin:0}.project-meta a{text-decoration:underline;text-underline-offset:3px}.project-description{max-width:40ch;margin:25px 0;white-space:pre-line}.project-media{display:flex;flex-direction:column;gap:30px}.project-media figure{margin:0}.project-media img,.project-media video{width:100%;height:auto;display:block;background:#e9e9e3}.project-media figcaption{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted)}.project-next{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ink);padding:24px 0 60px;gap:25px}.info-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid var(--ink);padding:45px 0 100px}.info-statement{margin:0}.info-copy{max-width:440px;padding-top:5px}.info-copy p{margin:0 0 40px}.info-disciplines{margin:20px 0 35px;display:flex;flex-direction:column;gap:10px;}.info-link{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:15px 0}.info-contact a{display:block;margin:10px 0}.empty-state{padding:100px 0;text-align:center}.empty-state button{border-bottom:1px solid var(--ink);padding:5px 0}.loading{padding:100px 0}.loading-dot{animation:blink 1s infinite}.skip-link{position:fixed;top:-80px;left:20px;background:var(--ink);color:var(--paper);padding:12px;z-index:100}.skip-link:focus{top:15px}.noscript{padding:30px}.index-preview{position:fixed;right:40px;bottom:35px;width:200px;z-index:5;pointer-events:none;opacity:0;transform:translateY(8px) rotate(2deg);transition:opacity .2s,transform .2s;background:var(--paper);padding:7px;box-shadow:0 5px 35px #0002}.index-preview.visible{opacity:1;transform:translateY(0) rotate(-2deg)}.index-preview img{width:100%;max-height:230px;object-fit:contain;display:block}.index-preview .utility{display:block;padding:8px 0 2px}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}main:focus{outline:none}
@media(min-width:1800px){body{max-width:2100px;margin:auto}.feed-grid{gap:22px}}
@media(max-width:1050px){:root{--gutter:22px}.header-note{display:none}.site-header{grid-template-columns:1fr auto}nav{gap:24px}.hero{grid-template-columns:1fr 220px}.feed-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.archive-tools{gap:12px}.project-layout{gap:35px;grid-template-columns:28% 1fr}.project-meta>div{grid-template-columns:1fr;gap:5px}.directory-section{grid-template-columns:22% 1fr}.client-row{grid-template-columns:35px 1fr 130px 20px}.info-layout{gap:40px}}
@media(max-width:700px){:root{--gutter:16px}.site-header{min-height:85px;gap:15px}nav{gap:17px}.nav-num{display:none}.hero{padding:32px 0 25px;grid-template-columns:1fr;gap:27px}.hero-overline{margin-bottom:20px}.hero-aside{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:0}.hero-aside p{margin:0}.hero-aside .utility{text-align:right;max-width:140px}.archive-bar{margin-top:12px;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:12px 0}.filter-list{gap:2px}.filter-button{padding:7px 8px;}.archive-tools{margin-left:auto}.year-select{max-width:85px}.view-options{display:none}.feed-grid,.feed-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile-caption{gap:5px}.work-tile{margin-bottom:23px}.feed-label{padding:13px 0 16px}.media-count{left:6px;bottom:6px}.collection-end{padding-bottom:40px}.site-footer{gap:12px}.page-heading{padding:40px 0 33px;align-items:flex-start;flex-direction:column;gap:23px}.page-heading .utility{max-width:270px;}.directory-section{grid-template-columns:1fr;gap:10px;padding:14px 0 36px}.directory-label{margin:0}.directory-row{grid-template-columns:1fr 40px 15px;padding:14px 0}.client-row{grid-template-columns:20px 1fr 50px 15px;gap:10px;padding:20px 0}.client-directory{padding-bottom:45px}.project-layout{grid-template-columns:1fr;gap:32px;padding:26px 0 40px}.project-info{position:static}.project-info h1{max-width:85%;margin:15px 0 27px}.project-meta>div{grid-template-columns:90px 1fr;gap:12px;padding:10px 0}.project-media{gap:24px}.project-next{padding:20px 0 35px}.info-layout{grid-template-columns:1fr;gap:32px;padding:30px 0 55px}.index-preview{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.cursor-active,.cursor-active a,.cursor-active button{cursor:auto}#cursor{display:none!important}}
/* Quiet archive masthead: one typographic voice, no hero or display wordmark. */
.contact-footer{margin-top:80px;border-top:1px solid var(--ink);padding:35px 0 0}.contact-footer[hidden]{display:none}.contact-label{color:var(--muted);margin-bottom:15px}.contact-email{overflow-wrap:anywhere}.contact-email:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}.contact-socials{display:flex;flex-wrap:wrap;gap:12px 27px;margin-top:28px;}.contact-socials a:hover{text-decoration:underline;text-underline-offset:4px}.contact-footer:not([hidden])+.site-footer{border:0;margin-top:30px;padding-top:0}
:root{--paper:#fff;--gutter:18px}
.site-header{grid-template-columns:1fr auto 1fr;min-height:62px;border:0;gap:24px;align-items:center}
.site-header .brand,.site-header nav a,.footer-brand{text-transform:uppercase}
.site-header .brand{display:block;grid-column:1}
.site-header nav{grid-column:2;gap:22px}
.archive-intro{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:24px;padding:90px 0 65px;}
.archive-intro p{margin:0;max-width:42ch}.archive-intro p:first-child{grid-column:2}.archive-intro p:last-child{grid-column:3;justify-self:center}
.archive-bar{margin-top:0;padding:10px 0}.filter-button{padding:5px 0;margin-right:16px;border:0}.filter-button:hover{background:none;text-decoration:underline;text-underline-offset:4px}.filter-button[aria-pressed=true]{background:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.feed-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.home-feed .work-tile{margin-bottom:10px}.home-feed .tile-caption,.home-feed .tile-category,.home-feed .media-count,.home-feed .tile-open{display:none}.home-feed .tile-media img{transition:opacity .2s}.home-feed .work-tile:hover .tile-media img{transform:none;opacity:.85}.feed-label{padding:18px 0 24px}.site-footer{margin-top:60px}.home-feed+.site-footer{margin-top:60px}
@media(max-width:1200px){.feed-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1050px){.feed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.archive-intro{grid-template-columns:.6fr 1.5fr 1fr}.site-header{grid-template-columns:1fr auto}.site-header nav{grid-column:2}}
@media(max-width:700px){.site-header{min-height:90px;grid-template-columns:1fr;gap:7px;padding:17px 0}.site-header .brand{grid-column:1}.site-header nav{grid-column:1;gap:20px;justify-self:start}.site-header nav a{padding:5px 0}.archive-intro{display:block;padding:25px 0 45px;}.archive-intro p:first-child{max-width:42ch}.archive-intro p:last-child{margin-top:20px}.feed-grid,.feed-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filter-button{margin-right:12px}.feed-label{padding:16px 0 20px}}
@media(max-width:700px){.archive-intro p:last-child{justify-self:start;text-align:left}}
/* Archive layout. Typography roles are defined once at the end of this file. */


.site-header .brand,.site-header nav a,.footer-brand,.filter-button,.feed-label,.home-index-heading,.contact-label,.site-footer .utility,.year-select,.back-link,.directory-label,.project-number,.project-meta dt{text-transform:uppercase}



.contact-socials{gap:14px 32px;margin-top:30px}
.home-index{margin-top:80px}.home-index-heading{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--ink);padding-top:13px;margin-bottom:17px}.home-index-heading a:hover{text-decoration:underline;text-underline-offset:3px}
.home-index-row{display:grid;grid-template-columns:1fr 70px 78px;align-items:center;gap:24px;text-transform:uppercase;padding:3px 0}.home-index-row>span:first-child{min-width:0}.index-year{color:var(--muted);text-align:right}.index-view{justify-self:end;border:1px solid var(--ink);border-radius:20px;padding:2px 14px;}.home-index-row:hover>span:first-child{text-decoration:underline;text-underline-offset:3px}.home-index-row:hover .index-view{background:var(--ink);color:var(--paper)}
.page-heading{padding:50px 0 40px}
.directory-section{padding:18px 0 45px;border-top:0}.directory-label{color:var(--muted)}.directory-row{border:0;padding:3px 0;grid-template-columns:1fr 60px 16px;gap:14px}.directory-row:hover,.directory-row:focus-visible{padding-left:0}.directory-name,.directory-year{text-transform:uppercase}.directory-row:hover .directory-name{text-decoration:underline;text-underline-offset:3px}.directory-year{color:var(--muted)}
.client-row{grid-template-columns:40px 1fr 130px 16px;padding:12px 0}.client-row .client-name{text-transform:uppercase}.client-row:hover{padding-left:0}.client-row:hover .client-name{text-decoration:underline;text-underline-offset:3px}.client-directory{padding-bottom:30px}
.project-info h1{margin:18px 0 22px}.project-next strong{text-transform:uppercase}
@media(max-width:700px){.home-index{margin-top:50px}.home-index-row{grid-template-columns:1fr 55px;gap:14px;padding:6px 0}.home-index-row .index-year{display:none}.index-view{padding:3px 10px}.directory-row{grid-template-columns:1fr 40px 12px}.client-row{grid-template-columns:20px 1fr 65px 12px;gap:10px}.contact-footer{margin-top:60px}}

.project-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:44px;row-gap:76px;padding:calc(var(--page-first-line) - 3px) 0 60px;align-items:start}
.project-index .directory-section{display:grid;grid-template-columns:26% minmax(0,1fr);gap:16px;padding:0;border:0;align-items:start}
.project-index .directory-label{margin:3px 0 0;color:#8c8c8c}
.project-index .directory-row{display:block;padding:3px 0;text-transform:uppercase}

.project-index .directory-year{color:#a0a0a0;white-space:nowrap}
@media(max-width:1400px){.project-index{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}}
@media(max-width:800px){.project-index{grid-template-columns:1fr;row-gap:38px}.project-index .directory-section{grid-template-columns:26% minmax(0,1fr);gap:16px}.project-index .directory-label{margin-top:3px}}

:root{--accent:#ff6500}
.project-index .directory-row{width:fit-content;max-width:100%;transition:color .15s}
body a:is(:hover,:focus-visible),body button:is(:hover,:focus-visible),body select:is(:hover,:focus-visible){color:var(--accent)}
a:is(:hover,:focus-visible) :is(.directory-year,.index-year,.client-count,.year,.tile-category){color:var(--accent)}
.directory-row:is(:hover,:focus-visible) .directory-name,.home-index-row:is(:hover,:focus-visible)>span:first-child,.client-row:is(:hover,:focus-visible) .client-name{text-decoration:none}
.home-index-row:is(:hover,:focus-visible) .index-view{border-color:var(--accent);background:transparent;color:var(--accent)}
.site-header nav a:hover::after{background:var(--accent)}
a:focus-visible,button:focus-visible,select:focus-visible{outline-color:var(--accent)}
::selection{background:var(--accent);color:#fff}

.site-header nav a::after{content:none}
.site-header nav a{transition:none;text-decoration:none}
.site-header nav a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.feed-label a{color:var(--ink)}
@media(max-width:700px){.site-header nav{flex-wrap:wrap;row-gap:4px}}

.project-index{isolation:isolate}
.project-index .directory-row{position:relative}
.project-index .directory-name,.project-index .directory-year{position:relative;z-index:1}
.index-inline-preview{display:none;position:absolute;left:var(--preview-left,calc(100% - 24px));top:var(--preview-top,0px);width:min(360px,calc(100vw - 40px));height:var(--preview-height,300px);pointer-events:none;z-index:0}
.index-inline-preview img,.index-inline-preview video{display:block;width:100%;height:100%;object-fit:contain}
.project-index .directory-row:is(:hover,:focus-visible) .index-inline-preview{display:block}
.project-index .directory-row:is(:hover,:focus-visible) .directory-name{text-shadow:0 0 3px var(--paper)}
@media(hover:none){.project-index .directory-row:is(:hover,:focus-visible) .index-inline-preview{display:none}}

.project-media.project-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.project-media-grid figure{min-width:0}
.project-media-grid img,.project-media-grid video{aspect-ratio:auto;object-fit:contain;background:var(--paper)}
@media(max-width:700px){.project-media.project-media-grid{grid-template-columns:1fr;gap:12px}.project-media-grid figcaption{gap:4px}}

.home-feed .tile-caption,.tile-caption{display:block;padding-top:8px;text-transform:uppercase}
.tile-caption .year{color:#a0a0a0;white-space:nowrap}
.home-feed .work-tile{margin-bottom:20px}
.feed-grid,.feed-grid.wide{gap:30px 10px;border:0;align-items:start}
.feed-grid .work-tile{min-width:0;border:0;margin:0;animation:none}
.feed-grid.masonry{gap:10px}
.feed-grid.masonry .feed-column{min-width:0;position:relative}
.feed-grid.masonry .work-tile{margin-bottom:30px}
.feed-grid.masonry .work-tile:last-child{margin-bottom:0}
.feed-grid .tile-media::after{border:0}
.feed-grid .tile-caption{padding:8px 0 0;border:0;box-shadow:none}
.feed-grid.masonry .tile-caption{display:none}
.year-picker{position:relative;z-index:10;text-transform:uppercase}
.year-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:100px;padding:9px 0;list-style:none;cursor:pointer;color:var(--ink);user-select:none}
.year-trigger::-webkit-details-marker{display:none}.year-trigger svg{transition:transform .15s}.year-picker[open] .year-trigger svg{transform:rotate(180deg)}
.year-trigger:focus-visible{outline:none;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}.year-trigger:hover{color:var(--accent)}
.year-menu{position:absolute;right:0;top:calc(100% + 8px);width:152px;padding:6px;background:var(--paper);border:1px solid var(--line);box-shadow:0 6px 18px #0000000d;max-height: min(340px,60vh);overflow-y:auto}
.year-option{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:34px;padding:8px 10px;white-space:nowrap}
body .year-option:is(:hover,:focus-visible){background:#00000006;color:var(--ink);outline:none}.year-option:focus-visible{box-shadow:inset 2px 0 var(--ink)}.year-check{color:var(--accent);}
@media(prefers-reduced-motion:reduce){.year-trigger svg{transition:none}}
.info-clients h2{margin:0}.info-client-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;}.info-client-list a{display:inline-block}.info-client-list a:is(:hover,:focus-visible){color:var(--accent)}
@media(max-width:400px){.info-client-list{grid-template-columns:1fr}}
.work-tile:is(:hover,:focus-visible) .tile-caption,.work-tile:is(:hover,:focus-visible) .tile-caption .year{color:var(--accent)}
.video-player{position:relative}
.video-audio{position:absolute;inset:0;width:100%;height:100%;padding:0;z-index:3;text-align:left}
.audio-orb{position:absolute;left:48px;top:48px;transform:translate(-50%,-50%);width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:rgba(28,28,28,.76);backdrop-filter:blur(8px);color:#fff;pointer-events:none;transition:opacity .24s ease,transform .24s cubic-bezier(.2,.7,.2,1)}
.audio-orb svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.video-audio[aria-pressed=false] .audio-waves,.video-audio[aria-pressed=true] .audio-slash{display:none}
.video-audio:focus-visible{outline:0}.video-audio:focus-visible .audio-orb{outline:2px solid #fff;outline-offset:4px;box-shadow:0 0 0 7px #222}
@media(hover:hover) and (pointer:fine){.video-audio{cursor:pointer}.video-audio .audio-orb{opacity:0;transform:translate(-50%,-50%) scale(.15)}.video-audio.is-tracking .audio-orb,.video-audio:focus-visible .audio-orb{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.audio-orb{transition:none}}
.audio-orb.project-orb{position:fixed;left:0;top:0;z-index:50;opacity:0;transform:translate(-50%,-50%) scale(.15)}
@media(hover:hover) and (pointer:fine){
  .project-orb.is-tracking{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
/* Scroll-driven client cylinder. */
.client-wheel{--wheel-size:100px;--wheel-line:88px;--wheel-radius:280px;position:relative;margin-top:20px}
.client-wheel>.wheel-heading{position:sticky;top:0;z-index:4;min-height:30px;padding:8px 0 4px;pointer-events:none}
.wheel-heading{display:flex;align-items:center;justify-content:space-between}.wheel-heading h2{margin:0}
.wheel-guide-track{position:absolute;inset:80px 0;pointer-events:none;z-index:4}
.wheel-guide{position:sticky;top:50vh;height:1px;opacity:0;pointer-events:none}
@media(min-width:768px){.wheel-guide-track{top:130px;bottom:130px}}
@media(min-width:1024px){.wheel-guide-track{top:100px;bottom:100px}}
@media(min-width:1240px){.wheel-guide-track{top:15.47619vw;bottom:7.7381vw}}
.wheel-side-label{display:none;position:absolute;left:0;top:0;transform:translateY(-50%);white-space:nowrap;pointer-events:none}
@media(min-width:701px){.wheel-side-label{display:block}.client-wheel>.wheel-heading h2{clip-path:inset(50%)}}
.client-wheel.is-static .wheel-side-label{display:none}
.client-wheel.is-static>.wheel-heading h2{clip-path:none}
.wheel-track{position:relative;height:calc(var(--client-count,21) * var(--wheel-line))}
.wheel-runway{position:absolute;top:-100vh;left:calc(-1 * var(--gutter));width:calc(100% + 2 * var(--gutter));height:calc(100% + 200vh);pointer-events:none}
.client-wheel-sticky{position:sticky;top:0;height:100vh;width:100%;pointer-events:none}
.wheel-stage{position:absolute;inset:0;perspective:1000px;overflow:hidden;isolation:isolate;pointer-events:none}
.wheel-drum{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.wheel-name{position:absolute;left:50%;top:50%;white-space:nowrap;text-transform:uppercase;backface-visibility:hidden;color:#c8cbd0;pointer-events:none}
.wheel-name.is-active{color:var(--ink);pointer-events:auto}
.wheel-name:focus-visible{outline:1px solid var(--accent);outline-offset:6px}
.wheel-hitbox{position:absolute;z-index:2;cursor:pointer;background:transparent;pointer-events:auto}
body .client-wheel .wheel-name:is(:hover,:focus-visible){color:var(--ink)}
.client-wheel.is-scrolling .wheel-hitbox,.client-wheel.is-scrolling .wheel-name{pointer-events:none}
.client-wheel.is-scrolling .wheel-name.is-active{color:var(--ink)}
.client-wheel.is-outside .wheel-runway{visibility:hidden}
.wheel-progress{position:absolute;right:2px;top:0;width:2px;height:clamp(80px,16vh,128px);transform:translateY(-50%);background:var(--line);pointer-events:none}
.wheel-progress span{display:block;width:100%;height:100%;background:var(--ink);opacity:.7;transform:scaleY(0);transform-origin:top}
.client-wheel.is-static .wheel-guide-track{display:none}
.client-wheel.is-static>.wheel-heading{position:static}
.client-wheel.is-static .wheel-track{height:auto}
.client-wheel.is-static .wheel-runway{position:static;width:100%;height:auto;visibility:visible}
.client-wheel.is-static .client-wheel-sticky{position:static;height:auto;padding-top:28px}
.client-wheel.is-static .wheel-stage{position:static;height:auto;overflow:visible;perspective:none}
.client-wheel.is-static .wheel-drum{position:static;display:flex;flex-wrap:wrap;gap:16px 28px;transform-style:flat}
.client-wheel.is-static .wheel-name{position:static;transform:none!important;visibility:visible!important;color:var(--ink);pointer-events:auto;white-space:normal}
@media(min-width:701px) and (max-width:1239px){.client-wheel{--wheel-size:75px;--wheel-line:66px;--wheel-radius:240px}}
@media(max-width:700px){.client-wheel{--wheel-size:60px;--wheel-line:58px;margin-top:16px}}

/* Studio refinement: compact image layouts, deliberate type, dark navigation. */
:root{--paper:#f8f9fb;--ink:#17181a;--muted:#6e7177;--line:#d8dade;--gutter:clamp(12px,1.25vw,20px)}
.site-header{position:sticky;top:0;z-index:40;grid-template-columns:1fr;min-height:0;gap:0;padding:24px 0;align-items:center;pointer-events:none}

.site-header nav{grid-column:1;justify-self:center;gap:8px;pointer-events:auto}
body .site-header nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:15px 20px 14px;border-radius:56px;background:rgba(30,30,32,.74);-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1);color:#f8f9fb;text-decoration:none;white-space:nowrap;transition:background-color .18s ease}
body .site-header nav a[aria-current=page]{background:rgba(80,82,88,.66)}
body .site-header nav a:is(:hover,:focus-visible){background:rgba(55,57,62,.86);color:#fff;text-decoration:none}
html{scroll-padding-top:100px}
body .site-header nav a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
/* Share Archive's first text line across Work, Archive and Index. */
:root{--nav-space:24px;--page-row-pad:12px;--page-control-pad:9px;--page-first-line:calc(var(--page-row-pad) + var(--page-control-pad))}
body:has(.listing-page) .site-header{padding:var(--nav-space) 0 calc(var(--nav-space) - var(--page-first-line))}
.listing-page{padding-top:0}
.archive-bar{border-top:0;padding:var(--page-row-pad) 0;gap:16px}
.filter-list{gap:4px 18px}
.filter-button{margin:0;padding:var(--page-control-pad) 0;}
.filter-button[aria-pressed=true]{text-decoration-thickness:1px;text-underline-offset:5px}
.feed-label{padding:20px 0}
#main:not(.archive-page)>.feed-label{padding-top:var(--page-first-line)}
.feed-label a{color:var(--ink)}
.feed-grid,.feed-grid.wide{row-gap:24px;column-gap:10px}
.feed-grid.masonry{gap:10px}
.feed-grid.masonry .work-tile{margin-bottom:24px}
.feed-grid.masonry .work-tile:last-child{margin-bottom:0}

.archive-page .feed-grid{align-items:stretch}
.archive-page .tile-media{aspect-ratio:4 / 3;background:var(--paper)}
.archive-page .tile-media img,.archive-page .tile-media video{object-fit:contain}

.tile-caption .year,.project-index .directory-year{color:var(--muted)}

.year-menu{border-color:var(--line);box-shadow:0 4px 14px #00000008}

.project-layout{gap:48px}
.project-media{gap:24px}
.project-meta>div:has(.project-youtube){display:block}
.project-meta>div:has(.project-youtube) dt{margin-bottom:12px}
.project-youtube{display:block;width:100%;height:auto;aspect-ratio:16 / 9;border:0;background:#000}
.project-index .directory-label{color:var(--muted)}


.contact-socials{gap:16px 24px;margin-top:24px}
.contact-footer{border-top-color:var(--line);padding-top:24px}
.site-footer{border-top-color:var(--line)}
@media(max-width:1050px){.project-layout{gap:32px}}
@media(max-width:700px){
  .site-header{grid-template-columns:1fr;min-height:0;gap:0;padding:20px 0}
  .site-header .brand{grid-column:1;}
  .site-header nav{grid-column:1;justify-self:center;flex-wrap:wrap;gap:8px}
  body .site-header nav a{min-height:46px;padding:15px 16px;}
  :root{--nav-space:20px;--page-row-pad:8px;--page-control-pad:10px}
  .archive-bar{gap:12px;padding:var(--page-row-pad) 0 12px}
  .filter-list{gap:2px 16px}
  .feed-label{padding:16px 0;}

  .project-layout{gap:24px}

}
@media(prefers-reduced-motion:reduce){body .site-header nav a{transition:none}}

/* Typography: two explicit families, one weight, five size roles.
   Keep component sizing here; layouts and breakpoints above must not redefine type.
   Mono is reserved for project facts. Utility labels use the same sans as navigation.
   The wheel's bounded size is a fit constraint for changing client names. */
:root {
  --font-sans: Arial, Helvetica, sans-serif;
  --font-mono: 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
  --weight-regular: 400;
  --size-label: 12px;
  --size-nav: 13px;
  --size-body: 14px;
  --size-title: clamp(28px, 3.2vw, 44px);
  --size-display: clamp(32px, 6.5vw, 88px);
  --leading-label: 1.3;
  --leading-body: 1.45;
  --leading-title: 1.02;
  --leading-display: 1;
  --tracking-label: .02em;
  --tracking-body: -.01em;
  --tracking-title: -.035em;
  --tracking-display: -.04em;
  --type-label: var(--weight-regular) var(--size-label)/var(--leading-label) var(--font-sans);
  --type-nav: var(--weight-regular) var(--size-nav)/var(--leading-display) var(--font-sans);
  --type-body: var(--weight-regular) var(--size-body)/var(--leading-body) var(--font-sans);
  --type-meta: var(--weight-regular) var(--size-label)/var(--leading-body) var(--font-mono);
  --type-title: var(--weight-regular) var(--size-title)/var(--leading-title) var(--font-sans);
  --type-display: var(--weight-regular) var(--size-display)/var(--leading-display) var(--font-sans);
}
body {font:var(--type-body);letter-spacing:var(--tracking-body)}
button, input, select, textarea, h1, h2, h3, strong {font:inherit;letter-spacing:inherit}
.utility, .filter-button, .feed-label, .year-picker, .tile-caption,
.tile-category, .media-count, .directory-label, .directory-row,
.project-meta dt, .project-next strong, .project-media figcaption {
  font:var(--type-label);
  letter-spacing:var(--tracking-label);
}
.site-header nav a {font:var(--type-nav);letter-spacing:var(--tracking-label)}
.site-header .brand {font:700 20px/1.1 Arial,Helvetica,sans-serif;letter-spacing:-.04em;color:#000}
.site-header .brand::after{content:'';display:inline-block;width:.2em;height:.2em;margin-left:.1em;background:currentColor;vertical-align:baseline}
.directory-name, .directory-year, .wheel-heading h2 {font:inherit;letter-spacing:inherit}
/* Arial has no intermediate weight: add a slight stroke without a bold jump. */
.project-index .directory-name,.tile-caption .tile-title{-webkit-text-stroke:.18px currentColor}
.project-index .title-separator,.tile-caption .title-separator{-webkit-text-stroke:0;font-weight:var(--weight-regular)}
.project-meta dd {font:var(--type-meta);letter-spacing:0}
.project-description, .contact-socials {font:var(--type-body);letter-spacing:var(--tracking-body)}
.page-heading h1, .project-info h1, .empty-state h2 {
  font:var(--type-title);
  letter-spacing:var(--tracking-title);
}
.contact-email {font:var(--type-display);letter-spacing:var(--tracking-display)}
/* Preserve the wheel's original typography independently of the UI type scale. */
.wheel-heading,.wheel-side-label {font:400 var(--size-label)/1.5 'SF Mono',Menlo,Consolas,'Liberation Mono',monospace;letter-spacing:.02em}
.wheel-name {font-family:Arial,Helvetica,sans-serif;font-size:min(var(--wheel-size),var(--name-fit));font-weight:400;line-height:.88;letter-spacing:-.03em}
.client-wheel.is-static .wheel-name {font-size:20px}
.year-check, .tile-open {font:var(--type-label)}

/* The footer wordmark is a deliberate bold brand treatment, outside the UI scale. */
.studio-footer{min-height:85svh;margin-top:80px;padding:16px 0 0;display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(48px,7vh,96px)}
/* The cylinder projects beyond its scroll track while the final names roll out. */
main:has(.client-wheel)+.studio-footer{min-height:100vh;margin-top:0;padding-top:clamp(160px,32vh,360px)}
main:has(.client-wheel.is-static)+.studio-footer{padding-top:clamp(48px,12vh,120px)}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;align-items:start;font:var(--type-meta);font-size:var(--size-nav);letter-spacing:0}
.footer-top p{margin:0 0 28px}
.footer-top-link{justify-self:start;padding:0;text-align:left}
.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.footer-links a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;max-width:100%}
.footer-directory,.footer-contact{min-width:0}
.footer-wordmark{display:block;width:var(--viewport-width,100%);margin-left:calc((100% - var(--viewport-width,100%))/2);line-height:0;color:#000}
body .footer-wordmark:is(:hover,:focus-visible){color:#000}
.footer-wordmark svg{display:block;width:100%;height:auto;overflow:hidden;fill:currentColor}
.footer-wordmark text{font-family:'Arial Black',Arial,Helvetica,sans-serif;font-size:260px;font-weight:900;letter-spacing:-18px}
@media(max-width:700px){
  .studio-footer{min-height:65svh;margin-top:60px;gap:48px;padding-top:24px}
  .footer-top{grid-template-columns:1fr 1fr;gap:32px 20px}
  .footer-top-link{grid-column:1 / -1}
  .footer-top p{margin-bottom:20px}
}
@media(max-width:380px){.footer-top{grid-template-columns:1fr}}
