*{box-sizing:border-box}
:root{
  --ink:#061116;
  --paper:#f3efe6;
  --paper2:#fffaf0;
  --blue:#00d9ff;
  --deep:#062430;
  --pink:#ff6fae;
  --sand:#f7d9a8;
  --muted:#6b7f87;
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
}
a{color:inherit;text-decoration:none}
.mag-top{
  background:#fffaf0;
  border-bottom:4px solid var(--ink);
  position:sticky;
  top:0;
  z-index:50;
}
.utility-bar{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:8px 4vw;
  background:var(--ink);
  color:#d9f8ff;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1.4px;
}
.utility-bar a{color:var(--blue)}
.masthead{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:22px 4vw 18px;
  text-align:center;
}
.mark{
  width:74px;
  height:74px;
  display:grid;
  place-items:center;
  border:4px solid var(--ink);
  background:var(--blue);
  color:var(--ink);
  font-weight:1000;
  font-size:24px;
  box-shadow:8px 8px 0 var(--ink);
}
.title-lockup{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.title-lockup .kicker{
  text-transform:uppercase;
  letter-spacing:4px;
  font-size:12px;
  font-weight:900;
}
.title-lockup strong{
  font-family:Georgia,Times,serif;
  font-size:clamp(38px,7vw,96px);
  line-height:.86;
  text-transform:uppercase;
  letter-spacing:-4px;
}
.title-lockup em{
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:12px;
  font-weight:900;
  color:#37525c;
  margin-top:8px;
}
.mag-nav{
  display:flex;
  justify-content:center;
  gap:0;
  border-top:1px solid var(--ink);
  overflow:auto;
}
.mag-nav a{
  padding:12px 18px;
  border-right:1px solid var(--ink);
  text-transform:uppercase;
  font-size:12px;
  font-weight:900;
  letter-spacing:1px;
  white-space:nowrap;
}
.mag-nav a:hover{background:var(--blue)}
.cover{
  min-height:78vh;
  display:grid;
  grid-template-columns:1.1fr 1fr 320px;
  border-bottom:4px solid var(--ink);
  background:var(--paper2);
}
.cover-photo{
  background:
    linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.75)),
    radial-gradient(circle at 65% 25%,rgba(255,255,255,.7),transparent 12%),
    linear-gradient(135deg,#00d9ff 0%,#007c92 38%,#031922 100%);
  background-size:cover;
  background-position:center;
  min-height:650px;
  border-right:4px solid var(--ink);
  position:relative;
}
.cover-photo:after{
  content:"KITE SURF";
  position:absolute;
  left:28px;
  bottom:26px;
  color:#fff;
  font-size:clamp(38px,5vw,72px);
  font-weight:1000;
  letter-spacing:-3px;
  text-transform:uppercase;
}
.cover-copy{
  padding:54px 4vw;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.issue-line{
  display:inline-block;
  width:max-content;
  background:var(--pink);
  color:#fff;
  padding:8px 12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:1px;
  box-shadow:5px 5px 0 var(--ink);
  margin-bottom:24px;
}
.cover h1{
  font-size:clamp(44px,6vw,92px);
  line-height:.88;
  letter-spacing:-4px;
  text-transform:uppercase;
  margin:0 0 22px;
}
.cover p{
  font-size:21px;
  line-height:1.45;
  color:#304850;
}
.cover-link{
  display:inline-block;
  margin-top:28px;
  padding:15px 18px;
  border:3px solid var(--ink);
  background:var(--blue);
  font-weight:1000;
  text-transform:uppercase;
  box-shadow:6px 6px 0 var(--ink);
}
.cover-lines{
  border-left:4px solid var(--ink);
  display:flex;
  flex-direction:column;
  background:#fff;
}
.cover-lines div{
  padding:28px;
  border-bottom:4px solid var(--ink);
  min-height:33.333%;
}
.cover-lines strong{
  display:block;
  font-size:30px;
  text-transform:uppercase;
  letter-spacing:-1px;
  margin-bottom:8px;
}
.cover-lines span{
  color:#526a72;
  line-height:1.45;
}
.mag-strip{
  display:flex;
  overflow:auto;
  gap:0;
  background:var(--ink);
  color:#fff;
  border-bottom:4px solid var(--ink);
}
.mag-strip span{
  padding:13px 28px;
  border-right:1px solid rgba(255,255,255,.2);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.section{
  padding:70px 4vw;
}
.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  border-bottom:4px solid var(--ink);
  padding-bottom:18px;
  margin-bottom:28px;
}
.section-head span,
.story-copy span,
.spread-copy span,
.bermuda-inner span,
.article-label{
  display:inline-block;
  background:var(--ink);
  color:#fff;
  padding:7px 10px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-weight:1000;
  font-size:12px;
}
.section-head h2{
  margin:0;
  font-size:clamp(34px,5vw,70px);
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-3px;
  text-align:right;
}
.feature-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr 1fr;
  gap:18px;
}
.story{
  background:#fffaf0;
  border:3px solid var(--ink);
  box-shadow:7px 7px 0 var(--ink);
}
.story.large{
  grid-row:span 2;
}
.story-img{
  min-height:220px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.68)),
    linear-gradient(135deg,#00d9ff,#062430);
  background-size:cover;
  background-position:center;
  border-bottom:3px solid var(--ink);
}
.story.large .story-img{min-height:430px}
.story-copy{padding:20px}
.story-copy h3{
  font-size:28px;
  line-height:.98;
  text-transform:uppercase;
  letter-spacing:-1px;
  margin:14px 0 10px;
}
.story.large h3{font-size:42px}
.story-copy p{
  color:#4f666e;
  line-height:1.5;
}
.departments{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  padding-top:10px;
}
.dept-card{
  min-height:260px;
  padding:28px;
  border:3px solid var(--ink);
  box-shadow:7px 7px 0 var(--ink);
}
.dept-card span{
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:12px;
  font-weight:1000;
}
.dept-card h3{
  font-size:42px;
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-2px;
  margin:18px 0;
}
.dept-card p{line-height:1.5}
.wind{background:var(--blue)}
.gear{background:var(--sand)}
.culture{background:#ffd0e2}
.spread{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  min-height:620px;
  border-top:4px solid var(--ink);
  border-bottom:4px solid var(--ink);
}
.spread-copy{
  padding:70px 4vw;
  background:var(--ink);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.spread-copy span{background:var(--blue);color:var(--ink)}
.spread-copy h2{
  font-size:clamp(42px,6vw,88px);
  line-height:.88;
  letter-spacing:-4px;
  text-transform:uppercase;
  margin:20px 0;
}
.spread-copy p{
  color:#c9e8f0;
  font-size:20px;
  line-height:1.5;
}
.spread-copy a{
  width:max-content;
  margin-top:20px;
  background:var(--blue);
  color:var(--ink);
  padding:14px 18px;
  font-weight:1000;
  text-transform:uppercase;
}
.spread-image{
  background:
    radial-gradient(circle at 70% 25%,rgba(255,255,255,.65),transparent 11%),
    linear-gradient(135deg,#00d9ff,#056074 45%,#031922);
  position:relative;
}
.spread-image:before{
  content:"BIG AIR";
  position:absolute;
  right:30px;
  bottom:30px;
  color:#fff;
  font-size:clamp(48px,8vw,120px);
  font-weight:1000;
  line-height:.8;
  letter-spacing:-6px;
}
.bermuda-spread{
  min-height:640px;
  display:flex;
  align-items:center;
  padding:80px 4vw;
  border-bottom:4px solid var(--ink);
  background:
    linear-gradient(90deg,rgba(255,250,240,.96),rgba(255,250,240,.56),rgba(255,250,240,.12)),
    radial-gradient(circle at 78% 28%,rgba(255,255,255,.8),transparent 9%),
    linear-gradient(135deg,#00d9ff 0%,#00a7bd 35%,#ffb8d4 64%,#061116 100%);
}
.bermuda-inner{
  max-width:760px;
}
.bermuda-inner span{background:var(--pink)}
.bermuda-inner h2{
  font-size:clamp(44px,7vw,96px);
  line-height:.86;
  letter-spacing:-4px;
  text-transform:uppercase;
  margin:22px 0;
}
.bermuda-inner p{
  font-size:21px;
  line-height:1.5;
  color:#304850;
}
.bermuda-inner a{
  display:inline-block;
  margin-top:22px;
  padding:15px 18px;
  border:3px solid var(--ink);
  background:var(--blue);
  font-weight:1000;
  text-transform:uppercase;
  box-shadow:6px 6px 0 var(--ink);
}
.video-section{background:#fff}
.video-layout{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:22px;
}
.video-poster{
  min-height:430px;
  border:4px solid var(--ink);
  background:
    radial-gradient(circle at center,rgba(0,217,255,.22),transparent 34%),
    linear-gradient(135deg,#061116,#123744);
  color:#fff;
  display:grid;
  place-items:center;
  text-align:center;
  padding:34px;
  box-shadow:8px 8px 0 var(--ink);
}
.play{
  width:96px;
  height:96px;
  border-radius:50%;
  background:var(--blue);
  color:var(--ink);
  display:grid;
  place-items:center;
  font-size:38px;
  margin:auto;
  border:4px solid #fff;
}
.video-poster h3{
  font-size:46px;
  text-transform:uppercase;
  letter-spacing:-2px;
  margin:20px 0 8px;
}
.video-poster p{color:#c9e8f0;font-size:18px}
.video-notes{
  border:4px solid var(--ink);
  padding:28px;
  background:var(--sand);
  box-shadow:8px 8px 0 var(--ink);
}
.video-notes h3{
  margin-top:0;
  font-size:38px;
  line-height:.9;
  text-transform:uppercase;
}
.video-notes li{
  margin:13px 0;
  font-weight:800;
}
.vault-section{
  background:var(--ink);
  color:#fff;
}
.vault-section .section-head{
  border-bottom-color:#fff;
}
.vault-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:28px;
  align-items:center;
}
.vault-number{
  font-size:92px;
  font-weight:1000;
  color:var(--blue);
  border:4px solid var(--blue);
  text-align:center;
  padding:30px 10px;
}
.vault-layout h3{
  font-size:54px;
  line-height:.9;
  text-transform:uppercase;
  margin:0 0 14px;
}
.vault-layout p{
  font-size:21px;
  color:#c9e8f0;
  line-height:1.55;
}
.sponsor-section{background:#fffaf0}
.sponsor-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.sponsor-grid div{
  min-height:160px;
  border:3px solid var(--ink);
  box-shadow:7px 7px 0 var(--ink);
  padding:24px;
  background:#fff;
}
.sponsor-grid strong{
  display:block;
  font-size:24px;
  line-height:.95;
  text-transform:uppercase;
  margin-bottom:10px;
}
.sponsor-grid span{color:#526a72}
.newsletter{
  padding:70px 4vw;
  text-align:center;
  background:var(--blue);
  border-top:4px solid var(--ink);
}
.newsletter h2{
  font-size:clamp(36px,5vw,72px);
  line-height:.9;
  letter-spacing:-3px;
  text-transform:uppercase;
  margin:0 0 14px;
}
.newsletter p{font-size:19px}
.newsletter form{
  margin:28px auto 0;
  max-width:620px;
  display:flex;
  gap:10px;
}
.newsletter input{
  flex:1;
  padding:16px;
  border:3px solid var(--ink);
  background:#fff;
  font-size:16px;
}
.newsletter button{
  padding:16px 22px;
  border:3px solid var(--ink);
  background:var(--pink);
  color:#fff;
  font-weight:1000;
  text-transform:uppercase;
  box-shadow:5px 5px 0 var(--ink);
}
.mag-footer{
  padding:32px 4vw;
  display:flex;
  justify-content:space-between;
  gap:18px;
  background:var(--ink);
  color:#fff;
}
.article-wrap{
  padding:46px 4vw 80px;
  background:var(--paper);
}
.backlink{
  display:inline-block;
  margin-bottom:24px;
  font-weight:1000;
  text-transform:uppercase;
  color:var(--ink);
}
.article-sheet{
  max-width:1050px;
  margin:auto;
  background:#fffaf0;
  border:4px solid var(--ink);
  padding:clamp(24px,5vw,70px);
  box-shadow:10px 10px 0 var(--ink);
}
.article-sheet h1{
  font-size:clamp(44px,7vw,96px);
  line-height:.88;
  letter-spacing:-4px;
  text-transform:uppercase;
  margin:20px 0;
}
.byline{
  color:#526a72;
  text-transform:uppercase;
  letter-spacing:1px;
  font-weight:900;
  margin-bottom:28px;
}
.article-photo{
  width:100%;
  max-height:620px;
  object-fit:cover;
  border:4px solid var(--ink);
  margin:12px 0 28px;
}
.fallback-photo{
  height:520px;
  background:linear-gradient(135deg,#00d9ff,#062430);
}
.article-deck{
  font-size:26px;
  line-height:1.35;
  font-weight:900;
  border-top:4px solid var(--ink);
  border-bottom:4px solid var(--ink);
  padding:22px 0;
}
.article-copy{
  font-size:20px;
  line-height:1.85;
  color:#243a42;
}
.video-frame{
  margin:25px 0;
  aspect-ratio:16/9;
  background:#000;
  border:4px solid var(--ink);
}
.video-frame iframe{width:100%;height:100%;border:0}
@media(max-width:1100px){
  .cover{grid-template-columns:1fr}
  .cover-photo{border-right:0;border-bottom:4px solid var(--ink)}
  .cover-lines{border-left:0;display:grid;grid-template-columns:repeat(3,1fr)}
  .cover-lines div{border-right:4px solid var(--ink)}
  .feature-grid{grid-template-columns:1fr 1fr}
  .departments,.sponsor-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .utility-bar,.mag-footer{flex-direction:column}
  .masthead{align-items:center}
  .mark{width:58px;height:58px;box-shadow:5px 5px 0 var(--ink)}
  .title-lockup strong{letter-spacing:-2px}
  .cover-photo{min-height:420px}
  .cover-lines{grid-template-columns:1fr}
  .feature-grid,.departments,.spread,.video-layout,.vault-layout,.sponsor-grid{grid-template-columns:1fr}
  .section-head{display:block}
  .section-head h2{text-align:left;margin-top:14px}
  .newsletter form{flex-direction:column}
  .story.large .story-img{min-height:280px}
}

.ad-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  padding:28px 4vw;
  background:#fff;
  border-bottom:4px solid var(--ink);
}
.ad-box{
  min-height:150px;
  border:3px solid var(--ink);
  box-shadow:7px 7px 0 var(--ink);
  background:var(--sand);
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ad-box.dark{
  background:var(--ink);
  color:#fff;
}
.ad-box.pink{
  background:#ffd0e2;
}
.ad-box span{
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-weight:1000;
  font-size:12px;
}
.ad-box strong{
  display:block;
  font-size:32px;
  line-height:.92;
  text-transform:uppercase;
  letter-spacing:-1px;
  margin:10px 0;
}
.ad-box em{
  font-style:normal;
  color:#526a72;
}
.ad-box.dark em{
  color:#c9e8f0;
}

.submit-cta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  padding:60px 4vw;
  background:#fffaf0;
  border-top:4px solid var(--ink);
  border-bottom:4px solid var(--ink);
}
.submit-cta span{
  display:inline-block;
  background:var(--pink);
  color:#fff;
  padding:7px 10px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-weight:1000;
  font-size:12px;
}
.submit-cta h2{
  font-size:clamp(40px,6vw,82px);
  line-height:.88;
  text-transform:uppercase;
  letter-spacing:-4px;
  margin:18px 0 12px;
}
.submit-cta p{
  max-width:800px;
  font-size:20px;
  line-height:1.5;
  color:#304850;
}
.submit-cta a{
  flex:0 0 auto;
  padding:18px 22px;
  border:3px solid var(--ink);
  background:var(--blue);
  font-weight:1000;
  text-transform:uppercase;
  box-shadow:6px 6px 0 var(--ink);
}

@media(max-width:850px){
  .ad-row{
    grid-template-columns:1fr;
  }
  .submit-cta{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* FLT real kite image upgrades */
.cover-photo{
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.72)),
    url("assets/images/kite-action-hero.png") !important;
  background-size:cover !important;
  background-position:center center !important;
}

.rider-shot{
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.62)),
    url("assets/images/kite-action-hero.png") !important;
  background-size:cover !important;
  background-position:center center !important;
}

.bermuda-spread{
  background-image:
    linear-gradient(90deg,rgba(255,250,240,.96),rgba(255,250,240,.62),rgba(255,250,240,.12)),
    url("assets/images/kite-beach-prep.png") !important;
  background-size:cover !important;
  background-position:center center !important;
}

.video-poster{
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.78)),
    url("assets/images/kite-action-hero.png") !important;
  background-size:cover !important;
  background-position:center center !important;
}

.dept-card.gear{
  background-image:
    linear-gradient(180deg,rgba(247,217,168,.82),rgba(247,217,168,.9)),
    url("assets/images/kite-gear-dock.png") !important;
  background-size:cover !important;
  background-position:center center !important;
}

.gear-feature-photo{
  min-height:420px;
  border:4px solid var(--ink);
  box-shadow:8px 8px 0 var(--ink);
  background:
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.42)),
    url("assets/images/kite-gear-dock.png");
  background-size:cover;
  background-position:center center;
}

.video-channel-button{
  display:inline-block;
  margin-bottom:18px;
  padding:15px 18px;
  background:var(--blue);
  color:var(--ink);
  border:3px solid var(--ink);
  box-shadow:6px 6px 0 var(--ink);
  font-weight:1000;
  text-transform:uppercase;
}

/* Full public menu rebuild */
.mag-nav{
  display:flex !important;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:0;
  background:#fffaf0;
  border-top:1px solid var(--ink);
  border-bottom:4px solid var(--ink);
  overflow:visible;
}

.mag-nav a{
  display:block;
  padding:13px 18px;
  border-right:1px solid var(--ink);
  color:var(--ink);
  text-transform:uppercase;
  font-size:12px;
  font-weight:1000;
  letter-spacing:1px;
  white-space:nowrap;
}

.mag-nav a:hover{
  background:var(--blue);
}

@media(max-width:760px){
  .mag-nav{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
  }

  .mag-nav a{
    flex:0 0 auto;
  }
}

/* Homepage polish modules */
.home-polish-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  padding:28px 4vw;
  background:#fffaf0;
  border-bottom:4px solid var(--ink);
}

.home-polish-card{
  min-height:260px;
  border:3px solid var(--ink);
  box-shadow:7px 7px 0 var(--ink);
  padding:22px;
  color:var(--ink);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background-size:cover;
  background-position:center;
  position:relative;
  overflow:hidden;
}

.home-polish-card:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,250,240,.08),rgba(255,250,240,.9));
}

