/* Mobile interaction and viewport layer. The approved desktop materials stay intact. */
.site-header { padding-left:max(var(--gutter),env(safe-area-inset-left)); padding-right:max(var(--gutter),env(safe-area-inset-right)); }
.menu-dialog.orbit-menu { padding-top:max(30px,env(safe-area-inset-top)); padding-bottom:max(30px,env(safe-area-inset-bottom)); }
#quick-dialog.quick-dialog { padding-left:max(32px,env(safe-area-inset-left)); padding-right:max(32px,env(safe-area-inset-right)); padding-bottom:max(28px,env(safe-area-inset-bottom)); }

/* A blank part of the editor permits page scrolling. Drawing is an explicit mode. */
.eclipse-annotation .ea-viewport { touch-action:pan-y pinch-zoom; }
.eclipse-annotation .ea-viewport[data-ea-mode="draw"],.eclipse-annotation .ea-box,.eclipse-annotation .ea-corner { touch-action:none; }

@media (pointer:coarse) {
  .site-header nav a { display:inline-flex; min-height:44px; align-items:center; }
  .site-header .wordmark,.language-switch a,.orbit-menu .language-switch a { min-width:44px; min-height:44px; justify-content:center; }
  .text-link,.back-link,.contact-social>a,.footer-bottom a,.contact-line>.email,.contact-direct>.email { min-height:44px; display:inline-flex; align-items:center; }
  .view-switch button,.gallery-controls button,.project-index button,.archive-filters button,.intent-options label,.terminal-shortcuts button,.rudder-console .terminal-command-list button { min-height:44px; }
  .project-index button { min-width:44px; }
  #contact-form :is(input:not([type=radio]):not([type=checkbox]),textarea),.rudder-console #terminal-command,
  .eclipse-finance .ef-controls select,.eclipse-annotation .ea-coordinate-fields input,.eclipse-annotation .ea-form-class select { font-size:16px; }
  .eclipse-finance .ef-controls select,.eclipse-annotation .ea-form-class select,.eclipse-annotation .ea-coordinate-fields input { min-height:44px; }
  .eclipse-finance .ef-data-fallback summary,.eclipse-annotation .ea-details>summary { min-height:44px; display:flex; align-items:center; }
  .eclipse-annotation .ea-class-picker button,.eclipse-annotation .ea-confirm button,.eclipse-annotation .ea-frame-control label { min-height:44px; }
  .eclipse-annotation .ea-corner::before { inset:-11px; }
  .row-preview { display:none; }
  .footer-bottom>div,.contact-social { gap:10px 24px; flex-wrap:wrap; }
}

@media (max-width:700px) {
  .menu-dialog.orbit-menu { padding-top:max(20px,env(safe-area-inset-top)); padding-bottom:max(20px,env(safe-area-inset-bottom)); }
  #quick-dialog.quick-dialog { padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right)); }
  .site-header { gap:12px; }
  .site-header>.language-switch { gap:0; }
  .site-header>.wordmark { min-width:0; justify-content:flex-start; }
  .laptop-device { width:104%; left:-4%; }
  .studio-game-caption { align-items:center; }
  .studio-game-caption a { flex:1; min-width:0; }
  .studio-game-caption>span { flex:none; }
  .liquid-gallery .project-fallback { height:clamp(320px,88vw,410px); min-height:0; padding-block:18px 36px; }
  .liquid-gallery .gallery-phone-display { height:clamp(250px,72vw,330px); }
  .liquid-gallery .work-bottom { align-items:flex-start; }
  .liquid-gallery .active-project>p { white-space:normal; overflow:visible; }
  .liquid-gallery .active-project h3 { overflow-wrap:anywhere; }
  .archive-filters { gap:8px 22px; }
  .archive-filters .result-count { margin-left:0; }
  .contact-line { flex-wrap:wrap; }
  .contact-line>.email { max-width:100%; overflow-wrap:anywhere; }
  .contact-compose,.contact-copy,#contact-form { min-width:0; }
  .game-poster,.game-case-opening .game-poster { max-width:100%; }
  .game-promotion>figcaption { flex-wrap:wrap; }
  .game-promotion-status { max-width:100%; }
  .eclipse-finance .ef-controls { flex-wrap:wrap; gap:4px 0; }
  .eclipse-finance .ef-controls label { flex:1 1 50%; }
  .eclipse-finance .ef-controls label:nth-child(2) { padding-right:0; }
  .eclipse-finance .ef-controls label:last-child { flex:1 1 100%; padding:0; border-left:0; }
  .eclipse-finance .ef-controls label:last-child select { width:auto; min-width:100px; margin-left:auto; }
  .eclipse-finance .ef-table-scroll { overscroll-behavior-x:contain; }
  .eclipse-annotation .ea-details>summary { position:static; }
  .eclipse-annotation .ea-status { padding-right:0; }
  .eclipse-annotation .ea-tools { flex-wrap:wrap; }
  .eclipse-annotation .ea-tools button { min-width:44px; }
  .eclipse-annotation .ea-frame-control label { align-items:flex-start; padding-block:10px; }
  .eclipse-annotation .ea-frame-control input { flex:none; margin-top:2px; }
  .rudder-console .terminal-output { height:clamp(240px,42svh,345px); }
  .site-footer { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
}
@media (max-width:380px) {
  .site-header>.wordmark { flex-direction:column; align-items:flex-start; justify-content:center; gap:0; }
  .wordmark .coded-by { line-height:1.2; }
  .wordmark .signature-name { line-height:1.3; }
  .site-header>.menu-trigger { gap:6px; }
  .site-header .language-switch { gap:0; }
  .orbit-menu .menu-head-actions { gap:12px; }
  .orbit-menu .language-switch { gap:0; }
}
/* Short landscape screens keep the orbit artwork but give links their own hit areas. */
@media (max-height:520px) {
  .menu-dialog.orbit-menu { padding-block:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-bottom)); }
  .orbit-menu .orbit-stage { min-height:140px; }
  .orbit-stage nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:center; justify-items:center; gap:4px 20px; padding:8px 28px; }
  .orbit-stage .orbit-link,.orbit-stage .orbit-link[data-orbit-item="1"] { position:relative; inset:auto; width:auto; max-width:100%; transform:none!important; font-size:clamp(24px,4.6vw,38px); padding:8px 4px; min-height:44px; text-align:center; }
  .orbit-menu .menu-foot { min-height:24px; }
  .portal-dialog .portal-inner,.contact-portal.portal-dialog .portal-inner { min-height:0; height:auto; padding:30px 12% 24px; }
  .portal-dialog .portal-inner h2 { font-size:32px; }
  #quick-dialog .game-preview>.quick-image { min-height:0; height:65svh; }
}

@media (max-width:380px) and (min-height:581px) {
  #profile-dialog .portal-inner { padding:16% 18% 12%; }
  #profile-dialog .portal-inner h2 { font-size:29px; }
  #profile-dialog .portal-inner>p { line-height:1.4; }
}

/* Native page links remain complete if scripts are unavailable. */
@media (max-width:700px) {
  html:not(.js) .site-header nav>a { display:inline-flex; min-height:44px; align-items:center; }
  html:not(.js) .menu-trigger,html:not(.js) .floating-menu { display:none; }
}
