@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}
