body:not(.build-yours){margin:0;background:#f4f7e8;color:#17473d;font:16px/1.5 Arial,sans-serif}button,input{box-sizing:border-box;font:inherit}button{cursor:pointer;border:1px solid #347667;border-radius:9px;background:#fffdeb;color:#17473d;padding:10px 14px;font-weight:bold}button.primary{background:#ffe14b}button:disabled{opacity:.5;cursor:default}a{color:#176b60}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #269ca8;outline-offset:3px}[hidden]{display:none!important}
.party-lobby{max-width:880px;margin:5vh auto;padding:24px;text-align:center}.party-lobby h1{font-size:clamp(32px,6vw,54px);margin:8px}.party-duck{width:140px;height:140px;object-fit:contain}.eyebrow{letter-spacing:.16em;font-weight:bold;font-size:14px}.party-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0}.party-cards section{padding:28px;border:2px solid #347667;border-radius:20px;background:#fffdeb;text-align:left}.party-cards h2{margin-top:0}.party-cards input{display:block;width:100%;padding:12px;margin:8px 0 14px;font:inherit;text-transform:uppercase;border:1px solid #347667;border-radius:8px}.party-cards button{width:100%;min-height:48px}.party-note{font-size:14px;line-height:1.6}.party-controls{position:fixed;z-index:25;right:12px;top:110px;max-width:280px;background:#fffde9;border:2px solid #277967;border-radius:14px;padding:10px;font-size:14px;box-shadow:0 5px 18px #1235}.party-controls summary{cursor:pointer;font-weight:bold}.party-controls p{margin:8px 0}.party-controls button{margin:3px;padding:8px;min-height:38px}.party-controls button[aria-pressed=true]{background:#ffe14b}.party-controls ul{padding-left:20px;margin:8px 0}.party-controls .voice-status{font-size:14px}.party-controls button.talking{background:#76ddae}.party-controls .ptt{touch-action:none;user-select:none}.party-controls audio{display:none}#party-error{color:#9a372b}.friends-link{border-color:#188a9b!important;background:#e2f5f4!important}@media(max-width:650px){.party-cards{grid-template-columns:1fr}.party-controls{top:150px;right:6px;max-width:220px}.party-controls:not([open]){padding:8px}.party-lobby{margin:0 auto}}

/* A compact party dock sits below the village goal card. */
.has-party .party-controls{top:280px;right:12px;width:260px;max-width:calc(100vw - 100px);max-height:calc(100dvh - 320px);overflow:auto;scrollbar-width:thin;box-sizing:border-box}
.party-controls ul{padding:0;list-style:none}.party-controls li{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0}.party-controls .party-kick{font-size:12px;min-height:28px;padding:4px 7px}.party-controls .duck-filter{display:flex;align-items:center;gap:8px;margin:10px 4px;cursor:pointer}.duck-filter input{width:18px;height:18px;accent-color:#148878}.owner-tools{border-top:1px solid #9ab8a8;margin-top:10px;padding-top:10px}.owner-tools small{display:block;line-height:1.5}
.party-join-callout{position:fixed;left:50%;top:100px;transform:translateX(-50%);z-index:32;pointer-events:none;background:#173f35;color:#fff6ce;border:2px solid #ffdf51;border-radius:16px;padding:16px 28px;font-weight:800;font-size:22px;box-shadow:0 8px 24px #1235;text-align:center;max-width:60vw}.party-join-callout.enter{animation:flock-in .45s cubic-bezier(.2,1.6,.4,1)}@keyframes flock-in{from{opacity:0;transform:translate(-50%,-20px) scale(.8)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
.party-pointers{position:fixed;inset:0;pointer-events:none;z-index:16}.party-pointer{position:absolute;left:0;top:0;text-align:center;width:100px;margin-left:-50px;margin-top:-22px}.party-pointer span{display:block;width:38px;height:38px;line-height:34px;box-sizing:border-box;margin:auto;border:2px solid #ffdf51;background:#17473de8;color:#fffbea;border-radius:50%;font-size:25px;box-shadow:0 2px 9px #1237}.party-pointer strong{display:block;background:#17473dd9;color:#fffbea;padding:3px 6px;margin-top:3px;border-radius:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 12px Arial}
@media(max-height:750px){.has-party .party-controls{top:auto;bottom:85px;max-height:calc(100dvh - 290px)}}
@media(max-width:700px){.has-party .party-controls{top:auto;bottom:145px;right:8px;width:240px;max-height:calc(100dvh - 280px)}.party-join-callout{top:160px;font-size:17px;padding:10px 16px}}
@media(prefers-reduced-motion:reduce){.party-join-callout.enter{animation:none}}
