/* ISP motion direction — confident, athletic, cinematic, reduced-motion aware */
:root { --isp-ease: cubic-bezier(.22,.75,.2,1); }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { overflow-x:clip; }
header { transition: background .35s ease, border-color .35s ease; }
.nav { transition:min-height .35s var(--isp-ease); }
.brand img { transition:transform .5s var(--isp-ease), filter .5s ease; }
.brand:hover img { transform:scale(1.035); }
.links a { position:relative; transition:color .25s ease; }
.links a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:2px; background:var(--red); transition:right .3s var(--isp-ease); }
.links a:hover::after, .links a:focus-visible::after { right:0; }
.btn { position:relative; overflow:hidden; isolation:isolate; transition:transform .3s var(--isp-ease), background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.btn::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(110deg,transparent 20%,#ffffff22 48%,transparent 75%); transform:translateX(-130%); transition:transform .7s var(--isp-ease); }
.btn:hover { transform:translateY(-3px); box-shadow:0 12px 30px #0005; }
.btn:hover::before { transform:translateX(130%); }
.home-hero, .hero { position:relative; }
.home-copy, .hero-copy { animation:ispHeroEnter .9s var(--isp-ease) both; }
.home-art, .hero-media { animation:ispHeroMedia 1.15s .08s var(--isp-ease) both; }
.hero-media img { transition:transform 1.2s var(--isp-ease), filter .7s ease; }
.hero-media:hover img { transform:scale(1.025); }
.home-art::after, .hero-media::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(115deg,transparent 20%,#ffffff09 48%,transparent 72%); transform:translateX(-100%); animation:ispLightSweep 1.4s .45s var(--isp-ease) both; }
.section-head h2, h1, .home-copy h1 { text-wrap:balance; }
.section, .program, .isp-card, .home-rail>a, .facts, .form-panel, .gallery-note, .isp-gal button, .training-track, .program-row {
  transition: transform .45s var(--isp-ease), border-color .35s ease, background-color .35s ease, box-shadow .35s ease;
}
.program:hover, .isp-card:hover { transform:translateY(-5px); border-top-color:#f14b59; box-shadow:0 18px 40px #0002; }
.isp-gal button { transform:translateZ(0); }
.isp-gal button:hover { z-index:2; box-shadow:0 16px 35px #0008; }
.isp-gal img { transition:transform .65s var(--isp-ease), filter .4s ease; }
.isp-gal button:hover img { transform:scale(1.045); filter:brightness(1.08); }
.isp-tab { transition:color .25s ease, background .25s ease, border-color .25s ease, transform .25s var(--isp-ease); }
.isp-tab:hover { transform:translateY(-2px); }
.isp-slot { transition:background .25s ease, border-color .25s ease, transform .25s var(--isp-ease); }
.isp-slot:hover { transform:translateY(-2px); }
[data-isp-reveal] { opacity:0; transform:translate3d(0,28px,0); transition:opacity .75s var(--isp-ease), transform .75s var(--isp-ease); transition-delay:var(--isp-delay,0ms); }
[data-isp-reveal="left"] { transform:translate3d(-32px,0,0); }
[data-isp-reveal="right"] { transform:translate3d(32px,0,0); }
[data-isp-reveal="scale"] { transform:scale(.965); }
[data-isp-reveal].isp-in { opacity:1; transform:none; }
.isp-motion-line { transform-origin:left; animation:ispLineGrow .8s .25s var(--isp-ease) both; }
footer a { transition:color .25s ease; }
footer a:hover { color:#fff; }
@keyframes ispHeroEnter { from { opacity:0; transform:translate3d(0,24px,0); } to { opacity:1; transform:translate3d(0,0,0); } }
@keyframes ispHeroMedia { from { opacity:0; clip-path:inset(0 0 0 8%); } to { opacity:1; clip-path:inset(0); } }
@keyframes ispLightSweep { 0% { transform:translateX(-100%); } 100% { transform:translateX(100%); } }
@keyframes ispLineGrow { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(max-width:700px) {
  [data-isp-reveal] { transform:translate3d(0,18px,0); }
  [data-isp-reveal="left"], [data-isp-reveal="right"] { transform:translate3d(0,18px,0); }
  .hero-media:hover img { transform:none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
  [data-isp-reveal] { opacity:1; transform:none; }
}

/* ===== Built by D5 badge ===== */
.d5-badge{display:inline-flex;align-items:center;gap:12px;color:#9a9ea9;font-size:10px;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.d5-label{position:relative;padding-right:14px}
.d5-label::after{content:"";position:absolute;right:0;top:50%;width:1px;height:14px;background:#ffffff2a;transform:translateY(-50%)}
.d5-mark{position:relative;display:block;width:96px;aspect-ratio:900/265;filter:drop-shadow(0 0 0 #a3ff0000);animation:d5Glow 3.6s 1.2s ease-in-out infinite}
.d5-mark img{display:block;width:100%;height:100%;object-fit:contain}
.d5-mark::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,#ffffffcc 50%,transparent 65%) -160% 0/60% 100% no-repeat;-webkit-mask:url(d5-logo.png) center/contain no-repeat;mask:url(d5-logo.png) center/contain no-repeat;mix-blend-mode:overlay;animation:d5Sweep 4.2s 1.6s var(--isp-ease) infinite}
.d5-badge:hover .d5-mark{transform:translateX(3px) scale(1.06);transition:transform .45s var(--isp-ease)}
.d5-badge{transition:color .3s ease}
.d5-badge:hover{color:#fff}
[data-isp-reveal].d5-badge .d5-mark img,.d5-badge.isp-in .d5-mark img{animation:d5Wipe 1s .15s var(--isp-ease) both}
@keyframes d5Wipe{from{clip-path:inset(0 100% 0 0);transform:translateX(-10px)}to{clip-path:inset(0);transform:none}}
@keyframes d5Sweep{0%{background-position:-160% 0}55%,100%{background-position:260% 0}}
@keyframes d5Glow{0%,100%{filter:drop-shadow(0 0 0 #a3ff0000)}50%{filter:drop-shadow(0 0 9px #a3ff0055)}}

/* ===== Elite extras: scroll progress, condensed header, hero text rise ===== */
.isp-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;background:linear-gradient(90deg,var(--red),#ff5a66 60%,#a3ff00);transform:scaleX(0);transform-origin:left;pointer-events:none;will-change:transform}
header.isp-scrolled{background:#08090cf2;border-bottom-color:#ffffff1f;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
header.isp-scrolled .nav{min-height:64px}
header.isp-scrolled .brand img{transform:scale(.88)}
.home-copy h1,.hero-copy h1{overflow:hidden}
.hero-media img{will-change:transform}
@media(max-width:700px){.d5-mark{width:84px}.d5-badge{gap:10px}}
@media(prefers-reduced-motion:reduce){.d5-mark,.d5-mark::after{animation:none!important}.isp-progress{display:none}}

.d5-badge.d5-ready:not(.isp-in) .d5-mark img{clip-path:inset(0 100% 0 0)}

/* Logo wrapper is layout-transparent so every logo sizes exactly as the original <img> did */
picture{display:contents}
/* Home hero: logo stays fixed and centered; only the background streaks move behind it */
.home-art .isp-lines{z-index:0}
.home-logo{z-index:2}
.home-logo img{transform:none!important;transition:none}

/* Even, comfortable card padding on every screen size (text no longer touches borders) */
.home-rail>a{padding:24px 20px!important;min-height:125px}
.home-rail>a:hover{padding-left:24px!important;background:#11141b}
.home-rail>a span,.arrow-link span,.btn{font-variant-emoji:text}
@media(max-width:700px){.home-rail>a{padding:22px 18px!important}}
