:root{--ink:#303b42;--green:#31795e;--lime:#dbea9c;--cream:#faf7ef;--muted:#77817c;--pink:#f4c2b7}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Trebuchet MS,Arial,sans-serif}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #dc884b;outline-offset:4px}button:disabled{opacity:.45;cursor:default}header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid #e6e4d9}.brand{font-size:31px;letter-spacing:-2px;font-weight:900;text-decoration:none;color:var(--green)}.brand span{color:#dc8954}.brand i{font-style:normal;color:#deaf4c;font-size:25px;margin-left:5px}.tagline{font-size:13px;color:var(--muted)}.quiet{background:transparent;color:var(--ink);padding:12px 16px;border:1px solid #dedfd4;border-radius:30px;font-size:13px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:bold;color:var(--green)}h1{font-size:clamp(32px,4vw,57px);letter-spacing:-2px;line-height:1.08;margin:16px 0}h2{font-size:29px;letter-spacing:-1px}p{color:var(--muted);line-height:1.6}.primary{background:var(--green);color:white;padding:17px 25px;border-radius:16px;font-weight:bold;box-shadow:0 4px 0 #22563f}.primary:hover{background:#256b50}.secondary{background:#eeeede;padding:14px 20px;border-radius:14px;color:var(--ink)}.creator{max-width:1280px;margin:40px auto;padding:0 4%;display:grid;grid-template-columns:1fr 1.05fr;gap:64px}.intro p{max-width:420px}.steps{display:flex;gap:20px;margin-top:23px;color:#8b9289;font-size:12px}.steps .active{color:var(--green);font-weight:bold}.preview{position:relative;background:#e4ebd8;border-radius:130px 130px 28px 28px;min-height:510px;display:flex;align-items:center;justify-content:center;overflow:hidden}.preview:before{content:'';position:absolute;width:320px;height:320px;border-radius:50%;background:#f5f3d4;top:45px}.preview:after{content:'';position:absolute;width:380px;height:50px;background:#c8d8b8;border-radius:50%;bottom:27px}.preview svg{height:355px;z-index:1;filter:drop-shadow(0 15px 8px #9cb19c66)}.preview-label{position:absolute;bottom:20px;left:20px;z-index:2;font-size:12px;background:#fff9;padding:10px 15px;border-radius:30px}.spark{position:absolute;top:80px;right:35px;font-size:38px;color:#e4ae46}.creator-right{padding-top:15px}.editor{margin-top:28px}.field{margin-bottom:23px}.field label,.field-title{display:block;font-size:13px;font-weight:bold;margin-bottom:10px}.name-input{padding:14px 16px;border:1px solid #d9dfd1;border-radius:13px;background:white;width:100%;color:var(--ink)}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{height:35px;width:35px;border-radius:50%;background:var(--c);border:3px solid var(--cream);outline:1px solid #dadcd1}.swatch.selected{outline:3px solid var(--green);outline-offset:2px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eeeee1;padding:11px 17px;border-radius:12px;color:#697267;font-size:13px}.chip.selected{background:var(--green);color:white}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.start{width:100%;margin-top:12px}.footnote{font-size:11px;text-align:center;margin:20px 0}.shell{max-width:1400px;margin:24px auto;padding:0 4%}.world-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.world-top h1{font-size:29px;margin:7px 0;letter-spacing:-1px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar button{background:white;border:1px solid #e1e4d9;border-radius:13px;padding:12px 16px}.toolbar button.on{background:var(--green);color:white}.scene-wrap{position:relative;border-radius:25px;overflow:hidden;border:7px solid white;box-shadow:0 12px 40px #343e3310;background:#e6ead4}.scene{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;touch-action:none;isolation:isolate}.scene>svg{position:absolute;inset:0;width:100%;height:100%}.avatar{position:absolute;width:11%;height:41%;transform:translate(-50%,-100%);touch-action:none;cursor:grab;z-index:10;filter:drop-shadow(0 7px 3px #31302c35)}.avatar svg{width:100%;height:100%;overflow:visible}.avatar.air{transform:translate(-50%,-100%) rotate(-7deg)}.avatar.sit{height:33%}.avatar.sleep{transform:translate(-50%,-100%) rotate(85deg);height:34%}.speech{position:absolute;bottom:102%;left:50%;transform:translateX(-50%);padding:9px 13px;background:white;border:2px solid #e5e9dc;border-radius:16px;white-space:nowrap;font-size:clamp(10px,1vw,16px);color:var(--ink);filter:none}.hotspot{position:absolute;transform:translate(-50%,-50%);background:transparent;border:2px solid transparent;border-radius:15px;z-index:5;color:transparent}.hotspot:hover,.hotspot:focus-visible{background:#fff4;border:2px dashed #31795e;color:var(--ink)}.hotspot span{background:#fffffff0;border-radius:10px;padding:5px 9px;font-size:12px;display:inline-block}.scene-hint{position:absolute;bottom:16px;left:18px;z-index:20;background:#ffffffe8;border-radius:30px;padding:11px 15px;font-size:12px;pointer-events:none}.scene-nav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:15px}.scene-nav p{font-size:12px;margin:0}.chat-row{display:flex;gap:7px;flex-wrap:wrap}.chat-row button{background:#fff;border:1px solid #e3e5d9;border-radius:20px;padding:10px 14px;font-size:12px}.map-header{text-align:center;margin:35px 0 26px}.map-header h1{font-size:44px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.place{border-radius:23px;background:white;text-align:left;padding:0;overflow:hidden;border:1px solid #e9e9dc;transition:transform .2s}.place:hover{transform:translateY(-5px)}.place-art{height:180px;background:var(--bg);position:relative;display:flex;align-items:center;justify-content:center}.place-art svg{width:90%;height:100%}.place-details{padding:19px 21px;display:flex;justify-content:space-between;align-items:center}.place-details strong{display:block;font-size:18px}.place-details small{display:block;color:var(--muted);margin-top:6px}.arrow{border-radius:50%;background:#f0f3e3;width:35px;height:35px;display:grid;place-items:center}.badge{position:absolute;top:13px;left:15px;font-size:10px;letter-spacing:1px;background:#fff9;border-radius:20px;padding:7px 10px}.map-footer{display:flex;justify-content:space-between;align-items:center;margin-top:25px;font-size:12px;color:var(--muted)}dialog{border:none;border-radius:25px;padding:30px;width:min(510px,92vw);color:var(--ink);background:var(--cream);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#243a3970;backdrop-filter:blur(5px)}.close{position:absolute;top:15px;right:16px;font-size:25px;background:transparent;color:var(--muted)}dialog h2{margin:10px 0 17px}dialog .actions{display:flex;flex-wrap:wrap;gap:10px}.actions button{background:white;border:1px solid #d9dfd1;padding:15px;border-radius:13px;flex:1}.dialog-avatar{height:180px;text-align:center}.dialog-avatar svg{height:100%}.decor-section{margin:20px 0}.item{position:absolute;z-index:8;font-size:clamp(22px,4vw,50px);transform:translate(-50%,-100%);cursor:grab;touch-action:none;background:transparent;padding:0}.held{position:absolute;font-size:clamp(15px,2.5vw,30px);left:65%;top:56%;z-index:11}.snow{position:absolute;inset:0;pointer-events:none;z-index:25;background-image:radial-gradient(white 2px,transparent 3px),radial-gradient(white 3px,transparent 4px);background-size:60px 75px,95px 110px;animation:snow 5s linear infinite}@keyframes snow{to{background-position:60px 150px,95px 220px}}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:15px;padding:13px 20px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s;font-size:13px;max-width:90%;text-align:center}#toast.show{opacity:1}.mini-note{font-size:12px;color:var(--muted)}.checkline{display:flex;align-items:center;gap:10px;margin:12px 0}.sun{color:#d5a04f}.map-view{background:#eef1e6;border-radius:25px;padding:10px 30px 28px}.roomtabs{display:flex;gap:6px;margin-bottom:13px;flex-wrap:wrap}.roomtabs button{padding:12px 20px;border-radius:13px;background:#e9eddf;color:var(--ink)}.roomtabs button.selected{background:var(--green);color:white}footer{text-align:center;margin:32px 0;color:#9a9e92;font-size:11px;letter-spacing:1px}@media(max-width:800px){header{height:75px;padding:0 5%}.tagline{display:none}.creator{gap:25px;margin-top:25px}.preview{min-height:440px}.preview svg{height:300px}.editor-grid{grid-template-columns:1fr}.creator h1{font-size:35px}.map-grid{grid-template-columns:repeat(2,1fr)}.world-top{align-items:flex-start}.toolbar button{padding:10px;font-size:12px}.scene-hint{font-size:9px;padding:7px;bottom:8px;left:8px}.scene-nav{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.creator{grid-template-columns:1fr;gap:15px}.creator-right{padding:0}.preview{min-height:330px;border-radius:90px 90px 20px 20px}.preview svg{height:280px}.preview:before{width:260px;height:260px;top:20px}.intro h1{font-size:36px;margin:10px 0}.intro p{font-size:13px;margin-bottom:12px}.steps{margin-top:12px;margin-bottom:20px}.editor-grid{grid-template-columns:1fr 1fr}.map-grid{gap:10px}.place-art{height:130px}.place-details{padding:13px}.place-details strong{font-size:15px}.place-details small{font-size:11px}.map-view{padding:8px 12px 18px}.map-header h1{font-size:32px}.world-top{flex-direction:column}.scene{aspect-ratio:4/3}.roomtabs button{padding:10px 12px;font-size:12px}.shell{padding:0 3%}.scene-hint{max-width:65%}.map-footer{gap:10px;font-size:10px}.quiet{font-size:11px}}
/* Keep object targets aligned with the scene and hide labels until focused. */
.avatar{width:15%;height:43%}.hotspot span{opacity:0}.hotspot:hover span,.hotspot:focus-visible span{opacity:1}
@media(max-width:560px){.scene{aspect-ratio:16/9}.avatar{width:15%}}
.held{background:transparent;border:0;padding:0;cursor:pointer}
