:root{
  --sea:#1F6F8B; --sand:#EBD3A0; --dune:#C99E5C; --ink:#3B2A1A; --muted:#7A5F40;
  --panel:#FFF4DC; --panel-edge:#C99E5C; --hud:rgba(255,246,226,.93); --hudtext:#3B2A1A;
  --accent:#D8432E; --accent-deep:#7E2216; --accent-ink:#FFF6E4; --tide:#1F6F8B; --ok:#2E9E5B; --gold:#E2B420;
  --field:rgba(201,158,92,.14);
  color-scheme: light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --panel:#2E2216; --panel-edge:#7A5F40; --ink:#FBEBD0; --muted:#D3B98F; --hud:rgba(40,29,18,.92); --hudtext:#FBEBD0;
    --tide:#7FD0DA; --field:rgba(201,158,92,.12); color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --panel:#2E2216; --panel-edge:#7A5F40; --ink:#FBEBD0; --muted:#D3B98F; --hud:rgba(40,29,18,.92); --hudtext:#FBEBD0;
  --tide:#7FD0DA; --field:rgba(201,158,92,.12); color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
html,body{height:100%;margin:0}
body{background:var(--sea);overflow:hidden;font-family:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);touch-action:none;user-select:none;-webkit-user-select:none}
canvas#game{position:fixed;inset:0;display:block}
.hidden{display:none!important}
.display{font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400}