.home-polish-card span,
.home-polish-card strong,
.home-polish-card em{
  position:relative;
  z-index:1;
}

.home-polish-card span{
  display:inline-block;
  width:max-content;
  background:var(--ink);
  color:white;
  padding:7px 10px;
  text-transform:uppercase;
  letter-spacing:1.2px;
  font-size:11px;
  font-weight:1000;
  margin-bottom:12px;
}

.home-polish-card strong{
  display:block;
  font-size:34px;
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-2px;
  margin-bottom:8px;
}

.home-polish-card em{
  font-style:normal;
  color:#304850;
  line-height:1.4;
  font-weight:700;
}

.issue-card-home{
  background-image:url("assets/images/kite-action-hero.png");
}

.athlete-card-home{
  background-image:url("assets/images/kite-beach-prep.png");
}

.video-card-home{
  background-image:url("assets/images/kite-action-hero.png");
}

.sponsor-card-home{
  background-image:url("assets/images/kite-gear-dock.png");
}

@media(max-width:1100px){
  .home-polish-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:700px){
  .home-polish-grid{
    grid-template-columns:1fr;
  }
}

/* Section page repair and polish */
body{
  overflow-x:hidden;
}

.mag-top{
  z-index:1000;
}

.mag-nav{
  display:flex !important;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:0;
  background:#fffaf0;
  border-top:1px solid var(--ink);
  border-bottom:4px solid var(--ink);
  overflow:visible;
}

