:root{
  --bg:#e3e7f5;
  --bg2:#d8def0;
  --surface:#ffffff;
  --surface2:#f1f3fb;
  --surface3:#e4e8f7;
  --border:#dde0f5;
  --border2:#c8ccee;
  --accent:#4a41d0;
  --accent2:#d63d75;
  --accent3:#008870;
  --accent4:#b45309;
  --accent5:#6b62d8;
  --red:#dc2c4d;
  --green:#008870;
  --text:#12143a;
  --text2:#3d416e;
  --text3:#5a5e8a;
  --focus:#4a41d0;
  --shadow:0 4px 24px rgba(91,82,232,.10);
  --shadow2:0 2px 12px rgba(91,82,232,.08);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:'Poppins',sans-serif;min-height:100vh;overflow-x:hidden;font-size:18px;line-height:1.65;}

/* Screen-reader only utility */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:0 0 8px 0;z-index:9999;font-weight:700;text-decoration:none;}
.skip-link:focus{left:0;}

/* Focus visibility for accessibility (WCAG 2.4.7) */
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px;}
button:focus-visible,a:focus-visible,input:focus-visible,[role="button"]:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--focus);outline-offset:3px;}

/* ─── SCREENS ─── */
.screen{display:none;width:100%;min-height:100vh;}
.screen.active{display:flex;}

/* ─── FLOATING BUBBLES BG ─── */
.bubbles{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}
.bubble{position:absolute;border-radius:50%;opacity:.18;animation:floatBubble linear infinite;}
@keyframes floatBubble{0%{transform:translateY(100vh) scale(0);}100%{transform:translateY(-200px) scale(1);}}

/* ══════════════════════════
   SPLASH
══════════════════════════ */
#splash{flex-direction:column;align-items:center;justify-content:center;position:relative;background:linear-gradient(145deg,#eef0ff 0%,#f5f0ff 40%,#fff0f8 100%);overflow:hidden;}
.splash-deco{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;}
.splash-deco1{width:400px;height:400px;background:#c7c2ff;top:-100px;right:-80px;opacity:.35;}
.splash-deco2{width:350px;height:350px;background:#ffc2da;bottom:-80px;left:-60px;opacity:.3;}
.splash-deco3{width:250px;height:250px;background:#b2f5ea;top:40%;left:5%;opacity:.25;}

.splash-content{position:relative;z-index:1;text-align:center;max-width:780px;padding:2rem;}
.splash-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--surface);border:1.5px solid var(--border2);border-radius:100px;padding:.45rem 1.2rem;font-size:.78rem;font-weight:700;color:var(--accent);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:1.8rem;box-shadow:var(--shadow2);animation:fadeUp .6s ease both;}
.splash-h1{font-family:'Nunito',sans-serif;font-size:clamp(3rem,7vw,5.5rem);font-weight:900;line-height:1.05;margin-bottom:.8rem;color:var(--text);animation:fadeUp .6s .1s ease both;}
.splash-h1 .grad{background:linear-gradient(90deg,#5b52e8,#ff5b8d,#00c9a7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.splash-sub{color:var(--text2);font-size:1.05rem;line-height:1.75;max-width:560px;margin:0 auto 2.5rem;animation:fadeUp .6s .2s ease both;}

.char-row{display:flex;gap:1rem;justify-content:center;margin-bottom:2.5rem;animation:fadeUp .6s .3s ease both;flex-wrap:wrap;}
.splash-char-pill{display:flex;align-items:center;gap:.6rem;background:var(--surface);border:1.5px solid var(--border);border-radius:100px;padding:.4rem 1rem .4rem .4rem;box-shadow:var(--shadow2);cursor:pointer;transition:all .2s;}
.splash-char-pill:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px rgba(91,82,232,.15);}
.splash-char-pill .av{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.splash-char-pill .cn{font-size:.75rem;font-weight:700;color:var(--text);}
.splash-char-pill .ct{font-size:.65rem;color:var(--text3);}

.btn-start{display:inline-flex;align-items:center;gap:.8rem;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:1.15rem;padding:1rem 2.8rem;border-radius:100px;border:none;cursor:pointer;box-shadow:0 8px 30px rgba(91,82,232,.35);transition:all .25s;animation:fadeUp .6s .4s ease both;}
.btn-start:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(91,82,232,.45);}

@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

/* ══════════════════════════
   PLAYER REGISTRATION
══════════════════════════ */
#register{flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#f0f2ff,#fdf0ff);position:relative;overflow:hidden;}
.reg-deco1{position:absolute;width:500px;height:500px;background:radial-gradient(#c7c2ff,transparent 70%);top:-100px;right:-100px;opacity:.4;pointer-events:none;}
.reg-deco2{position:absolute;width:400px;height:400px;background:radial-gradient(#ffc2da,transparent 70%);bottom:-100px;left:-60px;opacity:.3;pointer-events:none;}
.reg-card{background:var(--surface);border-radius:28px;padding:2.5rem;max-width:520px;width:100%;box-shadow:0 20px 60px rgba(91,82,232,.15);position:relative;z-index:1;animation:fadeUp .5s ease both;}
.reg-header{text-align:center;margin-bottom:2rem;}
.reg-header .icon{font-size:3rem;margin-bottom:.5rem;}
.reg-header h2{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.8rem;color:var(--text);margin-bottom:.3rem;}
.reg-header p{color:var(--text2);font-size:.88rem;}
.form-row{margin-bottom:1.2rem;}
.form-row label{display:block;font-size:.8rem;font-weight:600;color:var(--text2);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:1px;}
.form-row input,.form-row select{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border2);border-radius:12px;font-family:'Poppins',sans-serif;font-size:.9rem;color:var(--text);background:var(--surface2);outline:none;transition:border .2s,box-shadow .2s;}
.form-row input:focus,.form-row select:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(91,82,232,.1);}
.avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.6rem;margin-top:.4rem;}
.av-opt{width:100%;aspect-ratio:1;border-radius:14px;border:2px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:1.6rem;cursor:pointer;transition:all .2s;font-family:inherit;color:inherit;}
.av-opt:hover{border-color:var(--accent);background:rgba(91,82,232,.06);}
.av-opt.sel{border-color:var(--accent);background:rgba(91,82,232,.1);box-shadow:0 0 0 3px rgba(91,82,232,.2);}
.btn-reg{width:100%;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;padding:.9rem;border-radius:14px;border:none;cursor:pointer;margin-top:.5rem;transition:all .2s;box-shadow:0 6px 20px rgba(91,82,232,.3);}
.btn-reg:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(91,82,232,.4);}

/* ══════════════════════════
   GAME
══════════════════════════ */
#game{flex-direction:column;}

/* HUD */
.hud{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.5rem;background:var(--surface);border-bottom:1.5px solid var(--border);position:sticky;top:0;z-index:200;gap:1rem;flex-wrap:wrap;box-shadow:0 2px 12px rgba(91,82,232,.07);}
.hud-left{display:flex;align-items:center;gap:1rem;}
.hud-logo{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.1rem;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.player-chip{display:flex;align-items:center;gap:.5rem;background:var(--surface2);border:1.5px solid var(--border);border-radius:100px;padding:.3rem .8rem .3rem .4rem;font-size:.78rem;font-weight:600;}
.player-chip .pav{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:.9rem;}
.hud-stats{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;}
.hstat{display:flex;align-items:center;gap:.35rem;background:var(--surface2);border:1.5px solid var(--border);border-radius:100px;padding:.4rem 1rem;font-size:.92rem;font-weight:600;color:var(--text);}
.hstat b{font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;}
.hud-right{display:flex;align-items:center;gap:.7rem;}
.week-chip{font-family:'Nunito',sans-serif;font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent3);background:rgba(0,201,167,.1);border:1.5px solid rgba(0,201,167,.3);padding:.3rem .9rem;border-radius:100px;white-space:nowrap;}
.btn-voice{background:var(--surface2);border:1.5px solid var(--border);border-radius:100px;padding:.3rem .7rem;font-size:.72rem;cursor:pointer;color:var(--text2);transition:all .2s;font-weight:600;}
.btn-voice:hover{border-color:var(--accent);color:var(--accent);}
.prog-wrap{height:5px;background:var(--bg2);}
.prog-fill{height:5px;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent3));transition:width .6s cubic-bezier(.4,0,.2,1);}

