/* Screen typography and contrast. Keep the downloadable presentation unchanged. */
@media screen {
  :root { --muted:#52697b; --gold-text:#946018; }
  body { font-size:17px; line-height:1.7; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  h1,h2 { font-weight:600; letter-spacing:-.035em; }
  h3,h4 { font-weight:700; }
  em { color:var(--gold-text); }
  .dark em,.hero em { color:#f2bd67; }
  .dark p { color:#c4d5e3; }
  .lead { line-height:1.7; }
  .eyebrow { font-size:12px; line-height:1.6; letter-spacing:.14em; }
  .button { font-size:15px; font-weight:700; line-height:1.5; }
  .small { font-size:13px; }
  .text-link,.text-button { font-size:15px; font-weight:600; line-height:1.6; }
  .text-link:hover,.nav nav a:hover { color:var(--gold-text); }
  .dark .text-link:hover,.hero .text-link:hover { color:#ffd18a; }
  .caption { font-size:14px!important; line-height:1.7; }
  .dark .caption { color:#c4d5e3!important; }
  .nav nav { font-size:14px; }
  .nav nav a { padding:22px 0; }
  .small-button { font-size:14px; font-weight:600; }
  .hero-lead { font-size:19px; line-height:1.75; }
  .hero-note { font-size:14px; }
  .hero-media .phone { width:300px; }
  .orbit-label { font-size:11px; letter-spacing:.12em; }
  .scroll-cue { font-size:12px; color:#d0e1ef; letter-spacing:.12em; }
  .fare-card-kicker { font-size:11px; letter-spacing:.12em; }
  .fare-assurance strong { font-size:15px; font-weight:700; }
  .fare-assurance small { font-size:12px; color:#c4d7e7; }
  .fare-journey { font-size:11px; padding-top:11px; }
  .fare-journey>span { background:#103350; }
  .fare-journey-line { top:19px; }
  .fare-journey em { font-size:12px; }
  .hero-media { padding-bottom:183px; }
  .hero-media .fare-assurance { width:324px; }
  .orbit-label.bottom { bottom:166px; }
  .three-steps article>span,.process-tabs button>span,
  .reference-list summary>span,.reference-list summary b,
  .feature-line>span,.benefit-icon,.feature-explorer button span { color:var(--gold-text); }
  .dark .process-tabs button>span,.dark .benefit-icon { color:#f2bd67; }
  .transit-scene figcaption>span { font-size:12px; letter-spacing:.13em; }
  .transit-scene figcaption strong { font-weight:600; }
  .transit-scene:after { background:linear-gradient(0deg,#02182ef5, #02182e80 35%,transparent 80%); }
  .full-copy details { font-size:16px; line-height:1.8; }
  .full-copy summary { font-size:14px; font-weight:700; padding:12px 0; }
  .full-copy .source-body { max-width:80ch; }
  .source-chapter-title,.source-subchapter-title { font-size:18px; line-height:1.5; }
  .source-chapter-title strong,.source-subchapter-title strong { font-weight:700; }
  .accordion summary { font-size:17px; font-weight:700; }
  .accordion p { font-size:16px; line-height:1.8; }
  .process-tabs button { font-size:14px; font-weight:600; line-height:1.5; }
  .process-tabs button.active { font-weight:700; }
  .process-nav { font-size:13px; }
  .process-detail p { font-size:17px; line-height:1.75; }
  .gallery-switch button,.zoom-button,.watch-actions button { font-size:14px; font-weight:600; }
  .feature-line p,.benefit-grid p,.admin-points p { font-size:16px; line-height:1.75; }
  .feature-explorer button { font-size:16px; line-height:1.5; }
  .feature-explorer button:hover { color:var(--gold-text); }
  .visual-tag { font-size:12px; letter-spacing:.08em; }
  .watch-hint,.action-caption { font-size:14px; }
  .sdk-logo small { font-size:11px; letter-spacing:.1em; }
  .integration-option { font-size:13px; font-weight:600; line-height:1.5; }
  .sdk-visual>p { font-size:15px; line-height:1.7; }
  .stats p { font-size:16px; }
  .source-link,.source-links { font-size:13px; line-height:1.7; }
  .reference-list summary strong { font-weight:700; }
  .reference-list summary small { font-size:14px; color:var(--muted); }
  .reference-list details>p { font-size:16px; line-height:1.75; }
  .reference-list summary>span { font-size:12px; }
  .closing-label { font-size:12px; line-height:1.6; letter-spacing:.12em; }
  .contact-links>span { font-size:13px; color:#c4d5e3; }
  .contact-links a { font-size:17px; }
  .contact-card>.text-link { font-size:14px; }
  .pdf-card p { font-size:16px; }
  .pdf-file-label small { font-size:10px; letter-spacing:.1em; }
  .closing .pdf-download { font-size:15px; }
  .pdf-card #print { font-size:13px; line-height:1.7; }
  .qr-card span { font-size:12px; }
  footer { font-size:13px; line-height:1.7; color:#c4d5e3; }
  .menu-top { font-size:12px; letter-spacing:.08em; }
  #chapter-list a { font-size:15px; padding:11px 0; line-height:1.5; }
  #chapter-list a:before { font-size:12px; color:var(--gold-text); }
  #chapter-menu .download { font-size:14px; }
  #presentation-controls { font-size:13px; }
  /* Keep focus and progress indicators distinct on both page surfaces. */
  :is(button,a,input,summary):focus-visible { outline-color:#946018; }
  :is(.hero,.dark,.ar-dialog) :is(button,a,input,summary):focus-visible { outline-color:#f2bd67; }
  .cap-demo :is(button,a,input,summary):focus-visible { outline-color:#946018; }
  .demo-timeline li.active { border-color:#946018; }
  .cap-bar>div,.cap-demo.cap-reached .cap-bar>div { background:#946018; }
  /* White fare card is nested in a dark section: all copy uses its own palette. */
  .cap-demo { color:var(--ink); }
  .widget-heading { font-size:12px; line-height:1.5; letter-spacing:.04em; flex-wrap:wrap; }
  .demo-badge { font-size:11px; }
  .cap-play { font-size:14px; }
  .cap-total small { font-size:14px; }
  .cap-axis,.cap-inputs label { font-size:12px; }
  .range-label { font-size:15px; }
  .cap-inputs input { font-size:16px; }
  .cap-trip-cards li { opacity:1; padding:12px 10px; }
  .cap-trip-label { flex-wrap:wrap; font-size:11px; letter-spacing:.02em; color:var(--muted); }
  .cap-trip-label small { font-size:11px; }
  .cap-trip-note { font-size:12px; line-height:1.5; color:var(--muted); }
  .cap-trip-cards strong { font-size:20px; color:var(--navy); }
  .cap-trip-cards li.trip-current { border-color:#946018; }
  .cap-demo .cap-live-message { font-size:14px; color:#795019; line-height:1.6; }
  .cap-settings>summary,.cap-tariff-note>summary { font-size:14px; line-height:1.6; }
  .cap-demo .cap-tariff-note p,.cap-demo .widget-footnote { font-size:13px; line-height:1.75; color:var(--muted)!important; }
  .cap-tariff-note a { font-size:13px; line-height:1.6; }
  .saved span { font-size:13px; color:var(--muted); }
  .cap-demo .saved strong { color:#26745b!important; }
  /* Journey instructions and presentation controls. */
  .demo-copy>p { font-size:17px; line-height:1.75; }
  .demo-copy h3 { font-weight:600; line-height:1.25; }
  .demo-step-number { font-size:13px; color:var(--gold-text); font-weight:700; }
  .demo-timeline li { font-size:13px; line-height:1.5; }
  .guided-label strong { font-size:18px; font-weight:700; }
  .guided-label small { font-size:11px; letter-spacing:.05em; line-height:1.5; }
  .guided-caption { font-size:14px!important; color:var(--muted)!important; }
  .stage-open-label strong { font-size:16px; }
  .stage-open-label small { font-size:12px; color:var(--muted); letter-spacing:0; }
  .journey-live-tools button { font-size:13px; }
  .journey-live-tools>span { font-size:12px; color:var(--muted); }
  .demo-watch-label { font-size:11px; color:var(--muted); letter-spacing:.08em; }
  .demo-watch-caption,.demo-device-sync small { font-size:13px; color:var(--muted); }
  .demo-device-sync strong { font-size:15px; }
  .ar-demo-entry strong { font-size:14px; }
  .ar-demo-entry small { font-size:12px; color:var(--muted); }
  .stage-header>span { font-size:11px; letter-spacing:.12em; }
  .stage-close span,.ar-close span { font-size:14px; }
  .stage-story .stage-kicker { color:var(--gold-text); font-size:13px; }
  .stage-demo-note { font-size:12px; line-height:1.7; color:var(--muted); letter-spacing:.04em; }
  .stage-key-hint { font-size:12px; color:var(--muted); }
  .stage-controls button { font-size:14px; }
  /* Compact phone UI stays proportional while fine print becomes legible. */
  .demo-phone-column { width:340px; }
  .phone-view-tabs button,.demo-stage .phone-view-tabs button { font-size:12px; padding:5px 2px; }
  .phone-lens-heading small { font-size:8px; letter-spacing:.12em; }
  .phone-lens-heading strong { font-size:18px; }
  .phone-lens-places button { font-size:10px; padding:6px 9px; }
  .phone-lens-places svg { width:14px; height:14px; }
  .phone-sheet-copy>small { font-size:9px; color:#87581c; letter-spacing:.06em; line-height:1.5; }
  .phone-sheet-copy h4 { font-size:17px; line-height:1.3; }
  .phone-sheet-copy p { font-size:12px!important; line-height:1.6!important; color:var(--muted)!important; }
  .phone-sheet-credit { font-size:9px; color:var(--muted); line-height:1.5; }
  .phone-show-map { font-size:12px; min-height:39px; }
  .phone-place-ar { font-size:13px; }
  .phone-place-ar>small { font-size:10px; }
  .phone-ar-controls button { font-size:10px; line-height:1.4; }
  .phone-lens-disclosure { font-size:8px!important; line-height:1.4!important; background:#082c47f5; }
  .phone-ar-hint { background:#082c47ed; border-radius:9px; padding:8px 10px; text-shadow:none; filter:none; right:48px; }
  .phone-ar-hint strong { font-size:11px; }
  .phone-ar-hint small { font-size:10px; line-height:1.5; }
  .phone-lens-scene .sv-poi { max-width:190px; background:#fff; }
  .phone-lens-scene .sv-poi strong { font-size:12px; }
  .phone-lens-scene .sv-poi small { font-size:9px; color:var(--muted); }
  .phone-lens-scene .sv-poi-type { font-size:8px; letter-spacing:.06em; }
  .poi-map-hint { font-size:9px; color:var(--muted); background:#fff; }
  .journey-live-stops li { color:#52697b; font-size:9.5px; }
  .journey-live-stops li.is-passed { color:#52697b; opacity:1; }
  .journey-live-stops li small { color:#87581c; font-size:8px; }
  .live-stops-heading strong { font-size:10px; }
  .journey-transfer>small { font-size:9px; }
  .journey-transfer>strong { font-size:11px; }
  /* Full-size Street View, POI and receipt panels. */
  .ar-brand { font-size:13px; }
  .ar-brand b { font-size:11px; letter-spacing:.1em; }
  .ar-preview-badge,.ar-kicker,.ar-detail-kicker { font-size:11px; line-height:1.6; letter-spacing:.08em; }
  .ar-intro { font-size:16px; color:#c4d5e3; line-height:1.75; }
  .ar-places button { font-size:13px; color:#c4d5e3; line-height:1.5; }
  .ar-place-copy { font-size:15px; line-height:1.75; color:#c4d5e3; }
  .ar-near { font-size:13px; color:#f0cb8d; }
  .ar-guidance strong { font-size:14px; }
  .ar-guidance small { font-size:12px; color:#254459; }
  .ar-interaction-note { font-size:13px; color:#c4d5e3; line-height:1.75; }
  .ar-panel-footer>span,.streetview-enabled .ar-panel-footer>span { font-size:10px; color:#b6cddd; line-height:1.7; }
  .ar-photo-credit { font-size:12px; }
  .ar-marker small { font-size:10px; color:var(--muted); }
  .ar-marker em { font-size:11px; color:var(--gold-text); }
  .ar-journey-status strong { font-size:14px; }
  .ar-journey-status small { font-size:12px; color:#c4d5e3; }
  .ar-photo-note,.ar-way-label { font-size:10px; line-height:1.5; }
  .ar-look-hint,.ar-recenter { font-size:12px; }
  .sv-poi { background:#fff; }
  .sv-poi-type { font-size:10px; }
  .sv-poi small { font-size:12px; color:var(--muted); }
  .sv-poi strong { font-size:16px; }
  .sv-message p { font-size:15px; }
  .phone-lens-scene .sv-message p { font-size:12px; }
  .poi-category { font-size:12px; letter-spacing:.1em; }
  .poi-subtitle,.poi-credit { color:var(--muted); font-size:13px; }
  .poi-description { font-size:16px; }
  .poi-nearby,.poi-return { font-size:14px; }
  .receipt-kicker { color:var(--gold-text); font-size:12px; letter-spacing:.08em; }
  .journey-receipt-card p { font-size:15px; }
  .journey-receipt-card small { font-size:12px; }
  .receipt-open { font-size:14px; }
  .receipt-email-head p { font-size:15px; }
  .tax-receipt header>span { font-size:11px; letter-spacing:.06em; }
  .tax-title p,.tax-meta>div,.tax-route p { font-size:14px; }
  .tax-meta strong { font-size:15px; }
  .tax-receipt table { font-size:14px; }
  .tax-receipt .tax-note { font-size:12px; }
  .tax-receipt footer { font-size:13px; color:var(--muted); }
  .tax-receipt footer strong { font-size:11px; color:var(--gold-text); }
  .receipt-actions>span { font-size:13px; }
  .receipt-actions .button { font-size:14px; }
  @media(max-width:1100px) {
    .nav { gap:16px; padding:0 24px; }
    .nav nav { gap:16px; }
    .nav nav a { font-size:13px; }
    .demo-phone-column { width:300px; }
    .demo-stage .demo-phone-column { width:min(30vw,calc((100dvh - 220px)*.47)); }
  }
  @media(max-width:900px) {
    .demo-phone-column { width:340px; }
    .demo-stage .demo-phone-column { width:340px; }
  }
  @media(max-width:760px) {
    body { font-size:16px; }
    .hero h1 { font-size:clamp(42px,12vw,59px); }
    h2 { font-size:clamp(32px,9vw,39px); }
    .hero-lead { font-size:17px; }
    .hero-media .phone { width:270px; }
    .hero-media .fare-assurance { width:min(324px,calc(100vw - 40px)); }
    .orbit-label.top,.orbit-label.bottom { font-size:10px; letter-spacing:.08em; }
    .hero-media { padding-bottom:183px; }
    .orbit-label.bottom { bottom:166px; }
    .nav .button { font-size:12px; padding:10px 11px; }
    .nav { padding:0 16px; gap:8px; }
    .three-steps p { font-size:16px; }
    .process-tabs button { font-size:13px; flex-basis:112px; min-height:94px; }
    .process-detail p { font-size:16px; }
    .process-nav { font-size:12px; }
    .feature-explorer button { font-size:14px; gap:10px; }
    .reference-list details>p { font-size:16px; }
    .stats p { font-size:13px; }
    .stats strong { font-size:clamp(35px,11vw,48px); }
    .closing h2 { font-size:clamp(32px,9vw,41px); }
    .closing .pdf-download { font-size:14px; }
    .contact-links a { font-size:17px; }
    .cap-trip-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cap-trip-cards strong { font-size:20px; }
    .cap-inputs { flex-wrap:wrap; }
    .cap-inputs label { flex:1 1 130px; }
    .demo-timeline li { font-size:12px; }
    .demo-copy>p { font-size:16px; }
    .guided-label small { font-size:11px; }
    .stage-story .stage-kicker { font-size:12px; }
    .stage-story .stage-explanation { font-size:17px; line-height:1.7; }
    .stage-controls button { font-size:13px; padding:10px 11px; }
    .stage-header>span { font-size:10px; letter-spacing:.08em; }
    .tax-receipt th,.tax-receipt td { font-size:13px; }
    .ar-places button { font-size:13px; }
    footer { font-size:12px; }
  }
  @media(max-width:480px) {
    .feature-explorer { grid-template-columns:1fr; }
    .feature-explorer button { font-size:16px; min-height:72px; }
    .stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
    .stats>div:last-child { grid-column:1/-1; }
    .stats strong { font-size:48px; }
    .integration-options { flex-direction:column; }
    .integration-option { font-size:14px; padding:12px; }
  }
  @media(max-width:380px) {
    .nav .brand img { width:90px; }
    .nav-actions { gap:4px; }
    .nav .button { font-size:11px; padding:9px; gap:5px; white-space:nowrap; }
    .nav .small-button { padding:6px; }
    .nav #chapters-toggle { width:30px; min-width:30px; }
    .demo-watch { display:flex; flex-direction:column; gap:12px; text-align:center; }
    .demo-watch-label { order:-1; align-self:center; margin:0; }
    .demo-watch-caption { align-self:center; max-width:240px; }
  }
  @media(max-width:600px) {
    .demo-phone-column,.demo-stage .demo-phone-column { width:min(340px,100%); }
    .demo-watch-label { font-size:11px; }
    .demo-device-sync { align-items:flex-start; }
    .demo-device-sync small { font-size:12px; }
  }
}