.mag-nav a{
  display:block;
  padding:13px 18px;
  border-right:1px solid var(--ink);
  color:var(--ink);
  text-transform:uppercase;
  font-size:12px;
  font-weight:1000;
  letter-spacing:1px;
  white-space:nowrap;
}

.mag-nav a:hover{
  background:var(--blue);
}

.page-hero,
.athlete-hero,
.sponsor-hero,
.submit-hero{
  border-top:0;
  position:relative;
}

.page-hero:after,
.athlete-hero:after,
.sponsor-hero:after,
.submit-hero:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:12px;
  background:repeating-linear-gradient(
    90deg,
    var(--ink) 0,
    var(--ink) 28px,
    var(--blue) 28px,
    var(--blue) 56px,
    var(--pink) 56px,
    var(--pink) 84px
  );
}

.card-grid,
.video-grid,
.athlete-grid,
.partner-grid{
  align-items:stretch;
}

.mag-card,
.video-card,
.athlete-card,
.partner-card,
.issue-card{
  transition:transform .15s ease, box-shadow .15s ease;
}

.mag-card:hover,
.video-card:hover,
.athlete-card:hover,
.partner-card:hover,
.issue-card:hover{
  transform:translate(-3px,-3px);
  box-shadow:10px 10px 0 var(--ink);
}

