html,body{background:#1b1d22;height:100%;margin:0;font-family:system-ui,Microsoft JhengHei,sans-serif;overflow:hidden}#scene{touch-action:none;width:100vw;height:100vh;display:block}body:not(.touch) .touch-only,body.touch .desktop-only{display:none}#joystick{z-index:5;touch-action:none;background:#ffffff2e;border:2px solid #ffffff73;border-radius:50%;width:120px;height:120px;position:fixed;bottom:24px;left:24px}#joystick-knob{pointer-events:none;background:#ffffffd9;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0000004d}#joystick.active{background:#ffffff4d}body:not(.joystick-on) #joystick,body:not(.visiting) #joystick{display:none}#joystick-toggle{z-index:5;border:2px solid var(--ui-yellow,#ffd166);color:#3b4a6b;cursor:pointer;opacity:.75;background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:fixed;bottom:16px;left:16px}#joystick-toggle:hover{opacity:1}#joystick-toggle.active{background:var(--ui-yellow,#ffd166);opacity:1}#joystick-toggle svg{width:22px;height:22px}#action-buttons{--action-size:58px;z-index:5;width:calc(var(--radius) * 2 + var(--action-size));height:calc(var(--radius) * 2 + var(--action-size));pointer-events:none;position:fixed;bottom:18px;right:18px}body.touch #action-buttons{--action-size:clamp(48px, 13vh, 64px)}body:not(.joystick-on) #action-buttons,body:not(.visiting) #action-buttons{display:none}#action-buttons button{width:var(--action-size);height:var(--action-size);color:#a3a8b0;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#ffffffd9;border:3px solid #ffd166e6;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;box-shadow:0 2px 8px #00000040}#action-buttons svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:48%;height:48%}#action-buttons button:active,#action-buttons button.pressed{filter:brightness(.92);transform:scale(.9)}#action-buttons button.active{background:var(--ui-yellow,#ffd166);color:#fff}#action-buttons{--radius:calc(var(--action-size) * .95)}#action-buttons button{left:calc(50% + cos(var(--angle)) * var(--radius) - var(--action-size) / 2);top:calc(50% - sin(var(--angle)) * var(--radius) - var(--action-size) / 2)}#companion-button{--angle:90deg}#jump-button{--angle:-90deg}#run-button{--angle:0deg}#ball-button{--angle:180deg}body.touch #action-buttons{--radius:calc(var(--action-size) * 1.05)}body.touch #companion-button{--angle:90deg}body.touch #jump-button{--angle:-54deg}body.touch #run-button{--angle:18deg}body.touch #ball-button{--angle:-126deg}body.touch #view-button{--angle:162deg}body:not(.touch) #view-button,body:not(.visiting) #joystick-toggle{display:none}#joystick{left:76px}body #edit-hint{left:72px}body.joystick-on #edit-hint{left:212px}#rotate-hint{z-index:100;color:#f5f1ea;text-align:center;background:#1b1d22;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:none;position:fixed;inset:0}#rotate-hint svg{width:72px;height:72px;animation:1.6s ease-in-out infinite rotate-phone}#rotate-hint b{font-size:20px}#rotate-hint span{color:#b9b3a8;font-size:14px}@keyframes rotate-phone{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media (orientation:portrait){body.touch #rotate-hint{display:flex}}#overlay{box-sizing:border-box;cursor:pointer;background:#0a0c1099;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#overlay.hidden{display:none}.panel{color:#2b2a28;text-align:center;background:#f5f1ea;border-radius:14px;max-width:360px;padding:28px 32px}.panel h1{margin:0 0 8px;font-size:26px}.panel .space-description{color:#5c574f;text-align:left;white-space:pre-line;margin:0 0 14px;font-size:14px;line-height:1.6}.panel .start-hint{color:#8a5a2b;margin:0 0 16px;font-weight:700}.panel ul{text-align:left;margin:0;padding:0;line-height:1.9;list-style:none}#toolbar{z-index:10;gap:8px;display:flex;position:fixed;top:16px;right:16px}#toolbar button{color:#2b2a28;cursor:pointer;background:#ffffffd9;border:none;border-radius:18px;padding:8px 16px;font-size:14px;box-shadow:0 2px 8px #00000040}#toolbar button:hover{filter:brightness(1.08)}#toolbar button:disabled{opacity:.45;cursor:default;filter:none}#progress{z-index:20;box-sizing:border-box;color:#fff;pointer-events:none;background:#2b2a28e0;border-radius:14px;width:min(360px,100vw - 32px);padding:10px 14px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}#progress.hidden{display:none}.progress-text{justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.progress-text span:first-child{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.progress-track{background:#fff3;border-radius:3px;height:6px;overflow:hidden}#progress-bar{background:#f2b35e;border-radius:3px;height:100%;transition:width .2s}#progress.unknown #progress-bar{background:repeating-linear-gradient(-45deg,#f2b35e 0 8px,#d9953f 8px 16px) 0 0/23px 100%;animation:.6s linear infinite progress-stripes}@keyframes progress-stripes{to{background-position:23px 0}}#message{z-index:10;color:#fff;pointer-events:none;background:#2b2a28d9;border-radius:18px;max-width:min(40vw,320px);padding:8px 18px;font-size:14px;position:fixed;top:16px;left:16px}#message.hidden{display:none}body:not(.editing) .edit-only{display:none}body.editing #edit-button{color:#fff;background:#8a5a2b}#edit-hint{z-index:10;color:#fff;pointer-events:none;background:#8a5a2bd9;border-radius:14px;padding:6px 14px;font-size:13px;position:fixed;bottom:16px;left:16px}#edit-panel{z-index:10;box-sizing:border-box;background:#ffffffd9;border-radius:20px;flex-direction:column;align-items:center;gap:6px;max-width:calc(100vw - 32px);padding:8px 10px;display:flex;position:fixed;top:64px;right:16px;box-shadow:0 4px 14px #00000040}#edit-panel.hidden{display:none}#edit-panel button{color:#2b2a28;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:14px;padding:6px 14px;font-size:14px}#edit-panel button:hover{background:#0000000f}#edit-panel button.active{color:#fff;background:#8a5a2b}.edit-tools{gap:6px;display:flex}#edit-panel #delete-button:hover{background:#b03a2e1a}.side-panel{z-index:10;box-sizing:border-box;color:#2b2a28;background:#ffffffeb;border-radius:16px;flex-direction:column;gap:10px;width:min(320px,100vw - 32px);padding:12px 14px;display:flex;position:fixed;top:64px;right:16px;box-shadow:0 4px 14px #00000040}.side-panel.hidden{display:none}.env-row{flex-direction:column;gap:6px;font-size:12px;display:flex}.env-options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.env-options button{color:#2b2a28;cursor:pointer;background:#f5f1ea;border:2px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.env-options button.active{background:#fff;border-color:#8a5a2b}.env-swatch{border-radius:6px;width:22px;height:22px;box-shadow:inset 0 0 0 1px #00000026}#space-panel{max-height:calc(100vh - 140px);overflow-y:auto}#env-panel{max-height:calc(100vh - 140px);left:16px;right:auto;overflow-y:auto}.guide-settings{border-top:1px solid #e6e0d6;flex-direction:column;gap:8px;padding-top:10px;font-size:13px;display:flex}.guide-avatars{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.guide-avatars button{color:#2b2a28;cursor:pointer;background:#f5f1ea;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;font-size:11px;display:flex}.guide-avatars button svg{width:44px;height:44px}.guide-avatars button.active{background:#fff;border-color:#8a5a2b}.guide-settings select{min-width:0;font:inherit;border:1px solid #d6cfc4;border-radius:6px;flex:1;padding:3px 4px}.guide-settings .light-row span{color:#8a8478;font-size:11px}.side-panel.objects-panel{width:min(300px,100vw - 32px);max-height:calc(100vh - 140px);left:16px;right:auto}.objects-list{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.objects-heading{color:#8a5a2b;margin-top:6px;padding:2px 4px;font-size:12px;font-weight:700}.objects-empty{color:#b0a99c;padding:2px 8px;font-size:12px}.objects-row{border-radius:8px;align-items:center;display:flex}.objects-row:hover{background:#0000000d}.objects-row.is-hidden .objects-name{opacity:.45}.objects-name{color:#2b2a28;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:none;flex:1;min-width:0;padding:4px 8px;font-size:13px;overflow:hidden}.objects-row .icon-button{width:26px;height:26px;font-size:13px}.objects-row .icon-button.off{opacity:.3}.icon-spacer{flex:none;width:26px}.objects-row .icon-button svg.line-icon{color:#555;width:14px;height:14px}.light-row{align-items:center;gap:6px;font-size:12px;display:flex}.light-row span{margin-right:auto}.light-row small{color:#8a8478}.light-row input[type=color]{cursor:pointer;background:0 0;border:1px solid #d6cfc4;border-radius:6px;width:32px;height:24px;padding:0}.color-row label{align-items:center;gap:3px;display:flex}.light-row input[type=range]{width:110px}.spawn-row{align-items:center;gap:6px;font-size:12px;display:flex}.spawn-row span{margin-right:auto}.spawn-row button,.light-row button{white-space:nowrap;color:#2b2a28;cursor:pointer;background:#fff;border:1px solid #d6cfc4;border-radius:12px;padding:4px 10px;font-size:12px}.light-row button:disabled{opacity:.45;cursor:default}.side-panel-header{justify-content:space-between;align-items:center;font-size:14px;display:flex}.edit-info{color:#2b2a28;flex-direction:column;gap:6px;width:100%;font-size:12px;display:flex}.edit-info label{align-items:flex-start;gap:6px;display:flex}.edit-info input,.edit-info textarea{font:inherit;resize:none;border:1px solid #d6cfc4;border-radius:6px;flex:1;padding:4px 6px}.edit-light label{align-items:center}.edit-light input[type=range]{flex:1}.edit-light input[type=color]{flex:none;width:40px;height:24px;padding:0}#edit-panel [hidden]{display:none}.edit-fields{color:#2b2a28;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.edit-fields label{white-space:nowrap;align-items:center;gap:3px;display:flex}.edit-fields label[hidden]{display:none}.edit-fields input{border:1px solid #d6cfc4;border-radius:6px;width:54px;padding:2px 4px;font-size:12px}#info{z-index:4;color:#2b2a28;position:fixed;top:0;left:0}#info .guide{display:none}#companion-name{z-index:3;background:var(--ui-orange,#ff8a65);color:#fff;white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;position:fixed;top:0;left:0}#companion-name.hidden,#info.hidden{display:none}@keyframes pop-in{0%{opacity:0;transform:translateY(16px)scale(.95)}}.guide{text-align:center;flex-shrink:0}.guide-face{filter:drop-shadow(0 4px 8px #00000059);width:96px;height:96px;display:block}.guide-face svg{width:100%;height:100%;display:block}.guide-name{color:#fff;background:#2b2a28;border-radius:10px;margin-top:4px;padding:2px 8px;font-size:12px}.guide-mouth{transform-box:fill-box;transform-origin:50%}#info.talking .guide-mouth{animation:.22s infinite alternate talk}#info.talking .guide-face{animation:.6s ease-in-out infinite alternate bob}@keyframes talk{to{transform:scaleY(2.4)}}@keyframes bob{to{transform:translateY(-3px)rotate(-2deg)}}.bubble{transform-origin:50% 100%;box-sizing:border-box;--bubble-color:#ffffff4d;background:var(--bubble-color);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:22px;width:min(340px,42vw);min-width:220px;margin-bottom:30px;padding:12px 20px;animation:.25s ease-out pop-in;position:relative}.bubble-tail{left:var(--tail-left,calc(50% - 18px));width:36px;height:var(--tail-length,30px);background:var(--bubble-color);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);clip-path:polygon(10% 0,38% 100%,90% 0);position:absolute;top:100%}.bubble h2:empty{display:none}.bubble h2:empty+p{padding-right:56px}.bubble h2{margin:0 0 4px;padding-right:64px;font-size:19px}.bubble p{margin:0;line-height:1.6}.bubble-buttons{gap:2px;display:flex;position:absolute;top:8px;right:12px}.icon-button{color:#2b2a28;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:flex}.icon-button:hover{background:#fff9}.icon-button svg{width:20px;height:20px}#info-voice .sound-off,#info-voice.off .sound-waves{display:none}#info-voice.off .sound-off{display:inline}:root{--ui-bg:#fffaf0;--ui-text:#3b4a6b;--ui-muted:#6b7aa0;--ui-yellow:#ffd166;--ui-yellow-text:#5a3d00;--ui-orange:#ff8a65;--ui-line:#f3e3b8;--ui-navy:#3b4a6b;--ui-radius:22px}#overlay{background:#2834548c}.panel{border:3px solid var(--ui-yellow);background:var(--ui-bg);color:var(--ui-text);border-radius:26px}.panel h1{color:var(--ui-text)}.panel .space-description{color:var(--ui-muted)}.panel .start-hint{background:var(--ui-orange);color:#fff;border-radius:999px;padding:8px 24px;display:inline-block}.panel ul b{color:var(--ui-text)}#toolbar button{border:2px solid var(--ui-yellow);color:var(--ui-text);background:#fff;border-radius:999px;box-shadow:0 2px 8px #28345433}#toolbar #edit-button{background:var(--ui-yellow);color:var(--ui-yellow-text)}body.editing #toolbar #edit-button{border-color:var(--ui-orange);background:var(--ui-orange);color:#fff}#toolbar button:hover{filter:none;transform:translateY(-1px)}#toolbar button:disabled{transform:none}#message{background:var(--ui-navy);border-radius:999px}#message.success{background:#4caf82}#message.error{background:#e5604f}#edit-hint{background:var(--ui-yellow);color:var(--ui-yellow-text);border-radius:999px}#progress{border-radius:var(--ui-radius);background:#283454eb}#progress-bar{background:var(--ui-yellow)}#edit-panel,.side-panel{border:3px solid var(--ui-yellow);border-radius:var(--ui-radius);background:var(--ui-bg);color:var(--ui-text);box-shadow:0 6px 18px #28345440}#edit-panel button{color:var(--ui-text);border-radius:999px}#edit-panel button.active{background:var(--ui-orange);color:#fff}#edit-panel #delete-button{color:#e5604f}.side-panel-header b{color:var(--ui-text);font-size:15px}.edit-info input,.edit-info textarea,.edit-fields input,.guide-settings select{border:2px solid var(--ui-line);color:var(--ui-text);background:#fff;border-radius:12px}.edit-info input:focus,.edit-info textarea:focus,.edit-fields input:focus,.guide-settings select:focus{border-color:var(--ui-yellow);outline:none}.edit-info,.edit-fields,.light-row,.spawn-row,.env-row{color:var(--ui-text)}.spawn-row button,.light-row button{border:2px solid var(--ui-yellow);color:var(--ui-text);background:#fff;border-radius:999px}.spawn-row button:hover,.light-row button:hover{background:var(--ui-yellow)}.env-options button,.guide-avatars button{color:var(--ui-text);background:#fff;border-radius:16px}.env-options button.active,.guide-avatars button.active{border-color:var(--ui-orange);background:#fff4ec}.guide-settings{border-top:2px dashed var(--ui-line)}input[type=range]{accent-color:var(--ui-orange)}.objects-heading{color:var(--ui-orange)}.objects-name{color:var(--ui-text)}.objects-row{border-radius:12px}.objects-row.selected{background:#ffd16659}.guide-name{background:var(--ui-orange);border-radius:999px}.guide-face svg circle:first-child{stroke:var(--ui-yellow);stroke-width:3px}.bubble h2{color:var(--ui-text)}#joystick{border-color:#ffd166cc}#joystick-knob{background:var(--ui-yellow)}#rotate-hint{background:var(--ui-navy);color:var(--ui-bg)}#rotate-hint svg{color:var(--ui-yellow)}.chat-options{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chat-options:empty{display:none}.chat-options button{border:2px solid var(--ui-yellow);color:var(--ui-text);cursor:pointer;background:#fff;border-radius:999px;padding:4px 12px;font-size:13px}.chat-options button:hover{background:var(--ui-yellow)}.edit-platform[hidden],.platform-size[hidden]{display:none}.platform-head{color:var(--ui-text);justify-content:space-between;align-items:center;font-weight:700;display:flex}#edit-panel .platform-head button{border:2px solid var(--ui-yellow);color:var(--ui-text);cursor:pointer;background:#fff;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;line-height:1.4}#edit-panel .platform-head button:hover{background:var(--ui-yellow)}.platform-size input[type=color]{width:30px;height:22px;padding:0}.platform-size{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.platform-size label{white-space:nowrap;align-items:center}.platform-size input{flex:none;width:46px}#perf{z-index:30;color:#fff;white-space:pre;pointer-events:none;background:#2b2a28cc;border-radius:12px;margin:0;padding:8px 12px;font:12px/1.6 monospace;position:fixed;top:64px;right:16px}#perf[hidden],body.scene-open #style-row,body.scene-open .color-row,body:not(.scene-open) #size-row,body:not(.scene-open) .outdoor-row{display:none}.env-options button:disabled{opacity:.4;cursor:not-allowed}#cloud-count{border:2px solid var(--ui-line);border-radius:10px;width:52px;padding:2px 4px;font-size:12px}#left-bar{z-index:10;align-items:center;gap:8px;display:flex;position:fixed;top:16px;left:16px}#objects-button,#library-button,#env-button{border:2px solid var(--ui-yellow);color:var(--ui-text);cursor:pointer;background:#fff;border-radius:999px;padding:8px 16px;font-size:14px;box-shadow:0 2px 8px #28345433}#objects-button.active,#library-button.active,#env-button.active{background:var(--ui-yellow)}body #message{text-align:center;top:64px;left:50%;transform:translate(-50%)}#quality-bar,#quality-options{align-items:center;gap:4px;display:flex}.quality-label{color:#fff;text-shadow:0 1px 3px #00000073;margin-right:2px;font-size:14px;font-weight:700}#quality-bar button{border:2px solid var(--ui-yellow);color:var(--ui-text);cursor:pointer;background:#fff;border-radius:999px;padding:8px 11px;font-size:14px;box-shadow:0 2px 8px #28345433}#quality-bar button.active{background:var(--ui-yellow)}.library-tip{color:#8a8478;font-size:12px}.library-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:4px;display:grid}.library-grid button{color:#2b2a28;cursor:pointer;background:#fff;border:2px solid #ecdcc4;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:12px;display:flex}.library-grid button:hover{background:#fff7ec;border-color:#f0a04b}.library-icon{font-size:22px;line-height:1.2}.panel-tabs{border:2px solid var(--ui-yellow);background:#fff;border-radius:999px;gap:4px;padding:3px;display:flex}.panel-tabs button{color:var(--ui-text);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:5px 12px;font-size:14px}.panel-tabs button:hover{background:#fff7ec}.panel-tabs button.active{background:var(--ui-yellow);font-weight:700}.assets-view{flex-direction:column;gap:6px;min-height:0;display:flex;overflow-y:auto}.assets-view.hidden,.assets-empty.hidden,.objects-list.hidden{display:none}.assets-tools{align-items:center;gap:6px;margin:6px 0;display:flex}.assets-filters{flex-wrap:nowrap;flex:1;gap:4px;display:flex}.assets-filters button,#assets-upload{color:#2b2a28;cursor:pointer;background:#fff;border:2px solid #ecdcc4;border-radius:999px;padding:3px 8px;font-size:12px}.assets-filters button.active{background:var(--ui-yellow);border-color:#f0a04b}#assets-upload{border-color:#f0a04b;flex-shrink:0;font-weight:700}.assets-empty{color:#8a8478;text-align:center;padding:16px 4px;font-size:13px}.assets-list{grid-template-columns:repeat(2,1fr);align-content:start;gap:8px;display:grid}.asset-card{position:relative}.asset-card.busy{opacity:.5;pointer-events:none}.asset-pick{color:#2b2a28;cursor:pointer;background:#fff;border:2px solid #ecdcc4;border-radius:12px;flex-direction:column;align-items:center;gap:2px;width:100%;padding:6px;display:flex}.asset-pick:hover{background:#fff7ec;border-color:#f0a04b}.asset-thumb{aspect-ratio:1;object-fit:cover;background:#fff7ec;border-radius:8px;justify-content:center;align-items:center;width:100%;font-size:34px;display:flex}.asset-name{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:13px;font-weight:700;overflow:hidden}.asset-meta{color:#8a8478;font-size:11px}.asset-remove{cursor:pointer;opacity:.75;background:#ffffffe6;border:none;border-radius:50%;width:26px;height:26px;padding:0;font-size:13px;position:absolute;top:4px;right:4px}.asset-remove:hover{opacity:1;background:#ffe1d6}@media (width<=1000px){#left-bar{flex-wrap:wrap;max-width:400px}#quality-bar{flex-basis:100%}.side-panel.objects-panel,#env-panel{max-height:calc(100vh - 190px);top:116px}}#charge-bar{z-index:6;background:#00000040;border:2px solid #fff;border-radius:999px;width:180px;height:14px;position:fixed;bottom:90px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 8px #28345440}#charge-bar.hidden{display:none}#charge-bar div{background:var(--ui-yellow,#ffd166);border-radius:999px;width:0;height:100%}#charge-bar.full div{background:var(--ui-orange,#ff7a59)}body.gizmo-grab canvas{cursor:grab!important}body.gizmo-grabbing canvas{cursor:grabbing!important}#login-dialog{z-index:30;background:#1e1e2873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#login-dialog.hidden{display:none}.login-card{border:3px solid var(--ui-yellow,#ffd166);width:min(320px,100%);color:var(--ui-text,#2b2a28);background:#fffdf8;border-radius:18px;flex-direction:column;gap:10px;padding:20px;display:flex;box-shadow:0 8px 24px #2834544d}.login-card b{font-size:18px}.login-card p{color:#8a8478;margin:0;font-size:13px}.login-card label{flex-direction:column;gap:4px;font-size:13px;display:flex}.login-card input{font:inherit;border:1px solid #d6cfc4;border-radius:8px;padding:8px 10px}.login-error{color:#b03a2e;min-height:1em;font-size:13px}.login-buttons{justify-content:flex-end;gap:8px;display:flex}.login-buttons button{border:2px solid var(--ui-yellow,#ffd166);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:8px 18px}.login-buttons #login-submit{border-color:var(--ui-orange,#ff8a65);background:var(--ui-orange,#ff8a65);color:#fff}.login-buttons button:disabled{opacity:.6;cursor:wait}.cloud-row{background:#f5f1ea;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.cloud-row[hidden]{display:none}.cloud-row small{color:#8a8478}.cloud-row small.error{color:#b03a2e}.cloud-row button{font:inherit;cursor:pointer;background:#fff;border:1px solid #d6cfc4;border-radius:999px;flex-shrink:0;padding:4px 12px}.env-note{color:#8a8478;font-size:11px}@media (pointer:coarse),(height<=500px){.bubble{border-radius:16px;width:min(250px,36vw);min-width:170px;padding:7px 12px 8px;font-size:13px}.bubble h2{margin-bottom:2px;padding-right:56px;font-size:15px}.bubble p{scrollbar-width:thin;max-height:26vh;line-height:1.45;overflow-y:auto}.bubble-buttons{top:4px;right:6px}.bubble .icon-button{width:26px;height:26px}.chat-options button{padding:4px 10px;font-size:12px}}#share-dialog{z-index:30;background:#1e1e2873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#share-dialog.hidden{display:none}.share-card{width:min(560px,100%);max-height:calc(100vh - 32px)}.share-header{justify-content:space-between;align-items:center;display:flex}.share-image{border-radius:10px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 170px);margin:0 auto;display:block}.share-image:not([src]){aspect-ratio:1200/630;background:#e2ddd3;width:100%;max-height:calc(100vh - 170px)}.share-card .share-main{background:var(--ui-orange,#ff8a65);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:999px;padding:10px;font-size:16px;font-weight:700}.share-card .icon-button{width:32px;height:32px}#character-dialog{z-index:30;background:#1e1e2873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#character-dialog.hidden{display:none}.character-card{width:min(560px,100%);max-height:calc(100vh - 32px)}.character-card .icon-button{width:32px;height:32px}.character-list{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid;overflow-y:auto}.character-list button{color:inherit;font:inherit;cursor:pointer;background:#f5f1ea;border:3px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px 8px;display:flex}.character-list img{background:#fff7ec;border-radius:10px;width:80px;height:80px}.character-list b{font-size:14px}.character-list span{color:#8a8478;text-align:center;font-size:11px;line-height:1.3}.character-list button.active{border-color:var(--ui-orange,#ff8a65);background:#fff}.backup-row{background:#f5f1ea;border-radius:10px;flex-direction:column;gap:6px;padding:8px 10px;font-size:13px;display:flex}.backup-row small{color:#8a8478}.backup-buttons{gap:6px;display:flex}.backup-buttons button{font:inherit;cursor:pointer;background:#fff;border:1px solid #d6cfc4;border-radius:999px;flex:1;padding:5px 8px}.backup-buttons button:disabled{opacity:.6;cursor:wait}body.editing #tour-button{display:none}body.touring #tour-button{background:var(--ui-yellow,#ffd166)}#tour-bar{z-index:12;border:2px solid var(--ui-yellow,#ffd166);max-width:calc(100vw - 32px);color:var(--ui-text,#2b2a28);background:#ffffffeb;border-radius:999px;align-items:center;gap:6px;padding:6px 8px 6px 14px;font-size:13px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #28345433}#tour-bar.hidden{display:none}#tour-status{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:70px;overflow:hidden}#tour-bar button{color:inherit;font:inherit;cursor:pointer;background:#fff;border:1px solid #d6cfc4;border-radius:999px;flex-shrink:0;padding:4px 10px}@media (height<=500px){#tour-bar{gap:4px;max-width:calc(100vw - 340px);padding:4px 6px 4px 10px;font-size:12px;bottom:10px}#tour-bar button{padding:3px 7px}}.tour-route{flex-direction:column;gap:2px;margin-bottom:4px;display:flex}.tour-handle{color:#b0a99c;text-align:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;width:22px;font-size:16px}.tour-number{color:#8a5a2b;text-align:center;flex-shrink:0;min-width:18px;font-size:12px;font-weight:700}.tour-route-row.dragging{cursor:grabbing;background:#ffd16659;box-shadow:0 2px 8px #28345433}
