.game-layout{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.9rem;min-height:100vh;overflow:hidden;padding:1rem 1.4rem 1.15rem;background:radial-gradient(circle at 50% 12%,rgba(55,122,220,.78),transparent 28%),radial-gradient(circle at 10% 72%,rgba(255,171,54,.2),transparent 20%),radial-gradient(circle at 92% 62%,rgba(255,202,76,.16),transparent 18%),linear-gradient(135deg,#06091b,#081b56 45%,#241064)}.game-layout:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(2,7,23,.86),transparent 16%,transparent 84%,rgba(2,7,23,.84)),radial-gradient(circle at 50% 110%,rgba(255,186,63,.16),transparent 38%);pointer-events:none}.scene-props,.top-hud,.game-table-area,.bottom-command-bar{position:relative;z-index:1}.top-hud{display:grid;grid-template-columns:auto minmax(190px,330px) minmax(240px,390px) minmax(190px,330px) auto;align-items:center;gap:.75rem}.hud-cluster{display:flex;align-items:center;gap:.65rem}.hud-cluster-right{justify-content:end}.icon-button,.plus-button{width:58px;height:58px;border:2px solid #e4a950;border-radius:8px;color:#fff8e6;background:linear-gradient(180deg,#1a3b6c,#07162c);box-shadow:inset 0 1px #ffffff40,inset 0 -6px 12px #00000042,0 8px 18px #00000073;cursor:pointer;font-weight:900;text-transform:uppercase}.icon-button span{display:inline-block;font-size:.82rem;line-height:1}.icon-button:hover,.plus-button:hover,.action-button:hover,.draw-button:hover,.restart-button:hover,.side-choice-actions button:hover{filter:brightness(1.08);transform:translateY(-1px)}.player-card{display:flex;align-items:center;min-height:78px;gap:.8rem;padding:.55rem 1rem;border:2px solid #e7a84d;border-radius:8px;background:linear-gradient(135deg,#147eb6eb,#041538f0);box-shadow:inset 0 1px #ffffff38,0 8px 18px #0000006b}.player-card-computer{background:linear-gradient(135deg,#8723beeb,#1c084af0)}.avatar{display:grid;flex:0 0 auto;width:64px;height:64px;place-items:center;border:3px solid #ffd954;border-radius:999px;background:radial-gradient(circle at 42% 30%,#ffe3bd,#bb6532 48%,transparent 49%),radial-gradient(circle at 50% 58%,#123a77,#061831 72%);color:#fff;font-weight:950;box-shadow:0 0 0 4px #06132d8c,0 8px 16px #0006;overflow:hidden}.avatar-sofia{background:radial-gradient(circle at 42% 30%,#ffd8c3,#8e3b74 48%,transparent 49%),radial-gradient(circle at 50% 58%,#321367,#120b32 72%)}.avatar img,.avatar-choice img{display:block;width:100%;height:100%;object-fit:cover}.player-name{display:flex;align-items:center;gap:.35rem;font-size:clamp(1rem,1.3vw,1.35rem);font-weight:850;letter-spacing:0}.player-card strong{display:block;margin-top:.15rem;font-size:clamp(2rem,3.25vw,3.2rem);line-height:1}.coin-label{display:block;margin-top:.18rem;color:#ffe36b;font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.coin-count{color:#fff9d8;text-shadow:0 2px 0 rgba(83,48,4,.65),0 0 14px rgba(255,221,76,.42)}.online-dot{display:inline-block;flex:0 0 auto;width:11px;height:11px;border-radius:999px;background:#44f46d;box-shadow:0 0 12px #44f46dcc}.game-logo{display:grid;min-height:84px;place-items:center;text-align:center}.game-logo h1{margin:0;max-width:100%;color:#fff;font-size:clamp(2.15rem,5vw,4.6rem);font-weight:950;letter-spacing:0;line-height:.9;overflow-wrap:anywhere;text-shadow:0 4px 0 #1a2243,0 8px 16px rgba(0,0,0,.65);-webkit-text-stroke:1.25px #2a2443}.game-logo span{display:block;width:max-content;margin:.18rem auto 0;padding:.16rem 1rem .28rem;border:2px solid #b4661c;border-radius:8px;color:#381b08;background:linear-gradient(180deg,#ffe174,#f09b23);font-size:clamp(.9rem,1.8vw,1.45rem);text-shadow:0 1px 0 rgba(255,255,255,.55);-webkit-text-stroke:0}.coin-bank{display:flex;align-items:center;justify-content:center;min-width:138px;height:58px;gap:.65rem;border:2px solid #c8833e;border-radius:8px;background:linear-gradient(180deg,#172a54,#08152f);box-shadow:inset 0 1px #ffffff2e,0 8px 18px #0000005c;font-size:1.35rem}.coin-bank span{display:grid;width:30px;height:30px;place-items:center;border-radius:999px;background:radial-gradient(circle at 35% 25%,#fff1a4,#f6a31f 62%,#9a4f07)}.coin-bank span:after{content:"$";color:#fff2a4;font-size:1rem;font-weight:950;text-shadow:0 1px 1px rgba(88,40,0,.75)}.plus-button{border-color:#79e862;background:linear-gradient(180deg,#6ee653,#087421);font-size:2.1rem}.sound-button.is-muted{border-color:#9fb3c8;background:linear-gradient(180deg,#40516c,#151d2e)}.game-table-area{display:grid;grid-template-columns:minmax(108px,160px) minmax(0,1fr) minmax(108px,160px);align-items:center;min-height:0;gap:.85rem}.left-table-rail,.right-table-rail{display:grid;align-content:center;justify-items:center;gap:.8rem}.mode-badge{width:min(148px,100%);padding:.82rem .7rem;border:1px solid rgba(103,181,255,.55);border-radius:8px;background:linear-gradient(180deg,#0e2650e6,#04112adb);box-shadow:inset 0 0 24px #2f9aff26,0 10px 20px #00000052;text-align:center}.mode-badge span{display:block;color:#8ec5ff;font-size:.78rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.mode-badge input,.invite-panel input{width:100%;border:2px solid rgba(255,255,255,.82);border-radius:8px;padding:.7rem .8rem;background:#fffaf0;color:#071626;font:inherit;font-weight:750}.mode-badge strong,.mode-badge em{display:block;color:#fff;font-size:1.45rem;font-style:normal;font-weight:950;line-height:1.05;text-transform:uppercase}.mode-badge em{color:#ffdc53}.side-avatar{width:86px;height:86px}.table-shell{display:grid;grid-template-rows:auto minmax(260px,1fr) auto;align-items:center;justify-items:center;min-width:0}.hand-panel{min-width:0}.hand-panel-opponent{max-width:min(620px,80vw)}.hand-panel-opponent .section-heading,.hand-panel-player .section-heading{justify-content:center}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:#eaf6ff;text-transform:uppercase}.section-heading h2{margin:0;font-size:.82rem;letter-spacing:0}.section-heading span{color:#a7cffb;font-size:.78rem}.hand-tiles{display:flex;gap:.45rem}.hand-tiles-opponent{min-height:76px;overflow:hidden;padding:.48rem .7rem;border:2px solid #b96d2e;border-radius:8px;background:linear-gradient(180deg,#bd7331,#6b3517);box-shadow:inset 0 1px #ffffff2e,0 8px 16px #00000059}.board-panel{position:relative;display:grid;width:100%;min-height:clamp(300px,48vh,560px);place-items:center;overflow:hidden;border:14px solid #7d421d;border-radius:8px;background:radial-gradient(circle at center,rgba(22,164,189,.8),transparent 42%),linear-gradient(180deg,#0691ac,#05566f 52%,#043d55);box-shadow:inset 0 0 0 5px #d28a3c,inset 0 0 70px #00000061,0 22px 36px #0000007a}.board-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:7px 7px;opacity:.35}.felt-watermark{position:absolute;bottom:18%;left:50%;color:#002d4061;font-size:clamp(1.2rem,2.3vw,2.1rem);font-weight:950;text-shadow:0 1px 0 rgba(255,255,255,.12);text-transform:uppercase;transform:translate(-50%)}.board-chain{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.34rem;padding:1rem}.empty-board{margin:0;color:#e2f9ffb8;font-weight:850;text-align:center}.coin-reward{position:absolute;z-index:3;top:24%;left:50%;padding:.38rem .8rem;border:2px solid rgba(255,245,158,.9);border-radius:999px;background:linear-gradient(180deg,#fff176f5,#ed840cf0);color:#361900;font-size:clamp(1rem,2.4vw,1.55rem);font-weight:950;pointer-events:none;text-shadow:0 1px 0 rgba(255,255,255,.48);transform:translate(-50%);animation:coin-pop .92s cubic-bezier(.18,.9,.2,1) forwards;box-shadow:0 0 18px #ffde4cb8,0 12px 24px #00000057}.coin-reward-human{top:auto;bottom:18%}@keyframes coin-pop{0%{opacity:0;transform:translate(-50%,18px) scale(.72)}18%{opacity:1;transform:translate(-50%,-4px) scale(1.12)}62%{opacity:1;transform:translate(-50%,-18px) scale(1)}to{opacity:0;transform:translate(-50%,-42px) scale(.92)}}.side-rack{display:grid;gap:.35rem;padding:.55rem;border:2px solid #d59246;border-radius:8px;background:linear-gradient(180deg,#a75e28,#512612);box-shadow:0 12px 18px #00000059;transform:rotate(-9deg)}.side-rack span{width:48px;height:72px;border:2px solid #f4dfc6;border-radius:7px;background:linear-gradient(135deg,rgba(255,255,255,.12),transparent),linear-gradient(135deg,#39478a,#101a4d)}.bottom-command-bar{display:grid;grid-template-columns:minmax(110px,160px) minmax(0,1fr) minmax(260px,420px);align-items:end;gap:1rem}.draw-button,.action-button,.restart-button{border:2px solid rgba(255,255,255,.35);border-radius:8px;color:#fff;cursor:pointer;text-transform:uppercase;box-shadow:inset 0 2px #ffffff3d,0 10px 18px #0000005c;transition:transform .16s ease,filter .16s ease}.action-button:disabled{cursor:not-allowed;opacity:.52;filter:grayscale(.35)}.draw-button{position:relative;display:grid;min-height:132px;place-items:center;padding:.7rem;border-color:#80ff72;background:linear-gradient(180deg,#43df36,#0b8b22 72%,#086319);font-size:1.1rem}.draw-button strong,.draw-button span{line-height:1}.draw-button em{position:absolute;top:-14px;right:-10px;display:grid;width:38px;height:38px;place-items:center;border-radius:999px;background:linear-gradient(180deg,#e7ff73,#2bb033);color:#073b11;font-style:normal;font-weight:950}.draw-stack{position:relative;display:block;width:64px;height:42px;transform:rotate(-8deg)}.draw-stack:before,.draw-stack:after{content:"";position:absolute;top:8px;right:10px;bottom:8px;left:10px;border:2px solid #182037;border-radius:7px;background:#f7efe1;box-shadow:0 7px #e2d6c5}.draw-stack:after{top:0;right:0;bottom:16px;left:20px}.rack-zone{display:grid;min-width:0;justify-items:center;gap:.45rem}.hand-panel-player{width:100%;max-width:760px;padding:.42rem .7rem .7rem;border:2px solid #9b5726;border-radius:8px;background:linear-gradient(180deg,#a75d2a,#5d2e16);box-shadow:inset 0 1px #fff3,0 12px 24px #00000061}.hand-tiles-player{overflow-x:auto;padding:.15rem .1rem .35rem}.turn-pill{display:flex;align-items:center;justify-content:center;width:max-content;max-width:min(760px,100%);min-height:42px;gap:.45rem;padding:.38rem 1.1rem;border:2px solid #c77a31;border-radius:999px;background:#071626;color:#ffe36b;font-size:clamp(.82rem,1.25vw,1.05rem);font-weight:950;text-align:center;text-transform:uppercase;box-shadow:0 6px 14px #0000005c}.action-buttons{display:grid;grid-template-columns:repeat(3,minmax(76px,1fr));align-items:stretch;gap:.65rem}.action-button{display:grid;min-height:132px;place-items:center;padding:.55rem;background:linear-gradient(180deg,#1d4ed8,#0f2558);font-weight:950}.action-button span{display:grid;width:44px;height:44px;place-items:center;border-radius:999px;background:#ffffff38;font-size:1.45rem;line-height:1}.hint-button{background:linear-gradient(180deg,#ffd64f,#d9800b)}.shuffle-button{background:linear-gradient(180deg,#43c3fb,#0f5ca8)}.pause-button{background:linear-gradient(180deg,#a94cf1,#4a158c)}.menu-screen{align-content:center}.menu-screen .game-logo{min-height:120px}.menu-screen .action-buttons{width:min(980px,100%);grid-template-columns:repeat(2,minmax(220px,1fr));justify-self:center}.menu-screen .action-button{min-height:clamp(180px,42vh,420px);border-color:#ffdc54d1;color:#fffdf2;background:linear-gradient(180deg,#0512301f,#0512309e),radial-gradient(circle at 22% 20%,rgba(255,222,102,.72),transparent 30%),linear-gradient(135deg,#0ea5e9,#153271 52%,#4c1d95);font-size:clamp(1.15rem,2.1vw,2rem);text-shadow:0 3px 8px rgba(0,0,0,.72)}.menu-screen .action-button:nth-child(2){background:linear-gradient(180deg,#0512301f,#0512309e),radial-gradient(circle at 78% 25%,rgba(134,239,172,.7),transparent 31%),linear-gradient(135deg,#14b8a6,#1e3a8a 48%,#7c2d12)}.setup-notice{position:relative;z-index:1;width:min(760px,100%);justify-self:center;margin:0;padding:.85rem 1rem;border:2px solid rgba(255,220,84,.62);border-radius:8px;background:#051230c7;color:#fff8e6;font-weight:850;text-align:center}.build-stamp{position:relative;z-index:1;justify-self:center;margin:0;color:#fff8e6b8;font-size:.78rem;font-weight:700;text-align:center}.setup-screen .table-shell,.lobby-screen .table-shell,.result-screen .table-shell{width:min(760px,100%);justify-self:center;align-self:center;grid-template-rows:auto auto auto auto;gap:1.25rem;padding:clamp(1rem,3vw,1.8rem);border:2px solid rgba(255,220,84,.5);border-radius:8px;background:#051230c7;box-shadow:inset 0 1px #ffffff29,0 24px 42px #00000057}.setup-screen .mode-badge{width:min(360px,100%)}.avatar-grid{display:grid;width:min(720px,100%);grid-template-columns:repeat(3,minmax(130px,1fr));gap:.85rem}.avatar-choice{display:grid;min-height:168px;grid-template-rows:minmax(0,1fr) auto;gap:.55rem;place-items:center;border:3px solid rgba(255,255,255,.72);border-radius:8px;padding:.7rem;color:#fffdf2;background:linear-gradient(180deg,#123c7a,#071b3f);cursor:pointer;font-weight:950;text-transform:uppercase;box-shadow:0 12px 20px #00000047}.avatar-choice img{width:min(106px,100%);aspect-ratio:1;border:3px solid #ffd954;border-radius:999px;box-shadow:0 10px 18px #00000057}.avatar-choice.is-selected{border-color:#ffe36b;background:linear-gradient(180deg,#1f6feb,#1f3d7a);box-shadow:0 0 0 4px #ffe36b40,0 16px 24px #00000057}.setup-actions{display:grid;width:min(440px,100%);grid-template-columns:1fr 1fr;gap:.75rem}.setup-actions .action-button,.setup-actions .restart-button{min-height:54px;grid-column:auto}.invite-panel{display:grid;width:min(680px,100%);gap:.75rem;padding:1rem;border:2px solid rgba(255,220,84,.65);border-radius:8px;background:linear-gradient(180deg,#0d3265f0,#051230f0);box-shadow:0 14px 24px #00000042}.invite-panel label{display:grid;gap:.55rem;color:#fffdf2;font-weight:950;text-align:left;text-transform:uppercase}.invite-panel input{text-transform:none}.invite-actions{display:grid;grid-template-columns:minmax(180px,1fr) minmax(110px,auto);gap:.7rem}.invite-actions .restart-button,.invite-actions .compact-button{min-height:52px;grid-column:auto}.compact-button{min-height:52px}.restart-button{grid-column:1 / -1;min-height:42px;background:linear-gradient(180deg,#253d6f,#101a37);font-size:.82rem;font-weight:850}.setup-actions .restart-button,.invite-actions .restart-button{grid-column:auto;min-height:54px}.side-choice-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem;margin-top:.6rem}.side-choice-actions button{border:2px solid #ffd454;border-radius:8px;padding:.65rem 1rem;background:linear-gradient(180deg,#fff176,#cc7e12);color:#341b07;cursor:pointer;font-weight:950;text-transform:uppercase}.domino-tile{display:grid;flex:0 0 auto;grid-template-rows:1fr 4px 1fr;width:60px;height:96px;place-items:center;border:2px solid #fff8ed;border-radius:8px;background:linear-gradient(145deg,#fffaf0,#e8dcc9);box-shadow:inset 0 2px #fffc,inset 0 -4px 8px #502c121f,0 7px 12px #00000057;color:#121212;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.domino-tile-board{grid-template-rows:1fr;grid-template-columns:1fr 4px 1fr;width:92px;height:50px}.domino-tile-board.is-selected{animation:tile-land .36s cubic-bezier(.2,.9,.2,1);box-shadow:0 0 0 5px #ffdc5447,0 16px 26px #0000005c}.domino-tile-player:not(.is-disabled):hover{box-shadow:0 0 0 3px #ffdf5759,0 14px 18px #0006;transform:translateY(-8px)}.domino-tile.is-disabled{cursor:not-allowed;opacity:.48;filter:saturate(.72)}.domino-tile.is-selected{outline:4px solid #ffd954;outline-offset:2px}.domino-tile.is-hidden{border-color:#e7d2bd;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent),linear-gradient(135deg,#3d4a92,#10184b)}.domino-divider{width:78%;height:2px;border-radius:999px;background:#c38b2d;box-shadow:0 0 0 1px #6f410d59}.domino-tile-board .domino-divider{width:2px;height:74%}@keyframes tile-land{0%{opacity:0;transform:translateY(28px) scale(1.12) rotate(-5deg)}72%{opacity:1;transform:translateY(-5px) scale(1.04) rotate(2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.pip-grid{position:relative;display:block;width:100%;height:100%}.pip{position:absolute;width:8px;height:8px;border-radius:999px;background:#111;box-shadow:inset 0 1px 1px #ffffff47}.pip-top-left{top:18%;left:24%}.pip-top-right{top:18%;right:24%}.pip-middle-left{top:50%;left:24%;transform:translateY(-50%)}.pip-middle-right{top:50%;right:24%;transform:translateY(-50%)}.pip-middle-center{top:50%;left:50%;transform:translate(-50%,-50%)}.pip-bottom-left{bottom:18%;left:24%}.pip-bottom-right{right:24%;bottom:18%}.domino-back-mark{width:28px;height:28px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent),radial-gradient(circle,rgba(14,22,78,.7),transparent 65%);transform:rotate(45deg)}.prop{position:absolute;display:block;pointer-events:none}.prop-palm{width:180px;height:250px;border-radius:50% 50% 0 0;background:radial-gradient(ellipse at center,rgba(41,166,88,.35),transparent 65%);filter:blur(.2px)}.prop-palm-left{top:85px;left:-58px;transform:rotate(-18deg)}.prop-palm-right{top:82px;right:-58px;transform:rotate(18deg)}.prop-lantern{top:130px;right:68px;width:70px;height:120px;border-radius:999px 999px 18px 18px;background:radial-gradient(circle at 50% 66%,#ffe877,#c66a14 42%,rgba(74,33,8,.62) 58%,transparent 68%);box-shadow:0 0 38px #ffa93094}.prop-drink{bottom:110px;left:22px;width:76px;height:92px;border-radius:0 0 999px 999px;background:radial-gradient(circle at 50% 18%,#f8fff1,#7fcf65 54%,#285a1b 55%)}.prop-cup{right:34px;bottom:120px;width:92px;height:70px;border-radius:12px 12px 999px 999px;background:radial-gradient(ellipse at 50% 22%,#3b170c,#160905 44%,#244d91 45%);box-shadow:0 10px 16px #00000059}.prop-shell{right:120px;bottom:18px;width:54px;height:32px;border-radius:999px 999px 12px 12px;background:repeating-radial-gradient(circle at 50% 100%,#f7caa5 0,#f7caa5 5px,#b98268 6px,#b98268 8px);transform:rotate(-10deg)}@media (max-width: 1100px){.top-hud{grid-template-columns:auto 1fr 1fr auto}.game-logo{grid-row:1;grid-column:2 / 4}.player-card-human{grid-row:2;grid-column:2}.player-card-computer{grid-row:2;grid-column:3}.hud-cluster-left{grid-row:1 / 3;grid-column:1}.hud-cluster-right{flex-direction:column;grid-row:1 / 3;grid-column:4}.bottom-command-bar{grid-template-columns:116px minmax(0,1fr)}.action-buttons{grid-template-columns:repeat(4,1fr);grid-column:1 / -1}.restart-button{grid-column:auto}}@media (max-width: 820px){.game-layout{gap:.7rem;padding:.75rem}.top-hud{grid-template-columns:1fr}.hud-cluster,.hud-cluster-right{flex-direction:row;justify-content:center}.game-logo,.player-card-human,.player-card-computer,.hud-cluster-left,.hud-cluster-right{grid-row:auto;grid-column:auto}.game-logo{min-height:auto;padding:.25rem .5rem;overflow:visible}.game-logo h1{font-size:clamp(1.75rem,8.5vw,2.85rem);line-height:1;text-shadow:0 3px 0 #1a2243,0 7px 12px rgba(0,0,0,.58);-webkit-text-stroke:0}.menu-screen .game-logo{min-height:84px}.player-card{min-height:70px}.game-table-area{grid-template-columns:1fr}.left-table-rail,.right-table-rail{display:none}.board-panel{min-height:270px;border-width:10px}.coin-reward{max-width:calc(100% - 1.5rem);font-size:clamp(.95rem,5vw,1.28rem);white-space:nowrap}.bottom-command-bar{grid-template-columns:1fr}.draw-button{min-height:90px}.action-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-screen .action-buttons,.avatar-grid,.setup-actions,.invite-actions{grid-template-columns:1fr}.menu-screen .action-button{min-height:150px}.avatar-choice{min-height:128px;grid-template-columns:86px minmax(0,1fr);grid-template-rows:1fr;text-align:left}.restart-button{grid-column:1 / -1}.domino-tile{width:54px;height:88px}.domino-tile-board{width:78px;height:46px}.prop-lantern,.prop-drink,.prop-cup,.prop-shell{opacity:.35}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;scroll-behavior:auto!important;transition-duration:1ms!important}}:root{color:#fff8e6;background:#07112b;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,textarea,select{font:inherit}#root{min-height:100vh}
