[hidden]{display:none!important}#game-shell{display:contents}body.auth-on{background:#faf9f5}body.auth-on #game-shell{display:none}#paw-welcome{max-width:1440px;margin:auto;padding:30px 52px;color:#38483b}.welcome-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.welcome-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#465b43;font-size:32px}.welcome-brand b{font-family:'Noto Serif TC',serif;font-size:23px;letter-spacing:3px}.welcome-brand small{display:block;font:9px/2 sans-serif;letter-spacing:4px}.welcome-tag{font-size:11px;color:#8b9386}.welcome-steps{display:flex;list-style:none;margin:32px 0 38px;padding:20px 0;border-block:1px solid #e6e7df;justify-content:center;gap:60px}.welcome-steps li{font-size:12px;color:#a4aaa0;display:flex;align-items:center;gap:10px}.welcome-steps i{font:11px Georgia,serif;border:1px solid #d9dfd4;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-style:normal}.welcome-steps .current{color:#4d6648;font-weight:700}.welcome-steps .current i{background:#526b4b;color:white;border-color:#526b4b}.welcome-steps .complete i{background:#e5ecdf;color:#526b4b}.welcome-layout{display:grid;grid-template-columns:1fr 1fr;min-height:580px;background:white;border:1px solid #e7e8df;border-radius:20px;overflow:hidden}.welcome-art{padding:40px 42px 20px;background:#edf0e6;position:relative;overflow:hidden}.welcome-kicker{font:9px/1.6 sans-serif;letter-spacing:2.3px;color:#8e9a83}.welcome-art h1{font:500 36px/1.65 'Noto Serif TC',serif;letter-spacing:3px;margin:17px 0 10px}.welcome-art p{font-size:12px;line-height:2;color:#7c8974}.welcome-dog{height:280px;position:relative;display:grid;place-items:center}.welcome-dog img{position:relative;object-fit:contain;max-width:100%;height:280px;mix-blend-mode:multiply;z-index:1}.welcome-halo{position:absolute;inset:15px 45px 0;border-radius:48% 48% 0 0;background:linear-gradient(#e2e7d7,#f4f3e8)}.welcome-dog>span{position:absolute;bottom:5px;right:0;font:8px sans-serif;letter-spacing:1.5px;color:#8d9b81;z-index:2}.welcome-art-bottom{display:flex;justify-content:space-between;border-top:1px solid #dce2d4;margin-top:14px;padding-top:15px;font-size:9px;color:#8c9882}.welcome-content{padding:48px 48px 25px;display:flex;flex-direction:column;justify-content:center}.welcome-content h2{font:500 27px/1.7 'Noto Serif TC',serif;margin:12px 0;color:#3d4c3b;letter-spacing:1px}.welcome-copy{font-size:12px;color:#8b9286;line-height:1.95;margin:0 0 24px}.welcome-content form>label,.welcome-content legend{display:block;font-size:12px;font-weight:500;margin-bottom:9px}.welcome-content input:not([type=radio]){font:14px inherit;border:1px solid #dce1d5;background:#fcfcf9;border-radius:7px;min-height:48px;width:100%;padding:12px 14px;color:#354530;outline-offset:3px}.welcome-content input:focus{outline:2px solid #9aab8d}.welcome-primary,.welcome-secondary{width:100%;min-height:49px;border:0;border-radius:7px;margin-top:18px;background:#536b4c;color:white;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;font-size:13px}.welcome-primary:hover{background:#425a3c}.welcome-primary:disabled{opacity:.5;cursor:wait}.welcome-secondary{background:#edf1e7;color:#526b4b;justify-content:center;margin-top:10px}.welcome-text{border:0;background:none;color:#778870;text-decoration:underline;text-underline-offset:3px;font-size:11px;padding:15px 7px 0}.welcome-hint,.welcome-privacy{font-size:10px;color:#949b8e;line-height:1.8}.welcome-privacy{margin-top:24px;border-top:1px solid #eceee5;padding-top:17px}.welcome-foot{font:8px/2 sans-serif;letter-spacing:2px;color:#b2b9ac;margin:26px 0 0}#welcome-message{font-size:12px;line-height:1.8;color:#a15340;margin:14px 0 0;min-height:0}.welcome-bottom{display:flex;justify-content:space-between;color:#9ba491;font-size:10px;margin-top:25px}.breed-grid{border:0;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.breed-grid legend{padding:0;margin-bottom:12px}.breed-card{position:relative;border:1px solid #e1e5d9;border-radius:12px;padding:12px;text-align:center;background:#fafbf7;cursor:pointer}.breed-card:has(input:checked){border-color:#617d54;background:#edf3e7;box-shadow:0 0 0 1px #617d54}.breed-card input{position:absolute;top:10px;left:10px;accent-color:#536b4c}.breed-card img{height:130px;width:100%;object-fit:contain;mix-blend-mode:multiply}.breed-card b{display:block;font-size:13px}.breed-card span{display:block;font-size:10px;color:#8a9682;line-height:1.7;margin-top:7px}.room-choices{border:0;padding:0;margin:22px 0 0;display:flex;gap:12px}.room-choices label{flex:1;font-size:11px;text-align:center;cursor:pointer}.room-choices input{accent-color:#536b4c}.room-swatch{height:60px;display:grid;place-items:center;border-radius:9px;font-size:24px;margin:7px 0}.sunlight{background:#e5d8ba;color:#a88a50}.forest{background:#d7e2cc;color:#638356}.cream{background:#f1e9da;color:#b8a889}.room-choices input:checked~.room-swatch{outline:2px solid #647d59}.room-preview{border:1px solid #e6e5dc;background:linear-gradient(#f1eee3 70%,#ddcfb8 70%);border-radius:10px;padding:20px;margin-top:24px;text-align:center}.room-preview>span{font-size:35px;display:block;color:#a69b80}.room-preview b{display:block;font-size:14px;margin:8px 0}.room-preview small{font-size:10px;color:#8f947e}.room-preview.forest{background:linear-gradient(#e3ecd9 70%,#bcc9a6 70%)}.room-preview.cream{background:linear-gradient(#faf4e9 70%,#e9ddca 70%)}.ready-paw{font-size:42px;margin-top:26px}#member-switch{background:none;border:1px solid #dce1d5;border-radius:6px;padding:7px 10px;color:#6c8061;font-size:11px}.member-menu{display:flex;align-items:center;gap:8px;font-size:10px;color:#7c8d73}.member-menu button{background:none;border:1px solid #dce2d5;border-radius:5px;padding:5px 7px;font-size:10px}body[data-room-style=forest] #room{background-color:#e8efdf}body[data-room-style=cream] #room{background-color:#fcf2e2}#member-sync{font-size:10px;color:#829477}.member-walk{padding:7px 10px;margin-left:12px;background:#edf2e8;border:1px solid #d4dfca;border-radius:6px;color:#526c48;font-size:11px}
@media(min-width:1450px){.welcome-layout{min-height:650px}.welcome-art{padding-top:50px}.welcome-dog{height:320px}.welcome-dog img{height:320px}}
@media(max-width:900px){#paw-welcome{padding:23px 24px}.welcome-tag{display:none}.welcome-steps{gap:24px}.welcome-art{padding:32px 26px 20px}.welcome-art h1{font-size:29px}.welcome-content{padding:32px 28px}.welcome-content h2{font-size:24px}.breed-card{padding:8px}.breed-card img{height:105px}.welcome-dog img{height:240px}}
@media(max-width:620px){#paw-welcome{padding:18px 17px 25px}.welcome-brand{font-size:27px;gap:8px}.welcome-brand b{font-size:20px}.welcome-steps{gap:0;justify-content:space-between;margin:20px 0;padding:14px 0}.welcome-steps li{font-size:9px;gap:4px;flex-direction:column}.welcome-steps i{width:24px;height:24px;font-size:9px}.welcome-layout{grid-template-columns:1fr;border-radius:14px;min-height:0}.welcome-art{padding:21px 24px 18px;min-height:185px}.welcome-art h1{font-size:23px;margin:8px 0;line-height:1.6;letter-spacing:1px}.welcome-art>.welcome-kicker{font-size:7px;letter-spacing:1.2px}.welcome-art p{font-size:10px;margin:0;line-height:1.8;max-width:58%}.welcome-dog{position:absolute;width:43%;height:170px;right:6px;bottom:8px}.welcome-dog img{height:160px;width:100%}.welcome-dog>span{display:none}.welcome-halo{inset:20px 6px 0}.welcome-art-bottom{display:none}.welcome-content{padding:29px 24px 22px}.welcome-content h2{font-size:24px}.welcome-copy{font-size:12px;margin-bottom:20px}.welcome-bottom{font-size:8px;gap:6px}.welcome-bottom span{white-space:nowrap}.breed-card img{height:130px}.welcome-privacy{margin-top:19px}.welcome-foot{font-size:7px;margin-top:17px}.member-menu{gap:4px}.member-menu>span{display:none}}

.pet-lock-warning,.pet-selection-note{font-size:12px;line-height:1.8;color:#687b5d;background:#f0f4eb;padding:12px;border-radius:8px}.pet-selection-note{margin:14px 18px}.member-locked .companion-quick,.member-locked .home-companion-label,.member-locked .coat-picker,.member-locked label:has(#companionselect),.member-locked [data-coatselect]{display:none!important}
.visitors-card{padding:20px;margin:16px;border:1px solid #dfe5d7;border-radius:12px;background:#fbfcf8}.visitors-card h2{font-size:17px}.visitors-card p{font-size:12px;color:#78856e}.visitors-card button,.visitor-name-form input,.visit-dialog button,.visit-dialog input{font:inherit;padding:9px 12px;border:1px solid #d5dfcb;border-radius:8px;background:white;color:#526947}.visitor-name-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap;font-size:12px}.visitor-name-form label{display:grid;gap:7px}.visitors-list{list-style:none;padding:0;font-size:13px}.visitors-list li{padding:12px 0;border-bottom:1px solid #e4e9df;line-height:1.8}.visitors-list time{font-size:12px;color:#7b8771}.visit-dialog{width:min(560px,92vw);border:1px solid #d7e1ce;border-radius:18px;padding:24px;color:#46573f}.visit-dialog::backdrop{background:#24341e88}.visit-close{float:right}.visit-dialog label{display:grid;gap:8px;margin:20px 0}.visit-room{height:350px;border-radius:14px;background:linear-gradient(#f1eee3 65%,#dccbad 65%)}.visit-room model-viewer{width:100%;height:100%}.visit-room[data-room-style=forest]{background:linear-gradient(#e4ecd9 65%,#b6c7a3 65%)}.visit-room[data-room-style=cream]{background:linear-gradient(#faf4e8 65%,#e7dac4 65%)}@media(max-width:620px){.visitors-card{margin:12px;padding:14px}.visitors-card .sectionhead{flex-wrap:wrap;gap:10px}.visitors-card .sectionhead button{width:100%}}

.audio-controls{display:flex;gap:6px;flex-wrap:wrap}.audio-controls button{font:inherit;font-size:12px;border:1px solid #d4ddca;border-radius:20px;padding:7px 11px;background:#f5f8f0;color:#53684a;white-space:nowrap}.audio-controls button[aria-pressed=false]{background:#efeeeb;color:#777}.audio-status{font-size:11px;color:#7b7058}.topright{flex-wrap:wrap}@media(max-width:600px){.audio-controls button{padding:7px 9px}.topright{gap:7px}}

.invite-form{display:grid;gap:14px}.invite-form label{display:grid;gap:7px}.invite-form input,.short-link{box-sizing:border-box;width:100%;padding:11px;border:1px solid #d5deca;border-radius:9px}.invite-status{font-size:13px}.public-house{max-width:1100px;margin:35px auto;padding:20px}.public-house h1{font-size:30px}.public-house .room{height:520px;position:relative;overflow:hidden}.public-house .home-world{position:absolute;inset:0}.public-house .roomhint{z-index:5}.public-house a{display:inline-block;padding:12px 18px;border-radius:12px;background:#536a48;color:white;text-decoration:none;margin:15px 10px 0 0}.public-house p{line-height:1.8}.public-house .home-stage{position:absolute;inset:0}.public-house .home-view-controls{margin-top:12px}@media(max-width:600px){.public-house{margin:10px auto;padding:12px}.public-house .room{height:430px}.public-house h1{font-size:24px}}
.admin-panel{padding:22px;background:#fffefb;border:1px solid #dce3d4;border-radius:16px}.admin-banner{display:flex;justify-content:space-between;gap:16px;align-items:center}.admin-banner h2{font-size:24px}.admin-banner p,.admin-status{font-size:13px;color:#6d7d62}.admin-role{background:#ecf1e5;padding:10px;border-radius:10px;white-space:nowrap}.admin-search{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin:20px 0}.admin-search label{display:grid;gap:6px}.admin-panel input:not([type=checkbox]),.admin-panel select,.admin-panel button,.admin-open{font:inherit;font-size:13px;padding:9px;border:1px solid #d3ddc8;border-radius:9px;background:#fafcf6;color:#526947}.admin-table-scroll{overflow:auto}.admin-panel table{width:100%;border-collapse:collapse;font-size:13px}.admin-panel td,.admin-panel th{text-align:left;padding:14px 10px;border-bottom:1px solid #e5eadf;white-space:pre-line;min-width:110px}.admin-panel th{background:#f3f6ec}.admin-pages{display:flex;justify-content:space-between;margin:18px 0}.admin-audit{font-size:13px;line-height:1.8}.admin-audit li{padding:8px 0}.admin-testing .pet-selection-note{background:#fff4dc}.admin-testing .home-companion-label{display:block}.admin-open{background:#edf2e5;font-size:11px}@media(max-width:600px){.admin-panel{padding:12px}.admin-banner{align-items:start}.admin-role{font-size:11px}.admin-banner h2{font-size:20px}}
/* A translucent, non-modal workbench directly over the live room. */
#home .petlabel .decor-open{pointer-events:auto;margin-left:9px;padding:5px 10px;min-height:30px;border:1px solid #cbd5be;border-radius:16px;background:#eef2e4;color:#506747;font:inherit;font-size:11px;vertical-align:middle;touch-action:manipulation}.decor-open[aria-expanded=true]{background:#dce8cd!important}
#room .decor-window{position:absolute;z-index:12;right:12px;bottom:12px;width:min(350px,calc(100% - 24px));max-height:calc(100% - 70px);display:flex;flex-direction:column;border:1px solid #ffffffb3;border-radius:16px;background:rgba(255,253,243,0.5);box-shadow:0 8px 28px #463c2426;color:#34452f;overflow:hidden;isolation:isolate}
.decor-window .decor-heading{display:flex;flex:none;gap:6px;align-items:center;height:auto;min-height:44px;padding:7px 9px;border-bottom:1px solid #7d8f6b33;background:transparent;font-size:13px;position:static}.decor-handle{display:flex;gap:6px;align-items:center;flex:1;min-width:0;cursor:move;touch-action:none;user-select:none}.decor-handle small{font-size:10px;font-weight:400;color:#53664a}.decor-window button,.decor-window select{font:inherit;font-size:12px;color:#34482e;border:1px solid #b9c9a9;border-radius:8px;background:rgba(255,255,247,.72);min-height:34px;padding:6px 8px}.decor-window button:hover{background:#edf3e1}.decor-window button:disabled{opacity:.45;cursor:default}.decor-window .decor-heading button{min-width:32px;min-height:32px;padding:3px;font-size:20px;line-height:1}.decor-body{padding:0 10px 9px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;min-height:0}.decor-body p{font-size:11px;line-height:1.5;margin:7px 0}.decor-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.decor-window label{display:flex;flex-direction:column;gap:4px;font-size:10px;min-width:0}.decor-window select{width:100%;min-width:0}.decor-window .decor-toolbar{margin:8px 0;gap:5px;display:flex;flex-wrap:wrap}.decor-add{align-items:end}.decor-add>button{flex:1}.decor-add>label{flex:1.3}.decor-window .decor-position{display:grid;grid-template-columns:repeat(4,1fr) 1.4fr 1.4fr}.decor-window .decor-position button{padding:5px 2px}.decor-commit button{flex:1}.decor-window .decor-save{background:#dce8cbe6;font-weight:600}.decor-status{min-height:17px}.decor-window.decor-collapsed .decor-body{display:none}.decor-window.decor-collapsed{width:auto;min-width:220px}
body[data-room-style=forest] #room{background:linear-gradient(180deg,#e2ead7 0%,#eaf0e1 66%,#bfcaab 66.3%,#d4ddc2 100%)}body[data-room-style=cream] #room{background:linear-gradient(180deg,#faf3e5 0%,#fff8ed 66%,#e6d8bf 66.3%,#f1e7d4 100%)}
@media(max-width:850px){#home .petlabel{max-width:calc(100% - 100px);padding:5px 8px}#home .petlabel .decor-open{margin-left:7px;min-height:34px;padding:5px 10px}#room .decor-window{right:8px;bottom:8px;width:min(340px,calc(100% - 16px));max-height:calc(100% - 66px)}.decor-window .decor-heading{min-height:40px;padding:4px 8px}.decor-window button,.decor-window select{min-height:36px}.decor-body{padding:0 8px 7px}}

#room[data-background]:not([data-background=""]){background-image:var(--room-background);background-size:cover;background-position:center;background-repeat:no-repeat}#room[data-background]:not([data-background=""])>.window,#room[data-background]:not([data-background=""])>.sunbeam,#room[data-background]:not([data-background=""])>.wall-art,#room[data-background]:not([data-background=""])>.plant,#room[data-background]:not([data-background=""])>.bench,#room[data-background]:not([data-background=""])>.rug,#room[data-background]:not([data-background=""])>.bowl{display:none}#room .decor-position{grid-template-columns:repeat(4,1fr)}.decor-angle{align-self:center;text-align:center;font-size:12px}.decor-fields>label:first-child{grid-column:1/-1}

#room .wall-frame{position:absolute;z-index:4;padding:8px;border:4px solid #a78055;border-radius:2px;background:#d7b48a;box-shadow:3px 5px 8px #34241744;touch-action:none;transform-origin:center;cursor:move}#room .wall-frame img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}#room .wall-frame:disabled{opacity:1;cursor:default}#room .wall-frame[data-style=cream]{border-color:#e8dfcf;background:#fff9ec}#room .wall-frame[data-style=sage]{border-color:#66785c;background:#c8d3b9}#room .wall-frame[data-selected=true]{outline:3px solid #799860;outline-offset:3px}

#room .decor-add{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}#room .decor-add>button{white-space:nowrap;font-size:11px;padding:7px 3px}#room .decor-add>label{grid-column:1/-1}

#room .decor-delete-dialog{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#26311d66;padding:18px}#room .decor-delete-dialog>div{max-width:330px;padding:23px;border-radius:16px;background:#fffdf5;box-shadow:0 12px 36px #0003;color:#34482e}#room .decor-delete-dialog h3{font-size:18px;margin:0 0 12px}#room .decor-delete-dialog p{font-size:13px;line-height:1.7}#room .decor-delete-dialog button{min-height:44px;padding:9px 15px;margin:4px;border:1px solid #b9c9a9;border-radius:9px;background:#f0f4e9;color:#34482e}#room .decor-delete-confirm{background:#e8c6b5!important}

/* Returning members already have a companion and home; keep their next step visible. */
#paw-welcome.returning-member .welcome-art,#paw-welcome.returning-member .welcome-steps{display:none}
#paw-welcome.returning-member .welcome-layout{grid-template-columns:1fr;min-height:0;max-width:620px;margin:26px auto 0}
#paw-welcome.returning-member .welcome-content{padding:32px}
#paw-welcome.returning-member .ready-paw{margin-top:16px}
@media(max-width:620px){#paw-welcome.returning-member .welcome-layout{margin-top:22px}#paw-welcome.returning-member .welcome-content{padding:26px 24px}#paw-welcome.returning-member .welcome-content h2{font-size:26px}}

/* Compact, independent audio toggles; the red cross stays vivid when muted. */
header .audio-controls{gap:4px;flex-wrap:nowrap}
header .audio-controls button{position:relative;display:grid;place-items:center;flex:0 0 36px;width:36px;min-width:36px;height:44px;min-height:44px;padding:7px;border-radius:14px;background:#e6f4d8;color:#426333;border:1px solid #b4cf9d;box-shadow:0 1px 4px #56754018;touch-action:manipulation}
header .audio-controls button svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
header .audio-controls button[aria-pressed=false]{background:#e4e5e2;color:#70756c;border-color:#d1d4cc;box-shadow:none}
header .audio-controls button[aria-pressed=false] svg{opacity:.38}
header .audio-controls button[aria-pressed=false]::after{content:"\00d7";position:absolute;right:0;top:-2px;color:#d83333;font:700 19px/20px Arial,sans-serif;text-shadow:0 0 2px #fff,0 0 2px #fff;pointer-events:none}
header .audio-controls button:focus-visible{outline:3px solid #789d56;outline-offset:2px}

#asset-loading{position:fixed;z-index:950;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(300px,calc(100vw - 48px));padding:15px 18px;border:1px solid #dce6d0;border-radius:18px;background:#fffef8f5;box-shadow:0 8px 30px #35482d22;color:#536b48;font-size:13px;pointer-events:none}#asset-loading[hidden]{display:none}#asset-loading>div{display:flex;justify-content:space-between;gap:12px}#asset-loading progress{display:block;width:100%;height:9px;margin:10px 0 7px;accent-color:#759b57}#asset-loading small{font-size:11px;color:#7b8970}#asset-loading button{pointer-events:auto;display:block;margin-top:9px;border:1px solid #d4dec8;border-radius:10px;background:#f1f6e9;padding:8px;color:inherit}#asset-loading button[hidden]{display:none}.visitors-lazy{padding:20px;color:#809173;font-size:13px}

/* The account controls share the phone's More menu, never the zero-height header. */
@media(max-width:850px){
 header .member-menu{display:none}
 .mobile-more>div{width:min(280px,calc(100vw - 24px));max-height:calc(100dvh - 80px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
 .mobile-more .member-menu{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:7px 4px 12px;margin-bottom:5px;border-bottom:1px solid #e1e7d8;font-size:12px}
 .mobile-more .member-menu>span{display:block;overflow-wrap:anywhere;line-height:1.6;color:#6e7e64}
 .mobile-more .member-menu #member-sync{font-size:11px;line-height:1.6}
 .mobile-more .member-menu button{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cfdbc4;border-radius:10px;background:#edf2e5;font-size:13px;text-align:left}
}
