/* V3 squad hub: factions above fixed subteam crests, no individual attendance. */
#hub[data-squad-hub='true'] .class-duel-actions,#hub[data-squad-hub='true'] .class-series-actions,#hub[data-squad-hub='true'] .class-score-details{display:none!important}#hub[data-squad-hub='true'] .class-battle-host{opacity:.38}#hub[data-squad-hub='true'] .class-camp{min-height:100svh;overflow:auto}#hub[data-squad-hub='true'] .class-picker{z-index:9;top:18px}.squad-hub{position:relative;z-index:2;min-height:100svh;box-sizing:border-box;padding:85px clamp(20px,4vw,80px) 125px;background:linear-gradient(#0417228a,#05182322 50%,#041722e8);color:#fff0ca}.squad-hub-title p{font:600 14px system-ui;letter-spacing:.28em;margin:5px 0 16px;color:#c7d5ce}.squad-factions{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,75px)}.squad-faction-heading{display:flex;align-items:center;justify-content:center;gap:20px;margin:0 0 15px}.squad-faction-heading img{width:120px;height:130px;object-fit:contain}.squad-faction-heading h2,.squad-faction-heading h3{font:500 clamp(30px,3vw,52px) Georgia,serif;margin:0;color:#fff1cc}.squad-hub-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.squad-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:210px;padding:14px;border:1px solid #87bad75c;border-radius:18px;background:#092538c9;color:#f4eaca;cursor:pointer;box-shadow:0 12px 32px #0003}.squad-hub-faction[data-team='B'] .squad-card{border-color:#d9966b66;background:#35271fc9}.squad-card[aria-pressed='true']{border:2px solid #ffe4a4;box-shadow:0 0 25px #f0d08d33,inset 0 0 20px #f4d38711}.squad-card strong{font:500 clamp(22px,2vw,30px) Georgia,serif}.squad-card small{font:14px system-ui;color:#cbd6d0}.squad-badge{display:block;width:120px;height:120px;background-repeat:no-repeat;flex:none}.squad-badge img{width:100%;height:100%;object-fit:contain}.squad-hub-actions{position:sticky;bottom:0;z-index:5;display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:25px auto 0;padding:16px;background:#061b2be8;border-radius:18px;width:fit-content;max-width:100%;box-shadow:0 12px 35px #0006}.squad-hub-actions button,.squad-more-actions button{min-height:48px;padding:10px 24px;border:1px solid #d2d2ad55;border-radius:24px;background:#17303d;color:#f6e9c5;font:600 16px system-ui;cursor:pointer}.squad-hub-actions .primary{background:#e4ca8a;color:#122932;min-width:210px}.squad-hub-more{position:relative;z-index:5;margin:14px auto 0;width:fit-content;max-width:100%;font:15px system-ui;text-align:left}.squad-hub-more>summary{min-height:44px;padding:12px 25px;cursor:pointer;text-align:center}.squad-hub-more[open]{padding:12px 25px;background:#061a27ed;border-radius:16px}.squad-more-actions{display:flex;flex-wrap:wrap;gap:10px}.squad-stats{margin-top:10px;font-size:14px}.squad-stats summary{min-height:44px;align-content:center;cursor:pointer}.squad-stats p{margin:6px}.squad-empty{min-height:210px;background:#08203199;border:1px dashed #b8d0bd66;border-radius:18px;color:#e3dfc5;font:600 19px system-ui;cursor:pointer}.squad-setup{width:min(1300px,98vw);max-height:96svh}.squad-setup>h2{order:-2}.squad-setup>.name-keyboard{order:-1;margin-bottom:12px}.squad-counts{display:flex;justify-content:center;gap:40px;margin:8px 0 16px;flex:none}.squad-counts label{display:flex;gap:10px;align-items:center;font-weight:600}.squad-counts input{width:70px;min-height:44px;background:#071d2b;color:#f9e9bd;border:1px solid #96b8ba66;border-radius:8px;padding:5px;font:600 22px system-ui}.squad-setup .squad-factions{gap:25px}.squad-setup .squad-faction-heading img{width:65px;height:70px}.squad-setup .squad-faction-heading h3{font-size:30px}.squad-setup-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.squad-edit-card{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:14px;border:1px solid #78b4d366;border-radius:16px;background:#072235}.squad-faction[data-team='B'] .squad-edit-card{background:#2d2725;border-color:#de9f7366}.squad-edit-card .squad-badge{width:95px;height:95px}.squad-edit-card input,.squad-edit-card textarea,.squad-edit-card select{box-sizing:border-box;width:100%;min-width:0;background:#061b27;color:#ffedc3;border:1px solid #a1b9ba66;border-radius:8px;padding:8px;font:17px system-ui}.squad-edit-card .squad-name{text-align:center;font:600 21px Georgia,serif;min-height:44px}.squad-edit-card .squad-icon-choice{font-size:13px;min-height:36px}.squad-edit-card textarea{min-height:54px;resize:vertical;font-size:14px}.squad-archive{margin:12px 0}.squad-archive summary{min-height:44px;align-content:center;cursor:pointer}.squad-pair{width:min(1100px,97vw)}.squad-pair .squad-factions{gap:20px}.squad-pair-card{display:flex;flex-direction:column;align-items:center;padding:24px 18px;border:1px solid #91bfd666;border-radius:18px;background:#092839;gap:10px}.squad-pair-card[data-team='B']{background:#36281e;border-color:#dc9c6866}.squad-pair-card h3{font:500 25px Georgia,serif;margin:0}.squad-pair-card>.squad-badge,.squad-pair-card>img{width:165px;height:165px;object-fit:contain}.squad-pair-card>strong{font:500 34px Georgia,serif;text-align:center}.squad-pair-card>p{font:17px system-ui;color:#d5dcd0;margin:4px 0}.squad-pair-card select{width:100%;min-height:44px}.squad-hub button:focus-visible{outline:3px solid #ffe4a4;outline-offset:4px}
@media(max-height:800px){.squad-hub{padding-top:76px;padding-bottom:30px}.squad-hub-title p{margin:0 0 8px;font-size:12px}.squad-faction-heading{margin-bottom:10px;gap:12px}.squad-faction-heading img{width:80px;height:88px}.squad-faction-heading h2{font-size:34px}.squad-card{min-height:160px;padding:9px;gap:3px}.squad-badge{width:88px;height:88px}.squad-card strong{font-size:23px}.squad-card small{font-size:12px}.squad-hub-cards{gap:10px}.squad-hub-actions{padding:10px;margin-top:16px}.squad-hub-actions button{padding:8px 17px;min-height:44px;font-size:14px}.squad-hub-more{margin-top:3px}.squad-setup .squad-faction-heading{display:none}.squad-edit-card{padding:10px;gap:6px}.squad-edit-card .squad-badge{width:65px;height:65px}.squad-setup-cards{gap:10px}.squad-setup{padding:16px}.squad-edit-card .squad-name{font-size:19px}.squad-counts{margin:6px 0 10px}}
@media(max-width:700px){.squad-hub{padding:85px 12px 20px}.squad-factions{gap:12px}.squad-faction-heading{flex-direction:column;gap:2px}.squad-faction-heading img{width:75px;height:82px}.squad-faction-heading h2{font-size:25px}.squad-hub-cards{grid-template-columns:1fr}.squad-card{min-height:160px}.squad-card strong{font-size:22px}.squad-card small{font-size:12px;text-align:center}.squad-hub-actions{gap:7px}.squad-hub-actions button{flex:1;padding:9px 12px}.squad-setup .squad-factions{gap:12px}.squad-setup-cards{grid-template-columns:1fr}.squad-counts{gap:20px}.squad-counts label{font-size:12px;gap:5px}.squad-counts input{width:48px}.squad-edit-card{padding:8px}.squad-edit-card .squad-name{font-size:17px}.squad-edit-card .name-keyboard-toggle{width:30px}.squad-setup{padding:12px}.squad-setup .squad-faction-heading h3{font-size:21px}.squad-pair-card{padding:15px 10px}.squad-pair-card>.squad-badge,.squad-pair-card>img{width:110px;height:110px}.squad-pair-card>strong{font-size:25px}.squad-pair-card>p{font-size:14px}.squad-pair-card h3{font-size:21px}}
.squad-intro{position:fixed;inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:5vh 5vw 110px;border:0;background:#041521;color:#fff0cc;overflow:hidden;box-sizing:border-box;isolation:isolate}.squad-intro::backdrop{background:#03131d}.squad-intro-world{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.3) saturate(.65);z-index:-2}.squad-intro::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,#09507366,transparent 48%,#943b1666)}.squad-intro h1{text-align:center;font:500 clamp(26px,3vw,48px) Georgia,serif;letter-spacing:.12em;margin:0 0 3vh;text-shadow:0 3px 20px #000}.squad-intro .squad-factions{height:calc(100% - 70px);gap:6vw}.squad-intro-side{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}.squad-intro-parent{font:600 16px system-ui;letter-spacing:.12em;text-transform:uppercase;color:#b3d4df;margin:0 0 12px}.squad-intro-side[data-team='B'] .squad-intro-parent{color:#f0c49b}.squad-intro .squad-badge{width:min(28vw,28vh);height:min(28vw,28vh);filter:drop-shadow(0 0 30px #90deff55)}.squad-intro-side[data-team='B'] .squad-badge{filter:drop-shadow(0 0 30px #ffae6b55)}.squad-intro h2{font:500 clamp(27px,3.8vw,58px) Georgia,serif;line-height:1.05;margin:12px 0 20px;max-width:100%;overflow-wrap:anywhere}.squad-intro-members{display:flex;flex-direction:column;gap:10px;max-width:100%}.squad-intro-members strong{font:500 clamp(23px,3vw,42px) Georgia,serif;line-height:1.1;opacity:0;transform:translateY(24px);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1);overflow-wrap:anywhere}.squad-intro-members strong[data-visible='true']{opacity:1;transform:none}.squad-intro-actions{position:absolute;left:5%;right:5%;bottom:4vh;display:flex;justify-content:center;gap:12px}.squad-intro-actions button{min-height:48px;min-width:100px;padding:10px 24px;border:1px solid #dfd3a655;border-radius:26px;background:#102d3be8;color:#f8e4b8;font:600 16px system-ui;cursor:pointer}.squad-intro-actions .primary{background:#e9cd8e;color:#152a30;min-width:180px}.squad-intro-actions button:disabled{opacity:.35}.squad-intro :focus-visible{outline:3px solid #ffe3a2;outline-offset:4px}.squad-intro[data-paused='true'] *{transition:none!important;animation-play-state:paused!important}.squad-intro:is([data-reduced='true'],[data-skipped='true']) *{transition:none!important;animation:none!important}@media(max-height:620px){.squad-intro{padding-top:3vh;padding-bottom:80px}.squad-intro h1{font-size:27px;margin-bottom:12px}.squad-intro-parent{font-size:13px;margin-bottom:5px}.squad-intro .squad-badge{width:24vh;height:24vh}.squad-intro h2{font-size:30px;margin:8px 0 10px}.squad-intro-members{gap:7px}.squad-intro-members strong{font-size:25px}.squad-intro-actions{bottom:15px}.squad-intro-actions button{min-height:44px}}@media(max-width:700px){.squad-intro{padding:5vh 12px 100px}.squad-intro .squad-factions{gap:15px}.squad-intro h1{font-size:26px}.squad-intro h2{font-size:27px}.squad-intro-parent{font-size:12px}.squad-intro .squad-badge{width:36vw;height:36vw}.squad-intro-members strong{font-size:24px}.squad-intro-actions{gap:6px;left:12px;right:12px}.squad-intro-actions button{min-width:0;padding:10px 14px;font-size:14px}.squad-intro-actions .primary{min-width:95px}}
#hub[data-squad-hub='true'] #classBattleHost .series-houses,#hub[data-squad-hub='true'] #classBattleHost .series-progress{display:none}.squad-card:disabled{opacity:.45;cursor:default}.squad-edit-card[data-paused='true']>.squad-badge{opacity:.4}.squad-edit-card .squad-pause{min-height:36px;padding:6px 14px;border:1px solid #bdcca766;border-radius:18px;background:#122d38;color:#e5dfc8;font:14px system-ui}
.squad-hub[data-arrival='true'] .squad-faction-heading{animation:squad-hub-arrival 1000ms cubic-bezier(.2,.7,.2,1) both}@keyframes squad-hub-arrival{from{opacity:.5;transform:translateY(18px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.squad-hub[data-arrival='true'] .squad-faction-heading{animation:none}}
/* A complete four-per-side setup fits 720p; more teams still scroll in the body. */
@media(max-height:800px) and (min-width:701px){.squad-setup{padding:14px;max-height:97svh}.squad-setup>h2{font-size:28px;margin:0 0 6px}.squad-setup .squad-counts{margin:0 0 10px}.squad-setup .squad-edit-card{display:grid;grid-template-columns:65px minmax(0,1fr);grid-template-rows:44px 54px 44px;gap:6px;padding:10px;align-items:center}.squad-setup .squad-edit-card>.squad-badge{grid-column:1;grid-row:1/3;width:65px;height:65px}.squad-setup .squad-edit-card>.name-input-with-keyboard:nth-child(2){grid-column:2;grid-row:1}.squad-setup .squad-edit-card>.name-input-with-keyboard:nth-child(3){grid-column:2;grid-row:2}.squad-setup .squad-edit-card>.squad-icon-choice{grid-column:2;grid-row:3;min-height:44px;height:44px;padding:4px;font-size:12px}.squad-setup .squad-edit-card>.squad-pause{grid-column:1;grid-row:3;padding:3px;min-height:44px;height:44px;font-size:11px}.squad-setup .squad-edit-card .squad-name{font-size:18px;padding:7px 4px}.squad-setup .squad-edit-card textarea{font-size:13px;padding:6px}.squad-setup .name-keyboard-toggle{width:40px;min-height:40px;font-size:20px}.squad-setup .player-actions{padding-top:10px;margin-top:10px}}
.squad-intro-members strong{transition:none}.squad-intro-members strong[data-visible='true']{animation:squad-name-arrive 450ms cubic-bezier(.2,.8,.2,1) both}.squad-intro-members{max-height:35vh;overflow:auto;padding:2px 10px}@keyframes squad-name-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.squad-intro[data-paused='true'] *{animation-play-state:paused!important}.squad-intro:is([data-reduced='true'],[data-skipped='true']) strong[data-visible='true']{opacity:1;transform:none;animation:none!important}
.scene-music-toggle{position:fixed;z-index:40;right:74px;top:15px;width:44px;height:44px;padding:10px;border:1px solid #bfc9ae33;border-radius:50%;background:#071e2ac9;color:#c8d3c1;cursor:pointer}.scene-music-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.scene-music-toggle[data-on='false']{opacity:.45}.scene-music-toggle[hidden]{display:none}.scene-music-toggle:focus-visible{outline:3px solid #ffe3a2;outline-offset:3px}
.squad-hub-more .class-tools{position:static;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:14px 0 0;height:auto}.squad-hub-more .class-tools .class-back{position:static;width:44px;height:44px;min-height:44px;margin:0;border:1px solid #d2d2ad55;border-radius:50%;background:#17303d;font-size:22px;opacity:1}.squad-hub-more .class-save-state{position:static}
.squad-card{min-width:0}.squad-card strong,.squad-card small,.squad-pair-card>strong{max-width:100%;overflow-wrap:anywhere;text-align:center}.squad-award-card{min-width:0}.squad-award-card strong{max-width:100%;overflow-wrap:anywhere}

/* Visible heraldry: compensate the safe transparent margins without cropping cells. */
.squad-hub{padding:78px clamp(24px,3.5vw,68px) 24px}
.squad-hub-title p{margin:0 0 4px;font-size:12px}
.squad-hub .squad-faction-heading{gap:22px;margin-bottom:12px}
.squad-hub .squad-faction-heading img{width:230px;height:250px;filter:drop-shadow(0 12px 22px #0008) drop-shadow(0 0 22px #80d8ed28)}
.squad-hub-faction[data-team='B'] .squad-faction-heading img{filter:drop-shadow(0 12px 22px #0008) drop-shadow(0 0 22px #ffb47128)}
.squad-hub .squad-faction-heading h2{font-size:clamp(34px,3vw,54px)}
.squad-hub-cards{gap:12px}
.squad-hub .squad-card{display:grid;grid-template-columns:190px minmax(0,1fr);grid-template-rows:1fr auto;align-items:center;justify-items:center;gap:4px 8px;min-height:214px;padding:10px;border-radius:15px}
.squad-hub .squad-card .squad-badge{grid-row:1/3;width:190px;height:190px;filter:drop-shadow(0 6px 13px #0007)}
.squad-hub .squad-card strong{align-self:end;font-size:28px;line-height:1.05;padding-bottom:5px}
.squad-hub .squad-card strong:last-child{align-self:center;grid-row:1/3;padding-bottom:0}
.squad-hub .squad-card small{align-self:start;font-size:13px;line-height:1.25;padding-bottom:15px}
.squad-hub-actions{margin-top:16px;padding:10px;gap:10px}
.squad-hub-more{margin-top:0}
.squad-pair-card>.squad-badge,.squad-pair-card>img{width:min(32vh,340px);height:min(32vh,340px)}

.squad-intro{padding:24px 5vw 94px}
.squad-intro h1{font-size:44px;line-height:1.05;margin:0 0 8px}
.squad-intro .squad-factions{height:auto;gap:7vw;align-items:start}
.squad-intro-side{position:relative;isolation:isolate}
.squad-intro-parent{font-size:16px;margin:0 0 2px}
.squad-intro .squad-badge{position:relative;isolation:isolate;width:min(44vw,50vh);height:min(44vw,50vh);filter:drop-shadow(0 12px 25px #0007) drop-shadow(0 0 28px #87d9ef44);animation:squad-emblem-arrival 760ms cubic-bezier(.15,.75,.2,1) both}
.squad-intro .squad-badge::before{content:'';position:absolute;inset:7%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#65cbe329 0%,#55b9de12 48%,transparent 72%);pointer-events:none}
.squad-intro-side[data-team='B'] .squad-badge{filter:drop-shadow(0 12px 25px #0007) drop-shadow(0 0 28px #ffad5e44)}
.squad-intro-side[data-team='B'] .squad-badge::before{background:radial-gradient(ellipse,#ffb75d29 0%,#e37d3b12 48%,transparent 72%)}
.squad-intro h2{font-size:clamp(32px,3.2vw,55px);line-height:1.03;margin:-8px 0 9px}
.squad-intro-members{gap:4px;max-height:26vh;padding:2px 10px}
.squad-intro-members strong{font-size:clamp(27px,2.6vw,38px);line-height:1.08}
.squad-intro-actions{bottom:24px}
@keyframes squad-emblem-arrival{from{opacity:.25;transform:translateY(18px) scale(.84)}to{opacity:1;transform:none}}
.squad-intro:is([data-reduced='true'],[data-skipped='true']) .squad-badge{animation:none;opacity:1;transform:none}
@media(max-height:800px) and (min-width:701px){
 .squad-hub{padding:75px 24px 8px}.squad-hub-title{display:none}
 .squad-hub .squad-faction-heading{gap:12px;margin-bottom:8px}.squad-hub .squad-faction-heading img{width:165px;height:179px}.squad-hub .squad-faction-heading h2{font-size:34px}
 .squad-hub-cards{gap:8px}.squad-hub .squad-card{grid-template-columns:132px minmax(0,1fr);min-height:146px;padding:6px;gap:3px}
 .squad-hub .squad-card .squad-badge{width:132px;height:132px}.squad-hub .squad-card strong{font-size:22px;line-height:1.04;padding-bottom:2px}.squad-hub .squad-card small{font-size:11px;padding-bottom:8px}
 .squad-hub-actions{margin-top:9px;padding:6px;gap:8px}.squad-hub-actions button{min-height:44px;padding:7px 16px;font-size:14px}.squad-hub-more>summary{padding:8px 25px}
 .squad-intro{padding-top:18px;padding-bottom:82px}.squad-intro h1{font-size:34px;margin-bottom:5px}.squad-intro-parent{font-size:14px}.squad-intro h2{font-size:40px}.squad-intro-members strong{font-size:29px}.squad-intro-actions{bottom:20px}
}
@media(max-height:620px) and (min-width:701px){
 .squad-hub .squad-faction-heading img{width:140px;height:152px}.squad-hub .squad-card{grid-template-columns:108px minmax(0,1fr);min-height:122px}.squad-hub .squad-card .squad-badge{width:108px;height:108px}.squad-hub .squad-card strong{font-size:20px}
 .squad-intro{padding-top:10px;padding-bottom:70px}.squad-intro h1{font-size:28px;margin-bottom:4px}.squad-intro-parent{font-size:13px}.squad-intro h2{font-size:30px;margin:-8px 0 6px}.squad-intro-members strong{font-size:24px}.squad-intro-members{gap:3px}.squad-intro-actions{bottom:12px}
}
@media(max-width:700px){
 .squad-hub{padding:78px 12px 20px}.squad-hub .squad-faction-heading{flex-direction:column;gap:2px}.squad-hub .squad-faction-heading img{width:140px;height:152px}.squad-hub .squad-faction-heading h2{font-size:25px}
 .squad-hub .squad-card{display:flex;min-height:190px;padding:8px;gap:4px}.squad-hub .squad-card .squad-badge{width:132px;height:132px}.squad-hub .squad-card strong{font-size:23px;align-self:auto;padding:0}.squad-hub .squad-card small{align-self:auto;font-size:12px;padding:0}
 .squad-intro{padding:24px 12px 95px}.squad-intro h1{font-size:27px}.squad-intro .squad-factions{gap:12px}.squad-intro-parent{font-size:12px}.squad-intro .squad-badge{width:44vw;height:44vw}.squad-intro h2{font-size:27px;margin:0 0 10px}.squad-intro-members strong{font-size:24px}.squad-intro-actions{bottom:20px}
}
/* Editing: the name appears once; badge choice and availability stay compact. */
.squad-icon-control{position:relative;display:grid;place-items:center;width:44px;height:44px;flex:none;cursor:pointer;border:1px solid #b9c9bf66;border-radius:50%;background:#102e3b;color:#f4e7c5;font:26px Georgia,serif}
.squad-icon-control .squad-icon-choice{position:absolute;inset:0;opacity:0;width:100%;height:100%;min-height:44px;cursor:pointer}
.squad-icon-control:focus-within{outline:3px solid #f4d883;outline-offset:3px}
.squad-edit-card .squad-pause{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font:26px/1 system-ui;background:#143c34;border-color:#96c7a766;color:#c8e8c5}
.squad-edit-card[data-paused='true'] .squad-pause{background:#243038;border-color:#9aa6a555;color:#aeb9b7}
@media(min-width:701px){
 .squad-setup .squad-edit-card{display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:44px 54px 44px;align-items:center;gap:6px;padding:10px}
 .squad-setup .squad-edit-card>.squad-badge{grid-column:1;grid-row:1/3;width:110px;height:110px;justify-self:center}
 .squad-setup .squad-edit-card>.name-input-with-keyboard:nth-child(2){grid-column:2;grid-row:1}
 .squad-setup .squad-edit-card>.name-input-with-keyboard:nth-child(3){grid-column:2;grid-row:2}
 .squad-setup .squad-edit-card>.squad-icon-control{grid-column:1;grid-row:3;justify-self:center}
 .squad-setup .squad-edit-card>.squad-pause{grid-column:2;grid-row:3;justify-self:end;font-size:26px;width:44px;padding:0}
 .squad-setup .squad-edit-card .squad-name{font-size:18px;padding:7px 4px}
}
@media(max-width:700px){.squad-edit-card{display:grid;grid-template-columns:1fr 1fr;justify-items:center}.squad-edit-card>.squad-badge,.squad-edit-card>.name-input-with-keyboard{grid-column:1/-1}.squad-edit-card>.squad-badge{width:110px;height:110px}.squad-icon-control{grid-column:1}.squad-edit-card .squad-pause{grid-column:2}}
/* Paint one clipped cell first, then optically align its complete visible motif. */
.squad-badge{position:relative;overflow:hidden;isolation:isolate}
.squad-badge-art{position:absolute;inset:0;display:block;background-repeat:no-repeat;transform:translate(var(--badge-x,0%),var(--badge-y,0%)) scale(var(--badge-scale,1));transform-origin:center;pointer-events:none}
.squad-hub .squad-card .squad-badge{width:180px;height:180px}
.squad-intro .squad-badge{width:min(44vw,48vh);height:min(44vw,48vh)}
@media(max-height:800px) and (min-width:701px){.squad-hub .squad-card .squad-badge{width:124px;height:124px}}
@media(max-height:620px) and (min-width:701px){.squad-hub .squad-card .squad-badge{width:108px;height:108px}}
@media(max-width:700px){.squad-hub .squad-card .squad-badge{width:132px;height:132px}.squad-intro .squad-badge{width:44vw;height:44vw}}
/* Every stored squad member stays readable beneath its team name, including paused teams. */
.squad-hub .squad-card .squad-card-members{font:500 20px/1.28 system-ui;color:#dbe4df;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;padding:0 0 12px;text-align:center;max-width:100%}
.squad-hub .squad-card:disabled{opacity:1;background:#152630;border-color:#9baeb155;color:#bac9c9}
.squad-hub .squad-card:disabled .squad-badge{opacity:.65;filter:grayscale(.9) brightness(.8)}
.squad-hub .squad-card:disabled .squad-card-members{color:#cbd8d5}
@media(max-height:800px) and (min-width:701px){.squad-hub .squad-card .squad-card-members{font-size:18px;line-height:1.22;padding-bottom:5px}}
@media(max-width:700px){.squad-hub .squad-card .squad-card-members{font-size:18px;line-height:1.22;padding:0}}
/* Teamwise reveal belongs only to TODAY'S TEAM; the hub always shows its members. */
.squad-intro-side[data-revealed='false']{visibility:hidden}
.squad-intro .squad-badge{animation:none}
.squad-intro-side[data-revealed='true'] .squad-badge{animation:squad-emblem-arrival 760ms cubic-bezier(.15,.75,.2,1) both}
.squad-intro-side[data-revealed='true'] h2{animation:squad-team-name-arrival 520ms ease-out both}
@keyframes squad-team-name-arrival{from{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:none}}
.squad-intro:is([data-reduced='true'],[data-skipped='true']) .squad-intro-side :is(.squad-badge,h2){animation:none!important;opacity:1;transform:none}
/* Leave the final flying name its full entry distance inside the scroll area. */
.squad-intro-members{padding-bottom:28px}.squad-intro-members:empty{padding:0}
/* Longer rosters scroll above their controls, never underneath them. */
#hub[data-squad-hub='true'] .class-camp{overflow:hidden}
.squad-hub{display:flex;flex-direction:column;height:100svh;min-height:0}
.squad-hub>.squad-hub-title,.squad-hub>.squad-hub-more{flex:none}
.squad-hub>.squad-hub-more{max-height:40svh;overflow:auto}
.squad-hub>.squad-factions{flex:1;min-height:0;overflow:auto;align-items:start;scroll-padding-block:8px;padding-bottom:6px}
.squad-hub-actions{position:relative;bottom:auto;flex:none}
/* A team is one finished identity; only the shared member list is a form. */
.squad-setup{color-scheme:dark}
.squad-setup .squad-edit-card{display:flex;flex-direction:column;align-items:stretch;align-self:start;gap:8px;padding:12px}
.squad-edit-identity{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px;min-width:0}
.squad-setup .squad-edit-identity .squad-badge{width:110px;height:110px;margin:0}
.squad-edit-name{font:500 23px/1.12 Georgia,serif;text-align:center;overflow-wrap:anywhere;color:#fff0cc}
.squad-edit-members{min-width:0}
.squad-edit-members>label,.squad-edit-options>label{display:block;font:600 12px/1.4 system-ui;color:#c5d5d0;margin-bottom:4px}
.squad-setup :is(input,textarea,select){color-scheme:dark;background:#071e2b;color:#f7e9c5;border:1px solid #829d9c70;accent-color:#e5cd88}
.squad-setup .squad-edit-card .squad-members{min-height:62px;resize:vertical;font:16px/1.3 system-ui;padding:9px}
.squad-setup .squad-edit-members .name-keyboard-toggle{width:44px;min-height:44px;background:#12313e;color:#e9ddb5;border-color:#829d9c70}
.squad-edit-options{border-top:1px solid #abc7be24;min-width:0}
.squad-edit-options>summary{min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:#c5d5d0;font:500 14px system-ui;list-style:none}
.squad-edit-options>summary::-webkit-details-marker{display:none}
.squad-edit-options>summary::after{content:'⌄';font-size:17px}
.squad-edit-options[open]>summary::after{content:'⌃'}
.squad-setup .squad-template-choice{width:100%;min-height:44px;font:16px system-ui;padding:8px}
.squad-setup .squad-template-choice option{background:#071e2b;color:#f7e9c5}
.squad-setup .squad-edit-options .squad-pause{width:100%;min-height:44px;height:auto;margin-top:8px;padding:8px 10px;border-radius:9px;font:500 14px/1.3 system-ui;background:#12313e;color:#dce7dc;border-color:#829d9c70}
.squad-setup .squad-edit-card[data-paused='true'] .squad-edit-identity .squad-badge{opacity:.5}
.squad-setup :is(input,textarea,select,summary):focus-visible{outline:3px solid #f4d883;outline-offset:3px}
@media(max-width:700px){.squad-edit-identity{grid-template-columns:1fr;gap:4px;justify-items:center}.squad-edit-name{font-size:22px}}