/* MAIN GRID */
.game-body{flex:1;display:grid;grid-template-columns:1fr 320px;min-height:0;}

/* LEFT PANEL */
.panel-left{background:var(--surface);border-right:1.5px solid var(--border);overflow-y:auto;}
.panel-head{padding:1rem 1.1rem .5rem;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text2);}
.char-card{padding:.8rem 1rem;border-bottom:1px solid var(--border);cursor:pointer;transition:all .2s;display:flex;gap:.7rem;align-items:flex-start;position:relative;}
.char-card:hover{background:var(--surface2);}
.char-card.sel{background:rgba(91,82,232,.05);border-left:3px solid var(--accent);}
.char-card .av{width:52px;height:66px;flex-shrink:0;border-radius:12px;overflow:hidden;background:var(--surface2);}
.char-card .av svg{width:100%;height:100%;}
.char-meta h4{font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;color:var(--text);}
.char-meta .role{font-size:.68rem;color:var(--text2);margin:.1rem 0 .3rem;}
.type-pill{display:inline-block;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:.15rem .5rem;border-radius:100px;border:1px solid;}
.mini-bars{margin-top:.5rem;display:flex;flex-direction:column;gap:.22rem;}
.mini-bar{display:flex;align-items:center;gap:.4rem;font-size:.6rem;color:var(--text3);}
.mini-bar span:first-child{width:55px;}
.mini-track{flex:1;height:4px;background:var(--border);border-radius:10px;overflow:hidden;}
.mini-fill{height:100%;border-radius:10px;}
.mood-dot{width:8px;height:8px;border-radius:50%;position:absolute;top:4px;right:4px;}

/* CENTER */
.panel-center{display:flex;flex-direction:column;overflow:hidden;background:var(--bg);}
.office-tabs{display:flex;gap:.5rem;padding:.7rem 1.1rem;border-bottom:1.5px solid var(--border);background:var(--surface);}
.otab{font-size:.76rem;font-weight:600;padding:.32rem .8rem;border-radius:100px;cursor:pointer;border:1.5px solid transparent;color:var(--text2);transition:all .2s;}
.otab.active{background:var(--surface2);border-color:var(--border2);color:var(--text);}
.office-scroll{flex:1;overflow:auto;padding:1.1rem;display:flex;flex-direction:column;gap:1rem;}

/* animated office scene */
.office-scene{position:relative;width:100%;border-radius:20px;overflow:hidden;border:1.5px solid var(--border);box-shadow:var(--shadow);}
.office-scene svg{display:block;width:100%;height:auto;}

/* room grid */
.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;}
.room-card{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;overflow:hidden;cursor:pointer;transition:all .22s;position:relative;box-shadow:var(--shadow2);}
.room-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 30px rgba(91,82,232,.15);}
.room-card.has-event{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(255,91,141,.15);}
.room-card.has-event::after{content:'';position:absolute;inset:0;border-radius:16px;animation:eventGlow 2s infinite;}
@keyframes eventGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,91,141,.3);}50%{box-shadow:0 0 0 6px rgba(255,91,141,0);}}
.room-thumb{height:85px;overflow:hidden;position:relative;}
.room-thumb svg{width:100%;height:100%;}
.room-info{padding:.8rem .9rem 1rem;}
.room-name{font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;color:var(--text);margin-bottom:.3rem;}
.room-desc{font-size:.85rem;color:var(--text2);line-height:1.5;}
.room-occ{display:flex;gap:3px;margin-top:.5rem;}
.room-occ-av{width:20px;height:26px;border-radius:5px;overflow:hidden;border:1.5px solid #fff;}
.room-occ-av svg{width:100%;height:100%;}
.event-pip{position:absolute;top:.5rem;right:.5rem;background:var(--accent2);color:#fff;font-size:.6rem;font-weight:800;padding:.15rem .45rem;border-radius:100px;}


/* All-scenario card view */
.scenario-grid-heading{
  margin:.2rem 0 1rem;
  padding:1rem 1.1rem;
  background:var(--surface);
  border:2px solid var(--border);
  border-radius:16px;
}
.scenario-grid-heading h2{
  font-family:'Nunito',sans-serif;
  font-size:1.45rem;
  line-height:1.25;
  color:var(--text);
  margin-bottom:.3rem;
}
.scenario-grid-heading p{
  color:var(--text2);
  font-size:1rem;
  line-height:1.6;
}
.scenario-card .room-thumb{
  height:105px;
}
.scenario-card .room-info{
  min-height:155px;
  display:flex;
  flex-direction:column;
}
.scenario-card .room-desc{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  line-height:1.45!important;
  font-size:.92rem!important;
  margin-top:.15rem;
}
.scenario-card .scenario-number{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:.18rem .55rem;
  margin-bottom:.45rem;
  border-radius:100px;
  background:var(--surface3);
  border:1px solid var(--border2);
  color:var(--text2);
  font-size:.76rem;
  font-weight:800;
}
.scenario-card .scenario-person{
  margin-top:.45rem;
  color:var(--text2);
  font-size:.88rem;
  font-weight:600;
}
.scenario-card .room-occ{
  margin-top:auto;
  padding-top:.7rem;
  align-items:center;
}
.scenario-card.completed{
  border-color:var(--green)!important;
  opacity:.82;
  cursor:default;
}
.scenario-card.completed .event-pip{
  background:var(--green)!important;
}
.scenario-card.completed:hover{
  transform:none;
  box-shadow:var(--shadow2);
}
@media (max-width:640px){
  .scenario-card .room-info{min-height:0;padding:.8rem .9rem!important;}
  .scenario-card .room-desc{font-size:.9rem!important;-webkit-line-clamp:2;}
  .scenario-grid-heading h2{font-size:1.3rem;}
}

/* RIGHT PANEL */
.panel-right{background:var(--surface);border-left:1.5px solid var(--border);overflow-y:auto;}
.metrics-section{padding:1rem 1.1rem;border-bottom:1px solid var(--border);}
.met-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;}
.met-label{font-size:.7rem;font-weight:600;color:var(--text2);width:72px;}
.met-track{flex:1;height:10px;background:var(--bg2);border-radius:10px;overflow:hidden;}
.met-fill{height:100%;border-radius:10px;transition:width .7s cubic-bezier(.4,0,.2,1);}
.met-val{font-family:'Nunito',sans-serif;font-weight:800;font-size:.72rem;width:30px;text-align:right;}

.ev-list-wrap{flex:1;}
.ev-item{padding:.9rem 1.1rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .18s;}
.ev-item:hover{background:var(--surface2);}
.ev-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--accent2);margin-bottom:.35rem;}
.ev-char-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;}
.ev-char-av{width:34px;height:44px;border-radius:8px;overflow:hidden;flex-shrink:0;border:1.5px solid var(--border);}
.ev-char-av svg{width:100%;height:100%;}
.ev-title{font-family:'Nunito',sans-serif;font-weight:800;font-size:.98rem;color:var(--text);margin-bottom:.3rem;}
.ev-preview{font-size:.82rem;color:var(--text2);line-height:1.55;margin-bottom:.6rem;}
.btn-respond{background:linear-gradient(90deg,var(--accent),#7c6ee8);border:none;color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:.82rem;padding:.45rem 1rem;border-radius:100px;cursor:pointer;transition:all .2s;}
.btn-respond:hover{opacity:.9;}
.btn-respond:focus-visible{outline:3px solid var(--focus);outline-offset:2px;}

.log-section{padding:.9rem 1.1rem;}
.log-entry{display:flex;gap:.55rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.85rem;line-height:1.6;color:var(--text2);}
.log-entry:last-child{border-bottom:none;}

/* ══════════════════════════
   ANIMATED SCENE MODAL (Scenario)
══════════════════════════ */
.modal-overlay{position:fixed;inset:0;background:rgba(240,242,255,.85);backdrop-filter:blur(12px);z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s;}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal-box{background:var(--surface);border:1.5px solid var(--border);border-radius:28px;width:100%;max-width:700px;max-height:92vh;overflow-y:auto;position:relative;box-shadow:0 30px 80px rgba(91,82,232,.2);transform:translateY(16px) scale(.97);transition:all .3s;}
.modal-overlay.open .modal-box{transform:translateY(0) scale(1);}

/* ANIMATED SCENE */
.scene-stage{width:100%;height:200px;position:relative;overflow:hidden;border-radius:28px 28px 0 0;}
.scene-stage svg.bg{position:absolute;inset:0;width:100%;height:100%;}
.scene-chars-wrap{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:2.5rem;padding:0 2rem;align-items:flex-end;}
.scene-figure{display:flex;flex-direction:column;align-items:center;animation:charBob 3s ease-in-out infinite;}
.scene-figure.delay1{animation-delay:.5s;}
.scene-figure.delay2{animation-delay:1s;}
@keyframes charBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.scene-figure svg{height:115px;width:auto;filter:drop-shadow(0 6px 16px rgba(0,0,0,.12));}
.scene-name-tag{
  display:none!important;
}
.scene-figure{
  position:relative!important;
  padding-bottom:10px!important;
}
.scene-figure::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:62px;
  height:12px;
  border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(36,42,84,.25) 0%, rgba(36,42,84,.12) 45%, rgba(36,42,84,0) 75%);
  pointer-events:none;
}

