:root{
  --wine:#5b1220;
  --wine-deep:#3a0a14;
  --wine-bright:#8e1d33;
  --bordeaux:#6d1f2e;
  --brass:#c9a227;
  --brass-bright:#e7c558;
  --cream:#f3e6cf;
  --cream-dim:#cdbfa6;
  --wood:#43271a;
  --ink:#1a1012;
  --glass:rgba(28,12,16,0.78);
  --glass-light:rgba(48,20,26,0.72);
  --good:#5fbf7a;
  --bad:#e0664f;
  --shadow:0 18px 50px rgba(0,0,0,0.55);
  font-family: "Iowan Old Style", "Palatino Linotype", "URW Palladio L", Georgia, serif;
}

*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;background:#0a0608;color:var(--cream);}
body{position:fixed;inset:0;}

#stage{position:absolute;inset:0;}
#stage canvas{display:block;width:100%;height:100%;}

.hidden{display:none !important;}
kbd{
  display:inline-block;min-width:1.4em;text-align:center;
  font-family:ui-monospace,Menlo,monospace;font-size:.78em;
  padding:.12em .42em;border-radius:5px;
  background:linear-gradient(#3a2018,#27140e);
  border:1px solid #5a3624;border-bottom-width:2px;color:var(--cream);
}

/* ---------------- TITLE ---------------- */
.overlay{position:absolute;inset:0;display:grid;place-items:center;z-index:50;
  background:radial-gradient(circle at 50% 38%, rgba(90,20,34,.55), rgba(8,4,6,.96) 70%);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.title-card{max-width:640px;text-align:center;padding:42px 46px;
  background:linear-gradient(180deg, rgba(40,16,22,.82), rgba(18,8,11,.92));
  border:1px solid rgba(201,162,39,.35);border-radius:20px;box-shadow:var(--shadow);}
.title-kicker{letter-spacing:.34em;text-transform:uppercase;font-size:.7rem;color:var(--brass);opacity:.85;}
.title-name{font-size:4.3rem;line-height:.92;margin:14px 0 6px;font-weight:700;letter-spacing:.01em;
  text-shadow:0 4px 24px rgba(0,0,0,.6);}
.title-name .accent{color:var(--brass-bright);
  background:linear-gradient(180deg,#f6dd86,#c9a227);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.title-sub{letter-spacing:.22em;font-size:.82rem;color:var(--cream-dim);text-transform:uppercase;margin-bottom:18px;}
.title-blurb{color:var(--cream-dim);line-height:1.6;font-size:1.02rem;margin:0 auto 26px;max-width:520px;}
.big-btn{font-family:inherit;font-size:1.18rem;color:var(--ink);cursor:pointer;
  padding:14px 34px;border:none;border-radius:999px;
  background:linear-gradient(180deg,#f6dd86,#c9a227);box-shadow:0 10px 26px rgba(201,162,39,.35),inset 0 1px 0 #fff7d6;
  transition:transform .12s ease, box-shadow .12s ease;font-weight:700;}
.big-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(201,162,39,.5);}
.big-btn:active{transform:translateY(0);}
.title-controls{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:26px;color:var(--cream-dim);font-size:.82rem;}
.title-controls span{display:inline-flex;gap:6px;align-items:center;}
.boot-status{margin-top:18px;font-size:.78rem;color:var(--brass);opacity:.7;letter-spacing:.08em;}

/* ---------------- HUD ---------------- */
#hud{position:absolute;inset:0;pointer-events:none;z-index:20;}
.hud-top{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:7px;align-items:center;
  transition:opacity .3s, transform .3s;}
.hud-pill{pointer-events:auto;display:flex;align-items:center;gap:6px;
  background:var(--glass);border:1px solid rgba(201,162,39,.28);border-radius:999px;
  padding:4px 11px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.pill-icon{font-size:.92rem;}
.pill-val{font-weight:700;font-size:.9rem;color:var(--brass-bright);font-variant-numeric:tabular-nums;}
.pill-label{font-size:.72rem;color:var(--cream-dim);}
.hud-pill.charm .charm-bar{width:84px;height:7px;border-radius:6px;background:rgba(0,0,0,.45);overflow:hidden;border:1px solid rgba(201,162,39,.25);}
.hud-pill.savas .savas-bar{width:92px;height:7px;border-radius:6px;background:rgba(0,0,0,.45);overflow:hidden;border:1px solid rgba(95,191,122,.3);}
.savas-fill{height:100%;width:10%;border-radius:6px;background:linear-gradient(90deg,#6b6b72,#5fbf7a);transition:width .45s cubic-bezier(.2,.8,.2,1);}
.hud-pill.savas .pill-val{font-size:.74rem;color:#bfe6c6;min-width:46px;text-align:left;}
#hud-journal{cursor:pointer;} #hud-journal:hover{background:rgba(142,29,51,.4);}
.mini-drinks{opacity:.82;}
/* minimize chrome during conversations so you can see who's speaking */
body.in-dialogue .hud-top{opacity:.28;transform:translateX(-50%) scale(.92);}
body.in-dialogue #ability-bar{display:none;}
.charm-fill{height:100%;width:60%;border-radius:6px;background:linear-gradient(90deg,#8e1d33,#e7c558);transition:width .35s cubic-bezier(.2,.8,.2,1);}

.hud-abilities{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:7px;pointer-events:auto;opacity:.92;}
.ability-chip{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:58px;
  background:var(--glass);border:1px solid rgba(201,162,39,.24);border-radius:11px;padding:5px 7px 4px;
  box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:default;}
.ability-chip .ab-icon{font-size:1.05rem;line-height:1;}
.ability-chip .ab-name{font-size:.6rem;color:var(--cream);letter-spacing:.01em;}
.ability-chip .ab-cost{font-size:.56rem;color:var(--brass);}

.interact-prompt{position:absolute;bottom:30%;left:50%;transform:translateX(-50%);
  background:var(--glass);border:1px solid rgba(201,162,39,.4);border-radius:12px;padding:9px 16px;
  font-size:1rem;color:var(--cream);box-shadow:var(--shadow);animation:floaty 1.8s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-6px)}}

#toast-zone{position:absolute;top:74px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;}
.toast{pointer-events:none;background:var(--glass);border:1px solid rgba(201,162,39,.4);border-left:4px solid var(--brass);
  border-radius:10px;padding:10px 18px;font-size:.96rem;color:var(--cream);box-shadow:var(--shadow);
  animation:toastIn .35s ease, toastOut .5s ease forwards;animation-delay:0s,2.6s;max-width:520px;text-align:center;}
.toast.good{border-left-color:var(--good);}
.toast.bad{border-left-color:var(--bad);}
@keyframes toastIn{from{opacity:0;transform:translateY(-14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(-10px)}}

/* ---------------- DIALOGUE ---------------- */
.dialogue{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:min(660px,92vw);z-index:30;
  display:flex;gap:12px;align-items:flex-end;}
.dlg-portrait{width:78px;height:78px;flex:0 0 auto;border-radius:13px;border:2px solid var(--brass);
  box-shadow:var(--shadow);background:#241016 center/cover;overflow:hidden;}
.dlg-portrait>div{font-size:38px !important;line-height:78px !important;}
.dlg-main{flex:1;background:linear-gradient(180deg,rgba(48,20,26,.62),rgba(28,12,16,.66));
  border:1px solid rgba(201,162,39,.3);border-radius:14px;padding:10px 15px 11px;box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px);}
.dlg-head{display:flex;align-items:baseline;gap:9px;margin-bottom:5px;flex-wrap:wrap;}
.dlg-name{font-size:1.12rem;font-weight:700;color:var(--brass-bright);}
.dlg-role{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.1em;}
.dlg-mood{margin-left:auto;font-size:.7rem;color:var(--cream);background:rgba(0,0,0,.35);padding:2px 9px;border-radius:999px;border:1px solid rgba(201,162,39,.3);}
.dlg-text{font-size:.98rem;line-height:1.45;color:var(--cream);min-height:2.3em;margin-bottom:9px;}
.dlg-text .npc-quote{font-style:italic;}
.dlg-abilities{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px;}
.dlg-ability-btn{font-family:inherit;cursor:pointer;font-size:.74rem;color:var(--cream);
  background:rgba(142,29,51,.32);border:1px solid rgba(201,162,39,.4);border-radius:999px;padding:4px 10px;
  display:inline-flex;gap:5px;align-items:center;transition:transform .1s,background .15s;}
.dlg-ability-btn:hover:not(:disabled){background:rgba(201,162,39,.3);transform:translateY(-1px);}
.dlg-ability-btn:disabled{opacity:.4;cursor:not-allowed;}
.dlg-ability-btn.used{background:rgba(95,191,122,.25);border-color:var(--good);}
.dlg-choices{display:flex;flex-direction:column;gap:6px;}
.dlg-choice{font-family:inherit;text-align:left;cursor:pointer;font-size:.9rem;color:var(--cream);
  background:rgba(20,8,11,.5);border:1px solid rgba(201,162,39,.26);border-radius:10px;padding:8px 12px;
  transition:transform .1s,background .15s,border-color .15s;display:flex;gap:8px;align-items:center;}
.dlg-choice:hover:not(:disabled){background:rgba(142,29,51,.4);transform:translateX(3px);border-color:var(--brass);}
.dlg-choice:disabled{opacity:.45;cursor:not-allowed;}
.dlg-choice .ch-tag{margin-left:auto;font-size:.72rem;color:var(--brass);white-space:nowrap;}
.dlg-choice.hint-success{border-color:var(--good);box-shadow:0 0 0 1px rgba(95,191,122,.4), 0 0 22px rgba(95,191,122,.25);}
.dlg-choice.hint-fail{border-color:rgba(224,102,79,.5);}
.dlg-leave{margin-top:12px;font-family:inherit;font-size:.84rem;color:var(--cream-dim);background:none;border:none;cursor:pointer;opacity:.8;}
.dlg-leave:hover{opacity:1;color:var(--cream);}

/* ---------------- GOLF ---------------- */
.golf-hud{position:absolute;inset:0;pointer-events:none;z-index:20;color:var(--cream);}
.golf-row{position:absolute;top:16px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center;
  background:var(--glass);border:1px solid rgba(201,162,39,.3);border-radius:999px;padding:9px 20px;box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.96rem;}
.golf-row span{white-space:nowrap;}
.golf-hole{font-weight:700;color:var(--brass-bright);}
.golf-name{color:var(--cream-dim);font-style:italic;}
.golf-power{position:absolute;bottom:64px;left:50%;transform:translateX(-50%);width:280px;text-align:center;}
.golf-power-label{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-dim);margin-bottom:5px;}
.golf-power-track{height:12px;border-radius:8px;background:rgba(0,0,0,.5);border:1px solid rgba(201,162,39,.3);overflow:hidden;}
.golf-power-fill{height:100%;width:0%;background:linear-gradient(90deg,#5fbf7a,#e7c558,#e0664f);transition:width .04s linear;}
.golf-help{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:16px;align-items:center;
  pointer-events:auto;color:var(--cream-dim);font-size:.86rem;}
.small-btn{pointer-events:auto;font-family:inherit;cursor:pointer;font-size:.84rem;color:var(--cream);
  background:var(--glass);border:1px solid rgba(201,162,39,.35);border-radius:999px;padding:6px 14px;}
.small-btn:hover{background:rgba(142,29,51,.4);}

/* ---------------- BANNER ---------------- */
.banner{position:absolute;inset:0;display:grid;place-items:center;z-index:40;pointer-events:none;
  background:radial-gradient(circle at center, rgba(8,4,6,.2), rgba(8,4,6,.86));}
.banner-inner{max-width:640px;text-align:center;padding:30px 40px;font-size:1.5rem;line-height:1.5;color:var(--cream);
  background:linear-gradient(180deg, rgba(40,16,22,.86), rgba(18,8,11,.92));
  border:1px solid rgba(201,162,39,.4);border-radius:18px;box-shadow:var(--shadow);
  animation:bannerPop .4s cubic-bezier(.2,.9,.2,1);}
.banner-inner .b-big{font-size:2.2rem;color:var(--brass-bright);display:block;margin-bottom:8px;}
@keyframes bannerPop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}

/* ---------------- FIRST-PERSON + EXTRAS ---------------- */
.mini-btn{cursor:pointer;font-size:1.1rem;font-family:inherit;color:var(--cream);}
.mini-btn.off{opacity:.45;}
#crosshair{position:absolute;top:50%;left:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;
  background:rgba(243,230,207,.5);box-shadow:0 0 0 1px rgba(0,0,0,.4);pointer-events:none;}
.look-hint{position:absolute;bottom:84px;left:50%;transform:translateX(-50%);
  background:var(--glass);border:1px solid rgba(201,162,39,.3);border-radius:999px;padding:7px 16px;
  font-size:.84rem;color:var(--cream-dim);pointer-events:none;transition:opacity .4s;}
.look-hint.hidden{display:none !important;}

.shot-flash{position:absolute;inset:0;z-index:60;pointer-events:none;
  background:radial-gradient(circle at center, rgba(150,0,0,.25), rgba(120,0,0,.85));
  animation:shotIn .12s ease;}
@keyframes shotIn{from{opacity:0}to{opacity:1}}
.gameover{z-index:70;background:radial-gradient(circle at 50% 40%, rgba(90,0,0,.5), rgba(6,2,2,.97) 70%);}
.gameover .title-card{border-color:rgba(224,102,79,.5);}

.dialogue.danger .dlg-main{border-color:rgba(224,102,79,.55);box-shadow:0 0 0 1px rgba(224,102,79,.3), var(--shadow);}
.dlg-choice.hint-danger{border-color:var(--bad);box-shadow:0 0 0 1px rgba(224,102,79,.5), 0 0 18px rgba(224,102,79,.3);}
.dlg-choice.hint-danger::after{content:"⚠";margin-left:6px;}

/* ---------------- BLACKJACK ---------------- */
.blackjack{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:35;width:min(560px,94vw);}
.bj-felt{background:radial-gradient(circle at 50% 30%, rgba(31,107,58,.92), rgba(16,60,32,.96));
  border:2px solid var(--brass);border-radius:18px 18px 14px 14px;padding:14px 18px 16px;box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.bj-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.bj-title{font-size:1.1rem;color:var(--brass-bright);font-weight:700;letter-spacing:.02em;}
.bj-chips{font-size:.9rem;color:var(--cream);font-variant-numeric:tabular-nums;}
.bj-area{display:flex;flex-direction:column;gap:10px;}
.bj-row{display:flex;align-items:center;gap:12px;min-height:74px;}
.bj-label{width:130px;font-size:.86rem;color:#dff0e0;}
.bj-cards{display:flex;gap:6px;flex-wrap:wrap;}
.bj-card{width:48px;height:68px;border-radius:7px;background:#f5f1e6;display:flex;flex-direction:column;
  align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(0,0,0,.4);font-family:Georgia,serif;}
.bj-card span{font-size:1.05rem;font-weight:700;line-height:1;}
.bj-card b{font-size:1.5rem;line-height:1;}
.bj-card.r{color:#b3231f;} .bj-card.b{color:#1a1a1a;}
.bj-card.back{background:repeating-linear-gradient(45deg,#5b1220,#5b1220 6px,#3a0a14 6px,#3a0a14 12px);border:2px solid var(--brass);}
.bj-msg{margin:12px 0;text-align:center;font-size:1rem;color:var(--cream);min-height:1.3em;}
.bj-controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.bj-btn{font-family:inherit;cursor:pointer;font-size:.92rem;color:var(--cream);background:rgba(20,8,11,.5);
  border:1px solid rgba(201,162,39,.45);border-radius:10px;padding:8px 16px;transition:transform .1s,background .15s;}
.bj-btn:hover{background:rgba(142,29,51,.5);transform:translateY(-1px);}
.bj-btn.go{background:linear-gradient(180deg,#f6dd86,#c9a227);color:#1a1012;border:none;font-weight:700;}
.bj-btn.stop{background:rgba(142,29,51,.55);}
.bj-btn.bet{pointer-events:none;color:var(--brass-bright);font-weight:700;}
.bj-leave{display:block;margin:12px auto 0;font-family:inherit;font-size:.8rem;color:var(--cream-dim);background:none;border:none;cursor:pointer;}
.bj-leave:hover{color:var(--cream);}

/* ---------------- CULTURE JOURNAL ---------------- */
.journal{position:absolute;inset:0;z-index:45;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 30%, rgba(40,30,16,.55), rgba(8,5,3,.92) 75%);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);}
.journal-card{width:min(720px,94vw);max-height:84vh;display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(40,26,16,.96),rgba(22,14,9,.97));
  border:1px solid rgba(201,162,39,.4);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;}
.journal-head{display:flex;align-items:baseline;gap:12px;padding:18px 22px 12px;border-bottom:1px solid rgba(201,162,39,.2);position:relative;}
.journal-title{font-size:1.5rem;color:var(--brass-bright);font-weight:700;}
.journal-sub{font-size:.86rem;color:var(--cream-dim);font-style:italic;}
.journal-close{position:absolute;right:16px;top:14px;background:none;border:none;color:var(--cream-dim);font-size:1.2rem;cursor:pointer;}
.journal-close:hover{color:var(--cream);}
.journal-body{padding:14px 22px;overflow-y:auto;}
.journal-empty{color:var(--cream-dim);text-align:center;padding:40px 10px;line-height:1.6;}
.j-scene{margin-bottom:16px;}
.j-scene-name{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-bottom:6px;border-bottom:1px dotted rgba(201,162,39,.25);padding-bottom:3px;}
.j-entry{margin:0 0 9px;padding-left:14px;border-left:2px solid rgba(201,162,39,.3);}
.j-entry b{color:var(--brass-bright);}
.j-entry-text{color:var(--cream);font-size:.95rem;line-height:1.5;}
.journal-foot{padding:10px 22px 16px;color:var(--cream-dim);font-size:.78rem;text-align:center;border-top:1px solid rgba(201,162,39,.15);}

@media (max-width:720px){
  .title-name{font-size:3rem;}
  .dlg-portrait{display:none;}
  .hud-pill.charm .charm-bar{width:80px;}
  .ability-chip{min-width:60px;}
}
