@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap";:root{color:#e9edf6;font-synthesis:none;background:#090d1c;font-family:Be Vietnam Pro,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}.entry-screen{background:radial-gradient(circle at 25% 25%,#1b2945 0,#0000 35%),linear-gradient(#080c19,#10182b);place-items:center;min-height:100vh;padding:24px;display:grid;position:relative}.rain-backdrop{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.entry-card{z-index:1;background:#101628e8;border:1px solid #2b3654;width:min(520px,100%);padding:42px;box-shadow:0 30px 90px #0009,inset 0 1px #ffffff0d}.eyebrow{letter-spacing:.16em;font:500 12px DM Mono,monospace;color:#f2bd66!important}.entry-card h1{letter-spacing:-.04em;margin:16px 0;font-size:clamp(28px,5vw,42px);line-height:1.17}.intro{color:#9ba6bc;margin:0 0 30px;font-size:14px;line-height:1.7}label,legend{color:#bbc3d3;margin-bottom:9px;font-size:12px;display:block}.entry-card input{color:#fff;background:#090d1b;border:1px solid #343f5c;outline:none;width:100%;padding:14px 16px}input:focus,textarea:focus{border-color:#e2ad5d!important}fieldset{border:0;margin:24px 0;padding:0}.avatar-list{gap:12px;display:flex}.avatar-choice{background:#0a0f1e;border:1px solid #343f5c;place-items:center;width:58px;height:58px;display:grid}.avatar-choice span{background:var(--avatar);border:3px solid #1c2336;width:23px;height:31px;box-shadow:0 -11px 0 -4px #eac3a1,0 -15px 0 -4px #252b3c}.avatar-choice.selected{background:#22263a;border-color:#efbc68;box-shadow:0 0 0 2px #efbc6825}.enter-button{color:#171524;background:#e4ae5e;border:0;justify-content:space-between;width:100%;padding:14px 18px;font-weight:700;display:flex}.enter-button:disabled{opacity:.35;cursor:not-allowed}.privacy-note{font-size:11px;text-align:center!important;color:#68738b!important;margin:18px 0 -10px!important}.game-shell,.game-canvas{background:#090d1c;position:fixed;inset:0}.game-canvas canvas{display:block}.topbar{z-index:80;pointer-events:none;background:linear-gradient(#080b16ed,#0000);justify-content:space-between;align-items:center;height:62px;padding:0 22px;display:flex;position:fixed;top:0;left:0;right:0}.topbar strong{letter-spacing:.1em;font:500 14px DM Mono,monospace;display:block}.status-dot{color:#77839b;font-size:11px}.status-dot:before{content:"";background:#7d5360;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.status-dot.online:before{background:#72c79b}.top-actions{pointer-events:auto;gap:8px;display:flex}.top-actions button,.person-row button{background:#101729cc;border:1px solid #2e3a55;padding:7px 10px;font-size:11px}.toast{z-index:120;background:#11192dec;border:1px solid #4a5874;padding:10px 16px;font-size:12px;position:fixed;top:74px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #0008}.people-panel{z-index:70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0b1020d9;border:1px solid #27324c;width:235px;max-height:35vh;padding:13px;position:fixed;top:82px;right:18px;overflow:auto}.people-panel>p{letter-spacing:.1em;color:#79859d;margin:0 0 10px;font:500 10px DM Mono}.people-panel small{color:#68758c;font-size:10px;line-height:1.6;display:block}.person-row{border-top:1px solid #ffffff0a;align-items:center;gap:8px;padding:7px 0;font-size:11px;display:flex}.person-row>span:nth-child(2){white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.person-row div{gap:3px;display:flex}.person-row button{color:#919bb0;padding:3px 5px}.mini-avatar{background:#f4b860;border-radius:2px;width:10px;height:15px}.mini-avatar.mint{background:#77d5b5}.mini-avatar.violet{background:#aa8df5}.mini-avatar.rose{background:#ef8398}.chat-panel{z-index:80;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#0b1020e8;border:1px solid #293550;width:min(430px,100vw - 36px);position:fixed;bottom:18px;left:18px;box-shadow:0 15px 45px #0008}.chat-heading{letter-spacing:.08em;color:#d3ac6e;border-bottom:1px solid #27324c;justify-content:space-between;align-items:center;padding:10px 13px;font:500 10px DM Mono;display:flex}.chat-heading small{color:#69758c;letter-spacing:0;font:400 9px Be Vietnam Pro}.message-list{flex-direction:column;justify-content:flex-end;gap:5px;height:126px;padding:8px 13px;display:flex;overflow:hidden}.message-list p{color:#c8cfdd;margin:0;font-size:11px;line-height:1.45}.message-list b{color:#f0bb67;margin-right:5px}.message-list .system-message{color:#d3b7ee;font-style:italic}.message-list .empty-chat{color:#606d84}.chat-panel form{border-top:1px solid #27324c;align-items:center;display:flex}.chat-panel input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0;padding:11px 12px;font-size:12px}.chat-panel form span{color:#58657c;font-size:9px}.chat-panel form button{color:#efbc68;background:#171e31;border:0;border-left:1px solid #27324c;align-self:stretch;padding:0 15px;font-size:11px}.interact-button{z-index:75;color:#111424;background:#bd8d48e8;border:1px solid #d5a65f;padding:12px 15px;font-weight:700;position:fixed;bottom:28px;right:25px;box-shadow:0 8px 25px #0006}.interact-button kbd{color:#fff;background:#1a1a25;margin-left:8px;padding:2px 5px;font:10px DM Mono}.hint{z-index:60;color:#6e7890;background:#080c17a8;padding:5px 8px;font-size:9px;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.joystick{z-index:85;touch-action:none;background:#0a1020a8;border:1px solid #91a2bd42;border-radius:50%;width:100px;height:100px;display:none;position:fixed;bottom:205px;left:24px}.joystick:before{content:"";background:#aab6c52d;border-radius:50%;position:absolute;inset:31px}.joystick span{background:#dfb26c99;border-radius:50%;position:absolute;inset:42px}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#03050bca;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confession-modal{background:#151126;border:1px solid #694f88;width:min(480px,100%);padding:32px;position:relative;box-shadow:0 30px 90px #000}.confession-modal h2{margin:8px 0;font-size:27px}.confession-modal>p:not(.eyebrow){color:#918aa1;font-size:12px;line-height:1.6}.modal-close{color:#887d99;background:0 0;border:0;font-size:24px;position:absolute;top:12px;right:14px}.paper{background:#e8dfcd;margin:24px 0 16px;transition:all 1.8s;position:relative;overflow:hidden;transform:rotate(-.5deg);box-shadow:0 8px 30px #0007}.paper textarea{resize:none;color:#28232d;background:0 0;border:0;outline:0;width:100%;height:160px;padding:20px;line-height:1.65}.paper>span{color:#81786e;font:10px DM Mono;position:absolute;bottom:9px;right:12px}.flame{opacity:0;text-align:center;filter:blur(2px);width:100%;font-size:70px;transition:all .4s;position:absolute;bottom:-25px;left:0}.paper.burning{filter:sepia()brightness(.35);opacity:0;border-radius:50%;transform:scale(.15)rotate(12deg)}.paper.burning .flame{opacity:1;bottom:5px}.burn-button{background:#8f3d32;border:1px solid #c6744d;width:100%;padding:12px;font-weight:700}.burn-button:disabled{opacity:.4;cursor:not-allowed}@media (width<=700px){.people-panel,.hint{display:none}.topbar{padding:0 12px}.top-actions button:first-child{display:none}.chat-panel{width:calc(100vw - 20px);bottom:10px;left:10px}.message-list{height:98px}.interact-button{bottom:181px;right:14px}.joystick{display:block}.entry-card{padding:30px 24px}.confession-modal{padding:25px 20px}}@media (height<=650px){.people-panel{display:none}.message-list{height:75px}.chat-panel{bottom:8px}.joystick{bottom:150px}.interact-button{bottom:145px}}.game-shell,.game-canvas{background:#132535}.game-vignette{z-index:55;pointer-events:none;background:radial-gradient(at 50% 45%,#0000 45%,#070d1c62 100%),linear-gradient(#08101cc0 0,#0000 17% 75%,#08101c80 100%);position:fixed;inset:0}.topbar{background:linear-gradient(#07101de8,#07101d55 75%,#0000);height:80px;padding:0 30px}.brand{align-items:center;gap:13px;display:flex}.brand-mark{color:#f3cf8d;background:#17283be0;border:1px solid #f1c88469;border-radius:50%;place-items:center;width:42px;height:42px;font:28px Georgia,serif;display:grid;box-shadow:0 0 30px #dda8642b}.topbar strong{letter-spacing:.16em;color:#f7e5bf;text-shadow:0 2px 8px #000;font:700 15px Be Vietnam Pro,system-ui}.status-dot{color:#a6bac4;margin-top:5px;font-size:11px;display:block}.status-dot.online:before{box-shadow:0 0 8px #76d2a5}.top-actions{gap:10px}.top-actions button{color:#e6ddc9;background:#152536db;border:1px solid #6f796e8a;border-radius:5px;padding:9px 14px;transition:background .2s,transform .2s;box-shadow:0 4px 18px #07101b6b}.top-actions button:hover{background:#29435a;transform:translateY(-1px)}.top-actions button:last-child{color:#b9c6ce;border-color:#54637166}.people-panel{-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);background:#0e1b29d9;border:1px solid #8b806b69;border-radius:7px;width:256px;max-height:36vh;padding:0;top:94px;right:26px;overflow:hidden;box-shadow:0 12px 35px #04091380}.people-panel>p{letter-spacing:.13em;color:#d9bb86;background:#203142b8;border-bottom:1px solid #e4bd7a27;margin:0;padding:13px 15px;font:600 10px Be Vietnam Pro,system-ui}.panel-icon{color:#efc676;margin-right:5px}.people-panel small{color:#a0afba;margin:14px 15px 16px;font-size:11px}.person-row{border-color:#d4c29820;margin:0 12px;padding:10px 2px}.mini-avatar{border:2px solid #101b29;width:14px;height:19px;box-shadow:0 0 0 1px #a9aa9670}.person-row button{color:#c3c6bd;border-radius:3px}.city-caption{z-index:60;pointer-events:none;text-shadow:0 2px 10px #050b13;position:fixed;top:111px;left:30px}.city-caption span{color:#dfbc7d;letter-spacing:.17em;margin-bottom:9px;font:500 10px DM Mono,monospace;display:block}.city-caption strong{color:#f0e6d3;letter-spacing:.015em;font:500 clamp(17px,1.7vw,23px)/1.34 Georgia,serif;display:block}.chat-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#101e2ae8;border:1px solid #b3a48075;border-radius:8px;width:min(420px,100vw - 56px);bottom:26px;left:28px;overflow:hidden;box-shadow:0 14px 50px #040914a3}.chat-heading{color:#ecd1a0;letter-spacing:0;background:#2435449c;border-color:#b9a47c2e;padding:12px 15px;font:600 12px Be Vietnam Pro,system-ui}.chat-heading i{background:#d8a766;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 10px #d8a766}.chat-heading small{color:#b8b8b3;font-size:10px}.message-list{gap:7px;height:130px;padding:12px 16px}.message-list p{color:#e1e1dc;font-size:12px}.message-list b{color:#eac586}.message-list .empty-chat{color:#879aa7;font-style:italic}.chat-panel form{background:#0b1824b3;border-color:#b9a47c2e}.chat-panel input{color:#f9f5e9;padding:13px 15px;font-size:12px}.chat-panel input::placeholder{color:#8193a1}.chat-panel form button{color:#1b1b21;background:#bd8d54;border-left:0;padding:0 18px;font-weight:700}.chat-panel form button:hover{background:#e0af6a}.interact-button{color:#23232a;background:#e1b26e;border:1px solid #ffdf9d;border-radius:6px;padding:13px 18px;transition:transform .15s,box-shadow .15s;bottom:28px;right:28px;box-shadow:0 8px #755231,0 12px 30px #0008}.interact-button:hover{transform:translateY(2px);box-shadow:0 6px #755231,0 10px 28px #0008}.interact-button kbd,.hint kbd{color:#f4e5ca;background:#1e2b38;border:1px solid #b6b2a188;border-radius:3px;padding:2px 5px;font:500 10px DM Mono,monospace}.hint{color:#c5c8c4;background:#0d1b2acc;border:1px solid #9ba69a50;border-radius:5px;align-items:center;gap:3px;padding:8px 10px;font-size:10px;display:flex;bottom:27px;box-shadow:0 6px 20px #0006}.hint span{margin-left:5px}.hint .hint-divider{background:#9ba69a66;width:1px;height:13px;margin:0 7px}.toast{color:#f5e6c8;background:#1c2c3ced;border-color:#d8bc8b8c;border-radius:5px;top:88px}@media (width<=700px){.topbar{height:70px;padding:0 12px}.brand{gap:8px}.brand-mark{width:35px;height:35px;font-size:22px}.topbar strong{letter-spacing:.1em;font-size:10px}.status-dot{font-size:9px}.top-actions button{padding:7px 8px;font-size:10px}.city-caption{top:81px;left:15px}.city-caption span{font-size:8px}.city-caption strong{font-size:16px}.people-panel,.hint{display:none}.chat-panel{width:calc(100vw - 20px);bottom:10px;left:10px}.message-list{height:92px}.interact-button{padding:11px 13px;bottom:190px;right:16px}.joystick{background:#102536a6;border-color:#d5bf8d88;display:block;bottom:205px;left:17px}}@media (height<=650px){.city-caption{display:none}.message-list{height:70px}.joystick{bottom:155px}.interact-button{bottom:148px}}.avatar-choice{background:linear-gradient(160deg,#1d2c3d,#0d1627);border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:86px;height:94px;transition:transform .18s,background .18s;display:flex}.avatar-choice:hover{background:#263a4d;transform:translateY(-3px)}.avatar-choice small{color:#b7c6cc;white-space:nowrap;font-size:9px}.avatar-choice.selected small{color:#ffdc9b}.avatar-choice .avatar-preview{width:48px;height:56px;box-shadow:none;background:0 0;border:0;display:block;position:relative}.avatar-choice .avatar-preview i{display:block;position:absolute}.avatar-preview-hair{z-index:2;background:#2a2d3b;border-radius:48% 48% 38% 38%;width:26px;height:27px;top:1px;left:11px}.avatar-preview-face{z-index:3;background:#e9b991;border-radius:45%;width:22px;height:23px;top:9px;left:13px;box-shadow:inset 0 -5px #ce987b}.avatar-preview-face:after{content:"•  •";color:#202535;letter-spacing:1px;font-size:9px;position:absolute;top:6px;left:4px}.avatar-preview-coat{background:var(--avatar);z-index:2;border-radius:10px 10px 5px 5px;width:32px;height:23px;top:29px;left:8px;box-shadow:inset 0 -5px #0002}.avatar-preview-legs{z-index:1;background:linear-gradient(90deg,#243043 0 40%,#0000 40% 60%,#243043 60%);border-radius:0 0 3px 3px;width:20px;height:9px;top:47px;left:14px}.avatar-choice.selected{background:linear-gradient(160deg,#3a3940,#1d2535);box-shadow:0 0 0 2px #efbc6840,0 10px 20px #0005}.game-canvas canvas{width:100%;height:100%;display:block}.game-shell.street-view .game-canvas{background:#0b1b2b}.game-shell.map-view .game-canvas{background:#0a1828}.game-shell.city-map .people-panel,.game-shell.city-map .chat-panel,.game-shell.city-map .interact-button,.game-shell.city-map .hint{display:none}.mini-map{z-index:32;cursor:pointer;text-align:left;background:#101d2ce8;border:1px solid #c5a77a9c;border-radius:6px;width:150px;padding:5px;transition:transform .18s,border-color .18s;position:fixed;bottom:28px;left:27px;box-shadow:0 12px 28px #0009}.mini-map:hover{border-color:#f1ca84;transform:translateY(-2px)}.mini-map-image{aspect-ratio:1.35;background:#16283a;border:1px solid #c7ab7a5c;border-radius:3px;width:100%;display:block;position:relative;overflow:hidden}.mini-map-image.live-map{background:#142b3a}.mini-map-image.live-map svg{width:100%;height:100%;display:block}.mini-map-image.live-map text{fill:#f9dfad;letter-spacing:2px;text-anchor:middle;paint-order:stroke;stroke:#1a2731;stroke-width:7px;font:700 42px DM Mono,monospace}.mini-map-image:after{content:"";pointer-events:none;background:linear-gradient(#07132212,#07132240);position:absolute;inset:0}.mini-map-image i{z-index:2;pointer-events:none;background:#f5b968;border:2px solid #fff8d7;border-radius:50%;width:10px;height:10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #f4b55c60,0 0 12px #ffc575}.mini-map-caption{color:#ebc382;letter-spacing:.06em;text-align:center;padding:7px 3px 2px;font:600 9px DM Mono,monospace;display:block}.mini-map.is-open{border-color:#f4d28e}.junction-hint{z-index:34;color:#f5d69a;text-align:center;white-space:nowrap;background:#102031db;border:1px solid #c5a77a82;border-radius:5px;flex-direction:column;gap:3px;padding:9px 16px;display:flex;position:fixed;top:145px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #0006}.junction-hint strong{font-size:12px}.junction-hint span{color:#d2d7d1;font-size:10px}.venue-occupancy,.bridge-area-label{z-index:38;color:#f4d19a;text-align:center;pointer-events:none;background:#102235e8;border:1px solid #cfae7788;border-radius:6px;flex-direction:column;align-items:center;gap:3px;min-width:190px;padding:10px 16px;display:flex;position:fixed;top:205px;left:50%;transform:translate(-50%);box-shadow:0 9px 25px #0008}.venue-occupancy strong{font-size:13px}.venue-occupancy span{color:#d4d9d4;font-size:10px}.bridge-area-label{min-width:0;font-size:11px;top:150px}.scene-transition{z-index:190;opacity:0;pointer-events:none;background:#07101a;transition:opacity .26s;position:fixed;inset:0}.scene-transition.active{opacity:1}.chat-panel{width:min(370px,100vw - 56px);bottom:105px;left:auto;right:28px}.chat-heading{gap:8px}.chat-heading>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chat-close{color:#f5d39a;cursor:pointer;background:#e4c38722;border:0;border-radius:4px;width:24px;height:24px;padding:0;font-size:19px;line-height:1}.chat-close:hover{background:#e4c38744}.person-select{text-align:left;cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;display:flex;color:#e8e3d5!important;background:0 0!important;border:0!important;padding:4px 6px!important}.person-select>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.person-select:hover,.person-select.active{background:#dcb87624!important}.person-talking{color:#f2d39b;border:1px solid #d9bd817a;border-radius:50%;place-items:center;min-width:17px;height:17px;margin-left:auto;font:700 9px DM Mono,monospace;display:grid}.mini-avatar{flex:none}@media (width<=700px){.avatar-list{justify-content:space-between;gap:7px}.avatar-choice{width:calc(25% - 6px);min-width:0;height:87px}.avatar-choice small{font-size:8px}.top-actions button:first-child,.top-actions button:nth-child(2){display:inline-flex}.mini-map{width:108px;padding:4px;top:auto;bottom:190px;left:11px}.mini-map-caption{padding:5px 0 1px;font-size:7px}.chat-panel{width:calc(100vw - 20px);bottom:10px;left:auto;right:10px}.joystick{bottom:305px}.junction-hint{padding:6px 9px;top:190px}.junction-hint strong{font-size:10px}.junction-hint span{font-size:8px}.venue-occupancy{padding:7px 10px;top:235px}.bridge-area-label{top:145px}}.entry-screen{background:#0a1824;justify-content:center;align-items:flex-start;height:100dvh;display:flex;overflow-y:auto}.entry-screen:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#07111ebc,#0913219d 48%,#07111ebc),linear-gradient(#0000 35%,#06101dc9);position:fixed;inset:0}.entry-city-art{z-index:0;pointer-events:none;filter:brightness(.55)saturate(.8);width:100%;height:100%;position:fixed;inset:0}.entry-screen .entry-card{z-index:1;position:relative}.character-entry{background:#101b2af0;border-color:#b99d704f;border-radius:12px;grid-template-columns:minmax(0,1fr) 340px;width:min(980px,100%);margin:auto 0;padding:0;display:grid;overflow:hidden;box-shadow:0 34px 100px #020510e6}.entry-details{padding:36px 38px 28px}.character-entry h1{margin:10px 0;font-size:clamp(26px,3.6vw,38px)}.character-entry .intro{margin-bottom:21px;font-size:12px;line-height:1.6}.character-entry label{color:#d1d2d2}.character-entry input{background:#0a1421;border-color:#46556a;border-radius:5px}.character-fieldset{border:0;margin:17px 0 0;padding:0}.character-fieldset legend{color:#d5b47d;letter-spacing:.08em;margin-bottom:9px;font:600 10px DM Mono,monospace}.base-options,.style-options{flex-wrap:wrap;gap:8px;display:flex}.base-option{text-align:left;background:#142437;border:1px solid #455469;border-radius:6px;flex:1;align-items:center;gap:9px;min-width:0;padding:8px;transition:background .2s,border-color .2s;display:flex}.base-option:hover,.style-option:hover{background:#21394a}.base-option.selected,.style-option.selected{background:#38404a;border-color:#e8bd7b;box-shadow:inset 0 0 0 1px #e8bd7b44}.base-option strong{color:#f4e9d4;font-size:12px;display:block}.base-option small{color:#9cabb4;white-space:nowrap;margin-top:3px;font-size:9px;display:block}.base-face{color:#303443;background:#e9bb98;border-radius:45% 45% 42% 42%;flex:none;place-items:center;width:31px;height:34px;font-size:16px;display:grid;box-shadow:inset 0 7px #302b31}.base-an{background:#c98f69;box-shadow:inset 0 7px #252b32}.base-linh{background:#f1c8a8;box-shadow:inset 0 7px #513b35}.style-option{color:#d7dedf;background:#142437;border:1px solid #445269;border-radius:5px;align-items:center;gap:7px;min-height:36px;padding:7px 10px;font-size:11px;transition:background .2s,border-color .2s;display:inline-flex}.style-option i{border:1px solid #fff6;border-radius:50%;width:14px;height:14px;display:inline-block}.character-entry .enter-button{border-radius:5px;margin-top:23px}.character-entry .privacy-note{text-align:left!important;margin:13px 0 0!important}.character-preview{background:radial-gradient(circle at 45% 48%,#33485b 0,#192a3d 45%,#0b1625 100%);border-left:1px solid #c8ad7a38;flex-direction:column;min-width:0;display:flex}.preview-heading,.preview-footer{color:#dcc18e;letter-spacing:.07em;justify-content:space-between;align-items:center;gap:10px;padding:19px 20px;font:600 10px DM Mono,monospace;display:flex}.preview-heading span:last-child{color:#8699a3;font-size:9px}.avatar-stage{touch-action:none;cursor:grab;flex:1;min-height:360px;position:relative;overflow:hidden}.avatar-stage:active{cursor:grabbing}.avatar-stage:after{content:"";filter:blur(14px);pointer-events:none;background:#040d18a0;border-radius:50%;width:52%;height:7%;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.avatar-stage canvas{z-index:1;display:block;position:relative}.avatar-stage,.avatar-stage:active{cursor:default}.avatar-stage canvas{width:100%;height:100%}.preview-footer{color:#f2e3c6;letter-spacing:0;border-top:1px solid #c8ad7a38;font:600 13px Be Vietnam Pro,system-ui}.preview-footer span{color:#92a1ad;font-size:10px;font-weight:400}.mini-avatar.raincoat{background:#d6a761}.mini-avatar.sweater{background:#9d7b9b}.mini-avatar.hoodie{background:#6d9d94}.mini-avatar.jacket{background:#9e7369}@media (width<=760px){.entry-screen{padding:12px}.character-entry{grid-template-columns:1fr;max-width:560px}.entry-details{padding:24px 20px 21px}.character-entry h1{font-size:28px}.character-preview{border-bottom:1px solid #c8ad7a38;border-left:0;grid-row:1}.avatar-stage{flex:none;height:260px;min-height:260px}.preview-heading,.preview-footer{padding:10px 17px}.base-option{gap:5px;padding:6px}.base-face{width:25px;height:28px;font-size:12px}.base-option strong{font-size:10px}.base-option small{display:none}.style-option{padding:6px 8px;font-size:10px}}.city-2d-shell,.city-2d-shell .game-canvas{background:#0b1722}.city-2d-canvas{touch-action:none}.city-3d-canvas,.city-overlay-canvas{width:100%;height:100%;position:absolute;inset:0}.city-3d-canvas{pointer-events:none}.city-2d-shell .game-vignette{pointer-events:none;opacity:.28}.city-2d-shell .topbar{background:linear-gradient(#07121fdc,#0000);height:68px;padding:0 22px}.city-2d-shell .brand-mark{opacity:.8}.city-2d-shell .top-actions button{box-shadow:none;background:#10202dcc;border-color:#9b937746}.city-2d-shell .top-actions button:hover{background:#1b3040;transform:none}.place-label{z-index:35;color:#dcc397;pointer-events:none;background:#0a1723a8;border:1px solid #c3ac7850;border-radius:4px;padding:6px 10px;font-size:11px;position:fixed;top:72px;left:24px}.city-2d-shell .chat-panel{background:#10202be8;border-color:#a99e7963;width:min(380px,100vw - 44px);bottom:22px;right:22px;box-shadow:0 12px 34px #01081180}.chat-members{border-bottom:1px solid #b9a47c2e;flex-wrap:wrap;gap:5px;padding:6px 12px;display:flex}.chat-members span{color:#bec9ca;align-items:center;gap:5px;font-size:10px;display:flex}.chat-members button{color:#d6c5a5;background:#263945;border:0;border-radius:3px;padding:3px 5px;font-size:9px}.city-2d-shell .interact-button{background:#d7b578;border-color:#e4cca0;padding:11px 15px;bottom:22px;right:22px;box-shadow:0 4px 16px #02091080}.city-2d-shell .interact-button:hover{background:#e1c38d;transform:none;box-shadow:0 4px 16px #02091080}.city-2d-shell .toast{top:83px}.city-2d-shell .joystick{bottom:22px;left:22px}.city-2d-shell .joystick span{transform:translate(var(--joy-x,0px),var(--joy-y,0px));background:#d9bc88c7}@media (width<=700px){.city-2d-shell .topbar{height:58px;padding:0 12px}.city-2d-shell .top-actions{gap:5px}.city-2d-shell .top-actions button{padding:7px 8px;font-size:10px;display:inline-flex}.place-label{font-size:10px;top:63px;left:12px}.city-2d-shell .joystick{background:#102636b8;border-color:#c0af8b6e;width:94px;height:94px;display:block;bottom:20px;left:18px}.city-2d-shell .interact-button{min-width:104px;min-height:48px;bottom:38px;right:18px}.city-2d-shell .interact-button kbd{display:none}.city-2d-shell .chat-panel{width:auto;max-height:42dvh;bottom:132px;left:10px;right:10px}.city-2d-shell .message-list{height:88px}}@media (height<=520px) and (width<=700px){.city-2d-shell .chat-panel{bottom:95px}.city-2d-shell .joystick{width:76px;height:76px;bottom:9px}.city-2d-shell .interact-button{bottom:20px}}.confession-backdrop{background:radial-gradient(circle at 50% 60%,#2a140c55,#03050be6 70%)}.confession-modal{background:linear-gradient(170deg,#1a1216,#120d14);border:1px solid #5a3a3a;border-radius:4px;width:min(520px,100%);padding:26px 30px 22px;box-shadow:0 30px 90px #000,inset 0 0 0 1px #00000060,0 0 80px #ff8a3a14}.confession-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.booth-tag{letter-spacing:.14em;color:#c8a050;background:#c8a05012;border:1px solid #6a5030;border-radius:2px;padding:4px 9px;font:500 11px DM Mono,monospace}.confession-modal .modal-close{color:#a89a8a;border-radius:50%;width:30px;height:30px;position:static}.confession-modal .modal-close:hover:not(:disabled){background:#ffffff10}.confession-modal h2{color:#f2e6d4;margin:6px 0;font:600 30px Georgia,Be Vietnam Pro,serif}.confession-lead{line-height:1.6;color:#a8998a!important;font-size:13px!important}.confession-modal .paper{background:#ece2cc repeating-linear-gradient(#0000 0 27px,#9fb4c840 27px 28px) 0 44px;border-radius:2px;margin:20px 0 18px;padding:16px 20px 26px;transition:filter 2s,transform 2.4s,opacity 2.4s;transform:rotate(-.4deg);box-shadow:0 10px 30px #000a,inset 0 0 40px #b8945a30}.confession-modal .paper:before{content:"";background:#d9757540;width:1px;position:absolute;top:0;bottom:0;left:42px}.confession-modal .paper>.paper-date{color:#7a6a58;margin:0 0 6px 30px;font:italic 13px Georgia,serif;display:block;position:static}.confession-modal .paper textarea{color:#2a2228;background:0 0;height:168px;padding:0 0 0 30px;font:16px/28px Georgia,Be Vietnam Pro,serif}.confession-modal .paper textarea::placeholder{color:#9a8a78;font-style:italic}.confession-modal .paper>.paper-count{color:#8a7a68;font:10px DM Mono,monospace;position:absolute;bottom:8px;right:14px}.paper-fire{pointer-events:none;background:linear-gradient(#0000 0%,#ffd27a 28%,#ff7a2a 38%,#3a1608 65%,#120a08 100%);height:0;position:absolute;inset:auto 0 0}.embers{pointer-events:none;position:absolute;inset:0;overflow:hidden}.embers i{left:var(--x);opacity:0;background:#ffb060;border-radius:50%;width:4px;height:4px;position:absolute;bottom:-8px;box-shadow:0 0 8px #ff7a2a}.confession-modal .paper.burning{filter:sepia(.4);opacity:0;transition-delay:.9s;transform:rotate(3deg)scale(.96)translateY(-14px)}.paper.burning .paper-fire{animation:2.1s ease-in forwards paper-burn}.paper.burning .embers i{animation:ember-rise 1.6s ease-out var(--d) infinite}.paper.burning textarea{color:#2a222800;transition:color 1.6s .4s}@keyframes paper-burn{to{height:140%}}@keyframes ember-rise{0%{opacity:0;transform:translate(0)}15%{opacity:1}to{opacity:0;transform:translate(14px,-200px)}}.confession-actions{gap:10px;display:flex}.confession-actions button{letter-spacing:.02em;border-radius:3px;flex:1;padding:12px;font-weight:700}.ghost-button{color:#c8b8a8;background:0 0;border:1px solid #4a3a3a}.ghost-button:hover:not(:disabled){background:#ffffff08}.confession-modal .burn-button{color:#fff2e0;background:linear-gradient(#a4472f,#7e3020);border:1px solid #d0784d;box-shadow:0 6px 18px #a4472f40}.confession-modal .burn-button:hover:not(:disabled){filter:brightness(1.1)}.privacy-note{text-align:center;margin:14px 0 0;color:#7a6e66!important;font-size:11px!important}.privacy-note:before{content:"";vertical-align:-1px;border:1.5px solid #8a7e72;border-radius:2px;width:7px;height:7px;margin-right:7px;display:inline-block}.confession-modal .hang-button{color:#e8f0d8;background:#2a3a2a;border:1px solid #6a8a5a}.confession-modal .hang-button:hover:not(:disabled){background:#34482f}.confession-modal .confession-actions button:disabled{opacity:.4;cursor:not-allowed}.confession-modal .paper.hanging{opacity:0;transition:transform 1.1s cubic-bezier(.5,0,.8,.4),opacity 1.1s .1s;transform:rotate(-6deg)scale(.35)translateY(-260px)}.reader-modal{width:min(560px,100%)}.note-list{gap:12px;max-height:min(56vh,480px);margin-top:18px;padding:4px 6px 4px 2px;display:grid;overflow:auto}.hung-note{color:#2a2228;transform:rotate(var(--tilt,-.4deg));background:#ece2cc;border-radius:2px;padding:16px 18px 10px;position:relative;box-shadow:0 6px 18px #0008}.hung-note:nth-child(2n){--tilt:.5deg;background:#efe6d6}.hung-note:before{content:"";background:#8a3a2a;border-radius:50%;width:9px;height:9px;margin-left:-4px;position:absolute;top:-5px;left:50%;box-shadow:0 1px 2px #0006}.hung-note p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font:15px/1.6 Georgia,Be Vietnam Pro,serif}.hung-note footer{color:#8a7a68;justify-content:space-between;align-items:center;margin-top:8px;font:10px DM Mono,monospace;display:flex}.hung-note footer button{color:#8a5a4a;font:inherit;cursor:pointer;background:0 0;border:0;padding:2px;text-decoration:underline}.hung-note.own{box-shadow:0 6px 18px #0008,0 0 0 1px #c8a050}.own-tag{letter-spacing:.08em;color:#8a6a2a;text-transform:uppercase;font:9px DM Mono,monospace;position:absolute;top:8px;right:10px}.hung-note footer span{gap:8px;display:flex}.hung-note footer button:disabled{opacity:.4;cursor:not-allowed}.hung-note.burning{animation:1.6s ease-in forwards note-burn}@keyframes note-burn{0%{filter:none}40%{filter:sepia()saturate(3)hue-rotate(-20deg)brightness(.9);box-shadow:0 0 24px #ff7a2a}to{filter:sepia()brightness(.2);opacity:0;transform:scale(.9)translateY(-20px)}}@media (prefers-reduced-motion:reduce){.hung-note.burning{animation-duration:.3s}}.empty-notes{color:#918aa1;text-align:center;padding:24px 8px;font-size:13px;line-height:1.6}@media (prefers-reduced-motion:reduce){.paper.burning .paper-fire,.paper.burning .embers i{animation:none}.confession-modal .paper.burning,.confession-modal .paper.hanging{transition-duration:.3s}}.meditation{z-index:30;color:#f2e6d4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;background:#0d1218d9;border:1px solid #c8a05055;border-radius:999px;align-items:center;gap:14px;padding:10px 18px 10px 12px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.meditation small{color:#a8998a;margin-top:2px;font:11px DM Mono,monospace;display:block}.breath{background:radial-gradient(circle,#ffe7a0 0%,#d9a63a 55%,#d9a63a00 72%);border-radius:50%;width:30px;height:30px;animation:8s ease-in-out infinite breath}.breath-text{font:600 14px Be Vietnam Pro,sans-serif;display:grid}.breath-text span{grid-area:1/1;animation:8s step-end infinite breath-label}.breath-text span+span{animation-delay:-4s}@keyframes breath{0%,to{opacity:.6;transform:scale(.55)}50%{opacity:1;transform:scale(1.15)}}@keyframes breath-label{0%{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.breath,.breath-text span{animation:none}.breath-text span+span{display:none}}.minimap{z-index:40;flex-direction:column;align-items:center;gap:6px;transition:bottom .25s;display:flex;position:fixed;bottom:20px;left:20px}.minimap.raised{bottom:300px}.minimap{transition:bottom .25s,opacity .3s,transform .3s}.minimap.overview{opacity:0;pointer-events:none;transform:translateY(12px)}.minimap canvas{background:#0d1a26;border-radius:50%;display:block;box-shadow:0 10px 34px #000a,0 0 0 4px #0a1723cc,0 0 0 5px #c8a46a40}.minimap-caption{color:#e8d4a8;white-space:nowrap;text-overflow:ellipsis;background:#0a1723e0;border:1px solid #c3ac7850;border-radius:999px;max-width:170px;padding:3px 10px;font:500 10.5px Be Vietnam Pro,sans-serif;overflow:hidden;box-shadow:0 4px 14px #0007}.minimap-close,.minimap-open{color:#f0d49a;cursor:pointer;background:#0d1a26;border:1px solid #c8a46a80;border-radius:50%;font:700 12px/1 Be Vietnam Pro,sans-serif}.minimap-close{width:20px;height:20px;font-size:11px;position:absolute;top:0;right:0}.minimap-open{width:34px;height:34px;box-shadow:0 6px 20px #0008}.minimap-close:hover,.minimap-open:hover{background:#16283a}@media (width<=700px){.minimap{transform-origin:0 0;align-items:flex-start;top:96px;bottom:auto;left:12px;transform:scale(.62)}.minimap.overview{transform:scale(.62)translateY(-12px)}.minimap-caption,.minimap.raised{display:none}}.game-shell,.game-canvas,.game-canvas canvas{touch-action:none;overscroll-behavior:none}.note-list,.message-list{touch-action:pan-y}@media (pointer:coarse){.chat-panel input,.confession-modal textarea,.entry-screen input{font-size:16px}}.city-2d-shell .chat-panel:focus-within{bottom:calc(8px + var(--keyboard,0px))}.typing .joystick,.typing .minimap,.typing .interact-button,.typing .meditation{display:none}.temple-actions{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1218c8;border:1px solid #c8a05055;border-radius:999px;gap:8px;max-width:calc(100vw - 24px);padding:6px;display:flex;position:fixed;bottom:22px;left:50%;overflow-x:auto;transform:translate(-50%)}.temple-actions button{white-space:nowrap;color:#f2e6d4;cursor:pointer;background:#1a1410;border:1px solid #c8a05040;border-radius:999px;align-items:center;gap:6px;padding:8px 13px;font:600 12px Be Vietnam Pro,sans-serif;display:flex}.temple-actions button:hover{background:#2a2016;border-color:#e8c27e}.temple-actions button span{font-size:14px}@media (width<=700px){.temple-actions{border-radius:14px;flex-direction:column;inset:132px 10px auto auto;transform:none}.temple-actions button{padding:7px 10px;font-size:11px}}.typing .temple-actions{display:none}.tonight{color:#e8d4a8;background:#c8a05012;border:1px solid #c8a05055;border-radius:999px;margin:6px 0 2px;padding:6px 12px;font:500 12px Be Vietnam Pro,sans-serif;display:inline-block}.tonight strong{color:#ffd27a}.entry-screen form label.recognize-option{color:#d8cbb4;letter-spacing:0;text-transform:none;cursor:pointer;text-align:left;flex-direction:row;justify-content:flex-start;align-items:flex-start;gap:10px;margin:16px 0 4px;font:400 12.5px/1.45 Be Vietnam Pro,sans-serif;display:flex}.entry-screen form label.recognize-option input{accent-color:#d9a63a;flex:none;width:16px;height:16px;min-height:0;margin:2px 0 0;padding:0}.entry-screen form label.recognize-option span{flex:1}.recognize-option small{color:#8f9aa6;font-size:11px;display:block}.station-backdrop{background:#03050bb8}.station-panel{color:#e8e2d4;background:#10161e;border:1px solid #3a4a5a;border-radius:10px;width:min(520px,100%);max-height:min(86dvh,760px);padding:22px 24px 24px;overflow:auto;box-shadow:0 30px 90px #000a}.station-panel.wide{width:min(780px,100%)}.station-panel header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.station-panel h2{color:#f2e6d4;margin:4px 0 12px;font:600 22px Georgia,Be Vietnam Pro,serif}.station-panel .modal-close{color:#a8b4c0;cursor:pointer;background:0 0;border:0;border-radius:50%;width:30px;height:30px;font-size:22px;position:static}.led-board{background:#0a0806;border:1px solid #2a2016;border-radius:6px;padding:12px 14px;font-family:DM Mono,monospace;box-shadow:inset 0 0 24px #000}.led-row{color:#ff9a30;text-shadow:0 0 6px #ff9a3055;margin:3px 0;font-size:13px;line-height:1.5}.led-row b{color:#ffd27a;margin-right:8px}.led-row.strong{color:#ffd27a}.led-row.dim{color:#c8803a;font-size:12px}.led-row.live{color:#7aff9a;text-shadow:0 0 6px #7aff9a55}.led-head{color:#8a7a68;letter-spacing:.1em;text-transform:uppercase;margin:12px 0 4px;font:500 11px DM Mono,monospace}.station-head{color:#a8b4c0;letter-spacing:.08em;text-transform:uppercase;margin:16px 0 8px;font-size:12px}.place-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 14px;margin:0;padding:0;list-style:none;display:grid}.place-list li{color:#e8e2d4;font-size:13px}.place-list li span{color:#8f9aa6;min-width:76px;font-size:11px;display:inline-block}.station-note{color:#a8b4c0;margin:10px 0 0;font-size:12.5px;line-height:1.6}.city-map{background:#0d1a26;border-radius:8px;width:100%;overflow:hidden}.city-map canvas{margin:0 auto;display:block}.drink-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:14px;display:grid}.drink-grid button{color:#f2e6d4;text-align:left;cursor:pointer;background:#18202a;border:1px solid #3a4a5a;border-radius:8px;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;display:flex}.drink-grid button span{font-size:22px}.drink-grid button small{color:#8f9aa6;font-size:11px}.drink-grid button:hover:not(:disabled){border-color:#e8c27e}.drink-grid button.picked{background:#1a2a22;border-color:#7aff9a}.drink-grid button:disabled:not(.picked){opacity:.45}.drink-done{color:#c8e8b0;margin:14px 0 0;font-size:13px}.station-panel.depart{text-align:center;width:min(420px,100%)}.depart-actions{gap:10px;margin-top:18px;display:flex}.depart-actions button{cursor:pointer;border-radius:6px;flex:1;padding:12px;font-weight:700}.board-button{color:#f2f6fa;background:#2f5f8a;border:1px solid #6a9ad0}.board-button:hover{background:#3a6f9e}.book-backdrop{background:#03050bb8}.bookshelf{color:#f2e6d4;background:#1a140f;border:1px solid #5a4430;border-radius:10px;width:min(760px,100%);max-height:min(88dvh,820px);padding:22px 24px;overflow:auto;box-shadow:0 30px 90px #000a}.bookshelf>header{justify-content:space-between;align-items:flex-start;display:flex}.bookshelf h2{margin:2px 0 10px;font:600 24px Georgia,Be Vietnam Pro,serif}.bookshelf .modal-close{color:#c8b8a0;cursor:pointer;background:0 0;border:0;border-radius:50%;width:32px;height:32px;font-size:24px;position:static}.shelf-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.shelf-tabs button{color:#d8c8b0;cursor:pointer;background:0 0;border:1px solid #5a4430;border-radius:999px;padding:6px 12px;font:500 12px Be Vietnam Pro,sans-serif}.shelf-tabs button.active{color:#1a140f;background:#c8a050;border-color:#c8a050}.book-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.book-list li{background:#241b14;border:1px solid #3a2c20;border-radius:8px;gap:14px;padding:12px;display:flex}.book-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.book-info strong{color:#f8ecd4;font:600 16px Georgia,Be Vietnam Pro,serif}.book-author{color:#b8a080;font-size:12px}.book-language{color:#d1be95;border:1px solid #6c624f;border-radius:3px;align-self:flex-start;margin-top:2px;padding:2px 6px;font-size:10px}.book-info p{color:#d0c0a8;margin:4px 0 8px;font-size:13px;line-height:1.55}.read-button{color:#1a140f;cursor:pointer;background:#c8a050;border:1px solid #c8a050;border-radius:6px;align-self:flex-start;padding:7px 18px;font:700 13px Be Vietnam Pro,sans-serif}.read-button:hover{filter:brightness(1.08)}.book-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.book-read-now{color:#e8d5ac;background:0 0}.held-book{z-index:24;color:#f3e8cf;background:#17212bf0;border:1px solid #9d8057;border-radius:8px;align-items:center;gap:10px;max-width:min(90vw,560px);padding:8px 10px;font:12px Be Vietnam Pro,sans-serif;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #0007}.held-book span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.held-book button{color:#111a22;cursor:pointer;background:#a78352;border:1px solid #ae9064;border-radius:5px;flex:none;padding:6px 10px;font:700 12px Be Vietnam Pro,sans-serif}@media (width<=700px){.held-book{width:max-content;max-width:calc(100vw - 24px);bottom:110px}}.shelf-empty{color:#a89880}.book-cover{background:linear-gradient(100deg,#0004 0 6%,transparent 8%),var(--cover);text-align:center;width:96px;height:136px;color:var(--accent);border-radius:3px 6px 6px 3px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:6px;padding:10px 8px;display:flex;box-shadow:0 6px 14px #0008,inset -3px 0 #0003}.book-cover strong{font:600 11.5px/1.3 Georgia,serif}.book-cover small{opacity:.8;font-size:8.5px;line-height:1.3}.book-motif{font-size:24px}.reader-backdrop{background:#0b0806e6;padding:0}.book-reader{color:#2e261e;background:#f4ecd8;flex-direction:column;width:min(760px,100%);height:min(100dvh,920px);display:flex;box-shadow:0 0 80px #000c}.book-reader>header{background:#efe5cc;border-bottom:1px solid #d8ccb0;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.book-reader>header div{min-width:0}.book-reader>header strong{text-overflow:ellipsis;white-space:nowrap;font:600 15px Georgia,serif;display:block;overflow:hidden}.book-reader>header span{color:#7a6a58;font-size:12px;display:block}.reader-source{color:#765436;margin-top:2px;font:500 11px Be Vietnam Pro,sans-serif;display:inline-block}.close-book{color:#4a3420;cursor:pointer;background:#fffaf0;border:1px solid #8a6a48;border-radius:6px;flex:none;padding:8px 14px;font:600 13px Be Vietnam Pro,sans-serif}.reader-page{flex:1;padding:28px clamp(20px,6vw,64px);font:18px/1.85 Georgia,Noto Serif,Be Vietnam Pro,serif;overflow:auto}.reader-page h3{color:#5a3a24;margin:0 0 18px;font:600 22px Georgia,serif}.reader-page p{white-space:pre-line;text-wrap:pretty;margin:0 0 1.05em}.book-reader>footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#efe5cc;border-top:1px solid #d8ccb0;align-items:center;gap:12px;display:flex}.book-reader>footer button{color:#4a3420;cursor:pointer;background:#fffaf0;border:1px solid #b8a080;border-radius:6px;flex:none;padding:10px 14px;font:600 13px Be Vietnam Pro,sans-serif}.book-reader>footer button:disabled{opacity:.35;cursor:default}.reader-progress{text-align:center;color:#7a6a58;flex:1;font:500 12px Be Vietnam Pro,sans-serif}.reader-progress i{background:linear-gradient(90deg,#a87a40 var(--done),#d8ccb0 var(--done));border-radius:2px;height:3px;margin-top:6px;display:block}@media (width<=600px){.book-list li{gap:10px}.book-cover.small{width:72px;height:104px}.book-cover strong{font-size:9.5px}.reader-page{padding:20px 18px;font-size:17px;line-height:1.8}.book-reader>footer button{padding:9px 10px;font-size:12px}}.arcade-backdrop{background:#03050bb0}.arcade{color:#e8f0f8;background:#0e1420;border:1px solid #2a4a6a;border-radius:12px;flex-direction:column;width:min(860px,100%);max-height:min(92dvh,900px);display:flex;overflow:auto;box-shadow:0 0 0 1px #4fd2ff22,0 30px 90px #000c}.arcade-top{background:linear-gradient(90deg,#10203a,#0e1420);border-bottom:1px solid #1e3048;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.arcade-brand{letter-spacing:.14em;color:#4fd2ff;font:600 10px DM Mono,monospace}.arcade-top h2{margin:2px 0 0;font:700 19px Be Vietnam Pro,sans-serif}.arcade-top-actions{gap:6px;display:flex}.arcade-top-actions button,.arcade-secondary{color:#cfe4f8;cursor:pointer;background:#14223a;border:1px solid #2e4a6a;border-radius:6px;padding:8px 12px;font:600 12px Be Vietnam Pro,sans-serif}.arcade-top-actions .danger,.arcade-secondary.danger{color:#ffc8c0;border-color:#7a3a3a}.arcade-primary{color:#fff;cursor:pointer;background:linear-gradient(#3ab8ff,#1f8ad8);border:0;border-radius:8px;padding:12px 22px;font:700 14px Be Vietnam Pro,sans-serif;box-shadow:0 6px 18px #1f8ad855}.arcade-primary:disabled,.arcade-secondary:disabled{opacity:.45;cursor:not-allowed}.arcade-menu{flex-direction:column;gap:14px;padding:16px 18px 20px;display:flex}.game-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.game-card{color:#e8f0f8;text-align:left;cursor:pointer;background:#121c2c;border:1px solid #22344e;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.game-card span{font-size:24px}.game-card strong{font:700 14px Be Vietnam Pro,sans-serif}.game-card small{color:#8fa4bc;font-size:11.5px;line-height:1.45}.game-card.selected{background:#14304a;border-color:#4fd2ff;box-shadow:0 0 0 1px #4fd2ff66}.game-card.quick{background:#1a2238}.arcade-menu .arcade-primary{align-self:center;min-width:220px}.arcade-wait{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;display:flex}.arcade-wait small{color:#8fa4bc}.spinner{border:3px solid #22344e;border-top-color:#4fd2ff;border-radius:50%;width:44px;height:44px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.arcade-play{grid-template-rows:auto 1fr;grid-template-columns:1fr 240px;gap:12px;padding:12px 16px 16px;display:grid;position:relative}.scoreboard{background:#121c2c;border-radius:8px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font:600 13px Be Vietnam Pro,sans-serif;display:flex}.scoreboard .me{color:#7ad8ff}.scoreboard .them{color:#ffb0a0;text-align:right}.scoreboard .turn{color:#ffd27a;white-space:nowrap;background:#1e3048;border-radius:999px;padding:3px 10px;font-size:12px}.arcade-board{justify-content:center;align-items:flex-start;min-width:0;display:flex}.arcade-chat{background:#0b111c;border:1px solid #1e3048;border-radius:8px;flex-direction:column;min-height:220px;display:flex}.arcade-chat ul{flex:1;max-height:340px;margin:0;padding:8px 10px;font-size:12.5px;line-height:1.5;list-style:none;overflow:auto}.arcade-chat li.mine b{color:#7ad8ff}.arcade-chat li b{color:#ffb0a0}.arcade-chat li.empty{color:#5a6a80}.arcade-chat form,.guess form,.draw-guess{border-top:1px solid #1e3048;display:flex}.arcade-chat input,.guess input,.draw-guess input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0;padding:10px;font-size:13px}.arcade-chat form button,.guess form button,.draw-guess button{color:#7ad8ff;cursor:pointer;background:#14223a;border:0;border-left:1px solid #1e3048;padding:0 14px;font-weight:700}.grid-board{grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);aspect-ratio:1;background:#22344e;border-radius:6px;gap:2px;width:min(100%,460px);padding:2px;display:grid}.grid-board.size-3{gap:6px;width:min(100%,300px);padding:6px}.grid-board button{color:#222;cursor:pointer;background:#f4f0e6;border:0;border-radius:3px;padding:0;font:800 clamp(12px,2.6vw,20px) Be Vietnam Pro,sans-serif}.grid-board.size-3 button{font-size:clamp(34px,10vw,56px)}.grid-board button.x{color:#1f6fd0}.grid-board button.o{color:#d8302a}.grid-board button.last{box-shadow:inset 0 0 0 2px #ffb030}.grid-board button.win{background:#c8f0c8}.grid-board button:disabled{cursor:default}.rps{text-align:center;padding:10px}.rps-last{color:#ffd27a;font-size:13px}.rps-status{color:#cfe4f8}.rps-choices{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.rps-choices button{color:#e8f0f8;cursor:pointer;background:#14223a;border:1px solid #2e4a6a;border-radius:12px;flex-direction:column;align-items:center;gap:4px;width:96px;padding:12px 0;font:600 13px Be Vietnam Pro,sans-serif;display:flex}.rps-choices button span{font-size:38px}.rps-choices button.picked{background:#14304a;border-color:#4fd2ff}.memory-board{grid-template-columns:repeat(4,1fr);gap:8px;width:min(100%,380px);display:grid}.memory-board button{aspect-ratio:1;color:#4f6a8a;cursor:pointer;background:repeating-linear-gradient(45deg,#14223a 0 8px,#18294a 8px 16px);border:1px solid #2e4a6a;border-radius:10px;font-size:clamp(22px,7vw,34px)}.memory-board button.up{color:#222;background:#f4f0e6}.memory-board button.mine{box-shadow:inset 0 0 0 3px #7ad8ff}.memory-board button.theirs{box-shadow:inset 0 0 0 3px #ffb0a0}.guess{flex-direction:column;gap:10px;width:min(100%,420px);display:flex}.guess form{border:1px solid #1e3048;border-radius:8px;overflow:hidden}.guess-range{text-align:center;margin:0;font-size:15px}.guess-range b{color:#ffd27a}.guess-log{color:#cfe4f8;max-height:220px;margin:0;padding-left:20px;font-size:13px;overflow:auto}.quiz{width:min(100%,520px)}.quiz-meta{color:#8fa4bc;font-size:12px}.quiz h3{margin:6px 0 12px;font:600 17px/1.45 Be Vietnam Pro,sans-serif}.quiz-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quiz-options button{color:#e8f0f8;cursor:pointer;text-align:left;background:#14223a;border:1px solid #2e4a6a;border-radius:8px;padding:12px;font:600 13px Be Vietnam Pro,sans-serif}.quiz-options button.chosen{border-color:#4fd2ff}.quiz-options button.right{background:#1e5a34;border-color:#5aff8a}.quiz-options button.wrong{background:#5a1e1e;border-color:#ff6a5a}.quiz-options button.theirs:after{content:" · đối thủ";color:#ffb0a0;font-size:11px}.quiz-reveal{color:#ffd27a;font-size:13px}.draw{flex-direction:column;gap:8px;width:min(100%,460px);display:flex}.draw-word{color:#cfe4f8;margin:0;font-size:13px}.draw-word b{color:#ffd27a;font-size:15px}.draw-word .mask{letter-spacing:.25em}.draw canvas{aspect-ratio:1;touch-action:none;background:#fbf8f0;border-radius:8px;width:100%}.draw canvas.drawing{cursor:crosshair}.draw-tools{align-items:center;gap:8px;display:flex}.draw-tools button{cursor:pointer;border:2px solid #0e1420;border-radius:50%;width:28px;height:28px}.draw-tools button.on{box-shadow:0 0 0 2px #4fd2ff}.draw-tools .draw-clear{color:#cfe4f8;background:#14223a;border:1px solid #2e4a6a;border-radius:6px;width:auto;height:auto;margin-left:auto;padding:6px 10px}.draw-guess{border:1px solid #1e3048;border-radius:8px;overflow:hidden}.draw-feed{color:#8fa4bc;max-height:90px;margin:0;padding:0;font-size:12.5px;list-style:none;overflow:auto}.draw-feed li.right{color:#5aff8a;font-weight:700}.end-card{text-align:center;background:#10203aef;border:1px solid #4fd2ff66;border-radius:12px;margin:auto;padding:18px;position:absolute;inset:auto 16px 16px;box-shadow:0 20px 60px #000a}.end-card h3{margin:0 0 4px;font:800 22px Be Vietnam Pro,sans-serif}.end-card p{color:#cfe4f8;margin:0 0 6px}.end-note{color:#ffd27a!important}.end-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.arcade-reopen{z-index:60;color:#cfe4f8;cursor:pointer;background:#0e1420e8;border:1px solid #4fd2ff88;border-radius:999px;padding:10px 18px;font:600 13px Be Vietnam Pro,sans-serif;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0009}.arcade-tabs{background:#0b111c;border:1px solid #1e3048;border-radius:10px;align-self:flex-start;gap:6px;padding:4px;display:flex}.arcade-tabs button{color:#8fa4bc;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 14px;font:600 13px Be Vietnam Pro,sans-serif}.arcade-tabs button.on{color:#e8f0f8;background:#14304a;box-shadow:0 0 0 1px #4fd2ff55}.bot-box,.co-opposite,.bot-offer{background:#0f1828;border:1px dashed #2e4a6a;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;display:flex}.bot-box h3{color:#cfe4f8;width:100%;margin:0;font:700 14px Be Vietnam Pro,sans-serif}.bot-pick{color:#8fa4bc;align-items:center;gap:8px;font-size:13px;display:flex}.bot-pick select{color:#e8f0f8;background:#14223a;border:1px solid #2e4a6a;border-radius:6px;padding:7px 8px;font:600 13px Be Vietnam Pro,sans-serif}.bot-levels,.solo-levels{gap:4px;display:flex}.bot-levels button,.solo-levels button{color:#cfe4f8;cursor:pointer;background:#14223a;border:1px solid #2e4a6a;border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:7px 12px;font:600 12.5px Be Vietnam Pro,sans-serif;display:flex}.bot-levels button.on,.solo-levels button.on{color:#fff;background:#1f8ad8;border-color:#3ab8ff}.solo-levels small{opacity:.8;font-size:10px;font-weight:500}.bot-offer{border-style:solid;border-color:#4fd2ff55;flex-direction:column}.bot-offer p{margin:0}.co-opposite p{color:#cfe4f8;flex:1;min-width:200px;margin:0;font-size:13.5px}.co-invite{color:#ffd27a!important}.record-line{color:#ffd27a;margin-top:3px;font-size:11px;font-style:normal}.solo{flex-direction:column;align-items:center;gap:10px;padding:12px 16px 18px;display:flex}.solo-head{justify-content:space-between;align-self:stretch;align-items:center;gap:10px;display:flex}.solo-head strong{font:700 15px Be Vietnam Pro,sans-serif}.solo-meta,.solo-hint{color:#8fa4bc;text-align:center;margin:0;font-size:12.5px}.solo-done{text-align:center;background:#14304a;border:1px solid #4fd2ff66;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:14px 18px;display:flex;position:relative}.solo-done h3{margin:0;font:800 20px Be Vietnam Pro,sans-serif}.solo-done p{color:#cfe4f8;margin:0}.solo-record{font-weight:700;color:#ffd27a!important}.sudoku-wrap,.mines-wrap{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.sudoku{aspect-ratio:1;background:#9aa6b8;border:3px solid #1a2636;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);gap:1px;width:min(100%,420px);display:grid}.sudoku button{color:#1f6fd0;cursor:pointer;background:#f4f0e6;border:0;padding:0;font:600 clamp(15px,4.4vw,22px) Be Vietnam Pro,sans-serif}.sudoku button.given{color:#1a1a1a;font-weight:800}.sudoku button.rel{background:#e4e8f0}.sudoku button.same{background:#c8dcf4}.sudoku button.sel{background:#ffe08a}.sudoku button.wrong{color:#d8302a;background:#fbd8d4}.sudoku button.edge-r{box-shadow:inset -2px 0 #1a2636}.sudoku button.edge-b{box-shadow:inset 0 -2px #1a2636}.sudoku button.edge-r.edge-b{box-shadow:inset -2px 0 #1a2636,inset 0 -2px #1a2636}.sudoku-pad{grid-template-columns:repeat(10,1fr);gap:5px;width:min(100%,420px);display:grid}.sudoku-pad button{color:#e8f0f8;cursor:pointer;background:#14223a;border:1px solid #2e4a6a;border-radius:6px;padding:10px 0;font:700 15px Be Vietnam Pro,sans-serif}.sudoku-pad button:last-child{font-size:11px}.mines-bar{align-items:center;gap:14px;font:600 13px Be Vietnam Pro,sans-serif;display:flex}.mines-bar button{color:#cfe4f8;cursor:pointer;background:#14223a;border:1px solid #2e4a6a;border-radius:6px;padding:6px 10px;font:600 12px Be Vietnam Pro,sans-serif}.mines-bar button.on{color:#fff;background:#7a3a3a;border-color:#d86a5a}.mines{grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);width:min(100%,calc(var(--n) * 32px));aspect-ratio:1;-webkit-user-select:none;user-select:none;touch-action:manipulation;gap:2px;display:grid}.mines button{color:#fff;cursor:pointer;-webkit-touch-callout:none;background:linear-gradient(#3a5a80,#2a4466);border:0;border-radius:3px;padding:0;font:800 clamp(11px,3.4vw,16px) Be Vietnam Pro,sans-serif}.mines button.open{cursor:default;background:#e8e4da}.mines button.mine{background:#f0c0b8}.mines button.boom{background:#d8302a}.mines .n1{color:#1f6fd0}.mines .n2{color:#2a9a4a}.mines .n3{color:#d8302a}.mines .n4{color:#5a2a9a}.mines .n5{color:#8a3a1a}.mines .n6{color:#1a8a8a}.mines .n7,.mines .n8{color:#222}.typing{flex-direction:column;gap:10px;width:min(100%,640px);display:flex}.typing-bar{color:#cfe4f8;flex-wrap:wrap;justify-content:space-between;gap:10px;font:600 13px Be Vietnam Pro,sans-serif;display:flex}.typing-bar label{color:#8fa4bc;align-items:center;gap:6px;display:flex}.typing-text{color:#5a5a5a;background:#f4f0e6;border-radius:8px;margin:0;padding:14px;font:500 17px/1.7 Be Vietnam Pro,sans-serif}.typing-text .ok{color:#1a7a3a}.typing-text .bad{color:#fff;background:#d8302a;border-radius:2px}.typing-text .cur{background:#ffe08a;border-radius:2px}.typing textarea{color:#fff;resize:none;background:#0b111c;border:1px solid #2e4a6a;border-radius:8px;padding:12px;font:500 16px/1.6 Be Vietnam Pro,sans-serif}.arcade-play.with-bot{grid-template-columns:1fr}.board-status{text-align:center;color:#cfe4f8;margin:0 0 8px;font:600 13px Be Vietnam Pro,sans-serif}.board-status.alert{color:#ff8a7a}.xiangqi-wrap,.oaq-wrap{flex-direction:column;align-items:center;width:100%;display:flex}.xiangqi{aspect-ratio:100/110;filter:drop-shadow(0 14px 22px #000a);width:min(100%,470px,60dvh);position:relative}.xiangqi svg{border-radius:2.4%;width:100%;height:100%;position:absolute;inset:0}.xq-lines line,.xq-lines rect,.xq-lines path{fill:none;stroke:#5b3416;stroke-width:.42px;stroke-linecap:round}.xq-lines .xq-outer{stroke-width:.95px}.xq-river{fill:#6a3c18;text-anchor:middle;letter-spacing:2.4px;opacity:.85;font:400 6.2px Ma Shan Zheng,STKaiti,KaiTi,serif}.xq-lastmark path{fill:none;stroke:#2f7ad8;stroke-width:.7px;stroke-linecap:round}.xq-lastmark.from path{opacity:.55}.xq-piece,.xq-dot{padding:0;position:absolute;transform:translate(-50%,-50%)}.xq-piece{aspect-ratio:1;cursor:default;background:radial-gradient(circle at 34% 28%,#fffaf0 0%,#f6e3bb 42%,#e2bf80 78%,#c99a55 100%);border:0;border-radius:50%;place-items:center;width:9.2%;transition:transform .12s,box-shadow .12s;display:grid;box-shadow:inset 0 -1.5px #0003,inset 0 1px 1px #fff9,0 1px #8a5a28,0 3px 5px #0007}.xq-piece:before{content:"";opacity:.75;border:1.6px solid;border-radius:50%;position:absolute;inset:9%;box-shadow:inset 0 0 0 1px #fff6}.xq-piece span{font:400 clamp(14px,3.9vw,25px)/1 Ma Shan Zheng,STKaiti,KaiTi,serif;position:relative;transform:translateY(2%)}.xq-piece.red{color:#b3221a}.xq-piece.black{color:#1c2626}.xq-piece.movable{cursor:pointer}.xq-piece.movable:hover{transform:translate(-50%,-56%)}.xq-piece.sel{transform:translate(-50%,-58%)scale(1.06);box-shadow:inset 0 -1.5px #0003,0 0 0 2.5px #3a9aff,0 8px 10px #0008}.xq-piece.target{cursor:pointer;box-shadow:inset 0 -1.5px #0003,0 0 0 2.5px #e0402a,0 3px 5px #0007}.xq-piece.checked{animation:1s ease-in-out infinite xq-check}@keyframes xq-check{50%{box-shadow:inset 0 -1.5px #0003,0 0 0 3px #ff3a2a,0 0 16px 4px #ff3a2a99}}.xq-piece.moved{animation:.32s cubic-bezier(.3,.7,.3,1) xq-slide}@keyframes xq-slide{0%{transform:translate(calc(-50% + var(--dx,0%)),calc(-50% + var(--dy,0%)))}}.xq-dot{aspect-ratio:1;cursor:pointer;background:#1f7a3acc;border:0;border-radius:50%;width:3.2%;box-shadow:0 0 0 2px #fff8}.xq-dot:hover{transform:translate(-50%,-50%)scale(1.3)}.xq-captured{flex-wrap:wrap;justify-content:center;gap:3px;min-height:22px;margin:6px 0;display:flex}.xq-mini{background:radial-gradient(circle at 34% 28%,#fffaf0,#e2bf80);border-radius:50%;place-items:center;width:20px;height:20px;font:400 13px/1 Ma Shan Zheng,KaiTi,serif;display:grid;box-shadow:0 1px 2px #0008}.xq-mini.red{color:#b3221a}.xq-mini.black{color:#1c2626}.xq-legend{color:#8fa4bc;max-width:520px;margin-top:6px;font-size:12px}.xq-legend summary{cursor:pointer}.xq-legend span{margin:4px 8px 0 0;display:inline-block}.xq-legend b{margin-right:2px;font:400 16px Ma Shan Zheng,KaiTi,serif}.xq-legend b.red{color:#ff8a7a}.xq-legend p{line-height:1.55}.oaq-score{justify-content:space-between;align-items:center;width:min(100%,600px);margin-bottom:8px;font:600 13px Be Vietnam Pro,sans-serif;display:flex}.oaq-score b{margin-left:4px;font-size:17px}.oaq-score .me{color:#7ad8ff}.oaq-score .them{color:#ffb0a0}.oaq-score .state{color:#ffd27a;background:#1e3048;border-radius:999px;padding:3px 10px;font-size:12px}.oaq-tray{background:linear-gradient(170deg,#7a4a24,#4a2a12 60%,#3a200e);border-radius:120px/46%;width:min(100%,600px);padding:3.2%;position:relative;box-shadow:inset 0 2px #b07a4a88,inset 0 -3px 6px #0008,0 16px 26px #000b}.oaq-tray:before{content:"";border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(94deg,#0000 0 7px,#ffffff08 7px 9px,#0000 9px 15px,#00000010 15px 17px);position:absolute;inset:0}.oaq{aspect-ratio:7.4/2.3;grid-template-rows:1fr 1fr;grid-template-columns:1.25fr repeat(5,1fr) 1.25fr;gap:6px;display:grid;position:relative}.slot.top{grid-row:1}.slot.bottom{grid-row:2}.slot{min-width:0}.pit{cursor:default;width:100%;height:100%;color:inherit;background:radial-gradient(at 50% 38%,#5a3418,#3a2010 70%);border:0;border-radius:14%;padding:0;transition:box-shadow .15s;position:relative;box-shadow:inset 0 4px 8px #000c,inset 0 -1px #c08a5a66,0 1px #c08a5a44}.pit.quan{border-radius:78% 18% 18% 78%/50% 12% 12% 50%;grid-row:1/3}.pit.quan.left{grid-column:1}.pit.quan.right{border-radius:18% 78% 78% 18%/12% 50% 50% 12%;grid-column:7}.pit.own:not(:disabled){cursor:pointer}.pit.own:not(:disabled):hover{box-shadow:inset 0 4px 8px #000c,0 0 0 2px #ffd27a88}.pit.sel{box-shadow:inset 0 4px 8px #000c,0 0 0 2.5px #ffd27a,0 0 14px #ffd27a66}.pit.last{box-shadow:inset 0 4px 8px #000c,0 0 0 2px #7ad8ff99}.pit.now{box-shadow:inset 0 4px 8px #000c,0 0 0 2.5px #fff,0 0 14px #fff8}.pit.now.eat,.pit.eaten{box-shadow:inset 0 4px 8px #000c,0 0 0 3px #ff7a4a,0 0 18px #ff7a4a99}.pit-stones{pointer-events:none;position:absolute;inset:8%}.pebble{aspect-ratio:1.15;width:15%;transform:translate(-50%,-50%) scale(var(--s,1));border-radius:50% 46% 52% 48%;position:absolute;box-shadow:0 1.5px 1.5px #0009}.pit.quan .pebble{aspect-ratio:1.15;width:9%}.quan-stone{aspect-ratio:1.35;background:radial-gradient(circle at 34% 30%,#fff7e0,#e8b45a 38%,#a8661e 78%,#6a3a10);border-radius:52% 48% 50% 50%;width:46%;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 5px #000a,inset 0 -2px 3px #0005}.quan-stone.right{background:radial-gradient(circle at 34% 30%,#effff4,#7ac89a 38%,#2e7a50 78%,#164a2e)}.pit-count{color:#fff;pointer-events:none;background:#0009;border-radius:999px;min-width:1.5em;padding:1px 5px;font:700 11px Be Vietnam Pro,sans-serif;position:absolute;bottom:5%;right:6%}.pit-hand{color:#3a2410;white-space:nowrap;z-index:2;pointer-events:none;background:#ffd27a;border-radius:999px;padding:2px 7px;font:700 11px Be Vietnam Pro,sans-serif;position:absolute;top:-10%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 8px #0008}.pit-dirs{z-index:3;justify-content:space-between;display:flex;position:absolute;inset:auto 0 -2px;transform:translateY(55%)}.pit-dir{color:#3a2410;cursor:pointer;background:#ffd27a;border-radius:8px;width:42%;padding:5px 0;font:800 13px/1 Be Vietnam Pro,sans-serif;box-shadow:0 4px 10px #000a}.pit-dir:hover{background:#ffe2a0}.oaq-note{color:#cfe4f8;text-align:center;min-height:1.5em;margin:14px 0 0;font-size:13px}.arcade.theme-co{color:#f3e6d2;background:linear-gradient(#1d150d,#130e09);border-color:#4a3420;box-shadow:0 0 0 1px #e8b45a1a,0 30px 90px #000d}.theme-co .arcade-top{background:linear-gradient(90deg,#2b1d10,#1d150d 70%);border-bottom-color:#3a2a18}.theme-co .arcade-brand{color:#e8b45a}.theme-co .arcade-top h2{color:#fff4e2}.theme-co .arcade-top-actions button,.theme-co .arcade-secondary{color:#f0dcc0;background:#2a1d12;border-color:#5a4028}.theme-co .arcade-top-actions .danger,.theme-co .arcade-secondary.danger{color:#ffc2b0;border-color:#8a3a2a}.theme-co .arcade-primary{color:#2a1606;background:linear-gradient(#f2bd62,#d38a2c);box-shadow:0 6px 18px #d38a2c40}.theme-co .scoreboard{background:#241911}.theme-co .scoreboard .turn{background:#3a2a18}.theme-co .scoreboard .me{color:#ffd27a}.theme-co .scoreboard .them{color:#f3c2a8}.theme-co .arcade-chat{background:#16100a;border-color:#3a2a18}.theme-co .arcade-chat form{border-color:#3a2a18}.theme-co .arcade-chat form button{color:#e8b45a;background:#2a1d12;border-color:#3a2a18}.theme-co .end-card{background:#241911;border-color:#e8b45a66}.theme-co .spinner{border-color:#e8b45a #3a2a18 #3a2a18}.theme-co .board-status,.theme-co .oaq-note{color:#f0dcc0}.theme-co .xq-legend{color:#b8a080}.co-menu{flex-direction:column;gap:12px;padding:18px 20px 22px;display:flex}.co-lead{letter-spacing:.14em;text-transform:uppercase;color:#b8956a;margin:4px 0 0;font:700 11px DM Mono,monospace}.co-games{grid-template-columns:1fr 1fr;gap:12px;display:grid}.co-game{color:inherit;text-align:left;cursor:pointer;background:linear-gradient(160deg,#241911,#1a120b);border:1px solid #3a2a18;border-radius:14px;align-items:center;gap:14px;padding:12px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative}.co-game:hover{border-color:#6a4c2c;transform:translateY(-1px)}.co-game.selected{border-color:#e8b45a;box-shadow:0 0 0 1px #e8b45a,0 10px 26px #0006}.co-game.selected:after{content:"✓";color:#2a1606;background:#e8b45a;border-radius:50%;place-items:center;width:22px;height:22px;font:800 12px Be Vietnam Pro,sans-serif;display:grid;position:absolute;top:10px;right:10px}.co-art{filter:drop-shadow(0 6px 8px #0009);flex:0 0 120px;width:120px;height:84px}.co-game-text{flex-direction:column;gap:5px;min-width:0;padding-right:18px;display:flex}.co-game-text strong{color:#fff4e2;font:800 16px Be Vietnam Pro,sans-serif}.co-game-text small{color:#c8b08e;font-size:12px;line-height:1.5}.co-tags{flex-wrap:wrap;gap:6px;display:flex}.co-tags i{color:#e8c890;background:#3a2a18;border-radius:999px;padding:2px 8px;font:600 10.5px Be Vietnam Pro,sans-serif}.co-modes{grid-template-columns:1fr 1fr;gap:12px;display:grid}.co-mode{text-align:center;background:#1a120b;border:1px solid #3a2a18;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.co-mode h4{color:#fff4e2;margin:0;font:800 14px Be Vietnam Pro,sans-serif}.co-mode p{color:#c8b08e;min-height:2.9em;margin:0;font-size:12.5px;line-height:1.5}.co-mode p b{color:#ffd27a}.co-mode .arcade-primary,.co-mode .arcade-secondary{width:100%;margin-top:auto}.co-mode.invited{border-color:#e8b45a;animation:1.6s ease-in-out infinite co-invite;box-shadow:0 0 0 1px #e8b45a88,0 0 24px #e8b45a33}@keyframes co-invite{50%{box-shadow:0 0 0 1px #e8b45a,0 0 34px #e8b45a55}}.co-table-art{width:150px;height:56px}.co-bot-art{color:#e8b45a;background:radial-gradient(circle at 35% 30%,#3a2a18,#1d150d);border-radius:50%;place-items:center;width:56px;height:56px;font-size:28px;display:grid;box-shadow:inset 0 0 0 1px #5a4028}.co-levels{grid-template-columns:repeat(3,1fr);gap:6px;width:100%;display:grid}.co-levels button{color:#f0dcc0;cursor:pointer;background:#241911;border:1px solid #4a3420;border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;display:flex}.co-levels button b{font:800 13px Be Vietnam Pro,sans-serif}.co-levels button small{color:#a88a68;font-size:10.5px}.co-levels button.on{background:#3a2810;border-color:#e8b45a;box-shadow:inset 0 0 0 1px #e8b45a}.co-levels button.on small{color:#e8c890}.co-bot-start{padding:11px 16px!important;font-size:13.5px!important}.cinema.open{z-index:70;background:radial-gradient(at 50% 40%,#1a0c0ef2,#050203fa);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex;position:fixed;inset:0}.cinema.open .cinema-frame{aspect-ratio:4/3;background:#000;border-radius:6px;width:min(100%,133.333dvh - 200px);position:relative;overflow:hidden;box-shadow:0 0 0 1px #c8a04640,0 30px 90px #000,0 0 120px #ffd27a14}.cinema.open video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.cinema.on-screen{z-index:30;pointer-events:none;position:fixed;inset:0}.cinema.on-screen .cinema-frame{position:absolute;inset:0}.cinema.on-screen video{opacity:0;width:2px;height:2px;position:absolute;top:0;left:0}.cinema.on-screen .cinema-cover,.cinema.on-screen .cinema-loading,.cinema.on-screen .cinema-error{display:none}.cinema-sub{color:#fff;text-align:center;white-space:pre-line;text-shadow:0 1px 2px #000;background:#000b;border-radius:4px;max-width:88%;margin:0;padding:4px 14px;font:600 clamp(14px,2.1vw,22px)/1.45 Be Vietnam Pro,sans-serif;position:absolute;bottom:6%;left:50%;transform:translate(-50%)}.cinema.on-screen .cinema-sub{bottom:96px}.cinema-cover{text-align:center;color:#f3e6d2;background:radial-gradient(at 50% 45%,#2a1418,#0a0506);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.cinema-cover h2{color:#fff4e2;margin:0;font:800 clamp(22px,4vw,38px) Be Vietnam Pro,sans-serif}.cinema-eyebrow{letter-spacing:.16em;color:#e8b45a;margin:0;font:700 11px DM Mono,monospace}.cinema-meta{color:#c8b090;margin:0;font-size:14px}.cinema-cover small{color:#a88a68;max-width:420px;font-size:12px}.cinema-play{color:#2a1606;cursor:pointer;background:linear-gradient(#f2bd62,#d38a2c);border:0;border-radius:999px;margin:10px 0 4px;padding:14px 34px;font:800 17px Be Vietnam Pro,sans-serif;box-shadow:0 10px 30px #d38a2c55}.cinema-play:hover{filter:brightness(1.08)}.cinema-wait{color:#ffd27a;margin:6px 0;font:700 clamp(36px,7vw,64px) DM Mono,monospace}.cinema-loading{border:3px solid #fff2;border-top-color:#ffd27a;border-radius:50%;width:46px;height:46px;margin:-23px;animation:1s linear infinite spin;position:absolute;top:50%;left:50%}.cinema-error{color:#ffc2b0;background:#000c;border-radius:8px;margin:0;padding:10px 16px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cinema-bar{flex-wrap:wrap;align-items:center;gap:8px;width:min(100%,133.333dvh - 200px);display:flex}.cinema-bar button{color:#f0dcc0;cursor:pointer;background:#2a1d12;border:1px solid #5a4028;border-radius:7px;padding:8px 13px;font:600 12.5px Be Vietnam Pro,sans-serif}.cinema-bar button:hover{border-color:#e8b45a}.cinema-bar button.danger{color:#ffc2b0;border-color:#8a3a2a}.cinema-info{color:#f3e6d2;flex-direction:column;flex:1;min-width:160px;font-size:13px;display:flex}.cinema-info b{font-size:14.5px}.cinema-info span{color:#c8b090;font:500 12px DM Mono,monospace}.cinema-volume{color:#e8d4b0;align-items:center;gap:6px;font-size:14px;display:flex}.cinema-volume input{accent-color:#e8b45a;width:90px}.cinema-credit{color:#8a7458;text-align:center;max-width:min(100%,760px);margin:0;font-size:11px}.cinema-pill{z-index:60;color:#f3e6d2;background:#1a0c0ef0;border:1px solid #c8a04666;border-radius:999px;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:7px 8px 7px 16px;font:600 13px Be Vietnam Pro,sans-serif;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #000a}.cinema-pill span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cinema-pill button{color:#2a1606;cursor:pointer;background:linear-gradient(#f2bd62,#d38a2c);border:0;border-radius:999px;flex:none;padding:7px 12px;font:800 12px Be Vietnam Pro,sans-serif}.schedule-list{flex-direction:column;gap:6px;margin:10px 0;padding:0;list-style:none;display:flex}.schedule-list li{background:#ffffff08;border:1px solid #ffffff10;border-radius:9px;align-items:center;gap:12px;padding:9px 12px;display:flex}.schedule-list li b{color:#ffd27a;font:700 15px DM Mono,monospace}.schedule-list li span{flex-direction:column;flex:1;display:flex}.schedule-list small{color:#9aa8b8;font-size:11.5px}.schedule-list li.live{background:#7aff9a10;border-color:#7aff9a66}.schedule-list em{color:#7aff9a;font-size:11px;font-style:normal;font-weight:700}@media (width<=700px){.arcade-backdrop{padding:0}.arcade{border-radius:0;width:100%;height:100dvh;max-height:none}.arcade-top{padding:10px 12px}.arcade-top h2{font-size:16px}.arcade-play{grid-template-columns:1fr;padding:10px}.arcade-chat{min-height:0}.arcade-chat ul{max-height:110px}.game-grid{grid-template-columns:1fr 1fr}.game-card small{display:none}.quiz-options{grid-template-columns:1fr}.end-card{position:fixed;inset:auto 10px 10px}.co-menu{padding:12px}.co-games,.co-modes{grid-template-columns:1fr}.co-art{flex-basis:96px;width:96px;height:67px}.co-mode p{min-height:0}.cinema.open{padding:8px;padding-top:max(8px, env(safe-area-inset-top));justify-content:flex-start}.cinema.open .cinema-frame,.cinema-bar{width:100%}.cinema-bar button{flex:1}.cinema.on-screen .cinema-sub{bottom:84px}.arcade-tabs{align-self:stretch}.arcade-tabs button{flex:1;padding:8px 6px}.xiangqi{width:min(100%,56dvh)}.oaq{aspect-ratio:7.4/2.8;gap:4px}.pit-count{padding:0 4px;font-size:9.5px}.oaq-tray{padding:2.6%}.pit-dirs{transform:translateY(70%)}.pit-dir{width:46%;padding:8px 0;font-size:15px}.bot-box .arcade-primary,.bot-box .arcade-secondary{width:100%}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
