/* One responsive navigation shell. Mineral surfaces, parchment text, brass selection. */
body.has-global-nav{--site-nav-width:224px;--site-nav-top:0px;--nav-height:0px;box-sizing:border-box;padding-left:var(--site-nav-width);padding-top:var(--site-nav-top);padding-bottom:0}
body.has-global-nav.site-nav-collapsed{--site-nav-width:0px;--site-nav-top:60px}
body.has-global-nav #game{left:var(--site-nav-width);top:var(--site-nav-top);width:calc(100% - var(--site-nav-width));height:calc(100% - var(--site-nav-top))}
.site-navigation{--nav-ink:oklch(17% .015 200);--nav-paper:oklch(92% .026 90);--nav-muted:oklch(72% .025 165);--nav-line:oklch(34% .022 175);--nav-gold:oklch(80% .091 88);font:14px/1.45 var(--font-ui,system-ui,sans-serif);color:var(--nav-paper)}
.site-navigation,.site-navigation *{box-sizing:border-box}
.site-navigation .site-sidebar{position:fixed;inset:0 auto 0 0;z-index:100;display:flex;flex-direction:column;width:224px;height:100dvh;background:var(--nav-ink);border-right:1px solid var(--nav-line);overflow:hidden}
.site-sidebar-head{display:flex;align-items:center;justify-content:space-between;flex:none;min-height:84px;padding:12px 12px 8px 18px;gap:8px}
.site-nav-brand{display:flex;align-items:center;min-width:0}
.site-nav-brand img{display:block;width:132px;height:66px;object-fit:contain}
.site-navigation button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px;border:1px solid transparent;border-radius:0;background:transparent;box-shadow:none;color:var(--nav-muted);font:500 13px/1.4 var(--font-ui,system-ui,sans-serif);letter-spacing:0;cursor:pointer;transform:none}
.site-navigation button svg{width:20px;height:20px;flex-shrink:0}
.site-navigation button:hover{color:var(--nav-paper);background:oklch(24% .02 185);border-color:var(--nav-line);transform:none}
.site-navigation :is(a,button):focus-visible{outline:2px solid var(--nav-gold);outline-offset:-3px}
.site-navigation .site-nav.game-nav{position:static;display:block;flex:1;min-height:0;height:auto;width:100%;margin:0;padding:0 12px 16px;background:transparent;border:0;box-shadow:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--nav-line) transparent}
.site-nav-group{margin:0 0 18px;padding:0;border:0;background:none}
.site-navigation .site-nav-group h2{margin:0;padding:10px 12px 5px;color:var(--nav-muted);font:600 10px/1.5 var(--font-ui,system-ui,sans-serif);text-transform:uppercase;letter-spacing:.12em;text-align:left}
.site-navigation .site-nav .nav-destinations{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;height:auto;overflow:visible}
.site-navigation .site-nav .nav-destinations a{display:flex;justify-content:flex-start;align-items:center;gap:12px;min-width:0;min-height:44px;padding:9px 12px;border:1px solid transparent;border-radius:0;background:transparent;color:var(--nav-muted);font:500 13px/1.45 var(--font-ui,system-ui,sans-serif);letter-spacing:0;white-space:normal;text-decoration:none;box-shadow:none}
.site-navigation .site-nav .nav-destinations a:hover{color:var(--nav-paper);background:oklch(23% .019 185)}
.site-navigation .site-nav .nav-destinations a[aria-current=page]{color:var(--nav-paper);background:oklch(27% .029 145);border-color:oklch(54% .055 100)}
.site-navigation .site-nav .nav-icon{display:block;width:24px;height:24px;flex:0 0 24px;object-fit:contain;image-rendering:pixelated}
.site-nav-footer{flex:none;padding:16px 20px 20px;border-top:1px solid var(--nav-line);color:var(--nav-muted);font-size:11px}
.site-navigation .site-menu-bar{position:fixed;inset:0 0 auto;z-index:90;display:none;height:60px;align-items:center;gap:16px;padding:8px 16px;background:var(--nav-ink);border-bottom:1px solid var(--nav-line)}
.site-page-label{color:var(--nav-paper);font-size:13px;font-weight:500}
.site-nav-backdrop{position:fixed;inset:0;z-index:95;background:oklch(10% .014 190 / .7)}
.site-nav-backdrop[hidden]{display:none}
.site-nav-collapsed .site-sidebar{visibility:hidden;transform:translateX(-100%)}
.site-nav-collapsed .site-menu-bar{display:flex}
body:not(.has-global-nav) .site-navigation{display:none}
body.has-global-nav>.game-nav,body.has-global-nav>.site-head,body.has-global-nav>.site-header,body.has-global-nav>.party-head{display:none}
body.has-global-nav>.topbar>.wordmark{visibility:hidden;width:0;overflow:hidden}
body.has-global-nav #overlay.visible:not(.play){padding-bottom:0}
body.has-global-nav #overlay.camp:has(#camp-room){padding:0;overflow:hidden}
body.has-global-nav #camp-room{position:absolute;inset:0;width:100%;height:100%;border:0}
body.has-global-nav #overlay .camp-shell{min-height:calc(100dvh - var(--site-nav-top));padding:28px 36px}
body.has-global-nav #overlay .camp-layout{grid-template-columns:minmax(0,1fr) minmax(240px,310px);gap:36px}
body.has-global-nav #overlay .camp-main h1{font-size:clamp(28px,3.5vw,48px)}
body.has-global-nav #overlay .camp-top{margin-bottom:20px}
body.has-global-nav #overlay .workshop{min-height:calc(100dvh - var(--site-nav-top))}
body.has-global-nav #overlay .exchange:has(.exchange-layout){height:calc(100dvh - var(--site-nav-top))}
body.has-global-nav .lost-page{left:var(--site-nav-width);top:var(--site-nav-top)}
/* The room is already inside the game shell; never render a second menu. */
body.embedded-camp{padding:0;--camp-nav-space:0px}
body.embedded-camp>.site-header{display:none}
body.embedded-camp .camp-world{height:calc(100svh - 126px)}
body.embedded-camp.clean-view .camp-world{height:100svh}
body.embedded-camp .drawer{top:0;height:100svh}
.preparation-skin{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;font-size:13px;color:var(--muted)}
.preparation-skin button{font:500 13px/1.4 var(--font-ui);letter-spacing:0;background:transparent;padding:8px 12px}
@media(max-width:1200px) and (min-width:961px){body.has-global-nav #overlay .camp-shell{padding:24px}body.has-global-nav #overlay .camp-layout{grid-template-columns:minmax(0,1fr) 260px;gap:24px}body.has-global-nav .camp-note{padding:20px}}
@media(max-width:960px){
 body.has-global-nav,body.has-global-nav.site-nav-collapsed{--site-nav-width:0px;--site-nav-top:60px;padding-left:0;padding-top:60px;padding-bottom:0}
 .site-navigation .site-menu-bar{display:flex;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .site-navigation .site-sidebar{width:min(300px,calc(100vw - 48px));visibility:hidden;transform:translateX(-100%);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
 .site-nav-open .site-sidebar{visibility:visible;transform:translateX(0)}
 body.site-nav-open{overflow:hidden}
 body.has-global-nav #overlay .camp-shell{padding:20px}
 body.has-global-nav #overlay .camp-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 body.has-global-nav #overlay .camp-main{display:block}
 body.has-global-nav #overlay .camp-main h1{font-size:32px;margin:16px 0}
 body.has-global-nav #overlay .camp-note{display:block;padding:22px}
 body.has-global-nav #overlay .camp-note>h2,body.has-global-nav #overlay .camp-note>p{display:none}
 body.has-global-nav #overlay .camp-loadout{margin-top:0}
 body.has-global-nav #overlay .camp-top{display:flex;margin-bottom:16px}
 body.has-global-nav #overlay .mobile-wordmark{display:none}
 body.has-global-nav #overlay .exchange:has(.exchange-layout){height:auto;min-height:calc(100dvh - 60px)}
 body.embedded-camp .camp-world{height:calc(100svh - 180px);min-height:300px}
 body.embedded-camp.editing .camp-world{height:56svh;min-height:160px}
 body.embedded-camp.clean-view .camp-world{height:100svh}
}
@media(prefers-reduced-motion:no-preference){.site-sidebar{transition:transform 180ms ease-out}.site-navigation a{transition:background 150ms ease-out,color 150ms ease-out}}
.weapon-control[hidden]{display:none}
body.has-global-nav.camp-clean{--site-nav-width:0px;--site-nav-top:0px;padding:0}
body.camp-clean .site-navigation{display:none}
/* Let camp controls determine their own height inside the narrower shared shell. */
body.embedded-camp #camp{display:grid;grid-template-rows:minmax(360px,1fr) auto;height:100svh}
body.embedded-camp .camp-world{height:auto;min-height:0}
body.embedded-camp .camp-controls{min-width:0;min-height:126px;flex-wrap:wrap;gap:16px;padding:18px 24px}
body.embedded-camp .home-controls{min-width:0;flex:1 1 480px;flex-wrap:wrap}
body.embedded-camp .expedition-control{flex:0 1 250px;min-width:0}
body.embedded-camp .enter-button{min-width:0;width:100%}
body.embedded-camp.clean-view #camp{grid-template-rows:1fr}
body.embedded-camp.clean-view .camp-world{height:100svh}
@media(max-width:760px){
 body.embedded-camp #camp{height:auto;min-height:100svh;grid-template-rows:minmax(320px,1fr) auto}
 body.embedded-camp .camp-world{height:calc(100svh - 290px);min-height:320px}
 body.embedded-camp .camp-controls{padding:14px 16px}
 body.embedded-camp .home-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
 body.embedded-camp .expedition-control{margin-top:14px}
 body.embedded-camp.editing #camp{height:100svh;grid-template-rows:1fr}
 body.embedded-camp.editing .camp-world{height:56svh;min-height:160px}
 body.embedded-camp.clean-view .camp-world{height:100svh}
}