/* ---------- HUD ---------- */
.hud{position:fixed;z-index:2;pointer-events:none}
.panel{background:var(--hud);color:var(--hudtext);border-radius:14px;box-shadow:0 3px 0 rgba(59,42,26,.28)}
#hudTL{top:calc(12px + env(safe-area-inset-top,0px));left:12px;padding:10px 12px 11px;width:200px;font-size:13px;font-weight:800}
.colony{display:flex;align-items:center;gap:8px;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:18px;margin-bottom:6px}
.dot{width:14px;height:14px;border-radius:50%;display:inline-block;flex:none;box-shadow:inset 0 -2px 0 rgba(0,0,0,.25)}
.bar{height:10px;border-radius:6px;background:rgba(59,42,26,.18);overflow:hidden;margin:3px 0 8px}
.bar i{display:block;height:100%;width:0;border-radius:6px;transition:width .3s}
.row{display:flex;justify-content:space-between;align-items:center;margin-top:3px}
.pips{display:flex;gap:4px}
.pip{width:12px;height:12px;border-radius:50%;border:2px solid currentColor}
.pip.on{background:currentColor}
.seg{width:14px;height:8px;border-radius:3px;background:rgba(59,42,26,.2)}
.seg.on{background:var(--ok)}
#hudTC{top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);text-align:center;padding:7px 16px 8px}
#clock{font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:24px;line-height:1}
#left,#tideInfo{font-size:12px;font-weight:800;margin-top:2px}
#tideInfo{color:var(--tide)}
#hudTR{top:calc(12px + env(safe-area-inset-top,0px));right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
#mini{width:150px;height:150px;border-radius:50%;background:var(--sea);box-shadow:0 3px 0 rgba(0,0,0,.25),0 0 0 3px var(--hud)}
#feed{top:calc(214px + env(safe-area-inset-top,0px));right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:46vw}
.feedline{background:var(--hud);color:var(--hudtext);font-size:12px;font-weight:800;padding:4px 9px;border-radius:9px;transition:opacity .6s}
.feedline b{font-weight:900}
#fx{left:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.chip{background:var(--hud);color:var(--hudtext);font-size:13px;font-weight:800;padding:5px 10px;border-radius:10px;box-shadow:0 2px 0 rgba(59,42,26,.25)}
.chip.heal{background:#7DDB8A;color:#16502D}
.chip.flood{background:#4FB3BF;color:#0B3A47}
#banner{left:50%;top:32%;transform:translateX(-50%);font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:clamp(22px,4vw,34px);color:#FFF6E4;text-align:center;text-shadow:0 3px 0 rgba(59,42,26,.55);width:90vw;transition:opacity .3s}
#toast{left:50%;bottom:calc(70px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--gold);color:#3B2A1A;font-weight:900;font-size:15px;padding:8px 14px;border-radius:12px;box-shadow:0 3px 0 rgba(59,42,26,.35);transition:opacity .3s;white-space:nowrap}
#honeyBtn{position:fixed;right:20px;bottom:calc(190px + env(safe-area-inset-bottom,0px));z-index:3;font-size:14px;padding:10px 14px;background:var(--gold);color:#3B2A1A}
.btn-small{pointer-events:auto;font:800 12px 'Nunito',system-ui,sans-serif;color:var(--hudtext);background:var(--hud);border:0;border-radius:10px;padding:6px 10px;cursor:pointer;box-shadow:0 2px 0 rgba(59,42,26,.28)}

/* connection badge and notices */
#netBadge{position:fixed;z-index:6;left:50%;top:calc(70px + env(safe-area-inset-top,0px));transform:translateX(-50%);background:#3B2A1A;color:#FFF6E4;font-weight:900;font-size:14px;padding:8px 14px;border-radius:12px;pointer-events:none}
#notice{position:fixed;z-index:9;left:50%;top:calc(14px + env(safe-area-inset-top,0px));transform:translateX(-50%);max-width:min(520px,92vw);background:var(--panel);color:var(--ink);border:2px solid var(--panel-edge);font-weight:800;font-size:14px;line-height:1.4;padding:10px 14px;border-radius:14px;box-shadow:0 8px 20px rgba(10,30,40,.3);transition:opacity .3s}
#notice b{display:block;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400;font-size:17px}

/* ---------- Overlays and cards ---------- */
.overlay{position:fixed;inset:0;z-index:5;display:flex;align-items:flex-start;justify-content:center;padding:20px;padding-top:calc(20px + env(safe-area-inset-top,0px));padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));background:rgba(20,50,62,.35);overflow-y:auto;touch-action:pan-y}
.overlay.modal{z-index:8;background:rgba(20,40,50,.55)}
.card{background:var(--panel);color:var(--ink);border:3px solid var(--panel-edge);border-bottom-width:8px;border-radius:22px;padding:24px 24px 20px;width:min(480px,100%);box-shadow:0 18px 40px rgba(10,30,40,.35);margin:auto;user-select:text;-webkit-user-select:text}
.card.wide{width:min(620px,100%)}
h1{font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400;font-size:clamp(42px,10vw,60px);line-height:.95;margin:0 0 6px;letter-spacing:.5px}
h2{font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400;font-size:clamp(28px,7vw,38px);line-height:1;margin:0 0 6px}
h3{font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400;font-size:20px;margin:18px 0 8px}
p{margin:0}
.tag{margin:0 0 16px;font-size:16px;line-height:1.4;color:var(--muted);font-weight:700}
.small{font-size:13px;line-height:1.45;color:var(--muted);font-weight:700}
label{display:block;font-weight:900;font-size:14px;margin-bottom:6px}
input[type=text],input[type=email],input[type=password]{width:100%;font:800 17px 'Nunito',system-ui,sans-serif;padding:10px 12px;border-radius:12px;border:2px solid var(--panel-edge);background:transparent;color:var(--ink)}
input:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.field-error{color:var(--accent);font-weight:800;font-size:13px;min-height:18px;margin-top:5px}

/* level: the one bold element on the menu */
.level{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;background:var(--field);border-radius:16px;padding:12px 14px;margin-bottom:16px}
.level .num{grid-row:span 2;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:56px;line-height:.9;color:var(--accent);min-width:58px;text-align:center}
.level .num small{display:block;font-family:'Nunito',system-ui,sans-serif;font-size:12px;font-weight:900;color:var(--muted);line-height:1.2}
.level .bar{height:14px;margin:0;background:rgba(59,42,26,.15)}
.level .bar i{background:var(--accent)}
.level .meta{font-size:13px;font-weight:800;color:var(--muted)}
.facts{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;font-weight:800;margin:-6px 0 16px;color:var(--muted)}
.facts b{color:var(--ink);font-weight:900}

