/* Skarades Trail — frontier palette over the site's dark shell. */
:root{
  --bg:#0d0a07;
  --panel:#1a1410;
  --panel-2:#221a13;
  --ink:#f6ecdb;
  --muted:#b09b80;
  --tan:#e0b872;
  --amber:#ff9f43;
  --rust:#c05a3a;
  --green:#7fbf6a;
  --line:rgba(224,184,114,.26);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 0,#33251a 0,#0d0a07 64%);color:var(--ink);font-family:"Space Grotesk",sans-serif;overscroll-behavior:none}
body{min-height:100dvh;padding:9px 10px max(12px,env(safe-area-inset-bottom));touch-action:manipulation}
button,a{font:inherit}
.hidden{display:none!important}
.wrap{width:min(100%,600px);margin:auto}

.top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.top-actions{display:flex;gap:5px}
.back,.round{border:1px solid var(--line);border-radius:999px;background:rgba(26,20,16,.9);color:var(--tan);padding:8px 12px;text-decoration:none;font-weight:800}
.round{display:grid;place-items:center;min-width:39px;height:39px;padding:0 10px;cursor:pointer}
.back:focus-visible,.round:focus-visible,.btn:focus-visible,.choice:focus-visible,.menu-btn:focus-visible{outline:3px solid var(--amber);outline-offset:3px}

.heading{text-align:center;margin:6px 0 8px}
.heading h1{margin:0;font:900 clamp(24px,7.5vw,38px) Orbitron;color:var(--tan);letter-spacing:.06em;text-shadow:0 0 18px rgba(224,184,114,.28)}
.heading p{margin:2px 0 0;color:var(--muted);font-size:13px}

/* Auto-fit: 4 cells across on a phone, 5-6 on a wider column, without any
   breakpoints. Kept deliberately tight - this is a readout, not a dashboard. */
.hud{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:4px;margin-bottom:6px}
.stat{display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:40px;border:1px solid var(--line);border-radius:8px;background:rgba(26,20,16,.92);padding:3px 5px;text-align:center}
.stat span{color:var(--muted);font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat strong{color:var(--ink);font:800 12.5px Orbitron;letter-spacing:0;line-height:1.1;overflow-wrap:break-word}
.stat.wide{grid-column:1 / -1;min-height:0;padding:3px 6px}
.stat.wide strong{font-size:11.5px;white-space:normal}

.scene-shell{display:grid;place-items:center;border:2px solid var(--line);border-radius:14px;overflow:hidden;background:#0a0907;box-shadow:0 0 26px rgba(224,184,114,.1)}
/* fitCanvas() renders at a whole-number multiple of the 240x128 design space
   and sizes the element to the column, so the only browser scaling is a gentle
   minification - which wants smoothing, not nearest-neighbour. */
canvas#scene{display:block;max-width:100%;touch-action:none;user-select:none}

.message{text-align:center;min-height:18px;margin:6px 0 2px;color:var(--amber);font-weight:700;font-size:13px}

.panel{border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--panel-2),var(--panel));padding:14px;margin-bottom:16px}
.panel-title{margin:0 0 6px;font:900 20px Orbitron;color:var(--tan)}
.panel-note{margin:0 0 12px;color:var(--muted);font-size:13.5px;line-height:1.5}
.end-title{font-size:22px}

/* choice lists (profession, month, forks, rivers) */
.choice-list{display:grid;gap:8px}
.choice{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;background:#140f0b;color:var(--ink);padding:11px 13px;cursor:pointer}
.choice:active{transform:translateY(1px)}
.choice.off,.choice[disabled]{opacity:.42;cursor:not-allowed}
.choice-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-weight:800}
.choice-head em{font-style:normal;color:var(--tan);font-size:12.5px;white-space:nowrap}
.choice-sub{display:block;margin-top:3px;color:var(--muted);font-size:12.5px;line-height:1.45}

/* main menus */
.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:12px}
.menu-btn{border:1px solid var(--line);border-radius:11px;background:#140f0b;color:var(--ink);padding:13px 8px;font-weight:700;font-size:13.5px;cursor:pointer}
.menu-btn:active{transform:translateY(1px);filter:brightness(1.2)}
.menu-btn.go{grid-column:1 / -1;background:linear-gradient(180deg,#e8a74f,#c9772c);color:#20140a;font-weight:900}

/* store */
.store-list{display:grid;gap:8px;margin-bottom:10px}
.store-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;background:#140f0b;padding:9px 11px}
.store-info{flex:1;min-width:0}
.store-info strong{display:inline;font-size:14px}
.store-info em{font-style:normal;color:var(--tan);font-size:11.5px}
.store-info span{display:block;color:var(--amber);font-size:12px;font-weight:700}
.store-info small{display:block;color:var(--muted);font-size:11.5px;line-height:1.4;margin-top:2px}
.stepper{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.step{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#241a12;color:var(--tan);font:900 18px Orbitron;cursor:pointer}
.step:active{filter:brightness(1.3)}
.qty{min-width:42px;text-align:center;font:800 15px Orbitron}
.store-total{display:flex;justify-content:space-between;padding:9px 4px;font-weight:800;color:var(--tan);border-top:1px solid var(--line);margin-bottom:10px}
.store-total.over{color:var(--rust)}

/* names */
.name-grid{display:grid;gap:8px;margin-bottom:12px}
.name-field{display:flex;align-items:center;gap:10px}
.name-field span{flex:0 0 78px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.name-field input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;background:#140f0b;color:var(--ink);padding:10px 12px;font-size:15px}
.name-field input:focus{outline:2px solid var(--amber);outline-offset:1px}

/* travel + hunt strips */
.travel-panel,.hunt-panel{text-align:center}
.travel-line{margin:0 0 10px;color:var(--muted);font-size:13px;text-transform:capitalize}
.hunt-hud{display:flex;justify-content:center;gap:16px;margin-bottom:10px;font:800 15px Orbitron;color:var(--tan)}

/* buttons */
.btn{display:block;width:100%;border:0;border-radius:12px;padding:13px;margin-top:8px;font:900 15px Orbitron;background:linear-gradient(180deg,#e8a74f,#c9772c);color:#20140a;cursor:pointer;text-align:center;text-decoration:none}
.btn.alt{background:#140f0b;color:var(--tan);border:1px solid var(--line)}
.btn[disabled],.btn.off{opacity:.45;cursor:not-allowed}
.btn small{display:block;font:600 11px "Space Grotesk";opacity:.8;margin-top:2px}
.mini{border:1px solid var(--line);border-radius:8px;background:#241a12;color:var(--tan);padding:5px 9px;font-size:12px;font-weight:700;cursor:pointer}

/* overlays */
.overlay{position:fixed;inset:0;z-index:20;background:rgba(10,8,6,.94);display:grid;place-items:center;padding:16px}
.card{width:min(100%,460px);max-height:92dvh;overflow:auto;border:1px solid var(--line);border-radius:18px;padding:20px;background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:0 0 34px rgba(224,184,114,.14)}
.card h2{margin:0 0 10px;font:900 22px Orbitron;color:var(--tan)}
.card p{color:#d8c7ae;line-height:1.55;margin:0 0 10px}
.card ul{color:#d8c7ae;padding-left:20px;line-height:1.5;margin:0 0 12px}
.card li{margin-bottom:6px}
.card .fine{color:var(--muted);font-size:12.5px}
.warn{color:var(--rust);font-weight:700}

/* tables and lists inside dialogs */
.supply-table{width:100%;border-collapse:collapse;margin-bottom:10px}
.supply-table th{text-align:left;font-weight:600;color:var(--muted);padding:6px 0;border-bottom:1px solid rgba(224,184,114,.14);font-size:13.5px}
.supply-table td{text-align:right;font-weight:800;color:var(--ink);padding:6px 0;border-bottom:1px solid rgba(224,184,114,.14);font-size:13.5px}
.supply-table tr.mult th,.supply-table tr.mult td{color:var(--amber)}
.effects{margin:0;padding-left:18px;color:var(--tan);font-size:13px;line-height:1.5}
.party-list{list-style:none;padding:0;margin:0 0 10px}
.party-list li{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid rgba(224,184,114,.14)}
.party-list li strong{flex:0 0 auto}
.party-list li span{flex:1;color:var(--muted);font-size:13px}
.party-list li.dead{opacity:.55}
.party-list li.dead span{color:var(--rust)}
.journal{list-style:none;padding:0;margin:0;max-height:52dvh;overflow:auto}
.journal li{padding:7px 0;border-bottom:1px solid rgba(224,184,114,.12);color:#d8c7ae;font-size:13px;line-height:1.45}
.journal em{display:block;color:var(--muted);font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.river-read{background:#140f0b;border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin:0 0 12px;color:#d8c7ae;font-size:13.5px;line-height:1.5}
.river-read strong{color:var(--amber)}

.recruit{display:flex;gap:12px;align-items:flex-start;text-align:left;margin-bottom:10px}
.recruit strong{display:block;color:var(--tan);font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.recruit p{margin:0 0 6px}
.portrait{flex:0 0 auto;width:64px;height:64px;border:1px solid var(--line);border-radius:10px;background-color:#140f0b;background-repeat:no-repeat;image-rendering:pixelated}

/* ending */
.final-score{font:900 44px Orbitron;color:var(--amber);text-align:center;margin:6px 0 14px}
.graves{margin-top:14px}
.graves h3{margin:0 0 8px;font:800 14px Orbitron;color:var(--rust);text-transform:uppercase;letter-spacing:.08em}
.graves ul{list-style:none;padding:0;margin:0}
.graves li{padding:8px 0;border-bottom:1px solid rgba(224,184,114,.14);color:#d8c7ae;font-size:13px}
.graves li em{display:block;color:var(--muted);font-style:italic;font-size:12px;margin-top:2px}

@media(max-width:420px){
  .menu-btn{font-size:12.5px;padding:12px 6px}
  .store-info small{display:none}
  .stat strong{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
