:root{--online-panel:#131e31;--online-line:#365474;--online-accent:#55d2ae}.online-world-page{min-height:100dvh;margin:0;background:#0b1220;color:#edf3ff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.online-world-shell{box-sizing:border-box;width:min(100%,430px);min-height:100dvh;margin:0 auto;padding:clamp(8px,2.2dvh,20px) 12px 18px;display:flex;flex-direction:column;gap:10px}.online-world-status{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;border:1px solid #2c4260;border-radius:10px;background:#15233a;color:#c5d4e8;font-size:11px}.online-world-status>div{display:flex;align-items:center;gap:7px}.online-status-dot{width:8px;height:8px;border-radius:50%;background:#6f7d91}.online-status-dot.is-online{background:#54d4ad;box-shadow:0 0 8px #54d4ad}.online-world-panel{padding:12px;border:1px solid #263957;border-radius:16px;background:var(--online-panel)}.online-world-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:9px}.online-world-heading>div>span{color:#8da5c8;font-size:9px;letter-spacing:.12em}.online-world-heading h2{margin:3px 0 0;font-size:18px}.online-world-scope{padding:4px 7px;border:1px solid #3b705f;border-radius:8px;background:#173c34;color:#bdf4df;font-size:9px;font-weight:800}.online-world-viewport{position:relative;width:100%;aspect-ratio:9/7;overflow:hidden;border:1px solid #456887;border-radius:12px;background:#253b43;touch-action:none}.online-world-field{position:absolute;inset:0 auto 0 0;width:300%;height:100%;display:flex;will-change:transform}.online-world-segment{flex:0 0 33.333333%;height:100%;background:#597258 url("/api/webtest/background") center/cover no-repeat}.online-world-segment+.online-world-segment{box-shadow:inset 1px 0 #d5e7d229}.online-world-horizon{position:absolute;z-index:1;left:0;right:0;top:28%;border-top:1px dashed #f0d47255}.online-world-avatar-canvas{position:absolute;z-index:2;inset:0;width:100%;height:100%;pointer-events:none}.online-world-players{position:absolute;z-index:3;inset:0;pointer-events:none}.online-world-player{position:absolute;width:var(--unity-world-avatar-size,32px);height:calc(var(--unity-world-avatar-size,32px) * 1.08);transform:translate(-50%,-89%);transition:left .11s linear,top .11s linear;pointer-events:none}.online-world-avatar-anchor{position:absolute;inset:0}.online-world-player.is-me:after{content:"";position:absolute;z-index:-1;left:50%;bottom:1px;width:calc(var(--unity-world-avatar-size,32px) * 1.3);height:calc(var(--unity-world-avatar-size,32px) * .3);transform:translateX(-50%);border:1px solid #54d4ad;border-radius:50%;background:#54d4ad24}.online-world-player-name{position:absolute;z-index:4;left:50%;bottom:calc(100% + 2px);transform:translateX(-50%);max-width:110px;padding:2px 5px;border-radius:6px;background:#0b1220dd;color:#eaf3ff;font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-world-player.is-me .online-world-player-name{color:#9ff0d5}.online-world-empty{position:absolute;z-index:5;inset:0;display:grid;place-content:center;padding:30px;color:#e1eaffbb;font-size:11px;text-align:center}.online-world-empty[hidden]{display:none}.online-world-controls{display:grid;grid-template-columns:104px 1fr;gap:13px;align-items:center;margin-top:10px}.online-world-joystick{position:relative;width:96px;height:96px;border:1px solid #4a6688;border-radius:50%;background:#17263a;touch-action:none}.online-world-joystick:before{content:"";position:absolute;inset:26px;border:1px dashed #44617f;border-radius:50%}.online-world-joystick span{position:absolute;left:50%;top:50%;width:40px;height:40px;transform:translate(-50%,-50%);border:2px solid #6fcdb2;border-radius:50%;background:#2d6f62;box-shadow:0 4px 12px #0007}.online-world-help{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;color:#aebfd4;font-size:10px}.online-world-help strong{grid-column:1/-1;color:#edf3ff;font-size:12px}.online-world-help button{grid-column:1/-1;min-height:42px;margin-top:4px;border:1px solid #425d7c;border-radius:9px;background:#1c2a42;color:#e6effc;font-weight:800}.online-world-note{margin:0;padding:8px 10px;border:1px solid #564f37;border-radius:10px;background:#282519;color:#d8cfae;font-size:9px;line-height:1.45}.online-join-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:16px;background:#070d17dd}.online-join-backdrop[hidden]{display:none}.online-join-card{box-sizing:border-box;width:min(100%,370px);padding:18px;border:1px solid #385477;border-radius:16px;background:#131f32;box-shadow:0 20px 60px #000a}.online-join-card h2{margin:4px 0 15px}.online-join-card>label{display:grid;gap:6px;color:#bdcce0;font-size:11px;font-weight:800}.online-join-card input:not([type]),.online-join-card input[type=text]{box-sizing:border-box;width:100%;min-height:44px;padding:8px 10px;border:1px solid #3d5b7c;border-radius:9px;background:#0e1828;color:#fff;font-size:15px}.online-join-card fieldset{margin:14px 0 9px;padding:0;border:0}.online-join-card legend{margin-bottom:7px;color:#bdcce0;font-size:11px;font-weight:800}.online-avatar-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.online-avatar-options label{position:relative;display:grid;place-items:center;min-height:76px;border:1px solid #334e6c;border-radius:9px;background:#192a40;cursor:pointer}.online-avatar-options input{position:absolute;opacity:0}.online-avatar-options img{width:56px;height:56px;object-fit:contain}.online-avatar-options span{position:absolute;right:4px;bottom:3px;color:#b9cbe1;font-size:8px}.online-avatar-options label:has(input:checked){border:3px solid #58bde9}.online-join-error{min-height:16px;margin:3px 0;color:#ffaaa2;font-size:10px}.online-join-card>button{width:100%;min-height:44px;border:1px solid #58d3ad;border-radius:10px;background:#1f715f;color:#e5fff7;font-weight:800}@media (min-width:431px){.online-world-shell{border-inline:1px solid #1c2d49}}@media (max-width:350px){.online-world-controls{grid-template-columns:88px 1fr}.online-world-joystick{width:82px;height:82px}.online-world-player{width:var(--unity-world-avatar-size,28px);height:calc(var(--unity-world-avatar-size,28px) * 1.08)}}