/* speech bubble */
.speech-bubble{position:absolute;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:.5rem .8rem;font-size:.72rem;color:var(--text);max-width:160px;line-height:1.4;box-shadow:0 4px 14px rgba(91,82,232,.12);animation:bubblePop .4s cubic-bezier(.34,1.56,.64,1) both;}
.speech-bubble::after{content:'';position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:var(--border);}
.speech-bubble::before{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:#fff;z-index:1;}
@keyframes bubblePop{from{opacity:0;transform:scale(.7);}to{opacity:1;transform:scale(1);}}

/* sound waves (animated) */
.sound-wave{display:inline-flex;gap:2px;align-items:center;height:14px;}
.sound-wave span{width:3px;background:var(--accent);border-radius:2px;animation:wave .8s ease-in-out infinite;}
.sound-wave span:nth-child(2){animation-delay:.1s;}
.sound-wave span:nth-child(3){animation-delay:.2s;}
.sound-wave span:nth-child(4){animation-delay:.3s;}
@keyframes wave{0%,100%{height:4px;}50%{height:14px;}}

.modal-body{padding:1.6rem;}
.modal-tag{display:inline-flex;align-items:center;gap:.4rem;background:rgba(74,65,208,.1);border:1.5px solid rgba(74,65,208,.3);color:var(--accent);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;padding:.35rem .9rem;border-radius:100px;margin-bottom:.9rem;}
.modal-title{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.65rem;color:var(--text);margin-bottom:.7rem;line-height:1.25;}
.modal-scene-text{background:var(--surface2);border:1.5px solid var(--border);border-radius:14px;padding:1.1rem 1.2rem;font-size:1rem;color:var(--text);line-height:1.75;margin-bottom:1.2rem;}
.modal-q{font-family:'Nunito',sans-serif;font-weight:800;font-size:1.1rem;color:var(--text);margin-bottom:.9rem;}
.choices-wrap{display:flex;flex-direction:column;gap:.6rem;}
.choice-btn{border:2px solid var(--border);background:var(--surface2);color:var(--text);padding:.95rem 1.1rem;border-radius:14px;cursor:pointer;font-family:'Poppins',sans-serif;font-size:.98rem;text-align:left;transition:all .2s;display:flex;align-items:flex-start;gap:.75rem;line-height:1.55;font-weight:500;}
.choice-btn:hover{border-color:var(--accent);background:rgba(74,65,208,.05);}
.choice-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent);}
.choice-btn:disabled{pointer-events:none;}
.cnum{width:30px;height:30px;min-width:30px;border-radius:50%;background:var(--surface3);display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;color:var(--accent);border:1.5px solid var(--border2);}

