.camp-page { --forest:#294c3f; --camp-lime:#d4ef70; --camp-muted:#687268; --camp-rule:#d8dccd; }
.camp-page button { font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
.camp-page button:focus-visible,.camp-page input:focus-visible { outline:3px solid var(--coral); outline-offset:3px; }
.camp-page [hidden] { display:none!important; }
.camp-header,.camp-main,.camp-footer { width:min(1160px,calc(100% - 72px)); margin-inline:auto; }
.camp-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px 0; border-bottom:1px solid var(--camp-rule); }
.camp-header nav,.camp-footer nav { display:flex; gap:26px; }
.camp-header nav a,.camp-footer nav a { padding:12px 0; font-size:13px; font-weight:700; text-decoration:none; }
.camp-header nav a:hover,.camp-footer nav a:hover { text-decoration:underline; }
.camp-main { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.4fr); align-items:start; column-gap:72px; padding-top:44px; }
.camp-intro { padding-top:22px; }
.camp-eyebrow { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:750; letter-spacing:.02em; margin-bottom:22px; }
.camp-eyebrow>span { width:6px; height:6px; border-radius:50%; background:var(--coral); }
.camp-intro h1 { font-size:clamp(44px,5.4vw,66px); line-height:1; letter-spacing:-.07em; white-space:nowrap; }
.camp-title-dot { color:var(--coral); }
.camp-hook { font-family:var(--round); font-weight:700; font-size:clamp(24px,3vw,35px); line-height:1.2; letter-spacing:-.045em; margin-top:26px; }
.camp-description { max-width:25em; font-size:15px; line-height:1.8; color:var(--camp-muted); margin-top:18px; }
.camp-field-notes { margin-top:56px; }
.camp-small-label { font-size:9px; letter-spacing:.13em; font-weight:800; }
.camp-field-notes>p:nth-child(2) { margin-top:16px; font-size:13px; line-height:1.9; color:var(--camp-muted); }
.camp-field-notes strong { color:var(--ink); font-weight:650; }
.camp-note-rule { width:38px; height:2px; background:var(--coral); margin-block:23px; }
.camp-field-notes>p:last-child { line-height:1.8; max-width:27em; color:var(--camp-muted); }
.camp-game { background:#fffdf7; border:1px solid var(--camp-rule); border-radius:20px; overflow:hidden; box-shadow:0 12px 44px -32px #1f2b2966; scroll-margin-top:16px; }
.camp-invitation { padding:12px 18px; background:#edf4cf; font-size:12px; font-weight:650; line-height:1.5; }
.camp-topline { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:15px 20px 12px; }
.camp-topline>div:first-child { display:flex; gap:12px; align-items:center; }
.camp-day { font-family:var(--round); font-size:13px; font-weight:850; letter-spacing:.02em; white-space:nowrap; }
.camp-day>span { color:#8c9588; font-weight:600; }
.camp-phase { font-size:11px; color:var(--camp-muted); }
.camp-clock { display:flex; gap:2px; align-items:baseline; font-size:22px; font-family:var(--round); font-weight:750; font-variant-numeric:tabular-nums; }
.camp-seconds { font-size:12px; font-weight:600; color:var(--camp-muted); }
.camp-icon-button { display:grid; place-items:center; padding:0; margin:-8px -9px -8px 7px; width:44px; height:44px; border:none; background:transparent; color:var(--forest); }
.camp-icon-button:disabled { opacity:.35; cursor:default; }
.camp-resources { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid #e9ebdf; padding:12px 20px; }
.camp-resources>div { display:flex; align-items:center; gap:8px; border-right:1px solid #e5e7dc; padding-left:12px; }
.camp-resources>div:first-child { padding-left:0; }
.camp-resources>div:last-child { border:none; text-align:right; justify-content:flex-end; }
.camp-resources svg { width:21px; height:24px; stroke:var(--forest); stroke-width:1.65; fill:none; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.camp-resources strong { font-family:var(--round); font-size:18px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
.camp-resources small { display:block; margin-top:3px; color:var(--camp-muted); font-size:9px; }
.camp-best strong { color:var(--forest); }
.camp-scene { position:relative; background:#d4dcc0; overflow:hidden; }
#camp-canvas { display:block; width:100%; height:auto; aspect-ratio:3/2; }
.camp-scene-caption { position:absolute; bottom:13px; inset-inline:16px; display:flex; justify-content:space-between; gap:12px; color:#f9ffed; font-size:8px; letter-spacing:.15em; font-weight:750; opacity:.8; pointer-events:none; text-shadow:0 1px 4px #14362baa; }
.camp-overlay { position:absolute; inset:0; display:grid; place-items:center; padding:18px; background:#142c2528; }
.camp-overlay-card { width:min(305px,100%); text-align:center; background:#fffdf8f5; padding:24px; border-radius:14px; box-shadow:0 6px 30px #16302728; }
.camp-overlay .camp-small-label { color:var(--forest); font-size:8px; }
.camp-overlay h2 { font-size:29px; line-height:1.1; letter-spacing:-.05em; margin-top:12px; }
.camp-overlay p:not(.camp-small-label) { font-size:11px; line-height:1.65; color:var(--camp-muted); margin-top:12px; }
.camp-primary,.camp-secondary { display:flex; align-items:center; justify-content:center; gap:15px; min-height:48px; border-radius:9px; border:1px solid transparent; padding:12px 16px; font-size:12px!important; font-weight:750!important; }
.camp-primary { color:#fffdf5; background:var(--forest); }
.camp-primary:hover { background:#1e3f32; }
.camp-primary span { font-size:18px; }
.camp-secondary { color:var(--forest); background:#f5f6eb; border-color:#d8decd; }
.camp-secondary:hover { background:#ebefda; }
.camp-overlay .camp-primary { width:100%; margin-top:18px; }
.camp-text-button { color:var(--camp-muted); min-height:44px; background:transparent; border:none; text-decoration:underline; font-size:11px!important; }
.camp-vitals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding:15px 20px 13px; border-bottom:1px solid #e9ebdf; }
.camp-vitals>div>div { display:flex; justify-content:space-between; gap:8px; font-size:10px; margin-bottom:7px; }
.camp-vitals strong { font-size:10px; font-weight:750; font-variant-numeric:tabular-nums; }
.camp-page progress { display:block; width:100%; height:4px; border:none; border-radius:4px; appearance:none; -webkit-appearance:none; background:#e8ebdc; color:var(--forest); }
.camp-page progress::-webkit-progress-bar { background:#e8ebdc; border-radius:4px; }
.camp-page progress::-webkit-progress-value { background:var(--forest); border-radius:4px; }
.camp-page progress::-moz-progress-bar { background:var(--forest); border-radius:4px; }
#camp-fire-bar::-webkit-progress-value { background:#ed8b42; }
#camp-fire-bar::-moz-progress-bar { background:#ed8b42; }
.camp-work { padding:13px 20px 0; }
.camp-work>div { display:flex; justify-content:space-between; font-size:10px; font-weight:600; gap:8px; margin-bottom:7px; }
.camp-work progress { height:2px; }
.camp-jobs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; padding:12px 16px 0; }
.camp-jobs button { position:relative; border:1px solid #d9dfce; border-radius:9px; background:#f5f6ed; padding:11px 8px; min-height:61px; text-align:left; color:var(--forest); }
.camp-jobs button:hover:not(:disabled) { border-color:var(--forest); background:#eef2df; }
.camp-jobs button[aria-pressed="true"] { background:var(--camp-lime); border-color:#99b35b; box-shadow:inset 0 0 0 1px #99b35b; }
.camp-jobs button:disabled { opacity:.43; cursor:default; }
.camp-jobs strong { display:block; font-size:11px; font-weight:750; margin-right:10px; }
.camp-jobs small { display:block; font-size:8px; margin-top:6px; white-space:nowrap; }
.camp-job-number { position:absolute; top:10px; right:8px; font-size:8px; opacity:.5; }
.camp-jobs .camp-defend { background:#f9e4d8; color:#873923; border-color:#edd1bf; }
.camp-jobs .camp-defend[aria-pressed="true"] { color:#fff; background:#d85b3e; border-color:#b7432c; box-shadow:inset 0 0 0 1px #b7432c; }
.camp-event { font-size:10px; color:var(--camp-muted); line-height:1.55; min-height:46px; padding:11px 18px 6px; }
.camp-controls-note { font-size:9px; color:var(--camp-muted); line-height:1.65; text-align:center; padding:12px 16px 16px; border-top:1px solid #e9ebdf; }
.camp-result { padding:22px 22px 24px; }
.camp-result h2 { font-size:31px; line-height:1.1; letter-spacing:-.05em; margin-top:9px; }
.camp-result-score { display:flex; align-items:baseline; gap:10px; margin-top:14px; }
.camp-result-score strong { font-family:var(--round); font-size:52px; font-weight:850; letter-spacing:-.06em; line-height:1.1; }
.camp-result-score span { font-size:11px; color:var(--camp-muted); }
#camp-result-detail,.camp-target-result { margin-top:12px; font-size:12px; color:var(--camp-muted); }
.camp-target-result { color:var(--forest); font-weight:700; }
.camp-result-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:21px; }
.camp-result-actions>.camp-primary { grid-column:1/-1; }
.camp-result-note { color:var(--camp-muted); font-size:10px; line-height:1.7; margin-top:16px; }
.camp-share-status { font-size:11px; color:var(--forest); margin-top:10px; }
.camp-link-input { width:100%; min-width:0; min-height:44px; padding:8px; background:#f5f6eb; color:var(--forest); border:1px solid var(--camp-rule); border-radius:6px; font:11px system-ui,sans-serif; margin-top:8px; }
.camp-guide { grid-column:1/-1; display:grid; grid-template-columns:1fr 1.5fr; gap:90px; padding:64px 0; margin-top:46px; border-top:1px solid var(--camp-rule); }
.camp-guide h2 { font-size:36px; line-height:1.1; letter-spacing:-.05em; margin-top:19px; }
.camp-guide ol { list-style:none; padding:0; margin:0; display:grid; gap:25px; }
.camp-guide li { display:flex; gap:24px; }
.camp-guide li>span { font-size:12px; font-weight:650; color:#8c9786; padding-top:2px; }
.camp-guide h3 { font-size:17px; letter-spacing:-.02em; line-height:1.4; }
.camp-guide li p { margin-top:7px; font-size:13px; color:var(--camp-muted); }
.camp-footer { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:28px 0; border-top:1px solid var(--camp-rule); }
.camp-footer .brand { font-size:22px; }
.camp-footer>p { font-size:11px; color:var(--camp-muted); }
.camp-noscript { padding:16px; background:#fae4d3; font-size:14px; }
@media(max-width:950px){.camp-main{column-gap:36px;grid-template-columns:minmax(0,.72fr) minmax(0,1.4fr)}.camp-header,.camp-main,.camp-footer{width:calc(100% - 48px)}.camp-intro h1{font-size:47px}.camp-description{font-size:13px}.camp-field-notes{margin-top:36px}.camp-topline{padding-inline:16px}.camp-phase{font-size:10px}.camp-resources{padding-inline:16px}.camp-resources>div{gap:5px;padding-left:8px}.camp-jobs strong{font-size:10px}.camp-jobs small{font-size:7px}.camp-overlay-card{padding:21px}.camp-overlay h2{font-size:26px}.camp-guide{gap:48px}.camp-footer>p{display:none}}
@media(max-width:700px){.camp-header,.camp-main,.camp-footer{width:calc(100% - 28px)}.camp-header{padding:15px 2px;gap:12px}.camp-header .brand{font-size:23px;gap:4px}.camp-header .pip-art{width:29px;height:29px}.camp-header nav{gap:18px}.camp-header nav a{font-size:11px}.camp-main{display:block;padding-top:23px}.camp-intro{padding:0 3px 23px}.camp-eyebrow{font-size:10px;margin-bottom:12px}.camp-intro h1{font-size:46px;letter-spacing:-.06em}.camp-hook{font-size:17px;margin-top:10px;letter-spacing:-.02em;line-height:1.35}.camp-hook br{display:none}.camp-hook br::after{content:' '}.camp-description,.camp-field-notes{display:none}.camp-game{border-radius:15px}.camp-topline{padding:13px 14px 11px}.camp-topline>div:first-child{gap:10px}.camp-day{font-size:12px}.camp-clock{font-size:20px}.camp-resources{padding:11px 14px}.camp-resources strong{font-size:16px}.camp-resources svg{width:18px;height:20px}.camp-resources small{font-size:8px}.camp-scene-caption{font-size:7px;inset-inline:12px;bottom:10px}.camp-overlay{padding:10px}.camp-overlay-card{width:min(245px,100%);padding:15px 20px;border-radius:10px}.camp-overlay .camp-small-label{font-size:7px}.camp-overlay h2{font-size:24px;margin-top:8px}.camp-overlay p:not(.camp-small-label){font-size:10px;margin-top:8px}.camp-overlay .camp-primary{min-height:44px;margin-top:12px;padding:9px 12px}.camp-vitals{padding:12px 14px;gap:15px}.camp-vitals>div>div{font-size:9px}.camp-vitals strong{font-size:9px}.camp-work{padding:12px 14px 0}.camp-work>div{font-size:9px}.camp-jobs{gap:6px;padding:10px 10px 0}.camp-jobs button{min-height:60px;padding:11px 7px}.camp-jobs strong{font-size:10px;margin-right:3px}.camp-jobs small{font-size:7px}.camp-job-number{display:none}.camp-event{padding:10px 14px 6px;min-height:46px;font-size:9px}.camp-controls-note{font-size:8px;padding:10px 12px 12px}.camp-guide{display:block;margin-top:30px;padding:35px 4px}.camp-guide h2{font-size:30px}.camp-guide h2 br{display:none}.camp-guide ol{margin-top:28px;gap:23px}.camp-guide li{gap:16px}.camp-guide h3{font-size:16px}.camp-guide li p{font-size:12px}.camp-footer{padding:22px 3px;gap:14px}.camp-footer nav{gap:17px}.camp-footer nav a{font-size:11px}.camp-footer .brand{font-size:20px}.camp-result{padding:20px 16px}.camp-result h2{font-size:27px}.camp-result-score strong{font-size:46px}.camp-secondary{font-size:10px!important;padding-inline:9px}}
@media(max-width:350px){.camp-header nav{gap:12px}.camp-header .brand{font-size:21px}.camp-intro h1{font-size:42px}.camp-topline>div:first-child{gap:8px}.camp-phase{font-size:9px}.camp-overlay-card{padding:12px 16px;width:225px}.camp-overlay h2{font-size:22px}.camp-overlay p:not(.camp-small-label){font-size:9px}.camp-overlay .camp-primary{margin-top:9px}.camp-resources>div{gap:4px;padding-left:6px}.camp-resources svg{width:15px}.camp-resources strong{font-size:15px}.camp-jobs strong{font-size:9px}.camp-jobs small{font-size:6.7px}.camp-vitals{gap:11px}.camp-vitals>div>div{font-size:8px}}
@media(prefers-reduced-motion:reduce){.camp-page *{scroll-behavior:auto!important}}

@media(max-width:350px){.camp-overlay.is-paused .camp-overlay-card{padding:10px 16px}.camp-overlay.is-paused h2{margin-top:6px}.camp-overlay.is-paused p:not(.camp-small-label){margin-top:6px}.camp-overlay.is-paused .camp-primary{margin-top:8px}.camp-overlay.is-paused .camp-text-button{min-height:44px}}
