.wl-living-world .wl-heading { align-items:center; gap:2rem; }
.wl-living-world .wl-heading nav { justify-content:flex-end; flex-wrap:wrap; gap:.4rem 1rem; max-width:850px; }
.wl-living-world .wl-heading nav a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border-radius:20px; padding:.35rem .65rem; }
.wl-living-world .wl-heading nav a[aria-current=page] { background:#dfebd7; color:#294d38; }
.wl-place-intro { min-height:190px; padding-bottom:1.6rem; }
.wl-place-intro h1 { white-space:pre-line; max-width:830px; }
.wl-place-intro .wl-hero-pet { width:180px; height:180px; }
.wl-place-intro p { max-width:740px; }
.wl-village-map-section { margin:1rem 0 2.5rem; }
.wl-village-map { position:relative; isolation:isolate; overflow:hidden; border:1px solid #c7d8ba; border-radius:26px; box-shadow:0 15px 36px #39583919; background:#c2d5a4; }
.wl-village-map > img { display:block; width:100%; aspect-ratio:2; object-fit:cover; }
.wl-map-stop { position:absolute; left:var(--stop-x); top:var(--stop-y); transform:translate(-50%,-50%); background:#fffcf1f2; color:#284739; border:1px solid #b7c7a1; border-radius:14px; padding:.4rem .75rem; box-shadow:0 3px 10px #294d3833; display:grid; text-align:center; text-decoration:none; line-height:1.25; min-width:104px; transition:box-shadow .15s,background .15s; }
.wl-map-mobile-trails { display:none; }
.wl-map-stop span { font-family:Exo,sans-serif; font-weight:750; font-size:.96rem; }
.wl-map-stop small { font-size:.68rem; color:#64725a; }
.wl-map-stop:hover,.wl-map-stop:focus-visible { background:#fffbed; box-shadow:0 0 0 4px #e4cb6dbb,0 4px 15px #26473755; z-index:2; }
.wl-trail-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.25rem; }
.wl-trail-cards a { text-decoration:none; color:#2c493e; }
.wl-trail-cards h3 { margin:.6rem 0; }
.wl-trail-cards p { margin:0; font-size:.9rem; color:#657a69; }
.wl-first-visit { display:grid; grid-template-columns:1fr 1.3fr; margin-top:1rem; gap:2rem; background:#f6efda; }
.wl-first-visit h3 { margin:.5rem 0; }
.wl-first-visit p { margin:0; color:#6d7861; }
.wl-first-visit ol { display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.5rem; margin:auto 0; padding-left:1.5rem; }
.wl-first-visit a { color:#426346; }
.wl-companion-life { display:grid; grid-template-columns:280px 1fr; gap:2rem; margin:1.5rem 0; align-items:start; background:linear-gradient(115deg,#eef3e3,#fffcf4 47%); }
.wl-companion-portrait { position:relative; width:100%; aspect-ratio:1; }
.wl-companion-portrait canvas { width:100%; height:100%; display:block; opacity:0; }
.wl-companion-portrait .wl-companion-fallback { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.wl-companion-art-ready canvas { opacity:1; }
.wl-companion-art-ready .wl-companion-fallback { display:none; }
.wl-companion-life h2 { margin:.25rem 0; }
.wl-companion-life-copy > p { max-width:780px; }
.wl-friendship-meter { display:flex; flex-wrap:wrap; gap:.3rem 1rem; max-width:500px; font-size:.82rem; color:#526c54; }
.wl-friendship-meter span { margin-left:auto; }
.wl-friendship-meter progress { flex-basis:100%; accent-color:#9a7bad; width:100%; height:8px; border:0; }
.wl-companion-life details { border-top:1px solid #dae3ce; padding:.65rem 0; max-width:780px; }
.wl-companion-life summary { cursor:pointer; font-weight:650; font-size:.85rem; }
.wl-companion-life details label { display:block; margin-top:1rem; }
.wl-companion-life input { border:1px solid #b9cbb1; border-radius:10px; padding:.55rem; margin:.5rem .5rem .5rem 0; }
.wl-memories { list-style:none; padding:0; }
.wl-memories li { display:flex; gap:1rem; justify-content:space-between; padding:.5rem 0; font-size:.83rem; }
.wl-memories time { color:#7c826d; white-space:nowrap; }
.wl-companion-links { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:.8rem; }
.wl-wardrobe { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; padding:.75rem 0; }
.wl-wardrobe > .wl-text-button { grid-column:1/-1; justify-self:start; }
.wl-wardrobe > button:not(.wl-text-button) { background:#fffdf4; border:1px solid #cddbc5; border-radius:12px; padding:.7rem .4rem; display:grid; gap:.2rem; align-content:start; font:inherit; color:#345445; cursor:pointer; }
.wl-wardrobe img { width:72px; height:72px; object-fit:contain; margin:auto; }
.wl-wardrobe span { font-size:.8rem; font-weight:700; }
.wl-wardrobe small { font-size:.7rem; }
.wl-wardrobe button:disabled { cursor:default; opacity:.55; }
.wl-wardrobe .wl-outfit-selected { box-shadow:0 0 0 2px #769662; }
.wl-game-supplies { display:block; margin:.75rem 0; color:#75816a; line-height:1.5; }
.wl-return-trails { display:flex; gap:1.5rem; flex-wrap:wrap; align-items:center; margin:1.25rem 0; }
.wl-return-trails h3 { margin:0; }
.wl-return-trails a { color:#47734f; font-size:.9rem; }
.wl-village-footer { display:flex; flex-wrap:wrap; gap:1.5rem; margin:3rem 0 1rem; padding-top:1.5rem; border-top:1px solid #dce4cf; font-size:.8rem; color:#72846b; }
.wl-village-footer a { color:#456951; }
.wl-village-footer span { flex-basis:100%; }
.wl-meadow-decor { margin-top:1rem; }
.wl-meadow-decor summary { cursor:pointer; font-weight:700; }
.wl-meadow-decor .wl-meadow-decor-grid { margin-top:1rem; }
.wl-friend-memory { font-size:.77rem; color:#688057; padding-bottom:.5rem; }
.wl-world :focus-visible { outline:3px solid #9b7fb4; outline-offset:3px; }
.wl-world section[id] { scroll-margin-top:6rem; }
.wl-account-continuity { margin:1rem 0; }
.wl-notice:empty { padding:0; margin:0; min-height:0; }
.wl-world .wl-game-card:hover { color:var(--wl-ink); }
.wl-world .wl-button { min-height:44px; }
.wl-world .wl-trail-cards a:hover { color:#2c493e; }
.wl-world .wl-card p a:not(.wl-button), .wl-world .wl-home-goals a, .wl-world .wl-text-button:hover { color:#315b45; }
.wl-account-continuity summary { cursor:pointer; list-style:none; position:relative; padding-right:2rem; }
.wl-account-continuity summary::-webkit-details-marker { display:none; }
.wl-account-continuity summary::after { content:""; position:absolute; right:.2rem; top:50%; width:.5rem; height:.5rem; border-right:2px solid #58705e; border-bottom:2px solid #58705e; transform:translateY(-70%) rotate(45deg); }
.wl-account-continuity details[open] > summary::after { transform:translateY(-30%) rotate(225deg); }
.wl-account-compact { padding:.8rem 1rem; background:#eef2e4; }
.wl-account-compact summary .wl-eyebrow { display:none; }
.wl-account-compact summary h2 { font-family:'Open Sans',sans-serif; font-size:.85rem; margin:0; line-height:1.6; }
.wl-account-compact details[open] > summary { margin-bottom:.6rem; }
.wl-account-compact .wl-text-button { display:inline-flex; align-items:center; min-height:44px; margin-left:.75rem; }
@media (max-width:800px) {
    .wl-living-world .wl-heading { display:block; }
    .wl-living-world .wl-heading nav { justify-content:flex-start; gap:.35rem; margin-top:1rem; }
    .wl-place-intro .wl-hero-pet { width:120px; height:120px; }
    .wl-map-stop { padding:.3rem .45rem; min-width:80px; border-radius:10px; }
    .wl-map-stop span { font-size:.73rem; } .wl-map-stop small { display:none; }
    .wl-trail-cards { grid-template-columns:1fr; } .wl-first-visit { grid-template-columns:1fr; gap:1rem; }
    .wl-companion-life { grid-template-columns:180px 1fr; gap:1rem; }
}
@media (max-width:520px) {
    .wl-place-intro { align-items:center; gap:.5rem; } .wl-place-intro .wl-hero-pet { width:90px; height:110px; }
    .wl-village-map { border-radius:16px; }
    .wl-village-map > img { aspect-ratio:2; }
    .wl-map-stop { display:none; }
    .wl-map-mobile-trails { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; margin-top:.75rem; }
    .wl-map-mobile-trails a { background:#fffdf4; border:1px solid #d1dfc6; border-radius:10px; padding:.7rem .4rem; color:#426449; text-decoration:none; text-align:center; }
    .wl-map-mobile-trails strong { display:block; font-size:.76rem; }
    .wl-map-mobile-trails small { font-size:.65rem; color:#738365; }
    .wl-map-stop span { font-size:.66rem; }
    .wl-companion-life { display:block; } .wl-companion-portrait { max-width:200px; margin:auto; }
    .wl-first-visit ol { grid-template-columns:1fr; gap:.8rem; }
    .wl-wardrobe { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) { .wl-map-stop { transition:none; } }
.wl-world .wl-new-adventure { display:inline-block; margin:0 0 10px; padding:4px 9px; border-radius:20px; background:#e3ecd6; color:#38573d; font-size:.68rem; font-weight:800; letter-spacing:.04em; }
