/* ===== styles/base.css ===== */
:root{--bg:#f8fafd;--ink:#202124;--muted:#747a82;--line:#e7e9ed;--blue:#1a73e8;--selected:#e8f0fe;--side:248px;--radius:12px;font-family:Arial,"Noto Sans KR","Malgun Gothic",sans-serif;color:var(--ink);font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);height:100dvh;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button:focus-visible,input:focus-visible,textarea:focus-visible,[contenteditable]:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button{border:0;background:none;color:inherit}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}.sprite{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.header{height:86px;display:flex;align-items:center;padding:12px 24px 9px 22px;gap:16px;background:var(--bg)}.doc-logo{width:40px;height:48px;background:#4285f4;color:white;border-radius:4px;display:grid;place-items:center}.doc-logo svg{width:31px;height:34px}.heading{flex:1;min-width:0}.titleline{display:flex;align-items:center;gap:16px;height:33px}.titleline>span:first-child{font-size:21px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chrome-icon{color:#6e7379}.chrome-icon svg{width:18px}.connection{font-size:12px;color:#7b8087}.menubar{display:flex;gap:20px;padding-top:3px;font-size:14px;color:#454a50;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:14px}.icon-button{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;flex-shrink:0}.icon-button:hover{background:#edf0f5}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e5ebf3;color:#576b89;font-weight:600;font-size:14px;flex-shrink:0;border:1px solid #dce3ee}.profile-avatar{background:#dce7ef;color:#355c72;width:36px;height:36px;border:3px solid white;box-shadow:0 0 0 1px #dce1e8}.wallet{height:38px;display:flex;gap:8px;align-items:center;border-radius:22px;padding:0 16px;background:#e1edfd;color:#174ea6;font-weight:600}.wallet svg{width:18px}.toolbar{height:42px;border-radius:24px;background:#edf2fa;margin:0 16px;display:flex;align-items:center;gap:8px;padding:0 14px;user-select:none;overflow:hidden;white-space:nowrap;color:#44474b}.toolbar>span{display:flex;align-items:center;justify-content:center;min-width:28px;height:30px;gap:8px}.toolbar svg{width:18px;height:18px}.toolbar i{height:20px;width:1px;background:#d5dce5;margin:0 3px;flex-shrink:0}.toolbar .wide{min-width:126px;justify-content:space-between;padding:0 6px}.toolbar-text{font-size:13px}.font-size{border:1px solid #aeb7c5;border-radius:3px;height:23px!important;font-size:13px}.docs-font-size-input{width:42px;height:25px;min-height:25px;padding:0 3px;border:1px solid #aeb7c5;border-radius:4px;background:#fff;color:#3c4043;text-align:center;font-size:13px;line-height:23px;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.docs-font-size-input::-webkit-outer-spin-button,.docs-font-size-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.docs-font-size-input:focus{outline:2px solid #1a73e8;outline-offset:1px}.format-bold{font:bold 19px Georgia,serif}.format-italic{font:italic 20px Georgia,serif}.format-under{text-decoration:underline;font:19px Georgia,serif}.format-color{font:18px Georgia,serif;border-bottom:3px solid #363b40;height:24px!important}.toolbar .selected-tool{background:#d3e3fd;color:#185abc;border-radius:4px}.toolbar-end{margin-left:auto}.redo svg{transform:scaleX(-1)}.workspace{display:flex;height:calc(100dvh - 128px)}.sidebar{width:var(--side);flex-shrink:0;display:flex;flex-direction:column;padding:20px 12px 18px 16px}.side-title{display:flex;align-items:center;gap:6px;font-weight:600;margin-bottom:30px}.side-title>span{flex:1}.side-label{font-size:12px;letter-spacing:.04em;color:#858b92;padding:0 18px;margin-bottom:12px}.room-item,.side-link{width:100%;display:flex;align-items:center;text-align:left;gap:12px;border-radius:24px;padding:12px 16px;margin-bottom:4px;min-height:44px}.room-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.room-item svg{width:19px;height:19px}.room-item:hover,.side-link:hover{background:#edf1f8}.room-item.active{background:#e1ecff;color:#1967d2;font-weight:600}.unread{font:600 12px Arial;background:#1a73e8;color:white;min-width:20px;border-radius:14px;padding:3px 6px;text-align:center}.sidebar-bottom{margin-top:auto;padding-top:24px}.side-link{font-size:13px;color:#5f6368}.season-label{font-size:12px;color:#8a8f96;padding:20px 16px 8px;line-height:1.8}.demo-label{margin:12px 10px 0;padding:8px 10px;border:1px dashed #c5cfde;border-radius:7px;font-size:12px;line-height:1.6;color:#64718a}#expand-sidebar{display:none;position:absolute;top:150px;left:15px;z-index:2}.sidebar-collapsed .sidebar{display:none}.sidebar-collapsed #expand-sidebar{display:grid}.sidebar-collapsed .main{padding-left:70px}.main{flex:1;min-width:0;position:relative;padding:0 64px 24px 32px;display:flex;flex-direction:column;align-items:flex-start;overflow:auto}.ruler{height:28px;min-height:28px;width:min(880px,100%);display:flex;align-items:center;justify-content:space-evenly;font-size:10px;color:#9aa0a6;position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent 9px,#ccd2db 9px,#ccd2db 10px) center bottom/100% 4px no-repeat}.paper{background:white;border:1px solid #e6e9ee;box-shadow:0 2px 8px #394a6810;width:min(880px,100%);height:calc(100% - 28px);min-height:380px;display:flex;flex-direction:column;padding:44px 70px 18px;position:relative}.paper-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{font-size:12px;color:#8a9098;margin-bottom:8px}.paper-heading h1{font-size:29px;line-height:1.4;margin:0;font-weight:700;letter-spacing:-1px}.paper-heading p{font-size:14px;color:#858b92;margin:8px 0 0;line-height:1.6}.paper-heading>.icon-button{color:#6e747b}.paper-divider{margin:22px 0 10px;height:1px;background:#f0f1f4;flex-shrink:0}.messages{overflow:auto;flex:1;min-height:0;padding:8px 2px 20px;scrollbar-width:thin;scrollbar-color:#e0e5ec transparent}.date-divider{display:flex;align-items:center;gap:12px;color:#9aa0a6;font-size:12px;justify-content:center;padding:12px 0 24px}.date-divider:before,.date-divider:after{content:"";height:1px;background:#f0f2f5;flex:1}.message{display:flex;gap:12px;margin:0 0 21px;align-items:flex-start}.message .avatar{width:34px;height:34px;font-size:12px;margin-top:2px}.message-main{max-width:83%;min-width:0}.message-meta{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:7px}.message-meta time{font-size:11px;color:#9aa0a6}.bubble{background:#f1f3f5;padding:11px 15px;border-radius:0 15px 15px 15px;line-height:1.7;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.system-message{text-align:center;font-size:12px;color:#8a9097;padding:12px;margin:8px 0;background:#f8fafc;border-radius:8px}.composer{display:flex;align-items:flex-end;border:1px solid #dadfe6;border-radius:25px;padding:5px 6px;background:white;flex-shrink:0;box-shadow:0 1px 3px #24365605;gap:4px}.composer:focus-within{border-color:#9ebce7;box-shadow:0 0 0 2px #e8f0fe}.composer textarea{border:0;resize:none;outline:none!important;flex:1;min-width:0;line-height:24px;padding:6px 4px;max-height:110px;color:#30343a;background:transparent}.composer textarea::placeholder{color:#9aa0a6}.send-button{color:#657b9a}.send-button:hover{background:#e8f0fe;color:#1a73e8}.add-button{color:#6b747e}.composer-foot{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#a0a5ab;margin:8px 8px 0}.composer-foot span:last-child{font-size:10px}.load-more{font-size:12px;color:#56759a;padding:8px}.new-messages{position:absolute;bottom:97px;left:50%;transform:translateX(-50%);min-height:40px;background:#e8f0fe;border:1px solid #c8d9f1;color:#195bad;border-radius:22px;padding:8px 16px;box-shadow:0 3px 10px #0002;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:650;z-index:4}.new-messages.jump-only{width:42px;height:42px;min-height:42px;padding:0;border-radius:50%;background:#fff;border-color:#d7dee8;color:#5f6f82}.new-messages.jump-only svg{width:20px;height:20px}.new-messages.has-new{background:#e8f0fe;color:#195bad}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#8a919a;text-align:center;padding:45px 16px;line-height:1.7;font-size:14px}.empty svg{width:33px;height:33px;color:#a0b1c8}.empty strong{color:#5f6c7e;font-weight:500}.dm-launcher{position:fixed;right:25px;bottom:22px;display:flex;align-items:center;gap:12px;padding:13px 20px;background:white;border:1px solid #dce1e8;box-shadow:0 3px 12px #253d6212;border-radius:13px;z-index:5;color:#58616d}.dm-launcher b{background:#1a73e8;color:white;font-size:12px;padding:2px 6px;border-radius:10px}.dm-panel{position:fixed;right:24px;bottom:22px;width:340px;height:480px;max-height:calc(100dvh - 145px);background:white;border:1px solid #dce2eb;border-radius:14px;box-shadow:0 8px 35px #263e5e22;z-index:10;display:flex;flex-direction:column;overflow:hidden}.dm-panel header{padding:8px 7px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:2px}.dm-panel header strong{flex:1;font-size:14px}.dm-panel header button{width:31px;height:31px}.dm-privacy{text-align:center;font-size:11px;color:#8a919a;padding:9px;background:#fafbfd}.dm-panel #dm-body{flex:1;overflow:auto;padding:15px;min-height:0}.dm-panel .message{gap:6px;margin-bottom:15px}.dm-panel .message .avatar{width:25px;height:25px;font-size:11px}.dm-panel .bubble{font-size:13px;padding:8px 11px}.dm-composer{display:flex;padding:10px;border-top:1px solid var(--line)}.dm-composer input{min-width:0;flex:1;border:0;padding:6px;outline:0}.dm-row{display:flex;text-align:left;width:100%;padding:13px 5px;gap:10px;border-bottom:1px solid #f0f2f5}.dm-row .summary{min-width:0;flex:1}.dm-row small{display:block;margin-top:6px;color:#8a919a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-mode .community-only,.document-mode #popover,.document-mode #modal,.document-mode #toast,.document-mode #auth-screen{display:none!important}.document-mode .connection{display:none}.document-mode .main{padding-left:max(40px,calc((100vw - 880px)/2));padding-right:30px}.popover{position:fixed;min-width:210px;padding:7px;background:white;border:1px solid #e0e4ea;border-radius:12px;box-shadow:0 6px 22px #35476322;z-index:40;max-width:calc(100vw - 30px);max-height:80dvh;overflow:auto}.popover button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;border-radius:6px;text-align:left;font-size:14px}.popover button:hover{background:#f1f5fc}.popover hr{border:0;border-top:1px solid #edf0f4;margin:6px 8px}.popover .profile-summary{padding:12px 13px;border-bottom:1px solid var(--line);margin-bottom:5px}.popover .profile-summary small{display:block;color:#8a919a;margin-top:6px}dialog{border:1px solid #e0e5ed;border-radius:18px;width:min(610px,calc(100vw - 32px));max-height:85dvh;padding:0;box-shadow:0 18px 80px #243d6c26;color:var(--ink)}dialog::backdrop{background:#25365045;backdrop-filter:blur(2px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 14px;border-bottom:1px solid #f0f2f6}.modal-head h2{font-size:20px;font-weight:600;margin:0}#modal-body{padding:24px 26px;overflow:auto;max-height:calc(85dvh - 78px)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border:1px solid #dce2eb;border-radius:8px;background:white;font-size:14px;min-height:42px}.button:hover{background:#f7f9fd}.button.primary{background:#1a73e8;color:white;border-color:#1a73e8}.button.primary:hover{background:#1765cc}.button.danger{color:#b3261e;border-color:#edd1cf}.button.small{padding:7px 11px;min-height:33px;font-size:13px}.full{width:100%}.muted{color:#858d98}.fine{font-size:12px;line-height:1.75;color:#87909c}.helper{background:#f5f8fd;border:1px solid #e4ebf6;padding:13px 15px;font-size:13px;line-height:1.8;color:#64758b;border-radius:8px;margin-bottom:20px}label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#59616d;margin:0 0 16px}input,select,textarea{border:1px solid #dce1e8;border-radius:7px;padding:11px 12px;background:white;color:var(--ink);min-width:0}label input,label select,label textarea{width:100%}.check-label{flex-direction:row;align-items:flex-start;font-size:12px;line-height:1.7}.check-label input{width:16px;flex-shrink:0;margin-top:3px}.field-row{display:flex;gap:14px}.field-row>*{flex:1;min-width:0}.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:22px}.form-error{font-size:13px;color:#b3261e;line-height:1.6}.tabs{display:flex;border-bottom:1px solid #e5eaf0;margin-bottom:22px;gap:24px;overflow:auto;white-space:nowrap}.tabs button{padding:10px 3px;border-bottom:2px solid transparent;color:#8a919a;font-size:14px}.tabs button.active{border-bottom-color:#1a73e8;color:#1a73e8;font-weight:600}.auth-screen{position:fixed;inset:0;background:#f5f8fcf0;backdrop-filter:blur(7px);z-index:50;display:flex;align-items:center;justify-content:center;padding:22px;overflow:auto}.auth-card{width:390px;background:white;padding:30px 36px;border:1px solid #e0e7f0;border-radius:18px;box-shadow:0 12px 50px #263e640c;margin:auto}.auth-mark{height:44px;width:38px;color:#4285f4;margin-bottom:18px}.auth-mark svg{width:38px;height:44px}.auth-card h1{font-size:24px;letter-spacing:-.7px;margin:0 0 10px}.auth-sub{font-size:13px;color:#8b929c;line-height:1.7;margin:0 0 20px}.auth-card .tabs button{flex:1}.auth-card .fine{text-align:center;margin-bottom:0}.or{display:flex;align-items:center;gap:12px;font-size:11px;color:#9da4ad;margin:23px 0 15px}.or:before,.or:after{content:"";height:1px;background:#edf0f5;flex:1}.approval-code{font-size:36px;letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums;padding:22px 10px;color:#28558a}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);max-width:min(480px,90vw);padding:13px 22px;border-radius:10px;background:#303b4b;color:white;font-size:13px;line-height:1.6;box-shadow:0 5px 20px #0002;z-index:100}.rank-row{display:flex;align-items:center;gap:14px;padding:16px 8px;border-bottom:1px solid #edf0f4}.rank-num{width:32px;text-align:center;font-size:17px;color:#72829b}.rank-name{flex:1}.rank-name small{display:block;color:#9aa3af;font-size:12px;margin-top:4px}.rank-score{font-weight:600;font-variant-numeric:tabular-nums}.balance-card{padding:24px;background:#f2f6fd;border:1px solid #e2eaf7;border-radius:12px;margin-bottom:20px}.balance-card span{color:#8390a3;font-size:13px}.balance-card strong{display:block;font-size:34px;font-weight:500;color:#2e527d;margin-top:12px}.list-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #edf0f4}.list-row small{display:block;color:#89929e;font-size:12px;margin-top:6px}.list-row .positive{color:#1a73e8}.search-input{width:100%;margin-bottom:15px}.chip{display:inline-block;padding:4px 8px;border-radius:5px;background:#f1f5fa;font-size:12px;color:#6d7d94}.attachment-preview{display:flex;align-items:center;gap:10px;font-size:12px;background:#f5f8fc;padding:8px 12px;border-radius:9px;margin-bottom:8px}.attachment-preview span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-card{display:flex;align-items:center;gap:10px;background:white;border:1px solid #dfe5ed;border-radius:8px;padding:10px 12px;margin-top:7px;max-width:100%;text-align:left}.attachment-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.attachment-card small{display:block;color:#8a95a3;margin-top:4px}.media-preview{display:block;width:100%;max-width:100%;max-height:60dvh;object-fit:contain}.invite-mini{padding:12px;margin:16px 5px;border:1px solid #dce5f1;border-radius:9px;font-size:12px;line-height:1.7}.invite-mini button{color:#1a73e8;padding:6px}.settings-note{font-size:12px;line-height:1.8;color:#8c95a1}.busy{pointer-events:none;opacity:.6}.section-caption{font-size:13px;font-weight:600;margin:23px 0 10px;color:#5e6d82}
@media(min-width:1550px){.main{padding-left:60px}.paper{padding-left:80px;padding-right:80px}}@media(max-width:1100px){:root{--side:215px}.paper{padding:35px 38px 18px}.main{padding-right:24px;padding-left:18px}.toolbar{gap:4px}.menubar{gap:15px}.connection{display:none}.dm-launcher{right:18px}}@media(max-width:760px){.header{height:76px;padding:10px 15px;gap:11px}.doc-logo{width:30px;height:38px}.doc-logo svg{width:25px}.titleline{height:27px;gap:9px}.titleline>span:first-child{font-size:17px}.chrome-icon{display:none}.menubar{font-size:12px;gap:12px;overflow:hidden}.menubar span:nth-child(n/**/+5){display:none}.header-actions{gap:4px}.header-actions>.icon-button{display:none}.wallet{padding:0 10px;font-size:12px;height:32px}.wallet svg{display:none}.toolbar{height:37px;margin:0 8px;gap:4px;padding:0 8px}.toolbar>span:nth-child(n/**/+12){display:none}.toolbar .wide{min-width:95px;font-size:11px}.toolbar i{margin:0}.toolbar>span{min-width:24px}.workspace{height:calc(100dvh - 113px)}.sidebar{display:none;position:fixed;top:113px;bottom:0;left:0;width:245px;background:var(--bg);z-index:20;box-shadow:5px 0 30px #34465b20}.mobile-side .sidebar{display:flex}.sidebar-collapsed.mobile-side .sidebar{display:flex}#expand-sidebar,.sidebar-collapsed #expand-sidebar{display:grid;top:129px;left:10px}.main,.sidebar-collapsed .main{padding:0 10px 14px}.ruler{margin-left:40px;width:calc(100% - 50px);height:27px;min-height:27px}.paper{border-radius:2px;padding:27px 20px 15px;width:100%;height:calc(100% - 27px)}.paper-heading h1{font-size:23px}.paper-heading p{font-size:12px}.paper-heading{padding-left:15px}.paper-divider{margin-top:17px}.message-main{max-width:83%}.bubble{font-size:14px;padding:9px 12px}.composer-foot span:last-child{display:none}.dm-launcher{right:20px;bottom:102px;padding:11px;border-radius:50%;box-shadow:0 3px 12px #253d6226}.dm-launcher>span{display:none}.dm-panel{right:10px;bottom:12px;width:calc(100vw - 20px);height:65dvh;max-height:calc(100dvh - 128px)}.document-mode .main{padding:0 10px 20px}.auth-card{padding:27px 25px}.auth-screen{padding:14px}.popover{min-width:200px}.composer{border-radius:20px}.message-meta{font-size:12px}.message{gap:8px}.message .avatar{width:29px;height:29px}.modal-head{padding:17px 19px 12px}#modal-body{padding:20px}.field-row{flex-direction:column;gap:0}.main .paper-heading>.icon-button{width:30px}.document-mode .ruler{margin-left:0;width:100%}}@media(prefers-reduced-motion:no-preference){.popover,.dm-panel,dialog[open]{animation:appear .13s ease-out}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
/* v0.2: actions remain visible for keyboard and touch users. */
.message-meta{display:flex;align-items:center;gap:8px;min-height:25px}.message-options{width:25px;height:25px;margin-left:6px;color:#6b7280}.message-options svg{width:18px;height:18px}.member-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.pinned-message{padding:10px 14px;margin:0 0 8px;background:#f4f7fc;border-left:3px solid #8ab4f8;border-radius:4px;font-size:12px;line-height:1.5;max-height:75px;overflow:auto;white-space:pre-wrap}.tabs{overflow-x:auto;flex-shrink:0}.tabs button{white-space:nowrap}form textarea{width:100%;box-sizing:border-box;border:1px solid #d9dde4;border-radius:6px;padding:10px;font:inherit;resize:vertical}.check-row{display:flex;align-items:center;gap:8px}.check-row input{width:auto}#dm-mute{font-size:10px;padding:4px 6px}button:focus-visible{outline:2px solid #1967d2;outline-offset:2px}.message-form input:disabled{background:#f5f5f5}

/* ===== styles/notifications.css ===== */
.live-alerts{position:fixed;top:76px;right:18px;z-index:1200;display:flex;flex-direction:column;gap:10px;width:min(390px,calc(100vw - 28px));pointer-events:none}.live-alert{display:grid;grid-template-columns:40px 1fr 34px;align-items:center;gap:10px;padding:12px 10px 12px 12px;border:1px solid #d9e2f1;border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 12px 35px rgba(30,41,59,.16);backdrop-filter:blur(12px);pointer-events:auto;cursor:pointer;animation:live-alert-in .18s ease-out}.live-alert:hover{border-color:#a7c0ed;background:#fff}.live-alert-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf3ff;color:#315fa8}.live-alert-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.live-alert-text{min-width:0;display:flex;flex-direction:column;gap:3px}.live-alert-text strong{font-size:13px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-alert-text span{font-size:12px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-alert-close{width:30px;height:30px}.notification-actions,.room-notification-line{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.room-notification-line{margin:10px 0 14px;padding:10px 12px;background:#f8fafc;border:1px solid #e5eaf2;border-radius:10px}.room-notification-line>span{margin-right:auto;font-size:12px;color:#58657a}@keyframes live-alert-in{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}@media(max-width:760px){.live-alerts{top:66px;right:10px;width:calc(100vw - 20px)}.live-alert{grid-template-columns:36px 1fr 32px}}.board-a{color:#2563eb}.board-b{color:#dc2626}.empty-card{background:#f8fafd}

/* ===== styles/docs.css ===== */
/* v0.4 Docs-inspired shell: visual chrome only; community controls remain functional. */
:root{--docs-bg:#f8fafd;--docs-toolbar:#f0f4f9;--docs-blue:#0b57d0;--docs-select:#d3e3fd;--docs-border:#c7c7c7;--docs-side:284px;--ease-standard:cubic-bezier(.2,0,0,1)}
body{background:var(--docs-bg)}
.docs-header{height:65px;padding:7px 19px 4px 19px;gap:13px;align-items:flex-start;background:var(--docs-bg)}
.docs-header .doc-logo{width:28px;height:36px;margin-top:5px;border-radius:3px;background:#4285f4;box-shadow:none}.docs-header .doc-logo svg{width:23px;height:27px;stroke-width:1.55}
.docs-header .heading{padding-top:1px}.docs-header .titleline{height:29px;gap:10px}.docs-header .titleline>span:first-child{font-size:18px;font-weight:400;color:#3c4043;max-width:300px}.docs-header .chrome-icon{width:22px;height:22px;display:grid;place-items:center;color:#5f6368}.docs-header .chrome-icon svg{width:18px;height:18px}.docs-header .connection{font-size:12px;color:#5f6368}
.docs-header .menubar{height:24px;display:flex;align-items:center;gap:18px;font-size:14px;color:#202124;overflow:hidden}.docs-header .menubar span{white-space:nowrap}
.docs-actions{margin-left:auto;height:52px;display:flex;align-items:center;gap:8px;padding-top:1px}.docs-icon{position:relative;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#3c4043}.docs-icon svg{width:23px;height:23px}.docs-icon:hover{background:#e9eef6}.docs-icon .tiny-caret{position:absolute;width:11px;height:11px;right:0;bottom:10px}
.share-pill{height:40px;min-width:108px;border-radius:22px;background:#c2e7ff;color:#001d35;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;white-space:nowrap}.share-pill:hover{background:#b3dcf7;box-shadow:0 1px 2px #0002}.share-pill svg{width:18px;height:18px}.share-pill .tiny-caret{width:12px;height:12px}
.docs-actions .wallet{height:40px;border-radius:20px;padding:0 12px;background:#e8f0fe;border:0;color:#174ea6;white-space:nowrap}.docs-actions .wallet:hover{background:#dce8fb}.docs-actions .profile-avatar{width:36px;height:36px;margin-left:3px}
.docs-toolbar{height:39px;margin:0 16px;border-radius:22px;padding:0 13px;gap:3px;background:var(--docs-toolbar);color:#3c4043;overflow:hidden;white-space:nowrap}.docs-toolbar>span{height:32px;min-width:32px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.docs-toolbar>span:hover{background:#e2e7ee}.docs-toolbar svg{width:18px;height:18px}.docs-toolbar .toolbar-search{margin-right:2px}.docs-toolbar .toolbar-text{padding:0 8px;gap:6px;min-width:64px}.docs-toolbar .toolbar-text.wide{min-width:110px}.docs-toolbar .font-name{min-width:84px;justify-content:space-between}.docs-toolbar .toolbar-text svg{width:12px;height:12px}.docs-toolbar i{height:22px;margin:0 2px;border-left:1px solid #c9cdd3}.docs-toolbar .font-size{border:1px solid #9aa0a6;border-radius:4px;min-width:34px;height:25px}.docs-toolbar .format-bold{font-weight:700}.docs-toolbar .format-italic{font-style:italic}.docs-toolbar .format-under{text-decoration:underline}.docs-toolbar .format-color{font-weight:600;border-bottom:3px solid #202124;padding-top:3px}.docs-toolbar .toolbar-end{margin-left:auto;gap:4px;min-width:55px}
.workspace{height:calc(100dvh - 104px);grid-template-columns:var(--docs-side) 1fr;background:var(--docs-bg);transition:grid-template-columns .22s var(--ease-standard)}
.docs-sidebar{width:var(--docs-side);padding:13px 15px 18px 31px;border-right:1px solid #dadce0;background:var(--docs-bg);overflow:auto;display:flex;flex-direction:column;transform:none;opacity:1;transition:transform .22s var(--ease-standard),opacity .16s ease}
.side-back{height:42px;display:flex;align-items:center;margin-left:-5px}.side-back .icon-button{width:38px;height:38px;color:#3c4043}.side-back .icon-button svg{width:24px;height:24px}
.docs-sidebar .side-title{height:46px;padding:0 11px;display:flex;align-items:center;font-size:14px;font-weight:600;color:#3c4043}.docs-sidebar .side-title>span{flex:1}.docs-sidebar .side-title .icon-button{width:34px;height:34px}.docs-sidebar .side-title .icon-button svg{width:19px;height:19px}
.docs-sidebar #room-list{display:flex;flex-direction:column;gap:4px}.room-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 32px;align-items:center;border-radius:22px}.room-row.active{background:var(--docs-select)}.room-row .room-item{min-width:0;height:40px;border-radius:22px;display:flex;align-items:center;gap:10px;padding:0 10px 0 18px;color:#3c4043;text-align:left}.room-row .room-item:hover{background:#eef3f9}.room-row.active .room-item:hover{background:transparent}.room-row .room-item svg{width:18px;height:18px;color:#185abc}.room-row .room-item>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row .room-more{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#5f6368;opacity:0;transition:opacity .12s ease}.room-row:hover .room-more,.room-row.active .room-more,.room-more:focus-visible{opacity:1}.room-row .room-more:hover{background:#c3d7f7}.room-row .room-more svg{width:18px;height:18px}.room-row .unread{position:static;min-width:19px;height:19px;border-radius:10px;padding:0 5px;display:grid;place-items:center;background:#0b57d0;color:white;font-size:10px;margin-left:auto}
.docs-sidebar .invite-mini{border:0;background:#eef3f9;margin:10px 0;padding:11px 12px;border-radius:12px}.docs-sidebar .sidebar-bottom{margin-top:auto;padding:8px 12px;color:#80868b;font-size:11px}.docs-sidebar .demo-label{padding:0;background:none;border:0}
#expand-sidebar{position:fixed;top:118px;left:10px;z-index:12;width:38px;height:38px;border-radius:50%;background:var(--docs-bg);box-shadow:0 1px 4px #3c404333;transition:opacity .18s ease,transform .22s var(--ease-standard)}
body:not(.sidebar-collapsed) #expand-sidebar{opacity:0;pointer-events:none;transform:translateX(-10px)}.sidebar-collapsed .workspace{grid-template-columns:0 1fr}.sidebar-collapsed .docs-sidebar{transform:translateX(-100%);opacity:0;pointer-events:none}
.main{padding:0 16px 14px 15px;min-width:0;background:var(--docs-bg)}.ruler{height:24px;min-height:24px;margin:0 auto;width:min(796px,calc(100% - 26px));border-bottom:0;color:#5f6368;font-size:10px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 7px 3px;position:relative;overflow:hidden}.ruler:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#c7c7c7}.ruler span{position:relative;min-width:18px;text-align:center}.ruler span:after{content:"";position:absolute;width:1px;height:5px;background:#9aa0a6;left:50%;bottom:-4px}
.paper.chat-paper{width:min(796px,100%);height:calc(100% - 24px);margin:0 auto;padding:24px 34px 18px;background:#fff;border:1px solid #c7c7c7;border-radius:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden}.messages{padding:0 0 10px;scrollbar-gutter:stable;flex:1}.message-main{max-width:min(78%,620px)}.bubble{border-radius:16px;padding:9px 12px;line-height:1.55}.message-options{opacity:.25;transition:opacity .12s ease}.message:hover .message-options,.message-options:focus-visible{opacity:1}.date-divider{margin:16px 0 12px}
.composer{min-height:46px;border:1px solid #dadce0;border-radius:23px;padding:4px 6px 4px 5px;background:#fff;box-shadow:0 1px 2px #3c404314;transition:border-color .16s ease,box-shadow .16s ease,transform .16s var(--ease-standard)}.composer:focus-within{border-color:#8ab4f8;box-shadow:0 1px 2px #3c404314,0 0 0 1px #d2e3fc}.composer textarea{padding:7px 8px;line-height:22px;min-height:36px}.composer .icon-button{width:36px;height:36px;border-radius:50%}.composer .add-button:hover,.composer .send-button:hover{background:#edf3fd}.composer-foot{display:none!important}
.dm-launcher{display:none!important}.dm-panel{right:18px;bottom:18px;border-radius:16px;box-shadow:0 8px 32px #20212430;transition:opacity .18s ease,transform .22s var(--ease-standard)}
.popover{border:1px solid #dadce0;border-radius:8px;box-shadow:0 4px 16px #20212424;padding:6px;background:#fff;transform-origin:bottom left}.popover button{min-height:38px;border-radius:4px;white-space:nowrap}.popover button:hover{background:#f1f3f4}
dialog{border:0;border-radius:16px;box-shadow:0 12px 44px #20212438;overflow:hidden;opacity:0;transform:translateY(10px) scale(.985);transition:opacity .16s ease,transform .2s var(--ease-standard),overlay .2s allow-discrete,display .2s allow-discrete}dialog[open]{opacity:1;transform:none}@starting-style{dialog[open]{opacity:0;transform:translateY(10px) scale(.985)}}dialog::backdrop{background:#2021244d;backdrop-filter:none;transition:background .18s ease}dialog[open]::backdrop{background:#2021244d}.modal-head{padding:17px 20px 12px;border-bottom:0}.modal-head h2{font-size:20px;letter-spacing:-.2px}.modal-head .icon-button{width:36px;height:36px;border-radius:50%}.modal-head .icon-button:hover{background:#f1f3f4}#modal-body{padding:12px 20px 20px}.button{min-height:36px;padding:8px 14px;border-radius:18px;white-space:nowrap;line-height:1.2;transition:background .14s ease,box-shadow .14s ease,transform .08s ease}.button:active:not(:disabled){transform:scale(.98)}.button.small{min-height:32px;padding:6px 11px}.button.primary{background:#0b57d0;border-color:#0b57d0}.button.primary:hover{background:#0842a0;box-shadow:0 1px 3px #0b57d044}.button.danger{border-radius:18px}.tabs{gap:6px;border-bottom:0;background:#f1f3f4;padding:3px;border-radius:22px;margin-bottom:16px}.tabs button{min-height:34px;padding:6px 14px;border:0;border-radius:18px;white-space:nowrap}.tabs button.active{background:#fff;color:#0b57d0;box-shadow:0 1px 2px #2021241f}.helper{padding:10px 12px;margin-bottom:14px;border:0;background:#f8fafd;border-radius:8px}.section-caption{margin:18px 0 8px}
.live-alerts{top:112px}.toast{border-radius:20px;padding:10px 18px}
@keyframes message-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:1100px){:root{--docs-side:235px}.docs-header .menubar{gap:13px}.docs-actions .docs-icon:nth-child(1),.docs-actions .docs-icon:nth-child(3){display:none}.share-pill{min-width:88px}.paper.chat-paper{padding-left:24px;padding-right:24px}}
@media(max-width:760px){.docs-header{height:62px;padding:7px 11px 4px}.docs-header .doc-logo{width:26px;height:34px}.docs-header .heading{min-width:0}.docs-header .titleline>span:first-child{font-size:16px;max-width:145px}.docs-header .menubar{gap:11px;font-size:12px}.docs-header .menubar span:nth-child(n/**/+5){display:none}.docs-actions{gap:3px}.docs-actions .share-pill{display:none}.docs-actions .wallet{height:34px;padding:0 9px}.docs-actions .wallet svg{display:none}.docs-actions .docs-icon{width:34px;height:34px}.docs-actions .profile-avatar{width:33px;height:33px}.docs-toolbar{height:39px;margin:0 7px;padding:0 7px}.docs-toolbar>span:nth-child(n/**/+10){display:none}.docs-toolbar .toolbar-text.wide{display:inline-flex!important;min-width:90px}.workspace{height:calc(100dvh - 101px);display:block}.docs-sidebar{position:fixed;top:101px;bottom:0;left:0;width:250px;z-index:30;box-shadow:4px 0 18px #20212424}.sidebar-collapsed .docs-sidebar{display:flex}.mobile-side .docs-sidebar{transform:none;opacity:1;pointer-events:auto}.docs-sidebar:not(.mobile-side *){}body:not(.mobile-side) .docs-sidebar{transform:translateX(-100%);opacity:0;pointer-events:none}#expand-sidebar,.sidebar-collapsed #expand-sidebar{top:111px;left:8px;opacity:1;pointer-events:auto;transform:none}.mobile-side #expand-sidebar{opacity:0;pointer-events:none}.main{padding:0 8px 8px}.ruler{height:22px;min-height:22px;width:calc(100% - 42px);margin-left:38px}.paper.chat-paper{height:calc(100% - 22px);width:100%;padding:18px 13px 12px;border-left:1px solid #c7c7c7;border-right:1px solid #c7c7c7}.message-main{max-width:84%}.popover{max-width:calc(100vw - 16px)}dialog{width:min(600px,calc(100vw - 20px));max-height:88dvh}.modal-head{padding:14px 15px 8px}#modal-body{padding:8px 15px 16px}.live-alerts{top:106px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}

.settings-row{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0f3}.settings-row>span{min-width:0;flex:1;color:#3c4043;font-size:14px}.settings-row>.member-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.settings-row:last-child{border-bottom:0}.settings-row .button{max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* Interaction polish: compact labels, keyboard focus and minimum hit targets. */
:where(button,[role="button"],a,input,select,textarea):focus-visible{outline:2px solid #0b57d0;outline-offset:2px}
button,.icon-button,.docs-icon,.share-pill,.room-more,.tabs button,.popover button{min-inline-size:24px;min-block-size:24px}
.button{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.member-actions .button,.game-footer-actions .button,.actions .button{min-width:0}
.compact-balance{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#174ea6}.account-id{font-size:13px;color:#5f6368;overflow-wrap:anywhere}
@media(hover:hover){.room-row,.game-card,.game-post,.rank-row{transition:background-color .16s ease,box-shadow .18s ease,transform .16s var(--ease-standard)}}

/* v0.4.2 polish fixes */
.docs-header .doc-logo{width:28px;height:36px;margin-top:5px;border-radius:0;background:transparent;display:grid;place-items:center;overflow:visible}
.docs-header .doc-logo .docs-logo-svg{width:24px;height:32px;display:block;stroke:none}
.docs-sidebar .side-title{margin:0 0 4px;padding:0 10px;height:42px}
.docs-sidebar #room-list{gap:3px}
.room-row{grid-template-columns:minmax(0,1fr) 36px;padding-right:5px}
.room-row .room-item{height:40px;padding:0 7px 0 18px}
.room-row .room-more{width:30px;height:30px;margin-right:1px}
.message{animation:none}
.message.message-enter{animation:message-in .18s var(--ease-standard) both}
.message .bubble{border-radius:16px}
@media (prefers-reduced-motion:reduce){.message.message-enter{animation:none!important}}

/* ===== styles/responsive.css ===== */
/* v0.4.1 responsive shell
   Loaded last. Keeps the Docs-like desktop composition while reflowing the
   community UI into a touch-friendly drawer / single-column layout on small screens. */
:root{
  --app-vh:100dvh;
  --docs-header-h:65px;
  --docs-toolbar-h:39px;
  --docs-chrome-h:104px;
  --docs-side-fluid:clamp(236px,20.8vw,284px);
  --paper-fluid:min(796px,calc(100vw - var(--docs-side-fluid) - 34px));
}
html,body{max-width:100%;overscroll-behavior:none}
body{height:var(--app-vh);min-height:100svh;overflow:hidden}
.docs-header,.docs-toolbar,.workspace,.main,.paper,.docs-sidebar{min-width:0}
.workspace{
  display:grid;
  grid-template-columns:var(--docs-side-fluid) minmax(0,1fr);
  height:calc(var(--app-vh) - var(--docs-chrome-h));
  min-height:0;
  transition:grid-template-columns .22s var(--ease-standard);
}
.docs-sidebar{
  width:auto;
  min-width:0;
  overflow-x:hidden;
  will-change:transform,opacity;
}
.sidebar-collapsed .workspace{grid-template-columns:0 minmax(0,1fr)}
.sidebar-collapsed .docs-sidebar{display:flex!important;transform:translateX(-104%);opacity:0;pointer-events:none}
.sidebar-collapsed .main{padding-left:15px}
.main{width:100%;height:100%;overflow:hidden;align-items:stretch}
.ruler{flex:0 0 auto}
.paper.chat-paper{width:var(--paper-fluid);max-width:100%;min-width:0;min-height:0}
.messages{min-width:0;overscroll-behavior:contain;overflow-anchor:none}
.message,.message-main,.bubble,.attachment-card,.game-post{min-width:0}
.bubble,.game-post-copy strong,.list-row,.settings-row,.helper,.fine{overflow-wrap:anywhere;word-break:break-word}
.composer{width:100%;max-width:100%}
.composer textarea{width:100%}
.docs-toolbar{overflow-x:hidden;overscroll-behavior-inline:contain}
.docs-toolbar>span,.docs-toolbar>i{flex:0 0 auto}
.docs-actions{min-width:0;flex:0 0 auto}
.docs-header .heading{min-width:100px}
.titleline>span:first-child{min-width:0}
.popover{max-width:min(360px,calc(100vw - 16px))}
dialog{max-width:calc(100vw - 24px)}
#modal-body{min-width:0}
.rank-row{min-width:0}.rank-name{min-width:0;overflow-wrap:anywhere}.rank-score{flex:0 0 auto;white-space:nowrap}
.list-row>*,.settings-row>*{min-width:0}
.media-preview{height:auto}
.sidebar-scrim{display:none}

/* Wide desktop: preserve the supplied Google Docs-like proportions. */
@media (min-width:1200px){
  :root{--docs-side-fluid:clamp(260px,20.8vw,284px);--paper-fluid:min(796px,calc(100vw - var(--docs-side-fluid) - 42px))}
  .main{padding-inline:15px 16px}
}

/* Mid-size desktop / tablet landscape. */
@media (min-width:761px) and (max-width:1199px){
  :root{--docs-side-fluid:clamp(210px,24vw,248px);--paper-fluid:min(796px,calc(100vw - var(--docs-side-fluid) - 24px))}
  .docs-header .titleline>span:first-child{max-width:clamp(150px,24vw,270px)}
  .docs-header .menubar{gap:clamp(9px,1.3vw,15px)}
  .docs-toolbar{margin-inline:10px;padding-inline:10px}
  .docs-toolbar .font-name{display:none}
  .docs-toolbar>i:nth-of-type(n/**/+3){display:none}
  .docs-actions{gap:4px}
  .docs-actions .share-pill{min-width:82px;padding-inline:12px}
  .paper.chat-paper{padding-inline:clamp(18px,2.6vw,28px)}
  .message-main{max-width:min(82%,620px)}
}

/* Small tablet: retain Docs chrome, but make room for chat. */
@media (min-width:761px) and (max-width:900px){
  :root{--docs-side-fluid:210px}
  .docs-header .menubar span:nth-child(n/**/+7){display:none}
  .docs-actions .docs-icon:nth-of-type(1),.docs-actions .docs-icon:nth-of-type(3){display:none}
  .share-pill span{display:none}.share-pill{min-width:44px;width:44px;padding:0}
  .docs-toolbar>span:nth-child(n/**/+15){display:none}
  .paper.chat-paper{padding-inline:18px}
}

/* Mobile / narrow windows: sidebar becomes a dismissible drawer, content becomes one column. */
@media (max-width:760px){
  :root{--safe-top:env(safe-area-inset-top,0px);--docs-header-h:calc(58px + var(--safe-top));--docs-toolbar-h:40px;--docs-chrome-h:calc(98px + var(--safe-top));--paper-fluid:100%}
  body{background:#fff}
  .docs-header{height:var(--docs-header-h);padding:calc(6px + var(--safe-top)) 8px 4px 10px;gap:8px;align-items:center}
  .docs-header .doc-logo{width:28px;height:34px;margin:0;flex:0 0 auto}
  .docs-header .heading{padding:0;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
  .docs-header .titleline{height:28px;gap:5px}
  .docs-header .titleline>span:first-child{font-size:16px;max-width:clamp(100px,39vw,190px)}
  .docs-header .chrome-icon,.docs-header .connection{display:none}
  .docs-header .menubar{height:20px;gap:12px;font-size:11px;overflow:hidden}
  .docs-header .menubar span:nth-child(n/**/+5){display:none}
  .docs-actions{height:46px;gap:1px;padding:0}
  .docs-actions .docs-icon{width:42px;height:42px}
  .docs-actions .docs-icon[aria-hidden="true"]{display:none}
  .docs-actions .share-pill{display:none}
  .docs-actions .wallet{height:36px;min-width:44px;padding:0 10px;font-size:12px}
  .docs-actions .wallet svg{display:none}
  .docs-actions .profile-avatar{width:38px;height:38px;margin:0 1px}

  .docs-toolbar{height:var(--docs-toolbar-h);margin:0 6px;border-radius:20px;padding:0 8px;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .docs-toolbar::-webkit-scrollbar{display:none}
  .docs-toolbar>span{min-width:36px;height:34px;padding:0 5px}
  .docs-toolbar>span:nth-child(n/**/+13),.docs-toolbar>i:nth-of-type(n/**/+3){display:none}
  .docs-toolbar .toolbar-text{min-width:58px;padding-inline:5px}
  .docs-toolbar .toolbar-text.wide{display:inline-flex!important;min-width:92px}
  .docs-toolbar .font-name{display:none}
  .docs-toolbar .toolbar-end{display:none}

  .workspace{display:block;height:calc(var(--app-vh) - var(--docs-chrome-h));position:relative}
  .main,.sidebar-collapsed .main{width:100%;height:100%;padding:0;background:#fff;overflow:hidden}
  .ruler{height:20px;min-height:20px;width:calc(100% - 42px);margin:0 4px 0 38px;padding-bottom:2px}
  .ruler span:nth-child(n/**/+11){display:none}
  .paper.chat-paper{height:calc(100% - 20px);width:100%;max-width:none;margin:0;padding:12px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));border:0;border-top:1px solid #dadce0;box-shadow:none}
  .messages{padding-bottom:8px;scrollbar-gutter:auto}
  .message{gap:8px;margin-bottom:14px}
  .message .avatar{width:30px;height:30px;flex:0 0 30px}
  .message-main,.message.mine .message-main{max-width:88%}
  .message-meta{gap:6px;margin-bottom:5px}
  .message-meta time{font-size:10px}
  .message-options{opacity:.55;width:32px;height:32px}
  .bubble{font-size:14px;line-height:1.5;padding:8px 11px}
  .date-divider{padding:8px 0 14px;margin:8px 0}
  .new-messages{bottom:72px;max-width:calc(100% - 28px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .composer{min-height:48px;border-radius:24px;padding:3px 4px;gap:1px}
  .composer textarea{min-height:40px;max-height:104px;padding:8px 5px;font-size:16px;line-height:22px}
  .composer .icon-button{width:44px;height:44px;flex:0 0 44px}

  .docs-sidebar,.sidebar-collapsed .docs-sidebar{
    display:flex!important;position:fixed;z-index:82;
    top:var(--docs-chrome-h);bottom:0;left:0;
    width:min(86vw,320px);max-width:320px;
    padding:10px 12px calc(14px + env(safe-area-inset-bottom)) 18px;
    border-right:1px solid #dadce0;background:var(--docs-bg);
    box-shadow:4px 0 22px #20212426;
    transform:translateX(-104%);opacity:0;pointer-events:none;
    transition:transform .24s var(--ease-standard),opacity .18s ease;
  }
  .mobile-side .docs-sidebar{transform:none;opacity:1;pointer-events:auto}
  .sidebar-scrim{position:fixed;z-index:81;inset:var(--docs-chrome-h) 0 0 0;border:0;background:#20212452;opacity:0;pointer-events:none;display:block;transition:opacity .18s ease;padding:0}
  .mobile-side .sidebar-scrim{opacity:1;pointer-events:auto}
  #expand-sidebar,.sidebar-collapsed #expand-sidebar{display:grid;top:calc(var(--docs-chrome-h) + 8px);left:8px;z-index:40;width:42px;height:42px;opacity:1;pointer-events:auto;transform:none;background:#fff}
  .mobile-side #expand-sidebar{opacity:0;pointer-events:none;transform:translateX(-8px)}
  .docs-sidebar .side-back .icon-button,.docs-sidebar .side-title .icon-button{width:44px;height:44px}
  .room-row{grid-template-columns:minmax(0,1fr) 44px;min-height:46px}
  .room-row .room-item{min-height:46px;height:auto;padding-left:14px}
  .room-row .room-more{width:44px;height:44px;opacity:.72}

  .popover{max-width:calc(100vw - 16px);max-height:min(70dvh,520px);border-radius:12px}
  .popover button{min-height:44px;padding-block:10px}
  dialog{width:calc(100vw - 12px);max-width:none;max-height:min(88dvh,760px);margin:auto 6px 6px;border-radius:20px;padding:0}
  #modal-body{max-height:calc(min(88dvh,760px) - 62px);padding:8px 14px calc(16px + env(safe-area-inset-bottom))}
  .modal-head{min-height:54px;padding:10px 10px 6px 16px;position:sticky;top:0;background:#fff;z-index:5}
  .modal-head h2{font-size:18px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .modal-head .icon-button{width:44px;height:44px}
  .tabs{max-width:100%;overflow-x:auto;scrollbar-width:none;padding:3px}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{min-height:40px;padding:8px 13px}
  .button{min-height:42px;max-width:100%;padding-inline:14px}
  .button.small{min-height:38px}
  input,select,textarea{font-size:16px}
  .field-row{display:grid;grid-template-columns:1fr;gap:0}
  .list-row{gap:8px}
  .settings-row{gap:9px}
  .actions{gap:7px}
  .auth-screen{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
  .auth-card{width:min(100%,390px);padding:24px clamp(18px,6vw,28px);border-radius:16px}
  .approval-code{font-size:clamp(28px,10vw,36px);letter-spacing:clamp(4px,1.7vw,8px)}
  .toast{bottom:calc(14px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}
  .live-alerts{top:calc(var(--docs-chrome-h) + 8px);right:8px;width:calc(100vw - 16px)}

  .dm-panel{inset:var(--docs-chrome-h) 0 0 0;width:100%;height:auto;max-height:none;border:0;border-radius:0;box-shadow:none;z-index:78}
  .dm-panel header{min-height:52px;padding-inline:6px}
  .dm-panel header button{width:44px;height:44px}
  .dm-panel #dm-body{padding:12px 10px}
  .dm-composer{padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
  .dm-composer input{min-height:44px}
  .dm-composer .icon-button{width:44px;height:44px}

  .rank-row{gap:9px;padding:13px 4px}
  .rank-num{width:26px;flex:0 0 26px;font-size:15px}
  .rank-score{font-size:13px}
  .rank-score small{display:none}
  .balance-card{padding:18px}
  .balance-card strong{font-size:30px}
}

/* Very narrow phones / split-screen windows: prioritize the conversation and controls. */
@media (max-width:480px){
  :root{--docs-header-h:calc(54px + var(--safe-top));--docs-toolbar-h:38px;--docs-chrome-h:calc(92px + var(--safe-top))}
  .docs-header{height:var(--docs-header-h);padding-left:8px}
  .docs-header .doc-logo{width:25px;height:31px}.docs-header .doc-logo svg{width:21px;height:25px}
  .docs-header .titleline>span:first-child{font-size:15px;max-width:38vw}
  .docs-header .menubar{display:none}
  .docs-header .heading{justify-content:center}
  .docs-actions .docs-icon{width:40px;height:40px}
  .docs-actions .wallet{padding-inline:8px;min-width:38px}
  .docs-actions .profile-avatar{width:36px;height:36px}
  .docs-toolbar{height:38px;margin-inline:4px;padding-inline:5px}
  .docs-toolbar>span{min-width:34px;height:32px}
  .docs-toolbar .toolbar-text{display:none}
  .docs-toolbar>span:nth-child(n/**/+8){display:none}
  .ruler{display:none}
  .paper.chat-paper{height:100%;border-top:1px solid #e4e7eb;padding:9px 8px calc(8px + env(safe-area-inset-bottom))}
  #expand-sidebar,.sidebar-collapsed #expand-sidebar{top:calc(var(--docs-chrome-h) + 7px);width:40px;height:40px}
  .message-main,.message.mine .message-main{max-width:91%}
  .message .avatar{width:28px;height:28px;flex-basis:28px}
  .bubble{padding:8px 10px}
  .game-post-message .message-main{max-width:94%}
  .game-post{grid-template-columns:36px minmax(0,1fr);gap:8px;padding:9px 10px}
  .game-post-icon{width:36px;height:36px}
  .game-post-action{grid-column:2;justify-content:flex-start}
  .game-post-action .button{min-width:72px}
  .list-row{align-items:flex-start;flex-wrap:wrap}
  .list-row>.button,.list-row>.member-actions{margin-left:auto}
  .settings-row{align-items:flex-start;flex-direction:column}
  .settings-row>.member-actions{width:100%;justify-content:flex-start}
  .actions{justify-content:stretch}
  .actions>.button{flex:1 1 120px}
  dialog{position:fixed;inset:auto 0 0 0;width:100vw;margin:0;border-radius:20px 20px 0 0}
  #modal-body{padding-inline:12px}
}

/* Larger touch targets on touch-first devices. */
@media (pointer:coarse){
  .icon-button,.docs-icon,.room-more{min-width:44px;min-height:44px}
  .button,.tabs button,.popover button{min-height:44px}
}

/* Short landscape screens: trim decorative chrome, keep usable content height. */
@media (max-height:520px) and (max-width:900px){
  :root{--docs-header-h:calc(48px + var(--safe-top,0px));--docs-toolbar-h:36px;--docs-chrome-h:calc(84px + var(--safe-top,0px))}
  .docs-header{height:var(--docs-header-h);padding-block:calc(3px + var(--safe-top,0px)) 3px}.docs-header .menubar{display:none}.docs-header .heading{justify-content:center}
  .docs-toolbar{height:36px}
  .paper.chat-paper{padding-top:7px}
  dialog{max-height:96dvh}
  #modal-body{max-height:calc(96dvh - 58px)}
}

@media (prefers-reduced-motion:reduce){.workspace,.docs-sidebar,.sidebar-scrim,#expand-sidebar,.dm-panel{transition-duration:.001ms!important}}

/* ===== styles/refinements-foundation.css ===== */
/* Consolidated foundational UI refinements. Rules are kept in their original cascade order. */

/* --- migrated from polish-v043.css --- */
/* v0.4.3 interaction and spacing polish. Loaded last on purpose. */

/* Compact chat bubbles: short messages should not look like wide cards. */
.message-main{width:fit-content;max-width:min(78%,620px)}
.message .bubble{display:block;width:max-content;min-width:0;max-width:100%;padding:6px 10px;line-height:1.42;border-radius:13px}
.message-meta{margin-bottom:4px;min-height:22px}
.message{margin-bottom:15px}

/* Keep the chat scrollable without showing a visual scrollbar. */
.messages,#dm-body{scrollbar-width:none;-ms-overflow-style:none}
.messages::-webkit-scrollbar,#dm-body::-webkit-scrollbar{width:0;height:0;display:none}

/* DM is deliberately visible again as a small launcher and a proper panel. */
.dm-launcher{display:grid!important;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;right:22px;bottom:20px;background:#fff;color:#4f5f73;z-index:25;box-shadow:0 4px 16px #20212424}
.dm-launcher[hidden],.dm-panel[hidden]{display:none!important}
.dm-launcher>span{display:none}

.dm-launcher b{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;font-size:10px}
.dm-panel{display:flex;right:22px;bottom:18px;width:min(380px,calc(100vw - 28px));height:min(560px,calc(100dvh - 154px));max-height:none;border-radius:16px;z-index:75;box-shadow:0 12px 40px #2021242e}
.dm-panel header{min-height:50px;padding:6px 8px;gap:2px}
.dm-panel header strong{font-size:14px;padding-left:4px}
.dm-panel #dm-mute{font-size:inherit;padding:0;width:36px;height:36px}
.dm-privacy{padding:6px 14px;font-size:11px;color:#818892;background:#fafbfc;border-bottom:1px solid #eef0f3}
.dm-row{min-height:60px}

/* Popovers feel like menus and indicate their owning control. */
.popover{transform-origin:top left}
.message-options[aria-expanded="true"],#profile-button[aria-expanded="true"],.add-button[aria-expanded="true"],#dm-mute[aria-expanded="true"]{background:#e8f0fe;color:#185abc}

/* Account identity should read as the primary information, not helper text. */
.account-identity{padding:4px 0 22px;margin-bottom:20px;border-bottom:1px solid #e7e9ed;display:flex;flex-direction:column;gap:5px}
.account-identity strong{font-size:20px;line-height:1.35;letter-spacing:-.25px;color:#202124}
.account-identity span{font-size:14px;color:#5f6368;font-variant-numeric:tabular-nums}

/* Settings and channel menus: more whitespace around dividers and controls. */
.settings-list{display:flex;flex-direction:column;margin:-4px 0}
.settings-item{width:100%;min-height:68px;padding:17px 2px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #eceff3;text-align:left;background:transparent}
.settings-item:last-child{border-bottom:0}
.settings-item>div,.settings-item>span{min-width:0;flex:1}
.settings-item strong{display:block;font-size:14px;font-weight:600;color:#2c3035;line-height:1.4}
.settings-item small{display:block;font-size:11px;color:#8a9098;margin-top:5px;line-height:1.45}
.settings-button{justify-content:flex-start;cursor:pointer;border-radius:10px;padding-left:10px;padding-right:10px;margin:2px -8px;width:calc(100% + 16px)}
.settings-button:hover{background:#f6f8fb}
.settings-button svg{width:19px;height:19px;color:#667085;margin-right:1px}
.settings-button.danger-row strong,.settings-button.danger-row svg{color:#b3261e}
.room-menu-list .settings-item:first-child{padding-top:11px;padding-bottom:17px}
.compact-select{width:auto;min-width:124px;max-width:160px;min-height:38px;padding:7px 30px 7px 10px;border:1px solid #d8dee8;border-radius:9px;background:#fff;color:#3c4043;font-size:13px}
.compact-select:focus{border-color:#8ab4f8;box-shadow:0 0 0 2px #e8f0fe;outline:0}
.switch-control{position:relative;width:42px;height:24px;flex:0 0 42px;border-radius:999px;background:#c7cbd1;transition:background .16s ease}
.switch-control span{position:absolute;width:18px;height:18px;border-radius:50%;left:3px;top:3px;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .18s cubic-bezier(.2,0,0,1)}
.switch-control.on{background:#1a73e8}
.switch-control.on span{transform:translateX(18px)}

/* Consent is concise at signup; detailed terms live in a readable modal. */
.consent-row{display:flex;align-items:flex-start;gap:8px;margin:0 0 16px}
.consent-row .check-label{margin:0;flex:1;min-width:0;gap:8px;line-height:1.55;color:#59616d}
.consent-row .check-label span{padding-top:1px}
.inline-link{flex:0 0 auto;padding:2px 0;margin-top:1px;color:#0b57d0;font-size:12px;font-weight:600;white-space:nowrap;border-radius:4px}
.inline-link:hover{text-decoration:underline}
.privacy-policy{font-size:13px;line-height:1.7;color:#4d5156}
.privacy-policy .privacy-lead{margin:0 0 20px;padding:12px 14px;border-radius:10px;background:#f6f8fc;color:#59636f}
.privacy-policy section{padding:17px 0;border-top:1px solid #eceff3}
.privacy-policy section:first-of-type{border-top:0;padding-top:0}
.privacy-policy h3{font-size:14px;color:#202124;margin:0 0 9px}
.privacy-policy p{margin:7px 0}
.privacy-policy dl{margin:0}
.privacy-policy dl>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:7px 0}
.privacy-policy dt{font-weight:600;color:#5f6368}
.privacy-policy dd{margin:0;overflow-wrap:anywhere}
.privacy-policy code{font-size:12px;background:#f1f3f4;border-radius:4px;padding:1px 4px}
.privacy-table-wrap{overflow-x:auto;margin:10px 0}
.privacy-table{width:100%;border-collapse:collapse;min-width:520px;font-size:12px}
.privacy-table th,.privacy-table td{padding:9px 10px;border:1px solid #e5e7eb;text-align:left;vertical-align:top}
.privacy-table th{background:#f8f9fa;color:#4d5156;font-weight:600}

/* Composer returns to the one-line resting height after send. */
.composer textarea{height:36px}

@media(max-width:760px){.message-main{max-width:87%}.message .bubble{padding:7px 10px}
 .dm-launcher{right:14px;bottom:78px;width:44px;height:44px}
 .dm-panel{inset:var(--docs-chrome-h,101px) 0 0 0;width:100%;height:auto;border-radius:0;max-height:none;z-index:78}
 .dm-panel header{min-height:52px}
 .settings-item{min-height:66px;padding:16px 0}
 .compact-select{min-width:118px;font-size:13px}
 .account-identity strong{font-size:19px}
 .privacy-policy{font-size:13px}.privacy-policy dl>div{grid-template-columns:1fr;gap:2px}.privacy-table-wrap{margin-left:-2px;margin-right:-2px}}

@media(max-width:380px){.settings-item{gap:10px}.compact-select{min-width:108px;padding-left:8px;padding-right:24px}
 .consent-row{flex-wrap:wrap}.inline-link{margin-left:24px}}

/* v0.4.3 room list popover and restored DM launcher. */
.room-popover-head{padding:8px 10px 7px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c4043}
.room-popover-head strong{font-size:13px;font-weight:600}
.room-popover-notify{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:42px;padding:5px 10px;color:#5f6368;font-size:13px}
.room-popover-select{min-width:90px;height:32px;padding:4px 26px 4px 8px;border:1px solid #dadce0;border-radius:7px;background:#fff;color:#3c4043;font-size:12px}
.room-popover-select:focus{outline:2px solid #d2e3fc;outline-offset:1px;border-color:#8ab4f8}
.popover .popover-danger{color:#b3261e}
.popover hr{margin:5px 4px;border:0;border-top:1px solid #eceff1}
.popover button{display:flex;align-items:center;gap:10px;width:100%;padding-inline:10px;text-align:left}
.popover button svg{width:18px;height:18px}
.room-more[aria-expanded="true"]{background:#dce8fb;color:#185abc}

.dm-privacy{display:none}
.dm-launcher{width:auto;height:42px;min-width:74px;padding:0 15px!important;border-radius:22px!important;gap:8px}
.dm-launcher>span{display:inline!important;font-size:13px;font-weight:600}
@media(max-width:760px){.dm-launcher{width:44px;min-width:44px;height:44px;padding:0!important;border-radius:50%!important;gap:0}
 .dm-launcher>span{display:none!important}}

/* --- migrated from polish-v044.css --- */
/* School Community v0.4.4 final UI polish. Loaded after v0.4.3. */

/* Icon-only DM launcher on every viewport. */
.dm-launcher,.dm-launcher:hover{
  width:44px!important;min-width:44px!important;height:44px!important;padding:0!important;
  border-radius:50%!important;display:grid!important;place-items:center!important;gap:0!important;
}
.dm-launcher[hidden]{display:none!important}
.dm-launcher>span{display:none!important}
.dm-launcher svg{width:21px;height:21px}

/* Popovers must sit above the floating DM window, and the same trigger toggles them closed. */
.popover{z-index:120!important}
.dm-panel{z-index:75}

/* Messages: compact width, a little more vertical breathing room, time beneath the bubble. */
.message{align-items:flex-start}

.message .bubble{padding:10px 12px;line-height:1.46}
.message-meta{margin-bottom:4px;min-height:21px}
.message-time{margin-top:4px;padding:0 4px;color:#8a919a;font-size:10.5px;line-height:1.25;font-variant-numeric:tabular-nums}
.message-avatar{appearance:none;border:0;padding:0;cursor:pointer;flex:0 0 auto;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
.message-avatar:hover{filter:brightness(.97);box-shadow:0 1px 4px #20212424}
.message-avatar:active{transform:scale(.96)}
.mini-profile{display:flex;align-items:center;gap:11px;padding:7px 8px 8px;min-width:180px}
.mini-profile>.avatar{flex:0 0 auto}
.mini-profile strong{display:block;font-size:13px;color:#202124}
.mini-profile small{display:block;margin-top:3px;color:#8a919a;font-size:11px}

/* Required fields outside chat/composer surfaces. */
.required-mark{display:inline;color:#d93025;font-weight:700;margin-left:2px;line-height:1;vertical-align:baseline}

/* Chat composer: true one-line vertical centering at rest. */
.composer{align-items:center}
.composer textarea{
  box-sizing:border-box;height:40px;min-height:40px;line-height:22px;padding:9px 8px!important;
  margin:0;align-self:center;overflow-y:auto;
}
.composer textarea::placeholder{line-height:22px}

/* DM list/conversation hierarchy. */
.dm-panel header{display:flex;align-items:center}
.dm-panel header #dm-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-panel header #dm-back-button[hidden]{display:none!important}
.dm-panel header #dm-mute{flex:0 0 36px}
.dm-panel header .dm-close-button{flex:0 0 36px}
.dm-directory-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;color:#747b84;font-size:11px;border-bottom:1px solid #f1f3f4}
.dm-directory-head strong{font-size:12px;color:#5f6368;font-weight:600}
.dm-row{width:100%;text-align:left;background:transparent;border:0;cursor:pointer}
.dm-row:hover{background:#f7f9fc}
.dm-row:active{background:#eef3fb}
.dm-row.dm-unavailable{opacity:.62;cursor:default}
.dm-row.dm-unavailable:hover{background:transparent}
#dm-body{min-height:0}
.dm-composer{align-items:center}
.dm-composer input{height:40px;line-height:22px;padding-block:9px}

/* Lists/forms: required marker should not disturb flex/checkbox labels. */
label>.required-mark+input,label>.required-mark+select,label>.required-mark+textarea{margin-top:0}

@media(max-width:760px){.message .bubble{padding:10px 11px}
 .message-time{font-size:10px;margin-top:3px}
 .dm-launcher{width:44px!important;min-width:44px!important;height:44px!important}
 .popover{z-index:140!important}
 .composer textarea{height:40px;min-height:40px;padding:9px 7px!important}}

@media(prefers-reduced-motion:reduce){.message-avatar{transition:none}}

/* Keep the label text and red asterisk on the same line even though form labels are column layouts. */
label:has(>.required-mark){display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:2px;row-gap:8px;align-items:center}
label:has(>.required-mark)>.required-mark{grid-column:2;grid-row:1;justify-self:start;margin:0}
label:has(>.required-mark)>input,
label:has(>.required-mark)>select,
label:has(>.required-mark)>textarea,
label:has(>.required-mark)>.password-input-shell{grid-column:1/-1;grid-row:2;width:100%;min-width:0;margin:0}

/* --- migrated from polish-v045.css --- */
/* School Community v0.4.5 — privacy scopes, DM state, profile details. */
.mini-profile-token{display:flex;align-items:center;gap:7px;margin:8px 4px 2px;padding:8px 10px;border-radius:10px;background:#f6f8fc;color:#3c4043;font-size:12px;font-weight:600}
.mini-profile-token svg{width:16px;height:16px;color:#5f6368}
.dm-disabled-note{margin:0 12px 10px;padding:9px 11px;border-radius:10px;background:#f6f8fc;color:#5f6368;font-size:12px;line-height:1.45;text-align:center}
.block-row>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;row-gap:3px;min-width:0}
.block-row>div>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.block-row>div>small{grid-column:1/-1}
.block-scope{display:inline-flex;align-items:center;min-height:21px;padding:2px 7px;border-radius:999px;background:#eef3f9;color:#3c4043;font-size:10px;font-weight:700;white-space:nowrap}
@media(max-width:600px){.mini-profile-token{margin-inline:2px}.dm-disabled-note{margin-inline:10px}.block-row{align-items:center}}

/* --- migrated from polish-v046.css --- */
/* v0.4.6 channel overflow-menu polish */
@media(min-width:761px){
  .room-row{grid-template-columns:minmax(0,1fr) 31px;padding-right:7px}
  .room-row .room-more{width:26px;height:26px;min-width:26px;min-height:26px;margin-right:2px}
  .room-row .room-more svg{width:16px;height:16px}
}
.room-row .room-more:hover{background:#eef0f2;color:#3c4043}
.room-more[aria-expanded="true"]{background:#eef0f2!important;color:#3c4043!important}
.popover:has(.room-popover-head){min-width:190px;max-width:240px}
.popover:has(.room-popover-head) .room-popover-head{padding:6px 9px 5px}
.popover:has(.room-popover-head) .room-popover-notify{min-height:38px;padding:4px 9px;gap:10px}
.popover:has(.room-popover-head) button{min-height:36px;padding:8px 9px;font-size:13px}
@media(max-width:760px){.popover:has(.room-popover-head){min-width:min(220px,calc(100vw - 24px));max-width:min(280px,calc(100vw - 16px))}}
.push-setting-status{display:flex;align-items:center;gap:8px}.push-setting-status small{display:block;color:#80868b;margin-top:2px}.push-setting-button{min-width:76px}

.mobile-chatbar{display:none}
@media(max-width:760px){.dm-launcher{display:none!important}
  :root{--mobile-chatbar-h:54px;--docs-chrome-h:var(--mobile-chatbar-h)}
  .docs-header,.docs-toolbar{display:none!important}
  .mobile-chatbar{display:flex;height:var(--mobile-chatbar-h);align-items:center;gap:8px;padding:calc(4px + env(safe-area-inset-top)) 8px 4px;border-bottom:1px solid #e6e9ef;background:#fff;position:relative;z-index:70}
  .mobile-chatbar .icon-button{width:44px;height:44px;flex:0 0 44px}.mobile-chatbar strong{flex:1;min-width:0;text-align:center;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#202124}
  .workspace{height:calc(var(--app-vh) - var(--mobile-chatbar-h));}
  .ruler{display:none}.paper.chat-paper{height:100%;border-top:0;padding-top:8px}
  .docs-sidebar,.sidebar-collapsed .docs-sidebar{top:var(--mobile-chatbar-h)}
  .sidebar-scrim{inset:var(--mobile-chatbar-h) 0 0 0}
  #expand-sidebar{display:none!important}
  .dm-panel{inset:var(--mobile-chatbar-h) 0 0 0}
  .live-alerts{top:calc(var(--mobile-chatbar-h) + 8px)}}.catch-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px}.catch-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.catch-head small,.catch-word small{display:block;color:#80868b;font-size:11px}.catch-head strong,.catch-word strong{display:block;margin-top:3px}.catch-word{text-align:right}.hidden-word{font-size:28px;color:#9aa0a6}.draw-toolbar{display:flex;align-items:center;gap:6px;margin:7px 0;overflow-x:auto;padding:2px;scrollbar-width:none}.draw-toolbar::-webkit-scrollbar{display:none}.draw-toolbar button{height:32px;min-width:32px;border:1px solid #dadce0;border-radius:16px;padding:0 10px;white-space:nowrap;background:#fff;font-size:11px}.draw-toolbar button[data-draw-color]{width:27px;min-width:27px;height:27px;padding:0;border-radius:50%;background:var(--draw,#202124)}.draw-toolbar button[data-draw-color="#202124"]{background:#202124}.draw-toolbar button[data-draw-color="#1a73e8"]{background:#1a73e8}.draw-toolbar button[data-draw-color="#d93025"]{background:#d93025}.draw-toolbar button[data-draw-color="#188038"]{background:#188038}.draw-toolbar button.active{box-shadow:0 0 0 2px #fff,0 0 0 4px #8ab4f8}.catch-guesses{margin-top:10px;max-height:150px;overflow:auto;scrollbar-width:none}.catch-guesses::-webkit-scrollbar{display:none}.catch-guesses>div{display:flex;gap:8px;padding:6px 2px;font-size:12px}.catch-guesses strong{min-width:65px;color:#5f6368}
@media(max-width:760px){.party-layout,.catch-layout{grid-template-columns:1fr}.catch-layout aside{border-top:1px solid #edf0f4;padding-top:8px}}.stake-label{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#3c4043}.stake-options{display:flex;gap:4px}.stake-options button{min-width:42px;height:32px;padding:0 9px;border-radius:16px;border:1px solid #dadce0;background:#fff;font-size:12px;font-weight:600}.stake-options button:hover{background:#f1f3f4}.stake-options button.active{background:#e8f0fe;border-color:#aecbfa;color:#0b57d0}.challenge-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.challenge-chips span{display:inline-flex;align-items:center;gap:4px;min-height:23px;padding:0 7px;border-radius:12px;background:#f1f3f4;color:#5f6368;font-size:10px;font-weight:600}.challenge-chips span.gain{background:#e6f4ea;color:#137333}.challenge-chips svg{width:13px;height:13px}.key-pair b{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;border:1px solid #cfd3d8;background:#fff;border-radius:4px;padding:2px 5px}.texture-control{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border-radius:10px;background:#202124d9;color:#fff;font-size:9px;font-weight:700;white-space:nowrap;pointer-events:none}.texture-control svg{width:13px;height:13px}.bell-control{bottom:-27px;background:#174ea6}
@media(max-width:760px){.stake-options{order:3;width:100%;display:grid;grid-template-columns:repeat(4,1fr)}.stake-options button{width:100%;min-width:0}.texture-control{font-size:8px}}
@media(max-width:420px){.challenge-chips span{font-size:9px}}

/* --- migrated from polish-v052.css --- */
/* v0.5.2 — compact stake slider, scoped modal scrolling, unified game results */

/* List-heavy modals keep controls still and scroll only the repeated items. */
dialog:has(.modal-section-shell){height:min(680px,calc(100dvh - 34px));max-height:none}
dialog:has(.modal-section-shell) #modal-body{height:calc(100% - 65px);min-height:0;overflow:hidden;padding-bottom:18px}
.modal-section-shell{height:100%;min-height:0;display:flex;flex-direction:column;gap:12px}
.modal-section-fixed{flex:0 0 auto}
.modal-item-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-width:thin;scrollbar-color:#cbd2dc transparent}
.modal-item-scroll::-webkit-scrollbar,.game-browser-scroll::-webkit-scrollbar,.party-browser-scroll::-webkit-scrollbar{width:7px}
.modal-item-scroll::-webkit-scrollbar-thumb,.game-browser-scroll::-webkit-scrollbar-thumb,.party-browser-scroll::-webkit-scrollbar-thumb{background:#cbd2dc;border-radius:8px}
.modal-item-scroll::-webkit-scrollbar-track,.game-browser-scroll::-webkit-scrollbar-track,.party-browser-scroll::-webkit-scrollbar-track{background:transparent}
.directory-shell .search-input{margin:0;width:100%}.wallet-shell .section-caption{margin-bottom:0}.rank-shell .modal-section-fixed label{margin:0}
.stake-slider-label{width:58px;display:flex;align-items:center;gap:5px;color:#174ea6;white-space:nowrap}.stake-slider-label svg{width:16px;height:16px}.stake-slider-label strong{font-size:12px}
.stake-slider-track{position:relative;flex:1;min-width:150px;padding:0 4px 13px}
.stake-slider-track input{display:block;width:100%;height:20px;margin:0;appearance:none;background:transparent;cursor:pointer;accent-color:#1a73e8}
.stake-slider-track input::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,#a8c7fa,#1a73e8)}
.stake-slider-track input::-webkit-slider-thumb{appearance:none;width:17px;height:17px;margin-top:-6.5px;border-radius:50%;border:3px solid #fff;background:#1a73e8;box-shadow:0 0 0 1px #8ab4f8,0 1px 3px #2021242a}
.stake-slider-track input::-moz-range-track{height:4px;border:0;border-radius:4px;background:#a8c7fa}.stake-slider-track input::-moz-range-progress{height:4px;border-radius:4px;background:#1a73e8}.stake-slider-track input::-moz-range-thumb{width:13px;height:13px;border:3px solid #fff;border-radius:50%;background:#1a73e8;box-shadow:0 0 0 1px #8ab4f8}
.stake-slider-values{position:absolute;left:4px;right:4px;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none;color:#9aa0a6;font-size:9px;font-variant-numeric:tabular-nums}.stake-slider-values span{text-align:center}.stake-slider-values span:first-child{text-align:left}.stake-slider-values span:last-child{text-align:right}.stake-slider-values span.active{color:#174ea6;font-weight:700}
.finish-kicker{font-size:11px;font-weight:700;letter-spacing:.08em;color:#7a828d}.finish-score{margin-top:5px;font-size:clamp(46px,8vw,72px);line-height:1;color:#202124;font-variant-numeric:tabular-nums}.finish-score-label{margin-top:7px;font-size:12px;color:#80868b}.finish-title{font-size:clamp(29px,5vw,44px);letter-spacing:-.04em;line-height:1.15}.finish-reward{display:inline-flex;align-items:center;gap:5px;margin-top:11px;padding:7px 10px;border-radius:14px;background:#e6f4ea;color:#137333;font-size:11px;font-weight:700}.finish-reward svg{width:15px;height:15px}.finish-token{margin-top:15px;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.finish-token.gain{color:#137333}.finish-token.loss{color:#b3261e}.finish-reason{margin-top:8px;color:#80868b;max-width:310px;line-height:1.45}

/* A real one-token-per-point stream. 10/20/50/100 (and survival extras) remain lightweight. */
.token-animation-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.token-particle{position:absolute;left:50%;top:58%;width:24px;height:24px;margin:-12px;color:#f9ab00;filter:drop-shadow(0 2px 3px #5f461033)}.token-particle svg{width:24px;height:24px;stroke-width:2}.token-particle.gain{animation:token-rise 1.05s cubic-bezier(.15,.8,.25,1) forwards}.token-particle.loss{animation:token-fall .9s cubic-bezier(.35,.05,.8,.2) forwards;color:#9aa0a6}
@keyframes token-rise{0%{opacity:0;transform:translate(calc(var(--token-x)*.2),35px) rotate(0) scale(.55)}15%{opacity:1}100%{opacity:0;transform:translate(var(--token-x),-230px) rotate(var(--token-rot)) scale(1.05)}}
@keyframes token-fall{0%{opacity:0;transform:translate(var(--token-x),-70px) rotate(0) scale(1)}15%{opacity:1}100%{opacity:0;transform:translate(calc(var(--token-x)*1.3),220px) rotate(var(--token-rot)) scale(.65)}}
@keyframes finish-fade{from{opacity:0}to{opacity:1}}@keyframes finish-rise{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}

@media(max-width:760px){dialog:has(.modal-section-shell),dialog:has(.game-browser-shell),dialog:has(.party-browser-shell){height:min(88dvh,760px);max-height:none}
 dialog:has(.modal-section-shell) #modal-body,dialog:has(.game-browser-shell) #modal-body,dialog:has(.party-browser-shell) #modal-body{height:calc(100% - 58px);max-height:none}.stake-slider-label{width:48px}.stake-slider-track{min-width:120px}}
@media(max-width:420px){.stake-slider-label{width:42px}.stake-slider-label>svg{display:none}.stake-slider-track{min-width:105px}.finish-title{font-size:30px}.finish-score{font-size:54px}}
@media(prefers-reduced-motion:reduce){.game-finish-overlay,.game-finish-card,.token-particle{animation:none!important}.token-animation-layer{display:none}}.empty-card{background:#fbfcfe}

/* --- migrated from polish-v055.css --- */
/* v0.5.5 — Docs editing, segmented wager control, compact game polish */
.docs-toolbar .docs-tool{border:0;background:transparent;color:inherit;height:32px;min-width:32px;padding:0 5px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto}
.docs-toolbar .docs-tool:hover{background:#e2e7ee}.docs-toolbar .docs-tool:active{background:#d8dee7}.docs-toolbar .docs-tool svg{width:18px;height:18px}
.docs-toolbar .docs-tool.font-size{height:25px;min-width:34px;border:1px solid #9aa0a6;border-radius:4px;font-size:12px}
body:not(.document-mode) .docs-toolbar [data-doc-command]{cursor:default}.document-mode .docs-toolbar [data-doc-command]{cursor:pointer}
@media(max-width:760px){.docs-toolbar .docs-tool{min-width:36px;height:34px}}

/* --- migrated from polish-v057.css --- */
/* v0.5.7: Docs tab popover + clearer token stake switch */
.document-mode #popover:not([hidden]){display:block!important}
.document-mode #popover{z-index:180!important}

/* --- v0.5.9: Docs formatting state, centered document, records and game controls --- */
.document-mode .docs-toolbar .docs-tool.selected-tool,
.document-mode .docs-toolbar .docs-tool[aria-pressed="true"]{background:#d3e3fd;color:#185abc;box-shadow:inset 0 0 0 1px #b7d0f8;border-radius:5px}
.document-mode .docs-toolbar .docs-tool.selected-tool:hover,
.document-mode .docs-toolbar .docs-tool[aria-pressed="true"]:hover{background:#c5dafb}
.docs-toolbar .font-name{min-width:82px;max-width:118px}.docs-toolbar .font-name #doc-font-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* In Docs mode the generic .community-only rule must not hide the sidebar restore control. */
@media(min-width:761px){
 body.document-mode.sidebar-collapsed #expand-sidebar{display:grid!important;opacity:1;pointer-events:auto;transform:none}
 body.document-mode:not(.sidebar-collapsed) #expand-sidebar{display:none!important}
 body.document-mode .main{padding:0 24px 24px!important;align-items:center}
 body.document-mode .ruler,body.document-mode .document-paper{margin-left:auto!important;margin-right:auto!important}
}

/* --- v0.5.10: empty Docs formatting + calmer single-game results --- */
.finish-server-record{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(340px,100%);margin-top:22px;padding:12px 14px;border-radius:14px;background:#f4f6f9;color:#5f6368}
.finish-record-holder{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;color:#3c4043;text-align:left}
.finish-record-best{display:inline-flex;align-items:baseline;gap:7px;flex:0 0 auto;font-size:14px;font-weight:600;color:#6f7781;white-space:nowrap}
.finish-record-best b{font-size:19px;color:#202124;font-variant-numeric:tabular-nums}
@media(max-width:430px){.finish-server-record{gap:10px;padding-inline:11px}.finish-record-holder{font-size:14px}.finish-record-best{font-size:12px;gap:5px}.finish-record-best b{font-size:17px}}.compact-report{padding:7px 8px;margin-bottom:5px}.compact-report .list-row{padding:0 0 5px;border:0}.compact-report .list-row small{margin:0}.compact-report .actions{margin-top:2px}.compact-log{padding:7px 2px}.empty-compact{padding:18px 6px;text-align:center;color:#8a919a;font-size:12px}
.settings-list .settings-item{min-height:52px;padding:11px 2px}.settings-list .settings-item>strong{flex:1}.push-setting-status{display:flex;align-items:center;gap:8px;flex:1}.push-setting-status small{margin:0!important}
.pending-user{text-align:center;color:#697386;font-size:12px;margin:0 0 16px}.suspension-reason{padding:10px 12px;margin:0 0 14px;border-radius:8px;background:#f7f8fa;color:#5f6368}

/* v0.5.13 — compact channel administration */
.room-row.room-disabled .room-item{opacity:.58}.room-state-badge{margin-left:auto;padding:2px 5px;border-radius:999px;background:#eef0f3;color:#6f7782;font-size:9px;font-weight:600;line-height:1.2}.room-row.room-disabled .unread{margin-left:4px}
/* Central Chat / Docs / Game state guards */
body[data-view="chat"] #document-paper,body[data-view="chat"] #game-stage{display:none!important}
body[data-view="game"] #chat-paper,body[data-view="game"] #document-paper{display:none!important}
body[data-view="game"] .dm-panel,body[data-view="game"] #popover{display:none!important}
#modal>.toast{z-index:2147483647;bottom:22px}

/* v0.5.16 navigation and composer stability */
.composer.busy,.dm-composer.busy{pointer-events:auto;opacity:1}.composer.busy .send-button,.dm-composer.busy .send-button{pointer-events:none;opacity:.45}

/* v0.5.16 result sync state */
.finish-sync-state{margin-top:10px;font-size:12px;font-weight:600;color:#6b7280}
.finish-sync-state.error{color:#b3261e}

/* v0.5.21 — faster overlays, single-user admin workspace, optimistic messaging */
.popover{contain:layout style paint;will-change:left,top}
dialog{transition:opacity .08s ease,transform .08s ease,overlay .08s allow-discrete,display .08s allow-discrete;transform:translateY(3px) scale(.997)}
@starting-style{dialog[open]{opacity:0;transform:translateY(3px) scale(.997)}}
.modal-loading{min-height:120px;display:grid;place-items:center;color:#7b8490;font-size:13px}
.message-pending{opacity:.76}.message-send-state{margin-left:7px;color:#8a919a;font-size:10px}.message-time{display:flex;align-items:center;justify-content:flex-end;gap:4px}
dialog.modal-content-update{transition:none!important;transform:none!important;opacity:1!important}

/* v0.5.24 — compact game surfaces, stable loading, DM badge, channel-admin workspace */
.dm-row{align-items:center}
.dm-row>.unread{align-self:center;flex:0 0 auto;display:inline-grid;place-items:center;min-width:21px;height:21px;line-height:21px;padding:0 6px;border-radius:999px}
.live-alert{min-height:58px;max-height:76px;padding-block:9px}.live-alert-icon{width:34px;height:34px}.live-alert-text{gap:2px}.live-alert-text strong{font-size:12px}.live-alert-text span{font-size:11px}
.surface-loading{width:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#77818d;text-align:center}.surface-loading strong{font-size:12px;font-weight:600}.surface-loading-spinner{width:23px;height:23px;border:2px solid #d7e0eb;border-top-color:#1a73e8;border-radius:50%;animation:surface-spin .7s linear infinite}.chat-loading{height:100%;min-height:220px}@keyframes surface-spin{to{transform:rotate(360deg)}}.party-layout,.catch-layout{gap:10px}

.message-formatbar{display:flex;align-items:center;gap:3px;margin:0 7px 5px;padding:2px 6px;color:#788392;font-size:10px;flex-shrink:0}
.message-formatbar button{width:28px;height:26px;border-radius:6px;color:#566273}.message-formatbar button:hover{background:#eef3fa}.message-formatbar span{margin-left:4px}
.reply-preview{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 5px 6px;padding:8px 10px;border-left:3px solid #6b9ee8;border-radius:8px;background:#f5f8fc;color:#667085;font-size:11px;flex-shrink:0}
.reply-preview>div{min-width:0}.reply-preview strong,.reply-preview span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-preview strong{color:#355b91;margin-bottom:2px}
.message-reply-ref{width:100%;display:block;text-align:left;margin:0 0 7px;padding:6px 8px;border-left:3px solid #8eadd7;background:rgba(255,255,255,.54);border-radius:5px;font-size:10px}.message-reply-ref strong,.message-reply-ref span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-reply-ref span{color:#6c7785;margin-top:2px}
.message-rich-body{white-space:normal;overflow-wrap:anywhere}.message-link{color:#1967d2;text-decoration:underline;text-underline-offset:2px;word-break:break-all}
.link-preview{display:flex;flex-direction:column;gap:3px;margin-top:9px;padding:9px 11px;border:1px solid #dce5ef;border-radius:9px;background:#fff;text-decoration:none;color:#354052;overflow:hidden}.link-preview-domain{font-size:9px;color:#6c7d93}.link-preview strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-preview small{font-size:9px;color:#8792a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-reactions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:5px}.reaction-chip,.reaction-add{min-height:25px;padding:3px 7px;border:1px solid #dfe5ec;border-radius:999px;background:#fff;font-size:11px}.reaction-chip b{font-size:9px}.reaction-add{width:27px;padding:0;color:#697587}.reaction-picker{display:flex;gap:4px;padding:4px}.reaction-picker button{font-size:21px;width:37px;height:37px;border-radius:9px}.reaction-picker button:hover{background:#eef3f8}
.message-highlight .bubble{box-shadow:0 0 0 3px #b8cff3;transition:box-shadow .2s ease}
.chat-drop-overlay{position:absolute;inset:10px;z-index:30;display:grid;place-items:center;border:2px dashed #77a6eb;border-radius:14px;background:rgba(239,246,255,.92);color:#315f9f;font-weight:700;pointer-events:none}

.file-preview-content{display:grid;place-items:center;min-height:180px;max-height:58dvh;overflow:auto;border:1px solid #e3e8ef;border-radius:12px;background:#f8fafc}.file-preview-content .media-preview{max-width:100%;max-height:56dvh}.pdf-preview{width:min(820px,78vw);height:min(620px,58dvh);border:0;background:#fff}.generic-file-preview{display:flex;flex-direction:column;align-items:center;gap:10px;padding:35px;color:#667085}.generic-file-preview svg{width:42px;height:42px}.file-preview-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.file-preview-meta span{display:flex;gap:5px;padding:6px 8px;border-radius:8px;background:#f5f7fa;color:#667085;font-size:10px}.file-preview-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.native-switch-ui{width:40px;height:22px;border-radius:999px;background:#c5cad1;position:relative;transition:.16s}.native-switch-ui:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:.16s}

@media(max-width:760px){.message-formatbar span{display:none}.pdf-preview{width:100%;height:50dvh}.file-preview-actions>.button{flex:1}}


/* v0.5.26 compact chat/game pass */
.message{margin-bottom:12px;gap:9px}
.message .avatar{width:30px;height:30px;font-size:11px;margin-top:1px}
.message-meta{margin-bottom:3px}
.bubble{padding:7px 10px;line-height:1.45}
.message-time{display:flex;align-items:center;gap:5px;margin-top:2px;padding:0 2px;min-height:22px;flex-wrap:wrap}
.message-reactions{display:inline-flex;align-items:center;gap:3px;flex-wrap:wrap;margin:0}
.reaction-chip,.reaction-add{min-height:20px;height:20px;padding:1px 5px;font-size:10px;line-height:1;border-radius:999px}
.reaction-chip b{font-size:8px}.reaction-add{width:22px;padding:0}
.message-formatbar{display:none!important}

/* chat uses the existing top B/I/U toolbar buttons */
body[data-view="chat"] .docs-toolbar [data-doc-command="bold"],
body[data-view="chat"] .docs-toolbar [data-doc-command="italic"],
body[data-view="chat"] .docs-toolbar [data-doc-command="underline"]{opacity:1;cursor:pointer}

/* 1366x768 school notebook target: keep every game readable without vertical scrolling. */
@media (min-width:761px) and (max-height:820px) and (pointer:fine){
  .paper.game-stage{height:calc(100% - 20px);min-height:0}
  .game-stage-header{height:46px;flex-basis:46px;padding:0 10px}
  .game-stage-header strong{font-size:15px}.game-stage-header small{font-size:9px}.game-stage-chip{min-height:24px;font-size:10px}
  .game-stage-body{padding:6px 10px 8px;overflow:hidden}
  .single-stage,.match-shell,.party-shell,.party-room{width:min(720px,100%);min-height:0}
  .game-browser-shell{gap:7px}.game-grid{gap:7px}.game-card-select{min-height:62px;padding:7px 9px}.game-card-icon{width:36px;height:36px}
  .match-meta{padding:5px 8px;gap:6px}.match-meta strong{font-size:12px}.match-meta small{font-size:9px}
  .game-control-row,.game-footer-actions{min-height:28px;margin:2px 0}.game-status-line{min-height:24px;font-size:10px;margin:2px 0}
  .flip-board{width:min(310px,48dvh,100%);gap:2px;margin:2px auto}.flip-score,.flip-score.live{font-size:16px;margin:0}
  .halli-table{max-width:580px;margin:2px auto;gap:7px}.halli-card{height:88px}.halli-bell{width:50px;height:50px}.halli-card strong{font-size:22px}
  .survival-panel{gap:6px}.survival-button{width:100px;height:100px;font-size:14px}.survival-probability strong{font-size:24px}.survival-pot-card{padding:6px 10px}
  .pong-score{font-size:16px;margin:0}.pong-canvas{width:min(540px,100%);height:auto;max-height:350px;margin:0 auto}.match-shell:has(.pong-canvas){max-width:590px}
  .single-stage .game-play-head,.single-stage .single-record-strip{width:min(620px,100%)}
  .single-stage .game-canvas:not(.snake-canvas){max-width:610px;max-height:350px}
  .single-stage .snake-canvas{width:min(400px,calc(100vw - 360px),400px);max-width:400px;max-height:400px}
  .single-game-toolbar{margin-bottom:3px}.single-record-strip{padding:5px 8px;font-size:10px}.game-play-head{padding:4px 8px}
  .party-roster,.party-settings,.party-chat{max-height:260px}
}

/* v0.5.27 — persistent game workspace, centered labels, turn-game tension */
body[data-view="game"] .dm-panel:not([hidden]){display:flex!important}
body[data-view="game"] #popover:not([hidden]){display:block!important}

/* Compact labels/badges should always center their text and icons vertically. */
.chip,.room-state-badge,.party-count,.party-host-badge,.party-ready-badge,.game-stage-chip,.match-wager,.game-control-hint,.game-post-state,.challenge-chips>span,.file-preview-meta>span,.admin-user-status,.block-scope,.unread,.compact-balance,.game-outcome span,.game-outcome b{
  display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1.15
}
.chip svg,.match-wager svg,.game-control-hint svg,.challenge-chips svg,.file-preview-meta svg{flex:0 0 auto;align-self:center}
@keyframes turn-pulse{50%{box-shadow:0 0 0 7px rgba(66,133,244,0)}}@keyframes turn-sheen{70%,100%{transform:translateX(100%)}}.sea-cell{min-width:0;min-height:0;border:0;border-radius:2px;background:#d9ecf8;color:#be3028;font-weight:900;font-size:11px;padding:0}.sea-cell:nth-child(odd){background:#d3e8f5}.sea-cell.ship{background:#6b7888}.sea-cell.hit{background:#f57b70;color:#7a130d;animation:hit-flash .3s ease-out}.sea-cell.miss{background:#f7fbff;color:#5791be}.pulse-action:not(:disabled){box-shadow:0 0 0 0 rgba(26,115,232,.25);animation:button-pulse 1.5s infinite}
@keyframes piece-pop{from{transform:scale(.45);opacity:.2}to{transform:scale(1);opacity:1}}@keyframes hit-flash{50%{transform:scale(1.2);background:#ffca55}}@keyframes button-pulse{70%{box-shadow:0 0 0 9px rgba(26,115,232,0)}}

@media(max-width:760px){body:is(.keyboard-opening,.keyboard-open){overflow:hidden;overscroll-behavior:none}
  body:is(.keyboard-opening,.keyboard-open) .mobile-chatbar{position:fixed;top:var(--vv-top,0px);left:0;right:0;z-index:90;height:48px;--mobile-chatbar-h:48px}
  body:is(.keyboard-opening,.keyboard-open) .workspace{position:fixed;top:calc(var(--vv-top,0px) + 48px);left:0;right:0;height:calc(var(--app-vh) - 48px)!important;overflow:hidden;transform:none!important}
  body:is(.keyboard-opening,.keyboard-open) .main{height:100%!important;min-height:0;overflow:hidden}
  body:is(.keyboard-opening,.keyboard-open) .paper.chat-paper{height:100%!important;min-height:0;padding-top:4px;padding-bottom:4px}
  body:is(.keyboard-opening,.keyboard-open) .paper.chat-paper .paper-heading,body:is(.keyboard-opening,.keyboard-open) .paper.chat-paper .paper-divider,body:is(.keyboard-opening,.keyboard-open) .composer-foot{display:none!important}
  body:is(.keyboard-opening,.keyboard-open) .messages{min-height:72px;padding-top:3px;padding-bottom:3px;overscroll-behavior:contain}
  body:is(.keyboard-opening,.keyboard-open) .composer{flex:0 0 auto;margin-top:3px}
  body:is(.keyboard-opening,.keyboard-open) .new-messages{bottom:58px}
  body:is(.keyboard-opening,.keyboard-open) .dm-panel{position:fixed;inset:calc(var(--vv-top,0px) + 48px) 0 0 0!important;height:calc(var(--app-vh) - 48px)!important}
  body:is(.keyboard-opening,.keyboard-open) .docs-sidebar{top:calc(var(--vv-top,0px) + 48px)!important;height:calc(var(--app-vh) - 48px)}
  body:is(.keyboard-opening,.keyboard-open) .sidebar-scrim{inset:calc(var(--vv-top,0px) + 48px) 0 0 0!important}}
.time2048-stage{max-width:620px}.time2048-clock{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:96px;padding:5px 9px;border-radius:12px;background:#f7f3ea;border:1px solid #eadfc9}.time2048-clock span{font-size:9px;color:#7d7568}.time2048-clock strong{font-size:16px;font-variant-numeric:tabular-nums;color:#5b4931}.time2048-board{width:min(420px,55dvh,calc(100vw - 40px));aspect-ratio:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:8px;padding:9px;border-radius:16px;background:#b9aa96;box-shadow:0 8px 24px rgba(70,55,34,.15);touch-action:none;outline:none}.time2048-cell{display:grid;place-items:center;border-radius:10px;background:#cdc1b4;color:#776e65;font-size:clamp(20px,4.5vmin,38px);font-weight:800;letter-spacing:-.04em;box-shadow:inset 0 1px 0 rgba(255,255,255,.25);animation:none;transition:none}.time2048-cell.v2{background:#eee4da}.time2048-cell.v4{background:#ede0c8}.time2048-cell.v8{background:#f2b179;color:#fff}.time2048-cell.v16{background:#f59563;color:#fff}.time2048-cell.v32{background:#f67c5f;color:#fff}.time2048-cell.v64{background:#f65e3b;color:#fff}.time2048-cell.v128{background:#edcf72;color:#fff;font-size:clamp(18px,4vmin,32px)}.time2048-cell.v256{background:#edcc61;color:#fff;font-size:clamp(18px,4vmin,32px)}.time2048-cell.v512{background:#edc850;color:#fff;font-size:clamp(18px,4vmin,32px)}.time2048-cell.v1024{background:#edc53f;color:#fff;font-size:clamp(15px,3.5vmin,27px)}.time2048-cell.v2048,.time2048-cell[class*="v4096"],.time2048-cell[class*="v8192"]{background:#edc22e;color:#fff;font-size:clamp(15px,3.5vmin,27px)}.time2048-help{margin-top:7px;color:#747b85;font-size:10px;text-align:center}.q-cell{position:relative;z-index:1;display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:0;border-radius:7px;background:#fff;color:#fff;font-size:10px;font-weight:800;box-shadow:0 1px 2px rgba(26,48,75,.12);transition:transform .1s,background .1s}.q-cell:not(:disabled):hover{background:#fff4bd;transform:scale(.92)}.q-cell.pawn-a::after,.q-cell.pawn-b::after{content:"";width:58%;height:58%;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.25);animation:piece-pop .16s ease-out}.q-cell.pawn-a::after{background:linear-gradient(#6fa3ef,#2f6bc5)}.q-cell.pawn-b::after{background:linear-gradient(#f58d86,#cf4c44)}.q-wall{position:absolute;z-index:4;border-radius:999px;background:#6c4b2c;box-shadow:0 1px 3px rgba(54,32,15,.28);pointer-events:none}.q-wall.horizontal{left:calc((var(--c) * 100%) / 7 + 8px);top:calc(((var(--r) + 1) * 100%) / 7 - 3px);width:calc((2 * 100%) / 7 - 11px);height:6px}.q-wall.vertical{left:calc(((var(--c) + 1) * 100%) / 7 - 3px);top:calc((var(--r) * 100%) / 7 + 8px);width:6px;height:calc((2 * 100%) / 7 - 11px)}.q-wall-anchor{position:absolute;z-index:6;left:calc(((var(--c) + 1) * 100%) / 7 - 8px);top:calc(((var(--r) + 1) * 100%) / 7 - 8px);width:16px;height:16px;padding:0;border:1px dashed #8ca0b6;border-radius:50%;background:rgba(255,255,255,.82);opacity:.5}.q-wall-anchor:not(:disabled):hover{opacity:1;background:#ffd766;border-color:#9a7214}
@media(max-width:1366px) and (max-height:800px){.time2048-board{width:min(355px,48dvh)}}
@media(max-width:760px){.time2048-clock{min-width:82px}.time2048-board{width:min(calc(100vw - 28px),52dvh);gap:6px;padding:7px}}
.challenge-chips>span.cost{background:#e8f0fe;color:#174ea6}
.challenge-chips>span.pot{background:#fff4e5;color:#8a5b16}
.challenge-chips>span.loss{background:#fce8e6;color:#b3261e}
.challenge-chips>span.muted{background:#f1f3f4;color:#7a818b}

/* v0.5.31: explicit SPACE gate for all single-player games */
.time2048-board{position:relative}
.time2048-start-overlay{position:absolute;inset:0;display:grid;place-content:center;gap:4px;text-align:center;background:rgba(255,255,255,.82);backdrop-filter:blur(2px);border-radius:inherit;z-index:4;pointer-events:none}
.time2048-start-overlay strong{font-size:28px;letter-spacing:.08em}
.time2048-start-overlay span{font-size:12px;color:var(--muted,#6b7280);font-weight:700}

/* v0.5.32: DM presence and selection-scroll polish */
.dm-status-stack{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;flex:0 0 auto;min-width:12px}.dm-presence-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(60,64,67,.12)}.dm-presence-dot.online{background:#188038}.dm-presence-dot.offline{background:#d93025}.dm-row:focus-visible .dm-presence-dot{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(26,115,232,.25)}
@keyframes wordchain-panel-ready{0%{transform:scale(.985);opacity:.76}100%{transform:scale(1);opacity:1}}
@keyframes wordchain-chip-in{0%{transform:translateX(14px) scale(.88);opacity:0}70%{transform:translateX(-2px) scale(1.04);opacity:1}100%{transform:none;opacity:1}}
@keyframes wordchain-word-pop{0%{transform:translateY(8px) scale(.72);opacity:.2}65%{transform:translateY(-2px) scale(1.09);opacity:1}100%{transform:none;opacity:1}}
@keyframes wordchain-arrow-pulse{0%{transform:translateX(-8px);opacity:0}45%{transform:translateX(3px);opacity:1}100%{transform:none}}
@keyframes wordchain-sheen{0%{transform:translateX(-160%)}100%{transform:translateX(360%)}}
@keyframes wordchain-danger-pulse{from{filter:saturate(1)}to{filter:saturate(1.45) brightness(1.08)}}
@keyframes wordchain-orbit{0%{transform:translate3d(0,0,0) scale(.9)}50%{transform:translate3d(24px,12px,0) scale(1.08)}100%{transform:translate3d(0,0,0) scale(.9)}}
@keyframes turn-clock-pulse{to{transform:scale(1.06);box-shadow:0 0 0 4px rgba(217,48,37,.08)}}
.q-cell{aspect-ratio:1;width:100%;height:auto;overflow:visible;contain:layout paint}
.q-cell:disabled:not(.pawn-a):not(.pawn-b){cursor:default}
.q-cell.legal{box-shadow:inset 0 0 0 1px rgba(26,115,232,.18),0 1px 2px rgba(26,48,75,.12)}
.q-cell.legal:not(.pawn-a):not(.pawn-b)::before{content:"";position:absolute;width:24%;aspect-ratio:1;border-radius:50%;background:rgba(26,115,232,.16);transition:transform .12s,background .12s}
.q-cell.legal:hover::before{transform:scale(1.55);background:rgba(26,115,232,.3)}
.q-cell.pawn-a::after,.q-cell.pawn-b::after{width:61%!important;height:auto!important;aspect-ratio:1!important;flex:0 0 auto}
.q-wall-anchor.legal:hover::after{content:"벽";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:800;color:#725311;pointer-events:none}
.sea-cell{width:100%;height:100%;aspect-ratio:1;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;line-height:1;font-size:clamp(13px,2.1dvh,20px)!important;contain:layout paint}
.sea-cell.hit{font-size:clamp(18px,3dvh,27px)!important}
.sea-cell.sunk{background:#434b55!important;color:#fff!important;box-shadow:inset 0 0 0 2px #20252b}
@media(max-width:760px){.sea-cell{font-size:13px!important}.sea-cell.hit{font-size:18px!important}}
.q-pawn-label{position:absolute;z-index:3;font-size:9px;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);pointer-events:none}
.sea-cell.placement-preview{background:#8fc6e8!important;box-shadow:inset 0 0 0 2px #2e6f9e}
.sea-cell.placement-invalid{background:#f7c6c2!important;box-shadow:inset 0 0 0 2px #c34f48}
@keyframes critical-clock-in{from{opacity:0;transform:translate(-50%,-8px) scale(.92)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes critical-clock-pulse{to{transform:translateX(-50%) scale(1.08);box-shadow:0 10px 28px rgba(185,38,30,.3)}}
.finish-win-bonus{display:inline-flex;align-items:center;justify-content:center;gap:5px;margin:8px auto 0;padding:6px 10px;border-radius:999px;background:#e6f4ea;color:#137333;font-size:11px;font-weight:800}
.finish-win-bonus svg{width:14px;height:14px}
.finish-fee-note{display:block;margin-top:6px;color:#9298a1;font-size:9px}
.finish-token{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;margin-top:16px;padding:10px 17px;border:1px solid transparent;border-radius:18px;font-size:clamp(22px,4vw,30px);font-weight:900;letter-spacing:-.025em;box-shadow:0 5px 18px rgba(32,33,36,.08);transform-origin:center;font-variant-numeric:tabular-nums}
.finish-token.gain{background:#e9f7ed;border-color:#b9dfc3;color:#0d7835;box-shadow:0 7px 22px rgba(19,115,51,.14)}
.finish-token.loss{background:#fff0ef;border-color:#efc3bf;color:#b3261e;box-shadow:0 7px 22px rgba(179,38,30,.12)}
.finish-token-coin{width:30px;height:30px;display:grid;place-items:center;flex:none;color:#f9ab00;filter:drop-shadow(0 2px 3px rgba(132,91,6,.2))}
.finish-token-coin svg{width:29px;height:29px;stroke-width:2.1}
.finish-token.loss .finish-token-coin{color:#d06d62;filter:none}
.token-animation-layer{z-index:4;overflow:visible}
.token-particle{left:50%;top:54%;width:27px;height:27px;margin:-13.5px;color:#f9ab00;filter:drop-shadow(0 3px 4px rgba(95,70,16,.24));opacity:0;animation-delay:var(--token-delay,0ms)!important}
.token-particle svg{width:27px;height:27px;stroke-width:2.2}
.token-particle.gain{animation:token-burst-gain 1.18s cubic-bezier(.12,.72,.22,1) forwards}
.token-particle.loss{color:#c06b62;filter:drop-shadow(0 2px 3px rgba(112,45,38,.16));animation:token-burst-loss 1.02s cubic-bezier(.32,.03,.82,.32) forwards}
.token-impact-ring{position:absolute;z-index:0;left:50%;top:54%;width:70px;height:70px;margin:-35px;border:4px solid rgba(249,171,0,.56);border-radius:50%;pointer-events:none;animation:token-ring-burst .78s cubic-bezier(.1,.65,.25,1) forwards}
.token-impact-ring.loss{border-color:rgba(179,38,30,.38);animation-name:token-ring-loss}
.token-value-impact{animation:token-value-pop .92s cubic-bezier(.17,.89,.27,1.28)}
.versus-finish-overlay.token-impact-gain::before,.versus-finish-overlay.token-impact-loss::before{content:"";position:absolute;z-index:0;left:50%;top:50%;width:130px;height:130px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);animation:token-screen-flash .8s ease-out forwards}
.versus-finish-overlay.token-impact-gain::before{background:radial-gradient(circle,rgba(52,168,83,.25),rgba(249,171,0,.11) 38%,transparent 72%)}
.versus-finish-overlay.token-impact-loss::before{background:radial-gradient(circle,rgba(217,48,37,.18),rgba(217,48,37,.07) 42%,transparent 74%)}
@keyframes token-burst-gain{0%{opacity:0;transform:translate(0,20px) rotate(0) scale(.35)}10%{opacity:1;transform:translate(0,0) rotate(0) scale(1.12)}72%{opacity:1}100%{opacity:0;transform:translate(var(--token-x),calc(var(--token-y) - 165px)) rotate(var(--token-rot)) scale(.72)}}
@keyframes token-burst-loss{0%{opacity:0;transform:translate(0,-8px) rotate(0) scale(1.05)}12%{opacity:1}48%{opacity:.95}100%{opacity:0;transform:translate(var(--token-x),calc(var(--token-y) + 210px)) rotate(var(--token-rot)) scale(.48)}}
@keyframes token-ring-burst{0%{opacity:.95;transform:scale(.35)}70%{opacity:.42}100%{opacity:0;transform:scale(5.2)}}
@keyframes token-ring-loss{0%{opacity:.8;transform:scale(.45)}100%{opacity:0;transform:scale(3.7)}}
@keyframes token-value-pop{0%{opacity:.2;transform:scale(.72)}35%{opacity:1;transform:scale(1.14)}58%{transform:scale(.96)}78%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes finish-win-impact{0%{transform:translateY(7px) scale(.96)}38%{transform:translateY(-5px) scale(1.025)}68%{transform:translateY(1px) scale(.995)}100%{transform:none}}
@keyframes finish-loss-impact{0%,100%{transform:translateX(0)}18%{transform:translateX(-8px) rotate(-.4deg)}36%{transform:translateX(7px) rotate(.35deg)}54%{transform:translateX(-5px)}72%{transform:translateX(3px)}86%{transform:translateX(-1px)}}
@keyframes token-screen-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}22%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(4.8)}}

@media(max-width:760px){.finish-token{min-height:50px;padding:9px 14px;font-size:24px}.finish-token-coin{width:27px;height:27px}.finish-token-coin svg{width:26px;height:26px}}
@media(prefers-reduced-motion:reduce){.token-impact-ring,.token-value-impact,.versus-finish-overlay.token-impact-gain .game-finish-card,.versus-finish-overlay.token-impact-loss .game-finish-card,.versus-finish-overlay.token-impact-gain::before,.versus-finish-overlay.token-impact-loss::before{animation:none!important}}
.final-move{position:relative;z-index:4;animation:final-move-focus 1.05s ease-in-out 2!important}
@keyframes final-reveal-in{from{opacity:0;transform:translate(-50%,-7px) scale(.92)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes final-move-focus{0%,100%{filter:none}45%{filter:drop-shadow(0 0 8px rgba(26,115,232,.85));transform:scale(1.09)}}

/* Product token mark: a simple circle containing T, never a yellow coin glyph. */
.t-token-symbol,.token-particle{display:inline-grid;place-items:center;border-radius:50%;font-family:Arial,sans-serif;font-weight:900;font-style:normal;line-height:1;background:#1a73e8;color:#fff;border:2px solid rgba(255,255,255,.92);box-shadow:0 3px 9px rgba(24,70,130,.24)}
.t-token-symbol{width:27px;height:27px;flex:0 0 27px;font-size:14px}.finish-win-bonus .t-token-symbol,.finish-reward .t-token-symbol{width:19px;height:19px;flex-basis:19px;font-size:10px;border-width:1px}
.finish-key-hint{display:block;margin-top:12px;color:#8a919b;font-size:10px}

/* Tokens stream one-by-one. Gain rises upward; loss drops away. */
.token-particle{position:absolute;left:50%;top:70%;width:27px;height:27px;margin:-13.5px;opacity:0;font-size:14px;filter:none!important;will-change:transform,opacity}
.token-particle.gain{animation:token-stream-up .92s cubic-bezier(.18,.72,.25,1) forwards!important}
.token-particle.loss{background:#707985;color:#fff;animation:token-stream-down .78s cubic-bezier(.35,.06,.78,.35) forwards!important}
@keyframes token-stream-up{0%{opacity:0;transform:translate(var(--token-x),18px) rotate(0) scale(.55)}13%{opacity:1;transform:translate(var(--token-x),0) rotate(0) scale(1)}78%{opacity:1}100%{opacity:0;transform:translate(calc(var(--token-x) + var(--token-drift)),-330px) rotate(var(--token-rot)) scale(.76)}}
@keyframes token-stream-down{0%{opacity:0;transform:translate(var(--token-x),-8px) rotate(0) scale(.9)}15%{opacity:1}75%{opacity:.88}100%{opacity:0;transform:translate(calc(var(--token-x) + var(--token-drift)),250px) rotate(var(--token-rot)) scale(.55)}}

@media(max-width:760px){.t-token-symbol{width:25px;height:25px;flex-basis:25px;font-size:13px}.token-particle{width:25px;height:25px;margin:-12.5px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.match-finish-reveal,.final-move,.token-particle{animation:none!important}}
.pending-approval-simple{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding-top:8px}
.pending-approval-simple .approval-code{text-align:center;margin:4px 0 0;font-size:clamp(38px,7vw,54px);font-weight:800;letter-spacing:10px;color:#234f85;font-variant-numeric:tabular-nums}
.pending-user{display:flex!important;align-items:baseline;justify-content:center;gap:12px;margin:0 0 6px!important;color:#263b55!important;font-size:18px!important;line-height:1.35}
.pending-user strong{font-size:21px;font-weight:800;letter-spacing:.02em}.pending-user span{font-size:18px;font-weight:650}
.reaction-picker{display:grid!important;grid-template-columns:repeat(6,37px);gap:5px!important;padding:6px!important;max-width:260px}
.reaction-picker button{display:grid;place-items:center;margin:0!important}
.peer-approve-form{display:flex;flex-direction:column;gap:16px}.peer-approve-copy{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border:1px solid #e1e8f1;border-radius:12px;background:#f7faff}.peer-approve-copy strong{font-size:15px;color:#253e61}.peer-approve-copy span{font-size:12px;line-height:1.6;color:#718096}.peer-approve-form label{font-size:12px;color:#5f6d7d}.peer-approve-form input{margin-top:6px;text-align:center;font-size:27px;font-weight:800;letter-spacing:8px;font-variant-numeric:tabular-nums}
.welcome-guide{display:flex;flex-direction:column;gap:16px}.welcome-hero{padding:4px 2px 2px}.welcome-badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:#e8f0fe;color:#175fbd;font-size:11px;font-weight:800}.welcome-hero h2{margin:10px 0 5px;font-size:21px;line-height:1.35;letter-spacing:-.4px}.welcome-hero p{margin:0;color:#748092;font-size:12px;line-height:1.6}.welcome-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.welcome-card{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;padding:12px;border:1px solid #e4e9f0;border-radius:13px;background:#fbfcfe}.welcome-card-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#eaf2ff;color:#2d67b1;font-size:18px;font-weight:800}.welcome-card-icon svg{width:19px;height:19px}.welcome-card-icon.t-mini{border-radius:50%;background:#dfeeff;color:#1c5fae;font:900 16px/1 Arial}.welcome-card-icon.info-letter{font-family:Georgia,serif}.welcome-card strong{display:block;font-size:13px;margin:1px 0 4px;color:#29394f}.welcome-card p{margin:0;color:#69778a;font-size:11px;line-height:1.55}.welcome-card p b{color:#315f9c}.welcome-shortcuts{display:grid;gap:4px;margin:0}.welcome-shortcuts>div{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:6px}.welcome-shortcuts dt,.welcome-shortcuts dd{margin:0;font-size:10px;color:#69778a}.welcome-shortcuts dt{white-space:nowrap}.welcome-shortcuts kbd{display:inline-block;min-width:25px;padding:2px 5px;border:1px solid #d5dce6;border-bottom-width:2px;border-radius:5px;background:#fff;color:#45566e;font:700 9px Arial;text-align:center}.welcome-note{padding:9px 12px;border-radius:10px;background:#f5f7fa;color:#657184;font-size:11px;line-height:1.55}.welcome-start{min-height:42px;font-weight:700}
@media(max-width:760px){.docs-actions .share-pill{display:flex!important;width:40px!important;min-width:40px!important;padding:0!important}.docs-actions .share-pill span,.docs-actions .share-pill .tiny-caret{display:none!important}.welcome-grid{grid-template-columns:1fr}.welcome-shortcuts>div{grid-template-columns:105px 1fr}.pending-approval-simple .approval-code{letter-spacing:7px}.reaction-picker{grid-template-columns:repeat(6,34px)}.reaction-picker button{width:34px;height:34px}}


/* v0.5.42 — direct PIN approval, centered message controls, member removal, stable game loading */
.peer-approve-warning{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border-radius:10px;background:#f7f9fc;border:1px solid #e3e8ef;line-height:1.55}.peer-approve-warning span{color:#4e5968}.peer-approve-warning strong{color:#b3261e;font-size:12px}
.reaction-picker button{display:flex!important;align-items:center!important;justify-content:center!important;width:42px!important;height:42px!important;padding:0!important;margin:0!important;font-size:24px!important;line-height:1!important;text-align:center!important;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}.reaction-picker{grid-template-columns:repeat(6,42px)!important;max-width:292px!important;gap:6px!important}.reaction-chip,.reaction-add{min-height:24px!important;height:24px!important;padding:2px 7px!important;font-size:12px!important;line-height:1!important;display:inline-flex;align-items:center;justify-content:center;gap:3px}.reaction-chip b{font-size:9px!important}.reaction-add{width:26px!important;padding:0!important;font-size:14px!important}
.message-options svg{transform:translateX(-1px)}
.room-member-manage-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid #edf0f4}.room-member-manage-row:last-child{border-bottom:0}.room-member-manage-name{display:flex;align-items:center;gap:10px;min-width:0}.room-member-manage-name .avatar{width:34px;height:34px;font-size:12px}.room-member-manage-name>span:last-child{min-width:0}.room-member-manage-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-member-manage-name small{display:block;color:#8a919a;font-size:11px;margin-top:3px}
@media(max-width:760px){.reaction-picker{grid-template-columns:repeat(6,38px)!important;max-width:268px!important}.reaction-picker button{width:38px!important;height:38px!important;font-size:22px!important}}

/* v0.5.43 — infinite history, clearer onboarding, season label and account security */
#load-more{display:none!important}
.messages.loading-older,.dm-panel #dm-body.loading-older{scroll-behavior:auto}
.rank-season-current{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid #dfe7f2;border-radius:11px;background:#f7faff}
.rank-season-current span{font-size:11px;font-weight:700;color:#6d7d91}.rank-season-current strong{font-size:14px;color:#244f84}
.welcome-altq{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:12px;padding:14px 16px;border:1px solid #c9daf1;border-radius:14px;background:linear-gradient(135deg,#edf5ff,#f8fbff)}
.welcome-altq>span{font-size:11px;font-weight:800;color:#55708e;text-transform:uppercase;letter-spacing:.02em}.welcome-altq>div{display:flex;align-items:center;gap:6px}.welcome-altq kbd{min-width:42px;padding:7px 10px;border:1px solid #b8cbe4;border-bottom-width:3px;border-radius:8px;background:#fff;color:#174f92;font:800 14px/1 Arial;text-align:center;box-shadow:0 2px 6px rgba(40,86,139,.08)}.welcome-altq b{color:#6d7d91}.welcome-altq>strong{font-size:13px;color:#274461}
.account-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:14px;border:1px solid #f0d0cd;border-radius:12px;background:#fff8f7}.account-danger-zone>div{min-width:0}.account-danger-zone strong{display:block;color:#9d2d25;font-size:13px}.account-danger-zone span{display:block;margin-top:4px;color:#7b6b69;font-size:10px;line-height:1.55}.account-delete-form{display:flex;flex-direction:column;gap:14px}.danger-copy{margin:0;padding:11px 12px;border-radius:10px;background:#fff4f2;color:#8e3028;font-size:12px;line-height:1.6}
@media(max-width:760px){.welcome-altq{grid-template-columns:1fr auto}.welcome-altq>strong{grid-column:1/-1}.account-danger-zone{align-items:flex-start;flex-direction:column}.account-danger-zone .button{width:100%}}

/* Match the product token mark: thin blue circle + blue T on a light surface. */
.t-token-symbol,.token-particle{
  background:#f8fbff!important;
  color:#1967d2!important;
  border:1.5px solid #1967d2!important;
  box-shadow:none!important;
  font-family:Arial,sans-serif!important;
  font-weight:700!important;
}
.token-particle.loss{background:#f8fbff!important;color:#1967d2!important;border-color:#1967d2!important}

/* Rewards read as green text, not a pale-green card. */
.finish-token.gain{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:#137333!important;padding-left:4px!important;padding-right:4px!important}
.finish-reward,.finish-win-bonus{background:transparent!important;border:0!important;box-shadow:none!important;color:#137333!important;padding-left:0!important;padding-right:0!important}
.welcome-card-icon.t-mini{background:#f8fbff!important;color:#1967d2!important;border:1.5px solid #1967d2!important;box-shadow:none!important;font-weight:700!important}
@keyframes turn-arrived-shell{0%{box-shadow:0 0 0 0 rgba(26,115,232,0)}28%{box-shadow:0 0 0 4px rgba(26,115,232,.16),0 10px 28px rgba(26,115,232,.13)}100%{box-shadow:0 0 0 0 rgba(26,115,232,0)}}
@keyframes turn-arrived-banner{0%{transform:translateY(-3px);filter:brightness(1.08)}55%{transform:translateY(0);filter:brightness(1.02)}100%{filter:none}}
@keyframes connect4-drop-in{0%{transform:translateY(var(--drop-distance));filter:brightness(1.08)}72%{transform:translateY(4%)}88%{transform:translateY(-2%)}100%{transform:translateY(0);filter:none}}


.quick-guide{gap:12px!important}.quick-guide-head{display:grid;grid-template-columns:1fr auto;grid-template-areas:"eyebrow meta" "title title";align-items:end;padding:2px 1px 4px;border-bottom:1px solid #e5e9ef}.quick-guide-head>span{grid-area:eyebrow;font-size:10px;font-weight:800;color:#6f7e90;letter-spacing:.04em}.quick-guide-head>strong{grid-area:title;margin-top:2px;font-size:24px;line-height:1.15;letter-spacing:-.7px;color:#202b3a}.quick-guide-head>small{grid-area:meta;font-size:9px;color:#98a1ad}
.quick-guide-hotkey{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid #b9d0f3;border-radius:11px;background:#f6f9ff}.quick-guide-hotkey>div{display:flex;align-items:center;gap:6px}.quick-guide-hotkey kbd{min-width:39px;padding:6px 9px;border:1px solid #9cb7dc;border-bottom-width:3px;border-radius:7px;background:#fff;color:#174f98;font:800 12px Arial;text-align:center}.quick-guide-hotkey b{color:#5d6f86}.quick-guide-hotkey>strong{font-size:13px;color:#174f98}
.quick-guide-list{border:1px solid #e2e7ee;border-radius:12px;overflow:hidden;background:#fff}.quick-guide-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center;min-height:43px;padding:8px 12px;border-bottom:1px solid #edf0f4}.quick-guide-row:last-child{border-bottom:0}.quick-guide-row>b{font-size:11px;color:#34465d}.quick-guide-row>span{font-size:11px;color:#68778a;line-height:1.45}
.quick-guide-foot{display:flex;justify-content:space-between;align-items:center;padding:0 2px;color:#8b96a4;font-size:10px}.quick-guide-foot b{color:#596a7e;font-weight:700}
.quick-guide .welcome-start{margin-top:0}
@media(max-width:520px){.quick-guide-row{grid-template-columns:78px minmax(0,1fr);gap:8px;padding:8px 10px}.quick-guide-hotkey{padding:11px 12px}.quick-guide-head>strong{font-size:21px}}
.button.tiny{min-height:27px;padding:4px 8px;font-size:10px;border-radius:8px}
@keyframes turn-stage-flash{0%{background:rgba(57,126,230,0);box-shadow:inset 0 0 0 0 rgba(62,132,235,0)}18%{background:rgba(76,139,233,.095);box-shadow:inset 0 0 0 3px rgba(62,132,235,.20)}48%{background:rgba(76,139,233,.045);box-shadow:inset 0 0 0 2px rgba(62,132,235,.10)}100%{background:rgba(76,139,233,0);box-shadow:inset 0 0 0 0 rgba(62,132,235,0)}}

/* Historical single-game leaderboard */
.rank-season-current{flex-wrap:wrap}.rank-season-current .button{margin-left:auto}
.rank-history-shell{height:min(70dvh,640px);min-height:0;display:flex;flex-direction:column;gap:10px}.rank-history-season{flex:0 0 auto;display:grid;grid-template-columns:auto minmax(180px,1fr);align-items:center;gap:10px;color:#667486;font-size:11px;font-weight:750}.rank-history-game-list{flex:1;min-height:0;overflow:auto;display:grid;align-content:start;gap:7px;overscroll-behavior:contain;padding-right:3px}.rank-history-game-card{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 13px;border:1px solid #e1e7ef;border-radius:12px;background:#fff;text-align:left;color:#31445c;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.rank-history-game-card:hover{background:#f7faff;border-color:#cbd9eb}.rank-history-game-card:active{transform:scale(.995)}.rank-history-game-card>span:first-child{min-width:0}.rank-history-game-card strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-history-game-card small{display:block;margin-top:4px;color:#8692a1;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-history-game-arrow{color:#8090a4;font-size:24px;line-height:1}.rank-history-game-summary{display:grid;gap:3px;padding:10px 12px;border:1px solid #dfe7f2;border-radius:11px;background:#f7faff}.rank-history-game-summary>span{font-size:9px;font-weight:800;color:#7a899c}.rank-history-game-summary>strong{font-size:14px;color:#244f84}.rank-history-game-summary>small{font-size:9px;color:#7f8b99}.rank-history-ranking-shell .rank-row{min-height:40px}

@media(max-width:760px){.rank-history-shell{height:min(72dvh,620px)}.rank-history-game-card{padding:11px}.rank-history-season{grid-template-columns:auto minmax(0,1fr)}}
.auth-remember{margin-top:-2px;padding:2px 0 0;color:#4b5563;font-size:12px}


/* v0.5.47 token mark alignment — match the compact outlined T token used in the header. */
.t-token-symbol,.token-particle{background:#fff!important;color:#1a5fbf!important;border:1.5px solid #1a5fbf!important;box-shadow:none!important}
.token-particle.loss{background:#fff!important;color:#6f7782!important;border-color:#6f7782!important}
.t-token-mini{display:inline-grid;place-items:center;width:17px;height:17px;flex:0 0 17px;border:1.4px solid #1a5fbf;border-radius:50%;background:#fff;color:#1a5fbf;font:900 9px/1 Arial,sans-serif;font-style:normal}

/* v0.5.48 — compact same-minute message groups */
.message.message-grouped{margin-top:-6px}
.message.message-grouped .message-avatar{visibility:hidden!important;pointer-events:none!important}

.message.message-grouped .bubble{border-radius:13px!important}
.message.message-grouped .message-time{margin-top:1px}
.dm-panel .message.message-grouped{margin-top:-7px}
.message.message-grouped .message-options{width:22px;height:22px;opacity:.32;margin:0}
.message.message-grouped:hover .message-options,.message.message-grouped .message-options:focus-visible{opacity:1}
.message.message-grouped .message-options svg{width:16px;height:16px}

/* In grouped messages the menu remains in the same top/meta band as ordinary messages. */
.message.message-grouped{margin-top:-5px}
.message.message-grouped .message-meta.message-meta-grouped{display:flex!important;min-height:20px;margin-bottom:2px;align-items:center}
.message.message-grouped .message-meta-grouped .grouped-author-spacer{visibility:hidden!important;display:block!important;max-width:180px;overflow:hidden;white-space:nowrap}
.message.message-grouped .message-meta-grouped .message-options{width:25px;height:25px;margin:0;opacity:.28}
.message.message-grouped:hover .message-meta-grouped .message-options,
.message.message-grouped .message-meta-grouped .message-options:focus-visible{opacity:1}
.message.message-grouped .message-meta-grouped .message-options svg{width:18px;height:18px}
.breakout-stage{max-width:720px}.breakout-canvas{display:block;width:min(640px,100%,calc((100dvh - 220px)*1.64));height:auto;max-height:390px;aspect-ratio:64/39;margin:0 auto;border:1px solid #cfd8e4;border-radius:12px;background:#f8fbff;touch-action:none}.breakout-meta{display:flex;gap:12px;color:#667486;font-size:10px}.breakout-meta b{color:#25364a}@keyframes memory-flip{0%{transform:scaleX(.15)}100%{transform:scaleX(1)}}
@media(max-height:720px){.breakout-canvas{max-height:330px}}
@media(max-width:760px){.breakout-canvas{width:100%;max-height:calc(100dvh - 210px)}}
.rank-record-item{
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  grid-template-areas:"record-name record-score" "record-holder record-score";
  min-height:50px;
  align-items:center;
  column-gap:10px;
}
.rank-record-item>span{grid-area:record-name;align-self:end}
.rank-record-item>small{grid-area:record-holder;align-self:start;grid-column:auto}
.rank-record-item>strong{
  grid-area:record-score;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:62px;
  font-size:18px;
  line-height:1;
  font-weight:800;
}
@media(max-width:560px){.rank-record-item>strong{font-size:17px}}
.clicker-stage{width:min(620px,100%);min-height:0;display:flex;flex-direction:column;align-items:center;gap:12px}
.clicker-top{width:min(520px,100%);display:grid;grid-template-columns:1fr 1fr;gap:8px}
.clicker-top>div{height:56px;padding:0 14px;border:1px solid #e1e6ed;border-radius:13px;background:#fafcff;display:flex;align-items:center;justify-content:space-between;gap:12px}
.clicker-top span{font-size:11px;color:#778392;font-weight:600}.clicker-top strong{font-size:18px;color:#26384e;font-variant-numeric:tabular-nums}
.clicker-arena{position:relative;width:min(520px,100%);height:min(330px,43dvh);min-height:240px;display:grid;place-items:center;border:1px solid #e2e7ee;border-radius:18px;background:radial-gradient(circle at 50% 44%,#f8fbff 0,#f5f8fc 48%,#eef3f8 100%);overflow:hidden}
.trash-clicker{position:relative;z-index:2;width:180px;height:180px;border:0;border-radius:42px;background:#fff;box-shadow:0 9px 28px rgba(38,55,73,.13),inset 0 0 0 1px #d9e1ea;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#40556d;cursor:pointer;user-select:none;touch-action:manipulation;transition:transform .08s ease,box-shadow .12s ease,opacity .15s ease}
.trash-clicker:hover:not(:disabled){box-shadow:0 11px 34px rgba(38,55,73,.17),inset 0 0 0 1px #bfcddd}.trash-clicker:active:not(:disabled),.trash-clicker.pressed:not(:disabled){transform:scale(.94)}
.trash-clicker:disabled{cursor:not-allowed;opacity:.52}.trash-clicker-icon{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:#eef3f8;color:#4d647d}.trash-clicker-icon svg{width:42px;height:42px}.trash-clicker>strong{font-size:18px}.trash-clicker>small{font-size:11px;color:#7b8794}
.clicker-pop-layer{position:absolute;inset:0;pointer-events:none;z-index:3}.clicker-reward-pop{--x:0px;position:absolute;left:50%;top:44%;display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:14px;background:#fff;color:#188038;font-size:16px;font-weight:900;box-shadow:0 5px 16px rgba(22,101,52,.16);animation:clicker-reward-up .95s cubic-bezier(.18,.76,.28,1) forwards}.clicker-reward-pop.reward-5{font-size:19px}.clicker-reward-pop.reward-10{font-size:22px;color:#0b57d0}.clicker-reward-pop .t-token-mini{width:20px;height:20px;font-size:11px}
@keyframes clicker-reward-up{0%{opacity:0;transform:translate(-50%,8px) scale(.72)}15%{opacity:1;transform:translate(-50%,-4px) scale(1.08)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),-96px) scale(.96)}}
.clicker-odds{width:min(520px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.clicker-odds span{height:38px;border:1px solid #e4e8ee;border-radius:11px;background:#fff;display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;color:#667486}.clicker-odds b{color:#27384c;font-size:13px}
.clicker-footer{width:min(520px,100%);display:flex;align-items:center;justify-content:space-between;gap:10px;color:#768291;font-size:11px}
@media(max-height:720px){.clicker-arena{height:min(270px,39dvh);min-height:205px}.trash-clicker{width:148px;height:148px;border-radius:34px}.trash-clicker-icon{width:62px;height:62px}.trash-clicker-icon svg{width:35px;height:35px}}
@media(max-width:760px){.clicker-stage{gap:8px}.clicker-arena{height:min(300px,42dvh)}.trash-clicker{width:150px;height:150px}.clicker-odds{gap:4px}.clicker-odds span{font-size:10px}.clicker-top>div{padding-inline:10px}}

/* v0.5.57 — Stack / Simon / Dots, clearer turns, portrait-mobile game layouts */
.sidebar-profile-avatar{display:none!important;margin-left:4px}
.pwa-install-setting>div{display:flex;min-width:0;flex-direction:column;gap:3px}.pwa-install-setting small{color:#7c8796;font-size:10px;font-weight:550;line-height:1.4}.pwa-install-guide{display:grid;gap:10px}.pwa-install-guide strong{font-size:15px}.pwa-install-guide p{margin:0;color:#667486;line-height:1.75;font-size:12px}
@keyframes wordchain-invalid-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
@keyframes v057-turn-flash{0%{opacity:0}12%{opacity:1}38%{opacity:.55}60%{opacity:.95}100%{opacity:0}}
@keyframes v057-turn-label{0%{opacity:0;transform:translate(-50%,-62%) scale(.94)}12%,58%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-44%) scale(.98)}}

/* Touch controls appear only when a coarse-pointer mobile device is active without a recently-used hardware keyboard. */
.mobile-touch-controls{display:none;user-select:none;-webkit-user-select:none;touch-action:none}.mobile-touch-controls button{min-height:48px;border:1px solid #d8e0ea;border-radius:13px;background:#f8fafc;color:#365271;font-size:21px;font-weight:800;box-shadow:0 1px 2px rgba(40,50,70,.04)}.mobile-touch-controls button:active{background:#e8f0fe;transform:scale(.97)}

@media(max-width:760px){.sidebar-profile-avatar{display:grid!important;width:38px!important;height:38px!important;flex:0 0 38px!important;font-size:12px!important}.docs-sidebar .side-title{gap:5px;padding-right:8px}.docs-sidebar .side-title>span{min-width:0}
  body.input-coarse-pointer:not(.input-fine-pointer):not(.input-keyboard) .mobile-touch-controls{display:grid}
  .uttt-board,.connect4-board,.gomoku-board,.quoridor-board,.othello-board,.memory-board,.flip-board,.time2048-board,.minesweeper-board{width:min(92vw,58dvh)!important;max-width:none!important;margin-inline:auto!important}}
@media(max-width:760px){.catch-layout,.gartic-stage{width:100%!important;max-width:none!important}}
@keyframes simonWrongPulse{50%{transform:scale(1.18)}}

/* v0.5.62 — persistent read boundary, smoother game sync, curling aim and turn-colored Connect 4 preview */
.last-read-divider{display:flex;align-items:center;gap:10px;margin:14px 2px 12px;color:#52719a;font-size:10px;font-weight:750;letter-spacing:.01em;scroll-margin-top:72px}.last-read-divider::before,.last-read-divider::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#9db6d6)}.last-read-divider::after{background:linear-gradient(90deg,#9db6d6,transparent)}.last-read-divider span{display:inline-flex;align-items:center;min-height:22px;padding:3px 9px;border:1px solid #c8d7e9;border-radius:999px;background:#f2f7fd;color:#42658e;box-shadow:0 1px 2px rgba(39,74,114,.06)}
@media(max-width:760px){.last-read-divider{margin:11px 0 10px}.last-read-divider span{font-size:9px}}

/* v0.5.63 — compact message bubbles with the overflow action anchored at the lower-right. */
.message{margin-bottom:7px!important;gap:8px!important}
.message-main{min-width:0}
.message-meta{min-height:18px!important;margin-bottom:3px!important}
.message-bubble-wrap{display:flex;align-items:flex-end;gap:2px;width:fit-content;max-width:100%;min-width:0}
.message-bubble-wrap>.bubble{min-width:0;max-width:calc(100% - 26px)}
.message-bubble-wrap>.message-options{flex:0 0 24px;width:24px;height:24px;margin:0 0 -1px 0!important;opacity:.25;color:#6b7280}
.message-bubble-wrap>.message-options svg{width:17px;height:17px}
.message:hover .message-bubble-wrap>.message-options,.message-bubble-wrap>.message-options:focus-visible,.message-bubble-wrap>.message-options[aria-expanded="true"]{opacity:1}
.message-time{margin-top:1px!important;min-height:17px!important;line-height:1.15!important}
.message.message-grouped{margin-top:0!important}
.message.message-grouped .message-meta{display:none!important}
.dm-panel .message{margin-bottom:6px!important}
@media(max-width:760px){.message{margin-bottom:6px!important}.message-bubble-wrap>.message-options{width:23px;height:23px;flex-basis:23px}.message-bubble-wrap>.bubble{max-width:calc(100% - 25px)}}@keyframes record-border-flow{to{background-position:240% 0}}@keyframes record-shine{0%,38%{left:-42%}68%,100%{left:122%}}@keyframes record-trophy-pop{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}}

/* v0.5.65 gameplay, stable optimistic bubbles, and consistent record cards */
.message-bubble-wrap>.message-options-spacer{display:block;flex:0 0 24px;width:24px;height:24px;margin:0 0 -1px 0}
#stack-detail{display:block;margin-top:2px;font-size:10px;line-height:1.15;color:#6b7280;font-weight:750;white-space:nowrap}
@media(max-width:760px){.message-bubble-wrap>.message-options-spacer{width:23px;height:23px;flex-basis:23px}}

/* v0.5.69 interaction/stability */
.docs-icon-static{pointer-events:none;cursor:default}.docs-icon-static:hover{background:transparent}


/* v0.5.74 — low-latency interaction and low-end device profile */
button,a,[role="button"],input,textarea,select,.game-card-select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.perf-lite .paper,.perf-lite .dm-panel,.perf-lite dialog,.perf-lite .turn-match-shell,.perf-lite .game-card,.perf-lite .game-finish-card{box-shadow:none!important}
.perf-lite .message-enter,.perf-lite .turn-arrived,.perf-lite .turn-screen-alert,.perf-lite .game-card,.perf-lite .room-item,.perf-lite .side-link{animation:none!important;transition-duration:.01ms!important}

/* v0.5.74 performance follow-up: keep interactive canvases scroll-safe and trim costly paint work on lite devices. */
.messages,#dm-body,.game-browser-scroll,.party-browser-scroll{overscroll-behavior:contain}
.perf-lite dialog{transition:none!important}
.perf-lite .live-alert,.perf-lite .game-finish-overlay,.perf-lite .shared-start-countdown,.perf-lite .time2048-start-overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.perf-lite .record-announcement-card::before,.perf-lite .record-announcement-trophy,.perf-lite .turn-banner.mine::after,.perf-lite .turn-pulse,.perf-lite .pulse-action:not(:disabled){animation:none!important}
.perf-lite .game-finish-overlay,.perf-lite .live-alert,.perf-lite .record-announcement-card{box-shadow:none!important}
.perf-lite .surface-loading-spinner{animation-duration:1s}
.spectator-footer{border-top:1px solid #e7ebf0;padding-top:9px}
.spectator-button{border-color:#c9d6e6!important;background:#f7faff!important;color:#315d8d!important}
.mobile-game-dpad{grid-template-columns:repeat(3,68px);grid-template-areas:". up ." "left down right";justify-content:center}.mobile-game-dpad .up{grid-area:up}.mobile-game-dpad .left{grid-area:left}.mobile-game-dpad .down{grid-area:down}.mobile-game-dpad .right{grid-area:right}.mobile-game-dpad button{min-height:58px;font-size:24px}
@media(max-width:760px) and (pointer:coarse){.mobile-touch-controls{display:grid}}

/* v0.5.81 — mobile-first game viewport, touch controls, chat-only mobile shell */
.mobile-dodge-joystick{grid-template-columns:1fr;justify-items:center;align-items:center;gap:5px}
.mobile-dodge-joystick small{font-size:9px;font-weight:700;color:#718198;text-align:center}

@media(max-width:760px){body[data-viewport="mobile"] .welcome-altq{display:none!important}}
.board-move-confirm{display:flex;align-items:center;justify-content:center;gap:10px;width:min(425px,100%);margin:4px auto 0;padding:7px 9px;border:1px solid #d9e2ec;border-radius:12px;background:#f8fafc;color:#64748b;font-size:11px;font-weight:700}
.board-move-confirm span{flex:1;min-width:0}.board-move-confirm .button{min-width:74px;min-height:38px}
@media(max-width:760px),(pointer:coarse){.board-move-confirm{width:min(94vw,58dvh);padding:5px 7px;gap:7px;margin-top:2px}
  .board-move-confirm span{font-size:10px}.board-move-confirm .button{min-height:36px;padding:7px 13px}}.wallet{position:relative;overflow:visible}.wallet.wallet-token-gain{animation:walletGainPulse .48s cubic-bezier(.2,.8,.2,1)}.wallet-token-pop{position:absolute;left:50%;top:2px;z-index:30;pointer-events:none;white-space:nowrap;color:#159447;font:900 13px/1 system-ui;text-shadow:0 1px 0 #fff;animation:walletTokenRise 1s ease-out forwards}@keyframes walletGainPulse{0%,100%{transform:scale(1)}42%{transform:scale(1.12)}}@keyframes walletTokenRise{0%{opacity:0;transform:translate(-50%,4px) scale(.84)}16%{opacity:1}100%{opacity:0;transform:translate(-50%,-34px) scale(1.08)}}

/* v0.5.84 mobile UX + connection resilience */
button,[role="button"]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
body[data-connection="offline"] .connection,body[data-connection="degraded"] .connection{font-weight:700}
body[data-connection="offline"] .connection:before,body[data-connection="degraded"] .connection:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:5px;opacity:.65}
.network-preserved{gap:6px!important}.network-preserved span{font-size:12px;color:#8a919a}
body.auth-visible #auth-screen{display:flex!important;position:fixed!important;inset:0!important;z-index:10000!important}
body.auth-visible .header,body.auth-visible .toolbar,body.auth-visible .workspace,body.auth-visible #dm-launcher,body.auth-visible #dm-panel,body.auth-visible .mobile-chatbar{display:none!important;pointer-events:none!important}body.auth-visible #modal:not([data-kind="public-notices"]):not([data-kind="priority-notice"]),body.auth-visible #popover{display:none!important}

/* v0.5.87 unified in-app confirmation/prompt surface */
.system-dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%;margin:0;color:inherit}.system-dialog::backdrop{background:rgba(28,39,55,.28);backdrop-filter:blur(2px)}.system-dialog-card{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));box-sizing:border-box;padding:22px;border:1px solid #dbe2ea;border-radius:18px;background:#fff;box-shadow:0 22px 64px rgba(35,49,69,.2);display:grid;gap:18px}.system-dialog-copy{display:grid;gap:8px}.system-dialog-copy>strong{font-size:17px;color:#223248}.system-dialog-copy>p{margin:0;color:#627083;font-size:13px;line-height:1.65}.system-dialog-field{display:grid;gap:7px;font-size:12px;font-weight:700;color:#536174}.system-dialog-field input{width:100%;box-sizing:border-box}.system-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.system-dialog-actions .button{min-width:84px}@media(max-width:520px){.system-dialog-card{width:calc(100vw - 24px);padding:19px 17px;border-radius:16px}.system-dialog-actions .button{flex:1}}


/* v0.6.4 — press-and-hold password reveal + dialogs that remain usable in Docs mode. */
.password-input-shell{position:relative;display:block;width:100%;min-width:0}.password-input-shell>input{display:block;width:100%!important;min-width:0!important;padding-right:50px!important}.password-reveal-hold{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#667085;touch-action:none;user-select:none;-webkit-user-select:none}.password-reveal-hold:hover,.password-reveal-hold.revealing{background:#eef3f9;color:#185abc}.password-reveal-hold svg{width:20px;height:20px}.password-reveal-hold:focus-visible{outline:2px solid #0b57d0;outline-offset:1px}
.auth-card label:has(>.required-mark)>.password-input-shell{grid-column:1/-1;grid-row:2;width:100%;min-width:0}.auth-card input,.auth-card select{min-height:48px;padding:12px 13px;font-size:14px}.auth-card .password-input-shell>input{min-height:48px!important;padding-right:52px!important}.auth-card .password-reveal-hold{width:40px;height:40px;right:4px}
.document-mode #system-dialog[open]{display:block!important}.system-dialog[open]{z-index:2147483647}

/* v0.6.6 — authentication controls keep their full form width and a comfortable touch target. */
@media(max-width:760px),(pointer:coarse){.auth-card input,.auth-card select{min-height:52px;font-size:16px}.auth-card .password-input-shell>input{min-height:52px!important}.auth-card .password-reveal-hold{width:44px;height:44px}}

/* v0.6.7: native checkbox and its label share the same visual center line. */
.check-label,.auth-remember{align-items:center!important;line-height:1.35!important}
.check-label input[type="checkbox"],.auth-remember input[type="checkbox"]{margin:0!important;align-self:center!important;vertical-align:middle!important}
.auth-remember{padding-top:0!important;min-height:24px!important}

/* v0.6.11 — keep the overflow action outside the inner edge of my own bubble. */
.message.mine .message-bubble-wrap{flex-direction:row-reverse;margin-left:auto}
.message.mine .message-bubble-wrap>.message-options{margin:0 2px -1px 0!important}

/* v0.6.13 — announcements + safe Markdown rendering */
.notice-launcher{position:fixed;right:22px;bottom:74px;z-index:5;width:44px;height:44px;display:grid;place-items:center;border:1px solid #dce1e8;border-radius:50%;background:#fff;color:#4f5f73;box-shadow:0 4px 16px #20212424;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}
.notice-launcher:hover{background:#f7f9fc;box-shadow:0 6px 20px #2021242b;transform:translateY(-1px)}
.notice-launcher svg{width:21px;height:21px}
.notice-list{display:grid;gap:12px;max-height:min(68dvh,620px);overflow:auto;padding:1px 3px 8px;overscroll-behavior:contain}
.notice-card{border:1px solid #e1e6ed;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 1px 3px #2436560a}
.notice-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid #edf0f4;background:#f8fafc}
.notice-card>header strong{display:block;color:#33455d;font-size:13px}.notice-card>header small{display:block;margin-top:3px;color:#8792a0;font-size:10px}
.notice-markdown{padding:15px 16px}.notice-empty{min-height:220px}
.markdown-body{color:#303741;font-size:13px;line-height:1.7;overflow-wrap:anywhere;word-break:break-word}
.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}
.markdown-body p{margin:0 0 10px}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:18px 0 8px;color:#25364c;line-height:1.35}.markdown-body h1{font-size:22px}.markdown-body h2{font-size:19px}.markdown-body h3{font-size:16px}.markdown-body h4,.markdown-body h5,.markdown-body h6{font-size:14px}
.markdown-body ul,.markdown-body ol{margin:7px 0 12px;padding-left:23px}.markdown-body li{margin:3px 0}.markdown-body blockquote{margin:10px 0;padding:8px 12px;border-left:3px solid #b8cae3;background:#f6f9fd;color:#526176;border-radius:0 8px 8px 0}.markdown-body hr{border:0;border-top:1px solid #e1e6ed;margin:16px 0}.markdown-body a{color:#1967d2;text-decoration:underline;text-underline-offset:2px}.markdown-body code{padding:2px 5px;border-radius:5px;background:#eef1f5;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.markdown-body pre{margin:10px 0;padding:12px;border:1px solid #dde3ea;border-radius:9px;background:#f6f8fa;overflow:auto}.markdown-body pre code{padding:0;background:transparent;white-space:pre;font-size:11.5px}.markdown-body del{color:#77818e}
body.auth-visible #notice-launcher{display:none!important;pointer-events:none!important}
@media(max-width:760px){.notice-launcher{display:none!important}.notice-list{max-height:calc(100dvh - 145px)}.notice-card>header{padding:10px 12px}.notice-markdown{padding:13px}.markdown-body h1{font-size:20px}.markdown-body h2{font-size:18px}.notice-mobile-button{color:#52657d}}

/* v0.6.14 — clearer notices and lightweight DM read receipts. */
.notice-launcher svg{width:21px;height:21px;stroke-width:1.7}.notice-mobile-button svg{width:23px;height:23px;stroke-width:1.9}
.dm-read-receipt{display:inline-flex;align-items:center;margin-left:2px;color:#1a73e8;font-size:10px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}


/* v0.6.29 — mobile dialogs use the full viewport width without changing feature-specific vertical sizing. */
@media(max-width:760px){
  dialog#modal[open]{left:0!important;right:0!important;width:100vw!important;max-width:100vw!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important}
}

/* v0.6.53 — reliable upward chat history pagination. */
.chat-history-sentinel{display:block;width:100%;height:1px;min-height:1px;pointer-events:none}
.messages.loading-older .chat-history-sentinel{position:relative}
.messages.loading-older .chat-history-sentinel:after{content:'이전 메시지 불러오는 중…';position:absolute;left:0;right:0;top:0;height:18px;display:grid;place-items:center;color:#9aa3af;font-size:10px;transform:translateY(-1px)}

/* v0.6.54 — profiles, season ranking, cosmetic shop and collection */
.rank-metric-note{margin:0 0 10px;padding:10px 12px;border-radius:11px;background:#f7f9fc;color:#647184;font-size:11px;line-height:1.55}.rank-row-button{width:100%;border:0;text-align:left;cursor:pointer}.rank-row-button:hover{background:#f6f9fd}.rank-name{display:grid;gap:2px}.rank-name>strong{display:flex;align-items:center;gap:6px;font-size:12px}.rank-name>strong>small{padding:2px 6px;border-radius:999px;background:#e8f0fe;color:#1967d2;font-size:8px}.rank-name>small{font-size:9px;color:#8793a2}.rank-score{font-weight:800;color:#245a94}.rank-score small{font-weight:700;color:#8a96a5}
.popover-loading,.popover-error{min-width:210px;padding:15px 13px;color:#6e7885;font-size:12px;line-height:1.5}.mini-profile.enriched{min-width:242px;padding:9px 9px 7px}.mini-profile-main{min-width:0;flex:1}.mini-profile-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-profile-badge{display:inline-flex;margin-top:5px;padding:3px 7px;border-radius:999px;background:#eef3fa;color:#52657e;font-size:8px;font-weight:900;letter-spacing:.03em}.mini-profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:6px 7px 9px}.mini-profile-stats>span{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:6px;padding:8px 9px;border-radius:10px;background:#f6f8fc;color:#607086}.mini-profile-stats svg{grid-row:1/3;width:17px;height:17px;color:#6f7f94}.mini-profile-stats b{font-size:11px;color:#2f435b}.mini-profile-stats small{font-size:8px;color:#8c97a5}
.puzzle-solver-profile{width:100%;border:0;text-align:left;cursor:pointer}.puzzle-solver-profile:hover{background:#edf3fb}.puzzle-solver-profile:active{transform:scale(.99)}

dialog:has(.store-shell){width:min(780px,calc(100vw - 24px))}.store-shell{display:grid;gap:14px;min-width:0}.store-balance-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 12px;padding:15px 17px;border:1px solid #dfe6ef;border-radius:15px;background:linear-gradient(135deg,#f8fbff,#eef5ff)}.store-balance-card span{font-size:10px;font-weight:800;color:#6d7b8f}.store-balance-card strong{grid-row:1/3;grid-column:2;font-size:22px;color:#174ea6}.store-balance-card small{font-size:9px;color:#8995a4}.store-mode-tabs,.store-category-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.store-mode-tabs::-webkit-scrollbar,.store-category-tabs::-webkit-scrollbar{display:none}.store-mode-tabs{padding:4px;border-radius:24px;background:#f1f3f4}.store-mode-tabs button{flex:1;min-width:88px;min-height:38px;padding:7px 12px;border-radius:20px;font-weight:800;color:#687485}.store-mode-tabs button.active{background:#fff;color:#0b57d0;box-shadow:0 1px 3px #2021241a}.store-category-tabs button{min-height:34px;padding:6px 13px;border:1px solid #e0e5ec;border-radius:18px;background:#fff;color:#6d7785;font-size:10px;font-weight:800;white-space:nowrap}.store-category-tabs button.active{border-color:#b9d0f5;background:#eaf2ff;color:#1557a8}.store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.store-item{display:grid;grid-template-columns:68px minmax(0,1fr);grid-template-rows:1fr auto;gap:9px 12px;min-width:0;padding:12px;border:1px solid #e2e7ee;border-radius:14px;background:#fff;box-shadow:0 1px 2px #20212408}.store-item-preview{grid-row:1/3;display:grid;place-items:center;min-height:84px;border-radius:11px;background:#f6f8fb;overflow:hidden}.store-item-copy{min-width:0}.store-item-title{display:flex;align-items:center;justify-content:space-between;gap:7px}.store-item-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#31445b}.store-item-title span{flex:0 0 auto;padding:2px 6px;border-radius:999px;background:#edf1f6;color:#768395;font-size:7px;font-weight:900}.store-item p{margin:5px 0 0;color:#8893a1;font-size:9px;line-height:1.45}.store-item-action{display:flex;align-items:center;justify-content:flex-end}.store-item .button.small{min-height:30px;padding:5px 11px;font-size:9px}.store-owned,.store-only-draw{font-size:9px;font-weight:800}.store-owned{color:#188038}.store-only-draw{color:#7a55bb}.store-empty{grid-column:1/-1;padding:30px 14px;text-align:center;color:#909aa7;font-size:11px}.store-item.rarity-rare{border-color:#cfdcf2}.store-item.rarity-epic{border-color:#d7c9f3;background:linear-gradient(145deg,#fff,#fbf8ff)}.store-item.rarity-legendary{border-color:#ead39a;background:linear-gradient(145deg,#fffdf8,#fff8e8)}.rarity-rare .store-item-title span,.gacha-result-card.rarity-rare small{background:#eaf2ff;color:#2268b2}.rarity-epic .store-item-title span,.gacha-result-card.rarity-epic small{background:#f1e9ff;color:#754bb4}.rarity-legendary .store-item-title span,.gacha-result-card.rarity-legendary small{background:#fff1cb;color:#9a6613}
.store-preview-avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#e7edf5;color:#536982;font-size:16px;font-weight:900}.store-preview-name{font-size:12px;font-weight:900}.store-preview-badge{padding:5px 8px;border-radius:999px;background:#eaf0f8;color:#526780;font-size:8px;font-weight:900}.store-preview-bubble{padding:7px 10px;border-radius:12px;background:#eaf2ff;color:#386595;font-size:9px;font-weight:800}.store-preview-game{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#e8eef6;color:#526b8a}.store-preview-game svg{width:24px;height:24px}
.gacha-panel{display:grid;justify-items:center;gap:10px;padding:8px 4px 4px}.gacha-wheel-wrap{position:relative;width:min(290px,72vw);aspect-ratio:1}.gacha-pointer{position:absolute;z-index:2;left:50%;top:-3px;transform:translateX(-50%);width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:25px solid #174ea6;filter:drop-shadow(0 2px 2px #0002)}.gacha-wheel{--gacha-turns:6.08turn;position:absolute;inset:9px;border:8px solid #fff;border-radius:50%;background:conic-gradient(#dfe9f7 0 12.5%,#cbdcf6 12.5% 25%,#e8eef6 25% 37.5%,#dbcdf6 37.5% 50%,#edf1f6 50% 62.5%,#c9dcf6 62.5% 75%,#e6edf6 75% 87.5%,#f2d58d 87.5% 100%);box-shadow:0 6px 24px #52677d25,0 0 0 1px #dfe5ec;transition:none}.gacha-wheel.spinning{animation:gachaSpin 2.05s cubic-bezier(.12,.68,.08,1) forwards}.gacha-wheel>span{position:absolute;left:50%;top:50%;width:46%;height:18px;margin:-9px 0 0 -46%;transform-origin:100% 50%;text-align:left;padding-left:7px;font-size:8px;font-weight:900;color:#4c5c70}.gacha-wheel>span:nth-child(1){transform:rotate(-67.5deg)}.gacha-wheel>span:nth-child(2){transform:rotate(-22.5deg)}.gacha-wheel>span:nth-child(3){transform:rotate(22.5deg)}.gacha-wheel>span:nth-child(4){transform:rotate(67.5deg)}.gacha-wheel>span:nth-child(5){transform:rotate(112.5deg)}.gacha-wheel>span:nth-child(6){transform:rotate(157.5deg)}.gacha-wheel>span:nth-child(7){transform:rotate(202.5deg)}.gacha-wheel>span:nth-child(8){transform:rotate(247.5deg)}.gacha-wheel>b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78px;height:78px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#174ea6;font-size:16px;box-shadow:0 2px 10px #2e405820}.gacha-panel h3{margin:2px 0 0;font-size:16px}.gacha-panel>p{max-width:520px;margin:0;text-align:center;color:#7b8796;font-size:10px;line-height:1.55}.gacha-odds{display:grid;grid-template-columns:repeat(4,1fr);width:min(520px,100%);gap:6px}.gacha-odds span{display:grid;gap:2px;padding:8px;border-radius:10px;background:#f5f7fa;text-align:center;color:#7b8796;font-size:8px}.gacha-odds b{color:#344a64;font-size:10px}.gacha-refund-note{padding:8px 11px;border-radius:10px;background:#f5f7fa;color:#6f7d8f;font-size:9px}.gacha-draw-button{min-width:180px}.gacha-result{min-height:70px;width:min(430px,100%)}.gacha-result-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e0e6ed;border-radius:12px;background:#fff}.gacha-result-card>div:last-child{display:grid;gap:2px}.gacha-result-card small{width:max-content;padding:2px 6px;border-radius:999px;background:#edf1f6;color:#758397;font-size:7px;font-weight:900}.gacha-result-card strong{font-size:12px;color:#31445c}.gacha-result-card span{font-size:9px;color:#7d8896}@keyframes gachaSpin{from{transform:rotate(0)}to{transform:rotate(var(--gacha-turns))}}
/* cosmetic classes are intentionally static: server values are whitelisted to cos-* before use. */
.cos-frame-cloud{box-shadow:0 0 0 3px #c9ddf7!important}.cos-frame-mint{box-shadow:0 0 0 3px #bdebdc!important}.cos-frame-gold{box-shadow:0 0 0 3px #e8c76c,0 0 10px #e8c76c55!important}.cos-frame-dots{box-shadow:0 0 0 3px #93a9c6!important;border-style:dotted!important}.cos-frame-crystal{box-shadow:0 0 0 3px #b8daf1,0 0 12px #a6dff077!important}.cos-frame-prism{box-shadow:0 0 0 3px #c8a9ff,0 0 12px #6ed8ff66!important}.cos-frame-cosmic{box-shadow:0 0 0 3px #7456c9,0 0 15px #7456c977!important}.cos-name-ocean{color:#1769aa!important}.cos-name-grape{color:#7452a8!important}.cos-name-sunset{background:linear-gradient(90deg,#e56f5a,#bd6db5);-webkit-background-clip:text;background-clip:text;color:transparent!important}.cos-name-silver{color:#77879a!important;text-shadow:0 1px #fff}.cos-name-starlight{color:#5875b9!important;text-shadow:0 0 8px #8bbcff66}.cos-name-neon{color:#6b3fb4!important;text-shadow:0 0 8px #9a74e999}.cos-badge-solver,.cos-badge-veteran,.cos-badge-spark,.cos-badge-lucky,.cos-badge-crown{font-weight:900}.cos-badge-crown{background:#fff0bd!important;color:#936214!important}.cos-badge-lucky{background:#ece4ff!important;color:#6d43af!important}.cos-bubble-sky{background-image:linear-gradient(#e8f2ff,#e8f2ff)!important}.cos-bubble-mint{background-image:linear-gradient(#e4f7f0,#e4f7f0)!important}.cos-bubble-starlight{background-image:linear-gradient(135deg,#edf2ff,#f4edff)!important}.cos-game-rush-night,.cos-game-flip-aurora,.cos-game-hologram{--cosmetic-game-accent:#6e8ab2}
@media(max-width:760px){dialog:has(.store-shell){width:calc(100vw - 16px)}.store-shell{gap:11px}.store-balance-card{padding:13px 14px}.store-balance-card strong{font-size:19px}.store-grid{grid-template-columns:1fr}.store-item{grid-template-columns:62px minmax(0,1fr);padding:10px}.store-item-preview{min-height:74px}.store-mode-tabs button{min-width:76px;min-height:42px}.store-category-tabs button{min-height:38px}.gacha-wheel-wrap{width:min(270px,76vw)}.gacha-odds{grid-template-columns:repeat(2,1fr)}.mini-profile.enriched{min-width:min(250px,calc(100vw - 34px))}}

/* v0.6.56 expanded cosmetic catalog */
.cos-frame-rose{box-shadow:0 0 0 3px #e9a9b8,0 0 10px #e9a9b833!important}
.cos-frame-ice{box-shadow:0 0 0 3px #a9d7ee,0 0 12px #8ed8f25c!important}
.cos-frame-ember{box-shadow:0 0 0 3px #e6a05f,0 0 12px #e0783952!important}
.cos-frame-lavender{box-shadow:0 0 0 3px #c9b7ed,0 0 11px #a98be04d!important}
.cos-frame-eclipse{box-shadow:0 0 0 3px #5f6672,0 0 0 5px #d6a95c66!important}
.cos-frame-rainbow{box-shadow:0 0 0 3px #8eb8ff,0 0 12px #da7de780,0 0 18px #78d5b966!important}
.cos-frame-meteor{box-shadow:0 0 0 3px #ffb35d,0 0 15px #7e64df80,0 0 22px #ff7d6659!important}
.cos-name-forest{color:#2b7657!important}.cos-name-cherry{color:#c74768!important}.cos-name-amber{background:linear-gradient(90deg,#c8791f,#e1ad47);-webkit-background-clip:text;background-clip:text;color:transparent!important}.cos-name-midnight{background:linear-gradient(90deg,#364b8e,#7953a8);-webkit-background-clip:text;background-clip:text;color:transparent!important}.cos-name-comet{color:#3c72ba!important;text-shadow:0 0 8px #6db8ff73}.cos-name-cyber{color:#168f8b!important;text-shadow:0 0 9px #42e0d36b}.cos-name-royal{background:linear-gradient(90deg,#9a6815,#e4b84d,#aa7020);-webkit-background-clip:text;background-clip:text;color:transparent!important;text-shadow:0 0 7px #e5bd5752}
.cos-bubble-peach{background-image:linear-gradient(#fff0ea,#fff0ea)!important}.cos-bubble-lavender{background-image:linear-gradient(#f2ecff,#f2ecff)!important}.cos-bubble-graphite{background-image:linear-gradient(#e8edf2,#e8edf2)!important}.cos-bubble-sun{background-image:linear-gradient(#fff5d9,#fff5d9)!important}.cos-bubble-cosmos{background-image:linear-gradient(135deg,#e8edff,#efe7ff)!important}.cos-bubble-glass{background-image:linear-gradient(135deg,#f7fbffcc,#eef5ffb8)!important;box-shadow:inset 0 0 0 1px #bcd2e766}.cos-bubble-aurora{background-image:linear-gradient(135deg,#e5f8f2,#e8efff,#f4e9ff)!important}
.cos-badge-speed,.cos-badge-strategy,.cos-badge-champion,.cos-badge-star,.cos-badge-diamond,.cos-badge-phoenix{font-weight:900}.cos-badge-speed{background:#e5f1ff!important;color:#2364a8!important}.cos-badge-strategy{background:#e8f5ec!important;color:#28724a!important}.cos-badge-champion{background:#fff0c9!important;color:#9b6510!important}.cos-badge-star{background:#edf2ff!important;color:#4967a9!important}.cos-badge-diamond{background:#e7f8fb!important;color:#237c8b!important}.cos-badge-phoenix{background:linear-gradient(90deg,#fff0d0,#ffe0dc)!important;color:#a14b2b!important}
.store-preview-game.cos-game-rush-night{background:#dbe1ea;color:#36485f}.store-preview-game.cos-game-rush-desert{background:#ead2a6;color:#80613b}.store-preview-game.cos-game-rush-mint{background:#d9eee5;color:#3d7560}.store-preview-game.cos-game-rush-sakura{background:#f3dce2;color:#9b5b72}.store-preview-game.cos-game-rush-neon{background:#263248;color:#61d6e8;box-shadow:inset 0 0 0 2px #61d6e844}.store-preview-game.cos-game-rush-obsidian{background:#303238;color:#c9d0d8}.store-preview-game.cos-game-flip-aurora{background:linear-gradient(145deg,#dcecff,#e6dcff);color:#626fc5}.store-preview-game.cos-game-flip-ocean{background:#d9eef6;color:#287f9d}.store-preview-game.cos-game-flip-sunset{background:linear-gradient(145deg,#ffe2cf,#f5d8e3);color:#b75f70}.store-preview-game.cos-game-flip-mono{background:#e4e7ea;color:#535b66}.store-preview-game.cos-game-flip-cosmic{background:#e3ddf6;color:#6c54b0}.store-preview-game.cos-game-flip-crystal{background:#e5f5fa;color:#3f91ad}.store-preview-game.cos-game-hologram{background:linear-gradient(145deg,#e5eeff,#eee3ff,#dff6ef);color:#6178af}

/* v0.6.57 tier emblems */
.rank-tier-emblem{width:64px;height:30px;object-fit:contain;flex:0 0 64px;filter:drop-shadow(0 2px 3px rgba(47,60,78,.12));pointer-events:none}
.rank-row-button{align-items:center}
.rank-row-button.mine .rank-tier-emblem{filter:drop-shadow(0 2px 5px rgba(26,115,232,.2))}
@media(max-width:600px){.rank-tier-emblem{width:52px;height:26px;flex-basis:52px}.rank-row{gap:7px}.rank-num{width:27px}.rank-score{font-size:12px}}

/* v0.6.58 — compact sidebar + card-carousel shop */
dialog:has(.store-shell){width:min(860px,calc(100vw - 24px));height:min(690px,calc(100dvh - 28px));max-height:none}
dialog:has(.store-shell) #modal-body{height:calc(100% - 62px);max-height:none;overflow:hidden;padding:10px 16px 16px}
.store-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:9px}
.store-balance-card{min-height:50px;padding:9px 14px;border-radius:14px}.store-balance-card strong{font-size:20px}.store-balance-card span{font-size:10px}.store-balance-card small{font-size:9px}
.store-mode-tabs{min-height:38px;padding:3px}.store-mode-tabs button{min-height:32px;padding:5px 10px;font-size:11px}
.store-workspace{min-height:0;display:grid;grid-template-columns:118px minmax(0,1fr);gap:11px;overflow:hidden}
.store-category-sidebar{min-height:0;padding:6px;display:flex;flex-direction:column;gap:5px;border:1px solid #e2e7ef;border-radius:15px;background:#f7f9fc;overflow:auto;scrollbar-width:thin}
.store-category-sidebar button{min-height:48px;padding:7px 8px;border-radius:11px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:6px;text-align:left;color:#697689;transition:background .14s ease,color .14s ease,box-shadow .14s ease}
.store-category-sidebar button>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eef2f7;color:#617187;font-size:10px;font-weight:950;letter-spacing:-.04em}
.store-category-sidebar button>b{font-size:10px;line-height:1.25}.store-category-sidebar button:hover{background:#eef3fa}.store-category-sidebar button.active{background:#fff;color:#1557a8;box-shadow:0 1px 4px #25344b14}.store-category-sidebar button.active>span{background:#e4efff;color:#1557a8}
.store-browser{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:7px;overflow:hidden}
.store-carousel-head{display:flex;align-items:center;justify-content:space-between;padding:0 5px;color:#778497;font-size:10px;font-weight:800}.store-carousel-head strong{color:#3d526d;font-variant-numeric:tabular-nums}
.store-carousel{position:relative;min-height:0;display:grid;grid-template-columns:34px 82px minmax(0,1fr) 82px 34px;gap:7px;align-items:center;overflow:hidden}
.store-carousel-stage{min-width:0;min-height:0;height:100%;display:grid;place-items:center;touch-action:pan-y}
.store-carousel-arrow{width:34px;height:54px;border:1px solid #dbe3ed;border-radius:13px;background:#fff;color:#4e617a;font-size:28px;line-height:1;box-shadow:0 2px 7px #25344b0d}.store-carousel-arrow:hover:not(:disabled){background:#edf4ff;color:#1557a8}.store-carousel-arrow:disabled{opacity:.28}
.store-peek{height:70%;min-height:180px;border:1px solid #e3e8ef;border-radius:14px;background:#fafbfd;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:6px;padding:8px 5px;color:#8894a3;opacity:.72;overflow:hidden;transition:opacity .14s ease,transform .14s ease,background .14s ease}.store-peek:hover{opacity:1;background:#f2f6fb;transform:scale(1.02)}.store-peek img{width:100%;height:100%;min-height:0;object-fit:contain}.store-peek span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:800}
.store-feature-card{width:min(360px,100%);height:min(385px,100%);min-height:310px;display:grid;grid-template-rows:minmax(0,1.35fr) auto auto;overflow:hidden;border:1px solid #dfe5ed;border-radius:20px;background:#fff;box-shadow:0 8px 26px #33455e14}
.store-feature-card.rarity-rare{border-color:#c8daf4}.store-feature-card.rarity-epic{border-color:#d9c8f4;background:linear-gradient(160deg,#fff 0,#fcf9ff 100%)}.store-feature-card.rarity-legendary{border-color:#e9ce82;background:linear-gradient(160deg,#fff 0,#fff9e9 100%);box-shadow:0 9px 28px #a7781b1a}
.store-feature-art{min-height:0;padding:14px 16px 7px;display:grid;place-items:center;background:linear-gradient(180deg,#f8fafe,#f2f6fb)}.store-feature-card.rarity-epic .store-feature-art{background:linear-gradient(180deg,#fbf8ff,#f5efff)}.store-feature-card.rarity-legendary .store-feature-art{background:linear-gradient(180deg,#fffaf0,#fff5d9)}
.store-item-svg{display:block;width:min(210px,86%);height:min(210px,100%);object-fit:contain;filter:drop-shadow(0 7px 11px rgba(45,61,82,.12))}
.store-feature-copy{padding:8px 16px 7px;min-width:0}.store-feature-top{display:flex;align-items:center;gap:6px;margin-bottom:5px}.store-rarity,.store-source-badge{width:max-content;padding:3px 7px;border-radius:999px;font-size:7px;font-weight:950;letter-spacing:.03em;background:#edf1f6;color:#738195}.store-rarity.rarity-rare{background:#e9f2ff;color:#2468b2}.store-rarity.rarity-epic{background:#f1e9ff;color:#7449b5}.store-rarity.rarity-legendary{background:#fff0c2;color:#94600b}.store-source-badge{background:#f0ecf8;color:#71569d}
.store-feature-copy>strong{display:block;color:#2f435b;font-size:15px;line-height:1.3}.store-feature-copy>p{min-height:31px;margin:5px 0 7px;color:#7d8998;font-size:9px;line-height:1.5}.store-feature-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#8c97a5;font-size:8px}.store-feature-meta b{color:#188038}
.store-feature-action{min-height:49px;padding:7px 16px 12px;display:flex;align-items:center;justify-content:flex-end}.store-feature-action .button{min-width:118px}.store-owned,.store-only-draw{font-size:10px;font-weight:850}.store-owned{color:#188038}.store-only-draw{color:#7652b5}
.store-carousel-dots{height:15px;display:flex;align-items:center;justify-content:center;gap:4px;overflow:hidden}.store-carousel-dots button{width:6px;height:6px;padding:0;border-radius:50%;background:#d6dde6}.store-carousel-dots button.active{width:16px;border-radius:5px;background:#1a73e8}.store-carousel-dots span{font-size:8px;color:#8b96a4}
.store-browser>.store-empty{height:100%;display:grid;place-items:center;border:1px dashed #dce3eb;border-radius:16px;background:#fafbfd}
.store-shell-gacha{grid-template-rows:auto auto minmax(0,1fr)}.store-shell-gacha .gacha-panel{height:100%;min-height:0;display:grid;grid-template-columns:minmax(230px,.8fr) minmax(280px,1.2fr);grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:6px 20px;padding:4px 12px;overflow:hidden}.store-shell-gacha .gacha-wheel-wrap{grid-row:1/3;width:min(280px,40dvh,32vw)}.store-shell-gacha .gacha-copy{align-self:center;display:grid;gap:8px;width:100%}.store-shell-gacha .gacha-copy h3{margin:0;font-size:17px}.store-shell-gacha .gacha-copy p{margin:0;color:#7b8796;font-size:10px;line-height:1.55}.store-shell-gacha .gacha-result{grid-column:2;width:100%;min-height:58px}.gacha-result-card .store-item-svg{width:52px;height:52px;filter:none}

@media(max-width:760px){
 dialog:has(.store-shell){height:min(88dvh,760px);width:100vw!important;max-width:100vw!important}
 dialog:has(.store-shell) #modal-body{height:calc(100% - 58px);padding:7px 8px calc(10px + env(safe-area-inset-bottom))}
 .store-shell{gap:7px}.store-balance-card{min-height:44px;padding:7px 10px}.store-balance-card strong{font-size:18px}.store-balance-card small{font-size:8px}
 .store-mode-tabs{min-height:36px}.store-mode-tabs button{min-width:0;min-height:30px;font-size:10px}
 .store-workspace{grid-template-columns:82px minmax(0,1fr);gap:7px}.store-category-sidebar{padding:4px;gap:3px;border-radius:13px}.store-category-sidebar button{min-height:44px;grid-template-columns:24px minmax(0,1fr);gap:4px;padding:5px 4px;border-radius:9px}.store-category-sidebar button>span{width:24px;height:24px;border-radius:8px;font-size:8px}.store-category-sidebar button>b{font-size:8px}
 .store-carousel{grid-template-columns:29px minmax(0,1fr) 29px;gap:4px}.store-peek{display:none}.store-carousel-arrow{width:29px;height:48px;font-size:24px;border-radius:11px}.store-feature-card{width:100%;height:100%;min-height:300px;border-radius:16px}.store-feature-art{padding:9px 8px 4px}.store-item-svg{width:min(176px,88%);height:min(176px,100%)}.store-feature-copy{padding:7px 11px 5px}.store-feature-copy>strong{font-size:13px}.store-feature-copy>p{min-height:27px;font-size:8px;margin:4px 0 6px}.store-feature-action{min-height:44px;padding:6px 11px 9px}.store-feature-action .button{min-width:104px;min-height:34px;font-size:9px}.store-carousel-head{font-size:9px}.store-carousel-dots{height:12px}.store-carousel-dots button{width:5px;height:5px}.store-carousel-dots button.active{width:13px}
 .store-shell-gacha .gacha-panel{grid-template-columns:1fr 1fr;gap:5px 8px;padding:1px 4px}.store-shell-gacha .gacha-wheel-wrap{width:min(210px,43vw,28dvh)}.store-shell-gacha .gacha-copy{gap:5px}.store-shell-gacha .gacha-copy h3{font-size:14px}.store-shell-gacha .gacha-copy p{font-size:8px;line-height:1.4}.store-shell-gacha .gacha-odds{grid-template-columns:repeat(2,1fr);gap:3px}.store-shell-gacha .gacha-odds span{padding:5px;font-size:7px}.store-shell-gacha .gacha-refund-note{padding:6px 7px;font-size:8px}.store-shell-gacha .gacha-draw-button{min-width:0;width:100%;min-height:34px;font-size:9px}.store-shell-gacha .gacha-result{min-height:48px}.gacha-result-card{padding:6px 8px}.gacha-result-card .store-item-svg{width:42px;height:42px}
}

/* v0.6.59 — service-controlled shop, game-specific theme browser, proportional draw wheel */
.store-balance-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:14px;align-items:center}
.store-balance-card>span{grid-column:1;grid-row:1}.store-balance-card>small{grid-column:1;grid-row:2}.store-token-value{grid-column:2;grid-row:1/3;display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-width:88px;color:#1c579b}.store-token-value svg{width:24px;height:24px;fill:#f0b72f;color:#f0b72f;filter:drop-shadow(0 1px 1px #b8861c40)}.store-token-value strong{font-size:21px!important;font-variant-numeric:tabular-nums;color:#243b56}
.store-game-browser{grid-template-rows:auto minmax(0,1fr)}
.store-game-group-grid{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;padding:2px 4px 5px;scrollbar-width:thin}
.store-game-group-card{min-width:0;min-height:82px;display:grid;grid-template-columns:66px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:8px;border:1px solid #dfe6ee;border-radius:15px;background:#fff;text-align:left;color:#40536a;box-shadow:0 2px 8px #26384f0b;transition:transform .13s ease,border-color .13s ease,background .13s ease}
.store-game-group-card:hover{transform:translateY(-1px);border-color:#c8d9ee;background:#f9fbfe}.store-game-group-art{width:66px;height:60px;display:grid;place-items:center;border-radius:11px;background:#f3f6fa;overflow:hidden}.store-game-group-art img{width:100%;height:100%;object-fit:contain}.store-game-group-card>span:nth-child(2){min-width:0;display:grid;gap:4px}.store-game-group-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.store-game-group-card small{font-size:8px;color:#8995a4}.store-game-group-card>b{font-size:20px;color:#9ba7b5}
.store-game-subhead{min-height:25px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 4px}.store-game-subhead button{border:0;background:transparent;color:#1769bd;font-size:9px;font-weight:850;padding:4px 5px}.store-game-subhead strong{text-align:center;font-size:10px;color:#43566e}.store-game-subhead:after{content:"";width:54px}
.gacha-wheel{background:conic-gradient(#e8eef6 0 70%,#cbdcf6 70% 92%,#dbcdf6 92% 99%,#f2d58d 99% 100%)}
.gacha-wheel>b{display:flex!important;align-items:center;justify-content:center;gap:5px}.gacha-wheel>b svg{width:20px;height:20px;fill:#f0b72f;color:#f0b72f}.gacha-wheel>b span{font-size:15px;color:#174ea6}
.gacha-refund-note{display:none!important}
#popover button:disabled{opacity:.52;cursor:not-allowed}
@media(max-width:760px){.store-balance-card{grid-template-columns:minmax(0,1fr) auto}.store-token-value{min-width:78px}.store-token-value svg{width:21px;height:21px}.store-token-value strong{font-size:19px!important}.store-game-group-grid{grid-template-columns:1fr;gap:6px}.store-game-group-card{min-height:67px;grid-template-columns:54px minmax(0,1fr) 16px;padding:6px}.store-game-group-art{width:54px;height:50px}.store-game-group-card strong{font-size:10px}.store-game-group-card small{font-size:7px}}

/* v0.6.59 long-session rendering guard: off-screen chat rows avoid full layout/paint work. */
.message{content-visibility:auto;contain-intrinsic-size:72px}
.date-divider{content-visibility:auto;contain-intrinsic-size:28px}

/* v0.6.60 — exact T-token mark supplied for store balance */
.store-balance-card{grid-template-rows:auto!important}
.store-balance-card>span{grid-column:1;grid-row:1}
.store-token-value{grid-column:2;grid-row:1;display:inline-flex;align-items:center;gap:6px;min-width:0}
.store-token-value img{width:19px;height:19px;display:block;object-fit:contain;image-rendering:auto;flex:0 0 19px}
.store-token-value strong{font-size:18px!important;color:#1458a8!important;font-weight:800}

/* Item samples remain inside the store so no inventory state changes on preview. */
.store-preview-button{margin-bottom:6px}
.store-preview-overlay{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:16px;background:rgba(21,34,53,.55);overflow:auto}
.store-preview-panel{position:relative;width:min(460px,100%);max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;border-radius:20px;padding:22px;background:#fff;box-shadow:0 18px 55px #10203855;text-align:center}
.store-preview-panel h3{margin:3px 28px 16px;font-size:20px}.store-preview-panel p{margin:14px auto;color:#536172;line-height:1.5}
.store-preview-close{position:absolute;right:13px;top:10px;border:0;background:transparent;font-size:27px;cursor:pointer}
.store-preview-profile{min-height:145px;display:flex;align-items:center;justify-content:center;gap:15px;border-radius:16px;background:#f5f8fe}
.store-preview-profile .avatar{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#d9e8ff;font-size:24px}
.store-preview-profile strong{font-size:18px}.store-preview-profile .mini-profile-badge{padding:7px 10px;border-radius:10px}
.store-preview-chat{text-align:left;padding:20px;border-radius:16px;background:#f6f8fc}.store-preview-chat strong{display:block;margin-bottom:8px}.store-preview-chat .bubble{display:inline-block;max-width:95%;padding:12px 16px;border-radius:16px;border:1px solid #dce3ef}
.store-preview-game{display:flex;align-items:center;flex-direction:column;gap:8px;padding:14px;border-radius:16px;background:#e7eef9;color:#31536b}
.store-preview-mini-board{display:grid;grid-template-columns:repeat(3,32px);grid-template-rows:repeat(3,32px);gap:4px;padding:10px;border-radius:12px;background:color-mix(in srgb,currentColor 16%,white)}
.store-preview-mini-board span{border-radius:5px;background:color-mix(in srgb,currentColor 30%,white)}.store-preview-mini-board span:nth-child(2n){background:color-mix(in srgb,currentColor 72%,white)}
.store-preview-game[class*="-dawn"]{background:#def5fb;color:#1c829d}.store-preview-game[class*="-night"]{background:#252541;color:#d8bcfa}
.store-preview-game small{font-size:11px}.store-preview-chess{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;padding:20px;border-radius:16px;background:#e8eef7}.store-preview-chess span{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:#f9fbff;font-size:37px}.store-preview-chess small{width:100%;font-size:11px}
.store-preview-chess.cos-chess-piece-ink span{color:#314f7b;text-shadow:0 1px #0e1f37}.store-preview-chess.cos-chess-piece-gem span{color:#8734a9;text-shadow:0 0 8px #bd7dcb}

/* v0.6.62: browse by category, then inspect a selected direct-purchase item. */
.store-list-browser{display:flex!important;flex-direction:column;min-height:0;overflow:hidden!important;padding:8px!important;background:linear-gradient(135deg,#f8fbff,#f4f1ff)}
.store-list-head{display:flex;align-items:center;justify-content:space-between;padding:7px 11px;color:#284063}.store-list-head strong{font-size:15px}.store-list-head span{font-size:11px;color:#6d7990}
.store-list-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(180px,31%) minmax(0,1fr);gap:10px}
.store-list{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:3px;scrollbar-width:thin;overscroll-behavior:contain}
.store-list-row{border:1px solid #e1e8f4;border-radius:13px;background:#fff;display:grid;grid-template-columns:49px minmax(0,1fr);grid-template-rows:auto auto;gap:0 9px;align-items:center;min-height:62px;padding:5px 8px;text-align:left;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.store-list-row:hover,.store-list-row:focus-visible{transform:translateY(-1px);border-color:#9ebbf0;box-shadow:0 7px 20px #354c7722}.store-list-row.selected{border-color:#6b9cef;background:#edf4ff;box-shadow:inset 3px 0 #4285f4}
.store-list-row img{grid-row:1/3;width:49px;height:49px;object-fit:contain;border-radius:9px;background:#f1f5fc}.store-list-row span{min-width:0}.store-list-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#243954}.store-list-row small{font-size:9px;color:#7b8ba3}.store-list-row>b{font-size:10px;color:#3166ae}
.store-detail{display:grid;grid-template-columns:minmax(140px,46%) minmax(0,1fr);min-height:0;overflow:auto;gap:13px;padding:14px;border:1px solid #dde5f3;border-radius:19px;background:#fff;box-shadow:0 12px 34px #21395a14}
.store-detail-art{min-height:220px;border-radius:17px;display:grid;place-items:center;background:radial-gradient(circle at 28% 22%,#fff,#e2efff 56%,#d4dff8);overflow:hidden}.store-detail-art img{max-width:93%;max-height:260px;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 14px 14px #32416935);animation:store-art-float 5s ease-in-out infinite}
.store-detail.rarity-epic .store-detail-art{background:radial-gradient(circle at 30% 20%,#fff,#e8e0fc 62%,#dcd5ef)}.store-detail.rarity-legendary .store-detail-art{background:radial-gradient(circle at 30% 20%,#fffdf2,#f7e9ca 64%,#e9d59b)}
@keyframes store-art-float{50%{transform:translateY(-6px) rotate(1deg)}}
.store-detail-copy{display:flex;flex-direction:column;align-items:stretch;min-width:0;gap:8px}.store-detail-copy h3{margin:0;color:#293e5a;font-size:19px}.store-detail-copy>p{font-size:11px;color:#65748a;line-height:1.55;margin:0}.store-detail-copy>.store-rarity{align-self:flex-start}.store-detail-copy .store-preview-game,.store-detail-copy .store-preview-chess,.store-detail-copy .store-preview-profile,.store-detail-copy .store-preview-chat{min-height:88px;width:100%;box-sizing:border-box}.store-detail-copy .store-preview-mini-board{width:75px;height:75px}.store-detail-price{font-size:14px;color:#265ba5;margin-top:auto}.store-detail-actions{padding-top:4px}.store-detail-actions .button{width:100%;min-height:40px;border-radius:12px}
@media(max-width:760px){.store-list-layout{grid-template-columns:minmax(105px,38%) minmax(0,1fr);gap:5px}.store-list-row{grid-template-columns:34px minmax(0,1fr);min-height:51px;gap:0 5px;padding:4px}.store-list-row img{width:34px;height:34px}.store-list-row strong{font-size:9px}.store-list-row small,.store-list-row>b{font-size:8px}.store-detail{grid-template-columns:1fr;gap:6px;padding:8px}.store-detail-art{min-height:120px;max-height:150px}.store-detail-art img{max-height:140px}.store-detail-copy{gap:5px}.store-detail-copy h3{font-size:13px}.store-detail-copy>p{font-size:9px}.store-detail-copy .store-preview-game,.store-detail-copy .store-preview-chess,.store-detail-copy .store-preview-profile,.store-detail-copy .store-preview-chat{min-height:70px;padding:6px}.store-detail-copy .store-preview-mini-board{width:48px;height:48px}.store-detail-actions .button{min-height:36px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.store-detail-art img{animation:none}.store-list-row{transition:none}}
.avatar img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}
.account-avatar-options{display:flex;align-items:center;gap:16px;padding:15px;margin:12px 0 20px;border:1px solid #e1e8f2;border-radius:14px;background:#f7faff}
.account-avatar-preview{width:70px;height:70px;flex:none;font-size:26px}.account-avatar-options strong{display:block;color:#243954}.account-avatar-options p{margin:5px 0 10px;color:#6b7990;font-size:12px}.account-avatar-actions{display:flex;gap:8px;flex-wrap:wrap}.avatar-file-label{display:inline-flex;align-items:center;justify-content:center;margin:0;cursor:pointer}
.inline-media{display:flex;align-items:center;justify-content:center;width:min(100%,390px);height:220px;margin-top:7px;border-radius:10px;overflow:hidden;background:#eaf0f8;color:#667b95;font-size:12px}
.inline-media-element{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:600px){.inline-media{height:min(48vw,220px);min-height:145px}.account-avatar-options{align-items:flex-start}.account-avatar-actions .button{font-size:12px}}
@media(max-width:760px){.store-list-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(112px,27%) minmax(0,1fr);gap:7px}.store-detail{grid-template-columns:minmax(92px,41%) minmax(0,1fr);align-items:stretch}.store-detail-art{min-height:170px;max-height:none}.store-detail-art img{max-height:210px}.store-detail-copy{min-width:0;overflow-wrap:anywhere}.store-detail-copy .store-preview-profile{flex-wrap:wrap}.store-list-row strong{font-size:10px}}

/* v0.6.64 — category-specific cosmetic draw and full-screen tier reveal. */
.store-shell-gacha .gacha-panel{grid-template-columns:minmax(230px,.82fr) minmax(280px,1.18fr);grid-template-rows:auto minmax(0,1fr) auto;gap:8px 20px;padding:6px 12px}
.gacha-category-tabs{grid-column:1/-1;grid-row:1;width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:2px}
.gacha-category-tabs button{min-width:0;min-height:46px;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:7px;padding:6px 9px;border:1px solid #e0e7f0;border-radius:13px;background:#f7f9fc;color:#6e7c90;text-align:left;transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}
.gacha-category-tabs button:hover{transform:translateY(-1px);border-color:#bfd2ed;background:#fff}.gacha-category-tabs button.active{border-color:#8fb6ec;background:#eaf3ff;color:#1558a9;box-shadow:0 4px 14px #345f9620}
.gacha-category-tabs button>span{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#edf1f7;font-size:10px;font-weight:950}.gacha-category-tabs button.active>span{background:#dbeaff}
.gacha-category-tabs button>b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.gacha-category-tabs button>small{font-size:7px;color:#94a0af}.gacha-category-tabs button.active>small{color:#5d83b5}
.store-shell-gacha .gacha-wheel-wrap{grid-column:1;grid-row:2/4;width:min(292px,40dvh,32vw)}
.store-shell-gacha .gacha-copy{grid-column:2;grid-row:2;align-self:center;gap:8px}
.store-shell-gacha .gacha-result{grid-column:2;grid-row:3}
.gacha-wheel{background:conic-gradient(#e8eef6 0 var(--gacha-common-end,70%),#cbdcf6 var(--gacha-common-end,70%) var(--gacha-rare-end,92%),#dbcdf6 var(--gacha-rare-end,92%) var(--gacha-epic-end,99%),#f2d58d var(--gacha-epic-end,99%) var(--gacha-legendary-end,100%))}
.gacha-wheel.spinning{animation:gachaSpin 4.55s cubic-bezier(.10,.70,.08,1) forwards}
.gacha-wheel>b{width:82px;height:82px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.gacha-wheel>b .gacha-wheel-category{display:grid;place-items:center;width:28px;height:25px;color:#174ea6;font-size:14px;font-weight:950;line-height:1}.gacha-wheel>b small{font-size:9px;font-weight:900;color:#68788d}
.gacha-copy-head{display:flex;align-items:center;gap:9px}.gacha-copy-head>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:#eaf2ff;color:#1558a9;font-size:11px;font-weight:950}.gacha-copy-head>div{display:grid;gap:1px}.gacha-copy-head small{font-size:8px;font-weight:850;color:#8995a5}.gacha-copy-head h3{line-height:1.15}
.gacha-pool-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.gacha-pool-meta span{padding:5px 8px;border-radius:9px;background:#f2f5f9;color:#7a8797;font-size:8px}.gacha-pool-meta b{color:#40546d}
.gacha-odds span{border:1px solid transparent}.gacha-odds span.rarity-common{background:#f2f5f8}.gacha-odds span.rarity-rare{background:#edf4ff;border-color:#d8e7fb}.gacha-odds span.rarity-epic{background:#f5efff;border-color:#e6d8fb}.gacha-odds span.rarity-legendary{background:#fff7df;border-color:#f1e1ac}.gacha-odds span.disabled{opacity:.42;filter:saturate(.45)}

.gacha-reveal-overlay{--gacha-rgb:105,128,154;position:absolute;inset:0;z-index:40;display:grid;place-items:center;overflow:hidden;padding:24px;box-sizing:border-box;border:0;border-radius:inherit;background:linear-gradient(145deg,rgba(var(--gacha-rgb),.2),rgba(9,16,29,.5));backdrop-filter:blur(18px) saturate(1.12);-webkit-backdrop-filter:blur(18px) saturate(1.12);opacity:0;transition:opacity .2s ease;cursor:pointer;isolation:isolate}
.gacha-reveal-overlay.rarity-rare{--gacha-rgb:66,133,244}.gacha-reveal-overlay.rarity-epic{--gacha-rgb:151,86,214}.gacha-reveal-overlay.rarity-legendary{--gacha-rgb:235,174,48}.gacha-reveal-overlay.show{opacity:1}
.gacha-reveal-glow{position:absolute;z-index:-1;width:min(72vw,660px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(var(--gacha-rgb),.45) 0,rgba(var(--gacha-rgb),.18) 37%,transparent 70%);filter:blur(18px);transform:scale(.72);opacity:.3;transition:transform .62s cubic-bezier(.16,.78,.2,1),opacity .45s ease}.gacha-reveal-overlay.show .gacha-reveal-glow{transform:scale(1.08);opacity:1}
.gacha-reveal-content{width:min(430px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(18px) scale(.93);opacity:0;transition:transform .46s cubic-bezier(.16,.78,.2,1),opacity .32s ease;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.25)}.gacha-reveal-overlay.show .gacha-reveal-content{transform:translateY(0) scale(1);opacity:1}
.gacha-reveal-tier{display:inline-flex;align-items:center;justify-content:center;min-width:90px;padding:6px 15px;border:1px solid rgba(255,255,255,.54);border-radius:999px;background:rgba(255,255,255,.18);box-shadow:0 5px 20px rgba(var(--gacha-rgb),.22);font-size:11px;font-weight:950;letter-spacing:.14em;color:#fff}
.gacha-reveal-art{width:min(230px,54vw);height:min(230px,54vw);display:grid;place-items:center;margin:18px 0 13px;border-radius:30%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.36),rgba(255,255,255,.08) 52%,rgba(var(--gacha-rgb),.13));box-shadow:0 25px 80px rgba(0,0,0,.22),0 0 58px rgba(var(--gacha-rgb),.38);animation:gachaRevealFloat 2.9s ease-in-out infinite}
.gacha-reveal-art .store-item-svg{width:90%;height:90%;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(0,0,0,.25));animation:none}
.gacha-reveal-name{max-width:100%;font-size:25px;line-height:1.2;letter-spacing:-.03em;overflow-wrap:anywhere}.gacha-reveal-status{margin-top:7px;font-size:11px;font-weight:800;color:rgba(255,255,255,.82)}
.gacha-reveal-continue{margin-top:20px;padding:8px 14px;border:0;border-radius:999px;background:rgba(255,255,255,.13);color:rgba(255,255,255,.8);font-size:9px;font-weight:800;cursor:pointer}
@keyframes gachaRevealFloat{50%{transform:translateY(-7px) scale(1.015)}}

@media(max-width:760px){
 .store-shell-gacha .gacha-panel{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);grid-template-rows:auto minmax(0,1fr) auto;gap:5px 8px;padding:1px 4px}
 .gacha-category-tabs{gap:3px;padding:0}.gacha-category-tabs button{min-height:39px;grid-template-columns:21px minmax(0,1fr);column-gap:4px;padding:4px;border-radius:9px}.gacha-category-tabs button>span{width:21px;height:21px;border-radius:7px;font-size:7px}.gacha-category-tabs button>b{font-size:7px}.gacha-category-tabs button>small{font-size:6px}
 .store-shell-gacha .gacha-wheel-wrap{width:min(216px,44vw,28dvh)}
 .gacha-wheel>b{width:64px;height:64px}.gacha-wheel>b .gacha-wheel-category{width:22px;height:20px;font-size:10px}.gacha-wheel>b small{font-size:7px}
 .gacha-copy-head{gap:6px}.gacha-copy-head>span{width:27px;height:27px;border-radius:8px;font-size:8px}.gacha-copy-head small{font-size:6px}.gacha-pool-meta{gap:3px}.gacha-pool-meta span{padding:3px 5px;font-size:6px}
 .gacha-reveal-overlay{padding:18px}.gacha-reveal-tier{min-width:76px;padding:5px 12px;font-size:9px}.gacha-reveal-art{width:min(178px,48vw);height:min(178px,48vw);margin:14px 0 11px}.gacha-reveal-name{font-size:20px}.gacha-reveal-status{font-size:9px}.gacha-reveal-continue{margin-top:16px;font-size:8px}
}
@media(prefers-reduced-motion:reduce){.gacha-wheel.spinning{animation-duration:.01ms}.gacha-reveal-overlay,.gacha-reveal-glow,.gacha-reveal-content{transition:none}.gacha-reveal-art{animation:none}}

/* v0.6.65 — polished cosmetics, circular framed avatars and true in-game theme previews. */
.avatar[class*="cos-frame-"]{
  --cos-frame-gradient:linear-gradient(135deg,#a9c4ea,#e8f1ff,#8eb5e9);
  position:relative;border:3px solid transparent!important;border-radius:50%!important;overflow:hidden!important;
  background:linear-gradient(#e5ebf3,#e5ebf3) padding-box,var(--cos-frame-gradient) border-box!important;
  background-size:100% 100%,240% 240%!important;background-position:center,0% 50%;
  animation:cos-frame-flow 5.2s ease-in-out infinite!important;
  box-shadow:0 0 10px color-mix(in srgb,currentColor 16%,transparent)!important;
  isolation:isolate
}
.avatar[class*="cos-frame-"]>img,.message-avatar[class*="cos-frame-"]>img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;border-radius:50%!important;object-fit:cover!important;display:block!important}
.message-avatar[class*="cos-frame-"]{aspect-ratio:1/1!important;flex:0 0 auto!important}
.cos-frame-cloud{--cos-frame-gradient:linear-gradient(120deg,#9ab9e6,#f8fbff,#b8d5f5,#8faee0)}
.cos-frame-mint{--cos-frame-gradient:linear-gradient(120deg,#7fd0b5,#e6fff6,#8ee7ca,#66b9a4)}
.cos-frame-gold{--cos-frame-gradient:linear-gradient(120deg,#b98220,#ffe7a0,#fff5cc,#d39b2d,#fff0a8)}
.cos-frame-dots{--cos-frame-gradient:repeating-linear-gradient(120deg,#7893b7 0 8px,#e9f2ff 8px 16px,#a8bad3 16px 24px)}
.cos-frame-crystal{--cos-frame-gradient:linear-gradient(120deg,#9fd7ed,#f8ffff,#b9d5ff,#dbbcff,#9ee4e6)}
.cos-frame-prism{--cos-frame-gradient:linear-gradient(120deg,#70d8ff,#bda0ff,#ff96cd,#ffd36c,#80e2c0,#70d8ff)}
.cos-frame-cosmic{--cos-frame-gradient:linear-gradient(120deg,#332b74,#7b5ae0,#d372e7,#5bc5ef,#3e327d)}
.cos-frame-rose{--cos-frame-gradient:linear-gradient(120deg,#d77692,#ffd3df,#ef9fb6,#fff0f4,#ce6d8b)}
.cos-frame-ice{--cos-frame-gradient:linear-gradient(120deg,#6fbde2,#dff8ff,#a4dff4,#eefcff,#7bc5e7)}
.cos-frame-ember{--cos-frame-gradient:linear-gradient(120deg,#c6592e,#ffb05d,#ffe0a0,#ec7042,#9e3d2d)}
.cos-frame-lavender{--cos-frame-gradient:linear-gradient(120deg,#9c80d8,#e7dcff,#c5a8f4,#f5efff,#9677cd)}
.cos-frame-eclipse{--cos-frame-gradient:linear-gradient(120deg,#2f3540,#727b89,#e3bd64,#474f5d,#171c24,#d4a952)}
.cos-frame-rainbow{--cos-frame-gradient:linear-gradient(120deg,#6ca6ff,#79dfc1,#ffe074,#ff9b7c,#db87e9,#7aa5ff)}
.cos-frame-meteor{--cos-frame-gradient:linear-gradient(120deg,#ff755d,#ffbe63,#795fe2,#5fb5ff,#ff8c67,#ffd073)}
@keyframes cos-frame-flow{0%,100%{background-position:center,0% 50%;filter:saturate(1)}50%{background-position:center,100% 50%;filter:saturate(1.14)}}

[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#4775b4,#7f9aca,#4775b4);background-image:var(--cos-name-gradient)!important;background-size:240% 100%!important;background-position:0% 50%;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;animation:cos-name-shimmer 5.6s ease-in-out infinite;text-shadow:none!important}
.cos-name-ocean{--cos-name-gradient:linear-gradient(100deg,#0f5d9e,#3fb6df,#4b70cb,#0f5d9e)}.cos-name-grape{--cos-name-gradient:linear-gradient(100deg,#6942a2,#ad67d8,#7658c6,#6942a2)}.cos-name-sunset{--cos-name-gradient:linear-gradient(100deg,#d85e49,#f5a056,#cc6ab3,#e25f77,#d85e49)}.cos-name-silver{--cos-name-gradient:linear-gradient(100deg,#5e6c7d,#d7e1eb,#7f8da0,#f3f7fb,#5e6c7d)}.cos-name-starlight{--cos-name-gradient:linear-gradient(100deg,#3d63ab,#8ab6ff,#d7c7ff,#5a78c5,#3d63ab)}.cos-name-neon{--cos-name-gradient:linear-gradient(100deg,#6338aa,#c750d3,#4d9ee9,#8a45d4,#6338aa)}
.cos-name-forest{--cos-name-gradient:linear-gradient(100deg,#236747,#62ad72,#8acb79,#28735a,#236747)}.cos-name-cherry{--cos-name-gradient:linear-gradient(100deg,#b93b5f,#f08aa0,#e45d7b,#b93b5f)}.cos-name-amber{--cos-name-gradient:linear-gradient(100deg,#b86c16,#f4c256,#ffdd8e,#c57a1d,#b86c16)}.cos-name-midnight{--cos-name-gradient:linear-gradient(100deg,#263d82,#6a52a8,#496bc1,#8a62b8,#263d82)}.cos-name-comet{--cos-name-gradient:linear-gradient(100deg,#2768b7,#58c5ed,#98a7ff,#3a77c9,#2768b7)}.cos-name-cyber{--cos-name-gradient:linear-gradient(100deg,#0f7f7b,#32d9c6,#33a9dc,#0c7778,#0f7f7b)}.cos-name-royal{--cos-name-gradient:linear-gradient(100deg,#8b5a11,#e6b640,#fff0a3,#b97d16,#8b5a11)}
@keyframes cos-name-shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

.bubble[class*="cos-bubble-"]{--cos-bubble-gradient:linear-gradient(135deg,#edf4ff,#f7f9fd,#e8f1ff);position:relative;background-image:radial-gradient(circle at 18% 15%,rgba(255,255,255,.85),transparent 31%),var(--cos-bubble-gradient)!important;background-size:180% 180%,230% 230%!important;background-position:0% 20%,0% 50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.56),0 4px 13px rgba(48,72,105,.07);animation:cos-bubble-flow 7.5s ease-in-out infinite}
.cos-bubble-sky{--cos-bubble-gradient:linear-gradient(135deg,#dcecff,#eff7ff,#d9e8ff)}.cos-bubble-mint{--cos-bubble-gradient:linear-gradient(135deg,#dcf5eb,#effcf6,#d5f0e8)}.cos-bubble-starlight{--cos-bubble-gradient:linear-gradient(135deg,#e5ecff,#f4ebff,#e8f5ff,#f6eeff)}.cos-bubble-peach{--cos-bubble-gradient:linear-gradient(135deg,#ffe6dd,#fff4ed,#ffe1d8)}.cos-bubble-lavender{--cos-bubble-gradient:linear-gradient(135deg,#eae0ff,#f7f1ff,#e4dcfa)}.cos-bubble-graphite{--cos-bubble-gradient:linear-gradient(135deg,#dce3eb,#f3f6f8,#d7e0e9)}.cos-bubble-sun{--cos-bubble-gradient:linear-gradient(135deg,#fff0bd,#fff8e1,#ffe7aa)}.cos-bubble-cosmos{--cos-bubble-gradient:linear-gradient(135deg,#dde5ff,#eadfff,#d7efff,#eee1ff)}.cos-bubble-glass{--cos-bubble-gradient:linear-gradient(135deg,rgba(239,249,255,.92),rgba(231,240,255,.74),rgba(250,246,255,.88))}.cos-bubble-aurora{--cos-bubble-gradient:linear-gradient(135deg,#d9f7ec,#dfebff,#efe0ff,#ddf6ed)}
@keyframes cos-bubble-flow{0%,100%{background-position:0% 20%,0% 50%}50%{background-position:85% 70%,100% 50%}}

.game-post-lazy-note{display:block;margin-top:4px;color:#8b96a5;font-size:8px}

.store-game-preview-stage{width:100%;min-height:176px;display:flex;flex-direction:column;gap:7px;padding:10px;border:1px solid #dce4ee;border-radius:16px;background:#f8fafc;color:#30445c;overflow:hidden;box-shadow:inset 0 1px 0 #fff,0 7px 20px #30445c12;box-sizing:border-box;isolation:isolate}
.store-game-preview-stage.rush-hour-stage,.store-game-preview-stage.flip-puzzle-stage{width:100%!important;height:auto!important;min-height:176px!important;margin:0!important;padding:10px!important;gap:7px!important;box-sizing:border-box!important}
.store-game-preview-hud{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:0 2px;font-size:8px;color:#8592a2}.store-game-preview-hud>span{font-size:6px;font-weight:950;letter-spacing:.1em}.store-game-preview-hud>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:10px;color:inherit}.store-game-preview-hud>b{padding:3px 6px;border-radius:999px;background:#ffffffb8;font-size:7px;color:inherit;box-shadow:0 1px 3px #26384d12}
.store-game-preview-viewport{flex:1;min-height:122px;display:grid;place-items:center;padding:4px;border-radius:12px;background:rgba(255,255,255,.48);overflow:visible;contain:layout paint}
.store-game-preview-footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:0 7px;color:#7c8999;font-size:7px}.store-game-preview-footer i{height:3px;border-radius:99px;background:linear-gradient(90deg,#5b8fda 56%,#e5eaf1 56%)}
.store-game-preview-stage .rush-hour-board{width:118px!important;height:118px!important;min-width:118px!important;max-width:118px!important;border-width:3px!important;border-right-width:5px!important;border-radius:10px!important;margin:0!important}.store-game-preview-stage .rush-hour-board::before{right:-8px!important;border-width:3px 0!important}.store-game-preview-stage .rush-hour-vehicle{--pad:2px!important;border-radius:5px!important;box-shadow:0 2px 4px #24344d24!important;pointer-events:none!important}
.store-game-preview-stage .flip-puzzle-board{--cell:auto!important;width:118px!important;height:118px!important;max-width:118px!important;display:grid!important;grid-template-columns:repeat(5,1fr)!important;grid-template-rows:repeat(5,1fr)!important;gap:2px!important;padding:5px!important;margin:0!important;border-radius:10px!important}.store-game-preview-stage .flip-puzzle-cell{min-width:0!important;min-height:0!important;border-radius:4px!important;pointer-events:none!important}
.store-game-preview-stage .time2048-board{width:118px!important;height:118px!important;max-width:118px!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;grid-template-rows:repeat(4,1fr)!important;gap:3px!important;padding:5px!important;margin:0!important;border-radius:10px!important}.store-game-preview-stage .time2048-cell{display:grid!important;place-items:center!important;min-width:0!important;min-height:0!important;border-radius:4px!important;font-size:8px!important;font-weight:900!important}
.store-game-preview-stage .minesweeper-board{--mine-board-size:118px!important;width:118px!important;height:118px!important;max-width:118px!important;display:grid!important;grid-template-columns:repeat(6,1fr)!important;grid-template-rows:repeat(6,1fr)!important;gap:1px!important;padding:4px!important;margin:0!important;border-radius:10px!important}.store-game-preview-stage .mine-cell{font-size:6px!important;border-radius:2px!important;pointer-events:none!important}
.store-game-preview-stage .gomoku-board{width:118px!important;height:118px!important;max-width:118px!important;display:grid!important;grid-template-columns:repeat(9,1fr)!important;grid-template-rows:repeat(9,1fr)!important;padding:4px!important;margin:0!important;border-radius:8px!important;background-size:11.111% 11.111%!important}.store-game-preview-stage .gomoku-cell{width:100%!important;height:100%!important;aspect-ratio:auto!important;padding:0!important;pointer-events:none!important}.store-game-preview-stage .gomoku-cell span{width:82%!important;height:82%!important}
.store-game-preview-stage .connect4-board{width:128px!important;height:112px!important;display:grid!important;grid-template-columns:repeat(7,1fr)!important;grid-template-rows:repeat(6,1fr)!important;gap:3px!important;padding:7px!important;border-radius:10px!important}.store-game-preview-stage .connect4-hole{min-width:0!important;min-height:0!important}
.store-game-preview-stage .othello-board{width:118px!important;height:118px!important;display:grid!important;grid-template-columns:repeat(8,1fr)!important;grid-template-rows:repeat(8,1fr)!important;gap:1px!important;padding:4px!important;margin:0!important;border-radius:9px!important}.store-game-preview-stage .othello-cell{width:100%!important;height:100%!important;aspect-ratio:auto!important}.store-game-preview-stage .othello-disc{display:block!important;width:72%!important;height:auto!important;aspect-ratio:1!important}
.store-game-preview-stage .uttt-board{width:118px!important;height:118px!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;grid-template-rows:repeat(3,1fr)!important;gap:2px!important;padding:3px!important;margin:0!important;border-radius:9px!important}.store-game-preview-stage .uttt-mini{display:grid!important;grid-template-columns:repeat(3,1fr)!important;grid-template-rows:repeat(3,1fr)!important;gap:1px!important;padding:1px!important}.store-game-preview-stage .uttt-cell{display:grid!important;place-items:center!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;font-size:5px!important;font-style:normal!important;pointer-events:none!important}
.store-game-preview-stage .chess-board{width:118px!important;height:118px!important;display:grid!important;grid-template-columns:repeat(8,1fr)!important;grid-template-rows:repeat(8,1fr)!important;margin:0!important;border-radius:8px!important;overflow:hidden!important}.store-preview-chess-square{display:grid;place-items:center;min-width:0;min-height:0;font-size:11px;line-height:1}.store-preview-chess-square.light{background:#eef2e8}.store-preview-chess-square.dark{background:#86a276;color:#18251a}
.store-preview-generic-game{width:100%!important;margin:0!important}.store-preview-game-canvas{position:relative!important;width:150px!important;height:104px!important;max-width:150px!important;min-height:104px!important;aspect-ratio:auto!important;margin:0 auto!important;overflow:hidden!important;background:linear-gradient(#e6f3ff 0 68%,#d7e5ca 68%)!important}.store-preview-player{position:absolute;left:24px;bottom:16px;width:18px;height:22px;border-radius:7px 7px 4px 4px;background:#4285f4;box-shadow:inset 0 3px #8ab6ff}.store-preview-obstacle{position:absolute;bottom:16px;width:10px;border-radius:3px 3px 0 0;background:#68788d}.store-preview-obstacle.a{left:74px;height:20px}.store-preview-obstacle.b{left:105px;height:32px}.store-preview-obstacle.c{left:133px;height:14px}.store-preview-score{position:absolute;right:7px;top:6px;font-size:7px;font-weight:950;letter-spacing:.08em;color:#485c75}
.store-detail-copy .store-game-preview-stage{min-height:176px!important;padding:9px!important}.store-preview-panel .store-game-preview-stage{width:min(420px,100%);min-height:230px}.store-preview-panel .store-game-preview-viewport{min-height:166px}.store-preview-panel .store-game-preview-stage :is(.rush-hour-board,.flip-puzzle-board,.time2048-board,.minesweeper-board,.gomoku-board,.othello-board,.uttt-board,.chess-board){transform:scale(1.26)}.store-preview-panel .store-game-preview-stage .connect4-board{transform:scale(1.18)}.store-preview-panel .store-preview-game-canvas{transform:scale(1.12)}
@media(max-width:760px){.store-game-preview-stage{min-height:136px;padding:6px;gap:4px}.store-game-preview-stage.rush-hour-stage,.store-game-preview-stage.flip-puzzle-stage{min-height:136px!important;padding:6px!important;gap:4px!important}.store-game-preview-viewport{min-height:88px;padding:2px}.store-game-preview-stage :is(.rush-hour-board,.flip-puzzle-board,.time2048-board,.minesweeper-board,.gomoku-board,.othello-board,.uttt-board,.chess-board){transform:scale(.78)}.store-game-preview-stage .connect4-board{transform:scale(.75)}.store-game-preview-stage .store-preview-game-canvas{transform:scale(.78)}.store-preview-panel .store-game-preview-stage{min-height:188px}.store-preview-panel .store-game-preview-viewport{min-height:132px}.store-preview-panel .store-game-preview-stage :is(.rush-hour-board,.flip-puzzle-board,.time2048-board,.minesweeper-board,.gomoku-board,.othello-board,.uttt-board,.chess-board){transform:scale(1.02)}.store-preview-panel .store-game-preview-stage .connect4-board,.store-preview-panel .store-preview-game-canvas{transform:scale(.98)}}
@media(prefers-reduced-motion:reduce){.avatar[class*="cos-frame-"],[class*="cos-name-"],.bubble[class*="cos-bubble-"]{animation:none!important}}

/* v0.6.66 — equipped badges follow names across chat and game surfaces. */
.identity-badge{display:inline-flex;align-items:center;justify-content:center;max-width:132px;min-height:18px;padding:2px 7px;border-radius:999px;flex:0 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;line-height:1.2;font-weight:900;letter-spacing:.02em;vertical-align:middle;box-shadow:0 1px 4px rgba(35,50,70,.08)}
.message-meta .identity-badge{margin-left:1px;transform:translateY(-.5px)}
.party-name-with-badge{min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.party-name-with-badge>.identity-badge{font-size:7px;min-height:16px;padding:2px 6px}
@media(max-width:760px){.identity-badge{max-width:96px;font-size:7px;min-height:16px;padding:2px 6px}.message-meta{gap:5px}}
.mini-profile-name-row,.store-preview-name-with-badge{display:flex;align-items:center;gap:6px;min-width:0}.mini-profile-name-row>strong{min-width:0}.mini-profile-name-row .mini-profile-badge,.store-preview-name-with-badge .mini-profile-badge{margin-top:0;flex:0 0 auto}.store-preview-name-with-badge{flex-wrap:wrap;justify-content:center}

/* v0.6.67 — stable chat alignment, rendered game-theme previews, tier-colored ranking scores. */
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message){flex-direction:row-reverse}
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .message-main{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end}
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .message-meta{justify-content:flex-end;width:100%}
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .bubble{border-radius:15px 0 15px 15px;background:#e8f0fe}
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .message-time{justify-content:flex-end;width:100%}
.message.mine.message-grouped:not(.game-post-message) .message-avatar{visibility:hidden!important}

.rank-score.tier-bronze{color:#a45d35}.rank-score.tier-silver{color:#687887}.rank-score.tier-gold{color:#b27808}.rank-score.tier-platinum{color:#197b86}.rank-score.tier-diamond{color:#2877b2}.rank-score.tier-master{color:#7d42bd}
.rank-score[class*="tier-"] small{color:currentColor;opacity:.68}

.store-list-head>div{min-width:0;display:flex;align-items:center;gap:9px}.store-list-head>div>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-game-back{flex:0 0 auto;padding:5px 8px;border:1px solid #d8e2ee;border-radius:9px;background:#fff;color:#55708f;font-size:9px;font-weight:850}.store-game-back:hover{background:#f4f8fd;border-color:#c5d7eb}
.store-game-group-art{background:#edf2f8}.store-game-group-art img{object-fit:cover;transform:none!important;filter:none!important;animation:none!important}
.store-list-row>img.store-theme-thumb{object-fit:contain;border-radius:7px;filter:none!important}
.store-detail-art.theme-render-art{padding:0;background:#101722!important;border:1px solid #dce4ef}.store-detail-art.theme-render-art img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;filter:none;animation:none;transform:none}
.store-theme-render{width:100%;margin:0;display:grid;gap:7px}.store-theme-render img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid #d8e1ec;border-radius:13px;background:#101722;box-shadow:0 8px 24px #26384d1c}.store-theme-render figcaption{font-size:9px;font-weight:750;color:#7a899b;text-align:center}
.store-preview-panel .store-theme-render img{aspect-ratio:16/9;max-height:min(54dvh,360px)}
@media(max-width:760px){.store-list-head>div{gap:5px}.store-game-back{padding:4px 6px;font-size:8px}.store-detail-art.theme-render-art{min-height:132px}.store-theme-render{gap:4px}.store-theme-render figcaption{font-size:8px}}

/* v0.6.67 — final chat positioning and uncropped rendered theme screenshots. */
.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message){width:100%;justify-content:flex-start;flex-direction:row-reverse}
.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .message-main{margin-left:auto;margin-right:0;align-items:flex-end}
.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .message-bubble-wrap{justify-content:flex-end;margin-left:auto;margin-right:0}
.store-detail-art.theme-render-art{aspect-ratio:16/9;min-height:0;align-self:center;background:#f1f4f8!important}
.store-detail-art.theme-render-art img{object-fit:contain!important;background:#f1f4f8}
.store-theme-render img{object-fit:contain!important;background:#f1f4f8}
.store-preview-panel .store-theme-render{max-width:640px;margin-inline:auto}
@media(max-width:760px){.store-detail-art.theme-render-art{min-height:0!important;max-height:none!important;aspect-ratio:16/9}.store-detail-art.theme-render-art img{max-height:none!important}}

/* Chat cards must be styled on first load, before the game feature is opened. */
.message.game-post-message .message-main,
.message.record-announcement-message .message-main {
  width:min(448px,calc(100% - 48px));
  max-width:none;
}
.message.game-post-message .message-meta,
.message.record-announcement-message .message-meta { width:100%; }
.game-post {
  width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;gap:11px;padding:12px 13px;border:1px solid #dce6f4;
  border-radius:15px;background:linear-gradient(135deg,#f7faff,#fff);
  box-shadow:0 4px 14px rgba(35,70,115,.08);
}
.game-post-icon {display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e7f0ff;color:#2264b6}
.game-post-icon svg {width:22px;height:22px}
.game-post-copy {min-width:0;display:grid;gap:5px}
.game-post-copy strong {overflow-wrap:anywhere}
.game-post-copy small,.game-post-state {color:#68798e}
.game-post-versus {display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.game-post-loading {grid-template-columns:42px minmax(0,1fr)}
.game-post-loading>div {display:grid;gap:4px}
.game-post-loading span {color:#65748a;font-size:12px}
.message.record-announcement-message {margin:10px 0}
.record-announcement-card {
  position:relative;isolation:isolate;overflow:hidden;display:grid;
  grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;
  width:100%;padding:12px 14px;border:1px solid #eac45e;border-radius:15px;
  background:linear-gradient(125deg,#fffdf5,#fff4cf 52%,#fffdf7);
  box-shadow:0 7px 22px rgba(135,91,0,.12);
}
.record-announcement-shine {position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);opacity:.6}
.record-announcement-trophy {display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff8e0;font-size:24px}
.record-announcement-card>div {min-width:0}
.record-announcement-card small {display:block;color:#996114;font-size:10px;font-weight:800;letter-spacing:.06em}
.record-announcement-card strong {display:block;margin-top:3px;color:#583d16;overflow-wrap:anywhere}
.record-announcement-card p {margin:5px 0 0;color:#705329;line-height:1.45}
.record-announcement-card em {color:#a85b00;font-style:normal;font-weight:800}
@media(max-width:760px) {
  .message.game-post-message .message-main,.message.record-announcement-message .message-main {width:calc(100% - 46px)}
  .game-post {gap:8px;padding:10px;grid-template-columns:36px minmax(0,1fr) auto}
  .game-post-icon {width:36px;height:36px}
  .record-announcement-card {grid-template-columns:36px minmax(0,1fr);gap:8px;padding:10px}
  .record-announcement-trophy {width:36px;height:36px;font-size:21px}
}

/* v0.6.70: single live preview and responsive item details. */
.store-detail{display:block!important;min-height:0;overflow:auto;padding:clamp(12px,2vw,24px)!important}.store-detail-copy{max-width:720px;margin:0 auto;gap:12px}.store-detail-copy .store-game-preview-stage{width:100%;aspect-ratio:16/10;min-height:240px!important;max-height:480px;justify-content:space-between}.store-game-preview-viewport{min-height:0;overflow:hidden}.store-detail-copy .store-game-preview-stage :is(.rush-hour-board,.flip-puzzle-board,.time2048-board,.minesweeper-board,.gomoku-board,.othello-board,.uttt-board,.chess-board){transform:scale(clamp(1,1.3,1.4))}.store-detail-copy .store-game-preview-stage .connect4-board{transform:scale(1.25)}.store-detail-copy .store-preview-game-canvas{transform:scale(1.35)}.store-detail-copy .store-preview-profile,.store-detail-copy .store-preview-chat,.store-detail-copy .store-preview-chess{min-height:160px;display:flex;align-items:center;justify-content:center}.store-detail-copy>p{font-size:clamp(12px,1.4vw,15px)}.store-detail-copy h3{font-size:clamp(17px,2vw,23px)}.store-detail-price{margin-top:0}.store-detail-actions{margin-top:4px}.store-game-preview-stage[data-preview-game="rush"],.store-game-preview-stage[data-preview-game="flip_puzzle"]{aspect-ratio:16/10}.store-game-preview-stage[data-preview-game="chess"],.store-game-preview-stage[data-preview-game="gomoku"],.store-game-preview-stage[data-preview-game="othello"]{aspect-ratio:4/3}
@media(max-width:760px){.store-list-layout{grid-template-rows:minmax(100px,27%) minmax(0,1fr)}.store-detail-copy{gap:8px}.store-detail-copy .store-game-preview-stage{min-height:168px!important;aspect-ratio:4/3;max-height:300px}.store-detail-copy .store-game-preview-stage :is(.rush-hour-board,.flip-puzzle-board,.time2048-board,.minesweeper-board,.gomoku-board,.othello-board,.uttt-board,.chess-board){transform:scale(1)}.store-detail-copy .store-game-preview-stage .connect4-board,.store-detail-copy .store-preview-game-canvas{transform:scale(.95)}.store-detail-copy .store-preview-profile,.store-detail-copy .store-preview-chat,.store-detail-copy .store-preview-chess{min-height:112px}.store-detail-copy>p{font-size:12px}}
.cos-frame-harbor{--cos-frame-gradient:linear-gradient(120deg,#3287ad,#b9eff0,#3287ad)}
.cos-frame-coral{--cos-frame-gradient:linear-gradient(120deg,#ec826d,#ffce9f,#ec826d)}
.cos-frame-ink{--cos-frame-gradient:linear-gradient(120deg,#1b3148,#b8c7d5,#1b3148)}
.cos-frame-meadow{--cos-frame-gradient:linear-gradient(120deg,#319a69,#d6eeb3,#319a69)}
.cos-name-terracotta{--cos-name-gradient:linear-gradient(110deg,#bc6645,#f2aa76,#bc6645)}
.cos-name-tide{--cos-name-gradient:linear-gradient(110deg,#175f92,#67d3d2,#175f92)}
.cos-name-sage{--cos-name-gradient:linear-gradient(110deg,#4a7961,#a4c49d,#4a7961)}
.cos-name-auric{--cos-name-gradient:linear-gradient(110deg,#a67521,#f8d77e,#a67521)}
.cos-bubble-notebook{background:linear-gradient(145deg,#f9fbff,#fff)!important;border:1px solid #dae5f4!important;color:#293748!important}
.cos-bubble-terracotta{background:linear-gradient(145deg,#fff1e8,#fff)!important;border:1px solid #e6a48c!important;color:#293748!important}
.cos-bubble-lagoon{background:linear-gradient(145deg,#e8fbf8,#fff)!important;border:1px solid #67bab5!important;color:#293748!important}
.cos-bubble-ink{background:linear-gradient(145deg,#e6edf7,#fff)!important;border:1px solid #384660!important;color:#293748!important}

/* Recognizable preview boards for canvas and party games. */
.store-preview-mini-scene{position:relative;overflow:hidden;width:min(100%,300px);height:180px;border-radius:12px;background:#e9f3fc;box-shadow:inset 0 0 0 2px #b7ccdf}.store-preview-mini-scene small{position:absolute;top:10px;right:12px;font:800 12px/1 system-ui;color:#45617d}.snake-scene{background:repeating-linear-gradient(0deg,#214b40 0 19px,#315d4f 20px 21px),repeating-linear-gradient(90deg,transparent 0 19px,#527364 20px 21px)}.snake-part,.snake-food{position:absolute;width:20px;height:20px;border-radius:5px;background:#9ce076;left:100px;top:80px}.snake-part.p2{left:80px}.snake-part.p3{left:60px}.snake-part.p4{left:60px;top:100px}.snake-part.head{left:120px;background:#d3f19a}.snake-food{left:225px;top:40px;background:#e26055;border-radius:50%}.snake-scene small{color:#f0f9e6}.tetris-scene{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);gap:2px;padding:8px 60px 8px 8px;background:#121c32}.tetris-scene i{border:1px solid #ffffff13;background:#233653}.tetris-scene i.stacked{background:#43caa3}.tetris-scene i.falling{background:#f2bb4d}.tetris-scene small{color:#ecf5ff}.dino-scene{background:linear-gradient(#f5e5be 0 74%,#c3a073 74%)}.dino-runner,.dino-cactus,.dino-sun{position:absolute}.dino-runner{left:62px;bottom:43px;font-size:42px}.dino-cactus{right:65px;bottom:35px;font-size:41px;color:#377d4f}.dino-sun{width:32px;height:32px;right:65px;top:30px;background:#ffc278;border-radius:50%}.flappy-scene{background:linear-gradient(#7ad2ef 0 80%,#e4cc8a 80%)}.flappy-bird{position:absolute;left:80px;top:70px;color:#f4bd45;font-size:26px}.flappy-pipe{position:absolute;right:70px;width:34px;height:60px;background:#4fbb77;border:3px solid #317b57}.flappy-pipe.top{top:0}.flappy-pipe.bottom{bottom:0}.stack-scene{background:linear-gradient(#bee0fa,#edf3fc)}.stack-layer{position:absolute;height:23px;left:18%;background:#5aa4dd;border-radius:3px}.stack-layer.one{width:65%;bottom:15px}.stack-layer.two{width:56%;bottom:39px;left:22%}.stack-layer.three{width:48%;bottom:63px;left:25%}.stack-layer.four{width:38%;bottom:87px;left:30%;background:#f5ba6c}.party-scene{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:radial-gradient(circle at 50% 10%,#53657f,#1a263b);color:#f4f0de}.party-scene strong{font-size:16px}.party-scene>span{font-size:28px;color:#e5c882}.party-scene small{color:#ebd9aa}.drawing-scene{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:repeating-linear-gradient(0deg,#fff 0 22px,#dce7ee 23px 24px)}.drawing-scene>span{font-size:45px;color:#4185ca}.drawing-scene strong{font-size:13px;color:#374e66}
@media(max-width:760px){.store-preview-mini-scene{height:130px;width:min(100%,230px)}.store-preview-mini-scene small{font-size:9px}.dino-runner{font-size:32px}.party-scene strong{font-size:12px}}

/* v0.6.74 — natural entry-read positioning and mobile-first store browsing. */
.store-theme-preview-photo{width:100%;margin:0;display:grid;gap:7px;place-items:center}
.store-theme-preview-photo img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;border:1px solid #d9e2ee;border-radius:15px;background:#f1f4f8;box-shadow:0 8px 24px #26384d18}
.store-theme-preview-photo figcaption{font-size:10px;font-weight:750;color:#7c8999;text-align:center}
.store-preview-frame .store-preview-avatar[class*="cos-frame-"]{width:78px!important;height:78px!important;border-width:5px!important;box-shadow:0 8px 28px #27415f22!important}
.store-preview-profile .store-preview-avatar{overflow:hidden}
.store-preview-bubble-only{min-height:150px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:18px!important;text-align:center!important}
.store-preview-bubble-only .bubble{min-width:min(310px,88%);max-width:100%!important;padding:14px 18px!important;text-align:center;font-size:13px!important;font-weight:650}
.bubble[class*="cos-bubble-"]{background-image:var(--cos-bubble-gradient,linear-gradient(135deg,#e8f2ff,#f8fbff,#e8f0ff))!important;background-size:300% 300%!important;background-position:0% 50%;animation:cos-bubble-flow 9s cubic-bezier(.45,0,.55,1) infinite!important;will-change:background-position}
.cos-bubble-notebook{--cos-bubble-gradient:linear-gradient(135deg,#f7fbff,#ffffff,#eaf3ff,#ffffff);border:1px solid #dae5f4!important;color:#293748!important}
.cos-bubble-terracotta{--cos-bubble-gradient:linear-gradient(135deg,#ffe4d7,#fff7f2,#ffcdbb,#fff3ed);border:1px solid #e6a48c!important;color:#293748!important}
.cos-bubble-lagoon{--cos-bubble-gradient:linear-gradient(135deg,#d7f7f2,#f7fffd,#ccefeb,#eefcf9);border:1px solid #67bab5!important;color:#293748!important}
.cos-bubble-ink{--cos-bubble-gradient:linear-gradient(135deg,#dce6f5,#f8fbff,#cfdbea,#eef2f8);border:1px solid #68758c!important;color:#293748!important}
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .bubble[class*="cos-bubble-"]{background-image:var(--cos-bubble-gradient)!important;background-size:300% 300%!important;background-position:0% 50%}
@keyframes cos-bubble-flow{0%{background-position:0% 50%}45%{background-position:100% 35%}70%{background-position:72% 100%}100%{background-position:0% 50%}}
.store-mobile-detail-overlay{display:none}

@media(max-width:760px){
 dialog:has(.store-shell){height:min(94dvh,900px);width:100vw!important;max-width:100vw!important;border-radius:22px 22px 0 0;margin:auto 0 0}
 dialog:has(.store-shell) #modal-body{height:calc(100% - 60px);padding:9px 6px calc(12px + env(safe-area-inset-bottom))}
 .store-shell{gap:9px}
 .store-balance-card{min-height:54px;padding:10px 13px}.store-balance-card>span{font-size:11px}.store-token-value img{width:22px;height:22px;flex-basis:22px}.store-token-value strong{font-size:22px!important}
 .store-mode-tabs{min-height:42px;padding:4px}.store-mode-tabs button{min-height:34px;font-size:12px}
 .store-workspace{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr);gap:8px;overflow:hidden}
 .store-category-sidebar{min-height:0;padding:4px;display:flex;flex-direction:row;gap:5px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;border-radius:14px;overscroll-behavior-x:contain;scroll-snap-type:x proximity}
 .store-category-sidebar::-webkit-scrollbar{display:none}
 .store-category-sidebar button{flex:0 0 auto;min-width:86px;min-height:42px;padding:5px 8px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;scroll-snap-align:start}
 .store-category-sidebar button>span{width:26px;height:26px;flex:0 0 26px;border-radius:8px;font-size:9px}
 .store-category-sidebar button>b{font-size:11px;white-space:nowrap}
 .store-list-browser{padding:8px 4px!important;border-radius:16px}
 .store-list-head{min-height:39px;padding:4px 4px 7px;gap:8px}.store-list-head>div{min-width:0;display:flex;align-items:center;gap:6px}.store-list-head strong{font-size:16px;white-space:nowrap}.store-list-head>span{max-width:54%;font-size:9px;line-height:1.35;text-align:right}
 .store-game-back{font-size:10px!important;padding:5px 7px!important;white-space:nowrap}
 .store-list-layout{display:block!important;height:100%;min-height:0}
 .store-list{height:100%;min-height:0;gap:8px;padding:2px 0 14px;overflow:auto}
 .store-list-row{grid-template-columns:62px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:10px;width:100%;min-height:76px;padding:7px 8px;border-radius:15px}
 .store-list-row img{grid-column:1;grid-row:1/3;width:62px;height:62px;border-radius:11px}
 .store-list-row>span{grid-column:2;grid-row:1/3;align-self:center;display:grid;gap:5px}.store-list-row strong{font-size:13px;line-height:1.25}.store-list-row small{font-size:10px;line-height:1.3}
 .store-list-row>b{grid-column:3;grid-row:1/3;align-self:center;max-width:72px;font-size:10px;line-height:1.3;text-align:right;white-space:normal}
 .store-list-row.selected{box-shadow:none;border-color:#dbe4f0;background:#fff}.store-list-row:active{background:#f1f6ff;border-color:#aac7f1;transform:none}
 .store-list-layout>.store-detail{display:none!important}
 .store-game-group-grid{grid-template-columns:1fr;gap:8px;padding:2px 2px 12px}.store-game-group-card{min-height:80px;grid-template-columns:72px minmax(0,1fr) 20px;gap:10px;padding:8px 10px;border-radius:15px}.store-game-group-art{width:72px;height:64px}.store-game-group-card strong{font-size:13px}.store-game-group-card small{font-size:10px}.store-game-group-card>b{font-size:24px}
 .store-carousel-head{min-height:36px;font-size:11px}.store-carousel-head strong{font-size:14px}
 .store-mobile-detail-overlay{position:fixed;inset:0;z-index:160;display:flex;align-items:flex-end;justify-content:center;padding:34px 0 0;background:rgba(21,34,53,.48);backdrop-filter:blur(2px)}
 .store-mobile-detail-sheet{position:relative;width:100%;max-height:min(82dvh,720px);overflow:auto;padding:14px 8px calc(16px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -16px 48px #10203842;overscroll-behavior:contain}
 .store-mobile-detail-close{position:absolute;top:12px;right:10px;z-index:3;float:none;width:38px;height:38px;margin:0;display:grid;place-items:center;border-radius:50%;background:#f1f4f8;color:#29384b;font-size:26px;line-height:1}
 .store-detail-mobile{display:block!important;width:100%!important;overflow:visible!important;padding:5px 0 2px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
 .store-detail-mobile .store-detail-copy{width:100%!important;max-width:none!important;margin:0!important;gap:11px}.store-detail-mobile .store-detail-copy h3{font-size:21px;padding-right:52px}.store-detail-mobile .store-detail-copy>p{font-size:13px;line-height:1.6}.store-detail-mobile .store-detail-price{font-size:16px}.store-detail-mobile .store-detail-actions{width:100%!important}.store-detail-mobile .store-detail-actions .button{width:100%!important;min-height:46px;font-size:13px;border-radius:14px}
 .store-detail-mobile .store-preview-profile,.store-detail-mobile .store-preview-chat,.store-detail-mobile .store-preview-chess{min-height:145px!important}
 .store-detail-mobile .store-theme-preview-photo img{border-radius:14px}.store-theme-preview-photo figcaption{font-size:9px}
 .store-preview-frame .store-preview-avatar[class*="cos-frame-"]{width:84px!important;height:84px!important}
 .store-preview-bubble-only .bubble{font-size:13px!important}
}
@media(min-width:761px){.store-mobile-detail-overlay{display:none!important}}
@media(prefers-reduced-motion:reduce){.bubble[class*="cos-bubble-"]{animation:none!important;background-position:50% 50%}}

/* v0.6.75 — stable reactions, faithful cosmetic previews, and stronger tier identity. */
.reaction-chip.mine,.reaction-chip[aria-pressed="true"]{
  background:#d9eaff!important;border-color:#78a9e8!important;color:#0e57a8!important;
  box-shadow:inset 0 0 0 1px #ffffff8c,0 2px 7px #1e66b51a!important
}
.reaction-chip.mine:hover,.reaction-chip[aria-pressed="true"]:hover{background:#cae1ff!important;border-color:#5b99e4!important}

/* Store previews use explicit item variables so a generic preview rule can never flatten colors. */
.store-preview-frame .store-preview-avatar[class*="cos-frame-"]{
  background:linear-gradient(#e9eef5,#e9eef5) padding-box,var(--store-frame-gradient,var(--cos-frame-gradient,linear-gradient(135deg,#a9c4ea,#8eb5e9))) border-box!important;
  box-shadow:0 7px 24px #263a561f!important
}
.store-preview-frame .store-preview-avatar[data-preview-rarity="rare"]{box-shadow:0 7px 25px #3f78bd2e,0 0 0 1px #ffffffb8!important}
.store-preview-frame .store-preview-avatar[data-preview-rarity="epic"]{box-shadow:0 8px 30px #8056c43b,0 0 16px #8d6ce238!important;animation-duration:3.9s!important}
.store-preview-frame .store-preview-avatar[data-preview-rarity="legendary"]{box-shadow:0 9px 34px #c88b3445,0 0 22px #f0b54848!important;animation-duration:2.9s!important}
.store-preview-bubble-only .bubble[class*="cos-bubble-"]{
  background-image:radial-gradient(circle at 18% 12%,rgba(255,255,255,.78),transparent 30%),var(--store-bubble-gradient,var(--cos-bubble-gradient,linear-gradient(135deg,#edf4ff,#f7f9fd,#e8f1ff)))!important;
  border:1px solid var(--store-bubble-border)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 7px 20px color-mix(in srgb,var(--store-bubble-border) 23%,transparent)!important
}
.store-preview-bubble-only .cos-bubble-ink{color:#f3f7ff!important}
.store-preview-bubble-only .bubble[data-preview-rarity="epic"]{box-shadow:inset 0 0 0 1px #ffffff70,0 8px 25px #6653a52c,0 0 15px #8aa8df2c!important}
.store-preview-bubble-only .bubble[data-preview-rarity="legendary"]{box-shadow:inset 0 0 0 1px #ffffff94,0 9px 28px #527fc034,0 0 20px #8fcfc74a!important;animation-duration:5.5s!important}

/* Every nickname family has a separate palette; higher tiers also gain light/glow motion. */
.cos-name-ocean{--cos-name-gradient:linear-gradient(100deg,#07528f,#22a8d2,#4a67c6,#07528f)}
.cos-name-grape{--cos-name-gradient:linear-gradient(100deg,#5a2e91,#b14fc4,#7a55d0,#5a2e91)}
.cos-name-sunset{--cos-name-gradient:linear-gradient(100deg,#d84a3d,#ff9b3e,#d85eae,#ef4e68,#d84a3d)}
.cos-name-silver{--cos-name-gradient:linear-gradient(100deg,#4f5b69,#f0f5f9,#8794a4,#c7d2dc,#4f5b69)}
.cos-name-starlight{--cos-name-gradient:linear-gradient(100deg,#3758a5,#7aa9ff,#d3bfff,#4b79cf,#3758a5)}
.cos-name-neon{--cos-name-gradient:linear-gradient(100deg,#6430aa,#f13bc7,#2eb4ec,#8c3ee4,#6430aa)}
.cos-name-forest{--cos-name-gradient:linear-gradient(100deg,#145c3c,#4dad68,#9ac74f,#1f7752,#145c3c)}
.cos-name-cherry{--cos-name-gradient:linear-gradient(100deg,#9f234e,#f26e92,#d63a65,#ff9bae,#9f234e)}
.cos-name-amber{--cos-name-gradient:linear-gradient(100deg,#a85809,#f0ac27,#ffe27b,#c56b0b,#a85809)}
.cos-name-midnight{--cos-name-gradient:linear-gradient(100deg,#192d6d,#6046a0,#315cb3,#8b54ae,#192d6d)}
.cos-name-comet{--cos-name-gradient:linear-gradient(100deg,#1857ac,#32bde9,#9c8cff,#2d7ed0,#1857ac)}
.cos-name-cyber{--cos-name-gradient:linear-gradient(100deg,#006f71,#21e0c0,#13a9e3,#694be5,#006f71)}
.cos-name-royal{--cos-name-gradient:linear-gradient(100deg,#7b4300,#e2a113,#fff0a0,#c22246,#e0a11a,#7b4300)}
.cos-name-terracotta{--cos-name-gradient:linear-gradient(100deg,#9d4d35,#dc7d4e,#f1b177,#aa5037,#9d4d35)}
.cos-name-tide{--cos-name-gradient:linear-gradient(100deg,#0b4c86,#2296bd,#56d3c9,#146c9c,#0b4c86)}
.cos-name-sage{--cos-name-gradient:linear-gradient(100deg,#3b6c50,#85ad72,#c0cf8a,#557f58,#3b6c50)}
.cos-name-auric{--cos-name-gradient:linear-gradient(100deg,#8b5d08,#e2a827,#ffeb96,#bd7d0c,#8b5d08)}
:is(.cos-name-sunset,.cos-name-starlight,.cos-name-cherry,.cos-name-amber,.cos-name-midnight,.cos-name-comet,.cos-name-tide,.cos-name-sage){filter:drop-shadow(0 1px 2px #31567824)}
:is(.cos-name-neon,.cos-name-cyber,.cos-name-auric){filter:drop-shadow(0 0 4px #5f7fd659);animation-duration:3.7s!important}
.cos-name-royal{filter:drop-shadow(0 0 4px #e6a62b70) drop-shadow(0 1px 1px #7f3c153d);animation:cos-name-shimmer 2.9s ease-in-out infinite,cos-royal-pulse 2.9s ease-in-out infinite!important}
@keyframes cos-royal-pulse{0%,100%{filter:drop-shadow(0 0 3px #e5aa3160)}50%{filter:drop-shadow(0 0 7px #f0bd4588) drop-shadow(0 1px 1px #9d3d3055)}}

/* Bubble palettes intentionally diverge; rarity increases depth/motion without hurting legibility. */
.cos-bubble-sky{--cos-bubble-gradient:linear-gradient(135deg,#cce5ff,#f4faff,#bcd9ff);--cos-bubble-border:#7fb1e7}
.cos-bubble-mint{--cos-bubble-gradient:linear-gradient(135deg,#c7f0df,#f4fff9,#b9e8d5);--cos-bubble-border:#64bca1}
.cos-bubble-starlight{--cos-bubble-gradient:linear-gradient(135deg,#d8e2ff,#f2e8ff,#d3eeff,#f4e8ff);--cos-bubble-border:#8a9ee5}
.cos-bubble-peach{--cos-bubble-gradient:linear-gradient(135deg,#ffd8c8,#fff5ee,#ffc9bc);--cos-bubble-border:#e9a084}
.cos-bubble-lavender{--cos-bubble-gradient:linear-gradient(135deg,#dfd3ff,#faf5ff,#d5c8f3);--cos-bubble-border:#9c80d4}
.cos-bubble-graphite{--cos-bubble-gradient:linear-gradient(135deg,#cbd4df,#f5f7f9,#bac5d1);--cos-bubble-border:#7e8998}
.cos-bubble-sun{--cos-bubble-gradient:linear-gradient(135deg,#ffe795,#fff9dc,#ffd36b);--cos-bubble-border:#dca92d}
.cos-bubble-cosmos{--cos-bubble-gradient:linear-gradient(135deg,#c9d4ff,#dfceff,#bee7ff,#ead7ff);--cos-bubble-border:#7182ca}
.cos-bubble-glass{--cos-bubble-gradient:linear-gradient(135deg,rgba(218,245,255,.94),rgba(220,228,255,.77),rgba(250,235,255,.9));--cos-bubble-border:#8ebed1}
.cos-bubble-aurora{--cos-bubble-gradient:linear-gradient(135deg,#baf2d9,#bdd7ff,#e1c5ff,#b5f0dd,#ffd3ec);--cos-bubble-border:#5fb99f}
.cos-bubble-notebook{--cos-bubble-gradient:repeating-linear-gradient(180deg,#fbfdff 0 18px,#dbe8f6 19px,#ffffff 20px 38px);--cos-bubble-border:#a9bfd8}
.cos-bubble-terracotta{--cos-bubble-gradient:linear-gradient(135deg,#ffd3bd,#fff1e7,#f7ac90,#ffe6d8);--cos-bubble-border:#d48264}
.cos-bubble-lagoon{--cos-bubble-gradient:linear-gradient(135deg,#b9eee7,#f2fffc,#9edfd9,#d7f9f4);--cos-bubble-border:#45a8a1}
.cos-bubble-ink{--cos-bubble-gradient:linear-gradient(135deg,#16263c,#354b69,#1b2e47,#5b6d84);--cos-bubble-border:#708298;color:#f4f7fc!important}
.bubble[class*="cos-bubble-"]{border:1px solid var(--cos-bubble-border,#c9d7e8)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 4px 13px color-mix(in srgb,var(--cos-bubble-border,#789) 16%,transparent)!important}
:is(.bubble.cos-bubble-starlight,.bubble.cos-bubble-mint,.bubble.cos-bubble-lavender,.bubble.cos-bubble-graphite,.bubble.cos-bubble-sun,.bubble.cos-bubble-cosmos,.bubble.cos-bubble-terracotta,.bubble.cos-bubble-lagoon){box-shadow:inset 0 0 0 1px #ffffff72,0 5px 15px color-mix(in srgb,var(--cos-bubble-border) 23%,transparent)!important}
:is(.bubble.cos-bubble-glass,.bubble.cos-bubble-ink){box-shadow:inset 0 0 0 1px #ffffff72,0 6px 18px color-mix(in srgb,var(--cos-bubble-border) 30%,transparent),0 0 12px color-mix(in srgb,var(--cos-bubble-border) 18%,transparent)!important;animation-duration:6.2s!important}
.bubble.cos-bubble-aurora{box-shadow:inset 0 0 0 1px #ffffff8c,0 7px 20px #4f9fc52d,0 0 17px #8fd6bd48!important;animation-duration:4.8s!important}

/* Frame rarity identity applies in chat/profile too, while preview keeps exact item palette. */
.avatar[class*="cos-frame-"]{box-shadow:var(--cos-frame-glow,0 0 10px #5078a326)!important}
:is(.cos-frame-cloud,.cos-frame-mint,.cos-frame-dots,.cos-frame-rose,.cos-frame-harbor){--cos-frame-glow:0 0 10px #55799f2b}
:is(.cos-frame-gold,.cos-frame-crystal,.cos-frame-ice,.cos-frame-ember,.cos-frame-lavender,.cos-frame-eclipse,.cos-frame-coral,.cos-frame-meadow){--cos-frame-glow:0 0 13px #557fba3d;animation-duration:4.5s!important}
:is(.cos-frame-prism,.cos-frame-rainbow,.cos-frame-ink){--cos-frame-glow:0 0 17px #7459cf50,0 0 5px #ffffffaa;animation-duration:3.7s!important}
:is(.cos-frame-cosmic,.cos-frame-meteor){--cos-frame-glow:0 0 22px #7c57d45e,0 0 8px #f4b35b55;animation-duration:2.9s!important}

@media(prefers-reduced-motion:reduce){
 .cos-name-royal{animation:none!important}.store-preview-frame .store-preview-avatar,.store-preview-bubble-only .bubble{animation:none!important}
}

/* v0.6.76 — pre-keyboard fixed layout prevents the browser and app from double-correcting mobile viewport position. */

/* v0.6.79 — one cosmetic palette for preview + equipped use, stable mobile + menu, push categories. */
.avatar[class*="cos-frame-"]{
  background:linear-gradient(#e5ebf3,#e5ebf3) padding-box,var(--cos-frame-gradient,linear-gradient(135deg,#a9c4ea,#e8f1ff,#8eb5e9)) border-box!important;
  background-size:100% 100%,280% 280%!important;
  animation:cos-frame-flow var(--cos-frame-duration,6.2s) cubic-bezier(.45,0,.55,1) infinite!important;
  box-shadow:var(--cos-frame-glow,0 0 10px #5078a326)!important;
}
.avatar.cos-frame-cloud{--cos-frame-gradient:linear-gradient(120deg,#6ea8ed,#f7fbff,#a7d2ff,#4f82ce);--cos-frame-glow:0 0 11px #6ea8ed42;--cos-frame-duration:7.4s}
.avatar.cos-frame-mint{--cos-frame-gradient:linear-gradient(120deg,#35b58f,#e8fff7,#79e3c1,#168c78);--cos-frame-glow:0 0 11px #35b58f3d;--cos-frame-duration:7.1s}
.avatar.cos-frame-gold{--cos-frame-gradient:linear-gradient(120deg,#a56a0b,#ffe18a,#fff6cf,#d89a19,#8f5a05);--cos-frame-glow:0 0 14px #e5b54452,0 0 4px #fff8cfb0;--cos-frame-duration:5.5s}
.avatar.cos-frame-dots{--cos-frame-gradient:repeating-linear-gradient(120deg,#4f6f9c 0 7px,#edf5ff 7px 14px,#94acd0 14px 21px);--cos-frame-glow:0 0 10px #7898c43b;--cos-frame-duration:8s}
.avatar.cos-frame-crystal{--cos-frame-gradient:linear-gradient(120deg,#65c5ee,#f8ffff,#9ecbff,#d5a9ff,#60ddd8);--cos-frame-glow:0 0 15px #76d6ec59,0 0 5px #d5a9ff59;--cos-frame-duration:5.2s}
.avatar.cos-frame-prism{--cos-frame-gradient:linear-gradient(120deg,#39cfff,#ac7eff,#ff75bf,#ffd34e,#5fe3a7,#39cfff);--cos-frame-glow:0 0 18px #ac7eff58,0 0 7px #39cfffa1;--cos-frame-duration:3.9s}
.avatar.cos-frame-cosmic{--cos-frame-gradient:linear-gradient(120deg,#17134b,#6846d9,#d04fd3,#39bfe9,#28206c);--cos-frame-glow:0 0 22px #744ce06b,0 0 8px #39bfe95c;--cos-frame-duration:3.1s}
.avatar.cos-frame-rose{--cos-frame-gradient:linear-gradient(120deg,#b93668,#ffd0df,#f07eaa,#fff1f6,#a82f5d);--cos-frame-glow:0 0 12px #e2699847;--cos-frame-duration:6.7s}
.avatar.cos-frame-ice{--cos-frame-gradient:linear-gradient(120deg,#3ea8dc,#eaffff,#8eddf6,#ffffff,#37a6dc);--cos-frame-glow:0 0 15px #60c8ec52,0 0 5px #ffffffaa;--cos-frame-duration:5.3s}
.avatar.cos-frame-ember{--cos-frame-gradient:linear-gradient(120deg,#9b321d,#ff7b2f,#ffd16f,#e44a24,#6e201b);--cos-frame-glow:0 0 15px #f06b314f,0 0 5px #ffd16f75;--cos-frame-duration:4.9s}
.avatar.cos-frame-lavender{--cos-frame-gradient:linear-gradient(120deg,#7450c3,#e4d5ff,#b287ef,#f8f2ff,#6845b2);--cos-frame-glow:0 0 15px #9973dd52;--cos-frame-duration:5.1s}
.avatar.cos-frame-eclipse{--cos-frame-gradient:linear-gradient(120deg,#10151d,#626d7d,#f0c65e,#262e39,#05080d,#d69f22);--cos-frame-glow:0 0 17px #242b375e,0 0 7px #e4b64264;--cos-frame-duration:4.5s}
.avatar.cos-frame-rainbow{--cos-frame-gradient:linear-gradient(120deg,#438aff,#4edbb6,#ffd44e,#ff7d62,#ce63e9,#4c79ff);--cos-frame-glow:0 0 19px #8a72e85b,0 0 7px #4edbb66b;--cos-frame-duration:3.6s}
.avatar.cos-frame-meteor{--cos-frame-gradient:linear-gradient(120deg,#ff4d3f,#ffb42f,#6643dc,#2c99f0,#ff6845,#ffd45b);--cos-frame-glow:0 0 24px #ff684568,0 0 10px #6643dc5e;--cos-frame-duration:2.8s}
.avatar.cos-frame-harbor{--cos-frame-gradient:linear-gradient(120deg,#0d6f9d,#91e4e7,#1f90ad,#0d5f88);--cos-frame-glow:0 0 11px #278eaa42;--cos-frame-duration:7.1s}
.avatar.cos-frame-coral{--cos-frame-gradient:linear-gradient(120deg,#e1544d,#ffb784,#ffdfaa,#dc6457);--cos-frame-glow:0 0 14px #e8755d4a;--cos-frame-duration:5.6s}
.avatar.cos-frame-ink{--cos-frame-gradient:linear-gradient(120deg,#09192b,#9eb5cb,#f2f5f8,#213a55,#07111e);--cos-frame-glow:0 0 18px #27425f59,0 0 5px #d8e6f29c;--cos-frame-duration:3.9s}
.avatar.cos-frame-meadow{--cos-frame-gradient:linear-gradient(120deg,#188758,#cce991,#70c767,#16734e);--cos-frame-glow:0 0 14px #4ca86c48;--cos-frame-duration:5.7s}
@keyframes cos-frame-flow{0%,100%{background-position:center,0% 50%}50%{background-position:center,100% 50%}}
.store-preview-frame .store-preview-avatar[class*="cos-frame-"]{background:linear-gradient(#e5ebf3,#e5ebf3) padding-box,var(--cos-frame-gradient) border-box!important;box-shadow:var(--cos-frame-glow)!important;animation:cos-frame-flow var(--cos-frame-duration,6.2s) cubic-bezier(.45,0,.55,1) infinite!important}

[class*="cos-name-"]{
  background-image:var(--cos-name-gradient,linear-gradient(100deg,#4775b4,#7f9aca,#4775b4))!important;
  background-size:280% 100%!important;background-position:0% 50%;
  -webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;
  animation:cos-name-shimmer var(--cos-name-duration,6.4s) cubic-bezier(.45,0,.55,1) infinite!important;
  filter:var(--cos-name-glow,none)!important;text-shadow:none!important
}
.cos-name-ocean[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#07528f,#22a8d2,#4a67c6,#07528f);--cos-name-glow:drop-shadow(0 0 2px #22a8d238);--cos-name-duration:7s}
.cos-name-grape[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#5a2e91,#b14fc4,#7a55d0,#5a2e91);--cos-name-glow:drop-shadow(0 0 2px #a658cc3b);--cos-name-duration:6.8s}
.cos-name-sunset[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#d84a3d,#ff9b3e,#d85eae,#ef4e68,#d84a3d);--cos-name-glow:drop-shadow(0 0 3px #ef69504a);--cos-name-duration:5.6s}
.cos-name-silver[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#4f5b69,#f0f5f9,#8794a4,#c7d2dc,#4f5b69);--cos-name-glow:drop-shadow(0 1px 1px #4e59672e);--cos-name-duration:7.5s}
.cos-name-starlight[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#3758a5,#7aa9ff,#d3bfff,#4b79cf,#3758a5);--cos-name-glow:drop-shadow(0 0 4px #7aa9ff62);--cos-name-duration:5.2s}
.cos-name-neon[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#6430aa,#f13bc7,#2eb4ec,#8c3ee4,#6430aa);--cos-name-glow:drop-shadow(0 0 4px #d93ecf65);--cos-name-duration:4.4s}
.cos-name-forest[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#145c3c,#4dad68,#9ac74f,#1f7752,#145c3c);--cos-name-glow:drop-shadow(0 0 2px #4dad6838);--cos-name-duration:7.1s}
.cos-name-cherry[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#9f234e,#f26e92,#d63a65,#ff9bae,#9f234e);--cos-name-glow:drop-shadow(0 0 3px #e9537c48);--cos-name-duration:5.8s}
.cos-name-amber[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#a85809,#f0ac27,#ffe27b,#c56b0b,#a85809);--cos-name-glow:drop-shadow(0 0 3px #e2a01f4d);--cos-name-duration:5.5s}
.cos-name-midnight[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#192d6d,#6046a0,#315cb3,#8b54ae,#192d6d);--cos-name-glow:drop-shadow(0 0 4px #6046a052);--cos-name-duration:5s}
.cos-name-comet[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#1857ac,#32bde9,#9c8cff,#2d7ed0,#1857ac);--cos-name-glow:drop-shadow(0 0 5px #38aeea68);--cos-name-duration:4.3s}
.cos-name-cyber[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#006f71,#21e0c0,#13a9e3,#694be5,#006f71);--cos-name-glow:drop-shadow(0 0 5px #21d2c267);--cos-name-duration:4.1s}
.cos-name-royal[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#7b4300,#e2a113,#fff0a0,#c22246,#e0a11a,#7b4300);--cos-name-glow:drop-shadow(0 0 5px #e6a62b70) drop-shadow(0 1px 1px #7f3c153d);--cos-name-duration:3.2s}
.cos-name-terracotta[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#9d4d35,#dc7d4e,#f1b177,#aa5037,#9d4d35);--cos-name-glow:drop-shadow(0 0 3px #d67b5040);--cos-name-duration:6s}
.cos-name-tide[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#0b4c86,#2296bd,#56d3c9,#146c9c,#0b4c86);--cos-name-glow:drop-shadow(0 0 4px #36b8c155);--cos-name-duration:5.1s}
.cos-name-sage[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#3b6c50,#85ad72,#c0cf8a,#557f58,#3b6c50);--cos-name-glow:drop-shadow(0 0 3px #7aa46c3d);--cos-name-duration:6.2s}
.cos-name-auric[class*="cos-name-"]{--cos-name-gradient:linear-gradient(100deg,#8b5d08,#e2a827,#ffeb96,#bd7d0c,#8b5d08);--cos-name-glow:drop-shadow(0 0 5px #e3ad3060);--cos-name-duration:4s}
@keyframes cos-name-shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

.bubble[class*="cos-bubble-"],
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .bubble[class*="cos-bubble-"]{
  background-image:radial-gradient(circle at 18% 12%,rgba(255,255,255,.7),transparent 30%),var(--cos-bubble-gradient,linear-gradient(135deg,#edf4ff,#f7f9fd,#e8f1ff))!important;
  background-size:180% 180%,300% 300%!important;background-position:10% 15%,0% 50%;
  border:1px solid var(--cos-bubble-border,#c9d7e8)!important;
  box-shadow:var(--cos-bubble-shadow,inset 0 0 0 1px rgba(255,255,255,.38),0 5px 15px #435b7920)!important;
  animation:cos-bubble-flow var(--cos-bubble-duration,8.8s) cubic-bezier(.45,0,.55,1) infinite!important;
  will-change:background-position
}
.bubble.cos-bubble-sky{--cos-bubble-gradient:linear-gradient(135deg,#c9e2ff,#f5fbff,#bcd9ff);--cos-bubble-border:#75aee9;--cos-bubble-shadow:inset 0 0 0 1px #ffffff73,0 5px 15px #75aee92d;--cos-bubble-duration:9.6s}
.bubble.cos-bubble-mint{--cos-bubble-gradient:linear-gradient(135deg,#c8f2e2,#f3fff9,#b5e8d5);--cos-bubble-border:#54b99b;--cos-bubble-shadow:inset 0 0 0 1px #ffffff75,0 5px 15px #54b99b2c;--cos-bubble-duration:9.2s}
.bubble.cos-bubble-starlight{--cos-bubble-gradient:linear-gradient(135deg,#d6e2ff,#f1e6ff,#d7f0ff,#f8edff);--cos-bubble-border:#879de7;--cos-bubble-shadow:inset 0 0 0 1px #ffffff80,0 6px 17px #879de73c;--cos-bubble-duration:7.6s}
.bubble.cos-bubble-peach{--cos-bubble-gradient:linear-gradient(135deg,#ffd8c9,#fff5ee,#ffc8bd);--cos-bubble-border:#ee9f82;--cos-bubble-shadow:inset 0 0 0 1px #ffffff80,0 5px 15px #ee9f822e;--cos-bubble-duration:9.1s}
.bubble.cos-bubble-lavender{--cos-bubble-gradient:linear-gradient(135deg,#dfd2ff,#faf5ff,#d5c6f5);--cos-bubble-border:#9c7bd4;--cos-bubble-shadow:inset 0 0 0 1px #ffffff80,0 6px 17px #9c7bd43b;--cos-bubble-duration:8.1s}
.bubble.cos-bubble-graphite{--cos-bubble-gradient:linear-gradient(135deg,#c8d1dd,#f4f7fa,#b8c4d2);--cos-bubble-border:#748397;--cos-bubble-shadow:inset 0 0 0 1px #ffffff65,0 5px 15px #4c59672b;--cos-bubble-duration:10s}
.bubble.cos-bubble-sun{--cos-bubble-gradient:linear-gradient(135deg,#ffe798,#fff8d9,#ffd472);--cos-bubble-border:#e2ad30;--cos-bubble-shadow:inset 0 0 0 1px #fffdf0b8,0 6px 17px #e2ad3038;--cos-bubble-duration:7.9s}
.bubble.cos-bubble-cosmos{--cos-bubble-gradient:linear-gradient(135deg,#c4d2ff,#ddc9ff,#c2e8ff,#e7d4ff);--cos-bubble-border:#6b79c8;--cos-bubble-shadow:inset 0 0 0 1px #ffffff7a,0 7px 19px #6b79c844,0 0 11px #b179e838;--cos-bubble-duration:6.5s}
.bubble.cos-bubble-glass{--cos-bubble-gradient:linear-gradient(135deg,rgba(219,245,255,.94),rgba(221,229,255,.76),rgba(249,234,255,.9));--cos-bubble-border:#8ebbd0;--cos-bubble-shadow:inset 0 0 0 1px #ffffffb0,0 7px 20px #6e9eb433;--cos-bubble-duration:7.2s}
.bubble.cos-bubble-aurora{--cos-bubble-gradient:linear-gradient(135deg,#bdf4dc,#bfd7ff,#e2c6ff,#b9f2df,#ffd4ef);--cos-bubble-border:#65bfa4;--cos-bubble-shadow:inset 0 0 0 1px #ffffff8a,0 7px 20px #65bfa442,0 0 12px #ad8edc38;--cos-bubble-duration:6.1s}
.bubble.cos-bubble-notebook{--cos-bubble-gradient:linear-gradient(135deg,#f4f9ff,#ffffff,#e2efff,#ffffff);--cos-bubble-border:#a8bfdc;--cos-bubble-shadow:inset 0 0 0 1px #ffffff9c,0 5px 14px #7890ab28;--cos-bubble-duration:10.4s;color:#293748!important}
.bubble.cos-bubble-terracotta{--cos-bubble-gradient:linear-gradient(135deg,#ffd7c3,#fff3ea,#f7b39a,#ffe7db);--cos-bubble-border:#d98769;--cos-bubble-shadow:inset 0 0 0 1px #ffffff85,0 6px 17px #d9876938;--cos-bubble-duration:7.8s;color:#293748!important}
.bubble.cos-bubble-lagoon{--cos-bubble-gradient:linear-gradient(135deg,#bdeee8,#f4fffd,#a6e1dd,#d9faf5);--cos-bubble-border:#48aaa5;--cos-bubble-shadow:inset 0 0 0 1px #ffffff82,0 7px 20px #48aaa53c;--cos-bubble-duration:6.9s;color:#293748!important}
.bubble.cos-bubble-ink{--cos-bubble-gradient:linear-gradient(135deg,#18283f,#354b69,#1d304b,#61728a);--cos-bubble-border:#74859c;--cos-bubble-shadow:inset 0 0 0 1px #b8c7d442,0 7px 21px #17243850,0 0 10px #6c819f35;--cos-bubble-duration:6.2s;color:#f3f7ff!important}
@keyframes cos-bubble-flow{0%,100%{background-position:10% 15%,0% 50%}45%{background-position:55% 40%,100% 36%}72%{background-position:20% 65%,68% 100%}}
.store-preview-bubble-only .bubble[class*="cos-bubble-"]{background-image:radial-gradient(circle at 18% 12%,rgba(255,255,255,.7),transparent 30%),var(--cos-bubble-gradient)!important;border-color:var(--cos-bubble-border)!important;box-shadow:var(--cos-bubble-shadow)!important;animation:cos-bubble-flow var(--cos-bubble-duration,8.8s) cubic-bezier(.45,0,.55,1) infinite!important}

.push-setting-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.push-setting-actions [hidden]{display:none!important}
.push-pref-list{display:grid;gap:0;border:1px solid #e3e9f1;border-radius:14px;overflow:hidden;background:#fff}.push-pref-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 16px;border-bottom:1px solid #edf1f6}.push-pref-row:last-of-type{border-bottom:0}.push-pref-row>div{min-width:0}.push-pref-row strong{display:block;font-size:14px;color:#2b3d54}.push-pref-row small{display:block;margin-top:5px;font-size:11px;line-height:1.55;color:#8490a0}.push-pref-note{margin:0;padding:11px 16px;background:#f7f9fc;color:#8591a1;font-size:10px;line-height:1.55}
@media(max-width:760px){.push-setting-actions{gap:5px}.push-setting-actions .button{min-height:34px;padding:7px 10px;font-size:11px}.push-pref-row{padding:14px 12px;gap:12px}.push-pref-row strong{font-size:13px}.push-pref-row small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.avatar[class*="cos-frame-"],[class*="cos-name-"],.bubble[class*="cos-bubble-"],.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message) .bubble[class*="cos-bubble-"]{animation:none!important;will-change:auto!important}.avatar[class*="cos-frame-"]{background-position:center,50% 50%}.bubble[class*="cos-bubble-"]{background-position:10% 15%,50% 50%}}

/* v0.6.82 — visible flowing cosmetic glow + animated badge collection. */
.avatar[class*="cos-frame-"]{
  background-size:100% 100%,360% 360%!important;
  animation:cos-frame-flow-v0682 var(--cos-frame-duration,6.2s) cubic-bezier(.45,0,.55,1) infinite,cos-frame-glow-v0682 var(--cos-frame-duration,6.2s) ease-in-out infinite!important;
  will-change:background-position,box-shadow
}
@keyframes cos-frame-flow-v0682{0%,100%{background-position:center,0% 50%}38%{background-position:center,100% 18%}72%{background-position:center,46% 100%}}
@keyframes cos-frame-glow-v0682{0%,100%{box-shadow:var(--cos-frame-glow,0 0 10px #5078a326)}50%{box-shadow:var(--cos-frame-glow,0 0 10px #5078a326),0 0 9px rgba(255,255,255,.34)}}
.store-preview-frame .store-preview-avatar[class*="cos-frame-"]{animation:cos-frame-flow-v0682 var(--cos-frame-duration,6.2s) cubic-bezier(.45,0,.55,1) infinite,cos-frame-glow-v0682 var(--cos-frame-duration,6.2s) ease-in-out infinite!important}

[class*="cos-name-"]{
  background-size:380% 100%!important;
  animation:cos-name-shimmer-v0682 var(--cos-name-duration,6.4s) cubic-bezier(.45,0,.55,1) infinite,cos-name-glow-v0682 var(--cos-name-duration,6.4s) ease-in-out infinite!important;
  will-change:background-position,filter
}
@keyframes cos-name-shimmer-v0682{0%,100%{background-position:0% 50%}42%{background-position:100% 50%}72%{background-position:56% 50%}}
@keyframes cos-name-glow-v0682{0%,100%{filter:var(--cos-name-glow,none) brightness(1)}50%{filter:var(--cos-name-glow,none) brightness(1.17) saturate(1.12)}}

.bubble[class*="cos-bubble-"],
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .bubble[class*="cos-bubble-"]{
  background-size:210% 210%,380% 380%!important;
  animation:cos-bubble-flow-v0682 var(--cos-bubble-duration,8.8s) cubic-bezier(.45,0,.55,1) infinite,cos-bubble-glow-v0682 var(--cos-bubble-duration,8.8s) ease-in-out infinite!important;
  will-change:background-position,box-shadow
}
@keyframes cos-bubble-flow-v0682{0%,100%{background-position:8% 12%,0% 45%}35%{background-position:72% 30%,100% 18%}68%{background-position:30% 80%,58% 100%}}
@keyframes cos-bubble-glow-v0682{0%,100%{box-shadow:var(--cos-bubble-shadow,inset 0 0 0 1px rgba(255,255,255,.38),0 5px 15px #435b7920)}50%{box-shadow:var(--cos-bubble-shadow,inset 0 0 0 1px rgba(255,255,255,.38),0 5px 15px #435b7920),0 0 10px rgba(255,255,255,.42)}}
.store-preview-bubble-only .bubble[class*="cos-bubble-"]{animation:cos-bubble-flow-v0682 var(--cos-bubble-duration,8.8s) cubic-bezier(.45,0,.55,1) infinite,cos-bubble-glow-v0682 var(--cos-bubble-duration,8.8s) ease-in-out infinite!important}

.identity-badge[class*="cos-badge-"],.mini-profile-badge[class*="cos-badge-"]{
  --cos-badge-gradient:linear-gradient(110deg,#e9f0fb,#fff,#dbe8fa,#e9f0fb);
  --cos-badge-ink:#3f5878;
  --cos-badge-glow:#6d8db536;
  position:relative;isolation:isolate;overflow:hidden;
  background-image:var(--cos-badge-gradient)!important;background-size:320% 100%!important;background-position:0% 50%;
  color:var(--cos-badge-ink)!important;border:1px solid color-mix(in srgb,var(--cos-badge-ink) 25%,transparent)!important;
  box-shadow:0 2px 7px var(--cos-badge-glow),inset 0 1px 0 rgba(255,255,255,.68)!important;
  animation:cos-badge-flow 5.8s cubic-bezier(.45,0,.55,1) infinite,cos-badge-pulse 2.8s ease-in-out infinite!important
}
.identity-badge[class*="cos-badge-"]::after,.mini-profile-badge[class*="cos-badge-"]::after{
  content:"";position:absolute;inset:-35% -55%;z-index:-1;pointer-events:none;
  background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.08) 44%,rgba(255,255,255,.88) 50%,rgba(255,255,255,.08) 56%,transparent 64%);
  transform:translateX(-62%) rotate(4deg);animation:cos-badge-sweep 3.7s ease-in-out infinite
}
@keyframes cos-badge-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes cos-badge-pulse{0%,100%{box-shadow:0 2px 7px var(--cos-badge-glow),inset 0 1px 0 rgba(255,255,255,.68)}50%{box-shadow:0 3px 12px var(--cos-badge-glow),0 0 8px var(--cos-badge-glow),inset 0 1px 0 rgba(255,255,255,.82)}}
@keyframes cos-badge-sweep{0%,24%{transform:translateX(-72%) rotate(4deg)}64%,100%{transform:translateX(72%) rotate(4deg)}}
.cos-badge-solver{--cos-badge-gradient:linear-gradient(110deg,#d8e8ff,#f8fbff,#aacdff,#d8e8ff);--cos-badge-ink:#275f9f;--cos-badge-glow:#4c8ed04a}
.cos-badge-veteran{--cos-badge-gradient:linear-gradient(110deg,#e4e8ee,#fff,#c5ced9,#e4e8ee);--cos-badge-ink:#4f6074;--cos-badge-glow:#6a7c9140}
.cos-badge-spark{--cos-badge-gradient:linear-gradient(110deg,#fff0ba,#fff9df,#ffc859,#fff0ba);--cos-badge-ink:#946214;--cos-badge-glow:#efb73d52}
.cos-badge-lucky{--cos-badge-gradient:linear-gradient(110deg,#e4d5ff,#fbf4ff,#b99bff,#e4d5ff);--cos-badge-ink:#6842a8;--cos-badge-glow:#8c61d84f}
.cos-badge-crown{--cos-badge-gradient:linear-gradient(110deg,#f4c94d,#fff5b4,#d99d19,#fff0a2,#f4c94d);--cos-badge-ink:#82520a;--cos-badge-glow:#e8b22865}
.cos-badge-speed{--cos-badge-gradient:linear-gradient(110deg,#bfe5ff,#f1fbff,#6ec7ff,#bfe5ff);--cos-badge-ink:#17639f;--cos-badge-glow:#48a9df52}
.cos-badge-strategy{--cos-badge-gradient:linear-gradient(110deg,#ccefd8,#f6fff8,#85ce9f,#ccefd8);--cos-badge-ink:#246945;--cos-badge-glow:#51a9754c}
.cos-badge-champion{--cos-badge-gradient:linear-gradient(110deg,#ffd77b,#fff4c3,#f09d36,#ffd77b);--cos-badge-ink:#8f5410;--cos-badge-glow:#e3a13260}
.cos-badge-star{--cos-badge-gradient:linear-gradient(110deg,#d5e2ff,#fff,#a8bfff,#d5e2ff);--cos-badge-ink:#415fa5;--cos-badge-glow:#718be052}
.cos-badge-diamond{--cos-badge-gradient:linear-gradient(110deg,#c5f1f6,#f8ffff,#83dce8,#c5f1f6);--cos-badge-ink:#1f7381;--cos-badge-glow:#4fc2cf58}
.cos-badge-phoenix{--cos-badge-gradient:linear-gradient(110deg,#ffbf67,#fff0b0,#ff6e59,#ffb26d,#ffbf67);--cos-badge-ink:#9b3d25;--cos-badge-glow:#f16d4f68}
.cos-badge-orbit{--cos-badge-gradient:linear-gradient(110deg,#b9e7ff,#f8fdff,#84caff,#b9e7ff);--cos-badge-ink:#195f93;--cos-badge-glow:#4ca9db50}
.cos-badge-focus{--cos-badge-gradient:linear-gradient(110deg,#c4efd9,#f8fff9,#7bc79e,#c4efd9);--cos-badge-ink:#236b4a;--cos-badge-glow:#55ad7d50}
.cos-badge-logic{--cos-badge-gradient:linear-gradient(110deg,#d9cdfc,#fbf8ff,#9f87e9,#d9cdfc);--cos-badge-ink:#5c42a4;--cos-badge-glow:#866bd057}
.cos-badge-guardian{--cos-badge-gradient:linear-gradient(110deg,#c7dcff,#f7fbff,#7faeff,#c7dcff);--cos-badge-ink:#315f9d;--cos-badge-glow:#5c8ed359}
.cos-badge-nova{--cos-badge-gradient:linear-gradient(110deg,#ffca68,#fff3b8,#ff7d4e,#ffd86f,#ffca68);--cos-badge-ink:#954517;--cos-badge-glow:#f18a3b6b}
.cos-badge-eclipse{--cos-badge-gradient:linear-gradient(110deg,#30245d,#8060c8,#e2c5ff,#4a367c,#30245d);--cos-badge-ink:#fff4ff;--cos-badge-glow:#8d6bd772}
.cos-badge-quantum{--cos-badge-gradient:linear-gradient(110deg,#194fa9,#34c1e8,#9a6cff,#2f66cf,#194fa9);--cos-badge-ink:#f7fbff;--cos-badge-glow:#537dea7a}
.cos-badge-legend{--cos-badge-gradient:linear-gradient(110deg,#8f5200,#f5b91e,#fff1a0,#d87a0b,#f5c63d,#8f5200);--cos-badge-ink:#fff8df;--cos-badge-glow:#e8a92082}

@media(prefers-reduced-motion:reduce){
 .avatar[class*="cos-frame-"],[class*="cos-name-"],.bubble[class*="cos-bubble-"],.identity-badge[class*="cos-badge-"],.mini-profile-badge[class*="cos-badge-"]{animation:none!important;will-change:auto!important}
 .identity-badge[class*="cos-badge-"]::after,.mini-profile-badge[class*="cos-badge-"]::after{animation:none!important;display:none!important}
}


/* v0.6.85 — authoritative equipped cosmetic motion.
   Earlier reduced-motion fallbacks could completely cancel equipped effects on Android/PWA.
   Keep motion slow and GPU-cheap instead of disabling the identity of the equipped item. */
@keyframes cos-frame-drift-v0685{
  0%{background-position:center,0% 46%}
  28%{background-position:center,38% 8%}
  55%{background-position:center,100% 52%}
  78%{background-position:center,60% 100%}
  100%{background-position:center,0% 46%}
}
@keyframes cos-frame-breathe-v0685{0%,100%{filter:saturate(1) brightness(1)}50%{filter:saturate(1.12) brightness(1.06)}}
.avatar[class*="cos-frame-"]{
  background-size:100% 100%,420% 420%!important;
  animation:cos-frame-drift-v0685 var(--cos-frame-duration,9.5s) linear infinite,cos-frame-breathe-v0685 var(--cos-frame-duration,9.5s) ease-in-out infinite!important;
  box-shadow:var(--cos-frame-glow,0 0 10px #5078a326)!important;
  will-change:background-position,filter!important
}
.store-preview-frame .store-preview-avatar[class*="cos-frame-"]{animation:cos-frame-drift-v0685 var(--cos-frame-duration,9.5s) linear infinite,cos-frame-breathe-v0685 var(--cos-frame-duration,9.5s) ease-in-out infinite!important}
@keyframes cos-name-drift-v0685{0%{background-position:0% 50%}22%{background-position:35% 50%}52%{background-position:100% 50%}78%{background-position:62% 50%}100%{background-position:0% 50%}}
@keyframes cos-name-breathe-v0685{0%,100%{filter:var(--cos-name-glow,none) brightness(1) saturate(1)}50%{filter:var(--cos-name-glow,none) brightness(1.12) saturate(1.12)}}
[class*="cos-name-"]{
  background-size:420% 100%!important;
  background-position:0% 50%;
  animation:cos-name-drift-v0685 var(--cos-name-duration,10.5s) linear infinite,cos-name-breathe-v0685 var(--cos-name-duration,10.5s) ease-in-out infinite!important;
  will-change:background-position,filter!important
}
@keyframes cos-bubble-drift-v0685{0%{background-position:8% 12%,0% 45%}24%{background-position:64% 22%,38% 4%}50%{background-position:88% 68%,100% 52%}76%{background-position:38% 92%,62% 100%}100%{background-position:8% 12%,0% 45%}}
@keyframes cos-bubble-breathe-v0685{0%,100%{filter:saturate(1) brightness(1)}50%{filter:saturate(1.08) brightness(1.035)}}
.bubble[class*="cos-bubble-"],
.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .bubble[class*="cos-bubble-"]{
  background-size:230% 230%,430% 430%!important;
  animation:cos-bubble-drift-v0685 var(--cos-bubble-duration,13s) linear infinite,cos-bubble-breathe-v0685 var(--cos-bubble-duration,13s) ease-in-out infinite!important;
  box-shadow:var(--cos-bubble-shadow,inset 0 0 0 1px rgba(255,255,255,.38),0 5px 15px #435b7920)!important;
  will-change:background-position,filter!important
}
.store-preview-bubble-only .bubble[class*="cos-bubble-"]{animation:cos-bubble-drift-v0685 var(--cos-bubble-duration,13s) linear infinite,cos-bubble-breathe-v0685 var(--cos-bubble-duration,13s) ease-in-out infinite!important}
/* A reduced-motion OS setting used to make all equipped cosmetics look static.
   Retain a very slow drift so different equipped palettes/effects stay perceptible without pulsing. */
@media(prefers-reduced-motion:reduce){
  .avatar[class*="cos-frame-"]{animation:cos-frame-drift-v0685 24s linear infinite!important;filter:none!important}
  [class*="cos-name-"]{animation:cos-name-drift-v0685 26s linear infinite!important;filter:var(--cos-name-glow,none)!important}
  .bubble[class*="cos-bubble-"]{animation:cos-bubble-drift-v0685 30s linear infinite!important;filter:none!important}
}

/* v0.6.86 — authoritative cosmetic motion, unclipped frame glow, signed-out notice launcher. */
@keyframes cos-frame-flow-v0686{0%{background-position:0 0,0% 50%}50%{background-position:0 0,100% 50%}100%{background-position:0 0,0% 50%}}
@keyframes cos-name-flow-v0686{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes cos-bubble-flow-v0686{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
body .avatar[class*="cos-frame-"]{
 position:relative!important;overflow:visible!important;filter:none!important;
 background:linear-gradient(#e5ebf3,#e5ebf3) padding-box,var(--cos-frame-gradient,linear-gradient(120deg,#74a6eb,#eef6ff,#8dc5ff,#74a6eb)) border-box!important;
 background-size:100% 100%,420% 420%!important;background-repeat:no-repeat!important;
 animation:cos-frame-flow-v0686 var(--cos-frame-motion,12s) linear infinite!important;
 box-shadow:var(--cos-frame-glow,0 0 12px #5b87c83d)!important;
 will-change:background-position;
}
body .avatar[class*="cos-frame-"]>img{border-radius:50%!important;position:relative;z-index:1}
body .avatar[class*="cos-frame-"]::after{
 content:"";position:absolute;inset:-5px;border-radius:50%;pointer-events:none;
 box-shadow:0 0 11px color-mix(in srgb,currentColor 22%,transparent),0 0 19px color-mix(in srgb,currentColor 10%,transparent);
 opacity:.48;animation:cos-frame-glow-v0686 4.8s ease-in-out infinite;
}
@keyframes cos-frame-glow-v0686{0%,100%{opacity:.30;transform:scale(.98)}50%{opacity:.62;transform:scale(1.035)}}
:is(body,.store-preview-profile,.profile-popover,.mini-profile) [class*="cos-name-"]{
 display:inline-block!important;background-image:var(--cos-name-gradient,linear-gradient(100deg,#2f6ebb,#64b7ef,#715bd3,#2f6ebb))!important;
 background-size:360% 100%!important;background-repeat:no-repeat!important;background-position:0% 50%;
 -webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;
 animation:cos-name-flow-v0686 var(--cos-name-motion,13s) linear infinite!important;
 will-change:background-position;filter:drop-shadow(0 1px 1px #274c7b24)!important;
}
body .bubble[class*="cos-bubble-"],.store-preview-bubble-only .bubble[class*="cos-bubble-"]{
 background-image:var(--cos-bubble-gradient,linear-gradient(135deg,#dbeaff,#f7fbff,#c6dcff,#dbeaff))!important;
 background-size:360% 360%!important;background-repeat:no-repeat!important;background-position:0% 50%;
 animation:cos-bubble-flow-v0686 var(--cos-bubble-motion,14s) linear infinite!important;
 will-change:background-position;filter:none!important;
}
/* Keep motion gentle rather than disabling it completely when the OS requests reduced motion. */
@media(prefers-reduced-motion:reduce){
 body .avatar[class*="cos-frame-"]{--cos-frame-motion:28s!important}
 body .avatar[class*="cos-frame-"]::after{animation-duration:10s!important}
 :is(body,.store-preview-profile,.profile-popover,.mini-profile) [class*="cos-name-"]{--cos-name-motion:30s!important}
 body .bubble[class*="cos-bubble-"],.store-preview-bubble-only .bubble[class*="cos-bubble-"]{--cos-bubble-motion:32s!important}
}
.auth-notice-launcher{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:10010;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid #dce1e8;border-radius:50%;background:#fff;color:#4f5f73;box-shadow:0 4px 16px #20212424}
.auth-notice-launcher:hover{background:#fff;color:#4f5f73;box-shadow:0 4px 16px #20212424}.auth-notice-launcher svg{width:21px;height:21px;stroke-width:1.7}
@media(max-width:760px){.auth-notice-launcher{right:max(13px,env(safe-area-inset-right));bottom:max(13px,env(safe-area-inset-bottom));width:44px;height:44px;padding:0}}

/* v0.6.86 motion fix — animations cannot override author !important background-position/shorthand locks.
   Frame motion is rendered by an independent masked ring so legacy avatar backgrounds cannot freeze it. */
@keyframes cos-frame-ring-v0686{0%{transform:rotate(0deg);background-position:0% 50%}50%{transform:rotate(180deg);background-position:100% 50%}100%{transform:rotate(360deg);background-position:0% 50%}}
body .avatar[class*="cos-frame-"]::before,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::before{
 content:"";position:absolute;inset:-3px;padding:3px;border-radius:50%;pointer-events:none;z-index:4;
 background-image:var(--cos-frame-gradient,linear-gradient(120deg,#39cfff,#ac7eff,#ff75bf,#ffd34e,#5fe3a7,#39cfff));
 background-size:320% 320%;background-repeat:no-repeat;
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
 -webkit-mask-composite:xor;mask-composite:exclude;
 animation:cos-frame-ring-v0686 var(--cos-frame-duration,9.5s) linear infinite!important;
 will-change:transform,background-position
}
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]{
 overflow:visible!important;filter:none!important;animation:none!important;position:relative!important
}
.store-preview-frame{overflow:visible!important;padding:10px!important}
body .avatar[class*="cos-frame-"]::after,.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::after{z-index:0!important;inset:-7px!important;border-radius:50%!important}
/* Explicitly keep the animated properties unlocked; legacy rules above only choose the image/palette. */
:is(body,.store-preview-profile,.profile-popover,.mini-profile) [class*="cos-name-"]{background-position:0% 50%;animation:cos-name-flow-v0686 var(--cos-name-duration,10.5s) linear infinite!important}
body .bubble[class*="cos-bubble-"],.store-preview-bubble-only .bubble[class*="cos-bubble-"]{background-position:0% 50%;animation:cos-bubble-flow-v0686 var(--cos-bubble-duration,13s) linear infinite!important}
@media(prefers-reduced-motion:reduce){
 body .avatar[class*="cos-frame-"]::before,.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::before{animation-duration:28s!important}
 :is(body,.store-preview-profile,.profile-popover,.mini-profile) [class*="cos-name-"]{animation-duration:30s!important}
 body .bubble[class*="cos-bubble-"],.store-preview-bubble-only .bubble[class*="cos-bubble-"]{animation-duration:32s!important}
}

/* v0.6.87 — notice priorities + administrator maintenance controls */
body.auth-visible #modal[data-kind="priority-notice"]{display:block!important;pointer-events:auto!important}
.notice-priority-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;vertical-align:1px}
.notice-priority-badge.level-2{background:#fff3d6;color:#9a6100;border:1px solid #f2d28b}
.notice-priority-badge.level-3{background:#ffe6e8;color:#b52535;border:1px solid #f2aab2}
.notice-card.notice-level-2{border-color:#ead59d}.notice-card.notice-level-3{border-color:#efadb5}
.priority-notice{display:grid;gap:16px;max-width:560px;margin:auto}.priority-notice-kicker{justify-self:start;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:850;letter-spacing:.03em}.priority-level-2 .priority-notice-kicker{background:#fff3d6;color:#965d00}.priority-level-3 .priority-notice-kicker{background:#ffe4e7;color:#b32032}.priority-notice-body{padding:0!important}.priority-notice>small{color:#7d8998}.priority-notice .button{margin-top:2px}
.admin-notice-send-row{display:grid;grid-template-columns:minmax(150px,210px) auto;justify-content:end;gap:10px;align-items:center;margin-top:10px}.admin-notice-importance{min-height:40px}.admin-notice-send{margin:0!important}
.admin-maintenance-panel{border-color:#d8e0e9}.admin-maintenance-panel.is-active{border-color:#efadb5;background:linear-gradient(180deg,#fffafb,#fff)}.admin-maintenance-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-maintenance-row>div{display:grid;gap:5px}.admin-maintenance-row small{color:#7a8797;line-height:1.45}.admin-season-history-list{display:grid;gap:8px}.admin-season-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e3e8ee;border-radius:12px;background:#fff}.admin-season-history-row>div{display:grid;gap:3px}.admin-season-history-row small{font-size:11px;color:#8994a1}
@media(max-width:760px){.admin-notice-send-row{grid-template-columns:1fr auto}.admin-maintenance-row{align-items:flex-start}.admin-season-history-row{align-items:flex-start}.priority-notice{gap:13px}}

/* v0.6.88 — cosmetic frame glow must paint outside virtualized chat-row bounds. */
.message.has-frame-cosmetic{
  content-visibility:visible!important;
  contain:none!important;
  overflow:visible!important;
}
/* Render the halo as a blurred circular gradient instead of a rectangular composited shadow.
   The avatar image and animated ring stay above it; only the soft halo can extend outward. */
body .avatar[class*="cos-frame-"]::after,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::after{
  content:""!important;
  position:absolute!important;
  inset:-8px!important;
  border-radius:50%!important;
  pointer-events:none!important;
  z-index:0!important;
  background-image:var(--cos-frame-gradient,linear-gradient(120deg,#39cfff,#ac7eff,#ff75bf,#ffd34e,#5fe3a7,#39cfff))!important;
  background-size:260% 260%!important;
  background-position:0% 50%;
  box-shadow:none!important;
  filter:blur(6px) saturate(.9)!important;
  opacity:.20;
  transform:scale(1)!important;
  animation:cos-frame-halo-v0688 var(--cos-frame-duration,9.5s) linear infinite!important;
  will-change:background-position,opacity!important;
}
@keyframes cos-frame-halo-v0688{
  0%{background-position:0% 50%;opacity:.16}
  50%{background-position:100% 50%;opacity:.28}
  100%{background-position:0% 50%;opacity:.16}
}
@media(prefers-reduced-motion:reduce){
 body .avatar[class*="cos-frame-"]::after,
 .store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::after{animation-duration:30s!important}
}

/* v0.6.89 — badge artwork + compact theme artwork previews */
.identity-badge[class*="cos-badge-"],
.mini-profile-badge[class*="cos-badge-"]{
  gap:4px;
  background:var(--cos-badge-gradient)!important;
  background-size:320% 100%!important;
  background-position:0% 50%;
}
.identity-badge-icon{width:14px;height:14px;flex:0 0 14px;object-fit:contain;display:block;filter:drop-shadow(0 1px 2px rgba(23,41,65,.18))}
.identity-badge-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1}
.mini-profile-badge .identity-badge-icon{width:16px;height:16px;flex-basis:16px}
.store-preview-badge-profile .mini-profile-badge{padding:6px 10px;font-size:10px;gap:6px}
.store-preview-badge-profile .identity-badge-icon{width:21px;height:21px;flex-basis:21px}
.store-theme-svg-preview{width:100%;min-height:190px;display:grid;place-items:center;align-content:center;gap:12px;border:1px solid #dce5f0;border-radius:18px;background:linear-gradient(145deg,#f8fbff,#eef4fb);padding:22px;overflow:hidden}
.store-theme-svg-preview .store-item-svg{width:min(58%,210px);max-height:160px;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(43,69,99,.14))}
.store-theme-svg-preview small{font-size:10px;font-weight:750;color:#77879a;text-align:center}
.store-game-group-art img.store-theme-svg,.store-list-row>img.store-theme-svg{object-fit:contain!important;padding:5px;background:#f6f9fd!important;border-radius:9px;filter:none!important}
@media(max-width:760px){.identity-badge-icon{width:12px;height:12px;flex-basis:12px}.mini-profile-badge .identity-badge-icon{width:14px;height:14px;flex-basis:14px}.store-theme-svg-preview{min-height:145px;padding:16px}.store-theme-svg-preview .store-item-svg{width:min(62%,170px);max-height:120px}}

/* v0.6.90 — keep avatar cosmetic glows inside the scroll paint area. */
#messages.messages{
  box-sizing:border-box;
  padding-left:16px!important;
  padding-right:16px!important;
  overflow-x:hidden;
}
@media(max-width:760px){#messages.messages{padding-left:15px!important;padding-right:15px!important}}

/* v0.6.91 — self-authored card messages follow the same right-side identity layout as normal outgoing chat. */
.messages>.message.mine:is(.game-post-message,.record-announcement-message,.rush-first-clear-message,.flip-first-clear-message,.tents-first-clear-message){
  width:100%;
  justify-content:flex-start;
  flex-direction:row-reverse;
}
.messages>.message.mine:is(.game-post-message,.record-announcement-message,.rush-first-clear-message,.flip-first-clear-message,.tents-first-clear-message) .message-main{
  margin-left:auto;
  margin-right:0;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
}
.messages>.message.mine:is(.game-post-message,.record-announcement-message,.rush-first-clear-message,.flip-first-clear-message,.tents-first-clear-message) .message-time{
  width:100%;
  justify-content:flex-end;
}


/* v0.6.93 — identity cosmetics choose their equip target inside the selected item, not in the store header. */
.store-equip-target{display:grid;gap:8px;padding:10px;border:1px solid #dfe7f1;border-radius:14px;background:#f8fafc}
.store-equip-target-copy{display:grid;gap:2px;min-width:0}.store-equip-target-copy>strong{font-size:11px;color:#34465c}.store-equip-target-copy>small{font-size:9px;line-height:1.45;color:#7c899a}
.store-equip-target-options{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.store-equip-target-options>button{display:grid;place-items:center;gap:1px;min-width:0;min-height:42px;padding:6px 8px;border:1px solid #dbe4ef;border-radius:11px;background:#fff;color:#5d6d81;font-size:10px;font-weight:850;line-height:1.2;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease}
.store-equip-target-options>button>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-equip-target-options>button>small{font-size:8px;color:#25905f;font-weight:850}
.store-equip-target-options>button.active{border-color:#8ab9f2;background:#edf6ff;color:#1557a8;box-shadow:0 0 0 2px #3f91ed17}
.store-equip-target-options>button:focus-visible{outline:2px solid #2a7de1;outline-offset:2px}
.dm-directory-avatar{position:relative;flex:0 0 34px;width:34px!important;height:34px!important;font-size:12px!important;overflow:visible!important}
.dm-directory-avatar>img,.dm-directory-avatar>.avatar-image{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.dm-directory-name-row{display:flex;align-items:center;gap:5px;min-width:0}.dm-directory-name-row>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-directory-badge{flex:0 0 auto;max-width:74px}.dm-directory-badge .identity-badge-label{max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.store-equip-target{gap:7px;padding:9px}.store-equip-target-options{gap:5px}.store-equip-target-options>button{min-height:40px;padding:5px 6px;font-size:9px}.dm-directory-avatar{flex-basis:32px;width:32px!important;height:32px!important}}

/* v0.6.94 — store rerender continuity + notice launcher parity. */
.notice-launcher,.notice-launcher:hover{
  background:#fff;color:#4f5f73;border-color:#dce1e8;
  box-shadow:0 4px 16px #20212424;transform:none;
}
.notice-launcher svg{width:21px;height:21px;stroke-width:1.7}



/* v0.6.95 — compact message footer geometry + DM directory badge parity. */
.message-cluster{display:flex;flex-direction:column;align-items:flex-start;width:fit-content;max-width:100%;min-width:0}
.message-cluster>.message-time{align-self:flex-end;width:auto!important;max-width:100%;justify-content:flex-end!important;padding-right:0!important;padding-left:0!important}
.message.mine .message-cluster{align-items:flex-end;margin-left:auto}
.message.mine .message-cluster>.message-time{align-self:flex-end}
.dm-directory-badge{box-sizing:border-box!important;min-height:16px!important;max-width:68px!important;padding:1px 5px!important;gap:3px!important;font-size:7px!important;line-height:1!important;vertical-align:middle!important}
.dm-directory-badge .identity-badge-icon{width:11px!important;height:11px!important;flex:0 0 11px!important;filter:drop-shadow(0 1px 1px rgba(23,41,65,.14))}
.dm-directory-badge .identity-badge-label{max-width:45px!important;line-height:1.15!important}
@media(max-width:760px){.dm-directory-badge{min-height:15px!important;max-width:62px!important;padding:1px 4px!important;font-size:6.5px!important}.dm-directory-badge .identity-badge-icon{width:10px!important;height:10px!important;flex-basis:10px!important}.dm-directory-badge .identity-badge-label{max-width:40px!important}}

/* v0.6.96 message footer alignment: received messages follow the bubble's left edge, mine follow the right edge. */
.message:not(.mine) .message-cluster>.message-time{align-self:flex-start;justify-content:flex-start!important}
.message.mine .message-cluster>.message-time{align-self:flex-end;justify-content:flex-end!important}


/* v0.6.97 — chat geometry: lift avatars slightly and pull normal bubbles toward their side. */
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
  gap:6px!important;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-avatar{
  margin-top:-1px!important;
}
@media(max-width:760px){
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
    gap:5px!important;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-avatar{
    margin-top:-2px!important;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-main{
    max-width:calc(100% - 35px)!important;
  }
}

/* v0.6.98 — raise chat avatars and let bubbles tuck underneath them while keeping names comfortably separated. */
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
  gap:8px!important;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-avatar{
  margin-top:-7px!important;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped) .message-cluster{
  margin-top:6px;
}
#messages.messages>.message:not(.mine):not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
  position:relative;
  left:-14px;
  margin-left:0;
}
#messages.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
  position:relative;
  left:14px;
  margin-right:0;
}
@media(max-width:760px){
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
    gap:8px!important;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-avatar{
    margin-top:-9px!important;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped) .message-cluster{
    margin-top:7px;
  }
  #messages.messages>.message:not(.mine):not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
    left:-16px;
  }
  #messages.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
    left:16px;
  }
}

/* v0.6.99 — roomier chat rows, unclipped avatars, natural bubble sizing, and reaction spacing. */
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
  margin-bottom:14px!important;
  padding-top:7px;
  overflow:visible;
}
#messages.messages>.message.message-grouped:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
  margin-top:-2px!important;
  margin-bottom:10px!important;
  padding-top:2px;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-avatar{
  margin-top:0!important;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped)>.message-main{
  padding-top:6px;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped) .message-cluster{
  margin-top:4px;
}
/* Normal text should occupy the space it actually needs. Only genuinely long tokens/URLs break. */
#messages.messages .message-rich-body{
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
}
#messages.messages .message-link{
  overflow-wrap:anywhere;
  word-break:break-word;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-bubble-wrap>.bubble{
  width:max-content;
  min-width:0;
}
/* Give the timestamp/reaction strip a little breathing room below the bubble. */
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster>.message-time{
  margin-top:6px!important;
}
@media(max-width:760px){
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
    margin-bottom:15px!important;
    padding-top:8px;
  }
  #messages.messages>.message.message-grouped:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
    margin-top:-2px!important;
    margin-bottom:11px!important;
    padding-top:2px;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped)>.message-main{
    padding-top:6px;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped) .message-cluster{
    margin-top:4px;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-main{
    max-width:calc(100% - 32px)!important;
  }
}


/* v0.6.100 — keep the under-avatar visual offset out of intrinsic sizing, so short text never wraps just because the bubble was moved sideways. */
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
  --chat-bubble-tuck:14px;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-main{
  flex:1 1 0;
  width:auto;
  max-width:none!important;
  min-width:0;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
  width:max-content;
  max-width:calc(100% + var(--chat-bubble-tuck));
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-bubble-wrap{
  width:max-content;
  max-width:100%;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-bubble-wrap>.bubble{
  width:max-content;
  max-width:calc(100% - 26px);
}
@media(max-width:760px){
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
    --chat-bubble-tuck:16px;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-bubble-wrap>.bubble{
    max-width:calc(100% - 25px);
  }
}

/* v0.6.103 — keep profile photos clear of the first bubble while using more of the outer edge space. */
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
  --chat-bubble-tuck:18px;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-avatar{
  position:relative;
  z-index:2;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message)>.message-main{
  position:relative;
  z-index:1;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped)>.message-main{
  padding-top:9px;
}
#messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped) .message-cluster{
  margin-top:8px;
}
#messages.messages>.message:not(.mine):not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
  left:-18px;
}
#messages.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
  left:18px;
}
@media(max-width:760px){
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){
    --chat-bubble-tuck:20px;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped)>.message-main{
    padding-top:11px;
  }
  #messages.messages>.message:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message):not(.message-grouped) .message-cluster{
    margin-top:10px;
  }
  #messages.messages>.message:not(.mine):not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
    left:-21px;
  }
  #messages.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message) .message-cluster{
    left:21px;
  }
}


/* v0.6.105 — interaction/paint budget: local controls react immediately and decorative
   cosmetics must not occupy the main thread at 60fps while the user is chatting. */
button:not(:disabled),[data-action]:not([aria-disabled="true"]){
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
button:not(:disabled):active,[data-action]:not([aria-disabled="true"]):active{
  opacity:.86;
}

/* A frame used to animate the same gradient three times (avatar background, ring and
   blurred halo). Keep the visible ring motion, but make it transform-only so the browser
   can composite it without repainting every chat row. */
@keyframes cos-frame-ring-v06105{to{transform:rotate(360deg)}}
@keyframes cos-frame-halo-v06105{
  0%,100%{opacity:.16;transform:scale(.985)}
  50%{opacity:.28;transform:scale(1.035)}
}
body .avatar[class*="cos-frame-"],
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]{
  animation:none!important;
  will-change:auto!important;
}
body .avatar[class*="cos-frame-"]::before,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::before{
  background-position:50% 50%;
  animation:cos-frame-ring-v06105 var(--cos-frame-duration,9.5s) linear infinite!important;
  will-change:transform!important;
}
body .avatar[class*="cos-frame-"]::after,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::after{
  background-position:50% 50%;
  animation:cos-frame-halo-v06105 var(--cos-frame-duration,9.5s) ease-in-out infinite!important;
  will-change:transform,opacity!important;
}

/* Badge background-position and animated box-shadow forced a repaint for every visible
   badge. A static gradient plus the existing compositor-friendly sweep looks the same at
   a glance without keeping paint work permanently active. */
.identity-badge[class*="cos-badge-"],
.mini-profile-badge[class*="cos-badge-"]{
  animation:none!important;
  will-change:auto!important;
}
.identity-badge[class*="cos-badge-"]::after,
.mini-profile-badge[class*="cos-badge-"]::after{
  will-change:transform;
}

/* Gradient name/bubble cosmetics remain animated, but update at a small visual cadence
   instead of asking the browser to repaint their backgrounds on every display frame. */
body[data-view="chat"] #messages [class*="cos-name-"],
body[data-view="chat"] #messages .bubble[class*="cos-bubble-"]{
  animation-timing-function:steps(24,end)!important;
  will-change:auto!important;
}
.perf-balanced[data-view="chat"] #messages [class*="cos-name-"],
.perf-balanced[data-view="chat"] #messages .bubble[class*="cos-bubble-"]{
  animation-timing-function:steps(14,end)!important;
}

/* Rows well outside the viewport do not need decorative motion at all. Re-enable paint
   containment for framed rows only while they are offscreen; the observer removes this
   class before they enter the visible buffer, so glow edges stay intact on screen. */
#messages .message.perf-offscreen.has-frame-cosmetic{
  content-visibility:auto!important;
  contain:layout style paint!important;
  contain-intrinsic-size:auto 96px;
}
#messages .message.perf-offscreen .avatar[class*="cos-frame-"],
#messages .message.perf-offscreen .avatar[class*="cos-frame-"]::before,
#messages .message.perf-offscreen .avatar[class*="cos-frame-"]::after,
#messages .message.perf-offscreen [class*="cos-name-"],
#messages .message.perf-offscreen .bubble[class*="cos-bubble-"],
#messages .message.perf-offscreen .identity-badge[class*="cos-badge-"],
#messages .message.perf-offscreen .identity-badge[class*="cos-badge-"]::after,
#messages .message.perf-offscreen .record-announcement-card::before,
#messages .message.perf-offscreen .record-announcement-shine,
#messages .message.perf-offscreen .record-announcement-trophy{
  animation-play-state:paused!important;
}

/* If Event Timing/Long Tasks report actual input jank, temporarily trade cosmetic motion
   for latency. This is reversible after the page has been responsive for a short period. */
.perf-adaptive[data-view="chat"] #messages [class*="cos-name-"],
.perf-adaptive[data-view="chat"] #messages .bubble[class*="cos-bubble-"],
.perf-adaptive[data-view="chat"] #messages .identity-badge[class*="cos-badge-"],
.perf-lite[data-view="chat"] #messages [class*="cos-name-"],
.perf-lite[data-view="chat"] #messages .bubble[class*="cos-bubble-"],
.perf-lite[data-view="chat"] #messages .identity-badge[class*="cos-badge-"]{
  animation:none!important;
  will-change:auto!important;
}
.perf-adaptive[data-view="chat"] #messages .avatar[class*="cos-frame-"]::after,
.perf-lite[data-view="chat"] #messages .avatar[class*="cos-frame-"]::after{
  animation:none!important;
  filter:blur(4px) saturate(.9)!important;
  opacity:.2!important;
  transform:none!important;
  will-change:auto!important;
}
.perf-adaptive .live-alert,.perf-adaptive dialog,.perf-adaptive .dm-panel,
.perf-adaptive .game-finish-overlay,.perf-adaptive .shared-start-countdown,
.perf-adaptive .time2048-start-overlay,.perf-adaptive .match-local-sync{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.perf-adaptive .paper,.perf-adaptive .dm-panel,.perf-adaptive dialog{
  box-shadow:0 1px 5px rgba(31,50,75,.08)!important;
}

@media(prefers-reduced-motion:reduce){
  body .avatar[class*="cos-frame-"]::before,
  body .avatar[class*="cos-frame-"]::after,
  .store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::before,
  .store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"]::after,
  body[data-view="chat"] #messages [class*="cos-name-"],
  body[data-view="chat"] #messages .bubble[class*="cos-bubble-"]{
    animation:none!important;
  }
}

/* v0.6.106 — avatar geometry + lower-cost responsive rendering. */
/* Uploaded photos are square-cropped, but the image must also keep its own 1:1 box if a
   surrounding flex/grid row is stretched. This prevents portrait photos from becoming ovals. */
.avatar{aspect-ratio:1/1}
.avatar>img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  align-self:center;
  justify-self:center;
  object-fit:cover!important;
  object-position:50% 50%!important;
  border-radius:50%!important;
  max-width:100%;
}
.message-avatar,.profile-avatar,.account-avatar-preview,.dm-directory-avatar,.store-preview-avatar{aspect-ratio:1/1!important}
/* Do not spend paint/compositing work on invisible chat rows. */
#messages .message.perf-offscreen:not(.has-frame-cosmetic){content-visibility:auto;contain-intrinsic-size:auto 90px}
/* On temporary adaptive mode, heavy blur is the first visual luxury to drop. */
.perf-adaptive .avatar[class*="cos-frame-"]::after,.perf-lite .avatar[class*="cos-frame-"]::after{filter:none!important;opacity:.16!important}


/* v0.6.109 — active chat scrolling gets the full frame budget; decorative motion resumes after input settles. */
body.chat-scrolling[data-view="chat"] #messages .message-enter,
body.chat-scrolling[data-view="chat"] #messages .avatar[class*="cos-frame-"]::before,
body.chat-scrolling[data-view="chat"] #messages .avatar[class*="cos-frame-"]::after,
body.chat-scrolling[data-view="chat"] #messages [class*="cos-name-"],
body.chat-scrolling[data-view="chat"] #messages .bubble[class*="cos-bubble-"],
body.chat-scrolling[data-view="chat"] #messages .identity-badge[class*="cos-badge-"],
body.chat-scrolling[data-view="chat"] #messages .identity-badge[class*="cos-badge-"]::after,
body.chat-scrolling[data-view="chat"] #messages .record-announcement-card::before,
body.chat-scrolling[data-view="chat"] #messages .record-announcement-shine,
body.chat-scrolling[data-view="chat"] #messages .record-announcement-trophy{
  animation-play-state:paused!important;
}
body.chat-scrolling[data-view="chat"] #messages{scroll-behavior:auto!important}
body.chat-scrolling[data-view="chat"] #messages .avatar[class*="cos-frame-"]::after{filter:none!important;opacity:.15!important;will-change:auto!important}

/* v0.6.110 — own-message spacing + rarity-aware lightweight cosmetics. */
/* My avatar sits outside the bubble with enough breathing room for an equipped frame halo. */
.messages>.message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){gap:16px}
.dm-panel .message.mine:not(.game-post-message):not(.record-announcement-message):not(.rush-first-clear-message):not(.flip-first-clear-message):not(.tents-first-clear-message){gap:12px}

/* Common and rare cosmetics are deliberately static. Common palettes are mostly solid;
   rare palettes can keep a richer gradient, but neither tier continuously repaints chat. */
body .avatar[class*="cos-frame-"].cos-rarity-common,
body .avatar[class*="cos-frame-"].cos-rarity-rare,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-common,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-rare{animation:none!important;will-change:auto!important}
body .avatar[class*="cos-frame-"].cos-rarity-common::before,
body .avatar[class*="cos-frame-"].cos-rarity-rare::before,
body .avatar[class*="cos-frame-"].cos-rarity-common::after,
body .avatar[class*="cos-frame-"].cos-rarity-rare::after,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-common::before,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-rare::before,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-common::after,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-rare::after{animation:none!important;will-change:auto!important;transform:none!important;background-position:50% 50%}
body .avatar[class*="cos-frame-"].cos-rarity-common::after,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-common::after{opacity:.12!important;filter:blur(4px) saturate(.85)!important}
body .avatar[class*="cos-frame-"].cos-rarity-rare::after,
.store-preview-frame .avatar.store-preview-avatar[class*="cos-frame-"].cos-rarity-rare::after{opacity:.18!important;filter:blur(5px) saturate(.9)!important}

:is(body,.store-preview-profile,.profile-popover,.mini-profile) [class*="cos-name-"].cos-rarity-common,
:is(body,.store-preview-profile,.profile-popover,.mini-profile) [class*="cos-name-"].cos-rarity-rare{animation:none!important;will-change:auto!important;background-position:50% 50%;background-size:100% 100%!important}
body .bubble[class*="cos-bubble-"].cos-rarity-common,
body .bubble[class*="cos-bubble-"].cos-rarity-rare,
.store-preview-bubble-only .bubble[class*="cos-bubble-"].cos-rarity-common,
.store-preview-bubble-only .bubble[class*="cos-bubble-"].cos-rarity-rare{animation:none!important;will-change:auto!important;background-position:50% 50%;background-size:100% 100%!important}
.identity-badge[class*="cos-badge-"].cos-rarity-common::after,
.identity-badge[class*="cos-badge-"].cos-rarity-rare::after,
.mini-profile-badge[class*="cos-badge-"].cos-rarity-common::after,
.mini-profile-badge[class*="cos-badge-"].cos-rarity-rare::after{animation:none!important;display:none!important;will-change:auto!important}

/* New lower-tier solid/static cosmetics plus a small set of premium moving variants. */
.cos-frame-slate{--cos-frame-gradient:linear-gradient(120deg,#667684,#667684)}
.cos-frame-blush{--cos-frame-gradient:linear-gradient(120deg,#c77e91,#c77e91)}
.cos-frame-cobalt{--cos-frame-gradient:linear-gradient(120deg,#2857a0,#8fbcf5,#2857a0)}
.cos-frame-verdant{--cos-frame-gradient:linear-gradient(120deg,#2c7659,#a1d7b3,#2c7659)}
.cos-frame-opal{--cos-frame-gradient:linear-gradient(120deg,#6d9fe9,#b0e4dc,#e1a6e9,#f1d59b,#6d9fe9);--cos-frame-duration:8.2s}

.cos-name-ink{--cos-name-gradient:linear-gradient(100deg,#343a42,#343a42)}
.cos-name-denim{--cos-name-gradient:linear-gradient(100deg,#315a83,#315a83)}
.cos-name-matcha{--cos-name-gradient:linear-gradient(100deg,#4d7550,#acc78d,#4d7550)}
.cos-name-frost{--cos-name-gradient:linear-gradient(100deg,#397dae,#b8e5ef,#397dae)}
.cos-name-pulse{--cos-name-gradient:linear-gradient(100deg,#345fd0,#63b7e8,#b65fd7,#345fd0);--cos-name-duration:8.8s}

.cos-bubble-sand{--cos-bubble-gradient:linear-gradient(135deg,#f4e5ca,#f4e5ca);border:1px solid #e1c9a2!important;color:#39404a!important}
.cos-bubble-cloud{--cos-bubble-gradient:linear-gradient(135deg,#edf1f4,#edf1f4);border:1px solid #d8dfe6!important;color:#303943!important}
.cos-bubble-citrus{--cos-bubble-gradient:linear-gradient(135deg,#fff5be,#fffbea,#f9e18c);border:1px solid #ead47e!important;color:#4c4328!important}
.cos-bubble-oceanic{--cos-bubble-gradient:linear-gradient(135deg,#d6eff7,#eefaff,#c2e4f2);border:1px solid #90c7dc!important;color:#274253!important}
.cos-bubble-prism{--cos-bubble-gradient:linear-gradient(135deg,#dce8ff,#efe0ff,#ffe1ec,#e4f7f0,#dce8ff);--cos-bubble-duration:9.5s;border:1px solid #c7c6ea!important;color:#33384d!important}

.cos-badge-leaf{--cos-badge-gradient:linear-gradient(110deg,#dfeedd,#f6fbf3);--cos-badge-ink:#3d7046;--cos-badge-glow:#62976d33}
.cos-badge-wave{--cos-badge-gradient:linear-gradient(110deg,#dcedf6,#f7fcff);--cos-badge-ink:#356f95;--cos-badge-glow:#5794bc33}
.cos-badge-brain{--cos-badge-gradient:linear-gradient(110deg,#e9e0f5,#faf7ff,#cdb9e8);--cos-badge-ink:#65498c;--cos-badge-glow:#8669ad45}
.cos-badge-compass{--cos-badge-gradient:linear-gradient(110deg,#f0e4d2,#fffaf0,#ddc095);--cos-badge-ink:#79572d;--cos-badge-glow:#9b784b45}
.cos-badge-master{--cos-badge-gradient:linear-gradient(110deg,#f7cf63,#fff1ad,#df9e25,#f7cf63);--cos-badge-ink:#7a4c08;--cos-badge-glow:#dfad3f60}
