*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#e8e4db;color:#292e2b;font-family:Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;transition:background .18s,transform .18s}button:hover{background:#e0dfd5}button:active{transform:scale(.97)}button:focus-visible,a:focus-visible{outline:3px solid #668776;outline-offset:4px}button{border:1px solid #c9c9bd;background:#f5f3eceb;color:#303a33;border-radius:30px;padding:12px 18px}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;top:0;left:0;width:100%;padding:32px 40px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.brand{font-size:18px;font-family:Georgia,serif;letter-spacing:4px;text-decoration:none;color:#29372d;pointer-events:auto}.brand span{display:block;font:8px Arial;letter-spacing:3px;margin-top:10px}.actions{display:flex;gap:8px;pointer-events:auto}.actions button{font-size:12px;backdrop-filter:blur(12px)}.panel{position:absolute;top:50%;left:7%;transform:translateY(-46%);width:430px;padding:36px;background:#faf8f0ed;backdrop-filter:blur(20px);border:1px solid #fff9;border-radius:4px;box-shadow:0 20px 80px #1e302b14}.eyebrow,.label{font-size:9px;letter-spacing:2px;line-height:1.6;color:#667369}.panel h1{font:normal 43px/1.12 Georgia,serif;letter-spacing:-1.6px;margin:20px 0}.intro{font-size:12px;line-height:1.9;color:#73786e}.line{height:1px;background:#d9dbd0;margin:26px 0}.label{margin:20px 0 10px}.choices{display:flex;gap:8px}.choices button{flex:1;font-size:12px}.choices button[aria-pressed=true]{background:#344c3e;color:white;border-color:#344c3e}.swatches{display:flex;gap:14px;padding:5px}.swatches button{padding:0;width:26px;height:26px;border:3px solid #f6f4ec;outline:1px solid #d0d0c7}.swatches button[aria-pressed=true]{outline:2px solid #405b48;outline-offset:3px}.primary{display:block;width:100%;background:#344c3e;color:#fff;border:0;margin-top:28px;font-size:12px;padding:16px}.primary:hover{background:#45624f}.primary:disabled{opacity:.6;cursor:wait}.small{text-align:center;color:#858c80;font-size:10px;margin-bottom:0}.room-label{position:absolute;top:145px;left:40px;pointer-events:none}.room-label span{font-size:9px;letter-spacing:2px;color:#657267}.room-label h2{font:normal 28px Georgia;margin:12px 0}.room-label p{font-size:11px;color:#768074}.hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#f7f7f0d9;border:1px solid #fff9;backdrop-filter:blur(12px);padding:14px 24px;border-radius:30px;font-size:10px;color:#61705f}.hint i{display:inline-block;width:3px;height:3px;background:#89917f;border-radius:50%;margin:0 12px}.compass{position:absolute;right:40px;bottom:32px;font-size:10px}.compass span{display:block;text-align:center;margin-top:10px}#joystick{display:none;position:absolute;bottom:max(36px,env(safe-area-inset-bottom));left:28px;width:112px;height:112px;border:1px solid #fff9;border-radius:50%;background:#f2f1e75c;touch-action:none}#stick{position:absolute;left:35px;top:35px;width:42px;height:42px;border-radius:50%;background:#415747b3;pointer-events:none}#inspect{position:absolute;bottom:100px;left:50%;transform:translateX(-50%);background:#344c3e;color:white}dialog{border:0;border-radius:6px;max-width:600px;width:90%;padding:28px;background:#faf8f1;color:#303a33}dialog::backdrop{background:#15221dcc;backdrop-filter:blur(10px)}dialog img{max-width:100%;max-height:55vh;display:block;margin:auto}dialog h2{font:normal 30px Georgia}dialog p{line-height:1.7}#close-memory{float:right;margin-bottom:14px}#error{position:absolute;bottom:20px;left:5%;right:5%;padding:20px;background:#fff4e4;border:1px solid #ae7955} [hidden]{display:none!important}@media(pointer:coarse){#joystick{display:block}.hint{bottom:30px;left:auto;right:22px;transform:none;max-width:130px;white-space:normal;line-height:1.7}}@media(max-width:600px){header{padding:23px 20px}.brand{font-size:14px;letter-spacing:2px}.brand span{font-size:7px;letter-spacing:2px}.actions{gap:5px}.actions button{font-size:10px;padding:9px}#quality{display:none}.panel{width:calc(100% - 36px);left:18px;padding:26px;max-height:calc(100dvh - 120px);overflow:auto}.panel h1{font-size:37px}.room-label{left:22px;top:105px}.room-label h2{font-size:24px}.compass{display:none}.hint i{display:none}}@media(prefers-reduced-motion:reduce){button{transition:none}}