.pet-village{isolation:isolate;background:var(--surface);color:var(--ink);border-radius:24px;overflow:hidden}.village-camera-menu{position:relative}.village-camera-menu summary{cursor:pointer;color:#234638;background:#fafbef;border:1px solid #466b3938;border-radius:14px;justify-content:center;align-items:center;gap:4px;min-width:44px;min-height:44px;font-size:9px;font-weight:800;list-style:none;display:flex}.village-camera-menu summary::-webkit-details-marker{display:none}.village-camera-menu summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.village-camera-popover{z-index:20;background:#fafbef;border-radius:18px;grid-template-columns:repeat(2,44px);gap:6px;padding:8px;display:grid;position:absolute;top:52px;right:0;box-shadow:0 6px 24px #19382b38}.pet-page-v2 .pet-layout:has(.pet-village){max-width:1200px}.pet-page-v2 .pet-home:has(.pet-village){max-width:none}.pet-share-village{background:var(--surface-subtle);border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:10px 12px;font-size:12px;display:flex}@media (width>=1100px){.pet-page-v2 .pet-layout:has(.pet-village){grid-template-columns:minmax(0,1fr) 300px}}.village-toolbar{justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.village-toolbar strong,.village-toolbar small{display:block}.village-toolbar strong{font-size:14px}.village-toolbar small{color:var(--muted);margin-top:4px;font-size:11px;line-height:1.5}.pet-village button{cursor:pointer;min-width:44px;min-height:44px;color:var(--ink);border:1px solid var(--line);background:var(--surface-subtle);font:inherit;border-radius:12px;font-size:12px;font-weight:700}.pet-village button:disabled{cursor:default;opacity:.48}.pet-village button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.village-toolbar button{flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.village-viewport{touch-action:none;cursor:crosshair;outline-offset:-4px;-webkit-user-select:none;user-select:none;background:#81ad7e;width:100%;height:clamp(360px,62svh,640px);position:relative;overflow:hidden}.village-panning .village-viewport{cursor:grab}.village-world{transform-origin:0 0;will-change:transform;background-size:100% 100%;position:absolute;top:0;left:0}.village-world .village-piece{pointer-events:none;opacity:1;background:0 0;border:0;border-radius:0;min-width:0;min-height:0;padding:0;position:absolute}.village-building-atlas,.village-piece .pet-garden-object{aspect-ratio:1;background-image:var(--village-building-image,url(/game/village-buildings-v3.webp));image-rendering:auto;background-repeat:no-repeat;background-size:400% 200%;width:100%;height:100%;display:block}.village-piece .pet-garden-object{background-image:var(--village-garden-image,url(/game/garden-objects-v1.webp));background-size:200% 200%}.village-path-tile{background-image:var(--village-path-image,url(/game/garden-paths-v1.webp));image-rendering:auto;background-repeat:no-repeat;display:block;position:absolute;bottom:12%}.village-piece-path{z-index:2!important}.village-editing .village-piece{pointer-events:auto;cursor:grab}.village-editing .village-piece-selected{filter:drop-shadow(0 0 4px #fff)drop-shadow(0 0 8px #2064cd)}.village-editing .village-piece-invalid{filter:drop-shadow(0 0 6px #e02842)}.village-grid{z-index:3;pointer-events:none;background-image:linear-gradient(90deg,#fff6 1px,#0000 1px),linear-gradient(#fff6 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:128px}.village-world .village-character{opacity:1;background:0 0;border:0;width:110px;min-width:0;height:110px;min-height:0;padding:0;position:absolute;transform:translate(-50%,-85%)}.village-pet-shadow{filter:blur(3px);background:#162b4038;border-radius:50%;width:60%;height:14%;position:absolute;bottom:15%;left:20%}.village-destination{z-index:4;pointer-events:none;border:3px solid #fff;border-radius:50%;width:30px;height:20px;animation:1s infinite village-ring;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #3775cb70}.village-emote{color:#ff729c;text-shadow:0 2px #fff;pointer-events:none;font-size:32px;font-weight:800;animation:1.7s infinite village-love;position:absolute;top:-14px;left:50%}.village-emote-wash{color:#f4fcff}.village-emote-feed{color:#ffdc67}.village-atmosphere{z-index:5;pointer-events:none;position:absolute;inset:0}.village-atmosphere i{opacity:.3;background:#fffad5;border-radius:50%;width:7px;height:7px;animation:9s infinite village-firefly;position:absolute;box-shadow:0 0 10px #fff4b6}.village-scale{color:#fff;pointer-events:none;background:#153222c9;border-radius:8px;padding:5px 8px;font-size:10px;position:absolute;bottom:12px;right:12px}.village-camera-tools{border-bottom:1px solid var(--line);justify-content:center;gap:8px;padding:10px 14px;display:flex}.village-camera-tools button{place-items:center;display:grid}.village-camera-tools button[aria-pressed=true]{background:var(--blue-soft);border-color:var(--blue)}.village-editor{gap:14px;padding:16px;display:grid}.village-editor-actions{align-items:center;gap:8px;display:flex}.village-editor-actions button{padding:8px 12px}.village-editor-actions span{color:var(--muted);margin-left:auto;font-size:11px}.village-palette{scrollbar-width:thin;gap:8px;padding:4px 2px 10px;display:flex;overflow-x:auto}.village-palette button{flex-direction:column;flex:0 0 86px;justify-content:space-between;align-items:center;gap:6px;padding:8px 4px;display:flex}.village-palette .village-building-atlas,.village-palette .pet-garden-object{width:56px;height:56px}.village-palette .village-path-tile{position:relative;bottom:auto;width:48px!important;height:32px!important;left:auto!important}.village-palette small{font-size:10px;line-height:1.3}.village-selection{border:1px solid var(--line);border-radius:16px;gap:8px;padding:12px;display:grid}.village-selection strong{font-size:13px}.village-selection span{color:var(--muted);font-size:11px}.village-selection div{flex-wrap:wrap;gap:6px;display:flex}.village-selection button{padding:7px 10px}.village-editor footer{justify-content:flex-end;gap:8px;display:flex}.village-editor footer button{padding:10px 14px}.village-editor .village-save{color:#fff;background:#255bc4;border-color:#255bc4}.village-message{color:var(--muted);margin:0;padding:12px 16px;font-size:12px;line-height:1.6}.pet-character-options{flex-wrap:wrap;gap:8px;display:flex}.pet-character-options p{width:100%;color:var(--muted);font-size:12px}.pet-character-options label{border:1px solid var(--line);border-radius:16px;flex:1;justify-items:center;gap:6px;min-width:88px;max-width:140px;padding:10px;font-size:12px;display:grid}.pet-character-options label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}.pet-character-options .pet-sprite-wrap{pointer-events:none;width:64px}.village-resource-status{color:#fff;z-index:80;background:#152a42e8;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex;position:absolute;inset:0}.village-resource-status button{padding:10px 14px}.village-preview{isolation:isolate;contain:paint;aspect-ratio:1.8;background:#b6d4a3;border-radius:18px;width:100%;margin-bottom:14px;position:relative;overflow:hidden}.village-preview-map{aspect-ratio:1;background-size:100% 100%;width:100%;position:absolute;top:-25%;left:0}.village-preview-piece{pointer-events:none;position:absolute}.village-preview-piece .pet-garden-object{image-rendering:auto;background-image:url(/game/garden-objects-v1.webp);background-repeat:no-repeat;background-size:200% 200%;width:100%;height:100%;display:block}.village-preview-pet{z-index:30;width:8%;position:absolute;transform:translate(-50%,-80%)}.village-preview-caption{color:#fff;background:#102638d9;border-radius:9px;padding:6px 10px;font-size:11px;position:absolute;bottom:10px;left:10px}@keyframes village-firefly{0%,to{opacity:.1;transform:translate(0)}50%{opacity:.7;transform:translate(18px,-32px)}}@keyframes village-ring{0%,to{opacity:.5}50%{opacity:1}}@keyframes village-love{0%,to{opacity:.4;transform:translate(-50%)scale(.9)}50%{opacity:1;transform:translate(-50%,-12px)scale(1.1)}}@media (width<=760px){.village-toolbar{gap:6px;padding:12px}.village-toolbar strong{font-size:12px}.village-toolbar button{padding:8px;font-size:11px}.village-toolbar small{max-width:170px}.village-viewport{height:clamp(350px,54svh,520px)}.village-editor{padding:12px}.village-editor-actions span{font-size:10px}.village-editor footer button{flex:1;padding:8px;font-size:11px}}@media (height<=500px) and (orientation:landscape){.village-viewport{height:300px}}@media (prefers-reduced-motion:reduce){.village-atmosphere i,.village-emote,.village-destination{animation:none}.village-world{will-change:auto}}.profile-banner{border:1px solid var(--app-edge);background:var(--surface);color:var(--ink);border-radius:24px;width:100%;min-width:0;overflow:hidden}.profile-banner-cover{isolation:isolate;height:228px;position:relative;overflow:hidden}.profile-banner-cover:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000 15%,#050c19db);position:absolute;inset:0}.profile-banner-orbit{pointer-events:none;border:1px solid #ffffff29;border-radius:50%;width:300px;height:300px;position:absolute;top:-160px;right:-40px}.profile-banner-person{z-index:2;pointer-events:none;color:#fff;align-items:center;gap:16px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}.profile-banner-person>div{min-width:0}.profile-banner-person h2{overflow-wrap:anywhere;color:#fff;margin:5px 0 7px;font-size:clamp(22px,3vw,30px);line-height:1.25}.profile-banner-label{letter-spacing:.1em;font-size:10px;font-weight:700}.profile-banner-person div>span:last-child{font-size:12px}.profile-banner-details{padding:22px 24px}.profile-banner-details p{overflow-wrap:anywhere;margin:0 0 14px;font-size:14px;line-height:1.7}.profile-banner-details small{color:var(--muted);font-size:12px}.profile-interest-tags{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.profile-interest-tags span{background:var(--surface-subtle);border-radius:9px;padding:6px 10px;font-size:11px}.profile-sticker{color:#fff;z-index:-1;filter:drop-shadow(0 3px 8px #0003);place-items:center;width:52px;height:52px;display:grid;position:absolute}button.profile-sticker{z-index:1;touch-action:none;cursor:grab;background:0 0;border:1px solid #0000;border-radius:12px}button.profile-sticker:active{cursor:grabbing}button.profile-sticker.is-selected{background:#0003;border:2px dashed #fff}.profile-banner-dialog{background:var(--surface);width:min(660px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border:1px solid var(--app-edge);box-shadow:var(--shadow-dialog);border-radius:26px;padding:0;overflow:auto}.profile-banner-dialog::backdrop,.profile-editor-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050c1999}.profile-banner-dialog .profile-banner{border:0;border-radius:0}.profile-banner-close{z-index:3;color:#fff;cursor:pointer;background:#182238;border:1px solid #ffffff40;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:12px;right:12px}.profile-banner-actions{border-top:1px solid var(--app-edge);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.profile-banner-actions>span{color:var(--muted);font-size:12px}.profile-banner-actions button{border:1px solid var(--app-edge);min-width:76px;min-height:44px;color:var(--ink);background:var(--surface-subtle);font:inherit;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;display:flex}.profile-banner-actions button.is-liked{color:var(--danger)}.profile-banner-actions button:disabled{opacity:.6;cursor:default}.profile-banner-error{color:var(--danger);padding:0 24px 16px;font-size:13px;line-height:1.6}.personal-banner-section{margin:24px 0}.personal-banner-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}.personal-banner-toolbar>div{gap:4px;display:grid}.personal-banner-toolbar strong{font-size:14px}.personal-banner-toolbar small{color:var(--muted);font-size:12px}.personal-banner-toolbar button,.personal-banner-section>p button{border:1px solid var(--app-edge);background:var(--surface);color:var(--ink);min-height:44px;font:inherit;cursor:pointer;border-radius:14px;padding:10px 16px;font-size:13px}.profile-daily-progress{border:1px solid var(--app-edge);background:var(--surface);border-radius:22px;margin-top:22px;padding:24px}.profile-daily-progress h3{margin:0 0 8px;font-size:18px}.profile-daily-progress p{color:var(--muted);font-size:13px;line-height:1.7}.profile-daily-progress progress{width:100%;height:8px;accent-color:var(--app-accent)}.profile-daily-progress small{color:var(--muted);font-size:12px}.profile-daily-progress ul{margin:16px 0 0;padding:0;list-style:none}.profile-daily-progress li{border-top:1px solid var(--app-edge);justify-content:space-between;gap:12px;padding:12px 0;font-size:13px;display:flex}.profile-daily-progress li strong{white-space:nowrap;font-size:12px}.profile-daily-progress li>a{width:100%;min-height:44px;color:var(--ink);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;display:flex}.profile-daily-progress li>a:hover{background:var(--surface-subtle)}.profile-daily-progress li>a>strong{color:var(--muted)}.profile-daily-count{color:var(--muted);margin-top:10px;font-size:12px;display:block}.banner-loading{border:1px solid var(--app-edge);background:var(--surface);border-radius:22px;grid-column:1/-1;width:100%;padding:0 0 16px;overflow:hidden}.banner-loading-cover{background:var(--surface-subtle);height:230px}.banner-loading-line{background:var(--surface-subtle);border-radius:8px;width:60%;height:14px;margin:24px 24px 16px}.banner-loading p{color:var(--muted);margin:0 24px;font-size:13px}.profile-banner-dialog button{cursor:pointer}.profile-banner-dialog :focus-visible,.personal-banner-section :focus-visible{outline:3px solid var(--app-accent);outline-offset:3px}.is-compact .profile-banner-cover{height:170px}.is-compact .profile-banner-person{gap:10px;bottom:16px;left:16px}.is-compact .profile-banner-person>.world-avatar{width:44px;height:44px}.is-compact .profile-banner-person h2{font-size:19px}.is-compact .profile-banner-details{padding:16px}.is-compact .personal-banner-toolbar{flex-wrap:wrap}@media (width<=640px){.profile-banner-cover{height:210px}.profile-banner-person{gap:12px;bottom:20px;left:18px;right:18px}.profile-banner-person>.world-avatar{width:60px;height:60px}.profile-banner-details{padding:18px}.profile-banner-label{font-size:9px}.profile-banner-actions{padding:14px 18px}.personal-banner-toolbar{flex-wrap:wrap}.profile-daily-progress{padding:18px}}@media (prefers-reduced-transparency:reduce){.profile-banner-dialog::backdrop,.profile-editor-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.profile-pet-actions{border-top:1px solid var(--line);color:var(--ink);padding:18px 22px}.profile-pet-companion{align-items:center;gap:12px;margin-bottom:14px;display:flex}.profile-pet-companion>.pet-sprite-wrap{flex:none;width:64px}.profile-pet-companion strong,.profile-pet-companion small{display:block}.profile-pet-companion small{color:var(--muted);margin-top:4px;font-size:11px}.profile-pet-buttons{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.profile-pet-actions a,.profile-pet-actions button{border:1px solid var(--line);background:var(--surface-subtle);min-height:44px;color:var(--ink);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.profile-pet-buttons>span{color:var(--muted);font-size:12px}.profile-pet-actions a.profile-village-preview-link{background:0 0;border:0;border-radius:18px;padding:0;display:block}.profile-pet-actions p{color:var(--muted);font-size:12px;line-height:1.6}
