
:root{
 --cream:#fffaf0;--paper:#fffdf8;--yellow:#ffeb62;--gold:#f1c845;--orange:#f2a452;
 --brown:#8b5d33;--ink:#28231e;--muted:#695f54;--pink:#f7d6d5;--blue:#dfeef2;
 --line:#eadfc9;--shadow:0 18px 50px rgba(77,56,25,.10);
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;background:var(--cream)}
a{color:inherit;text-decoration:none} img{display:block;max-width:100%}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px 5vw;background:rgba(255,250,240,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo{font-weight:900;letter-spacing:.09em;font-size:15px}.duckdot{color:var(--gold);font-size:24px;vertical-align:-2px;margin-right:7px}
nav{display:flex;align-items:center;gap:24px;font-size:14px;font-weight:700}nav a:hover{opacity:.6}
.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:12px 18px;font-weight:800}
.pill.dark{background:var(--ink);color:white}.pill.yellow{background:var(--yellow)}
.hero{width:min(1200px,90vw);margin:42px auto 20px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-copy{padding:20px 0}.kicker{font-size:12px;font-weight:900;letter-spacing:.18em;color:var(--brown);margin-bottom:14px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif}
h1{font-size:clamp(52px,7vw,96px);line-height:.92;letter-spacing:-.05em;margin:0 0 26px}h1 em{font-style:italic;color:var(--brown)}
.hero-text{font-size:20px;line-height:1.65;color:var(--muted);max-width:630px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 18px}.tiny{color:#8d8173;font-size:13px}
.hero-visual{position:relative}.hero-card{background:#ffe58b;border:1px solid #efd36d;padding:22px;border-radius:44px;box-shadow:var(--shadow);transform:rotate(1.5deg)}
.hero-card img{border-radius:30px;background:white}.mini-note{position:absolute;right:-10px;bottom:24px;background:white;padding:12px 16px;border-radius:15px;box-shadow:var(--shadow);font-weight:800;transform:rotate(-4deg)}
.scribble{position:absolute;font-size:34px;font-weight:900;color:var(--brown)}.s1{left:-22px;top:20px}.s2{right:0;top:-28px}
.marquee{margin-top:56px;background:var(--ink);color:white;display:flex;gap:28px;justify-content:center;flex-wrap:wrap;padding:18px 5vw;font-size:12px;font-weight:900;letter-spacing:.16em}
.section{width:min(1200px,90vw);margin:0 auto;padding:110px 0}.heading{max-width:760px;margin-bottom:44px}.heading.compact{margin-bottom:28px}.heading h2,.contact h2,.creator h2{font-size:clamp(38px,5vw,65px);line-height:1.03;letter-spacing:-.035em;margin:0 0 18px}.heading p,.creator-box p{font-size:18px;line-height:1.75;color:var(--muted)}
.story-grid{display:grid;grid-template-columns:1.1fr .8fr .8fr;gap:20px;align-items:stretch}.portrait,.quote-card{border-radius:30px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:white}
.portrait{padding:18px}.portrait img{width:100%;height:100%;min-height:330px;object-fit:contain;background:#fff}.portrait .caption{display:block;padding:13px 4px 2px;font-weight:800;color:var(--brown)}
.quote-card{background:var(--yellow);padding:40px;display:flex;flex-direction:column;justify-content:center}.quote-card p{font-family:Georgia,serif;font-size:34px;line-height:1.18;margin:0 0 20px}.quote-card small{font-weight:700}
.feelings{background:transparent}.mood-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.mood-row figure{margin:0;background:white;border:1px solid var(--line);border-radius:24px;padding:14px;box-shadow:var(--shadow);text-align:center}.mood-row img{width:100%;aspect-ratio:1/1;object-fit:contain}.mood-row figcaption{font-weight:900;margin-top:8px;font-size:13px}
.products{border-top:1px solid var(--line)}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.product{background:white;border:1px solid var(--line);border-radius:34px;overflow:hidden;box-shadow:var(--shadow)}
.photo{padding:18px;background:#fff0a7}.photo.pillow{background:#e7ecec}.photo img{width:100%;height:420px;object-fit:cover;border-radius:22px}.copy{padding:26px}.badge{display:inline-block;background:var(--yellow);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900;letter-spacing:.12em}.copy h3{font-size:34px;margin:16px 0 10px}.copy p{color:var(--muted);font-size:16px;line-height:1.7}.text-link{font-weight:900;border-bottom:2px solid var(--yellow)}
.creator{padding-top:40px}.creator-box{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;background:var(--pink);border-radius:36px;padding:48px;border:1px solid #efc4c2}.creator-mark{min-height:250px;border-radius:28px;background:white;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:78px;box-shadow:var(--shadow)}.creator-mark span{font-size:14px;font-weight:900;margin-top:10px}
.contact{margin-top:80px;background:var(--ink);color:white;padding:80px max(5vw,calc((100vw - 1200px)/2));display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:end}.contact p{color:#d6d0c8}.kicker.light{color:#ffe973}.emails{display:flex;flex-direction:column;gap:12px;font-weight:800;font-size:18px}.emails a{border-bottom:1px solid #6f6860;padding-bottom:5px;width:max-content}
footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:25px 5vw;background:#1d1916;color:#a9a19a;font-size:12px}
@media(max-width:920px){nav a:not(.pill){display:none}.hero,.story-grid,.product-grid,.creator-box,.contact{grid-template-columns:1fr}.hero-visual{order:-1}.mood-row{grid-template-columns:repeat(3,1fr)}.portrait img{min-height:260px}}
@media(max-width:560px){.topbar{padding:14px 4vw}.hero,.section{width:92vw}.hero{margin-top:22px;gap:20px}.section{padding:76px 0}.hero-card{padding:12px;border-radius:28px}.hero-card img{border-radius:20px}.mini-note{position:static;margin-top:10px;display:inline-block}.mood-row{grid-template-columns:repeat(2,1fr)}.photo img{height:320px}.creator-box{padding:26px}.contact{padding:58px 4vw}.quote-card p{font-size:28px}}

/* V7: keep V3 layout, add comics + newer product content */
.comics-section-v3{
  background:#fff4cf;
  border:1px solid var(--line);
  border-radius:32px;
  padding:48px;
  box-shadow:var(--shadow);
}
.comic-preview-v3{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:30px;
}
.comic-box-v3{
  aspect-ratio:1/1;
  border:2px solid var(--ink);
  border-radius:18px;
  background:white;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px;
}
.comic-box-v3 span{
  position:absolute;top:10px;left:10px;
  width:26px;height:26px;border-radius:50%;
  background:var(--ink);color:white;
  display:grid;place-items:center;font-weight:900;font-size:12px;
}
.comic-box-v3 p{
  font-family:Georgia,"Times New Roman",serif;
  font-size:18px;color:var(--soft-ink);
  max-width:150px;
}
.coming-row-v3{
  margin-top:18px;
  background:white;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px 18px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}
.coming-row-v3 strong{letter-spacing:.12em;font-size:12px}
.coming-row-v3 span{color:var(--soft-ink)}
.video-block{margin-top:18px}
.video-block h4{font-family:"Fredoka",sans-serif;margin:0 0 10px}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.video-grid video,.single-video-v3{width:100%;border-radius:16px;border:1px solid var(--line);background:#f4efe5}
.creator-photo-v3{
  background:#fff;
  border-radius:30px;
  padding:16px;
  text-align:center;
  box-shadow:var(--shadow);
}
.creator-photo-v3 img{
  width:100%;
  height:320px;
  object-fit:cover;
  border-radius:22px;
}
.creator-photo-v3 span{
  display:block;
  margin-top:12px;
  font-weight:800;
  color:var(--brown);
}
@media(max-width:900px){
  .comic-preview-v3{grid-template-columns:1fr 1fr}
  .video-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .comics-section-v3{padding:26px}
  .comic-preview-v3{grid-template-columns:1fr 1fr}
  .coming-row-v3{flex-direction:column;align-items:flex-start}
  .creator-photo-v3 img{height:auto}
}

/* V8 moderated comment zones */
.comment-zone{
  margin-top:22px;
  padding:20px;
  border:1px solid var(--line);
  background:#fffdf9;
  border-radius:22px;
}
.comment-zone-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:12px;
}
.comment-kicker{
  display:block;
  font-size:10px;
  letter-spacing:.14em;
  color:var(--brown);
  font-weight:900;
  margin-bottom:5px;
}
.comment-zone h4{
  margin:0;
  font-family:"Fredoka",sans-serif;
  font-size:20px;
}
.moderated-badge{
  white-space:nowrap;
  background:#f4ead5;
  color:var(--brown);
  padding:6px 9px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.public-comments{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:14px 0;
}
.public-comment{
  background:white;
  border:1px solid var(--line);
  border-radius:16px;
  padding:13px;
}
.public-comment strong{font-size:13px}
.public-comment p{
  margin:6px 0 0;
  color:var(--soft-ink);
  line-height:1.45;
  font-size:13px;
}
.no-comments-yet{
  color:#8c8175;
  font-size:13px;
  margin:10px 0 14px;
}
.comment-form{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:10px;
}
.comment-form label{
  font-size:11px;
  font-weight:800;
  color:var(--brown);
}
.comment-form input,.comment-form textarea{
  width:100%;
  margin-top:5px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 11px;
  background:white;
  color:var(--ink);
  font:inherit;
  font-size:13px;
  outline:none;
}
.comment-form textarea{min-height:74px;resize:vertical}
.comment-form input:focus,.comment-form textarea:focus{border-color:#c7a86a}
.comment-form-bottom{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.comment-form-bottom small{
  color:#8c8175;
  font-size:10px;
  line-height:1.4;
  max-width:65%;
}
.comment-form button{
  border:0;
  border-radius:999px;
  padding:10px 14px;
  background:var(--ink);
  color:white;
  font-weight:800;
  cursor:pointer;
}
.comment-form button:hover{opacity:.85}
.honeypot{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}
@media(max-width:650px){
  .comment-form{grid-template-columns:1fr}
  .comment-form-bottom{flex-direction:column;align-items:flex-start}
  .comment-form-bottom small{max-width:none}
  .public-comments{grid-template-columns:1fr}
}

.active-nav{color:var(--ink)!important;border-bottom:2px solid var(--yellow);padding-bottom:4px}
.story-page-intro{width:min(1200px,90vw);margin:54px auto 8px;display:flex;align-items:flex-end;justify-content:space-between;gap:36px;padding:34px 0 24px;border-bottom:1px solid var(--line)}
.story-page-intro h1{font-size:clamp(54px,7vw,90px);margin:0 0 14px}
.story-page-intro p{margin:0;font-size:20px;color:var(--muted);max-width:680px;line-height:1.6}
.back-home{white-space:nowrap;font-weight:800;color:var(--brown);margin-bottom:10px}
.story-page-footer-card{width:min(1200px,90vw);margin:0 auto 90px;padding:38px 42px;border-radius:30px;background:#fff0b8;display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--line);box-shadow:var(--shadow)}
.story-page-footer-card h2{font-size:clamp(34px,4vw,52px);margin:0 0 10px}
.story-page-footer-card p{margin:0;color:var(--muted);line-height:1.6}
@media(max-width:760px){.story-page-intro,.story-page-footer-card{flex-direction:column;align-items:flex-start}}


/* V10 — first published Duckie Girl comic */
.published-comic-card{
  margin-top:28px;
  background:white;
  border:1px solid var(--line);
  border-radius:30px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.published-comic-image{
  padding:18px;
  background:#fff7bf;
}
.published-comic-image img{
  width:100%;
  display:block;
  border-radius:20px;
  background:white;
}
.published-comic-meta{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
  padding:22px 24px 26px;
}
.comic-number{
  display:inline-block;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  color:var(--brown);
  margin-bottom:8px;
}
.published-comic-meta h3{
  font-size:30px;
  margin:0 0 8px;
  font-family:"Fredoka",sans-serif;
}
.published-comic-meta p{
  margin:0;
  color:var(--soft-ink);
}
.comic-live-badge{
  flex:0 0 auto;
  background:var(--yellow);
  color:var(--ink);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  border-radius:999px;
  padding:8px 11px;
}
@media(max-width:640px){
  .published-comic-image{padding:10px}
  .published-comic-meta{padding:18px;flex-direction:column}
  .published-comic-meta h3{font-size:24px}
}

/* V11 — Duckie City interactive town homepage */
.town-body{background:#eef7e6;overflow-x:hidden}
.town-topbar{background:rgba(255,253,246,.94)}
.town-shell{min-height:100vh;background:linear-gradient(#dff3ff 0 26%,#eaf8d9 26% 100%);position:relative;overflow:hidden}
.town-sky{position:absolute;inset:0 0 auto 0;height:31%;pointer-events:none}
.town-cloud{position:absolute;width:126px;height:44px;border-radius:50px;background:#fff;opacity:.88;filter:drop-shadow(0 5px 8px rgba(81,110,124,.08));animation:cloudDrift 16s ease-in-out infinite alternate}
.town-cloud:before,.town-cloud:after{content:"";position:absolute;background:#fff;border-radius:50%}
.town-cloud:before{width:54px;height:54px;left:22px;top:-24px}.town-cloud:after{width:68px;height:68px;right:18px;top:-34px}
.cloud-one{left:8%;top:75px}.cloud-two{right:10%;top:130px;transform:scale(.72);animation-delay:-5s}.cloud-three{left:52%;top:40px;transform:scale(.55);animation-delay:-10s}
@keyframes cloudDrift{from{translate:-10px 0}to{translate:18px 4px}}
.town-hero{width:min(1180px,92vw);margin:0 auto;padding:64px 0 28px;position:relative;z-index:2;display:flex;justify-content:space-between;gap:30px;align-items:flex-end}
.town-hero h1{font-family:"Fredoka",Georgia,serif;font-size:clamp(54px,8vw,104px);line-height:.86;letter-spacing:-.055em;margin:0;color:#342b25}
.town-hero h1 span{display:block;color:#8b6236;font-size:.48em;letter-spacing:-.02em;margin-top:14px}
.town-intro{max-width:430px;background:rgba(255,255,255,.82);border:1px solid rgba(139,98,54,.12);border-radius:24px;padding:20px 22px;box-shadow:0 15px 35px rgba(55,78,30,.08);backdrop-filter:blur(8px)}
.town-intro p{margin:0;color:#655b50;line-height:1.65}.town-intro strong{color:#342b25}
.town-map{width:min(1220px,96vw);margin:0 auto;padding:28px 18px 110px;position:relative;z-index:2}
.town-path{position:absolute;left:50%;top:280px;width:980px;height:410px;translate:-50% 0;border:76px solid #f0d8a0;border-top-width:54px;border-bottom-width:54px;border-radius:50%;opacity:.72;z-index:0}
.town-path:after{content:"";position:absolute;left:48%;top:185px;width:105px;height:380px;background:#f0d8a0;transform:rotate(6deg);border-radius:55px}
.town-green{position:absolute;inset:160px 0 0;background:radial-gradient(circle at 12% 22%,#cfe9b7 0 4px,transparent 5px),radial-gradient(circle at 87% 58%,#cfe9b7 0 4px,transparent 5px);background-size:84px 84px;opacity:.4;z-index:-1}
.town-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:44px;align-items:end;padding-top:80px}
.home-lot{position:relative;min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.home-link{display:block;width:100%;text-align:center;position:relative;transition:transform .2s ease}.home-link:hover{transform:translateY(-7px) scale(1.015)}
.house{position:relative;width:min(330px,92%);height:285px;margin:auto;filter:drop-shadow(0 18px 18px rgba(76,72,39,.16))}
.house-base{position:absolute;left:12%;right:12%;bottom:0;height:190px;background:#fff5dc;border:4px solid #5b483a;border-radius:28px 28px 18px 18px}
.house-door{position:absolute;width:72px;height:118px;bottom:0;left:50%;transform:translateX(-50%);border:4px solid #5b483a;border-bottom:0;border-radius:40px 40px 0 0;background:#b9794a}
.house-window{position:absolute;width:58px;height:58px;bottom:82px;border:4px solid #5b483a;border-radius:14px;background:#ccecf6;box-shadow:inset 0 0 0 6px #fff}
.house-window.left{left:20%}.house-window.right{right:20%}
.duck-roof{position:absolute;left:1%;right:1%;top:8px;height:138px;background:#ffeb62;border:4px solid #4e4034;border-radius:52% 52% 35% 35% / 72% 72% 38% 38%;z-index:3}
.duck-roof:after{content:"";position:absolute;left:-4%;right:-4%;bottom:-12px;height:45px;background:#ffeb62;border:4px solid #4e4034;border-top:0;border-radius:0 0 50% 50%;clip-path:polygon(0 0,10% 26%,20% 4%,30% 30%,41% 6%,51% 29%,61% 7%,72% 31%,83% 5%,92% 28%,100% 0,100% 100%,0 100%)}
.duck-eye{position:absolute;top:45px;width:12px;height:12px;border-radius:50%;background:#342b25;z-index:5}.duck-eye.e1{left:39%}.duck-eye.e2{right:39%}.duck-beak{position:absolute;left:50%;top:63px;transform:translateX(-50%);width:44px;height:23px;background:#f2a452;border:4px solid #4e4034;border-radius:50%;z-index:5}
.future-house .house-base{background:#fff7ef}.future-house.mint .future-roof{background:#bfe0cd}.future-house.rose .future-roof{background:#efc7cf}
.future-roof{position:absolute;left:3%;right:3%;top:20px;height:120px;border:4px solid #5b483a;border-radius:70px 70px 20px 20px;z-index:3;clip-path:polygon(50% 0,100% 50%,91% 55%,91% 100%,9% 100%,9% 55%,0 50%)}
.future-house .house-door{background:#d2aa79}.future-house .house-window{background:#e5f3f6}
.character-bubble{position:absolute;left:50%;top:-54px;transform:translateX(-50%);width:154px;background:white;border:3px solid #42362e;border-radius:28px;padding:10px;box-shadow:0 12px 24px rgba(63,50,38,.13);z-index:8;animation:bubbleBob 2.6s ease-in-out infinite}
.character-bubble:after{content:"";position:absolute;left:52%;bottom:-17px;width:22px;height:22px;background:white;border-right:3px solid #42362e;border-bottom:3px solid #42362e;transform:rotate(45deg)}
.bubble-face{width:76px;height:76px;border-radius:50%;background:#fff9c8;margin:auto;overflow:hidden;display:grid;place-items:center}.bubble-face img{width:92%;height:92%;object-fit:contain}
.character-bubble strong{display:block;font-size:12px;margin-top:5px}.character-bubble small{display:block;color:#82766d;font-size:10px;margin-top:2px}
@keyframes bubbleBob{0%,100%{translate:0 0}50%{translate:0 -7px}}
.task-bubble{top:-25px;width:165px;padding:15px 12px}.task-icon{font-size:31px;display:block;margin-bottom:5px}.task-bubble strong{font-size:13px}.task-bubble small{font-size:10px;line-height:1.35}
.home-label{display:inline-flex;align-items:center;gap:8px;margin-top:18px;background:#fff;border:1px solid rgba(79,64,51,.16);padding:9px 14px;border-radius:999px;font-weight:900;font-size:13px;color:#493c32;box-shadow:0 8px 20px rgba(55,78,30,.06)}
.home-label .status-dot{width:9px;height:9px;border-radius:50%;background:#77bb62}.home-label.waiting .status-dot{background:#e1b15d}
.town-decoration{position:absolute;z-index:1;pointer-events:none}.tree{width:76px;height:110px}.tree:before{content:"";position:absolute;left:30px;bottom:0;width:18px;height:46px;background:#8b6236;border-radius:8px}.tree:after{content:"";position:absolute;left:2px;top:0;width:72px;height:72px;background:#8fc773;border:4px solid #506f47;border-radius:50% 48% 55% 45%}
.tree.t1{left:1%;top:380px;transform:scale(.8)}.tree.t2{right:2%;top:510px;transform:scale(1.05)}.tree.t3{left:44%;top:670px;transform:scale(.62)}
.flower-patch{position:absolute;font-size:28px;letter-spacing:10px}.flowers1{left:5%;top:690px}.flowers2{right:5%;top:355px}
.bulletin{position:relative;z-index:3;width:min(760px,90vw);margin:20px auto 0;background:#fff8dc;border:4px solid #765b3a;border-radius:20px;padding:24px 28px;box-shadow:0 16px 35px rgba(62,50,30,.12);transform:rotate(-.5deg)}
.bulletin:before,.bulletin:after{content:"";position:absolute;bottom:-55px;width:20px;height:58px;background:#765b3a;border-radius:4px}.bulletin:before{left:80px}.bulletin:after{right:80px}
.bulletin-head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:2px dashed #d9bd7e;padding-bottom:12px;margin-bottom:14px}.bulletin h2{font-family:"Fredoka",Georgia,serif;margin:0;font-size:28px}.bulletin-tag{background:#ffeb62;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900;letter-spacing:.12em}.bulletin-item{display:flex;justify-content:space-between;gap:20px;align-items:center}.bulletin-item strong{display:block;margin-bottom:5px}.bulletin-item p{margin:0;color:#6f6255;font-size:13px;line-height:1.5}.bulletin-link{white-space:nowrap;font-weight:900;color:#8b6236}
.town-footer{text-align:center;padding:64px 5vw 34px;color:#766b61;font-size:12px}.town-footer strong{color:#3a312a}
@media(max-width:980px){.town-grid{grid-template-columns:1fr 1fr}.home-lot:first-child{grid-column:1/-1}.town-path{display:none}.town-hero{align-items:flex-start;flex-direction:column}.town-intro{max-width:650px}.tree.t3{display:none}}
@media(max-width:650px){.town-hero{padding-top:36px}.town-grid{grid-template-columns:1fr;gap:75px;padding-top:70px}.home-lot:first-child{grid-column:auto}.home-lot{min-height:440px}.house{width:300px;height:260px}.character-bubble{top:-68px}.town-map{padding-bottom:80px}.bulletin-item{align-items:flex-start;flex-direction:column}.bulletin:before{left:45px}.bulletin:after{right:45px}.town-cloud{opacity:.65}}

/* V12 — faux-3D/isometric town + Duckie Girl stays on homepage */
.town-map-3d{padding-top:42px}
.island-shadow{
  position:absolute;left:50%;top:175px;translate:-50% 0;width:min(1080px,92%);height:470px;
  background:rgba(72,95,50,.16);filter:blur(18px);border-radius:50%;
}
.island-platform{
  position:absolute;left:50%;top:145px;translate:-50% 0;width:min(1060px,90%);height:460px;
  background:linear-gradient(145deg,#d8efbd,#bedd9c);
  border:4px solid #93b879;border-radius:48% 52% 45% 55% / 56% 48% 52% 44%;
  box-shadow:inset -28px -34px 0 rgba(112,153,83,.16), 0 28px 0 #9fbe7f, 0 38px 30px rgba(70,81,45,.16);
  transform:rotate(-2deg);
}
.town-grid-3d{padding-top:95px;perspective:1100px}
.town-grid-3d .home-lot{min-height:500px}
.iso-house{
  position:relative;width:300px;height:280px;margin:0 auto;
  transform:rotateX(2deg) rotateY(-7deg);
  transform-style:preserve-3d;
  filter:drop-shadow(18px 24px 16px rgba(69,58,43,.18));
}
.iso-front{
  position:absolute;left:38px;bottom:22px;width:205px;height:170px;
  background:linear-gradient(180deg,#fff8e8,#f3e1bd);
  border:4px solid #4c4036;border-radius:22px 18px 12px 18px;
  z-index:3;
}
.iso-side{
  position:absolute;left:239px;bottom:38px;width:58px;height:155px;
  background:linear-gradient(180deg,#e8cf9f,#d5b681);
  border:4px solid #4c4036;border-left:0;
  transform:skewY(-28deg);transform-origin:left bottom;
  border-radius:0 12px 10px 0;z-index:2;
}
.iso-step{
  position:absolute;left:89px;bottom:8px;width:105px;height:24px;
  background:#c49b68;border:4px solid #4c4036;border-radius:8px;
  transform:skewX(-18deg);z-index:4;
}
.iso-door{
  position:absolute;left:50%;bottom:0;translate:-50% 0;width:58px;height:98px;
  background:linear-gradient(90deg,#af7046,#c88a5e);
  border:4px solid #4c4036;border-bottom:0;border-radius:30px 30px 0 0;
}
.iso-door:after{content:"";position:absolute;right:10px;top:52px;width:7px;height:7px;border-radius:50%;background:#f2cf6e;border:2px solid #6d5338}
.iso-window{
  position:absolute;top:47px;width:48px;height:50px;border:4px solid #4c4036;border-radius:12px;
  background:linear-gradient(135deg,#dff5ff 0 49%,#b9deed 50% 100%);box-shadow:inset 0 0 0 5px #fff9e9;
}
.iso-window:before,.iso-window:after{content:"";position:absolute;background:#4c4036;opacity:.65}
.iso-window:before{left:50%;top:4px;bottom:4px;width:2px}.iso-window:after{top:50%;left:4px;right:4px;height:2px}
.iso-window.w-left{left:24px}.iso-window.w-right{right:24px}
.duckie-roof-3d{
  position:absolute;left:22px;top:13px;width:238px;height:125px;z-index:5;
  background:linear-gradient(145deg,#fff37c 0 55%,#e9cf45 56% 100%);
  border:4px solid #4c4036;
  border-radius:50% 50% 32% 32% / 68% 68% 38% 38%;
  transform:rotate(-2deg);
  box-shadow:inset -14px -10px 0 rgba(201,171,40,.16), 12px 13px 0 rgba(109,82,36,.10);
}
.duckie-roof-3d:before{
  content:"";position:absolute;left:-7px;right:-8px;bottom:-24px;height:47px;
  background:linear-gradient(180deg,#ffe966,#efd247);
  border:4px solid #4c4036;border-top:0;border-radius:0 0 50% 50%;
  clip-path:polygon(0 0,10% 30%,20% 6%,30% 31%,40% 8%,50% 32%,60% 7%,70% 30%,80% 5%,90% 29%,100% 0,100% 100%,0 100%);
}
.roof-eye{position:absolute;top:45px;width:11px;height:13px;border-radius:50%;background:#302722;z-index:2}
.eye-left{left:88px}.eye-right{right:88px}
.roof-beak{position:absolute;left:50%;top:64px;translate:-50% 0;width:40px;height:20px;background:#f1a34c;border:3px solid #4c4036;border-radius:50%;z-index:2}
.duck-sign{
  position:absolute;left:50%;top:8px;translate:-50% 0;background:#fff7d0;border:2px solid #846842;border-radius:999px;
  padding:4px 9px;font-size:9px;font-weight:900;letter-spacing:.09em;color:#76532d;
}
.future-iso .simple-roof{
  position:absolute;left:24px;top:18px;width:235px;height:116px;z-index:5;
  border:4px solid #4c4036;clip-path:polygon(50% 0,100% 52%,92% 58%,92% 100%,8% 100%,8% 58%,0 52%);
  border-radius:28px 28px 14px 14px;box-shadow:12px 12px 0 rgba(76,64,54,.09);
}
.mint-house .simple-roof{background:linear-gradient(145deg,#cdebd7,#a8cfb8)}
.rose-house .simple-roof{background:linear-gradient(145deg,#f3d4dc,#dcaeb9)}
.mint-house .iso-front{background:linear-gradient(#fffdf2,#e9f2df)}
.rose-house .iso-front{background:linear-gradient(#fff7f5,#f3e0db)}
.bubble-3d{box-shadow:0 13px 25px rgba(54,43,35,.17)}
.resident-home:hover .iso-house{transform:rotateX(2deg) rotateY(-7deg) translateY(-8px)}
.resident-home .iso-house{transition:transform .22s ease}
.featured-resident{background:#fffaf0;border-top:1px solid #e8ddc8}
.resident-divider{
  width:min(1180px,90vw);margin:0 auto;padding:72px 0 10px;text-align:center;
}
.resident-divider h2{font-family:"Fredoka",Georgia,serif;font-size:clamp(42px,5vw,68px);margin:10px 0 12px}
.resident-divider p{max-width:680px;margin:0 auto;color:#6b6157;font-size:18px;line-height:1.65}
.resident-pill{display:inline-block;padding:7px 11px;border-radius:999px;background:#ffeb62;font-size:10px;font-weight:900;letter-spacing:.13em}
.featured-resident > main{display:block}
.featured-resident .hero{margin-top:24px}
@media(max-width:980px){
  .island-platform,.island-shadow{width:96%;height:840px;top:170px}
  .town-grid-3d{grid-template-columns:1fr 1fr}
  .town-grid-3d .home-lot:first-child{grid-column:1/-1}
}
@media(max-width:650px){
  .island-platform,.island-shadow{height:1270px;top:150px}
  .iso-house{transform:scale(.92) rotateX(2deg) rotateY(-7deg)}
  .town-grid-3d{grid-template-columns:1fr}
  .town-grid-3d .home-lot:first-child{grid-column:auto}
}

/* V13 — compact resident town + community prototype */
.community-town{padding-bottom:0}
.civic-row{width:min(1120px,94vw);margin:10px auto 22px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;position:relative;z-index:6}
.civic-building{appearance:none;border:1px solid rgba(72,60,49,.15);background:rgba(255,255,255,.88);border-radius:18px;padding:14px 12px;min-height:112px;color:#352d27;cursor:pointer;box-shadow:0 12px 24px rgba(70,74,45,.07);transition:transform .18s ease,border-color .18s ease;text-align:left}
.civic-building strong,.civic-building small{display:block}.civic-building strong{font-size:14px;margin-top:8px}.civic-building small{color:#7e7369;font-size:11px;margin-top:3px;line-height:1.35}.civic-icon{font-size:24px}
.civic-building:hover,.civic-building:focus-visible{transform:translateY(-3px);border-color:#96846f;outline:none}.safety-building{background:#fffaf6}
.compact-town{width:min(1160px,96vw);padding:30px 18px 100px}
.compact-island{position:absolute;left:50%;top:35px;translate:-50% 0;width:96%;height:720px;border-radius:44% 56% 46% 54% / 51% 48% 52% 49%;background:linear-gradient(145deg,#dcefc4,#bfdfa2);border:3px solid #9abc80;box-shadow:0 22px 0 #a8c58b,0 34px 28px rgba(71,81,49,.12);z-index:0}
.resident-grid{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px;padding:56px 28px 30px}
.mini-lot{min-height:240px;display:flex;align-items:flex-end;justify-content:center;position:relative}
.mini-house-link{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;color:inherit;text-decoration:none;position:relative}
.mini-house-button{appearance:none;border:0;background:transparent;font:inherit;cursor:pointer}
.mini-iso-house{position:relative;width:176px;height:154px;filter:drop-shadow(10px 14px 9px rgba(60,51,42,.16));transition:transform .18s ease}
.mini-house-link:hover .mini-iso-house,.mini-house-link:focus-visible .mini-iso-house{transform:translateY(-4px)}
.mini-front{position:absolute;left:25px;bottom:14px;width:120px;height:92px;border:3px solid #4c4036;border-radius:14px 10px 8px 12px;background:#fff7e9;z-index:3}
.mini-side{position:absolute;left:143px;bottom:23px;width:34px;height:83px;background:#dec9a9;border:3px solid #4c4036;border-left:0;transform:skewY(-27deg);transform-origin:left bottom;border-radius:0 7px 7px 0;z-index:2}
.mini-roof{position:absolute;left:18px;top:18px;width:145px;height:70px;background:#cdebd7;border:3px solid #4c4036;clip-path:polygon(50% 0,100% 54%,93% 60%,93% 100%,7% 100%,7% 60%,0 54%);z-index:5}
.mini-window{position:absolute;top:29px;width:28px;height:29px;border:3px solid #4c4036;border-radius:7px;background:#d8eff7;box-shadow:inset 0 0 0 3px #fff}.mw1{left:14px}.mw2{right:14px}
.mini-door{position:absolute;left:50%;bottom:0;translate:-50% 0;width:34px;height:56px;border:3px solid #4c4036;border-bottom:0;border-radius:18px 18px 0 0;background:#b67950}
.duck-mini-roof{background:linear-gradient(145deg,#fff27a,#dfc33f);clip-path:none;border-radius:48% 48% 30% 30% / 70% 70% 34% 34%}
.duck-mini-roof i,.duck-mini-roof b{position:absolute;top:27px;width:7px;height:8px;border-radius:50%;background:#302722}.duck-mini-roof i{left:53px}.duck-mini-roof b{right:53px}.duck-mini-roof em{position:absolute;left:50%;top:39px;translate:-50% 0;width:25px;height:13px;background:#efa04c;border:2px solid #4c4036;border-radius:50%}
.mint-mini .mini-roof{background:#bfdcc9}.rose-mini .mini-roof{background:#e8bdc7}.blue-mini .mini-roof{background:#b8d7e9}.clay-mini .mini-roof{background:#d7b297}.plum-mini .mini-roof{background:#cdbad9}.sand-mini .mini-roof{background:#e7d0a5}
.mini-label{display:inline-flex;align-items:center;gap:7px;margin-top:8px;padding:7px 10px;background:#fff;border:1px solid rgba(74,62,52,.14);border-radius:999px;font-size:11px;font-weight:800;box-shadow:0 7px 15px rgba(61,70,45,.06)}
.mini-label .status-dot{width:7px;height:7px}.mini-label.waiting .status-dot{background:#d5aa61}
.mini-speech{position:absolute;top:-55px;left:50%;translate:-50% 0;display:flex;align-items:center;gap:7px;background:#fff;border:2px solid #44382f;border-radius:18px;padding:7px 9px;z-index:8;box-shadow:0 9px 18px rgba(50,42,35,.11);font-size:10px;font-weight:800;white-space:nowrap}
.mini-speech img{width:34px;height:34px;object-fit:contain;border-radius:50%;background:#fff6b8}.mini-speech small{font-weight:600;color:#83776d}
.lot-marker{position:absolute;top:1px;right:25%;z-index:9;width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #4c4036;font-weight:900}
.my-lot:not(.claimed) .user-mini-house{opacity:.42;filter:grayscale(.25) drop-shadow(8px 10px 7px rgba(60,51,42,.10))}
.compact-bulletin{margin-top:40px}
.community-overlay{position:fixed;inset:0;background:rgba(32,28,24,.48);z-index:9999;display:grid;place-items:center;padding:20px;overflow:auto}
.community-overlay[hidden],.community-panel[hidden]{display:none!important}
.community-panel{position:relative;width:min(720px,96vw);max-height:min(86vh,820px);overflow:auto;background:#fffdf8;border:1px solid #d9cdbd;border-radius:26px;padding:28px;box-shadow:0 28px 70px rgba(30,25,20,.25)}
.panel-close{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:1px solid #d5c9ba;background:#fff;font-size:24px;cursor:pointer}
.panel-kicker{font-size:10px;letter-spacing:.14em;font-weight:900;color:#8a755e}.community-panel h2{font-family:"Fredoka",Georgia,serif;font-size:36px;margin:8px 48px 10px 0}.panel-lede{color:#71665c;line-height:1.6;margin:0 0 22px}
.community-form{display:grid;gap:15px}.community-form label{display:grid;gap:7px;font-size:13px;font-weight:800}.community-form input,.community-form select,.community-form textarea{font:inherit;font-size:16px;border:1px solid #cfc3b3;border-radius:13px;padding:12px;background:#fff;color:#302923}.community-form textarea{min-height:100px;resize:vertical}
.switch-row{grid-template-columns:1fr auto!important;align-items:center;background:#f5f1ea;border-radius:14px;padding:13px}.switch-row span{display:grid;gap:3px}.switch-row small{font-weight:500;color:#746b63}.switch-row input{width:24px;height:24px}
.safety-note{font-size:12px;line-height:1.5;background:#fff4cf;border-radius:12px;padding:11px 12px;color:#64532d;margin:0}.community-primary{border:0;border-radius:999px;padding:12px 18px;background:#2f2924;color:#fff;font-weight:900;cursor:pointer;min-height:44px}
.design-grid{grid-template-columns:1fr 1fr}.span-two{grid-column:1/-1}.design-grid input[type=color]{height:48px;padding:4px}
.character-preview-card{margin-top:20px;display:flex;gap:14px;align-items:center;background:#f6f1e9;border-radius:18px;padding:16px}.character-orb{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:28px;border:2px solid #44382f}.character-preview-card p{margin:4px 0 0;color:#786d63;font-size:12px}
.interior-preview,.demo-interior-scene{position:relative;height:240px;margin-top:20px;border:1px solid #d5cabd;border-radius:18px;overflow:hidden;background:#eee2d5}.room-wall,.demo-interior-scene:before{position:absolute;inset:0 0 38% 0;background:#efe4d7;content:""}.room-floor,.demo-interior-scene:after{position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(90deg,#cba87d,#d8bb93);content:""}.room-sofa,.demo-couch{position:absolute;left:20%;bottom:48px;width:160px;height:70px;border-radius:20px 20px 10px 10px;background:#8fae9c;border:2px solid #51453c;z-index:2}.room-table,.demo-table{position:absolute;right:23%;bottom:36px;width:65px;height:45px;border-radius:50%;background:#c89164;border:2px solid #51453c;z-index:3}.room-lamp{position:absolute;right:14%;bottom:50px;width:12px;height:90px;background:#6e6257;z-index:2}.room-lamp:before{content:"";position:absolute;left:-18px;top:-12px;width:48px;height:30px;background:#f1d880;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%)}.wall-art{position:absolute;left:14%;top:25%;font-size:30px}.interior-preview[data-style="minimal"] .room-sofa{background:#c8c5bf}.interior-preview[data-style="retro"] .room-sofa{background:#cf8b68}.interior-preview[data-style="cozy"] .room-sofa{background:#9a806b}
.directory-list{display:grid;gap:10px}.directory-card{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid #ded4c7;border-radius:15px;padding:13px 14px;background:#fff}.directory-card strong,.directory-card small{display:block}.directory-card small{color:#84786e;margin-top:3px}.directory-action,.text-button{border:0;background:#f0eadf;color:#3c332b;border-radius:999px;padding:9px 12px;font-weight:800;text-decoration:none;cursor:pointer}.directory-action:disabled{opacity:.45;cursor:not-allowed}
.visit-room{margin-top:18px;border-top:1px solid #e0d6ca;padding-top:18px}.visit-room-head{display:flex;justify-content:space-between;align-items:center}.demo-wall-art{position:absolute;left:20%;top:25px;font-size:34px;z-index:3}.demo-window{position:absolute;right:15%;top:28px;width:72px;height:82px;background:#cbe8f3;border:6px solid #f8f2e8;box-shadow:0 0 0 2px #574c43;z-index:2}.demo-rug{position:absolute;left:35%;bottom:18px;width:150px;height:54px;border-radius:50%;background:#d9bd83;z-index:2}.demo-couch{z-index:4}.demo-table{z-index:5}
.safety-principles{display:flex;gap:8px;flex-wrap:wrap}.safety-principles span{font-size:11px;border:1px solid #d9cfc3;border-radius:999px;padding:7px 9px;background:#faf7f1}.form-status{min-height:20px;font-size:12px;color:#5e594f}.modal-open{overflow:hidden}
@media(max-width:960px){.civic-row{grid-template-columns:repeat(3,1fr)}.resident-grid{grid-template-columns:repeat(3,1fr)}.compact-island{height:950px}}
@media(max-width:700px){.civic-row{grid-template-columns:1fr 1fr}.resident-grid{grid-template-columns:repeat(2,1fr);padding:45px 8px 20px;gap:24px 8px}.mini-iso-house{transform:scale(.9)}.compact-island{height:1120px}.community-panel{padding:22px 18px}.community-panel h2{font-size:30px}.design-grid{grid-template-columns:1fr}.span-two{grid-column:auto}}
@media(max-width:390px){.civic-row{grid-template-columns:1fr}.resident-grid{grid-template-columns:1fr}.compact-island{height:2050px}.mini-lot{min-height:230px}}

/* V14 — drawing studio + approval-gated community submissions */
.civic-row{grid-template-columns:repeat(6,minmax(0,1fr))}
.wide-panel{width:min(1040px,96vw)}
.studio-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:24px;align-items:start}
.draw-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.draw-toolbar label{display:flex;gap:7px;align-items:center;font-size:12px;font-weight:800;background:#f4efe8;border-radius:999px;padding:7px 10px}
.draw-toolbar input[type=color]{width:38px;height:30px;padding:1px;border:0;background:transparent}
.draw-toolbar input[type=range]{width:115px}
.tool-button{border:1px solid #d3c7b8;background:#fff;border-radius:999px;padding:8px 11px;font-weight:800;cursor:pointer}.tool-button.active{background:#2e2925;color:#fff}
.canvas-wrap{background:#e9e2d8;border:1px solid #d2c6b8;border-radius:18px;padding:10px}
#characterCanvas{display:block;width:100%;aspect-ratio:1/1;background:#fffdf8;border-radius:12px;touch-action:none;cursor:crosshair}
.canvas-help{font-size:11px;line-height:1.5;color:#796f66;margin:8px 2px 0}
.safety-gate{background:#fff4cf;border:1px solid #eadca5;border-radius:14px;padding:13px}.safety-gate strong{display:block}.safety-gate p{font-size:12px;line-height:1.5;margin:5px 0 10px;color:#675b40}
.check-row{grid-template-columns:auto 1fr!important;align-items:start!important;gap:9px!important;font-weight:600!important}.check-row input{width:18px;height:18px;margin-top:1px}
.approved-gallery-block{margin-top:28px;border-top:1px solid #e2d8cd;padding-top:20px}.subsection-head h3{font-family:"Fredoka",Georgia,serif;font-size:26px;margin:5px 0 14px}
.approved-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.approved-character-card{border:1px solid #ded4c7;border-radius:15px;overflow:hidden;background:#fff}.approved-character-card img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fbf8f2}.approved-character-card div{padding:11px}.approved-character-card p{font-size:12px;line-height:1.45;color:#786d63;margin:5px 0 0}
.approved-ip-list{display:grid;gap:10px}.approved-ip-card{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #ded4c7;border-radius:15px;background:#fff;padding:13px}.approved-ip-card p{font-size:12px;line-height:1.45;color:#786d63;margin:5px 0 0}.approved-ip-card a{white-space:nowrap;font-weight:900;text-decoration:none;color:#6f593d}
.empty-gallery{color:#82776d;font-size:12px}
@media(max-width:1000px){.civic-row{grid-template-columns:repeat(3,1fr)}.studio-layout{grid-template-columns:1fr}.approved-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.approved-gallery{grid-template-columns:1fr}.approved-ip-card{align-items:flex-start;flex-direction:column}}

/* V15 — expandable city, 20 house forms, furniture builder, AI safety flow */
.expandable-city-map{position:relative}
.district-topline{position:relative;z-index:6;display:flex;align-items:center;justify-content:space-between;width:min(1030px,86%);margin:0 auto 8px;background:rgba(255,255,255,.82);border:1px solid rgba(73,61,50,.12);border-radius:16px;padding:10px 14px}
.district-topline div{display:grid}.district-eyebrow{font-size:9px;letter-spacing:.14em;font-weight:900;color:#8a7867}.district-topline strong{font-size:16px;margin-top:2px}
.district-arrow{position:absolute;top:46%;z-index:20;width:48px;height:48px;border-radius:50%;border:2px solid #4d4137;background:#fff;color:#332b25;font-size:23px;font-weight:900;cursor:pointer;box-shadow:0 10px 20px rgba(50,43,37,.12)}
.district-arrow-left{left:-2px}.district-arrow-right{right:-2px}.district-arrow:hover{transform:scale(1.05)}
.town-district{display:none;position:relative;z-index:3}.town-district.active{display:block}
.district-note{width:min(760px,88%);margin:24px auto 2px;display:flex;justify-content:space-between;gap:20px;align-items:center;background:#fff9ec;border:1px solid #dfd2bf;border-radius:16px;padding:12px 14px}.district-note strong{font-size:15px}.district-note span{font-size:11px;color:#776c63}
.district-dots{position:relative;z-index:6;display:flex;justify-content:center;gap:8px;margin:10px 0 24px}.district-dots button{width:10px;height:10px;border:0;border-radius:50%;background:#aa9d8f;cursor:pointer}.district-dots button.active{background:#3d332b;transform:scale(1.25)}
.founder-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.duckie-landmark{grid-column:span 2;min-height:330px}
.duckie-landmark-house{transform:scale(1.42);transform-origin:center bottom;margin-bottom:42px;filter:drop-shadow(14px 19px 12px rgba(57,48,40,.20))}
.duckie-landmark-speech{top:-76px;transform:scale(1.1);transform-origin:center}.landmark-label{font-size:12px;padding:8px 12px}
.gold-mini .mini-roof{background:linear-gradient(145deg,#ead28a,#c9a750)}.silver-mini .mini-roof{background:linear-gradient(145deg,#d8dce0,#aeb6bf)}
.reserved-ribbon{position:absolute;top:-8px;left:50%;translate:-50% 0;z-index:9;background:#2f2924;color:#fff;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:900;letter-spacing:.12em}
.reserved-house-link{cursor:pointer}.reserved-label{background:#fff8dc;border-color:#cbb178}
.claimable-lot.claimed .mini-house-link{filter:none}.claimable-lot.claimed .mini-label{background:#ecf6df}
.selected-lot-card{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#f4efe7;border-radius:13px;padding:11px 12px}.selected-lot-card span{font-size:11px;color:#766b61}.selected-lot-card strong{font-size:12px;text-align:right}
.house-shape-preview-wrap{display:flex;gap:16px;align-items:center;background:#f8f4ed;border:1px solid #e1d7ca;border-radius:16px;padding:12px}.house-shape-preview-wrap small{font-size:11px;line-height:1.45;color:#786f67}
.shape-preview-house{position:relative;width:120px;height:100px;flex:0 0 120px}.shape-body{position:absolute;left:18px;right:18px;bottom:4px;height:58px;border:3px solid #473d35;background:#fff6e8;border-radius:10px}.shape-body span{position:absolute;left:12px;top:16px;width:18px;height:18px;background:#d3edf6;border:2px solid #473d35;border-radius:4px}.shape-body b{position:absolute;right:14px;bottom:0;width:20px;height:34px;background:#b87850;border:2px solid #473d35;border-bottom:0}
.shape-roof{position:absolute;left:9px;right:9px;top:6px;height:53px;background:#cdebd7;border:3px solid #473d35;z-index:2;clip-path:polygon(50% 0,100% 65%,90% 65%,90% 100%,10% 100%,10% 65%,0 65%)}
.shape-02 .shape-roof{clip-path:none;border-radius:55% 55% 15% 15%}.shape-03{transform:scaleX(.78) scaleY(1.08)}.shape-04 .shape-roof{height:26px;top:28px;clip-path:none;border-radius:6px}.shape-05 .shape-roof{height:72px;clip-path:polygon(50% 0,100% 100%,0 100%)}.shape-06 .shape-body{border-radius:50% 50% 12% 12%}.shape-06 .shape-roof{clip-path:none;border-radius:60px 60px 0 0}.shape-07 .shape-roof{clip-path:polygon(0 45%,22% 45%,22% 24%,48% 24%,48% 8%,100% 8%,100% 100%,0 100%)}.shape-08 .shape-roof{clip-path:polygon(0 60%,25% 0,50% 60%,75% 0,100% 60%,100% 100%,0 100%)}.shape-09 .shape-roof{clip-path:none;height:18px;top:34px;border-radius:3px}.shape-10{transform:scaleX(1.15) scaleY(.9)}.shape-11{transform:scaleX(.68) scaleY(1.14)}.shape-12 .shape-body{border-radius:42px 42px 8px 8px}.shape-13 .shape-roof{transform:skewX(-18deg);clip-path:none;border-radius:5px}.shape-14 .shape-roof{clip-path:polygon(20% 0,80% 0,100% 50%,80% 100%,20% 100%,0 50%)}.shape-15 .shape-roof{background:#b88962}.shape-16{transform:scaleX(.66) scaleY(1.18)}.shape-17 .shape-roof{clip-path:none;border-radius:70% 25% 45% 15%}.shape-18 .shape-body{clip-path:polygon(0 20%,48% 20%,48% 0,100% 0,100% 100%,0 100%)}.shape-19 .shape-body{clip-path:polygon(0 0,38% 0,38% 30%,62% 30%,62% 0,100% 0,100% 100%,0 100%)}.shape-20 .shape-body{border-radius:50px}.shape-20 .shape-roof{clip-path:none;border-radius:50px 50px 12px 12px}
.mini-iso-house[class*="shape-"] .mini-front,.mini-iso-house[class*="shape-"] .mini-roof{transition:all .2s ease}
.mini-iso-house.shape-02 .mini-roof{clip-path:none;border-radius:60% 60% 14% 14%}.mini-iso-house.shape-03{transform:scaleX(.78) scaleY(1.08)}.mini-iso-house.shape-04 .mini-roof{height:30px;top:42px;clip-path:none;border-radius:6px}.mini-iso-house.shape-05 .mini-roof{height:96px;clip-path:polygon(50% 0,100% 100%,0 100%)}.mini-iso-house.shape-06 .mini-front{border-radius:45% 45% 10% 10%}.mini-iso-house.shape-07 .mini-roof{clip-path:polygon(0 45%,22% 45%,22% 24%,48% 24%,48% 8%,100% 8%,100% 100%,0 100%)}.mini-iso-house.shape-08 .mini-roof{clip-path:polygon(0 60%,25% 0,50% 60%,75% 0,100% 60%,100% 100%,0 100%)}.mini-iso-house.shape-09 .mini-roof{clip-path:none;height:18px;top:54px}.mini-iso-house.shape-10{transform:scaleX(1.13) scaleY(.9)}.mini-iso-house.shape-11{transform:scaleX(.72) scaleY(1.1)}.mini-iso-house.shape-12 .mini-front{border-radius:36px 36px 8px 8px}.mini-iso-house.shape-13 .mini-roof{transform:skewX(-18deg);clip-path:none}.mini-iso-house.shape-14 .mini-roof{clip-path:polygon(20% 0,80% 0,100% 50%,80% 100%,20% 100%,0 50%)}.mini-iso-house.shape-16{transform:scaleX(.7) scaleY(1.13)}.mini-iso-house.shape-17 .mini-roof{clip-path:none;border-radius:70% 25% 45% 15%}.mini-iso-house.shape-18 .mini-front{clip-path:polygon(0 20%,48% 20%,48% 0,100% 0,100% 100%,0 100%)}.mini-iso-house.shape-19 .mini-front{clip-path:polygon(0 0,38% 0,38% 28%,62% 28%,62% 0,100% 0,100% 100%,0 100%)}.mini-iso-house.shape-20 .mini-front{border-radius:50px}.mini-iso-house.shape-20 .mini-roof{clip-path:none;border-radius:50px 50px 10px 10px}
.home-studio-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:22px}.furniture-builder{margin-top:18px;padding-top:15px;border-top:1px solid #e1d8cd}.furniture-builder label{display:flex;align-items:center;justify-content:space-between;gap:12px}.furniture-builder input[type=color]{width:58px;height:40px;padding:2px}
.furniture-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.furniture-catalog button{border:1px solid #d6cabb;background:#fff;border-radius:12px;padding:9px 8px;font-size:11px;font-weight:800;cursor:pointer}.furniture-catalog button:hover{background:#f5efe5}.furniture-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.detailed-room{height:430px;margin-top:0;background:#efe4d7}.detailed-room .room-wall{height:67%}.detailed-room .room-floor{height:35%}.furniture-stage{position:absolute;inset:0;z-index:4;pointer-events:none}.room-character{position:absolute;z-index:8;left:45%;bottom:62px;width:102px;height:150px;object-fit:contain;filter:drop-shadow(0 8px 6px rgba(45,38,32,.16))}.room-character-placeholder{position:absolute;z-index:7;left:42%;bottom:82px;width:150px;border:1px dashed #9f9285;border-radius:14px;background:rgba(255,255,255,.72);padding:9px;font-size:10px;text-align:center;color:#776d65}
.furniture-item{position:absolute;--fcolor:#8fae9c;left:calc(8% + (var(--slot) % 5) * 18%);bottom:calc(38px + (var(--slot) % 3) * 23px);width:78px;height:62px;filter:drop-shadow(0 5px 4px rgba(55,46,39,.12))}
.furniture-item span,.furniture-item b{position:absolute;display:block}.f-sofa{width:120px;height:72px}.f-sofa span{left:0;right:0;bottom:0;height:45px;background:var(--fcolor);border:2px solid #51453c;border-radius:16px 16px 8px 8px}.f-sofa b{left:8px;right:8px;top:4px;height:36px;background:var(--fcolor);border:2px solid #51453c;border-radius:14px}
.f-armchair span{left:11px;bottom:0;width:56px;height:46px;background:var(--fcolor);border:2px solid #51453c;border-radius:18px 18px 8px 8px}.f-armchair b{left:20px;top:2px;width:38px;height:35px;background:var(--fcolor);border:2px solid #51453c;border-radius:18px}
.f-bed{width:125px}.f-bed span{left:0;right:0;bottom:2px;height:38px;background:var(--fcolor);border:2px solid #51453c;border-radius:6px}.f-bed b{left:5px;top:5px;width:38px;height:27px;background:#fff8ea;border:2px solid #51453c;border-radius:8px}
.f-desk span{left:5px;right:5px;top:16px;height:15px;background:var(--fcolor);border:2px solid #51453c}.f-desk b{left:13px;right:13px;top:31px;height:29px;border-left:5px solid var(--fcolor);border-right:5px solid var(--fcolor)}
.f-bookshelf{height:100px}.f-bookshelf span{inset:2px 8px 0;background:var(--fcolor);border:2px solid #51453c}.f-bookshelf b{left:15px;right:15px;top:28px;height:2px;background:#51453c;box-shadow:0 25px 0 #51453c,0 50px 0 #51453c}
.f-floor-lamp span{left:37px;top:18px;width:6px;height:76px;background:var(--fcolor)}.f-floor-lamp b{left:22px;top:0;width:36px;height:28px;background:var(--fcolor);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);border:2px solid #51453c}
.f-rug{width:120px;height:50px}.f-rug span{inset:0;background:var(--fcolor);border:2px solid #51453c;border-radius:50%}.f-rug b{display:none}
.f-coffee-table span{left:8px;right:8px;top:13px;height:20px;background:var(--fcolor);border:2px solid #51453c;border-radius:50%}.f-coffee-table b{left:25px;right:25px;top:32px;height:25px;border-left:4px solid var(--fcolor);border-right:4px solid var(--fcolor)}
.f-plant span{left:22px;bottom:0;width:34px;height:34px;background:var(--fcolor);border:2px solid #51453c;clip-path:polygon(10% 0,90% 0,75% 100%,25% 100%)}.f-plant b{left:20px;top:0;width:40px;height:40px;background:#77a56f;border-radius:50% 40% 55% 45%}
.f-dresser span{left:5px;right:5px;bottom:0;height:58px;background:var(--fcolor);border:2px solid #51453c;border-radius:6px}.f-dresser b{left:14px;right:14px;top:25px;height:2px;background:#51453c;box-shadow:0 17px 0 #51453c}
.f-beanbag span{inset:8px 4px 0;background:var(--fcolor);border:2px solid #51453c;border-radius:48% 52% 38% 40%}.f-beanbag b{display:none}
.f-stool span{left:17px;top:9px;width:44px;height:18px;background:var(--fcolor);border:2px solid #51453c;border-radius:50%}.f-stool b{left:26px;right:26px;top:28px;height:35px;border-left:4px solid var(--fcolor);border-right:4px solid var(--fcolor)}
.f-side-table span{left:15px;right:15px;top:15px;height:13px;background:var(--fcolor);border:2px solid #51453c}.f-side-table b{left:34px;top:28px;width:8px;height:34px;background:var(--fcolor)}
.f-cabinet span{inset:2px 8px 0;background:var(--fcolor);border:2px solid #51453c;border-radius:5px}.f-cabinet b{left:38px;top:9px;bottom:8px;width:2px;background:#51453c}
.f-record-player span{left:8px;right:8px;bottom:0;height:43px;background:var(--fcolor);border:2px solid #51453c}.f-record-player b{left:20px;top:1px;width:40px;height:40px;background:#333;border-radius:50%;border:4px solid var(--fcolor)}
.f-easel span{left:36px;top:0;width:8px;height:70px;background:var(--fcolor);transform:rotate(8deg)}.f-easel b{left:15px;top:8px;width:50px;height:42px;background:#fff;border:3px solid var(--fcolor)}
.f-wall-art{bottom:auto!important;top:34px}.f-wall-art span{inset:5px;background:var(--fcolor);border:4px solid #51453c}.f-wall-art b{left:20px;top:17px;width:36px;height:25px;background:#fff6e8;border-radius:50%}
.f-mirror{bottom:auto!important;top:28px}.f-mirror span{left:15px;top:0;width:48px;height:72px;background:#d7edf4;border:5px solid var(--fcolor);border-radius:50%}.f-mirror b{display:none}
@media(max-width:980px){.founder-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.duckie-landmark{grid-column:span 2}.home-studio-layout{grid-template-columns:1fr}.detailed-room{height:390px}}
@media(max-width:700px){.founder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.duckie-landmark{grid-column:1/-1}.duckie-landmark-house{transform:scale(1.2);margin-bottom:28px}.district-arrow{top:50%;width:44px;height:44px}.district-arrow-left{left:1px}.district-arrow-right{right:1px}.furniture-catalog{grid-template-columns:repeat(2,1fr)}.district-note{align-items:flex-start;flex-direction:column}.room-character{left:40%}}

/* V16 — refined architecture + furniture + 8 districts + decoration studio */

/* Founders' Row is now fully reserved except Duckie Girl */
.founders-note{background:#fff4cf;border-color:#ddc97f}
.founder-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.reserved-lot .mini-iso-house{filter:drop-shadow(9px 12px 8px rgba(60,51,42,.13))}
.reserved-lot:nth-child(3) .mini-iso-house{transform:scale(.93) rotate(-1deg)}
.reserved-lot:nth-child(4) .mini-iso-house{transform:scale(.86,1.08)}
.reserved-lot:nth-child(5) .mini-iso-house{transform:scale(1.08,.88)}
.reserved-lot:nth-child(6) .mini-iso-house .mini-roof{clip-path:polygon(50% 0,100% 100%,0 100%)}
.reserved-lot:nth-child(7) .mini-iso-house .mini-front{border-radius:34px 34px 8px 8px}
.reserved-lot:nth-child(8) .mini-iso-house .mini-roof{clip-path:none;border-radius:60% 60% 14% 14%}
.gold-mini .mini-roof{background:linear-gradient(145deg,#ead28a,#c29b3e)}
.silver-mini .mini-roof{background:linear-gradient(145deg,#d8dce0,#98a4af)}

/* Make the twenty house silhouettes genuinely different */
.mini-iso-house.shape-01{transform:none}
.mini-iso-house.shape-01 .mini-roof{clip-path:polygon(50% 0,100% 62%,92% 62%,92% 100%,8% 100%,8% 62%,0 62%)}

.mini-iso-house.shape-02 .mini-front{left:34px;width:104px;height:94px;border-radius:54px 54px 14px 14px}
.mini-iso-house.shape-02 .mini-roof{left:29px;width:115px;height:64px;clip-path:none;border-radius:64px 64px 14px 14px}

.mini-iso-house.shape-03{height:174px}
.mini-iso-house.shape-03 .mini-front{left:49px;width:78px;height:124px}
.mini-iso-house.shape-03 .mini-roof{left:43px;width:90px;top:4px;height:62px;clip-path:polygon(50% 0,100% 65%,88% 65%,88% 100%,12% 100%,12% 65%,0 65%)}
.mini-iso-house.shape-03 .mini-side{left:124px;height:108px}

.mini-iso-house.shape-04 .mini-front{left:14px;width:144px;height:73px;bottom:16px;border-radius:6px}
.mini-iso-house.shape-04 .mini-roof{left:9px;width:154px;height:18px;top:57px;clip-path:none;border-radius:3px;box-shadow:0 6px 0 rgba(55,48,42,.13)}
.mini-iso-house.shape-04 .mini-side{left:154px;height:62px}

.mini-iso-house.shape-05 .mini-front{left:36px;width:101px;height:100px;clip-path:polygon(50% 0,100% 100%,0 100%);background:transparent;border:0}
.mini-iso-house.shape-05 .mini-roof{left:23px;width:126px;height:128px;top:4px;clip-path:polygon(50% 0,100% 100%,88% 100%,50% 20%,12% 100%,0 100%);background:var(--roof-custom,#cdebd7)}
.mini-iso-house.shape-05 .mini-side{display:none}
.mini-iso-house.shape-05 .mini-window,.mini-iso-house.shape-05 .mini-door{z-index:8}

.mini-iso-house.shape-06 .mini-front{left:28px;width:116px;height:106px;border-radius:58px 58px 16px 16px}
.mini-iso-house.shape-06 .mini-roof{left:34px;width:104px;height:45px;top:22px;clip-path:none;border-radius:80px 80px 0 0}
.mini-iso-house.shape-06 .mini-side{display:none}

.mini-iso-house.shape-07 .mini-front{left:18px;width:140px;height:92px}
.mini-iso-house.shape-07 .mini-roof{left:12px;width:151px;height:72px;top:10px;clip-path:polygon(0 64%,24% 64%,24% 42%,50% 42%,50% 20%,76% 20%,76% 0,100% 0,100% 100%,0 100%)}

.mini-iso-house.shape-08 .mini-front{left:21px;width:136px;height:90px}
.mini-iso-house.shape-08 .mini-roof{left:14px;width:150px;height:72px;top:8px;clip-path:polygon(0 66%,23% 4%,49% 66%,73% 4%,100% 66%,94% 100%,6% 100%)}

.mini-iso-house.shape-09 .mini-front{left:21px;width:136px;height:82px;border-radius:3px}
.mini-iso-house.shape-09 .mini-roof{left:15px;width:148px;height:13px;top:55px;clip-path:none;border-radius:2px}
.mini-iso-house.shape-09 .mini-side{left:153px;height:72px}

.mini-iso-house.shape-10{width:205px}
.mini-iso-house.shape-10 .mini-front{left:12px;width:160px;height:74px}
.mini-iso-house.shape-10 .mini-roof{left:5px;width:176px;height:48px;top:42px;clip-path:polygon(10% 0,90% 0,100% 50%,90% 100%,10% 100%,0 50%)}
.mini-iso-house.shape-10 .mini-side{left:168px;height:64px}

.mini-iso-house.shape-11{width:135px}
.mini-iso-house.shape-11 .mini-front{left:34px;width:70px;height:120px}
.mini-iso-house.shape-11 .mini-roof{left:27px;width:84px;height:60px;top:0}
.mini-iso-house.shape-11 .mini-side{left:101px;height:105px;width:28px}

.mini-iso-house.shape-12 .mini-front{left:25px;width:122px;height:104px;border-radius:62px 62px 8px 8px}
.mini-iso-house.shape-12 .mini-roof{display:none}
.mini-iso-house.shape-12 .mini-side{display:none}

.mini-iso-house.shape-13 .mini-front{left:17px;width:140px;height:88px}
.mini-iso-house.shape-13 .mini-roof{left:10px;width:150px;height:43px;top:32px;clip-path:none;transform:skewX(-22deg);border-radius:4px}
.mini-iso-house.shape-13 .mini-side{left:152px;height:75px}

.mini-iso-house.shape-14 .mini-front{left:26px;width:121px;height:102px;clip-path:polygon(14% 0,86% 0,100% 20%,100% 100%,0 100%,0 20%)}
.mini-iso-house.shape-14 .mini-roof{left:30px;width:112px;height:56px;top:6px;clip-path:polygon(22% 0,78% 0,100% 48%,78% 100%,22% 100%,0 48%)}
.mini-iso-house.shape-14 .mini-side{display:none}

.mini-iso-house.shape-15 .mini-front{left:22px;width:132px;height:90px;background:repeating-linear-gradient(0deg,#c99668 0 9px,#bb865a 9px 18px)}
.mini-iso-house.shape-15 .mini-roof{left:14px;width:148px;height:62px;top:18px;background:#765743;clip-path:polygon(50% 0,100% 70%,92% 70%,92% 100%,8% 100%,8% 70%,0 70%)}

.mini-iso-house.shape-16{height:190px}
.mini-iso-house.shape-16 .mini-front{left:53px;width:66px;height:140px;border-radius:8px}
.mini-iso-house.shape-16 .mini-roof{left:46px;width:80px;height:50px;top:0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.mini-iso-house.shape-16 .mini-side{left:116px;height:124px;width:24px}

.mini-iso-house.shape-17 .mini-front{left:21px;width:136px;height:91px}
.mini-iso-house.shape-17 .mini-roof{left:12px;width:150px;height:58px;top:20px;clip-path:none;border-radius:75% 18% 60% 22% / 80% 40% 65% 30%;transform:rotate(-4deg)}

.mini-iso-house.shape-18 .mini-front{left:17px;width:144px;height:100px;clip-path:polygon(0 28%,45% 28%,45% 0,100% 0,100% 100%,0 100%)}
.mini-iso-house.shape-18 .mini-roof{left:76px;width:84px;height:45px;top:11px}
.mini-iso-house.shape-18 .mini-side{left:157px;height:84px}

.mini-iso-house.shape-19 .mini-front{left:15px;width:148px;height:97px;clip-path:polygon(0 0,37% 0,37% 35%,63% 35%,63% 0,100% 0,100% 100%,0 100%)}
.mini-iso-house.shape-19 .mini-roof{left:10px;width:158px;height:24px;top:39px;clip-path:none;border-radius:3px}

.mini-iso-house.shape-20 .mini-front{left:22px;width:135px;height:84px;border-radius:48px}
.mini-iso-house.shape-20 .mini-roof{left:29px;width:120px;height:44px;top:33px;clip-path:none;border-radius:60px 60px 10px 10px}
.mini-iso-house.shape-20 .mini-side{display:none}

/* House-decoration overlay */
.house-decoration-overlay{position:absolute;z-index:12;left:21px;top:42px;width:143px;height:92px;object-fit:contain;pointer-events:none}
.mini-iso-house.shape-03 .house-decoration-overlay,.mini-iso-house.shape-11 .house-decoration-overlay,.mini-iso-house.shape-16 .house-decoration-overlay{left:31px;top:38px;width:100px;height:108px}
.mini-iso-house.shape-10 .house-decoration-overlay{left:15px;top:55px;width:165px;height:72px}

/* Decoration studio */
.house-decoration-builder{margin-top:22px;padding-top:18px;border-top:1px solid #e1d8cd}
.decoration-canvas-wrap{background:#eee7de;border:1px solid #d5c9bc;border-radius:16px;padding:9px;margin:9px 0 12px}
#houseDecorationCanvas{display:block;width:100%;aspect-ratio:2/1;background:linear-gradient(135deg,#fff 0 49%,#f6f3ee 50% 100%);background-size:20px 20px;border-radius:10px;touch-action:none;cursor:crosshair}

/* More detailed furniture silhouettes */
.furniture-item{isolation:isolate}
.furniture-item::before,.furniture-item::after{content:"";position:absolute;display:block}
.f-sofa::before{left:3px;bottom:10px;width:13px;height:38px;background:var(--fcolor);border:2px solid #51453c;border-radius:8px}
.f-sofa::after{right:3px;bottom:10px;width:13px;height:38px;background:var(--fcolor);border:2px solid #51453c;border-radius:8px}
.f-sofa span{background:linear-gradient(180deg,var(--fcolor),color-mix(in srgb,var(--fcolor) 82%,#000 18%))}
.f-sofa b{background:linear-gradient(90deg,var(--fcolor) 0 48%,color-mix(in srgb,var(--fcolor) 90%,#fff 10%) 48% 52%,var(--fcolor) 52%)}

.f-armchair::before{left:7px;bottom:9px;width:11px;height:37px;background:var(--fcolor);border:2px solid #51453c;border-radius:8px}
.f-armchair::after{right:7px;bottom:9px;width:11px;height:37px;background:var(--fcolor);border:2px solid #51453c;border-radius:8px}

.f-bed::before{right:2px;bottom:0;width:9px;height:54px;background:color-mix(in srgb,var(--fcolor) 82%,#000 18%);border:2px solid #51453c;border-radius:5px}
.f-bed::after{left:43px;top:10px;width:64px;height:28px;background:color-mix(in srgb,var(--fcolor) 68%,#fff 32%);border:2px solid #51453c;border-radius:6px}

.f-desk::before{right:8px;top:0;width:34px;height:23px;background:#dcecf2;border:2px solid #51453c;border-radius:3px}
.f-desk::after{right:22px;top:24px;width:5px;height:16px;background:#51453c}

.f-bookshelf::before{left:18px;top:11px;width:6px;height:15px;background:#d67f5f;box-shadow:9px 0 #7f9dc5,18px 0 #d5ad5e,0 25px #9a7ab5,9px 25px #d67f5f,18px 25px #7da56d,0 50px #d5ad5e,9px 50px #6f8db6,18px 50px #c57979}
.f-bookshelf::after{right:16px;top:11px;width:5px;height:15px;background:#7da56d;box-shadow:0 25px #d5ad5e,0 50px #c57979}

.f-floor-lamp::before{left:29px;bottom:0;width:24px;height:7px;background:#51453c;border-radius:50%}
.f-floor-lamp b{background:linear-gradient(180deg,color-mix(in srgb,var(--fcolor) 70%,#fff 30%),var(--fcolor))}

.f-rug span{background:repeating-radial-gradient(circle at center,var(--fcolor) 0 9px,color-mix(in srgb,var(--fcolor) 78%,#fff 22%) 10px 17px)}

.f-coffee-table::before{left:23px;top:32px;width:5px;height:26px;background:#51453c}
.f-coffee-table::after{right:23px;top:32px;width:5px;height:26px;background:#51453c}

.f-plant::before{left:35px;top:-10px;width:11px;height:47px;background:#4d7b4a;border-radius:50% 0}
.f-plant::after{left:15px;top:4px;width:29px;height:18px;background:#78a968;border-radius:80% 20% 70% 30%;box-shadow:29px -6px #6a9960,19px 19px #88b978}

.f-dresser::before{left:21px;top:21px;width:4px;height:4px;background:#51453c;border-radius:50%;box-shadow:34px 0 #51453c,0 19px #51453c,34px 19px #51453c}
.f-dresser span{background:linear-gradient(90deg,var(--fcolor),color-mix(in srgb,var(--fcolor) 82%,#000 18%))}

.f-beanbag span{background:radial-gradient(circle at 35% 25%,color-mix(in srgb,var(--fcolor) 70%,#fff 30%),var(--fcolor) 48%,color-mix(in srgb,var(--fcolor) 80%,#000 20%))}

.f-stool::before{left:22px;top:27px;width:4px;height:35px;background:#51453c}
.f-stool::after{right:22px;top:27px;width:4px;height:35px;background:#51453c}

.f-side-table::before{left:19px;bottom:0;width:4px;height:27px;background:#51453c}
.f-side-table::after{right:19px;bottom:0;width:4px;height:27px;background:#51453c}

.f-cabinet::before{left:22px;top:23px;width:4px;height:4px;border-radius:50%;background:#51453c;box-shadow:31px 0 #51453c}
.f-cabinet span{background:linear-gradient(90deg,var(--fcolor) 0 49%,color-mix(in srgb,var(--fcolor) 80%,#000 20%) 49% 51%,var(--fcolor) 51%)}

.f-record-player::before{left:31px;top:12px;width:6px;height:27px;background:#d2c3ac;transform:rotate(34deg);transform-origin:bottom}
.f-record-player::after{left:49px;top:33px;width:7px;height:7px;background:#d2c3ac;border-radius:50%}

.f-easel::before{left:8px;bottom:0;width:5px;height:64px;background:#6d523c;transform:rotate(-12deg)}
.f-easel::after{right:8px;bottom:0;width:5px;height:64px;background:#6d523c;transform:rotate(12deg)}
.f-easel b{background:linear-gradient(135deg,#fff 0 42%,var(--fcolor) 43% 58%,#fff 59%)}

.f-wall-art span{background:linear-gradient(135deg,var(--fcolor) 0 35%,#fff6e8 35% 60%,color-mix(in srgb,var(--fcolor) 70%,#000 30%) 60%)}
.f-wall-art::before{left:8px;top:8px;right:8px;bottom:8px;border:2px solid rgba(255,255,255,.8)}

.f-mirror span{background:linear-gradient(135deg,#f4fbfd,#c9e3ec 55%,#eef8fa)}
.f-mirror::before{left:27px;top:11px;width:16px;height:50px;background:rgba(255,255,255,.55);transform:skewX(-18deg);border-radius:50%}

/* Existing extra furniture gets more readable detail */
.furniture-catalog button{min-height:42px;position:relative;padding-left:31px;text-align:left}
.furniture-catalog button::before{position:absolute;left:10px;top:50%;translate:0 -50%;font-size:15px}
.furniture-catalog button[data-furniture="sofa"]::before{content:"▰"}
.furniture-catalog button[data-furniture="armchair"]::before{content:"◼"}
.furniture-catalog button[data-furniture="bed"]::before{content:"▱"}
.furniture-catalog button[data-furniture="desk"]::before{content:"⌑"}
.furniture-catalog button[data-furniture="bookshelf"]::before{content:"▥"}
.furniture-catalog button[data-furniture="floor-lamp"]::before{content:"⌇"}
.furniture-catalog button[data-furniture="rug"]::before{content:"⬭"}
.furniture-catalog button[data-furniture="coffee-table"]::before{content:"◒"}
.furniture-catalog button[data-furniture="plant"]::before{content:"♧"}
.furniture-catalog button[data-furniture="dresser"]::before{content:"▤"}
.furniture-catalog button[data-furniture="beanbag"]::before{content:"●"}
.furniture-catalog button[data-furniture="stool"]::before{content:"⊓"}
.furniture-catalog button[data-furniture="side-table"]::before{content:"⊥"}
.furniture-catalog button[data-furniture="cabinet"]::before{content:"▦"}
.furniture-catalog button[data-furniture="record-player"]::before{content:"◉"}
.furniture-catalog button[data-furniture="easel"]::before{content:"△"}
.furniture-catalog button[data-furniture="wall-art"]::before{content:"▣"}
.furniture-catalog button[data-furniture="mirror"]::before{content:"◯"}

@media(max-width:980px){
  .founder-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .founder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .district-dots{max-width:230px;margin-left:auto;margin-right:auto;flex-wrap:wrap}
}

/* V17 — living houses, grounded plots, distinct districts, multi-room interiors */

/* HOUSE PLOTS: every house is visually planted on a real lot */
.resident-grid{align-items:stretch}
.mini-lot{
  min-height:278px;
  padding:10px 4px 22px;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.mini-lot::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:24px;
  translate:-50% 0;
  width:205px;
  height:132px;
  border-radius:48% 52% 44% 56% / 58% 52% 48% 42%;
  background:linear-gradient(145deg,#d6ecbb,#b8d99a);
  border:2px solid rgba(83,113,66,.36);
  box-shadow:0 9px 0 rgba(118,151,91,.32),0 15px 18px rgba(61,73,49,.10);
  transform:rotate(-2deg);
  z-index:0;
}
.mini-lot::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:18px;
  translate:-50% 0;
  width:72px;
  height:80px;
  border-radius:42px;
  background:linear-gradient(180deg,#e6d19f,#dac189);
  opacity:.85;
  z-index:1;
}
.mini-house-link{
  min-height:248px;
  position:relative;
  z-index:3;
  justify-content:flex-end;
}
.mini-iso-house{
  margin:0 auto 34px!important;
  position:relative;
  z-index:5;
}
.mini-label{position:absolute;bottom:0;z-index:8}
.lot-marker{top:32px}
.reserved-ribbon{top:25px}
.duckie-landmark{min-height:390px}
.duckie-landmark::before{width:330px;height:195px;bottom:26px}
.duckie-landmark::after{width:95px;height:115px}
.duckie-landmark-house{
  margin-bottom:56px!important;
  transform:scale(1.62);
}
.duckie-landmark-speech{top:-60px}
@media(max-width:700px){
  .duckie-landmark-house{transform:scale(1.32)}
  .duckie-landmark::before{width:285px;height:170px}
}

/* DISTRICT THEMES */
.expandable-city-map{
  --district-ground:#cfe7b2;
  --district-ground2:#aeca8e;
  --district-accent:#7fa767;
  --district-sky:#e7f6ff;
  transition:background .25s ease;
  border-radius:34px;
}
.expandable-city-map .compact-island{
  background:linear-gradient(145deg,var(--district-ground),var(--district-ground2));
  border-color:var(--district-accent);
  transition:background .25s ease,border-color .25s ease;
}
.expandable-city-map .district-topline{
  border-color:color-mix(in srgb,var(--district-accent) 35%,#d7ccbe 65%);
}
.expandable-city-map .town-district.active::before,
.expandable-city-map .town-district.active::after{
  position:absolute;
  z-index:1;
  pointer-events:none;
  font-size:29px;
  letter-spacing:7px;
  opacity:.82;
}
.expandable-city-map[data-district-theme="founders"]{--district-ground:#dfecc5;--district-ground2:#bfd89f;--district-accent:#8dab6d}
.expandable-city-map[data-district-theme="founders"] .town-district.active::before{content:"✦  ◇  ✦";left:3%;top:3%}
.expandable-city-map[data-district-theme="founders"] .town-district.active::after{content:"⌂  ✦";right:3%;bottom:8%}

.expandable-city-map[data-district-theme="north"]{--district-ground:#c9dfc1;--district-ground2:#9ec29d;--district-accent:#668b6b}
.expandable-city-map[data-district-theme="north"] .town-district.active::before{content:"▲  ▲  ▲";left:2%;top:12%;color:#426b4a}
.expandable-city-map[data-district-theme="north"] .town-district.active::after{content:"▲   ▲";right:3%;bottom:8%;color:#4f7655}

.expandable-city-map[data-district-theme="garden"]{--district-ground:#d9efbd;--district-ground2:#bada99;--district-accent:#79a55c}
.expandable-city-map[data-district-theme="garden"] .town-district.active::before{content:"✿  ❀  ✿";left:3%;top:10%;color:#c57c8f}
.expandable-city-map[data-district-theme="garden"] .town-district.active::after{content:"❀  ✿  ❀";right:2%;bottom:10%;color:#d5a35f}

.expandable-city-map[data-district-theme="harbor"]{--district-ground:#c9e7df;--district-ground2:#a8d4cd;--district-accent:#5eaaa8}
.expandable-city-map[data-district-theme="harbor"]::before{
  content:"";
  position:absolute;
  inset:115px 1.5% 95px;
  border-radius:42% 58% 48% 52%;
  background:repeating-radial-gradient(ellipse at 50% 100%,rgba(80,154,172,.22) 0 7px,transparent 8px 20px);
  pointer-events:none;
  z-index:1;
}
.expandable-city-map[data-district-theme="harbor"] .town-district.active::before{content:"≈  ≈  ⚓";left:3%;top:9%;color:#397f91}
.expandable-city-map[data-district-theme="harbor"] .town-district.active::after{content:"⚓  ≈  ≈";right:3%;bottom:9%;color:#397f91}

.expandable-city-map[data-district-theme="lantern"]{--district-ground:#ead8b5;--district-ground2:#d4bb91;--district-accent:#b78155}
.expandable-city-map[data-district-theme="lantern"]{
  background:linear-gradient(180deg,rgba(76,61,72,.08),rgba(238,216,181,.2));
}
.expandable-city-map[data-district-theme="lantern"] .town-district.active::before{content:"◉  ◉  ◉";left:3%;top:8%;color:#d69154;text-shadow:0 0 10px #ffdf9a}
.expandable-city-map[data-district-theme="lantern"] .town-district.active::after{content:"◉   ◉";right:4%;bottom:9%;color:#d69154;text-shadow:0 0 10px #ffdf9a}

.expandable-city-map[data-district-theme="cloud"]{--district-ground:#d8e8e7;--district-ground2:#bcd6d6;--district-accent:#86adb5}
.expandable-city-map[data-district-theme="cloud"] .town-district.active::before{content:"☁   ☁";left:3%;top:6%;color:#fff;text-shadow:0 2px 5px rgba(81,100,110,.18)}
.expandable-city-map[data-district-theme="cloud"] .town-district.active::after{content:"☁  ✦  ☁";right:3%;bottom:8%;color:#fff}

.expandable-city-map[data-district-theme="studio"]{--district-ground:#e5dbcf;--district-ground2:#c9b9aa;--district-accent:#9c7d68}
.expandable-city-map[data-district-theme="studio"] .town-district.active::before{content:"□  △  ○";left:3%;top:8%;color:#855c76}
.expandable-city-map[data-district-theme="studio"] .town-district.active::after{content:"✎  ◇  ▣";right:3%;bottom:8%;color:#657c9b}

.expandable-city-map[data-district-theme="moon"]{--district-ground:#cdc7dc;--district-ground2:#a9a2bf;--district-accent:#766f9d}
.expandable-city-map[data-district-theme="moon"]{
  background:linear-gradient(180deg,rgba(84,79,116,.16),rgba(225,218,238,.18));
}
.expandable-city-map[data-district-theme="moon"] .town-district.active::before{content:"☾  ✦  ·";left:3%;top:8%;color:#655b91}
.expandable-city-map[data-district-theme="moon"] .town-district.active::after{content:"·  ✦  ☾";right:3%;bottom:8%;color:#655b91}

/* Lots inherit each district's ground colors instead of floating */
.expandable-city-map .mini-lot::before{
  background:linear-gradient(145deg,color-mix(in srgb,var(--district-ground) 88%,#fff 12%),var(--district-ground2));
  border-color:color-mix(in srgb,var(--district-accent) 55%,#fff 45%);
}

/* Character studio checkerboard for transparent artwork */
#characterCanvas{
  background:
    linear-gradient(45deg,#eee9e2 25%,transparent 25%),
    linear-gradient(-45deg,#eee9e2 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,#eee9e2 75%),
    linear-gradient(-45deg,transparent 75%,#eee9e2 75%),
    #fff;
  background-size:24px 24px;
  background-position:0 0,0 12px,12px -12px,-12px 0;
}
.character-export-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

/* Multi-room interior */
.room-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 20px}
.room-tabs button{
  border:1px solid #d4c8b9;background:#fff;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer;
}
.room-tabs button.active{background:#2e2925;color:#fff;border-color:#2e2925}
.character-room-controls{display:grid;gap:9px;margin-top:14px}
.room-view-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:9px}
.room-view-head strong{display:block;font-size:21px;margin-top:3px}
.drag-hint{font-size:11px;color:#7a7067}
.detailed-room{height:470px;position:relative;overflow:hidden}
.detailed-room .room-wall{height:68%}
.detailed-room .room-floor{height:34%}
.furniture-stage{position:absolute;inset:0;z-index:10;pointer-events:auto}

/* Moving character sprite */
.room-character{
  position:absolute;
  z-index:90;
  left:45%;
  bottom:55px;
  width:108px;
  height:160px;
  object-fit:contain;
  transform-origin:50% 100%;
  filter:drop-shadow(0 8px 7px rgba(44,37,31,.17));
  pointer-events:none;
}
.room-character.character-moving{animation:duckieRoomWalk 10s ease-in-out infinite}
.room-character.character-still{animation:none;left:45%;bottom:55px}
@keyframes duckieRoomWalk{
  0%{left:12%;bottom:48px;transform:scaleX(1) translateY(0)}
  18%{left:30%;bottom:64px;transform:scaleX(1) translateY(-3px)}
  38%{left:67%;bottom:52px;transform:scaleX(1) translateY(0)}
  52%{left:76%;bottom:83px;transform:scaleX(-1) translateY(-3px)}
  72%{left:48%;bottom:66px;transform:scaleX(-1) translateY(0)}
  100%{left:12%;bottom:48px;transform:scaleX(-1) translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){.room-character.character-moving{animation:none}}

/* Furniture: draggable buttons, not decorative-only objects */
.furniture-item{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  position:absolute;
  width:82px;
  height:66px;
  translate:-50% -50%;
  cursor:grab;
  touch-action:none;
  pointer-events:auto;
  filter:drop-shadow(0 5px 4px rgba(55,46,39,.12));
}
.furniture-item:active{cursor:grabbing}
.furniture-item.selected{outline:3px solid rgba(52,45,39,.65);outline-offset:5px;border-radius:10px}
.selected-furniture-controls{margin-top:14px;background:#f7f2ea;border:1px solid #ded3c6;border-radius:14px;padding:12px}
.selected-furniture-controls>strong{display:block;margin-bottom:9px}
.selected-furniture-controls>small{display:block;color:#786f67;font-size:11px;margin-top:8px}
.nudge-pad{display:flex;gap:6px;flex-wrap:wrap}
.nudge-pad button{border:1px solid #d0c4b6;background:#fff;border-radius:9px;min-width:42px;min-height:40px;font-weight:900;cursor:pointer}

/* 20 additional furniture shapes */
.f-dining-table{width:130px;height:72px}
.f-dining-table span{position:absolute;left:3px;right:3px;top:6px;height:30px;background:var(--fcolor);border:2px solid #51453c;border-radius:50%}
.f-dining-table b{position:absolute;left:31px;right:31px;top:35px;height:34px;border-left:6px solid var(--fcolor);border-right:6px solid var(--fcolor)}

.f-dining-chair span{position:absolute;left:20px;top:4px;width:43px;height:36px;background:var(--fcolor);border:2px solid #51453c;border-radius:7px}
.f-dining-chair b{position:absolute;left:20px;top:39px;width:43px;height:19px;background:var(--fcolor);border:2px solid #51453c;box-shadow:-4px 19px 0 -2px #51453c,36px 19px 0 -2px #51453c}

.f-tv{width:100px;height:75px}
.f-tv span{position:absolute;inset:3px 5px 18px;background:#2f3438;border:4px solid var(--fcolor);border-radius:6px}
.f-tv b{position:absolute;left:37px;right:37px;bottom:8px;height:8px;background:var(--fcolor)}

.f-tv-stand{width:118px;height:56px}
.f-tv-stand span{position:absolute;left:3px;right:3px;top:12px;height:35px;background:var(--fcolor);border:2px solid #51453c;border-radius:5px}
.f-tv-stand b{position:absolute;left:33px;top:19px;width:2px;height:22px;background:#51453c;box-shadow:49px 0 #51453c}

.f-piano{width:126px;height:95px}
.f-piano span{position:absolute;left:5px;right:5px;top:5px;height:67px;background:var(--fcolor);border:2px solid #51453c;border-radius:5px}
.f-piano b{position:absolute;left:14px;right:14px;top:47px;height:19px;background:repeating-linear-gradient(90deg,#fff 0 8px,#333 8px 10px);border:2px solid #51453c}

.f-keyboard{width:125px;height:58px}
.f-keyboard span{position:absolute;left:4px;right:4px;top:5px;height:25px;background:repeating-linear-gradient(90deg,#fff 0 8px,#303030 8px 10px);border:3px solid var(--fcolor)}
.f-keyboard b{position:absolute;left:16px;right:16px;top:31px;height:26px;border-left:4px solid #51453c;border-right:4px solid #51453c;transform:skewX(-14deg)}

.f-guitar{width:62px;height:110px}
.f-guitar span{position:absolute;left:8px;bottom:3px;width:47px;height:56px;background:var(--fcolor);border:2px solid #51453c;border-radius:50% 50% 44% 44%}
.f-guitar b{position:absolute;left:27px;top:2px;width:9px;height:63px;background:color-mix(in srgb,var(--fcolor) 72%,#000 28%);border:2px solid #51453c}

.f-pet-bed{width:92px;height:50px}
.f-pet-bed span{position:absolute;inset:6px 3px;background:var(--fcolor);border:3px solid #51453c;border-radius:50%}
.f-pet-bed b{position:absolute;left:20px;right:20px;top:15px;height:16px;background:color-mix(in srgb,var(--fcolor) 72%,#fff 28%);border-radius:50%}

.f-aquarium{width:106px;height:80px}
.f-aquarium span{position:absolute;left:8px;right:8px;top:3px;height:57px;background:linear-gradient(#d7f3f8,#8fd0df);border:4px solid var(--fcolor);border-radius:5px}
.f-aquarium b{position:absolute;left:22px;top:23px;width:11px;height:7px;background:#f0a95c;border-radius:70% 30% 70% 30%;box-shadow:38px 13px #c9777b}

.f-fireplace{width:105px;height:95px}
.f-fireplace span{position:absolute;inset:5px;background:var(--fcolor);border:2px solid #51453c;clip-path:polygon(0 0,100% 0,100% 100%,72% 100%,72% 55%,28% 55%,28% 100%,0 100%)}
.f-fireplace b{position:absolute;left:37px;bottom:4px;width:31px;height:34px;background:radial-gradient(ellipse at bottom,#f4c359 0 26%,#e87545 27% 55%,transparent 56%)}

.f-pendant-light{width:65px;height:100px}
.f-pendant-light span{position:absolute;left:30px;top:0;width:5px;height:55px;background:#51453c}
.f-pendant-light b{position:absolute;left:11px;top:49px;width:45px;height:30px;background:var(--fcolor);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}

.f-wall-shelf{width:115px;height:62px}
.f-wall-shelf span{position:absolute;left:4px;right:4px;top:30px;height:8px;background:var(--fcolor);border:2px solid #51453c}
.f-wall-shelf b{position:absolute;left:15px;top:8px;width:13px;height:22px;background:#d18063;box-shadow:26px 3px #6f94ba,52px -2px #d8b55a,74px 4px #7da56d}

.f-arcade{width:82px;height:112px}
.f-arcade span{position:absolute;inset:2px 7px;background:var(--fcolor);border:2px solid #51453c;clip-path:polygon(0 0,100% 0,100% 83%,88% 100%,12% 100%,0 83%)}
.f-arcade b{position:absolute;left:18px;right:18px;top:15px;height:39px;background:#293640;border:3px solid #51453c;box-shadow:0 50px 0 -17px #d94d64}

.f-vanity{width:112px;height:100px}
.f-vanity span{position:absolute;left:12px;right:12px;bottom:4px;height:43px;background:var(--fcolor);border:2px solid #51453c;border-radius:5px}
.f-vanity b{position:absolute;left:33px;top:1px;width:48px;height:54px;background:#dceef3;border:5px solid var(--fcolor);border-radius:50%}

.f-wardrobe{width:100px;height:128px}
.f-wardrobe span{position:absolute;inset:3px 7px;background:var(--fcolor);border:2px solid #51453c;border-radius:6px}
.f-wardrobe b{position:absolute;left:49px;top:9px;bottom:8px;width:2px;background:#51453c;box-shadow:-10px 55px 0 1px #51453c,10px 55px 0 1px #51453c}

.f-ottoman{width:75px;height:45px}
.f-ottoman span{position:absolute;inset:5px;background:var(--fcolor);border:2px solid #51453c;border-radius:16px 16px 10px 10px}
.f-ottoman b{position:absolute;left:13px;right:13px;bottom:0;height:8px;border-left:4px solid #51453c;border-right:4px solid #51453c}

.f-bench{width:125px;height:65px}
.f-bench span{position:absolute;left:4px;right:4px;top:18px;height:22px;background:var(--fcolor);border:2px solid #51453c;border-radius:7px}
.f-bench b{position:absolute;left:18px;right:18px;top:40px;height:25px;border-left:5px solid #51453c;border-right:5px solid #51453c}

.f-floor-cushion{width:78px;height:50px}
.f-floor-cushion span{position:absolute;inset:5px;background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--fcolor) 65%,#fff 35%),var(--fcolor));border:2px solid #51453c;border-radius:50% 48% 45% 52%}
.f-floor-cushion b{display:none}

.f-telescope{width:90px;height:105px}
.f-telescope span{position:absolute;left:10px;top:13px;width:66px;height:18px;background:var(--fcolor);border:2px solid #51453c;border-radius:10px;transform:rotate(-18deg)}
.f-telescope b{position:absolute;left:43px;top:38px;width:7px;height:58px;background:#51453c;transform:rotate(8deg);box-shadow:-20px 32px 0 -1px #51453c,20px 32px 0 -1px #51453c}

.f-sculpture{width:78px;height:105px}
.f-sculpture span{position:absolute;left:17px;right:17px;top:5px;height:57px;background:var(--fcolor);clip-path:polygon(52% 0,100% 24%,72% 48%,91% 100%,43% 75%,0 100%,20% 51%,0 25%)}
.f-sculpture b{position:absolute;left:17px;right:17px;bottom:2px;height:24px;background:#b9aa98;border:2px solid #51453c}

/* Furniture library labels/icons */
.furniture-catalog{max-height:320px;overflow:auto;padding-right:3px}
.furniture-catalog button{min-height:42px;position:relative;padding-left:29px;text-align:left}
.furniture-catalog button::before{position:absolute;left:10px;top:50%;translate:0 -50%;font-size:14px}
.furniture-catalog button[data-furniture="dining-table"]::before{content:"◒"}
.furniture-catalog button[data-furniture="dining-chair"]::before{content:"⌑"}
.furniture-catalog button[data-furniture="tv"]::before{content:"▣"}
.furniture-catalog button[data-furniture="tv-stand"]::before{content:"▬"}
.furniture-catalog button[data-furniture="piano"]::before{content:"▥"}
.furniture-catalog button[data-furniture="keyboard"]::before{content:"≡"}
.furniture-catalog button[data-furniture="guitar"]::before{content:"♩"}
.furniture-catalog button[data-furniture="pet-bed"]::before{content:"◡"}
.furniture-catalog button[data-furniture="aquarium"]::before{content:"≈"}
.furniture-catalog button[data-furniture="fireplace"]::before{content:"♨"}
.furniture-catalog button[data-furniture="pendant-light"]::before{content:"◉"}
.furniture-catalog button[data-furniture="wall-shelf"]::before{content:"═"}
.furniture-catalog button[data-furniture="arcade"]::before{content:"▮"}
.furniture-catalog button[data-furniture="vanity"]::before{content:"◯"}
.furniture-catalog button[data-furniture="wardrobe"]::before{content:"▥"}
.furniture-catalog button[data-furniture="ottoman"]::before{content:"▰"}
.furniture-catalog button[data-furniture="bench"]::before{content:"▬"}
.furniture-catalog button[data-furniture="floor-cushion"]::before{content:"●"}
.furniture-catalog button[data-furniture="telescope"]::before{content:"⌕"}
.furniture-catalog button[data-furniture="sculpture"]::before{content:"◆"}

@media(max-width:700px){
  .detailed-room{height:390px}
  .room-character{width:88px;height:130px}
  .room-view-head{align-items:flex-start;flex-direction:column}
}

/* V18 — founders park, inn, full-house decorations, moderated murals, unique names */

/* Founders' Row layout with public buildings */
.founders-row-grid{grid-template-columns:1fr 1.7fr 1fr 1fr 1fr;align-items:end}
.special-building-lot{min-height:320px}
.special-building-lot::before{background:linear-gradient(145deg,#dcecc7,#bfd7a8)}
.special-building-lot::after{width:86px;height:92px}
.special-building-link{cursor:pointer}
.special-building{transform:scale(1.08);margin-bottom:42px!important}
.special-building .mini-front{background:#f8f1dc}
.special-building .mini-side{background:#d8cab4}
.park-building .mini-roof{background:linear-gradient(145deg,#9fd0a5,#7dad82)}
.inn-building .mini-roof{background:linear-gradient(145deg,#d6b384,#ba8f5e)}
.special-badge{
  position:absolute;top:20px;left:50%;translate:-50% 0;z-index:11;
  background:#2e2925;color:#fff;border-radius:999px;padding:5px 10px;
  font-size:9px;font-weight:900;letter-spacing:.15em
}
.park-sign{
  position:absolute;left:50%;bottom:10px;translate:-50% 0;z-index:11;
  background:#fff;color:#2e2925;border:2px solid #56473a;border-radius:9px;
  padding:3px 8px;font-size:10px;font-weight:900;letter-spacing:.08em
}
.special-label{background:#eef6e3;border-color:#bfd0a8}
.inn-lot .special-label{background:#fff4e7;border-color:#d3b38b}
@media(max-width:1100px){.founders-row-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.founders-row-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.special-building-lot{min-height:285px}}

/* Park and inn panels */
.park-layout,.inn-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.park-scene{
  position:relative;height:360px;border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg,#d7eef9 0 36%,#cfe8b0 36% 100%);
  border:1px solid rgba(70,60,52,.12)
}
.park-path{
  position:absolute;left:11%;right:11%;bottom:24px;height:88px;border-radius:80px 80px 0 0;
  background:linear-gradient(180deg,#efd9b0,#e0c494)
}
.park-tree{position:absolute;width:84px;height:130px}
.park-tree::before{content:"";position:absolute;left:38px;bottom:0;width:13px;height:49px;background:#7f6047;border-radius:7px}
.park-tree::after{content:"";position:absolute;left:0;top:0;width:84px;height:84px;background:#8fc07a;border-radius:50% 44% 46% 48%;box-shadow:18px 16px 0 #7dac67,-18px 18px 0 #9bcc8a}
.park-tree.t1{left:20px;bottom:88px}
.park-tree.t2{right:40px;bottom:86px}
.park-tree.t3{left:48%;bottom:112px;transform:scale(.82)}
.park-bench{
  position:absolute;left:47%;bottom:95px;width:118px;height:30px;translate:-50% 0;
  background:#b88458;border-radius:7px;border:2px solid #5d4634;
  box-shadow:-31px 17px 0 -12px #5d4634,31px 17px 0 -12px #5d4634
}
.park-resident,.duckie-at-park{
  position:absolute;width:84px;height:105px;display:flex;align-items:flex-end;justify-content:center
}
.park-resident::before{
  content:"";position:absolute;left:17px;right:17px;top:14px;height:51px;background:#fff;border-radius:40% 40% 33% 33%;
  border:2px solid rgba(68,58,50,.25)
}
.park-resident::after{
  content:"";position:absolute;left:25px;right:25px;bottom:18px;height:37px;background:#d7f0d1;border-radius:28% 28% 16% 16%;
  border:2px solid rgba(68,58,50,.18)
}
.park-resident span,.resident-you span{
  position:relative;z-index:2;background:rgba(255,255,255,.88);padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800
}
.resident-a{left:70px;bottom:68px}.resident-b{left:228px;bottom:46px}.resident-c{right:84px;bottom:70px}
.resident-you{
  left:58%;bottom:56px;width:95px;height:120px
}
.resident-you::before{
  content:"";position:absolute;left:15px;right:15px;top:5px;bottom:28px;background:var(--resident-sprite) center/contain no-repeat
}
.resident-you::after{content:none}
.duckie-at-park{left:36%;bottom:112px;width:120px;height:155px}
.duckie-at-park img{width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 6px 5px rgba(46,39,33,.16))}
.duckie-park-bubble{
  position:absolute;left:50%;top:0;translate:-50% 0;
  min-width:135px;max-width:205px;background:#fff;border:2px solid #5a4d41;border-radius:18px;
  padding:9px 11px;font-size:12px;font-weight:700;text-align:center;line-height:1.35
}
.duckie-park-bubble::after{
  content:"";position:absolute;left:50%;bottom:-9px;translate:-50% 0;
  width:14px;height:14px;background:#fff;border-right:2px solid #5a4d41;border-bottom:2px solid #5a4d41;transform:rotate(45deg)
}
.park-side{display:grid;gap:14px}
.park-card{
  background:#fbf7ef;border:1px solid rgba(70,60,52,.12);border-radius:18px;padding:16px
}
.park-card h3{margin:6px 0 8px}
.duckie-chat-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.duckie-chat-reply,.duckie-chat-status{font-size:13px;line-height:1.5;color:#5f554c}
.inn-room-preview{
  min-height:320px;border-radius:22px;overflow:hidden;border:1px solid rgba(70,60,52,.12);
  background:linear-gradient(180deg,#f9f3ea 0 100%);padding:18px;display:grid;gap:14px
}
.inn-level{
  border-radius:18px;padding:18px;border:1px solid rgba(86,73,60,.13);
  background:linear-gradient(145deg,#fff8ef,#f1e2ce);position:relative
}
.inn-level span{font-weight:800}
.inn-level::after{
  content:"";position:absolute;right:18px;top:18px;width:48px;height:48px;border-radius:14px;
  background:linear-gradient(145deg,#d5b188,#b9895e)
}
.inn-list{margin:0;padding-left:20px}
.inn-list li{margin:6px 0}
@media(max-width:860px){.park-layout,.inn-layout{grid-template-columns:1fr}}

/* Decoration can cover the whole house */
.decoration-canvas-wrap{min-height:240px}
#houseDecorationCanvas{
  width:100%;
  aspect-ratio:2 / 1.08;
  background:
    linear-gradient(45deg,#eee9e2 25%,transparent 25%),
    linear-gradient(-45deg,#eee9e2 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,#eee9e2 75%),
    linear-gradient(-45deg,transparent 75%,#eee9e2 75%),
    #fff;
  background-size:24px 24px;
  background-position:0 0,0 12px,12px -12px,-12px 0;
}
.house-decoration-overlay{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:contain;pointer-events:none;z-index:13;opacity:.98
}

/* Slight polish for current room and status */
#selectedLotLabel{line-height:1.35}

/* V19 — houses anchored inside the island map + visitable Duck House */

/* The large island is now the actual coordinate system for houses. */
.expandable-city-map{
  min-height:1030px;
  overflow:visible;
}
.expandable-city-map .compact-island{
  top:92px;
  width:min(1080px,92%);
  height:760px;
  left:50%;
  translate:-50% 0;
  z-index:0;
}
.expandable-city-map .district-pages{
  position:relative;
  z-index:3;
  width:min(1060px,91%);
  height:790px;
  margin:0 auto;
}
.expandable-city-map .town-district{
  position:absolute;
  inset:0;
}
.expandable-city-map .resident-grid{
  position:relative!important;
  display:block!important;
  width:100%;
  height:720px;
  padding:0!important;
  margin:0 auto!important;
}
.expandable-city-map .mini-lot{
  position:absolute!important;
  width:205px;
  min-height:220px;
  padding:0;
  margin:0;
  transform:translate(-50%,-50%);
}
.expandable-city-map .mini-lot::before{
  width:190px;
  height:120px;
  bottom:13px;
}
.expandable-city-map .mini-lot::after{
  bottom:7px;
  height:63px;
  width:55px;
}
.expandable-city-map .mini-house-link{min-height:220px}
.expandable-city-map .mini-iso-house{
  margin-bottom:31px!important;
  transform-origin:center bottom;
}
.expandable-city-map .mini-label{bottom:0}

/* 12-lot circular placement: all houses sit INSIDE the big island. */
.expandable-city-map .resident-grid > .mini-lot:nth-child(1){left:50%;top:15%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(2){left:71%;top:20%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(3){left:84%;top:36%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(4){left:84%;top:58%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(5){left:70%;top:75%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(6){left:50%;top:80%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(7){left:30%;top:75%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(8){left:16%;top:58%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(9){left:16%;top:36%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(10){left:29%;top:20%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(11){left:38%;top:47%}
.expandable-city-map .resident-grid > .mini-lot:nth-child(12){left:62%;top:47%}

/* Founder-specific layout: park left, Duckie landmark center, inn right, reserved homes around the lower ring. */
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(1){left:24%;top:29%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(2){left:50%;top:29%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(3){left:76%;top:29%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(4){left:85%;top:57%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(5){left:67%;top:74%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(6){left:44%;top:78%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(7){left:23%;top:70%}
.expandable-city-map .founders-row-grid > .mini-lot:nth-child(8){left:14%;top:50%}

.expandable-city-map .duckie-landmark{
  width:300px;
  min-height:300px;
}
.expandable-city-map .duckie-landmark::before{
  width:290px;
  height:170px;
}
.expandable-city-map .duckie-landmark-house{
  transform:scale(1.43)!important;
  margin-bottom:51px!important;
}
.expandable-city-map .special-building-lot{
  width:230px;
  min-height:240px;
}
.expandable-city-map .special-building{transform:scale(.96);margin-bottom:34px!important}
.expandable-city-map .reserved-lot{width:185px}

.expandable-city-map .district-dots{
  position:relative;
  z-index:6;
  margin-top:-8px;
}
.expandable-city-map .compact-bulletin{
  position:relative;
  z-index:6;
  margin-top:18px;
}

/* Mobile: use a clean grid instead of impossible tiny circle packing. */
@media(max-width:760px){
  .expandable-city-map{min-height:auto}
  .expandable-city-map .compact-island{
    top:110px;
    width:96%;
    height:calc(100% - 210px);
    min-height:1280px;
  }
  .expandable-city-map .district-pages{
    width:92%;
    height:auto;
    min-height:1320px;
  }
  .expandable-city-map .town-district{
    position:relative;
    inset:auto;
  }
  .expandable-city-map .resident-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:34px 8px!important;
    height:auto!important;
    min-height:1260px;
    padding:50px 0 70px!important;
  }
  .expandable-city-map .mini-lot,
  .expandable-city-map .resident-grid > .mini-lot:nth-child(n),
  .expandable-city-map .founders-row-grid > .mini-lot:nth-child(n){
    position:relative!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    width:auto!important;
    min-height:250px!important;
  }
  .expandable-city-map .duckie-landmark{grid-column:1/-1}
  .expandable-city-map .duckie-landmark-house{transform:scale(1.25)!important}
}

/* Duck House interior */
.extra-wide-panel{width:min(1120px,96vw)}
.duck-house-interior{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:18px}
.duck-house-scene{
  position:relative;
  height:560px;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(72,61,52,.13);
  background:
    linear-gradient(180deg,#fff7d8 0 63%,#e3c79f 63% 100%);
}
.duck-house-scene::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:64%;
  background:
    radial-gradient(circle at 18% 20%,rgba(255,255,255,.5) 0 2px,transparent 3px),
    radial-gradient(circle at 79% 36%,rgba(255,255,255,.45) 0 2px,transparent 3px);
  background-size:68px 68px;
}
.duck-room-window{
  position:absolute;right:11%;top:11%;width:125px;height:130px;
  border:8px solid #fff;border-radius:50% 50% 12px 12px;
  background:linear-gradient(180deg,#cfeaf5,#dff2d0 68%);
  box-shadow:0 0 0 3px #665546;
}
.duck-room-window::before,.duck-room-window::after{
  content:"";position:absolute;background:#fff
}
.duck-room-window::before{left:50%;top:0;bottom:0;width:5px}
.duck-room-window::after{top:50%;left:0;right:0;height:5px}
.duck-room-rug{
  position:absolute;left:31%;bottom:27px;width:320px;height:115px;
  border-radius:50%;background:#f3d86e;border:3px solid #9d8248;opacity:.85
}
.duck-room-shelf{
  position:absolute;left:7%;top:17%;width:160px;height:18px;background:#b98658;border:3px solid #624b39;
  box-shadow:0 56px 0 #b98658,0 112px 0 #b98658
}
.duck-room-shelf::after{
  content:"";position:absolute;left:12px;top:-33px;width:25px;height:30px;background:#f1d66d;border-radius:50%;
  box-shadow:41px 2px 0 #f1d66d,83px -3px 0 #f1d66d,22px 55px 0 #f1d66d,66px 58px 0 #f1d66d,108px 52px 0 #f1d66d
}
.duck-room-sofa{
  position:absolute;right:12%;bottom:58px;width:210px;height:95px;
  background:#e7b8a7;border:3px solid #674f45;border-radius:28px 28px 13px 13px
}
.duck-room-sofa::before{
  content:"";position:absolute;left:14px;right:14px;top:-28px;height:70px;
  background:#efc9bc;border:3px solid #674f45;border-radius:28px 28px 14px 14px
}

/* 10 cute ducks */
.cute-duck{
  position:absolute;
  width:54px;height:54px;
  background:#ffe56f;
  border:2px solid #6a563d;
  border-radius:52% 52% 46% 46%;
  box-shadow:inset -6px -6px 0 rgba(225,184,54,.15);
  animation:duckBob 2.8s ease-in-out infinite;
  z-index:7
}
.cute-duck::before,.cute-duck::after{
  content:"";position:absolute;top:17px;width:6px;height:8px;background:#3b332d;border-radius:50%
}
.cute-duck::before{left:16px}.cute-duck::after{right:16px}
.cute-duck i{
  position:absolute;left:50%;top:27px;translate:-50% 0;width:22px;height:11px;
  background:#f2a04a;border:2px solid #6a563d;border-radius:50%
}
.cute-duck b{
  position:absolute;left:-7px;top:29px;width:18px;height:13px;
  background:#ffe56f;border:2px solid #6a563d;border-radius:70% 25% 70% 25%;transform:rotate(-25deg)
}
.cute-duck span{
  position:absolute;right:-7px;top:29px;width:18px;height:13px;
  background:#ffe56f;border:2px solid #6a563d;border-radius:25% 70% 25% 70%;transform:rotate(25deg)
}
.duck-1{left:7%;bottom:45px}.duck-2{left:16%;bottom:122px;animation-delay:-.4s}.duck-3{left:27%;bottom:58px;animation-delay:-1.1s}
.duck-4{left:38%;bottom:139px;animation-delay:-1.7s}.duck-5{left:49%;bottom:71px;animation-delay:-.7s}.duck-6{left:58%;bottom:154px;animation-delay:-1.3s}
.duck-7{left:70%;bottom:49px;animation-delay:-2s}.duck-8{left:81%;bottom:155px;animation-delay:-.9s}.duck-9{left:89%;bottom:83px;animation-delay:-1.5s}
.duck-10{left:12%;bottom:215px;animation-delay:-2.3s}
.duck-8::after{box-shadow:0 0 0 2px #fff,9px 0 0 -2px #3b332d}
.duck-4{background:#fff0a3}
.duck-6{transform:scale(.86)}
.duck-10{transform:scale(.78)}
@keyframes duckBob{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media(prefers-reduced-motion:reduce){.cute-duck{animation:none}}

.house-your-character,.duckie-home-character{
  position:absolute;z-index:20;width:120px;height:190px;bottom:58px;text-align:center
}
.house-your-character{left:24%}
.duckie-home-character{right:28%}
.house-your-character img,.duckie-home-character img{
  width:105px;height:140px;object-fit:contain;filter:drop-shadow(0 7px 6px rgba(48,40,33,.15))
}
.house-your-character>span,.duckie-home-character>span{
  display:inline-block;background:#fff;border:1px solid #d7cbbd;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900
}
.your-character-bubble,.duckie-home-bubble{
  position:absolute;top:-50px;left:50%;translate:-50% 0;min-width:150px;max-width:240px;
  background:#fff;border:2px solid #5b4c40;border-radius:18px;padding:8px 10px;
  font-size:11px;line-height:1.35;font-weight:700
}
.duckie-away-card{
  position:absolute;left:50%;top:37%;translate:-50% -50%;
  width:min(320px,70%);background:rgba(255,255,255,.94);border:2px solid #75634d;border-radius:20px;
  padding:20px;text-align:center;z-index:30
}
.duckie-away-card strong,.duckie-away-card span{display:block}
.duckie-away-card span{font-size:12px;color:#74695f;margin:6px 0 12px}
.duck-house-chat{display:grid;gap:14px;align-content:start}
@media(max-width:900px){
  .duck-house-interior{grid-template-columns:1fr}
  .duck-house-scene{height:520px}
}
@media(max-width:620px){
  .duck-house-scene{height:470px}
  .duck-room-sofa{width:150px}
  .house-your-character{left:14%}
  .duckie-home-character{right:15%}
}

/* Stronger show/hide behavior */
#roomCharacter[hidden],#roomCharacterPlaceholder[hidden]{display:none!important}

/* V20 — refined public places + pettable ducks + moving park residents + AI-screened chat */

/* MAP: Park is a landscape, not a house */
.park-lot::before{
  width:260px!important;height:178px!important;
  border-radius:47% 53% 45% 55% / 55% 45% 55% 45%!important;
  background:linear-gradient(145deg,#d7efbe,#afd792)!important
}
.park-lot::after{display:none}
.park-map-landmark{
  position:relative;width:250px;height:165px;margin-bottom:31px;
  filter:drop-shadow(0 11px 8px rgba(56,67,45,.14))
}
.map-pond{
  position:absolute;left:85px;top:69px;width:112px;height:60px;border-radius:50%;
  background:linear-gradient(145deg,#9ed9e4,#6fbdcf);border:3px solid #577c75;
  box-shadow:inset 0 0 0 7px rgba(255,255,255,.16)
}
.map-path{
  position:absolute;left:6px;right:14px;bottom:11px;height:37px;border-radius:50%;
  border-bottom:16px solid #e7ce9a;transform:rotate(-5deg)
}
.map-gazebo{
  position:absolute;left:22px;top:38px;width:78px;height:72px
}
.map-gazebo::before{
  content:"";position:absolute;left:0;right:0;top:0;height:31px;background:#f1c789;border:3px solid #604b3b;
  clip-path:polygon(50% 0,100% 76%,90% 100%,10% 100%,0 76%)
}
.map-gazebo::after{
  content:"";position:absolute;left:15px;right:15px;top:29px;height:42px;border-left:5px solid #77583f;border-right:5px solid #77583f;border-bottom:7px solid #77583f
}
.map-tree{position:absolute;width:47px;height:69px}
.map-tree::before{content:"";position:absolute;left:21px;bottom:0;width:8px;height:26px;background:#7c5d43}
.map-tree::after{content:"";position:absolute;left:0;top:0;width:47px;height:47px;border-radius:50%;background:#78aa68;box-shadow:11px 7px 0 #91c07d}
.map-tree.mt1{right:5px;top:22px}.map-tree.mt2{right:51px;top:4px;transform:scale(.77)}.map-tree.mt3{left:104px;top:18px;transform:scale(.68)}
.map-bench{position:absolute;right:25px;bottom:27px;width:55px;height:13px;background:#a97950;border:2px solid #604b3b}

/* MAP: Inn is a substantial multi-storey building */
.inn-lot::before{
  width:245px!important;height:165px!important;
  border-radius:42% 58% 47% 53% / 58% 50% 50% 42%!important
}
.inn-map-landmark{
  position:relative;width:225px;height:185px;margin-bottom:30px;
  filter:drop-shadow(11px 15px 9px rgba(54,44,37,.18))
}
.inn-map-body{
  position:absolute;left:35px;bottom:13px;width:154px;height:130px;
  background:linear-gradient(90deg,#f7ead8,#e9d4b8);border:4px solid #55463a;border-radius:8px 8px 13px 13px;z-index:3
}
.inn-map-roof{
  position:absolute;left:20px;top:10px;width:182px;height:59px;background:#9a674c;border:4px solid #55463a;
  clip-path:polygon(50% 0,100% 80%,92% 100%,8% 100%,0 80%);z-index:5
}
.inn-map-wing{
  position:absolute;right:1px;bottom:15px;width:58px;height:101px;background:#ddc29f;border:4px solid #55463a;border-left:0;transform:skewY(-13deg);z-index:2
}
.inn-window{
  position:absolute;width:24px;height:26px;background:#c8e8f1;border:3px solid #665446;border-radius:5px;
  box-shadow:inset 0 0 0 3px #fff
}
.inn-window.iw1{left:19px;top:22px}.inn-window.iw2{left:65px;top:22px}.inn-window.iw3{right:18px;top:22px}
.inn-window.iw4{left:19px;top:67px}.inn-window.iw5{left:65px;top:67px}.inn-window.iw6{right:18px;top:67px}
.inn-map-door{
  position:absolute;left:50%;bottom:0;translate:-50% 0;width:34px;height:50px;background:#a56949;border:3px solid #55463a;border-bottom:0;border-radius:17px 17px 0 0
}
.inn-map-awning{
  position:absolute;left:50%;bottom:39px;translate:-50% 0;background:#f0c86f;border:2px solid #55463a;border-radius:7px;padding:4px 7px;font-size:8px;font-weight:900;letter-spacing:.08em;white-space:nowrap
}
.inn-special-label{background:#fff0dc!important;border-color:#d6b07d!important}

/* shared area tabs */
.place-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}
.place-tabs button{border:1px solid #d4c8b9;background:#fff;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}
.place-tabs button.active{background:#2f2924;color:#fff;border-color:#2f2924}

/* refined Park */
.park-explorer-layout,.inn-explorer-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:18px}
.park-world,.inn-world{
  position:relative;height:570px;overflow:hidden;border-radius:24px;border:1px solid rgba(67,57,48,.13)
}
.park-world{background:linear-gradient(180deg,#d8eff9 0 33%,#d5eab6 33% 100%)}
.park-area-scene,.inn-area-scene{position:absolute;inset:0}
.park-area-scene[hidden],.inn-area-scene[hidden]{display:none!important}
.meadow-hill{position:absolute;border-radius:50%;background:#b4d68f}
.mh1{left:-10%;right:45%;bottom:-2%;height:48%}.mh2{left:48%;right:-10%;bottom:-5%;height:43%;background:#c6e2a5}
.meadow-path{position:absolute;left:5%;right:0;bottom:60px;height:90px;border-radius:55%;border-bottom:34px solid #e5c98f;transform:rotate(-5deg)}
.meadow-tree{position:absolute;width:110px;height:155px}
.meadow-tree::before{content:"";position:absolute;left:50px;bottom:0;width:15px;height:65px;background:#7a5a40;border-radius:8px}
.meadow-tree::after{content:"";position:absolute;left:0;top:0;width:108px;height:105px;background:#82b76b;border-radius:50%;box-shadow:24px 15px 0 #99c984,-20px 19px 0 #a8d291}
.mt-a{left:5%;top:18%}.mt-b{right:7%;top:13%;transform:scale(.82)}
.meadow-picnic{position:absolute;left:43%;bottom:75px;width:130px;height:80px;background:repeating-linear-gradient(45deg,#efc8bb 0 16px,#fff4e9 16px 32px);transform:skewX(-12deg);border-radius:8px}
.meadow-flower{position:absolute;color:#d27792;font-size:18px;letter-spacing:8px}.mf1{left:25%;bottom:50px}.mf2{right:20%;bottom:48px}

.park-pond-scene{background:linear-gradient(180deg,#d8eff9 0 30%,#d5eab6 30% 100%)}
.big-pond{position:absolute;left:13%;right:12%;top:28%;bottom:16%;border-radius:48% 52% 42% 58% / 57% 43% 57% 43%;background:radial-gradient(ellipse at 45% 35%,#b8edf4,#79c6d6 60%,#5eacbe);border:5px solid #739b7c;box-shadow:inset 0 0 0 10px rgba(255,255,255,.12)}
.pond-bridge{position:absolute;left:42%;top:42%;width:185px;height:55px;border-radius:50% 50% 10px 10px;background:repeating-linear-gradient(90deg,#b68154 0 17px,#9f6d46 17px 21px);border:3px solid #604a39;transform:rotate(-8deg)}
.pond-reeds{position:absolute;width:70px;height:110px;background:repeating-linear-gradient(83deg,transparent 0 8px,#719762 8px 12px,transparent 12px 20px)}.pr1{left:12%;bottom:17%}.pr2{right:9%;top:36%}
.pond-rock{position:absolute;width:65px;height:40px;background:#a89d8f;border-radius:50% 44% 38% 55%}.rock1{left:18%;top:33%}.rock2{right:20%;bottom:16%}

.park-garden-scene{background:linear-gradient(180deg,#e0eff5 0 27%,#d9ebc0 27% 100%)}
.garden-path{position:absolute;background:#ead3a3;border-radius:50%}.gp1{left:45%;top:22%;width:90px;height:390px}.gp2{left:18%;right:17%;top:47%;height:77px}
.garden-hedge{position:absolute;background:repeating-radial-gradient(circle,#7fab66 0 19px,#90bc77 20px 37px);border-radius:30px}.gh1{left:5%;top:30%;width:120px;height:260px}.gh2{right:5%;top:30%;width:120px;height:260px}
.garden-fountain{position:absolute;left:50%;top:44%;translate:-50% -50%;width:125px;height:125px;border-radius:50%;background:radial-gradient(circle,#dff6fb 0 20%,#78c4d1 21% 46%,#d1c1a6 47% 55%,transparent 56%)}
.garden-bench{position:absolute;left:50%;bottom:58px;translate:-50% 0;width:170px;height:28px;background:#a4754f;border:3px solid #5c4738;border-radius:6px}

.park-stage-scene{background:linear-gradient(180deg,#dbe9f4 0 36%,#cfe7b0 36% 100%)}
.community-stage{position:absolute;left:50%;top:17%;translate:-50% 0;width:360px;height:210px;background:linear-gradient(180deg,#7f6f82,#514655);border:6px solid #443943;border-radius:70px 70px 15px 15px;box-shadow:inset 0 0 0 16px #ad95aa}
.community-stage::before{content:"";position:absolute;left:28px;right:28px;bottom:14px;height:78px;background:#d9b47d;border-radius:10px}
.community-stage span{position:absolute;top:43px;left:50%;translate:-50% 0;color:#fff;font-weight:900;letter-spacing:.17em;font-size:18px}
.stage-lights{position:absolute;left:50%;top:19%;translate:-50% 0;width:290px;height:20px;background:radial-gradient(circle,#f8d76e 0 4px,transparent 5px);background-size:36px 20px}
.stage-lawn{position:absolute;left:10%;right:10%;bottom:0;height:42%;background:#bddb9d;border-radius:50% 50% 0 0}
.stage-seat{position:absolute;bottom:75px;width:105px;height:24px;background:#9a7054;border-radius:6px}.ss1{left:18%}.ss2{left:44%}.ss3{right:17%}

/* moving park residents */
.moving-resident,.moving-user-character,.moving-duckie{
  position:absolute;z-index:30;pointer-events:none
}
.moving-resident{width:78px;height:108px}
.moving-resident i{
  position:absolute;left:12px;right:12px;top:3px;height:72px;background:#fff;border:2px solid #5c5045;border-radius:45% 45% 36% 36%;
  box-shadow:inset 0 -24px 0 var(--resident-clothes,#b9d8c0)
}
.moving-resident i::before,.moving-resident i::after{content:"";position:absolute;top:24px;width:5px;height:7px;background:#3e3732;border-radius:50%}
.moving-resident i::before{left:18px}.moving-resident i::after{right:18px}
.moving-resident span,.moving-user-character span{position:absolute;left:50%;bottom:0;translate:-50% 0;background:#fff;border:1px solid #d5c9bb;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900;white-space:nowrap}
.pr-milo{--resident-clothes:#a9c7df;animation:parkWalkA 13s ease-in-out infinite}
.pr-nova{--resident-clothes:#e4b9cc;animation:parkWalkB 15s ease-in-out infinite -3s}
.pr-berry{--resident-clothes:#c8b7df;animation:parkWalkC 12s ease-in-out infinite -6s}
.pr-orbit{--resident-clothes:#e4cf99;animation:parkWalkD 16s ease-in-out infinite -4s}
.moving-user-character{width:95px;height:135px;animation:parkUserWalk 14s ease-in-out infinite -1s}
.moving-user-character img{width:90px;height:110px;object-fit:contain;filter:drop-shadow(0 7px 6px rgba(45,38,31,.15))}
.moving-duckie{width:115px;height:145px;animation:duckieParkWalk 17s ease-in-out infinite}
.moving-duckie img{width:82px;height:82px}
@keyframes parkWalkA{0%,100%{left:8%;top:62%}35%{left:34%;top:47%}68%{left:63%;top:65%}}
@keyframes parkWalkB{0%,100%{left:70%;top:56%}40%{left:52%;top:34%}75%{left:20%;top:54%}}
@keyframes parkWalkC{0%,100%{left:40%;top:68%}45%{left:76%;top:41%}77%{left:58%;top:59%}}
@keyframes parkWalkD{0%,100%{left:18%;top:35%}40%{left:48%;top:62%}78%{left:78%;top:31%}}
@keyframes parkUserWalk{0%,100%{left:13%;top:50%}32%{left:42%;top:69%}65%{left:72%;top:48%}}
@keyframes duckieParkWalk{0%,100%{left:54%;top:25%}42%{left:76%;top:57%}74%{left:36%;top:61%}}
@media(prefers-reduced-motion:reduce){
  .moving-resident,.moving-user-character,.moving-duckie{animation:none}
}

/* refined Inn areas */
.inn-world{background:#f5eadb}
.inn-lobby-scene{background:linear-gradient(180deg,#f6eee3 0 70%,#d3b58f 70% 100%)}
.lobby-desk{position:absolute;left:50%;top:24%;translate:-50% 0;width:330px;height:105px;background:#b17a51;border:4px solid #5a4435;border-radius:18px 18px 7px 7px}
.lobby-desk::before{content:"";position:absolute;left:30px;right:30px;top:-33px;height:38px;background:#f1d18a;border:3px solid #5a4435;border-radius:12px}
.lobby-desk span{position:absolute;left:50%;top:-25px;translate:-50% 0;font-weight:900;letter-spacing:.13em}
.lobby-bell{position:absolute;left:41%;top:39%;width:27px;height:22px;background:#e5bd5a;border:2px solid #715c38;border-radius:50% 50% 20% 20%}
.lobby-keyboard{position:absolute;right:39%;top:39%;width:48px;height:20px;background:#5d666f;border-radius:4px}
.lobby-sofa{position:absolute;bottom:65px;width:150px;height:68px;background:#9cb6a1;border:3px solid #594c42;border-radius:25px 25px 10px 10px}.ls1{left:10%}.ls2{right:10%}
.lobby-rug{position:absolute;left:50%;bottom:32px;translate:-50% 0;width:250px;height:82px;border-radius:50%;background:#d9b56f}
.lobby-plant{position:absolute;bottom:45px;width:70px;height:125px}.lobby-plant::before{content:"";position:absolute;left:25px;bottom:0;width:35px;height:37px;background:#a77755;border-radius:5px}.lobby-plant::after{content:"";position:absolute;left:0;top:0;width:75px;height:85px;background:radial-gradient(ellipse at center,#75a56a 0 18%,transparent 19%);background-size:32px 32px}.lp1{left:2%}.lp2{right:2%}

.inn-guest-scene{background:linear-gradient(180deg,#efe6da,#d8c0a2)}
.guest-corridor{position:absolute;left:42%;right:42%;top:0;bottom:0;background:linear-gradient(180deg,#dbc09d,#ba966f);clip-path:polygon(27% 0,73% 0,100% 100%,0 100%)}
.guest-door{position:absolute;width:112px;height:145px;background:#a96f4e;border:4px solid #5a4638;border-radius:7px}.guest-door span{position:absolute;top:17px;left:50%;translate:-50% 0;background:#e8c66f;border-radius:999px;padding:3px 7px;font-weight:900;font-size:11px}
.gd1{left:8%;top:17%}.gd2{left:8%;bottom:14%}.gd3{right:8%;top:17%}.gd4{right:8%;bottom:14%}
.guest-window{position:absolute;left:50%;top:13%;translate:-50% 0;width:100px;height:130px;background:#cce7f1;border:8px solid #fff;box-shadow:0 0 0 3px #645346}

.inn-lounge-scene{background:linear-gradient(180deg,#eee7de 0 67%,#c6a47d 67% 100%)}
.lounge-fireplace{position:absolute;left:50%;top:13%;translate:-50% 0;width:180px;height:155px;background:#b99c7d;border:4px solid #604c3b;clip-path:polygon(10% 0,90% 0,100% 100%,0 100%)}
.lounge-fireplace::after{content:"";position:absolute;left:49px;right:49px;bottom:10px;height:70px;background:radial-gradient(ellipse at bottom,#f1c158 0 22%,#df7143 23% 50%,#3c322c 51%);border-radius:50% 50% 0 0}
.lounge-sofa{position:absolute;bottom:60px;width:185px;height:82px;background:#8ea7a0;border:3px solid #584c42;border-radius:27px 27px 10px 10px}.lgs1{left:7%}.lgs2{right:7%}
.lounge-table{position:absolute;left:50%;bottom:57px;translate:-50% 0;width:110px;height:54px;border-radius:50%;background:#ab7a53;border:3px solid #584536}
.lounge-books{position:absolute;left:8%;top:12%;width:120px;height:105px;border-bottom:10px solid #a57651;background:repeating-linear-gradient(90deg,#bd6c5a 0 10px,#7192b4 10px 20px,#d1ae62 20px 30px)}
.lounge-lamp{position:absolute;right:10%;top:12%;width:14px;height:145px;background:#5c5249}.lounge-lamp::before{content:"";position:absolute;left:-25px;top:-6px;width:65px;height:43px;background:#e9cf7f;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}

.inn-dining-scene{background:linear-gradient(180deg,#f2ece3 0 69%,#cda983 69% 100%)}
.dining-counter{position:absolute;left:8%;right:8%;top:11%;height:88px;background:#b57b52;border:4px solid #594536;border-radius:14px}.dining-counter::after{content:"BREAKFAST • TEA • SNACKS";position:absolute;left:50%;top:26px;translate:-50% 0;color:#fff6df;font-weight:900;letter-spacing:.1em}
.dining-table{position:absolute;width:145px;height:70px;border-radius:50%;background:#d3ad79;border:3px solid #5a4839}.dt1{left:12%;bottom:74px}.dt2{left:50%;bottom:49px;translate:-50% 0}.dt3{right:12%;bottom:74px}
.dining-pendant{position:absolute;top:0;width:5px;height:116px;background:#5d534b}.dining-pendant::after{content:"";position:absolute;left:-24px;bottom:0;width:54px;height:35px;background:#e6c46e;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}.dp1{left:24%}.dp2{left:50%}.dp3{right:24%}

/* moving guests inside Inn */
.inn-moving-guest,.inn-moving-user{position:absolute;z-index:30;width:80px;height:118px;pointer-events:none}
.inn-moving-guest i{position:absolute;left:13px;right:13px;top:4px;height:77px;background:#fff;border:2px solid #584d44;border-radius:45% 45% 35% 35%;box-shadow:inset 0 -27px 0 #c3b5d4}
.inn-moving-guest i::before,.inn-moving-guest i::after{content:"";position:absolute;top:25px;width:5px;height:7px;background:#3e3732;border-radius:50%}.inn-moving-guest i::before{left:18px}.inn-moving-guest i::after{right:18px}
.inn-moving-guest span,.inn-moving-user span{position:absolute;left:50%;bottom:0;translate:-50% 0;background:#fff;border:1px solid #d5c8b8;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900}
.ig1{animation:innWalkA 14s ease-in-out infinite}.ig2{animation:innWalkB 16s ease-in-out infinite -5s}
.inn-moving-user{animation:innUserWalk 15s ease-in-out infinite -2s}.inn-moving-user img{width:86px;height:105px;object-fit:contain}
@keyframes innWalkA{0%,100%{left:10%;top:62%}40%{left:55%;top:53%}74%{left:78%;top:66%}}
@keyframes innWalkB{0%,100%{left:75%;top:36%}45%{left:42%;top:66%}78%{left:16%;top:42%}}
@keyframes innUserWalk{0%,100%{left:25%;top:47%}45%{left:66%;top:62%}75%{left:51%;top:35%}}
@media(prefers-reduced-motion:reduce){.inn-moving-guest,.inn-moving-user{animation:none}}

/* Duck petting */
.cute-duck{appearance:none;padding:0;cursor:pointer}
.cute-duck em{
  position:absolute;left:50%;bottom:-19px;translate:-50% 0;font-style:normal;font-size:8px;font-weight:900;
  background:rgba(255,255,255,.9);border-radius:999px;padding:2px 5px;opacity:0;transition:opacity .15s ease
}
.cute-duck:hover em,.cute-duck:focus-visible em{opacity:1}
.cute-duck.petted{animation:duckPetHop .55s ease}
.cute-duck.petted::after{box-shadow:none}
.cute-duck.petted > span::after{
  content:"♡";position:absolute;right:-16px;top:-23px;color:#d85d7b;font-size:23px;animation:duckHeart .7s ease forwards
}
@keyframes duckPetHop{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-16px) rotate(-6deg)}70%{transform:translateY(-5px) rotate(5deg)}}
@keyframes duckHeart{0%{opacity:0;transform:translateY(8px) scale(.6)}35%{opacity:1}100%{opacity:0;transform:translateY(-22px) scale(1.15)}}
.duck-pet-toast{
  position:absolute;left:50%;top:18px;translate:-50% 0;z-index:60;min-height:26px;
  background:rgba(255,255,255,.94);border-radius:999px;padding:6px 11px;font-size:11px;font-weight:800;pointer-events:none
}

/* AI chat form */
.duckie-free-chat{display:grid;gap:8px;margin-top:12px}
.duckie-free-chat label{font-size:12px;font-weight:900}
.duckie-free-chat textarea{min-height:88px;border:1px solid #cec2b3;border-radius:13px;padding:11px;font:inherit;font-size:16px;resize:vertical;background:#fff}
.duckie-free-chat small{font-size:10px;line-height:1.45;color:#73695f}
.quick-advice{margin-top:15px;padding-top:13px;border-top:1px solid #e1d6ca}.quick-advice>span{font-size:10px;font-weight:900;letter-spacing:.08em}

/* responsive */
@media(max-width:900px){
  .park-explorer-layout,.inn-explorer-layout{grid-template-columns:1fr}
  .park-world,.inn-world{height:520px}
}
@media(max-width:620px){
  .park-world,.inn-world{height:470px}
  .community-stage{width:280px}
  .lobby-desk{width:250px}
  .moving-resident,.moving-user-character{transform:scale(.82)}
}

/* V21: district scenery */
.district-scenery{position:absolute;inset:3% 3% 5%;z-index:1;pointer-events:none}.town-district .resident-grid{z-index:3!important}.district-note{z-index:5;position:relative}
.founders-fountain{position:absolute;left:50%;top:48%;translate:-50% -50%;width:105px;height:105px;border-radius:50%;background:radial-gradient(circle,#eafcff 0 20%,#85cad8 21% 40%,#d4c1a1 41% 54%,transparent 55%)}.founders-lamp{position:absolute;width:9px;height:110px;background:#5f554c;top:35%}.founders-lamp::before{content:"";position:absolute;left:-15px;top:-15px;width:38px;height:42px;background:#fff0ad;border:3px solid #5f554c;border-radius:10px;box-shadow:0 0 18px rgba(255,224,132,.6)}.fl1{left:33%}.fl2{right:33%}.founders-banner{position:absolute;left:50%;top:8%;translate:-50% 0;background:#fff8de;border:2px solid #715f4d;border-radius:999px;padding:7px 16px;font-weight:900;letter-spacing:.14em;font-size:10px}.founders-flowerbed{position:absolute;width:150px;height:50px;border-radius:50%;background:radial-gradient(circle,#e78aa6 0 4px,transparent 5px),radial-gradient(circle,#f4ce6b 0 4px,transparent 5px),#8db76c;background-size:22px 22px,27px 27px}.ffb1{left:20%;top:48%;transform:rotate(-13deg)}.ffb2{right:19%;top:49%;transform:rotate(12deg)}
.north-grove{position:absolute;width:120px;height:170px;background:repeating-linear-gradient(120deg,transparent 0 18px,#4e7a57 19px 28px,transparent 29px 46px)}.ng1{left:8%;top:20%}.ng2{right:7%;bottom:14%;transform:scale(.9)}.north-stones{position:absolute;left:28%;right:25%;top:42%;height:75px;background:radial-gradient(ellipse,#a49b8e 0 21px,transparent 22px);background-size:74px 44px;transform:rotate(-10deg)}.north-lookout{position:absolute;right:19%;top:17%;width:100px;height:73px;border-bottom:12px solid #866444;border-left:7px solid transparent;border-right:7px solid transparent}.north-creek{position:absolute;left:9%;right:6%;bottom:20%;height:80px;border-radius:50%;border-bottom:32px solid rgba(110,181,198,.72);transform:rotate(7deg)}
.garden-greenhouse{position:absolute;left:50%;top:8%;translate:-50% 0;width:160px;height:105px;background:linear-gradient(90deg,rgba(220,246,242,.7),rgba(176,225,216,.68));border:4px solid #73968d;clip-path:polygon(15% 28%,50% 0,85% 28%,100% 28%,100% 100%,0 100%,0 28%)}.garden-greenhouse::after{content:"";position:absolute;left:50%;top:23%;bottom:0;width:3px;background:#73968d}.garden-bed{position:absolute;width:170px;height:62px;border-radius:22px;background:repeating-radial-gradient(circle,#e77f9c 0 5px,transparent 6px 18px),#83ad66;border:5px solid #a87955}.gb1{left:10%;top:38%}.gb2{right:9%;top:39%}.gb3{left:40%;bottom:10%}.garden-arch{position:absolute;left:50%;bottom:18%;translate:-50% 0;width:105px;height:120px;border:10px solid #6c9b63;border-bottom:0;border-radius:60px 60px 0 0}
.harbor-water{position:absolute;left:3%;right:3%;bottom:2%;height:31%;border-radius:43% 57% 0 0;background:repeating-radial-gradient(ellipse at bottom,rgba(255,255,255,.27) 0 7px,transparent 8px 22px),linear-gradient(#84cedb,#5eb0c1)}.harbor-pier{position:absolute;bottom:13%;width:180px;height:30px;background:repeating-linear-gradient(90deg,#a97951 0 21px,#8c674b 21px 25px);border:3px solid #624c3a}.hp1{left:13%;transform:rotate(7deg)}.hp2{right:14%;transform:rotate(-5deg)}.harbor-lighthouse{position:absolute;right:8%;top:12%;width:55px;height:145px;background:repeating-linear-gradient(180deg,#fff3e7 0 26px,#d67468 26px 50px);clip-path:polygon(30% 0,70% 0,88% 100%,12% 100%);border-bottom:10px solid #71503f}.harbor-lighthouse::before{content:"";position:absolute;left:4px;right:4px;top:-24px;height:27px;background:#614d43;border-radius:50% 50% 0 0}.harbor-boat{position:absolute;bottom:7%;width:75px;height:29px;background:#f3d59d;border:3px solid #665042;border-radius:0 0 50% 50%}.harbor-boat::after{content:"";position:absolute;left:32px;bottom:27px;width:3px;height:45px;background:#665042}.hb1{left:39%}.hb2{left:60%;transform:scale(.78)}
.scenery-lantern{filter:drop-shadow(0 0 12px rgba(255,205,108,.18))}.lantern-string{position:absolute;left:9%;right:9%;height:34px;border-top:3px solid #705a4b;background:radial-gradient(circle,#ffc962 0 6px,transparent 7px);background-size:58px 31px}.ls-a{top:15%;transform:rotate(4deg)}.ls-b{top:31%;transform:rotate(-3deg)}.lantern-stall{position:absolute;width:150px;height:92px;background:#e9d0ac;border:4px solid #685242}.lantern-stall::before{content:"";position:absolute;left:-8px;right:-8px;top:-26px;height:36px;background:repeating-linear-gradient(90deg,#c86d69 0 21px,#f3d897 21px 42px);clip-path:polygon(0 0,100% 0,94% 100%,6% 100%)}.lst1{left:11%;bottom:16%}.lst2{right:10%;bottom:17%}.lantern-gate{position:absolute;left:50%;top:39%;translate:-50% -50%;width:160px;height:135px;border-left:17px solid #a85f4d;border-right:17px solid #a85f4d;border-top:22px solid #a85f4d}
.cloud-bank{position:absolute;width:180px;height:70px;background:#fff;border-radius:60px;box-shadow:45px -22px 0 1px #fff,-44px -10px 0 -5px #fff;opacity:.8}.cb1{left:5%;top:14%}.cb2{right:7%;top:24%;transform:scale(.75)}.cb3{left:42%;bottom:8%;transform:scale(.85)}.cloud-windmill{position:absolute;left:50%;top:42%;width:22px;height:135px;background:#b4a58e;transform:translate(-50%,-50%)}.cloud-windmill::before{content:"";position:absolute;left:-70px;top:-55px;width:160px;height:160px;background:conic-gradient(transparent 0 9%,#f7f4e9 10% 22%,transparent 23% 34%,#f7f4e9 35% 47%,transparent 48% 59%,#f7f4e9 60% 72%,transparent 73% 84%,#f7f4e9 85% 97%,transparent 98%);border-radius:50%;animation:windmillSpin 12s linear infinite}.cloud-terrace-rail{position:absolute;left:18%;right:18%;bottom:16%;height:40px;border-top:5px solid #96a9a8;background:repeating-linear-gradient(90deg,transparent 0 28px,#96a9a8 29px 34px)}@keyframes windmillSpin{to{transform:rotate(360deg)}}
.studio-gallery{position:absolute;left:11%;top:20%;width:175px;height:115px;background:#faf4eb;border:4px solid #62574f;clip-path:polygon(0 19%,23% 19%,23% 0,77% 0,77% 19%,100% 19%,100% 100%,0 100%)}.studio-gallery::after{content:"GALLERY";position:absolute;left:50%;top:35px;translate:-50% 0;font-weight:900;letter-spacing:.13em}.studio-sculpture{position:absolute;width:75px;height:105px;background:#ba8cb3;clip-path:polygon(50% 0,100% 26%,73% 49%,93% 100%,48% 74%,0 100%,20% 51%,0 24%)}.ss-a{right:19%;top:24%}.ss-b{right:32%;bottom:15%;background:#779eb8;transform:scale(.72) rotate(22deg)}.studio-mural{position:absolute;left:36%;bottom:10%;width:190px;height:92px;background:linear-gradient(135deg,#dd7f89 0 22%,#f0ca72 22% 44%,#7fb0a1 44% 67%,#8e79b1 67%);border:5px solid #61534a;transform:rotate(-4deg)}.studio-easel{position:absolute;right:7%;bottom:9%;width:75px;height:110px;border-left:7px solid #7b5d43;border-right:7px solid #7b5d43;transform:skewX(-8deg)}
.scenery-moon{background:radial-gradient(circle at 70% 18%,rgba(255,244,190,.18),transparent 25%)}.moon-gate{position:absolute;left:50%;top:21%;translate:-50% 0;width:150px;height:175px;border:15px solid #715f91;border-bottom:0;border-radius:90px 90px 0 0}.moon-gate::after{content:"☾";position:absolute;left:50%;top:28px;translate:-50% 0;font-size:49px;color:#f1d884}.moon-stall{position:absolute;width:145px;height:85px;background:#76688d;border:4px solid #4e465e}.moon-stall::before{content:"";position:absolute;left:-7px;right:-7px;top:-25px;height:33px;background:repeating-linear-gradient(90deg,#b78cae 0 20px,#e4c77d 20px 40px);clip-path:polygon(0 0,100% 0,94% 100%,6% 100%)}.ms1{left:9%;bottom:14%}.ms2{left:42%;bottom:9%}.ms3{right:7%;bottom:15%}.moon-stars{position:absolute;inset:0;background:radial-gradient(circle,#fff1a6 0 2px,transparent 3px);background-size:62px 58px;opacity:.6}.moon-lanterns{position:absolute;left:12%;right:10%;top:29%;height:30px;border-top:2px solid #5c526e;background:radial-gradient(circle,#f4cf6d 0 5px,transparent 6px);background-size:49px 29px}

/* Duck House room visuals */
.duck-house-room-layer{position:absolute;inset:0;z-index:1}.duck-house-room-layer[hidden]{display:none!important}
.duck-house-scene[data-room="studio"]{background:linear-gradient(180deg,#f4ede2 0 64%,#d8b38a 64% 100%)}.duck-house-scene[data-room="kitchen"]{background:linear-gradient(180deg,#f6edd9 0 65%,#d5af82 65% 100%)}.duck-house-scene[data-room="bedroom"]{background:linear-gradient(180deg,#eee7f4 0 66%,#c6a882 66% 100%)}.duck-house-scene[data-room="pondroom"]{background:linear-gradient(180deg,#e0f1ec 0 66%,#b8d6bd 66% 100%)}
.duck-art-wall{position:absolute;left:8%;right:8%;top:8%;height:150px;background:repeating-linear-gradient(90deg,#fff 0 120px,#f6f1e9 120px 130px);border-bottom:8px solid #c9b69e}.duck-art-easel{position:absolute;width:110px;height:160px;border-left:8px solid #765a42;border-right:8px solid #765a42;transform:skewX(-8deg)}.duck-art-easel::after{content:"";position:absolute;left:10px;right:10px;top:22px;height:85px;background:linear-gradient(135deg,#fff 0 35%,#e1818f 36% 53%,#f2c75d 54% 70%,#7da6b2 71%);border:4px solid #745942}.dae1{left:15%;top:28%}.dae2{right:14%;top:30%;transform:skewX(7deg) scale(.9)}.duck-art-table{position:absolute;left:50%;bottom:65px;translate:-50% 0;width:240px;height:55px;background:#b9855f;border:4px solid #67503f;border-radius:50%}.paint-jars{position:absolute;left:48%;bottom:123px;width:18px;height:32px;background:#d97789;border-radius:4px;box-shadow:32px 3px 0 #5f9ead,-31px 5px 0 #e0b557,64px 7px 0 #8db06f}
.duck-kitchen-counter{position:absolute;left:5%;right:5%;top:18%;height:115px;background:linear-gradient(#fff6e8 0 22px,#caa379 23px 100%);border:4px solid #68503f;border-radius:9px}.duck-fridge{position:absolute;right:8%;top:10%;width:105px;height:205px;background:#d8e6e5;border:4px solid #5b615f;border-radius:12px}.duck-fridge::after{content:"";position:absolute;left:9px;right:9px;top:91px;height:3px;background:#5b615f}.duck-island{position:absolute;left:50%;bottom:62px;translate:-50% 0;width:220px;height:100px;background:#d1ab83;border:4px solid #674f3c;border-radius:12px}.duck-island::after{content:"";position:absolute;left:-15px;right:-15px;top:-14px;height:24px;background:#f6e7d2;border:4px solid #674f3c;border-radius:10px}.duck-kitchen-shelf{position:absolute;left:10%;top:41%;width:160px;height:11px;background:#9f7555;box-shadow:0 48px 0 #9f7555}.duck-fruit-bowl{position:absolute;left:44%;bottom:168px;width:95px;height:34px;background:#d59666;border-radius:0 0 50% 50%;box-shadow:inset 0 8px 0 #e6b55e}
.duck-bed{position:absolute;left:13%;bottom:64px;width:290px;height:135px;background:#d8b8cf;border:4px solid #654f60;border-radius:16px}.duck-bed::before{content:"";position:absolute;left:14px;top:14px;width:80px;height:45px;background:#fff7ee;border-radius:15px}.duck-bed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:69px;background:repeating-linear-gradient(135deg,#e2c7d9 0 25px,#c9a8bf 25px 50px);border-radius:0 0 12px 12px}.duck-nightstand{position:absolute;right:18%;bottom:65px;width:80px;height:75px;background:#b98565;border:4px solid #67503f}.duck-bedroom-window{position:absolute;right:13%;top:10%;width:125px;height:115px;background:#cce7f2;border:8px solid #fff;box-shadow:0 0 0 3px #625248}.duck-blanket-pile{position:absolute;left:53%;bottom:65px;width:110px;height:72px;background:#e9cf84;border-radius:50%;box-shadow:23px -15px 0 #b7d2b2,-21px -9px 0 #d2b6cf}
.indoor-pond{position:absolute;left:13%;right:13%;bottom:38px;height:260px;border-radius:48% 52% 43% 57%;background:radial-gradient(ellipse at 46% 30%,#d6fbff,#83d2da 55%,#64b2bd);border:7px solid #839b77;box-shadow:inset 0 0 0 12px rgba(255,255,255,.15)}.pond-lilies{position:absolute;left:26%;bottom:145px;width:52px;height:25px;border-radius:50%;background:#83aa6e;box-shadow:155px 37px 0 #8ab377,280px -24px 0 #78a167}.pond-stones{position:absolute;left:13%;right:12%;bottom:28px;height:40px;background:radial-gradient(ellipse,#a89f91 0 21px,transparent 22px);background-size:61px 38px}.pond-skylight{position:absolute;left:50%;top:2%;translate:-50% 0;width:260px;height:110px;background:linear-gradient(#dff5fb,#fff);border:9px solid #a3b4ab;clip-path:polygon(17% 0,83% 0,100% 100%,0 100%)}.pond-ferns{position:absolute;left:5%;bottom:89px;width:90px;height:130px;background:repeating-linear-gradient(72deg,transparent 0 12px,#719d6a 13px 18px,transparent 19px 29px);box-shadow:545px 0 0 rgba(105,155,98,.85)}

/* Duck appearances */
.cute-duck u{position:absolute;display:block;text-decoration:none;z-index:3}.duck-style-pip{background:#ffe56f}.duck-style-pip u{left:17px;top:-11px;width:26px;height:18px;background:#668cbe;border:2px solid #5e5143;border-radius:50% 50% 15% 15%;transform:rotate(-8deg)}.duck-style-mochi{background:#fff3c7}.duck-style-mochi u{right:-7px;top:4px;width:20px;height:20px;background:#e99ab0;clip-path:polygon(50% 30%,100% 0,72% 50%,100% 100%,50% 70%,0 100%,28% 50%,0 0)}.duck-style-bean{background:#e9db8c}.duck-style-bean u{left:8px;top:-9px;width:39px;height:16px;background:repeating-linear-gradient(90deg,#d67683 0 10px,#78a1b5 10px 20px,#e3bd5d 20px 30px);border:2px solid #5f5247;border-radius:50%}.duck-style-sunny{background:#ffd94e}.duck-style-sunny u{left:18px;top:-17px;width:22px;height:22px;background:#f2a04a;clip-path:polygon(50% 0,61% 34%,100% 50%,65% 61%,50% 100%,38% 64%,0 50%,34% 37%)}.duck-style-pebble{background:#d8d2bc}.duck-style-pebble u{right:2px;top:6px;width:13px;height:13px;background:#7da083;border-radius:50%;box-shadow:-8px 5px 0 #7da083}.duck-style-noodle{background:#f4d276}.duck-style-noodle u{left:12px;top:-10px;width:34px;height:17px;background:#bd6d74;border:2px solid #5f5045;border-radius:3px 3px 50% 50%}.duck-style-waffle{background:#f2d897}.duck-style-waffle::before,.duck-style-waffle::after{height:3px;top:20px;border-radius:999px}.duck-style-waffle u{left:9px;top:-7px;width:41px;height:19px;background:#b7a0c8;border-radius:60% 60% 20% 20%}.duck-style-dot{background:#fff1b2;transform:scale(.83)}.duck-style-dot u{left:19px;top:-10px;width:19px;height:19px;background:#7c9db6;border:2px solid #5d5044;transform:rotate(45deg)}.duck-style-taro{background:#e8d28a}.duck-style-taro u{left:7px;top:-11px;width:44px;height:18px;background:#779f72;border:2px solid #594e42;clip-path:polygon(0 100%,20% 0,80% 0,100% 100%)}.duck-style-biscuit{background:#f3e4bd}.duck-style-biscuit u{right:4px;top:4px;width:16px;height:16px;border:3px solid #9c8067;border-radius:50%}.cute-duck[hidden]{display:none!important}
.duckie-other-room-card{position:absolute;left:50%;top:42%;translate:-50% -50%;z-index:35;width:min(330px,75%);background:rgba(255,255,255,.95);border:2px solid #75634d;border-radius:20px;padding:19px;text-align:center}.duckie-other-room-card strong,.duckie-other-room-card span{display:block}.duckie-other-room-card span{font-size:12px;color:#71665c;margin:6px 0 12px}

/* Community-stage performances */
.stage-performance{position:absolute;left:50%;top:35%;translate:-50% -50%;width:300px;height:130px;z-index:8}.stage-performer{position:absolute;width:72px;height:102px;animation:stageBounce 1.3s ease-in-out infinite}.stage-performer i{position:absolute;left:11px;right:11px;top:2px;height:70px;background:#fff;border:2px solid #4d4340;border-radius:44% 44% 32% 32%;box-shadow:inset 0 -28px 0 #cfa3bb}.stage-performer span{position:absolute;left:50%;bottom:0;translate:-50% 0;background:#fff;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:900}.perf-1{left:12%}.perf-2{left:39%;animation-delay:-.4s}.perf-3{right:9%;animation-delay:-.8s}.stage-status-card{position:absolute;right:4%;top:8%;z-index:12;width:190px;background:rgba(255,255,255,.92);border:2px solid #5f5146;border-radius:15px;padding:10px}.stage-status-card strong,.stage-status-card span{display:block}.stage-status-card span{font-size:10px;line-height:1.4;color:#6e645c;margin-top:4px}@keyframes stageBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* Dynamic Inn rooms */
.inn-room-count{position:absolute;left:50%;top:8%;translate:-50% 0;background:rgba(255,255,255,.9);border:1px solid #cfc1af;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800;z-index:8}.dynamic-room-hall{position:absolute;left:7%;right:7%;top:20%;bottom:12%;display:grid;grid-template-columns:repeat(3,1fr);gap:18px 30px;align-content:center}.dynamic-guest-door{appearance:none;position:relative;height:150px;background:#a96f4e;border:4px solid #5a4638;border-radius:8px;cursor:pointer;color:#2d2723;box-shadow:0 8px 0 rgba(83,59,43,.15)}.dynamic-guest-door::after{content:"";position:absolute;right:13px;top:74px;width:8px;height:8px;background:#e0bd64;border-radius:50%}.dynamic-guest-door span{position:absolute;left:50%;top:19px;translate:-50% 0;background:#e8c66f;border-radius:999px;padding:3px 8px;font-weight:900;font-size:11px}.dynamic-guest-door small{position:absolute;left:50%;bottom:18px;translate:-50% 0;background:#fff5e7;border-radius:999px;padding:4px 8px;font-weight:900;white-space:nowrap}.dynamic-guest-door b{position:absolute;left:50%;top:58px;translate:-50% 0;color:#fff7d5;font-size:9px;letter-spacing:.1em}.dynamic-guest-door.my-door{background:#8e7ca5;box-shadow:0 0 0 5px rgba(242,210,105,.35),0 8px 0 rgba(83,59,43,.15)}.inn-resident-count{font-size:11px;color:#756b61;margin:8px 0 0}
.inn-myroom-scene{background:linear-gradient(180deg,#eee7da 0 68%,#c6a27c 68% 100%)}.my-room-number{position:absolute;left:50%;top:8%;translate:-50% 0;background:#fff4d2;border:2px solid #6d5a47;border-radius:999px;padding:7px 13px;font-weight:900}.my-room-bed{position:absolute;left:9%;bottom:58px;width:260px;height:130px;background:#b8cfd0;border:4px solid #5b5149;border-radius:15px}.my-room-bed::before{content:"";position:absolute;left:15px;top:12px;width:78px;height:42px;background:#fff6e9;border-radius:12px}.my-room-bed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:63px;background:repeating-linear-gradient(135deg,#b7d0d1 0 28px,#9dbabd 28px 56px);border-radius:0 0 11px 11px}.my-room-desk{position:absolute;right:10%;bottom:74px;width:180px;height:65px;background:#b47f59;border:4px solid #5f4938;border-radius:6px}.my-room-desk::before{content:"";position:absolute;left:53px;top:-65px;width:85px;height:63px;background:#cce7ef;border:5px solid #645349;border-radius:5px}.my-room-window{position:absolute;right:12%;top:12%;width:145px;height:130px;background:linear-gradient(#cce8f1,#dcecc6);border:9px solid #fff;box-shadow:0 0 0 3px #615147}.my-room-rug{position:absolute;left:50%;bottom:20px;translate:-50% 0;width:220px;height:75px;border-radius:50%;background:#d9bd75}.my-room-luggage{position:absolute;left:43%;bottom:65px;width:70px;height:88px;background:#9a7d9f;border:4px solid #5a4c5b;border-radius:9px}.my-room-luggage::before{content:"";position:absolute;left:18px;right:18px;top:-16px;height:17px;border:4px solid #5a4c5b;border-bottom:0;border-radius:9px 9px 0 0}.my-room-character{position:absolute;left:42%;bottom:70px;width:105px;height:145px;text-align:center}.my-room-character img{width:100px;height:120px;object-fit:contain}.my-room-character span{background:#fff;border:1px solid #d3c7b8;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900}
@media(max-width:720px){.dynamic-room-hall{grid-template-columns:repeat(2,1fr);gap:14px}.dynamic-guest-door{height:130px}}
@media(prefers-reduced-motion:reduce){.cloud-windmill::before,.stage-performer{animation:none}}

/* V22 — private inn room, true AI-chat feel, snack bag + duck feeding */

/* Nobody else appears inside YOUR inn room. Your own room character is the only resident shown. */
.inn-world[data-area="myroom"] .inn-moving-guest,
.inn-world[data-area="myroom"] .inn-moving-user{display:none!important}

/* Duckie Girl's speech bubble is unmistakably ABOVE her head. */
.duckie-home-character{overflow:visible!important}
.duckie-home-bubble{
  top:-108px!important;
  left:50%!important;
  translate:-50% 0!important;
  width:250px!important;
  max-width:250px!important;
  min-width:190px!important;
  z-index:80!important;
  box-shadow:0 8px 22px rgba(64,52,43,.13)
}
.duckie-home-bubble::after{
  content:"";position:absolute;left:50%;bottom:-10px;translate:-50% 0;
  width:16px;height:16px;background:#fff;border-right:2px solid #5b4c40;border-bottom:2px solid #5b4c40;
  transform:rotate(45deg)
}
.duckie-park-bubble{top:-70px!important;z-index:80!important}

/* Real conversation transcript */
.duckie-chat-transcript{
  margin:12px 0;padding:11px;border:1px solid #ddd2c5;border-radius:15px;background:#f8f4ee;
  max-height:220px;overflow:auto;display:grid;gap:8px
}
.compact-transcript{max-height:170px}
.chat-turn{display:grid;gap:3px;max-width:92%;padding:9px 11px;border-radius:14px;font-size:12px;line-height:1.45}
.chat-turn strong{font-size:10px;letter-spacing:.04em}
.chat-turn span{white-space:pre-wrap}
.user-turn{justify-self:end;background:#e7efe0;border-bottom-right-radius:4px}
.duckie-turn{justify-self:start;background:#fff2c8;border-bottom-left-radius:4px}
.chat-empty{text-align:center;color:#82766c;font-size:11px;padding:10px}

/* Inn dining-room Duck Snack Bar */
.duck-snack-station{
  position:absolute;left:50%;top:20%;translate:-50% 0;width:430px;max-width:78%;
  display:grid;grid-template-columns:repeat(4,1fr);gap:9px;z-index:12
}
.snack-station-sign{
  grid-column:1/-1;background:#fff1bd;border:3px solid #614c3d;border-radius:999px;
  padding:6px 10px;text-align:center;font-size:11px;font-weight:900;letter-spacing:.12em
}
.snack-bin{
  appearance:none;position:relative;height:92px;border:3px solid #5e4a3c;border-radius:14px;
  background:#f7e5c8;cursor:pointer;font:inherit;box-shadow:0 7px 0 rgba(81,58,42,.12)
}
.snack-bin:hover{transform:translateY(-2px)}
.snack-bin i{position:absolute;left:50%;top:12px;translate:-50% 0;width:48px;height:44px;border-radius:50% 50% 42% 42%;border:2px solid rgba(70,57,47,.45)}
.snack-bin span{position:absolute;left:50%;bottom:8px;translate:-50% 0;font-size:10px;font-weight:900}
.snack-bin.peas i{background:radial-gradient(circle,#7caf61 0 7px,transparent 8px);background-size:19px 19px}
.snack-bin.oats i{background:repeating-linear-gradient(35deg,#d7bd7d 0 4px,#f2dfab 4px 9px)}
.snack-bin.corn i{background:radial-gradient(circle,#eccd54 0 6px,transparent 7px);background-size:17px 17px}
.snack-bin.cucumber i{background:radial-gradient(circle,#cfe2a8 0 11px,#6ea263 12px 16px,transparent 17px);background-size:30px 30px}

.snack-inventory{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.snack-chip{
  border:1px solid #cdbfae;background:#fff;border-radius:999px;padding:7px 10px;display:flex;gap:7px;align-items:center;
  font:inherit;font-size:11px;font-weight:800;cursor:pointer
}
.snack-chip b{font-size:10px}
.snack-chip.selected{background:#2e2925;color:#fff;border-color:#2e2925}
.snack-chip:disabled{opacity:.42;cursor:not-allowed}
.duck-snack-bag{margin-top:12px;padding-top:11px;border-top:1px solid #e1d6ca}
.duck-snack-bag>strong{font-size:12px}
#selectedDuckSnackText{font-size:10px;color:#776d64;margin:7px 0 0}

/* Keep snack station readable on small screens */
@media(max-width:650px){
  .duck-snack-station{grid-template-columns:repeat(2,1fr);width:330px;top:16%}
  .snack-bin{height:78px}
  .duckie-home-bubble{width:190px!important;max-width:190px!important;top:-100px!important}
}

/* ==========================================================
   V23 — more refined buildings + richer districts + 12 snacks
   ========================================================== */

/* ---------- More elegant city-map building language ---------- */
.expandable-city-map .mini-iso-house{
  filter:drop-shadow(8px 13px 8px rgba(61,50,42,.14));
}
.expandable-city-map .mini-iso-house::before{
  content:"";
  position:absolute;
  left:20px;right:17px;bottom:19px;
  height:8px;
  background:linear-gradient(180deg,#cfbca3,#a98f74);
  border:2px solid rgba(78,61,48,.38);
  border-radius:3px;
  z-index:0;
}
.expandable-city-map .mini-front{
  box-shadow:
    inset 0 -10px 0 rgba(115,86,61,.05),
    inset 0 0 0 2px rgba(255,255,255,.18);
}
.expandable-city-map .mini-roof{
  box-shadow:
    inset 0 5px 0 rgba(255,255,255,.18),
    0 5px 0 rgba(73,57,45,.12);
}
.expandable-city-map .mini-window{
  box-shadow:
    inset 0 0 0 3px rgba(255,255,255,.75),
    0 0 0 2px rgba(82,64,50,.34);
  background:
    linear-gradient(90deg,transparent 46%,rgba(255,255,255,.72) 47% 53%,transparent 54%),
    linear-gradient(180deg,transparent 46%,rgba(255,255,255,.72) 47% 53%,transparent 54%),
    linear-gradient(145deg,#c9eaf2,#9ecad7);
}
.expandable-city-map .mini-door{
  box-shadow:inset -6px 0 0 rgba(82,55,39,.08),0 0 0 2px rgba(83,60,44,.35);
}
.expandable-city-map .mini-door::after{
  content:"";
  position:absolute;right:7px;top:50%;width:4px;height:4px;border-radius:50%;background:#e7cb75;
}

/* Tiny architectural details: chimneys, flower boxes, eaves */
.expandable-city-map .mini-iso-house .mini-front::before{
  content:"";
  position:absolute;
  left:9px;right:9px;top:-5px;height:7px;
  background:rgba(91,70,54,.18);
  border-radius:4px;
}
.expandable-city-map .mini-iso-house .mini-front::after{
  content:"";
  position:absolute;
  left:8px;bottom:10px;width:34px;height:8px;
  border-radius:8px 8px 3px 3px;
  background:linear-gradient(90deg,#d98a96 0 22%,#f0c962 22% 44%,#83aa70 44% 66%,#d98a96 66%);
  box-shadow:62px 0 0 rgba(125,164,103,.85);
  opacity:.78;
}
.expandable-city-map .reserved-mini::after,
.expandable-city-map .future-mini::after{
  content:"";
  position:absolute;
  right:23px;top:10px;width:15px;height:31px;
  background:#80624c;
  border:2px solid #5f4939;
  border-bottom:0;
  border-radius:3px 3px 0 0;
  z-index:-1;
}

/* Duckie Girl landmark gets a proper porch, crest, and planted entry */
.duckie-landmark-house::after{
  content:"";
  position:absolute;left:37px;right:35px;bottom:6px;height:28px;
  background:linear-gradient(#e7c58a,#cda66d);
  border:3px solid #6a533f;border-radius:7px;
  z-index:2;
}
.duckie-landmark-house .mini-front::after{
  left:11px!important;
  width:46px!important;
  height:10px!important;
  box-shadow:72px 0 0 rgba(125,164,103,.9)!important;
}
.duckie-landmark::after{
  background:
    radial-gradient(circle at 50% 16%,#f0cf68 0 8px,transparent 9px),
    linear-gradient(180deg,#e6d09f,#d1b680)!important;
}
.duckie-landmark::before{
  box-shadow:
    0 10px 0 rgba(118,151,91,.3),
    0 18px 24px rgba(64,74,51,.12),
    inset 0 0 0 5px rgba(255,255,255,.14)!important;
}

/* Reserved homes get understated polished lots */
.reserved-lot::before{
  box-shadow:
    0 8px 0 rgba(118,151,91,.27),
    0 15px 20px rgba(61,73,49,.08),
    inset 0 0 0 4px rgba(255,255,255,.12)!important;
}
.reserved-ribbon{
  box-shadow:0 5px 12px rgba(60,48,39,.12);
  letter-spacing:.12em;
}

/* ---------- Founders Park landmark refinement ---------- */
.park-map-landmark{
  width:268px!important;height:178px!important;
}
.park-map-landmark::before{
  content:"";
  position:absolute;left:3px;right:5px;bottom:3px;height:135px;
  background:
    radial-gradient(circle at 17% 32%,#f3cf6e 0 4px,transparent 5px),
    radial-gradient(circle at 30% 47%,#df7f98 0 4px,transparent 5px),
    radial-gradient(circle at 69% 27%,#f0b068 0 4px,transparent 5px),
    radial-gradient(circle at 82% 46%,#d984a6 0 4px,transparent 5px);
  background-size:38px 38px;
  opacity:.72;
}
.map-pond{
  border-width:4px!important;
  box-shadow:
    inset 0 0 0 7px rgba(255,255,255,.17),
    0 6px 0 rgba(71,113,116,.16)!important;
}
.map-pond::after{
  content:"";
  position:absolute;left:19px;right:17px;top:20px;height:13px;
  background:radial-gradient(ellipse,#e9f9fc 0 7px,transparent 8px);
  background-size:30px 13px;opacity:.7;
}
.map-gazebo::after{
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.16);
}
.map-bench::before{
  content:"";
  position:absolute;left:5px;right:5px;top:-8px;height:6px;
  background:#bc8a5d;border:2px solid #604b3b;border-radius:4px;
}
.park-lot .special-label{
  background:linear-gradient(180deg,#f8ffe9,#eaf5d8)!important;
  box-shadow:0 5px 12px rgba(61,74,48,.08);
}

/* ---------- City Inn landmark refinement ---------- */
.inn-map-landmark{
  width:242px!important;height:198px!important;
}
.inn-map-body{
  background:
    linear-gradient(90deg,transparent 0 47%,rgba(131,97,70,.08) 48% 52%,transparent 53%),
    linear-gradient(180deg,#fff4e5,#e8d0b0)!important;
  box-shadow:
    inset 0 0 0 4px rgba(255,255,255,.16),
    0 8px 0 rgba(84,61,45,.1);
}
.inn-map-roof{
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 5px,transparent 5px 13px),
    linear-gradient(145deg,#ad7758,#85573f)!important;
}
.inn-map-awning{
  background:
    repeating-linear-gradient(90deg,#f0c86f 0 12px,#fff0c3 12px 24px)!important;
  box-shadow:0 4px 0 rgba(89,63,45,.12);
}
.inn-map-wing::after{
  content:"";
  position:absolute;left:12px;top:21px;width:24px;height:26px;
  background:#c8e8f1;border:3px solid #665446;border-radius:5px;
  box-shadow:0 41px 0 #c8e8f1;
}
.inn-map-door::after{
  content:"";
  position:absolute;right:6px;top:24px;width:5px;height:5px;border-radius:50%;background:#f0cf75;
}
.inn-lot .special-label{
  box-shadow:0 5px 12px rgba(78,57,43,.08);
}

/* ---------- Extra district beauty: paths, edging, micro-landmarks ---------- */
.town-district::after{
  content:"";
  position:absolute;
  left:9%;right:9%;bottom:12%;
  height:120px;
  border-radius:50%;
  border-bottom:22px solid rgba(231,207,160,.58);
  transform:rotate(-2deg);
  z-index:1;
  pointer-events:none;
}
.town-district[data-district-name="Harbor Quarter"]::after{
  border-bottom-color:rgba(235,218,183,.72);
  bottom:33%;
}
.town-district[data-district-name="Moon Market"]::after{
  border-bottom-color:rgba(202,185,151,.38);
}
.town-district[data-district-name="Studio Square"]::after{
  border-bottom-color:rgba(209,194,174,.55);
}

/* founders plaza stones */
.scenery-founders::before{
  content:"";
  position:absolute;left:34%;right:34%;top:30%;bottom:28%;
  background:
    linear-gradient(45deg,rgba(222,210,192,.62) 25%,transparent 25%) 0 0/22px 22px,
    linear-gradient(-45deg,rgba(222,210,192,.62) 25%,transparent 25%) 0 11px/22px 22px;
  border-radius:50%;
  opacity:.65;
}
.scenery-founders::after{
  content:"";
  position:absolute;left:45%;right:45%;top:12%;height:17%;
  border-left:4px solid rgba(113,95,77,.24);
  border-right:4px solid rgba(113,95,77,.24);
}

/* North Loop detail */
.scenery-north::before{
  content:"";
  position:absolute;left:5%;right:6%;top:10%;bottom:10%;
  background:radial-gradient(circle,#f5e9bf 0 2px,transparent 3px);
  background-size:47px 43px;opacity:.28;
}
.north-lookout::after{
  content:"";
  position:absolute;left:20px;right:20px;bottom:-37px;height:35px;
  border-left:5px solid #866444;border-right:5px solid #866444;
}

/* Garden Blocks detail */
.garden-greenhouse{
  box-shadow:0 9px 0 rgba(77,112,103,.12),inset 0 0 0 4px rgba(255,255,255,.18);
}
.garden-bed{
  box-shadow:0 8px 0 rgba(116,83,56,.12);
}
.garden-arch::after{
  content:"";
  position:absolute;left:-16px;right:-16px;top:15px;height:64px;
  background:radial-gradient(circle,#d77891 0 4px,transparent 5px);
  background-size:24px 24px;
}

/* Harbor detail */
.harbor-water{
  box-shadow:inset 0 9px 16px rgba(255,255,255,.14);
}
.harbor-pier::after{
  content:"";
  position:absolute;left:14px;right:14px;bottom:-15px;height:16px;
  border-left:5px solid #6b5140;border-right:5px solid #6b5140;
}
.harbor-lighthouse{
  filter:drop-shadow(0 8px 5px rgba(61,49,42,.13));
}
.harbor-lighthouse::after{
  content:"";
  position:absolute;left:-14px;right:-14px;top:3px;height:14px;
  background:#55463f;border-radius:999px;
}

/* Lantern Lane detail */
.scenery-lantern::before{
  content:"";
  position:absolute;left:4%;right:4%;bottom:6%;height:31%;
  background:
    radial-gradient(circle at center,#f3d36f 0 3px,transparent 4px);
  background-size:42px 42px;opacity:.24;
}
.lantern-stall{
  box-shadow:0 9px 0 rgba(78,57,43,.12);
}
.lantern-gate::after{
  content:"";
  position:absolute;left:-34px;right:-34px;top:-19px;height:16px;background:#a85f4d;
}

/* Cloud Terrace detail */
.scenery-cloud::after{
  content:"";
  position:absolute;left:6%;right:7%;top:30%;height:35%;
  background:radial-gradient(circle,rgba(255,255,255,.82) 0 3px,transparent 4px);
  background-size:54px 54px;opacity:.65;
}
.cloud-terrace-rail{
  box-shadow:0 6px 0 rgba(102,130,132,.08);
}

/* Studio Square detail */
.studio-gallery{
  box-shadow:0 9px 0 rgba(79,66,58,.12);
}
.studio-mural{
  box-shadow:0 8px 0 rgba(71,59,52,.11);
}
.scenery-studio::after{
  content:"";
  position:absolute;left:25%;right:20%;top:22%;height:35%;
  background:radial-gradient(circle,#ca8caa 0 3px,transparent 4px);
  background-size:48px 48px;opacity:.23;
}

/* Moon Market detail */
.scenery-moon::before{
  content:"";
  position:absolute;inset:5%;
  border:1px solid rgba(238,213,134,.16);
  border-radius:46% 54% 49% 51%;
}
.moon-stall{
  box-shadow:0 9px 0 rgba(50,42,60,.18);
}
.moon-gate{
  filter:drop-shadow(0 9px 8px rgba(50,42,64,.15));
}

/* ---------- Expanded snack bar ---------- */
.duck-snack-station{
  width:520px!important;
  max-width:88%!important;
  grid-template-columns:repeat(6,1fr)!important;
  gap:8px!important;
  top:17%!important;
}
.snack-bin{
  height:79px!important;
}
.snack-bin i{
  width:39px!important;height:36px!important;top:9px!important;
}
.snack-bin span{
  bottom:6px!important;font-size:9px!important;
}
.snack-bin.lettuce i{
  background:
    radial-gradient(ellipse at 35% 40%,#91bd6f 0 9px,transparent 10px),
    radial-gradient(ellipse at 65% 43%,#7fab62 0 10px,transparent 11px),
    radial-gradient(ellipse at 50% 68%,#a9cc83 0 11px,transparent 12px);
}
.snack-bin.watermelon i{
  background:radial-gradient(ellipse at 50% 90%,#ec7280 0 48%,#eff1b7 49% 61%,#63a260 62% 100%);
}
.snack-bin.blueberries i{
  background:radial-gradient(circle,#6f79b9 0 7px,transparent 8px);
  background-size:15px 15px;
}
.snack-bin.rice i{
  background:repeating-radial-gradient(ellipse,#f7f1df 0 4px,#d8cfb9 5px 6px,transparent 7px 11px);
}
.snack-bin.pumpkin i{
  background:
    radial-gradient(ellipse,#eda155 0 13px,transparent 14px),
    linear-gradient(#6f8d59,#6f8d59);
}
.snack-bin.apple i{
  background:radial-gradient(circle at 50% 58%,#d96b67 0 14px,transparent 15px);
}
.snack-bin.spinach i{
  background:
    radial-gradient(ellipse at 30% 45%,#5f9b61 0 10px,transparent 11px),
    radial-gradient(ellipse at 69% 54%,#77aa69 0 11px,transparent 12px);
}
.snack-bin.barley i{
  background:repeating-linear-gradient(60deg,#d6b66f 0 4px,#edd69a 4px 8px,transparent 8px 12px);
}

/* small-map responsiveness after polish */
@media(max-width:900px){
  .duck-snack-station{grid-template-columns:repeat(4,1fr)!important;width:450px!important}
}
@media(max-width:650px){
  .duck-snack-station{grid-template-columns:repeat(3,1fr)!important;width:320px!important;top:13%!important}
  .snack-bin{height:70px!important}
  .district-scenery{opacity:.75}
}

/* ==========================================================
   V24 — scenery never paints over buildings
   ========================================================== */

/* Establish a strict stacking order:
   scenery -> roads -> lot ground -> buildings -> labels. */
.town-district{isolation:isolate}
.district-scenery{
  z-index:0!important;
  overflow:hidden;
  border-radius:44% 56% 46% 54% / 50% 44% 56% 50%;
}
.town-district::after{z-index:1!important}
.town-district .resident-grid{z-index:10!important}
.expandable-city-map .mini-lot{
  z-index:10!important;
  isolation:isolate;
}
.expandable-city-map .mini-lot::before{
  z-index:0!important;
  width:218px!important;
  height:144px!important;
  background:linear-gradient(
    145deg,
    color-mix(in srgb,var(--district-ground) 94%,#fff 6%),
    var(--district-ground2)
  )!important;
  box-shadow:
    0 9px 0 color-mix(in srgb,var(--district-accent) 20%,transparent 80%),
    0 15px 18px rgba(61,73,49,.08),
    inset 0 0 0 5px rgba(255,255,255,.12)!important;
}
.expandable-city-map .special-building-lot::before{width:252px!important;height:164px!important}
.expandable-city-map .duckie-landmark::before{width:318px!important;height:186px!important}
.expandable-city-map .mini-house-link{z-index:3!important}
.expandable-city-map .mini-label,.reserved-ribbon,.special-badge{z-index:20!important}

/* Keep decorative landmarks in the open spaces between lots. */
.founders-fountain{width:78px!important;height:78px!important;top:52%!important}
.fl1{left:37%!important}.fl2{right:37%!important}
.ffb1{left:5%!important;top:35%!important;transform:rotate(-18deg) scale(.78)!important}
.ffb2{right:5%!important;top:37%!important;transform:rotate(18deg) scale(.78)!important}

.ng1{left:1%!important;top:30%!important;transform:scale(.72)}
.ng2{right:1%!important;bottom:20%!important;transform:scale(.7)}
.north-lookout{right:7%!important;top:6%!important;transform:scale(.78)}
.north-stones{left:34%!important;right:34%!important;top:50%!important}

.garden-greenhouse{top:2%!important;transform:translateX(-50%) scale(.78)!important}
.gb1{left:1%!important;top:48%!important;transform:scale(.72)}
.gb2{right:1%!important;top:48%!important;transform:scale(.72)}
.gb3{left:43%!important;bottom:1%!important;transform:scale(.72)}
.garden-arch{bottom:4%!important;transform:translateX(-50%) scale(.72)!important}

.harbor-lighthouse{right:2%!important;top:2%!important;transform:scale(.75);transform-origin:top right}
.harbor-pier.hp1{left:3%!important;bottom:7%!important;transform:rotate(7deg) scale(.78)}
.harbor-pier.hp2{right:3%!important;bottom:7%!important;transform:rotate(-5deg) scale(.78)}
.harbor-boat.hb1{left:39%!important;bottom:2%!important;transform:scale(.72)}
.harbor-boat.hb2{left:58%!important;bottom:2%!important;transform:scale(.62)}

.lst1{left:1%!important;bottom:7%!important;transform:scale(.75)}
.lst2{right:1%!important;bottom:7%!important;transform:scale(.75)}
.lantern-gate{top:51%!important;transform:translate(-50%,-50%) scale(.68)!important}
.lantern-string{left:5%!important;right:5%!important;opacity:.7}

.cloud-windmill{top:51%!important;transform:translate(-50%,-50%) scale(.7)!important}
.cb1{left:1%!important;top:6%!important;transform:scale(.65)}
.cb2{right:1%!important;top:13%!important;transform:scale(.58)}
.cb3{left:44%!important;bottom:1%!important;transform:scale(.62)}
.cloud-terrace-rail{left:27%!important;right:27%!important;bottom:4%!important}

.studio-gallery{left:1%!important;top:7%!important;transform:scale(.72);transform-origin:top left}
.ss-a{right:5%!important;top:8%!important;transform:scale(.7)}
.ss-b{right:4%!important;bottom:4%!important;transform:scale(.58) rotate(22deg)!important}
.studio-mural{left:43%!important;bottom:1%!important;transform:rotate(-4deg) scale(.66)!important}
.studio-easel{right:1%!important;bottom:3%!important;transform:skewX(-8deg) scale(.65)!important}

.moon-gate{top:48%!important;transform:translate(-50%,-50%) scale(.65)!important}
.ms1{left:1%!important;bottom:4%!important;transform:scale(.72)}
.ms2{left:44%!important;bottom:0!important;transform:scale(.66)}
.ms3{right:1%!important;bottom:4%!important;transform:scale(.72)}
.moon-lanterns{top:13%!important;opacity:.7}

/* More polished but low-profile landscaping that stays underneath plots. */
.district-scenery::after{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}

/* ==========================================================
   Duckie Kitchen crafting UI
   ========================================================== */
.duck-kitchen-card{
  background:linear-gradient(180deg,#fff9ec,#f8edda)!important;
  border-color:#d9c59f!important;
}
.kitchen-bag-preview{
  display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px;
  padding:9px;background:rgba(255,255,255,.64);border-radius:12px;border:1px solid #e0d2bf;
}
.kitchen-ingredient{
  display:inline-flex;gap:5px;align-items:center;background:#fff;border:1px solid #d8cbbb;
  border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;
}
.kitchen-ingredient b{font-size:9px}
.kitchen-empty{font-size:10px;color:#756a60}
.duck-recipes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.duck-recipe{
  appearance:none;text-align:left;border:1px solid #ccbda9;background:#fff;border-radius:13px;
  padding:10px;cursor:pointer;min-height:66px;box-shadow:0 4px 0 rgba(84,61,45,.06)
}
.duck-recipe strong,.duck-recipe span{display:block}
.duck-recipe strong{font-size:11px}
.duck-recipe span{font-size:9px;color:#75695f;margin-top:4px}
.duck-recipe:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 7px 0 rgba(84,61,45,.08)}
.duck-recipe:disabled{opacity:.4;cursor:not-allowed}
.snack-chip.crafted{
  background:#fff2c7;border-color:#d7b95e;
}
.snack-chip.crafted::before{
  content:"★";font-size:9px;color:#b68c22;
}
@media(max-width:700px){
  .duck-recipes{grid-template-columns:1fr}
}


/* ==========================================================
   V25 — Wild ducks, owned ducks, and accessories
   ========================================================== */

.wild-pond-duck{
  position:absolute;appearance:none;border:0;background:transparent;cursor:pointer;
  width:92px;height:96px;z-index:18;padding:0;
}
.wild-pond-duck i,
.owned-duck-avatar i{
  position:absolute;left:18px;top:22px;width:48px;height:38px;
  background:var(--duck-color,#ffe066);border:2px solid #5d4e42;border-radius:52% 52% 48% 48%;
}
.wild-pond-duck b,
.owned-duck-avatar b{
  position:absolute;left:46px;top:34px;width:18px;height:12px;background:var(--duck-bill,#ef8f43);
  clip-path:polygon(0 18%,100% 50%,0 82%);border:2px solid #8f5d36;border-left:0;
}
.wild-pond-duck::before,
.owned-duck-avatar::before{
  content:"";position:absolute;left:28px;top:14px;width:28px;height:22px;
  background:var(--duck-color,#ffe066);border:2px solid #5d4e42;border-radius:56% 56% 48% 48%;
}
.wild-pond-duck::after,
.owned-duck-avatar::after{
  content:"";position:absolute;left:40px;top:22px;width:4px;height:4px;border-radius:50%;background:#463428;
  box-shadow:-9px 0 0 #463428;
}
.wild-pond-duck span{
  position:absolute;left:50%;bottom:18px;translate:-50% 0;background:rgba(255,255,255,.92);
  padding:3px 8px;border-radius:999px;border:1px solid #cdbfae;font-size:10px;font-weight:800;white-space:nowrap;
}
.duck-progress{
  position:absolute;left:50%;bottom:0;translate:-50% 0;background:#fff5cc;border:1px solid #e0bf5c;border-radius:999px;
  padding:2px 7px;font-size:9px;font-weight:900;white-space:nowrap;
}
.wpd-1{left:20%;top:48%}
.wpd-2{left:43%;top:56%}
.wpd-3{left:64%;top:44%}
.wild-pond-duck:hover{transform:translateY(-3px)}
.wild-duck-toast{
  position:absolute;left:50%;top:7%;translate:-50% 0;z-index:30;background:rgba(255,255,255,.96);
  border:1px solid #d6c8b8;border-radius:14px;padding:8px 12px;font-size:11px;max-width:72%;text-align:center;
}
.wild-duck-legend{display:grid;gap:6px;font-size:11px;color:#73685e}
#ownedDuckCard .mini-help{font-size:10px;color:#756b61}
.owned-duck-manager{display:grid;gap:10px}
.owned-duck-preview{display:flex;gap:12px;align-items:center;background:#faf5ee;border:1px solid #ded1c5;border-radius:16px;padding:10px}
.owned-duck-avatar{
  position:relative;width:118px;height:110px;background:linear-gradient(180deg,#eef7ff,#e4f0ea);
  border-radius:18px;border:1px solid #ddd0c3;flex:0 0 auto;
}
.owned-duck-avatar.large i{left:29px;top:36px;width:60px;height:46px}
.owned-duck-avatar.large::before{left:40px;top:20px;width:34px;height:28px}
.owned-duck-avatar.large::after{left:54px;top:30px}
.owned-duck-avatar.large b{left:72px;top:48px;width:20px;height:14px}
.owned-duck-meta{display:grid;gap:4px;font-size:11px}
.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline-form input{flex:1 1 170px}
.accessory-editor{display:grid;gap:8px;padding:10px;background:#faf5ee;border:1px solid #ddd0c3;border-radius:14px}
.accessory-sliders{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.accessory-sliders label{display:grid;gap:4px;font-size:11px}
.duck-accessory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.accessory-chip{
  appearance:none;border:1px solid #d6c8b8;background:#fff;border-radius:12px;padding:8px 6px;min-height:58px;
  display:grid;gap:3px;place-items:center;cursor:pointer;font-size:10px;font-weight:800
}
.accessory-chip span{font-size:18px;line-height:1}
.accessory-chip.equipped{background:#fff2c7;border-color:#d2b45b}
.duck-accessory-layer{position:absolute;inset:0;pointer-events:none}
.duck-acc{
  position:absolute;left:50%;top:43%;translate:-50% -50%;font-size:26px;line-height:1;
  filter:drop-shadow(0 2px 1px rgba(0,0,0,.18));
}
.acc-scarf,.acc-cape,.acc-raincoat,.acc-apron,.acc-necklace,.acc-bell{top:63%}
.acc-boots{top:80%}
.acc-backpack,.acc-satchel{left:36%;top:56%}
.acc-book,.acc-wand{left:69%;top:59%}
.acc-top-hat,.acc-chef-hat,.acc-crown,.acc-beanie,.acc-party-hat,.acc-beret,.acc-sailor-hat{top:17%}
.acc-star-glasses,.acc-round-glasses,.acc-heart-glasses,.acc-headphones{top:34%}
.acc-red-bow,.acc-blue-bow,.acc-flower{left:33%;top:22%}

.owned-home-duck{
  position:absolute;right:8%;bottom:16%;width:114px;height:118px;z-index:28;
}
.owned-home-duck .owned-duck-avatar{width:100%;height:92px;background:transparent;border:0}
.owned-home-duck span{
  position:absolute;left:50%;bottom:-4px;translate:-50% 0;background:rgba(255,255,255,.92);
  border:1px solid #d6c8b8;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;white-space:nowrap;
}

.look-a i,.look-a::before{filter:none}
.look-b i,.look-b::before{filter:saturate(0.95)}
.look-c i,.look-c::before{filter:hue-rotate(-14deg)}
.look-d i,.look-d::before{filter:hue-rotate(8deg) saturate(1.05)}
.look-e i,.look-e::before{filter:brightness(1.05)}
.look-f i,.look-f::before{filter:hue-rotate(160deg) saturate(.55)}

@media(max-width:900px){
  .duck-accessory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:650px){
  .duck-accessory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .accessory-sliders{grid-template-columns:1fr}
  .owned-duck-preview{grid-template-columns:1fr;display:grid}
}


/* ==========================================================
   V26 — Duck visual consistency, Wise Duck, aligned roofs
   ========================================================== */

/* Wild ducks now use the same visual language as Duckie Girl's ducks.
   They deliberately have NO accessory layer while they are wild. */
.wild-pond-duck{
  width:58px!important;
  height:58px!important;
  background:var(--duck-color,#ffe56f)!important;
  border:2px solid #6a563d!important;
  border-radius:52% 52% 46% 46%!important;
  box-shadow:inset -6px -6px 0 rgba(225,184,54,.15)!important;
  animation:duckBob 2.8s ease-in-out infinite!important;
  overflow:visible!important;
}
.wild-pond-duck::before,
.wild-pond-duck::after{
  content:""!important;
  position:absolute!important;
  top:18px!important;
  width:6px!important;
  height:8px!important;
  background:#3b332d!important;
  border-radius:50%!important;
  border:0!important;
  box-shadow:none!important;
}
.wild-pond-duck::before{left:17px!important}
.wild-pond-duck::after{left:auto!important;right:17px!important}
.wild-pond-duck i{
  position:absolute!important;
  left:50%!important;
  top:29px!important;
  translate:-50% 0!important;
  width:22px!important;
  height:11px!important;
  background:var(--duck-bill,#f2a04a)!important;
  border:2px solid #6a563d!important;
  border-radius:50%!important;
  clip-path:none!important;
}
.wild-pond-duck b{
  position:absolute!important;
  left:-7px!important;
  top:31px!important;
  width:18px!important;
  height:13px!important;
  background:var(--duck-color,#ffe56f)!important;
  border:2px solid #6a563d!important;
  border-radius:70% 25% 70% 25%!important;
  transform:rotate(-25deg)!important;
}
.wild-pond-duck b::after{
  content:"";
  position:absolute;
  left:49px;
  top:-2px;
  width:18px;
  height:13px;
  background:var(--duck-color,#ffe56f);
  border:2px solid #6a563d;
  border-radius:25% 70% 25% 70%;
  transform:rotate(50deg);
}
.wild-pond-duck > span{
  left:50%!important;
  bottom:-23px!important;
  top:auto!important;
  translate:-50% 0!important;
  background:rgba(255,255,255,.94)!important;
  border:1px solid #d6c8b8!important;
  border-radius:999px!important;
  padding:2px 6px!important;
  font-size:8px!important;
  font-weight:900!important;
}
.wild-pond-duck .duck-progress{
  bottom:-40px!important;
  font-size:8px!important;
}
.wpd-1{left:22%!important;top:48%!important}
.wpd-2{left:46%!important;top:57%!important;animation-delay:-.8s!important}
.wpd-3{left:67%!important;top:43%!important;animation-delay:-1.6s!important}

/* Subtle natural variation, like the ten Duck House ducks — no hats/bows/accessories. */
.wild-pond-duck.look-b{background:#fff0a3!important}
.wild-pond-duck.look-c{background:#f7dc8a!important}
.wild-pond-duck.look-d{background:#f5e7b5!important}
.wild-pond-duck.look-e{background:#e7dfbd!important}
.wild-pond-duck.look-f{background:#e1edf0!important}
.wild-pond-duck.look-b b,.wild-pond-duck.look-b b::after{background:#fff0a3!important}
.wild-pond-duck.look-c b,.wild-pond-duck.look-c b::after{background:#f7dc8a!important}
.wild-pond-duck.look-d b,.wild-pond-duck.look-d b::after{background:#f5e7b5!important}
.wild-pond-duck.look-e b,.wild-pond-duck.look-e b::after{background:#e7dfbd!important}
.wild-pond-duck.look-f b,.wild-pond-duck.look-f b::after{background:#e1edf0!important}

/* Wise Duck — same duck family, but an obvious permanent guide. */
.wise-duck{
  appearance:none;
  position:absolute;
  left:50%;
  bottom:121px;
  translate:-50% 0;
  width:72px;
  height:72px;
  background:#f1dc78;
  border:2px solid #67543c;
  border-radius:52% 52% 46% 46%;
  box-shadow:inset -7px -7px 0 rgba(194,158,53,.14),0 8px 12px rgba(61,50,42,.12);
  cursor:pointer;
  z-index:35;
  animation:duckBob 3.1s ease-in-out infinite;
}
.wise-duck::before,.wise-duck::after{
  content:"";position:absolute;top:22px;width:7px;height:9px;background:#3b332d;border-radius:50%;
}
.wise-duck::before{left:22px}.wise-duck::after{right:22px}
.wise-duck i{
  position:absolute;left:50%;top:37px;translate:-50% 0;width:27px;height:12px;
  background:#e89945;border:2px solid #67543c;border-radius:50%;
}
.wise-duck b{
  position:absolute;left:-7px;top:39px;width:21px;height:15px;background:#f1dc78;
  border:2px solid #67543c;border-radius:70% 25% 70% 25%;transform:rotate(-25deg)
}
.wise-duck span{
  position:absolute;right:-7px;top:39px;width:21px;height:15px;background:#f1dc78;
  border:2px solid #67543c;border-radius:25% 70% 25% 70%;transform:rotate(25deg)
}
.wise-duck em{
  position:absolute;left:50%;bottom:-25px;translate:-50% 0;font-style:normal;background:#fff8dc;
  border:1px solid #cdbd9f;border-radius:999px;padding:3px 8px;font-size:9px;font-weight:900;white-space:nowrap
}
.wise-duck u{
  position:absolute;left:50%;top:-20px;translate:-50% 0;width:44px;height:21px;
  border-radius:50% 50% 20% 20%;background:#765f4a;border:2px solid #554638;text-decoration:none
}
.wise-duck-glasses{
  position:absolute;left:16px;top:18px;width:15px;height:13px;border:2px solid #4a4038;border-radius:50%;
  box-shadow:22px 0 0 -2px transparent,22px 0 0 0 #4a4038;
}
.wise-duck-glasses::after{
  content:"";position:absolute;left:13px;top:5px;width:10px;height:2px;background:#4a4038
}
.wise-duck-bubble{
  position:absolute;left:50%;bottom:220px;translate:-50% 0;z-index:36;width:260px;
  background:#fff;border:2px solid #5d4e42;border-radius:18px;padding:9px 11px;text-align:center;
  font-size:11px;line-height:1.4;font-weight:700;box-shadow:0 8px 20px rgba(50,42,36,.10)
}
.wise-duck-bubble::after{
  content:"";position:absolute;left:50%;bottom:-9px;translate:-50% 0;width:15px;height:15px;background:#fff;
  border-right:2px solid #5d4e42;border-bottom:2px solid #5d4e42;transform:rotate(45deg)
}
.wise-duck-actions{display:grid;gap:7px}
.wise-duck.wise-thinking{animation:wiseNod .55s ease,duckBob 3.1s ease-in-out .55s infinite}
@keyframes wiseNod{0%,100%{rotate:0deg}35%{rotate:-7deg}70%{rotate:6deg}}
.inn-world:not([data-area="lounge"]) .wise-duck,
.inn-world:not([data-area="lounge"]) .wise-duck-bubble{display:none!important}

/* Roof alignment correction:
   keep every roof centered on its house container without removing
   the silhouette-specific width/height/clip-path. */
.mini-iso-house[class*="shape-"] .mini-roof{
  left:50%!important;
  right:auto!important;
  translate:-50% 0!important;
  transform-origin:center center!important;
}
.shape-preview-house[class*="shape-"] .shape-roof{
  left:50%!important;
  right:auto!important;
  translate:-50% 0!important;
  transform-origin:center center!important;
}
/* Preserve special silhouette rotations/skews while using the new centering. */
.mini-iso-house.shape-13 .mini-roof{transform:skewX(-22deg)!important}
.mini-iso-house.shape-17 .mini-roof{transform:rotate(-4deg)!important}
.shape-preview-house.shape-13 .shape-roof{transform:skewX(-18deg)!important}

/* Keep roof visual overhang balanced around the front wall. */
.mini-iso-house .mini-roof{box-sizing:border-box}
.shape-preview-house .shape-roof{box-sizing:border-box}

@media(max-width:650px){
  .wise-duck-bubble{width:205px;bottom:214px}
  .wise-duck{bottom:116px}
}


/* ==========================================================
   V27 — clean duck family design + wild profiles + Wise feeding
   ========================================================== */

/* Clean Wild Duck render: no inherited old-avatar geometry. */
.wild-pond-duck{
  box-sizing:border-box!important;
  width:62px!important;height:62px!important;
  padding:0!important;
  border:2px solid #6a563d!important;
  border-radius:52% 52% 46% 46%!important;
  background:var(--duck-color,#ffe56f)!important;
  box-shadow:inset -7px -7px 0 rgba(225,184,54,.13),0 6px 7px rgba(64,52,42,.10)!important;
  overflow:visible!important;
}
.wild-pond-duck::before,.wild-pond-duck::after{
  content:""!important;position:absolute!important;top:19px!important;width:6px!important;height:8px!important;
  background:#3b332d!important;border:0!important;border-radius:50%!important;box-shadow:none!important;
}
.wild-pond-duck::before{left:18px!important}
.wild-pond-duck::after{left:auto!important;right:18px!important}
.wild-pond-duck i{
  position:absolute!important;left:50%!important;top:31px!important;translate:-50% 0!important;
  width:23px!important;height:11px!important;background:var(--duck-bill,#f2a04a)!important;
  border:2px solid #6a563d!important;border-radius:50%!important;clip-path:none!important;
}
.wild-pond-duck b,.wild-pond-duck u{
  display:block!important;position:absolute!important;top:33px!important;width:19px!important;height:14px!important;
  background:var(--duck-color,#ffe56f)!important;border:2px solid #6a563d!important;
}
.wild-pond-duck b{
  left:-8px!important;border-radius:70% 25% 70% 25%!important;transform:rotate(-25deg)!important;
}
.wild-pond-duck u{
  right:-8px!important;left:auto!important;border-radius:25% 70% 25% 70%!important;
  transform:rotate(25deg)!important;text-decoration:none!important;
}
.wild-pond-duck b::after{display:none!important}
.wild-pond-duck > span{
  position:absolute!important;left:50%!important;bottom:-23px!important;top:auto!important;translate:-50% 0!important;
  width:max-content!important;max-width:95px!important;background:rgba(255,255,255,.96)!important;
  color:#3d342d!important;border:1px solid #d5c8b9!important;border-radius:999px!important;padding:2px 7px!important;
  font-size:8px!important;font-weight:900!important;line-height:1.2!important;
}
.wild-pond-duck > .duck-progress{
  position:absolute!important;left:50%!important;bottom:-41px!important;top:auto!important;translate:-50% 0!important;
  background:#fff5cc!important;color:#5a4a35!important;border:1px solid #e0bf5c!important;border-radius:999px!important;
  padding:2px 7px!important;font-size:8px!important;font-weight:900!important;width:max-content!important;
}
.wild-pond-duck:hover{transform:translateY(-3px)!important}
.wild-duck-description{
  display:grid;gap:4px;margin:10px 0;padding:10px 11px;background:#f9f5ec;border:1px solid #ddd1c1;border-radius:13px;
  font-size:11px;line-height:1.4
}
.wild-duck-description strong{font-size:12px}
.wild-duck-description span{display:block;color:#675e56}
.wild-duck-description b{color:#3c342e}

/* "Your Duck" now uses the SAME body construction as the cute house ducks. */
.owned-duck-avatar{
  position:relative!important;width:118px!important;height:110px!important;
  background:linear-gradient(180deg,#eef7ff,#e4f0ea)!important;border-radius:18px!important;border:1px solid #ddd0c3!important;
  flex:0 0 auto!important;
}
.owned-duck-avatar::before,.owned-duck-avatar::after{
  content:""!important;position:absolute!important;top:41px!important;width:7px!important;height:9px!important;
  background:#3b332d!important;border-radius:50%!important;box-shadow:none!important;border:0!important;z-index:4!important;
}
.owned-duck-avatar::before{left:44px!important}
.owned-duck-avatar::after{left:auto!important;right:44px!important}
.owned-duck-avatar i{
  position:absolute!important;left:50%!important;top:54px!important;translate:-50% 0!important;
  width:29px!important;height:14px!important;background:var(--duck-bill,#f2a04a)!important;border:2px solid #6a563d!important;
  border-radius:50%!important;z-index:4!important;
}
.owned-duck-avatar b{
  position:absolute!important;left:17px!important;top:59px!important;width:24px!important;height:17px!important;
  background:var(--duck-color,#ffe56f)!important;border:2px solid #6a563d!important;
  border-radius:70% 25% 70% 25%!important;transform:rotate(-25deg)!important;clip-path:none!important;z-index:2!important;
}
.owned-duck-avatar b::after{
  content:""!important;position:absolute!important;left:57px!important;top:-2px!important;width:24px!important;height:17px!important;
  background:var(--duck-color,#ffe56f)!important;border:2px solid #6a563d!important;
  border-radius:25% 70% 25% 70%!important;transform:rotate(50deg)!important;
}
.owned-duck-avatar::marker{display:none}
.owned-duck-avatar{
  box-shadow:inset 0 -48px 0 transparent!important;
}
.owned-duck-avatar > .duck-accessory-layer::before{
  content:"";position:absolute;left:50%;top:36px;translate:-50% 0;width:62px;height:58px;
  background:var(--duck-color,#ffe56f);border:2px solid #6a563d;border-radius:52% 52% 46% 46%;
  box-shadow:inset -7px -7px 0 rgba(225,184,54,.13);z-index:-1;
}
.owned-duck-avatar.large i{left:50%!important;top:54px!important;width:29px!important;height:14px!important}
.owned-duck-avatar.large::before{left:44px!important;top:41px!important;width:7px!important;height:9px!important}
.owned-duck-avatar.large::after{left:auto!important;right:44px!important;top:41px!important;width:7px!important;height:9px!important}
.owned-duck-avatar.large b{left:17px!important;top:59px!important;width:24px!important;height:17px!important}

/* Home version is smaller but visually identical. */
.owned-home-duck .owned-duck-avatar{
  width:100%!important;height:92px!important;background:transparent!important;border:0!important;border-radius:0!important;
}
.owned-home-duck .owned-duck-avatar > .duck-accessory-layer::before{
  top:24px;width:58px;height:54px;
}
.owned-home-duck .owned-duck-avatar::before{top:29px!important;left:38px!important}
.owned-home-duck .owned-duck-avatar::after{top:29px!important;right:38px!important}
.owned-home-duck .owned-duck-avatar i{top:42px!important}
.owned-home-duck .owned-duck-avatar b{left:11px!important;top:47px!important}

/* The color variations affect the duck body itself, not its whole UI card. */
.owned-duck-avatar.look-a > .duck-accessory-layer::before{filter:none}
.owned-duck-avatar.look-b > .duck-accessory-layer::before{background:#fff0a3}
.owned-duck-avatar.look-c > .duck-accessory-layer::before{background:#f7dc8a}
.owned-duck-avatar.look-d > .duck-accessory-layer::before{background:#f5e7b5}
.owned-duck-avatar.look-e > .duck-accessory-layer::before{background:#e7dfbd}
.owned-duck-avatar.look-f > .duck-accessory-layer::before{background:#e1edf0}

/* Wise Duck snack interaction */
.wise-duck-feed-box{
  margin-top:12px;padding-top:11px;border-top:1px solid #e0d5c8;display:grid;gap:7px
}
.wise-duck-feed-box > strong{font-size:12px}
.wise-duck-feed-box > span{font-size:10px;line-height:1.4;color:#74695f}
#wiseDuckFeedStatus{margin:0}


/* ==========================================================
   V28 — enterable homes, duck families, visual accessory studio
   ========================================================== */

/* ----- Enterable player's house ----- */
.house-visit-layout{
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:18px
}
.house-visit-scene{height:560px;position:relative;overflow:hidden}
.house-visit-side{display:grid;gap:13px;align-content:start}
.readonly-furniture-stage .furniture-item{pointer-events:none}
.house-visit-character{z-index:30}
.house-duck-stage{position:absolute;inset:0;z-index:36;pointer-events:none}
.house-visit-duck{
  --duck-scale:1;
  position:absolute;appearance:none;width:62px;height:62px;
  transform:translate(-50%,-50%) scale(var(--duck-scale));
  transform-origin:center center;
  background:var(--duck-color,#ffe56f);border:2px solid #6a563d;border-radius:52% 52% 46% 46%;
  box-shadow:inset -7px -7px 0 rgba(225,184,54,.13),0 7px 8px rgba(60,49,40,.10);
  cursor:pointer;pointer-events:auto;animation:houseDuckWander 6s ease-in-out infinite
}
.house-visit-duck::before,.house-visit-duck::after{
  content:"";position:absolute;top:19px;width:6px;height:8px;background:#3b332d;border-radius:50%;z-index:4
}
.house-visit-duck::before{left:18px}.house-visit-duck::after{right:18px}
.house-visit-duck i{
  position:absolute;left:50%;top:31px;translate:-50% 0;width:23px;height:11px;
  background:var(--duck-bill,#f2a04a);border:2px solid #6a563d;border-radius:50%;z-index:4
}
.house-visit-duck b,.house-visit-duck u{
  position:absolute;top:33px;width:19px;height:14px;background:var(--duck-color,#ffe56f);border:2px solid #6a563d;z-index:2
}
.house-visit-duck b{left:-8px;border-radius:70% 25% 70% 25%;transform:rotate(-25deg)}
.house-visit-duck u{right:-8px;border-radius:25% 70% 25% 70%;transform:rotate(25deg);text-decoration:none}
.house-visit-duck>span{
  position:absolute;left:50%;bottom:-23px;translate:-50% 0;width:max-content;max-width:110px;
  background:rgba(255,255,255,.94);border:1px solid #d5c7b7;border-radius:999px;padding:3px 7px;
  font-size:9px;font-weight:900;color:#3e342d
}
.house-visit-duck.baby{animation-duration:4.8s}
@keyframes houseDuckWander{
  0%,100%{margin-left:0;margin-top:0}
  30%{margin-left:22px;margin-top:-10px}
  60%{margin-left:-18px;margin-top:8px}
}
.house-visit-toast{
  position:absolute;left:50%;top:16px;translate:-50% 0;z-index:80;
  background:rgba(255,255,255,.95);border:1px solid #d4c7b7;border-radius:999px;padding:7px 12px;
  font-size:11px;font-weight:800;max-width:75%;text-align:center
}

/* ----- Multi-duck manager ----- */
#ownedDuckSelect{width:100%}
.owned-duck-avatar.baby-duck{
  transform:scale(.72);transform-origin:center center
}
#ownedDuckTitle{margin-bottom:2px}

/* ----- Accessory catalog — all CSS, no emoji ----- */
.duck-accessory-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important
}
.accessory-chip{
  min-height:82px!important;padding:8px!important;display:grid!important;
  grid-template-rows:45px auto!important;align-items:center!important;justify-items:center!important
}
.accessory-chip strong{font-size:9px;line-height:1.2;text-align:center}
.accessory-thumb{
  position:relative!important;left:auto!important;top:auto!important;translate:none!important;
  transform:none!important;width:48px!important;height:42px!important;display:block!important;filter:none!important
}
.duck-acc{
  position:absolute;left:50%;top:43%;translate:-50% -50%;width:54px;height:44px;line-height:1;
  filter:drop-shadow(0 2px 1px rgba(0,0,0,.16));z-index:20
}
.acc-art{position:relative;display:block;width:100%;height:100%}
.acc-art::before,.acc-art::after,.acc-art i,.acc-art b{
  content:"";position:absolute;display:block;box-sizing:border-box
}

/* bows */
.acc-red-bow::before,.acc-blue-bow::before{
  left:4px;top:13px;width:19px;height:17px;border:2px solid #68504e;border-radius:55% 20% 55% 20%;transform:rotate(-18deg)
}
.acc-red-bow::after,.acc-blue-bow::after{
  right:4px;top:13px;width:19px;height:17px;border:2px solid #68504e;border-radius:20% 55% 20% 55%;transform:rotate(18deg)
}
.acc-red-bow i,.acc-blue-bow i{
  left:20px;top:16px;width:14px;height:14px;border:2px solid #68504e;border-radius:50%
}
.acc-red-bow::before,.acc-red-bow::after,.acc-red-bow i{background:#d96f78}
.acc-blue-bow::before,.acc-blue-bow::after,.acc-blue-bow i{background:#7198c0}

/* flowers + leaf */
.acc-sunflower::before,.acc-daisy::before{
  left:12px;top:6px;width:30px;height:30px;border-radius:50%;
  background:radial-gradient(circle,#835a34 0 5px,transparent 6px),
    conic-gradient(#f3c84e 0 12.5%,transparent 12.5% 25%,#f3c84e 25% 37.5%,transparent 37.5% 50%,#f3c84e 50% 62.5%,transparent 62.5% 75%,#f3c84e 75% 87.5%,transparent 87.5%)
}
.acc-daisy::before{
  background:radial-gradient(circle,#e7b449 0 5px,transparent 6px),
    conic-gradient(#fff 0 12.5%,transparent 12.5% 25%,#fff 25% 37.5%,transparent 37.5% 50%,#fff 50% 62.5%,transparent 62.5% 75%,#fff 75% 87.5%,transparent 87.5%);
  filter:drop-shadow(0 0 0.5px #70635a)
}
.acc-leaf-clip::before{left:11px;top:9px;width:31px;height:21px;background:#73a66a;border:2px solid #526d4d;border-radius:80% 15% 80% 15%;transform:rotate(-20deg)}
.acc-leaf-clip::after{left:25px;top:14px;width:2px;height:22px;background:#526d4d;transform:rotate(50deg)}

/* hats */
.acc-beret::before{left:8px;top:9px;width:38px;height:20px;background:#a56f8d;border:2px solid #5d4855;border-radius:65% 65% 35% 35%;transform:rotate(-6deg)}
.acc-beret::after{left:27px;top:4px;width:5px;height:8px;background:#5d4855;border-radius:50%}
.acc-beanie::before{left:10px;top:8px;width:34px;height:25px;background:#78a2a4;border:2px solid #50666a;border-radius:60% 60% 18% 18%}
.acc-beanie::after{left:8px;top:27px;width:38px;height:7px;background:#5c8587;border:2px solid #50666a;border-radius:4px}
.acc-top-hat::before{left:14px;top:4px;width:26px;height:27px;background:#514843;border:2px solid #332d2a;border-radius:4px}
.acc-top-hat::after{left:6px;top:29px;width:42px;height:7px;background:#514843;border:2px solid #332d2a;border-radius:999px}
.acc-crown::before{left:8px;top:10px;width:38px;height:24px;background:#ecc957;border:2px solid #7e6731;clip-path:polygon(0 100%,0 35%,20% 67%,35% 0,50% 67%,66% 0,80% 67%,100% 35%,100% 100%)}
.acc-sailor-hat::before{left:9px;top:11px;width:36px;height:20px;background:#f8f3e5;border:2px solid #53657d;border-radius:55% 55% 25% 25%}
.acc-sailor-hat::after{left:5px;top:28px;width:44px;height:7px;background:#5d7897;border:2px solid #53657d;border-radius:999px}
.acc-chef-hat::before{left:10px;top:7px;width:34px;height:27px;background:#fff;border:2px solid #85796e;border-radius:50% 50% 25% 25%;box-shadow:-8px 2px 0 -2px #fff,8px 2px 0 -2px #fff}
.acc-chef-hat::after{left:12px;top:29px;width:30px;height:8px;background:#fff;border:2px solid #85796e}

/* glasses */
.acc-round-glasses::before,.acc-round-glasses::after{
  top:13px;width:17px;height:17px;border:3px solid #504843;border-radius:50%;background:rgba(206,232,238,.35)
}
.acc-round-glasses::before{left:7px}.acc-round-glasses::after{right:7px}
.acc-round-glasses i{left:23px;top:20px;width:8px;height:3px;background:#504843}
.acc-heart-glasses::before,.acc-heart-glasses::after{
  top:12px;width:19px;height:17px;background:#d86f89;border:2px solid #7d4656;transform:rotate(-45deg);border-radius:50% 50% 45% 15%
}
.acc-heart-glasses::before{left:6px}.acc-heart-glasses::after{right:6px;transform:rotate(45deg)}
.acc-heart-glasses i{left:23px;top:20px;width:8px;height:3px;background:#7d4656}
.acc-star-glasses::before,.acc-star-glasses::after{
  top:10px;width:21px;height:21px;background:#e2bd56;border:2px solid #78612c;
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,80% 93%,50% 70%,20% 93%,32% 56%,2% 35%,39% 35%)
}
.acc-star-glasses::before{left:4px}.acc-star-glasses::after{right:4px}
.acc-star-glasses i{left:23px;top:20px;width:8px;height:3px;background:#78612c}

/* neck/body accessories */
.acc-scarf::before{left:8px;top:14px;width:38px;height:13px;background:#bd6d70;border:2px solid #73484a;border-radius:999px}
.acc-scarf::after{left:29px;top:23px;width:13px;height:20px;background:#bd6d70;border:2px solid #73484a;transform:rotate(11deg);border-radius:3px}
.acc-bandana::before{left:7px;top:13px;width:40px;height:16px;background:#e19c59;border:2px solid #7c5836;clip-path:polygon(0 0,100% 0,75% 100%,25% 100%)}
.acc-bandana::after{right:3px;top:24px;width:15px;height:15px;background:#e19c59;border:2px solid #7c5836;transform:rotate(45deg)}
.acc-collar-bell::before{left:7px;top:15px;width:40px;height:9px;background:#77989d;border:2px solid #50666b;border-radius:999px}
.acc-collar-bell::after{left:22px;top:23px;width:12px;height:12px;background:#dfbd55;border:2px solid #78632e;border-radius:50%}
.acc-cape::before{left:10px;top:7px;width:34px;height:35px;background:#8b739d;border:2px solid #574962;clip-path:polygon(10% 0,90% 0,100% 100%,50% 78%,0 100%)}
.acc-backpack::before{left:12px;top:7px;width:30px;height:34px;background:#6e9b83;border:2px solid #4f6d5c;border-radius:9px}
.acc-backpack::after{left:16px;top:17px;width:22px;height:10px;border:2px solid #4f6d5c;border-radius:5px}
.acc-raincoat::before{left:9px;top:7px;width:36px;height:35px;background:#e8c94f;border:2px solid #7d6a2f;clip-path:polygon(23% 0,77% 0,100% 100%,0 100%)}
.acc-raincoat::after{left:20px;top:6px;width:14px;height:30px;border-left:2px solid rgba(105,86,34,.65)}

/* Default accessory placement zones, still adjustable with sliders. */
.acc-wrap-red-bow,.acc-wrap-blue-bow,.acc-wrap-sunflower,.acc-wrap-daisy,.acc-wrap-leaf-clip{top:23%;left:34%}
.acc-wrap-beret,.acc-wrap-beanie,.acc-wrap-top-hat,.acc-wrap-crown,.acc-wrap-sailor-hat,.acc-wrap-chef-hat{top:12%}
.acc-wrap-round-glasses,.acc-wrap-heart-glasses,.acc-wrap-star-glasses{top:37%}
.acc-wrap-scarf,.acc-wrap-bandana,.acc-wrap-collar-bell{top:64%}
.acc-wrap-cape,.acc-wrap-backpack,.acc-wrap-raincoat{top:63%}

/* accessory preview should not inherit transforms intended for worn pieces */
.accessory-thumb.acc-art{transform:scale(.82)!important;transform-origin:center center}

/* baby accessory scaling */
.baby-duck .duck-accessory-layer{transform:scale(.88);transform-origin:center center}

@media(max-width:900px){
  .house-visit-layout{grid-template-columns:1fr}
  .house-visit-scene{height:520px}
}
@media(max-width:650px){
  .house-visit-scene{height:470px}
  .duck-accessory-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}


/* ==========================================================
   V29 — owned-duck rendering repair
   ========================================================== */

/* The owned-duck preview itself IS the duck body now.
   This removes the older card/body pseudo-layer that was hiding accessories. */
.owned-duck-preview{
  min-height:128px!important;
  overflow:visible!important;
}
.owned-duck-avatar,
.owned-duck-avatar.large{
  position:relative!important;
  width:92px!important;
  height:78px!important;
  flex:0 0 92px!important;
  background:var(--duck-color,#ffe56f)!important;
  border:2px solid #6a563d!important;
  border-radius:52% 52% 46% 46%!important;
  box-shadow:inset -9px -8px 0 rgba(193,155,42,.10),0 8px 10px rgba(60,48,39,.11)!important;
  overflow:visible!important;
  transform-origin:center center!important;
}
.owned-duck-avatar.baby-duck{transform:scale(.72)!important}
.owned-duck-avatar::before,
.owned-duck-avatar::after{
  content:""!important;
  position:absolute!important;
  top:25px!important;
  width:7px!important;height:9px!important;
  background:#3b332d!important;border-radius:50%!important;
  border:0!important;box-shadow:none!important;z-index:8!important;
}
.owned-duck-avatar::before{left:27px!important}
.owned-duck-avatar::after{right:27px!important;left:auto!important}
.owned-duck-avatar>i{
  position:absolute!important;left:50%!important;top:40px!important;translate:-50% 0!important;
  width:28px!important;height:13px!important;background:var(--duck-bill,#f2a04a)!important;
  border:2px solid #6a563d!important;border-radius:50%!important;z-index:8!important;
}
.owned-duck-avatar>b{
  position:absolute!important;left:-10px!important;top:44px!important;width:27px!important;height:19px!important;
  background:var(--duck-color,#ffe56f)!important;border:2px solid #6a563d!important;
  border-radius:70% 25% 70% 25%!important;transform:rotate(-25deg)!important;clip-path:none!important;z-index:4!important;
}
.owned-duck-avatar>b::after{
  content:""!important;position:absolute!important;left:75px!important;top:-2px!important;width:27px!important;height:19px!important;
  background:var(--duck-color,#ffe56f)!important;border:2px solid #6a563d!important;
  border-radius:25% 70% 25% 70%!important;transform:rotate(50deg)!important;
}
.owned-duck-avatar>.duck-accessory-layer{
  position:absolute!important;
  inset:-24px!important;
  z-index:20!important;
  overflow:visible!important;
  pointer-events:none!important;
}
/* disable the old fake duck-body pseudo-element that lived on this layer */
.owned-duck-avatar>.duck-accessory-layer::before{content:none!important}

/* Accessory pieces now use the duck as their coordinate system. */
.owned-duck-avatar .duck-acc{
  z-index:25!important;
  width:52px!important;height:44px!important;
}
.owned-duck-avatar .acc-wrap-red-bow,
.owned-duck-avatar .acc-wrap-blue-bow,
.owned-duck-avatar .acc-wrap-sunflower,
.owned-duck-avatar .acc-wrap-daisy,
.owned-duck-avatar .acc-wrap-leaf-clip{left:34%!important;top:27%!important}
.owned-duck-avatar .acc-wrap-beret,
.owned-duck-avatar .acc-wrap-beanie,
.owned-duck-avatar .acc-wrap-top-hat,
.owned-duck-avatar .acc-wrap-crown,
.owned-duck-avatar .acc-wrap-sailor-hat,
.owned-duck-avatar .acc-wrap-chef-hat{left:50%!important;top:12%!important}
.owned-duck-avatar .acc-wrap-round-glasses,
.owned-duck-avatar .acc-wrap-heart-glasses,
.owned-duck-avatar .acc-wrap-star-glasses{left:50%!important;top:45%!important}
.owned-duck-avatar .acc-wrap-scarf,
.owned-duck-avatar .acc-wrap-bandana,
.owned-duck-avatar .acc-wrap-collar-bell{left:50%!important;top:73%!important}
.owned-duck-avatar .acc-wrap-cape,
.owned-duck-avatar .acc-wrap-backpack,
.owned-duck-avatar .acc-wrap-raincoat{left:50%!important;top:68%!important}

/* Player ducks are never rendered inside Duckie Girl's own home. */
#duckieHousePanel .owned-home-duck{display:none!important}

/* House ducks: accessories travel with the duck and remain above the body. */
.house-visit-duck>.duck-accessory-layer{
  position:absolute!important;inset:-22px!important;z-index:15!important;overflow:visible!important;pointer-events:none!important
}
.house-visit-duck .duck-acc{z-index:18!important}
.house-visit-duck .acc-wrap-red-bow,
.house-visit-duck .acc-wrap-blue-bow,
.house-visit-duck .acc-wrap-sunflower,
.house-visit-duck .acc-wrap-daisy,
.house-visit-duck .acc-wrap-leaf-clip{left:34%!important;top:28%!important}
.house-visit-duck .acc-wrap-beret,
.house-visit-duck .acc-wrap-beanie,
.house-visit-duck .acc-wrap-top-hat,
.house-visit-duck .acc-wrap-crown,
.house-visit-duck .acc-wrap-sailor-hat,
.house-visit-duck .acc-wrap-chef-hat{left:50%!important;top:12%!important}
.house-visit-duck .acc-wrap-round-glasses,
.house-visit-duck .acc-wrap-heart-glasses,
.house-visit-duck .acc-wrap-star-glasses{left:50%!important;top:45%!important}
.house-visit-duck .acc-wrap-scarf,
.house-visit-duck .acc-wrap-bandana,
.house-visit-duck .acc-wrap-collar-bell{left:50%!important;top:74%!important}
.house-visit-duck .acc-wrap-cape,
.house-visit-duck .acc-wrap-backpack,
.house-visit-duck .acc-wrap-raincoat{left:50%!important;top:68%!important}


/* ==========================================================
   V29 — natural home-duck movement
   ========================================================== */
.house-visit-duck{
  animation-name:duckNaturalWalk!important;
  animation-timing-function:ease-in-out!important;
  animation-iteration-count:infinite!important;
  will-change:transform!important;
}
.house-visit-duck>b{animation:duckWingLeft 2.6s ease-in-out infinite!important}
.house-visit-duck>u{animation:duckWingRight 2.6s ease-in-out infinite .18s!important}
@keyframes duckNaturalWalk{
  0%,8%{
    transform:translate(-50%,-50%) scale(var(--duck-scale)) translate(0,0) rotate(0deg)
  }
  20%,29%{
    transform:translate(-50%,-50%) scale(var(--duck-scale)) translate(var(--dx1),var(--dy1)) rotate(-2deg)
  }
  42%,50%{
    transform:translate(-50%,-50%) scale(var(--duck-scale)) translate(var(--dx2),var(--dy2)) rotate(2deg)
  }
  65%,76%{
    transform:translate(-50%,-50%) scale(var(--duck-scale)) translate(var(--dx3),var(--dy3)) rotate(-1deg)
  }
  90%,100%{
    transform:translate(-50%,-50%) scale(var(--duck-scale)) translate(0,0) rotate(0deg)
  }
}
@keyframes duckWingLeft{
  0%,70%,100%{transform:rotate(-25deg)}
  78%{transform:rotate(-42deg)}
  86%{transform:rotate(-18deg)}
}
@keyframes duckWingRight{
  0%,70%,100%{transform:rotate(25deg)}
  78%{transform:rotate(42deg)}
  86%{transform:rotate(18deg)}
}
@media(prefers-reduced-motion:reduce){
  .house-visit-duck,.house-visit-duck>b,.house-visit-duck>u{animation:none!important}
}


/* ==========================================================
   V29 — furniture redraw
   Clear, recognizable 2.5D furniture instead of abstract blobs.
   ========================================================== */
.furniture-item{
  --edge:#51453c;
  filter:drop-shadow(0 7px 5px rgba(55,46,39,.14))!important;
}
.furniture-item span,.furniture-item b{box-sizing:border-box!important}
.furniture-item::before,.furniture-item::after{
  content:"";position:absolute;display:block;box-sizing:border-box;pointer-events:none
}

/* seating */
.f-sofa{width:132px!important;height:78px!important}
.f-sofa b{left:13px!important;right:13px!important;top:7px!important;height:39px!important;border:3px solid var(--edge)!important;border-radius:16px 16px 7px 7px!important;background:var(--fcolor)!important}
.f-sofa span{left:8px!important;right:8px!important;bottom:8px!important;height:36px!important;border:3px solid var(--edge)!important;border-radius:9px!important;background:color-mix(in srgb,var(--fcolor) 90%,#fff 10%)!important}
.f-sofa::before,.f-sofa::after{top:31px;width:18px;height:37px;background:var(--fcolor);border:3px solid var(--edge);border-radius:10px}
.f-sofa::before{left:0}.f-sofa::after{right:0}

.f-armchair{width:88px!important;height:78px!important}
.f-armchair b{left:16px!important;right:16px!important;top:5px!important;height:42px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:18px 18px 8px 8px!important}
.f-armchair span{left:12px!important;right:12px!important;bottom:7px!important;height:34px!important;background:color-mix(in srgb,var(--fcolor) 88%,#fff 12%)!important;border:3px solid var(--edge)!important;border-radius:9px!important}
.f-armchair::before,.f-armchair::after{top:33px;width:14px;height:31px;background:var(--fcolor);border:3px solid var(--edge);border-radius:9px}
.f-armchair::before{left:4px}.f-armchair::after{right:4px}

.f-beanbag{width:86px!important;height:66px!important}
.f-beanbag span{inset:7px 4px 2px!important;background:radial-gradient(circle at 38% 25%,color-mix(in srgb,var(--fcolor) 65%,#fff 35%),var(--fcolor))!important;border:3px solid var(--edge)!important;border-radius:50% 50% 40% 43%!important}
.f-beanbag::after{left:31px;top:18px;width:22px;height:10px;border-bottom:2px solid rgba(81,69,60,.45);border-radius:50%}

.f-ottoman{width:78px!important;height:48px!important}
.f-ottoman span{inset:4px 5px 8px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:16px 16px 8px 8px!important}
.f-ottoman::before,.f-ottoman::after{bottom:1px;width:7px;height:12px;background:var(--edge);border-radius:2px}
.f-ottoman::before{left:17px}.f-ottoman::after{right:17px}

.f-bench{width:132px!important;height:72px!important}
.f-bench span{left:6px!important;right:6px!important;top:21px!important;height:24px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:7px!important}
.f-bench b{left:13px!important;right:13px!important;top:5px!important;height:21px!important;background:color-mix(in srgb,var(--fcolor) 87%,#fff 13%)!important;border:3px solid var(--edge)!important;border-radius:6px!important}
.f-bench::before,.f-bench::after{top:44px;width:7px;height:24px;background:var(--edge)}
.f-bench::before{left:21px}.f-bench::after{right:21px}

/* bed */
.f-bed{width:145px!important;height:82px!important}
.f-bed span{left:7px!important;right:4px!important;top:27px!important;height:45px!important;background:linear-gradient(180deg,color-mix(in srgb,var(--fcolor) 70%,#fff 30%),var(--fcolor))!important;border:3px solid var(--edge)!important;border-radius:7px!important}
.f-bed b{left:12px!important;top:33px!important;width:44px!important;height:25px!important;background:#fff9ed!important;border:2px solid var(--edge)!important;border-radius:9px!important;z-index:3}
.f-bed::before{left:2px;top:7px;width:12px;height:67px;background:var(--fcolor);border:3px solid var(--edge);border-radius:5px}
.f-bed::after{left:65px;right:10px;top:33px;height:31px;background:color-mix(in srgb,var(--fcolor) 76%,#fff 24%);border-radius:6px;border-bottom:2px solid rgba(81,69,60,.35)}

/* work surfaces and tables */
.f-desk{width:124px!important;height:72px!important}
.f-desk span{left:4px!important;right:4px!important;top:12px!important;height:19px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:5px!important}
.f-desk b{left:16px!important;right:16px!important;top:30px!important;height:37px!important;border-left:8px solid color-mix(in srgb,var(--fcolor) 75%,#000 25%)!important;border-right:8px solid color-mix(in srgb,var(--fcolor) 75%,#000 25%)!important}
.f-desk::before{left:23px;top:3px;width:46px;height:10px;background:#f2eadf;border:2px solid var(--edge);border-radius:3px}

.f-coffee-table{width:126px!important;height:65px!important}
.f-coffee-table span{left:5px!important;right:5px!important;top:12px!important;height:25px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:50%!important}
.f-coffee-table b{left:25px!important;right:25px!important;top:35px!important;height:26px!important;border-left:7px solid var(--edge)!important;border-right:7px solid var(--edge)!important}
.f-coffee-table::after{left:18px;right:18px;top:21px;height:3px;background:rgba(255,255,255,.28);border-radius:999px}

.f-dining-table{width:142px!important;height:77px!important}
.f-dining-table span{left:3px!important;right:3px!important;top:8px!important;height:31px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:50%!important}
.f-dining-table b{left:31px!important;right:31px!important;top:38px!important;height:35px!important;border-left:7px solid var(--edge)!important;border-right:7px solid var(--edge)!important}
.f-dining-table::before{left:42px;top:16px;width:58px;height:8px;border-top:2px solid rgba(255,255,255,.35);border-radius:50%}

.f-side-table{width:82px!important;height:68px!important}
.f-side-table span{left:8px!important;right:8px!important;top:12px!important;height:18px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:50%!important}
.f-side-table b{left:35px!important;top:29px!important;width:10px!important;height:31px!important;background:var(--edge)!important}
.f-side-table::after{left:20px;right:20px;bottom:4px;height:6px;background:var(--edge);border-radius:999px}

.f-stool{width:78px!important;height:69px!important}
.f-stool span{left:13px!important;right:13px!important;top:8px!important;height:20px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:50%!important}
.f-stool b{left:24px!important;right:24px!important;top:28px!important;height:36px!important;border-left:6px solid var(--edge)!important;border-right:6px solid var(--edge)!important}

/* storage */
.f-bookshelf{width:94px!important;height:112px!important}
.f-bookshelf span{inset:2px 7px!important;background:color-mix(in srgb,var(--fcolor) 82%,#fff 18%)!important;border:4px solid var(--edge)!important;border-radius:5px!important}
.f-bookshelf b{left:14px!important;right:14px!important;top:32px!important;height:4px!important;background:var(--edge)!important;box-shadow:0 27px 0 var(--edge),0 54px 0 var(--edge)!important}
.f-bookshelf::before{left:17px;top:11px;width:10px;height:18px;background:#cc786c;box-shadow:12px 2px 0 #7291b0,24px -1px 0 #dfb94f,36px 3px 0 #7aa36c,0 28px 0 #8f75a0,14px 30px 0 #d69b61,29px 27px 0 #6e99a0}

.f-dresser{width:100px!important;height:78px!important}
.f-dresser span{left:5px!important;right:5px!important;bottom:5px!important;height:65px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:6px!important}
.f-dresser b{left:13px!important;right:13px!important;top:28px!important;height:3px!important;background:var(--edge)!important;box-shadow:0 19px 0 var(--edge)!important}
.f-dresser::before{left:46px;top:17px;width:8px;height:4px;background:#e0c36a;border-radius:999px;box-shadow:0 19px 0 #e0c36a,0 38px 0 #e0c36a}

.f-cabinet{width:92px!important;height:102px!important}
.f-cabinet span{inset:3px 7px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:6px!important}
.f-cabinet b{left:45px!important;top:10px!important;bottom:9px!important;width:3px!important;background:var(--edge)!important}
.f-cabinet::before,.f-cabinet::after{top:50px;width:6px;height:6px;background:#e0c36a;border-radius:50%}
.f-cabinet::before{left:35px}.f-cabinet::after{right:35px}

.f-wardrobe{width:104px!important;height:132px!important}
.f-wardrobe span{inset:3px 7px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:7px!important}
.f-wardrobe b{left:50px!important;top:9px!important;bottom:8px!important;width:3px!important;background:var(--edge)!important}
.f-wardrobe::before,.f-wardrobe::after{top:64px;width:6px;height:9px;background:#e0c36a;border-radius:999px}
.f-wardrobe::before{left:39px}.f-wardrobe::after{right:39px}

/* chairs */
.f-dining-chair{width:78px!important;height:82px!important}
.f-dining-chair span{left:17px!important;right:17px!important;top:4px!important;height:39px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:8px 8px 3px 3px!important}
.f-dining-chair b{left:14px!important;right:14px!important;top:41px!important;height:19px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:5px!important}
.f-dining-chair::before,.f-dining-chair::after{top:58px;width:6px;height:22px;background:var(--edge)}
.f-dining-chair::before{left:20px}.f-dining-chair::after{right:20px}

/* lighting */
.f-floor-lamp{width:80px!important;height:108px!important}
.f-floor-lamp span{left:37px!important;top:28px!important;width:6px!important;height:68px!important;background:var(--edge)!important}
.f-floor-lamp b{left:20px!important;top:3px!important;width:42px!important;height:31px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)!important}
.f-floor-lamp::after{left:21px;right:21px;bottom:3px;height:7px;background:var(--edge);border-radius:50%}

.f-pendant-light{width:68px!important;height:104px!important}
.f-pendant-light span{left:31px!important;top:0!important;width:5px!important;height:55px!important;background:var(--edge)!important}
.f-pendant-light b{left:9px!important;top:50px!important;width:50px!important;height:32px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)!important}
.f-pendant-light::after{left:24px;top:77px;width:20px;height:12px;background:#fff2a8;border-radius:0 0 50% 50%}

/* decor */
.f-rug{width:126px!important;height:54px!important}
.f-rug span{inset:2px!important;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--fcolor) 70%,#fff 30%) 0 36%,var(--fcolor) 37%)!important;border:3px solid var(--edge)!important;border-radius:50%!important}
.f-rug::after{left:18px;right:18px;top:24px;height:2px;background:rgba(81,69,60,.25);border-radius:999px}

.f-plant{width:84px!important;height:92px!important}
.f-plant span{left:24px!important;bottom:3px!important;width:36px!important;height:34px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;clip-path:polygon(7% 0,93% 0,76% 100%,24% 100%)!important}
.f-plant b{left:25px!important;top:17px!important;width:33px!important;height:40px!important;background:#6f9f65!important;border-radius:60% 20% 60% 25%!important;transform:rotate(-19deg)}
.f-plant::before,.f-plant::after{top:8px;width:30px;height:43px;background:#78aa6e;border:2px solid #526e4f;border-radius:65% 20% 65% 20%}
.f-plant::before{left:16px;transform:rotate(-36deg)}.f-plant::after{right:14px;transform:scaleX(-1) rotate(-36deg)}

.f-wall-art{width:92px!important;height:74px!important;top:42px!important}
.f-wall-art span{inset:3px!important;background:linear-gradient(145deg,#f0cf7b 0 34%,#ce7990 34% 62%,#75a39a 62%)!important;border:6px solid var(--fcolor)!important;box-shadow:0 0 0 3px var(--edge)}
.f-wall-art b{display:none!important}

.f-mirror{width:80px!important;height:92px!important;top:45px!important}
.f-mirror span{left:11px!important;top:2px!important;width:58px!important;height:84px!important;background:linear-gradient(145deg,#e5f5f8,#bcd9e3)!important;border:7px solid var(--fcolor)!important;border-radius:50%!important;box-shadow:0 0 0 3px var(--edge)}
.f-mirror b{display:none!important}

/* media/music */
.f-tv{width:108px!important;height:80px!important}
.f-tv span{left:5px!important;right:5px!important;top:4px!important;height:56px!important;background:linear-gradient(145deg,#26323a,#536772)!important;border:5px solid var(--edge)!important;border-radius:7px!important}
.f-tv b{left:43px!important;bottom:7px!important;width:22px!important;height:10px!important;background:var(--edge)!important}
.f-tv::after{left:30px;right:30px;bottom:4px;height:5px;background:var(--edge);border-radius:999px}

.f-tv-stand{width:124px!important;height:61px!important}
.f-tv-stand span{left:4px!important;right:4px!important;top:12px!important;height:41px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:6px!important}
.f-tv-stand b{left:40px!important;top:19px!important;width:3px!important;height:27px!important;background:var(--edge)!important;box-shadow:42px 0 var(--edge)!important}
.f-tv-stand::before,.f-tv-stand::after{bottom:2px;width:7px;height:10px;background:var(--edge)}
.f-tv-stand::before{left:20px}.f-tv-stand::after{right:20px}

.f-record-player{width:90px!important;height:70px!important}
.f-record-player span{left:6px!important;right:6px!important;bottom:4px!important;height:45px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:6px!important}
.f-record-player b{left:24px!important;top:4px!important;width:43px!important;height:43px!important;background:radial-gradient(circle,#d9c67b 0 5px,#25272b 6px 100%)!important;border:3px solid var(--edge)!important;border-radius:50%!important}
.f-record-player::after{right:14px;top:15px;width:22px;height:3px;background:#ded4c5;transform:rotate(-35deg);transform-origin:right center}

.f-piano{width:132px!important;height:100px!important}
.f-piano span{left:5px!important;right:5px!important;top:4px!important;height:74px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:7px!important}
.f-piano b{left:12px!important;right:12px!important;top:48px!important;height:20px!important;background:repeating-linear-gradient(90deg,#fff 0 9px,#2f2f31 9px 11px)!important;border:3px solid var(--edge)!important}
.f-piano::before,.f-piano::after{bottom:2px;width:8px;height:25px;background:var(--edge)}
.f-piano::before{left:21px}.f-piano::after{right:21px}

.f-keyboard{width:132px!important;height:65px!important}
.f-keyboard span{left:3px!important;right:3px!important;top:5px!important;height:28px!important;background:repeating-linear-gradient(90deg,#fff 0 8px,#292b2e 8px 10px)!important;border:4px solid var(--edge)!important;border-radius:5px!important}
.f-keyboard b{left:20px!important;right:20px!important;top:33px!important;height:28px!important;border-left:5px solid var(--edge)!important;border-right:5px solid var(--edge)!important;transform:skewX(-13deg)!important}

.f-guitar{width:70px!important;height:116px!important}
.f-guitar span{left:8px!important;bottom:4px!important;width:54px!important;height:59px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:49% 49% 44% 44%!important}
.f-guitar b{left:29px!important;top:1px!important;width:12px!important;height:70px!important;background:color-mix(in srgb,var(--fcolor) 65%,#000 35%)!important;border:3px solid var(--edge)!important}
.f-guitar::after{left:29px;bottom:28px;width:13px;height:13px;background:#282a2c;border:3px solid var(--edge);border-radius:50%}

/* special furniture */
.f-pet-bed{width:96px!important;height:55px!important}
.f-pet-bed span{inset:5px 3px!important;background:var(--fcolor)!important;border:4px solid var(--edge)!important;border-radius:50%!important}
.f-pet-bed b{left:19px!important;right:19px!important;top:15px!important;height:20px!important;background:color-mix(in srgb,var(--fcolor) 62%,#fff 38%)!important;border-radius:50%!important}

.f-aquarium{width:112px!important;height:86px!important}
.f-aquarium span{left:7px!important;right:7px!important;top:3px!important;height:61px!important;background:linear-gradient(#d9f4f8 0 35%,#8fd0df 36% 100%)!important;border:5px solid var(--edge)!important;border-radius:6px!important}
.f-aquarium b{left:22px!important;top:30px!important;width:14px!important;height:9px!important;background:#efa75d!important;border-radius:70% 30% 70% 30%!important;box-shadow:43px 13px #c9767a!important}
.f-aquarium::after{left:15px;right:15px;bottom:5px;height:14px;background:var(--fcolor);border:3px solid var(--edge);border-radius:4px}

.f-fireplace{width:110px!important;height:100px!important}
.f-fireplace span{inset:4px!important;background:repeating-linear-gradient(0deg,var(--fcolor) 0 13px,color-mix(in srgb,var(--fcolor) 80%,#000 20%) 13px 15px)!important;border:3px solid var(--edge)!important;clip-path:none!important;border-radius:5px!important}
.f-fireplace b{left:34px!important;bottom:5px!important;width:42px!important;height:48px!important;background:radial-gradient(ellipse at bottom,#ffd25f 0 20%,#ed8749 21% 55%,#3c3430 56% 100%)!important;border:4px solid var(--edge)!important;border-radius:50% 50% 4px 4px!important}
.f-fireplace::after{left:0;right:0;top:0;height:12px;background:color-mix(in srgb,var(--fcolor) 75%,#fff 25%);border:3px solid var(--edge);border-radius:4px}

.f-wall-shelf{width:120px!important;height:65px!important}
.f-wall-shelf span{left:3px!important;right:3px!important;top:35px!important;height:10px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:3px!important}
.f-wall-shelf b{left:14px!important;top:10px!important;width:13px!important;height:25px!important;background:#cc786c!important;box-shadow:28px 3px #6f94ba,55px -2px #d8b55a,80px 4px #7da56d!important}

.f-arcade{width:88px!important;height:118px!important}
.f-arcade span{inset:2px 6px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;clip-path:polygon(0 0,100% 0,100% 82%,88% 100%,12% 100%,0 82%)!important}
.f-arcade b{left:17px!important;right:17px!important;top:14px!important;height:43px!important;background:linear-gradient(145deg,#24313b,#516878)!important;border:4px solid var(--edge)!important}
.f-arcade::after{left:36px;top:74px;width:15px;height:15px;background:#d95468;border:3px solid var(--edge);border-radius:50%;box-shadow:20px 5px 0 -4px #e4c35e}

.f-vanity{width:116px!important;height:106px!important}
.f-vanity span{left:8px!important;right:8px!important;bottom:4px!important;height:46px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:6px!important}
.f-vanity b{left:31px!important;top:1px!important;width:54px!important;height:58px!important;background:linear-gradient(145deg,#e5f5f8,#bcd9e3)!important;border:7px solid var(--fcolor)!important;border-radius:50%!important;box-shadow:0 0 0 3px var(--edge)!important}
.f-vanity::before{left:50px;bottom:16px;width:16px;height:5px;background:#e0c36a;border-radius:999px}

.f-floor-cushion{width:82px!important;height:54px!important}
.f-floor-cushion span{inset:4px!important;background:radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--fcolor) 62%,#fff 38%),var(--fcolor))!important;border:3px solid var(--edge)!important;border-radius:50% 48% 45% 52%!important}
.f-floor-cushion::after{left:37px;top:24px;width:8px;height:8px;border:2px solid rgba(81,69,60,.4);border-radius:50%}

.f-telescope{width:94px!important;height:110px!important}
.f-telescope span{left:8px!important;top:13px!important;width:70px!important;height:20px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:999px 4px 4px 999px!important;transform:rotate(-8deg)}
.f-telescope b{left:47px!important;top:37px!important;width:7px!important;height:67px!important;background:var(--edge)!important;transform:rotate(12deg)}
.f-telescope::before{left:39px;top:37px;width:7px;height:67px;background:var(--edge);transform:rotate(-13deg)}

.f-sculpture{width:84px!important;height:104px!important}
.f-sculpture span{left:18px!important;right:18px!important;bottom:3px!important;height:18px!important;background:var(--fcolor)!important;border:3px solid var(--edge)!important;border-radius:4px!important}
.f-sculpture b{left:20px!important;top:2px!important;width:45px!important;height:79px!important;background:linear-gradient(145deg,color-mix(in srgb,var(--fcolor) 80%,#fff 20%),var(--fcolor))!important;border:3px solid var(--edge)!important;clip-path:polygon(45% 0,85% 18%,62% 40%,88% 71%,57% 100%,20% 77%,34% 48%,9% 24%)!important}


/* V30 — user-duck accessories intentionally removed.
   Duckie Girl's own ducks retain their fixed character-specific hats/bows/etc. */
#ownedDuckCard .accessory-editor,
#ownedDuckCard .duck-accessory-grid,
#ownedDuckCard [id^="duckAccessory"],
#ownedDuckCard #removeDuckAccessoryBtn,
#myHouseVisitPanel .duck-accessory-layer,
#ownedDuckAvatar .duck-accessory-layer{
  display:none!important;
}

/* Simple owned duck preview after accessory removal. */
#ownedDuckAvatar{
  overflow:visible!important;
}

/* Pet/feed intent is explicit. */
#petOwnedDuckBtn{min-width:92px}


/* V32 — Duckie Girl has exactly one physical location. */
body[data-duckie-location="home"] #duckieAtPark{
  display:none!important;
}
body[data-duckie-location="park"] #duckieAtHome{
  display:none!important;
}
#duckieAtPark[hidden],#duckieAtHome[hidden]{
  display:none!important;
}


/* V34 — Delete House */
.danger-button{
  border-color:#b96a64!important;
  color:#8b3f3a!important;
  background:#fff8f7!important;
}
.danger-button:not(:disabled):hover{background:#fce9e7!important}
.danger-button:disabled{opacity:.45;cursor:not-allowed}
.delete-house-confirm{
  margin:12px 0 18px;
  padding:14px;
  border:1px solid #d8a19c;
  border-radius:14px;
  background:#fff7f6;
}
.delete-house-confirm strong{display:block;color:#7d3935;margin-bottom:5px}
.delete-house-confirm p{font-size:11px;line-height:1.5;color:#6e5c58}
.danger-confirm-button{
  appearance:none;
  border:1px solid #8d3c36;
  background:#9f4740;
  color:#fff;
  border-radius:10px;
  min-height:40px;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.danger-confirm-button:hover{background:#873a35}
.danger-confirm-button:disabled{opacity:.55;cursor:wait}


/* V35 — Founders’ Row application + approval flow */
.founder-plot-btn{font:inherit;color:inherit}
.founder-reserved-lot.founder-pending .reserved-ribbon{background:#b28a3e!important}
.founder-reserved-lot.founder-approved .reserved-ribbon{background:#52734d!important}
.founder-reserved-lot.founder-approved::before{
  content:"APPROVED";position:absolute;right:7px;top:7px;z-index:30;background:#eff7e9;border:1px solid #829c77;
  border-radius:999px;padding:3px 7px;font-size:8px;font-weight:900;letter-spacing:.08em
}
.founder-reserved-lot.founder-declined .reserved-ribbon{background:#8c7770!important}
.founder-reserved-lot.founder-owned .reserved-ribbon{background:#4d6d60!important}
.founder-status-card{
  margin:0 0 18px;padding:14px 15px;border:1px solid #d9cdbd;border-radius:15px;background:#faf6ec
}
.founder-status-card strong,.founder-status-card p{display:block}
.founder-status-card strong{font-size:17px;margin:5px 0}
.founder-status-card p{font-size:12px;line-height:1.5;color:#71665c;margin:0}
.founder-approved-actions{
  margin-top:16px;padding:15px;border:1px solid #afc6a6;border-radius:15px;background:#f2f8ef
}
.founder-approved-actions p{font-size:12px;line-height:1.5;margin:0 0 10px}


/* V37 — accounts + shared multiplayer houses */
.account-nav-button{border:0;cursor:pointer;font:inherit}
.account-tabs{display:flex;gap:8px;margin:0 0 16px}.account-tabs button{flex:1;border:1px solid #d8ccbd;background:#fff;border-radius:999px;padding:10px;font-weight:900;cursor:pointer}.account-tabs button.active{background:#2b251f;color:#fff;border-color:#2b251f}
.account-profile-card{padding:18px;border:1px solid #d9cdbd;border-radius:16px;background:#faf6ed;margin-bottom:14px}.account-profile-card span,.account-profile-card strong,.account-profile-card small{display:block}.account-profile-card strong{font-size:24px;margin:5px 0}.account-profile-card small,.account-rule{font-size:11px;color:#71665c;line-height:1.45}
.account-required-note{padding:10px 12px;border:1px solid #e0c989;background:#fff7cf;border-radius:12px;font-size:12px;font-weight:800}
.claimed-other .mini-label{background:#f7f1e5!important}.claimed-other .lot-marker{background:#fff!important;color:#3e5c53!important}
#multiplayerDirectory{display:contents}


/* V38 — unique account-owned public identities */
.comment-identity{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;
  border:1px solid #ddd2c4;border-radius:12px;background:#faf7f0
}
.comment-identity span{font-size:11px;color:#74695f;font-weight:700}
.comment-identity strong{font-size:13px}
.comment-login-note{
  display:grid;gap:7px;padding:14px;border:1px solid #ddd2c4;border-radius:14px;background:#faf7f0
}
.comment-login-note span{font-size:12px;color:#71665c;line-height:1.45}
.comment-login-note .tool-button{justify-self:start}
.compact-account-form{margin-top:14px;padding-top:14px;border-top:1px solid #e1d8cc}

/* V40 — visible house-claim feedback */
.claim-house-status{margin-top:10px;min-height:18px;font-weight:800}
.claim-house-status.error-status{color:#9a3e38}
#claimSelectedLotBtn:disabled{opacity:.65;cursor:wait}


/* V42 — keep comment account UI synchronized with live sign-in state */
.comment-form[hidden],
.comment-login-note[hidden]{
  display:none!important;
}


/* V43 — collapsible comment sections */
.comment-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.comment-toggle-btn{
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:999px;
  padding:7px 10px;
  font:inherit;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.comment-toggle-btn:hover{background:#faf5e9}
.comment-count-badge{
  display:inline-flex;
  min-width:20px;
  height:20px;
  padding:0 5px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#f4ead5;
  color:var(--brown);
  font-size:10px;
}
.comment-zone-body[hidden]{display:none!important}
.comment-zone.comments-collapsed{
  padding-top:14px;
  padding-bottom:14px;
}
.comment-zone.comments-collapsed .comment-zone-head{
  margin-bottom:0;
  align-items:center;
}
@media(max-width:650px){
  .comment-zone-head{align-items:flex-start}
  .comment-head-actions{align-items:flex-end;flex-direction:column}
}
