@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:Manrope,DM Sans,system-ui,sans-serif;color:#f7f4ec;background:#192a32;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;overflow:hidden;width:100%;height:100%;touch-action:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #fbd38a;outline-offset:3px}#world{display:block;width:100vw;height:100dvh;background:linear-gradient(#82b5c6,#d3d3aa)}.shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(3,26,34,.45),transparent 29%,transparent 72%,rgba(4,28,30,.4));z-index:2}.topbar{position:fixed;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:25px clamp(19px,4vw,70px)}.mark{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none}.sigil{width:37px;height:37px;border:1px solid #d5d6afaa;border-radius:12px;display:grid;place-items:center;color:#e7e7b2;transform:rotate(-8deg);background:#284a48aa;box-shadow:0 0 20px #d4e2bb22}.sigil span{font-size:23px;transform:rotate(8deg)}.brand{font-size:14px;font-weight:800;letter-spacing:.2em;line-height:1.35}.brand b{font-weight:500;color:#eacfa2}.brand small{display:block;font-size:7px;font-weight:600;letter-spacing:.3em;color:#eaecc6a8}.topright{display:flex;align-items:center;gap:13px}.live{border:1px solid #ffffff55;background:#0c353d77;border-radius:80px;padding:9px 13px;font-size:9px;font-weight:800;letter-spacing:.17em;backdrop-filter:blur(12px)}.live i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#bcf8b0;margin-right:6px;box-shadow:0 0 7px #9cf3c6}.iconbutton{width:32px;height:32px;border-radius:50%;background:#18373977;color:white;border:1px solid #fff8;font-weight:700}.intro{position:fixed;z-index:4;top:50%;left:clamp(24px,9vw,140px);transform:translateY(-42%);width:min(475px,calc(100vw - 50px));transition:opacity .4s,transform .4s}.intro.hide{opacity:0;pointer-events:none;transform:translate(-30px,-42%)}.eyebrow,.smallcap{font-size:10px;letter-spacing:.28em;font-weight:800;color:#e6d2a7}.intro h1{font-size:clamp(59px,7.1vw,105px);font-weight:600;line-height:.99;letter-spacing:-.075em;margin:22px 0 24px;text-shadow:0 2px 30px #112c3c44}.intro h1 i{font-family:Georgia,serif;font-weight:400;letter-spacing:-.078em;color:#f1d5ac}.intro p{font-size:14px;line-height:1.85;color:#fbfff1df;max-width:360px;text-shadow:0 1px 10px #244}.primary{border:0;background:#f6e7c6;color:#233c3b;padding:17px 24px;border-radius:9px;font-size:12px;font-weight:800;letter-spacing:.04em;box-shadow:0 8px 35px #07151b3d;margin-top:20px}.primary span{margin-left:20px}.primary:hover{background:#fff7e7}.hint{color:#e7ecd0ac;font-size:10px;letter-spacing:.05em;margin-top:22px}.hint span{padding:0 5px}.hidden{display:none!important}.hud{position:fixed;inset:0;pointer-events:none;z-index:4}.location{position:absolute;left:clamp(22px,4vw,70px);top:93px;display:flex;flex-direction:column;gap:5px;text-shadow:0 2px 15px #0007}.location strong{font-family:Georgia,serif;font-size:22px;font-weight:400}.location #weather{font-size:10px;color:#fdf7e2aa}.compass{position:absolute;right:clamp(22px,4vw,70px);top:100px;width:45px;height:45px;border-radius:50%;border:1px solid #f6f0d7a6;display:grid;place-items:center;font-family:Georgia,serif;color:#f8ebcf;background:#102d3277}.crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff7;line-height:1;font-size:22px}.bottom{position:absolute;bottom:27px;left:clamp(20px,4vw,70px);right:clamp(20px,4vw,70px);display:flex;align-items:end;justify-content:space-between;gap:14px}.notice{font-size:12px;max-width:360px;color:#f6f9e8;text-shadow:0 2px 8px #000c;background:#16343b91;border:1px solid #ffffff2f;border-radius:11px;padding:14px 17px;backdrop-filter:blur(10px)}.notice .spark{color:#f9d895;font-size:17px;margin-right:7px}.actions{pointer-events:auto;display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.actions button{padding:14px 17px;background:#15383cbb;border:1px solid #ffffff6c;border-radius:9px;color:#fffefa;font-size:11px;font-weight:700;backdrop-filter:blur(12px)}.actions button:hover{background:#3b6968bb}.actions kbd{font-size:9px;margin-left:7px;color:#d5d9b8;border:1px solid #ffffff46;padding:3px 5px;border-radius:4px}.editor{position:fixed;z-index:8;right:20px;top:90px;bottom:21px;overflow:auto;width:min(420px,calc(100vw - 40px));padding:28px;background:#f8f4e9f2;color:#294340;border-radius:18px;box-shadow:0 20px 80px #061f2b83;backdrop-filter:blur(25px);touch-action:pan-y}.editor-head{display:flex;justify-content:space-between;align-items:start}.editor .smallcap,.modal .smallcap{color:#698078}.editor h2,.modal h2{font-family:Georgia,serif;font-weight:400;font-size:35px;letter-spacing:-.04em;margin:9px 0 10px}.close{background:#e3e9df;color:#36524d;border:0;border-radius:50%;width:32px;height:32px;font-size:23px}.editor p,.modal p{font-size:12px;line-height:1.8;color:#5d716d}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0}.chips button{border:1px solid #cfd7c9;background:white;border-radius:30px;padding:10px 13px;font-size:11px;color:#3f6760}.chips button:hover{background:#e5ede5}.editor label:not(.upload){display:block;font-size:9px;letter-spacing:.15em;font-weight:800;margin:20px 0 9px}.formrow{display:flex;gap:6px}.formrow input{min-width:0;flex:1;border:1px solid #cbd6cc;background:white;padding:14px 10px;border-radius:8px;font-size:11px;color:#26413e}.formrow button{background:#274e47;color:white;border:0;border-radius:8px;font-weight:700;font-size:11px;padding:0 15px}.editor output{font-size:11px;color:#43796a;display:block;min-height:43px;padding-top:14px}.tools{display:flex;gap:10px;border-top:1px solid #d2d9d1;padding-top:19px;margin-top:15px}.tools button,.upload{font-size:10px;border:1px solid #cbd5cd;background:transparent;padding:12px;border-radius:8px;color:#36564b;cursor:pointer}.disclaimer{display:block;margin-top:18px;color:#758780;font-size:10px;line-height:1.7}.modal{position:fixed;inset:0;z-index:12;background:#0b2429a1;display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}.modalbox{position:relative;background:#f5f3e9;color:#23443d;padding:36px;max-width:480px;border-radius:18px}.modalbox .close{position:absolute;right:18px;top:18px}.modalbox .primary{margin-top:8px}.joystick{position:fixed;left:22px;bottom:120px;z-index:5;width:112px;height:112px;border-radius:50%;border:2px solid #f5efd67d;background:#17343c59;backdrop-filter:blur(5px);touch-action:none}.joystick div{position:absolute;left:36px;top:36px;width:40px;height:40px;border-radius:50%;background:#e7dcc2b6;box-shadow:0 0 20px #fff3}.touchhint{position:fixed;bottom:161px;right:25px;z-index:5;font-size:10px;color:#fff9;text-shadow:0 1px 9px #0008}.metrics{position:fixed;z-index:6;left:10px;bottom:4px;color:#fff6;font:9px monospace;pointer-events:none}@media(max-width:700px){.topbar{padding:18px 20px}.brand{font-size:11px;letter-spacing:.16em}.brand small{font-size:6px}.sigil{width:31px;height:31px}.live{font-size:8px}.intro{top:42%;transform:translateY(-30%)}.intro h1{font-size:62px}.intro p{font-size:12px;max-width:290px}.location{top:78px}.location strong{font-size:18px}.compass{top:82px;right:24px;width:38px;height:38px}.bottom{bottom:26px;left:17px;right:17px;align-items:end;flex-direction:column}.notice{align-self:flex-start;font-size:10px;padding:10px;max-width:55%;margin-bottom:12px}.actions button{font-size:10px;padding:12px 10px}.actions kbd{display:none}.editor{top:65px;right:9px;bottom:10px;width:calc(100vw - 18px);padding:22px}.joystick{bottom:121px;left:19px;width:96px;height:96px}.joystick div{left:28px;top:28px}.touchhint{bottom:145px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.quality{border-top:1px solid #d2d9d1;margin-top:15px;padding-top:5px;display:grid;gap:5px}.quality select{background:#fff;color:#26413e;border:1px solid #cbd6cc;border-radius:8px;font:600 12px Manrope,system-ui;padding:11px;width:100%;touch-action:manipulation}.quality span{color:#758780;font-size:10px;line-height:1.6}

