:root {
  --utility-profile:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%223%22/%3E%3Cpath%20d%3D%22M5%2021v-2a7%207%200%200%201%2014%200v2%22/%3E%3C/svg%3E");
  --utility-logout:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%204H4v16h5M13%2012h8m-4-4%204%204-4%204%22/%3E%3C/svg%3E");
  --utility-sky:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%203a8%208%200%201%200%206%2012%207%207%200%200%201-6-12Z%22/%3E%3Cpath%20d%3D%22M20%203v4m-2-2h4M11%203v2m-1-1h2%22/%3E%3C/svg%3E");
  --utility-pause:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%205v14M16%205v14%22/%3E%3C/svg%3E");
  --utility-play:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m8%204%2012%208-12%208Z%22/%3E%3C/svg%3E");
  --utility-world:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22/%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2212%22%20rx%3D%224%22%20ry%3D%229%22/%3E%3Cpath%20d%3D%22M3%2012h18%22/%3E%3C/svg%3E");
  --utility-key:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22m11%2011%209%209m-5-5%203-3m-1%205%203-3%22/%3E%3C/svg%3E");
}
/* Reuse the landing medal's translucent plate and gold hover/focus treatment.
   Pseudo-elements preserve the icon while existing controllers update button text. */
body .landing-utility:is(#portal-profile,#portal-logout,#sky-toggle,#landing-motion-toggle,#briefing-toggle,[data-admin-note]) {
  width:44px;height:44px;min-width:44px;flex:0 0 44px;padding:0;border-radius:50%;
  border:1px solid var(--line);background:rgba(7,8,10,.28);color:var(--ink-soft);
  font-size:0;line-height:1;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;
  transition:border-color .35s ease,color .35s ease,background .35s ease,transform .35s cubic-bezier(.22,1,.36,1);
}
body .landing-utility::before {content:'';display:block;width:22px;height:22px;background:currentColor;-webkit-mask:var(--utility-icon) center/contain no-repeat;mask:var(--utility-icon) center/contain no-repeat}
body .landing-utility:is(#portal-profile,#portal-logout,#sky-toggle,#landing-motion-toggle,#briefing-toggle,[data-admin-note]):is(:hover,:focus-visible) {color:var(--gold);border-color:var(--gold);background:rgba(7,8,10,.5);transform:translateY(-3px)}
body .landing-utility:focus-visible {outline:1px solid var(--gold);outline-offset:4px}
body .landing-utility::after {content:var(--utility-label) / "";position:absolute;z-index:1;left:calc(100% + 12px);top:50%;transform:translateY(-50%);pointer-events:none;white-space:nowrap;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:rgba(7,8,10,.75);color:var(--ink);font:10px/1.4 'DM Mono',monospace;letter-spacing:.04em;opacity:0;transition:opacity .3s ease}
body .landing-utility:is(:hover,:focus-visible)::after {opacity:1}
#portal-tools {gap:10px}
#portal-tools .landing-utility::after {left:auto;right:0;top:calc(100% + 12px);transform:none}
#portal-profile {--utility-icon:var(--utility-profile);--utility-label:attr(aria-label)}
#portal-logout {--utility-icon:var(--utility-logout);--utility-label:'Logga ut'}
#portal-tools [data-admin-note] {--utility-icon:var(--utility-key);--utility-label:'Clique · VIP'}
#sky-toggle {--utility-icon:var(--utility-sky);--utility-label:'Justera himlen';left:1.15rem;bottom:4.5rem}
#sky-panel {bottom:8.2rem}
#landing-motion-toggle {--utility-icon:var(--utility-pause);--utility-label:'Pausa bakgrunden';bottom:1.2rem}
#landing-motion-toggle[aria-pressed=true] {--utility-icon:var(--utility-play);--utility-label:'Spela bakgrunden'}
#briefing-toggle {--utility-icon:var(--utility-world);--utility-label:'World Briefing';position:fixed;top:6.05rem;left:1.15rem;z-index:6}
body.immersive #briefing-toggle {visibility:hidden}
@media(max-width:680px) {
  #portal-tools {top:4.65rem;right:1rem}
  #briefing-toggle {top:4.65rem;left:1rem}
  #sky-toggle {left:1rem;bottom:4.5rem}
  #landing-motion-toggle {left:1rem;bottom:1.2rem}
  #sky-panel {left:1rem;bottom:8.2rem;width:calc(100vw - 2rem);max-height:calc(100dvh - 9.2rem)}
}
@media(prefers-reduced-motion:reduce) {body .landing-utility,body .landing-utility::after {transition:none!important}body .landing-utility {transform:none!important}}

#briefing-panel {position:fixed;inset:6rem 1.15rem auto;width:min(1120px,calc(100vw - 2.3rem));height:min(76dvh,840px);max-width:none;max-height:none;margin:0 auto;padding:0;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:rgba(7,8,10,.8);color:var(--ink);box-shadow:0 24px 100px #0005;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
#briefing-panel[open] {display:flex;flex-direction:column;animation:briefing-arrive .55s cubic-bezier(.22,1,.36,1) both}
#briefing-panel::backdrop {background:rgba(7,8,10,.25);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.briefing-header {display:flex;align-items:center;gap:16px;min-height:72px;padding:12px 18px;flex-shrink:0;border-bottom:1px solid var(--line)}
.briefing-header h2 {font:300 25px/1.2 'Newsreader',Georgia,serif;margin:0 auto 0 0;letter-spacing:-.02em}
#world-briefing-link {display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);background:transparent;text-decoration:none;font:10px/1.4 'DM Mono',monospace;transition:color .35s,border-color .35s}
#world-briefing-link:is(:hover,:focus-visible) {color:var(--gold);border-color:var(--gold)}
#world-briefing-link span {font-size:16px}
#briefing-close {width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink-soft);font:300 24px/1 'Newsreader',Georgia,serif;cursor:pointer}
#briefing-close:is(:hover,:focus-visible) {color:var(--gold);border-color:var(--gold)}
#briefing-panel :focus-visible {outline:1px solid var(--gold);outline-offset:4px}
#briefing-frame {display:block;flex:1;min-height:0;width:100%;border:0;background:transparent}
@keyframes briefing-arrive {from {opacity:0;transform:translateY(10px)}to {opacity:1;transform:translateY(0)}}
@media(max-width:680px) {
  #briefing-panel {inset:.7rem .7rem auto;width:calc(100vw - 1.4rem);height:calc(100dvh - 1.4rem);border-radius:16px}
  .briefing-header {min-height:64px;padding:10px;gap:8px}
  .briefing-header h2 {font-size:21px}
  #world-briefing-link {max-width:128px;padding:0 10px;font-size:9px}
}
@media(prefers-reduced-motion:reduce) {#briefing-panel[open] {animation:none}#world-briefing-link {transition:none}}
