.roster-page{background:var(--paper)}
.site-header [aria-current="page"]{color:var(--acid)}
.roster-hero{position:relative;overflow:hidden;background:#182217;padding:30px 0 55px}
.roster-hero::after{content:"";position:absolute;width:440px;height:440px;right:-80px;top:-80px;border:1px solid #c9f56320;border-radius:50%;box-shadow:0 0 0 65px #c9f56304,0 0 0 130px #c9f56304;pointer-events:none}
.roster-back{display:inline-block;font-size:.8rem;color:#c4cfbf;margin-bottom:35px}
.roster-back:hover{color:var(--acid)}
.roster-hero .eyebrow{color:var(--acid)}
.roster-hero h1{position:relative;font-size:clamp(4.5rem,9.6vw,8.5rem);margin:17px 0 22px;z-index:1}
.roster-hero h1 span{color:var(--acid)}
.roster-hero>.wrap>p:last-child{color:#d4dfcd;font-size:1.08rem;max-width:45ch}
.roster-content{padding:34px 0 80px;min-height:500px}
.roster-choose{padding-bottom:28px;border-bottom:1px solid var(--edge)}
.roster-choose h2{font:750 .8rem/1.4 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.roster-teams{position:static;display:flex;flex-wrap:wrap;gap:8px;background:transparent;padding:0;border:0;max-height:none;overflow:visible;font-size:.85rem}
.roster-teams>a{display:inline-flex;align-items:center;gap:8px;border:1px solid #c8cfc0;background:#fff9;padding:9px 13px;min-height:44px;font-weight:650}
.roster-teams>a:hover{border-color:var(--green);color:var(--green)}
.roster-teams>a[aria-current="true"]{background:#263721;border-color:#263721;color:var(--paper)}
.roster-teams>a span{font-size:.68rem;background:var(--acid);color:var(--ink);padding:1px 6px;border-radius:2px}
.roster-panel{padding-top:32px}
.roster-panel+.roster-panel{margin-top:40px;border-top:1px solid var(--edge)}
.roster-enhanced .roster-panel{margin-top:0;border:0}
.album-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.album-heading h2{font-size:clamp(2.8rem,5vw,4.6rem);margin-top:12px;line-height:1.05;overflow-wrap:anywhere}
.album-zip{flex-wrap:wrap;gap:8px 10px}
.album-zip small{font-size:.66rem;font-weight:600;opacity:.8}
.album-help{color:#475243;font-size:.9rem;max-width:65ch;margin:19px 0 25px}
.roster-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 20px}
.player-photo{margin:0;min-width:0;border:1px solid var(--edge);background:#fffdf6}
.photo-open{position:relative;display:block;overflow:hidden;background:#deded0}
.photo-open img{width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}
.photo-zoom{position:absolute;right:10px;bottom:10px;background:#10160fe8;color:var(--paper);padding:5px 9px;font-size:.7rem;font-weight:700}
.photo-open:hover .photo-zoom{color:var(--acid)}
.player-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px}
.player-photo figcaption span{display:block;color:var(--green);font-size:.6rem;letter-spacing:.08em;font-weight:800}
.player-photo h3{font-size:1rem;line-height:1.4;margin-top:2px}
.photo-download{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px;border:1px solid #bdc9b1;font-size:.78rem;font-weight:750;line-height:1.3}
.photo-download:hover{background:#e7efdb;border-color:var(--green)}
.photo-download .icon{width:17px;height:17px}
.roster-empty{padding:44px 24px;text-align:center;background:#e7efdb;margin-top:24px;border:1px solid var(--edge)}
.roster-empty>.icon{width:34px;height:34px;color:var(--green);margin-bottom:10px}
.roster-empty h3{font-size:1.2rem}
.roster-empty p{font-size:.93rem;color:#475243;margin:8px auto 20px;max-width:52ch}
.photo-dialog{width:min(940px,calc(100% - 28px));height:min(94dvh,1000px);max-width:none;max-height:94dvh;padding:0;border:1px solid #4a5b40;background:#10160f;color:var(--paper)}
.photo-dialog::backdrop{background:#030803eF}
.photo-dialog-inner{height:100%;display:flex;flex-direction:column}
.photo-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 16px;border-bottom:1px solid #ffffff25;flex:none}
.photo-dialog-top p{font-size:.87rem;font-weight:700}
.photo-close{display:flex;gap:10px;align-items:center;padding:7px 10px;background:transparent;border:1px solid #ffffff55;font-size:.8rem;min-height:42px}
.photo-close span{font-size:1.6rem;line-height:1}
.photo-stage{position:relative;flex:1;min-height:0;display:flex;justify-content:center;align-items:center;padding:10px 48px}
.photo-full{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.photo-stage button{position:absolute;top:50%;transform:translateY(-50%);height:50px;width:39px;font:400 2.4rem/1 system-ui;background:#263721;border:1px solid #a5b39966;color:var(--paper)}
.photo-previous{left:5px}.photo-next{right:5px}
.photo-stage button:hover{color:var(--acid);border-color:var(--acid)}
.photo-dialog-bottom{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;padding:12px 16px;flex:none;border-top:1px solid #ffffff25}
.photo-original{font-size:.8rem;text-decoration:underline;text-underline-offset:3px;padding:10px 0}
.photo-dialog a:focus-visible,.photo-dialog button:focus-visible{outline-color:var(--acid)}
body.photo-viewing{overflow:hidden}
@media(max-width:900px){.roster-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:670px){
  .roster-hero{padding:20px 0 35px}.roster-back{margin-bottom:26px}.roster-hero h1{font-size:clamp(3.8rem,16vw,6rem)}
  .roster-hero>.wrap>p:last-child{font-size:.98rem}.desktop-break{display:none}.roster-content{padding:25px 0 50px}
  .roster-teams>a:not(.button){padding:9px 11px;border:1px solid #c8cfc0}.roster-teams>a[aria-current="true"]{border-color:#263721}
  .album-heading{align-items:start;flex-direction:column;gap:18px}.album-zip{width:100%;justify-content:center}.album-help{margin-top:17px}
  .roster-gallery{gap:16px 10px}.player-photo figcaption{flex-direction:column;align-items:stretch;padding:10px;gap:9px}.photo-download{font-size:.75rem;padding:8px 3px}.photo-zoom{right:5px;bottom:5px;font-size:.6rem;padding:4px 6px}
  .photo-dialog{width:calc(100% - 14px);height:94dvh}.photo-dialog-top{padding:8px 10px}.photo-dialog-top p{font-size:.75rem}.photo-stage{padding:6px 30px}.photo-stage button{width:30px;height:44px;font-size:2rem}.photo-previous{left:0}.photo-next{right:0}.photo-dialog-bottom{padding:10px;gap:2px 12px}.photo-dialog-download{font-size:.8rem;min-height:44px;padding:10px}
}

.dr3-team-gallery{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px}
.dr3-team-gallery .photo-open img{aspect-ratio:3/2}

.dr3-additions{margin-top:28px}