/* feedback */
.feedback{border-radius:14px;padding:1.1rem 1.2rem;margin-top:.9rem;font-size:.95rem;line-height:1.7;display:none;}
.feedback.show{display:block;}
.feedback.pos{background:#ecfdf5;border:2px solid #6ee7b7;color:#04533b;}
.feedback.neg{background:#fef2f2;border:2px solid #fca5a5;color:#7f1d1d;}
.feedback.neu{background:#f5f3ff;border:2px solid #c4b5fd;color:#3b0a80;}
.feedback-learn{margin-top:.75rem;font-size:.9rem;font-style:italic;font-weight:500;}
.btn-next{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;background:var(--accent);color:#fff;border:none;padding:.7rem 1.6rem;border-radius:100px;cursor:pointer;font-family:'Nunito',sans-serif;font-weight:800;font-size:.95rem;transition:all .2s;}
.btn-next:hover{background:#3a33b8;}
.btn-next:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px var(--accent);}
.modal-close{position:absolute;top:.9rem;right:.9rem;background:var(--surface2);border:1.5px solid var(--border);color:var(--text2);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s;}
.modal-close:hover{color:var(--text);border-color:var(--accent2);}

/* voice indicator */
.voice-bar{display:flex;align-items:center;gap:.5rem;background:rgba(91,82,232,.07);border:1px solid rgba(91,82,232,.15);border-radius:100px;padding:.3rem .8rem;font-size:.72rem;color:var(--accent);font-weight:600;margin-bottom:.8rem;}

/* ══════════════════════════
   NARRATIVE INTRO MODAL
══════════════════════════ */
.intro-overlay{position:fixed;inset:0;background:rgba(240,242,255,.92);backdrop-filter:blur(14px);z-index:600;display:none;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;}
.intro-box{background:var(--surface);border:1.5px solid var(--border);border-radius:28px;width:100%;max-width:640px;max-height:92vh;overflow-y:auto;box-shadow:0 30px 80px rgba(91,82,232,.18);}

/* cinematic header banner */
.intro-banner{width:100%;height:170px;position:relative;overflow:hidden;border-radius:28px 28px 0 0;background:linear-gradient(135deg,#eef0ff,#f5f0ff);}
.intro-banner svg{width:100%;height:100%;}
.intro-banner-chars{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:flex-end;gap:-.5rem;padding:0 1rem;}
.intro-banner-chars .ibc{display:flex;flex-direction:column;align-items:center;}
.intro-banner-chars .ibc svg{height:90px;width:auto;filter:drop-shadow(0 4px 10px rgba(91,82,232,.15));}
.intro-banner-chars .ibc span{font-size:.52rem;font-weight:700;color:var(--text2);background:var(--surface);border-radius:100px;padding:.1rem .4rem;margin-top:2px;white-space:nowrap;}

/* intro sections */
.intro-content{padding:1.5rem 1.6rem 1.8rem;}
.intro-kicker{display:inline-flex;align-items:center;gap:.4rem;background:rgba(91,82,232,.08);border:1.5px solid rgba(91,82,232,.18);color:var(--accent);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;padding:.28rem .8rem;border-radius:100px;margin-bottom:.9rem;}
.intro-h1{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.55rem;color:var(--text);line-height:1.2;margin-bottom:.5rem;}
.intro-h1 span{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.intro-lead{font-size:.88rem;color:var(--text2);line-height:1.75;margin-bottom:1.2rem;}

/* briefing cards */
.intro-cards{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.3rem;}
.intro-card{background:var(--surface2);border:1.5px solid var(--border);border-radius:16px;padding:.9rem 1rem;}
.intro-card-icon{font-size:1.4rem;margin-bottom:.35rem;}
.intro-card-title{font-family:'Nunito',sans-serif;font-weight:800;font-size:.82rem;color:var(--text);margin-bottom:.25rem;}
.intro-card-body{font-size:.72rem;color:var(--text2);line-height:1.55;}

/* objectives list */
.intro-objectives{background:linear-gradient(135deg,rgba(91,82,232,.06),rgba(0,201,167,.05));border:1.5px solid rgba(91,82,232,.14);border-radius:16px;padding:1rem 1.1rem;margin-bottom:1.3rem;}
.intro-objectives h4{font-family:'Nunito',sans-serif;font-weight:800;font-size:.82rem;color:var(--text);margin-bottom:.6rem;}
.intro-obj-item{display:flex;align-items:flex-start;gap:.6rem;padding:.35rem 0;border-bottom:1px solid rgba(91,82,232,.08);font-size:.78rem;color:var(--text2);line-height:1.5;}
.intro-obj-item:last-child{border-bottom:none;}
.intro-obj-item .obj-icon{font-size:.95rem;flex-shrink:0;margin-top:.05rem;}

/* page dots */
.intro-pages{display:flex;gap:.4rem;justify-content:center;margin-bottom:1rem;}
.intro-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .25s;cursor:pointer;}
.intro-dot.active{background:var(--accent);width:22px;border-radius:100px;}

/* CTA */
.intro-cta{width:100%;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-family:'Nunito',sans-serif;font-weight:900;font-size:1rem;padding:.9rem;border-radius:14px;border:none;cursor:pointer;transition:all .2s;box-shadow:0 6px 20px rgba(91,82,232,.3);display:flex;align-items:center;justify-content:center;gap:.6rem;}
.intro-cta:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(91,82,232,.4);}

/* ══════════════════════════
   LEADERBOARD
══════════════════════════ */
#leaderboard{flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem 1rem;background:linear-gradient(145deg,#f0f2ff,#fdf0ff);overflow-y:auto;}
.lb-wrap{max-width:700px;width:100%;position:relative;z-index:1;}
.lb-header{text-align:center;margin-bottom:2rem;}
.lb-header h2{font-family:'Nunito',sans-serif;font-weight:900;font-size:2rem;color:var(--text);margin-bottom:.3rem;}
.lb-header p{color:var(--text2);font-size:.88rem;}
.lb-your-result{background:var(--surface);border-radius:22px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow);border:1.5px solid var(--border);display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;}
.lb-score-big{text-align:center;}
.lb-score-big .num{font-family:'Nunito',sans-serif;font-size:4rem;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1;}
.lb-score-big .lbl{font-size:.72rem;color:var(--text2);text-transform:uppercase;letter-spacing:1px;font-weight:600;}
.lb-grade-detail{flex:1;min-width:200px;}
.lb-grade-detail h3{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.2rem;color:var(--text);margin-bottom:.4rem;}
.lb-grade-detail p{font-size:.82rem;color:var(--text2);line-height:1.6;}
.lb-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem;}
.lb-badge{font-size:.7rem;font-weight:700;padding:.25rem .7rem;border-radius:100px;background:rgba(255,176,32,.1);border:1.5px solid rgba(255,176,32,.3);color:#b45309;}

.lb-table-wrap{background:var(--surface);border-radius:22px;box-shadow:var(--shadow);border:1.5px solid var(--border);overflow:hidden;margin-bottom:1.5rem;}
.lb-table-head{display:grid;grid-template-columns:48px 40px 1fr 100px;gap:.5rem;padding:.75rem 1.2rem;background:var(--surface2);border-bottom:1.5px solid var(--border);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text2);}
.lb-row{display:grid;grid-template-columns:48px 40px 1fr 100px;gap:.5rem;padding:.75rem 1.2rem;border-bottom:1px solid var(--border);align-items:center;transition:background .15s;}
.lb-row:hover{background:var(--surface2);}
.lb-row:last-child{border-bottom:none;}
.lb-row.you{background:rgba(91,82,232,.05);border-left:3px solid var(--accent);}
.lb-rank{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.1rem;text-align:center;}
.lb-rank.gold{color:#d97706;}
.lb-rank.silver{color:#6b7280;}
.lb-rank.bronze{color:#92400e;}
.lb-pav{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:var(--surface2);border:1.5px solid var(--border);}
.lb-name{font-weight:600;font-size:.85rem;color:var(--text);}
.lb-name .dept{font-size:.68rem;color:var(--text3);font-weight:400;}
.lb-stat{font-family:'Nunito',sans-serif;font-weight:800;font-size:.88rem;text-align:center;}
.lb-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;}
.btn-lb{background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:.9rem;padding:.75rem 2rem;border-radius:100px;border:none;cursor:pointer;transition:all .2s;box-shadow:0 6px 20px rgba(91,82,232,.3);}
.btn-lb:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(91,82,232,.4);}
.btn-lb-sec{background:var(--surface);color:var(--accent);font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.75rem 2rem;border-radius:100px;border:1.5px solid var(--accent);cursor:pointer;transition:all .2s;}
.btn-lb-sec:hover{background:rgba(91,82,232,.05);}

/* confetti */
.confetti-piece{position:fixed;width:8px;height:12px;top:-20px;animation:confettiFall linear forwards;pointer-events:none;z-index:9999;border-radius:2px;}
@keyframes confettiFall{to{transform:translateY(110vh) rotate(720deg);opacity:0;}}

/* TOAST */
.toast-wrap{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;display:flex;flex-direction:column;gap:.4rem;}
.toast{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;padding:.6rem 1rem;font-size:.78rem;min-width:210px;animation:toastSlide .3s ease;display:flex;align-items:center;gap:.5rem;box-shadow:var(--shadow);}
.toast.pos{border-color:#a7f3d0;color:#065f46;}
.toast.neg{border-color:#fecdd3;color:#9f1239;}
.toast.neu{border-color:var(--border2);color:var(--text2);}
@keyframes toastSlide{from{transform:translateX(30px);opacity:0;}to{transform:translateX(0);opacity:1;}}

/* POINT POPUP */
.pt-popup{position:fixed;pointer-events:none;font-family:'Nunito',sans-serif;font-weight:900;font-size:1.4rem;z-index:800;animation:ptFloat 1.4s ease forwards;}
@keyframes ptFloat{0%{opacity:1;transform:translateY(0) scale(1);}100%{opacity:0;transform:translateY(-80px) scale(1.3);}}


/* Accessibility and requested cleanup updates */
.game-body{grid-template-columns:1fr!important;}
.panel-right,.week-chip,.btn-voice,.voice-bar,.speech-bubble{display:none!important;}
.hud{background:#f8f9ff;}
.panel-center{background:#e3e7f5;}
.office-scroll{background:#e3e7f5;}
.room-desc,.ev-preview,.modal-scene-text,.intro-lead,.log-entry{font-size:1rem;color:#252957;}
.room-name,.modal-title,.ev-title{color:#101331;}
.choice-btn{font-size:1.05rem;line-height:1.65;background:#f5f6ff;border-color:#b5bddb;color:#101331;}
.modal-scene-text{background:#f4f6ff;border-color:#b5bddb;}
.hstat,.player-chip,.otab,.room-card,.lb-table-wrap,.lb-your-result{border-color:#b5bddb;}
.btn-download{background:var(--surface);color:var(--accent);font-family:'Nunito',sans-serif;font-weight:800;font-size:.95rem;padding:.75rem 2rem;border-radius:100px;border:1.5px solid var(--accent);cursor:pointer;transition:all .2s;}
.btn-download:hover{background:rgba(74,65,208,.07);transform:translateY(-2px);}
.accessibility-note{font-size:.86rem;color:#252957;text-align:center;margin-top:1rem;line-height:1.6;}


/* =========================================================
   WCAG 2.2 AA LOW-VISION + NVDA ACCESSIBILITY PATCH
   Keeps the same MindBridge brand colors, but uses them on
   dark accessible surfaces with light foreground text.
   ========================================================= */
:root{
  --bg:#12143a;
  --bg2:#191c4a;
  --surface:#1c2052;
  --surface2:#252a66;
  --surface3:#30367a;
  --border:#8f96d8;
  --border2:#c8ccee;
  --accent:#8f88ff;
  --accent2:#ff7aa8;
  --accent3:#2ed3b2;
  --accent4:#ffc45c;
  --accent5:#aaa4ff;
  --red:#ff6b81;
  --green:#2ed3b2;
  --text:#ffffff;
  --text2:#f0f2ff;
  --text3:#d8def0;
  --focus:#ffd54f;
  --shadow:0 4px 24px rgba(0,0,0,.35);
  --shadow2:0 2px 12px rgba(0,0,0,.28);
}
html,body{background:var(--bg)!important;color:var(--text)!important;}
body{font-size:18px!important;line-height:1.7!important;}
#splash,#register,#leaderboard,.panel-center,.office-scroll,.game-body{
  background:linear-gradient(145deg,#12143a 0%,#191c4a 50%,#252a66 100%)!important;
  color:var(--text)!important;
}
.splash-deco,.reg-deco1,.reg-deco2,.bubbles{opacity:.08!important;}
.splash-content,.reg-card,.hud,.office-tabs,.room-card,.modal-box,.intro-box,
.lb-your-result,.lb-table-wrap,.player-chip,.hstat,.choice-btn,.modal-scene-text,
.feedback,.btn-lb-sec,.btn-download{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
  box-shadow:var(--shadow2)!important;
}
.splash-badge,.splash-char-pill,.av-opt,.form-row input,.form-row select,
.otab,.room-info,.metrics-section,.lb-row,.lb-table-head{
  background:var(--surface2)!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
}
.splash-h1,.splash-sub,.reg-header h2,.reg-header p,.form-row label,
.hud-logo,.hstat,.hstat b,.room-name,.room-desc,.modal-title,.modal-q,
.modal-scene-text,.choice-btn,.lb-header h2,.lb-header p,.lb-grade-detail h3,
.lb-grade-detail p,.lb-name,.lb-stat,.accessibility-note,.panel-head,
.ev-title,.ev-preview,.ev-tag,.log-entry,.intro-lead,.intro-card-title,.intro-card-body{
  color:var(--text)!important;
}
.room-desc,.splash-sub,.reg-header p,.lb-header p,.lb-grade-detail p,
.accessibility-note,.intro-lead,.intro-card-body,.modal-scene-text{
  color:var(--text2)!important;
}
.hud-logo,.splash-h1 .grad,.lb-score-big .num{
  background:none!important;
  -webkit-text-fill-color:initial!important;
  color:var(--accent4)!important;
}
.btn-start,.btn-reg,.btn-respond,.btn-next,.btn-lb,.otab.active{
  background:#4a41d0!important;
  color:#ffffff!important;
  border:2px solid #c8ccee!important;
  box-shadow:none!important;
}
.btn-start:hover,.btn-reg:hover,.btn-respond:hover,.btn-next:hover,.btn-lb:hover,.otab.active:hover{
  background:#5b52e8!important;
}
.btn-lb-sec,.btn-download{
  color:#ffffff!important;
  border:2px solid var(--border2)!important;
}
.office-scene{
  background:#191c4a!important;
  border:2px solid var(--border)!important;
}
.room-card{
  border:2px solid var(--border)!important;
}
.room-card.has-event{
  border:3px solid var(--accent2)!important;
  box-shadow:0 0 0 3px rgba(255,122,168,.35)!important;
}
.choice-btn{
  font-size:1.08rem!important;
  line-height:1.7!important;
  border:2px solid var(--border2)!important;
}
.choice-btn:hover,.choice-btn:focus-visible{
  border-color:var(--focus)!important;
  background:#30367a!important;
}
.cnum{
  background:#12143a!important;
  color:#ffffff!important;
  border-color:var(--border2)!important;
}
.modal-overlay,.intro-overlay{
  background:rgba(18,20,58,.92)!important;
}
.modal-close{
  background:#12143a!important;
  color:#ffffff!important;
  border:2px solid var(--border2)!important;
}
.feedback.pos{background:#063b2d!important;border-color:#2ed3b2!important;color:#ffffff!important;}
.feedback.neg{background:#4a1020!important;border-color:#ff6b81!important;color:#ffffff!important;}
.feedback.neu{background:#252a66!important;border-color:#c8ccee!important;color:#ffffff!important;}
.prog-wrap{background:#30367a!important;}
.prog-fill{background:linear-gradient(90deg,#8f88ff,#ff7aa8,#2ed3b2)!important;}
.skip-link:focus{
  left:0!important;
  background:#ffd54f!important;
  color:#12143a!important;
  outline:4px solid #ffffff!important;
}
*:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
[role="button"]:focus-visible,
[tabindex="0"]:focus-visible{
  outline:4px solid var(--focus)!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 2px #12143a!important;
}
::placeholder{color:#d8def0!important;opacity:1!important;}
a{color:#ffd54f!important;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
}


/* =========================================================
   RESPONSIVE + OVERLAP FIXES
   Keeps existing MindBridge colours while improving WCAG-friendly
   readability on desktop, tablet, and mobile.
   ========================================================= */
html,body{max-width:100%;overflow-x:hidden;}
body{-webkit-text-size-adjust:100%;}
.screen{width:100%;}
img,svg{max-width:100%;}

/* Safer flexible layout */
.game-body{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  width:100%!important;
  min-height:0!important;
}
.panel-center,.office-scroll,#tab-map,#tab-scene,#tab-dashboard{min-width:0!important;width:100%!important;}
.office-scroll{overflow-x:hidden!important;}
.room-grid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important;
  gap:1rem!important;
  width:100%!important;
}
.room-card{min-width:0!important;}
.room-thumb{height:clamp(80px,18vw,125px)!important;}
.office-scene{max-width:100%!important;}

/* Header and tabs wrap cleanly */
.hud{align-items:flex-start!important;row-gap:.8rem!important;}
.hud-left,.hud-stats,.hud-right{min-width:0!important;flex-wrap:wrap!important;}
.hud-stats{justify-content:flex-start!important;}
.hstat{white-space:normal!important;}
.office-tabs{
  overflow-x:auto!important;
  white-space:nowrap!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin!important;
}
.otab{flex:0 0 auto!important;font-size:1rem!important;min-height:44px!important;}

/* Modal/scenario overlap fix */
.modal-overlay{
  align-items:flex-start!important;
  overflow:auto!important;
  padding:clamp(.6rem,2vw,1rem)!important;
}
.modal-box{
  width:min(720px,100%)!important;
  max-width:100%!important;
  max-height:none!important;
  margin:clamp(.5rem,2vh,1.25rem) auto!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
}
.scene-stage{
  flex:0 0 auto!important;
  height:clamp(130px,25vw,200px)!important;
  min-height:130px!important;
  overflow:hidden!important;
}
.scene-chars-wrap{
  height:100%!important;
  align-items:flex-end!important;
  justify-content:center!important;
  padding:0 1rem!important;
  gap:1rem!important;
  overflow:hidden!important;
}
.scene-figure{max-width:45%!important;}
.scene-figure svg{height:clamp(75px,16vw,115px)!important;width:auto!important;}
.scene-name-tag{
  display:none!important;
}
.modal-body{padding:clamp(1rem,3vw,1.6rem)!important;}
.modal-title{font-size:clamp(1.35rem,3.8vw,1.8rem)!important;line-height:1.25!important;}
.modal-scene-text,.modal-q{font-size:clamp(1rem,2.5vw,1.12rem)!important;}
.choices-wrap{gap:.8rem!important;}
.choice-btn{
  width:100%!important;
  min-height:48px!important;
  align-items:flex-start!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.cnum{flex:0 0 32px!important;}
.feedback{overflow-wrap:anywhere!important;}
.modal-close{top:.6rem!important;right:.6rem!important;width:44px!important;height:44px!important;z-index:20!important;}

/* Forms and leaderboard */
.reg-card,.lb-wrap{width:min(100%,720px)!important;}
.form-row input,.form-row select{min-height:48px!important;font-size:1rem!important;}
.avatar-grid{grid-template-columns:repeat(auto-fit,minmax(52px,1fr))!important;}
.lb-table-head,.lb-row{grid-template-columns:56px 44px minmax(0,1fr) 80px!important;}
.lb-name{min-width:0!important;overflow-wrap:anywhere!important;}
.lb-actions{width:100%!important;}
.btn-lb,.btn-lb-sec,.btn-download{min-height:48px!important;}

@media (max-width: 900px){
  body{font-size:17px!important;}
  .splash-content{padding:1.25rem!important;}
  .game-body{display:block!important;}
  .hud{padding:.8rem 1rem!important;}
  .hud-left,.hud-stats{width:100%!important;}
  .office-scroll{padding:.9rem!important;}
  .room-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;}
  .lb-your-result{align-items:flex-start!important;}
}

@media (max-width: 640px){
  body{font-size:16px!important;line-height:1.65!important;}
  .splash-h1{font-size:clamp(2.3rem,13vw,3.6rem)!important;}
  .splash-sub{font-size:1rem!important;}
  .char-row{gap:.6rem!important;}
  .splash-char-pill{width:100%!important;max-width:300px!important;justify-content:flex-start!important;}
  .reg-card{border-radius:18px!important;padding:1.25rem!important;margin:.75rem!important;}
  .office-tabs{padding:.65rem!important;gap:.4rem!important;}
  .otab{font-size:.95rem!important;padding:.5rem .75rem!important;}
  .office-scroll{padding:.7rem!important;}
  .room-grid{grid-template-columns:1fr!important;}
  .room-info{padding:1rem!important;}
  .room-name{font-size:1.18rem!important;}
  .room-desc{font-size:1rem!important;}
  .office-scene{border-radius:14px!important;}
  .modal-overlay{padding:.5rem!important;}
  .modal-box{border-radius:18px!important;margin:.25rem auto 1rem!important;}
  .scene-stage{height:120px!important;min-height:120px!important;border-radius:18px 18px 0 0!important;}
  .scene-figure svg{height:82px!important;}
  .scene-name-tag{font-size:.72rem!important;padding:.18rem .5rem!important;}
  .modal-body{padding:1rem!important;}
  .modal-title{padding-right:2.5rem!important;}
  .choice-btn{font-size:1rem!important;padding:.9rem!important;line-height:1.6!important;}
  .feedback{font-size:1rem!important;}
  .lb-table-head,.lb-row{grid-template-columns:48px 36px minmax(0,1fr) 68px!important;padding:.75rem!important;font-size:.9rem!important;}
  .lb-score-big .num{font-size:3rem!important;}
  .lb-actions{flex-direction:column!important;align-items:stretch!important;}
  .btn-lb,.btn-lb-sec,.btn-download{width:100%!important;}
}

@media (max-width: 420px){
  .hud-logo{font-size:1.05rem!important;}
  .player-chip,.hstat{width:100%!important;justify-content:flex-start!important;}
  .scene-stage{display:none!important;}
  .modal-box{border-radius:16px!important;}
  .modal-title{font-size:1.28rem!important;}
  .modal-scene-text{padding:.9rem!important;}
  .choice-btn{gap:.55rem!important;}
  .cnum{width:28px!important;height:28px!important;min-width:28px!important;flex-basis:28px!important;}
  .lb-table-head,.lb-row{grid-template-columns:40px minmax(0,1fr) 62px!important;}
  .lb-table-head div:nth-child(2),.lb-row .lb-pav{display:none!important;}
}



/* Final requested fixes: visible avatar icons + clean leaderboard */
.av-opt, .pav, .lb-pav{
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif!important;
  font-size:2rem!important;
  line-height:1!important;
  color:#ffffff!important;
  text-align:center!important;
}
.av-opt{
  min-height:72px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
}
.av-opt .avatar-symbol{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif!important;
  font-size:2.25rem!important;
  line-height:1!important;
}
.player-chip .pav,.lb-pav{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.lb-badges,.accessibility-note{display:none!important;}
.lb-grade-detail{min-width:0!important;}
@media (max-width:640px){
  .avatar-grid{grid-template-columns:repeat(5,minmax(48px,1fr))!important;}
  .av-opt{min-height:58px!important;}
  .av-opt .avatar-symbol{font-size:1.8rem!important;}
}


/* Reliable visible SVG avatars for all browsers/devices */
.avatar-symbol{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-width:36px!important;
  min-height:36px!important;
}
.avatar-svg{
  display:block!important;
  width:clamp(42px,7vw,64px)!important;
  height:clamp(42px,7vw,64px)!important;
  min-width:42px!important;
  min-height:42px!important;
  opacity:1!important;
  visibility:visible!important;
}
.av-opt .avatar-svg{width:64px!important;height:64px!important;}
.player-chip .pav .avatar-svg{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;}
.lb-pav .avatar-svg{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;}
.av-opt{
  min-height:78px!important;
  background:#252a66!important;
  border:2px solid #8f96d8!important;
}
.av-opt.sel,.av-opt:focus-visible{
  border-color:#ffd54f!important;
  box-shadow:0 0 0 4px rgba(255,213,79,.35)!important;
}
@media (max-width:640px){
  .av-opt{min-height:64px!important;}
  .av-opt .avatar-svg{width:52px!important;height:52px!important;}
}



/* Login page avatar icons - visible on all devices, with text fallback */
.av-opt{
  min-height:92px!important;
  padding:.35rem!important;
  background:#252a66!important;
  border:2px solid #8f96d8!important;
  border-radius:20px!important;
  color:#ffffff!important;
}
.av-opt .avatar-symbol{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.25rem!important;
  border-radius:16px!important;
  background:var(--avatar-bg,#4a41d0)!important;
  color:var(--avatar-fg,#ffffff)!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.18)!important;
  min-width:56px!important;
  min-height:70px!important;
}
.avatar-emoji{
  display:block!important;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif!important;
  font-size:2.35rem!important;
  line-height:1!important;
  opacity:1!important;
  visibility:visible!important;
}
.avatar-mini-label{
  display:block!important;
  font-family:'Nunito','Poppins',Arial,sans-serif!important;
  font-size:.68rem!important;
  line-height:1.1!important;
  font-weight:900!important;
  letter-spacing:.03em!important;
  color:var(--avatar-fg,#ffffff)!important;
}
.av-opt.sel,.av-opt:focus-visible{
  border-color:#ffd54f!important;
  box-shadow:0 0 0 4px rgba(255,213,79,.35)!important;
}
.player-chip .avatar-symbol,.lb-pav .avatar-symbol{
  min-height:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:50%!important;
  background:var(--avatar-bg,#4a41d0)!important;
  box-shadow:none!important;
}
.player-chip .avatar-emoji,.lb-pav .avatar-emoji{font-size:1.35rem!important;}
.player-chip .avatar-mini-label,.lb-pav .avatar-mini-label{display:none!important;}
@media (max-width:640px){
  .avatar-grid{grid-template-columns:repeat(3,minmax(74px,1fr))!important;gap:.65rem!important;}
  .av-opt{min-height:86px!important;}
  .avatar-emoji{font-size:2.15rem!important;}
}



/* =========================================================
   FINAL DASHBOARD VISIBILITY FIX
   Fixes white dashboard cards + white text in low-vision theme.
   ========================================================= */
#tab-dashboard,
#dashboard-wrap{
  color:var(--text)!important;
  background:transparent!important;
}
#dashboard-wrap [style*="background:#fff"],
#dashboard-wrap [style*="background: #fff"],
#dashboard-wrap [style*="background:#ffffff"],
#dashboard-wrap [style*="background: #ffffff"],
#dashboard-wrap [style*="background:white"],
#dashboard-wrap [style*="background: white"]{
  background:var(--surface)!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
}
#dashboard-wrap [style*="background:var(--surface)"]{
  color:var(--text)!important;
  border-color:var(--border)!important;
}
#dashboard-wrap [style*="background:var(--bg2)"]{
  background:var(--surface3)!important;
}
#dashboard-wrap h2,
#dashboard-wrap div,
#dashboard-wrap span{
  text-shadow:none!important;
}
#dashboard-wrap [style*="color:var(--text2)"]{
  color:var(--text2)!important;
}
#dashboard-wrap [style*="color:var(--accent)"]{
  color:#ffd54f!important;
}
#dashboard-wrap [style*="color:var(--accent3)"]{
  color:var(--accent3)!important;
}
#dashboard-wrap [style*="color:#7c3403"]{
  color:var(--accent4)!important;
}
#dashboard-wrap [role="progressbar"]{
  background:var(--surface3)!important;
}
@media (max-width: 760px){
  #dashboard-wrap [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
  }
}



/* =========================================================
   FINAL CLIENT FIXES — font size + real leaderboard data UI
   Added for requested screens without changing existing layout.
   ========================================================= */
#register .reg-card{
  max-width:680px!important;
  padding:3rem!important;
}
#register .reg-header .icon{font-size:3.8rem!important;}
#register .reg-header h2{
  font-size:clamp(2.5rem,5vw,3.5rem)!important;
  line-height:1.12!important;
}
#register .reg-header p{
  font-size:clamp(1.15rem,2.2vw,1.45rem)!important;
  line-height:1.55!important;
}
#register .form-row label{
  font-size:1.12rem!important;
  letter-spacing:1.2px!important;
}
#register .form-row input,
#register .form-row select{
  font-size:1.22rem!important;
  min-height:58px!important;
  border-radius:16px!important;
}
#register .btn-reg{
  font-size:1.35rem!important;
  min-height:60px!important;
  border-radius:18px!important;
}
#register .avatar-grid{gap:.85rem!important;}
#register .avatar-mini-label{font-size:.78rem!important;}

.splash-sub{font-size:clamp(1.18rem,2vw,1.45rem)!important;}
.splash-char-pill{padding:.6rem 1.3rem .6rem .55rem!important;}
.splash-char-pill .cn{font-size:1.15rem!important;}
.splash-char-pill .ct{font-size:1rem!important;}

#live-scene-wrap{font-size:1.15rem!important;}
#live-scene-wrap [style*="font-size:1rem"]{font-size:1.35rem!important;}
#live-scene-wrap [style*="font-size:.98rem"]{font-size:1.2rem!important;}
#live-scene-wrap [style*="font-size:.9rem"]{font-size:1.08rem!important;}
#live-scene-wrap [style*="font-size:.88rem"]{font-size:1.08rem!important;}
#live-scene-wrap [style*="font-size:.85rem"]{font-size:1.25rem!important;}
#live-scene-wrap [style*="font-size:.82rem"]{font-size:1.05rem!important;}
#live-scene-wrap [style*="font-size:.78rem"]{font-size:1.18rem!important;}
#live-scene-wrap [style*="font-size:.72rem"]{font-size:1rem!important;}
#live-scene-wrap [style*="font-size:.7rem"]{font-size:1rem!important;}
#live-scene-wrap [style*="font-size:.68rem"]{font-size:1rem!important;}
#live-scene-wrap [style*="font-size:.65rem"]{font-size:1rem!important;}
#live-scene-wrap [style*="font-size:.6rem"]{font-size:.95rem!important;}
#live-scene-wrap [style*="font-size:.58rem"]{font-size:.95rem!important;}
#live-scene-wrap [style*="padding:.8rem"]{padding:1.1rem!important;}
#live-scene-wrap [style*="gap:.7rem"]{gap:1rem!important;}
#live-scene-wrap [style*="width:40px"]{width:58px!important;height:74px!important;}
#live-scene-wrap [style*="width:38px"]{width:56px!important;height:70px!important;}

.lb-header h2{font-size:clamp(2.2rem,4vw,3rem)!important;}
.lb-header p{font-size:1.15rem!important;}
.lb-table-head{font-size:.95rem!important;}
.lb-row{font-size:1.05rem!important;}
.lb-name{font-size:1.08rem!important;}
.lb-name .dept{font-size:.9rem!important;color:var(--text3)!important;line-height:1.45!important;margin-top:.1rem!important;}
.lb-stat{font-size:1.12rem!important;}
.lb-empty{padding:1.4rem!important;text-align:center!important;color:var(--text2)!important;font-size:1.05rem!important;}

@media (max-width:640px){
  #register .reg-card{padding:1.5rem!important;}
  #register .reg-header h2{font-size:2.3rem!important;}
  #register .reg-header p{font-size:1.1rem!important;}
  #register .form-row label{font-size:1rem!important;}
  #register .form-row input{font-size:1.1rem!important;}
  #live-scene-wrap [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important;}
}


/* =========================================================
   FINAL TYPOGRAPHY CONSISTENCY PATCH
   One type system across Splash, Profile, Game, Dashboard,
   Scenario Modal, Live Scene, and Leaderboard.
   ========================================================= */
:root{
  --font-body:'Poppins',Arial,sans-serif;
  --font-heading:'Nunito','Poppins',Arial,sans-serif;
  --fs-caption:.95rem;
  --fs-small:1rem;
  --fs-body:1.10rem;
  --fs-card:1.12rem;
  --fs-button:1.08rem;
  --fs-section:1.35rem;
  --fs-panel-title:1.55rem;
  --fs-page-title:clamp(2.35rem,4.7vw,3.25rem);
  --fs-hero:clamp(3rem,7vw,5.5rem);
  --fs-score:clamp(3rem,6vw,4rem);
  --lh-tight:1.2;
  --lh-normal:1.55;
  --lh-comfy:1.7;
}
html,body{
  font-family:var(--font-body)!important;
  font-size:18px!important;
  line-height:var(--lh-comfy)!important;
}
body,input,select,textarea,button{
  font-family:var(--font-body)!important;
}
h1,h2,h3,h4,h5,h6,
.splash-h1,
.reg-header h2,
.modal-title,
.modal-q,
.intro-h1,
.lb-header h2,
.lb-grade-detail h3,
.room-name,
.ev-title,
.char-meta h4,
.hud-logo,
.btn-start,
.btn-reg,
.btn-respond,
.btn-next,
.btn-lb,
.btn-lb-sec,
.btn-download,
.otab,
.hstat b,
.lb-score-big .num,
.lb-stat,
.lb-rank{
  font-family:var(--font-heading)!important;
}
.splash-h1{font-size:var(--fs-hero)!important;line-height:1.05!important;}
#register .reg-header h2,
.reg-header h2,
.lb-header h2,
.intro-h1{
  font-size:var(--fs-page-title)!important;
  line-height:var(--lh-tight)!important;
}
.modal-title{
  font-size:var(--fs-panel-title)!important;
  line-height:var(--lh-tight)!important;
}
.panel-head,
.room-name,
.ev-title,
.modal-q,
#dashboard-wrap h2,
#live-scene-wrap > div > div:first-child{
  font-size:var(--fs-section)!important;
  line-height:var(--lh-tight)!important;
}
.splash-sub,
.reg-header p,
.form-row input,
.form-row select,
.hstat,
.player-chip,
.room-desc,
.modal-scene-text,
.choice-btn,
.feedback,
.feedback-learn,
.intro-lead,
.intro-card-body,
.lb-header p,
.lb-grade-detail p,
.lb-name,
.lb-empty,
#dashboard-wrap,
#live-scene-wrap{
  font-size:var(--fs-body)!important;
  line-height:var(--lh-comfy)!important;
}
.form-row label,
.splash-badge,
.splash-char-pill .ct,
.modal-tag,
.lb-table-head,
.lb-name .dept,
.avatar-mini-label,
.scene-name-tag,
.type-pill,
.mini-bar,
.cnum{
  font-size:var(--fs-small)!important;
  line-height:var(--lh-normal)!important;
}
.splash-char-pill .cn,
.room-info,
.lb-row,
.lb-stat,
.btn-start,
.btn-reg,
.btn-respond,
.btn-next,
.btn-lb,
.btn-lb-sec,
.btn-download,
.otab{
  font-size:var(--fs-button)!important;
  line-height:1.35!important;
}
.lb-score-big .num{font-size:var(--fs-score)!important;line-height:1!important;}
.lb-score-big .lbl{font-size:var(--fs-small)!important;line-height:var(--lh-normal)!important;}

/* Normalize dynamic inline font sizes used by Dashboard and Live Scene */
#dashboard-wrap [style*="font-size:.7rem"],
#dashboard-wrap [style*="font-size:.72rem"],
#dashboard-wrap [style*="font-size:.78rem"],
#dashboard-wrap [style*="font-size:.82rem"],
#dashboard-wrap [style*="font-size:.85rem"],
#dashboard-wrap [style*="font-size:.88rem"],
#dashboard-wrap [style*="font-size:.9rem"],
#live-scene-wrap [style*="font-size:.58rem"],
#live-scene-wrap [style*="font-size:.6rem"],
#live-scene-wrap [style*="font-size:.65rem"],
#live-scene-wrap [style*="font-size:.68rem"],
#live-scene-wrap [style*="font-size:.7rem"],
#live-scene-wrap [style*="font-size:.72rem"],
#live-scene-wrap [style*="font-size:.78rem"],
#live-scene-wrap [style*="font-size:.82rem"],
#live-scene-wrap [style*="font-size:.85rem"],
#live-scene-wrap [style*="font-size:.88rem"],
#live-scene-wrap [style*="font-size:.9rem"]{
  font-size:var(--fs-small)!important;
  line-height:var(--lh-normal)!important;
}
#dashboard-wrap [style*="font-size:.98rem"],
#dashboard-wrap [style*="font-size:1rem"],
#dashboard-wrap [style*="font-size:1.15rem"],
#live-scene-wrap [style*="font-size:.98rem"],
#live-scene-wrap [style*="font-size:1rem"],
#live-scene-wrap [style*="font-size:1.15rem"]{
  font-size:var(--fs-card)!important;
  line-height:var(--lh-normal)!important;
}
#dashboard-wrap [style*="font-weight:800"],
#dashboard-wrap [style*="font-weight:900"],
#live-scene-wrap [style*="font-weight:800"],
#live-scene-wrap [style*="font-weight:900"]{
  font-family:var(--font-heading)!important;
}
#dashboard-wrap [style*="font-size:1.7rem"],
#dashboard-wrap [style*="font-size:1.8rem"],
#dashboard-wrap [style*="font-size:2.8rem"],
#dashboard-wrap [style*="font-size:3.2rem"]{
  font-family:var(--font-heading)!important;
  line-height:1.1!important;
}

/* Keep icon/avatar typography intentional and separate from text rules */
.reg-header .icon,
.avatar-emoji,
.av-opt,
.pav,
.lb-pav,
.splash-char-pill .av{
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif!important;
  line-height:1!important;
}

@media (max-width:900px){
  html,body{font-size:17px!important;}
}
@media (max-width:640px){
  html,body{font-size:16px!important;}
  :root{
    --fs-body:1.04rem;
    --fs-card:1.05rem;
    --fs-button:1.03rem;
    --fs-section:1.22rem;
    --fs-panel-title:1.35rem;
    --fs-page-title:clamp(2rem,9vw,2.55rem);
  }
  #register .reg-card{padding:1.5rem!important;}
  .choice-btn{line-height:1.6!important;}
}

/* In-game leaderboard tab */
#tab-leaderboard{width:100%;}
#game-leaderboard-wrap{width:min(100%,900px);margin:0 auto;}
#game-leaderboard-wrap .lb-header p{margin:0;}
#game-leaderboard-wrap .lb-table-wrap{max-height:58vh;overflow:auto;}
@media (max-width:640px){#game-leaderboard-wrap{width:100%;}#game-leaderboard-wrap .lb-your-result{padding:1rem!important;}}


/* =========================================================
   ACCESSIBLE GAME CELEBRATION — additive only
   Adds a non-blocking achievement moment to the leaderboard.
   It does not change scoring, scenarios, navigation, or layout.
   ========================================================= */
.achievement-celebration{
  position:fixed;
  top:clamp(72px,10vh,110px);
  left:50%;
  width:min(92vw,440px);
  transform:translate(-50%,-24px) scale(.96);
  z-index:10000;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,transform .35s cubic-bezier(.2,.8,.2,1),visibility .28s;
}
.achievement-celebration.show{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0) scale(1);
}
.achievement-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  display:grid;
  grid-template-columns:78px minmax(0,1fr);
  align-items:center;
  gap:1rem;
  padding:1rem 1.1rem;
  border:3px solid #ffd54f;
  border-radius:22px;
  background:linear-gradient(135deg,#1c2052 0%,#30367a 55%,#1c2052 100%);
  color:#fff;
  box-shadow:0 18px 50px rgba(0,0,0,.42),0 0 0 5px rgba(255,213,79,.18);
}
.achievement-card::before{
  content:'';
  position:absolute;
  inset:-70%;
  z-index:-1;
  background:conic-gradient(from 90deg,transparent 0 38%,rgba(255,213,79,.16) 43% 48%,transparent 52% 100%);
  animation:achievementAura 5s linear infinite;
}
.achievement-emblem{
  position:relative;
  width:74px;
  height:74px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:3px solid #ffd54f;
  background:#12143a;
  box-shadow:0 0 0 6px rgba(255,213,79,.15),inset 0 0 20px rgba(255,213,79,.13);
  font-size:2.35rem;
}
.achievement-emblem::after{
  content:'';
  position:absolute;
  inset:-10px;
  border:2px dashed rgba(255,213,79,.8);
  border-radius:50%;
  animation:achievementOrbit 5s linear infinite;
}
.achievement-copy{min-width:0;}
.achievement-kicker{
  color:#ffd54f;
  font-family:'Nunito',sans-serif;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.achievement-title{
  margin:.12rem 0;
  font-family:'Nunito',sans-serif;
  font-size:clamp(1.25rem,3vw,1.65rem);
  font-weight:900;
  line-height:1.15;
  color:#fff;
}
.achievement-detail{
  font-size:.92rem;
  font-weight:600;
  line-height:1.45;
  color:#f0f2ff;
}
.achievement-stars{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.achievement-star{
  position:absolute;
  left:50%;
  top:50%;
  width:8px;
  height:8px;
  background:#ffd54f;
  clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 35%);
  opacity:0;
  animation:achievementStar 1.2s ease-out forwards;
  animation-delay:var(--delay,0s);
}
#leaderboard .lb-your-result.achievement-power-up{
  animation:achievementResultPulse 1.15s ease-out 1;
}
#leaderboard .lb-your-result.achievement-power-up .lb-score-big .num{
  animation:achievementScorePop .8s cubic-bezier(.2,.85,.25,1.25) 1;
}
@keyframes achievementAura{
  to{transform:rotate(360deg);}
}
@keyframes achievementOrbit{
  to{transform:rotate(-360deg);}
}
@keyframes achievementStar{
  0%{opacity:0;transform:translate(-50%,-50%) rotate(0deg) scale(.3);}
  18%{opacity:1;}
  100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(250deg) scale(1.1);}
}
@keyframes achievementResultPulse{
  0%{transform:scale(1);box-shadow:var(--shadow);}
  45%{transform:scale(1.018);box-shadow:0 0 0 7px rgba(255,213,79,.25),0 18px 45px rgba(0,0,0,.35);}
  100%{transform:scale(1);box-shadow:var(--shadow);}
}
@keyframes achievementScorePop{
  0%{transform:scale(.75);opacity:.35;}
  65%{transform:scale(1.16);opacity:1;}
  100%{transform:scale(1);}
}
@media (prefers-reduced-motion:reduce){
  .achievement-celebration,
  .achievement-celebration.show{
    transition:none!important;
    transform:translate(-50%,0)!important;
  }
  .achievement-card::before,
  .achievement-emblem::after,
  .achievement-star,
  #leaderboard .lb-your-result.achievement-power-up,
  #leaderboard .lb-your-result.achievement-power-up .lb-score-big .num{
    animation:none!important;
  }
  .achievement-stars{display:none!important;}
}
@media (prefers-contrast:more){
  .achievement-card{
    background:#12143a;
    border-width:4px;
    box-shadow:0 0 0 4px #fff;
  }
  .achievement-detail{color:#fff;}
}
@media (max-width:480px){
  .achievement-celebration{top:70px;width:calc(100vw - 24px);}
  .achievement-card{grid-template-columns:58px minmax(0,1fr);padding:.85rem;}
  .achievement-emblem{width:56px;height:56px;font-size:1.8rem;}
  .achievement-title{font-size:1.2rem;}
  .achievement-detail{font-size:.85rem;}
}

/* Publicis Sapient branding — added without changing the game design */
.publicis-sapient-logo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:max-content;
  padding:.45rem .75rem;
  background:#ffffff;
  border:2px solid #c8ccee;
  border-radius:14px;
  box-shadow:0 4px 16px rgba(0,0,0,.18);
}
.publicis-sapient-logo img{
  display:block;
  width:118px;
  height:auto;
  max-height:64px;
  object-fit:contain;
}
.splash-publicis-logo{
  margin:0 auto 1.25rem;
  animation:fadeUp .6s ease both;
}
.register-publicis-logo{
  margin:0 auto 1rem;
}
.hud-publicis-logo{
  padding:.22rem .5rem;
  border-radius:10px;
  box-shadow:none;
}
.hud-publicis-logo img{
  width:72px;
  max-height:40px;
}
@media (max-width:640px){
  .publicis-sapient-logo img{width:105px;max-height:58px;}
  .hud-publicis-logo img{width:68px;max-height:38px;}
}

/* Live leaderboard: score first, fastest completion time as tie-breaker */
.lb-table-head,.lb-row{
  grid-template-columns:56px 44px minmax(160px,1fr) 84px 98px!important;
}
.lb-time{
  font-family:var(--font-heading,'Nunito',sans-serif);
  font-weight:800;
  font-variant-numeric:tabular-nums;
  text-align:center;
  color:var(--accent4);
  white-space:nowrap;
}
@media (max-width:640px){
  .lb-table-head,.lb-row{
    grid-template-columns:44px minmax(110px,1fr) 60px 74px!important;
    gap:.35rem!important;
    padding:.7rem .6rem!important;
  }
  .lb-table-head div:nth-child(2),.lb-row .lb-pav{display:none!important;}
  .lb-time{font-size:.9rem!important;}
}