.choice{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.choice.two{grid-template-columns:repeat(2,1fr)}
.opt{font:inherit;text-align:left;color:var(--ink);background:transparent;border:2px solid var(--panel-edge);border-radius:14px;padding:9px 10px 10px;cursor:pointer}
.opt b{display:block;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400;font-size:19px}
.opt span{display:block;font-size:12px;line-height:1.3;color:var(--muted);font-weight:700;margin-top:2px}
.opt[aria-pressed="true"]{border-color:var(--accent);background:rgba(216,67,46,.1);box-shadow:inset 0 0 0 1px var(--accent)}

.primary{width:100%;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:24px;color:var(--accent-ink);background:var(--accent);border:0;border-radius:16px;padding:12px;cursor:pointer;box-shadow:0 5px 0 var(--accent-deep)}
.primary:active{transform:translateY(3px);box-shadow:0 2px 0 var(--accent-deep)}
.primary:disabled,.secondary:disabled{opacity:.6;cursor:progress}
.secondary{font:900 15px 'Nunito',system-ui,sans-serif;color:var(--ink);background:transparent;border:2px solid var(--panel-edge);border-radius:14px;padding:10px 14px;cursor:pointer}
.full{width:100%}
.btn-row{display:flex;gap:8px;margin-top:10px}
.btn-row > *{flex:1}
.join-row{display:flex;gap:8px;margin-top:10px}
.join-row input{flex:1;text-transform:uppercase;letter-spacing:2px}
.join-row .secondary{flex:none}
.linkish{background:none;border:0;padding:6px 0;font:800 14px 'Nunito',system-ui,sans-serif;color:var(--muted);text-decoration:underline;cursor:pointer}
.menu-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:10px}

/* lobby */
.code-box{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--field);border-radius:16px;padding:12px 14px;margin:6px 0 10px}
.code-box .code{font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:clamp(34px,9vw,46px);letter-spacing:4px;line-height:1}
input.invite-field{width:100%;font:700 13px 'Nunito',system-ui,sans-serif;color:var(--muted);background:transparent;border:1px dashed var(--panel-edge);border-radius:10px;padding:7px 9px;margin-bottom:12px}
.colonies{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.colony-btn{font:inherit;text-align:left;color:var(--ink);background:transparent;border:2px solid var(--panel-edge);border-radius:14px;padding:9px 10px;cursor:pointer;min-height:64px}
.colony-btn .head{display:flex;align-items:center;gap:7px;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-size:17px}
.colony-btn .who{font-size:12px;font-weight:800;color:var(--muted);margin-top:3px;line-height:1.35}
.colony-btn.mine{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.colony-btn:disabled{opacity:.55;cursor:not-allowed}
.status-line{font-weight:900;font-size:15px;margin:12px 0 4px}

/* results */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.stats div{border-radius:12px;background:var(--field);padding:8px 6px;text-align:center}
.stats b{display:block;font-family:'Lilita One','Arial Rounded MT Bold',system-ui,sans-serif;font-weight:400;font-size:26px;line-height:1.1}
.stats span{font-size:12px;font-weight:800;color:var(--muted)}
.levelup{color:var(--ok);font-weight:900}

/* friends */
.people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.person{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--field)}
.person .who{flex:1;min-width:0}
.person .who b{display:block;font-weight:900;overflow:hidden;text-overflow:ellipsis}
.person .who span{font-size:12px;font-weight:800;color:var(--muted)}
.online-dot{width:10px;height:10px;border-radius:50%;background:#B9A27C;flex:none}
.online-dot.on{background:var(--ok)}
.person .secondary{padding:6px 10px;font-size:13px}
.empty{padding:14px;border-radius:12px;border:2px dashed var(--panel-edge);font-weight:800;color:var(--muted);font-size:14px;line-height:1.4}

@media (max-width:520px){
  #hudTL{width:160px;padding:8px 10px;font-size:12px}
  .colony{font-size:15px}
  #mini{width:104px;height:104px}
  #feed{top:calc(160px + env(safe-area-inset-top,0px))}
  .opt span{display:none}
  .card{padding:20px 16px 16px}
}
@media (prefers-reduced-motion: reduce){ .bar i,.feedline,#banner,#toast,#notice{transition:none} }
.stack{display:flex;flex-direction:column;gap:8px}
#account{margin-top:6px}