.detail-wrap,
.watch-wrap,
.profile-wrap,
.sponsor-profile-wrap,
.article-wrap{
  background:
    radial-gradient(circle at 15% 15%, rgba(0,217,255,.12), transparent 28%),
    radial-gradient(circle at 85% 20%, rgba(255,111,174,.14), transparent 30%),
    var(--paper);
}

.backlink{
  margin-bottom:26px;
  color:var(--ink);
}

.backlink:hover{
  background:var(--pink);
  color:#fff;
}

@media(max-width:760px){
  .mag-nav{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
  }

  .mag-nav a{
    flex:0 0 auto;
  }

  .masthead{
    padding-left:16px;
    padding-right:16px;
  }

  .title-lockup strong{
    font-size:clamp(34px,13vw,64px);
    letter-spacing:-2px;
  }
}

/* Strong section page polish */
.section-shell{
  max-width:1280px;
  margin:0 auto;
  padding:34px 4vw 70px;
}

.section-title-block{
  border:4px solid var(--ink);
  box-shadow:9px 9px 0 var(--ink);
  background:#fffaf0;
  padding:26px;
  margin-bottom:34px;
  position:relative;
  overflow:hidden;
}

.section-title-block:before{
  content:"FLT";
  position:absolute;
  right:12px;
  bottom:-22px;
  font-size:118px;
  font-weight:1000;
  letter-spacing:-8px;
  color:rgba(0,0,0,.055);
  line-height:1;
}

