:root{--red:#e82127;--ink:#171719;--muted:#6b6d72;--soft:#f5f5f3;--line:#d9dadc;--white:#fff;--green:#2b8a57}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f1f1ef;color:var(--ink);font-family:Arial,Helvetica,sans-serif}body{min-height:100vh}button,input{font:inherit}.shell{min-height:100vh;display:flex;flex-direction:column;padding:0 42px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cfd0d2;max-width:1500px;width:100%;margin:auto auto 0}.brand{display:flex;align-items:center;height:100%;gap:16px}.tsue-logo{width:82px;height:66px;object-fit:contain;display:block}.brand-line{width:1px;height:42px;background:#c8c9cb}.tesla-logo{width:144px;height:30px;object-fit:contain}.brand-title{font-size:12px;font-weight:800;letter-spacing:.24em;margin-left:2px}.room-pill{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.14em}.room-pill span{color:var(--muted);font-size:10px}.room-pill b{font-size:18px;letter-spacing:.18em}.sitefoot{height:52px;max-width:1500px;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #cfd0d2;color:#77797e;text-transform:uppercase;letter-spacing:.12em;font-size:9px}.hero{max-width:1500px;width:100%;margin:auto;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(340px,.7fr);gap:70px;align-items:center;padding:48px 0}.kicker,.section-label{font-size:11px;letter-spacing:.2em;font-weight:800;color:var(--red);text-transform:uppercase}.hero h1,.join-copy h1{font-size:clamp(56px,7vw,112px);line-height:.88;letter-spacing:-.065em;margin:20px 0 28px;font-weight:800}.hero h1 em{font-style:normal;color:var(--red)}.lead{font-size:clamp(18px,1.5vw,23px);line-height:1.48;color:#56585d;max-width:820px;margin:0}.btn{border:0;padding:16px 24px;min-height:52px;font-weight:800;cursor:pointer;transition:.15s ease;border-radius:2px}.btn.primary{background:var(--red);color:#fff}.btn.primary:hover{background:#ca191e}.btn.secondary{background:transparent;color:var(--ink);border:1px solid #aeb0b3}.btn:disabled{opacity:.4;cursor:not-allowed}.actions{display:flex;gap:12px;margin-top:34px}.hero-side{min-height:430px;background:#171719;color:#fff;padding:42px;display:flex;flex-direction:column;justify-content:flex-end}.hero-number{font-size:170px;line-height:.75;font-weight:800;letter-spacing:-.08em;color:var(--red)}.hero-side-copy{display:flex;gap:12px;align-items:end;margin-top:24px}.hero-side-copy b{font-size:32px}.hero-side-copy span{font-size:15px;color:#b8b8bb;padding-bottom:4px}.hero-rule{height:1px;background:#3d3d41;margin:32px 0 20px}.hero-meta{display:grid;gap:12px;font-size:13px;color:#d2d2d4}.lobby{max-width:1500px;width:100%;margin:auto;display:grid;grid-template-columns:430px minmax(0,1fr);gap:64px;padding:38px 0}.join-board{background:#fff;padding:28px;border:1px solid #d3d4d6}.qr{width:100%;aspect-ratio:1;margin:18px 0}.qr svg{width:100%;height:100%}.room-code{text-align:center;font-size:56px;letter-spacing:.16em;font-weight:900;margin-top:10px}.joinurl{text-align:center;color:#777;font-size:11px;word-break:break-all;margin-top:7px}.lobby-info{padding:10px 0}.lobby-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.lobby-info h2,.leader-header h2,.center-stage h2{font-size:clamp(42px,5vw,74px);line-height:.95;letter-spacing:-.05em;margin:12px 0 18px}.lobby-info h2 span{font-size:.43em;color:#777;font-weight:500;letter-spacing:-.02em}.live-dot{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.15em;font-weight:800}.live-dot i{width:9px;height:9px;border-radius:50%;background:#32a269;box-shadow:0 0 0 5px #dff3e8}.player-list{margin-top:28px;border-top:1px solid #cfd0d2;max-height:380px;overflow:auto}.player-row{min-height:55px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;border-bottom:1px solid #dedfe0}.player-index{font-size:11px;color:#8b8d91}.online{font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:#38875f}.empty{padding:28px 0;color:#888;font-size:14px}.question-stage{max-width:1500px;width:100%;margin:auto;padding:35px 0 44px}.question-top{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid #cacbcd;padding-bottom:15px}.question-count,.timer-wrap{display:flex;align-items:baseline;gap:9px}.question-count span,.timer-wrap span,.timer-wrap small,.question-count small{font-size:10px;letter-spacing:.15em;color:#7b7d82}.question-count b{font-size:28px}.timer-wrap b{font-size:42px;color:var(--red);line-height:1}.question{font-size:clamp(34px,4.6vw,72px);line-height:1.02;letter-spacing:-.045em;margin:34px 0 38px;max-width:1230px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer{min-height:116px;border:0;padding:24px 28px;color:#fff;text-align:left;display:flex;align-items:center;gap:18px;font-size:clamp(18px,1.7vw,25px);font-weight:800;cursor:pointer;transition:transform .12s ease,filter .12s ease}.answer:hover:not(:disabled){transform:translateY(-2px);filter:brightness(.96)}.answer.a1{background:#cf3037}.answer.a2{background:#2f63b8}.answer.a3{background:#b98a19}.answer.a4{background:#3e8a55}.shape{width:42px;height:42px;border:1px solid rgba(255,255,255,.55);display:grid;place-items:center;flex:0 0 auto}.answer.selected{outline:4px solid #171719;outline-offset:4px}.answer:disabled{cursor:default}.response-line{display:flex;justify-content:space-between;margin-top:16px;color:#777;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.response-line b{color:#171719}.answer-sent{margin-top:18px;background:#171719;color:#fff;padding:16px 18px;display:flex;justify-content:space-between}.leader-stage{max-width:1320px;width:100%;margin:auto;padding:36px 0}.leader-header{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:28px}.leader-header p{color:#666;margin:0;font-size:17px}.top5-badge{background:#171719;color:#fff;padding:20px 24px;min-width:210px;display:flex;flex-direction:column}.top5-badge b{font-size:28px}.top5-badge span{font-size:11px;color:#bbb;margin-top:4px}.leader-table{border-top:1px solid #c8c9cb}.rankrow{min-height:68px;display:grid;grid-template-columns:65px 1fr 100px 130px;align-items:center;border-bottom:1px solid #d1d2d4;padding:0 14px}.rankrow.top{background:#fff}.rankrow.top:nth-child(1){border-left:5px solid var(--red)}.rank{font-size:18px;font-weight:900;color:#777}.person{display:flex;align-items:center;gap:10px}.person b{font-size:18px}.person small{font-size:8px;letter-spacing:.14em;background:#171719;color:#fff;padding:4px 6px}.delta{color:var(--green);font-weight:800;text-align:right}.score{text-align:right;font-size:24px;font-weight:900}.score small{font-size:9px;color:#777;margin-left:5px;text-transform:uppercase}.actions.end{justify-content:flex-end}.final-actions{margin-top:26px;border-top:1px solid #c8c9cb;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:24px}.final-actions>div{display:flex;flex-direction:column;gap:4px}.final-actions span{font-size:12px;color:#777}.join-page{max-width:1180px;width:100%;margin:auto;display:grid;grid-template-columns:1fr 430px;gap:80px;align-items:center;padding:55px 0}.join-form{background:#fff;border:1px solid #d3d4d6;padding:30px}.join-form label{display:block;font-size:10px;font-weight:800;letter-spacing:.17em;margin-bottom:10px}.join-form input{width:100%;border:1px solid #aeb0b3;background:#fff;padding:17px 16px;font-size:18px;outline:none;border-radius:0}.join-form input:focus{border-color:#171719;box-shadow:inset 0 0 0 1px #171719}.join-form .btn{width:100%;margin-top:12px}.error{margin-top:12px;color:#a52125;background:#fbe9e9;padding:12px;font-size:13px}.center-stage{max-width:760px;width:100%;margin:auto;text-align:center;padding:70px 0}.center-stage .lead{margin:0 auto 28px}.end-icon{width:64px;height:64px;border:2px solid #171719;border-radius:50%;display:grid;place-items:center;margin:0 auto 22px;font-size:28px}.live-ring{width:52px;height:52px;border:1px solid #b5b6b8;border-radius:50%;display:grid;place-items:center;margin:0 auto 24px}.live-ring span{width:12px;height:12px;border-radius:50%;background:var(--red);animation:pulse 1.2s infinite}@keyframes pulse{50%{transform:scale(1.8);opacity:.35}}.host-controls{position:fixed;right:32px;bottom:30px;z-index:30}.host-controls .btn{background:#f1f1ef}.waiting b{color:#171719}.sitefoot{margin-top:auto}@media(max-width:900px){.shell{padding:0 18px}.topbar{height:74px}.tsue-logo{width:42px;height:42px}.brand-line{height:32px}.tesla-logo{width:105px}.brand-title{display:none}.hero{grid-template-columns:1fr;gap:28px;padding:32px 0}.hero-side{min-height:230px}.hero-number{font-size:100px}.lobby{grid-template-columns:1fr;gap:30px}.join-board{max-width:440px;margin:auto;width:100%}.answers{grid-template-columns:1fr}.answer{min-height:86px}.question{font-size:38px}.join-page{grid-template-columns:1fr;gap:28px}.join-copy h1{font-size:62px}.leader-header{align-items:flex-start;flex-direction:column}.rankrow{grid-template-columns:48px 1fr 90px}.delta{display:none}.final-actions{align-items:stretch;flex-direction:column}.final-actions .btn{width:100%}.response-line{gap:15px;font-size:10px}.sitefoot span:last-child{display:none}.room-pill span{display:none}.room-pill b{font-size:14px}.host-controls{position:static;margin:20px 0}.host-controls .btn{width:100%}}


/* v5 — mobile-first polish + leaderboard redesign */
.leader-stage{max-width:1380px}
.leader-header{margin-bottom:34px}
.podium{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) minmax(0,1fr);gap:16px;align-items:end;margin:8px 0 22px}
.podium-card{position:relative;background:#fff;border:1px solid #d7d8da;padding:26px 26px 24px;min-height:178px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.podium-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:#b9babd}
.podium-card.place-1{min-height:218px;background:#171719;color:#fff;border-color:#171719;transform:translateY(-8px)}
.podium-card.place-1::before{background:var(--red)}
.podium-card.place-2::before{background:#9fa3aa}
.podium-card.place-3::before{background:#aa754d}
.podium-card.is-me{box-shadow:0 0 0 3px rgba(232,33,39,.18)}
.podium-medal{font-size:34px;line-height:1;position:absolute;right:22px;top:20px}
.podium-rank{font-size:11px;letter-spacing:.16em;font-weight:800;color:#8a8c91;margin-bottom:18px}
.place-1 .podium-rank{color:#bfc0c4}
.podium-name{font-size:clamp(22px,2.2vw,34px);font-weight:900;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:40px}
.podium-name span{font-size:8px;letter-spacing:.14em;background:var(--red);color:#fff;padding:4px 6px;margin-left:8px;vertical-align:middle}
.podium-score{font-size:clamp(34px,3.4vw,52px);font-weight:900;letter-spacing:-.04em;margin-top:8px}
.podium-score small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-left:7px;font-weight:700;color:#898b90}
.place-1 .podium-score small{color:#b8b9bd}
.podium-gain{margin-top:9px;font-size:11px;color:var(--green);font-weight:800}
.place-1 .podium-gain{color:#86d9aa}
.rank-list{display:grid;gap:8px}
.rank-card{min-height:64px;background:#fff;border:1px solid #dedfe1;display:grid;grid-template-columns:72px minmax(0,1fr) 110px 150px;align-items:center;padding:0 18px;transition:transform .15s ease,border-color .15s ease}
.rank-card:hover{transform:translateY(-1px);border-color:#bbbcc0}
.rank-card.top5{border-left:4px solid var(--red)}
.rank-card.is-me{background:#fff6f6;border-color:#efb8ba}
.rank-num{font-size:15px;font-weight:900;color:#777a80}
.rank-person{display:flex;align-items:center;gap:10px;min-width:0}
.rank-person b{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-person small{font-size:8px;letter-spacing:.14em;background:#171719;color:#fff;padding:4px 6px;flex:0 0 auto}
.rank-gain{text-align:right;color:var(--green);font-size:13px;font-weight:800}
.rank-score{text-align:right;display:flex;align-items:baseline;justify-content:flex-end;gap:6px}
.rank-score b{font-size:24px}
.rank-score small{font-size:9px;color:#808287;text-transform:uppercase;letter-spacing:.08em}

@media(max-width:900px){
  html,body{background:#f5f5f3}
  .shell{padding:0 14px;min-height:100dvh}
  .topbar{height:82px;padding:0 2px;position:relative}
  .brand{gap:10px;min-width:0}
  .tsue-logo{width:64px;height:58px}
  .brand-line{height:34px}
  .tesla-logo{width:96px;height:24px}
  .room-pill{margin-left:auto;gap:5px}
  .room-pill b{font-size:13px;letter-spacing:.12em}
  .sitefoot{min-height:46px;height:auto;padding:11px 0;font-size:8px}
  .hero{display:block;padding:26px 0 34px}
  .hero h1,.join-copy h1{font-size:clamp(46px,14vw,68px);line-height:.9;margin:16px 0 20px}
  .lead{font-size:17px;line-height:1.45}
  .actions{margin-top:24px}
  .btn{min-height:58px;padding:17px 20px;border-radius:8px;font-size:16px;touch-action:manipulation}
  .hero-side{margin-top:26px;min-height:190px;padding:28px;border-radius:12px}
  .hero-number{font-size:88px}
  .lobby{padding:24px 0;gap:24px}
  .join-board{padding:18px;border-radius:12px}
  .room-code{font-size:44px}
  .lobby-info h2,.leader-header h2,.center-stage h2{font-size:clamp(38px,11vw,56px)}
  .player-row{min-height:58px}
  .question-stage{padding:22px 0 28px}
  .question-top{position:sticky;top:0;background:#f5f5f3;z-index:5;padding:10px 0 12px}
  .question{font-size:clamp(30px,8.6vw,44px);line-height:1.06;margin:24px 0 24px}
  .answers{gap:10px}
  .answer{min-height:82px;border-radius:10px;padding:16px 16px;font-size:17px;line-height:1.25;gap:14px;touch-action:manipulation}
  .shape{width:38px;height:38px;flex-basis:38px}
  .answer.selected{outline-width:3px;outline-offset:2px}
  .response-line{flex-direction:column;align-items:flex-start;gap:7px;margin-top:14px}
  .answer-sent{border-radius:10px;padding:15px 16px}
  .join-page{display:flex;flex-direction:column;padding:24px 0 34px;gap:22px;align-items:stretch}
  .join-copy{width:100%}
  .join-form{width:100%;padding:20px;border-radius:12px;position:sticky;bottom:10px;box-shadow:0 12px 34px rgba(0,0,0,.08)}
  .join-form input{min-height:58px;border-radius:8px;font-size:18px;padding:16px}
  .join-form .btn{margin-top:10px}
  .center-stage{padding:42px 0}
  .leader-stage{padding:24px 0 30px}
  .leader-header{gap:14px;margin-bottom:22px}
  .leader-header p{font-size:15px;line-height:1.4}
  .top5-badge{min-width:0;width:100%;padding:14px 16px;border-radius:10px;flex-direction:row;align-items:center;justify-content:space-between}
  .top5-badge b{font-size:22px}
  .podium{grid-template-columns:1fr;gap:9px;margin-bottom:14px}
  .podium-card,.podium-card.place-1{min-height:0;transform:none;border-radius:12px;padding:18px 18px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;align-items:center}
  .podium-card.place-1{order:-1}
  .podium-medal{position:static;grid-row:1/3;grid-column:1;font-size:30px}
  .podium-rank{display:none}
  .podium-name{grid-column:2;font-size:20px;padding:0;min-width:0}
  .podium-score{grid-column:3;grid-row:1;font-size:27px;margin:0;white-space:nowrap}
  .podium-score small{display:block;text-align:right;margin:2px 0 0;font-size:8px}
  .podium-gain{grid-column:2/4;grid-row:2;margin:5px 0 0;font-size:10px}
  .rank-list{gap:7px}
  .rank-card{min-height:62px;border-radius:10px;grid-template-columns:40px minmax(0,1fr) 82px;padding:0 13px}
  .rank-gain{display:none}
  .rank-num{font-size:13px}
  .rank-person b{font-size:16px}
  .rank-score b{font-size:21px}
  .final-actions{border:0;background:#fff;padding:16px;border-radius:12px;margin-top:16px}
  .host-controls{position:sticky;bottom:10px;margin:14px 0;z-index:20}
  .host-controls .btn{width:100%;box-shadow:0 10px 25px rgba(0,0,0,.08)}
}

@media(max-width:430px){
  .shell{padding:0 12px}
  .topbar{height:76px}
  .tsue-logo{width:60px;height:54px}
  .tesla-logo{width:88px}
  .brand-line{height:30px}
  .room-pill b{font-size:12px}
  .hero h1,.join-copy h1{font-size:46px}
  .lead{font-size:16px}
  .question{font-size:30px}
  .answer{font-size:16px;min-height:78px}
  .timer-wrap b{font-size:34px}
  .question-count b{font-size:24px}
}
