@font-face{font-family:Druk;src:url(assets/druk.ttf) format('truetype');font-weight:700;font-display:swap}*{box-sizing:border-box}body{margin:0;background:linear-gradient(125deg,#fff1b9,#987621 32%,#f9dc8e 65%,#937220);padding:8px;color:#fff;font-family:Arial,sans-serif}.banner{min-height:600px;height:calc(100svh - 16px);max-height:850px;background:#050505;border-radius:22px;position:relative;overflow:hidden;display:grid;grid-template-columns:48% 52%;align-items:center;padding:6%;isolation:isolate}.copy{z-index:3}.presenter{display:flex;align-items:center;gap:20px;margin-bottom:34px}.presenter img{width:95px;filter:invert(1)}.presenter span{font-size:12px;letter-spacing:6px;color:#e9ce8c}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#e6d29e;margin-bottom:16px}h1{font:700 clamp(23px,2.9vw,54px)/1.07 Druk,sans-serif;letter-spacing:-.045em;margin:0;color:#f6da8c}h1 span{color:#f6f3ec;font-size:.73em}.description{max-width:460px;font-size:14px;line-height:1.6;color:#bbb;margin:22px 0 26px}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions a{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:14px 16px;background:#f5d989;color:#111;font:700 10px Druk,sans-serif;text-decoration:none;border:1px solid #f5d989;transition:background .2s,transform .2s}.actions a:last-child{background:transparent;color:#f5d989}.actions a:hover{transform:translateY(-3px);background:#fff0bf;color:#111}.jerseys{position:relative;height:100%;min-height:440px;perspective:1000px}.halo{position:absolute;inset:17% 0 13%;border:1px solid #b18b3945;border-radius:50%;background:radial-gradient(ellipse,#b48a2c20,transparent 65%);box-shadow:0 0 80px #aa80220b}.jersey{position:absolute;display:block;text-decoration:none;color:#d6c28e;width:59%;height:86%;top:6%;transition:transform .7s cubic-bezier(.2,.7,.2,1);transform:rotate(var(--angle)) rotateY(var(--ry,0deg)) rotateX(var(--rx,0deg))}.jersey img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 15px 25px #0009)}.kobe{left:-2%;z-index:2;--angle:-8deg}.ohtani{right:-10%;top:2%;width:80%;--angle:8deg}.jersey span{position:absolute;bottom:0;left:18%;font-size:9px;letter-spacing:1.5px;white-space:nowrap}.jersey b{color:#fff;margin-left:6px}.ohtani span{left:40%;bottom:2%}.jersey:hover{z-index:4;--angle:0deg}.edition{position:absolute;bottom:23px;left:6%;font-size:8px;letter-spacing:2px;color:#7b7567}a:focus-visible{outline:2px solid white;outline-offset:5px}@media(max-width:700px){body{padding:5px}.banner{height:auto;min-height:calc(100svh - 10px);max-height:none;border-radius:16px;padding:28px 7% 42px;display:flex;flex-direction:column}.copy{width:100%}.presenter{margin-bottom:22px;justify-content:center}.eyebrow{text-align:center;font-size:8px;letter-spacing:1.5px}h1{text-align:center;font-size:7vw}.description{text-align:center;font-size:12px;margin:16px auto}.actions{justify-content:center}.actions a{font-size:8px;padding:12px;gap:12px}.jerseys{width:100%;height:330px;min-height:0;margin-top:15px}.jersey span{font-size:7px;letter-spacing:.5px}.edition{bottom:16px;width:100%;left:0;text-align:center;font-size:6px}}@media(prefers-reduced-motion:reduce){.jersey,.actions a{transition:none}}
.grain{position:absolute;inset:0;pointer-events:none;z-index:-1}

.banner-video,.video-shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}
.banner-video{object-fit:cover;opacity:.7}.video-shade{background:linear-gradient(90deg,#000c,#0004)}
h1,h1 span,.presenter span,.eyebrow,.description{color:#f8b600}
.actions a{background:#f8b600;border-color:#f8b600}.actions a:last-child{color:#f8b600;border-color:#f8b600}
@media(prefers-reduced-motion:reduce){.banner-video{display:none}}

h1.grails-title{color:#fff;font-size:clamp(28px,3.5vw,64px)}
h1.grails-title span{font-size:inherit;color:inherit}
h1.grails-title .la{color:#f8b600}
.player-names{font:700 clamp(9px,1vw,17px)/1.4 Druk,Arial,sans-serif;color:#fff;margin:22px 0 30px;letter-spacing:-.02em}
@media(max-width:700px){h1.grails-title{font-size:8vw}.player-names{text-align:center;font-size:2.65vw;margin:18px 0 24px}}
.jersey{transition:none;transform-style:preserve-3d;will-change:transform}
@media(prefers-reduced-motion:reduce){.jersey{will-change:auto}}

@media(min-width:701px){
 .banner{padding:5%;grid-template-columns:51% 49%}
 .presenter{margin-bottom:14px;gap:16px}
 .presenter img{width:110px}
 h1.grails-title{font-size:clamp(40px,4.8vw,98px);line-height:1.02}
 .player-names{font-size:clamp(11px,1.22vw,23px);margin:22px 0 28px}
 .actions a{font-size:clamp(10px,.85vw,15px);padding:16px 20px}
}

/* Lift gently before exchanging the overlapping layers. */
.jersey{transition:z-index 0s .22s}
.jersey:hover{transition:z-index 0s .18s}
@media(prefers-reduced-motion:reduce){.jersey,.jersey:hover{transition:none}}
/* Fit the hosting iframe rather than imposing a minimum page height. */
html{height:100%;overflow:hidden}
body{height:100%;overflow:hidden}
.banner{height:100%;min-height:0;max-height:none;padding:clamp(16px,5vh,60px) 5%;grid-template-rows:minmax(0,1fr)}
.copy{min-width:0;min-height:0}
.jerseys{height:100%;min-height:0;min-width:0}
.jersey{height:82%;top:9%}.ohtani{top:7%;height:82%;right:-5%}
h1.grails-title{font-size:clamp(26px,min(4.8vw,10vh),98px)}
.presenter{margin-bottom:clamp(8px,2vh,14px)}
.player-names{font-size:clamp(9px,min(1.22vw,2.6vh),23px);margin:clamp(10px,3vh,22px) 0 clamp(12px,3.5vh,28px)}
.actions a{padding:clamp(10px,2.3vh,16px) 16px;font-size:clamp(8px,min(.85vw,2vh),15px)}
@media(max-width:700px){
 .banner{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:clamp(14px,3vh,28px) 7% 12px;height:100%;min-height:0}
 .presenter{margin-bottom:12px;gap:12px}.presenter img{width:80px}.presenter span{font-size:9px;letter-spacing:4px}
 h1.grails-title{font-size:min(8vw,7.5vh)}
 .player-names{font-size:min(2.65vw,2.2vh);margin:12px 0 14px}
 .actions a{font-size:8px;padding:10px 12px}
 .jerseys{height:100%;min-height:0;margin-top:0;width:100%}
 .jersey{height:88%;top:6%}.ohtani{height:88%;top:4%}
}
@media(max-height:360px) and (min-width:701px){.presenter img{width:85px}.presenter span{font-size:9px}.actions a{padding:8px 12px}}
/* Keep the composition together on ultrawide embeds, with a full-width backdrop. */
@media(min-width:1100px){
 .banner{padding-left:max(5%,calc((100% - 1320px)/2));padding-right:max(5%,calc((100% - 1320px)/2));grid-template-columns:46% 54%}
 .jerseys{width:100%;max-width:700px;justify-self:start}
 .kobe{left:-3%}.ohtani{right:-2%}
}
/* Reference composition: large overlapping jerseys close to the headline. */
@media(min-width:701px){
 .banner{padding:24px max(16px,calc((100% - 1120px)/2));grid-template-columns:49% 51%}
 .presenter{margin-bottom:18px;gap:20px}
 h1.grails-title{font-size:clamp(38px,min(5.3vw,12vh),76px);line-height:1.02;letter-spacing:-.045em}
 .player-names{font-size:clamp(10px,min(1.35vw,3vh),16px);margin:18px 0 24px}
 .actions{gap:12px}.actions a{padding:14px 18px;font-size:10px}
 .jerseys{width:112%;max-width:none;justify-self:start;margin-left:-7%;height:100%}
 .kobe{left:0;width:62%;height:96%;top:2%}
 .ohtani{right:-7%;width:90%;height:110%;top:-5%}
}

@media(max-width:700px){.actions a span{display:none}.actions a{justify-content:center;gap:0}}

/* Touch devices keep stable layers; Safari hover and filtered 3D layers can flicker. */
@media(hover:none),(pointer:coarse){
 .jerseys{perspective:none;touch-action:pan-y pinch-zoom}
 .jersey,.jersey:hover{transition:none;transform-style:flat;will-change:auto;transform:rotate(var(--angle));-webkit-tap-highlight-color:transparent}
 .kobe,.kobe:hover{z-index:2;--angle:-8deg}
 .ohtani,.ohtani:hover{z-index:1;--angle:8deg}
 .jersey img{filter:none;pointer-events:none;-webkit-user-drag:none;user-select:none}
 .actions a:hover{transform:none}
}
