/* Review-only typography and navigation study; artwork geometry is preserved. */
body, button, input, textarea, select { font-family:'Shippori Mincho','Hiragino Mincho ProN','Yu Mincho',serif; }
header nav a { font-size:clamp(16px,1.6vw,20px); letter-spacing:0; font-variant-ligatures:none; }
/* Shared page shell: footer follows long content and reaches the viewport bottom on short pages. */
body { min-height:100vh; min-height:100svh; display:flex; flex-direction:column; }
body > header, body > footer { flex-shrink:0; }
body > main { flex:1 0 auto; margin:0 auto; }
body > footer { margin:0; }
.profile-row a { display:inline-flex; align-items:center; justify-content:center; min-width:36px; min-height:44px; }
.profile-row img { width:21px; height:21px; object-fit:contain; }
.profile-row img[src$=".svg"] { filter:brightness(0) invert(1); }
.profile-row.large { gap:clamp(12px,3vw,30px); flex-wrap:wrap; }
.profile-row.large a { width:48px; height:48px; }
.profile-row.large img { width:30px; height:30px; }
main > h1:not(.email) { text-shadow:none; font-size:clamp(25px,3.4vw,36px); line-height:1.2; letter-spacing:0; font-weight:400; font-variant-ligatures:none; }
header nav a { transition:color .15s ease; color:#bdbdbd; }
header nav a[aria-current] { color:#fff; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
header nav a:hover { color:#fff; }
.about-copy { max-width:64ch; line-height:1.8; margin-inline:auto; }
.event-copy { line-height:1.8; }
.featured-work .ryoshian-entry a { text-decoration-thickness:1px; text-underline-offset:6px; }
@media (hover:none) { .art .hover-title:not(:empty) { opacity:1; font-size:clamp(12px,3vw,16px); padding:8px 12px; background:linear-gradient(transparent,rgba(0,0,0,.8)); } }
@media (prefers-reduced-motion:reduce) { header nav a { transition:none; } }
/* Image and caption are distinct rows, including on touch screens. */
.works .gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 28px; height:auto!important; }
.works .gallery-item { position:relative; inset:auto; width:100%; height:auto; overflow:visible; display:flex; flex-direction:column; text-align:left; }
.works .gallery-item img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; transition:filter .2s; }
.works .hover-title, .works .art .hover-title:not(:empty) { position:static; opacity:1; background:none; color:#eee; font-size:14px; padding:12px 0 0; line-height:1.5; }
.works .hover-share { display:none; }
.project-page { width:min(1180px,calc(100% - 48px)); padding-bottom:80px; }
.project-page h1 { font-size:clamp(24px,4vw,38px); letter-spacing:0; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px; margin:60px auto; }
.project-visual img { display:block; width:100%; aspect-ratio:1; object-fit:contain; transition:filter .2s; }
.project-caption { display:flex; justify-content:space-between; gap:16px; text-align:left; padding-top:14px; align-items:baseline; }
.project-caption h2 { font-size:18px; font-weight:400; margin:0; }
.project-caption span { font-size:12px; color:#aaa; white-space:nowrap; }
.project-back { display:block; text-align:left; margin-bottom:36px; }
.project-deck { color:#aaa; font-size:14px; margin:18px 0 36px; }
.project-facts { display:flex; justify-content:center; gap:24px 60px; flex-wrap:wrap; margin:0 auto 48px; font-size:14px; }
.project-facts dt { color:#999; font-size:12px; margin-bottom:8px; }
.project-facts dd { margin:0; }
.project-hero { max-width:760px; margin:0 auto 60px; }
.project-hero img { width:100%; height:auto; display:block; }
.project-image-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 28px; }
.project-image-grid figure { margin:0; }
.project-image-grid img { width:100%; height:auto; display:block; }
.project-image-grid figcaption { margin-top:12px; color:#bbb; font-size:13px; text-align:left; }
@media(hover:hover) {
  .works .art .hover-title:not(:empty) { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; font-size:clamp(16px,2vw,24px); background:none; color:#fff; opacity:0; pointer-events:none; }
  .works .art:hover img,.works .art:focus-visible img,.project-card:hover img,.project-card:focus-visible img { filter:grayscale(1) invert(1) brightness(.12); }
  .works .art:hover .hover-title:not(:empty),.works .art:focus-visible .hover-title:not(:empty) { opacity:1; }
}
@media(prefers-reduced-motion:reduce) { .works .gallery-item img,.project-visual img,.works .hover-title { transition:none; } }
@media(max-width:767px) { .works .gallery { grid-template-columns:1fr; gap:32px; margin-top:40px; }.project-grid,.project-image-grid { grid-template-columns:1fr; gap:36px; }.project-page { width:calc(100% - 36px); }.project-caption { display:block; }.project-caption span { display:block; margin-top:7px; }.project-facts { justify-content:flex-start; text-align:left; gap:20px; }.project-facts>div { width:100%; } }
.work-name,.work-medium { display:block; }
.work-medium { font-size:.65em; margin-top:.65em; font-weight:400; line-height:1.6; white-space:pre-line; }
@media(hover:hover) { .works .art .hover-title:not(:empty) { flex-direction:column; }.works .art.caption-dismissed .hover-title:not(:empty) { opacity:0; }.works .art.caption-dismissed img { filter:none; } }
@media(hover:none) { .work-medium { font-size:12px; color:#ccc; }.works .art:focus-visible img { filter:none; } }
#full[hidden],#share[hidden] { display:none!important; }
.project-scope { line-height:1.8; margin:0 auto 36px; font-size:14px; }
#lightbox #close { min-width:44px; min-height:44px; } 
/* Project modal shares the standalone article, while retaining the listing behind it. */
#project-dialog { width:min(1180px,calc(100vw - 80px)); height:calc(100dvh - 64px); max-height:none; margin:auto; padding:0; overflow-y:auto; overscroll-behavior:contain; background:#101012; border:1px solid #ffffff30; color:#f8f8f8; }
#project-dialog::backdrop { background:rgba(0,0,0,.78); }
.project-dialog-bar { position:sticky; top:0; z-index:3; height:56px; display:flex; justify-content:flex-end; background:rgba(16,16,18,.96); border-bottom:1px solid #ffffff18; }
#project-dialog .project-dialog-close { position:static; width:56px; min-height:48px; padding:0; font-size:36px; line-height:1; }
#project-dialog .project-page { width:calc(100% - 64px); padding-top:32px; margin:0 auto; min-height:0; animation:none; }
@media(max-width:767px) { #project-dialog { width:100%; height:100dvh; margin:0; border:0; }.project-dialog-bar { padding-top:env(safe-area-inset-top); height:calc(56px + env(safe-area-inset-top)); }#project-dialog .project-page { width:calc(100% - 36px); padding-top:24px; padding-bottom:calc(48px + env(safe-area-inset-bottom)); } }
/* Keep square originals uncropped; desktop preview plus visible image choices. */
.project-intro { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(24px,5vw,72px); align-items:center; margin-bottom:64px; }
.project-intro-copy { text-align:left; }
.project-intro .project-facts { display:block; margin:28px 0 0; }
.project-intro .project-facts>div { margin-bottom:20px; }
.project-intro .project-hero { width:100%; max-width:560px; margin:0 auto; }
.project-intro .project-deck { margin-bottom:20px; }
.pedal-gallery { margin:0 auto; max-width:980px; }
.pedal-gallery-heading { font-size:24px; font-weight:400; margin:0 0 28px; }
.pedal-track { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; list-style:none; padding:0; margin:0; }
.pedal-track li,.pedal-track figure { margin:0; min-width:0; }
.pedal-track img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.pedal-track figcaption { font-size:14px; line-height:1.5; text-align:center; padding:12px 8px; }
.pedal-gallery.gallery-ready { display:grid; grid-template-columns:minmax(0,1fr) 88px; gap:16px 24px; align-items:start; }
.gallery-ready .pedal-gallery-heading { grid-column:1/-1; margin-bottom:8px; }
.gallery-ready .pedal-track { grid-column:1; display:grid; grid-auto-flow:column; grid-auto-columns:100%; grid-template-columns:none; gap:0; width:min(100%,68svh,640px); justify-self:center; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; }
.gallery-ready .pedal-track li { scroll-snap-align:start; scroll-snap-stop:always; }
.pedal-controls:not([hidden]) { grid-column:1; display:flex; gap:16px; justify-content:center; align-items:center; }
.pedal-controls button { width:44px; height:44px; flex:none; border:1px solid #ffffff50; background:transparent; color:#fff; font-size:26px; line-height:1; }
.pedal-count { font-size:12px; line-height:1.5; }
.pedal-thumbs:not([hidden]) { grid-column:2; grid-row:2/4; display:grid; grid-template-columns:1fr; gap:10px; }
.pedal-thumbs button { padding:3px; min-width:44px; min-height:44px; border:1px solid #ffffff30; background:#080808; }
.pedal-thumbs img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.pedal-thumbs [aria-current] { border-color:#fff; box-shadow:0 0 0 1px #fff; }
@media(max-width:767px) {
 .project-intro { grid-template-columns:1fr; gap:28px; margin-bottom:44px; }.project-intro .project-hero { max-width:440px; }
 .pedal-track { grid-template-columns:1fr; }.pedal-gallery.gallery-ready { display:block; }
 .gallery-ready .pedal-track { width:100%; }.pedal-controls:not([hidden]) { margin:12px 0; gap:10px; }
 .pedal-thumbs:not([hidden]) { grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }.pedal-thumbs button { min-width:0; padding:2px; }
}
/* Review navigation study: type-based brand, desktop links, mobile right drawer. */
body > header { height:88px; padding:0 clamp(22px,3vw,56px); display:flex; align-items:center; justify-content:space-between; gap:28px; }
.text-brand { display:block; font-size:clamp(17px,1.5vw,24px); letter-spacing:.015em; line-height:1.2; white-space:nowrap; }
body > header nav { position:static; transform:none; height:auto; display:flex; gap:clamp(10px,1.4vw,24px); align-items:center; }
body > header nav > a { padding:8px 0; border:0; font-size:14px; line-height:1.5; }
body > header nav a[aria-current],body > header nav a:hover,body > header nav a:focus-visible { color:#f17969; text-decoration:none; }
.drawer-links,.nav-backdrop { display:none; }
.footer-brand { display:block; padding:28px 12px 12px; font-size:20px; }
.film-archive { margin:90px 0 70px; text-align:left; }
.film-archive h2 { font-size:clamp(26px,4vw,38px); font-weight:400; }
.film-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 28px; }
.film-stage { aspect-ratio:16/9; background:#080808; }
.film-stage iframe,.film-play { width:100%; height:100%; border:0; }
.film-play { padding:0; position:relative; background:#000; display:block; }
.film-play img { width:100%;height:100%;object-fit:contain;opacity:.8; }
.film-play span { position:absolute; inset:0; display:grid; place-items:center; color:white; font-size:32px; text-shadow:0 2px 12px #000; }
.film-card h3 { font-size:18px; font-weight:400; margin:14px 0 8px; }.film-card>a,.work-tags { font-size:12px; color:#aaa; }
.work-filters { display:flex; flex-wrap:wrap; gap:10px; margin-top:38px; }
.work-filters button { border:1px solid #666; background:transparent; color:#ccc; padding:8px 16px; min-height:44px; border-radius:2px; }
.work-filters button[aria-pressed=true] { background:#eee; color:#111; border-color:#eee; }
.works .gallery-item[hidden] { display:none; }
@media(min-width:1024px){
 .home-study > header { background:transparent; backdrop-filter:none; border-color:transparent; mix-blend-mode:difference; color:white; }
 .home-study > header nav a { color:white; }.home-study > header nav a[aria-current] { text-decoration:underline; }
 .home-study .home { display:flex; flex-direction:column; width:100%; padding-top:0; }
 .home-study .home-gallery { order:-1; margin:0 0 64px; }
 .home-study .home-picture { height:calc(100svh - 88px); width:100%; }
 .home-study .home-picture img { width:100%;height:100%;object-fit:contain; }
}
@media(max-width:1023px){
 body > header { height:72px; padding:0 22px; }.text-brand { font-size:clamp(16px,3.8vw,22px); }
 body > header .menu-toggle { display:block; position:relative; inset:auto; transform:none; width:44px; height:44px; flex:none; z-index:103; }
 body > header nav { display:flex; position:fixed; inset:0 0 0 auto; width:min(86vw,420px); height:100dvh; max-height:none; padding:94px 32px 30px; background:#121214; border:0; box-shadow:none; transform:translateX(105%); visibility:hidden; transition:transform .28s ease,visibility .28s; align-items:stretch; flex-direction:column; gap:0; overflow-y:auto; z-index:102; }
 body > header nav.open { display:flex; transform:translateX(0); visibility:visible; }
 body > header nav > a { font-size:clamp(22px,4vw,30px); padding:10px 0; border:0; text-align:left; }
 .drawer-links { display:block; margin-top:auto; padding-top:32px; }.drawer-links .profile-row { display:flex; gap:12px; justify-content:flex-start; flex-wrap:wrap; }
 .nav-backdrop:not([hidden]) { display:block; position:fixed; inset:0; z-index:99; background:#0009; border:0; padding:0; }
 .drawer-open { backdrop-filter:none; -webkit-backdrop-filter:none; }
 .drawer-open .menu-toggle { position:fixed; right:22px; top:14px; }
 .film-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce){body > header nav { transition:none; }}
/* Keep the closed off-canvas panel outside the horizontal scroll area. */
html { overflow-x:clip; }
.nav-viewport { display:contents; }
@media(max-width:1023px){.nav-viewport { display:block; position:fixed; inset:0; overflow:clip; pointer-events:none; z-index:102; }.nav-viewport nav { pointer-events:auto; }}
/* Cyan indicates location; interaction uses an underline without changing hue. */
body > header, .home-study > header { background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border:0; }
body > header nav>a,body > header nav>a:hover,body > header nav>a:focus-visible { color:#f7f7f7; }
body > header nav>a[aria-current],body > header nav>a[aria-current]:hover { color:#72dce8; text-decoration:none; }
body > header nav>a:hover,body > header nav>a:focus-visible { text-decoration:underline; text-underline-offset:6px; }
.home-study > header { mix-blend-mode:normal; }
.profile-row { display:flex!important; opacity:1; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; }
.profile-row .profile-glyph { display:block; flex:none; width:22px; height:22px; fill:currentColor; color:#fff; }
.profile-row.large .profile-glyph { width:30px; height:30px; }
.profile-row a { color:#fff; opacity:1; }.profile-row a[aria-label=Store] { gap:6px; }.store-label { font-size:11px; }
body > footer { height:auto; min-height:180px; padding:22px 20px 18px; }
footer .brandmark { width:76px; height:76px; }footer p { margin:14px auto 0; }
/* Preserve Hello's full aspect ratio and keep its clickable area on the image. */
.home-study .home-gallery { width:min(980px,calc(100% - 40px)); height:auto!important; margin:40px auto 48px; }
.home-study .home-picture { height:auto; width:100%; }
.home-study .home-picture img { display:block; width:100%; height:auto; object-fit:contain; }
.home-study .home-picture .hover-title { display:none; }
/* A close control outside the independently scrolling project content. */
#project-dialog { overflow:hidden; border:0; }
.project-dialog-bar { position:absolute; inset:10px 12px auto auto; width:44px; height:44px; padding:0; border:0; background:transparent; z-index:4; }
#project-dialog .project-dialog-close { width:44px; height:44px; min-height:44px; padding:0; border:0; background:#101012e8; line-height:1; font-size:32px; }
.project-dialog-content { height:100%; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding-top:52px; }
#project-dialog .project-page { padding-top:24px; }
.event { width:min(1180px,calc(100% - 40px)); padding-bottom:60px; }
.event-copy { max-width:64ch; width:100%; margin:28px auto 36px; line-height:1.8; }
.event-gallery { margin:0 auto; }
.event-rail { display:flex; position:relative; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; padding-bottom:12px; }
.event-rail figure { margin:0; flex:0 0 82%; scroll-snap-align:start; display:flex; justify-content:center; align-items:center; background:#080808; }
.event-rail img { display:block; max-width:100%; width:auto; height:58svh; max-height:620px; object-fit:contain; }
.event-controls { display:flex; justify-content:center; align-items:center; gap:22px; margin-top:16px; }
.event-controls button { width:44px; height:44px; border:1px solid #ffffff40; background:transparent; color:#fff; font-size:26px; }.event-controls button:disabled { opacity:.3; }
.event-count { font-size:13px; }
@media(max-width:767px){
 .event { width:calc(100% - 36px); }.event-copy { text-align:left; font-size:13px; margin:24px 0; }
 .event-rail { gap:12px; }.event-rail figure { flex-basis:92%; }.event-rail img { height:42svh; width:100%; }
 body > footer .profile-row { display:flex!important; }.project-dialog-bar { top:calc(8px + env(safe-area-inset-top)); right:12px; }
}
@media(min-width:768px){.project-dialog-bar { right:24px; }}
.exhibition-entry { margin:40px 0 72px; }.exhibition-entry>a { display:grid; grid-template-columns:minmax(0,280px) minmax(0,1fr); align-items:center; gap:40px; text-align:left; }.exhibition-entry img { display:block; width:100%; max-height:380px; object-fit:contain; }.exhibition-entry h2 { font-size:clamp(22px,3vw,30px); font-weight:400; }.exhibition-entry p { color:#ccc; font-size:14px; }.exhibition-title { font-size:clamp(24px,3vw,36px); font-weight:400; margin-bottom:8px; }.exhibition-location { color:#aaa; font-size:13px; }.works-project-entry { margin:32px auto; border-block:1px solid #ffffff30; padding:22px 0; }.works-project-entry a { font-size:23px; }.works-project-entry span { display:block; font-size:12px; color:#bbb; margin-top:8px; }
@media(max-width:767px){.exhibition-entry>a { grid-template-columns:110px minmax(0,1fr); gap:18px; }.exhibition-entry { margin:32px 0 52px; }.exhibition-entry h2 { font-size:18px; }.exhibition-entry p { font-size:12px; }}
/* Video studies: quiet credits below, play action centered on the image. */
.film-archive { margin:48px 0 70px; }.film-play .play-video { font-family:Arial,sans-serif; font-size:12px; font-weight:600; letter-spacing:.12em; background:#0003; transition:background .2s; }.film-play:hover .play-video,.film-play:focus-visible .play-video { background:#0008; }.film-play img { opacity:1; }.film-caption h3 { font-size:19px; line-height:1.5; }.film-year { white-space:nowrap; }.film-credits { margin-top:18px; font-size:12px; color:#ccc; line-height:1.7; }.film-credits h4 { margin:0 0 5px; font:10px/1.5 Arial,sans-serif; letter-spacing:.1em; color:#999; }.film-credits p { margin:0; }.artwork-heading { font-size:30px; font-weight:400; margin:50px 0 0; }
/* Native scrolling preserves trackpad momentum. Snap is optional, never forced. */
.works .gallery { display:flex; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; gap:28px; height:auto!important; padding-bottom:18px; margin-top:26px; align-items:flex-start; }
.works .gallery-item { flex:0 0 min(70vw,600px); width:min(70vw,600px); scroll-snap-align:start; }
.works .gallery-item img { width:100%; height:52svh; max-height:620px; aspect-ratio:auto; object-fit:contain; }
.works .art .hover-title:not(:empty) { position:static; display:block; opacity:1; pointer-events:auto; background:none; color:#eee; text-align:left; padding:14px 0 0; font-size:18px; line-height:1.5; }
.works .art .work-medium { font-size:12px; color:#aaa; margin-top:5px; }
.works .art:hover img,.works .art:focus-visible img { filter:none; }
.artwork-controls { display:flex; justify-content:flex-end; gap:12px; margin:16px 0 70px; }.artwork-controls button { width:44px; height:44px; border:1px solid #ffffff40; color:white; background:none; font-size:26px; }
@media(max-width:767px){.works .gallery-item { flex-basis:84vw; width:84vw; }.works .gallery-item img { height:44svh; }.works .gallery { gap:18px; }.film-archive { margin-top:32px; }.film-grid { gap:38px; }}
/* Small black play label, with no shadow or full-image scrim. */
.film-play .play-video { inset:50% auto auto 50%; transform:translate(-50%,-50%); display:block; width:max-content; padding:8px 13px; background:#000; color:#fff; text-shadow:none; box-shadow:none; font-size:10px; letter-spacing:.1em; line-height:1.2; }
.film-play:hover .play-video,.film-play:focus-visible .play-video { background:#000; text-decoration:underline; text-underline-offset:3px; }
.ryoshian-exhibition { margin:42px 0 90px; }
.exhibition-caption { position:static; height:auto; background:none; border:0; padding:0; margin-bottom:26px; text-align:left; display:grid; grid-template-columns:1fr auto; gap:8px 30px; align-items:end; }
.exhibition-caption h2 { font-weight:400; font-size:clamp(22px,3vw,32px); line-height:1.5; margin:0; }.exhibition-caption p { margin:8px 0 0; font-size:14px; color:#bbb; }.exhibition-caption .exhibition-meta { grid-column:1; font-size:12px; }.exhibition-detail { grid-column:2; grid-row:1/3; font-size:13px; text-decoration:underline; text-underline-offset:5px; }
.ryoshian-photo-rail { display:flex; overflow-x:auto; gap:24px; scroll-snap-type:x proximity; overscroll-behavior-x:contain; padding-bottom:14px; }
.ryoshian-photo-rail figure { margin:0; flex:none; scroll-snap-align:start; }.ryoshian-photo-rail img { display:block; width:auto; height:min(60svh,660px); max-width:90vw; object-fit:contain; }
@media(max-width:767px){.exhibition-caption { display:block; }.exhibition-detail { display:inline-block; margin-top:16px; }.ryoshian-photo-rail { gap:14px; }.ryoshian-photo-rail img { height:40svh; max-width:88vw; }.ryoshian-exhibition { margin:30px 0 60px; }}
.vimeo-link { display:inline-block; margin-top:14px; font:10px/1.5 Arial,sans-serif; color:#aaa; text-decoration:none; }.vimeo-link:hover,.vimeo-link:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.works-collaborations { margin:60px 0; }.works-collaborations>h2 { text-align:left; font-size:30px; font-weight:400; }.works-collaborations .project-grid { margin:28px 0 0; }.project-caption h3 { font-size:18px; font-weight:400; margin:0; }.works-collaborations .project-visual img { max-height:460px; }
.project-card:hover img,.project-card:focus-visible img { filter:none; }
.film-play .play-video { padding:11px 20px; }
.film-caption .project-caption { align-items:baseline; gap:12px; padding-top:14px; }.film-caption .project-caption h3 { margin:0; font-size:18px; }.film-caption .project-caption>span { font-size:11px; line-height:1.6; white-space:normal; text-align:right; flex:0 0 auto; max-width:45%; }
.featured-meta { font-size:12px; color:#aaa; text-align:right; margin:14px 0 0; }
.exhibition-caption .exhibition-meta { grid-column:2; text-align:right; }.exhibition-detail { grid-row:2; }
@media(max-width:767px){.film-caption .project-caption { display:flex; flex-wrap:wrap; }.film-caption .project-caption>span { margin-left:auto; max-width:100%; }.exhibition-caption .exhibition-meta { text-align:left; }}
.ryoshian-exhibition .exhibition-caption { margin:22px 0 0; }
.event-gallery + .exhibition-caption { margin:26px 0 0; }
.event .event-copy { max-width:64ch; margin:28px 0 0; text-align:left; color:#bbb; font-size:13px; }
/* Film details keep the same reading order at every viewport width. */
.film-caption { text-align:left; padding-top:8px; }
.film-caption .vimeo-link { display:inline-block; margin:0; font:10px/1.6 Arial,sans-serif; color:#aaa; text-decoration:underline; text-underline-offset:3px; }
.film-meta { margin:14px 0 6px; font:11px/1.6 Arial,sans-serif; color:#aaa; }
.film-caption h3 { margin:0 0 10px; font-size:19px; font-weight:400; line-height:1.5; overflow-wrap:anywhere; }
.film-description { margin:0; font-size:13px; color:#ccc; line-height:1.7; }
.film-credits { margin-top:18px; }.film-credits p { overflow-wrap:anywhere; }
.event-rail,.ryoshian-photo-rail { overflow-anchor:none; scroll-snap-type:none; }
@media(max-width:767px){.film-caption h3 { font-size:18px; }.film-meta { margin-top:12px; }.film-description,.film-credits { font-size:12px; }}
/* Dedicated Social page: no fade/compositing or deferred icon loading. */
body > main.profile-direct { animation:none!important; opacity:1!important; visibility:visible; transform:none; }
.profile-grid { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:20px; width:min(560px,100%); margin:65px auto 100px; }
.profile-grid a { display:flex; align-items:center; justify-content:center; width:48px; height:48px; flex:0 0 48px; color:white; }
.profile-grid img { display:block; width:32px!important; height:32px!important; opacity:1!important; visibility:visible!important; filter:brightness(0) invert(1); object-fit:contain; }
@media(max-width:767px){.profile-grid { gap:14px; margin-top:48px; }}
@media(max-width:767px){.profile-grid { width:234px; max-width:100%; column-gap:14px; row-gap:18px; }.profile-grid a { flex-basis:48px; }}

.profile-grid .profile-glyph { display:block; width:32px; height:32px; fill:currentColor; color:#fff; }
.drawer-links .profile-row { flex-wrap:nowrap; gap:10px; }
.drawer-links .profile-row a { width:32px; min-width:32px; min-height:44px; padding:0; border:0; }
.drawer-links .profile-row .profile-glyph { width:19px; height:19px; }

/* Shared editorial hierarchy: kicker, left title and thin rule. */
.page-heading { text-align:left; padding:0 0 26px; margin:0 0 40px; border-bottom:1px solid #ffffff30; }
.page-kicker { font:11px/1.6 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#aaa; margin:0 0 12px; }
main .page-heading h1 { text-align:left; margin:0; font-size:clamp(30px,4.5vw,48px); line-height:1.2; font-weight:400; text-shadow:none; }
.work-caption,.film-caption { display:block!important; text-align:left; padding-top:18px; }
.work-meta,.film-meta { display:block; font:11px/1.6 Arial,sans-serif!important; color:#aaa!important; letter-spacing:.05em; margin:0 0 9px!important; text-align:left!important; }
.work-title,.project-caption .work-title,.film-caption h3 { display:block; font-size:clamp(19px,2.3vw,25px)!important; line-height:1.4!important; font-weight:400; color:#f5f5f5; margin:0 0 12px!important; text-shadow:none; }
.work-description,.film-description { font-size:14px!important; line-height:1.8!important; color:#bbb; margin:0 0 14px; }
.work-detail { display:inline-block; margin-top:14px; font:12px/1.7 Arial,sans-serif; color:#ddd; text-decoration:underline; text-underline-offset:4px; }
.film-credits { border-top:1px solid #ffffff25; padding-top:14px; margin-top:20px; font:12px/1.7 Arial,sans-serif; color:#aaa; }
.film-card,.project-card,.featured-work { padding-bottom:32px; border-bottom:1px solid #ffffff25; }
.ryoshian-exhibition { padding-bottom:40px; border-bottom:1px solid #ffffff25; }
.works .art .hover-title:not(:empty) { padding-top:18px; }.works .art .work-medium { margin:0 0 8px!important; }.works .art .work-name { margin:0!important; }
body > footer .profile-row { display:flex; justify-content:center; align-items:center; gap:14px; margin-top:16px; }.profile-row .profile-glyph { width:22px; height:22px; fill:currentColor; color:white; }
@media(max-width:767px){.page-heading { margin-bottom:32px; padding-bottom:22px; }.work-description,.film-description { font-size:13px!important; }.film-grid { gap:36px; }.drawer-links .profile-glyph { width:19px; height:19px; }}
.works .gallery-item { border-bottom:1px solid #ffffff25; padding-bottom:24px; }
.project-page h1 { text-align:left; text-shadow:none; }.project-page .project-scope,.project-page .project-deck { text-align:left; }
/* Film spacing scale: frame→link 3px; link→metadata 22px; metadata→title 4px. */
.film-caption { padding-top:3px; }
.film-caption .vimeo-link { margin:0 0 22px; line-height:1.5; }
.film-caption .film-meta { margin:0 0 4px!important; }
.film-caption h3 { margin:0 0 12px!important; }
.work-detail span { display:inline; margin-left:5px; }
.ryoshian-credits { margin-top:18px; }
body > main { animation:none; }
.film-caption .vimeo-link { display:block; width:max-content; }
.film-caption .vimeo-link { margin-bottom:12px; }
/* Keep negative-z decorative layers above the document canvas. */
body { isolation:isolate; }

/* Mobile navigation: dark frosted glass, without changing the drawer geometry. */
@media(max-width:1023px) {
 body > header nav { background:rgba(16,17,23,.34); backdrop-filter:blur(16px) saturate(125%); -webkit-backdrop-filter:blur(16px) saturate(125%); border-left:1px solid rgba(255,255,255,.16); box-shadow:-12px 0 40px #0004,inset 1px 0 0 #ffffff08; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { body > header nav { background:#171a20; } }
@media(prefers-reduced-transparency:reduce) { body > header nav { background:#171a20; backdrop-filter:none; -webkit-backdrop-filter:none; } }

body > footer { background:transparent; }
@media(max-width:1023px) { .nav-backdrop:not([hidden]) { background:rgba(0,0,0,.16); } }

/* Edge-to-edge Safari canvas; controls remain inside the device safe area. */
body > footer { padding-bottom:calc(18px + env(safe-area-inset-bottom,0px)); }
@media(max-width:1023px) {
 body > header { height:calc(72px + env(safe-area-inset-top,0px)); padding-top:env(safe-area-inset-top,0px); padding-left:max(22px,env(safe-area-inset-left,0px)); padding-right:max(22px,env(safe-area-inset-right,0px)); }
 .drawer-open .menu-toggle { top:calc(14px + env(safe-area-inset-top,0px)); }
 body > header nav { padding-top:calc(94px + env(safe-area-inset-top,0px)); padding-bottom:calc(30px + env(safe-area-inset-bottom,0px)); padding-right:max(32px,env(safe-area-inset-right,0px)); }
}

/* Give Safari's outside-content canvas the same artwork as the page. */
html { background-color:#171719; background-image:linear-gradient(#000b,#000b),url('/review-assets/backgrounds/desktop-dbd3533b4cdd.webp'); background-position:center; background-size:cover; background-attachment:fixed; }
body { background:transparent; }
@media(max-width:767px) { html { background-image:linear-gradient(#0008,#0008),url('/review-assets/backgrounds/mobile-5a572d0eace2.webp'); } }