.section-title-block span{
  display:inline-block;
  background:var(--ink);
  color:#fff;
  padding:7px 10px;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:1.3px;
  margin-bottom:12px;
}

.section-title-block h1{
  margin:0;
  font-size:clamp(42px,8vw,96px);
  line-height:.86;
  text-transform:uppercase;
  letter-spacing:-5px;
}

.section-title-block p{
  max-width:760px;
  font-size:18px;
  line-height:1.45;
  font-weight:700;
  color:#304850;
  margin:16px 0 0;
}

.section-feature-row{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:24px;
  margin-bottom:36px;
}

.section-feature-card{
  min-height:330px;
  border:4px solid var(--ink);
  box-shadow:9px 9px 0 var(--ink);
  background-size:cover;
  background-position:center;
  padding:26px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  position:relative;
  overflow:hidden;
}

.section-feature-card:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,250,240,.1),rgba(255,250,240,.94));
}

.section-feature-card > *{
  position:relative;
  z-index:1;
}

.section-feature-card small{
  display:inline-block;
  width:max-content;
  background:var(--blue);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:7px 10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:10px;
}

.section-feature-card h2{
  margin:0;
  max-width:780px;
  font-size:clamp(32px,5vw,62px);
  line-height:.9;
  letter-spacing:-3px;
  text-transform:uppercase;
}

