@font-face{font-family:Jua;src:url(assets/jua.ttf)}*{box-sizing:border-box}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}body{margin:0;background:#063e37;color:#f8ffe9;font-family:Jua,system-ui,sans-serif;min-height:100dvh;display:grid;place-items:center;background-image:radial-gradient(ellipse at 50% 25%,#127969,#032d29 85%)}button:focus-visible,a:focus-visible{outline:3px solid #fff38b;outline-offset:3px}#app{width:min(1280px,100%);padding:18px 18px 5px}.topbar{display:flex;align-items:center;gap:24px;height:72px;padding:0 18px;background:linear-gradient(#0b6355,#074e45);border:1px solid #5fa97c;border-bottom:0;border-radius:21px 21px 0 0}.brand{text-decoration:none;display:flex;align-items:baseline;gap:9px;color:#fff8c1}.brand>b{font-size:39px;letter-spacing:-3px;text-shadow:0 3px #244922}.brand>span{font:900 11px Arial;letter-spacing:1px;color:#b9dc9c}.room-name{display:flex;align-items:center;gap:10px;flex:1}.room-name>b{font-size:16px;font-weight:400}.room-name>small{font:11px Arial;color:#b9d7bb;margin-left:5px}.room-badge{padding:5px 10px;border:1px solid #accd6b;color:#eeff9c;border-radius:7px;font-size:12px;background:#276b4c}nav{display:flex;gap:8px}.icon-btn{width:33px;height:33px;border:1px solid #6aaa7c;border-radius:10px;background:#06483e;color:#d9edc8;font-size:19px;box-shadow:0 2px #002e2b}.game{position:relative;aspect-ratio:1.85;min-height:450px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 42%,#71bc45,#53a738 58%,#38862b);border:6px solid #256845;box-shadow:inset 0 0 0 2px #c5e99577,inset 0 0 85px #194d3444,0 5px #022b25;border-radius:4px 4px 14px 14px;--cw:clamp(38px,5.35vw,68px);--ch:calc(var(--cw)*1.51)}.table-grain{position:absolute;inset:0;z-index:-1;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}.table-brand{position:absolute;left:49%;top:41%;transform:translate(-50%,-50%) rotate(-9deg);font:900 58px Arial;letter-spacing:-4px;color:#2d722224;pointer-events:none}.table-brand small{display:block;font:17px Jua;text-align:center;letter-spacing:2px;margin-top:5px}.players{position:absolute;inset:12px auto 12px 12px;width:140px;display:flex;flex-direction:column;justify-content:space-between}.player{position:relative;min-height:42%;padding:9px 10px 7px;background:linear-gradient(#226e4dec,#135840ed);border:2px solid #c2e4a04d;border-radius:15px;box-shadow:0 3px 0 #195e36;color:#fff4b8;text-align:center}.player.active{border-color:#fff58e;box-shadow:0 0 0 2px #eafc8b33,0 3px 0 #195e36}.player-top{display:flex;align-items:center;justify-content:space-between;font:9px Arial;color:#c5dfb3;gap:5px}.level{border-radius:5px;padding:3px 5px;background:#064d38;color:#ffe98c;font-weight:700}.avatar{position:relative;height:73px;width:78px;margin:6px auto 0;border:3px solid #d7c976;background:radial-gradient(#e9ffd3,#86c88c);border-radius:16px;box-shadow:0 3px #053f33}.avatar svg{height:100%;width:100%;padding:4px}.avatar.ping{background:radial-gradient(#efffdb,#82c8ac)}.avatar.ping img{position:absolute;width:158px;height:89px;object-fit:cover;left:-43px;top:-12px}.turn-mark{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:77px;border-radius:10px;background:linear-gradient(#ffed69,#efb63b);border:1px solid #fff3b0;color:#734c1c;font-size:10px;padding:3px 4px;display:none;box-shadow:0 2px #75512666}.active .turn-mark{display:block}.player h2{font-size:16px;font-weight:400;margin:15px 0 3px;white-space:nowrap}.player-money{font:800 17px Arial;color:#ffed77}.player-money small{font-size:9px;color:#bdd9b2}.player-flags{font-size:10px;color:#abcfac;margin:5px 0}.player-score{display:flex;align-items:baseline;justify-content:center;gap:6px;padding-top:5px;border-top:1px solid #99cc8c2b}.player-score span,.player-score em{font-size:10px;color:#c0d7b4;font-style:normal}.player-score b{font:900 28px Arial;color:#ffef8e}.vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:900 italic 19px Arial;color:#ebfca9;text-shadow:0 2px #255730;z-index:1}.speech{position:absolute;top:25px;left:131px;width:135px;padding:12px 10px;background:#fffceb;border:2px solid #cfdfab;border-radius:14px;color:#477136;font-size:12px;box-shadow:0 3px #1c643b3b;z-index:4}.speech:before{content:'';position:absolute;left:-8px;top:15px;border-right:8px solid #fffceb;border-top:6px solid transparent;border-bottom:6px solid transparent}.opponent-zone{position:absolute;left:178px;right:155px;top:12px;height:116px;display:flex;gap:18px;align-items:flex-start}.hidden-hand{display:flex;padding-top:3px;min-width:160px}.mini-back{width:25px;height:38px;border:2px solid #f5f0d1;border-radius:3px;background:repeating-linear-gradient(45deg,#df3b2f 0 3px,#b02024 3px 5px);box-shadow:0 2px #542c2466;margin-left:-8px}.mini-back:first-child{margin-left:0}.taken-row{display:flex;gap:11px;min-width:0;flex:1;align-items:flex-start;height:92px}.pile{position:relative;display:flex;min-width:38px;flex:1;max-width:125px;padding-top:17px;height:90px}.pile-label{position:absolute;top:0;left:0;color:#275d29;font:11px Jua;white-space:nowrap}.pile-label b{color:#173f22;font:700 12px Arial;padding-left:4px}.pile .card{position:absolute;top:20px;width:31px;height:47px;border-radius:3px}.pile .card:nth-of-type(n+9){display:none}.floor-zone{position:absolute;left:178px;right:165px;top:25%;bottom:31%;display:flex;align-items:center;gap:24px}.deck-area{width:var(--cw);position:relative;flex:none;align-self:center;margin-right:12px}.deck{width:var(--cw);height:var(--ch);padding:0;border:3px solid #fff3d3;border-radius:5px;background:repeating-linear-gradient(45deg,#cd2b28 0 4px,#b61e26 4px 6px);box-shadow:2px 3px #f6e6ce,3px 5px #a6ac72,5px 7px #f4e6c8,6px 9px #436c2c;color:#fff2b9;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:default}.deck>span{font-size:30px;border:2px solid #f8c072;border-radius:50%;padding:0 4px;background:#9b1e24c9}.deck small{font:700 7px Arial;letter-spacing:.5px;margin-top:7px}.deck-count{display:block;text-align:center;margin-top:15px;color:#e8ffbb;font:11px Arial;background:#377a2b;border-radius:8px;padding:3px}.floor{display:flex;justify-content:center;align-content:center;flex-wrap:wrap;gap:14px 16px;max-width:620px;flex:1;min-width:0}.card{position:relative;display:block;width:var(--cw);height:var(--ch);padding:0;border:2px solid #f8f1d8;border-bottom:4px solid #e7dbc1;border-radius:5px;background:#fffaf0;box-shadow:0 2px 0 #1e4a2d88,1px 3px 5px #18432433;flex:none;overflow:hidden;transition:filter .12s,transform .15s}.card svg{display:block;width:100%;height:100%}.card .month{position:absolute;top:2px;left:3px;z-index:1;font:800 9px Arial;color:#344c32;background:#fffc;border-radius:3px;padding:1px 3px}.card .rank{position:absolute;bottom:3px;right:3px;border-radius:3px;color:#fff;background:#e12828;padding:1px 3px;font-size:11px;text-shadow:0 1px #811a17}.card .rank.joker{background:#6d35a9;font-size:8px}.card.matchable:after{content:'▼';position:absolute;top:-1px;right:3px;color:#ffed37;font:900 15px Arial;text-shadow:0 1px #896b13,0 0 2px #6c3b00}.floor .card.matched{outline:3px solid #ffef4b;box-shadow:0 0 18px #fff8ad}.floor .card{transform:rotate(var(--r,0deg))}.turn-notice{position:absolute;left:15%;right:0;bottom:-24px;text-align:center;color:#f3ffcb;font-size:12px;text-shadow:0 1px #487b2d;pointer-events:none}.info-rail{position:absolute;right:12px;top:12px;bottom:17px;width:126px;display:flex;flex-direction:column;gap:12px}.mission{border:2px solid #fded96;border-radius:13px;background:linear-gradient(#ffeab1,#efc569);padding:10px 8px;text-align:center;color:#765127;box-shadow:0 4px #3a763b66;position:relative}.mission-label{display:block;color:#a77c35;font-size:11px}.mission>b{font-size:17px;font-weight:400;display:block;margin:4px 0 9px}.mission-cards{display:flex;justify-content:center;gap:4px}.mission-cards span{width:25px;height:38px;border:2px solid #fff9da;background:linear-gradient(145deg,#e9282f 50%,#a91b22 50%);border-radius:3px;color:white;display:grid;place-items:center;font-size:15px;box-shadow:0 2px #b88f43}.mission>strong{display:block;font:900 italic 31px Arial;color:#f16326;text-shadow:0 2px #fff8c2;letter-spacing:-1px;margin-top:6px}.mission small{font-size:8px;color:#a57e42}.score-guide{background:#266d42c9;border:1px solid #d4f3ac55;border-radius:12px;padding:12px;color:#d4edba}.score-guide>span{font-size:11px;display:block;border-bottom:1px solid #a6ce8c55;padding-bottom:8px;margin-bottom:7px;text-align:center}.score-guide>div{display:flex;justify-content:space-between;padding:5px 0;font-size:12px}.score-guide b{font-weight:400}.score-guide em{font:800 17px Arial;color:#ffef8b}.effects-button{margin-top:auto;padding:10px 5px;border:1px solid #bddb93;border-bottom:3px solid #175435;border-radius:10px;background:#2f7b46;color:#f5f9bb;font-size:13px}.effects-button span{color:#ffe782}.my-zone{position:absolute;left:174px;right:153px;bottom:10px;height:30%;display:flex;flex-direction:column;justify-content:flex-end}.my-zone>.taken-row{height:67px;flex:none;margin-bottom:8px;padding-left:2px}.my-zone .pile{height:67px}.my-zone .pile .card{height:42px;width:29px;top:17px}.hand-tray{position:relative;background:linear-gradient(#2d7c3566,#205c2b88);border:1px solid #a5d47c66;border-radius:12px;padding:11px 9px 9px;box-shadow:inset 0 2px #184d292b}.hand-hint{position:absolute;top:-9px;left:50%;transform:translateX(-50%);padding:3px 12px;background:#3b8034;border:1px solid #9bca6c;border-radius:12px;color:#edffc4;font-size:10px;white-space:nowrap}.hand{display:flex;justify-content:center;gap:5px;min-height:var(--ch)}.hand .card{width:calc((100% - 45px)/10);max-width:var(--cw);height:auto;aspect-ratio:1/1.51;align-self:flex-end;cursor:pointer}.hand .card:hover{transform:translateY(-12px);filter:brightness(1.07);z-index:2}.hand .card:active{transform:translateY(-16px) scale(1.03)}.hand .card:disabled{cursor:default}.hand .card:disabled:hover{transform:none}.hand .card.new-card{animation:deal .35s both}.bottom-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 9px 7px}.round-state{display:flex;gap:7px;align-items:center;font-size:12px;color:#e0f6ca}.round-state>i{width:7px;height:7px;background:#b8ec6b;border-radius:50%;box-shadow:0 0 7px #c5ff6b77}.round-state small{color:#79a78d;font-size:10px;margin-left:9px}.bottom-bar>p{font-size:10px;color:#8db49c}.bottom-bar>p>span{padding-left:9px;color:#d2cc8e}.bottom-actions{display:flex;gap:7px}.bottom-actions button{padding:8px 13px;border:1px solid #55977a;border-radius:8px;background:#115f50;color:#d7edc6;font-size:12px}.bottom-actions #auto{background:linear-gradient(#f7d76d,#dfae41);border-color:#fff0a1;color:#694620;box-shadow:0 2px #a57227;min-width:100px}.bottom-actions #auto>i{display:inline-block;width:9px;height:9px;border:2px solid #94723c;border-radius:50%;margin-left:8px}.bottom-actions #auto[aria-pressed=true]>i{background:#226544;border-color:#226544}.outside-note{text-align:center;font:9px Arial;color:#467c66;margin:8px}.welcome{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;text-align:center;padding:32px 20px 20px;border:2px solid #e8f0a177;border-radius:27px;background:linear-gradient(#155f46f0,#084e40f5);box-shadow:0 18px 55px #0a3b2d66,0 0 0 999px #0a493037;backdrop-filter:blur(4px)}.welcome-sticker{position:absolute;left:50%;top:-14px;transform:translateX(-50%) rotate(-4deg);white-space:nowrap;background:#ffec84;color:#79522d;border:2px solid #fff6b0;border-radius:8px;padding:6px 15px;font-size:13px;box-shadow:0 3px #89602833}.welcome h1{font-size:81px;letter-spacing:-8px;line-height:.95;margin:6px 0 12px;font-weight:400;color:#f8ffbd;text-shadow:0 5px #315f25,2px 0 #ffef8b,-2px 0 #ffef8b;transform:rotate(-6deg)}.welcome h1>span{color:#ffcd4f}.welcome h1>small{display:block;font:900 13px Arial;letter-spacing:6px;color:#c6e4ac;margin-top:13px;text-shadow:none}.welcome p{font-size:17px;color:#d9edb4}.welcome #start{width:100%;padding:15px 12px;border:2px solid #fff6b2;border-bottom:5px solid #bd7029;border-radius:14px;background:linear-gradient(#ffdc62,#ffae39);color:#754220;text-shadow:0 1px #fff5b4;font-size:25px;box-shadow:0 4px #043b2d}.welcome #start>span{font-size:15px;margin-left:15px}.welcome-note{display:block;font-size:10px;color:#86b8a0;margin-top:13px}.effect-layer{position:absolute;inset:0;pointer-events:none;z-index:12;overflow:hidden}.flying-card{position:fixed;z-index:50;pointer-events:none;transform-origin:center;box-shadow:0 9px 13px #08382966}.spark{position:absolute;left:var(--x);top:var(--y);width:7px;height:7px;border-radius:2px;background:var(--color);box-shadow:0 0 5px #fff8;animation:spark .65s ease-out both}.big-effect{position:absolute;left:53%;top:44%;transform:translate(-50%,-50%);z-index:15;pointer-events:none;text-align:center;white-space:nowrap}.big-effect.show{animation:bang .95s both}.big-effect b{display:block;font-size:83px;line-height:1.1;font-weight:400;color:#ffe75f;-webkit-text-stroke:2px #a93c17;text-shadow:0 5px #7c3118,3px 0 #fff6b2,-3px 0 #fff6b2,0 -3px #fff6b2;transform:rotate(-10deg)}.big-effect small{display:inline-block;color:#fff8cf;background:#5b5425d9;border:1px solid #fff2a9;border-radius:14px;padding:5px 15px;font-size:13px;margin-top:9px}.big-effect.joker b{color:#fffb9a;-webkit-text-stroke-color:#a756ad;text-shadow:0 5px #753478,3px 0 #fff6b2,-3px 0 #fff6b2}.choice{position:absolute;z-index:18;left:54%;top:49%;transform:translate(-50%,-50%);border:2px solid #ffec8d;border-radius:20px;background:#145943ed;box-shadow:0 0 0 999px #052d2d55,0 12px 40px #103c2b77;padding:18px 24px;text-align:center}.choice-title{font-size:16px;color:#e6f7bf}.choice-score{color:#ffe88c;font-size:17px;margin:9px 0 15px}.choice-score b{font:900 35px Arial;margin-right:4px}.choice-buttons{display:flex;gap:14px}.choice-buttons button{width:120px;height:100px;border:3px solid #fff5b7;border-bottom:6px solid #a0571e;border-radius:18px;background:linear-gradient(#ffd64f,#fa9a22);color:#fff7ba;box-shadow:0 3px #073a2c}.choice-buttons button b{font-size:48px;line-height:1;font-weight:400;text-shadow:0 3px #a95417;-webkit-text-stroke:1px #a95417}.choice-buttons button small{display:block;font-size:11px;color:#8f501e;margin-top:7px}.choice-buttons #stop{background:linear-gradient(#ff775d,#de3e32);border-bottom-color:#95291e}.choice-buttons #stop small{color:#ffedb5}[hidden]{display:none!important}dialog{width:min(460px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:2px solid #ebd78a;border-bottom:6px solid #254f38;border-radius:21px;background:linear-gradient(#fff9df,#f2e6bb);color:#425a37;padding:27px;box-shadow:0 20px 60px #001c2199}dialog::backdrop{background:#052e2bd9;backdrop-filter:blur(3px)}#close-modal{position:absolute;right:9px;top:7px;background:none;border:0;font:28px Arial;color:#7f976e}dialog h2{font-size:28px;font-weight:400;text-align:center;color:#35633f;margin:5px 0 8px}dialog p{font:13px/1.8 Jua;color:#7c8966}dialog .eyebrow{font:700 10px Arial;letter-spacing:2px;text-align:center;color:#a09458}.effect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:21px}.effect-grid button{border:2px solid #fff5c0;border-bottom:4px solid #ab8239;border-radius:12px;background:linear-gradient(#ffdf7a,#eab44d);color:#72542a;font-size:19px;padding:16px 6px}.modal-primary{display:block;width:100%;padding:13px;border:2px solid #c9eab7;border-bottom:4px solid #175a3c;border-radius:12px;background:linear-gradient(#4d9e5d,#27734a);color:#fff8c5;font-size:19px;margin-top:18px}.toggle-row{display:flex;align-items:center;justify-content:space-between;margin:17px 0;color:#698155}.toggle-row button{border:1px solid #c4bc7d;border-radius:7px;background:#e7dba6;color:#677746;padding:8px 12px}.result-title{font-size:58px;color:#e8a327;text-shadow:0 3px #fff8cd;text-align:center;margin:15px 0}.result-number{font:900 42px Arial;color:#3c7549;text-align:center;margin:20px}.result-sub{text-align:center}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes bang{0%{opacity:0;transform:translate(-50%,-50%) scale(2.6) rotate(-7deg)}15%{opacity:1;transform:translate(-50%,-50%) scale(.88) rotate(2deg)}28%{transform:translate(-50%,-50%) scale(1.12)}45%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) scale(1.05)}}@keyframes spark{to{transform:translate(var(--dx),var(--dy)) rotate(150deg) scale(.1);opacity:0}}@keyframes deal{from{opacity:0;transform:translate(90px,-160px) rotate(28deg) scale(.8)}to{opacity:1;transform:none}}@keyframes shake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.game.rumble{animation:shake .25s}.muted{opacity:.5}@media(max-width:900px){#app{padding:7px}.topbar{height:54px;padding:0 12px;gap:15px}.brand>b{font-size:30px}.brand>span{font-size:8px}.room-name>b{display:none}.room-name>small{font-size:10px}.game{min-height:360px;--cw:clamp(35px,5.4vw,52px)}.players{width:104px;left:8px;top:8px;bottom:8px}.player{padding:6px;min-height:44%;border-radius:11px}.avatar{width:53px;height:49px;margin-top:4px;border-width:2px}.avatar.ping img{width:112px;height:63px;left:-31px;top:-9px}.player h2{font-size:12px;margin:11px 0 3px}.player-money{font-size:13px}.player-score b{font-size:21px}.player-flags{font-size:8px;margin:3px 0}.player-score{padding-top:3px}.player-top{font-size:7px}.level{padding:2px 4px}.turn-mark{font-size:8px;padding:2px;width:58px;bottom:-6px}.speech{left:98px;top:22px;width:112px;font-size:10px;padding:9px}.opponent-zone{left:128px;right:118px;top:9px;gap:12px}.mini-back{width:18px;height:28px;margin-left:-7px}.hidden-hand{min-width:110px}.pile-label{font-size:9px}.pile .card{width:23px;height:35px;top:15px}.taken-row{gap:6px;height:65px}.info-rail{right:8px;top:8px;bottom:10px;width:94px;gap:8px}.mission{padding:7px 4px;border-radius:10px}.mission>b{font-size:13px;margin:4px 0 6px}.mission-label{font-size:9px}.mission-cards span{width:19px;height:28px;font-size:11px}.mission>strong{font-size:24px;margin-top:4px}.score-guide{padding:8px}.score-guide>span{font-size:9px}.score-guide>div{padding:3px 0;font-size:10px}.score-guide em{font-size:13px}.effects-button{font-size:11px;padding:7px 3px}.floor-zone{left:130px;right:119px;gap:14px;top:23%;bottom:32%}.floor{gap:10px 11px}.deck-area{margin-right:4px}.deck>span{font-size:23px}.deck-count{font-size:9px;margin-top:11px}.turn-notice{font-size:10px;bottom:-17px}.my-zone{left:128px;right:116px;bottom:8px}.my-zone>.taken-row{height:53px;margin-bottom:5px}.my-zone .pile .card{width:22px;height:33px;top:14px}.hand-tray{padding:8px 6px 6px}.hand{gap:3px}.hand .card{width:calc((100% - 27px)/10)}.hand-hint{font-size:8px;padding:2px 7px}.card .month{font-size:7px;left:1px;top:1px;padding:1px 2px}.card .rank{font-size:8px;right:1px;bottom:1px}.bottom-bar{padding:10px 3px 3px;gap:7px}.bottom-bar>p{font-size:8px}.round-state{font-size:10px}.round-state small{display:none}.bottom-actions button{font-size:10px;padding:7px 9px}.bottom-actions #auto{min-width:88px}.outside-note{font-size:8px;margin:7px}.big-effect b{font-size:63px}.big-effect small{font-size:10px}.choice{padding:14px}.choice-buttons button{width:100px;height:83px}.choice-buttons button b{font-size:40px}}
@media(max-width:600px) and (orientation:portrait){body{display:block}#app{padding:0;min-height:100dvh}.topbar{height:60px;border-radius:0;gap:10px}.room-name{flex-direction:column;align-items:flex-start;gap:3px}.room-badge{font-size:9px;padding:3px 7px}.room-name>small{font-size:8px;margin:0}.brand{display:block;line-height:.9}.brand>span{display:block;letter-spacing:2px;margin-top:5px}.icon-btn{width:29px;height:29px}.game{aspect-ratio:auto;height:calc(100dvh - 125px);min-height:590px;border-width:3px;border-radius:0;--cw:48px;--ch:72px}.players{width:80px;inset:10px auto 144px 7px}.player{min-height:0;padding:6px 4px}.player-top .status{display:none}.player h2{font-size:11px}.avatar{width:49px;height:48px}.player-money{font-size:11px}.player-money small{font-size:6px}.player-score span{font-size:8px}.player-flags{font-size:7px}.vs{font-size:15px}.speech{left:73px;top:20px;width:104px}.opponent-zone{left:101px;right:10px;top:13px;height:110px;display:flex;flex-direction:column;gap:5px}.hidden-hand{height:31px}.opponent-zone>.taken-row{width:100%;height:65px;flex:none}.info-rail{top:125px;right:8px;bottom:auto;width:65px;gap:10px}.mission{padding:7px 3px}.mission-label{font-size:8px}.mission>b{font-size:10px;line-height:1.3}.mission-cards{gap:1px}.mission-cards span{width:16px;height:24px;font-size:9px}.mission>strong{font-size:23px}.mission small{font-size:6px}.score-guide{padding:5px}.score-guide>span{font-size:8px;line-height:1.4}.effects-button{font-size:9px;padding:8px 2px}.floor-zone{left:101px;right:84px;top:24%;bottom:34%;display:block}.deck-area{width:34px;margin:0 0 12px 0}.deck{width:31px;height:47px;border-width:2px}.deck>span{font-size:16px}.deck small{font-size:4px;margin-top:3px}.deck-count{position:absolute;left:41px;top:14px;width:33px;margin:0;font-size:9px}.floor{gap:10px 11px;justify-content:flex-start;max-height:100%;align-content:flex-start}.floor .card{width:39px;height:59px}.turn-notice{left:0;right:-3px;bottom:-5px;font-size:10px}.table-brand{font-size:40px;left:53%;top:45%}.table-brand small{font-size:11px}.my-zone{left:8px;right:8px;bottom:12px;height:190px}.my-zone>.taken-row{margin-left:91px;height:62px;margin-bottom:9px}.my-zone .pile .card{width:23px;height:35px}.hand-tray{padding:13px 7px 8px}.hand{gap:4px;min-height:91px;justify-content:center;flex-wrap:wrap;align-content:flex-end}.hand .card{width:calc((100% - 24px)/7);max-width:47px;aspect-ratio:1/1.51}.hand .card:nth-child(n+8){margin-top:-34px;z-index:1}.hand-hint{font-size:9px}.hand .card:hover{transform:translateY(-6px)}.bottom-bar{padding:10px 10px 5px}.bottom-bar>p{display:none}.outside-note{font-size:8px}.big-effect{left:54%;top:45%}.big-effect b{font-size:58px}.welcome{width:280px;left:50%;top:46%}.choice{left:50%;top:48%}.card .rank{font-size:9px}.player-score b{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.big-effect.show{opacity:1}.spark{display:none}}
.floor{display:grid;grid-template-columns:repeat(4,var(--cw));justify-content:center;align-content:center}.floor .card{width:100%;height:var(--ch)}.hand .card:disabled{opacity:1}.pile .card:disabled,.floor .card:disabled{opacity:1}.hand .card{min-width:0}.floor .card svg{pointer-events:none}#go:disabled{filter:grayscale(.6);opacity:.5}.pile .card .month,.pile .card .rank{display:none}
@media(max-width:900px){.floor{gap:10px 11px}}
@media(max-width:600px) and (orientation:portrait){.floor{grid-template-columns:repeat(3,39px);gap:9px 10px;justify-content:flex-start;align-content:start}.floor .card{width:39px;height:59px}.hand .card{width:calc((100% - 36px)/10);max-width:47px}.hand .card:nth-child(n+8){margin-top:0}.hand{flex-wrap:nowrap;min-height:65px}.my-zone{height:145px}.players{bottom:149px}.game{min-height:560px}.floor-zone{bottom:29%}}
@media(max-height:550px) and (orientation:landscape){body{display:block}#app{padding:0 5px}.topbar{height:40px;border-radius:9px 9px 0 0}.brand>b{font-size:25px}.icon-btn{width:27px;height:27px;font-size:17px}.game{height:calc(100dvh - 79px);min-height:290px;aspect-ratio:auto;--cw:38px;--ch:57px}.player{padding:5px}.player-top{font-size:7px}.avatar{width:41px;height:37px;margin-top:3px}.avatar.ping img{width:85px;height:48px;left:-24px;top:-7px}.player h2{font-size:11px;margin:9px 0 2px}.player-money{font-size:11px}.player-flags{display:none}.player-score{padding-top:2px;margin-top:3px}.player-score b{font-size:18px}.player-score span,.player-score em{font-size:8px}.players{width:95px}.opponent-zone{left:119px;right:110px;top:7px;height:55px}.floor-zone{left:120px;right:111px;top:21%;bottom:37%;gap:15px}.floor{gap:8px 15px}.info-rail{width:87px}.mission{padding:5px 3px}.mission>b{font-size:11px;margin:3px 0}.mission-cards span{width:17px;height:24px}.mission>strong{font-size:21px}.mission small{display:none}.score-guide{padding:6px}.score-guide>span{padding-bottom:4px;margin-bottom:3px}.score-guide>div{padding:2px 0}.effects-button{padding:6px 2px;font-size:10px}.my-zone{left:119px;right:108px;height:105px;bottom:6px}.my-zone>.taken-row{height:35px;margin-bottom:3px}.my-zone .pile .card{width:17px;height:25px;top:10px}.my-zone .pile-label{font-size:7px;top:-1px}.my-zone .pile-label b{font-size:8px}.my-zone .hand-tray{padding:7px 5px 4px}.hand{min-height:57px}.hand .card{height:57px;width:38px;max-width:38px}.bottom-bar{height:35px;padding:4px 5px}.bottom-actions button{padding:5px 9px}.outside-note{display:none}.welcome{padding:19px 20px 13px;width:270px}.welcome h1{font-size:60px}.welcome p{font-size:14px;margin:9px}.welcome #start{padding:10px;font-size:21px}.welcome-note{margin-top:9px}.big-effect b{font-size:53px}.speech{left:88px;top:14px}.choice-buttons button{height:71px}.choice-score{margin:4px 0 8px}}

@media(max-width:600px) and (orientation:portrait){.game{height:calc(100dvh - 117px)}.outside-note{margin:4px 0}.bottom-bar{height:39px}.topbar{height:58px}}
/* Reference palette: saturated Korean hwatu with a layered lime-green felt. */
body{background:radial-gradient(ellipse at 50% 38%,#536d1c,#253912 80%)}
.topbar{background:linear-gradient(#547518,#345a0f);border:0}.brand{color:#fff7b2}.room-badge{background:#759e24;border-color:#9cbc44}.room-name>small{color:#d3e8a0}.icon-btn{background:linear-gradient(#739725,#4d7012);border-color:#95b648;color:#edffd1}.game{border:0;border-radius:8px;box-shadow:none;background:radial-gradient(ellipse at 43% 38%,#96cf35 0,#87c32d 30%,#74ae22 64%,#4f8014 100%)}.table-grain{opacity:.075;mix-blend-mode:multiply}.felt-wave{position:absolute;z-index:-1;pointer-events:none;inset:auto -10% 4% -10%;height:21%;background:#3c6d1129;border-radius:50% 45% 0 0/45% 65% 0 0;transform:rotate(4deg);filter:blur(.5px)}.wave-two{bottom:8%;height:18%;background:#c6ee4e14;transform:rotate(-3deg);border-radius:65% 35% 0 0/90% 75% 0 0}.table-brand{font:italic 30px Jua;color:#d1ed8a47;left:8%;top:48%;letter-spacing:-1px;text-shadow:0 1px #f0ffc63b;transform:rotate(-12deg)}.table-brand small{font-size:11px;letter-spacing:1px;color:#d1ed8a47}
.card{padding:0;border:1px solid #ff1616;border-bottom:2px solid #c81717;border-radius:3px;background:#fff;box-shadow:0 2px 1px #23340869;overflow:hidden}.hwatu-face{display:block;width:100%;height:100%;background-color:#fff;background-image:url('assets/hwatu/overview.svg');background-size:1287.37864% 435.71429%;background-repeat:no-repeat}.card .month,.card .rank{display:none}.card.matchable:after{content:'▼';font-size:17px;color:#67e7ff;right:40%;top:-3px;text-shadow:0 1px 1px #034f69,1px 0 #fff,-1px 0 #fff}.floor .card{transform:none}.floor .card.matched{outline:2px solid #fff475;box-shadow:0 0 12px #fff275}.bonus-face{display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(130deg,#ff2222,#d60000);color:#fff5ab;border:2px solid #ff9b24}.bonus-face small{font:800 7px Arial;letter-spacing:.3px;border:1px solid #ffd8a6;padding:2px;border-radius:3px}.bonus-face i{font-size:12px;line-height:1.2;color:#ffe844;font-style:normal}.bonus-face b{font:900 48px/.95 Arial;color:#ffe83b;text-shadow:0 2px #9f4800;-webkit-text-stroke:1px #fff2b2}
.deck{border:1px solid #d51414;border-radius:2px;background:linear-gradient(#e81a1a,#df0000);box-shadow:2px 3px #b80e0e,3px 4px #a90505,4px 5px #b81a19}.deck>span,.deck small{visibility:hidden}.mini-back{background:linear-gradient(#ed2121,#d20b0b);border:1px solid #b31414;border-radius:1px;box-shadow:0 2px #8b1a0a66}.deck-count{background:#4b741227;color:#d5ed8d}.turn-notice{color:#f7ffd7;text-shadow:0 1px #486d20}.hand-tray{border:0;background:#2b4e0b22;box-shadow:none;border-radius:4px}.hand-hint{background:none;border:0;color:#e6f5b7}.pile-label{color:#486a1e}.pile-label b{color:#315117}.bottom-bar p,.round-state{color:#d1e5a2}.round-state small{color:#a6bc78}.bottom-actions button{background:linear-gradient(#739e20,#416d09);border-color:#9fc04d;color:#efffcc}.outside-note{color:#8da664}.outside-note button{border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}.mission{background:linear-gradient(#8a431f,#5a2c18);border-color:#c69742;border-bottom-color:#3d2916;border-radius:8px;box-shadow:0 2px 0 #30430c;color:#fff5ba}.mission-label{color:#f9e278}.mission>b{color:#ffdb50;text-shadow:0 2px #3f2014}.mission small{color:#dec49a}.mission>strong{color:#ffd56b;text-shadow:0 3px #6f341f,-1px 0 #ffe4ab}.mission-cards .mission-hwatu{width:34px;height:54px;border:1px solid #ff2626;border-radius:1px;background-color:#fff;background-image:url('assets/hwatu/overview.svg');background-size:1287.37864% 435.71429%;background-position:calc(var(--mx)/1223 * 100%) calc(var(--my)/564 * 100%);box-shadow:none}.effects-button{background:linear-gradient(#719d1c,#4a7511);color:#efffd1;border-color:#a6c854}.welcome{background:linear-gradient(#4d8113ef,#305709f5);border-color:#b5d64b66}.welcome-sticker{background:#ffe379}.welcome-note{color:#cfdf9c}.speech{border-color:#d1de90;color:#597122}
/* Same information hierarchy as the supplied match screens. */
.players{left:auto;right:12px;top:12px;bottom:12px;width:172px;z-index:3}.player{height:103px;min-height:0;padding:8px 65px 7px 9px;text-align:left;border:1px solid #a9c653;border-radius:9px;background:linear-gradient(120deg,#638b23e8,#416e0fe8);box-shadow:none}.player.active{border-color:#d9ef76;box-shadow:0 0 0 1px #b5d23c66}.player-top{display:block;height:17px}.player-top .status{display:none}.player h2{font-size:14px;margin:5px 0 5px;white-space:nowrap;line-height:1.2}.player-money{font:800 13px Arial;color:#f5ed75;white-space:nowrap}.player-money small{font-size:7px;color:#cadf95}.avatar{position:absolute;right:7px;top:10px;width:48px;height:48px;margin:0;border-radius:8px;border:2px solid #cde69b}.avatar.ping img{width:103px;height:58px;left:-29px;top:-9px}.turn-mark{width:51px;font-size:8px;padding:2px;bottom:-7px}.player-flags{position:absolute;bottom:5px;left:9px;font-size:9px;margin:0;color:#b4cf74}.player-score{position:absolute;left:0;top:calc(100% + 5px);width:100%;height:43px;padding:3px 7px;background:#315508d9;border:1px solid #96b73f;border-radius:6px;justify-content:flex-start;align-items:center;gap:4px}.player-score>span{display:none}.player-score>b{font:900 29px Arial;color:#ffdb29;text-shadow:0 2px #385107}.player-score>em{font-size:13px;color:#dcec86}.player.me .player-score{top:auto;bottom:calc(100% + 5px)}.player-score .score-multiplier{display:flex!important;flex-direction:column;gap:2px;border-left:1px solid #698929;margin-left:auto;padding:1px 0 1px 9px;min-width:65px;color:#91be37;align-items:flex-end}.score-multiplier small{font-size:8px;color:#8db739}.score-multiplier strong{font:800 17px Arial;color:#9cc83f}.vs{display:none}.speech{left:auto;right:181px;top:17px}.speech:before{left:auto;right:-8px;border-right:0;border-left:8px solid #fffceb}.info-rail{right:12px;top:36%;bottom:auto;width:172px;z-index:2}.mission{padding:9px 8px}.mission-label{font-size:12px}.mission>b{font-size:17px;margin:4px 0 9px}.mission-cards{gap:6px}.mission>strong{position:absolute;bottom:19px;right:11px;font-size:30px}.mission-cards{justify-content:flex-start;padding-right:38px}.mission small{display:block;text-align:left;margin-top:8px;font-size:8px}.score-guide{display:none}.effects-button{margin-top:0;padding:8px}.opponent-zone{left:22px;right:205px;top:12px;height:118px;display:block}.hidden-hand{position:absolute;right:8px;top:2px;min-width:0}.opponent-zone>.taken-row{width:calc(100% - 140px);max-width:520px;height:110px}.my-zone{left:22px;right:205px;bottom:13px;height:33%}.my-zone>.taken-row{height:77px;margin-bottom:12px;max-width:600px}.my-zone .pile{height:77px}.my-zone .pile .card{width:31px;height:48px;top:17px}.hand-tray{padding:8px 7px 6px}.hand{justify-content:flex-start;gap:6px}.hand .card{width:calc((100% - 54px)/10);max-width:var(--cw)}.floor-zone{left:65px;right:240px;top:24%;bottom:35%;gap:35px}.floor{grid-template-columns:repeat(4,var(--cw));gap:15px 24px}.table-brand{left:8%;top:49%}.big-effect{left:44%;top:45%}.choice{left:46%}
@media(max-width:900px){.players{right:8px;top:8px;bottom:8px;width:137px}.player{height:80px;padding:5px 53px 5px 7px}.player-top{height:13px}.player h2{font-size:11px;margin:3px 0 5px}.player-money{font-size:10px}.player-money small{font-size:6px}.player-flags{font-size:7px;left:7px;bottom:4px}.avatar{width:40px;height:40px;right:6px;top:9px}.avatar.ping img{width:87px;height:49px;left:-25px;top:-7px}.player-score{height:34px;top:calc(100% + 4px)}.player.me .player-score{bottom:calc(100% + 4px)}.player-score>b{font-size:23px}.player-score>em{font-size:10px}.player-score .score-multiplier{min-width:52px}.score-multiplier strong{font-size:14px}.info-rail{width:137px;right:8px;top:35%}.mission{padding:7px 6px}.mission-label{font-size:9px}.mission>b{font-size:14px;margin-bottom:6px}.mission-cards .mission-hwatu{width:25px;height:40px}.mission-cards{gap:5px;padding-right:30px}.mission>strong{font-size:25px;bottom:16px;right:8px}.mission small{font-size:6px}.effects-button{padding:7px;font-size:11px}.opponent-zone{left:14px;right:160px;top:9px}.my-zone{left:14px;right:160px;bottom:9px;height:32%}.my-zone>.taken-row{height:53px;margin-bottom:8px}.my-zone .pile .card{width:23px;height:35px;top:13px}.floor-zone{left:40px;right:175px;top:24%;bottom:35%;gap:25px}.floor{gap:10px 18px}.speech{right:144px;left:auto;top:12px;width:106px;font-size:10px}.pile-label{font-size:9px}.hand .card{width:calc((100% - 45px)/10)}.hand{gap:5px}.mini-back{width:19px;height:31px}.hidden-hand{right:0}}
@media(max-height:550px) and (orientation:landscape){.players{width:137px}.player{height:72px}.player h2{margin:2px 0 4px}.avatar{width:36px;height:36px;top:7px}.avatar.ping img{width:78px;height:44px;left:-22px;top:-7px}.player-flags{display:none}.player-score{height:28px;top:calc(100% + 3px)}.player.me .player-score{bottom:calc(100% + 3px)}.player-score>b{font-size:21px}.score-multiplier strong{font-size:12px}.score-multiplier small{display:none}.info-rail{top:35%;width:137px}.mission{padding:4px 6px}.mission-label{font-size:8px}.mission>b{font-size:11px;margin:2px 0 4px}.mission-cards .mission-hwatu{width:21px;height:33px}.mission>strong{font-size:23px;bottom:11px}.mission small{display:none}.effects-button{font-size:9px;padding:5px;margin-top:0}.my-zone{height:100px;bottom:7px}.my-zone>.taken-row{height:33px;margin-bottom:3px}.my-zone .pile .card{width:17px;height:25px;top:10px}.floor-zone{top:21%;bottom:37%;left:55px;right:175px;gap:35px}.floor{gap:8px 17px}.hand .card{width:38px;height:57px;max-width:38px}.hand-tray{padding:6px 4px 3px}.hand-hint{font-size:7px}.opponent-zone>.taken-row{height:50px}.pile-label{font-size:7px}.table-brand{font-size:22px}.mission-cards{gap:4px}.card.matchable:after{font-size:13px}}
@media(max-width:600px) and (orientation:portrait){.game{--cw:39px;--ch:62px}.players{right:7px;left:auto;top:10px;bottom:128px;width:103px}.player{height:88px;padding:5px 7px}.player-top{height:14px}.avatar{width:31px;height:31px;right:5px;top:7px}.avatar.ping img{width:68px;height:38px;left:-20px;top:-5px}.player h2{font-size:11px;margin-top:18px}.player-money{font-size:10px}.player-flags{font-size:6px;bottom:4px}.player-score{height:30px}.player-score>b{font-size:22px}.player-score .score-multiplier{min-width:40px;padding-left:5px}.info-rail{right:7px;top:30%;width:103px}.mission>b{font-size:11px}.mission-cards .mission-hwatu{width:22px;height:35px}.mission-cards{padding:0;gap:5px}.mission>strong{position:static;margin-top:4px;font-size:24px}.mission small{display:none}.opponent-zone{left:9px;right:120px;top:11px;height:110px}.opponent-zone>.taken-row{width:100%;height:65px}.hidden-hand{top:75px;right:0}.my-zone{left:8px;right:8px;bottom:10px;height:137px}.my-zone>.taken-row{height:48px;width:calc(100% - 115px);margin:0 0 9px 0}.my-zone .pile .card{width:20px;height:31px;top:13px}.floor-zone{left:12px;right:120px;top:25%;bottom:31%;gap:0;display:block}.floor{grid-template-columns:repeat(3,39px);gap:11px 13px;justify-content:center}.floor .card{height:62px;width:39px}.deck-area{margin:0 0 16px 18px}.deck{width:31px;height:49px}.floor .card:nth-child(n+10){margin-top:-12px}.turn-notice{bottom:-11px;font-size:8px}.hand{gap:3px}.hand .card{width:calc((100% - 27px)/10);max-width:40px}.hand-tray{padding:8px 3px 5px}.speech{right:110px;left:auto;top:18px;width:105px;font-size:9px}.table-brand{left:12%;top:49%;font-size:23px}.big-effect{left:42%}.choice{left:50%}.pile-label{font-size:8px}.bonus-face b{font-size:28px}.bonus-face small{font-size:4px}.bonus-face i{font-size:8px}}
.game{overflow:clip}.big-effect b{font-weight:400}.choice{background:linear-gradient(#3b6410f5,#244908f5);border:2px solid #a4bf4c;border-radius:11px;box-shadow:0 4px 7px #23410677,0 0 0 999px #243b071f;padding:19px 24px;min-width:310px}.choice-title{color:#fffcd3;font-size:21px;text-shadow:0 2px #273e10}.choice-score{color:#dce4a6;font-size:15px}.choice-score b{font-size:27px}.choice-buttons{gap:20px}.choice-buttons button{width:123px;height:78px;border-radius:12px;border:2px solid #e6b51c;border-bottom:5px solid #b26b05;background:linear-gradient(#ffd733,#f3a811);color:#fff5b7}.choice-buttons button b{font-size:36px;-webkit-text-stroke:1px #96621d;text-shadow:0 2px #875015}.choice-buttons button small{display:none}.choice-buttons #stop{background:linear-gradient(#e9502d,#c82f16);border-color:#c9451e;border-bottom-color:#8d2f0c}.choice-buttons #stop b{-webkit-text-stroke:1px #8f381d;text-shadow:0 2px #8f381d}
.mission{cursor:pointer}.mission:focus-visible{outline:3px solid #fff396;outline-offset:3px}.mission-modal-art{display:flex;gap:8px;justify-content:center;margin:18px 0}.mission-modal-art .card{width:63px;height:103px}.mission-modal-title{text-align:center;font-size:45px;color:#f4ce50;text-shadow:0 3px #542807;margin:10px 0 0}.mission-modal{background:linear-gradient(#8b4d26,#4b2919);border-color:#d5a75c;color:#fff4c9}.mission-modal h2{color:#ffe385}.mission-modal p{color:#ead2aa}.mission-modal .eyebrow{color:#d9b56c}.mission-rate{text-align:center;font:900 52px Arial;color:#ffe066;text-shadow:0 4px #5f2911}
.lobby-back{padding:6px 10px;border:1px solid #aac557;background:#668e1c;border-radius:8px;color:#edffc0;font-size:12px}.at-lobby{background:radial-gradient(ellipse at 50% 30%,#259ed5,#075f89)}.at-lobby .topbar{background:linear-gradient(#219ac3,#11799c);border-radius:16px 16px 0 0}.at-lobby .game,.at-lobby .bottom-bar,.at-lobby .outside-note,.at-lobby .room-name,.at-lobby #back-lobby{display:none}.at-lobby nav{margin-left:auto}.at-lobby .icon-btn{background:#1781a6;border-color:#63bfd4}.at-lobby .brand{color:#fff1b0}.lobby{position:relative;min-height:590px;overflow:hidden;border-radius:0 0 16px 16px;background:linear-gradient(#56c9ed 0 53%,#1ca5cb 53% 66%,#9bdfdf 66% 69%,#fff1b3 69%);isolation:isolate}.lobby-sky{height:130px;display:flex;align-items:center;padding:20px 36px;gap:40px;background:radial-gradient(ellipse at 65% -90%,#fff9,#fff0 70%)}.lobby-title{font-size:61px;color:#ffd45a;text-shadow:0 4px #a46d1f,2px 0 #fff6bc,-2px 0 #fff6bc;transform:rotate(-8deg);line-height:1}.lobby-title small{display:block;font:900 10px Arial;letter-spacing:4px;text-shadow:none;color:#fff4b3;margin-top:8px;text-align:center}.lobby-tabs{display:flex;align-items:center;gap:18px;flex:1;color:#e3f9fe}.lobby-tabs b{font-size:28px;font-weight:400;background:#0875a5;padding:12px 32px;border-radius:18px 18px 0 0;border-bottom:5px solid #ffe264}.lobby-tabs span{font-size:14px;color:#08759a}.lobby-account{background:#086b99;border:2px solid #b2edff;border-radius:14px;padding:12px 20px;display:flex;flex-direction:column;gap:6px}.lobby-account span{font-size:10px;color:#8ad5f0}.lobby-account b{font:900 23px Arial;color:#ffdf60}.lobby-account small{font-size:10px}.lobby-rooms{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:18px;padding:0 36px;position:relative;z-index:2}.room-card{height:258px;border:3px solid #a7e8ff;border-bottom:8px solid #086092;border-radius:24px;background:linear-gradient(#39d3fb,#02ace4 65%,#128ab8);text-align:center;color:#064b73;display:flex;flex-direction:column;align-items:center;padding:15px;box-shadow:inset 0 0 0 4px #0887b65c,0 5px #04749e77;position:relative}.room-tag{font-size:11px;color:#076791}.room-card>strong{font-size:29px;font-weight:400;margin:6px 0}.room-card>small{font-size:12px;color:#075275;line-height:1.6;margin-top:auto}.room-card>em,.guide-room>button{font-style:normal;display:block;width:145px;border:2px solid #a1e9ff;border-bottom:4px solid #075c80;border-radius:10px;background:linear-gradient(#138bbc,#056798);color:#d7f6ff;padding:9px 6px;font-size:15px;margin-top:10px;box-shadow:0 2px #07618d44}.friend-room{background:linear-gradient(#f7d780,#e1b65c 65%,#bd8a34);border-color:#ffe6b3;border-bottom-color:#9e6723;color:#78501a;box-shadow:inset 0 0 0 4px #9a641b44,0 5px #67522444}.friend-room .room-tag,.friend-room>small{color:#986a2d}.friend-room>em{background:linear-gradient(#b78942,#9a692a);border-color:#f2cd8b;color:#ffebbf;border-bottom-color:#74461a}.friends-art{display:flex;align-items:center;gap:11px;margin:10px 0}.friends-art>span{font:900 51px Arial;color:#2b9359;background:#fff7c7;border:3px solid #edb956;border-radius:22px;width:61px;height:62px;display:grid;place-items:center;transform:rotate(-8deg)}.friends-art>span:last-child{color:#db6529;transform:rotate(8deg)}.friends-art>b{font:900 italic 15px Arial;color:#99642b}.ai-art{height:93px;width:150px;position:relative}.ai-art img{position:absolute;width:230px;height:130px;object-fit:cover;left:-39px;top:-19px}.guide-room{background:linear-gradient(#2ec2eb,#0798cf);border-color:#87dcff}.guide-room>strong{color:#fff4b1}.guide-room>small{font-size:12px;color:#e3f6ff}.lobby-card-sample{height:86px;width:54px;background:#fff url('assets/hwatu/overview.svg') 0 0/1287.37864% 435.71429%;border:2px solid #ff1818;border-radius:3px;transform:rotate(10deg);box-shadow:-13px 3px 0 -2px #ff2525,0 4px 6px #035b7c55;margin:4px 0}.lobby-beach{height:200px;position:relative;z-index:1}.lobby-sand{position:absolute;inset:36px -100px -130px;background:linear-gradient(#fff3b8,#f4cf83);border-radius:55% 20% 0 0/42% 33% 0 0;transform:rotate(-5deg);box-shadow:0 -10px #fff8e788,0 -16px #afebec77}.lobby-mascot{position:absolute;right:40px;bottom:-1px;width:265px;height:150px;object-fit:cover;filter:drop-shadow(0 8px 4px #a87c3b33)}.lobby-welcome{position:absolute;left:55px;top:83px;font-size:17px;color:#9d773c}.lobby-welcome b{display:block;font-size:30px;font-weight:400;margin-top:5px;color:#795524}.lobby-beach>span{position:absolute;left:55px;bottom:9px;color:#bc985b;font-size:10px}.friend-flow{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px 0;font-size:12px;color:#779746}.friend-flow span{padding:8px;background:#e4ebc5;border-radius:6px}.friend-label{display:grid;gap:8px;color:#7a8e62;font-size:13px}.friend-label input{width:100%;padding:13px;border:1px solid #d9d4b1;border-radius:8px;background:#e8e6d4;font:15px Jua;color:#7b886c}@media(max-width:900px){.lobby{min-height:455px}.lobby-sky{height:99px;padding:15px 22px;gap:25px}.lobby-title{font-size:45px}.lobby-tabs b{font-size:21px;padding:10px 22px}.lobby-tabs span{display:none}.lobby-account{padding:8px 14px}.lobby-account b{font-size:18px}.lobby-rooms{gap:12px;padding:0 22px}.room-card{height:211px;padding:11px;border-radius:18px}.room-card>strong{font-size:24px}.friends-art{gap:6px;margin:5px 0}.friends-art>span{width:44px;height:49px;font-size:40px;border-radius:17px}.room-card>em,.guide-room>button{width:120px;padding:7px;font-size:12px}.room-card>small{font-size:10px}.ai-art{height:70px;width:120px}.ai-art img{width:190px;height:107px;left:-35px;top:-19px}.lobby-card-sample{width:41px;height:65px}.lobby-beach{height:145px}.lobby-welcome{top:61px;left:35px;font-size:13px}.lobby-welcome b{font-size:22px}.lobby-mascot{width:210px;height:118px;right:23px}.lobby-beach>span{font-size:8px;left:35px;bottom:4px}}
@media(max-height:550px) and (orientation:landscape){.lobby{min-height:calc(100dvh - 40px)}.lobby-sky{height:72px;padding:10px 22px}.lobby-title{font-size:35px}.lobby-tabs b{font-size:18px;padding:8px 25px}.lobby-account{padding:6px 11px}.lobby-rooms{padding:0 22px;gap:12px}.room-card{height:177px;padding:8px}.room-tag{font-size:9px}.room-card>strong{font-size:23px;margin:4px 0}.friends-art{margin:2px 0}.friends-art>span{width:36px;height:38px;font-size:29px;border-radius:12px}.ai-art{height:59px}.ai-art img{width:156px;height:88px;left:-16px;top:-17px}.room-card>small{font-size:9px}.room-card>em,.guide-room>button{font-size:11px;margin-top:6px;padding:6px}.lobby-card-sample{width:33px;height:54px;margin:0}.lobby-beach{height:101px}.lobby-welcome{top:36px;font-size:11px}.lobby-welcome b{font-size:19px}.lobby-mascot{width:155px;height:87px;right:30px}.lobby-beach>span{bottom:3px}.lobby-sand{top:12px}}
@media(max-width:600px) and (orientation:portrait){.lobby{min-height:calc(100dvh - 58px);border-radius:0}.lobby-sky{height:115px;padding:16px 19px;gap:22px}.lobby-title{font-size:39px}.lobby-tabs{display:none}.lobby-account{margin-left:auto;padding:10px}.lobby-account b{font-size:17px}.lobby-rooms{grid-template-columns:1fr 1fr;padding:0 16px;gap:11px}.room-card{height:228px;padding:12px 8px}.room-card>strong{font-size:24px}.room-tag{font-size:9px}.room-card>em,.guide-room>button{width:118px}.friends-art{gap:5px}.friends-art>span{width:39px;height:44px;font-size:33px}.friends-art>b{font-size:11px}.guide-room{grid-column:span 2;height:151px;display:grid;grid-template-columns:60px 1fr 100px;grid-template-rows:25px 43px 38px;column-gap:12px;text-align:left;align-items:center;padding:12px 15px}.guide-room>.room-tag{grid-column:2;grid-row:1}.guide-room>strong{grid-column:2;grid-row:2;font-size:21px;margin:0}.guide-room>.lobby-card-sample{grid-column:1;grid-row:span 3;align-self:center;justify-self:center}.guide-room>small{grid-column:2;grid-row:3;font-size:9px;margin:0}.guide-room>button{grid-column:3;grid-row:span 3;width:88px;font-size:12px;padding:9px 3px}.lobby-beach{height:204px}.lobby-mascot{width:171px;height:96px;right:-8px;bottom:32px}.lobby-welcome{left:24px;top:76px;font-size:12px}.lobby-welcome b{font-size:20px;max-width:180px}.lobby-beach>span{left:24px;font-size:8px;bottom:17px}.at-lobby .topbar{border-radius:0}}

.go-stop-modal{background:linear-gradient(#4a7017,#284a0d);border-color:#9cb73b}.go-stop-modal h2{color:#fff9cd}.go-stop-modal p{color:#d6e3ad}.go-stop-modal .eyebrow{color:#a4c24c}.demo-choice{justify-content:center;margin:20px 0}.demo-choice #demo-stop{background:linear-gradient(#e95031,#c02d12);border-color:#d9512f;border-bottom-color:#872d0f}
@media(max-height:550px) and (orientation:landscape){.info-rail{top:33%;gap:6px}.mission-cards .mission-hwatu{height:28px;width:18px}.mission>b{font-size:10px}.effects-button{padding:4px 2px;font-size:9px}.mission>strong{font-size:21px;bottom:9px}}
.players{pointer-events:none}.players .player{pointer-events:auto}

.hand-actions{position:absolute;left:0;right:0;top:-38px;display:flex;gap:6px;justify-content:center;z-index:6;pointer-events:none}.hand-actions button{pointer-events:auto;padding:6px 10px;background:linear-gradient(#ffe96e,#f9b833);border:1px solid #fff4b0;border-bottom:3px solid #aa681d;border-radius:7px;color:#67411d;font-size:11px;box-shadow:0 2px #36580c44}.choose-card{cursor:pointer!important;animation:choice-pulse .8s infinite alternate}.mission.complete{box-shadow:0 0 15px #fff35a;border-color:#fff366}.center-reveal{transform-origin:top left!important;will-change:transform;filter:drop-shadow(0 10px 8px #14360877)}@keyframes choice-pulse{to{filter:brightness(1.15);box-shadow:0 0 15px #fff575}}@media(max-height:550px) and (orientation:landscape){.hand-actions{top:-25px;gap:4px}.hand-actions button{font-size:8px;padding:3px 7px}}@media(max-width:600px) and (orientation:portrait){.hand-actions{top:-30px;gap:3px}.hand-actions button{font-size:9px;padding:4px 6px}}

.floor-zone{display:block;left:12%;right:23%;top:18%;bottom:33%}.floor{position:absolute;inset:0;display:block;max-width:none;max-height:none}.floor .card{position:absolute;--floor-w:calc(var(--cw)*.76);width:var(--floor-w);height:calc(var(--ch)*.76);transition:box-shadow .1s}.deck-area{position:absolute;left:47%;top:39%;margin:0;z-index:1;width:calc(var(--cw)*.8)}.deck{width:calc(var(--cw)*.8);height:calc(var(--ch)*.8)}.deck-count{font-size:8px;opacity:.7;margin-top:9px}.turn-notice{left:0;right:0;bottom:-8px}.hand{position:relative;z-index:1;min-height:var(--ch)}.hand-tray{background:repeating-linear-gradient(90deg,#31541138 0 calc(10% - 4px),transparent calc(10% - 4px) 10%);border-radius:2px}.hand .card{flex-shrink:0}.first-pick{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:15;background:#63871a22;padding-right:15%}.first-pick-cards{display:flex;gap:10px}.first-pick-cards .card{cursor:pointer;transition:transform .3s;transform:translateY(0)}.first-pick strong{font:400 24px Jua;color:#ffe84f;text-shadow:0 2px #7b4919}.first-pick small{font:12px Jua;color:#f8ffcf}.face-down:before{content:'';position:absolute;inset:0;background:linear-gradient(#f5201c,#dc0907);z-index:5;box-shadow:inset 0 0 0 1px #ff8380}.face-down .hwatu-face{visibility:hidden}.my-pick{transform:translateY(-13px) scale(1.1)!important;box-shadow:0 0 0 2px #ffe95a,0 3px 8px #345b0a88}.opponent-pick{transform:translateY(8px)!important;box-shadow:0 0 0 2px #7deaff}.selecting-first .floor-zone,.selecting-first .my-zone,.selecting-first .opponent-zone,.selecting-first .info-rail{visibility:hidden}.selecting-first .players .player{pointer-events:none}.selecting-first .speech{display:none}@media(max-width:900px){.floor-zone{left:9%;right:25%;top:18%;bottom:32%}.first-pick{padding-right:15%}.first-pick strong{font-size:18px}.first-pick small{font-size:9px}}@media(max-height:550px) and (orientation:landscape){.floor-zone{top:18%;bottom:33%;left:10%;right:24%}.floor .card{width:calc(var(--cw)*.84);height:calc(var(--ch)*.84)}.deck-area,.deck{width:calc(var(--cw)*.8)}.deck{height:calc(var(--ch)*.8)}.first-pick{gap:10px}.first-pick strong{font-size:18px}}@media(max-width:600px) and (orientation:portrait){.floor-zone{left:10px;right:120px;top:25%;bottom:28%}.floor .card{width:31px;height:49px}.deck-area{width:29px;top:39%;left:43%;margin:0}.deck{width:29px;height:46px}.deck-count{position:static;width:29px;font-size:7px;top:auto;left:auto;margin-top:5px}.first-pick{padding-right:0;gap:13px}.first-pick-cards{gap:7px}.first-pick-cards .card{width:43px;height:68px}.first-pick strong{font-size:18px}.first-pick small{font-size:9px}.hand{min-height:62px}}

.friend-row{display:flex;align-items:center;gap:7px;padding:10px 0;border-bottom:1px solid #d6d6ad;color:#48603a;font-size:13px}.friend-row span{flex:1}.friend-row button{padding:7px 10px;border:1px solid #a9c777;border-radius:7px;background:#719c31;color:#fff9d9;font-size:12px}#friend-error{color:#b26438;min-height:20px}.friend-label input:enabled{background:#fffdf1;color:#405b31}#friend-invites h3{font-size:15px;font-weight:400;color:#4d7733}

/* v0.4: phone-first table, thumb-sized hands and safe-area layout. */
@media(max-width:600px) and (orientation:portrait){
 body{display:block;min-height:100dvh;background:#254709;overflow-x:hidden}#app{width:100%;padding:0;padding-top:env(safe-area-inset-top);min-height:100dvh}.topbar{height:46px;padding:0 10px;gap:8px;border:0;border-radius:0}.brand>b{font-size:27px}.brand>span{font-size:7px;margin-top:3px}.room-name{flex:1;gap:2px}.room-name>small{font-size:8px}.room-badge{padding:2px 6px;font-size:9px}nav{gap:5px}.icon-btn{width:34px;height:34px;font-size:20px;border-radius:9px}.lobby-back{min-height:34px;padding:5px 7px;font-size:11px}
 .game{height:calc(100dvh - 98px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;aspect-ratio:auto;border:0;border-radius:0;--cw:clamp(45px,12vw,64px);--ch:calc(var(--cw)*1.55)}.players{inset:9px 8px 190px auto;width:113px}.player{height:69px;min-height:0;padding:5px 43px 4px 7px;border-radius:9px}.player-top{height:12px;font-size:7px}.level{font-size:7px}.player h2{font-size:11px;margin:4px 0;max-width:65px;overflow:hidden;text-overflow:ellipsis}.player-money{font-size:11px;white-space:nowrap}.player-money small{font-size:7px}.avatar{width:34px;height:35px;top:9px;right:5px;border-radius:9px}.avatar.ping img{width:74px;height:42px;left:-21px;top:-6px}.player-flags{display:none}.turn-mark{width:45px;font-size:7px;bottom:-9px;padding:2px}.player-score{height:30px;top:calc(100% + 4px);padding:2px 5px;gap:3px;border-radius:7px}.player.me .player-score{top:auto;bottom:calc(100% + 4px)}.player-score>b{font-size:24px}.player-score>em{font-size:9px}.player-score .score-multiplier{min-width:38px}.score-multiplier strong{font-size:15px}.score-multiplier small{display:none}
 .opponent-zone{left:9px;right:132px;top:10px;height:95px}.opponent-zone>.taken-row{width:100%;height:65px}.pile{min-width:0;max-width:none}.pile-label{font-size:9px;top:0}.pile-label b{font-size:10px;padding-left:2px}.pile .card{width:23px;height:36px;top:16px}.hidden-hand{top:66px;left:0;right:auto;padding:0}.mini-back{width:18px;height:28px;margin-left:-7px}.speech{display:none}
 .info-rail{top:127px;right:8px;bottom:auto;width:113px;gap:7px}.mission{padding:7px 5px;border-radius:9px}.mission-label{font-size:9px}.mission>b{font-size:12px;margin:3px 0 7px}.mission-cards{gap:5px;padding:0}.mission-cards .mission-hwatu{width:23px;height:36px}.mission>strong{position:static;display:block;font-size:24px;margin:4px 0 0;line-height:1}.mission small{display:none}.effects-button{font-size:11px;min-height:36px;padding:7px 3px}
 .floor-zone{left:10px;right:132px;top:115px;bottom:295px}.floor .card{width:clamp(36px,10.7vw,48px);height:clamp(57px,16.8vw,76px)}.deck-area{left:43%;top:42%;width:31px}.deck{width:31px;height:49px}.deck-count{width:31px;font-size:8px}.turn-notice{left:0;right:-122px;bottom:-26px;font-size:11px}.table-brand{left:17%;top:48%;font-size:24px}
 .my-zone{left:8px;right:8px;bottom:8px;height:247px;justify-content:flex-end}.my-zone>.taken-row{position:absolute;bottom:183px;left:0;width:calc(100% - 125px);height:55px;margin:0;padding:0}.my-zone .pile .card{width:23px;height:36px;top:16px}.hand-tray{padding:5px 3px 2px;background:transparent;border:0;box-shadow:none}.hand{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:5px;row-gap:3px;min-height:0;align-items:end;justify-items:center}.hand .card{width:100%;max-width:64px;height:auto;aspect-ratio:1/1.55;margin:0!important;align-self:end}.hand .card:nth-child(n+6){margin-top:-15px!important}.hand .card:hover{transform:none}.hand .card:active{transform:translateY(-7px) scale(1.04);z-index:5}.hand-hint{top:-19px;font-size:10px;padding:2px 9px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.hand-actions{top:-52px;gap:5px;flex-wrap:wrap}.hand-actions button{font-size:11px;min-height:32px;padding:5px 10px}.card.matchable:after{font-size:19px}
 .bottom-bar{height:52px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:6px;background:#33520d}.round-state{min-width:0;font-size:10px;gap:4px}.round-state>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:145px}.bottom-actions{gap:5px}.bottom-actions button{min-height:36px;font-size:12px;padding:6px 10px}.bottom-actions #auto{min-width:94px}.outside-note{display:none}.big-effect{left:46%;top:40%}.big-effect b{font-size:clamp(44px,14vw,68px)}.choice{left:50%;top:41%;min-width:0;width:calc(100% - 36px);max-width:350px;padding:18px 14px}.choice-title{font-size:20px}.choice-buttons{justify-content:center;gap:14px}.choice-buttons button{height:84px;width:124px}.choice-buttons button b{font-size:40px}.first-pick{padding:0 10px;gap:18px}.first-pick-cards{gap:8px}.first-pick-cards .card{width:clamp(43px,13vw,64px);height:clamp(68px,20.3vw,100px)}.first-pick small{text-align:center;font-size:11px;line-height:1.5}.first-pick strong{font-size:22px}
 dialog{padding:26px 18px 20px;max-height:calc(100dvh - 32px);border-radius:16px}#close-modal{width:38px;height:38px;right:4px;top:2px}dialog h2{font-size:25px}.modal-primary{min-height:46px}.effect-grid{gap:8px}.effect-grid button{font-size:17px;min-height:50px;padding:12px 4px}.friend-row button{min-height:40px}.friend-label input{min-height:46px}
 .at-lobby .topbar{height:46px}.lobby{min-height:calc(100dvh - 46px - env(safe-area-inset-top));border-radius:0}.lobby-sky{height:108px;padding:16px 18px}.lobby-title{font-size:45px}.lobby-account{padding:10px 12px}.lobby-rooms{gap:10px;padding:0 12px}.room-card{height:220px;border-radius:18px}.room-card>strong{font-size:27px}.room-card>em{min-height:40px;width:100%;max-width:140px;font-size:14px;padding:9px 4px}.room-card>small{font-size:11px}.guide-room{height:118px;grid-template-columns:45px minmax(0,1fr) 75px;grid-template-rows:20px 30px 27px;padding:12px;column-gap:9px}.guide-room>strong{font-size:21px}.guide-room>button{width:75px;min-height:44px}.guide-room>small{font-size:9px}.lobby-beach{height:calc(100dvh - 520px);min-height:150px}.lobby-welcome{left:20px;top:45px}.lobby-welcome b{font-size:23px}.lobby-mascot{width:180px;height:102px;right:0;bottom:20px}.lobby-beach>span{bottom:12px;left:20px;font-size:9px}
}
@media(max-width:600px) and (max-height:740px) and (orientation:portrait){
 .players{bottom:164px}.my-zone{height:215px}.my-zone>.taken-row{bottom:157px}.hand .card{max-width:54px}.hand .card:nth-child(n+6){margin-top:-21px!important}.floor-zone{top:104px;bottom:263px}.floor .card{width:35px;height:55px}.info-rail{top:116px}.mission-cards .mission-hwatu{width:20px;height:31px}.mission{padding:5px}.mission>b{font-size:11px;margin:3px 0}.mission>strong{font-size:21px}.effects-button{min-height:32px}.hand-actions{top:-48px}.lobby-sky{height:92px}.room-card{height:195px}.guide-room{height:108px}.lobby-beach{min-height:130px}.lobby-welcome{top:34px}
}
@media(max-height:550px) and (orientation:landscape){
 #app{padding:env(safe-area-inset-top) max(6px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-left))}.topbar{height:35px;border:0}.game{height:calc(100dvh - 75px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;border:0;--cw:clamp(34px,6vw,49px);--ch:calc(var(--cw)*1.51)}.bottom-bar{height:40px;padding:3px 5px}.bottom-actions button{min-height:33px}.icon-btn{height:29px;width:32px}.floor-zone{left:8%;right:20%;top:21%;bottom:34%}.players{width:114px;right:6px;top:5px;bottom:5px}.player{height:57px;padding:4px 42px 3px 5px}.player h2{font-size:10px;margin:2px 0}.player-top{height:9px}.level{font-size:6px}.player-money{font-size:10px}.avatar{width:31px;height:31px;right:5px;top:7px}.avatar.ping img{width:68px;height:38px;left:-20px;top:-5px}.player-score{height:25px}.player-score>b{font-size:20px}.player-score .score-multiplier{min-width:35px}.info-rail{width:114px;right:6px;top:34%;gap:3px}.mission{padding:3px 5px}.mission-label{font-size:7px}.mission>b{font-size:10px;margin:2px 0}.mission-cards .mission-hwatu{width:17px;height:26px}.mission-cards{gap:3px;padding-right:26px}.mission>strong{font-size:20px;right:4px;bottom:8px}.effects-button{min-height:25px;font-size:9px;padding:3px}.opponent-zone{left:10px;right:135px;top:7px}.opponent-zone>.taken-row{width:calc(100% - 130px)}.my-zone{left:10px;right:135px;bottom:5px;height:95px}.my-zone>.taken-row{height:29px;margin-bottom:3px}.hand-tray{padding:5px 3px 1px}.hand{gap:4px;min-height:var(--ch);flex-wrap:nowrap}.hand .card{height:var(--ch);width:var(--cw);max-width:calc((100% - 36px)/10)}.hand-hint{font-size:8px}.speech{display:none}.choice{top:45%;padding:12px 16px}.choice-buttons button{height:65px}.first-pick{gap:10px}.hand-actions button{min-height:24px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.hand .card,.first-pick-cards .card{transition:none}.choose-card{animation:none}}
/* User-provided PINGGO character pair, original artwork unchanged. */
.avatar{overflow:visible}.avatar.ping img,.avatar.fox .opponent-mascot{position:absolute;width:215%;height:auto;max-width:none;object-fit:contain;left:-8%;top:-3%}.avatar.fox .opponent-mascot{left:-108%}.avatar.fox,.avatar.ping{overflow:hidden}.avatar .turn-mark{z-index:2}.avatar.fox{background:radial-gradient(#fff4da,#f2bdc6)}.ai-art img{width:155px;height:auto;left:-3px;top:0}.lobby-mascot{object-fit:contain;width:285px;height:170px;right:24px;bottom:0}.friends-art .friend-character{position:relative;overflow:hidden}.friend-character img{position:absolute;width:220%;height:auto;left:-8%;top:1%}.pink-character img{left:-112%}
@media(max-width:900px){.ai-art img{width:130px;left:-5px;top:0}.lobby-mascot{width:225px;height:135px}}
@media(max-width:600px) and (orientation:portrait){.ai-art img{width:140px;left:-10px;top:-3px}.lobby-mascot{width:190px;height:115px;right:0;bottom:19px}}
@media(max-height:550px) and (orientation:landscape){.ai-art img{width:112px;left:4px;top:0}.lobby-mascot{width:150px;height:87px;right:22px}}
@media(max-width:600px) and (orientation:portrait){html:has(body:not(.at-lobby)){overflow:hidden}.hand .card{max-width:56px}.hand .card:nth-child(n+6){margin-top:-13px!important}}
@media(max-width:600px) and (max-height:740px) and (orientation:portrait){.hand .card{max-width:49px}.hand .card:nth-child(n+6){margin-top:-18px!important}}
@media(max-height:550px) and (orientation:landscape){html:has(body:not(.at-lobby)){overflow:hidden}.at-lobby .lobby{min-height:calc(100dvh - 35px)}.at-lobby .lobby-sky{height:67px}.at-lobby .lobby-rooms{padding:0 14px;gap:9px}.at-lobby .room-card{height:165px}.at-lobby .lobby-beach{height:100px}.at-lobby .lobby-welcome{top:25px}}
@media(max-width:600px) and (max-height:660px) and (orientation:portrait){.players{bottom:145px;width:105px}.player{height:59px;padding-left:5px}.player h2{font-size:10px;margin:2px 0}.player-score{height:26px}.player-score>b{font-size:21px}.opponent-zone{right:121px;top:7px}.pile .card{width:20px;height:31px}.hidden-hand{top:54px}.info-rail{top:105px;width:105px}.mission-cards .mission-hwatu{width:18px;height:28px}.mission-label{font-size:8px}.mission>b{font-size:10px}.effects-button{font-size:10px;min-height:30px}.floor-zone{top:91px;right:121px;bottom:226px}.floor .card{width:30px;height:47px}.deck{height:41px;width:26px}.deck-area{width:26px}.deck-count{width:26px;font-size:7px}.my-zone{height:185px}.my-zone>.taken-row{bottom:138px;width:calc(100% - 117px);height:42px}.my-zone .pile .card{width:19px;height:29px;top:13px}.hand .card{max-width:44px}.hand .card:nth-child(n+6){margin-top:-13px!important}.hand-actions{top:-48px}.hand-actions button{font-size:10px;min-height:29px}.turn-notice{font-size:10px;bottom:-22px}.lobby-rooms{padding:0 10px;gap:8px}.room-card{height:185px}.guide-room{height:108px}.lobby-beach{min-height:130px}}

/* Channel lobby: mobile game rooms, swipeable stakes and bottom dock. */
.channel-lobby{min-height:580px;background:linear-gradient(#48cbed 0 49%,#22b2d2 49% 69%,#ffeaa7 69%);display:flex;flex-direction:column}.channel-lobby .lobby-sky{height:84px;padding:13px 24px;gap:18px}.lobby-profile{display:flex;align-items:center;gap:9px;min-width:0}.lobby-profile-avatar{position:relative;width:49px;height:49px;border:3px solid #ffe061;border-radius:11px;background:#066897;overflow:hidden}.lobby-profile-avatar img{position:absolute;width:220%;left:-9%;top:0}.lobby-profile b{display:block;font-size:15px;color:#f3fdff;font-weight:400}.lobby-profile small{display:block;font-size:10px;color:#b8f4ff;margin-top:5px}.channel-lobby .lobby-account{margin-left:auto;background:#076a99;border:2px solid #74deef;padding:9px 18px;border-radius:9px;min-width:200px;flex-direction:row;align-items:center;gap:15px}.channel-lobby .lobby-account span{font-size:11px}.channel-lobby .lobby-account b{font-size:23px}.lobby-info{height:39px;width:39px;border:2px solid #79d8e7;border-bottom:4px solid #0a5b83;border-radius:9px;background:#0d99c2;color:#ecffff;font-size:24px}.channel-tabs{display:flex;align-items:end;padding:0 24px;gap:6px;height:66px}.channel-tabs>strong{font-size:44px;line-height:.9;font-weight:400;letter-spacing:-3px;color:#ffdc62;text-shadow:0 3px #9c5c1c,2px 0 #fff2ba,-2px 0 #fff2ba;transform:rotate(-7deg);margin:0 20px 8px 4px}.channel-tabs>strong small{display:block;font:800 8px Arial;letter-spacing:4px;text-align:center;margin-top:7px;color:#fff4c6;text-shadow:none}.channel-tabs button{border:2px solid #158bb2;border-bottom:0;border-radius:18px 18px 0 0;background:#1599c6;color:#90e2ed;padding:10px 34px;font-size:20px}.channel-tabs button.selected{background:#0787b7;color:#fff8d9;border-bottom:4px solid #ffd866}.channel-tabs>span{font-size:12px;margin:auto 0 13px auto;color:#075e85}.channel-rooms{display:flex;gap:12px;padding:15px 22px 19px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#0875a3 transparent;background:#207b9b55;border-top:3px solid #178aa4;border-bottom:3px solid #20b3cb;align-items:stretch}.channel-card{width:178px;min-width:178px;height:213px;padding:10px 10px 12px;border:3px solid #7de9f5;border-bottom:7px solid #006397;border-radius:20px;background:linear-gradient(#27dbfb,#05bce9 67%,#088abd);box-shadow:inset 0 0 0 4px #078ab977,0 4px #076a8e55;color:#035472;display:flex;flex-direction:column;align-items:center;scroll-snap-align:start;position:relative}.channel-card>span{font-size:14px;color:#087182}.channel-card>strong{display:block;font-size:27px;font-weight:400;color:#f6ffff;background:#007b9f;border-radius:18px;padding:6px 10px;margin:10px 0 7px;white-space:nowrap}.channel-card>small{font-size:11px;line-height:1.5;color:#006082;margin:auto 0 8px}.channel-card>em{display:block;min-width:95px;font-style:normal;font-size:18px;padding:6px 12px;border:2px solid #68f1fb;border-bottom:4px solid #046899;border-radius:8px;color:#f5ffff;background:linear-gradient(#00b9dd,#008eb9);margin-top:auto}.tier-cards{display:contents}.friend-channel{background:linear-gradient(#ffe19a,#f8c564 65%,#bd8933);border-color:#ffe6a4;border-bottom-color:#895625;color:#77451a}.friend-channel>span{color:#986631}.friend-channel>strong{background:none;color:#755020;font-size:29px;margin:5px 0;padding:0}.friend-channel>em{background:linear-gradient(#d5a34f,#ad732a);border-color:#f4d695;border-bottom-color:#885123;color:#fff1c3;font-size:16px}.channel-character{position:relative;width:118px;height:73px;overflow:hidden}.channel-character img{width:125px;position:absolute;left:-4px;top:0}.quick-channel{background:linear-gradient(#ff9364,#f44c32 65%,#c72820);border-color:#ffbc8c;border-bottom-color:#9c2620}.quick-channel>span{color:#fff4b7;font-size:11px}.quick-channel>strong{background:none;color:#fff1a4;font-size:27px;padding:0;margin:9px 0}.quick-vs{font:900 italic 52px Arial;color:#ffdf48;text-shadow:0 4px #a7221d,-2px 0 #fffaaf;transform:rotate(-9deg)}.quick-channel>em{background:linear-gradient(#ffc552,#f68b28);border-color:#ffda7c;border-bottom-color:#ad3f20;color:#8c3015;font-size:16px}.channel-card.is-locked{background:linear-gradient(#7eaebc,#58869c);border-color:#9bbcc5;border-bottom-color:#39647c;box-shadow:inset 0 0 0 4px #52758766;color:#c9e0e5}.is-locked>strong{background:#416c81;color:#d0e5e9}.is-locked>span,.is-locked>small{color:#e1eef0}.is-locked>em{background:#527d8d;border-color:#a5c3ce;border-bottom-color:#35576c;color:#d7e4e9;font-size:14px}.channel-policy-note{font-size:11px;color:#066b8f;margin:9px 24px}.channel-lobby .lobby-beach{flex:1;height:auto;min-height:130px}.channel-lobby .lobby-welcome{top:30px;left:35px}.channel-lobby .lobby-welcome b{font-size:28px}.channel-lobby .lobby-mascot{width:225px;height:128px;right:35px;bottom:0}.channel-lobby .lobby-sand{top:18px}.lobby-dock{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:10px 24px;background:#e5c078;border-top:3px solid #fff1b3}.lobby-dock button{min-height:46px;border:2px solid #b98a43;border-bottom:4px solid #8d5c2d;border-radius:10px;background:linear-gradient(#ffe3a4,#d5a75e);color:#755026;font-size:17px}.lobby-dock button span{font-size:23px;margin-right:5px;color:#fff7cf}.waiting-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:6px 18px;padding:10px 12px;background:#fff6c9;border:2px solid #d3a246;border-radius:9px;color:#81561d;font-size:13px}.waiting-banner button,.table-refresh{min-height:38px;border:1px solid #caa262;background:#c88736;color:white;border-radius:7px;padding:7px 10px}.table-refresh{width:100%;margin-top:15px}.network-status{position:absolute;left:50%;top:18%;transform:translateX(-50%);z-index:25;max-width:85%;padding:9px 15px;text-align:center;background:#3e4c1eef;border:1px solid #ebd56d;border-radius:9px;color:#fff6be;font-size:13px}.channel-modal{background:linear-gradient(#d6ad76,#fbe6b7 22%,#f6d99f);border:3px solid #a26939;border-bottom:7px solid #724326;color:#744a22}.channel-modal h2{color:#a95317;font-size:29px;text-shadow:0 2px #fff1b5;margin-top:26px}.channel-modal-art{height:72px;text-align:center;margin-top:-10px}.channel-modal-art img{height:100%;width:auto}.stake-instruction{text-align:center;color:#8a5627!important;font-size:15px!important}.stake-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px}.stake-option{min-height:126px;background:linear-gradient(#ffeaa4,#ffca4a);border:2px solid #d99520;border-bottom:5px solid #ac5b13;border-radius:16px;box-shadow:inset 0 0 0 3px #ffea93;color:#79501b;padding:10px 6px;display:flex;align-items:center;flex-direction:column;gap:9px}.stake-option strong{font-size:17px;font-weight:400;white-space:nowrap;background:#9b601d;color:#fff1c2;border-radius:9px;padding:4px 7px}.stake-option small{font-size:10px;line-height:1.4}.stake-option em{display:block;font-style:normal;margin-top:auto;border:1px solid #f4df83;border-bottom:3px solid #b57616;border-radius:7px;background:linear-gradient(#ffd231,#ffae00);color:#82511b;padding:5px 17px;font-size:15px}.stake-option:disabled{filter:grayscale(.8);opacity:.55}.selected-stake{text-align:center;color:#b37619!important;font-size:17px!important}
@media(max-width:600px) and (orientation:portrait){.channel-lobby{min-height:calc(100dvh - 46px);height:calc(100dvh - 46px - env(safe-area-inset-top));border-radius:0}.channel-lobby .lobby-sky{height:75px;min-height:75px;padding:12px;gap:9px}.lobby-profile-avatar{width:37px;height:40px;border-width:2px}.lobby-profile{gap:6px}.lobby-profile b{font-size:11px;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-profile small{font-size:8px}.channel-lobby .lobby-account{min-width:0;padding:7px 9px;display:flex;flex-direction:column;gap:2px;align-items:flex-start}.channel-lobby .lobby-account span{font-size:8px}.channel-lobby .lobby-account b{font-size:17px}.lobby-info{width:31px;height:33px;font-size:20px}.channel-tabs{padding:0 11px;height:64px;min-height:64px;gap:4px}.channel-tabs>strong{font-size:35px;margin:0 14px 10px 0}.channel-tabs button{padding:10px 19px;font-size:18px}.channel-tabs>span{display:none}.channel-rooms{padding:13px 12px 17px;gap:10px;min-height:224px;scrollbar-width:none}.channel-card{width:146px;min-width:146px;height:193px;border-radius:17px;padding:9px 7px}.channel-card>span{font-size:12px}.channel-card>strong{font-size:24px;padding:6px 10px;margin:9px 0 7px}.channel-card>small{font-size:10px}.channel-card>em{font-size:16px;min-width:95px;min-height:37px;padding:6px 10px}.friend-channel>strong,.quick-channel>strong{font-size:25px;padding:0}.quick-channel>span{font-size:9px}.channel-character{height:65px;width:110px}.channel-character img{width:113px;left:-1px}.quick-vs{font-size:46px}.is-locked>em{font-size:13px}.channel-policy-note{font-size:10px;line-height:1.5;margin:9px 14px;max-width:330px}.channel-lobby .lobby-beach{min-height:110px}.channel-lobby .lobby-welcome{top:23px;left:19px;font-size:12px}.channel-lobby .lobby-welcome b{font-size:25px;max-width:190px;line-height:1.15}.channel-lobby .lobby-mascot{width:200px;height:114px;right:2px;bottom:10px}.channel-lobby .lobby-sand{inset:20px -70px -100px}.lobby-dock{padding:8px 8px calc(8px + env(safe-area-inset-bottom));gap:5px}.lobby-dock button{font-size:11px;min-height:50px;padding:4px}.lobby-dock button span{display:block;font-size:21px;margin:0 0 1px}.waiting-banner{font-size:11px;margin:3px 10px;padding:8px}.waiting-banner span{min-width:0}.waiting-banner button{font-size:10px;white-space:nowrap}.stake-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.stake-option{padding:8px 3px;min-height:119px}.stake-option strong{font-size:13px;padding:4px}.stake-option small{font-size:9px}.stake-option em{font-size:13px;padding:5px 12px}.channel-modal h2{font-size:27px}.network-status{font-size:11px;top:16%;width:70%}}
@media(max-height:550px) and (orientation:landscape){.channel-lobby{height:calc(100dvh - 35px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0}.channel-lobby .lobby-sky{height:48px;min-height:48px;padding:5px 15px}.lobby-profile-avatar{width:32px;height:32px;border-width:2px}.lobby-profile b{font-size:11px}.lobby-profile small{font-size:7px;margin-top:2px}.channel-lobby .lobby-account{min-width:180px;padding:4px 10px}.channel-lobby .lobby-account b{font-size:17px}.channel-lobby .lobby-account span{font-size:8px}.lobby-info{width:30px;height:30px;font-size:19px}.channel-tabs{height:42px;min-height:42px;padding:0 15px}.channel-tabs>strong{font-size:29px;margin-right:13px;margin-bottom:7px}.channel-tabs>strong small{font-size:5px;margin-top:4px}.channel-tabs button{padding:6px 27px;font-size:16px;border-radius:13px 13px 0 0}.channel-tabs>span{font-size:8px;margin-bottom:8px}.channel-rooms{padding:8px 13px 9px;gap:8px;min-height:155px;scrollbar-width:none}.channel-card{width:125px;min-width:125px;height:137px;border-radius:13px;padding:5px 6px 6px;border-width:2px;border-bottom-width:5px}.channel-card>span{font-size:10px}.channel-card>strong{font-size:20px;margin:4px 0;padding:4px 10px}.channel-card>small{font-size:8px;margin-bottom:4px}.channel-card>em{font-size:13px;min-height:28px;padding:3px 10px;min-width:75px}.friend-channel>strong,.quick-channel>strong{font-size:21px;padding:0}.quick-channel>span{font-size:8px}.channel-character{width:85px;height:43px}.channel-character img{width:85px;left:0}.quick-vs{font-size:31px}.channel-policy-note{font-size:8px;margin:4px 15px}.channel-lobby .lobby-beach{min-height:0}.channel-lobby .lobby-welcome{top:4px;left:24px;font-size:9px}.channel-lobby .lobby-welcome b{font-size:16px;margin-top:2px}.channel-lobby .lobby-mascot{height:55px;width:100px;bottom:0}.channel-lobby .lobby-sand{top:5px}.lobby-dock{padding:4px 15px;gap:6px}.lobby-dock button{min-height:32px;font-size:12px;border-radius:7px;border-bottom-width:3px}.lobby-dock button span{font-size:17px}.channel-modal-art{height:45px;margin-top:-8px}.channel-modal h2{font-size:24px;margin-top:7px}.stake-instruction{font-size:12px!important;margin:5px}.stake-options{grid-template-columns:repeat(3,1fr)}.stake-option{min-height:90px;padding:6px;gap:5px}.stake-option strong{font-size:14px}.stake-option small{font-size:8px}.stake-option em{font-size:12px;padding:3px 14px}.waiting-banner{font-size:10px;padding:5px;margin:3px 15px}}
.choice{background:linear-gradient(#2e520cf5,#203e08f8);border:2px solid #9cbd38;box-shadow:0 0 0 999px #091b075e,0 8px 20px #18340788}.choice-title{font-size:25px;color:#fff7b8;text-shadow:0 2px #162b05}.choice-score{font-size:15px;color:#e9ecc4;margin:9px 0 18px}.choice-score b{color:#ffcd24}.choice-score #stop-preview{display:block;margin-top:7px;font-size:19px;color:#ffc526}.choice-buttons button b{font-size:35px}.choice-buttons #stop b{font-size:30px}.go-celebration{position:absolute;inset:0;z-index:22;pointer-events:none;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#dfe91b33,#163a0f77);overflow:hidden;animation:go-screen 1.05s both}.go-rays{position:absolute;width:160vmax;height:160vmax;background:repeating-conic-gradient(from 7deg,#fff06455 0deg 8deg,transparent 8deg 23deg);animation:go-rays 4s linear infinite}.go-character{position:relative;width:150px;height:180px;overflow:hidden;transform:rotate(-8deg);filter:drop-shadow(0 6px 0 #293e2266)}.go-character img{position:absolute;width:390px;height:auto;left:-12px;top:0}.go-character.pink-go img{left:-210px}.go-title{position:relative;transform:rotate(-8deg);text-align:center}.go-title small{display:block;font-size:24px;color:#fffbd8;text-shadow:0 3px #6a3914}.go-title strong{display:block;font-size:138px;line-height:1.1;color:#ffce18;font-weight:400;-webkit-text-stroke:3px #a94113;text-shadow:0 7px #7d3313,4px 0 #fff8b0,-4px 0 #fff8b0;animation:go-pop 1.05s both}.go-title em{display:block;font-style:normal;font-size:24px;color:#fff6ac;text-shadow:0 3px #684016}@keyframes go-screen{0%{opacity:0}9%,80%{opacity:1}100%{opacity:0}}@keyframes go-pop{0%{transform:scale(3);opacity:0}16%{transform:scale(.85);opacity:1}30%{transform:scale(1.16)}45%,80%{transform:scale(1)}100%{transform:scale(1.08)}}@keyframes go-rays{to{transform:rotate(360deg)}}
.dealer-reveal .first-pick-cards{position:relative;width:100%;height:330px;display:flex;align-items:center;justify-content:center;gap:20px}.dealer-reveal .first-pick-cards>.card{position:relative;width:40px;height:62px;transform:none!important}.dealer-reveal .first-pick-cards>.my-pick,.dealer-reveal .first-pick-cards>.opponent-pick{position:absolute;left:50%;transform:translateX(-50%)!important;width:67px;height:104px;overflow:visible;box-shadow:0 3px 8px #31591377}.dealer-reveal .my-pick{bottom:0}.dealer-reveal .opponent-pick{top:0}.dealer-reveal .my-pick:after,.dealer-reveal .opponent-pick:after{content:var(--pick-month);position:absolute;left:-74px;top:27%;width:63px;height:40px;display:grid;place-items:center;border:2px solid #976126;border-radius:50%;background:#ffecad;color:#488149;font-size:26px;white-space:nowrap}.dealer-reveal .dealer-winner:before{content:'先';position:absolute;right:-80px;top:15px;color:#ff9473;font-size:55px;text-shadow:0 2px #744122;z-index:5}.dealer-reveal>strong{font-size:26px;color:#fff0a6}.dealer-reveal .hwatu-face{overflow:hidden}.dealer-reveal .face-down{visibility:hidden}
@media(max-width:600px) and (orientation:portrait){.choice-title{font-size:23px}.choice-score #stop-preview{font-size:18px}.go-character{width:95px;height:145px}.go-character img{width:315px;left:-12px}.go-character.pink-go img{left:-170px}.go-title strong{font-size:96px}.go-title small,.go-title em{font-size:18px}.dealer-reveal .first-pick-cards{height:345px}.dealer-reveal .first-pick-cards>.my-pick,.dealer-reveal .first-pick-cards>.opponent-pick{width:64px;height:100px}}
@media(max-height:550px) and (orientation:landscape){.choice-title{font-size:21px}.choice-score{font-size:12px;margin:6px 0 13px}.choice-score #stop-preview{font-size:17px}.choice-buttons button{height:64px}.go-character{width:110px;height:145px}.go-character img{width:310px;left:-8px}.go-character.pink-go img{left:-165px}.go-title strong{font-size:100px}.go-title small,.go-title em{font-size:18px}.dealer-reveal{gap:4px}.dealer-reveal .first-pick-cards{height:185px}.dealer-reveal .first-pick-cards>.my-pick,.dealer-reveal .first-pick-cards>.opponent-pick{width:42px;height:65px}.dealer-reveal .first-pick-cards>.card{width:28px;height:43px}.dealer-reveal .my-pick:after,.dealer-reveal .opponent-pick:after{font-size:19px;width:48px;height:31px;left:-59px}.dealer-reveal .dealer-winner:before{font-size:40px;right:-57px;top:7px}.dealer-reveal>strong{font-size:18px}.dealer-reveal>small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.go-rays,.go-title strong,.go-celebration{animation:none}}
/* The draw pile is anchored to the exact board center in every orientation. */
.game>.deck-area{position:absolute;left:50%;top:50%;bottom:auto;right:auto;transform:translate(-50%,-50%);margin:0;z-index:4}.game>.deck-area .deck-count{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);margin:0;width:100%;padding:2px 0}.result-modal{background:linear-gradient(#8f582c,#d0a266 7%,#8d5225 9%,#c28b45 93%,#72421d);border:3px solid #e2b565;border-bottom:7px solid #6f401e;color:#fff0b6;padding:24px 18px 17px;overflow:visible}.match-result{position:relative;border:2px solid #ebc77c;border-radius:8px;padding:17px 13px 12px;background:linear-gradient(#f1d29b 0 42px,#9a642e 42px,#70451f);box-shadow:inset 0 0 0 4px #633e1e44;text-align:center}.victory-star{position:absolute;left:-33px;top:-58px;width:120px;height:120px;display:grid;place-items:center;background:linear-gradient(#fff1a0,#ffca20 55%,#eb8c09);clip-path:polygon(50% 0,63% 31%,98% 36%,73% 60%,80% 96%,50% 79%,20% 96%,27% 60%,2% 36%,37% 31%);font-size:48px;color:#a85e12;text-shadow:0 2px #fff0a1;filter:drop-shadow(0 3px #633716)}.lost .victory-star{background:linear-gradient(#bbcbd0,#7d9eaa);color:#365a6b}.draw .victory-star{background:linear-gradient(#d8df99,#9faa4b);color:#526029}.result-player{font-size:16px;color:#754e2c;margin:0 0 22px;padding-left:45px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-modal h2{font-size:21px;color:#fff0ae;margin:10px 0;text-shadow:0 2px #633c1c}.result-amount{font-size:39px;line-height:1.25;color:#ffda49;text-shadow:0 3px #66390f;margin:14px 0;overflow-wrap:anywhere}.result-amount small{font-size:18px}.lost .result-amount{color:#c5e7ff}.result-equation{font-size:18px;border-top:2px dashed #dbb16a;border-bottom:2px dashed #dbb16a;padding:12px 0;color:#f9dfa7}.result-equation b{color:#ffe745;font-weight:400}.result-details{margin-top:10px;font-size:11px;color:#e7cd9d}.result-details summary{cursor:pointer;min-height:30px;padding:6px}.result-details>div{padding:7px;line-height:1.8}.result-practice{font-size:10px!important;color:#e4bf82!important;margin:6px 0 12px}.result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.result-actions button{min-height:43px;border:2px solid #e8c279;border-bottom:4px solid #80511f;border-radius:8px;background:linear-gradient(#d9ae6b,#b17d38);color:#fff2c6;font-size:17px}.result-actions #next-round{background:linear-gradient(#f49caa,#d36388);border-color:#ffd1ba;border-bottom-color:#9c435b}.result-actions #result-confirm{background:linear-gradient(#ffd544,#f4b20b);border-color:#ffed8d;border-bottom-color:#b97613;color:#88551b}.result-actions button:disabled{opacity:.4}.result-modal #close-modal{z-index:3;color:#fff1ce}
@media(max-width:600px) and (orientation:portrait){.result-modal{width:calc(100% - 32px);padding:20px 12px 12px}.victory-star{width:99px;height:99px;left:-18px;top:-46px;font-size:41px}.result-player{font-size:14px}.result-amount{font-size:34px}.result-equation{font-size:17px}.result-actions button{font-size:16px;min-height:44px}}
@media(max-height:550px) and (orientation:landscape){.result-modal{width:400px;max-height:calc(100dvh - 18px);padding:10px 13px;overflow:auto}.match-result{padding:9px 10px}.victory-star{height:80px;width:80px;left:-13px;top:-10px;font-size:34px}.result-player{margin:0 0 12px}.result-modal h2{font-size:17px;margin:5px}.result-amount{font-size:31px;margin:6px 0}.result-equation{padding:7px;font-size:16px}.result-details{margin-top:3px}.result-practice{margin:3px 0 6px}.result-actions button{min-height:36px;font-size:15px}}
.go-preview-money{text-align:center;color:#ffce32!important;font-size:22px!important;margin:13px 0!important}.go-stop-modal h2{font-size:26px;color:#fff4bd;text-shadow:0 2px #1a3109}.go-stop-modal .choice-buttons #demo-go{background:linear-gradient(#ffd634,#f2a210)}.go-stop-modal .choice-buttons #demo-stop{background:linear-gradient(#ec623a,#c32f17)}.go-stop-modal .choice-buttons button b{font-size:35px}.go-stop-modal .choice-buttons #demo-stop b{font-size:30px}
@media(max-width:600px) and (orientation:portrait){html:has(body.at-lobby){overflow:hidden}.channel-lobby .channel-card>strong{max-width:100%}}
@media(max-height:550px) and (orientation:landscape){html:has(body.at-lobby){overflow:hidden}.go-preview-money{font-size:20px!important;margin:8px 0!important}.go-stop-modal .demo-choice{margin:12px 0}.go-stop-modal h2{font-size:23px}}

/* Colour direction: black surround and deep-to-vivid green felt, no yellow-green cast. */
body{background:#030304;background-image:none}.game{background:radial-gradient(ellipse at 46% 40%,#00a751 0%,#008f45 34%,#006c3d 67%,#003d2c 100%);box-shadow:inset 0 0 55px #002a2244,0 4px #0008}.felt-wave.wave-one{background:#00c56a;opacity:.08}.felt-wave.wave-two{background:#003c2d;opacity:.22}.table-grain{opacity:.1}.table-brand{color:#b7f5ce32;transform:translate(-50%,-50%)}.topbar{background:linear-gradient(#084c37,#003c2c);border-color:#116746}.room-badge{background:#075c3e;border-color:#2e9d6b;color:#c6f1d5}.room-name>small{color:#a9d8bd}.player{background:linear-gradient(#075438ec,#003e2dec);border-color:#24886188;color:#def4df;box-shadow:0 3px #003323}.player.active{border-color:#81e6a5;box-shadow:0 0 0 2px #57b98233,0 3px #003323}.player-score{background:#003d2dd9;border-color:#29825c66}.player-score>b{color:#dcf7c8}.player-flags{color:#99cfad}.pile-label,.pile-label b{color:#b8e5c7}.my-zone .pile-label,.my-zone .pile-label b{color:#c7ecd1}.hand-tray{background:repeating-linear-gradient(90deg,#003e2f44 0 calc(10% - 4px),transparent calc(10% - 4px) 10%)}.hand-hint{background:#075338;border-color:#2a9c66;color:#c8efd7}.turn-notice{color:#e1f9e9;text-shadow:0 1px #003e2a}.deck-count{background:#00603e;color:#c8efda}.effects-button,.lobby-back{background:linear-gradient(#087044,#005231);border-color:#38a36a;border-bottom-color:#003b27;color:#e1f8e8}.icon-btn{background:#064b36;border-color:#2c8d60;color:#d7f2df}.bottom-bar{background:#030304}.round-state{color:#c3dfcd}.round-state small{color:#7eac94}.bottom-bar>p{color:#759d87}.outside-note{color:#577d68}.bottom-actions button{background:#075536;border-color:#289560;color:#d7efdf}
/* All lettering stays upright; card/character motion is unaffected. */
.quick-vs,.mission>strong{font-style:normal}.quick-vs,.channel-tabs>strong,.lobby-title,.welcome h1,.go-title,.big-effect b{transform:none}.brand,.brand>b,.brand>span{font-style:normal;transform:none}.channel-tabs>strong,.channel-tabs>strong small,.channel-card>em,.stake-option em,.result-amount,.result-equation,.choice-title,.choice-score{font-style:normal}.go-title strong{font-style:normal}.big-effect b{font-style:normal}.table-brand{font-style:normal}.mission>strong{font-style:normal}@keyframes bang{0%{opacity:0;transform:translate(-50%,-50%) scale(2.6)}15%{opacity:1;transform:translate(-50%,-50%) scale(.88)}28%{transform:translate(-50%,-50%) scale(1.12)}45%,75%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) scale(1.05)}}

/* Readable game HUD with compact copy and no empty hand slots. */
.room-name>b,.speech,.table-brand small,.hand-hint,.turn-notice,.mission small,.player-top{display:none}.player-flags:empty{display:none}.room-name>small{font:13px Jua,system-ui,sans-serif;color:#d5b9ef}.pile-label,.my-zone .pile-label{font:12px Jua,system-ui,sans-serif;color:#edddff;text-shadow:0 1px 2px #001b13}.pile-label b,.my-zone .pile-label b{font:700 13px Arial;color:#fff;padding-left:3px}.player h2{color:#edceff;text-shadow:0 1px #001c16}.player-money{color:#f3e0ff}.player-money small{color:#cfb7e2}.player-score>b{color:#f7edff}.player-score>em,.score-multiplier strong{color:#e7caff}.player-flags{font-size:12px;color:#dfc5ef}.level{font-size:10px}.mission-label{color:#e2c3f5;font-size:12px}.mission>b{font-size:18px;color:#f4d7ff}.mission>strong{color:#e1a122;text-shadow:0 2px #3e2000}.round-state{font-size:13px;color:#eddcff}.bottom-bar>p{display:none}.outside-note{font-size:11px;color:#b491cb}.outside-note #credits{font-size:11px;color:#caa6e3}.table-brand{font-size:25px;color:#a7dcb32b;text-shadow:none}.effects-button,.bottom-actions button{font-size:13px}.deck-count{font-size:10px;color:#efffe9;opacity:1;background:#004b31}.my-zone{container-type:inline-size}.hand-tray{width:fit-content;max-width:100%;padding:21px 8px 8px;background:#003d2dcc;border:0;border-radius:10px;box-shadow:0 4px 9px #00201433;align-self:flex-start;overflow:visible}.hand{--hand-card-width:min(var(--cw),calc((100cqw - 70px)/10));display:flex;flex-wrap:nowrap;gap:6px;width:max-content;min-height:0;justify-content:flex-start;overflow:visible}.hand .card{width:var(--hand-card-width);max-width:none;height:auto;aspect-ratio:1/1.51;overflow:visible;margin:0!important}.hand .card:nth-child(n){margin:0!important}.hand .hwatu-face,.hand .bonus-face{border-radius:2px;overflow:hidden}.hand .card.matchable:after{content:'▼';position:absolute;left:50%;right:auto;top:-23px;transform:translateX(-50%);font:900 24px/1 Arial;color:#008cff;-webkit-text-stroke:1px #c9f7ff;text-shadow:0 2px 2px #003243,0 -1px #fff;pointer-events:none;z-index:5}.hand-actions{top:-35px}.hand-actions button{font-size:12px;background:linear-gradient(#b9750b 0 48%,#dfa21b 49%);color:#281000;border:0;min-height:31px}.hand .card:hover{transform:translateY(-7px)}
/* A single right rail fills the available height without detached score boxes. */
.players{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:8px;right:12px;top:12px;bottom:12px;width:172px;height:auto;pointer-events:none}.players .player{height:auto;min-height:0;padding:22px 77px 55px 10px;border-radius:10px;pointer-events:auto;overflow:hidden;background:linear-gradient(#07513b,#003c2c);border:1px solid #368b68;box-shadow:none}.players .player h2{font-size:16px;margin:8px 0 10px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.players .avatar{right:10px;top:20px;width:59px;height:59px}.players .player-money{font-size:17px}.players .player-money small{font-size:10px}.players .player-flags{left:10px;bottom:52px}.players .player-score,.players .player.me .player-score{position:absolute;left:7px;right:7px;top:auto;bottom:7px;height:40px;padding:3px 7px;border:0;border-radius:7px;background:#002e22;display:flex;justify-content:flex-start;align-items:center;gap:4px}.players .player-score>b{font-size:30px}.players .player-score>em{font-size:12px}.players .player-score .score-multiplier{margin-left:auto;min-width:50px}.players .score-multiplier small{font-size:9px;color:#c4b3d0}.players .score-multiplier strong{font-size:18px}.players .info-rail{position:static;inset:auto;width:100%;height:100%;display:flex;gap:7px;pointer-events:none}.players .info-rail>*{pointer-events:auto}.players .mission{flex:1;display:flex;flex-direction:column;justify-content:center;padding:9px 7px;background:linear-gradient(#1e1428,#0f0b17);border:1px solid #8d47b4;border-radius:10px;box-shadow:none}.players .mission-label{font-size:12px}.players .mission>b{font-size:17px;margin:5px 0 9px}.players .mission-cards{padding:0;gap:7px}.players .mission-cards .mission-hwatu{height:48px;width:31px}.players .mission>strong{position:static;font-size:30px;margin:7px 0 0}.players .effects-button{min-height:39px;font-size:14px;margin:0;padding:7px;background:linear-gradient(#b9750b 0 48%,#dfa21b 49%);color:#281000;border:0;border-radius:8px}.first-pick small{display:none}
body:not(.at-lobby) dialog{background:linear-gradient(#21142d,#100c17);border:1px solid #a34cd8;border-bottom:1px solid #a34cd8;color:#e6cbf7;box-shadow:0 9px 28px #0008}body:not(.at-lobby) dialog h2{color:#db9cff;text-shadow:none;font-size:27px}body:not(.at-lobby) dialog p{color:#d4b6e7;font-size:14px}body:not(.at-lobby) dialog .eyebrow{color:#ad83c6}body:not(.at-lobby) #close-modal{color:#e2b5ff;width:38px;height:38px;z-index:3}body:not(.at-lobby) .effect-grid{display:flex;flex-wrap:wrap;gap:9px}body:not(.at-lobby) .effect-grid button{flex:1 1 calc(33.333% - 9px);font-size:20px;padding:14px 6px;min-height:52px;background:linear-gradient(#b9750b 0 48%,#dfa21b 49%);color:#210d00;border:0;border-radius:10px;box-shadow:0 3px 7px #0004}body:not(.at-lobby) .modal-primary{background:linear-gradient(#b9750b 0 48%,#dfa21b 49%);color:#281000;border:0}body:not(.at-lobby) .toggle-row{color:#e4caf3}
@media(max-width:900px){.players{width:137px;right:8px;top:8px;bottom:8px;gap:6px}.players .player{padding:12px 55px 40px 7px}.players .avatar{width:43px;height:43px;right:6px;top:12px}.players .player h2{font-size:13px;margin:5px 0 7px}.players .player-money{font-size:13px}.players .player-money small{font-size:8px}.players .player-score,.players .player.me .player-score{height:31px;left:5px;right:5px;bottom:5px}.players .player-score>b{font-size:25px}.players .score-multiplier strong{font-size:15px}.players .player-score .score-multiplier{min-width:38px}.players .mission{padding:5px}.players .mission>b{font-size:14px;margin:3px 0 7px}.players .mission-label{font-size:10px}.players .mission-cards .mission-hwatu{width:24px;height:37px}.players .mission>strong{font-size:24px;margin-top:5px}.players .effects-button{min-height:32px;font-size:12px}.pile-label,.my-zone .pile-label{font-size:10px}.pile-label b,.my-zone .pile-label b{font-size:11px}.hand .card.matchable:after{top:-20px;font-size:22px}}
@media(max-width:600px) and (orientation:portrait){.hand{--hand-card-width:min(54px,calc((100cqw - 36px)/5));display:grid;grid-template-columns:repeat(var(--hand-cols),var(--hand-card-width));gap:18px 5px;width:max-content;min-height:0}.hand .card{width:var(--hand-card-width);height:auto;aspect-ratio:1/1.55;max-width:none}.hand .card:nth-child(n){margin:0!important}.hand-tray{padding:21px 6px 5px}.my-zone{height:auto}.my-zone>.taken-row{bottom:calc(var(--hand-depth,200px) + 16px);width:calc(100% - 125px);height:50px}.players{width:113px;top:9px;right:8px;bottom:calc(var(--hand-depth,200px) + 20px);gap:5px}.players .player{padding:7px 43px 37px 6px}.players .avatar{width:34px;height:35px;right:5px;top:11px}.players .player h2{font-size:12px;max-width:65px;margin:7px 0 6px}.players .player-money{font-size:12px}.players .player-money small{font-size:8px}.players .player-score,.players .player.me .player-score{height:28px;bottom:4px;left:4px;right:4px;padding:2px 4px}.players .player-score>b{font-size:24px}.players .player-score .score-multiplier{min-width:34px}.players .score-multiplier strong{font-size:15px}.players .score-multiplier small{display:none}.players .player-flags{display:none}.players .mission>b{font-size:13px;line-height:1.25}.players .mission-cards{gap:4px}.players .mission-cards .mission-hwatu{width:22px;height:34px}.players .mission>strong{font-size:23px;margin-top:4px}.players .effects-button{min-height:33px;font-size:11px}.floor-zone{bottom:calc(var(--hand-depth,200px) + 105px)}.hand-actions{top:-35px}.hand-actions button{min-height:30px;font-size:11px;padding:5px 8px}.hand .card.matchable:after{top:-22px;font-size:23px}.my-zone .pile .card{top:17px}.my-zone .pile-label{font-size:10px;top:0}.my-zone .pile-label b{font-size:11px}.round-state{font-size:12px}.round-state>span{max-width:140px}.bottom-actions button{font-size:12px}}
@media(max-width:600px) and (max-height:740px) and (orientation:portrait){.hand{--hand-card-width:min(46px,calc((100cqw - 36px)/5));row-gap:16px}.players .mission-cards .mission-hwatu{width:18px;height:28px}.players .mission>b{font-size:11px;margin:2px 0 4px}.players .mission-label{font-size:9px}.players .mission>strong{font-size:20px;margin-top:2px}.players .mission{padding:4px}.players .effects-button{min-height:29px;font-size:10px}.players .player{padding-top:5px}.players .player h2{font-size:11px;margin:5px 0}.players .player-score>b{font-size:21px}.players .player-money{font-size:11px}.players .avatar{top:8px}.floor-zone{top:100px;bottom:calc(var(--hand-depth,174px) + 100px)}}
@media(max-height:550px) and (orientation:landscape){.players{width:114px;right:6px;top:5px;bottom:5px;gap:4px;grid-template-rows:1fr 1.2fr 1fr}.players .player{padding:4px 42px 29px 5px}.players .avatar{width:30px;height:30px;top:7px;right:5px}.players .player h2{font-size:11px;margin:2px 0 4px}.players .player-money{font-size:11px}.players .player-money small{font-size:8px}.players .player-score,.players .player.me .player-score{height:24px;bottom:3px;left:3px;right:3px;padding:1px 4px}.players .player-score>b{font-size:22px}.players .player-score>em{font-size:10px}.players .score-multiplier strong{font-size:13px}.players .score-multiplier small{display:none}.players .mission{padding:3px}.players .mission-label{font-size:9px}.players .mission>b{font-size:12px;margin:2px 0 4px}.players .mission-cards{gap:4px}.players .mission-cards .mission-hwatu{width:18px;height:28px}.players .mission>strong{font-size:20px;margin-top:1px}.players .effects-button{min-height:25px;font-size:10px;padding:3px}.players .info-rail{gap:4px}.hand{gap:4px;--hand-card-width:min(var(--cw),calc((100cqw - 56px)/10))}.hand-tray{padding:19px 6px 3px}.hand .card.matchable:after{top:-20px;font-size:21px}.my-zone>.taken-row{height:31px;margin-bottom:5px}.my-zone .pile-label{font-size:10px}.my-zone .pile-label b{font-size:10px}.pile-label{font-size:10px}.pile-label b{font-size:11px}.my-zone .pile .card{top:14px}.hand-actions{top:-29px}.hand-actions button{font-size:10px;min-height:26px;padding:3px 7px}.outside-note{display:none}.round-state{font-size:11px}.bottom-actions button{font-size:11px}.room-name>small{font-size:11px}}
/* Align every right-rail box to the same edges and regular gaps. */
.players .player-score,.players .player.me .player-score{left:0;right:0;bottom:0;border-radius:0 0 9px 9px;padding-left:9px;padding-right:9px}.players .player.me{padding-top:52px;padding-bottom:12px}.players .player.me .player-score{top:0;bottom:auto;border-radius:9px 9px 0 0}.players .player.me .avatar{top:61px}.players .info-rail,.players .mission,.players .effects-button{min-width:0;width:100%;box-sizing:border-box}.players .player,.players .mission,.players .effects-button{margin:0}
@media(max-width:900px){.players .player.me{padding-top:39px;padding-bottom:7px}.players .player.me .avatar{top:46px}.players .player-score,.players .player.me .player-score{padding-left:6px;padding-right:6px}}
@media(max-width:600px) and (orientation:portrait){.players .player.me{padding-top:35px;padding-bottom:5px}.players .player.me .avatar{top:44px}.players .player-score,.players .player.me .player-score{padding-left:5px;padding-right:5px}}
@media(max-height:550px) and (orientation:landscape){.players .player.me{padding-top:29px;padding-bottom:4px}.players .player.me .avatar{top:34px}.players .player-score,.players .player.me .player-score{padding-left:5px;padding-right:5px}}
@media(max-width:600px) and (orientation:portrait){.hand-tray{background:transparent;box-shadow:none}}
dialog{scrollbar-width:none;-ms-overflow-style:none}dialog::-webkit-scrollbar{display:none;width:0;height:0}.hand-tray[data-empty=true]{width:160px;min-height:30px;padding:0;background:none;box-shadow:none}.hand-tray[data-empty=true] .hand-actions{position:static;min-height:30px}.hand-tray[data-empty=true] .hand-actions button{flex:1}body:not(.at-lobby) dialog:has(.effect-grid){padding:18px 20px}body:not(.at-lobby) dialog:has(.effect-grid) h2{margin:2px 0 8px}body:not(.at-lobby) .effect-grid{margin-top:14px}
@media(max-height:550px) and (orientation:landscape){body:not(.at-lobby) dialog:has(.effect-grid){padding:14px 18px}body:not(.at-lobby) dialog:has(.effect-grid) h2{font-size:24px}body:not(.at-lobby) .effect-grid{gap:8px;margin-top:11px}body:not(.at-lobby) .effect-grid button{min-height:44px;padding:8px 5px;font-size:18px}}
/* Final felt depth: emerald center with forest-green edges. */
.game{background:radial-gradient(ellipse at 46% 40%,#008442 0%,#006c39 35%,#004c2e 69%,#002d22 100%);box-shadow:inset 0 0 65px #001a1455,0 4px #0008}.felt-wave.wave-one{background:#009751;opacity:.07}.felt-wave.wave-two{background:#002b21;opacity:.25}
