*{box-sizing:border-box} :root{font-family:'Segoe UI','Malgun Gothic',sans-serif;color:#344b3e;background:#b9d7bd;font-synthesis:none}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #ce946e;outline-offset:4px}#world,#scene{width:100%;height:100%;position:fixed;inset:0;display:block;touch-action:none;outline:none}header{position:fixed;top:28px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;gap:20px}.brand,nav{pointer-events:auto;display:flex;align-items:center}.brand{gap:13px}.brand-icon{position:relative;font:italic 40px Georgia;background:#526b51;color:#fff9e9;width:54px;height:54px;display:grid;place-items:center;border-radius:18px;box-shadow:0 5px 20px #36574215}.brand-icon span{font:22px Georgia;color:#efd0a6;position:absolute;right:-5px;top:-7px}.brand h1{font:600 26px Georgia,serif;letter-spacing:-1px;margin:0}.brand em{font-weight:normal;font-style:italic}.brand p{font-size:10px;letter-spacing:1.5px;margin:7px 0 0}nav{gap:8px}nav button,nav a{height:44px;background:#fffcf1ed;border:1px solid #ffffffa0;border-radius:14px;box-shadow:0 4px 20px #3d553d0b}nav button{display:flex;align-items:center;gap:7px;padding:0 14px}nav button span{font-size:22px}nav button b{font-size:11px;font-weight:600}nav a{padding:0 20px;display:flex;align-items:center;text-decoration:none;color:#fff9e9;background:#526b51;font-size:12px}.welcome{position:fixed;left:32px;top:124px;width:285px;background:#fffaf0ed;padding:28px;border-radius:6px 26px 26px 26px;box-shadow:0 12px 40px #4062440b;transition:opacity .4s}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:#8b937b}.welcome h2{font-size:28px;line-height:1.5;letter-spacing:-1.3px;margin:18px 0 12px;font-weight:500}.welcome p{font-size:12px;line-height:1.9;color:#7c8273}.welcome-foot{border-top:1px solid #e3e4d6;margin-top:22px;padding-top:17px;font-size:11px;letter-spacing:1px;color:#8d947a}.welcome-foot span{color:#c78c65;font-size:18px;margin-right:8px}.dismiss{position:absolute;top:10px;right:12px;background:transparent;color:#9ca48e;font-size:21px}.location{position:fixed;left:50%;top:102px;transform:translateX(-50%);border:1px solid #fff8;padding:10px 18px;background:#fffaf0df;border-radius:30px;display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}.live-dot{width:6px;height:6px;background:#88a66f;border-radius:50%}.weather{border-left:1px solid #d8dece;padding-left:10px;margin-left:6px;font-size:10px;color:#89937b}.map{position:fixed;bottom:112px;right:32px;background:#fffaf0e8;border:1px solid #fff8;border-radius:22px;padding:15px;width:190px;box-shadow:0 8px 30px #34513612}.map>div{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.5px;font-weight:700}.map button{background:transparent;font-size:18px}.map canvas{width:160px;height:131px;display:block}.map p{font-size:9px;margin:3px 0 0;color:#7e8b6e;text-align:center}.map.collapsed canvas,.map.collapsed p{display:none}footer{position:fixed;bottom:21px;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;pointer-events:none}.controls{display:flex;gap:20px;align-items:center;padding:15px 24px;background:#fffaf0eb;border:1px solid #fff8;border-radius:18px;font-size:11px;color:#7c8573;box-shadow:0 4px 20px #34513610}.controls span{display:flex;gap:7px;align-items:center}.controls b{font-weight:500;color:#4f6451}.controls i{height:16px;width:1px;background:#dbe1cf}kbd{font-family:inherit;background:#eef0e5;border:1px solid #dce0d0;box-shadow:0 2px 0 #dce0d0;border-radius:5px;padding:3px 6px;font-size:10px;color:#56654f}footer p{font-size:8px;letter-spacing:2px;color:#56745b;margin:13px 0 0}footer p span{padding:0 10px}.interaction{position:fixed;bottom:123px;left:50%;transform:translateX(-50%);background:#526b51;color:#fff9ed;border:1px solid #fff6;box-shadow:0 5px 25px #243a3022;padding:12px 18px;border-radius:16px;font-size:13px;display:flex;align-items:center;gap:12px}.interaction small{font-size:10px;opacity:.65}[hidden]{display:none!important}dialog{border:1px solid #fff;border-radius:28px;background:#fffcf3;color:#344b3e;padding:35px;width:420px;max-width:calc(100% - 28px);max-height:90dvh;box-shadow:0 25px 100px #1b30294d;overflow-y:auto}dialog::backdrop{background:#213a362b;backdrop-filter:blur(3px)}dialog h2{font-size:28px;letter-spacing:-1px;font-weight:500;margin:14px 0 8px}dialog p{font-size:13px;line-height:1.9;color:#7d8777}dialog>.close:first-child{position:absolute;right:18px;top:14px;font-size:26px;background:transparent}dialog label{display:block;font-size:11px;font-weight:600;margin:20px 0 10px}.choices{display:flex;gap:7px}.choices button{padding:10px;border:1px solid #e0e5d6;border-radius:10px;background:#f3f3e9;font-size:11px;flex:1}.choices button[aria-pressed=true]{background:#526b51;color:#fff9eb;border-color:#526b51}.swatches{display:flex;gap:12px}.swatches button{height:31px;width:31px;border-radius:50%;border:3px solid #fff;outline:1px solid #e0e4d9}.swatches button[aria-pressed=true]{outline:2px solid #526b51}.primary{width:100%;display:block;text-align:center;padding:14px;border-radius:12px;background:#526b51;color:#fff9eb;font-size:12px;text-decoration:none;margin-top:22px}.secondary{display:block;background:transparent;font-size:11px;margin:20px auto 0;text-decoration:underline;color:#7b8773}.note{font-size:10px!important;line-height:1.8!important;background:#f0f2e8;border-radius:10px;padding:12px;margin-top:20px}dt{font-size:12px;font-weight:600;margin-top:18px}dd{margin:6px 0;color:#7d8777;font-size:12px;line-height:1.6}#toast{position:fixed;bottom:200px;left:50%;transform:translateX(-50%);background:#344b3eea;color:#fff9eb;padding:12px 22px;border-radius:30px;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90%;text-align:center}#toast.show{opacity:1}#loading{position:fixed;inset:0;background:#f6f5e9;display:grid;place-content:center;text-align:center;z-index:9}#loading>span{font-size:60px;color:#859b68;animation:spin 5s linear infinite}#loading h2{font-size:20px;font-weight:500}#loading p{font-size:12px;color:#8b947c}@keyframes spin{to{transform:rotate(360deg)}}#touchControls{display:none}@media(pointer:coarse){#touchControls{display:block}.controls{display:none}#joystick{position:fixed;left:25px;bottom:70px;width:105px;height:105px;border:1px solid #fff9;border-radius:50%;background:#fff6;touch-action:none}#joystick span{position:absolute;left:33px;top:33px;width:39px;height:39px;background:#526b51a0;border:2px solid #fff9;border-radius:50%;pointer-events:none}.touchZoom{position:fixed;bottom:80px;right:25px;display:grid;gap:8px}.touchZoom button{height:44px;width:44px;background:#fffaf0df;border-radius:50%;font-size:22px}.interaction{bottom:82px}.map{bottom:160px}}@media(max-width:760px){header{top:17px;left:18px;right:18px;align-items:flex-start}.brand-icon{width:42px;height:42px;font-size:32px;border-radius:14px}.brand h1{font-size:21px}.brand p{font-size:8px;letter-spacing:.6px}nav{gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:174px}nav button{width:37px;height:37px;justify-content:center;padding:0;border-radius:12px}nav button b{display:none}nav a{height:30px;font-size:10px;padding:0 12px}.welcome{top:141px;left:18px;width:215px;padding:20px}.welcome h2{font-size:23px;margin-top:12px}.welcome p{font-size:10px}.welcome-foot{margin-top:12px;padding-top:12px;font-size:10px}.eyebrow{font-size:7px;letter-spacing:1.3px}.location{top:102px;font-size:11px}.weather{font-size:9px}.map{width:123px;right:16px;bottom:160px;padding:10px;border-radius:16px}.map canvas{width:102px;height:84px}.map>div{font-size:6px;letter-spacing:.5px}.map p{font-size:8px}footer{bottom:19px}.controls{gap:10px;padding:12px;font-size:9px}.controls>span:nth-of-type(2),.controls>span:nth-of-type(3),.controls i{display:none}.interaction{font-size:11px;gap:8px;padding:10px 12px}.interaction small{display:none}dialog{padding:28px}dialog .eyebrow{font-size:8px}}
@media(min-width:761px){#wardrobe{margin-right:45px}#wardrobe::backdrop{backdrop-filter:none;background:#213a3610}}@media(max-width:760px){#wardrobe{margin-bottom:12px;max-height:58dvh}#wardrobe::backdrop{backdrop-filter:none;background:#213a3610}}