.section-side-card{
  border:4px solid var(--ink);
  box-shadow:9px 9px 0 var(--ink);
  background:#0b1d26;
  color:#fff;
  padding:24px;
}

.section-side-card h3{
  margin:0 0 12px;
  font-size:30px;
  line-height:1;
  text-transform:uppercase;
}

.section-side-card p{
  color:#bdebf4;
  font-weight:700;
  line-height:1.45;
}

.section-side-card a{
  display:inline-block;
  margin-top:12px;
  background:var(--pink);
  color:#fff;
  border:3px solid #fff;
  padding:12px 15px;
  text-transform:uppercase;
  font-size:12px;
  font-weight:1000;
}

.mag-list-polish{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.mag-list-polish > *,
.card-grid > *,
.video-grid > *,
.athlete-grid > *,
.partner-grid > *{
  min-height:100%;
}

.empty-state{
  border:4px dashed var(--ink);
  background:#fffaf0;
  padding:34px;
  text-align:center;
  font-weight:900;
  color:#304850;
}

.empty-state strong{
  display:block;
  font-size:34px;
  color:var(--ink);
  text-transform:uppercase;
  letter-spacing:-1px;
  margin-bottom:8px;
}

@media(max-width:1000px){
  .section-feature-row{
    grid-template-columns:1fr;
  }

  .mag-list-polish{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:700px){
  .section-shell{
    padding:22px 16px 56px;
  }

  .section-title-block{
    padding:20px;
    box-shadow:6px 6px 0 var(--ink);
  }

  .section-title-block h1{
    letter-spacing:-2px;
  }

  .section-feature-card,
  .section-side-card{
    box-shadow:6px 6px 0 var(--ink);
  }

  .mag-list-polish{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   FLT MAGAZINE MEDIA CLEANUP V1
   Canonical editorial geometry + mobile normalization
   ============================================================ */

.mag-card-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #071017;
}

.mag-card-media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover !important;
  object-position: var(--mag-focal, 50% 50%) !important;
}

.mag-card.large .mag-card-media {
  aspect-ratio: 16 / 8;
  max-height: 680px;
}

/* Athlete signing cards must never inherit the natural
   portrait height of the source photograph. */
.mag-signing-card > a {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #071017;
}

.mag-signing-card > a > img,
.mag-signing-card > a img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover !important;
  object-position: 50% 25% !important;
}

/* Event cards use an editorial landscape frame. */
.mag-event-card > a {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #071017;
}

.mag-event-card > a > img,
.mag-event-card > a img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover !important;
  object-position: 50% 50% !important;
}

