/* The original logos remain readable on their own contrasting backdrop plaques. */
.ui-icon { display:inline-block; width:21px; height:21px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
a:has(>.ui-icon),button:has(>.ui-icon),.photo-input { display:inline-flex; align-items:center; justify-content:center; gap:9px; }
.control-label { min-width:0; overflow-wrap:break-word; }
.masthead { min-height:76px; padding-block:10px; align-items:center; }
.masthead .header-actions { flex-direction:row; gap:12px; align-items:center; }
.masthead .wordmark { width:78px; min-height:44px; }
.masthead .header-link { display:inline-flex; align-items:center; gap:9px; padding:10px 14px; min-height:46px; font-size:14px; }
.header-link .control-label { padding:0; }
.masthead .soundtrack-toggle { display:flex; align-items:center; justify-content:center; gap:7px; width:auto; height:auto; min-height:46px; border-radius:8px; padding:10px 12px; font-size:13px; color:#fff1ce; }
#opening-sound { display:inline-flex; gap:8px; align-items:center; min-height:44px; padding:10px 14px; }
.brand-wall { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.brand-plaque { display:grid; grid-template-rows:minmax(0,1fr); gap:0; min-width:0; min-height:44px; height:100%; border:1px solid #dfc591; border-radius:6px; background:#fff; padding:4px 7px; box-shadow:0 3px 12px #001a1744; overflow:hidden; color:#173c30; }
.brand-logo { display:flex; justify-content:center; align-items:center; min-width:0; min-height:0; overflow:hidden; }
.brand-plaque img { width:100%; height:100%; object-fit:contain; mix-blend-mode:normal; }
.brand-plaque:is(:hover,:focus-visible) { border-color:#f2c66c; box-shadow:0 0 0 2px #e0be8077; }
.brand-tge { background:#123b2e; }
.brand-ethereum { background:#235543; }
.brand-tge,.brand-ethereum { color:#fff0ca; }
.brand-ethereum img { transform:scale(1.5); }
.stage-brands { display:none; }
.cinematic .stage-brands { display:grid; position:absolute; z-index:21; bottom:10px; left:50%; transform:translateX(-50%); width:min(510px,calc(100% - 28px)); height:60px; }
.cinematic .journey-caption { bottom:80px; border:0; padding:0; font-size:11px; }
.cinematic .journey-stage:has(#invitation.is-active) .stage-brands { height:84px; width:min(630px,calc(100% - 32px)); bottom:18px; }
.cinematic .journey-stage:has(#invitation.is-active) .journey-caption { display:none; }
.cinematic #invitation #opening-sound { bottom:112px; }
.cinematic .illustrated-scene .scene-actions { bottom:96px; }
.cinematic .story-invite .invitation-handoff { bottom:14%; width:min(79vw,650px,48svh); }
.cinematic .partner-road .road-world { bottom:94px; }
.cinematic .journey-stage:has(#partner-road.is-active) .journey-caption { display:none; }
.finale-brands,.opening-brands { width:min(740px,100%); height:auto; grid-auto-rows:clamp(84px,13vw,112px); gap:12px; }
.finale-brands .brand-plaque { padding:8px; border-radius:10px; }
.opening-brands { margin:28px auto 0; }
.cinematic .opening-brands { display:none; }
html:not(.cinematic) #invitation { flex-direction:column; }
html:not(.cinematic) .invitation-wall-branding { margin-top:42px; margin-bottom:28px; width:min(200px,45vw); }
/* Three lead partners are identified by their supplied artwork, not added captions. */
.featured-partner .shop-name,.featured-partner .shop-role,
.featured-partner .partner-card-copy { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.partner-shop.featured-partner .partner-logo-slot { width:100%; height:100%; max-width:none; flex:1; }
.partner-shop.featured-partner .shop-logo { width:100%; height:100%; max-height:none; margin:0; object-fit:contain; }
.partner-dialog.featured-partner .partner-logo-slot,.partner-auto-card.featured-partner .partner-logo-slot { width:100%; height:150px; max-width:none; flex:1; }
.partner-dialog.featured-partner .partner-card-row { display:block; }
.partner-dialog .partner-dialog-close,.close-button,.invitation-viewer-bar button,#close-music { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; min-width:44px; min-height:44px; font-size:14px; padding:10px 12px; }
.partner-dialog .partner-dialog-close { right:12px; top:12px; }
.partner-dialog { padding-top:68px; }
footer a { min-height:44px; padding:8px 4px; }
:where(a,button,label):focus-visible { outline:3px solid #f8cf74; outline-offset:4px; }
@media(max-width:650px) {
  .masthead { padding:8px 12px; gap:8px; }
  .masthead .wordmark { width:61px; }
  .masthead .header-actions { gap:7px; }
  .masthead .header-link { font-size:12px; gap:6px; padding:10px; }
  .masthead .soundtrack-toggle { font-size:12px; gap:5px; padding:10px 8px; }
  .masthead .header-date { display:none; }
  .stage-brands,.cinematic .stage-brands { height:54px; gap:6px; bottom:8px; }
  .brand-plaque { padding:5px; }
  .cinematic .journey-caption { display:none; }
  .cinematic .illustrated-scene .scene-actions { bottom:80px; gap:8px; }
  .cinematic .story-invite .invitation-handoff { width:min(86vw,49svh); bottom:14%; }
  .cinematic .partner-road .road-world { bottom:82px; }
  .cinematic .journey-stage:has(#invitation.is-active) .stage-brands { height:70px; bottom:12px; }
  .cinematic #invitation #opening-sound { bottom:94px; }
  .finale-brands,.opening-brands { grid-template-columns:repeat(2,minmax(0,1fr)); height:auto; gap:10px; }
  .finale-brands .brand-plaque { min-height:44px; padding:6px; }
  .scene-actions .outline-button,.scene-actions .text-button { font-size:13px; min-height:44px; padding:10px 12px; }
}
@media(max-width:360px) {
  .masthead .header-link { padding:10px 7px; }
  .masthead .header-link .ui-icon { width:18px; height:18px; }
  .masthead .wordmark { width:55px; }
}
@media(max-width:650px) and (max-height:700px) {
  .cinematic .story-invite .invitation-handoff { width:min(80vw,38svh); bottom:18%; }
}
@media(min-width:651px) and (max-height:800px) {
  .cinematic .story-invite .invitation-handoff { width:min(79vw,650px,44svh); bottom:17%; }
}
/* Let featured artwork occupy the entire board, including compact street layouts. */
.partner-road .partner-shop.featured-partner .shop-sign { display:flex; padding:5px; }
.partner-road .partner-shop.featured-partner .shop-details { display:none; }
.partner-road .partner-shop.featured-partner .partner-logo-slot { border:0; padding:3px; background:#fff; }
.partner-road .partner-shop.featured-partner:nth-child(3) .partner-logo-slot { background:#235543; }
.partner-dialog.featured-partner .partner-logo-slot img,.partner-auto-card.featured-partner .partner-logo-slot img { width:100%; height:100%; object-fit:contain; }
@media(max-width:360px) and (min-height:640px) {
  .cinematic .story-invite .invitation-handoff { bottom:20%; }
}
.partner-auto-card.featured-partner { display:flex; padding:16px; width:min(380px,calc(100vw - 40px)); }
@media(min-width:651px) and (max-height:800px) {
  .cinematic .story-invite .invitation-handoff { width:min(72vw,650px,34svh); bottom:19%; }
  .cinematic #the-invitation .dialogue-beat { width:280px; font-size:14px; }
}
@media(max-width:360px) and (min-height:640px) {
  .cinematic .story-invite .invitation-handoff { width:min(80vw,35svh); bottom:20%; }
}
/* The bottom plaques open a compact card with an explicit name and relationship. */
.partner-dialog.brand-details { width:min(380px,calc(100% - 24px)); max-height:calc(100dvh - 24px); margin:auto; padding:12px; border:1px solid #d6b574; border-radius:16px; background:#fff7e7; text-align:center; }
.brand-details .partner-dialog-close { position:static; display:flex; margin:0 0 8px auto; }
.brand-details .partner-card-row { display:flex; flex-direction:column; gap:16px; min-height:0; }
.brand-details .partner-logo-slot { width:100%; height:clamp(80px,24svh,160px); flex:none; border:0; padding:12px; background:white; border-radius:8px; overflow:hidden; }
.brand-details #partner-dialog-logo { width:100%; height:100%; object-fit:contain; }
.brand-details[data-brand="ethereum"] .partner-logo-slot { background:#235543; }
.brand-details[data-brand="tge"] .partner-logo-slot { background:#123b2e; }
.brand-details[data-brand="ethereum"] #partner-dialog-logo { transform:scale(1.35); }
.brand-details .partner-card-copy { padding:0 8px 12px; width:100%; }
.brand-details #partner-dialog-role { font:600 12px/1.5 var(--sans); margin:0 0 6px; color:#54644e; }
.brand-details #partner-dialog-name { font-size:clamp(22px,5vw,28px); line-height:1.25; }
/* Gold oval control; its green centre detail matches the invitation palette. */
.masthead #autoscroll-toggle {
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
  gap:7px; min-height:46px; min-width:132px; padding:8px 14px; border-radius:999px;
  border:1px solid #f8dc91; background:linear-gradient(135deg,#ffeab3,#dab45f 60%,#f3d58d);
  box-shadow:inset 0 0 0 2px #173c30,inset 0 0 0 3px #f6d895,0 3px 14px #0004;
  color:#173c30; font-size:13px; font-weight:700; line-height:1.2;
}
#autoscroll-toggle .ui-icon { width:25px; height:25px; padding:4px; border-radius:50%; background:#173c30; color:#f5d69a; }
.masthead #autoscroll-toggle[aria-pressed="true"] { background:linear-gradient(135deg,#f9d789,#cda047); }
@media(max-width:1100px) { .masthead .header-date { display:none; } }
@media(max-width:650px) {
  .masthead { gap:7px; padding-inline:10px; }
  .masthead .wordmark { width:51px; }
  .masthead .header-actions { gap:6px; flex-shrink:0; }
  .masthead #autoscroll-toggle { min-width:98px; min-height:46px; padding:7px; gap:5px; font-size:11px; }
  #autoscroll-toggle .ui-icon { width:21px; height:21px; padding:3px; }
  .masthead .soundtrack-toggle { flex-direction:column; width:46px; padding:5px 2px; gap:2px; font-size:10px; line-height:1.2; }
  .masthead .soundtrack-toggle svg { width:18px; height:18px; }
  .masthead .header-link { flex-direction:column; width:65px; padding:5px 2px; gap:2px; font-size:10px; line-height:1.2; }
  .masthead .header-link .ui-icon { width:18px; height:18px; }
}
@media(max-width:310px) {
  .masthead { padding-inline:6px; gap:4px; }
  .masthead .wordmark { width:40px; }
  .masthead .header-actions { gap:4px; }
  .masthead #autoscroll-toggle { min-width:93px; }
  .masthead .header-link { width:58px; }
}
