:root{--team:#ff5a00;--team-dark:#151515;--orange:#ff5a00;--ink:#111318;--paper:#f3f1ec;--white:#fff;--muted:#6c6a66;--line:#d8d3ca;--danger:#a62920;--shadow:0 8px 30px rgba(30,25,20,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}a{color:inherit}button,input,textarea,select{font:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem max(1rem,calc((100vw - 1180px)/2));background:color-mix(in srgb,var(--team-dark) 96%,transparent);color:#fff;border-bottom:4px solid var(--team);box-shadow:0 3px 15px rgba(0,0,0,.18)}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}.brand-mark,.portal-mark{display:grid;place-items:center;background:var(--team);color:var(--team-dark);font-weight:1000;letter-spacing:-.07em;transform:skew(-5deg)}.brand-mark{width:44px;height:44px;border-radius:8px}.brand>span:last-child{display:grid;line-height:1.12}.brand small{color:#cac7c1;font-size:.78rem;margin-top:.18rem}.topbar nav{display:flex;align-items:center;gap:1rem}.topbar nav a,.nav-button{color:#fff;background:none;border:0;font-weight:800;text-decoration:none;padding:.55rem .15rem;cursor:pointer}.topbar nav a:hover,.nav-button:hover{color:var(--team)}.topbar form{margin:0}.menu-toggle{display:none;background:var(--team);color:var(--team-dark);border:0;border-radius:8px;padding:.55rem .75rem;font-weight:900}.guest-label{font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--team)}.page-shell{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:2rem 0 4rem}.portal-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 70% 20%,#342b25 0,transparent 30%),#111318}.portal-card{width:min(440px,100%);background:var(--paper);padding:clamp(1.5rem,6vw,3rem);border-radius:22px;box-shadow:0 20px 80px #000}.portal-mark{width:66px;height:66px;border-radius:15px;background:var(--orange);font-size:1.65rem;margin-bottom:1.8rem}.portal-card h1{font-size:clamp(2.5rem,10vw,4.3rem);line-height:.88;letter-spacing:-.065em;text-transform:uppercase;margin:.5rem 0 1rem}.portal-card>p{color:var(--muted);margin-bottom:2rem}.stack{display:grid;gap:.85rem}label{font-weight:800;font-size:.9rem}input,textarea,select{width:100%;font-size:1rem;border:1px solid var(--line);border-radius:9px;padding:.8rem .9rem;background:#fff;margin-top:.35rem;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:3px solid color-mix(in srgb,var(--team) 38%,transparent);border-color:var(--team)}button,.button-link{font-weight:850;border:0;border-radius:9px;padding:.78rem 1rem;cursor:pointer;text-align:center;text-decoration:none;display:inline-block}.primary{background:var(--team);color:var(--team-dark)}.primary:hover{filter:brightness(1.05)}.secondary{background:#22252a;color:#fff}.danger{background:#f3ddda;color:var(--danger)}.quiet-link{display:block;margin-top:1.25rem;text-align:center;color:var(--muted);font-size:.88rem}.back-link{display:inline-block;margin-bottom:1rem;color:#5e5a55;font-weight:800;text-decoration:none}.eyebrow{margin:0;color:color-mix(in srgb,var(--team) 78%,#7b2500);font-size:.8rem;font-weight:950;letter-spacing:.16em;text-transform:uppercase}.error{margin:0;color:#8d2119;font-weight:750}.error-box{padding:1rem;background:#f5dfdc;color:#8d2119;border-radius:10px;margin-bottom:1rem;font-weight:750}.notice{background:#fff;border-left:5px solid var(--team);padding:1rem 1.2rem;margin:0 0 1.4rem;border-radius:0 8px 8px 0;font-weight:750}.muted{color:var(--muted)}.optional{font-weight:500;color:var(--muted);font-size:.8rem}.roster-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;padding:1rem 0 2rem}.roster-heading h1,.profile-copy h1,.form-card h1,.admin-heading h1,.page-title{font-size:clamp(2.3rem,7vw,5rem);line-height:.88;letter-spacing:-.065em;margin:.35rem 0;text-transform:uppercase}.roster-heading .button-link{margin-bottom:.25rem}.player-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.15rem}.player-card{display:block;background:#fff;border-radius:16px;overflow:hidden;text-decoration:none;box-shadow:0 5px 20px rgba(30,25,20,.08);transition:transform .18s ease,box-shadow .18s ease}.player-card:hover,.player-card:focus-visible{transform:translateY(-5px);box-shadow:0 10px 28px rgba(30,25,20,.16);outline:3px solid var(--team);outline-offset:3px}.photo-frame{position:relative;aspect-ratio:4/5;background:var(--team-dark);overflow:hidden}.photo-frame img,.profile-photo img,.submission-card img{width:100%;height:100%;object-fit:cover}.photo-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#777;background:repeating-linear-gradient(135deg,var(--team-dark) 0,var(--team-dark) 12px,color-mix(in srgb,var(--team-dark) 90%,#fff) 12px,color-mix(in srgb,var(--team-dark) 90%,#fff) 24px)}.photo-placeholder span{font-weight:1000;font-size:clamp(1.6rem,4vw,2.5rem);letter-spacing:.06em}.photo-placeholder small{color:var(--team);font-weight:900;letter-spacing:.18em}.jersey-number{position:absolute;right:-.03em;bottom:-.18em;color:var(--team);font-weight:1000;font-style:italic;font-size:clamp(4rem,9vw,7.5rem);letter-spacing:-.11em;line-height:1;text-shadow:0 3px 0 #000}.player-name{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem}.player-name strong{font-size:1.25rem}.player-name span{font-size:.78rem;color:var(--muted);font-weight:750}.profile-shell,.form-shell,.info-shell,.share-shell{max-width:1000px}.profile-card{display:grid;grid-template-columns:minmax(280px,1fr) 1fr;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.profile-photo{position:relative;min-height:550px;background:var(--team-dark)}.profile-number{position:absolute;right:.05em;bottom:-.12em;color:var(--team);font-weight:1000;font-size:10rem;font-style:italic;line-height:1;letter-spacing:-.12em;text-shadow:0 4px #000}.profile-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(2rem,6vw,4.5rem)}.profile-copy h1{font-size:clamp(3rem,8vw,6rem)}.nickname{margin:.2rem 0 1.5rem;color:var(--muted);font-size:1.35rem;font-weight:750}.profile-copy small{margin-top:1rem;color:var(--muted)}.facts{width:100%;margin:0 0 2rem}.facts div{border-top:1px solid var(--line);padding:.75rem 0}.facts dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:850}.facts dd{margin:.12rem 0 0;font-size:1.08rem;font-weight:700}.form-card{max-width:760px;background:#fff;padding:clamp(1.4rem,5vw,3rem);border-radius:18px;box-shadow:var(--shadow)}.form-card h1{font-size:clamp(2.4rem,7vw,4.5rem)}.form-card h2{margin:1rem 0 0;font-size:1.25rem}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.file-drop{position:relative;display:grid;place-items:center;text-align:center;min-height:150px;border:2px dashed #b8b1a7;border-radius:14px;background:#faf8f4;cursor:pointer}.file-drop:hover{border-color:var(--team)}.file-drop span{font-size:.8rem;color:var(--muted);font-weight:500}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.page-title{margin:.5rem 0 2rem}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.info-card{display:flex;align-items:center;gap:1.2rem;background:#fff;border-radius:14px;padding:1.3rem;text-decoration:none;box-shadow:0 4px 18px rgba(30,25,20,.06)}.info-card:hover{outline:3px solid var(--team)}.info-card>span{display:grid;place-items:center;min-width:48px;height:48px;border-radius:10px;background:var(--team);color:var(--team-dark);font-weight:950}.info-card h2,.info-card p{margin:0}.info-card p{color:var(--muted);font-size:.88rem}.notes-card{background:#fff;border-radius:16px;padding:clamp(1.4rem,4vw,2.2rem);margin-top:1rem}.notes-card h2{margin-top:0}.notes-card p{white-space:pre-wrap}.share-card{max-width:600px;margin:auto;text-align:center;background:#fff;border-radius:20px;padding:clamp(1.5rem,6vw,3rem);box-shadow:var(--shadow)}.share-card h1{font-size:clamp(2.6rem,8vw,4.5rem);line-height:.9;letter-spacing:-.06em;text-transform:uppercase;margin:.5rem}.share-card>p{color:var(--muted)}.qr{display:block;width:min(340px,100%);margin:1.2rem auto}.share-card small{display:block;color:var(--muted);margin-top:1rem}.staff-top,.admin-heading,.section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.5rem}.staff-top .page-title{margin:.35rem 0}.team-picker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.team-choice{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.2rem;background:#fff;border-radius:14px;text-decoration:none;box-shadow:0 4px 18px rgba(30,25,20,.06)}.team-choice:hover{outline:3px solid var(--team)}.team-choice div{display:grid}.team-choice strong{font-size:1.1rem}.team-choice small{color:var(--muted)}.team-dot{width:16px;height:52px;border-radius:6px;background:var(--team)}.team-choice b{font-size:.85rem}.admin-heading h1{font-size:clamp(2.5rem,6vw,4.5rem)}.admin-section{background:#fff;padding:clamp(1rem,3vw,2rem);border-radius:18px;margin-bottom:1.4rem}.admin-section h2{margin:0 0 1.2rem;font-size:1.5rem}.admin-section h2>span,.admin-section>h2 span{display:inline-grid;place-items:center;min-width:1.8rem;height:1.8rem;border-radius:99px;background:var(--team);font-size:.85rem}.submission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.submission-card{display:grid;grid-template-columns:150px 1fr;gap:1rem;border:1px solid var(--line);border-radius:12px;padding:.7rem}.submission-card img{height:175px;border-radius:8px}.submission-card h3{margin:.3rem 0}.button-row{display:flex;gap:.5rem;align-items:center;margin-top:1rem}.button-row form{margin:0}.empty-state{padding:2.5rem 1rem;text-align:center;background:#f7f5f1;color:var(--muted);border-radius:12px}.roster-editor{display:grid;gap:.65rem}.player-editor{background:#f7f5f1;border-radius:10px;padding:0 .9rem}.player-editor summary{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:.7rem;padding:1rem 0;cursor:pointer;list-style:none}.player-editor summary::-webkit-details-marker{display:none}.player-editor summary b{font-size:1.4rem;color:color-mix(in srgb,var(--team) 78%,#7b2500)}.player-editor summary small{color:var(--muted)}.editor-form{display:grid;gap:.75rem;border-top:1px solid var(--line);padding:1rem 0}.check-label{display:flex;align-items:center;gap:.55rem}.check-label input{width:auto;margin:0}.activity-list{list-style:none;padding:0;margin:0}.activity-list li{display:flex;gap:.35rem;flex-wrap:wrap;padding:.7rem 0;border-top:1px solid var(--line)}.activity-list small{margin-left:auto;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}.admin-grid .admin-section{margin:0}fieldset{border:1px solid var(--line);border-radius:10px;padding:1rem}legend{font-weight:850}.coach-list{display:grid;gap:.7rem}.coach-list>div{display:grid;grid-template-columns:1fr 1fr 2fr;gap:1rem;padding:.8rem;background:#f7f5f1;border-radius:9px}.coach-list span,.coach-list small{color:var(--muted)}footer{text-align:center;padding:1rem 1rem 3rem;color:var(--muted);font-size:.8rem}@media(max-width:900px){.player-grid{grid-template-columns:repeat(3,1fr)}.submission-grid,.admin-grid{grid-template-columns:1fr}}@media(max-width:720px){.menu-toggle{display:block}.topbar nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--team-dark);padding:.5rem 1rem 1rem;border-bottom:4px solid var(--team);flex-direction:column;align-items:stretch}.topbar nav.open{display:flex}.topbar nav a,.nav-button{text-align:left;width:100%;padding:.75rem}.roster-heading{display:block;padding-top:.5rem}.roster-heading .button-link{margin-top:1rem}.player-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.player-name{display:block;padding:.8rem}.player-name strong{display:block;font-size:1.08rem}.player-name span{display:none}.profile-card{grid-template-columns:1fr}.profile-photo{min-height:440px}.profile-copy{padding:2rem}.field-pair,.info-grid,.team-picker-grid{grid-template-columns:1fr}.submission-card{grid-template-columns:105px 1fr}.submission-card img{height:135px}.admin-heading,.staff-top{align-items:flex-start;flex-direction:column}.coach-list>div{grid-template-columns:1fr}.activity-list small{width:100%;margin:0}}@media(max-width:420px){.page-shell{width:min(100% - 1.2rem,1180px)}.topbar{padding:.6rem}.brand-mark{width:38px;height:38px}.brand strong{font-size:.9rem}.player-grid{gap:.55rem}.jersey-number{font-size:4.25rem}.photo-placeholder small{font-size:.62rem}.profile-number{font-size:8rem}.submission-card{grid-template-columns:1fr}.submission-card img{height:260px}}