/* Full article hero image. */
.mag-article-image {
  display: block;
  width: 100% !important;
  height: auto;
  max-height: 760px;
  aspect-ratio: 16 / 9;
  object-fit: cover !important;
  object-position: var(--mag-focal, 50% 50%) !important;
}

/* Prevent accidental content overflow from long media. */
.mag-card,
.mag-signing-card,
.mag-event-card,
.mag-article {
  min-width: 0;
}

@media (max-width: 850px) {
  /*
   * Magazine mobile pages use a controlled editorial crop.
   * No portrait source image is allowed to become a
   * full-screen-height card.
   */
  .mag-card-media,
  .mag-card.large .mag-card-media {
    aspect-ratio: 16 / 10 !important;
    max-height: none !important;
  }

  .mag-signing-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .mag-signing-card > a {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    max-height: 360px;
  }

  .mag-signing-card > a > img,
  .mag-signing-card > a img {
    object-position: 50% 23% !important;
  }

  .mag-event-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .mag-event-card > a {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    max-height: 340px;
  }

  .mag-article-image {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    max-height: none !important;
  }

  /*
   * Reserve breathing room for the site's mobile ticket CTA
   * so the final Magazine content cannot be hidden behind it.
   */
  body {
    padding-bottom: max(92px, env(safe-area-inset-bottom));
  }
}

@media (max-width: 560px) {
  .mag-card-media,
  .mag-card.large .mag-card-media,
  .mag-signing-card > a {
    aspect-ratio: 16 / 10 !important;
  }

  .mag-signing-card > a {
    max-height: 300px;
  }

  .mag-event-card > a {
    max-height: 280px;
  }
}

/* /FLT MAGAZINE MEDIA CLEANUP V1 */

/* ============================================================
   FLT MAGAZINE SIGNINGS MOBILE V1.2

   The signing section is an editorial announcement list,
   not a full-screen portrait gallery.
   ============================================================ */

