@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600&display=swap');
:root{color-scheme:dark;--bg:#141416;--text:#f5f2ed;--muted:#aaa8ad;--line:#ffffff16}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px 'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,#scene:focus-visible{outline:2px solid #ffafbd;outline-offset:3px}[hidden]{display:none!important}.header{height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:600 20px 'Space Grotesk',sans-serif}.brand b{font-weight:400;color:var(--muted)}.brand-mark{display:grid;place-items:center;background:#b9314b;width:25px;height:30px;font-size:24px}.event-title{font-size:12px;letter-spacing:2px;color:var(--muted)}.event-title strong{font:600 20px 'Space Grotesk';color:var(--text);margin-left:10px}.viewer{height:calc(100svh - 104px);min-height:560px;position:relative;overflow:hidden;background:#17191b}#scene{position:absolute;inset:0;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.scene-heading{position:absolute;left:24px;top:20px;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:1.5px;color:var(--muted)}h1{font:500 26px 'Space Grotesk';letter-spacing:-1px;margin:6px 0}.scene-tags{position:absolute;left:24px;bottom:44px;display:flex;gap:12px;font-size:10px;letter-spacing:1px;color:#aaa8ad;pointer-events:none}.scene-tags span+span{color:#ec98a8}.control-rail{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;background:#1c1c22e8;border:1px solid #ffffff1a;border-radius:13px;padding:6px;z-index:4;backdrop-filter:blur(10px)}.control-rail button{width:38px;height:38px;border:0;border-radius:8px;background:transparent;font-size:23px;display:grid;place-items:center}.control-rail button:hover,.control-rail button[aria-pressed=true]{background:#ffffff14;color:#ff9eb3}.divider{height:1px;width:20px;background:#ffffff20;margin:3px 0}#sector-labels,#label-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#label-lines{overflow:hidden}#label-lines path{fill:none;stroke-width:1;opacity:.65}.sector-label{position:absolute;left:0;top:0;pointer-events:auto;min-height:32px;line-height:1.2;padding:7px 9px;border:1px solid #ffffff24;border-left:3px solid var(--sector-color);border-radius:5px;background:#16191fe8;text-align:left;font-size:13px;box-shadow:0 2px 8px #0003;backdrop-filter:blur(5px)}.sector-label:hover,.sector-label:focus-visible{background:#343039;border-color:var(--sector-color);z-index:3}.sector-label[aria-pressed=true]{border-color:var(--sector-color)}#map-hint{position:absolute;bottom:61px;left:50%;transform:translateX(-50%);font-size:13px;color:#d7cbd2;pointer-events:none;margin:0;white-space:nowrap}#model-note{position:absolute;bottom:15px;left:24px;right:24px;margin:0;font-size:11px;color:#a8a3ad;pointer-events:none}#model-note a{color:#d4a0ad;pointer-events:auto}.compass{position:absolute;right:24px;top:20px;display:grid;place-items:center;color:#aaa8ae;font-size:11px;pointer-events:none}.compass svg{width:25px;height:25px}#pov-card{position:absolute;left:24px;bottom:85px;display:grid;grid-template-columns:1fr auto;gap:14px 22px;max-width:calc(100% - 105px);background:#1c1c22ed;border:1px solid #ffffff20;border-radius:10px;padding:16px 18px;backdrop-filter:blur(10px)}#pov-card h2{font:500 20px 'Space Grotesk';margin:6px 0 0}#back-map{align-self:center;background:none;border:0;color:#ffacc0;font-size:14px;padding:8px 0}#height-control{grid-column:1/-1}.height-options{display:flex;gap:4px}.height-options button{flex:1;padding:8px 10px;font-size:13px;border:0;border-radius:5px;background:#ffffff06;color:#a9a5ae}.height-options button[aria-pressed=true]{background:#ffffff18;color:white}footer{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:11px;color:#9b96a0;border-top:1px solid var(--line)}#loading{position:absolute;inset:0;display:flex;gap:16px;align-items:center;justify-content:center;background:#18181c;z-index:5}.loader{width:20px;height:20px;border:2px solid #ffffff22;border-top-color:#ec647b;border-radius:50%;animation:spin 1s linear infinite}#webgl-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#18181c;padding:30px;text-align:center;z-index:6}#webgl-error button{background:#d94866;border:0;border-radius:6px;padding:12px 20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.header{height:54px;padding:0 14px}.event-title{display:none}.viewer{height:calc(100svh - 94px);min-height:640px}.scene-heading{left:14px;top:16px}h1{font-size:23px}.control-rail{right:7px;padding:4px}.control-rail button{width:34px;height:38px}.sector-label{font-size:12px;min-height:32px;padding:6px 5px}.scene-tags{left:14px;font-size:9px;gap:8px;bottom:48px}#model-note{left:14px;right:14px;bottom:12px;font-size:10px;line-height:1.45}#map-hint{font-size:12px;bottom:76px}#pov-card{left:14px;bottom:94px;max-width:calc(100% - 72px);gap:12px;padding:14px}#pov-card h2{font-size:18px}footer{padding:0 14px;font-size:10px}footer span:last-child{display:none}.compass{right:15px}}@media(prefers-reduced-motion:reduce){.loader{animation:none}}

#welcome{color:var(--text);background:#1c1c22;border:1px solid #ffffff24;border-radius:18px;padding:30px;width:min(460px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;box-sizing:border-box;box-shadow:0 24px 90px #0008}
#welcome::backdrop{background:#090a10b8;backdrop-filter:blur(5px)}
#welcome h2{font:500 28px 'Space Grotesk',sans-serif;margin:12px 0 16px;letter-spacing:-.7px}
#welcome p{font-size:15px;line-height:1.65;color:#c8c4ca;margin:0 0 18px}
.welcome-credit{border-top:1px solid #ffffff18;padding-top:18px;margin-top:22px}
#welcome h3{font-size:16px;font-weight:500;margin:0 0 10px}
#welcome a{color:#ffadc0;text-underline-offset:4px}
#welcome .welcome-note{font-size:12px;color:var(--muted);margin:20px 0}
.welcome-enter{width:100%;padding:13px 18px;border:0;border-radius:9px;background:#bd3857;color:#fff;font-size:15px}
.welcome-enter:hover{background:#d34969}
#open-credits{background:none;border:0;color:#d4a0ad;font-size:inherit;text-decoration:underline;text-underline-offset:3px;padding:4px 6px}

.header-actions{display:flex;align-items:center;gap:14px}
#open-donation{display:flex;align-items:center;gap:7px;background:#b9314b;border:1px solid #ffffff18;border-radius:8px;padding:8px 12px;font-size:13px;color:#fff}
#open-donation:hover{background:#d34969}#open-donation span{font-size:19px;line-height:1}
#donation{color:var(--text);background:#1c1c22;border:1px solid #ffffff24;border-radius:18px;padding:30px;width:min(430px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;box-sizing:border-box;box-shadow:0 24px 90px #0008}
#donation::backdrop{background:#090a10b8;backdrop-filter:blur(5px)}
#donation h2{font:500 26px 'Space Grotesk',sans-serif;margin:12px 0 16px}
#donation p{font-size:15px;line-height:1.65;color:#c8c4ca}
#donation-pending{padding:14px;background:#ffffff06;border-radius:8px}
#donation-links a{display:block;box-sizing:border-box;text-align:center;text-decoration:none;margin-top:20px}
.donation-close{display:block;width:100%;background:transparent;color:#ffadc0;border:0;padding:12px;margin-top:12px;font-size:14px}
@media(max-width:420px){.header-actions{gap:8px}}

#donation-links a+a{margin-top:10px;background:#ffffff0b;border:1px solid #ffffff24}#donation-links a+a:hover{background:#ffffff18}

/* Tour title and country identity. */
.brand b{display:inline-block;padding:4px 7px;border-radius:5px;background:#b9314b;color:#fff;font-weight:700;letter-spacing:.8px}
.event-title{display:flex;flex-direction:column;align-items:center;gap:3px;letter-spacing:2px;font-size:10px;white-space:nowrap}
.event-title strong{margin:0;font-size:18px;letter-spacing:.7px}
@media(max-width:600px){
  .header{height:92px;display:grid;grid-template-columns:1fr auto;grid-template-rows:52px 40px;column-gap:10px}
  .header .brand{grid-column:1;grid-row:1}.header-actions{grid-column:2;grid-row:1}
  .event-title{grid-column:1/-1;grid-row:2;flex-direction:row;justify-content:center;gap:9px;align-self:start}
  .event-title strong{font-size:15px}.event-title>span{font-size:9px}
  .viewer{height:calc(100svh - 132px)}
}

#quality-dialog{color:var(--text);background:#1c1c22;border:1px solid #ffffff24;border-radius:18px;padding:26px;width:min(500px,calc(100vw - 24px));max-height:calc(100svh - 24px);overflow:auto;box-sizing:border-box}
#quality-dialog::backdrop{background:#090a10d9;backdrop-filter:blur(5px)}
#quality-dialog h2{font-size:23px;margin:0 0 12px}#quality-dialog p{font-size:14px;color:#c8c4ca;line-height:1.5}
#quality-dialog fieldset{border:0;padding:0;display:grid;gap:9px;margin:20px 0}
#quality-dialog label{display:flex;gap:12px;align-items:center;border:1px solid #ffffff20;border-radius:9px;padding:13px;cursor:pointer}
#quality-dialog label:has(input:checked){background:#bd385724;border-color:#e96887}#quality-dialog input{accent-color:#d34969}
#quality-dialog strong{display:block;font-size:14px}#quality-dialog small{display:block;color:#aaa8ad;line-height:1.4;margin-top:5px}

/* Keep viewer captions readable over both the daylight sky and stadium geometry. */
.scene-tags,#map-hint,#model-note{background:#171b23;color:#f5f2ed;border:1px solid #ffffff26;border-radius:6px;box-shadow:0 2px 8px #0002;box-sizing:border-box}
.scene-tags{padding:5px 8px;bottom:48px;max-width:calc(100% - 100px);flex-wrap:wrap;row-gap:4px}
.scene-tags span+span{color:#ffb4c6}
#model-note{padding:6px 9px;right:auto;max-width:calc(100% - 48px);font-size:11px;line-height:1.45;bottom:12px}
#model-note a{color:#ffb4c6;text-decoration:underline;text-underline-offset:2px}
#map-hint{padding:6px 10px;bottom:83px;max-width:calc(100% - 32px);white-space:normal;text-align:center;width:max-content}
@media(max-width:600px){
  #model-note{max-width:calc(100% - 28px);bottom:10px}
  .scene-tags{bottom:62px;max-width:calc(100% - 80px)}
  #map-hint{bottom:100px}
  #pov-card{bottom:104px}
}

.side-options{margin-top:6px}
