/* App shell. Mobile-first; builds on style.css + playground.css from the original Playground. */
body{padding-bottom:env(safe-area-inset-bottom)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--pg-green);outline-offset:2px}

/* top bar: brand + compact nav that fits a phone */
.pg-topbar{padding:10px 12px;gap:8px}
.pg-brand div{display:none}
.pg-nav{gap:2px;flex-wrap:wrap;justify-content:flex-end}
.pg-nav a,.pg-nav button,.pg-nav button:not(#open-setup){display:inline-flex;align-items:center;padding:10px 8px;min-height:44px} /* the original CSS hid nav buttons on phones */
@media(min-width:640px){.pg-brand div{display:block}.pg-topbar{padding:14px clamp(16px,4vw,54px)}}

/* lobby (from the original lobby, reordered mobile-first) */
.pg-lobby-direct{padding:14px 12px 120px}
.pg-lobby-compact{display:grid;gap:14px;max-width:1500px;margin:0 auto 22px}
.pg-lobby-compact img{display:block;width:100%;height:auto;max-height:230px;object-fit:cover;border:1px solid rgba(255,255,255,.16)}
.pg-lobby-compact-copy p{margin:0 0 12px;color:#c7c7c7;line-height:1.55}
.pg-lobby-heading{max-width:1500px;margin:26px auto 16px}
.pg-lobby-heading h1{margin:0;font-size:clamp(1.6rem,6vw,3.5rem);line-height:.95;text-transform:uppercase}
.pg-door-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1500px;margin:0 auto}
@media(min-width:700px){.pg-lobby-direct{padding:24px clamp(14px,3vw,42px) 120px}.pg-lobby-compact{grid-template-columns:minmax(280px,560px) 1fr;align-items:center;gap:32px}.pg-door-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1000px){.pg-door-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}
@media(min-width:1300px){.pg-door-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.pg-door-card{display:flex;min-width:0;flex-direction:column;color:inherit;text-decoration:none;background:#090909;border:1px solid rgba(255,255,255,.16);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
a.pg-door-card:hover,a.pg-door-card:focus-visible{transform:translateY(-4px);border-color:#c9ff2e;box-shadow:0 0 24px rgba(201,255,46,.14)}
.pg-door-image-wrap{position:relative}
.pg-door-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:#050505}
.pg-door-card--building img{filter:saturate(.45) brightness(.65)}
.pg-door-card--building .pg-door-copy h2{color:#c7c7c7}
.pg-door-copy{padding:11px 12px 14px}
.pg-door-copy h2{margin:0 0 6px;font-size:clamp(.95rem,1.4vw,1.25rem);line-height:1.05;text-transform:uppercase}
.pg-door-copy p{margin:0;color:#b9b9b9;font-size:.82rem;line-height:1.4}
.pg-building-badge{position:absolute;bottom:8px;left:8px;right:8px;padding:7px 5px;border:1px solid #c9ff2e;background:#101407;color:#c9ff2e;font-size:.62rem;font-weight:800;line-height:1.3;letter-spacing:.06em;text-align:center}

/* cards: access, your world, notices, admin sections */
.ma-card{max-width:1500px;margin:0 auto 18px;padding:18px;border:1px solid rgba(67,255,131,.22);background:rgba(67,255,131,.035)}
.ma-card h2{margin:8px 0 10px;font-size:clamp(1.4rem,4vw,2.2rem);line-height:1}
.ma-card p{color:#c7c7c7;line-height:1.6}
.ma-notice{max-width:1500px;margin:0 auto 14px;padding:12px 14px;border-left:3px solid #c9ff2e;background:#101407;color:#e8f5c8}
.ma-world-group h3{margin:14px 0 6px;font-size:1rem;text-transform:uppercase;letter-spacing:.06em}
.ma-world-group ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.ma-world-group li{display:flex;flex-direction:column;padding:10px 12px;background:#0b0b10;border:1px solid var(--pg-line)}
.ma-world-group small{color:rgba(255,255,255,.5);margin-top:3px}
.ma-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.ma-dialog-actions .pg-btn,.ma-card .pg-btn{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.ma-status{min-height:1.4em;color:#c9ff2e}

/* speakeasy */
.ma-event{max-width:1500px;margin:40px auto 0;display:grid;gap:18px;padding:18px;border:1px solid var(--pg-line);background:#08080b}
.ma-event img{width:100%;max-width:320px;height:auto}
.ma-neon{display:inline-block;margin:10px 0;padding:6px 14px;border:2px solid #444;color:#666;font-weight:900;letter-spacing:.3em}
.ma-neon.is-on{border-color:#ff3b47;color:#ff5a64;box-shadow:0 0 18px rgba(255,59,71,.55),inset 0 0 12px rgba(255,59,71,.35);text-shadow:0 0 8px #ff3b47}
@media(min-width:700px){.ma-event{grid-template-columns:320px 1fr;align-items:center}}

/* account dialog */
.ma-dialog{width:min(560px,calc(100% - 24px));padding:22px;border:1px solid rgba(255,255,255,.18);background:#09090c;color:#fff;border-radius:18px}
.ma-dialog::backdrop{background:rgba(0,0,0,.72)}
.ma-dialog h2{font-size:1.2rem;word-break:break-all;margin:6px 0}
.ma-setting{margin:16px 0;padding:14px;border:1px solid var(--pg-line);background:#111116}
.ma-setting label{display:flex;gap:10px;align-items:center;cursor:pointer}
.ma-setting input{width:22px;height:22px;accent-color:var(--pg-green)}
.ma-setting p{margin:8px 0 0;color:rgba(255,255,255,.6);font-size:.9rem;line-height:1.5}

/* trial */
.ma-trial-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#101407;border-top:1px solid #c9ff2e;color:#c9ff2e;font-size:12px;font-weight:800;letter-spacing:.12em}
.ma-trial-bar a{color:#fff}
.ma-trial-bar.is-warning{background:#1a0608;border-color:#ff3b47;color:#ff8790}
.ma-lock{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;background:rgba(5,5,7,.94)}
.ma-lock-card{max-width:520px;padding:28px;border:1px solid rgba(255,255,255,.18);background:#09090c;border-radius:22px}
.ma-lock-card h2{font-size:clamp(2rem,8vw,3rem);margin:8px 0}
.ma-lock-card p{color:rgba(255,255,255,.7);line-height:1.6}

/* setup drawer additions */
.setup-panel{padding:18px}
.setup-grid-two{grid-template-columns:1fr}
.center-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gate-chip-grid{grid-template-columns:repeat(6,1fr)}
.center-toggle[aria-disabled="true"]{cursor:default;opacity:.85}
.derived-channel.is-impossible{border-color:rgba(255,59,71,.5);background:rgba(255,59,71,.08);text-decoration:line-through}
.setup-note{margin-top:14px;padding:10px 12px;border-left:3px solid #ff8790;background:#1a0608;color:#ffd0d4;font-size:.9rem}
.setup-actions{margin:28px -18px -18px;padding:14px 18px;bottom:-18px}
@media(min-width:640px){.setup-panel{padding:28px}.setup-grid-two{grid-template-columns:1fr 1fr}.center-toggle-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gate-chip-grid{grid-template-columns:repeat(8,1fr)}.setup-actions{margin:28px -28px -28px;padding:16px 28px;bottom:-28px}}

/* login */
.pg-access-card{padding:24px}
.pg-access-card form{margin:0}
.pg-access-row{flex-wrap:wrap}
.pg-access-row input{min-height:48px;font-size:16px}
.ma-login-logo{border-radius:50%;display:block;margin-bottom:10px}
.ma-link-button{border:0;background:none;padding:0;cursor:pointer;display:block;margin:6px 0 16px}

/* rooms */
.room-shell{width:calc(100% - 24px);padding:20px 0 120px}
.room-back{display:inline-block;text-decoration:none;min-height:44px;padding:12px 0}
.room-scene img{display:block;width:100%;height:auto}
@media(min-width:700px){.room-shell{width:min(1160px,calc(100% - 32px));padding:40px 0 120px}}

/* admin */
.ma-admin{padding:18px 12px 80px;max-width:1300px;margin:0 auto}
.admin-grant{display:grid;gap:10px}
.admin-grant label{display:grid;gap:4px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.65)}
.admin-grant input,.admin-grant select,.admin-grant textarea,.admin-rooms select{background:#111116;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:10px;font:inherit;text-transform:none}
.admin-table-wrap{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:.88rem}
.admin-table th,.admin-table td{text-align:left;vertical-align:top;padding:10px 8px;border-bottom:1px solid var(--pg-line)}
.admin-table ul,.ma-admin ul{margin:0;padding-left:18px}
.ma-admin button:not(.pg-btn){margin:4px 4px 0 0;padding:6px 10px;border:1px solid rgba(255,255,255,.2);background:#111116;color:#fff;border-radius:8px;cursor:pointer;font-size:.8rem}
.is-inactive{opacity:.5}
.admin-rooms{list-style:none;padding:0!important;display:grid;gap:8px}
.admin-rooms li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--pg-line)}
@media(min-width:800px){.admin-grant{grid-template-columns:repeat(3,1fr);align-items:end}}
