@font-face{font-family:Oswald;font-style:normal;font-weight:300 700;font-display:swap;src:url('/assets/oswald-latin.woff2') format('woff2')}
*{box-sizing:border-box}body{margin:0;background:#f5f5f5;color:#444;font:12px/24px Helvetica,'Helvetica Neue',Arial,sans-serif}a{color:#444;text-decoration:none}p a,figcaption a,article a{color:#e74c3c}a:hover{color:#e74c3c}button,input,textarea,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #e74c3c;outline-offset:3px}h1,h2,h3,h4,nav a,#logo,.filters button{font-family:Oswald,sans-serif;text-transform:uppercase}h1{font-size:42.667px;line-height:1.4;margin:0 0 40px;font-weight:700}h2{font-size:24px;line-height:1.4;font-weight:400;margin:0 0 25px}h3{font-size:20px;line-height:1.4}p{margin:0 0 25px}hr{border:0;border-top:1px solid #c5c5c5;margin:25px 0}ul,ol{padding-left:22px}#main{position:absolute;top:0;left:0;width:280px;min-height:100vh;background:#f5f5f5;border-right:1px solid #c5c5c5;z-index:20}#logo{font-size:45px;line-height:40px;font-weight:700;padding:35px 20px 20px;border-bottom:1px solid #c5c5c5}#logo a{white-space:nowrap}nav ul{padding:0;margin:0;list-style:none}#main nav{padding-bottom:30px}#main nav li{position:relative;background:white}#main nav a{display:block;padding:5px 20px;border-bottom:1px dotted #c5c5c5;transition:padding .3s,color .3s}#main nav li:hover>a{padding-left:35px;color:#e74c3c}#main nav li.current>a{color:#e74c3c}#main .submenu{display:none;position:absolute;left:100%;top:-1px;width:260px;border:1px solid #c5c5c5;max-height:90vh;overflow:auto;box-shadow:2px 2px 1px #ddd}#main li:hover>.submenu,#main li:focus-within>.submenu,#main li.open>.submenu{display:block}.submenu-toggle{position:absolute;right:7px;top:5px;border:0;background:transparent;padding:0 7px;color:#777}.filters{list-style:circle;padding:0 20px 33px 40px;margin:0}.filters button{background:none;border:0;color:#444;padding:0;line-height:24px;text-align:left}.filters button[aria-pressed=true],.filters button:hover{color:#e74c3c}.filters li:has([aria-pressed=true]){list-style:disc}#content{margin-left:280px;min-height:100vh}#mobile-nav{display:none}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:0}.portfolio-grid li{margin:0;min-width:0}.portfolio-grid li[hidden]{display:none}.work-tile{display:block;position:relative;width:100%;aspect-ratio:600/380;overflow:hidden;background:#f5f5f5;user-select:none}.work-tile>img{display:block;width:100%;height:100%;object-fit:cover}/* Source theme: h4 at 1.333rem, category paragraph without an added gap. */
.tile-overlay{position:absolute;inset:0;display:block;text-align:center;background:rgba(0,0,0,.85);border:5px solid #000;color:#fff;opacity:0;pointer-events:none}
.tile-overlay>span{position:absolute;top:calc(50% - 30px);left:0;width:100%}
.tile-overlay strong{display:block;font:700 1.3333333333rem/1.4 Oswald,sans-serif;text-transform:uppercase;text-rendering:optimizeLegibility}
.tile-overlay span span{display:block;margin:0;font:12px/24px Helvetica,'Helvetica Neue',Arial,sans-serif}
.work-tile:not(.hover-enhanced):hover .tile-overlay,.work-tile:focus-visible .tile-overlay{opacity:1}
.work-tile.hover-enhanced .tile-overlay{opacity:1;transform:translateY(-100%)}
/* Align desktop page headings with the sidebar name using the same text metrics. */
@media(min-width:861px){
  #content>article{padding-top:35px}
  #content>article>h1:first-child{font-size:45px;line-height:40px}
}
.detail-wrapper{max-width:1000px;background:white;min-height:100vh}article{max-width:1000px;min-height:100vh;padding:40px;background:#fff;border-right:1px solid #c5c5c5}.work-article{padding-top:20px;min-height:0}.work-title{text-align:center;margin:0 0 60px}.work-columns{display:grid;grid-template-columns:minmax(0,74fr) minmax(0,22fr);gap:4%}.work-description{min-width:0}.project-details h2{font-size:14px;font-weight:300}.project-details p{margin-bottom:30px}.tab-list{display:flex;gap:0;flex-wrap:wrap}.tab-list button{appearance:none;color:#444;border:1px solid #c7c7c7;background:#f5f5f5;padding:0 10px;line-height:24px}.tab-list button[aria-selected=true]{background:#fff;border-bottom-color:#fff;position:relative;top:1px}.tab-panel{border:1px solid #c7c7c7;padding:25px 20px 30px;margin:0 10px 20px 0}.tab-panel h2{margin-bottom:25px}.tabs.enhanced .tab-panel[hidden]{display:none}.media-frame{aspect-ratio:3/2;background:#f5f5f5;overflow:hidden;width:100%}.media-frame .content-image{display:block;width:100%;height:100%;object-fit:contain}.slideshow{position:relative;width:100%;background:#f5f5f5}.slideshow figure{margin:0}.slideshow.enhanced .slide:not(.active){display:none}.slide figcaption{padding:10px 20px;background:#fff;text-align:center}/* Controls sit over the active image; captions stay below it. */
.slide-controls{display:none;position:absolute;top:0;left:0;width:100%;aspect-ratio:3/2;pointer-events:none;z-index:2}
.slideshow.enhanced .slide-controls,.inline-gallery.enhanced .slide-controls{display:block}
.slide-controls button{appearance:none;pointer-events:auto;filter:drop-shadow(0 1px 2px #0009)}
.slide-controls>button{position:absolute;top:50%;transform:translateY(-50%);width:64px;height:100px;padding:0;border:0;background:transparent;color:white;font-size:0}
.slide-controls>button:first-child{left:0}.slide-controls>button:last-child{right:0}
.slide-controls>button:after{content:'';display:block;width:32px;height:32px;margin:auto;border-top:3px solid white;border-right:3px solid white;transform:rotate(45deg)}
.slide-controls>button:first-child:after{transform:rotate(-135deg)}
.slide-dots{position:absolute;bottom:4%;left:5%;right:5%;display:flex;gap:4px;justify-content:center}
.slide-dots button{flex:1 1 0;min-width:0;max-width:26px;height:44px;background:transparent;border:0;padding:19px 0}
.slide-dots button:after{content:'';display:block;height:4px;background:rgba(255,255,255,.5)}
.slide-dots button[aria-pressed=true]:after{background:#fff}
/* Touch galleries reveal smaller chevrons on demand, preserving large tap targets. */
@media(hover:none) and (pointer:coarse){
  .slide-controls>button{opacity:0;pointer-events:none;transition:opacity .25s}
  .slide-controls>button:after{width:16px;height:16px;border-width:1.5px}
  .gallery-controls-visible .slide-controls>button,.slide-controls>button:focus-visible{opacity:1;pointer-events:auto}
}
.work-navigation,.pagination{display:flex;gap:20px;justify-content:space-between;border-top:1px solid #c5c5c5;margin-top:35px;padding-top:20px}.work-navigation a,.pagination a{font:12px/24px Oswald,sans-serif;text-transform:uppercase}.inline-gallery{position:relative;margin:20px 0}.inline-gallery figure{margin:0 0 25px}.inline-gallery img,.content-image{max-width:100%}.inline-gallery img,.source-gallery img,article p>img,article a>img{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;background:#f5f5f5}.inline-gallery figcaption{padding:10px 0}.photography-item{margin:0 0 25px}.photography-item figcaption{padding:10px 0}.photography-gallery.enhanced .deferred-photo{display:none}iframe{max-width:100%;width:100%;aspect-ratio:16/9;height:auto;border:0}audio,video{max-width:100%}.contact-form{max-width:650px}.contact-form label{display:block;margin-bottom:20px}input:not([type=checkbox]):not([type=hidden]),textarea,select{display:block;width:100%;border:1px solid #c5c5c5;background:#f5f5f5;padding:12px;color:#444}textarea{resize:vertical}.contact-form button,#load-more{background:#444;color:white;border:0;padding:10px 25px;font-family:Oswald,sans-serif;text-transform:uppercase}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.notice,.error,.preview-banner{padding:12px 20px;margin-bottom:20px;background:#f5f5f5;border:1px solid #c5c5c5}.error{border-color:#e74c3c}.preview-banner{position:relative;z-index:5;margin:0;border-color:#e74c3c}.skip-link{position:absolute;left:0;top:-100px;background:white;padding:10px;z-index:100}.skip-link:focus{top:0}.current-section{border-top:1px solid #c5c5c5;margin-top:50px;padding-top:35px}.current-cards{display:grid;gap:30px;grid-template-columns:repeat(3,minmax(0,1fr))}.current-card img{width:100%;aspect-ratio:600/380;object-fit:contain}.current-card h3{margin:18px 0 10px}.current-card time{color:#777}.section-intro{font-size:16px}table{border-collapse:collapse;max-width:100%;width:100%}td,th{padding:8px;border:1px solid #ccc;text-align:left}#filter-empty{padding:30px}.admin-body{background:#f5f5f5}.admin-shell{max-width:1280px;margin:auto;padding:25px}.admin-header{display:flex;align-items:center;gap:25px;justify-content:space-between}.admin-header h1{font-size:32px;margin:0}.admin-nav{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.admin-nav a,.admin-button,.admin-shell button{display:inline-block;background:#444;color:#fff;padding:8px 15px;border:0}.admin-nav a:hover,.admin-button:hover,.admin-shell button:hover{background:#e74c3c;color:#fff}.admin-panel{background:white;padding:25px;margin:20px 0;border:1px solid #c5c5c5}.admin-panel label{display:block;margin:15px 0}.admin-panel textarea.html-field{min-height:200px;font-family:monospace}.admin-actions{display:flex;flex-wrap:wrap;gap:10px}.admin-table{overflow:auto}.admin-table td{vertical-align:top}.admin-gallery{display:flex;gap:15px;flex-wrap:wrap}.admin-gallery figure{margin:0;width:160px}.admin-gallery img{width:160px;aspect-ratio:600/380;object-fit:contain}.drag-handle{cursor:grab}.reorder-list{padding-left:0;list-style:none}.reorder-list li{background:#f5f5f5;padding:12px;margin-bottom:8px;border:1px solid #ddd}.reorder-list li.dragging{opacity:.4}.editor-tools{display:flex;gap:5px;flex-wrap:wrap}.editor-tools button{font-size:12px;padding:4px 9px}.visual-editor{padding:15px;border:1px solid #ccc;min-height:200px}.editor-area textarea{margin-top:8px}.muted{color:#777}.screen-reader-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1600px){.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1180px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){#main{left:-280px;position:fixed;height:calc(100vh - 40px);overflow:auto;top:40px;min-height:0;transition:left .3s}#main.open{left:0}#mobile-nav{display:block;position:fixed;top:0;left:0;width:100%;height:40px;border:0;background:#333;color:white;z-index:30;font:700 22px/40px Oswald,sans-serif;text-transform:uppercase}#mobile-nav span{position:absolute;left:15px}#content{margin:0;padding-top:40px}#main .submenu{position:static;width:100%;max-height:none;box-shadow:none;border:0;padding-left:15px}#main li:hover>.submenu{display:none}#main li.open>.submenu,#main li:focus-within>.submenu{display:block}.work-title,h1{font-size:26px}.slide-dots button{width:20px}.admin-shell{padding:15px}.admin-header{align-items:flex-start}.admin-header h1{font-size:26px}}@media(max-width:767px){article{padding:5%}.work-columns{display:block}.project-details{margin-top:35px}.current-cards{grid-template-columns:1fr}.work-title{margin-bottom:35px}.tab-panel{margin-right:0}.admin-panel{padding:15px}}@media(max-width:600px){.portfolio-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.inline-gallery.enhanced>figure:not(.active){display:none}.inline-gallery.enhanced>figure{margin-bottom:0}.photography-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.photography-item{min-width:0}.photography-item figcaption{font-size:11px;line-height:18px}.photography-gallery .media-frame{aspect-ratio:3/2}iframe[src^="https://w.soundcloud.com/"]{aspect-ratio:auto;height:450px}@media(max-width:1180px){.photography-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.photography-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

[hidden]{display:none!important}.editor-field{margin:15px 0}.field-label{margin-bottom:8px}.gallery-editor img{width:120px;aspect-ratio:600/380;object-fit:contain;vertical-align:middle}
.thumbnail-preview img{display:block;width:240px;max-width:100%;height:auto;aspect-ratio:600/380;object-fit:contain}
.thumbnail-dialog{width:900px;max-width:94vw;max-height:85vh;padding:24px;border:1px solid #c5c5c5;color:#444;background:#fff}
.thumbnail-dialog::backdrop{background:rgba(0,0,0,.6)}
.thumbnail-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}
.thumbnail-dialog-header h2{margin:0}
.thumbnail-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px}
.admin-panel .thumbnail-choice{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:0;padding:12px;border:2px solid #ddd;cursor:pointer;overflow-wrap:anywhere}
.thumbnail-choice:has(input:checked){border-color:#e74c3c;background:#fff5f3}
.thumbnail-choice:focus-within{outline:2px solid #e74c3c;outline-offset:2px}
.thumbnail-choice input[type=radio]{display:inline-block;width:auto;padding:0;margin:0;accent-color:#e74c3c}
.thumbnail-choice img{display:block;width:100%;height:auto;aspect-ratio:600/380;object-fit:contain}
.thumbnail-fallback summary{cursor:pointer}
.home-body{background:#fff}
.home-slider{user-select:none;position:relative;height:100svh;min-height:340px;background:#fff;overflow:hidden}
.home-body #main{position:fixed;height:100svh}
#home-content{margin-left:280px}
.home-slide,.home-slide>a{display:block;width:100%;height:100%}
.home-slide:not([hidden]){animation:home-slide-fade .4s ease}
@keyframes home-slide-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.home-slide{animation:none!important}}
.home-slide img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none}
.home-slider[data-fit=cover] .home-slide img{object-fit:cover}
.home-arrow{position:absolute;top:50%;transform:translateY(-50%);width:64px;height:100px;background:transparent;border:0;color:white;filter:drop-shadow(0 1px 3px #0009);opacity:0;pointer-events:none;transition:opacity .2s}
.home-slider:hover .home-arrow,.home-slider:focus-within .home-arrow{opacity:1}
.home-slider:hover .home-arrow,.home-slider:focus-within .home-arrow{pointer-events:auto}
.home-previous{left:20px}.home-next{right:20px}
.home-arrow span{display:block;width:32px;height:32px;border-top:3px solid white;border-right:3px solid white;transform:rotate(45deg);margin:auto}
.home-previous span{transform:rotate(-135deg)}
.home-autoplay-toggle:focus{clip:auto;width:auto;height:auto;bottom:24px;left:28px;padding:10px 15px;background:#fff;color:#444;border:0}
.home-preview-banner{padding:10px 25px;background:white}.home-preview-banner a{color:#e74c3c}
.home-empty{max-width:none;min-height:100svh}
.home-slide-editor{display:flex;gap:25px;align-items:flex-start}
.home-slide-editor-fields{flex:1;min-width:0}.home-slide-editor-actions{display:flex;gap:5px;flex-wrap:wrap;padding-top:15px}
.home-image-preview img{display:block;width:300px;max-width:100%;height:auto;aspect-ratio:600/380;object-fit:contain}
.home-image-choice{display:flex!important;flex-direction:column;gap:10px;padding:12px!important;background:#f5f5f5!important;color:#444!important;border:2px solid #ddd!important;text-align:left;overflow-wrap:anywhere}
.home-image-choice[aria-pressed=true],.home-image-choice:hover{border-color:#e74c3c!important}
.home-image-choice img{display:block;width:100%;height:auto;aspect-ratio:600/380;object-fit:contain}
.home-slider-editor>.admin-actions{margin-top:25px}
@media(max-width:860px){#home-content{margin-left:0;padding-top:40px}.home-body #main{height:calc(100svh - 40px)}.home-slider{height:calc(100svh - 40px);min-height:280px}}
@media(max-width:600px){.home-arrow{width:44px;height:72px}.home-arrow span{width:22px;height:22px}.home-previous{left:5px}.home-next{right:5px}.home-slide-editor{display:block}.home-slide-editor-actions{padding-top:20px}}
.about-bio{display:grid;grid-template-columns:minmax(0,30fr) minmax(0,70fr);gap:30px;align-items:start}
.about-portrait{margin:0}.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:transparent}
.about-portrait>a{display:block;position:relative;color:#fff}
.about-portrait>a>span{position:absolute;right:0;top:0;left:0;padding:0 16px;background:transparent;font:inherit;opacity:0;transition:opacity .2s;pointer-events:none}
.about-portrait>a:hover>span,.about-portrait>a:focus-visible>span{opacity:1}
.about-bio-copy>p:last-child{margin-bottom:0}
.collaboration-page .media-frame{aspect-ratio:auto;background:transparent;overflow:visible}
.collaboration-page img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:transparent}
@media(max-width:767px){.about-bio{grid-template-columns:1fr;gap:25px}.about-portrait{max-width:340px}}

/* Keep the same navigation in view on every long public page. */
@media(min-width:861px){#main{position:fixed;top:0;height:100svh;min-height:0}}
@media(min-width:861px) and (max-height:650px){#main{overflow:auto}#main .submenu{position:static;width:100%;max-height:none;border:0;box-shadow:none;padding-left:15px}}

/* Mobile home follows the stacked portfolio menu; desktop keeps the slider. */
.home-mobile-portfolio{display:none}
@media(max-width:860px),(hover:none) and (pointer:coarse){
  .home-responsive #home-content{margin-left:0;padding-top:40px}
  .home-responsive #main{left:-280px;top:40px;height:calc(100svh - 40px);min-height:0;overflow:auto;transition:left .3s}
  .home-responsive #main.open{left:0}
  .home-responsive #mobile-nav{display:block;position:fixed;top:0;left:0;width:100%;height:40px;border:0;background:#333;color:white;z-index:30;font:700 22px/40px Oswald,sans-serif;text-transform:uppercase}
  .home-responsive #mobile-nav span{position:absolute;left:15px}
  .home-responsive #main .submenu{position:static;width:100%;max-height:none;box-shadow:none;border:0;padding-left:15px}
  .home-responsive #main li:hover>.submenu{display:none}
  .home-responsive #main li.open>.submenu,.home-responsive #main li:focus-within>.submenu{display:block}
  .home-responsive .home-slider,.home-responsive .home-empty{display:none}
  .home-responsive .home-mobile-portfolio{display:block}
  .home-mobile-portfolio .portfolio-grid{grid-template-columns:1fr}
}

/* Explicit tap state wins over sticky iOS hover/focus when collapsing a submenu. */
@media(max-width:860px),(hover:none) and (pointer:coarse){
  #main nav li.submenu-enhanced:not(.open)>.submenu{display:none}
}
