/* Lane Vargas: player-specific layout over the shared Panthers foundation. */
:root { --content-wide:1280px; --color-primary:#b52131; }
html { scroll-padding-top:92px; }
section { scroll-margin-top:0; }
.container--wide { padding-inline:40px; }
.review-strip { background:#a91d29;color:white;font:500 12px/30px var(--font-mono);text-align:center;letter-spacing:.02em; }
.review-strip span { margin-inline:10px;opacity:.65; }
.site-header { background:#100e0d; }
.header-inner { height:82px;padding:12px 40px; }
.brand-text { font-size:21px; }
.brand-text small { font-size:10px;margin-top:5px; }
.jersey-mark { font:44px/1 var(--font-display);color:#e14350; }
.main-nav { gap:23px; }
.main-nav a { font-size:13px; }
.header-cta { font-size:12px;padding:11px 17px;border-radius:0; }
.skip-link { position:fixed;top:8px;left:8px;z-index:400;background:#fff;padding:12px;color:#111;transform:translateY(-200%); }
.skip-link:focus { transform:none; }
.lane-hero { min-height:740px;height:calc(100svh - 112px);max-height:980px;padding:0;border-bottom:5px solid #b52131;align-items:center; }
.hero-media { left:38%; }
.hero-media img { object-position:50% 34%; }
.hero-scrim { background:linear-gradient(90deg,#100e0d 0%,#100e0d 24%,rgba(16,14,13,.82) 40%,rgba(16,14,13,.06) 67%),linear-gradient(0deg,rgba(16,14,13,.5),transparent 40%); }
.hero-scrim::after { display:none; }
.hero-content { padding:48px 40px 60px; }
.hero-school { font:500 12px/1.7 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#c9c3bd;margin-bottom:28px; }
.hero-identity { display:flex;align-items:center;gap:18px;margin-bottom:12px; }
.hero-jersey { font-size:72px;color:#d73342;-webkit-text-stroke:0; }
.hero-position { font:500 12px/1.8 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#ded9d2; }
.hero-name { font-size:clamp(84px,8.6vw,138px);line-height:.99;letter-spacing:-.015em;margin:0; }
.hero-location { margin-top:24px;color:#d2cac3;font-size:15px; }
.hero-meta { margin-top:13px;gap:15px;font-size:14px; }
.hero-actions { margin-top:28px;gap:12px; }
.btn { min-height:48px;border-radius:0;font-size:13px;padding:13px 20px;justify-content:center; }
.hero-season { position:absolute;bottom:25px;right:40px;z-index:2;color:white;font:12px/1.6 var(--font-mono);text-align:right;text-transform:uppercase;letter-spacing:.08em; }
.hero-season span { display:block;color:#d4cec6;font-size:10px; }
.section-title { font-size:clamp(38px,4vw,56px);line-height:1.1; }
.eyebrow { font-size:12px; }
.section-heading-row { display:flex;justify-content:space-between;align-items:end;gap:24px; }
.text-link { display:inline-flex;gap:12px;align-items:center;text-decoration:none;color:var(--color-primary);font-size:13px;font-weight:600;padding-block:8px; }
.text-link:hover { text-decoration:underline; }
.season-section { background:#171412;color:#fff;padding-block:64px 48px;border-bottom:1px solid #39332e; }
.season-section .eyebrow,.season-section .text-link { color:#f47f88; }
.season-stats { display:grid;grid-template-columns:repeat(4,1fr);margin-top:45px; }
.season-stat { border-left:1px solid #49413a;padding-left:30px; }
.season-stat:first-child { border-left:0;padding-left:0; }
.season-stat strong { display:block;font:clamp(44px,5vw,70px)/1 var(--font-display);font-variant-numeric:tabular-nums; }
.season-stat span { display:block;font:11px/1.7 var(--font-mono);color:#c7bfb7;margin-top:12px;text-transform:uppercase;letter-spacing:.055em; }
.stats-details { display:flex;gap:32px;flex-wrap:wrap;margin-top:35px;padding:22px 0;border-block:1px solid #39332e; }
.stats-details div { display:flex;gap:12px;font-size:13px; }
.stats-details span { color:#c7bfb7; }
.stats-details strong { font-family:var(--font-mono); }
.rank-line { display:flex;align-items:center;gap:20px;margin-top:26px; }
.rank-value { font:52px/1 var(--font-display);color:#ed6c78; }
.rank-line strong { font-size:15px;font-weight:600; }
.rank-line p { font-size:12px;color:#bdb4ab;margin-top:4px; }
.source-note { font-size:12px!important;line-height:1.7; }
.source-note a { color:inherit;text-underline-offset:3px; }
.season-section>.container--wide>.source-note { margin-top:20px;color:#bdb4ab; }
.profile-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:start; }
.profile-portrait { position:relative; }
.profile-portrait img { width:100%;aspect-ratio:3/4;object-fit:cover; }
.profile-portrait figcaption { background:#b52131;padding:15px 18px;color:#fff;font:11px/1.6 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;max-width:none; }
.bio-copy p { font-size:16px;line-height:1.8;margin-top:18px; }
.bio-copy .eyebrow { margin-top:0;font-size:12px;color:var(--color-primary); }
.inline-citation { color:var(--color-primary);font-size:11px;text-decoration:none;vertical-align:super; }
.profile-vitals { display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0 12px;border-block:1px solid var(--color-border);padding-block:20px;gap:12px; }
.profile-vitals span { display:block;font:10px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.03em;color:#61594f; }
.profile-vitals strong { display:block;font:28px/1.5 var(--font-display); }
.testing-details { border-top:1px solid var(--color-border);margin-top:20px;padding-top:18px; }
.social-links { display:flex;flex-wrap:wrap;gap:10px;margin-top:18px; }
.social-link { display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid #c4bab0;color:#4e443c;text-decoration:none;font-size:12px;line-height:1.5; }
.social-link>span:first-child { font-weight:700;color:#17130f; }
.social-link>span:last-child { margin-left:auto; }
.social-link:hover { border-color:#b52131;color:#a51e2b; }
.social-link:focus-visible { outline:2px solid #b52131;outline-offset:3px; }
.social-x { border-color:#9d8d80; }
@media(max-width:400px) { .social-link { width:100%; } }
summary { cursor:pointer;font-size:13px;font-weight:600;padding-block:8px; }
.testing-details dl { margin-top:10px; }
.testing-details .attr-row { padding:10px 0; }
.testing-details .attr-value { font-size:14px; }
.testing-details .attr-label { font-size:13px; }
.film-section { background:#e9e5df;padding-block:64px; }
.film-layout { display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:60px; }
.film-intro { margin-top:20px;color:#62584e;font-size:16px; }
.film-status { display:inline-block;margin-top:24px;border:1px solid #c3bab0;padding:10px 14px;color:#5d5349;font:12px/1.6 var(--font-mono); }
.film-preview { position:relative;height:270px;background:#15120f;overflow:hidden; }
.film-preview img { width:100%;height:100%;object-fit:cover;object-position:50% 35%;opacity:.65; }
.film-preview:after { content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.8),transparent); }
.film-preview-label { position:absolute;bottom:24px;left:26px;z-index:1;color:#fff; }
.film-preview-label span { font:11px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.12em; }
.film-preview-label strong { display:block;font:34px/1.3 var(--font-display);text-transform:uppercase; }
.gallery-hint { color:#bdb4ab;font-size:13px; }
.lane-gallery { display:grid;grid-template-columns:repeat(4,1fr);gap:28px 16px;margin-top:40px; }
.gallery-photo { min-width:0; }
.photo-button { position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:#272321; }
.photo-button img { width:100%;height:100%;object-fit:cover; }
.photo-button:hover img { filter:brightness(1.13); }
.photo-enlarge { position:absolute;bottom:10px;right:10px;color:white;background:#171412d9;width:30px;height:30px;font-size:19px;line-height:30px; }
.gallery-photo figcaption { margin-top:9px;color:#c9c0b6;font:11px/1.7 var(--font-mono); }
.lane-gallery.is-collapsed .gallery-extra { display:none; }
.gallery-more { display:none;margin:32px auto 0; }
.is-collapsed+.gallery-more,.is-expanded+.gallery-more { display:flex; }
.press-section { background:#f5f4f2; }
.press-grid { display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:36px; }
.press-item { border-top:3px solid #b52131;padding-top:23px; }
.press-meta { font:11px/1.7 var(--font-mono);text-transform:uppercase;color:#645c53; }
.press-item h3 { margin-top:16px;font:30px/1.22 var(--font-display);text-transform:uppercase; }
.press-item h3 a { color:inherit;text-decoration:none; }
.press-item h3 a:hover { color:var(--color-primary); }
.press-item h3 span { color:var(--color-primary);font-family:var(--font-body);font-size:23px; }
.press-item>p:not(.press-meta) { margin-top:18px;font-size:15px;color:#62594f; }
.press-item .press-byline { font-size:11px!important;line-height:1.7; }
.press-item>.text-link { margin-top:12px; }
.source-url { margin-top:8px;color:#766b61; }
.source-url summary { font-size:11px;font-weight:400; }
.source-url p { font-size:11px;overflow-wrap:anywhere; }
.contact-section { background:#e9e5df;border-top:1px solid #d3cac1;color:#17130f; }
.contact-section .section-title { color:#17130f; }
.contact-section .eyebrow { color:var(--color-primary); }
.contact-layout { display:grid;grid-template-columns:1.15fr 1fr;gap:100px; }
.contact-intro { font-size:16px;line-height:1.8;margin-top:22px;color:#62594f; }
.contact-player { margin-top:32px;font:23px/1.5 var(--font-display);text-transform:uppercase; }
.contact-player span { display:block;font:11px/1.8 var(--font-mono);color:#6f6257; }
.coach-card { background:#f9f7f4;padding:32px;border-top:3px solid #b52131; }
.coach-role { font:11px/1.6 var(--font-mono);text-transform:uppercase;color:#685e54; }
.coach-card h3 { font:34px/1.2 var(--font-display);text-transform:uppercase;margin-top:10px; }
.coach-card>p:not(.coach-role) { font-size:13px;color:#6a5d52;margin-top:12px; }
.coach-email { margin-top:26px; }
.email-address { display:block;font-size:12px;margin-top:14px;color:#6a5d52;overflow-wrap:anywhere; }
.site-footer { background:#100e0d;color:#c9bfb5;padding:28px 0; }
.footer-inner { max-width:1280px;padding:0 40px;margin:auto;display:flex;justify-content:space-between;gap:20px; }
.footer-inner p,.footer-inner a { font:11px/1.8 var(--font-mono);color:inherit; }
body.photo-open { overflow:hidden; }
#photoDialog { width: min(100% - 24px,1100px);max-width:none;height:min(94dvh,1000px);max-height:94dvh;background:#151312;color:#fff;border:1px solid #554b43;margin:auto;padding:16px 20px; }
#photoDialog::backdrop { background:#000e; }
#photoDialog[open] { display:flex;flex-direction:column; }
.lightbox-toolbar,.lightbox-bottom { display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0; }
.lightbox-toolbar p,.lightbox-bottom p { font:12px/1.5 var(--font-mono); }
.lightbox-toolbar button,.lightbox-bottom button { min-width:44px;min-height:44px;color:#fff; }
.lightbox-bottom button { font-size:26px; }
#photoFull { width:100%;height:0;min-height:0;flex:1;object-fit:contain;margin:12px 0; }
.image-unavailable { min-height:150px;background:#514b45; }
@media(min-width:1600px) { .hero-media { left:43%; } }
@media(max-width:1100px) { .main-nav { gap:16px; }.profile-grid { gap:40px; }.contact-layout { gap:50px; } }
@media(max-width:1000px) {
  .main-nav { display:none;position:absolute;inset:100% 0 auto;background:#100e0d;transform:none;padding:20px 28px 28px;gap:0;align-items:stretch; }
  .main-nav.is-open { display:flex;flex-direction:column; }
  .main-nav a { font-size:16px;padding:13px 0;border-bottom:1px solid #3b332d; }
  .nav-toggle { display:flex;align-items:center;gap:12px;font-size:12px;min-height:44px; }
  .header-cta { display:none; }
  .hero-name { font-size:100px; }
  .hero-media { left:28%; }
  .hero-scrim { background:linear-gradient(90deg,#100e0d 0%,rgba(16,14,13,.9) 22%,rgba(16,14,13,.2) 80%),linear-gradient(0deg,rgba(16,14,13,.8),transparent 65%); }
  .season-stat { padding-left:20px; }
  .lane-gallery { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:700px) {
  html { scroll-padding-top:72px; }
  .container--wide { padding-inline:22px; }
  .header-inner { padding:10px 22px;height:70px; }
  .brand-text { font-size:18px; }.brand-text small { font-size:9px; }.jersey-mark { font-size:37px; }
  .review-strip { font-size:10px;line-height:28px; }.review-strip span { margin-inline:5px; }
  .lane-hero { height:760px;min-height:0;max-height:none;align-items:flex-end; }
  .hero-media { left:0;bottom:100px; }
  .hero-media img { object-position:58% 0; }
  .hero-scrim { background:linear-gradient(0deg,#100e0d 0%,rgba(16,14,13,.95) 15%,rgba(16,14,13,.65) 45%,rgba(16,14,13,.04) 83%); }
  .hero-content { padding:0 22px 34px; }
  .hero-school { font-size:10px;letter-spacing:.09em;margin-bottom:16px; }
  .hero-identity { gap:12px;margin-bottom:10px; }.hero-jersey { font-size:50px; }.hero-position { font-size:10px; }
  .hero-name { font-size:86px; }.hero-location { font-size:13px;margin-top:16px; }
  .hero-meta { flex-direction:row;gap:10px;font-size:12px;margin-top:9px; }.hero-meta .divider { display:block; }
  .hero-actions { margin-top:22px;gap:10px; }.hero-actions .btn { padding:12px 14px;font-size:11px; }
  .hero-season { display:none; }
  section { padding-block:56px; }
  .section-heading-row { align-items:start;flex-direction:column;gap:10px; }
  .section-title { font-size:40px; }.eyebrow { font-size:10px;letter-spacing:.1em; }
  .season-section { padding-block:40px 32px; }
  .season-stats { grid-template-columns:1fr 1fr;gap:28px 0;margin-top:25px; }
  .season-stat { padding-left:20px; }.season-stat:nth-child(3) { border:0;padding:0; }
  .season-stat strong { font-size:49px; }.season-stat span { font-size:9px;letter-spacing:0; }
  .stats-details { display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-top:26px;padding-block:20px; }
  .stats-details div { justify-content:space-between;gap:7px;font-size:11px; }
  .rank-line { gap:15px;align-items:start; }.rank-value { font-size:43px; }.rank-line strong { font-size:13px; }.rank-line p { font-size:11px; }
  .source-note { font-size:11px!important; }
  .profile-grid { grid-template-columns:1fr;gap:32px; }.profile-portrait img { aspect-ratio:4/4.3;object-position:center 20%; }
  .bio-copy p { font-size:15px; }.bio-copy .eyebrow { font-size:10px; }.profile-vitals span { font-size:9px; }.profile-vitals strong { font-size:25px; }
  .film-layout { grid-template-columns:1fr;gap:28px; }.film-preview { height:230px; }.film-intro { font-size:15px; }
  .lane-gallery { grid-template-columns:1fr 1fr;gap:22px 12px;margin-top:25px; }.gallery-photo figcaption { font-size:9px; }.gallery-hint { font-size:12px; }
  .press-grid { grid-template-columns:1fr;gap:34px;margin-top:28px; }.press-item h3 { font-size:27px; }.press-item>p:not(.press-meta) { font-size:14px; }
  .contact-layout { grid-template-columns:1fr;gap:28px; }.contact-intro { font-size:15px; }.contact-player { margin-top:23px; }.coach-card { padding:25px; }
  .footer-inner { padding:0 22px;flex-direction:column;gap:10px; }
  #photoDialog { padding:8px 12px;width:calc(100% - 12px); }.lightbox-bottom p { font-size:10px;text-align:center; }
}
@media(max-width:350px) { .hero-name { font-size:76px; }.hero-actions { flex-direction:column;align-items:start; }.lane-hero { height:805px; }.review-strip { font-size:9px; } }

/* Family photo revision and official Hudl players. */
.portrait-pair { display:grid;grid-template-columns:1.15fr .85fr;gap:12px;align-items:start; }
.profile-diptych .portrait-full { width:100%;height:540px;aspect-ratio:auto;object-fit:cover;object-position:50% 50%; }
.profile-diptych .portrait-detail { width:100%;height:400px;aspect-ratio:auto;object-fit:cover;object-position:50% 45%;margin-top:70px; }
.profile-diptych figcaption { margin-top:14px; }
.reel-grid { display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:30px; }
.reel-card { min-width:0;background:#f8f6f3; }
.reel-player { position:relative;aspect-ratio:16/9;background:#100e0d; }
.reel-player iframe { position:absolute;inset:0;width:100%;height:100%;border:0; }
.reel-player [hidden] { display:none!important; }
.reel-preview-fallback { position:absolute;inset:0; }
.reel-preview-fallback img { width:100%;height:100%;object-fit:cover;opacity:.7; }
.reel-preview-fallback span { position:absolute;bottom:16px;left:18px;color:#fff;font:12px/1.6 var(--font-mono);background:#100e0dcf;padding:5px 9px; }
.reel-info { padding:20px 22px; }
.reel-meta { font:11px/1.7 var(--font-mono);text-transform:uppercase;color:#665b51; }
.reel-info h3 { font:25px/1.25 var(--font-display);text-transform:uppercase;margin:8px 0; }
.film-help { color:#62584e;margin-top:20px; }
.teammate-section { padding-block:72px;background:#14110f;color:#f8f6f3;border-bottom:1px solid #443a33; }
.teammate-layout { display:grid;grid-template-columns:1fr 1.24fr 1fr;gap:22px;align-items:center;max-width:1280px; }
.teammate-photo { width:100%;max-width:none; }
.teammate-photo img { width:100%;height:auto; }
.feature-side img { width:100%;height:auto;display:block; }
.feature-side { min-width:0; }
@media(max-width:1000px) {
  .portrait-pair { gap:9px; }
  .profile-diptych .portrait-full { height:450px; }
  .profile-diptych .portrait-detail { height:330px;margin-top:60px; }
}
@media(max-width:700px) {
  .portrait-pair { gap:10px;grid-template-columns:1.15fr .85fr; }
  .profile-diptych .portrait-full { height:380px;object-position:50% 50%; }
  .profile-diptych .portrait-detail { height:280px;margin-top:50px; }
  .profile-diptych figcaption { margin-top:12px;font-size:10px; }
  .reel-grid { grid-template-columns:1fr;gap:22px;margin-top:24px; }
  .reel-info { padding:17px 18px; }
  .reel-info h3 { font-size:24px; }
  .teammate-section { padding-block:48px; }
  .teammate-photo { max-width:100%; }
  .teammate-layout { grid-template-columns:1fr 1fr;gap:16px; }
  .feature-main { grid-column:1/-1;grid-row:1;width:88%;justify-self:center; }
  .feature-left { grid-column:1;grid-row:2; }
  .feature-right { grid-column:2;grid-row:2; }
}
@media(max-width:350px) {
  .profile-diptych .portrait-full { height:330px; }
  .profile-diptych .portrait-detail { height:250px;margin-top:40px; }
}
