:root{
  --bg:#07090c;--panel:#11151a;--panel2:#151a20;--line:#262c33;--text:#f5f7fa;--muted:#9299a3;
  --red:#e51b23;--red2:#a50e14;--green:#27c56b;--shadow:0 22px 70px rgba(0,0,0,.38);
  --die-size:clamp(72px,6.1vw,102px);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 15% 0,#17191d 0,#090b0e 35%,#050608 100%);color:var(--text)}
body{min-height:100vh;overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px}
.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 max(16px,calc((100vw - 1760px)/2));border-bottom:1px solid #1d2228;background:rgba(5,7,9,.9);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:39px;height:39px;border:2px solid var(--red);display:grid;place-items:center;font-size:22px;font-weight:1000;transform:skew(-8deg);box-shadow:0 0 24px rgba(229,27,35,.16)}.brand strong{font-size:18px;letter-spacing:1.4px}.brand strong span{color:var(--red)}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:2.2px;margin-top:2px}
.header-actions{display:flex;gap:9px}.shell{width:min(1760px,calc(100% - 24px));margin:16px auto 26px}.panel{background:linear-gradient(180deg,rgba(22,26,32,.96),rgba(13,17,21,.97));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px}.hidden{display:none!important}
.hero{min-height:250px;padding:38px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:420px;height:420px;border:90px solid rgba(229,27,35,.05);border-radius:50%;right:-130px;top:-160px}.eyebrow{font-size:11px;letter-spacing:2.7px;color:var(--red);font-weight:900}.hero h1{font-size:clamp(32px,3.7vw,58px);line-height:.98;margin:12px 0 18px;letter-spacing:-2.5px}.hero h1 span{color:#9ba1aa}.hero p{max-width:760px;color:#aab0b8;font-size:15px;line-height:1.6}.hero-dice{display:flex;gap:14px;transform:rotate(-7deg);margin-right:70px;z-index:2}.mini-die{width:80px;height:80px;background:#e9edf2;color:#080a0c;border-radius:16px;display:grid;place-items:center;font-size:58px;box-shadow:0 18px 40px #0008}.mini-die.red{background:var(--red);color:white;transform:translateY(-20px)}
.setup-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:14px}.setup-card{padding:25px}.section-title{font-weight:900;text-transform:uppercase;letter-spacing:1.4px;font-size:12px;margin-bottom:18px}.section-title span{color:var(--red);margin-right:8px}label{display:block;color:#c8ccd2;font-size:13px;font-weight:800;margin-bottom:10px}input[type=range]{width:100%;accent-color:var(--red)}.range-row{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin:5px 2px 18px}.range-row strong{color:white;font-size:15px}.player-inputs{display:grid;grid-template-columns:1fr 1fr;gap:9px}.player-inputs input{width:100%;background:#0b0e12;border:1px solid #2b3138;color:white;border-radius:10px;padding:12px 14px;outline:none}.player-inputs input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,27,35,.12)}
.mode-list{display:grid;gap:8px;margin-bottom:18px}.mode-option{display:flex;gap:12px;align-items:flex-start;border:1px solid #2a3037;border-radius:11px;padding:12px;background:#0c0f13;cursor:pointer;margin:0}.mode-option:has(input:checked){border-color:var(--red);background:linear-gradient(90deg,rgba(229,27,35,.11),#0c0f13)}.mode-option input{accent-color:var(--red);margin-top:4px}.mode-option strong{display:block;color:white}.mode-option small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}
button{border:0;border-radius:10px;padding:10px 15px;font-weight:900;cursor:pointer;transition:.16s;letter-spacing:.3px}.primary{background:linear-gradient(180deg,#f2252e,#c80f17);color:white;box-shadow:0 8px 20px rgba(229,27,35,.2)}.primary:hover{transform:translateY(-1px);filter:brightness(1.08)}.primary:disabled{opacity:.42;cursor:not-allowed;transform:none}.secondary{background:#252b32;color:white;border:1px solid #353c44}.secondary:disabled{opacity:.38}.danger-outline{background:transparent;color:#ff6970;border:1px solid #6e2025}.icon-btn{background:#171b20;color:white;border:1px solid #2c3239}.large{width:100%;padding:14px 18px}.huge{padding:15px 32px;font-size:15px}
.game-head{display:grid;grid-template-columns:1fr 150px 150px;align-items:center;padding:15px 22px;margin-bottom:12px}.game-head h2{font-size:27px;margin:4px 0 1px}.subline{color:var(--muted);font-size:12px}.turn-stat{border-left:1px solid var(--line);padding-left:20px}.turn-stat small{color:var(--muted);display:block;font-size:11px}.turn-stat strong{font-size:27px;margin-top:2px;display:block}
.game-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(390px,.55fr);gap:12px;align-items:start}.play-column{display:grid;gap:12px}.dice-panel,.players-panel,.score-panel{padding:17px}.dice-panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.dice-panel-head .section-title{margin:0}.roll-status{font-size:11px;font-weight:900;color:#868e98;text-transform:uppercase;letter-spacing:1px}.roll-status.live{color:#ff5b63}.roll-status.live:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-right:7px;box-shadow:0 0 10px rgba(229,27,35,.7);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35}}
.dice-arena{height:clamp(330px,44vh,525px);min-height:330px;position:relative;overflow:hidden;margin-top:13px;border:1px solid #313841;border-radius:16px;background:radial-gradient(ellipse at 52% 40%,#252c32 0,#151a1f 50%,#0b0f13 100%);box-shadow:inset 0 0 72px #000a,inset 0 -22px 54px #0009;perspective:920px;perspective-origin:56% 35%}
.dice-arena:before{content:"";position:absolute;inset:0;border:9px solid rgba(255,255,255,.028);border-radius:15px;box-shadow:inset 0 0 0 1px #000;pointer-events:none;z-index:5}.arena-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.023) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.023) 1px,transparent 1px);background-size:38px 38px;transform:perspective(450px) rotateX(56deg) scale(1.4);transform-origin:center bottom;opacity:.42}.arena-mark{position:absolute;right:18px;bottom:12px;color:#ffffff12;font-size:12px;font-weight:1000;letter-spacing:2.7px;font-style:italic;user-select:none}.dice-chute{position:absolute;left:-3px;top:50%;width:42px;height:128px;transform:translateY(-50%);z-index:4;border-radius:0 18px 18px 0;border:1px solid #4b2024;border-left:0;background:linear-gradient(90deg,#050608 0,#101317 42%,#240b0e 100%);box-shadow:10px 0 24px #000a,inset -3px 0 0 #8c252b55;pointer-events:none}.dice-chute:before,.dice-chute:after{content:"";position:absolute;right:6px;width:24px;height:3px;border-radius:5px;background:#9d272d66;box-shadow:0 0 10px #e51b2338}.dice-chute:before{top:23px}.dice-chute:after{bottom:23px}.dice-chute span{position:absolute;inset:12px 8px;border-radius:8px;background:linear-gradient(90deg,#030405,#0c0d0f);border:1px solid #2b1113}.dice-chute b{position:absolute;left:7px;bottom:-19px;color:#7c3b3f;font-size:7px;letter-spacing:1.4px}.dice-tray{position:absolute;inset:0;z-index:3;transform-style:preserve-3d}.dice-tray .die{position:absolute;left:0;top:0}
.die{--cube-size:var(--die-size);width:var(--cube-size);height:var(--cube-size);padding:0;border:0;background:transparent;color:#090b0e;cursor:pointer;user-select:none;touch-action:manipulation;overflow:visible;will-change:transform;transform-style:preserve-3d}.die:hover:not(.rolling):not(.settling) .die-cube{filter:brightness(1.06)}.die:focus-visible{outline:2px solid #ff6b72;outline-offset:7px}.die-shadow{position:absolute;left:50%;top:84%;width:86%;height:31%;transform:translate(-50%,-50%) scale(1,.78);border-radius:50%;background:#000b;filter:blur(9px);pointer-events:none;transition:opacity .12s,transform .12s}.die-cube{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform;transition:filter .12s}.cube-face{position:absolute;inset:0;border-radius:18%;background:linear-gradient(145deg,#ffffff 0,#edf0f3 47%,#cbd0d5 100%);border:1px solid #fdfdfdcc;box-shadow:inset 2px 2px 5px #fff,inset -5px -6px 11px #a9aeb5;backface-visibility:hidden;overflow:hidden}.cube-face:after{content:"";position:absolute;left:9%;top:7%;width:48%;height:17%;border-radius:50%;background:linear-gradient(180deg,#fff9,#fff0);transform:rotate(-25deg);filter:blur(1px);pointer-events:none}.cube-front{transform:translateZ(calc(var(--cube-size) * .5))}.cube-back{transform:rotateY(180deg) translateZ(calc(var(--cube-size) * .5))}.cube-right{transform:rotateY(90deg) translateZ(calc(var(--cube-size) * .5))}.cube-left{transform:rotateY(-90deg) translateZ(calc(var(--cube-size) * .5))}.cube-top{transform:rotateX(90deg) translateZ(calc(var(--cube-size) * .5))}.cube-bottom{transform:rotateX(-90deg) translateZ(calc(var(--cube-size) * .5))}.die-face{position:absolute;inset:17%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);place-items:center}.pip{width:34%;height:34%;border-radius:50%;background:transparent;box-shadow:none}.pip.on{background:radial-gradient(circle at 35% 30%,#34383c,#090a0b 62%,#000 100%);box-shadow:inset 1px 1px 2px #000,0 1px 1px #fff7}.p1{grid-area:1/1}.p2{grid-area:1/2}.p3{grid-area:1/3}.p4{grid-area:2/1}.p5{grid-area:2/2}.p6{grid-area:2/3}.p7{grid-area:3/1}.p8{grid-area:3/2}.p9{grid-area:3/3}.die.rolling{pointer-events:none}.die.rolling .die-cube{transition:none;filter:brightness(.985)}.die.settling{pointer-events:none}.die.settling .die-cube{transition:transform .34s cubic-bezier(.16,.78,.22,1),filter .2s}.die.settling .die-shadow{transition:opacity .3s,transform .3s}
.held-zone{margin-top:11px;border:1px solid #2d333a;border-radius:13px;background:linear-gradient(180deg,#0a0d11,#11161b);padding:10px 12px 12px;box-shadow:inset 0 1px #ffffff08}.held-zone-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}.held-zone-head>div{font-size:11px;letter-spacing:1.5px;font-weight:1000;text-transform:uppercase}.held-zone-head span{color:var(--red);margin-right:6px}.held-zone-head small{color:#717983;font-size:10px}.held-tray{min-height:calc(var(--die-size) * .78 + 12px);display:flex;align-items:center;justify-content:center;gap:14px;padding:7px 8px;border-radius:10px;border:1px dashed #2c333b;background:#070a0d;perspective:720px}.held-tray .die{--cube-size:calc(var(--die-size) * .66);position:relative;width:var(--cube-size);height:var(--cube-size);animation:lockIn .24s ease-out}.held-tray .die .die-shadow{top:88%;filter:blur(6px)}.held-tray .die:after{content:"LOCK";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);background:var(--red);color:#fff;padding:2px 6px;border-radius:4px;font-size:7px;letter-spacing:1px;font-weight:1000;z-index:10}@keyframes lockIn{0%{transform:translateY(-24px) scale(1.1);opacity:.18}100%{transform:none;opacity:1}}.held-empty{color:#5f6771;font-size:11px;text-align:center}
.dice-actions{display:flex;justify-content:center;gap:9px;margin-top:11px}.hint{text-align:center;color:var(--muted);font-size:11px;margin:9px 0 0;line-height:1.4}
.score-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:11px}.score-head .section-title{margin:0}#scorePlayer{color:#aab0b8;font-size:11px;font-weight:900}.score-sheet{margin-top:8px;max-height:calc(100vh - 154px);overflow:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:#3b424a transparent}.score-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:7px 8px;border-radius:8px;border-bottom:1px solid #22272e;min-height:42px}.score-row:hover{background:#171c22}.score-label strong{display:block;font-size:12px}.score-label small{display:block;color:#777f89;font-size:9px;margin-top:1px}.score-value{min-width:52px;text-align:right;font-weight:900}.score-row.available{cursor:pointer}.score-row.available .score-value{color:#ff646b}.score-row.available:hover{background:rgba(229,27,35,.1)}.score-row.locked .score-value{color:white}.score-separator{font-size:9px;letter-spacing:2px;color:#707780;padding:10px 8px 4px;font-weight:900}.score-total{display:flex;justify-content:space-between;padding:8px;border-top:1px solid #343b43;margin-top:3px;font-size:12px;font-weight:900}.bonus{color:#f0b64c}
.leaderboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px}.leader-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;background:#0c1014;border:1px solid #232930;padding:8px 10px;border-radius:9px}.leader-row.active{border-color:var(--red);box-shadow:inset 3px 0 var(--red)}.leader-pos{color:#6f7781;font-weight:900;font-size:12px}.leader-name{font-weight:800;font-size:12px}.leader-score{font-weight:1000;font-size:12px}.leader-progress{grid-column:2/4;height:3px;background:#242a31;border-radius:4px;overflow:hidden}.leader-progress i{display:block;height:100%;background:var(--red)}
.end{display:grid;place-items:center;min-height:calc(100vh - 110px)}.end-card{width:min(700px,100%);padding:42px;text-align:center}.end-card h1{font-size:45px;margin:8px 0}.winner-name{font-size:38px;font-weight:1000;color:var(--red);margin-bottom:25px}.final-ranking{display:grid;gap:8px;margin:25px 0}.final-row{display:flex;justify-content:space-between;background:#0b0f13;border:1px solid #242a31;padding:13px 16px;border-radius:10px}.final-row:first-child{border-color:var(--red);font-size:18px}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);background:#1b2026;color:white;border:1px solid #323941;border-left:4px solid var(--red);padding:12px 18px;border-radius:10px;opacity:0;pointer-events:none;transition:.25s;z-index:50}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px) and (min-height:850px){:root{--die-size:104px}.dice-arena{height:min(48vh,535px)}.game-layout{grid-template-columns:minmax(0,1.55fr) minmax(420px,.45fr)}}
@media(max-width:1100px){:root{--die-size:clamp(70px,8.4vw,92px)}.setup-grid,.game-layout{grid-template-columns:1fr}.game-head{grid-template-columns:1fr 120px 120px}.score-sheet{max-height:none}.hero-dice{display:none}.hero{padding:28px}.dice-arena{height:390px}.leaderboard{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){:root{--die-size:clamp(58px,18vw,76px)}.shell{width:calc(100% - 12px);margin-top:7px;margin-bottom:14px}.topbar{height:60px;padding:0 8px}.brand small{display:none}.brand strong{font-size:15px}.brand-mark{width:33px;height:33px;font-size:18px}.header-actions{gap:6px}.icon-btn{padding:8px}.danger-outline{font-size:0;padding:8px 10px}.danger-outline:after{content:"↻";font-size:18px}.hero{min-height:auto;padding:21px 15px}.hero h1{font-size:34px}.setup-card,.dice-panel,.players-panel,.score-panel{padding:12px}.player-inputs{grid-template-columns:1fr}.game-head{grid-template-columns:minmax(0,1fr) 74px 84px;padding:11px 12px;margin-bottom:7px}.game-head h2{font-size:20px}.turn-stat{padding-left:8px}.turn-stat small{font-size:9px}.turn-stat strong{font-size:21px}.game-layout,.play-column{gap:7px}.dice-panel-head{align-items:flex-start}.roll-status{font-size:9px;text-align:right;max-width:130px}.dice-arena{height:300px;min-height:300px;margin-top:9px;border-radius:12px}.dice-arena:before{border-width:6px}.arena-grid{background-size:28px 28px}.arena-mark{font-size:8px;right:10px;bottom:8px}.held-zone{padding:8px;margin-top:8px}.held-zone-head small{display:none}.held-tray{gap:6px;min-height:64px}.held-tray .die{--cube-size:54px}.dice-actions{margin-top:8px;display:grid;grid-template-columns:1fr auto}.huge{padding:13px 12px;font-size:13px}.secondary{padding:11px 12px;font-size:11px}.hint{font-size:10px;margin-top:7px}.leaderboard{grid-template-columns:1fr}.score-row{padding:8px 6px}.score-label strong{font-size:12px}.score-label small{font-size:9px}.score-sheet{overflow:visible}.end-card{padding:26px 16px}.winner-name{font-size:30px}}
@media(max-width:390px){:root{--die-size:56px}.brand strong{font-size:14px}.game-head{grid-template-columns:minmax(0,1fr) 66px 74px}.dice-arena{height:270px;min-height:270px}.held-tray .die{--cube-size:48px}.dice-actions{grid-template-columns:1fr}.secondary{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.roll-status.live:before{animation:none}.held-tray .die{animation:none}}

/* v1.2.0 · Online lobby + entry screen */
.net-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #4c1b1f;background:#1a0d10;color:#ff7379;border-radius:999px;padding:8px 10px;font-size:9px;font-weight:1000;letter-spacing:1.4px}.net-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 9px rgba(229,27,35,.75)}
.entry-grid{display:grid;grid-template-columns:1.1fr .95fr .75fr;gap:14px;margin-top:14px}.entry-card{display:flex;flex-direction:column;min-height:100%}.entry-card .section-title{margin-bottom:8px}.card-copy{color:var(--muted);font-size:12px;line-height:1.5;min-height:36px;margin:0 0 16px}.entry-card label{margin-top:4px}.entry-card .large{margin-top:auto}.text-input,.select-input{width:100%;background:#0b0e12;border:1px solid #2b3138;color:white;border-radius:10px;padding:12px 14px;outline:none;margin:0 0 13px;font:inherit}.select-input{appearance:auto}.text-input:focus,.select-input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,27,35,.12)}.code-input{font-size:28px;font-weight:1000;letter-spacing:7px;text-align:center;font-variant-numeric:tabular-nums}.server-note,.join-hint{font-size:10px;line-height:1.45;color:#7d858f;margin-top:10px}.join-hint{border:1px solid #4f1c21;background:#180d0f;color:#ff8288;border-radius:9px;padding:9px 10px}
.lobby-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:14px}.lobby-main,.lobby-side{padding:24px}.lobby-code-wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin:8px 0 20px}.lobby-code-wrap small{color:var(--muted);font-size:10px;letter-spacing:2px;font-weight:900}.lobby-code{font-size:clamp(44px,7vw,84px);line-height:.95;font-weight:1000;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:white;text-shadow:0 0 32px rgba(229,27,35,.12)}.role-chip{border:1px solid #6b2228;background:#1d0e11;color:#ff6f75;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:1000;letter-spacing:1.5px}.invite-box{border-top:1px solid var(--line);padding-top:18px}.invite-grid{display:grid;grid-template-columns:240px 1fr;gap:22px;align-items:center}.qr-box{background:white;border-radius:14px;padding:10px;width:240px;height:240px;display:grid;place-items:center}.qr-box img{width:100%;height:100%;object-fit:contain}.invite-copy p{color:var(--muted);font-size:11px;line-height:1.5}.invite-copy .secondary{margin-top:0}.lobby-players{display:grid;gap:8px;margin-bottom:16px}.lobby-player{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;border:1px solid #282f36;background:#0c1014;border-radius:10px;padding:11px 12px}.lobby-player.you{border-color:#6a2025;background:linear-gradient(90deg,rgba(229,27,35,.1),#0c1014)}.player-dot{width:8px;height:8px;border-radius:50%;background:#5b6570}.lobby-player.you .player-dot,.lobby-player:first-child .player-dot{background:var(--red);box-shadow:0 0 9px rgba(229,27,35,.6)}.lobby-player strong{font-size:12px}.lobby-player small{color:#7f8791;font-size:9px;text-transform:uppercase;letter-spacing:1px}.lobby-status{color:#8f97a1;font-size:11px;line-height:1.5;border-top:1px solid var(--line);padding:14px 0}.lobby-side .large+.large{margin-top:8px}.turn-notice{padding:11px 14px;margin:-4px 0 12px;border-color:#552027;background:linear-gradient(90deg,rgba(229,27,35,.11),rgba(13,17,21,.97));color:#bfc5cc;font-size:12px}.turn-notice strong{color:#ff767c}.leader-name small{display:inline-block;margin-left:6px;border:1px solid #642027;color:#ff6b72;border-radius:4px;padding:1px 4px;font-size:7px;vertical-align:1px;letter-spacing:.8px}.leader-row.you{background:linear-gradient(90deg,rgba(229,27,35,.07),#0c1014)}
@media(max-width:1200px){.entry-grid{grid-template-columns:1fr 1fr}.join-card{grid-column:1/-1}.lobby-grid{grid-template-columns:1fr}.lobby-side{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.lobby-side .section-title,.lobby-side .lobby-players{grid-column:1/-1}.lobby-status{border-top:0;padding:10px 0}.lobby-side .large+.large{margin-top:0}}
@media(max-width:760px){.entry-grid{grid-template-columns:1fr}.join-card{grid-column:auto}.card-copy{min-height:0}.lobby-main,.lobby-side{padding:14px}.lobby-side{display:block}.lobby-side .large{margin-top:8px}.invite-grid{grid-template-columns:1fr;gap:14px}.qr-box{width:min(230px,100%);height:auto;aspect-ratio:1;margin:auto}.lobby-code-wrap{align-items:center}.lobby-code{font-size:48px}.role-chip{padding:7px 9px}.net-badge{display:none}.code-input{font-size:24px;letter-spacing:5px}.turn-notice{font-size:11px;margin-bottom:7px}}
@media(max-width:390px){.lobby-code{font-size:40px}.lobby-main{padding:12px}.invite-box .section-title{margin-bottom:12px}.qr-box{width:200px}}

/* v1.5.0 · Canvas-3D-Würfel mit räumlicher Physik */
:root{--die-size:64px}
.dice-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;display:block;touch-action:manipulation}
.dice-chute{z-index:4}.arena-mark{z-index:4}.dice-arena:before{z-index:6}
.held-tray .die{--cube-size:46px}
.held-tray{min-height:70px}
@media(min-width:1500px) and (min-height:850px){:root{--die-size:66px}.held-tray .die{--cube-size:48px}}
@media(max-width:1100px){:root{--die-size:58px}.held-tray .die{--cube-size:44px}}
@media(max-width:680px){:root{--die-size:52px}.held-tray .die{--cube-size:42px}.held-tray{min-height:60px}.dice-chute{width:32px;height:104px}.dice-chute b{display:none}}
@media(max-width:390px){:root{--die-size:48px}.held-tray .die{--cube-size:38px}}


/* v1.6.0 · gemeinsamer ROXXEN-Games-Titellook */
.roxxen-game-title{position:relative;display:inline-flex!important;align-items:baseline;gap:.34em;font-style:italic;font-weight:1000!important;letter-spacing:-.055em!important;line-height:.9;transform:skew(-7deg);font-family:Impact,"Arial Black",Inter,Segoe UI,sans-serif;text-transform:uppercase;text-shadow:0 2px 0 #000,0 0 20px rgba(255,255,255,.05)}
.roxxen-game-title:after{content:"";position:absolute;left:1%;right:-3%;height:3px;bottom:-7px;background:linear-gradient(90deg,var(--red),#ff2934 74%,transparent);clip-path:polygon(0 0,100% 0,92% 100%,3% 100%);box-shadow:0 0 12px rgba(229,27,35,.42)}
.roxxen-game-title .title-roxxen{color:#f7f8fa!important}.roxxen-game-title .title-game{color:var(--red)!important}
.hero-game-title{position:relative;display:inline-flex;gap:.16em;align-items:baseline;margin:0 0 17px;font-family:Impact,"Arial Black",Inter,Segoe UI,sans-serif;font-style:italic;font-size:clamp(39px,5vw,76px);font-weight:1000;letter-spacing:-.065em;line-height:.86;transform:skew(-7deg);text-transform:uppercase;text-shadow:0 3px 0 #000,0 10px 26px #0008;z-index:2}
.hero-game-title span{color:#f4f5f7}.hero-game-title b{color:var(--red);font:inherit}
.hero-game-title:after{content:"";position:absolute;left:1%;bottom:-12px;width:108%;height:6px;background:linear-gradient(90deg,var(--red),#ff2630 72%,transparent);clip-path:polygon(0 0,100% 0,94% 100%,2% 100%);box-shadow:0 0 18px rgba(229,27,35,.5)}
@media(max-width:680px){.roxxen-game-title{font-size:15px!important;gap:.25em}.roxxen-game-title:after{height:2px;bottom:-5px}.hero-game-title{font-size:42px;margin-bottom:16px}.hero-game-title:after{height:4px;bottom:-9px}}
@media(max-width:390px){.hero-game-title{font-size:36px}}
