:root{--bg:#071220;--panel:#0d1c2d;--panel2:#11253a;--gold:#e8c66a;--gold2:#b89137;--text:#f4f7fb;--muted:#9fb0c3;--green:#4fe0a1;--red:#ff7c7c;--blue:#6aa8ff;--purple:#c994ff;--shadow:0 22px 55px rgba(0,0,0,.35)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% -10%,#173654 0,#071220 48%,#040a11 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{min-height:100vh;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}button,select{font:inherit}.topbar{max-width:1280px;margin:auto;display:flex;gap:18px;align-items:center;justify-content:space-between;padding:8px 0 16px}.brand-mark{display:flex;align-items:center;gap:10px;flex:0 0 auto}.brand-mark strong{display:block;color:var(--gold);letter-spacing:.08em}.brand-mark span{font-size:10px;color:var(--muted);letter-spacing:.15em}.crest{border:2px solid var(--gold);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;color:var(--gold);font-family:Georgia,serif;font-size:24px}.hud{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.hud>div{background:rgba(13,28,45,.86);border:1px solid rgba(232,198,106,.14);border-radius:14px;padding:8px 10px;min-width:88px}.hud small,.eyebrow{display:block;font-size:10px;letter-spacing:.16em;color:var(--muted)}.hud strong{font-size:13px}
main{max-width:1280px;margin:auto}.screen{display:none}.screen.active{display:block}.card{background:linear-gradient(180deg,rgba(17,37,58,.96),rgba(8,22,36,.96));border:1px solid rgba(232,198,106,.16);box-shadow:var(--shadow);border-radius:24px}.hero{min-height:72vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:44px 24px;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle,rgba(232,198,106,.12),transparent 42%);pointer-events:none}.hero-crest{width:100px;height:100px;border:3px solid var(--gold);border-radius:50%;display:grid;place-items:center;font:64px Georgia,serif;color:var(--gold);box-shadow:0 0 40px rgba(232,198,106,.15)}h1{font:700 clamp(44px,8vw,92px)/.95 Georgia,serif;color:var(--gold);letter-spacing:.04em;margin:24px 0 8px}h2{font-size:clamp(15px,2.2vw,25px);letter-spacing:.22em;margin:0}.byline{color:var(--gold);font-family:Georgia,serif;font-size:20px;margin:28px 0 4px}.tagline{font-size:18px;font-style:italic}.setup{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;justify-content:center;align-items:end}.setup label{display:grid;gap:6px;text-align:left;color:var(--muted);font-size:12px}select,.primary{border-radius:14px;border:1px solid rgba(232,198,106,.35);padding:13px 18px;background:#0c1b2c;color:white}.primary{background:linear-gradient(180deg,#e8c66a,#b89137);color:#071220;font-weight:900;letter-spacing:.06em;cursor:pointer;box-shadow:0 10px 25px rgba(232,198,106,.18)}.primary:disabled{opacity:.45;cursor:not-allowed}.smallprint{color:var(--muted);font-size:12px;margin-top:18px}
.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px}.board-wrap{padding:16px;min-height:690px}.board{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);gap:8px;height:660px}.square{border:1px solid rgba(255,255,255,.09);border-radius:15px;padding:8px;min-width:0;position:relative;background:rgba(15,39,60,.75);display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s,box-shadow .25s,border-color .25s}.square .n{font-size:10px;color:var(--muted)}.square .cat{font-size:10px;font-weight:700;overflow:hidden}.square.landed{border-color:var(--gold);box-shadow:0 0 25px rgba(232,198,106,.46);transform:scale(1.04)}.tokens{display:flex;gap:3px;flex-wrap:wrap}.token{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900;color:#071220;box-shadow:0 4px 10px rgba(0,0,0,.35)}.token.p1{background:var(--gold)}.token.p2{background:var(--blue)}.token.p3{background:var(--green)}.token.p4{background:var(--purple)}.side{display:flex;flex-direction:column;gap:14px}.player-card,.action-card,.controls{padding:20px}.player-card h3{font-size:28px;margin:4px 0 14px}.meter{height:7px;border-radius:10px;background:#06101b;overflow:hidden;margin-bottom:16px}.meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold2),var(--gold));transition:width .5s}.stats>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06)}.stats span{color:var(--muted)}.balance-change{height:26px;text-align:right;font-weight:900;margin-top:10px}.balance-change.positive{color:var(--green);animation:floatUp 1.4s both}.balance-change.negative{color:var(--red);animation:floatUp 1.4s both}.dice-row{display:flex;align-items:center;gap:16px}.die{width:72px;height:72px;border-radius:18px;border:1px solid rgba(232,198,106,.25);display:grid;place-items:center;font-size:58px;background:#071220;color:var(--gold)}.die.rolling{animation:dice .7s}.action-card p{color:var(--muted);line-height:1.4}.controls{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:13px}
.modal{display:none;position:fixed;inset:0;background:rgba(1,6,11,.82);backdrop-filter:blur(8px);z-index:20;padding:18px;align-items:center;justify-content:center;overflow:auto}.modal.open{display:flex}.modal-card{max-width:760px;width:100%;padding:26px;margin:auto}.question-head{display:flex;justify-content:flex-start}.badge{font-size:11px;font-weight:800;letter-spacing:.1em;padding:8px 10px;border-radius:99px;background:rgba(232,198,106,.12);color:var(--gold)}.modal h3{font-size:clamp(22px,4vw,34px);line-height:1.18}.answers{display:grid;gap:10px}.answer{background:#0b1a2a;border:1px solid rgba(255,255,255,.1);color:white;text-align:left;padding:14px 16px;border-radius:14px;cursor:pointer}.answer:hover{border-color:var(--gold)}.answer.correct{border-color:var(--green);background:rgba(79,224,161,.12)}.answer.wrong{border-color:var(--red);background:rgba(255,124,124,.12)}.feedback{min-height:32px;margin:14px 0;font-weight:700}.wealth-choice{border-top:1px solid rgba(255,255,255,.08);padding-top:16px;margin-top:6px}.choice-title{font-size:20px;color:var(--gold);font-weight:900}.wealth-choice>p{color:var(--muted);margin:6px 0 14px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.choice-button{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:left;align-items:center;background:#0b1a2a;border:1px solid rgba(255,255,255,.1);color:white;padding:13px;border-radius:15px;cursor:pointer}.choice-button:hover{border-color:var(--gold);transform:translateY(-1px)}.choice-button:disabled{opacity:.35;cursor:not-allowed;transform:none}.choice-icon{grid-row:1/3;font-size:28px}.choice-button b{font-size:15px}.choice-button small{color:var(--muted);font-size:11px}.hidden{display:none!important}
.coin-burst{pointer-events:none;position:fixed;inset:0;z-index:40}.coin{position:fixed;left:50%;top:50%;font-size:28px;animation:coin 1s ease-out forwards}.badge-unlock{position:fixed;left:50%;top:18%;transform:translate(-50%,-20px);opacity:0;z-index:50;background:#0b1a2a;border:1px solid var(--gold);color:var(--gold);padding:15px 22px;border-radius:99px;font-weight:900}.badge-unlock.show{animation:unlock 2.2s}.year-summary{position:fixed;left:50%;bottom:10%;transform:translateX(-50%);z-index:45;background:#0b1a2a;border:1px solid var(--gold);border-radius:18px;padding:18px 22px;opacity:0;pointer-events:none;text-align:center}.year-summary.show{animation:summary 2.1s}.results-card{max-width:900px;margin:5vh auto;padding:36px;text-align:center}.trophy{font-size:74px}.results-card h2{margin:10px 0 24px;letter-spacing:.02em}.results-body{display:grid;gap:12px;margin-bottom:24px}.result-card{display:grid;grid-template-columns:58px 180px 1fr;gap:14px;align-items:center;text-align:left;background:rgba(6,16,27,.55);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:15px}.result-rank{font-size:28px;text-align:center}.result-main h3{margin:0 0 4px}.result-main strong{display:block;color:var(--gold);font-size:22px}.result-main small,.move-summary{color:var(--muted)}.result-details{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.result-details span{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;background:rgba(255,255,255,.035);border-radius:9px;color:var(--muted);font-size:12px}.result-details b{color:var(--text)}.move-summary{grid-column:2/4;font-size:12px}.site-footer{text-align:center;color:var(--muted);font-size:12px;padding:24px 12px 10px}
@keyframes dice{0%{transform:rotate(0) scale(1)}25%{transform:rotate(80deg) scale(1.15)}55%{transform:rotate(175deg) scale(.9)}100%{transform:rotate(360deg) scale(1)}}@keyframes floatUp{0%{transform:translateY(10px);opacity:0}20%{opacity:1}100%{transform:translateY(-12px);opacity:0}}@keyframes coin{to{transform:translate(var(--x),var(--y)) rotate(720deg);opacity:0}}@keyframes unlock{0%{opacity:0;transform:translate(-50%,-30px) scale(.8)}20%,75%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-15px) scale(.98)}}@keyframes summary{0%{opacity:0;transform:translate(-50%,30px)}15%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-20px)}}
@media(max-width:1000px){.topbar{align-items:flex-start}.hud{justify-content:flex-end}.game-grid{grid-template-columns:1fr}.board-wrap{min-height:auto}.board{height:72vw;min-height:430px;max-height:650px}.side{display:grid;grid-template-columns:1fr 1fr}.controls{grid-column:1/-1}.brand-mark span{display:none}}
@media(max-width:700px){body{padding-left:8px;padding-right:8px}.topbar{display:block}.brand-mark{margin-bottom:9px}.hud{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.hud>div{padding:7px 9px}.game-grid{display:block}.board-wrap{padding:7px;border-radius:18px}.board{grid-template-columns:repeat(6,1fr);gap:4px;height:94vw;min-height:370px}.square{padding:4px;border-radius:9px}.square .cat{font-size:7px}.square .n{font-size:8px}.token{width:15px;height:15px;font-size:8px}.side{display:block}.side>.card{margin-top:10px}.controls{display:flex}.hero{min-height:76vh;padding:30px 14px}.modal-card{padding:18px}.choice-grid{grid-template-columns:1fr}.result-card{grid-template-columns:48px 1fr}.result-details{grid-column:1/3;grid-template-columns:1fr 1fr}.move-summary{grid-column:1/3}.result-main{min-width:0}}
.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}


