
@font-face{font-family:DM;src:url(fonts/DMsans.ttf) format('truetype');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--ink:#fff0d7;--muted:#d1b9ab;--gold:#e8bf70;--gold-light:#ffdf95;--line:#b484474d;--green:#42aa53;--red:#e44458;--purple:#34213f;--wood:#65412d}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{min-height:100%;background:var(--purple)}body{margin:0;min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 50% 15%,#75508455,transparent 65%),url(images/scene-texture.svg) repeat,#34213f;color:var(--ink);font-family:DM,Arial,sans-serif;overscroll-behavior:contain;overflow-x:hidden}body.has-overlay{overflow:hidden}button,input{font:inherit}button{border:0;cursor:pointer;color:inherit;background:transparent;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible{outline:3px solid #ffe69a;outline-offset:3px}svg{display:block;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3,strong{font-weight:800}img{display:block}button:active:not(:disabled):not(.playing-card){filter:brightness(.92)}
.shell{max-width:560px;margin:auto;padding:8px 16px 94px}.header{height:62px;display:flex;align-items:center;gap:12px;margin-bottom:6px}.avatar{display:block;position:relative;width:48px;height:48px;flex-shrink:0;border:3px solid var(--gold);border-radius:50%;background:#51305a;box-shadow:inset 0 0 0 1px #fff3,0 3px 0 #27141a,0 0 0 1px #85542e;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.profile-button{display:flex;align-items:center;gap:9px;min-height:52px;padding:0;text-align:left}.profile-copy{display:flex;flex-direction:column;gap:3px}.profile-copy strong{font-size:13px;text-shadow:0 1px 1px #1c1028}.profile-copy small{font-size:10px;background:#241532;border:1px solid #b78445;border-radius:8px;padding:1px 7px;color:var(--gold-light)}.win-counter{display:flex;align-items:center;justify-content:center;gap:10px;margin-left:auto;min-width:77px;height:38px;border:2px solid #c69c56;border-radius:22px;background:linear-gradient(#664831,#3e2927);box-shadow:inset 0 1px 0 #efce8855,0 3px 0 #241425;color:var(--gold-light)}.win-counter strong{font-size:17px}.iconbtn{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:2px solid #c49a53;border-radius:50%;background:linear-gradient(#785742,#44302e);box-shadow:inset 0 1px 0 #efce8855,0 3px 0 #211228;color:var(--gold-light)}
.lobby-brand{display:flex;justify-content:center;align-items:center;gap:11px;min-height:69px;padding:7px 0 10px;text-align:center}.lobby-brand img{width:48px;height:48px;filter:drop-shadow(0 4px 3px #13092499)}.lobby-brand h1{font-size:33px;font-weight:900;line-height:1.08;letter-spacing:1.7px;color:#ffdd8e;text-shadow:0 2px 0 #9a582c,0 4px 0 #261423,0 5px 7px #1a0c2c}.lobby-brand span{display:block;font-size:8px;font-weight:800;letter-spacing:2px;margin-top:7px;color:#e1c7b1}.lobby-label{display:flex;align-items:center;justify-content:center;gap:12px;height:35px;font-size:10px;font-weight:800;letter-spacing:1.3px;color:var(--gold-light)}.lobby-label svg{fill:#dfb56333}
.games-grid{display:grid;grid-template-columns:1fr;gap:12px}.gamecard{display:flex;align-items:center;gap:10px;text-align:left;min-height:96px;padding:5px 10px 5px 5px;position:relative;border:2px solid #d4a867;border-radius:14px;background:linear-gradient(100deg,#7c5736 0%,#69462f 27%,#50303d 60%,#34203c 100%);box-shadow:inset 0 2px 0 #ffdfa045,inset 0 -3px 0 #271621,0 4px 0 #251323,0 5px 8px #140a2033}.gamecard:after{content:'';position:absolute;inset:4px;border:1px solid #f0cb7b25;border-radius:9px;pointer-events:none}.hez2-card{background:linear-gradient(100deg,#99544b,#72334b 30%,#49263d 66%,#34203c)}.dama-card{background:linear-gradient(100deg,#536aa1,#35497b 30%,#302951 66%,#34203c)}.moulin-card{background:linear-gradient(100deg,#668046,#405835 30%,#33364a 66%,#34203c)}.game-photo-wrap{width:92px;height:82px;flex-shrink:0;position:relative;overflow:hidden}.game-art{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 3px #10072088)}.gamecopy{flex:1;min-width:0;position:relative;z-index:1}.gamecopy h2{font-size:23px;line-height:1.1;letter-spacing:-.6px;margin-bottom:7px;color:#fff2d8;text-shadow:0 2px 1px #251326}.gamecopy>span{display:block;font-size:9px;line-height:1.5;color:#e1cbbb}.tile-play{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:66px;height:48px;padding:4px 8px;border:2px solid #b6d28c;border-radius:10px;background:linear-gradient(#77cd62,#328947);color:#fffadd;box-shadow:inset 0 2px 0 #fff5,0 3px 0 #163b31,0 4px 4px #160e2988;font-size:10px;font-weight:900;letter-spacing:.5px;position:relative;z-index:1;text-shadow:0 1px #276735}.hez2-card .tile-play{background:linear-gradient(#f07883,#c02e53);border-color:#f5b9a1;box-shadow:inset 0 2px 0 #fff5,0 3px 0 #622138;text-shadow:0 1px #7e1f37}.dama-card .tile-play{background:linear-gradient(#6eafe7,#3a64bd);border-color:#adcfed;box-shadow:inset 0 2px 0 #fff5,0 3px 0 #203470;text-shadow:0 1px #263e78}.moulin-card .tile-play{background:linear-gradient(#f7d274,#c89035);border-color:#fce6a1;box-shadow:inset 0 2px 0 #fff5,0 3px 0 #6c4522;color:#4e3024;text-shadow:0 1px #f8db9277}.lobby-note{display:flex;align-items:center;justify-content:center;gap:7px;text-align:center;font-size:10px;color:#ccb3c2;margin:20px 0 0;line-height:1.4}
.tile-cards{height:100%;position:relative;overflow:hidden}.playing-card.tile-card{position:absolute;top:7px;width:48px;height:76px;border:0;border-radius:5px;box-shadow:0 3px 6px #0004}.tile-one{left:10px;transform:rotate(-12deg)}.tile-two{left:40px;transform:rotate(9deg)}.tile-card .card-index{display:none}
.resume{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;background:linear-gradient(#755944,#4e3734);border:1px solid #d2a666;border-radius:11px;margin:3px 0 4px;color:var(--gold-light);text-align:left;box-shadow:inset 0 1px #ffd28a44,0 3px #221428}.resume-copy{flex:1;display:flex;flex-direction:column;gap:2px}.resume-copy strong{font-size:12px}.resume-copy>span{font-size:9px;color:#d8c4b2}.games-grid.with-resume{gap:10px}.with-resume .gamecard{min-height:82px}.with-resume .game-photo-wrap{height:69px}.with-resume .tile-card{width:42px;height:66px;top:4px}
.nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;background:linear-gradient(#553745,#35213d);display:flex;border-top:3px solid #b98a4f;padding:4px 12px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -4px 12px #160b2666,inset 0 1px #f3d38766}.nav button{flex:1;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;min-height:63px;color:#d0bca9;font-size:10px;font-weight:700}.nav-icon{width:44px;height:35px;display:grid;place-items:center;border-radius:9px;color:#d5b87e}.nav button.active{color:#ffe9ad}.nav button.active .nav-icon{background:linear-gradient(#6bc061,#378147);border:1px solid #d6cf88;box-shadow:0 2px 0 #182d25;color:#fff1b5}.nav button.active svg{stroke-width:2}
.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px 17px;min-height:50px;border-radius:11px;font-size:14px;font-weight:900;border:2px solid #d5d78a;box-shadow:inset 0 2px 0 #fff4,0 4px 0 #16372c;text-shadow:0 1px 1px #204c32}.primary{background:linear-gradient(#79d167,#389347);color:#fffbe4}.secondary{background:linear-gradient(#805a45,#503438);color:#ffe0a1;border-color:#c79a5d;box-shadow:inset 0 2px 0 #fff2,0 3px 0 #251425;text-shadow:0 1px #38202a;margin-top:10px}.wide{width:100%}.textbtn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px;color:var(--gold-light);font-size:12px;font-weight:700}
.pageheading{font-size:27px;margin-top:15px;letter-spacing:-.5px;color:var(--gold-light);text-shadow:0 2px #47233c}.subtitle{font-size:12px;color:var(--muted);line-height:1.7;margin:7px 0 20px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:25px 0 12px}.sectionhead h2{font-size:16px;color:#f7d596}.sectionhead>span{font-size:10px;color:var(--muted)}.stats{display:flex;gap:8px;margin:20px 0}.stat{flex:1;text-align:center;border:1px solid #b98b55;background:linear-gradient(#745141,#4f3439);border-radius:11px;padding:17px 4px;box-shadow:inset 0 1px #ffe8b733,0 3px #28162b}.stat b{display:block;font-size:29px;line-height:1.2;font-weight:900;color:#ffda8a;text-shadow:0 2px #4c2a2a}.stat small{font-size:9px;display:block;color:#e8cfbb;margin-top:7px;line-height:1.4}.panel{background:linear-gradient(135deg,#624331,#483041);border:1px solid #bc8f55;border-radius:13px;padding:18px;margin:18px 0;box-shadow:inset 0 1px #ffe5b133,0 3px #28162b}.panel h3{font-size:15px;color:#ffdc95;margin-bottom:9px}.about{font-size:12px;line-height:1.85;color:#dcc6b5}.about strong{color:#fff3d9}.privacy-panel{background:linear-gradient(135deg,#40553b,#34394a)}.panel-icon{color:#b9df91;margin-bottom:12px;display:block}.profile-panel{display:flex;align-items:center;gap:11px;padding:14px}.profile-panel>div{flex:1;min-width:0}.profile-panel strong{font-size:12px}.profile-panel small{display:block;font-size:9px;color:#d6c1af;line-height:1.4;margin-top:4px}.profile-panel .secondary{min-height:44px;font-size:10px;padding:9px;margin:0}.profile-panel .avatar{width:42px;height:42px}
.record{display:flex;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid #bf966238;font-size:12px}.record:last-child{border:0}.record-icon{width:29px;color:#eac886}.record small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.record .end{margin-left:auto;text-align:right}.badgegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.badge{text-align:center;padding:18px 5px;background:linear-gradient(#4d354c,#32253d);border:1px solid #8f7257;border-radius:12px;color:#b5a3b3;box-shadow:0 3px #231529}.badge svg{margin:auto auto 10px;color:#a694a4}.badge strong{display:block;font-size:10px;line-height:1.4}.badge small{display:block;font-size:9px;margin-top:6px;line-height:1.5}.badge.unlocked{background:linear-gradient(#927048,#60442c);color:#ffedc3;border-color:#ecc57b}.badge.unlocked svg{color:#ffdb79;filter:drop-shadow(0 2px #604320)}.empty{text-align:center;padding:25px 10px;color:var(--muted)}.empty svg{margin:0 auto 15px;color:#d2b880}.empty h3{font-size:17px;color:#ffe0a0}.empty p{font-size:12px;margin-top:8px;line-height:1.6}.setting{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #bf966238}.setting:last-child{margin:0;padding:0;border:0}.setting strong{font-size:13px}.setting small{font-size:10px;color:var(--muted);display:block;margin-top:4px;line-height:1.5}.toggle{width:50px;min-width:50px;height:29px;border-radius:20px;background:#2e2135;border:1px solid #ad8755;padding:3px;box-shadow:inset 0 2px 2px #130a2488}.toggle.on{background:linear-gradient(#76bd58,#378142)}.toggle span{display:block;width:21px;height:21px;border-radius:50%;background:linear-gradient(#fff5d1,#d9b98a);box-shadow:0 1px 2px #20132d77;transition:transform .18s}.toggle.on span{transform:translateX(21px)}.version{text-align:center;font-size:9px;letter-spacing:1px;color:#b49daa;margin-top:25px}
.play{max-width:560px;margin:auto;padding:3px 12px 16px}.playhead{display:flex;align-items:center;justify-content:space-between;height:57px;gap:8px}.playhead h1{font-size:23px;color:#ffda91;text-shadow:0 2px #783d35;line-height:1.1}.playhead small{font-size:8px;font-weight:800;letter-spacing:1px;color:#cdb3b8;display:block;margin-top:5px}.center{text-align:center}.seat{display:flex;justify-content:center;min-height:64px;padding:7px 0}.player{display:flex;align-items:center;gap:9px;width:100%;max-width:375px;min-height:49px;border:1px solid #a682554d;border-radius:28px;padding:3px 10px 3px 3px;background:linear-gradient(100deg,#3d294b,#39243e);box-shadow:inset 0 1px #fff1,0 3px #20122b66}.player.active{border-color:#edca7b;box-shadow:inset 0 1px #ffe6ab44,0 3px #20122b,0 0 10px #d6a05026}.player .avatar{width:43px;height:43px;border-width:2px}.player.p0 .avatar{box-shadow:0 0 0 2px #619fd633,0 2px #27141a}.player.p1 .avatar{box-shadow:0 0 0 2px #df708733,0 2px #27141a}.player-info{min-width:0;flex:1}.player-info strong{font-size:11px;white-space:nowrap;display:block}.player-info>span{font-size:9px;color:#cbb7c8;display:flex;align-items:center;gap:5px;margin-top:4px}.player-dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(#75c3ff,#3261b9);border:1px solid #b0ceef;flex-shrink:0}.player-dot.red-dot{background:linear-gradient(#ff99a3,#bf2c4c);border-color:#eeb0a6}.points{font-size:21px;font-weight:900;color:#ffdfa0;line-height:1;min-width:28px;text-align:center}.turn-badge{font-size:7px;font-weight:900;letter-spacing:.3px;color:#a38aab;min-width:51px;text-align:center;padding:7px 5px;border-radius:8px;background:#28192e}.active .turn-badge{color:#37261c;background:linear-gradient(#ffdf8c,#dba14c);box-shadow:inset 0 1px #fff6,0 2px #865134}.status{display:flex;gap:8px;align-items:center;justify-content:center;padding:7px 4px 4px;min-height:32px;font-size:10px;color:#e5d0c9;text-align:center;line-height:1.5}.status svg{color:#f3ca7c}.capture-status{color:#ffcf77}.busy-dot{display:inline-block;width:6px;height:6px;background:#ffd986;border-radius:50%;animation:pulse 1s infinite}.game-actions{display:flex;justify-content:center;gap:32px;margin-top:6px;border-top:1px solid #b78a4b38;padding-top:3px}.game-actions button{display:flex;align-items:center;gap:7px;min-height:44px;font-size:10px;font-weight:700;color:#c7acaf}
/* The photographed faces, indexes, backs and hand cards retain their 1.2.0 design. */
.playing-card{font-family:Roboto,DM,Arial,sans-serif}
.playing-card{position:relative;display:block;width:65px;height:104px;flex-shrink:0;background:#f6f3e7;border:1px solid #eee9d8;border-radius:5px;padding:0;overflow:hidden;box-shadow:0 2px 3px #112d2633}.card-face{position:absolute;inset:0;background-image:url(images/spanish-deck.png);background-repeat:no-repeat}.card-index{position:absolute;left:2px;top:2px;background:#fdfbf2;color:#34372f;border-radius:2px;min-width:17px;font-size:12px;font-weight:700;line-height:19px;text-align:center;box-shadow:0 0 2px #b3ab92}.playing-card.back{background:#375066;border:3px solid #e9e7dd;display:grid;place-items:center}.back:before{content:'';position:absolute;inset:4px;border:1px solid #aebdcc;border-radius:1px}.back-mark{font-size:23px;line-height:1;font-weight:700;color:#dde6ed;position:relative}.playing-card.candidate{outline:2px solid #e7cd84;outline-offset:2px}.playing-card.hand-card{width:90px;height:143px;transition:transform .15s;box-shadow:0 3px 5px #132d294d}.hand-card .card-index{font-size:15px;line-height:23px;min-width:22px}.hand-card:active:not(:disabled){transform:translateY(-4px)}.hand-card:disabled{opacity:1}.hand-card.playable{outline:2px solid #e7cd84;outline-offset:1px}.hand-card.unplayable:not(:disabled){opacity:.7}
.card-arena{background:radial-gradient(ellipse at 50% 25%,#53866b,#2f6250 65%,#23483f);border:4px solid #af814d;box-shadow:inset 0 0 0 1px #e8bf73,0 0 0 1px #573428,0 4px 0 #251722,0 5px 10px #160f2755;border-radius:16px;padding:8px 9px;color:#fff;margin:2px 0}.opponent-hand{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;margin-bottom:8px}.opponent-hand .playing-card{width:29px;height:44px;border-radius:3px;box-shadow:0 1px 2px #0003}.opponent-hand .back-mark{font-size:14px}.opponent-count{font-size:10px;color:#e0ece6;margin-left:9px}.table{min-height:146px;padding:0 0 9px}.table-title{display:flex;justify-content:space-between;color:#d6e7dc;font-size:9px;margin:0 2px 11px}.table-cards{display:flex;justify-content:center;align-content:center;flex-wrap:wrap;gap:10px;min-height:111px}.tableempty{color:#d6e7dc;font-size:12px;align-self:center;margin:auto}.handlabel{display:flex;justify-content:space-between;align-items:center;color:#d6e7dc;font-size:9px;margin:5px 0 9px}.handlabel>span:first-child{color:white;font-weight:600}.announce{font-size:9px;background:#e5cf8c;color:#4e462d;padding:3px 6px;border-radius:3px;margin-left:6px;align-self:center}.hand{display:flex;justify-content:center;gap:12px;min-height:143px}.lastplay{min-height:16px;text-align:center;font-size:9px;line-height:1.5;color:#d6e7dc;margin:6px 0 0}.hez-table{display:flex;align-items:flex-start;justify-content:center;gap:40px;margin:8px auto 11px}.hez-table .playing-card{width:76px;height:121px}.pile{display:flex;align-items:center;flex-direction:column;gap:7px;font-size:10px;color:#e5eee8}.draw-button{min-height:36px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:1px solid #adc5a2;border-radius:7px;color:#fff;width:185px;margin:0 auto 12px;background:#234b3f;box-shadow:inset 0 1px #f2eac222,0 2px #1d3d33}.draw-button:disabled{opacity:.6}.scroll-hand{justify-content:flex-start;gap:9px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:4px 2px 7px;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:#bda56a #285141}.scroll-hand .hand-card{width:80px;height:127px;flex-shrink:0}.hez2-arena .hand{min-height:139px}.hez2-arena .handlabel{margin-bottom:5px}
.board-stage{margin:6px 0 0;background:linear-gradient(135deg,#bd8b4c,#7c502e 50%,#ad793d);padding:7px 7px 0;border:2px solid #d4ac66;border-radius:12px;box-shadow:inset 0 1px #ffe8a66b,0 4px 0 #291827,0 6px 12px #10082155}.checker-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;width:100%;border:2px solid #51352d;border-radius:4px;overflow:hidden}.square{position:relative;aspect-ratio:1;min-width:0;padding:0;display:grid;place-items:center;background:linear-gradient(140deg,#f1dcb3,#d7b780);border-radius:0}.square.dark{background:linear-gradient(140deg,#9b693b,#744728)}.square.chosen{background:linear-gradient(#a5a65e,#677749)}.square.last-square:after{content:'';position:absolute;inset:3px;border:1px solid #ffebae99;pointer-events:none}.square.destination:before{content:'';position:absolute;width:24%;height:24%;background:#f9de88;border:1px solid #fff1b0;border-radius:50%;box-shadow:0 0 0 3px #321b2933}.square.capture-dest:before{background:#bfea8b;border-color:#e6ffc6}
.piece{display:grid;place-items:center;position:relative;width:76%;height:76%;border-radius:50%;background:radial-gradient(circle at 35% 25%,#9bd8ff 0%,#478be2 34%,#2454b1 62%,#1c397e 100%);border:2px solid #b5ccdb;box-shadow:inset 0 -3px 0 #1b387b,inset 0 2px 0 #d0efff99,0 2px 0 #c89a50,0 4px 0 #725328,0 5px 5px #27162599;color:#ffdd8c}.piece:before{content:'';position:absolute;inset:3px;border:1px solid #a7d9ff88;border-radius:50%;box-shadow:inset 0 1px 3px #15295555}.piece.red{background:radial-gradient(circle at 35% 25%,#ffb2bc 0%,#ec5b70 34%,#c72e4b 62%,#8d1d38 100%);border-color:#e5b6a1;box-shadow:inset 0 -3px 0 #821d37,inset 0 2px 0 #ffdedb99,0 2px 0 #c89a50,0 4px 0 #725328,0 5px 5px #27162599;color:#ffe0a1}.piece.red:before{border-color:#ffc2c788}.piece.king{border-color:#ffdb80}.piece svg{width:50%;height:50%;position:relative;stroke-width:2;fill:#e6ac4844;filter:drop-shadow(0 1px #743e32)}.square:disabled,.mnode:disabled{opacity:1}.board-coordinates{display:grid;grid-template-columns:repeat(8,1fr);text-align:center;color:#fff0c7;font-size:8px;font-weight:800;align-items:center;height:21px;text-shadow:0 1px #755330}
.moulin-board{position:relative;width:100%;aspect-ratio:1;margin:6px auto 0;background:repeating-linear-gradient(1deg,transparent 0 5px,#94632f13 5px 6px),radial-gradient(ellipse at 30% 20%,#f8e0ae,#c79257);border:5px solid #9c663d;border-radius:13px;box-shadow:inset 0 0 0 2px #e4b771,0 0 0 2px #d2ac68,0 5px 0 #35202b,0 8px 12px #160c2255;overflow:hidden}.moulin-lines{position:absolute;inset:0;width:100%;height:100%;color:#6e462d;filter:drop-shadow(0 1px #fff4)}.mnode{position:absolute;width:13%;height:13%;padding:0;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:50%;background:transparent}.mnode:before{content:'';position:absolute;width:15%;height:15%;border-radius:50%;background:#6b452c;box-shadow:0 1px #fae0a488}.mnode .piece{width:82%;height:82%}.mnode.selected:after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #fff2a4;box-shadow:0 0 0 1px #736744}.mnode.target:before{width:23%;height:23%;background:#4b8f45;box-shadow:0 0 0 3px #ecf3ba99}.mnode.capture-target:after{content:'';position:absolute;inset:0;border:2px dashed #ffefb3;border-radius:50%;box-shadow:0 0 0 1px #9a382d}
.backdrop{position:fixed;inset:0;z-index:30;background:#170c2bcc;display:flex;align-items:flex-end;justify-content:center}.sheet{position:relative;width:100%;max-width:560px;max-height:92vh;max-height:92dvh;overflow-y:auto;background:linear-gradient(135deg,#674434,#422a42);border:2px solid #d5ad69;border-bottom:0;border-radius:20px 20px 0 0;padding:12px 22px 27px;box-shadow:inset 0 2px #ffe4ab33,0 -5px 25px #14082188}.handle{width:34px;height:4px;border-radius:3px;background:#b38e62;margin:0 auto 7px}.sheet-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:3px 0 19px}.sheet-title h2{font-size:21px;line-height:1.3;letter-spacing:-.3px;color:#ffdc93;text-shadow:0 2px #3e212b}.sheet-title .iconbtn{margin-right:-7px}.setup-screen{max-height:100%;height:100%;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 20%,#7d4f7966,transparent 70%),url(images/scene-texture.svg) repeat,#34213f;box-shadow:none;padding:10px 20px 22px}.setup-screen .handle{display:none}.setup-screen .sheet-title{flex-direction:row-reverse;margin-bottom:20px;height:50px;justify-content:flex-end;gap:12px}.setup-screen .sheet-title h2{flex:1;font-size:17px;letter-spacing:.8px}.setup-screen .sheet-title .iconbtn{margin:0}.setup-preview{display:flex;align-items:center;gap:17px;background:linear-gradient(120deg,#886140,#57384a);border:2px solid #d3a666;border-radius:15px;overflow:hidden;margin-bottom:22px;box-shadow:inset 0 1px #ffe0a044,0 4px #211229}.setup-art{width:120px;height:137px;flex-shrink:0;overflow:hidden}.setup-art .game-art{padding:3px}.setup-preview h3{font-size:26px;color:#fff0cf;text-shadow:0 2px #3e2234}.setup-preview p{font-size:11px;line-height:1.6;color:#e5ccbc;margin:6px 12px 8px 0}.setup-preview>div>span{font-size:9px;color:#ffda92}.setup-art .tile-card{width:69px;height:110px;top:16px}.setup-art .tile-one{left:10px}.setup-art .tile-two{left:49px}
.field{font-size:11px;font-weight:800;color:#efcea5;display:block;margin:20px 0 10px;letter-spacing:.5px}.segments{display:flex;gap:10px}.segments button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-height:48px;padding:10px 5px;background:linear-gradient(#745343,#4c333b);border:2px solid #b58b55;border-radius:10px;font-size:11px;font-weight:700;box-shadow:inset 0 1px #ffe3a633,0 3px #24142b}.segments button.selected{border-color:#e2db91;background:linear-gradient(#5da45b,#346744);color:#fff3b9;box-shadow:inset 0 1px #fef7bf44,0 3px #213929}.segments button[data-action="setup-mode"]{position:relative;flex-direction:column;gap:7px;min-height:116px}.mode-icon{color:#dcc293}.selected .mode-icon{color:#fff2ae}.segments strong{font-size:14px}.segments small{font-size:8px;font-weight:500;color:#cdb8b8}.segments .selected small{color:#e5e5be}.mode-check{position:absolute;right:7px;top:8px;opacity:0}.selected .mode-check{opacity:1;color:#fff2a0}.setup-screen>.primary{margin-top:29px;width:100%;font-size:16px;letter-spacing:.8px;min-height:55px}.notice{font-size:10px;margin:18px 0 0}.ruletag{background:#302138;color:#d7c2c7;border:1px solid #b88d5544;font-size:11px;line-height:1.7;padding:12px;border-radius:9px;margin:17px 0}.ruleblock{margin:23px 0}.ruleblock h3{font-size:14px;margin-bottom:7px;color:#ffdc91}.ruleblock p{font-size:12px;line-height:1.85;color:#dec8b7}.sheet .secondary{margin-top:10px}.suit-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:20px 0 10px}.suit-choice{background:linear-gradient(#7b583f,#4c303a);border:1px solid #d0a564;display:flex;align-items:center;flex-direction:column;gap:10px;padding:12px 4px;border-radius:9px;font-size:11px;min-width:0;box-shadow:0 3px #28162c}.suit-preview{width:55px;height:87px}
.avatar-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:20px 0 12px}.avatar-choice{position:relative;display:flex;align-items:center;flex-direction:column;gap:14px;padding:20px 8px;border:2px solid #a67c58;border-radius:14px;background:linear-gradient(#6a4854,#3b2847);box-shadow:inset 0 1px #ffe7b222,0 4px #291629}.avatar-choice .avatar{width:72px;height:72px;border-width:3px}.avatar-choice strong{font-size:12px}.avatar-check{position:absolute;right:10px;top:10px;opacity:0}.avatar-choice.selected{border-color:#f1d18a;background:linear-gradient(#7c663f,#4c4439);color:#fff0b8}.selected .avatar-check{opacity:1;color:#ffe593}
.handover{position:fixed;inset:0;z-index:35;background:radial-gradient(ellipse at 50% 30%,#6d496077,transparent 65%),url(images/scene-texture.svg) repeat,#34213f;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px}.handover>div{width:100%;max-width:320px}.handover-avatar{width:88px;height:88px;margin:0 auto 26px;border-width:4px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#d2b890}.centered{text-align:center}.handover h2{font-size:29px;color:#ffdc97;margin:12px 0;text-shadow:0 2px #462536}.handover p{font-size:12px;color:#d5c0c7;line-height:1.8;margin:0 0 28px}.handover .primary{width:100%}.handover .textbtn{margin-top:10px}
.result{text-align:center;padding:18px 0 0}.resulticon{color:#ffdf86;display:grid;place-items:center;width:78px;height:78px;border:3px solid #eaca7d;border-radius:50%;background:radial-gradient(circle at 40% 20%,#b28850,#745334);box-shadow:inset 0 0 0 3px #533738,0 5px #35212b,0 7px 12px #23122566;margin:0 auto 24px}.result h2{font-size:28px;margin:12px 0;color:#ffe09d;text-shadow:0 2px #462536}.result p{font-size:12px;color:var(--muted);margin-bottom:23px;line-height:1.7}.resultscore{font-size:39px;font-weight:900;margin:18px 0 5px;color:#ffdc94}.resultscore span{color:#b698a6;font-weight:400}.scorelabels{font-size:10px;color:var(--muted)}.result-detail{display:flex;justify-content:space-around;background:#302038;border:1px solid #b58e5533;border-radius:10px;padding:15px;margin:20px 0}.result-detail strong{font-size:19px;display:block;color:#ffe0a0}.result-detail small{font-size:10px;color:var(--muted)}.result .primary{margin-top:22px;width:100%}.result .textbtn{margin-top:5px}
.motion-ghost{position:fixed!important;z-index:24;pointer-events:none!important;margin:0!important;transform-origin:center;will-change:transform,opacity}.motion-piece{max-width:none!important;max-height:none!important}.motion-card{transition:none!important}.animating .hand,.animating .checker-board,.animating .moulin-board,.animating .draw-pile,.animating .draw-button{pointer-events:none}.toast{position:fixed;z-index:80;bottom:88px;left:50%;transform:translate(-50%,10px);max-width:calc(100% - 32px);width:max-content;border:1px solid #ddb471;border-radius:10px;background:#493247;color:#fff0cf;font-size:12px;padding:12px 17px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 4px 10px #13082777}.toast.show{opacity:1;transform:translate(-50%,0)}
.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}@keyframes pulse{50%{opacity:.3}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:360px){.shell{padding-left:12px;padding-right:12px}.header{height:58px;gap:9px}.header .avatar{width:44px;height:44px}.lobby-brand{min-height:63px;padding:6px 0 9px}.lobby-brand h1{font-size:30px}.lobby-brand img{width:43px;height:43px}.lobby-label{height:31px;font-size:9px}.games-grid{gap:10px}.gamecard{min-height:88px;gap:6px;padding-right:8px}.game-photo-wrap{width:78px;height:74px}.gamecopy h2{font-size:21px;margin-bottom:6px}.gamecopy>span{font-size:8px}.tile-play{min-width:59px;height:45px;font-size:9px;padding:4px}.playing-card.tile-card{width:43px;height:68px;top:6px}.tile-one{left:5px}.tile-two{left:32px}.with-resume .gamecard{min-height:74px}.with-resume .game-photo-wrap{height:62px}.with-resume .tile-card{width:37px;height:59px;top:3px}.lobby-note{font-size:9px;margin-top:17px}.play{padding-left:12px;padding-right:12px}.player{gap:7px;padding-right:8px}.player-info strong{font-size:10px}.turn-badge{min-width:48px;font-size:6.5px}.card-arena{padding-left:8px;padding-right:8px}.table-cards{gap:9px}.playing-card{width:61px;height:97px}.hand{gap:10px;min-height:131px}.playing-card.hand-card{width:82px;height:131px}.scroll-hand .hand-card{width:76px;height:121px}.hez2-arena .hand{min-height:132px}.status{font-size:9px}.sheet{padding-left:18px;padding-right:18px}.sheet-title h2{font-size:19px}.setup-screen .sheet-title h2{font-size:14px}.setup-art{width:101px;height:124px}.setup-preview{gap:11px}.setup-preview h3{font-size:24px}.setup-preview p{font-size:10px}.setup-art .tile-card{width:61px;height:97px;top:13px}.setup-art .tile-one{left:6px}.setup-art .tile-two{left:37px}.setup-screen>.primary{margin-top:25px}.suit-picker{grid-template-columns:repeat(2,1fr)}.suit-choice{flex-direction:row;justify-content:center;gap:12px}.suit-preview{width:43px;height:68px}}
@media(min-width:700px){.shell,.play{padding-top:17px}.gamecard{min-height:103px}.game-photo-wrap{width:110px;height:90px}.playing-card.tile-card{top:8px;width:54px;height:86px}.tile-one{left:15px}.tile-two{left:49px}.backdrop{align-items:center;padding:20px}.sheet{max-height:90vh;border-bottom:2px solid #d5ad69;border-radius:18px}.setup-screen{height:auto;min-height:590px;border-radius:16px;border:2px solid #d5ad69}.setup-art .tile-card{width:69px;height:110px;top:16px}.setup-art .tile-one{left:10px}.setup-art .tile-two{left:49px}.board-stage,.moulin-board{max-width:485px;margin-left:auto;margin-right:auto}}


/* Browser and iPhone home-screen safe areas; card styling remains unchanged. */
.shell{padding-top:calc(8px + env(safe-area-inset-top))}.play{padding-top:calc(3px + env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom))}.sheet{padding-bottom:calc(27px + env(safe-area-inset-bottom))}.setup-screen{height:100vh;height:100dvh;padding-top:calc(10px + env(safe-area-inset-top));padding-bottom:calc(22px + env(safe-area-inset-bottom))}.handover{padding-top:calc(30px + env(safe-area-inset-top));padding-bottom:calc(30px + env(safe-area-inset-bottom))}
@media(min-width:700px){.shell,.play{padding-top:calc(17px + env(safe-area-inset-top))}.setup-screen{height:auto}}

/* Music controls use the existing compact game interface. */
.music-button.music-on{color:#b9e6cd;border-color:#8fc7a8}.music-button:not(.music-on){opacity:.65}.music-volume input{width:115px;max-width:40%;accent-color:#8fc7a8;min-height:44px}.playhead .center{min-width:0;flex:1;text-align:left}.playhead .music-button{margin-left:auto}.playhead{gap:10px}
@media(max-width:360px){.header{gap:7px}.header .win-counter{min-width:60px;gap:6px}.header .profile-button{gap:6px}.header .profile-copy{font-size:10px}}
