/* Navigation and shared page rhythm. Public landing and editor surfaces are excluded. */
.game-frame { --page-width:1480px; --page-gap:20px; --page-radius:20px; }
.game-main:not(:has(.arena)):not(:has(.content-editor)) { max-width:none; padding:var(--game-content-top,12px) clamp(18px,3vw,48px) 70px; }
.game-main:not(:has(.arena)):not(:has(.content-editor)) > * { max-width:var(--page-width); margin-inline:auto; }
.game-main .world-links { margin-top:0; margin-bottom:18px; }
.game-main .world-links>a { font-size:12px; padding:9px 13px; border-radius:11px; }
/* Navigation labels are controls; a small pointer movement must not select text for dragging. */
.section-navigation a{ -webkit-user-select:none; user-select:none; }
.section-navigation { box-sizing:border-box; display:flex; flex-direction:column; gap:13px; padding:20px 26px; margin-bottom:16px; border:1px solid var(--theme-line,#bddcde); border-radius:20px; background:linear-gradient(120deg,var(--theme-surface,#f9fffd),var(--theme-soft,#e5f5f2)); }
.section-navigation-heading { display:flex; align-items:baseline; gap:12px; }
.section-navigation-heading>span { font-size:8px; letter-spacing:.18em; color:var(--theme-muted,#65878e); font-weight:700; }
.section-navigation-heading h2 { font-size:21px; margin:0; color:var(--theme-ink,#214c58); letter-spacing:-.4px; }
.section-navigation nav { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:10px; }
/* Text and background must switch together; a delayed background briefly hides the label. */
.section-navigation nav a { display:flex; align-items:center; justify-content:center; gap:11px; min-height:55px; padding:10px 14px; box-sizing:border-box; border-radius:12px; font-size:14px; font-weight:650; color:var(--theme-ink,#285f6c); text-decoration:none; border:1px solid var(--theme-line,#a9ced1); background:var(--theme-surface,#ffffffda); box-shadow:0 3px 9px #215d6508; transition:border-color .2s; }
.section-tab-icon { font-size:23px; font-weight:400; color:var(--theme-accent,#3098a0); }
.section-navigation nav a:hover { background:var(--theme-hover,#d9f2ec); border-color:#51acae; }
.section-navigation nav a.active { background:#194e5b; color:white; border-color:#194e5b; box-shadow:0 5px 15px #215d6526; }
.section-navigation nav a.active .section-tab-icon { color:#96e1da; }
.section-activity { display:flex; align-items:center; gap:7px; font-size:11px; color:var(--theme-ink,#168b80); text-decoration:none; }
/* Navigation and page introduction form one recognizable section header. */
.game-main:has(.arena)>.section-navigation { display:none; }

.nav-live-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#18ae8f; box-shadow:0 0 0 3px #18ae8f17; flex-shrink:0; }



.section-navigation a:focus-visible{ outline:3px solid #dfb557; outline-offset:2px; }

@media(max-width:600px) {
 .game-main:not(:has(.arena)):not(:has(.content-editor)) { padding:var(--game-content-top,12px) 14px 85px; }
 .section-navigation { padding:15px 12px; gap:12px; }.section-navigation-heading{gap:8px}.section-navigation-heading h2{font-size:19px}.section-navigation nav{gap:6px}.section-navigation nav a{font-size:11px;padding:10px 3px;min-height:68px;flex-direction:column;gap:5px;text-align:center;line-height:1.25}.section-tab-icon{font-size:21px}.section-activity{font-size:10px}
}
@media(prefers-reduced-motion:reduce) { .section-navigation *, .page-hero *, .page-hero *:before{ animation:none!important; transition:none!important; }  }
/* Keep mobile menu and shortcut hit areas separate; neither overlays the other. */

/* Compact arena, public viewing and the afterlife share the existing visual language. */
.compact-arena-modes{gap:16px}.compact-arena-modes .arena-mode-card{padding:20px;min-height:0;align-items:stretch}.compact-mode-heading{display:flex;align-items:center;gap:12px;min-height:54px}.compact-mode-heading .mode-emblem{width:44px;height:44px;min-width:44px;margin:0;font-size:1.7rem;border-radius:14px}.compact-mode-heading h3{font-size:1.45rem;margin:4px 0 0}.compact-mode-heading .eyebrow{font-size:.58rem}.compact-mode-description{font-size:.86rem;line-height:1.45;min-height:2.9em;margin:12px 0}.compact-mode-options{flex:1;border-top:1px solid var(--theme-line,#c9dddd);padding-top:12px}.compact-mode-options .prize-pair{border:0;padding:0}.compact-mode-options .arena-format{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:8px;align-items:end}.arena-format>span{display:flex;align-items:center;justify-content:center;height:42px;line-height:1}.arena-format label{display:flex;flex-direction:column;gap:6px;font-size:.75rem}.arena-format select{width:100%;min-width:0;height:42px}.format-summary{font-size:.75rem;margin:10px 0}.arena-mode-card .arena-password{margin:8px 0;font-size:.75rem}.arena-password input{width:100%;margin:8px 0}.arena-password small{display:block}.compact-mode-footer{padding-top:16px;display:flex;flex-direction:column;gap:10px}.compact-mode-footer .training-primary{min-width:0;align-self:flex-start}.arena-mode-card .compact-mode-footer details{margin:0}.compact-mode-footer>small{font-size:.7rem;color:var(--theme-muted,#587580);min-height:2em}.mode-unavailable{filter:saturate(.35)}.mode-unavailable .training-primary{opacity:.6}.arena-ffa{border:0;background:transparent;color:var(--theme-ink,#16818c);font-size:.72rem;padding:8px 0 0;text-align:left;cursor:pointer}.battle-directory-tabs{display:flex;gap:6px}.battle-directory-tabs button{border:1px solid var(--theme-line,#bddde0);border-radius:12px;background:var(--theme-surface,#fff);padding:10px 14px;color:var(--theme-ink,#204e5b);cursor:pointer}.battle-directory-tabs button.active{background:#194c58;color:white}.battle-directory-tabs b{margin-left:6px}.open-lobby{flex-wrap:wrap;padding:16px;gap:14px}.open-lobby .arena-join-choice{flex:0 0 100%;min-width:0;border-top:1px solid var(--theme-line,#cce2e6);padding-top:12px;display:flex;align-items:end;gap:12px;flex-wrap:wrap}.arena-join-choice label{display:grid;gap:6px}.arena-join-choice p{flex-basis:100%;font-size:.8rem}.arena-spectators{font-size:.72rem;color:var(--theme-muted,#557a85);text-align:right;margin-bottom:8px}.battle-target-picker{display:grid;gap:6px;font-size:.75rem;margin:12px 0}.battle-target-picker select{min-width:0;width:100%}.spectator-summary{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:16px 20px;background:var(--theme-surface,#ffffffb8);border:1px solid var(--theme-line,#cce2e6);border-radius:16px;margin:16px 0}.spectator-summary small{margin-left:auto;color:var(--theme-muted,#587580)}.spectator-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;align-items:start}.spectator-roster>section{min-width:0;display:grid;gap:10px}.spectator-roster h3{font-size:.95rem}.spectator-roster h3 small{font-weight:400;font-size:.7rem;margin-left:8px}.spectator-arena .portrait-button:disabled{opacity:1;cursor:default}.large-battle .other-teams{max-height:78vh;overflow-y:auto;scrollbar-width:thin;padding:0 6px 16px 0}.we-inspector>.we-fields{padding:10px}.we-inspector{min-width:0;overflow:hidden}.we-fields input,.we-fields select,.we-fields textarea{max-width:100%;box-sizing:border-box}.editor-image-picker{display:grid;gap:8px}.editor-image-preview{max-width:100%;height:85px;object-fit:contain;border-radius:10px;background:var(--theme-soft,#e9f5f4)}.section-navigation .comm-badge{font-size:.7rem}.soul-profile .profile-portrait{position:relative;isolation:isolate}.soul-profile .profile-portrait>img{filter:saturate(.7) brightness(1.08)}.soul-halo{position:absolute;z-index:2;left:50%;top:8%;width:39%;height:auto;aspect-ratio:13/4;box-sizing:border-box;border:5px solid #ffe7a0;border-radius:50%;transform:translateX(-50%) rotate(-8deg);box-shadow:0 0 7px #fff8d5,inset 0 0 7px #fff8d5,0 0 23px #efbd45;animation:soul-float 4s ease-in-out infinite}.soul-mist{position:absolute;inset:55% 0 0;background:linear-gradient(transparent,var(--theme-soft,#e5f9f3b0));pointer-events:none}.soul-status{display:table;margin-top:12px;padding:7px 12px;border:1px solid var(--theme-line,#e3cf94);border-radius:20px;color:var(--theme-gold,#80652e);background:var(--theme-soft,#fff7dc);font-size:.85rem}@keyframes soul-float{50%{transform:translate(-50%,-7px) rotate(-5deg)}}@media(prefers-reduced-motion:reduce){.soul-halo{animation:none}}@media(max-width:700px){.compact-arena-modes{grid-template-columns:1fr}.compact-arena-modes .arena-mode-card{padding:16px}.compact-mode-description{min-height:0}.compact-mode-footer{padding-top:12px}.spectator-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.spectator-summary small{margin-left:0}.large-battle .other-teams{max-height:50vh}.soul-halo{border-width:3px}.open-lobbies{margin-top:20px}}

.compact-arena-modes .compact-mode-heading{min-height:70px}.compact-arena-modes .arena-format{margin:0;padding:0;border:0}.compact-arena-modes .compact-mode-description{min-height:3em}.arena-selection>.open-lobbies{margin-top:0;margin-bottom:20px}.arena-create-heading{font-size:1.15rem;margin:20px 0 12px}.arena-selection .lobby-empty{min-height:0;padding:16px}.spectator-count{display:block;color:var(--theme-muted,#66838b);text-align:right;font-size:.72rem;margin-bottom:6px}@media(max-width:700px){.compact-arena-modes .compact-mode-heading{min-height:0}.compact-arena-modes .compact-mode-description{min-height:0}}

.compact-arena-modes .arena-format>span{align-self:end;height:44px}

/* Let long section hints shrink inside the link, preserving the arrow's space. */

/* Reserve the underline space in both states; the ellipsis container clips ink. */

/* The arrow belongs to the title row; the hint can use the full remaining width. */

/* Identical heading geometry for administrators and players. The shortcut occupies
   a reserved inline slot, never an additional row in the page introduction. */
.editor-heading { position:relative; box-sizing:border-box; width:fit-content; max-width:100%; padding-right:158px; }
.editor-heading > .editor-shortcut { position:absolute; right:0; top:50%; transform:translateY(-50%); width:142px; }
.editor-shortcut { cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:7px; box-sizing:border-box; width:auto; height:32px; padding:0 10px; border:1px solid #377b86; border-radius:9px; background:#194e5b; color:#fff; box-shadow:0 3px 8px #194e5b18; text-decoration:none; white-space:nowrap; font-size:10px; font-weight:600; line-height:1; }
.editor-shortcut svg { width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; color:#a8e6df; }
.editor-shortcut:hover { background:#226575; border-color:#49a6ad; color:#fff; }
.editor-shortcut:focus-visible { outline:3px solid #e1b34d; outline-offset:3px; }
@media(max-width:1000px) {
 .editor-heading { padding-right:58px; }
 .editor-heading > .editor-shortcut { width:44px; height:44px; padding:0; }
 .editor-heading > .editor-shortcut span { display:none; }
 .editor-heading > .editor-shortcut svg { width:18px; height:18px; }
}

/* The landing-page nav divider has no purpose above tabs without an activity. */
@media(max-width:700px){
 .section-navigation>nav{border-top:0;padding-top:0}
}

/* Activity feedback occupies the existing heading, never an extra navigation row. */
/* Ranked rewards stay readable alongside the other compact arena cards. */
.ranked-growth-bonus{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--theme-gold,#b98526) 30%,transparent);border-radius:14px;background:color-mix(in srgb,var(--theme-gold,#d7a647) 10%,transparent)}
.ranked-growth-value{flex-shrink:0;font-size:1.8rem;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--theme-gold,#906018)}
.ranked-growth-value>span{font-size:.95rem;letter-spacing:0}
.ranked-growth-copy{display:grid;gap:3px;min-width:0}
.ranked-growth-copy>strong{font-size:.86rem;line-height:1.35;color:var(--theme-ink,#173c4b)}
.ranked-growth-copy>span{font-size:.78rem;line-height:1.4;color:var(--theme-muted,#587580)}
.arena-mode-card .ranked-reward-quota{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 0;font-size:.85rem;line-height:1.4;color:var(--theme-ink,#173c4b)}
.ranked-reward-quota>strong{padding:3px 9px;border-radius:7px;background:color-mix(in srgb,var(--theme-accent,#149aa4) 10%,transparent);color:var(--theme-ink,#173c4b);font-size:.9rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.ranked-reward-quota>strong>span{font-weight:400}
.arena-mode-card .ranked-reward-quota.is-exhausted{color:var(--theme-muted,#587580)}
.ranked-reward-quota.is-exhausted>strong{background:color-mix(in srgb,var(--theme-muted,#587580) 10%,transparent);color:inherit}
.section-navigation-heading{position:relative}
.section-navigation-heading .section-activity{margin-left:8px;white-space:nowrap;line-height:1;text-decoration:none;font-size:11px}
.section-navigation nav .travel-tab-live{position:relative;isolation:isolate;overflow:hidden;box-shadow:inset 0 0 0 1px #d6b66588}
.section-navigation nav .travel-tab-live::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#f6da9326 48%,transparent 70%);transform:translateX(-110%);animation:travel-tab-sheen 5s ease-in-out infinite}
.section-navigation nav .travel-tab-live>.nav-live-dot{position:absolute;right:9px;top:9px;background:#d6b665;box-shadow:0 0 0 3px #d6b66522}
@keyframes travel-tab-sheen{0%,45%{transform:translateX(-110%)}85%,100%{transform:translateX(110%)}}
@media(min-width:851px) and (max-height:1000px){.section-navigation-heading .section-activity{display:none}}
@media(prefers-reduced-motion:reduce){.section-navigation nav .travel-tab-live::after{animation:none;display:none}}
