.ctart-base-camp-page { overflow-x: hidden; background: #102318; }
.ctart-base-camp-page .app-footer { display: none; }
.base-camp-stage { position: relative; width: 100%; height: calc(100dvh - 4.5rem); min-height: 42rem; overflow: hidden; color: #fff; background: #102318; }
.base-camp-art, .base-camp-art img { position: absolute; inset: 0; width: 100%; height: 100%; }
.base-camp-art img { object-fit: cover; object-position: center; }
.base-camp-scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,rgba(3,10,7,.68),transparent 36%,transparent 54%,rgba(3,10,7,.78)); }
.base-camp-links { position: absolute; z-index: 3; top: 1rem; left: clamp(.9rem,3vw,2.2rem); display: flex; gap: .65rem 1.1rem; flex-wrap: wrap; }
.base-camp-links a { color: #f1d179; font-size: .78rem; font-weight: 850; text-decoration: none; text-shadow: 0 2px 8px #000; }
.base-camp-heading { position: absolute; z-index: 3; top: 3.2rem; left: clamp(.9rem,3vw,2.2rem); text-shadow: 0 2px 12px #000; }
.base-camp-heading p { margin: 0 0 .2rem; font-weight: 800; }
.base-camp-heading h1 { margin: 0; font-size: clamp(2rem,4.5vw,3.6rem); line-height: 1; text-transform: uppercase; }
.base-camp-heading [data-camp-difficulty] { margin-top: .45rem; color: #f4e9cb; font-size: clamp(.8rem,1.3vw,1rem); }
.base-camp-panel { position: absolute; z-index: 4; bottom: 4.75rem; left: 50%; width: min(calc(100% - 1.6rem),54rem); transform: translateX(-50%); padding: .85rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1rem; background: rgba(7,17,11,.88); box-shadow: 0 1rem 3rem rgba(0,0,0,.5); backdrop-filter: blur(8px); }
.base-camp-panel[hidden] { display: none; }
.base-camp-panel-close { position: absolute; z-index: 2; top: .45rem; right: .5rem; width: 2.25rem; height: 2.25rem; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; background: rgba(4,12,8,.7); font-size: 1.35rem; line-height: 1; cursor: pointer; }
.base-camp-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-right: 2.35rem; }
.base-camp-panel-restore { position: absolute; z-index: 4; right: clamp(.8rem,3vw,2.2rem); bottom: 6.5rem; min-height: 2.5rem; padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.24); border-radius: 1.3rem; color: #fff; background: rgba(7,17,11,.82); box-shadow: 0 .45rem 1.3rem rgba(0,0,0,.42); font: inherit; font-size: .76rem; font-weight: 850; cursor: pointer; backdrop-filter: blur(7px); }
.base-camp-panel-restore[hidden] { display: none; }
.base-camp-panel h2 { margin: 0; font-size: 1.15rem; }
.base-camp-panel-head p { margin: .15rem 0 0; color: #c7d1ca; font-size: .72rem; }
.base-camp-stars { color: #758078; font-size: 1.45rem; letter-spacing: .14rem; white-space: nowrap; }
.base-camp-core-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; margin-top: .65rem; }
.base-camp-core-card { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .55rem .65rem; border: 1px solid rgba(255,255,255,.14); border-radius: .65rem; background: rgba(255,255,255,.055); }
.base-camp-core-card strong, .base-camp-core-card span { display: block; }
.base-camp-core-card small { color: #c4cdc6; }
.base-camp-core-card .core-star { color: #758078; font-size: 1.2rem; }
.base-camp-primary { width: 100%; min-height: 2.55rem; margin-top: .6rem; border: 1px solid #a9f0b8; border-radius: .65rem; color: #fff; background: linear-gradient(#4cb765,#2f7d44); font: inherit; font-weight: 900; cursor: pointer; }
.base-camp-mega { margin-top: .65rem; }
.base-camp-mega > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .82rem; }
.base-camp-mega progress { width: 100%; height: .72rem; margin-top: .3rem; accent-color: #f2c14e; }
.base-camp-mega p { margin: .1rem 0 0; color: #e6cf8b; font-size: .72rem; }
.base-camp-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; margin-top: .65rem; }
.base-camp-actions a, .base-camp-actions button, .base-camp-summit { display: flex; min-height: 2.45rem; align-items: center; justify-content: center; margin: 0; padding: .5rem .65rem; border: 1px solid rgba(255,255,255,.18); border-radius: .6rem; color: #fff; background: rgba(255,255,255,.06); font: inherit; font-size: .76rem; font-weight: 800; text-align: center; text-decoration: none; cursor: pointer; }
.base-camp-summit { color: #f2c14e; cursor: default; }
.base-camp-hook-status { min-height: 1em; margin: .35rem 0 0; color: #b9c5bc; font-size: .68rem; text-align: center; }
.base-camp-status { position: absolute; z-index: 8; inset: 50% auto auto 50%; transform: translate(-50%,-50%); padding: .75rem 1rem; border-radius: .7rem; background: rgba(8,18,12,.9); font-weight: 800; }
.base-camp-stage:not([aria-busy="true"]) .base-camp-status { display: none; }
.base-camp-chooser { width: min(92vw,36rem); max-height: 86dvh; padding: 1rem; overflow: auto; border: 1px solid rgba(242,193,78,.42); border-radius: 1rem; color: #fff; background: linear-gradient(#172b20,#0b1810); }
.base-camp-chooser::backdrop { background: rgba(0,0,0,.68); backdrop-filter: blur(4px); }
.path-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.path-dialog-heading h2 { margin: 0; }
.path-dialog-heading button { width: 2.75rem; height: 2.75rem; border: 0; color: #fff; background: transparent; font-size: 1.6rem; cursor: pointer; }
.path-chooser-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; margin-top: .9rem; }
.path-chooser-item { display: flex; min-height: 3.8rem; align-items: center; justify-content: space-between; gap: .6rem; padding: .65rem .75rem; border: 1px solid rgba(255,255,255,.14); border-radius: .7rem; color: #fff; background: rgba(255,255,255,.045); text-align: left; cursor: pointer; }
.path-chooser-item.is-current { border-color: #8de6a2; background: rgba(63,143,82,.3); }
.path-chooser-item strong, .path-chooser-item small { display: block; }
.path-chooser-item small { margin-top: .15rem; color: #c4cdc6; }
.path-chooser-progress { color: #f2c14e; font-size: .72rem; font-weight: 850; white-space: nowrap; }
@media (max-width: 600px) {
  .base-camp-stage { height: calc(100dvh - 3.6rem); min-height: 43rem; }
  .base-camp-heading { top: 3.65rem; }
  .base-camp-heading h1 { font-size: 2rem; }
  .base-camp-panel { bottom: 4.65rem; padding: .7rem; }
  .base-camp-panel-restore { right: .8rem; bottom: 6.2rem; }
  .base-camp-core-grid { grid-template-columns: 1fr; gap: .35rem; }
  .base-camp-core-card { padding: .38rem .55rem; }
  .base-camp-actions { grid-template-columns: 1fr 1fr; }
  .base-camp-actions [data-chooser-open] { grid-column: 1/-1; }
  .path-chooser-grid { grid-template-columns: 1fr; }
}
