#party-status{position:fixed;top:82px;left:24px;z-index:30;padding:7px 12px;font-size:12px;background:#152820e8;color:#e6d5aa;border:1px solid #786747;pointer-events:auto;max-width:80vw}.party-name{position:fixed;transform:translate(-50%,-100%);z-index:20;color:#bee6dc;font:12px system-ui;pointer-events:none;text-shadow:0 1px 3px #000;background:#10211bbb;padding:3px 6px;border-radius:3px}#modal[data-panel="party"]{max-width:540px}#modal[data-panel="party"] label{display:block;margin:18px 0 8px}#modal[data-panel="party"] input{display:block;width:100%;padding:12px;margin-top:6px;font:inherit;font-size:16px}#modal[data-panel="party"] button:not(.close){margin:8px 0;min-height:44px}#party-roster{line-height:1.9}#party-error{color:#b7462e}.playing #party-status{top:100px}@media(max-width:700px){#party-status{top:60px;left:8px;max-width:65vw;font-size:10px}.playing #party-status{top:74px}#header nav{gap:0}#header .nav{padding:8px}}

/* A quiet portal glow frames the adventure without moving the controls. */
#modal[data-panel="party"]:has(.party-adventure){max-width:760px;width:min(760px,94vw);padding:32px;background:linear-gradient(145deg,#20382e,#102324 60%,#162d31);border:1px solid #829c8066;box-shadow:0 25px 100px #0009,0 0 60px #70c3ac14}
.party-adventure .eyebrow{color:#b4c9ae;font-size:9px;letter-spacing:1.8px}
.party-intro{position:relative;isolation:isolate;padding:12px 92px 25px 0;overflow:hidden}
#modal .party-intro h2{font-size:46px;color:#fff0ce;margin:10px 0}
.party-intro>p{color:#b8c9bf;line-height:1.8;font-size:13px}
.party-portal{position:absolute;z-index:-1;right:12px;top:12px;width:108px;height:142px;border:1px solid #b5d8b445;border-bottom:0;border-radius:64px 64px 0 0;background:radial-gradient(ellipse at 50% 65%,#78d4b52b,transparent 70%);box-shadow:inset 0 0 26px #8acdb015;display:grid;place-items:center;color:#e8c684;font-size:36px}
.party-portal:before{content:"";position:absolute;inset:10px;border:1px solid #b5d8b425;border-bottom:0;border-radius:54px 54px 0 0}
.party-portal:after{content:"";position:absolute;inset:-20px;background:radial-gradient(ellipse,#8de4cb3b,transparent 65%);animation:party-glow 7s ease-in-out infinite;opacity:.35;pointer-events:none}
@keyframes party-glow{0%,100%{opacity:.25;transform:scale(.9)}50%{opacity:.65;transform:scale(1.1)}}
.party-identity{display:flex;align-items:center;gap:14px;padding:18px 0 22px;border-top:1px solid #a1c1aa26;border-bottom:1px solid #a1c1aa26;margin-bottom:28px;flex-wrap:wrap}
.party-identity-icon{color:#e0bd7e;font-size:30px}.party-identity p{margin-top:5px;color:#b9cdc0}.party-identity strong{color:#f3e3bb}
#modal[data-panel="party"] .party-identity label{margin:0;flex:1;min-width:180px;color:#f0e5cb;font-size:13px}
.party-identity label span{display:block;font-size:11px;color:#b2c5b7;line-height:1.6;margin-top:5px}
#modal[data-panel="party"] .party-identity input{width:190px;max-width:100%;margin:0}
.party-paths{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.party-path{min-width:0;padding:22px;display:flex;flex-direction:column;border:1px solid #a2beab35;background:#0c1c1d80;border-radius:8px}
.party-host{border-color:#d0b37655;background:linear-gradient(155deg,#b8954e18,#142721aa 65%)}
.party-path h3{font-size:29px;color:#f0e4c7;margin:8px 0 10px;line-height:1.1}
.party-path p{font-size:12px;line-height:1.8;color:#b2c4b8}
.party-action-space{flex:1;display:flex;align-items:center;gap:10px;color:#d0b479;min-height:92px;font-size:24px}
.party-action-space span{font-size:8px;letter-spacing:1.4px;line-height:1.8;max-width:130px;color:#bdbda2}
#modal[data-panel="party"] .party-path label{font-size:11px;color:#becfc3;margin:18px 0 0}
#modal[data-panel="party"] .party-adventure input{border:1px solid #8ca89266;border-radius:4px;background:#081a1a80;color:#fff1ce;outline-offset:3px;min-height:44px}
#modal[data-panel="party"] .party-adventure input:focus-visible{outline:2px solid #e9bd7f}
#party-code{text-transform:uppercase;letter-spacing:4px}#party-code::placeholder{color:#81998e}
#modal[data-panel="party"] .party-path button{width:100%;display:flex;align-items:center;justify-content:space-between;margin:18px 0 0;padding:14px 17px;border-radius:4px;font-size:12px;min-height:48px}
#modal[data-panel="party"] .party-host button{background:linear-gradient(110deg,#e3c38b,#b9955f);color:#192a24;box-shadow:0 4px 22px #d5b87818}
#modal[data-panel="party"] .party-join button{border-color:#7db8ab70;color:#d2e9df;background:#68b9a512}
.party-footnote{font-size:10px;color:#a1b6ab;line-height:1.7;text-align:center;margin-top:12px}
#modal[data-panel="party"] #party-error{color:#ffc6a7;font-size:12px;line-height:1.6;margin-top:14px}#party-error:empty{display:none}
@media(max-width:560px){#modal[data-panel="party"]:has(.party-adventure){padding:24px 20px}.party-paths{grid-template-columns:1fr}.party-intro{padding-right:50px}#modal .party-intro h2{font-size:36px}.party-portal{right:-27px;opacity:.65;width:90px}.party-intro .eyebrow{max-width:215px;font-size:8px;line-height:1.8}.party-identity{margin-bottom:20px}.party-path{padding:20px}.party-action-space{min-height:56px}.party-path h3{font-size:28px}#modal[data-panel="party"] .party-identity input{width:100%}}
@media(prefers-reduced-motion:reduce){.party-portal:after{animation:none;opacity:.35}}
