/* A slow moving sheen follows the rounded card edge, without covering the artwork. */
@property --rev-edge-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.rev:not(.is-locked){border-radius:25px;box-shadow:0 0 22px #f5787e1c,0 0 52px #f5787e0b}
.rev:not(.is-locked):after{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:2px;background:conic-gradient(from var(--rev-edge-angle),#f5787e22 0deg,#f5787e44 60deg,#ffdbd7 88deg,#f5787e99 110deg,#f5787e22 150deg,#f5787e22 245deg,#ffc4ca 270deg,#f5787e22 305deg);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;z-index:8;filter:drop-shadow(0 0 5px #f5787e99);animation:rev-edge 6s linear infinite}
@keyframes rev-edge{to{--rev-edge-angle:360deg}}
.is-preview{cursor:default}
.rev-preview-bar[hidden]{display:none}.rev-preview-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:22px;padding:12px 16px;border:1px solid #f5787e77;border-radius:16px;z-index:50;background:#0a192df2;box-shadow:0 10px 50px #0008;backdrop-filter:blur(15px);max-width:calc(100vw - 32px);color:#e5edf8;font-size:10px;letter-spacing:.7px;white-space:nowrap}.rev-preview-bar button{background:#f5787e;color:#142238;border:0;border-radius:9px;padding:10px 14px;font-size:11px;cursor:pointer}
.rev-reveal{background:#07111f;isolation:isolate}.film-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 45%,#23425b66,transparent 55%),radial-gradient(ellipse at 15% 65%,#f5787e22,transparent 48%);z-index:0}.film-road-light{position:absolute;left:-20%;right:-20%;top:72%;height:1px;background:#f5787e66;box-shadow:0 0 55px 4px #f5787e33;transform:rotate(-7deg)}
#rev-film-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.film-first-logo{position:absolute;inset:0;display:grid;place-items:center;z-index:2;opacity:0}.film-first-logo>span{font:clamp(52px,11vw,170px) 'Times New Roman',serif;letter-spacing:-4px;white-space:nowrap;transform:translateY(-17vh)}.film-first-logo em,.film-final-logo em{font-family:'Times New Roman',serif;font-weight:400;font-style:italic;color:#f5787e}
.film-showcase{position:absolute;inset:0;z-index:4;display:grid;place-items:center;perspective:1500px;opacity:0;pointer-events:none;overflow:hidden}.film-window{position:relative;width:min(90vw,128vh,1280px);aspect-ratio:1363/936;max-height:78vh;border:1px solid #b9d0ee55;border-radius:18px;background:#08182d;overflow:hidden;box-shadow:0 45px 100px #000a,0 0 65px #f5787e16;transform:rotateY(-8deg) rotateX(4deg) rotateZ(-3deg) scale(.95)}#rev-showcase,.film-garage-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.film-garage-shot{opacity:0}.running .film-garage-shot{animation:film-garage 20s linear both}@keyframes film-garage{0%,51%{opacity:0}52%,100%{opacity:1}}.film-window-glass{position:absolute;inset:0;background:linear-gradient(125deg,#d4eaff08,transparent 35%,transparent 70%,#f5787e0a);border-radius:inherit;pointer-events:none}
.film-final-logo{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:6;opacity:0;pointer-events:none}.film-final-logo>img{width:clamp(110px,19vh,230px);position:relative;filter:drop-shadow(0 0 30px #f5787e22)}.film-final-logo>span{font:clamp(58px,8.5vw,130px) 'Times New Roman',serif;letter-spacing:-2px;position:relative;margin-top:16px;white-space:nowrap}.film-crest-ring{position:absolute;left:50%;top:50%;width:min(62vh,540px);height:min(62vh,540px);border:1px solid #b5cae519;border-radius:50%;transform:translate(-50%,-55%);box-shadow:0 0 0 60px #b5cae503,0 0 0 120px #b5cae502}.film-underline{height:1px;width:160px;background:linear-gradient(90deg,transparent,#f5787e,transparent);margin-top:30px;box-shadow:0 0 20px #f5787e77}.film-wipe{position:absolute;inset:-50%;background:linear-gradient(105deg,transparent 30%,#f5787e09 40%,#ffe9e555 49.5%,#f5787e22 50%,transparent 60%);z-index:7;transform:translateX(-100%);pointer-events:none}.film-letterbox{position:absolute;left:0;right:0;height:6vh;background:#050b15;z-index:8;pointer-events:none}.film-top{top:0}.film-bottom{bottom:0}.rev-reveal .reveal-progress{z-index:10}.rev-reveal .reveal-preview,.rev-reveal #rev-reveal-close{z-index:11}.film-fallback-car{display:none}
.running #rev-film-canvas{animation:film-canvas 20s linear both}.running .film-first-logo{animation:film-first-logo 20s cubic-bezier(.2,.7,.2,1) both}.running .film-showcase{animation:film-showcase 20s ease-in-out both}.running .film-window{animation:film-window 20s ease-in-out both}.running .film-final-logo{animation:film-final-logo 20s cubic-bezier(.16,1,.3,1) both}.running .film-underline{animation:film-underline 20s ease both}.running .film-wipe{animation:film-wipe 20s ease-in-out both}.running .reveal-progress{animation:reveal-progress 20s linear both}.running .film-atmosphere{animation:film-atmosphere 20s ease-in-out both}
@keyframes film-canvas{0%,32%{opacity:1}40%,100%{opacity:0}}
@keyframes film-first-logo{0%,12%{opacity:0;filter:blur(15px);transform:scale(.9)}18%,36%{opacity:1;filter:blur(0);transform:scale(1)}40%,100%{opacity:0;filter:blur(6px);transform:scale(1.06)}}
@keyframes film-showcase{0%,39%{opacity:0;clip-path:inset(0 100% 0 0)}43%,59%{opacity:1;clip-path:inset(0 0 0 0)}64%,100%{opacity:0;clip-path:inset(0 0 0 100%)}}
@keyframes film-window{0%,39%{transform:rotateY(-12deg) rotateX(6deg) rotateZ(-4deg) scale(.88)}44%{transform:rotateY(-5deg) rotateX(3deg) rotateZ(-2deg) scale(.96)}63%,100%{transform:rotateY(5deg) rotateX(0deg) rotateZ(1deg) scale(1.04)}}
@keyframes film-final-logo{0%,62%{opacity:0;filter:blur(8px);transform:scale(.91)}69%,96%{opacity:1;filter:blur(0);transform:scale(1)}100%{opacity:0;filter:blur(0);transform:scale(1.025)}}
@keyframes film-underline{0%,65%{transform:scaleX(0)}75%,100%{transform:scaleX(1)}}
@keyframes film-wipe{0%,37%{transform:translateX(-90%)}43%,60%{transform:translateX(90%)}61%{transform:translateX(-90%)}67%,100%{transform:translateX(90%)}}
@keyframes film-atmosphere{0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}}
.film-fallback.running .film-fallback-car{display:block;position:absolute;z-index:3;left:0;top:50%;width:80vw;animation:race-pass 6s cubic-bezier(.4,0,.6,1) .5s both;filter:drop-shadow(0 0 35px #f5787e22)}
@media(max-width:650px){.film-first-logo>span{font-size:14vw;letter-spacing:-2px}.film-window{width:125vw;max-width:none;max-height:75vh;aspect-ratio:4/5;transform:scale(.7)}.film-final-logo>span{font-size:15vw}.rev-preview-bar{white-space:normal;gap:12px;width:max-content}.rev-preview-bar>span{max-width:155px;line-height:1.6}.rev-preview-bar button{white-space:nowrap}.film-letterbox{height:5vh}}
@media(prefers-reduced-motion:reduce){.rev:not(.is-locked):after{animation:none}.rev-reveal.running #rev-film-canvas,.rev-reveal.running .film-first-logo,.rev-reveal.running .film-wipe{display:none}.rev-reveal.running .film-showcase{animation:film-accessible-showcase 20s linear both}.rev-reveal.running .film-window{animation:none;transform:none}.rev-reveal.running .film-final-logo{animation:film-accessible-logo 20s linear both;transform:none;filter:none}.rev-reveal.running .film-atmosphere{animation:none}}
@keyframes film-accessible-showcase{0%,44%{opacity:1;clip-path:none}45%,100%{opacity:0;clip-path:none}}
@keyframes film-accessible-logo{0%,44%{opacity:0}45%,98%{opacity:1}100%{opacity:0}}
/* Replay remains a sibling of the navigation link, with its own accessible target. */
.rev-card-wrap{position:relative;min-width:0}.rev-card-wrap>.rev{width:100%}.rev-card-tools[hidden]{display:none}.rev-card-tools{position:absolute;left:20px;top:18px;z-index:10;display:flex;gap:7px;align-items:center}.rev-card-tools .version-tag{height:29px}.rev-card-tools button{width:29px;height:29px;padding:5px;border:1px solid #b7d0ed40;border-radius:8px;background:#0a1b30c9;color:#d5e5f6;cursor:pointer;backdrop-filter:blur(8px)}.rev-card-tools button:hover{background:#f5787e;color:#08182d;border-color:#f5787e}.rev-card-tools svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.3}
#rev-race-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.film-ui-shots{position:absolute;inset:0;opacity:0}.film-window{aspect-ratio:16/9;max-height:72vh}.running .film-ui-shots{animation:film-ui-shots 20s linear both}.running .film-garage-shot{animation:film-garage-v2 20s linear both}.running .film-showcase{animation:film-showcase-v2 20s ease-in-out both}.running .film-final-logo{animation:film-final-logo-v2 20s cubic-bezier(.16,1,.3,1) both}.running #rev-film-canvas{animation:film-pullup-canvas 20s linear both}
@keyframes film-pullup-canvas{0%,25%{opacity:1}34%,100%{opacity:0}}
@keyframes film-ui-shots{0%,53%{opacity:0}54%,100%{opacity:1}}
@keyframes film-garage-v2{0%,61%{opacity:0}62%,100%{opacity:1}}
@keyframes film-showcase-v2{0%,33%{opacity:0;clip-path:inset(0 100% 0 0)}36%,68%{opacity:1;clip-path:inset(0 0 0 0)}71%,100%{opacity:0;clip-path:inset(0 0 0 100%)}}
@keyframes film-final-logo-v2{0%,68%{opacity:0;filter:blur(8px);transform:scale(.91)}75%,96%{opacity:1;filter:blur(0);transform:scale(1)}100%{opacity:0;transform:scale(1.025)}}
.film-roster{position:absolute;bottom:7.5vh;left:0;right:0;height:70px;overflow:hidden;z-index:9;border-top:1px solid #acc4e324;border-bottom:1px solid #acc4e31a;background:#071426c9;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);opacity:0;pointer-events:none}.film-roster-track{display:flex;align-items:center;width:max-content;height:100%;animation:roster-scroll 24s linear infinite}.film-roster-set{display:flex;height:100%;align-items:center}.film-roster-item{display:flex;align-items:center;gap:10px;width:195px;flex:none;padding:8px 17px;border-right:1px solid #b5cae51a}.film-roster-item img{width:68px;height:40px;object-fit:contain}.film-roster-item span{font:12px Georgia,serif;color:#d9e5f4}.film-roster-item small{font:7px Arial;letter-spacing:1.3px;color:#f5787e;display:block;margin-bottom:5px}.running .film-roster{animation:roster-visibility 20s linear both}@keyframes roster-visibility{0%,17%{opacity:0}21%,96%{opacity:1}100%{opacity:0}}@keyframes roster-scroll{to{transform:translateX(-50%)}}
@media(max-width:650px){.film-roster{height:58px;bottom:7vh}.film-roster-item{width:165px;padding:6px 12px}.film-roster-item img{width:54px}.rev-card-tools{left:18px;top:16px}.film-window{width:94vw;aspect-ratio:16/9;max-height:70vh}.film-roster-item span{font-size:11px}}
@media(prefers-reduced-motion:reduce){.film-roster-track{animation:none}.rev-reveal.running .film-roster{animation:none;opacity:1}.rev-reveal.running .film-final-logo{animation:film-accessible-logo 20s linear both}.rev-reveal.running .film-showcase{animation:film-accessible-showcase 20s linear both}.rev-reveal.running .film-ui-shots{animation:none;opacity:1}}

/* Depth stays contained until the user expands a card. The entire hovered card then rises above its siblings. */
.tile{overflow:hidden}
.featured-grid>*,.more-grid>*{position:relative;z-index:0}
.rev-car-depth{position:absolute;inset:35px -64px 45px;z-index:3;pointer-events:none;transform:translate(20px,-12px) scale(1);transform-origin:50% 58%;transition:transform .65s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 21px 12px #020b1b77)}
#rev-card-canvas{display:block;width:100%;height:100%}
.is-locked .rev-car-depth{visibility:hidden}
.card-model-fallback .rev-car-depth{background:url('/rev-car.svg') center/contain no-repeat}
@media(hover:hover) and (pointer:fine){
 .featured-grid>*:hover,.more-grid>*:hover{z-index:30}
 .tile:hover,.rev-card-wrap:hover>.tile{overflow:visible}
 .rev:not(.is-locked):hover .rev-car-depth{transform:translate(20px,-22px) scale(1.28)}
 .rev-card-wrap:hover .rev:not(.is-locked) .rev-car-depth{transform:translate(20px,-22px) scale(1.28)}
}
.featured-grid>*:focus-within,.more-grid>*:focus-within{z-index:30}
.tile:focus-visible{overflow:visible}
@media(max-width:760px){.rev-car-depth{inset:25px 0 42px}}
@media(prefers-reduced-motion:reduce){.rev-car-depth,.rev:not(.is-locked):hover .rev-car-depth,.rev-card-wrap:hover .rev:not(.is-locked) .rev-car-depth{transform:translate(20px,-12px);transition:none}}

body{overflow-x:clip}

/* Short fades include Skip/Escape as well as the scheduled ending. */
.rev-reveal{opacity:0;transition:opacity .25s ease;will-change:opacity}
.rev-reveal.running{opacity:1}
.rev-reveal.running.closing{opacity:0}
