/* Fablekin's field-console palette: sea glass, night ink and sunstone.
   Pixel lettering belongs to titles; rules and small values stay in DM Sans. */
body.game-mode{
 --kin-night:#222338;--kin-deep:#141b2c;--kin-slate:#34344c;
 --kin-sea:#64dbc9;--kin-rail:#a6fff0;--kin-gold:#ffcc78;
 --kin-paper:#fff4d9;--kin-muted:#d5deed;
}
body.game-mode .game-window{
 background:repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 4px),var(--kin-night);
 border:2px solid var(--kin-sea);border-radius:2px;
 box-shadow:inset 0 0 0 2px #111c31,0 0 0 2px #173d48,0 0 0 4px #439d9c,0 8px 0 #101a2dcc,0 20px 55px #06121c80;
}
body.game-mode .game-window__heading{
 background:linear-gradient(122deg,#215364 0 28%,#24384f 28% 73%,#32334b 73%);
 border-bottom:3px double #71caba;
 box-shadow:inset 0 2px #b3ffed30;
}
body.game-mode .game-window__heading h1{
 font-family:Pixelify,monospace;font-size:clamp(25px,2.6vw,36px);font-weight:700;
 line-height:1.1;letter-spacing:.4px;text-shadow:2px 2px #111d32;color:#fff8e7;
}
body.game-mode .game-window__heading p{color:#e0e9f2}
body.game-mode .game-window__body{scrollbar-color:#66c8bc #24283c}
body.game-mode :is(.game-window__close.icon-button,.game-window__menu){
 border-radius:1px;border:2px solid #91dacc;background:#233c51;
 box-shadow:inset 0 2px #e2ffed29,inset 0 -3px #101d34,2px 2px #142137;
}
body.game-mode .modal{
 border:2px solid #70caba;border-radius:2px;
 box-shadow:inset 0 0 0 2px #112737,0 0 0 2px #26364a,0 0 0 4px #478b8e,0 18px 60px #05131c99;
}
body.game-mode .modal:not(:has(.research-intro)),body.game-mode .modal:not(:has(.research-intro)) .modal-heading{background:#252b40}
body.game-mode .modal-heading{border-bottom:2px solid #6b9eaa}
body.game-mode .modal-heading h2{font-family:Pixelify,monospace;font-size:29px;letter-spacing:.3px;text-shadow:2px 2px #141d2c}
body.game-mode .modal-heading .icon-button{border-radius:1px;border-color:#8bd8ca;background:#243f52;box-shadow:inset 0 -3px #13263b}
body.game-mode .pause-menu{background:#252b40}
body.game-mode .pause-menu__group{border-color:#678e99}
body.game-mode .pause-menu__group>button{border-radius:1px}
body.game-mode .pause-menu__group>button>span{font-family:Pixelify,monospace;font-size:23px}
body.game-mode .pause-menu__group .pause-menu__resume{background:linear-gradient(135deg,#ffe8ac,#ffc66a);border:2px solid #ffe6aa;box-shadow:inset 0 -3px #c4904e}
body.game-mode .button{border-radius:2px;box-shadow:inset 0 2px #ffffff16,inset 0 -3px #101c3029}
body.game-mode .button.primary{background:linear-gradient(135deg,#ffe6a4,#ffc46b);border-color:#fff0bb;box-shadow:inset 0 2px #fff9dc,inset 0 -3px #c58d48,0 3px #393547}
body.game-mode .button.primary:hover:not(:disabled){background:#ffdf9b;box-shadow:inset 0 2px #fff8df,inset 0 -3px #c58d48,0 3px #393547}
body.game-mode .button.subtle{background:linear-gradient(130deg,#284b60,#2b354f);border-color:#87c4c4;color:#f4f5ee}
body.game-mode :is(.game-hud button,.game-hud__place){
 background:linear-gradient(135deg,#23475b,#252b42);border-color:#7bd4c8;border-radius:1px;
 box-shadow:inset 0 2px #d1ffef21,inset 0 -3px #15243a,0 2px #0f2333;
}
body.game-mode .game-hud .game-menu-button{background:linear-gradient(135deg,#ffe6a4,#ffc46b);border-color:#fff0bc;box-shadow:inset 0 2px #fff5cf,inset 0 -3px #b48147;color:#263347}
body.game-mode :is(button,input,select,summary):focus-visible{outline-color:#ffe09a;box-shadow:0 0 0 5px #17283f}

/* Camp dialogue and commands use the same language as the battle console. */
body.game-mode .camp-sign{font-family:Pixelify,monospace;letter-spacing:1px;background:#263548ed;border:2px solid #75c9ba;border-radius:1px;box-shadow:inset 0 0 0 2px #172639,0 3px #122638;color:#fff0cd}
body.game-mode .camp-sign>span{color:#ffce78}
body.game-mode .camp-dialogue{
 background:linear-gradient(135deg,#343047,#282b40);border:2px solid #70d5c1;border-radius:1px;
 box-shadow:inset 0 0 0 3px #1a2739,inset 0 0 0 5px #628d94,0 0 0 2px #15383d,0 6px #112236a6;
 color:#fff4dc;
}
body.game-mode .camp-dialogue p{font-family:Pixelify,monospace;font-size:clamp(26px,2.5vw,35px);font-weight:600;line-height:1.15;letter-spacing:.1px;color:#fff8e9;text-shadow:2px 2px #1c2035}
body.game-mode .dialogue-speaker{background:#30384e;color:#ffe0a0;letter-spacing:.6px}
body.game-mode .dialogue-subtext{color:#e0e4ee}
body.game-mode .camp-commands{
 background:#252b40;border:2px solid #76d6c3;border-radius:1px;
 box-shadow:inset 0 0 0 3px #15283c,0 0 0 2px #193641,0 6px #101c30aa;
 color:#fff3d5;
}
body.game-mode .camp-commands button{
 border-radius:1px;border:1px solid #7bb6be;background:linear-gradient(125deg,#2e5065,#30354c);
 box-shadow:inset 0 2px #c7fff622,inset 0 -3px #142a40;color:#fff2d6;
 font-family:Pixelify,monospace;font-size:22px;letter-spacing:.2px;
}
body.game-mode .camp-commands button:first-child{background:linear-gradient(120deg,#ffe7a8,#ffc774);border-color:#fff1c2;box-shadow:inset 0 2px #fff8dc,inset 0 -3px #bf8e4f;color:#263347}
body.game-mode .camp-commands .camp-primary strong{font-family:Pixelify,monospace;font-size:25px;line-height:1.1}
body.game-mode .camp-commands button small{font:500 13px/1.4 var(--body);letter-spacing:0;color:#354354}
body.game-mode .camp-more{border-color:#698b99}
body.game-mode .camp-more>summary{color:#ebddbb;font-family:var(--body)}
body.game-mode .camp-more__options{background:#222e42;border:1px solid #79b7b7;border-radius:1px}
body.game-mode .camp-companion__name{background:#253248f0;border-color:#8fc7bc;border-radius:1px;color:#fff3d7;box-shadow:inset 0 -2px #121d30}
body.game-mode .camp-companion__name small{color:#d0e0ea}

/* Preserve the quiet decision hierarchy; give the next destination a frame. */
body.game-mode .adventure-options>button{border-radius:1px;border-color:#6ca8ad;background:linear-gradient(130deg,#26485c,#282c44);box-shadow:inset 0 2px #b7ffec15,inset 0 -4px #152339}
body.game-mode .adventure-options>button>strong{font-family:Pixelify,monospace;font-size:26px;line-height:1.15;color:#fff5df}
body.game-mode .adventure-options>.adventure-recommended{border-color:#ffdf96;box-shadow:inset 3px 0 #ffcd78,inset 0 -4px #152339}
body.game-mode .habitat-console__list{background:#222c42}
body.game-mode .habitat-console__list .habitat-option{border-radius:1px;background:linear-gradient(120deg,#2a4156,#292e44);border-color:#729b9e}
body.game-mode .habitat-console__list .habitat-option.active{border-color:#ffda91;box-shadow:inset 4px 0 #ffcf7d;background:linear-gradient(120deg,#3c4c61,#33334b)}
body.game-mode .habitat-console__list .habitat-option>strong{font-family:Pixelify,monospace;font-size:23px;line-height:1.2}
body.game-mode .habitat-console__preview h2{font-family:Pixelify,monospace;font-size:32px;line-height:1.1}
body.game-mode .game-loot .loot-choice.run-reward{border-radius:1px;border-color:#80b5b3;box-shadow:inset 0 2px #ffffff12,inset 0 -3px #152338}
body.game-mode .game-loot .loot-choice__text strong{font-family:Pixelify,monospace;font-size:25px;line-height:1.15;letter-spacing:.15px}
body.game-mode .game-loot .loot-choice .loot-pointer{color:#ffdb8e}

@media(max-width:700px){
 body.game-mode .game-window__heading h1{font-size:27px}
 body.game-mode .modal-heading h2{font-size:27px}
 body.game-mode .camp-dialogue p{font-size:25px;line-height:1.1}
 body.game-mode .camp-commands button{font-size:20px}
 body.game-mode .camp-commands .camp-primary strong{font-size:22px}
 body.game-mode .camp-commands button small{font-size:12px}
 body.game-mode .adventure-options>button>strong{font-size:24px}
 body.game-mode .game-loot .loot-choice__text strong{font-size:23px}
}
@media(max-height:500px){
 body.game-mode .game-window__heading h1{font-size:25px}
 body.game-mode .camp-dialogue p{font-size:23px}
 body.game-mode .camp-commands button{font-size:20px}
 body.game-mode .camp-commands .camp-primary strong{font-size:22px}
 body.game-mode .game-loot .loot-choice__text strong{font-size:23px}
}
@media(prefers-reduced-motion:reduce){body.game-mode .button{transition:none}}

/* Dialogue headers take a real row. Discoveries never sit over the goal. */
body.game-mode .camp-dialogue,
body.game-mode .camp-dialogue:has(+.camp-commands .camp-primary){
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;
 height:auto;min-height:var(--game-dock-height);padding:16px 20px;gap:8px 12px;
}
body.game-mode .camp-dialogue .dialogue-speaker{position:static;grid-column:1;grid-row:1;align-self:center;background:none}
body.game-mode .camp-dialogue .camp-discoveries{position:static;grid-column:2;grid-row:1;min-height:44px;padding:8px 10px;border-radius:1px;font:600 12px/1.3 var(--body);background:#2b465a;border-color:#89cabf;color:#ffe1a4}
body.game-mode .camp-dialogue p,body.game-mode .camp-dialogue .dialogue-subtext{grid-column:1/-1}
body.game-mode .camp-commands button:not(.camp-primary){font:700 14px/1.3 var(--body);letter-spacing:0}
@media(max-width:700px) and (min-height:501px){
 body.game-mode .camp-dialogue,
 body.game-mode .camp-dialogue:has(+.camp-commands .camp-primary){min-height:0;padding:12px 16px;gap:7px 10px}
 body.game-mode .camp-dialogue p{font:600 24px/1.1 Pixelify,monospace}
 body.game-mode .camp-dialogue .dialogue-subtext{font:400 13px/1.45 var(--body)}
}
@media(max-width:700px) and (min-height:501px) and (max-height:700px){
 body.game-mode .camp-dialogue p{font-size:20px;line-height:1.1}
 body.game-mode .camp-dialogue .dialogue-subtext{font-size:12px;line-height:1.45}
 body.game-mode .camp-dialogue .camp-discoveries{font-size:11px;padding:6px 8px}
 body.game-mode .camp-sign{display:none}
 body.game-mode .camp-companions{top:78px;bottom:auto;height:clamp(60px,calc(100dvh - 510px),130px);min-height:0;transform:none}
 body.game-mode .camp-companions .camp-companion{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:flex-end}
 body.game-mode .camp-companions .camp-companion .sprite{width:76px;height:calc(100% - 20px);min-height:0;max-height:100px}
 body.game-mode .camp-companions .camp-ground{display:none}
 body.game-mode .camp-companion__name{flex:none;font-size:12px;line-height:1.1}
}
@media(max-height:500px) and (min-width:701px){
 body.game-mode .camp-dialogue,
 body.game-mode .camp-dialogue:has(+.camp-commands .camp-primary){min-height:164px;padding:12px 16px;gap:7px 10px}
 body.game-mode .camp-dialogue p{font-size:22px;line-height:1.1}
 body.game-mode .camp-companions{top:78px;bottom:222px;min-height:0;transform:none}
 body.game-mode .camp-companions .camp-companion{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:flex-end}
 body.game-mode .camp-companions .camp-companion .sprite{width:90px;height:calc(100% - 20px);min-height:0;max-height:100px}
 body.game-mode .camp-companions .camp-ground{display:none}
}
