:root{color:#241f1a;font-synthesis:none;text-rendering:optimizelegibility;background:#191714;font-family:ui-rounded,SF Pro Rounded,Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0;overflow:hidden}button,input,textarea{font:inherit}.app-shell{background:radial-gradient(circle at 20% 10%,#ffd57d24,#0000 22%),radial-gradient(circle at 78% 24%,#63ae971f,#0000 24%),linear-gradient(135deg,#151716,#20201c 48%,#121416);width:100vw;height:100dvh;min-height:100dvh;position:relative;overflow:hidden}.file-input{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.room-canvas{width:100vw;height:100dvh;image-rendering:pixelated;touch-action:none;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:0}.room-canvas.is-walkable{cursor:pointer}.onboarding-card{z-index:4;color:#fff8ee;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121412d1;border:2px solid #fff8eead;border-radius:8px;width:min(420px,100vw - 44px);padding:18px;position:fixed;top:22px;left:22px;box-shadow:0 20px 60px #00000057}.onboarding-close{position:absolute;top:12px;right:12px}.gate-card{padding-right:54px}.onboarding-card h1,.onboarding-card p{margin:0}.onboarding-card h1{margin-bottom:10px;font-size:clamp(1.8rem,5vw,2.8rem);line-height:.98}.onboarding-card p{color:#fff8eec7;line-height:1.55}.eyebrow{text-transform:uppercase;font-size:.76rem;font-weight:900;color:#ffd66b!important;margin-bottom:10px!important}.identity-card,.loading-card{gap:12px;display:grid}.loading-card h1{margin-bottom:0}.loading-bar{background:#fff8ee29;border-radius:8px;height:8px;position:relative;overflow:hidden}.loading-bar span{border-radius:inherit;background:#ffd66b;width:42%;animation:1s ease-in-out infinite loading-slide;position:absolute;inset:0 auto 0 0}.identity-card h1{margin-bottom:0}.identity-card label,.state-control{color:#fff8eeb8;text-transform:uppercase;gap:6px;font-size:.78rem;font-weight:900;display:grid}.identity-card input,.identity-card textarea,.state-select{color:#fff8ee;background:#fff8ee1a;border:1px solid #fff8ee47;border-radius:8px;outline:none;width:100%;padding:10px 12px}.identity-card textarea{resize:vertical}.identity-card input:focus,.identity-card textarea:focus,.state-select:focus{border-color:#ffd66b}.state-select{min-height:38px;font-weight:900;display:none}.state-select option{color:#191714}.state-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.state-options button{color:#fff8ee;cursor:pointer;background:#fff8ee14;border:1px solid #fff8ee3d;border-radius:8px;min-height:36px;font-size:.76rem;font-weight:950}.state-options button.selected{color:#fff8ee;background:#ffd66b2e;border-color:#ffd66b}.primary-action,.room-choice{cursor:pointer;border-radius:8px}.primary-action{color:#191714;background:#fff8ee;border:0;min-height:44px;padding:11px 14px 13px;font-weight:950;line-height:1.12}.primary-action:disabled{cursor:wait;opacity:.72}.gate-card .primary-action{margin-top:8px}.pet-inspector{z-index:6;color:#fff8ee;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#121412db;border:2px solid #fff8eead;border-radius:8px;gap:12px;width:min(580px,100vw - 36px);max-height:calc(100dvh - 96px);padding:14px;display:grid;position:fixed;top:18px;right:18px;overflow:auto;box-shadow:0 24px 70px #00000061}.pet-inspector-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pet-inspector h2,.pet-inspector p{margin:0}.pet-inspector h2{font-size:1.35rem;line-height:1.05}.pet-inspector p:not(.eyebrow){color:#fff8eeb8;margin-top:6px;font-size:.88rem;line-height:1.4}.pet-source-link{color:#9ad7c2;margin-top:8px;font-size:.88rem;font-weight:850;text-decoration:none;display:inline-block}.pet-source-link:hover,.pet-source-link:focus-visible{text-decoration:underline}.icon-action{color:#fff8ee;cursor:pointer;background:#fff8ee14;border:1px solid #fff8ee3d;border-radius:8px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:1rem;font-weight:950;line-height:1;display:inline-grid}.pet-state-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.pet-state-card{background:#fff8ee14;border:1px solid #fff8ee33;border-radius:8px;gap:6px;min-width:0;padding:8px;display:grid}.pet-state-canvas{width:100%;max-width:148px;height:112px;image-rendering:pixelated;justify-self:center}.pet-state-card strong{color:#fff8eedb;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.78rem;font-weight:950;overflow:hidden}.room-picker{gap:8px;display:grid}.room-choice{color:#fff8ee;text-align:left;background:#fff8ee14;border:1px solid #fff8ee38;gap:3px;width:100%;padding:10px 12px;display:grid}.room-choice strong{font-size:.95rem}.room-choice span{color:#fff8eead;font-size:.82rem;line-height:1.35}.room-choice.selected{background:#ffd66b24;border-color:#ffd66b}.room-badge{z-index:5;color:#fff8ee;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#121412b8;border:2px solid #fff8ee94;border-radius:8px;margin:0;padding:8px 10px;font-size:.82rem;font-weight:950;position:fixed;top:18px;left:18px;box-shadow:0 14px 32px #00000047}.room-panel{z-index:5;gap:8px;width:min(340px,100vw - 36px);display:grid;position:fixed;top:18px;left:18px}.room-panel .room-badge{width:fit-content;position:static}.room-panel label,.room-panel .state-control{color:#fff8eeb8;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#121412b8;border:2px solid #fff8ee94;border-radius:8px;gap:6px;padding:10px;font-size:.72rem;font-weight:900;display:grid;box-shadow:0 14px 32px #00000047}.room-panel .state-options{grid-template-columns:repeat(4,minmax(0,1fr))}.room-panel input,.room-panel .state-select{color:#fff8ee;text-transform:none;background:#fff8ee1a;border:1px solid #fff8ee47;border-radius:8px;outline:none;width:100%;padding:9px 10px}.room-panel input:focus,.room-panel .state-select:focus{border-color:#ffd66b}.floating-upload,.floating-error,.github-link,.loading-status-badge{z-index:5;color:#fff8ee;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#121412c7;border:2px solid #fff8eead;border-radius:8px;position:fixed;box-shadow:0 14px 32px #00000047}.loading-status-badge{color:#fff8eec7;text-transform:uppercase;border-width:1px;gap:3px;max-width:min(260px,100vw - 36px);padding:7px 9px;font-size:.68rem;font-weight:900;line-height:1.25;display:grid;bottom:64px;left:18px}.loading-status-badge span{overflow-wrap:anywhere;min-width:0}.city-chat{z-index:5;color:#fff8ee;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#121412cc;border:2px solid #fff8eead;border-radius:8px;gap:8px;width:min(360px,100vw - 36px);padding:10px;display:grid;position:fixed;bottom:76px;right:18px;box-shadow:0 18px 46px #00000052}.city-chat-header,.city-chat-header div{align-items:center;gap:8px;display:flex}.city-chat-header{color:#fff8eec2;text-transform:uppercase;justify-content:space-between;gap:10px;min-width:0;font-size:.72rem;font-weight:950}.city-chat-header span{color:#ffd66b;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.city-chat-header button{color:#fff8ee;text-transform:uppercase;cursor:pointer;background:#fff8ee14;border:1px solid #fff8ee3d;border-radius:8px;min-height:24px;padding:0 8px;font-size:.68rem;font-weight:950}.city-chat-log{gap:6px;max-height:190px;padding-right:2px;display:grid;overflow:auto}.city-chat-log p{color:#fff8eee6;overflow-wrap:anywhere;background:#fff8ee14;border:1px solid #fff8ee24;border-radius:8px;gap:2px;min-width:0;max-width:86%;margin:0;padding:7px 9px;font-size:.86rem;line-height:1.3;display:grid}.city-chat-log p.mine{background:#ffd66b29;border-color:#ffd66b47;justify-self:end}.city-chat-log p.city-chat-empty{color:#fff8ee99;border-style:dashed;max-width:none}.city-chat-log span{color:#fff8ee94;text-transform:uppercase;font-size:.68rem;font-weight:950}.city-chat-form{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.city-chat-form input{color:#fff8ee;background:#fff8ee1a;border:1px solid #fff8ee3d;border-radius:8px;outline:none;min-width:0;padding:9px 10px}.city-chat-form input:focus{border-color:#ffd66b}.city-chat-form button{color:#191714;cursor:pointer;background:#fff8ee;border:0;border-radius:8px;min-width:62px;padding:0 12px;font-weight:950}.city-chat-form button:disabled{cursor:not-allowed;opacity:.62}.city-chat-debug{color:#fff8eeb8;border-top:1px solid #fff8ee24;padding-top:2px;font-size:.72rem}.city-chat-debug summary{color:#ffd66b;text-transform:uppercase;cursor:pointer;width:fit-content;font-weight:950}.city-chat-debug dl{grid-template-columns:92px minmax(0,1fr);gap:4px 8px;max-height:170px;margin:8px 0 0;display:grid;overflow:auto}.city-chat-debug dt,.city-chat-debug dd{min-width:0;margin:0}.city-chat-debug dt{color:#fff8ee7a;text-transform:uppercase;font-weight:950}.city-chat-debug dd{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.floating-upload{cursor:pointer;min-height:44px;padding:0 16px;font-weight:900;transition:transform .18s,background .18s;bottom:18px;right:18px}.floating-upload:hover{background:#2b2118e6;transform:translateY(-2px)}.floating-upload:disabled{cursor:wait;opacity:.72;transform:none}.floating-upload:focus-visible{outline-offset:4px;outline:3px solid #e6a73d}.github-link{color:#fff8ee;align-items:center;min-height:38px;padding:0 12px;font-size:.82rem;font-weight:950;text-decoration:none;transition:transform .18s,background .18s;display:inline-flex;bottom:18px;left:18px}.github-link:hover{background:#2b2118e6;transform:translateY(-2px)}.github-link:focus-visible{outline-offset:4px;outline:3px solid #e6a73d}.floating-error{color:#ffd8d1;max-width:min(420px,100vw - 36px);margin:0;padding:12px 14px;font-weight:800;bottom:68px;left:18px}@keyframes loading-slide{0%{transform:translate(-100%)}50%{transform:translate(70%)}to{transform:translate(240%)}}@media (width<=720px){.onboarding-card{width:calc(100vw - 24px);max-height:calc(100dvh - 84px);top:12px;left:12px;overflow:auto}.pet-inspector{width:auto;max-height:calc(100dvh - 84px);top:12px;left:12px;right:12px}.pet-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.state-select{display:block}.state-options{display:none}.city-chat{width:auto;bottom:68px;left:12px;right:12px}}
