/* Shared game materials across the entire application. */
:root{--camp-bg:#101f21;--camp-panel:#1d3130;--camp-raised:#263c36;--camp-ink:#f0e9d3;--camp-muted:#b1beb0;--camp-line:#53604b;--camp-gold:#d9bd78;--camp-button:#dac28c;--camp-shadow:#081716}
body{background:radial-gradient(ellipse at 10% 0,#35554a88,transparent 55%),radial-gradient(ellipse at 95% 70%,#35474166,transparent 45%),var(--camp-bg)!important;color:var(--camp-ink)!important;margin:0!important;color-scheme:dark}
.campaign{max-width:1260px;margin:0 auto;padding:22px 32px 16px;font:15px/1.5 system-ui,sans-serif;color:var(--camp-ink);min-height:100vh}.campaign *{box-sizing:border-box}.campaign button,.campaign input,.campaign select,.campaign textarea{font:inherit}.campaign button{cursor:pointer}.campaign button:disabled{cursor:default;opacity:.5}.campaign button:focus-visible,.campaign a:focus-visible,.campaign input:focus-visible,.campaign select:focus-visible,.campaign textarea:focus-visible{outline:2px solid var(--camp-gold);outline-offset:4px}.campaign button{border:1px solid var(--camp-line);background:var(--camp-raised);color:var(--camp-ink);border-radius:7px;padding:10px 16px;min-height:42px;transition:transform .16s,background .16s,box-shadow .16s}.campaign button:hover:not(:disabled){background:#344b3f;transform:translateY(-2px)}.campaign button:active:not(:disabled){transform:translateY(1px)}.campaign h1,.campaign h2,.campaign h3{color:var(--camp-ink);font-family:Georgia,serif;font-weight:400}.campaign h1{font-size:34px;line-height:1.18}.campaign h2{font-size:24px}.campaign h3{font-size:20px}.campaign p,.campaign small{color:var(--camp-muted)}.campaign strong{font-weight:550}.campaign [hidden]{display:none!important}.campaign label{color:var(--camp-muted)}
.campaign-hud{display:flex;align-items:center;gap:24px;padding-bottom:20px}.campaign .campaign-brand{display:flex;gap:13px;align-items:center;text-align:left;background:none;border:0;padding:0;margin-right:auto;box-shadow:none}.campaign-brand>span:first-child{font-size:40px;color:var(--camp-gold)}.campaign-brand>span:last-child{font:26px Georgia,serif}.campaign-brand small{display:block;font:9px system-ui,sans-serif;letter-spacing:2px;margin-top:7px;color:var(--camp-muted)}.campaign .campaign-player{display:flex;gap:12px;align-items:center;text-align:left;background:#21342e;border-color:#6e7653;min-width:215px;padding:7px 15px 7px 7px;box-shadow:0 4px 0 #0b1b16}.campaign-portrait{display:grid;place-items:center;width:48px;height:56px;background:#162824;border-radius:5px;overflow:hidden;color:var(--camp-gold);font-size:26px}.campaign-portrait img{width:100%;height:100%;object-fit:contain}.campaign-player>span:last-child{flex:1}.campaign-player strong{display:flex;justify-content:space-between;gap:18px;font-size:14px}.campaign-player small{font-size:10px}.campaign-xp{display:block;height:3px;margin:7px 0 1px;background:#5b6145}.campaign-xp>span{height:100%;display:block;background:var(--camp-gold)}.campaign-menu-toggle{font-size:20px!important;background:transparent!important}.campaign-nav{display:flex;justify-content:center;gap:8px;border-top:1px solid #475749;border-bottom:1px solid #475749;padding:10px 0}.campaign .campaign-nav button{border:0;background:none;min-width:115px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--camp-muted)}.campaign .campaign-nav button[aria-current]{color:var(--camp-gold);background:#d9bd7812;box-shadow:inset 0 -2px var(--camp-gold)}.campaign-path{display:flex;align-items:center;gap:8px;min-height:58px;font-size:12px;color:var(--camp-muted)}.campaign .campaign-path button{border:0;background:none;font-size:12px;padding:4px 0;color:var(--camp-gold);min-height:32px}.campaign-live-focus{margin-left:auto!important}.campaign-menu{padding:20px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:var(--camp-panel);border:1px solid var(--camp-line);margin-top:10px}.campaign-menu h2{font-size:18px;margin-right:10px}.campaign-menu p{width:100%;font-size:12px;margin:0}.campaign-menu button span:first-child{margin-right:8px}
#campaign-stage{outline:none;min-width:0}.campaign-world{min-height:400px;position:relative;isolation:isolate;overflow:hidden;border-radius:16px;border:1px solid #748263;background:#263f3a;box-shadow:0 10px 0 #0b1d19,0 20px 50px #0003}.campaign-landscape{position:absolute;inset:0;z-index:-2}.campaign-landscape>.generated-art{object-fit:cover!important;width:100%;height:100%;opacity:.9}.campaign-world-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b1e21f2,#10292688 60%,#12272322),linear-gradient(0deg,#102320c9,transparent 65%)}.campaign-unformed{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-left:40%;background:radial-gradient(ellipse at 75% 55%,#73918344,transparent 45%),linear-gradient(165deg,#38524d,#163333);text-align:center;color:#d9bd78}.campaign-unformed>span{font-size:56px}.campaign-unformed p{margin:8px}.campaign-unformed small{font-size:11px;max-width:220px}.campaign-world-label{padding:24px 30px;text-transform:uppercase;letter-spacing:1.8px;font-size:11px;color:#cecdb7}.campaign-next{max-width:550px;padding:15px 30px 40px}.campaign-next h1{font-size:42px;max-width:440px;margin:12px 0 14px}.campaign-next p{font-size:15px;max-width:340px;color:#c0cdbb}.campaign-kicker{font-size:10px;letter-spacing:2px;color:var(--camp-gold)}.campaign .campaign-primary,.campaign .primary,.campaign button.button:not(.secondary){background:var(--camp-button)!important;color:#22342b!important;border:1px solid #f0dda9!important;box-shadow:0 4px 0 #80673b!important;font-weight:600}.campaign .campaign-primary:hover,.campaign .primary:hover{background:#ead5a6!important}.campaign .campaign-world-link{position:absolute;right:22px;bottom:24px;background:#18342bd9;border-color:#97a88788;font-size:12px}.campaign-day{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;margin:32px 0}.campaign-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #4a5e48;padding-bottom:12px;margin-bottom:14px}.campaign-section-title h2{margin:0;font-size:22px}.campaign-section-title>span{font-size:12px;color:var(--camp-gold)}.campaign-intent{font-family:Georgia,serif;font-style:italic}.campaign-missions{list-style:none;padding:0;margin:0}.campaign-missions li{display:flex;gap:13px;align-items:center;border-bottom:1px solid #354b3e;padding:10px 0}.campaign-marker{color:var(--camp-gold)}.campaign .campaign-missions li button:first-of-type{flex:1;text-align:left;border:0;background:none;padding:4px 0}.campaign-missions strong,.campaign-missions small{display:block}.campaign-missions small{font-size:11px;margin-top:3px}.campaign .campaign-text{background:none;border:0;color:var(--camp-gold);padding:10px 0;font-size:12px}.campaign-memory-line{display:flex;gap:12px;font-size:14px}.campaign-memory-line>span:first-child{color:var(--camp-gold)}.campaign-memory-line small{display:block;font-size:11px}.campaign-dock{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px;padding-top:18px;border-top:1px solid #495b45}.campaign .campaign-dock button{display:flex;justify-content:center;gap:15px;align-items:center;text-align:left;padding:15px;background:#1b302c;border:1px solid #526045;box-shadow:0 4px 0 #0b1c18}.campaign-dock button[aria-current]{border-color:#d9bd78!important;box-shadow:0 4px 0 #8c713a!important;background:#374735!important}.dock-emblem{display:grid;place-items:center;color:var(--camp-gold);font:28px Georgia,serif;width:40px;height:40px;border:1px solid #82764d;border-radius:50%}.campaign-dock strong,.campaign-dock small{display:block}.campaign-dock strong{font:20px Georgia,serif}.campaign-dock small{font-size:11px;margin-top:4px}.campaign-status{display:flex;justify-content:space-between;margin:14px 0 0}.campaign .campaign-status button{padding:4px 0;font-size:11px;color:var(--camp-muted);background:none;border:0}
/* One shared canvas replaces pop-up minigames and administrative pages. */
.campaign-screen{padding:28px;background:var(--camp-panel);border:1px solid #677254;border-radius:12px;box-shadow:0 8px 0 #0a1b17;min-width:0}.campaign-screen-title{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--camp-line)}.campaign-screen-title small{letter-spacing:1.5px;font-size:11px;color:var(--camp-gold)}.campaign-screen-title h1{margin:8px 0}.campaign-panel-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding-top:20px;margin-top:20px;border-top:1px solid var(--camp-line)}
.campaign input:not([type=checkbox]):not([type=radio]),.campaign select,.campaign textarea{background:#132722!important;color:var(--camp-ink)!important;border:1px solid #63705a!important;border-radius:6px!important;padding:12px;max-width:100%;font-size:16px}.campaign input::placeholder,.campaign textarea::placeholder{color:#9dab9a}.campaign input[type=checkbox],.campaign input[type=radio]{accent-color:var(--camp-gold)}.campaign a{color:var(--camp-gold)}.campaign :is(.hint,.kicker,.j-eyebrow,.eyebrow,.text-button,.journal-link,.group-title,.fieldlabel){color:var(--camp-muted)!important}.campaign summary{color:var(--camp-muted);cursor:pointer;padding:9px 0}.campaign .text-button{background:none;border:0;color:var(--camp-gold)!important}.campaign :is(.j-project,.j-project-card,.j-horizon,.horizon-card,.memory,.event,.mission-row,.reference,.creation-job,.ai-panel,.ai-settings,.closed-note,.intent-banner,.empty,.j-empty,.project-parts,.cycle-summary,.world-status){background:var(--camp-raised)!important;color:var(--camp-ink)!important;border-color:var(--camp-line)!important;box-shadow:none}.campaign :is(.j-project-grid,.world-grid){gap:18px}.campaign .j-project{transition:transform .2s;box-shadow:0 5px 0 #0d231b!important}.campaign .j-project:hover{transform:translateY(-4px)}.campaign .j-project :is(h3,strong){color:var(--camp-ink)!important}.campaign .j-project :is(p,small){color:var(--camp-muted)!important}.campaign .j-cover{background:#344d3e!important;border-color:#72815c!important}.campaign :is(.j-areas,.j-section-heading){flex-wrap:wrap}.campaign .j-areas button.selected{background:#d5bd84!important;color:#20372c!important}.campaign .j-library-intro,.campaign .j-library-intro p{color:var(--camp-muted)}.campaign .meter{background:#45573f!important}.campaign .meter>span{background:#c8ad6f!important}
/* Existing minigame markup, unified palette and spacing. */
.campaign .campaign-screen:has(#quest-plan),.campaign .campaign-screen:has(#review-hub),.campaign .campaign-screen:has(#focus-sanctuary){padding:0;overflow:hidden}.campaign :is(#quest-plan,#focus-sanctuary,#review-hub){--paper:#1d3130;--ink:#f0e9d3;--quiet:#b1beb0;--text:#f0e9d3;--muted:#b1beb0;--sheet:#263c36;--edge:#53604b;--gold:#d9bd78;--button:#dac28c;--button-ink:#22342b;--cream:#263c36;--line:#53604b;color:var(--camp-ink)!important;background:var(--camp-panel)!important;border-radius:0!important}.campaign :is(#quest-plan,#focus-sanctuary,#review-hub) :is(h1,h2,h3,strong){color:var(--camp-ink)!important}.campaign :is(#quest-plan,#focus-sanctuary,#review-hub) :is(p,small,label,.message,.scene-caption,.clock-label){color:var(--camp-muted)!important}.campaign :is(#quest-plan,#focus-sanctuary,#review-hub)>header{background:#182b26!important;border-bottom:1px solid var(--camp-line);padding:15px 24px!important;color:var(--camp-gold)!important}.campaign :is(#quest-plan,#focus-sanctuary,#review-hub)>header>.brand,.campaign #review-hub>header>span,.campaign #focus-sanctuary>header>.brand{display:none}.campaign #quest-plan main{background:transparent!important}.campaign #quest-plan .energy-board{background:#24392c!important;box-shadow:inset 0 0 0 6px #546047,0 5px 0 #0b2119;border-color:#71815b}.campaign #quest-plan .energy-zone{background:#304630!important;border-color:#637551}.campaign #quest-plan .piece-pick{background:#3b4d38!important;color:#eee6cc!important;border:1px solid #819367!important;box-shadow:0 4px 0 #162d21!important}.campaign #quest-plan .piece-caption strong,.campaign #quest-plan .piece-caption small{color:#eee6cc!important}.campaign #quest-plan .task-line:has(input:checked){background:#40513a!important}.campaign #quest-plan .project-summary{background:#294133!important;border-color:#738461!important}.campaign #quest-plan .project-summary[aria-pressed=true]{background:#475439!important;box-shadow:inset 4px 0 #d9bd78,0 5px 0 #152b1f!important}.campaign #quest-plan .new-plan-form{background:#24392e!important}.campaign #quest-plan .destination-picker{background:#283e2e!important;color:var(--camp-ink)!important}.campaign #focus-sanctuary .focus-main{background:transparent!important;min-height:0!important}.campaign #focus-sanctuary :is(.setup-project,.capture,.result-options button,.ordered-focus li){background:#263d33!important;border-color:#667654!important;color:var(--camp-ink)!important}.campaign #focus-sanctuary .clock{color:var(--camp-ink)!important;text-shadow:none}.campaign #focus-sanctuary .check-box{color:var(--camp-gold)}.campaign #focus-sanctuary .task-toggle[aria-pressed=true]{background:#3d5037!important}.campaign #review-hub .review-arrival{background:radial-gradient(ellipse at 8% 40%,#d3a94e19,transparent 65%),#23372d!important}.campaign #review-hub .review-trophy{background:#2c4132!important;border-color:#637151!important;box-shadow:0 4px 0 #12271b!important}.campaign #review-hub .review-trophy.highlighted{border-color:#d9bd78!important;box-shadow:0 4px 0 #8d7742!important}.campaign #review-hub .review-notice{background:#3c5035!important}.campaign #review-hub :is(.review-content>section,.review-pending){border-color:var(--camp-line)}.campaign #review-hub button{background:#293d2f;color:var(--camp-ink);border-color:#657452}.campaign #review-hub button[aria-pressed=true]{background:#d7c08b;color:#273a28}.campaign #review-hub .review-star{color:#e1c078!important;background:none!important}.campaign #review-hub .review-pending .overdue{color:#e5ad84!important}.campaign #review-hub .review-moods button[aria-pressed=true]{color:#203728!important}.campaign #review-hub footer{background:#182e25}.campaign-concentrating .campaign-nav,.campaign-concentrating .campaign-path,.campaign-concentrating .campaign-status{opacity:.55}.campaign-concentrating .campaign-nav:hover{opacity:1}
/* Utility dialogs use the same materials, with native modal behavior intact. */
#modal{background:#20382e;color:#eee5cb;border:1px solid #9a9566;border-radius:12px;box-shadow:0 12px 60px #0007}#modal :is(h1,h2,h3,p,label){color:#eee5cb}#modal :is(input,select,textarea){background:#132b21;color:#eee5cb;border-color:#667751}#modal button{background:#d7c08b;color:#233626;border-color:#e6d3a7}#modal::backdrop{background:#071a16bb;backdrop-filter:blur(4px)}
.campaign-enter{animation:campaign-enter .3s ease-out}@keyframes campaign-enter{from{opacity:.55;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:760px){.campaign{padding:14px 16px}.campaign-hud{gap:12px;padding-bottom:15px}.campaign-brand>span:last-child{font-size:20px}.campaign-brand small{display:none}.campaign-brand>span:first-child{font-size:30px}.campaign .campaign-player{min-width:0;width:150px;padding:5px;gap:6px}.campaign-player strong{gap:5px;font-size:12px}.campaign-portrait{width:32px;height:43px}.campaign .campaign-menu-toggle{padding:7px}.campaign-nav{gap:0;justify-content:space-between}.campaign .campaign-nav button{min-width:0;padding:8px 5px;font-size:11px;flex-direction:column;gap:2px}.campaign-nav button>span:first-child{font-size:19px}.campaign-world{min-height:375px}.campaign-world-label{padding:20px}.campaign-next{padding:12px 20px 65px}.campaign-next h1{font-size:34px;max-width:340px}.campaign-unformed{padding-left:10%;opacity:.6}.campaign-unformed p,.campaign-unformed small{display:none}.campaign-world-link{bottom:14px!important;right:15px!important}.campaign-day{grid-template-columns:1fr;gap:18px}.campaign-screen{padding:20px 16px}.campaign-dock{gap:7px}.campaign .campaign-dock button{flex-direction:column;gap:8px;padding:12px 4px;text-align:center}.campaign-dock strong{font-size:17px}.campaign-dock small{display:none}.dock-emblem{width:32px;height:32px;font-size:23px}.campaign-path{font-size:11px;flex-wrap:wrap;min-height:50px}.campaign h1{font-size:29px}.campaign #quest-plan .steps{font-size:11px}.campaign .review-arrival{gap:15px}.campaign #focus-sanctuary .clock{font-size:68px}.campaign .j-project-grid{grid-template-columns:1fr!important}.campaign .j-areas{gap:6px}.campaign .j-areas button{font-size:11px;padding:8px}.campaign .campaign-panel-footer>*{max-width:100%}.campaign .campaign-player small{font-size:9px}}
@media(max-width:380px){.campaign{padding:10px}.campaign .campaign-player{width:135px}.campaign-brand>span:last-child{font-size:17px}.campaign-brand>span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){.campaign-enter{animation:none}.campaign *{transition:none!important;animation:none!important}}
/* Character, project journal, horizons and connection screens share the same surfaces. */
.campaign :is(.domain-results>div,.j-paper,.j-note,.j-mission,.connection-choice,.connection-result,.world-buildings article,.scene-history button,.j-detail-intro,.creation-empty){background:var(--camp-raised)!important;color:var(--camp-ink)!important;border-color:var(--camp-line)!important}
.campaign .j-cover-placeholder{background:linear-gradient(135deg,#344e40,#20372f)!important;color:var(--camp-gold)!important}.campaign .j-cover-placeholder small{color:var(--camp-muted)!important}.campaign .j-phase,.campaign .j-detail-meta span{background:#152b23!important;color:#e2cca0!important;border-color:#657557!important}
.campaign .domain-results strong,.campaign .domain-results span,.campaign .connection-result strong{color:var(--camp-ink)!important}.campaign .domain-results small,.campaign .connection-choice p,.campaign .connection-result p{color:var(--camp-muted)!important}
.campaign-screen[data-screen=world] details{background:var(--camp-panel)!important;color:var(--camp-ink)!important;border-color:var(--camp-line)!important}
.campaign-dock{margin:0 0 24px;padding:0 0 16px;border-top:0;border-bottom:1px solid #495b45}.campaign .campaign-dock button{padding:10px 15px}.campaign-concentrating .campaign-dock{opacity:.55}.campaign-concentrating .campaign-dock:hover{opacity:1}
.campaign-unformed p,.campaign-unformed small{color:#d3ddc6}
.campaign #quest-plan .day-choice small,.campaign #quest-plan .day-choice strong,.campaign :is(.primary,.campaign-primary) :is(small,strong){color:#22342b!important}
.campaign #quest-plan .day-options button small{color:#344532!important}
