/* Browser-native layout and accessibility improvements. */
.rawx-projects-cursor { font-family:var(--font-body); }
.rawx-logo-box { opacity:1; transform:translate(-50%,-50%) scale(1); }
.rawx-enter-label { opacity:1; }
.rawx-projects-page { min-height:100svh; }
.project-page { height:100dvh; --available-h:calc(100dvh - var(--header-h)); }
.project-page .topbar { min-height:var(--header-h); }
.project-page .h-scroll { touch-action:pan-x; overscroll-behavior-x:contain; }
.project-page .panel--info,.project-page .panel--text { overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:thin; }
.side-overlay__title,.project-page .side-overlay__title { font-family:var(--font-display); font-weight:900; font-size:clamp(28px,3.3vw,64px); overflow-wrap:anywhere; }
.project-page .title-strip__text { font-family:var(--font-display); font-weight:900; }
/* JS fits the complete project heading into at most two lines. The existing
   responsive size remains its upper limit and the no-JS fallback. */
.project-page .panel--info { scrollbar-gutter:stable; }
.project-page .panel--info h1,
.mobile-project-page .mobile-project-info h1 { font-size:var(--project-title-size,clamp(28px,3.3vw,64px)); overflow-wrap:normal; }
.mobile-project-page .mobile-project-info h1 { font-size:var(--project-title-size,clamp(28px,8vw,48px)); }
/* Category navigation and project information share one body font. */
.rawx-projects-page .nav-link,
.project-page .nav-link,
.mobile-project-cats a,
.mobile-project-cats span,
.project-page .panel--info,
.project-page .panel--info :where(:not(h1, h1 *)),
.mobile-project-page .mobile-project-info,
.mobile-project-page .mobile-project-info :where(:not(h1, h1 *)) { font-family:var(--font-body); }
/* Tags and summaries fill the card's content area, inside its padding. */
.project-page .side-overlay__summary,
.mobile-project-info .mobile-project-summary p { width:100%; max-width:none; }
/* A native vertical scroll range receives wheel gestures from cross-origin
   players. Its sticky gallery remains at the same height while JS syncs X/Y. */
.project-page .gallery-scroll-host { height:var(--available-h); width:100%; overflow:auto; overscroll-behavior:contain; scrollbar-width:none; }
.project-page .gallery-scroll-host::-webkit-scrollbar { display:none; }
.project-page .gallery-scroll-host > .h-scroll { position:sticky; top:0; }
.gallery-scroll-spacer { width:1px; pointer-events:none; }
.project-page .panel--hero img,.project-page .panel--hero video { max-width:none!important; }
.project-page .panel--three,.project-page .panel--two { grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:max-content; }
.project-page .panel--three > *,.project-page .panel--two > * { min-width:0; }
.project-page .panel--three img,.project-page .panel--two img { width:auto!important; }
.project-page .project-overlay-rail:focus-within { opacity:1; }
.project-page .project-overlay-rail__item:focus-visible { filter:none; opacity:1; }
.video-controls { height:auto!important; width:auto!important; }
.video-controls button { min-height:36px; }
.about-page-overlay { overflow-y:auto!important; width:clamp(340px,35vw,620px); line-height:1.2; }
.about-page-overlay h1 { font-size:clamp(30px,4vw,64px); }
.mobile-about { padding:16px; max-width:900px; margin:auto; line-height:1.4; }
.mobile-about h1 { font-size:40px; }
dialog.rawx-dialog { position:fixed; inset:0; border:0; margin:0; padding:0; width:100vw; max-width:none; height:100dvh; max-height:none; background:transparent; color:inherit; overflow:hidden; }
dialog.rawx-dialog::backdrop { background:rgba(100,100,100,.12); }
dialog.rawx-dialog .mobile-about { position:absolute; inset:12px; overflow-y:auto; background:rgba(238,238,238,.94); border-radius:12px; }
.reel-video-wrap { aspect-ratio:16/9; }
.reel-video-wrap iframe { width:100%!important; height:100%!important; }
.mobile-project-page .video-panel { height:auto!important; width:100%!important; }
.mobile-project-page .hero-video { width:100%; height:auto; }
.mobile-project-page .side-overlay__title { font-size:clamp(28px,8vw,48px); }
.mobile-project-page,.rawx-mobile-projects-page { overflow-x:clip; }
.mobile-project__row > span { min-width:0; overflow-wrap:anywhere; }
.mobile-project-cats { justify-content:flex-start; }
.mobile-project-cats > * { flex-shrink:0; }
.mobile-project:focus-visible { color:rgba(0,0,0,.9); }
.mobile-media-grid img { height:auto; align-self:stretch; object-fit:cover; }
.mobile-project-meta p,.mobile-project-summary p,.mobile-project-credits p { overflow-wrap:anywhere; }
/* The original mobile composition, with the owner's requested 12–14px text. */
@media(max-width:900px) {
  :root { font-size:14px; }
  .mobile-projects-topbar,.mobile-project-header { padding:12px; gap:8px; }
  .mobile-project__row { font-size:12px; }
  .mobile-project-cats a,.mobile-project-cats span { font-size:12px; }
  .mobile-top-link,.mobile-project-header__right a { font-size:12px; min-height:40px; display:inline-flex; align-items:center; }
  .mobile-project-cats { min-height:34px; overflow-x:auto; }
  .mobile-project-cats a { padding:8px 0; }
  .mobile-project-meta p,.mobile-project-summary p,.mobile-project-credits p { font-size:14px; line-height:1.35; }
  .mobile-project-eyebrow,.mobile-project-meta span,.mobile-project-summary span { font-size:12px; }
  .about-page-overlay { inset:12px!important; width:auto!important; height:calc(100dvh - 24px)!important; max-height:none!important; }
  .reel-page-overlay .overlaypage2-content { width:calc(100vw - 24px)!important; height:auto!important; min-height:0; }
  .overlaypage2-header h1 { font-size:32px; }
  .reel-video-wrap { flex:none!important; }
  .video-controls button { min-height:44px; }
}
@media(min-width:901px) {
  .mobile-project-page,.rawx-mobile-projects-page { max-width:960px; margin:auto; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
@media(hover:none) {
  .rawx-projects-cursor { display:none; }
}
