/* Portrait rooms keep their own reading surface; the corridor remains the navigation. */
#world {overflow:hidden}
@media (max-width:760px) {
  html,body {height:100%;height:100dvh;overscroll-behavior:none}
  body {--mobile-top:128px;--mobile-bottom:112px;-webkit-text-size-adjust:100%}
  #world {overflow:hidden}
  .navigation {top:env(safe-area-inset-top,0px);left:20px;right:20px;display:block;padding-top:8px}
  .brand {font-size:22px;min-height:38px}
  .brand span {display:inline;font-size:10px;margin-left:12px}
  .navigation nav {justify-content:space-between;gap:0;font-size:12px;border-bottom:1px solid var(--line)}
  .navigation nav button {display:block;min-height:44px;padding:9px 5px}
  .room-caption {left:24px;right:24px;top:calc(102px + env(safe-area-inset-top,0px));font-size:9px}
  .room-caption #room-name {font-size:10px}
  .wayfinding {left:20px;right:20px;bottom:calc(38px + env(safe-area-inset-bottom,0px));height:58px;font-size:11px;background:linear-gradient(0deg,#0c120de8,#0c120d80);border-top:1px solid var(--line)}
  .wayfinding>button {max-width:145px;min-height:48px;letter-spacing:0}
  .room-map {display:none}
  .utility {left:20px;right:20px;bottom:env(safe-area-inset-bottom,0px);font-size:9px;height:38px;background:#0c120de8}
  .utility button {font-size:10px;min-height:38px}
  #travel-hint {max-width:45%;font-size:9px}
  .entrance-name {left:25px;top:28%}
  .entrance-name h1 {font-size:clamp(76px,21vw,140px)}
  .entrance-name>p:first-child {margin-bottom:24px;font-size:9px}
  .identity {font-size:12px;margin-top:24px}
  .door-hit {left:55%;top:48%;height:30%;width:40%}
  .door-hit span {opacity:.8;font-size:11px;bottom:12%}
  .room[data-scene='1'],.room[data-scene='3'] {top:calc(var(--mobile-top) + env(safe-area-inset-top,0px));bottom:calc(var(--mobile-bottom) + env(safe-area-inset-bottom,0px));overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;padding:12px 16px 28px}
  .room[data-scene='1'] .room-intro {position:relative;inset:auto!important;width:auto;padding:4px 8px 22px}
  .room-intro>p:first-child {font-size:9px;margin-bottom:10px}
  .room-intro h2 {font-size:30px;letter-spacing:-.035em}
  .room-intro h2 span {display:none}
  .inventory {top:25px;right:8px;font-size:11px;max-width:125px;min-height:44px}
  .room[data-scene='1'] .tv-installation {position:relative;inset:auto;width:100%;max-width:none;transform:none;perspective:none}
  .installation-title {font-size:9px;padding:0 8px 12px}
  .tv-wall {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 2px}
  .crt {aspect-ratio:4/3}
  .crt-caption {font-size:10px;left:10%;right:12%;height:10%;top:82.5%}
  .crt-caption small {display:none}
  .installation-note {font-size:11px;padding:18px 0}
  body[data-room='2'] .hero-stage {opacity:0}
  body[data-room='3'] .hero-stage {opacity:.16}
  #collection-desk {width:170vw;height:95.65vw;top:49%;background:url('assets/desktop-drawers-printed.png') center/100% 100%;mask-image:linear-gradient(transparent,#000 8%,#000 92%,transparent);filter:saturate(.55)}
  .physical-drawer {min-height:44px}
  .desk-hint {top:91%;left:23%;right:23%;font:12px/1.7 'Microsoft YaHei',sans-serif;letter-spacing:0}
  .dossier-desk {position:relative;inset:auto;width:100%;height:auto;transform:none;container-type:inline-size;display:grid;gap:24px;padding:8px 6px 12px}
  .dossier-page {position:relative;inset:auto;width:100%;height:auto;min-height:0;padding:27px 22px 22px;background-color:#c6c2a5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23878062' opacity='.19' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E"),linear-gradient(105deg,#a5a18355,transparent 15%,#eee7c733 75%,#706e4522);box-shadow:3px 4px 0 #777d60,5px 8px 0 #323d2a,0 18px 35px #0008,inset 0 0 35px #6a65302b;border:1px solid #989779;line-height:1.8;color:#252b20;transform:none;text-shadow:none}
  .dossier-rule {padding:0 0 10px;border-top:3px solid #333d2a;padding-top:10px;gap:12px}
  .dossier-rule b {font-size:17px}.dossier-rule span {font-size:9px}
  .clearance {font-size:11px;margin:10px 0 22px}
  #profile-record,.dossier-page #personnel-content {overflow:visible;flex:none;padding:0;min-height:0}
  #profile-record .profile-top {gap:16px;margin:0 0 24px;align-items:center}
  #profile-record .profile-top img {width:65px;height:86px;border:4px solid #e2dac3}
  #profile-record .profile-top h3 {font-size:25px;line-height:1.6}
  #profile-record .profile-top p {font-size:12px;line-height:1.8}
  #profile-record>p,#profile-record>.file-record p,.dossier-page .file-record p,.complete-skills .file-record p,.personal-notes .file-record p {font:13px/1.9 'Microsoft YaHei','PingFang SC',sans-serif}
  .dossier-page .file-record {padding:14px 0;margin:0}
  .dossier-page .file-record small,.complete-skills .file-record small,.personal-notes .file-record small {font-size:10px;line-height:1.7}
  .compact-contact {margin-top:24px}
  .compact-contact>h3,.record-heading {font-size:16px;line-height:1.5;padding:10px 0;margin:14px 0 5px}
  .compact-contact .contact-file>p:first-child {font-size:13px!important;line-height:1.8;margin:10px 0}
  .compact-contact .contact-file a {font-size:13px;padding:12px 0;min-height:44px;display:block}
  .compact-contact .contact-file>p:last-child {font-size:12px!important;margin-top:14px!important}
  .compact-contact .social-file {gap:4px 17px;margin-top:12px}
  .compact-contact .social-file a {font-size:12px;min-height:44px;display:flex;align-items:center}
  .personal-notes {margin-top:20px}.dossier-bottom {font-size:10px;margin-top:22px;padding-top:14px}
  .complete-experience .file-record,.complete-education .file-record {display:block;padding:14px 0}
  .complete-experience .file-record small,.complete-education .file-record small {font-size:11px;margin-bottom:5px}
  .complete-experience .file-record h3,.complete-education .file-record h3 {font-size:15px;line-height:1.65;margin-bottom:5px}
  .complete-skills .skill-list {line-height:1.9;margin:8px 0}.complete-skills .skill-list span {font-size:13px;line-height:1.9}
  dialog {inset:0;width:100%;height:100%;height:100dvh}
  .viewer-header,dialog[data-mode=index] .viewer-header {position:absolute;inset:env(safe-area-inset-top,0px) 16px auto;height:62px;padding:0;gap:8px;background:#0c120ef5;font-size:9px;letter-spacing:.04em}
  .viewer-header #view-code {font-size:8px;max-width:45%;line-height:1.6}
  #close-view,dialog[data-mode=index] #close-view {font-size:12px;min-width:66px;min-height:44px;padding:8px 12px}
  .viewer-header button {font-size:12px;min-height:44px}
  #viewer-body {position:absolute;inset:calc(63px + env(safe-area-inset-top,0px)) 0 env(safe-area-inset-bottom,0px);height:auto;padding:0 16px 20px;overflow:auto;overscroll-behavior:contain;display:block;touch-action:pan-y}
  .index-top {position:relative;inset:auto;width:100%;padding:20px 0;margin:0;border:0}
  .index-top h2 {font-size:28px;letter-spacing:-.02em;margin:0}
  .index-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin:18px 0 0}
  .index-tabs button {font-size:12px;min-height:44px;padding:10px 12px;border:1px solid #a0b18724}
  .index-tabs button:last-child {border:1px solid #a0b18724}
  .index-tabs button>small {font-size:12px}
  .index-ledger {display:none}
  .index-grid {position:relative;inset:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;gap:16px 10px;padding:0;margin:0}
  .index-item {aspect-ratio:3/4;grid-template-rows:minmax(0,1fr) 36px;padding:5px 5px 0;min-height:0}
  .index-item .print-caption {gap:6px;padding:0 2px}.print-caption b {font-size:12px}.print-caption em {font-size:11px}
  .index-pager {position:relative;inset:auto;display:flex;gap:4px;margin-top:18px;padding:12px 0 0;font-size:11px}
  .index-pager button {min-height:44px;font-size:12px;padding:8px}
  .project-detail {height:auto;overflow:visible;display:flex;flex-direction:column;padding:16px 0;gap:18px}
  .viewing-stage {position:relative;inset:auto;transform:none;width:100%;height:auto;background:none;container-type:inline-size;display:flex;flex-direction:column;gap:24px}
  .viewing-stage .display-image {position:relative;inset:auto;transform:none!important;width:100%;height:auto;aspect-ratio:4/3;flex:none;order:0;border:7px solid #343930;border-radius:12px;box-shadow:inset 0 0 0 2px #7f8367,0 10px 25px #0008;background:#040604}
  .display-image video,.display-image img {width:100%;height:100%;object-fit:contain}
  .viewing-stage .project-summary {position:relative;inset:auto;transform:none!important;width:100%;height:auto;max-height:none;overflow:visible;order:2;padding:24px 22px;background:#c6c2a5;background-image:linear-gradient(110deg,#a49d7744,transparent 50%,#e5dfbe55);border-top:3px solid #858d71;box-shadow:0 9px 25px #0005;color:#262d21}
  .project-summary .detail-code {font-size:10px}.project-summary h2 {font:600 24px/1.5 'Microsoft YaHei',sans-serif;margin:14px 0 20px}
  .project-summary p {font:14px/1.9 'Microsoft YaHei',sans-serif;margin-bottom:16px}.project-summary .media-note {font-size:12px!important}
  .log-stamp {font-size:12px;padding:6px 10px;margin-top:10px}
  .monitor-id {position:relative;inset:auto;font-size:10px;order:1;opacity:.8;margin-top:-12px}
  .display-controls {position:relative;inset:auto;order:-1;display:block;padding:0 0 12px;margin:0;border-top:0;border-bottom:1px solid var(--line)}
  .media-tabs {gap:4px 12px}.media-tabs button,.display-controls button {font-size:12px;min-height:44px}
  .still-paging {gap:18px;justify-content:space-between;font-size:12px}
}
