:root{--bg:#fffaf2;--panel:#fff;--line:#e6e8de;--gold:#ec764c;--text:#294f4d;--muted:#7d9391;--jade:#1ba991;--felt:#3db6aa;--felt2:#208a83;--rim:#a2ded3;--accent:#ff855f;--accent-dark:#d45b3d;--theme-pale:#e3f6ee;--stage-bg:#e9f7f0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;font-size:14px;line-height:1.55}button,a{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible{outline:3px solid #f48a50;outline-offset:4px}a{touch-action:manipulation}button:not(.tile){transition:transform .17s,background .17s,box-shadow .17s}button:not(:disabled):active{transform:translateY(2px)}.background{position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 1% 22%,#ffce8538 0,transparent 23%),radial-gradient(circle at 100% 61%,#b2ebe94a,transparent 25%),var(--bg)}.app{max-width:1600px;margin:auto}.header{height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 44px;border-bottom:1px solid #e2e8df;background:#fffdf8e8}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);flex-shrink:0}.brand-mark{position:relative;width:44px;height:52px;border:3px solid #fff;border-radius:10px;display:grid;place-items:center;font-family:serif;font-size:32px;font-weight:bold;color:#129b82;background:#fff3d7;box-shadow:0 4px 0 #91d4c3,0 5px 7px #278e7229;transform:rotate(-9deg)}.brand-mark span{position:absolute;right:-10px;top:-9px;font:21px sans-serif;color:#ff9a52;-webkit-text-stroke:1px #fff}.brand b{font-size:28px;font-weight:900;letter-spacing:-1px;line-height:1;display:flex;align-items:center;gap:9px}.brand-dot{color:#ef7b4f;letter-spacing:1px;font-size:14px;background:#fff0de;border-radius:5px;padding:4px 6px;transform:rotate(-3deg)}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px;color:#8aa09b;font-weight:700}nav{display:flex;gap:8px}.nav{padding:11px 17px;color:#788d88;font-size:13px;font-weight:700;border-radius:12px;white-space:nowrap}.nav span{font-size:17px;margin-right:5px;vertical-align:-1px}.nav.active{color:#198f7b;background:#e3f5eb}.nav:hover{background:#f3f0e7}.header-right{display:flex;gap:12px;align-items:center}.practice-badge{color:#75998b;font-size:11px;display:flex;gap:6px;align-items:center;white-space:nowrap}.practice-badge i,.live-dot,.dot{width:6px;height:6px;border-radius:100%;background:#49ba95;display:inline-block}.icon-button{width:33px;height:33px;border-radius:50%;background:#f2f4ed;padding:8px}.icon-button:hover{background:#e3f3e8}.icon-button svg,.table-tools svg{width:18px;height:18px;display:block;stroke:#78988e;fill:none;stroke-width:1.8}.profile{width:43px;height:43px;border-radius:50%;padding:0;border:3px solid white;box-shadow:0 0 0 1px #e4dec8;overflow:hidden;margin-left:4px}.portrait{display:block;flex-shrink:0;width:100%;height:100%;background-image:url('assets/party-avatars.png');background-size:200% 200%;background-repeat:no-repeat;border-radius:inherit}.portrait-0{background-position:0 0}.portrait-1{background-position:100% 0}.portrait-2{background-position:0 100%}.portrait-3{background-position:100% 100%}main{padding:24px 44px 0}.page-heading{height:195px;position:relative;border:3px solid #fff;border-radius:24px;overflow:hidden;background:#bce8eb url('assets/party-island.png') center center/cover;box-shadow:0 5px 0 #d3e8db6b;display:flex;align-items:center;padding:22px 34px}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:10px;letter-spacing:1px;color:#428e87;font-weight:700;display:inline-flex;gap:6px;align-items:center}.eyebrow i{font-style:normal;color:#ed8f47;font-size:14px}h1{font-size:34px;letter-spacing:-.8px;line-height:1.35;font-weight:900;margin:8px 0 6px;color:#215955}h1 em{font-style:normal;color:#f37f4f}.page-heading p{font-size:12px;color:#527e79;margin:0}.hero-chips{display:flex;gap:7px;margin-top:16px}.hero-chips span{padding:3px 10px;background:#fffaf0e6;border:1px solid white;border-radius:20px;color:#638c7c;font-size:9px;font-weight:600}.hero-character-link{position:absolute;width:180px;height:160px;right:8%;top:15px;border-radius:22px}.hero-character-link span{position:absolute;top:12px;right:100%;white-space:nowrap;background:#fffcf3;border:3px solid white;border-radius:13px 13px 3px 13px;padding:8px 13px;font-weight:700;font-size:11px;box-shadow:0 3px 0 #b3dad5;color:#537c70;transform:rotate(-6deg)}.hero-character-link b{display:block;color:#e79a56;font-size:8px;margin-top:3px}.banner-sticker{position:absolute;right:22px;top:20px;width:57px;height:57px;border-radius:50%;background:#ffdf7c;border:3px solid #fff5d4;box-shadow:0 2px 0 #d3b16f;display:flex;flex-direction:column;justify-content:center;text-align:center;color:#a47943;font-size:9px;font-weight:bold;line-height:1.1;transform:rotate(13deg)}.banner-sticker b{font-size:17px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:25px 3px 13px}.section-heading>div{display:flex;align-items:center;gap:9px}.section-heading h2{font-size:17px;margin:0;font-weight:800;letter-spacing:.3px}.section-dot{width:9px;height:20px;background:#36b69c;border-radius:5px;transform:rotate(10deg)}.section-sub{font-size:10px;color:#94a29b;margin-left:8px}.section-heading button{font-size:10px;color:#84998e}.section-heading button span{border:1px solid #b8c7b8;border-radius:50%;display:inline-block;width:14px;height:14px;font-size:9px;line-height:13px;margin-left:4px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:22px;align-items:start}.play-column{min-width:0}.table-topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 19px;background:#fcfefb;border:1px solid #d6e9de;border-bottom:0;border-radius:19px 19px 0 0}.table-title{display:flex;align-items:center;gap:9px;font-size:10px;color:#85a394}.table-logo{width:24px;height:28px;border:1px solid #b4ddcc;border-radius:5px;background:#f3fff4;color:#29a78b;font:22px serif;text-align:center;line-height:26px;box-shadow:0 2px 0 #c7e8da}.table-title strong{font-size:13px;font-weight:800;color:#3b7264}.divider{height:12px;width:1px;background:#c8dfd2;margin:0 2px}.tag{border-radius:10px;font-size:9px;padding:2px 7px;color:#c98a3d;background:#fff2cb;margin-left:4px;font-weight:700}.table-tools{display:flex;gap:14px;align-items:center}.table-tools button{padding:0}.table-tools svg{width:16px;height:16px}.table-status{font-size:9px;color:#87aa95;display:flex;gap:5px;align-items:center}.table-status i{width:5px;height:5px;border-radius:50%;background:#69c8a6}.table-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 10% 15%,#fff6b16b,transparent 30%),radial-gradient(circle at 90% 80%,#cbeee6,transparent 40%),var(--stage-bg);border-left:1px solid #d6e9de;border-right:1px solid #d6e9de;height:536px}.scene{position:relative;width:960px;height:560px;transform-origin:top left}.table-deco{position:absolute;color:#ffd27b;font-size:27px;z-index:0}.deco-a{left:105px;top:36px;transform:rotate(15deg)}.deco-b{right:110px;top:63px;color:#a3d5c8;font-size:19px}.table-shadow{position:absolute;inset:70px 32px 57px;background:#35877e33;border-radius:140px;filter:blur(15px)}.table-rim{position:absolute;left:39px;top:47px;width:882px;height:411px;border-radius:118px;transform:perspective(1100px) rotateX(11deg);background:linear-gradient(160deg,#f6fff6,#c6eee2 35%,var(--rim) 80%,#ddfff2);padding:18px;box-shadow:0 10px 0 #52a99f,0 15px 0 #358f87,0 20px 12px #448c8130,inset 0 0 0 3px white;border:2px solid #b7dbcc}.felt{position:relative;overflow:hidden;height:100%;border-radius:99px;background:radial-gradient(circle at 30% 20%,#91e6ce40,transparent 60%),radial-gradient(circle,#ffffff16 .7px,transparent .9px) 0 0/6px 6px,linear-gradient(130deg,var(--felt),var(--felt2));box-shadow:inset 0 5px 10px #236a7b45,0 0 0 2px #6dbeb0}.felt:after{content:'';position:absolute;inset:13px;border:2px solid #c6fff124;border-radius:87px}.felt-ring{position:absolute;width:280px;height:280px;border-radius:50%;border:2px solid #c5ffee12;top:34px;left:283px;display:grid;place-items:center;font-size:250px;color:#c2ffed08;line-height:1}.felt-sign{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:3px;color:#b8f4e55c;font-weight:700}.corner{position:absolute;width:21px;height:21px;background:#bcf6df1f;border-radius:5px;transform:rotate(45deg)}.corner-tl{top:28px;left:78px}.corner-tr{top:28px;right:78px}.corner-bl{bottom:27px;left:76px}.corner-br{bottom:27px;right:76px}.seat{position:absolute;z-index:5;display:flex;gap:9px;align-items:center}.seat-top{top:6px;left:402px}.seat-left{top:202px;left:9px;flex-direction:column;gap:5px;text-align:center}.seat-right{top:202px;right:9px;flex-direction:column;gap:5px;text-align:center}.avatar{width:53px;height:53px;border:3px solid white;border-radius:18px;overflow:hidden;background:#ffe7ad;box-shadow:0 3px 0 #81b7a7,0 4px 12px #226f6424;transform:rotate(-4deg)}.seat-right .avatar{transform:rotate(4deg)}.seat-top .avatar{transform:rotate(-3deg)}.seat-info{background:#ffffffed;border:2px solid white;padding:4px 9px;border-radius:10px;box-shadow:0 2px 0 #bddecd;color:#4e8276}.seat-info b{font-weight:800;font-size:12px;letter-spacing:.4px}.seat-info b span{color:#9a82ba;font-size:9px;background:#f1eafa;margin-left:4px;padding:1px 4px;border-radius:3px}.seat-info small{display:block;font-size:8px;color:#88a395;margin-top:1px;white-space:nowrap}.seat.active .avatar{border-color:#fff4a9;box-shadow:0 0 0 3px #ffd96d,0 5px 0 #6ea08e;animation:bob .8s ease-in-out infinite alternate}.seat.active .seat-info{background:#fff7d5;border-color:#ffecad}.seat.active .seat-info b{color:#c58b38}.opponent-hand{display:flex;gap:3px;position:absolute;z-index:3}.north{top:83px;left:277px;transform:rotate(180deg);width:408px;justify-content:center}.west{top:149px;left:132px;flex-direction:column;gap:2px}.east{top:149px;right:132px;flex-direction:column;gap:2px}.back-tile{width:23px;height:34px;border-radius:5px;background:#fffceb;box-shadow:0 4px 0 #55bcb3,0 5px 1px #266c65;border:1px solid #eaffdf;position:relative}.back-tile:after{content:'✦';position:absolute;inset:4px;background:linear-gradient(#75d5d2,#4db8b2);border:1px solid #cff7db;border-radius:3px;color:#e6fff2;font-size:13px;display:grid;place-items:center}.west .back-tile,.east .back-tile{width:35px;height:12px;box-shadow:0 3px 0 #3a8f84}.west .back-tile:after,.east .back-tile:after{inset:2px 4px;font-size:6px}.compass{position:absolute;top:192px;left:418px;width:124px;height:107px;background:linear-gradient(140deg,#fffcf3,#eefcf4);border:4px solid #adede0;border-radius:23px;box-shadow:0 5px 0 #166f7075,0 7px 15px #12626720;text-align:center;padding-top:10px;color:#4e9f8b}.compass b{font-family:Arial,sans-serif;display:block;font-size:34px;line-height:39px;font-weight:800;color:#34a491;letter-spacing:-1px}.compass-caption{font-size:10px;font-weight:800}.compass small{font-size:8px;letter-spacing:1px;color:#85aa97}.wind{position:absolute;font-size:12px;color:#cef9de;font-weight:800;background:#187b746b;border:1px solid #a3e3c751;border-radius:7px;width:22px;height:22px;line-height:20px}.north-wind{left:46px;top:-31px}.south-wind{left:46px;bottom:-31px;color:#ae7e38;background:#fff1b3;border-color:#fff7d8;box-shadow:0 3px 0 #428b72}.west-wind{left:-32px;top:39px}.east-wind{right:-32px;top:39px}.compass-line{position:absolute;bottom:7px;width:22px;left:47px;height:3px;border-radius:3px;background:#d3eade}.river{position:absolute;display:grid;grid-template-columns:repeat(8,24px);gap:3px;z-index:3;min-height:30px}.river-top{left:366px;top:127px;transform:rotate(180deg)}.river-bottom{left:366px;top:336px}.river-left{top:186px;left:220px;transform:rotate(90deg);transform-origin:center;max-width:170px;grid-template-columns:repeat(6,24px)}.river-right{top:186px;right:220px;transform:rotate(-90deg);transform-origin:center;max-width:170px;grid-template-columns:repeat(6,24px)}.tile{position:relative;flex:none;display:flex;justify-content:center;align-items:center;width:43px;height:61px;padding:3px;background:linear-gradient(110deg,#e9ecda,#fffef5 15%,#fffbed 80%,#e0ecd9);border:1px solid #fff;border-radius:7px;box-shadow:0 4px 0 #e1e7d0,0 8px 0 #6abdaf,0 10px 3px #23746540;transition:transform .16s,filter .16s;user-select:none;color:#149c7d}.tile svg{width:100%;height:100%;overflow:visible}.tile .tile-rank{position:absolute;right:2px;top:2px;font:8px Arial;color:#719c8b}.tile.small{width:24px;height:32px;border-radius:4px;padding:1px;box-shadow:0 2px 0 #c5dfc9,0 4px 0 #3c9d8f}.tile.small .tile-rank{font-size:5px}.river .tile:last-child{animation:place .22s ease-out}.tile.selected{transform:translateY(-16px);box-shadow:0 4px 0 #ffd794,0 8px 0 #eb9a67,0 0 0 2px #ffc076;border-color:#ffe5ab}.tile.hinted:before{content:'✦';position:absolute;top:-23px;color:#fba952;font-size:19px;text-shadow:0 1px 0 white}.tile.drawn{margin-left:10px}.hand .tile:hover{filter:brightness(1.06);transform:translateY(-8px)}.hand .tile.selected:hover{transform:translateY(-16px)}.hand{position:absolute;bottom:39px;left:61px;right:61px;display:flex;justify-content:center;gap:4px;z-index:10}.hand .tile{cursor:pointer}.self-info{position:absolute;left:76px;bottom:128px;display:flex;align-items:center;gap:8px}.self-avatar{width:41px;height:41px;border:2px solid #fff5da;border-radius:14px;box-shadow:0 3px 0 #25897b;transform:rotate(-4deg);overflow:hidden}.self-info strong{font-size:12px;font-weight:800;color:#edfff1;text-shadow:0 1px 0 #237c6e}.self-info strong span{font-size:8px;background:#ffe6a5;color:#b68c48;padding:2px 5px;border-radius:4px;margin-left:5px;text-shadow:none}.self-info small{display:block;font-size:8px;color:#b5ebd5;margin-top:2px}.flower-area{font-size:12px;color:#fff0be;display:flex;gap:5px;margin-left:10px}.flower-area span{padding:1px 4px;border:1px solid #a7e1c8;border-radius:5px;background:#4cb69c;font-weight:700}.hand-caption{position:absolute;bottom:12px;left:77px;right:77px;display:flex;justify-content:space-between;color:#7fa694;font-size:9px}.table-message{position:absolute;top:392px;left:240px;right:240px;text-align:center;font-size:10px;color:#d5f8e4;font-weight:500}.meld{display:flex;gap:8px}.meld-group{display:flex;gap:2px}.self-melds{position:absolute;bottom:121px;right:80px}.opponent-meld{position:absolute}.top-meld{top:110px;left:305px}.left-meld{left:172px;top:170px;flex-direction:column}.right-meld{right:172px;top:170px;flex-direction:column}.opponent-meld .tile.small{width:18px;height:25px}.action-bar{min-height:85px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;background:#fff;border:1px solid #d6e9de;border-top:1px solid #dcefe1;border-radius:0 0 19px 19px;box-shadow:0 4px 0 #e0eadd88}.turn-status{display:flex;gap:11px;align-items:center}.turn-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#fff3cd;color:#e9b253;font-size:23px;transform:rotate(-7deg)}.turn-status strong{font-size:12px;font-weight:800;color:#4c7d6e}.turn-status small{display:block;font-size:10px;color:#8ca598;margin-top:3px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.primary-button{padding:11px 25px;min-width:142px;background:linear-gradient(#ff9f6f,#ff855d);border-radius:12px;color:white;font-size:14px;font-weight:800;box-shadow:0 4px 0 #dd6a48,0 6px 11px #e8915826;border:1px solid #ffbd8f;letter-spacing:1px;text-shadow:0 1px 0 #e66c4980}.primary-button:hover{filter:brightness(1.04);box-shadow:0 4px 0 #dd6a48,0 8px 18px #e8915840}.primary-button:disabled{background:#d1ded4;border-color:#d9e8de;box-shadow:0 3px 0 #bdcfc3;color:#7c9687;text-shadow:none;opacity:1}.secondary-button{padding:10px 17px;border:1px solid #c5ded0;background:#f3fbf4;color:#709b87;border-radius:11px;font-size:12px;font-weight:700;box-shadow:0 3px 0 #e1ece0}.claim-button{min-width:auto;padding:10px 17px}.claim-button[data-claim]{background:linear-gradient(#ad9ded,#8f81d7);border-color:#c4b8ff;box-shadow:0 4px 0 #7161bd}.table-bottom{display:flex;justify-content:space-between;margin:14px 3px 0;font-size:9px;color:#90a493}.table-bottom .dot{margin-right:4px;width:5px;height:5px}.table-bottom button{font-size:10px;padding:0;color:#749d85;font-weight:700}.side-card{background:#fff;border:1px solid #e1e8dc;border-radius:18px;padding:20px;margin-bottom:14px;box-shadow:0 3px 0 #e8e8d94a}.card-overline{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.8px;color:#9eaf94;font-weight:800}.tiny-star{color:#f2be63;font-size:20px;line-height:14px}.room-card h2{font-size:20px;letter-spacing:.2px;font-weight:900;margin:8px 0 5px;color:#416e60}.room-card>p{font-size:10px;color:#9aac9b;margin:0 0 16px}.mode-card{position:relative;width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 11px;margin:9px 0;background:#edf9f3;border:2px solid transparent;border-radius:12px}.mode-card[data-mode=classic]{background:#f1edfb}.mode-card[data-mode=teach]{background:#fff5da}.mode-card.chosen{border-color:#50bca0;box-shadow:0 3px 0 #aadfca;background:#e5f8ee}.mode-card[data-mode=classic].chosen{border-color:#a993da;box-shadow:0 3px 0 #ddd0ee}.mode-card[data-mode=teach].chosen{border-color:#e7bc62;box-shadow:0 3px 0 #f1dfb5}.mode-symbol{width:31px;height:38px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(#fffdf1,#eaf8db);color:#29a486;font:bold 25px serif;border:2px solid #fff;border-radius:5px;box-shadow:0 4px 0 #9acbb6;transform:rotate(-9deg)}.mode-symbol.blue{color:#8c7bc3;background:#fffbff;box-shadow:0 4px 0 #c2b5dd;transform:rotate(8deg)}.mode-symbol.gold{color:#d8a750;background:#fffdf4;box-shadow:0 4px 0 #e4cd91;transform:rotate(-5deg)}.mode-card b{display:flex;gap:7px;align-items:center;font-size:12px;font-weight:800;color:#4a8c76}.mode-card[data-mode=classic] b{color:#8979b3}.mode-card[data-mode=teach] b{color:#b79751}.mode-card b i{font-style:normal;font-size:7px;padding:0 4px;background:#ffab6c;color:#fff;border-radius:4px;line-height:14px}.mode-card small{display:block;font-size:8px;color:#86a798;margin-top:4px;white-space:nowrap}.mode-card[data-mode=classic] small{color:#a196ba}.mode-card[data-mode=teach] small{color:#b6a77c}.radio{width:15px;height:15px;margin-left:auto;border-radius:50%;border:1px solid #d2dfd2;flex-shrink:0;background:#fff9}.chosen .radio{background:#55b99d;border:0;color:white;text-align:center;line-height:15px}.chosen .radio:after{content:'✓';font-size:10px;font-weight:900}.room-note{font-size:9px;color:#9bb09d;margin-top:12px;display:flex;gap:6px;align-items:center}.room-note span{font-size:17px;color:#d0a8a2}.side-card-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.side-card h3{font-size:12px;font-weight:800;margin:0}.coach-card{background:#fff9e8;border-color:#f1e4be}.coach-card h3{color:#ab8a53}.coach-icon{display:inline-grid;place-items:center;margin-right:3px;color:#dfb15e}.switch{height:18px;width:32px;background:#d4dace;border-radius:10px;position:relative;padding:0;flex-shrink:0}.switch:after{content:'';position:absolute;width:12px;height:12px;background:#fff;top:3px;left:3px;border-radius:50%;box-shadow:0 1px 2px #57764820;transition:left .15s}.switch.on{background:#6cbb9c}.switch.on:after{left:17px}.coach-intro{display:flex;gap:9px;align-items:flex-start}.coach-avatar{width:39px;height:39px;border-radius:13px;border:2px solid white;box-shadow:0 2px 0 #dec3a4;transform:rotate(-5deg)}#coach-content{min-width:0}.coach-label{font-size:10px;font-weight:700;color:#ad9468;line-height:1.6;display:block}.coach-card p{font-size:10px;line-height:1.9;color:#a49c80;margin:6px 0 12px}.subtle-button{width:100%;text-align:left;padding:9px 12px;margin-top:3px;font-size:10px;font-weight:700;color:#b8914f;background:#ffefbd;border:1px solid #f2dfac;border-radius:9px}.subtle-button span{float:right}.coach-waits{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.coach-waits .tile{box-shadow:0 2px 0 #d7d5af}.muted{font-size:9px;color:#9eab9b}.theme-picker{display:flex;gap:8px}.theme-option{flex:1;padding:0;min-width:0}.swatch{display:grid;place-items:center;height:39px;border-radius:9px;border:2px solid white;position:relative;box-shadow:0 0 0 1px #e2eadf;overflow:hidden}.swatch b{font-size:22px;color:#fff9d0;text-shadow:0 2px 0 #388b7e30}.sky-swatch{background:linear-gradient(140deg,#a3ddd1,#58b8a7)}.peach-swatch{background:linear-gradient(140deg,#f9b7c0,#e18eae)}.candy-swatch{background:linear-gradient(140deg,#b2a6e4,#8b7dc8)}.theme-option.selected .swatch{box-shadow:0 0 0 2px #68b59d}.theme-option small{font-size:8px;color:#a0ac9b;display:block;margin-top:7px}.theme-option.selected small{color:#649c81;font-weight:700}.atmosphere{padding-bottom:17px}.records-link{display:flex;justify-content:space-between;width:100%;padding:3px 6px;color:#8caa96;font-size:10px;font-weight:700}.friends-strip{display:grid;grid-template-columns:1fr 286px;gap:22px;margin-top:25px}.friends-intro{display:flex;align-items:center;gap:16px;border:1px dashed #d5dfca;border-radius:15px;padding:17px 20px;background:#fffdf7}.mini-portraits{display:flex;padding-left:4px}.mini-portraits i{width:39px;height:39px;border:2px solid #fff;border-radius:50%;margin-left:-4px;box-shadow:0 2px 0 #c8dcca}.friends-intro b{font-size:12px;color:#7e957d}.friends-intro small{display:block;font-size:9px;color:#a8b5a3;margin-top:4px}.friends-intro>button{font-size:10px;color:#68a28d;margin-left:auto;white-space:nowrap}.mini-record{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:#fff;border:1px solid #e5e7d9;border-radius:15px}.record-star{font-size:27px;color:#e8c15d;text-shadow:0 3px 0 #f6e9ba;transform:rotate(-10deg)}.mini-record b{display:block;text-align:center;font:800 20px Arial;color:#7c9b8a}.mini-record small{font-size:8px;color:#a1b09c;display:block}.record-divider{height:24px;width:1px;background:#e7eadc}.mini-record>span:last-child{font-size:13px;color:#b4c1ad}footer{border-top:1px solid #e9e7d9;margin-top:27px;padding:20px 0 25px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#a8b3a3;font-size:9px}.footer-brand{color:#96ab96;font-weight:700}.footer-brand small{font-size:8px;margin-left:6px;font-weight:500}.footer-x{margin:0 8px;color:#ccd2be}footer i{font-style:normal;margin:0 6px}footer button{font-size:9px;padding:0;color:#8aa38d}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:#fff8e6;color:#60866a;border:2px solid white;box-shadow:0 5px 0 #dfd7b9,0 10px 35px #4d7c5733;padding:12px 23px;border-radius:15px;opacity:0;pointer-events:none;transition:.2s;z-index:99;max-width:90vw;text-align:center;font-size:12px}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{color:var(--text);border:4px solid white;border-radius:26px;background:linear-gradient(150deg,#fffaf0,#f2fbf1);padding:35px;max-width:680px;width:calc(100% - 35px);max-height:85vh;box-shadow:0 9px 0 #9dbcb07a,0 35px 100px #1e605d40;overflow-x:hidden}dialog::backdrop{background:#1d5f6073;backdrop-filter:blur(6px)}.dialog-close{position:absolute;top:12px;right:14px;width:31px;height:31px;border-radius:50%;background:#eaf1e5;font-size:24px;line-height:27px;color:#8ca48b}dialog .eyebrow{background:#e5f3e6;border-radius:15px;padding:5px 10px;font-size:8px;color:#83a88a;letter-spacing:1px}dialog h2{font-size:26px;font-weight:900;letter-spacing:.3px;margin:13px 0 17px;color:#4a816c;line-height:1.4}dialog h3{font-size:14px;color:#9aa75d;margin:24px 0 10px}dialog p,dialog li{font-size:12px;color:#8a9b88;line-height:1.9}dialog a{color:#62a58b}dialog .primary-button{margin-top:15px}.guide-step{display:flex;gap:15px;border-bottom:1px dashed #dce5d2;padding:17px 0}.guide-step>b{font-family:Arial;font-weight:900;font-size:24px;line-height:43px;color:#c0a05f;background:#fff0c4;min-width:43px;height:43px;text-align:center;border-radius:12px;transform:rotate(-4deg)}.guide-step:nth-of-type(2n)>b{background:#e5f3ec;color:#72ab95;transform:rotate(4deg)}.guide-step p{margin:0}.guide-step strong{color:#6e987d}.guide-example{display:flex;gap:5px;align-items:center;padding:20px 0;margin-top:12px;background:#eaf4e8;border-radius:14px;justify-content:center}.example-label{margin:0 11px 0 4px;font-size:10px;color:#92a386}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:24px 0}.stat{text-align:center;border:2px solid white;border-radius:16px;padding:20px 5px;background:#e1f5e9;box-shadow:0 3px 0 #d6e9d7}.stat:nth-child(2){background:#fff0c8;box-shadow:0 3px 0 #eddfb4}.stat:nth-child(3){background:#f0e9fc;box-shadow:0 3px 0 #dfd5ed}.stat b{display:block;font:900 34px Arial;color:#75a489}.stat:nth-child(2) b{color:#cca15d}.stat:nth-child(3) b{color:#ac95ca}.stat small{color:#95a78e;font-size:10px}.history-row{display:flex;justify-content:space-between;padding:11px 10px;border-bottom:1px dashed #dce6d3;font-size:11px;color:#91a488}.history-row:nth-child(even){background:#ffffff75;border-radius:8px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px dashed #dce6d3;gap:20px}.setting-row select{background:#fff;color:#81997e;border:1px solid #d9e4d0;border-radius:9px;padding:9px}.setting-row label{font-size:13px;font-weight:700;color:#84a184}.result-symbol{font-size:50px;font-weight:900;text-align:center;color:#ff9b63;line-height:1.4;margin:10px auto 0;text-shadow:0 3px 0 #ffdfb7;-webkit-text-stroke:1px #ffd39c}.result-hand{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin:23px 0;background:#e1f1e2;padding:18px 10px;border:2px solid white;border-radius:16px}.result-hand .tile{width:28px;height:40px}.result-actions{display:flex;gap:10px;align-items:center;justify-content:center}.result-actions .secondary-button{margin-top:15px}.result-avatar{width:85px;height:85px;border:4px solid white;border-radius:26px;margin:13px auto 0;box-shadow:0 5px 0 #c7e2cc;transform:rotate(-5deg);overflow:hidden}.result-ribbon{display:block;width:max-content;margin:15px auto 0;padding:5px 18px;border-radius:20px;background:#fff1c0;color:#c4a261;font-size:9px;letter-spacing:2px;font-weight:800}.result-confetti{height:15px;text-align:center;letter-spacing:18px;color:#b4a0d6;font-size:20px;pointer-events:none}.fx{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:15}.fx.show:after{content:attr(data-text);font-size:92px;font-weight:900;color:#fff3a3;text-shadow:0 5px 0 #ff9c65,0 9px 0 #bf6d53,4px 0 0 white,-4px 0 0 white;-webkit-text-stroke:2px #f6b36e;transform:rotate(-10deg);animation:burst .85s ease-out both}.comparison{width:100%;border-collapse:collapse;font-size:10px}.comparison th,.comparison td{text-align:left;padding:11px 7px;border-bottom:1px solid #e3e9d8;line-height:1.7}.comparison th{color:#8ea779;background:#edf5e4}.comparison td{color:#93a88b}.comparison a{text-decoration:none}.mini-badge{font-size:9px;padding:3px 7px;border:1px solid var(--line);border-radius:4px;color:#a7ba8f}.lobby-hero{background:#d4f0e8 url('assets/party-island.png') right center/cover;border:3px solid white;border-radius:18px;min-height:133px;padding:18px;margin-top:9px}.lobby-hero h2{font-size:24px;max-width:60%;margin:8px 0;color:#427d70;text-shadow:0 1px 0 white}.lobby-hero p{max-width:55%;color:#6e9b87;font-size:10px}.lobby-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:21px}.lobby-mode{border:2px solid white;border-radius:17px;background:#e4f6ea;padding:18px 9px;color:#77a389;text-align:center;box-shadow:0 3px 0 #cce4d0}.lobby-mode:nth-child(2){background:#f0e9fb;color:#a28bbc;box-shadow:0 3px 0 #ddd0ec}.lobby-mode:nth-child(3){background:#fff2cf;color:#bea160;box-shadow:0 3px 0 #ebdcaf}.lobby-mode .mode-symbol{margin:0 auto 12px}.lobby-mode b{display:block;font-size:13px}.lobby-mode small{display:block;font-size:9px;line-height:1.7;margin-top:5px}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:20px}.character-card{border:3px solid white;border-radius:20px;background:#fff0cd;box-shadow:0 3px 0 #e5d8b1;padding:17px;text-align:center}.character-card:nth-child(2){background:#ffe9db}.character-card:nth-child(3){background:#efe7f8}.character-card:nth-child(4){background:#e0f4e8}.character-card .portrait{width:89px;height:89px;margin:0 auto 13px;border-radius:26px;border:3px solid white;transform:rotate(-4deg);box-shadow:0 3px 0 #bfc9b84d}.character-card h3{margin:0;color:#8c9b77;font-size:16px}.character-card small{display:block;font-size:9px;color:#a7aa8f;margin-top:5px}.character-card p{font-size:10px;line-height:1.7;margin-bottom:0;color:#a1a789}.profile-intro{font-size:11px;color:#9bad94;text-align:center;margin-top:20px}.mobile-hand-zone{position:absolute;left:0;right:0;background:linear-gradient(#e7f5ec00,var(--stage-bg) 15%);padding-top:5px;z-index:12}.mobile-hand-zone .hand{position:static;display:flex;flex-wrap:wrap;justify-content:center;gap:9px 3px;padding:16px 7px 12px}.mobile-hand-zone .tile{width:34px;height:48px;box-shadow:0 3px 0 #e0e7d0,0 6px 0 #75c2b1,0 7px 3px #468b7350}.mobile-hand-zone .tile.selected{transform:translateY(-7px);border-color:#ffc58a;box-shadow:0 3px 0 #ffdaa9,0 6px 0 #efa878,0 0 0 2px #ffc58a}.mobile-hand-zone .tile.drawn{margin-left:5px}.mobile-hand-zone .tile.hinted:before{top:-17px;font-size:13px}.mobile-hand-zone .tile:hover{transform:translateY(-4px)}.mobile-hand-zone .tile.selected:hover{transform:translateY(-7px)}.mobile-hand-zone:after{content:'選一張好牌，再按「出牌」確認';display:block;text-align:center;color:#95ac94;font-size:8px;letter-spacing:.5px}.mobile-hand-zone[hidden]{display:none!important}.full-screen-table{background:var(--stage-bg);display:flex;flex-direction:column;justify-content:center}.full-screen-table .mobile-hand-zone{display:none}.table-stage:fullscreen .scene{position:absolute;left:50%;top:50%;margin:0;transform-origin:center}body[data-theme=peach]{--felt:#d890a9;--felt2:#b56d94;--rim:#edbdd0;--stage-bg:#fff1ed}.peach-swatch b{color:#fff0eb}body[data-theme=candy]{--felt:#a18dce;--felt2:#7868ac;--rim:#d7c9ed;--stage-bg:#f2effc}body[data-theme=peach] .table-rim{background:linear-gradient(160deg,#fff8f3,#fadce3 35%,var(--rim) 80%,#fff3ef);box-shadow:0 10px 0 #c787a3,0 15px 0 #a46d8a,0 20px 12px #a46d8a20;border-color:#edc6d2}body[data-theme=candy] .table-rim{background:linear-gradient(160deg,#faf8ff,#e8e0f8 35%,var(--rim) 80%,#f9f4ff);box-shadow:0 10px 0 #a292c5,0 15px 0 #8172a6,0 20px 12px #8172a620;border-color:#d5c8ea}.is-playing .page-heading{height:139px}.is-playing .hero-chips{display:none}.is-playing h1{font-size:29px}.is-playing .hero-character-link{height:110px}.reduce-motion *{animation:none!important;transition:none!important}@keyframes bob{to{transform:translateY(-3px) rotate(2deg)}}@keyframes place{from{transform:translateY(-9px) rotate(5deg);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes burst{0%{transform:scale(.6) rotate(-16deg);opacity:0}25%{transform:scale(1.07) rotate(-7deg);opacity:1}75%{opacity:1}100%{transform:scale(1.15) rotate(-4deg);opacity:0}}
@media(min-width:1450px){.workspace,.friends-strip{grid-template-columns:minmax(0,1fr) 310px}.side-card{padding:23px}.mode-card{padding:14px 11px}.coach-card p{font-size:11px}.page-heading{height:215px}.hero-copy h1{font-size:39px}}
@media(max-width:1180px){main{padding:20px 25px 0}.header{padding:0 25px;gap:17px}.brand-dot{font-size:11px}.brand b{font-size:26px}.workspace,.friends-strip{grid-template-columns:minmax(0,1fr) 250px;gap:17px}.side-card{padding:16px}.nav{padding:10px 11px;font-size:12px}.nav span{margin-right:3px}.header-right{gap:9px}.practice-badge{display:none}.table-topbar{padding:12px 14px}.table-status{display:none}.table-tools{gap:12px}.action-bar{padding:15px}.turn-status small{max-width:190px}.primary-button{min-width:118px;padding:11px 16px}.mode-card{gap:9px}.mode-card small{font-size:7px}.mode-card b{font-size:11px}.mode-card b i{font-size:6px}.hero-character-link{right:6%;width:165px}.section-sub{display:none}.friends-intro{gap:10px;padding:15px}.friends-intro b{font-size:11px}.friends-intro small{font-size:8px}.shortcut{display:none}}
@media(max-width:920px){.workspace{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1.2fr 1fr;gap:15px}.room-card{grid-row:span 2;margin:0}.coach-card,.atmosphere{margin:0}.records-link{grid-column:1/-1}.header{height:73px}.brand-dot{display:none}.page-heading{height:190px}.hero-character-link span{right:30%;top:92px;font-size:9px}.banner-sticker{display:none}.page-heading h1{font-size:31px}.friends-strip{grid-template-columns:1fr 250px}.friends-intro small{max-width:160px}.mini-portraits i{width:32px;height:32px}.friends-intro>button{font-size:9px}.action-bar{min-height:85px}.turn-status small{max-width:none}.tag{display:none}}
@media(max-width:600px){main{padding:14px 12px 0}.header{padding:0 14px;height:66px;gap:10px}.brand-mark{width:31px;height:38px;font-size:24px;border-width:2px;border-radius:8px}.brand-mark span{font-size:15px;right:-7px;top:-7px}.brand{gap:8px}.brand b{font-size:24px}.brand small{font-size:5px;letter-spacing:1px;margin-top:5px}.header-right{gap:8px}.header-right .profile{display:none}nav{gap:2px;margin-left:auto}.nav{font-size:10px;padding:8px 9px;letter-spacing:0;border-radius:8px}.nav span{display:none}.nav:first-child{display:none}.icon-button{width:26px;height:26px;padding:5px}.icon-button svg{width:16px;height:16px}.page-heading{height:169px;padding:16px;border-radius:18px;background-position:57% center}.page-heading:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#caece9d9,transparent 90%)}.eyebrow{font-size:8px;letter-spacing:0}.hero-copy h1{font-size:25px;line-height:1.4;max-width:210px;letter-spacing:-.5px;margin:7px 0}.hero-copy h1 em{display:block}.page-heading p{font-size:8px;max-width:180px}.hero-chips{gap:4px;margin-top:11px}.hero-chips span{padding:2px 6px;font-size:7px}.hero-character-link{width:100px;height:120px;right:0;top:25px}.hero-character-link span{display:none}.section-heading{margin:19px 2px 10px}.section-heading h2{font-size:14px}.section-dot{height:16px;width:7px}.section-heading button{font-size:9px}.table-topbar{padding:10px 12px}.table-title{gap:7px;font-size:9px}.table-title strong{font-size:11px}.table-logo{width:20px;height:23px;font-size:18px;line-height:21px}.table-tools{gap:12px}.table-topbar{border-radius:15px 15px 0 0}.action-bar{padding:12px;flex-direction:column;align-items:stretch;gap:13px;border-radius:0 0 15px 15px}.turn-status{gap:9px}.turn-status strong{font-size:11px}.turn-status small{font-size:9px}.turn-icon{width:30px;height:30px;font-size:20px;border-radius:10px}.actions{justify-content:flex-end}.actions>.primary-button{flex:1}.actions>.claim-button{flex:none}.primary-button{font-size:13px;padding:11px 18px;border-radius:10px}.table-bottom{font-size:8px;margin:14px 3px 20px}.table-bottom button{font-size:9px}.sidebar{grid-template-columns:1fr 1fr;gap:10px}.side-card{border-radius:14px}.room-card{grid-row:span 2;padding:13px}.card-overline{font-size:6px;letter-spacing:1px}.room-card h2{font-size:15px;letter-spacing:0}.room-card>p{font-size:8px;margin-bottom:12px}.mode-card{padding:10px 6px;gap:7px;margin:8px 0;border-radius:10px}.mode-symbol{width:23px;height:30px;font-size:20px;flex-shrink:0}.mode-card b{font-size:10px;gap:3px}.mode-card b i{display:none}.mode-card small{font-size:7px;white-space:normal;line-height:1.5}.radio{width:12px;height:12px;line-height:12px}.chosen .radio:after{font-size:8px;line-height:12px;display:block}.room-note{font-size:7px;line-height:1.7;gap:4px}.coach-card,.atmosphere{padding:13px}.side-card-title{margin-bottom:10px}.side-card h3{font-size:10px;letter-spacing:0}.coach-card p{font-size:9px;line-height:1.7;margin-bottom:10px}.coach-label{font-size:9px}.coach-avatar{display:none}.subtle-button{font-size:9px;padding:8px;margin-top:0}.switch{width:26px;height:16px}.switch:after{width:10px;height:10px}.switch.on:after{left:13px}.muted{display:none}.theme-picker{gap:6px}.theme-option small{font-size:7px}.swatch{height:29px;border-radius:6px}.swatch b{font-size:17px}.records-link{font-size:9px;padding:5px}.friends-strip{grid-template-columns:1fr;margin-top:16px;gap:11px}.friends-intro{border-radius:13px;padding:13px}.mini-portraits i{width:31px;height:31px}.friends-intro b{font-size:10px}.friends-intro small{font-size:8px;max-width:none}.friends-intro>button{font-size:8px}.mini-record{padding:10px 30px;border-radius:13px}.mini-record b{font-size:19px}.mini-record small{font-size:8px}footer{margin-top:20px;flex-wrap:wrap;justify-content:space-between;gap:11px;padding:17px 3px}footer>span:nth-child(2){order:3;width:100%;font-size:8px}.footer-brand{font-size:8px}.footer-brand small{font-size:6px}dialog{padding:28px 19px;border-radius:22px}.comparison{font-size:9px}.comparison th,.comparison td{padding:8px 4px}dialog h2{font-size:23px}.stats-grid{gap:8px}.stat b{font-size:27px}.stat small{font-size:9px}.guide-example{gap:3px}.example-label{margin:0 5px 0 1px;font-size:9px}.guide-example .tile.small{width:20px;height:29px}.guide-step{gap:10px}dialog p,dialog li{font-size:11px}.table-message{font-size:14px}.seat-info b{font-size:16px}.seat-info small{font-size:10px}.seat-info{padding:4px 8px}.scene .hand-caption{display:none}.scene .self-info{bottom:137px}.scene .self-info small{font-size:11px}.scene .self-info strong{font-size:15px}.scene .table-message{top:400px}.lobby-modes{gap:8px}.lobby-mode{padding:13px 5px;border-radius:12px}.lobby-mode b{font-size:11px}.lobby-mode small{font-size:8px}.lobby-hero{min-height:125px;padding:12px}.lobby-hero h2{font-size:20px;max-width:58%}.lobby-hero p{font-size:9px;max-width:60%}.character-card{padding:12px}.character-card .portrait{width:73px;height:73px}.character-card h3{font-size:14px}.character-card p{font-size:9px}.profile-grid{gap:10px}.result-symbol{font-size:43px}.is-playing .page-heading{height:126px}.is-playing h1{font-size:23px}.is-playing .eyebrow{display:none}}
@media(max-width:360px){.mobile-hand-zone .tile{width:29px;height:43px}.mobile-hand-zone .hand{gap:9px 3px}.brand small{letter-spacing:0}.nav{padding:8px 6px}.header-right{gap:5px}.hero-copy h1{font-size:23px}.hero-copy p{font-size:7px}.friends-intro{gap:8px}.friends-intro b{font-size:9px}.friends-intro small{font-size:7px}.mini-portraits i{width:27px;height:27px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Final legibility and responsive artwork composition. */
.page-heading{background-size:auto 120%;background-position:right 46%;background-repeat:no-repeat;background-color:#cbeef0}.page-heading:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#d6f0ed 0%,#d0edef 38%,#ceeff000 62%);pointer-events:none}.hero-character-link{right:3%;width:225px}.hero-character-link span{right:90%;top:23px}.room-card>p,.section-sub,.room-note,.table-status,.table-bottom,.muted,.theme-option small,.records-link,.friends-intro small,.mini-record small,footer{color:#738b7b}.mode-card small{color:#668978}.mode-card[data-mode=classic] small{color:#83769b}.mode-card[data-mode=teach] small{color:#968052}.coach-label{color:#997340}.coach-card p{color:#887650}.coach-avatar{width:42px;height:42px}.table-title{color:#668a79}.seat-info small{color:#6c8c78}.hand-caption{color:#688b76}dialog p,dialog li{color:#6c826d}.history-row,.character-card p{color:#758b70}.character-card small,.profile-intro{color:#7e9477}.comparison td{color:#6d846b}.setting-row label{color:#668866}.theme-option.selected small{color:#418a70}.friends-intro b{color:#617e67}.footer-brand{color:#718a72}
@media(max-width:920px){.page-heading:before{background:linear-gradient(90deg,#d6f0ed 0%,#d0edefb8 35%,#ceeff000 72%)}.hero-character-link{width:155px;right:4%}.hero-character-link span{top:99px;right:20%}.is-playing .hero-character-link span{display:none}}
@media(max-width:600px){.page-heading{background-size:auto 105%;background-position:right center}.page-heading:before{background:linear-gradient(90deg,#d5f0edee 0%,#d0edefa0 43%,#ceeff000 85%)}.hero-character-link{width:100px;right:0}.hero-copy{max-width:70%}}
/* AI motion and real-time party rooms */
.hero-video{position:absolute;height:120%;width:auto;min-width:0;right:0;top:0;object-fit:contain;z-index:0}.page-heading:before{z-index:1}.hero-character-link,.banner-sticker{z-index:3}.felt{overflow:hidden}.felt-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.30;mix-blend-mode:soft-light;pointer-events:none}.portrait{position:relative;overflow:hidden}.portrait canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}.portrait canvas.ready{opacity:1}.video-paused .portrait canvas{opacity:0}.video-paused .ai-scene{visibility:hidden}.online-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(105deg,#fff0d6,#fff4e9 45%,#f8e9fa);border:1px solid #f1e0cb;border-radius:18px;margin-top:21px;padding:17px 24px}.online-banner>div{display:flex;align-items:center;gap:15px}.online-icon{font-size:34px;line-height:1;color:#e99449}.online-banner b{display:block;font-size:17px;color:#8b6045}.online-banner small{font-size:11px;color:#967961;display:block;margin-top:3px}.online-banner .primary-button{white-space:nowrap;font-size:12px}.room-strip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:11px;padding:12px 17px;margin-top:16px;background:#e2f4ed;border-radius:12px;border:1px solid #c1e3d8}.room-strip[hidden]{display:none}.room-strip b{font-family:monospace;font-size:15px;letter-spacing:2px}.room-strip button{color:#39866c;text-decoration:underline;font-size:11px}.room-clock{margin-left:auto;color:#b47142}.room-label{display:block;font-size:12px;font-weight:700;margin:18px 0 8px}.room-input{width:100%;padding:13px 15px;border:2px solid #d8e9dd;border-radius:12px;background:#fffefa;outline:none;color:#365f54;font-size:16px}.room-input:focus{border-color:#5ebc9e}.code-input{text-transform:uppercase;letter-spacing:3px}.room-entry-actions{display:flex;flex-direction:column;gap:12px;margin-top:18px}.room-entry-actions>span{font-size:11px;text-align:center;margin-top:8px;color:#9b9b86}.room-entry-actions .room-label{margin-top:0;margin-bottom:-4px}.room-error{color:#c55449!important;min-height:18px}.invite-box{background:#fff0d6;padding:13px 18px;border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px}.invite-box b{display:block;font-family:monospace;font-size:26px;letter-spacing:3px;color:#977041}.invite-box button{font-size:11px}.room-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.room-seat{background:#f1f4ee;border:2px dashed #d7e2d4;padding:14px 6px;display:flex;flex-direction:column;align-items:center;gap:7px;border-radius:17px;text-align:center;min-width:0}.room-seat.occupied{background:#f4fff6;border:2px solid #c4e5cd}.room-seat>.portrait{width:64px;height:64px;border-radius:50%;border:3px solid white}.room-seat:not(.occupied)>.portrait{opacity:.4;filter:grayscale(.6)}.room-seat>b{font-size:12px;overflow-wrap:anywhere}.room-seat>small{font-size:9px;color:#8e9d85}.ready-label{font-size:9px;background:#e3efdc;border-radius:15px;padding:3px 6px;color:#6c875e}.room-rules{padding:15px 18px;border-radius:15px;background:#f7f4eb}.room-rules>b{font-size:12px}.room-mode-buttons{display:flex;gap:10px;margin:10px 0}.room-mode-buttons button{padding:8px 15px;font-size:12px;border:1px solid #d7dcca;border-radius:9px;background:#fff}.room-mode-buttons button.selected{color:#32896e;border-color:#56b791;background:#e8f8eb}.room-rules p{font-size:10px;line-height:1.8;margin-bottom:0}.room-controls{display:flex;justify-content:center;gap:13px;margin:23px 0 13px;align-items:center}.room-controls>span{font-size:11px;color:#819474}.room-leave{display:block;margin:18px auto 0;font-size:11px;text-decoration:underline;color:#9b9a82}.maker{width:100%;display:flex;align-items:center;justify-content:center;gap:24px;margin-top:8px;padding:17px;border-top:1px dashed #dce3d2;font-size:11px}.maker strong{font-weight:600;color:#718568}.maker a{color:#45917b;text-decoration:none;border-bottom:1px solid #a9cbb8;padding-bottom:2px}footer{flex-wrap:wrap}.concealed-tile{display:inline-block!important;width:20px!important;height:29px!important;transform:none!important}.table-stage .felt-sign,.table-stage .felt-ring{pointer-events:none}.table-title{flex-wrap:wrap}.room-controls button{font-size:12px}
@media(max-width:600px){.hero-video{height:105%;top:-2.5%;right:0;min-width:0}.online-banner{padding:13px;border-radius:14px;margin-top:15px;gap:9px}.online-banner>div{gap:9px}.online-icon{font-size:25px}.online-banner b{font-size:13px}.online-banner small{font-size:9px;max-width:180px}.online-banner .primary-button{padding:10px 11px;font-size:11px}.room-strip{gap:8px;padding:10px;font-size:9px}.room-strip b{font-size:12px}.room-strip .room-clock{font-size:9px}.room-strip button{font-size:9px}.room-seats{grid-template-columns:repeat(2,1fr);gap:8px}.room-seat{padding:10px}.room-seat>.portrait{width:54px;height:54px}.room-controls{flex-wrap:wrap}.room-controls>.primary-button{width:100%}.maker{padding:14px 0;flex-wrap:wrap;gap:10px 18px;font-size:10px}.maker strong{width:100%;text-align:center}.room-input{font-size:16px}.invite-box b{font-size:21px}.invite-box{padding:11px}.room-rules{padding:13px}.online-banner small{line-height:1.6}}
.hero-video{-webkit-mask-image:linear-gradient(90deg,transparent,#000 22%);mask-image:linear-gradient(90deg,transparent,#000 22%)}
/* v4: original voices, account entry, and clearly marked sponsor placements */
.account-button{font-size:10px;padding:8px 10px;max-width:140px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-radius:20px;border:1px solid #d6e6db;color:#648776}.audio-party-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 18px;margin-top:12px;background:#f3eefb;border:1px solid #e2dcee;border-radius:14px;color:#796694}.audio-party-bar>div{display:flex;align-items:center;gap:11px}.audio-party-bar>div>span{font-size:26px}.audio-party-bar strong{font-size:12px;display:block}.audio-party-bar small{font-size:10px;display:block;color:#9581ac;margin-top:2px}.audio-party-bar button{font-size:11px;font-weight:700;background:white;border:1px solid #ded2eb;padding:9px 15px;border-radius:20px;white-space:nowrap}.voice-pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.voice-pack{display:flex;flex-direction:column;align-items:center;gap:9px;border:2px solid #e4e8d8;border-radius:17px;padding:17px 8px;background:#faf9f1}.voice-pack.chosen{border-color:#58b89a;background:#edf9f1}.voice-pack>span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:39px;color:#ac8ad2;background-color:#ece2f8}.voice-pack b{font-size:12px}.voice-pack small{font-size:10px;color:#80917a;line-height:1.7}.taigi-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f2f4ee;border-radius:12px;padding:12px 16px;font-size:11px;color:#8b9380}.taigi-status b{color:#6f8166}.taigi-status small{width:100%;font-size:10px}.audio-preview{display:flex;align-items:center;gap:14px;border-bottom:1px dashed #dddacb;padding:18px 0;margin-bottom:10px}.audio-preview button{font-size:11px;white-space:nowrap}.audio-preview span{font-size:11px;color:#809276}.volume-row{display:grid;grid-template-columns:100px 1fr 40px;align-items:center;gap:15px;padding:11px 0;font-size:12px}.volume-row input{width:100%;accent-color:#50ac8e}.volume-row output{font-size:11px;color:#7a987f;text-align:right}.audio-note{font-size:10px!important;line-height:1.8}.voice-caption{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:12px;max-width:calc(100% - 30px);padding:13px 20px;border-radius:18px;background:#fffdf3f5;border:2px solid #d3e7d7;box-shadow:0 8px 35px #183d2820;color:#50755c;pointer-events:none}.voice-caption[hidden]{display:none}.voice-caption>i{font-size:26px;color:#aa83bc;font-style:normal}.voice-caption b{font-size:9px;display:block;color:#9a9f83;margin-bottom:3px}.voice-caption span{font-size:13px;display:block;line-height:1.5}.sponsor-placement{margin:26px 0 10px}.sponsor-placement[hidden]{display:none}.sponsor-card{max-width:800px;margin:auto;border:1px solid #e1d7cb;border-radius:20px;background:#fff8ef;overflow:hidden}.sponsor-card[hidden]{display:none}.sponsor-label{padding:7px 16px;font-size:9px;letter-spacing:.6px;color:#a39b8d;background:#f4efe7;display:flex;align-items:center;justify-content:space-between}.sponsor-label button{font-size:18px;line-height:1;padding:3px 6px;color:#9d998c}.sponsor-content{display:grid;grid-template-columns:220px 1fr;gap:28px;padding:25px 30px;align-items:center}.sponsor-art{aspect-ratio:1.2;border-radius:20px;background:linear-gradient(140deg,#e5c9f9,#f1dbb7 50%,#bfe9d7);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-4deg);border:5px solid #fff;box-shadow:4px 5px 0 #dfd9bd}.sponsor-art>span{font-size:65px;color:white;font-weight:900;letter-spacing:-5px;line-height:1.1;text-shadow:3px 3px 0 #b0b98d}.sponsor-art>span>span{color:#ef9164}.sponsor-art i{font-size:10px;letter-spacing:2px;color:#738a73;text-align:center;font-style:normal;font-weight:700;margin-top:9px}.sponsor-kicker{font-size:10px;letter-spacing:1px;color:#b39574}.sponsor-content h3{font-size:24px;line-height:1.45;margin:7px 0 10px;color:#6c705a}.sponsor-content p{font-size:11px;color:#9b9683;line-height:1.8;margin:0 0 13px}.sponsor-content a{display:inline-flex;gap:30px;align-items:center;padding:9px 17px;border-radius:10px;text-decoration:none;background:#627f70;color:white;font-size:11px;font-weight:700}.sponsor-content a:hover{background:#426655}.account-detail{font-size:11px!important}#google-signin{margin:20px 0}.practice-badge{display:none}
@media(max-width:600px){.account-button{font-size:8px;max-width:68px;padding:6px}.header-right{gap:5px}.audio-party-bar{padding:10px 12px;gap:8px}.audio-party-bar strong{font-size:10px}.audio-party-bar small{font-size:8px}.audio-party-bar button{padding:8px 10px;font-size:10px}.audio-party-bar>div{gap:7px}.audio-party-bar>div>span{font-size:20px}.voice-pack-grid{gap:7px}.voice-pack{padding:12px 5px;gap:7px}.voice-pack>span{width:48px;height:48px;font-size:30px}.voice-pack b{font-size:9px}.voice-pack small{font-size:8px}.audio-preview{flex-direction:column;align-items:flex-start;gap:8px}.volume-row{grid-template-columns:70px 1fr 30px;gap:10px;font-size:10px}.voice-caption{bottom:12px;padding:10px 14px;width:max-content}.voice-caption span{font-size:11px}.sponsor-content{grid-template-columns:85px 1fr;gap:17px;padding:18px}.sponsor-art{aspect-ratio:.78;border-radius:13px;border-width:3px}.sponsor-art>span{font-size:37px;letter-spacing:-3px}.sponsor-art i{font-size:6px;letter-spacing:1px}.sponsor-content h3{font-size:17px}.sponsor-content p{font-size:9px}.sponsor-kicker{font-size:8px}.sponsor-content a{font-size:10px;padding:8px 13px;gap:14px}.sponsor-placement{margin-top:20px}.sponsor-card{border-radius:15px}}
/* v5 — Little coins, big smiles */
.coin-header{display:flex;align-items:center;gap:7px;border:1px solid #e8d398;background:#fff4cf;border-radius:24px;padding:7px 10px;white-space:nowrap;box-shadow:0 2px 0 #e8cf93;color:#8b642b}.coin-header>span{color:#dba329;font-size:18px}.coin-header b{font-size:12px}.coin-header i{font-style:normal;background:#fff9e8;border-radius:50%;width:18px;line-height:18px;font-size:13px}.header-right{gap:8px}.fan-coin{display:grid;place-items:center;width:64px;height:64px;background:linear-gradient(135deg,#ffea9c,#eab74f);border:4px solid #fff3c5;box-shadow:0 4px 0 #c48d2e,inset 0 0 0 2px #deab44;border-radius:50%;font:bold 32px serif;color:#a87624;transform:rotate(-12deg)}.coin-club{position:relative;margin:24px 0 0;padding:28px 34px;display:flex;gap:28px;align-items:center;border:2px solid #fff;border-radius:24px;background:radial-gradient(ellipse at 95% 20%,#eedcff 0,transparent 50%),linear-gradient(110deg,#fff0c9,#fff7df 46%,#f7edff);box-shadow:0 4px 0 #e8dfc640;overflow:hidden}.coin-club-art{position:relative;width:104px;flex-shrink:0}.coin-club-art .fan-coin{width:88px;height:88px;font-size:46px;animation:coin-bob 4s ease-in-out infinite}.coin-club-art i{position:absolute;color:#ed9f5f;font-size:32px;right:-3px;top:-20px;font-style:normal}.coin-club-art b{position:absolute;right:8px;bottom:-12px;color:#b78ccc;font-size:27px;transform:rotate(20deg)}.coin-club-copy{flex:1}.coin-club-copy h2{font-size:23px;margin:5px 0 7px;letter-spacing:-.5px;color:#7c6138}.coin-club-copy>p{font-size:11px;color:#958269;margin:0 0 16px}.coin-club-copy>div{display:flex;gap:10px}.coin-club-copy .primary-button{background:#b38acb;box-shadow:0 3px 0 #9171a5}.coin-club-copy .secondary-button{background:#fff9e9;border-color:#ecdfbd;color:#9b7944}.coin-club-balance{text-align:right;display:flex;flex-direction:column;min-width:135px}.coin-club-balance small{font-size:11px;color:#a27e96}.coin-club-balance strong{font-size:38px;line-height:1.2;color:#a17bbb;letter-spacing:-1px}.coin-club-balance>span{font-size:10px;color:#b298af;margin-top:10px}dialog:has(#shop-panel){max-width:960px;width:calc(100% - 40px);padding:32px}.coin-shop-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;background:linear-gradient(120deg,#fff0ce,#f6eaff);border-radius:19px;margin:10px 0 22px}.coin-shop-hero h2{font-size:27px;margin:9px 0 4px;color:#816646}.coin-shop-hero p{font-size:11px;margin:0;color:#97846b}.coin-shop-hero .eyebrow{font-size:8px;letter-spacing:1.5px;color:#a58a62}.coin-purse{display:grid;grid-template-columns:44px auto;align-items:center;gap:0 9px;min-width:130px}.coin-purse .fan-coin{grid-row:span 2;width:40px;height:40px;font-size:20px;border-width:3px}.coin-purse b{font-size:27px;color:#a083ae;line-height:1.15}.coin-purse small{font-size:10px;color:#a792b1}.coin-tabs{display:flex;gap:6px;border-bottom:1px solid #e8e9df;padding-bottom:12px;margin-bottom:20px;overflow-x:auto;scrollbar-width:thin}.coin-tabs button{white-space:nowrap;padding:9px 13px;border-radius:10px;font-size:12px;color:#8a9184;font-weight:700}.coin-tabs button.active{background:#e7f3e9;color:#3f8d77}.coin-tabs button:hover{background:#f1f4eb}.coin-intro{display:flex;align-items:center;justify-content:space-between;margin:18px 0 22px;gap:10px}.coin-intro h3{font-size:21px;margin:0 0 6px;color:#527e74}.coin-intro p{font-size:11px;color:#87988e;margin:0;line-height:1.8}.coin-intro>span{font-size:56px;color:#bfded0;padding:0 28px}.coin-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.coin-products.adfree-products{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.coin-product{border:1px solid #e4e7d9;border-radius:17px;overflow:hidden;background:#fffef9;display:flex;flex-direction:column}.coin-product-art{position:relative;height:112px;display:grid;place-items:center;background:radial-gradient(ellipse,#fff7e0,#f4ead4);overflow:hidden}.coin-product-art>span{font-size:49px;color:#ceab5f;text-shadow:0 3px 0 #ffffffae;transition:transform .3s}.coin-product:hover .coin-product-art>span{transform:rotate(-8deg) scale(1.12)}.coin-product-art>small{position:absolute;right:6px;top:6px;padding:3px 6px;background:#a8cdb3;color:white;font-size:8px;border-radius:5px}.coin-product:nth-child(2n) .coin-product-art{background:radial-gradient(ellipse,#edf9fb,#e1edf5)}.coin-product:nth-child(3n) .coin-product-art{background:radial-gradient(ellipse,#f9eafa,#f0e1f5)}.coin-product-copy{padding:13px;display:flex;flex-direction:column;flex:1}.coin-product h3{font-size:14px;margin:0 0 5px;color:#597b6e;white-space:normal}.coin-product p{font-size:10px;line-height:1.8;color:#8c9a8d;margin:0 0 13px;flex:1}.coin-product-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px}.coin-product-bottom>b{color:#ac853d;font-size:13px;white-space:nowrap}.coin-product-bottom>b span{font-size:12px;color:#d5aa4b}.coin-product-bottom button{font-size:10px;padding:7px 10px;border-radius:8px}.adfree-products .coin-product-bottom{flex-direction:column;align-items:stretch;gap:8px}.adfree-products .coin-product-bottom>b{text-align:center}.coin-note,.coin-fineprint{font-size:10px!important;color:#8b9a90;line-height:1.9;margin:17px 0}.coin-fineprint{padding-top:17px;border-top:1px dashed #dedfd5}.coin-policy-link{font-size:10px;color:#9c9b87;padding:0}.coin-section-copy{font-size:12px;color:#8c9b8d;margin-bottom:20px}.coin-confirm{max-width:450px;margin:20px auto;text-align:center;padding:10px}.coin-confirm-icon{font-size:58px;display:block;line-height:1.4;color:#b291ba}.coin-confirm h3{font-size:23px;margin:15px 0 10px}.coin-confirm>p{color:#8d9b91}.coin-confirm>div:not(.coin-confirm-actions){padding:12px;border-bottom:1px dashed #e1e6dc;display:flex;justify-content:space-between;gap:14px}.coin-confirm>div>b{color:#ad8844}.coin-confirm-actions{display:flex;justify-content:center;gap:12px;margin-top:20px}.quest-grid{display:grid;gap:12px}.quest-card{display:flex;align-items:center;gap:18px;padding:18px;border-radius:16px;border:1px solid #e5e8db;background:#fffdf5}.quest-symbol{width:52px;height:52px;flex-shrink:0;display:grid;place-items:center;border-radius:15px;background:#fff0c9;color:#c4a052;font:32px serif}.quest-card>div{flex:1}.quest-card h3{font-size:15px;margin:0 0 5px}.quest-card p{font-size:11px;line-height:1.8;margin:0;color:#849487}.quest-card small{display:block;font-size:10px;color:#a2aa98;margin-top:6px}.quest-card button{white-space:nowrap;font-size:11px;padding:10px 13px}.referral-quest{background:#f5eefb;border-color:#e9ddf4}.referral-quest .quest-symbol{background:#eadbf4;color:#b08acb}.referral-quest .primary-button{background:#b68fca;box-shadow:0 3px 0 #9475a7}.invite-summary{background:#edf4e9;border-radius:14px;padding:18px;text-align:center;margin:16px 0;color:#71997c;font-size:12px}.invite-summary>b{font-size:23px}.invite-code{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;font-size:11px}.invite-code strong{letter-spacing:2px;font-size:16px}.invite-code button{padding:6px 12px;font-size:10px}.invite-redeem{font-size:11px;margin:16px 0}.invite-redeem label{display:block;margin-top:15px}.invite-redeem input{margin:7px 0 12px}.topup-intro{display:flex;align-items:center;gap:17px;padding:17px;background:#f6f0e1;border-radius:15px;margin-bottom:18px}.topup-intro>span{font-size:33px;color:#d3b67a}.topup-intro h3{font-size:17px;margin:0 0 4px}.topup-intro p{font-size:11px;margin:0;color:#958f7b}.coin-packages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.coin-package{border:2px solid #eae6d8;border-radius:16px;padding:18px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fffdf6}.coin-package.selected{border-color:#dbb55c;background:#fff5d9;box-shadow:0 3px 0 #e5d099}.coin-package>.fan-coin{width:38px;height:38px;font-size:20px;border-width:3px;margin-bottom:8px}.coin-package>b{font-size:22px;color:#ad8a47}.coin-package>small{font-size:10px;color:#9e997e}.coin-package>strong{font-size:13px;color:#578575;margin-top:8px}.payment-title{font-size:16px;margin:24px 0 12px}.payment-methods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.payment-methods button{border:1px solid #e5e7dd;border-radius:13px;padding:13px 8px;display:flex;flex-direction:column;align-items:center;gap:5px;background:#fafbf7}.payment-methods button>b{font-size:20px;font-weight:800;color:#7c9788}.payment-methods button:first-child>b{color:#55ad7c;font-size:17px}.payment-methods button>span{font-size:11px}.payment-methods button>small{font-size:9px;color:#a7a996}.payment-methods button.selected{border:2px solid #8cbba2;background:#eff8ef}.payment-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 0;font-size:12px}.payment-summary button{font-size:12px}.coin-ledger>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid #e7eadf}.coin-ledger b{font-size:12px}.coin-ledger small{display:block;font-weight:400;font-size:9px;color:#9aa799;margin-top:4px}.coin-ledger strong{text-align:right;font-size:17px;color:#c69372}.coin-ledger .positive{color:#69a78f}.sticker-tray{background:#f8f2fa;border-radius:16px;padding:18px;margin-top:18px}.sticker-tray h3{font-size:15px;margin-top:0}.sticker-tray>div{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.sticker-tray button{display:flex;flex-direction:column;align-items:center;gap:7px;border:1px solid #eddfef;background:#fffafc;border-radius:11px;padding:10px 4px}.sticker-tray button>span{font-size:27px}.sticker-tray small{font-size:8px}.sticker-tray p{font-size:10px;color:#a38ba5;margin-bottom:0}.coin-burst{position:fixed;inset:0;pointer-events:none;z-index:200;overflow:hidden}.coin-burst i{position:absolute;left:var(--x);top:-45px;color:hsl(var(--hue) 65% 64%);font-size:29px;animation:coin-fall 2s var(--delay) ease-in both;font-style:normal}.coin-reaction{position:fixed;top:20%;left:50%;transform:translateX(-50%);z-index:150;display:flex;align-items:center;gap:12px;background:#fffaf3f5;box-shadow:0 8px 40px #557d7130;border:3px solid white;padding:13px 24px;border-radius:25px;pointer-events:none;animation:coin-pop .3s ease-out}.coin-reaction>span{font-size:43px}.coin-reaction b{font-size:11px;color:#9ca98e}.coin-reaction p{margin:0;font-size:18px;font-weight:700}.fortune-card{padding:35px 25px;text-align:center;background:radial-gradient(ellipse,#fff9df,#fcf0e3);border-radius:20px}.fortune-card>span{font-size:12px;letter-spacing:5px;color:#bf9d55}.fortune-card>b{display:block;color:#c49351;font:64px serif;margin:18px 0}.fortune-card h2{font-size:23px;line-height:1.9;max-width:350px;margin:auto}.fortune-card p{font-size:11px;color:#b29d7c;margin:22px 0}.coin-policy h3{font-size:16px;margin-top:23px}.coin-policy p{line-height:2}.coin-policy a{color:#6ba089}.coin-empty{padding:30px;text-align:center}
body[data-coin-frame="frame-star"] .self-avatar{box-shadow:0 0 0 4px #e8c164,0 0 20px #e6b46b;animation:frame-shimmer 3s ease-in-out infinite}body[data-coin-back="back-candy"] .back-tile{background:linear-gradient(150deg,#d4abec,#94dbd3)!important;box-shadow:0 2px 0 #a184b7!important}body[data-coin-table="table-sakura"] .felt{background:radial-gradient(ellipse,#e9abbf,#b8789f)!important}body[data-coin-table="table-sakura"] .felt-video{opacity:.18}body[data-coin-table="table-sakura"] .table-rim{background:linear-gradient(120deg,#f8d7df,#ddb2ca)}body[data-coin-table="table-sakura"] .felt:after{content:'❀　　❀　　　❀　　❀';position:absolute;inset:0;pointer-events:none;color:#fff6;letter-spacing:50px;font-size:34px;animation:sakura-drift 12s linear infinite}.reduce-motion .coin-club-art .fan-coin,.reduce-motion .coin-burst i,.reduce-motion .self-avatar,.reduce-motion .felt:after{animation:none!important}.reduce-motion .coin-burst i{top:40%}
@keyframes coin-bob{50%{transform:rotate(8deg) translateY(-6px)}}@keyframes coin-fall{to{transform:translateY(105vh) rotate(420deg);opacity:0}}@keyframes coin-pop{from{opacity:0;transform:translateX(-50%) scale(.8)}}@keyframes frame-shimmer{50%{box-shadow:0 0 0 4px #d7b2ed,0 0 24px #deb4ed}}@keyframes sakura-drift{from{transform:translateY(-10%)}to{transform:translateY(100%);opacity:0}}
@media(max-width:1100px){.header .nav{padding:10px}.coin-header{padding:6px 8px;gap:5px}.coin-club{padding:24px;gap:18px}.coin-club-copy h2{font-size:20px}}
@media(max-width:600px){.header{gap:7px}.header-right{gap:4px}.header .profile{display:none}.coin-header{padding:5px 7px;gap:4px}.coin-header b{font-size:10px}.coin-header>span{font-size:14px}.coin-header i{display:none}.header .account-button{max-width:47px;font-size:7px}.coin-club{padding:20px 16px;gap:14px;border-radius:17px;flex-wrap:wrap}.coin-club-art{width:60px}.coin-club-art .fan-coin{width:56px;height:56px;font-size:29px}.coin-club-art i{font-size:23px;right:0;top:-13px}.coin-club-art b{font-size:20px;right:0}.coin-club-copy h2{font-size:16px;line-height:1.6}.coin-club-copy .eyebrow{font-size:7px}.coin-club-copy>p{font-size:9px}.coin-club-copy>div{gap:7px}.coin-club-copy button{font-size:10px;padding:9px 10px}.coin-club-balance{width:100%;flex-direction:row;align-items:center;justify-content:center;gap:10px;border-top:1px solid #eadcb6;padding-top:13px}.coin-club-balance strong{font-size:23px}.coin-club-balance small,.coin-club-balance>span{font-size:9px;margin:0}dialog:has(#shop-panel){width:calc(100% - 18px);padding:24px 14px 18px;max-height:92vh}.coin-shop-hero{padding:18px 12px;gap:8px;flex-wrap:wrap;margin-top:20px}.coin-shop-hero h2{font-size:21px}.coin-shop-hero p{font-size:10px}.coin-purse{min-width:0;grid-template-columns:29px auto;gap:0 6px;margin-top:5px}.coin-purse .fan-coin{width:28px;height:28px;border-width:2px;font-size:15px}.coin-purse b{font-size:23px}.coin-purse small{font-size:9px}.coin-tabs{gap:2px;margin-bottom:14px}.coin-tabs button{padding:8px 9px;font-size:10px}.coin-intro h3{font-size:18px}.coin-intro p{font-size:10px}.coin-intro>span{font-size:40px;padding:0 10px}.coin-products,.coin-products.adfree-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.coin-product-art{height:85px}.coin-product-art>span{font-size:38px}.coin-product-copy{padding:11px}.coin-product h3{font-size:12px}.coin-product p{font-size:9px;line-height:1.8}.coin-product-bottom{flex-direction:column;align-items:stretch}.coin-product-bottom>b{text-align:center;font-size:12px}.coin-product-bottom button{font-size:10px}.coin-note,.coin-fineprint{font-size:9px!important}.coin-section-copy{font-size:10px}.quest-card{padding:14px 12px;gap:10px;flex-wrap:wrap}.quest-symbol{width:36px;height:36px;font-size:24px;border-radius:11px}.quest-card>div{min-width:180px}.quest-card h3{font-size:13px}.quest-card p{font-size:10px}.quest-card small{font-size:9px}.quest-card>button{width:100%;padding:10px}.invite-code{flex-wrap:wrap;font-size:10px}.invite-code strong{font-size:14px}.topup-intro{padding:13px;gap:10px}.topup-intro h3{font-size:14px}.topup-intro p{font-size:10px}.coin-packages{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.coin-package{padding:14px 6px}.coin-package>b{font-size:18px}.coin-package>small{font-size:8px}.coin-package>strong{font-size:11px}.payment-methods{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.payment-summary{flex-direction:column;align-items:stretch;text-align:center;font-size:11px}.coin-confirm h3{font-size:20px}.coin-confirm-actions{flex-direction:column}.coin-confirm>div{font-size:12px}.coin-ledger b{font-size:11px}.coin-ledger strong{font-size:15px}.sticker-tray>div{grid-template-columns:repeat(3,1fr)}.coin-reaction{max-width:90%;padding:10px 17px;white-space:nowrap}.coin-reaction>span{font-size:33px}.coin-reaction p{font-size:15px}.fortune-card{padding:25px 15px}.fortune-card h2{font-size:20px}}
@media(max-width:600px){.header{display:grid;grid-template-columns:minmax(0,1fr) auto;height:auto;padding:12px 12px 8px;gap:10px 7px}.header nav{grid-column:1/-1;grid-row:2;width:100%;justify-content:center;gap:6px}.header nav .nav{display:block!important;flex:1;padding:7px 6px;font-size:10px}.header-right{justify-content:flex-end}.header .brand{gap:8px}.header .brand small{font-size:6px;letter-spacing:1px}.header .brand-mark{width:30px;height:36px;font-size:24px}.header .brand b{font-size:23px}}

/* Public entry: both choices remain available without a blocking login screen. */
.entry-banner{display:flex;align-items:center;justify-content:space-between;gap:26px;margin:23px 0 0;padding:24px 28px;border:1px solid #e3e7d9;border-radius:21px;background:linear-gradient(110deg,#fffdf6,#edf9f0);box-shadow:0 5px 0 #e6eee158}.entry-copy{min-width:0}.entry-copy h2{font-size:23px;line-height:1.5;margin:5px 0;color:#2c6b5d}.entry-copy p{font-size:12px;color:#66877c;margin:0;line-height:1.9}.entry-actions{display:grid;grid-template-columns:auto auto;gap:10px;flex-shrink:0}.entry-actions button{min-height:46px;font-size:13px;padding:12px 18px}.entry-actions small{grid-column:1/-1;font-size:10px;text-align:center;color:#68877a}.entry-actions .secondary-button{background:#fff;border:1px solid #c5dace}#account-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}#account-actions button{min-height:44px}#account-login-status{font-size:12px;color:#aa633f;line-height:1.8}.account-legal{font-size:11px!important;margin-top:22px!important}.account-legal a,.footer-policies a{color:#428676;text-underline-offset:4px}.footer-policies{display:flex;gap:18px;font-size:11px}.account-detail{line-height:1.9!important}#google-signin{min-height:0;max-width:100%;overflow:hidden}
@media(max-width:1050px){.entry-banner{gap:18px;padding:22px}.entry-copy h2{font-size:20px}.entry-actions{grid-template-columns:1fr}.entry-actions small{max-width:230px}}
@media(max-width:600px){.entry-banner{flex-direction:column;align-items:stretch;margin-top:17px;padding:20px 17px;gap:16px}.entry-copy h2{font-size:21px}.entry-copy .eyebrow{font-size:9px}.entry-copy p{font-size:12px}.entry-actions{grid-template-columns:1fr}.entry-actions button{font-size:14px;min-height:46px}.entry-actions small{max-width:none}.header .account-button{font-size:10px;max-width:76px;padding:8px 5px}.header-right .practice-badge{display:none}.header .brand-dot{display:none}#account-actions{flex-direction:column}#account-actions button{width:100%}dialog:has(#account-panel){padding:38px 20px 24px;width:calc(100% - 24px)}#account-panel h2{font-size:25px}.footer-policies{justify-content:center;width:100%;margin:12px 0}}