/* Mobile builder is a safe-area-aware bottom sheet, not a full-screen obstructive sidebar. */
.sheet-handle{display:none}
@media(max-width:700px){
 .editor{top:auto;right:0;left:0;bottom:var(--keyboard-bottom,0px);height:min(76dvh,calc(100dvh - var(--keyboard-bottom,0px) - 12px));max-height:none;width:100%;padding:8px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:23px 23px 0 0;box-shadow:0 -13px 65px #061f2b77;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .sheet-handle{display:block;width:40px;height:5px;background:#9eada4;border-radius:99px;margin:5px auto 10px}
 .editor-head{position:sticky;top:-8px;z-index:2;align-items:center;background:#f8f4e9;padding:8px 0 10px}
 .editor h2{font-size:27px;margin:6px 0}
 .editor .close{min-width:44px;min-height:44px;flex-shrink:0}
 .editor p{margin:8px 0 10px}
 .editor .chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 20px}
 .editor .chips button{min-height:46px;padding:9px 6px;line-height:1.3;font-size:12px;border-radius:11px}
 .editor .formrow{display:flex;gap:7px}
 .editor .formrow input{font-size:16px;min-height:48px}
 .editor .formrow button{min-width:90px;min-height:48px}
 .editor .tools{display:grid;grid-template-columns:1fr 1fr}
 .editor .tools button,.editor .tools .upload{min-height:46px;display:flex;align-items:center;justify-content:center;text-align:center}
 .editor .quality select{font-size:16px;min-height:46px}
 .editor .disclaimer{padding-bottom:20px}
}
@media(max-width:360px){
 .editor{padding-left:14px;padding-right:14px}
 .editor .chips{gap:6px}
 .editor .formrow button{min-width:78px}
 .editor h2{font-size:24px}
}

/* World link invitation keeps imported scenes read-only until visitors explicitly save. */
.share-invite{position:fixed;inset:0;z-index:20;background:#071b22b8;display:grid;place-items:center;padding:20px;backdrop-filter:blur(12px)}
.share-invite-card{width:min(440px,100%);background:#f8f4e9;color:#28443e;border-radius:22px;padding:32px;box-shadow:0 25px 90px #0017}
.share-invite-card .smallcap{color:#758a7d}
.share-invite-card h2{font:400 35px/1.1 Georgia,serif;letter-spacing:-.045em;margin:16px 0}
.share-invite-card p{font-size:13px;line-height:1.8;color:#60736a}
.share-invite-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:12px}
.share-invite-actions .primary{margin:0}
.share-invite-actions .secondary{border:1px solid #cad6c9;background:transparent;color:#28504b;border-radius:9px;padding:17px;font-size:12px;font-weight:700;min-height:48px}
@media(max-width:700px){.share-invite-card{padding:25px}.share-invite-card h2{font-size:29px}.share-invite-actions{flex-direction:column;align-items:stretch}.share-invite-actions button{width:100%}}

.cloud-status{margin-top:12px;color:#60756e;background:#e7eee4;border:1px solid #d1ddcf;border-radius:9px;padding:11px;font-size:10px;line-height:1.6}
.editor .tools button#publishOnline{background:#294d44;color:#fff;border-color:#294d44;font-weight:800}
.editor .tools button#publishOnline:disabled{opacity:.55;cursor:wait}
@media(max-width:700px){.editor .tools{grid-template-columns:repeat(2,minmax(0,1fr))}.editor .tools #publishOnline{grid-column:span 2}}

.editor .tools button#unpublishOnline{border:1px solid #ba9f96;color:#86514b;background:#fff6f1;font-weight:700}
.editor .tools button#unpublishOnline:disabled{opacity:.55;cursor:wait}
@media(max-width:700px){.editor .tools #unpublishOnline{grid-column:span 2;min-height:46px}}
