/* Phone-first controls, shared by every file. */
html { scroll-padding-bottom: 100px; }
body { font-size: 16px; -webkit-text-size-adjust: 100%; }
button, summary, .button { min-height: 44px; }
button, a { touch-action: manipulation; }
.mobile-quick-nav { display: none; }
.wifi-box { padding: 24px; }
.wifi-entry + .wifi-entry { margin-top: 28px; }
.wifi-entry > span { display: block; margin-bottom: 8px; font-size: 14px; }
.wifi-entry code { display: block; font: bold 22px/1.5 var(--mono); user-select: all; -webkit-user-select: all; overflow-wrap: anywhere; }
.wifi-entry button { font: 16px var(--mono); padding: 10px 14px; margin-top: 12px; }
.model-caption { padding: 0 20px; }
.model-caption h2 { font-size: 28px; margin: 0 0 8px; }
.model-caption p { margin: 5px 0; font-size: 16px; }
.model-caption .model-subtitle { font-family: var(--mono); font-size: 18px; }
#model-load { position: absolute; z-index: 3; left: 50%; bottom: 12px; transform: translateX(-50%); background: var(--paper); font-size: 16px; white-space: nowrap; }
#model-load:hover { background: var(--ink); color: var(--paper); }
#model-motion { font-size: 16px; min-width: 80px; min-height: 44px; bottom: 8px; right: 8px; background: var(--paper); }
#model-canvas, #model-canvas canvas { touch-action: pan-y pinch-zoom !important; }
.daily-checklist { max-width: 800px; }
.daily-checklist .check-progress { font: 16px var(--mono); }
.check-progress button { padding: 10px 16px; font-size: 16px; }
.numbered-checklist { list-style: none; padding: 0; margin: 0; }
.numbered-checklist label { display: grid; grid-template-columns: 24px 24px 1fr; align-items: start; gap: 14px; min-height: 64px; padding: 18px 0; font-size: 18px; line-height: 1.5; cursor: pointer; }
.numbered-checklist input { appearance: none; width: 24px; height: 24px; margin: 2px 0; border: 1px solid var(--ink); border-radius: 0; background: transparent; }
.numbered-checklist input:checked { background: var(--ink); box-shadow: inset 0 0 0 5px #fdfdfb; }
.step-number { font-family: var(--mono); }
.checklist-notes { max-width: 700px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.checklist-notes p { font-size: 16px; }
.checklist-notes a { display: inline-flex; align-items: center; min-height: 44px; }
.file-toolbar { font-size: 14px; padding: 8px 0; }
.file-toolbar a, .file-toolbar .search-open { min-height: 44px; display: inline-flex; align-items: center; }
.folder-footer a { display: inline-flex; min-height: 44px; align-items: center; font-size: 16px; }
.search-head button { font-size: 14px; padding: 10px; }
#search-input { font-size: 18px; }
#search-results a { min-height: 52px; padding: 14px 4px; }
#search-results a small { font-size: 16px; }
.faq summary { min-height: 44px; align-items: center; }
.faq p, .info-row dd, .note p, td, .rules-list p, .steps p, .summary, .consent-copy p, .muted { font-size: 16px; }
.info-row a, .lockup-simple a, .consent-inline a { display: inline-flex; min-height: 44px; align-items: center; overflow-wrap: anywhere; }
.folder-header-meta .search-open { min-height: 44px; font-size: 14px; }
.button, .text-link { min-height: 44px; font-size: 16px; align-items: center; }
.mobile-quick-nav a[aria-current=page] { background: var(--ink); color: var(--paper); }
.file-page .panel p, .print-page .panel p { font-size: 16px; }
.promotion-copy { max-width: 720px; }
.promotion-copy .promotion-lead { font-size: 28px; font-weight: bold; line-height: 1.2; }
.promotion-copy section { margin: 36px 0; }
.promotion-copy h2 { font-size: 26px; margin-bottom: 12px; }
@media (max-width:700px) {
  html { scroll-padding-top: 16px; scroll-padding-bottom: calc(90px + env(safe-area-inset-bottom, 0px)); }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
  .page { padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) 0 max(16px, env(safe-area-inset-left, 0px)); }
  .folder-header { gap: 12px; }
  .folder-header-meta { font-size: 10px; max-width: 130px; }
  .folder-header-meta .search-open { font-size: 14px; margin-top: 4px; }
  .file-page .folder-wordmark { font-size: 88px; }
  .folder-wordmark { font-size: 100px; }
  .open-file-tabs { display: none; }
  .mobile-quick-nav { position: fixed; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); bottom: 0; left: 0; right: 0; z-index: 30; border-top: 1px solid var(--ink); background: var(--paper); padding: 6px max(6px,env(safe-area-inset-right,0px)) max(6px,env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px)); }
  .mobile-quick-nav a { display: flex; align-items: center; justify-content: center; min-height: 48px; font: bold 14px var(--mono); text-decoration: none; }
  .file-page #main { padding: 0 16px; margin-top: 8px; min-width: 0; animation: none; }
  .file-page .panel { padding: 24px 0; }
  .file-toolbar, .file-toolbar .search-open { font-size: 14px; }
  .folder-footer { gap: 10px; align-items: center; }
  .folder-footer>div { min-width: 0; }
  .folder-footer a { font-size: 16px; overflow-wrap: anywhere; }
  .folder-stage { min-height: 0; padding: 82px 0 48px; overflow: hidden; }
  .folder { width: calc(100% - 86px); height: 650px; --step: 44px; --tab-height: 46px; transform: perspective(1200px) rotateY(-5deg) rotateZ(-5deg); transform-origin: 50% 55%; margin: 0; }
  .folder-tab { min-height: 46px; min-width: 176px; font-size: 15px; display: flex; align-items: center; padding: 10px 12px; left: calc(5px + var(--i)*5px); }
  .folder-file:nth-child(3n+1) .file-surface, .folder-file:nth-child(3n+1) .folder-tab { background-color: #eeeee7; }
  .folder-file:nth-child(3n+2) .file-surface, .folder-file:nth-child(3n+2) .folder-tab { background-color: #f7f7f1; }
  .folder-file:hover, .folder-file:active, .folder-file:focus-visible { transform: none; }
  .folder-file.is-opening { transform: translate(0,-10px); transition-duration: 170ms; }
  .folder-cover { top: 465px; left: 20px; right: -10px; background-color: #deded2; }
  .folder-binding { display: none; }
  .folder-cover span { font-size: 14px; }
  .model-caption { padding: 0; margin-top: 15px; }
  .model-caption h2 { font-size: 26px; }
  .specimen-art { min-height: 280px; height: 280px; }
  .about-copy h1 { font-size: 34px !important; }
  .wifi-box { padding: 16px; }
  .wifi-entry code { font-size: 20px; letter-spacing: -.035em; }
  .wifi-entry button { width: 100%; }
  .numbered-checklist label { grid-template-columns: 24px 22px minmax(0,1fr); gap: 10px; font-size: 16px; min-height: 68px; padding: 17px 0; }
  .daily-checklist .check-progress { font-size: 16px; }
  .checklist-notes { margin-top: 20px; padding-top: 20px; }
  .info-row { grid-template-columns: minmax(0,1fr); }
  .info-row dd, .info-row dt { font-size: 16px; }
  .info-row a { word-break: break-word; }
  .file-page h1 { font-size: 36px; }
  .steps h3 { font-size: 20px; }
  .rules-list p, .steps p, .summary, .note p, .consent-copy p, .fee-due p:last-child, .faq p, td, .lockup-simple p, .muted { font-size: 16px; }
  .qr-board { padding: 14px; }
  .qr-brand { font-size: 26px; }
  .qr-board p { font-size: 12px; }
  .consent-copy .button { display: flex; width: 100%; justify-content: center; font-size: 14px; }
  .address-type { font-size: 21px; }
  .address-board { padding: 16px; }
  .button-row .button { width: 100%; justify-content: center; font-size: 14px; }
  .fee-number { font-size: 53px; }
  .fee-banner>div { padding: 18px 12px; }
  th { font-size: 14px; }
  td { padding-right: 12px; }
  .toast { bottom: calc(85px + env(safe-area-inset-bottom,0px)); width: max-content; max-width: calc(100vw - 32px); font-size: 16px; text-align: center; }
  dialog { max-height: calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)); padding: 18px; }
  #search-results { max-height: 45dvh; }
  .search-hint { font-size: 12px; }
}
@media print {
  body { padding-bottom: 0; }
  .mobile-quick-nav, #model-load { display: none !important; }
  .numbered-checklist label { min-height: 0; padding: 8px 0; }
  .numbered-checklist input { width: 18px; height: 18px; }
}