@media (max-width: 850px) {

  .mag-signing-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  .mag-signing-card {
    display: grid !important;
    grid-template-columns: 150px minmax(0, 1fr) !important;
    align-items: stretch !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 160px !important;

    overflow: hidden !important;
  }

  /*
   * Critical correction:
   * do NOT allow athlete portrait width to determine height.
   */
  .mag-signing-card > a {
    display: block !important;

    width: 150px !important;
    height: 160px !important;
    min-width: 150px !important;
    min-height: 160px !important;
    max-width: 150px !important;
    max-height: 160px !important;

    aspect-ratio: auto !important;

    overflow: hidden !important;
    align-self: start !important;

    background: #071017 !important;
  }

  .mag-signing-card > a > img,
  .mag-signing-card > a img {
    display: block !important;

    width: 150px !important;
    height: 160px !important;

    min-width: 150px !important;
    min-height: 160px !important;

    max-width: 150px !important;
    max-height: 160px !important;

    object-fit: cover !important;
    object-position: 50% 22% !important;

    margin: 0 !important;
  }

  .mag-signing-card > div {
    min-width: 0 !important;
    padding: 14px 16px !important;
  }

  .mag-signing-card .eyebrow {
    margin: 0 0 5px !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
  }

  .mag-signing-card h3 {
    margin: 0 0 6px !important;
    font-size: clamp(20px, 5vw, 27px) !important;
    line-height: 1.02 !important;
  }

  .mag-signing-card .mag-signing-status {
    display: inline-block !important;
    margin: 0 0 6px !important;
  }

  .mag-signing-card > div > p:not(.eyebrow) {
    margin: 5px 0 8px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  .mag-signing-links {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px 12px !important;
  }

  .mag-signing-links a {
    font-size: 12px !important;
    white-space: nowrap !important;
  }
}


@media (max-width: 520px) {

  .mag-signing-grid {
    gap: 10px !important;
  }

  .mag-signing-card {
    grid-template-columns: 118px minmax(0, 1fr) !important;
    min-height: 145px !important;
  }

  .mag-signing-card > a {
    width: 118px !important;
    height: 145px !important;
    min-width: 118px !important;
    min-height: 145px !important;
    max-width: 118px !important;
    max-height: 145px !important;
  }

  .mag-signing-card > a > img,
  .mag-signing-card > a img {
    width: 118px !important;
    height: 145px !important;

    min-width: 118px !important;
    min-height: 145px !important;

    max-width: 118px !important;
    max-height: 145px !important;

    object-position: 50% 20% !important;
  }

  .mag-signing-card > div {
    padding: 11px 12px !important;
  }

  .mag-signing-card h3 {
    font-size: 20px !important;
  }

  .mag-signing-card > div > p:not(.eyebrow) {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }

  .mag-signing-links a {
    font-size: 11px !important;
  }
}

/* /FLT MAGAZINE SIGNINGS MOBILE V1.2 */

/* ============================================================
   FLT MAGAZINE IMAGE RESET V1.3.2
   No inferred media. Explicit canonical assignments only.
   ============================================================ */

.mag-card.no-media {
  display: block !important;
}

.mag-card.no-media .mag-card-body {
  width: 100% !important;
  max-width: none !important;
}

.mag-signing-card.no-media {
  display: block !important;
  grid-template-columns: minmax(0,1fr) !important;
}

.mag-signing-card.no-media > div {
  width: 100% !important;
}

.mag-event-card.no-media {
  display: block !important;
  grid-template-columns: minmax(0,1fr) !important;
}

.mag-event-card.no-media > div {
  width: 100% !important;
}

/*
 * Legacy Magazine visual reset.
 *
 * Old public Issues / Athletes / Sponsors / Videos surfaces
 * must not continue displaying the three legacy fallback
 * photographs while they are migrated to explicit slots.
 */
.page-hero,
.athlete-hero,
.sponsor-hero {
  background-image: none !important;
}

.section-feature-card,
.detail-img,
.mag-img,
.profile-photo,
.athlete-img,
.video-poster,
.fallback,
.thumb,
.issue-card-img {
  background-image: none !important;
}

/* /FLT MAGAZINE IMAGE RESET V1.3.2 */

/*
 * ============================================================
 * FLT_MAGAZINE_SIGNING_IMAGE_SCALE_V1
 *
 * Final presentation authority for Magazine athlete-signing
 * cards.
 *
 * Media assets remain full-resolution canonical originals.
 * This controls browser presentation only.
 * ============================================================
 */

/*
 * Desktop:
 * compact editorial portrait beside athlete copy.
 */
.mag-signing-grid .mag-signing-card:not(.no-media) {
  display: grid !important;
  grid-template-columns: 220px minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 0 !important;
  overflow: hidden !important;
}

.mag-signing-grid .mag-signing-card:not(.no-media) > a {
  display: block !important;
  width: 220px !important;
  min-width: 220px !important;
  max-width: 220px !important;
  height: 250px !important;
  min-height: 250px !important;
  max-height: 250px !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
  margin: 0 !important;
}

.mag-signing-grid .mag-signing-card:not(.no-media) > a > img,
.mag-signing-grid .mag-signing-card:not(.no-media) > a img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center top !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
}

.mag-signing-grid .mag-signing-card:not(.no-media) > div {
  min-width: 0 !important;
}

/*
 * Tablet / compact desktop.
 */
@media (max-width: 900px) {
  .mag-signing-grid .mag-signing-card:not(.no-media) {
    grid-template-columns: 150px minmax(0, 1fr) !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) > a {
    width: 150px !important;
    min-width: 150px !important;
    max-width: 150px !important;
    height: 175px !important;
    min-height: 175px !important;
    max-height: 175px !important;
  }
}

/*
 * Phone:
 * thumbnail-sized portrait. Never allow a full-width portrait
 * to dominate the signing announcement.
 */
@media (max-width: 600px) {
  .mag-signing-grid .mag-signing-card:not(.no-media) {
    grid-template-columns: 112px minmax(0, 1fr) !important;
    align-items: stretch !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) > a {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    height: 132px !important;
    min-height: 132px !important;
    max-height: 132px !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) > div {
    padding: 14px !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) h3 {
    margin-top: 2px !important;
    margin-bottom: 6px !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) .eyebrow {
    margin-bottom: 4px !important;
  }
}

/*
 * Very narrow phones.
 */
@media (max-width: 390px) {
  .mag-signing-grid .mag-signing-card:not(.no-media) {
    grid-template-columns: 100px minmax(0, 1fr) !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) > a {
    width: 100px !important;
    min-width: 100px !important;
    max-width: 100px !important;
    height: 120px !important;
    min-height: 120px !important;
    max-height: 120px !important;
  }

  .mag-signing-grid .mag-signing-card:not(.no-media) > div {
    padding: 12px !important;
  }
}

/*
 * Cards without assigned media remain text-only and do not
 * inherit the media-column geometry.
 */
.mag-signing-grid .mag-signing-card.no-media {
  display: block !important;
}