/* Named-player setup, instructions page, and per-turn totals */
.secondary{
  border-radius:14px;
  border:1px solid rgba(232,198,106,.45);
  padding:13px 18px;
  background:rgba(7,18,32,.72);
  color:var(--gold);
  font-weight:900;
  letter-spacing:.06em;
  cursor:pointer
}
.secondary:hover,.text-button:hover{border-color:var(--gold);background:rgba(232,198,106,.08)}
.player-setup-card{
  width:min(760px,100%);
  margin-top:24px;
  padding:18px;
  border:1px solid rgba(232,198,106,.18);
  border-radius:20px;
  background:rgba(5,15,26,.66);
  position:relative;
  z-index:1
}
.setup-top-row{display:flex;align-items:end;justify-content:center;gap:12px;flex-wrap:wrap}
.select-label{display:grid;gap:7px;text-align:left;color:var(--muted);font-size:12px;min-width:210px}
.name-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:18px 0 10px;text-align:left}
.name-heading strong{color:var(--gold);font-size:15px}
.name-heading span{color:var(--muted);font-size:11px}
.player-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.player-name-field{display:grid;gap:6px;text-align:left;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(13,28,45,.72)}
.player-name-field>span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.05em}
.player-name-field input{
  width:100%;
  border:1px solid rgba(232,198,106,.22);
  border-radius:10px;
  padding:11px 12px;
  background:#071220;
  color:var(--text);
  font:inherit;
  outline:none
}
.player-name-field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,198,106,.09)}
.start-game-button{width:100%;margin-top:14px}
.player-dot{display:inline-block;width:12px;height:12px;border-radius:50%;flex:0 0 auto;box-shadow:0 2px 7px rgba(0,0,0,.35)}
.player-dot.p1{background:var(--gold)}
.player-dot.p2{background:var(--blue)}
.player-dot.p3{background:var(--green)}
.player-dot.p4{background:var(--purple)}

