*{box-sizing:border-box}body{color:#273f36;background:#f4f7ef;margin:0;font-family:Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;color:#314d41;background:#fff;border:1px solid #d8e0d6;border-radius:10px;padding:11px 14px;font-weight:700;transition:all .15s}button:hover{background:#edf9ef;border-color:#239678;transform:translateY(-1px)}button:disabled{opacity:.55;cursor:wait}button.primary{color:#fff;background:#24886c;border-color:#24886c;box-shadow:0 4px #17634e}input,select,textarea{color:#28443a;background:#fff;border:1px solid #d9e2d6;border-radius:10px;outline-color:#4cab87;width:100%;margin:7px 0 10px;padding:12px}textarea{resize:vertical;min-height:74px}label{margin-top:12px;font-size:12px;font-weight:700;display:block}small{color:#7b8b80;line-height:1.5;display:block}p{color:#687a6d;line-height:1.65}header{border-bottom:1px solid #e0e7d9;justify-content:space-between;align-items:center;height:90px;margin-bottom:30px;display:flex}.brand{color:#294837;align-items:center;gap:12px;font-size:29px;text-decoration:none;display:flex}.brand span{font-size:18px;font-weight:700}.brand b{color:#268e6c}.brand small{letter-spacing:2px;margin-top:7px;font-size:8px}.headerRight{align-items:center;gap:10px;display:flex}.ghost{background:0 0;border:0;font-size:12px}.room{background:#e6eee1;border:1px dashed #aec7a9;border-radius:9px;padding:9px 13px;font-size:10px}.room b{letter-spacing:2px;margin-left:10px;font-size:16px}main{max-width:1440px;margin:auto;padding:0 40px}.eyebrow{color:#6d956f;letter-spacing:1.5px;font-size:10px;font-weight:800}h1{letter-spacing:-1px;margin:9px 0 22px;font-size:29px}h1 span{color:#e9ad3c}h2{margin:6px 0 20px;font-size:22px}h3{margin:20px 0 12px;font-size:14px}.topline{justify-content:space-between;align-items:center;display:flex}.day{background:#fff;border:1px solid #e5e9dd;border-radius:14px;padding:12px 22px;font-weight:700}.day strong{font-size:24px}.day small{text-align:right;font-size:10px}.stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stats>div{background:#fff;border:1px solid #e4e9df;border-radius:14px;align-items:center;gap:16px;padding:18px;font-size:27px;display:flex}.stats span{color:#7e8c7c;font-size:11px}.stats strong{color:#304e3b;margin-top:7px;font-size:22px;display:block}.green{color:#278b65!important}.red{color:#cc5851!important}.gamegrid{grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:24px;display:grid}.mapheading{justify-content:space-between;align-items:center;padding:0 4px 12px;display:flex}.mapheading h3{margin:0}.live{color:#4b987a;font-size:10px}.map{cursor:crosshair;border:6px solid #fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px #3d653511}.map svg{-webkit-user-select:none;user-select:none;width:100%;display:block}.mapfooter{color:#8b998b;justify-content:space-between;margin:12px 5px 18px;font-size:10px;display:flex}.team{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.team>div{background:#fff;border:1px solid #e2e9dd;border-radius:12px;align-items:center;gap:8px;padding:12px 8px;display:flex}.team>div>span,.panelTitle>span{border-radius:10px;place-items:center;width:35px;height:35px;font-size:20px;display:grid}.team b{color:#8ca17b;margin-left:auto;font-size:9px}.quest{background:#eef4e4;border:1px solid #dce6cc;border-radius:13px;margin-top:20px;padding:17px}.quest span{color:#7c8f6e;margin:9px 0;font-size:11px;display:block}progress{accent-color:#65a26d;width:100%;height:7px}.quest small{margin-top:6px;font-size:10px}aside{background:#fff;border:1px solid #e0e7dc;border-radius:18px;align-self:start;overflow:hidden}.panelTitle{align-items:center;gap:12px;padding:19px;display:flex}.panelTitle h2{margin:4px 0 0;font-size:19px}.panelTitle small{letter-spacing:1.5px;font-size:9px}.panelTitle>span{width:44px;height:44px}nav{background:#f6f8f2;border-radius:10px;margin:0 14px;padding:5px;display:flex}nav button{white-space:nowrap;background:0 0;border:0;flex:1;padding:10px 6px;font-size:11px}nav button.active{color:#24876b;background:#fff;box-shadow:0 2px 4px #233d3311}.panelBody{max-height:720px;padding:4px 20px 22px;overflow:auto}.panelBody>button,.notice>button,.receipt>button,details>button{width:100%;margin:5px 0}.panelBody>small{margin-top:6px;font-size:10px}.hint{background:#f4f7ef;border-radius:8px;padding:10px;font-size:11px}.notice{background:#f0f6ec;border:1px solid #dce9d1;border-radius:12px;margin:12px 0;padding:13px;font-size:12px;line-height:1.6}.notice p{font-size:12px}details{border-top:1px solid #e8eee2;margin-top:20px;padding-top:16px;font-size:12px}summary{cursor:pointer;color:#6f866d}.receipt{border:1px dashed #d9dfd5;border-radius:9px;margin-bottom:10px;padding:12px;font-size:11px}.receipt span{margin:8px 0;display:block}.inventory{gap:8px;display:flex}.inventory div{text-align:center;background:#f5f7f0;border-radius:9px;flex:1;padding:10px 5px;font-size:11px}.inventory b{margin:8px 0;display:block}.inventory small{font-size:9px}.line{border-bottom:1px solid #edf0e8;justify-content:space-between;padding:10px 0;font-size:12px;display:flex}.ledger{max-height:220px;overflow:auto}.ledger div{border-bottom:1px solid #eee;padding:10px 0;font-size:11px}.ledger b,.ledger span{margin-top:4px;display:block}.quiz{border:1px solid #e3e8da;border-radius:10px;margin:12px 0;padding:14px;font-size:12px;line-height:1.5}.quiz div{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.quiz button{padding:8px;font-size:11px}.chat{max-height:160px;font-size:11px;overflow:auto}.chat p{margin:4px 0}.toast{z-index:10;color:#fff;cursor:pointer;background:#294d3e;border-radius:12px;max-width:90%;padding:17px 22px;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 6px 30px #23453633}.toast b{margin-left:15px}.overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:20;background:#173a2c88;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.tutorial{background:#fffdf5;border-radius:23px;max-width:620px;max-height:90vh;padding:30px;overflow:auto;box-shadow:0 15px 60px #0002}.tutorial ol{padding-left:20px;font-size:13px;line-height:1.65}.tutorial li{padding:6px}.tutorial p{font-size:12px}.tutorial button{width:100%}footer{color:#8c9b86;padding:25px 0;font-size:10px}footer button{margin-left:15px}.welcome{grid-template-columns:1.2fr 1fr;align-items:center;gap:70px;max-width:1100px;margin:60px auto;display:grid}.welcome em{color:#288c69;font-style:normal}.welcome p{font-size:16px}.badges{gap:10px;display:flex}.badges span{background:#e5edda;border-radius:30px;padding:9px 12px;font-size:11px}.heroArt{justify-content:center;align-items:end;margin-top:45px;font-size:60px;display:flex}.heroArt>div{text-align:center;filter:drop-shadow(8px 14px #dfe8d2);font-size:115px;transform:rotate(-3deg)}.heroArt b{color:#fff;background:#2e8c68;border-radius:8px;padding:10px;font-size:17px;display:block}.heroArt small{font-size:30px}.join{background:#fff;border:1px solid #e4eadc;border-radius:24px;padding:32px;box-shadow:0 12px 40px #436e2d09}.join>button{width:100%;margin:8px 0}.join>small{text-align:center;margin-top:18px;font-size:10px}.roleOptions{gap:8px;margin:12px 0 20px;display:flex}.roleOptions button{flex:1;padding:12px 5px;font-size:10px}.roleOptions span{margin-bottom:9px;font-size:25px;display:block}.roleOptions .selected{background:#edf8ed;border:2px solid #399577}.separator{color:#96a38e;justify-content:center;align-items:center;margin:20px 0;font-size:10px;display:flex}.join h2{margin:12px 0 24px}@media (width>=1400px){.map{margin-top:5px}}@media (width<=1000px){main{padding:0 20px}.gamegrid{grid-template-columns:1fr 340px;gap:15px}.stats strong{font-size:18px}.team{grid-template-columns:1fr}.team>div{padding:7px}.welcome{gap:30px}.welcome h1{font-size:53px}}@media (width<=760px){header{flex-wrap:wrap;gap:10px;height:auto;padding:20px 0}.brand span{font-size:15px}.gamegrid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats>div{padding:12px;font-size:22px}.team{grid-template-columns:repeat(3,1fr)}.team>div{flex-wrap:wrap}.topline h1{font-size:22px}.day{padding:10px}.welcome{grid-template-columns:1fr;gap:20px;margin-top:20px}.welcome h1{font-size:48px}.heroArt{display:none}.welcome p{font-size:14px}.welcome .eyebrow{font-size:9px}.join{padding:24px}.panelBody{max-height:none}.room b{font-size:12px}main{padding:0 16px}.live,.mapfooter{font-size:8px}.tutorial{padding:22px}}body{background-color:#edf2e9;background-image:radial-gradient(at 20% 0,#faf3dc 0,#0000 46%),radial-gradient(at 90% 30%,#e2efe9 0,#0000 40%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}main{max-width:1680px;padding:0 30px}header{height:82px;margin-bottom:25px}.brand span{font-size:19px}.topline h1{font-size:28px}.stats{margin-bottom:20px}.stats>div{border-radius:17px;padding:16px 20px;box-shadow:0 3px #e2e8da}.stats strong{font-size:23px}.gamegrid{grid-template-columns:minmax(0,1fr) 360px;gap:23px}.mapheading{padding-bottom:13px}.mapheading h3{font-size:15px}.mapfooter{margin:9px 6px 14px}.live{background:#e6efdc;border:1px solid #d6e3ce;border-radius:20px;align-items:center;gap:5px;padding:5px 9px;display:flex}.tycoon-world{isolation:isolate;background:#d9ecdf;border:1px solid #c0d4c0;border-radius:22px;position:relative;overflow:hidden;box-shadow:0 6px #c9d6c2,0 18px 38px #53704d16}.world-topbar{z-index:3;pointer-events:none;justify-content:space-between;align-items:center;gap:15px;display:flex;position:absolute;top:16px;left:16px;right:16px}.world-scene-title{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf2ec;border:1px solid #fff;border-radius:13px;align-items:center;gap:9px;max-width:75%;padding:11px 15px;display:flex;box-shadow:0 3px 12px #45644f12}.world-scene-title b{font-size:13px;line-height:1.2}.world-scene-title small{letter-spacing:1.1px;color:#7a8f7e;margin-top:4px;font-size:7px}.world-status-dot{background:#66ac7a;border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 4px #e0edcf}.world-top-actions{pointer-events:auto;align-items:center;gap:8px;display:flex}.world-top-actions button{background:#fffdf1eb;border:1px solid #ffffffcf;border-radius:11px;place-items:center;width:35px;height:35px;padding:8px;display:grid}.scene-day{background:#fffdf1eb;border:1px solid #fff;border-radius:11px;padding:9px 12px;font-size:10px;font-weight:700}.scene-day i{color:#e8b650;margin-left:5px;font-style:normal}.world-viewport{aspect-ratio:1.47;touch-action:manipulation;min-height:500px;max-height:740px;position:relative;overflow:hidden}.world-viewport>canvas{cursor:crosshair;outline:none;width:100%;height:100%;display:block}.world-viewport>canvas:focus-visible{outline-offset:-4px;outline:3px solid #389e77}.world-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.world-player-name{white-space:nowrap;color:#4e675a;will-change:transform;border:1px solid #ffffffc9;border-bottom:2px solid var(--role-color);background:#fffef4ed;border-radius:7px;padding:5px 9px;font-size:10px;font-weight:700;position:absolute;top:0;left:0;box-shadow:0 2px 7px #47604c21}.world-player-name.is-self{color:#fffbe8;border-color:#46705a;border-bottom:3px solid var(--role-color);background:#284d3f;box-shadow:0 2px 10px #244b3b30}.world-room{color:#685c3d;letter-spacing:1px;white-space:nowrap;background:#fffcf0ea;border:1px solid #fff7de;border-radius:7px;padding:6px 10px;font-size:9px;font-weight:800;position:absolute;top:0;left:0;box-shadow:0 3px 8px #5d755615}.room-meeting{color:#527778;letter-spacing:1.5px;background:#e5f2efda;font-size:8px}.world-npc-bubble{color:#624c35;white-space:nowrap;will-change:transform;background:#fffbed;border:1px solid #fff7d9;border-radius:12px;padding:9px 13px;font-size:11px;font-weight:700;position:absolute;box-shadow:0 3px 10px #565d4120}.world-npc-bubble:after{content:"";border:6px solid #0000;border-top-color:#fffbed;border-bottom:0;position:absolute;bottom:-6px;left:45%}.world-feedback{color:#5e5023;white-space:nowrap;z-index:2;will-change:transform;background:#f6d16f;border:2px solid #fff1bd;border-radius:12px;padding:10px 15px;font-size:14px;font-weight:800;position:absolute;box-shadow:0 4px #b69a5466}.world-navigation{z-index:3;pointer-events:none;justify-content:center;gap:6px;display:flex;position:absolute;bottom:68px;left:14px;right:14px}.world-navigation button{pointer-events:auto;background:#fffef1ed;border:1px solid #fffcf3;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:9px 12px;font-size:10px;display:flex;box-shadow:0 2px 5px #4662460c}.world-navigation button>span{border-radius:3px;flex-shrink:0;width:7px;height:7px}.world-navigation button>svg{color:#a1ad97}.world-bottom{z-index:3;background:linear-gradient(#e6eedae8,#e6eeda 40%);border-top:1px solid #eef7e4;justify-content:space-between;align-items:center;gap:10px;min-height:55px;padding:12px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.world-tip{color:#75856d;align-items:center;gap:6px;max-width:220px;font-size:9px;line-height:1.4;display:flex}.world-tip svg{flex-shrink:0}.camera-controls{align-items:center;gap:2px;display:flex}.camera-controls button{color:#5e7561;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-width:27px;height:30px;padding:7px;font-size:9px;display:flex}.camera-controls button:hover{background:#fff9e7;border-color:#bdcdb1}.camera-controls .camera-follow,.camera-controls .mode-switch{background:#faf9e9;border:1px solid #cbd8be;margin-left:4px;padding:7px 9px}.camera-controls .quality-low{color:#4e8c57;background:#daead0}.zoom-value{color:#82917a;text-align:center;min-width:30px;font-size:8px;font-weight:700}.control-divider{background:#c9d5bf;width:1px;height:16px;margin:0 3px}.graphics-note{z-index:4;color:#8a734a;text-align:center;background:#fff6d8eb;border:1px solid #efddb4;border-radius:9px;padding:9px 12px;font-size:10px;position:absolute;top:75px;left:16px;right:16px}.world-loading{z-index:2;background:radial-gradient(#f1f4dd,#d8e9d6);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.world-loading>b{color:#628469;font-size:14px}.world-loading small{color:#91a08c;font-size:11px}.loading-house{align-items:end;gap:5px;margin-bottom:15px;display:flex}.loading-house span{background:#91b89a;border:3px solid #f5f4df;border-bottom:6px solid #d1d5b4;border-radius:7px 7px 3px 3px;width:30px;height:36px;animation:1.2s infinite house-hop;box-shadow:0 4px #a9ba98}.loading-house span:nth-child(2){background:#d5bd82;height:48px;animation-delay:.15s}.loading-house span:nth-child(3){background:#b5a7d0;animation-delay:.3s}@keyframes house-hop{0%,70%,to{transform:translateY(0)}35%{transform:translateY(-8px)}}.fallback-world{cursor:crosshair;width:100%;height:100%;display:block}.fallback-person{transition:transform .18s linear}.character-portrait{filter:drop-shadow(0 2px #c6cfbc44);flex-shrink:0;display:block}.team>div{border-radius:14px;gap:9px;padding:11px 12px;box-shadow:0 3px #e2e8da}.team strong{font-size:12px}.team small{font-size:10px}.panelTitle{padding:18px 20px}.panelTitle h2{font-size:21px}.panelTitle .character-portrait{border:2px solid #fff9e5;border-radius:18px}.panelBody{max-height:865px}.quest{background:#e8efd9;border-radius:14px;grid-template-columns:auto 1fr;gap:5px 15px;padding:18px 20px;display:grid}.quest b{grid-row:span 2;font-size:12px}.quest span{margin:0;font-size:11px}.quest progress,.quest small{grid-column:2}.quest small{margin-top:1px}.world-expanded{z-index:30;border-radius:22px;position:fixed;inset:20px;box-shadow:0 0 0 100vmax #18352de8}.world-expanded .world-viewport{aspect-ratio:auto;height:100%;min-height:0;max-height:none}.world-expanded .world-topbar{top:22px;left:22px;right:22px}.world-expanded .world-navigation{bottom:75px}.world-expanded .world-bottom{padding:14px 23px}.world-expanded .world-tip{max-width:none;font-size:11px}.world-expanded .world-player-name{font-size:12px}.world-expanded .world-room{font-size:10px}.welcome{grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);align-items:start;gap:55px;max-width:1360px;margin:35px auto 60px}.welcome h1{margin:15px 0 18px;font-size:60px;line-height:1.04}.welcome p{margin:10px 0 15px;font-size:14px}.welcome .badges{margin-bottom:24px}.welcome .world-preview{border-radius:18px;margin-top:10px}.world-preview .world-tip{max-width:180px;font-size:8px}.world-preview .camera-controls .control-divider{display:none}.world-preview .world-topbar{top:12px;left:12px;right:12px}.world-preview .world-room{padding:5px 7px;font-size:7px}.world-preview .world-player-name{padding:4px 7px;font-size:8px}.world-preview .world-scene-title{padding:8px 10px}.world-preview .world-scene-title b{font-size:11px}.world-preview .world-scene-title small{letter-spacing:.7px;font-size:6px}.world-preview .world-bottom{min-height:45px;padding:8px 10px}.world-preview .camera-controls button{min-width:24px;height:27px;padding:5px}.join{margin-top:15px;padding:30px;box-shadow:0 8px #e2e8d9,0 16px 30px #5b785610}.roleOptions button{border:1px solid #e1e7d9;border-radius:13px;flex-direction:column;align-items:center;gap:10px;padding:12px 6px;font-size:10px;display:flex}.roleOptions .selected{background:#f1f7e9;border:2px solid #4c9973;padding:11px 5px}.join h2{font-size:24px}.join .primary{padding:14px}.world-preview .world-feedback{padding:7px 10px;font-size:10px}@media (width>=1450px){.gamegrid{grid-template-columns:minmax(0,1fr) 390px}.world-viewport{aspect-ratio:1.62}}@media (width<=1150px){main{padding:0 22px}.gamegrid{grid-template-columns:minmax(0,1fr) 335px;gap:18px}.world-viewport{aspect-ratio:1.05;min-height:540px}.world-bottom{flex-direction:column;gap:5px;padding:8px}.world-tip{max-width:none;font-size:8px}.world-navigation{flex-wrap:wrap;gap:4px;bottom:88px;left:8px;right:8px}.world-navigation button{padding:8px;font-size:9px}.world-navigation button>svg{display:none}.team{grid-template-columns:1fr}.team>div{padding:8px}.quest{display:block}.quest span{margin-top:7px}.world-preview .world-viewport{aspect-ratio:1.5;min-height:320px}.welcome{gap:30px}.welcome h1{font-size:51px}.welcome .world-bottom{flex-direction:row}.world-preview .world-tip{display:none}.world-preview .camera-controls{margin-left:auto}}@media (width<=850px){.gamegrid{grid-template-columns:1fr}.world-viewport{aspect-ratio:1.43;min-height:500px}.world-bottom{flex-direction:row}.world-navigation{flex-wrap:nowrap;bottom:67px}.team{grid-template-columns:repeat(3,1fr)}.world-navigation button{padding:9px 12px}.welcome{grid-template-columns:1fr .85fr;gap:24px}.welcome h1{font-size:43px}.welcome .world-viewport{min-height:290px}.world-preview .world-topbar{top:9px;left:9px;right:9px}.world-preview .world-room{font-size:6px}.world-preview .world-scene-title small{display:none}.world-preview .world-player-name{font-size:7px}.world-preview .camera-controls button>span{display:none}.join{padding:22px}.roleOptions .character-portrait{width:45px;height:45px}.stats strong{font-size:20px}.panelBody{max-height:none}}@media (width<=650px){main{padding:0 13px}.welcome{grid-template-columns:1fr;gap:20px;margin:24px auto 35px}.welcome h1{font-size:46px}.welcome .world-viewport{aspect-ratio:1.3;min-height:320px}.world-preview .world-scene-title small{display:block}.world-preview .world-room{font-size:7px}.world-preview .world-player-name{font-size:8px}.join{margin-top:10px}.topline h1{font-size:22px}.brand span{font-size:15px}.stats>div{gap:11px;padding:13px}.stats strong{font-size:20px}.stats{gap:11px}.world-viewport{aspect-ratio:.95;min-height:500px;max-height:640px}.world-bottom{flex-direction:column;gap:4px;padding:8px 5px}.world-tip{font-size:8px}.world-navigation{flex-wrap:wrap;gap:4px;bottom:85px;left:7px;right:7px}.world-navigation button{padding:8px 9px;font-size:8px}.world-player-name{padding:4px 6px;font-size:8px}.world-room{letter-spacing:.5px;padding:5px 7px;font-size:7px}.world-scene-title{gap:8px;max-width:76%;padding:9px 11px}.world-scene-title b{font-size:11px}.world-scene-title small{letter-spacing:.5px;font-size:6px}.world-topbar{gap:7px;top:12px;left:10px;right:10px}.world-top-actions{gap:5px}.scene-day{padding:8px;font-size:9px}.world-top-actions button{width:29px;height:29px;padding:5px}.world-expanded{border-radius:15px;inset:5px}.world-expanded .world-bottom{padding:10px}.world-expanded .world-tip{font-size:9px}.world-expanded .world-topbar{top:12px;left:12px;right:12px}.world-expanded .world-navigation{bottom:90px}.world-expanded .world-player-name{font-size:10px}.world-expanded .world-room{font-size:8px}.team>div{gap:7px;padding:8px}.team .character-portrait{width:36px;height:36px}.team strong{font-size:10px}.team small,.team b{font-size:8px}.world-preview .world-bottom{flex-direction:row}.world-preview .world-tip{display:none}.graphics-note{font-size:9px;top:65px}.camera-controls button{padding:6px;font-size:8px}.world-npc-bubble{padding:7px 10px;font-size:9px}.world-feedback{font-size:11px}}@media (prefers-reduced-motion:reduce){.loading-house span{animation:none}.fallback-person,button{transition:none}}.tycoon-world.world-expanded .world-viewport{aspect-ratio:auto;height:100%;min-height:0;max-height:none}.world-expanded .world-labels .world-room{font-size:10px}.world-expanded .world-labels .world-player-name{font-size:12px}.game-shell{max-width:1920px;padding:0 16px 15px}.game-shell header{background:#22354a;border-bottom:3px solid #132536;border-radius:0 0 14px 14px;height:65px;margin:0 0 12px;padding:0 20px;box-shadow:0 4px 12px #1b3e4015}.game-shell .brand{color:#f4f8ff}.game-shell .brand b{color:#f4c654}.game-shell .brand small{color:#a7bdd0}.game-shell header .ghost{color:#eef6fb}.game-shell .room{color:#dceaf3;background:#314d65;border-color:#53718b}.game-shell>.topline,.game-shell>.stats{display:none}.game-shell .gamegrid{display:block;position:relative}.game-shell .mapheading,.game-shell .mapfooter,.game-shell .quest{display:none}.game-shell .tycoon-world{background:#9cceea;border:3px solid #486375;border-radius:17px;box-shadow:0 5px #243d4f,0 12px 25px #32544521}.game-shell .world-viewport{aspect-ratio:auto;height:calc(100vh - 175px);min-height:610px;max-height:1050px}.game-shell .team{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0 0;display:grid}.game-shell .team>div{background:#f3f7fa;border:1px solid #c8d6df;max-width:none;padding:9px 16px;box-shadow:0 3px #ccd9dd}.game-shell .team strong{font-size:12px}.game-shell .team small,.game-shell .team b{font-size:10px}.game-shell footer{padding:15px 6px 2px;font-size:9px}.game-shell footer small{display:none}.game-shell .role-drawer{z-index:12;background:#fffdf4;border:2px solid #b2c8db;border-radius:18px;width:355px;max-height:calc(100vh - 235px);display:none;position:absolute;top:106px;right:18px;box-shadow:0 7px #223e4d40,0 12px 40px #143e493b}.game-shell .role-drawer.is-open{animation:.16s ease-out drawer-in;display:block}.game-shell .role-drawer .panelTitle{padding:16px}.game-shell .role-drawer .panelBody{max-height:calc(100vh - 390px);padding:3px 16px 20px}.close-computer{color:#617d8f;background:#e9f0f6;border:1px solid #d6e0e6;border-radius:9px;margin-left:auto;padding:5px 10px;font-size:24px;line-height:1}.open-computer{z-index:9;color:#40566b;background:#fffaf0;border:2px solid #ffdf84;border-radius:13px;align-items:center;gap:10px;padding:10px 13px;display:flex;position:absolute;top:106px;right:20px;box-shadow:0 5px #8c794a66,0 6px 15px #365a4a25}.open-computer>span{text-align:left;font-size:12px}.open-computer small{color:#84949e;margin-top:3px;font-size:8px;font-weight:400}.open-computer kbd{color:#fff;background:#324c65;border-bottom:3px solid #182e43;border-radius:6px;place-items:center;width:27px;height:27px;margin-left:8px;font-size:12px;display:grid}.city-topbar{pointer-events:none;align-items:flex-start;gap:14px;top:18px;left:20px;right:20px}.hud-player{background:#fffaf1f5;border:2px solid #fff;border-radius:14px;align-items:center;gap:10px;min-width:215px;max-width:300px;padding:8px 12px 8px 8px;display:flex;box-shadow:0 4px #37576b50,0 5px 14px #264d6020}.hud-player .character-portrait{border:2px solid #cadce9;border-radius:17px}.hud-player>div{min-width:0}.hud-player b{letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:#2e465e;max-width:170px;font-size:14px;font-weight:900;display:block;overflow:hidden}.hud-player span{color:#7c8ba1;margin:3px 0;font-size:9px;font-weight:700;display:block}.hud-player small{color:#687f95;margin-top:4px;font-size:8px}.hud-xp{background:#dce6f2;border:1px solid #d0dcec;border-radius:5px;height:5px;overflow:hidden}.hud-xp i{background:#7d83e1;border-radius:4px;height:100%;display:block}.hud-money{flex-direction:column;align-items:stretch;gap:6px;min-width:225px;margin-left:auto;margin-right:0;display:flex}.hud-money>div{color:#fff;background:#256c4be8;border:2px solid #70b17a;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;padding:10px 16px;display:flex;box-shadow:0 4px #1b53394d}.hud-money>div svg{color:#f4d271;filter:drop-shadow(0 2px #a68035)}.hud-money b{letter-spacing:-.3px;text-shadow:0 2px #13492d;font-size:23px}.hud-money small{color:#f3fafc;background:#2e6178ee;border:1px solid #82a9b8;border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:7px 10px;font-size:10px;display:flex;box-shadow:0 2px #2c4c6e50}.hud-money small span{color:#c2e0e7;padding:0 2px}.city-topbar .world-top-actions{pointer-events:auto;margin-top:0}.city-topbar .world-top-actions button{color:#3b5974;background:#fffaf0;border:2px solid #fff;box-shadow:0 3px #31536d44}.hud-objective{z-index:4;color:#485361;pointer-events:none;background:#ffdf64f2;border:2px solid #fff0a2;border-radius:13px;align-items:center;gap:9px;max-width:390px;padding:10px 13px;font-size:11px;font-weight:800;display:flex;position:absolute;bottom:118px;left:20px;box-shadow:0 3px #9f814b50}.hud-objective svg{color:#d49320;fill:#fff7c3;flex-shrink:0}.world-bottom{background:linear-gradient(#e2edf0ec,#dce8edfa);border-top-color:#f4fbfd}.world-navigation button{color:#44617b;background:#fcfcf5f0;border:2px solid #fefefe;border-bottom:3px solid #8aabc1;font-weight:800}.world-room{color:#3c5c7a;background:#f6f9fdee;border:2px solid #fff;font-size:9px;box-shadow:0 3px #3c5a7044}.room-admin{color:#6e5593;background:#ebe7f7ef}.room-shop{color:#337354;background:#d9f3e6f0}.world-player-name{border:2px solid #fff;border-bottom:3px solid var(--role-color);color:#364f63;background:#fffaf2f2;font-size:10px;box-shadow:0 3px #34495338}.world-player-name.is-self{border-color:#d9edff;border-bottom-color:var(--role-color);background:#2f5b80}.camera-controls .roof-toggle{background:#eef5f9;border:1px solid #afc3d0;margin-left:4px;padding:7px 9px}.camera-controls .quality-low{background:#d2ead7}.camera-controls button{color:#4b6d85}.camera-controls button[title^=Pilih]{background:#edf5f9;border:1px solid #c8d9e2;min-width:76px;margin-left:4px}.world-preview .world-viewport{aspect-ratio:1.55;min-height:390px;max-height:520px}.world-preview .city-topbar{gap:8px;top:12px;left:12px;right:12px}.world-preview .hud-player{border-radius:11px;gap:6px;min-width:0;padding:5px 8px 5px 5px}.world-preview .hud-player .character-portrait{border-radius:12px;width:38px;height:38px}.world-preview .hud-player b{max-width:125px;font-size:11px}.world-preview .hud-player span{font-size:6px}.world-preview .hud-player small{font-size:7px}.world-preview .hud-money{gap:4px;min-width:130px}.world-preview .hud-money>div{gap:9px;padding:7px 9px}.world-preview .hud-money b{font-size:16px}.world-preview .hud-money>div svg{width:16px;height:16px}.world-preview .hud-money small{gap:3px;padding:4px;font-size:7px}.world-preview .hud-money small svg{width:8px;height:8px}.world-preview .city-topbar .world-top-actions button{width:28px;height:28px;padding:4px}.world-preview .camera-controls .roof-toggle{padding:5px 7px}.world-preview .camera-controls button[title^=Pilih]{min-width:55px}.game-shell .world-expanded .world-viewport,.world-preview.world-expanded .world-viewport{aspect-ratio:auto;height:100%;min-height:0;max-height:none}.world-expanded .hud-player .character-portrait{width:56px;height:56px}.world-expanded .hud-player b{font-size:14px}.world-expanded .hud-player span{font-size:9px}.world-expanded .hud-money{min-width:225px}.world-expanded .hud-money b{font-size:23px}.world-expanded .hud-money small{font-size:10px}.world-expanded .hud-objective{bottom:128px}@keyframes drawer-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@media (width>=1500px){.game-shell .world-viewport{min-height:720px}.game-shell .role-drawer{width:380px}}@media (width<=1150px){.world-preview .world-viewport{aspect-ratio:1.28;min-height:360px}.world-preview .hud-money small{display:none}.game-shell .world-bottom{flex-direction:row}.game-shell .world-navigation{flex-wrap:nowrap;bottom:68px}.game-shell .world-tip{max-width:210px;font-size:9px}.game-shell .world-viewport{height:calc(100vh - 175px);min-height:610px}}@media (width<=850px){.game-shell{padding:0 8px}.game-shell header{padding:0 12px}.game-shell .brand small{font-size:6px}.game-shell .world-bottom{flex-direction:column;padding:8px}.game-shell .world-navigation{gap:4px;bottom:89px}.game-shell .hud-objective{max-width:330px;font-size:10px;bottom:135px}.game-shell .role-drawer{width:335px;max-height:calc(100vh - 220px);top:109px;right:12px}.game-shell .role-drawer .panelBody{max-height:calc(100vh - 370px)}.game-shell .hud-player{gap:7px;min-width:185px;padding:6px}.game-shell .hud-player b{font-size:12px}.game-shell .hud-player .character-portrait{width:45px;height:45px}.game-shell .hud-money{min-width:195px}.game-shell .hud-money b{font-size:20px}.game-shell .hud-money small{font-size:8px}.game-shell .team>div{padding:8px}.open-computer{padding:8px 10px;top:108px;right:14px}.open-computer .character-portrait{width:34px;height:34px}.world-preview .hud-money{display:none}.world-preview .world-viewport{min-height:340px}.world-preview .city-topbar .world-top-actions{margin-left:auto}}@media (width<=600px){.game-shell header{flex-wrap:wrap;gap:7px;height:auto;min-height:62px;padding:10px}.game-shell .brand span{font-size:13px}.game-shell .brand small{letter-spacing:1.2px;font-size:5px}.game-shell .headerRight{gap:2px;margin-left:auto}.game-shell header .ghost{padding:6px;font-size:10px}.game-shell .room{padding:7px;font-size:8px}.game-shell .room b{letter-spacing:1px;margin-left:4px;font-size:10px}.game-shell .world-viewport{height:calc(100svh - 175px);min-height:560px;max-height:none}.game-shell .city-topbar{gap:5px;top:12px;left:9px;right:9px}.game-shell .hud-player{gap:6px;min-width:0;max-width:174px;padding:5px}.game-shell .hud-player b{max-width:103px;font-size:10px}.game-shell .hud-player span{font-size:7px}.game-shell .hud-player small{font-size:6px}.game-shell .hud-player .character-portrait{border-radius:11px;width:36px;height:36px}.game-shell .hud-money{gap:4px;min-width:120px}.game-shell .hud-money>div{gap:5px;padding:7px 8px}.game-shell .hud-money b{font-size:15px}.game-shell .hud-money>div svg{width:17px;height:17px}.game-shell .hud-money small{gap:3px;padding:5px;font-size:7px}.game-shell .hud-money small svg{display:none}.game-shell .city-topbar .world-top-actions button{width:27px;height:27px;padding:4px}.game-shell .hud-objective{max-width:calc(100% - 22px);padding:8px 10px;font-size:9px;bottom:144px;left:11px}.game-shell .open-computer{gap:7px;padding:7px 9px;top:105px;right:11px}.open-computer>span{font-size:10px}.open-computer small{font-size:7px}.open-computer kbd{width:22px;height:22px;margin-left:0;font-size:10px}.open-computer .character-portrait{width:30px;height:30px}.game-shell .role-drawer{width:min(350px,100% - 16px);max-height:calc(100svh - 210px);top:102px;right:8px}.game-shell .role-drawer .panelBody{max-height:calc(100svh - 355px)}.game-shell .world-navigation{flex-wrap:wrap;bottom:89px}.game-shell .camera-controls{gap:0}.game-shell .camera-controls button{min-width:23px;padding:5px;font-size:7px}.game-shell .camera-controls button[title^=Pilih]{min-width:60px;margin-left:2px}.game-shell .camera-controls .camera-follow,.game-shell .camera-controls .roof-toggle{margin-left:2px;padding:6px}.game-shell .zoom-value{min-width:26px}.game-shell .world-tip{max-width:none;font-size:8px}.game-shell .team{gap:5px;margin-top:12px}.game-shell .team>div{flex-wrap:wrap;gap:5px;padding:7px 5px}.game-shell .team strong{font-size:9px}.game-shell .team small,.game-shell .team b{font-size:7px}.game-shell .team .character-portrait{width:28px;height:28px}.game-shell .world-expanded .world-viewport{height:100%;min-height:0}.world-preview .world-viewport{aspect-ratio:1.2;min-height:360px}.world-preview .hud-money{min-width:115px;display:flex}.world-preview .hud-money b{font-size:14px}.world-preview .hud-player b{font-size:10px}.world-preview .hud-player span{font-size:5.5px}.world-preview .camera-controls .roof-toggle span,.world-preview .camera-controls button[title^=Pilih] span{display:inline}.world-preview .camera-controls button[title^=Pilih]{font-size:8px}}.avatar-builder{color:#365547;background:#f0f6ef;border-radius:20px;gap:16px;margin:18px 0;padding:16px;display:flex}.avatar-preview{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:125px;display:flex}.avatar-preview small{text-align:center;max-width:125px;font-size:10px}.avatar-options{flex:1;min-width:0}.avatar-options fieldset{border:0;flex-wrap:wrap;gap:4px;margin:6px 0;padding:0;display:flex}.avatar-options legend{margin-bottom:4px;font-size:11px}.avatar-options button{border:2px solid #0000;min-height:27px;padding:5px 7px;font-size:10px}.avatar-options button[aria-pressed=true]{border-color:#365e4c;box-shadow:0 0 0 2px #fff}.avatar-options .avatar-swatch{border-radius:50%;width:25px;height:25px;min-height:25px;padding:0}.stand-button{z-index:12;color:#3e5a49;background:#fff9df;border:2px solid #84ac8e;border-radius:18px;padding:10px 16px;position:absolute;bottom:122px;left:50%;transform:translate(-50%)}.join{max-height:none}.welcome{align-items:start}@media (width<=650px){.avatar-builder{gap:8px;padding:10px}.avatar-preview{min-width:94px}.avatar-preview svg{width:94px;height:94px}.avatar-options button{padding:4px;font-size:9px}.stand-button{bottom:180px}}.avatar-model:empty{display:none}.avatar-model{cursor:grab;border-radius:18px;width:160px;height:200px;overflow:hidden}.avatar-model canvas{width:160px;height:200px;display:block}.avatar-preview{min-width:160px}@media (width<=650px){.avatar-preview{min-width:112px}.avatar-model{width:112px;height:140px}.avatar-model canvas{width:112px!important;height:140px!important}}.wardrobe-tabs{gap:5px;margin:10px 0;display:flex}.avatar-options .wardrobe-tabs button{background:#f9fcf5;border:1px solid #cbd9ca;flex:1;min-height:34px;font-size:11px}.avatar-options .wardrobe-tabs button[aria-selected=true]{color:#fff;background:#305d4b;border-color:#305d4b}.avatar-options [role=tabpanel]{min-height:250px}.clothes-grid,.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;display:grid}.avatar-options .clothes-grid button{background:#fffef5;border:2px solid #d9e3d5;align-items:center;gap:6px;min-height:42px;padding:8px;font-size:11px;display:flex}.clothes-grid button span{font-size:20px}.avatar-options .clothes-grid button[aria-pressed=true]{background:#dcebd7;border-color:#35644d}.avatar-options .preset-grid button{background:#e5ecdf;min-height:34px;padding:7px;font-size:10px}.avatar-style-name{color:#416342;background:#d4e3cc;border-radius:12px;padding:5px 9px;font-size:10px}.avatar-options .avatar-swatch{border:2px solid #d3dccd;width:28px;height:28px;min-height:28px}.avatar-options fieldset{margin-bottom:12px}.avatar-options legend{font-weight:700}.avatar-options>small,.avatar-options [role=tabpanel]>small{font-size:10px;line-height:1.5;display:block}.mobile-launch,.touch-controls,.rotate-guide,.mobile-camera-toggle{display:none}@media (width<=650px){.avatar-builder{gap:10px}.avatar-preview{justify-content:flex-start;align-self:flex-start;min-width:104px;padding-top:30px;position:sticky;top:10px}.avatar-model{width:104px;height:130px}.avatar-model canvas{width:104px!important;height:130px!important}.avatar-options [role=tabpanel]{min-height:290px}.avatar-options .wardrobe-tabs button{min-height:36px;padding:5px;font-size:10px}.avatar-options .clothes-grid button{gap:3px;padding:6px;font-size:10px}.clothes-grid button span{font-size:16px}.avatar-preview small{font-size:9px}.avatar-options .avatar-swatch{width:30px;height:30px;min-height:30px}.avatar-options fieldset>button:not(.avatar-swatch){min-height:36px;padding:7px}.join input,.join select{font-size:16px}}@media (pointer:coarse){.game-shell{overscroll-behavior:none;background:#263f52;width:100%;max-width:none;height:100dvh;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.game-shell header{height:36px;min-height:36px;padding:0 max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));border-bottom-width:1px;border-radius:0;flex-wrap:nowrap;gap:8px;margin:0}.game-shell .brand span{font-size:12px}.game-shell .brand small{display:none}.game-shell header .ghost{min-height:30px;padding:5px;font-size:10px}.game-shell .room{padding:4px 6px;font-size:8px}.game-shell .room b{letter-spacing:1px;font-size:11px}.game-shell .headerRight{gap:4px}.game-shell .gamegrid{height:calc(100dvh - 36px);position:static}.game-shell .gamegrid>section{height:100%}.game-shell .tycoon-world{height:100%;box-shadow:none;border:0;border-radius:0}.game-shell .world-viewport{aspect-ratio:auto;touch-action:none;height:100%;min-height:0;max-height:none}.game-shell .team,.game-shell footer,.game-shell .open-computer,.game-shell .stand-button{display:none}.game-shell .city-topbar{top:6px;left:max(7px,env(safe-area-inset-left));right:max(7px,env(safe-area-inset-right));align-items:flex-start;gap:6px}.game-shell .hud-player{border-radius:10px;gap:6px;min-width:0;max-width:200px;padding:4px 8px 4px 4px}.game-shell .hud-player .character-portrait{border-radius:10px;width:35px;height:35px}.game-shell .hud-player b{max-width:135px;font-size:11px}.game-shell .hud-player span{margin:2px 0;font-size:8px}.game-shell .hud-player small{margin-top:2px;font-size:7px}.game-shell .hud-xp{height:4px}.game-shell .hud-money{gap:3px;min-width:155px}.game-shell .hud-money>div{border-radius:8px;gap:7px;padding:5px 9px}.game-shell .hud-money b{font-size:17px}.game-shell .hud-money>div svg{width:17px;height:17px}.game-shell .hud-money small{padding:4px 6px;font-size:8px}.game-shell .city-topbar .world-top-actions{display:none}.game-shell .hud-objective{white-space:normal;border-radius:10px;max-width:min(420px,100% - 260px);padding:5px 9px;font-size:9px;line-height:1.35;top:66px;bottom:auto;left:50%;transform:translate(-50%)}.game-shell .hud-objective svg{width:14px;height:14px}.game-shell .world-navigation{left:50%;right:auto;bottom:max(10px,env(safe-area-inset-bottom));flex-wrap:wrap;gap:4px;width:calc(100% - 300px);max-width:430px;transform:translate(-50%)}.game-shell .world-navigation button{border-radius:9px;flex:85px;gap:4px;max-width:105px;min-height:36px;padding:7px 6px;font-size:9px}.game-shell .world-navigation button>svg{display:none}.game-shell .world-bottom{border:1px solid #a9c0cc;border-radius:13px;width:calc(100% - 150px);max-width:330px;padding:9px;display:none;bottom:145px;left:auto;right:8px;box-shadow:0 4px 20px #203c4e55}.game-shell .camera-tools-open .world-bottom{display:flex}.game-shell .world-tip{display:none}.game-shell .camera-controls{flex-wrap:wrap;justify-content:center;gap:4px}.game-shell .camera-controls button{min-width:36px;min-height:36px;padding:7px;font-size:10px}.game-shell .camera-controls button[title^=Pilih]{min-width:76px}.game-shell .mobile-camera-toggle{right:max(10px,env(safe-area-inset-right));z-index:8;color:#3f6074;background:#f4faf5ed;border:1px solid #bdcfda;border-radius:9px;min-height:34px;padding:6px 10px;font-size:11px;display:block;position:absolute;bottom:105px}.game-shell .role-drawer{top:40px;bottom:max(4px,env(safe-area-inset-bottom));right:max(4px,env(safe-area-inset-right));z-index:70;border-radius:13px;width:min(390px,65vw);height:auto;max-height:none;position:fixed;overflow:hidden;box-shadow:0 0 0 100vmax #102b3b5c}.game-shell .role-drawer .panelTitle{gap:8px;height:61px;padding:7px 12px}.game-shell .role-drawer .panelTitle .character-portrait{width:39px;height:39px}.game-shell .role-drawer .panelTitle h2{font-size:18px}.game-shell .role-drawer nav{height:41px;padding:4px}.game-shell .role-drawer nav button{min-height:33px;padding:6px;font-size:11px}.game-shell .role-drawer .panelBody{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:calc(100% - 102px);max-height:none;padding:8px 14px 24px;overflow:auto}.game-shell .role-drawer .panelBody button{min-height:42px;font-size:12px}.game-shell .role-drawer input,.game-shell .role-drawer select,.game-shell .role-drawer textarea{min-height:40px;font-size:16px}.touch-controls{z-index:45;pointer-events:none;display:block;position:fixed;inset:0}.touch-dpad{left:max(10px,env(safe-area-inset-left));bottom:max(9px,env(safe-area-inset-bottom));touch-action:none;-webkit-user-select:none;user-select:none;background:#28475c5c;border:1px solid #cde4e275;border-radius:24px;grid-template:repeat(3,36px)/repeat(3,36px);gap:3px;padding:4px;display:grid;position:absolute}.touch-dpad button{pointer-events:auto;touch-action:none;color:#355b73;-webkit-user-select:none;-webkit-touch-callout:none;background:#fffdf0ee;border:2px solid #e5efe5c9;border-bottom:3px solid #648b98;border-radius:12px;min-width:36px;min-height:36px;padding:0;font-size:24px;line-height:1}.touch-dpad button:active{background:#8bd8ae;transform:translateY(1px)}.touch-w{grid-area:1/2}.touch-a{grid-area:2/1}.touch-s{grid-area:3/2}.touch-d{grid-area:2/3}.touch-dpad>span{color:#f1fff2;letter-spacing:.5px;grid-area:2/2;place-items:center;font-size:7px;display:grid}.touch-actions{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));gap:8px;display:flex;position:absolute}.touch-actions button{pointer-events:auto;touch-action:manipulation;color:#466149;background:#fff4cfee;border:2px solid #fff8e4;border-bottom:4px solid #b19b5b;border-radius:17px;flex-direction:column;justify-content:center;align-items:center;width:58px;height:65px;padding:7px;font-size:23px;display:flex;box-shadow:0 3px 12px #1c354944}.touch-actions span{margin-top:4px;font-size:10px;font-weight:800}.mobile-launch{right:max(10px,env(safe-area-inset-right));z-index:46;display:block;position:fixed;bottom:145px}.mobile-launch>button{color:#3f6074;background:#f4faf5ed;border:1px solid #bdcfda;border-radius:9px;min-height:34px;padding:7px 10px;font-size:11px}.mobile-launch>span{color:#546647;pointer-events:none;background:#fff4d4f5;border-radius:9px;max-width:75vw;padding:7px 10px;font-size:11px;animation:8s forwards status-fade;position:fixed;top:43px;left:50%;transform:translate(-50%)}.mobile-launch:has(>span){pointer-events:auto}.game-shell .overlay{z-index:110;padding:12px}.game-shell .tutorial{max-height:calc(100dvh - 24px);padding:20px;overflow:auto}.game-shell .toast{z-index:115;max-width:calc(100% - 32px);font-size:12px;bottom:145px}.game-shell .world-expanded{z-index:30;border-radius:0;position:absolute;inset:0}.game-shell .world-expanded .world-viewport{height:100%}.avatar-options button{touch-action:manipulation}.rotate-guide{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#18384bf2;justify-content:center;align-items:center;padding:22px;display:none;position:fixed;inset:0}.rotate-guide article{text-align:center;background:#fffbed;border:3px solid #e4d38f;border-radius:26px;max-width:410px;padding:25px;box-shadow:0 12px #102f3c55}.rotate-guide h2{margin:10px 0;font-size:25px}.rotate-guide p{font-size:14px;line-height:1.6}.rotate-phone{color:#43846a;margin-bottom:8px;font-size:55px}.rotate-controls-demo{text-align:left;gap:8px;margin:16px 0;font-size:13px;display:grid}.rotate-guide button{width:100%;min-height:45px;margin-top:8px}.rotate-guide .eyebrow{font-size:10px}}@media (pointer:coarse) and (orientation:portrait){.rotate-guide{display:flex}.game-shell .role-drawer{width:calc(100% - 12px)}.game-shell .hud-objective{max-width:calc(100% - 30px);top:90px}.game-shell .world-navigation{width:calc(100% - 24px);bottom:150px}.game-shell .hud-player{max-width:155px}.game-shell .hud-money{min-width:128px}.game-shell .hud-money b{font-size:14px}}@media (pointer:coarse) and (height<=380px) and (orientation:landscape){.game-shell .hud-player small,.game-shell .hud-money small{display:none}.game-shell .hud-objective{font-size:8px;top:48px}.touch-dpad{grid-template:repeat(3,31px)/repeat(3,31px)}.touch-dpad button{min-width:31px;min-height:31px;font-size:21px}.touch-actions button{width:53px;height:58px}.game-shell .mobile-camera-toggle{bottom:87px}.mobile-launch,.game-shell .world-bottom{bottom:126px}.game-shell .role-drawer{width:min(390px,70vw)}}@keyframes status-fade{0%,75%{opacity:1}to{opacity:0;visibility:hidden}}@media (pointer:coarse){.game-shell:has(.camera-tools-open) .mobile-launch{display:none}.touch-joystick{left:max(10px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;background:radial-gradient(circle,#86adab55 0 30%,#294b6666 31% 59%,#23445c80 60%);border:2px solid #e5f6eeaa;border-radius:50%;outline:none;place-items:center;width:128px;height:128px;display:grid;position:absolute;box-shadow:inset 0 2px 18px #152f4766,0 3px 12px #152f4733}.touch-joystick:focus-visible{outline-offset:3px;outline:3px solid #ffe182}.touch-joystick.is-active{background:radial-gradient(circle,#85c8ad66 0 30%,#386c7577 31% 59%,#23445c80 60%);border-color:#d3ffe1}.joystick-ring{pointer-events:none;border:1px solid #e4faea55;border-radius:50%;position:absolute;inset:18px}.joystick-knob{pointer-events:none;will-change:transform;background:radial-gradient(circle at 35% 25%,#fffbe8,#c1decf 70%);border:3px solid #f7fff0;border-radius:50%;place-items:center;width:51px;height:51px;display:grid;box-shadow:0 5px #47766e99,0 6px 15px #122d4570}.joystick-knob i{opacity:.7;border:2px solid #6e9b8a;border-radius:50%;width:15px;height:15px}.touch-joystick>small{letter-spacing:.6px;color:#e7fff1;pointer-events:none;font-size:7px;position:absolute;bottom:8px}}@media (pointer:coarse) and (height<=380px) and (orientation:landscape){.touch-joystick{width:108px;height:108px}.joystick-knob{width:44px;height:44px}.touch-joystick>small{font-size:6px;bottom:6px}}
/*$vite$:1*/