/* Mobile and install enhancements; load after the existing design stylesheet. */
.app-install{display:flex;align-items:center;gap:24px;padding:38px 5.5%;background:#e8e4d7;border-top:1px solid #c9ccbd;border-bottom:1px solid #c9ccbd}
.app-install[hidden],.app-install-help[hidden]{display:none}
.app-install>img{border-radius:16px;flex-shrink:0}.app-install-copy{flex:1;min-width:0}.app-install .eyebrow{margin:0 0 8px}.app-install h2{font-size:34px;margin:0 0 10px}.app-install p{font-size:13px;line-height:1.65;margin-bottom:0}.app-install-help{max-width:680px;padding-top:22px}.app-install-help h3{font-size:25px;margin-bottom:12px}.app-install-help p+p{margin-top:12px}.app-install-button{flex-shrink:0;min-height:48px}.app-install-status:not(:empty){margin-top:12px;color:#653121;font-weight:600}
img,video{max-width:100%}input,select,textarea{min-width:0}main,section,.floorplan,.summary,.hero-copy,.subpage-main{min-width:0}.coverage-table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.subpage-main a,.info-panel,.profile-biography,.document-card,.sponsor-card{overflow-wrap:anywhere}
@media(max-width:700px){
  body{padding-bottom:env(safe-area-inset-bottom)}
  header{padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right))}
  header .brand{min-width:0}header .brand span{letter-spacing:.4px}header .brand small{letter-spacing:.6px}
  .menu-toggle,.reset,.card button,.subnav a,.gallery-controls button{min-height:44px}.menu-toggle{min-width:64px}
  input,select,textarea,.filters select{font-size:16px!important;min-height:44px}.search input{width:100%}
  .hero h1{font-size:clamp(53px,13.8vw,76px)}.hero .eyebrow{letter-spacing:1.3px}.hero-foot{flex-wrap:wrap}
  .section-head p,.intro{overflow-wrap:break-word}.actions{flex-wrap:wrap}.actions .button{max-width:100%;gap:15px}
  .filters>label:not(.search){min-width:0}.filters select{max-width:100%}.cards>*{min-width:0}
  .floorplan{overflow:hidden}.plan-heading{gap:12px;flex-wrap:wrap}.legend{flex-wrap:wrap;gap:12px}.tables{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 0;margin:40px 0 12px}
  .table-group{transform:scale(1.5);transform-origin:top center;margin-bottom:70px}.seat{touch-action:manipulation}
  .stage{width:85%}.plan-note{font-size:12px}.summary{padding:25px}.summary-desc,.selected-seats,.fees,.safety p{font-size:12px}
  .app-install{flex-wrap:wrap;gap:16px;padding:30px 5%}.app-install>img{width:48px;height:48px}.app-install-copy{flex-basis:calc(100% - 64px)}.app-install h2{font-size:29px}.app-install-button{margin-left:64px;max-width:calc(100% - 64px)}
  dialog{max-height:85dvh;overflow-x:hidden}.modal-poster{max-width:100%}
  .subpage-hero h1{font-size:clamp(43px,12vw,65px);overflow-wrap:break-word}.subnav{gap:10px 18px}.subnav a{display:inline-flex;align-items:center}
}
@media(max-width:540px){.tables{grid-template-columns:1fr}.table-group{margin-bottom:80px}}
@media(max-width:480px){
  .small-gallery,.sponsor-grid{grid-template-columns:1fr}.gallery-tile img{height:240px}.gallery-tile span{font-size:12px}
  .closing h2{font-size:48px}.history-top h2{font-size:39px}.brand img{flex-shrink:0}header{gap:8px}
  .card h3{font-size:23px;overflow-wrap:break-word}.card-body{padding:14px 10px}.card button{width:100%;font-size:11px}.poster{height:170px}
  .archive-links{grid-template-columns:1fr}.archive-links a{font-size:12px;padding:17px 10px;border-bottom:1px solid var(--line)}
}
@media(display-mode:standalone){.app-install{display:none}}
@media(max-width:700px){.card-label{font-size:10px;letter-spacing:.5px}.card p{font-size:12px;line-height:1.55}.source-note,.history-section>.source-note{font-size:12px;line-height:1.65}.eyebrow,.timeline .eyebrow{font-size:10px}.hero .eyebrow{font-size:10px;line-height:1.7}.hero-foot{font-size:9px;line-height:1.6}.story-photo figcaption{font-size:9px;line-height:1.7}.story-photo figcaption a{font-size:10px}.plan-heading>span{font-size:10px}.legend{font-size:12px}.table-center small{font-size:8px}}
/* Sticky phone navigation and bounded reading helpers. */
.reading-progress{position:absolute;bottom:-1px;left:0;right:0;height:3px;pointer-events:none;background:#b62f39;transform:scaleX(0);transform-origin:left center}.back-to-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:25;width:46px;height:46px;border:1px solid #e2c798;border-radius:50%;background:#152c40;color:#fffdf7;box-shadow:0 4px 18px #152c4020;font-size:24px;cursor:pointer}.back-to-top[hidden]{display:none}.back-to-top:hover,.back-to-top:focus-visible{background:#922731}.back-to-top:focus-visible{outline:3px solid #e2c798;outline-offset:3px}@media(max-width:700px){html{scroll-padding-top:calc(100px + env(safe-area-inset-top))}body>header{position:sticky;top:0;z-index:40;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:14px;box-shadow:0 4px 16px #152c400c}.menu-ready header nav.is-open{max-height:calc(100dvh - 120px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior-y:auto;padding-bottom:env(safe-area-inset-bottom)}header nav a{min-height:44px;display:flex;align-items:center}.back-to-top{bottom:calc(18px + env(safe-area-inset-bottom))}}@media(max-width:700px) and (prefers-reduced-motion:no-preference){.menu-ready header nav.is-open{animation:mobile-menu-enter .18s ease-out both}@keyframes mobile-menu-enter{from{opacity:.3;transform:translateY(-5px)}to{opacity:1;transform:none}}}

@media(max-width:700px){body>header.chat-header{position:sticky;top:0;z-index:40;padding-top:calc(14px + env(safe-area-inset-top));padding-bottom:14px}}

html.motion-paused{scroll-behavior:auto!important}

/* Native touch scrolling must pass from menus and short panels to the page. */
@media(max-width:700px){html{scroll-behavior:auto}dialog{max-height:85vh;max-height:85dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.menu-ready header nav.is-open{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
/* Long photo/profile dialogs always retain a reachable close control. */
dialog #close-modal,dialog #gallery-close,dialog #close-community-dialog{position:sticky;top:0;right:auto;display:block;margin:-12px -8px 0 auto;width:44px;min-height:44px;padding:4px;border-radius:50%;background:#f6f3eb;box-shadow:0 2px 8px #152c4018;z-index:2}