.instructions-card{max-width:1060px;margin:3vh auto;padding:clamp(24px,5vw,50px)}
.instructions-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:22px}
.instructions-heading h2{letter-spacing:.04em;margin-top:8px;line-height:1.2}
.instructions-crest{width:74px;height:74px;border:2px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font:46px Georgia,serif;flex:0 0 auto}
.instructions-intro{color:var(--muted);font-size:17px;line-height:1.65;max-width:850px;margin:24px 0}
.instruction-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.instruction-step{position:relative;padding:20px 20px 18px 62px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(6,16,27,.5)}
.instruction-step h3{margin:0 0 7px;color:var(--gold)}
.instruction-step p{margin:0;color:var(--muted);line-height:1.55;font-size:14px}
.step-number{position:absolute;left:18px;top:18px;width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-weight:900}
.formula-card{display:grid;gap:6px;text-align:center;margin-top:18px;padding:20px;border:1px solid rgba(232,198,106,.28);border-radius:18px;background:rgba(232,198,106,.07)}
.formula-card span{color:var(--muted);font-size:10px;letter-spacing:.16em}
.formula-card strong{color:var(--gold);font-size:clamp(17px,3vw,24px)}
.instruction-actions{text-align:center;margin-top:22px}

.totals-card{padding:18px}
.totals-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.totals-card-heading h3{margin:3px 0 0;font-size:20px}
.total-symbol{width:40px;height:40px;border:1px solid rgba(232,198,106,.3);border-radius:50%;display:grid;place-items:center;color:var(--gold);font:24px Georgia,serif}
.player-totals{display:grid;gap:8px}
.player-total-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:rgba(6,16,27,.45);transition:border-color .2s,background .2s}
.player-total-row.active{border-color:rgba(232,198,106,.5);background:rgba(232,198,106,.07)}
.player-total-name{display:flex;align-items:center;gap:8px;min-width:0}
.player-total-name span{display:grid;min-width:0}
.player-total-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.player-total-name small,.player-total-value small{color:var(--muted);font-size:9px;letter-spacing:.08em}
.player-total-value{display:grid;text-align:right;flex:0 0 auto}
.player-total-value strong{color:var(--gold);font-size:14px}
.totals-note{color:var(--muted);font-size:10px;margin:10px 0 0;text-align:center}
.text-button{border:1px solid rgba(232,198,106,.25);border-radius:10px;background:transparent;color:var(--gold);padding:8px 10px;cursor:pointer;font-size:12px}

.turn-summary-card{max-width:780px}
.turn-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.turn-summary-heading h3{margin:5px 0 0}
.turn-check{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--green);color:var(--green);font-size:28px;font-weight:900}
.turn-summary-message{color:var(--muted);line-height:1.5;margin:15px 0}
.turn-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.turn-breakdown span{display:grid;gap:4px;padding:10px;border-radius:12px;background:rgba(255,255,255,.035);color:var(--muted);font-size:11px}
.turn-breakdown b{color:var(--text);font-size:14px}
.turn-breakdown .total-breakdown{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(232,198,106,.28);color:var(--gold)}
.turn-breakdown .total-breakdown b{color:var(--gold);font-size:19px}
.all-totals-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:9px}
.all-totals-heading span{font-size:11px;letter-spacing:.14em;color:var(--gold);font-weight:900}
.all-totals-heading small{color:var(--muted)}
.turn-totals{display:grid;gap:8px}
.turn-total-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(6,16,27,.5)}
.turn-total-row.completed{border-color:var(--gold);background:rgba(232,198,106,.08)}
.turn-total-name{display:flex;align-items:center;gap:9px;min-width:0}
.turn-total-name span,.turn-total-amount{display:grid}
.turn-total-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.turn-total-name small,.turn-total-amount small{color:var(--muted);font-size:9px;letter-spacing:.07em}
.turn-total-amount{text-align:right;flex:0 0 auto}
.turn-total-amount strong{color:var(--gold);font-size:17px}
.mini-formula{text-align:center;color:var(--muted);font-size:11px;margin:14px 0}
.turn-summary-card>#nextTurnBtn{width:100%}

@media(max-width:700px){
  .player-name-grid,.instruction-grid{grid-template-columns:1fr}
  .name-heading{display:grid}
  .setup-top-row{align-items:stretch}
  .setup-top-row>*{width:100%}
  .instructions-heading{align-items:flex-start}
  .instructions-crest{width:58px;height:58px;font-size:36px}
  .instruction-step{padding:18px 16px 18px 56px}
  .turn-breakdown{grid-template-columns:1fr 1fr}
  .controls{flex-wrap:wrap}
  .text-button{width:100%}
}
