.
Previous passes tweaked colours, radii and hover states — but the
reason it still didn't READ as Hotstar is that three structural
pieces were missing entirely. No amount of colour tuning produces
that look without them:
1. A full-bleed hero — edge-to-edge backdrop image with a
gradient scrim that dissolves into the page background.
We had a small rounded gradient box inside a container.
2. A navbar that is TRANSPARENT over the hero and only turns
solid once you scroll. The header floating over artwork is
the single most recognisable part of the layout.
3. Rows that BLEED past the container to the screen edge, so
cards scroll out under the edge instead of stopping at a
margin.
══════════════════════════════════════════════════════════════════ */
/* ── 1. FULL-BLEED HERO ──────────────────────────────────────────
Breaks out of Bootstrap's .container using the standard
100vw/50% trick, so it spans the viewport regardless of what it's
nested inside. */
.hero-cinematic {
position: relative;
width: 100vw;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;
/* Pull it up under the transparent navbar so the artwork starts
at the very top of the screen, like Hotstar. */
margin-top: calc(-1 * (56px + env(safe-area-inset-top, 0)));
min-height: 62vh;
display: flex;
align-items: flex-end;
overflow: hidden;
background: var(--bg);
}
@media (min-width: 768px) {
.hero-cinematic { min-height: 78vh; }
}
.hero-cinematic .hero-media {
position: absolute; inset: 0;
z-index: 0;
}
.hero-cinematic .hero-media img {
width: 100%; height: 100%;
object-fit: cover;
/* Slow Ken Burns drift — this is what makes a static backdrop
feel like a streaming service rather than a banner image. */
animation: heroDrift 18s ease-in-out infinite alternate;
}
@keyframes heroDrift {
from { transform: scale(1.04) translate3d(0, 0, 0); }
to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); }
}
/* THE SCRIM. Two overlapping gradients: one bottom-up so the
artwork dissolves into the page background, one left-to-right so
text over the image stays readable regardless of what's behind
it. This is the detail that makes it look composited rather than
like a photo with text dumped on top. */
.hero-cinematic .hero-scrim {
position: absolute; inset: 0; z-index: 1;
background:
linear-gradient(0deg, var(--bg) 0%, rgba(15,15,20,.75) 22%, rgba(15,15,20,.15) 55%, rgba(15,15,20,.35) 100%),
linear-gradient(90deg, rgba(15,15,20,.92) 0%, rgba(15,15,20,.55) 42%, transparent 78%);
}
[data-theme="light"] .hero-cinematic .hero-scrim {
background:
linear-gradient(0deg, var(--bg) 0%, rgba(255,247,250,.8) 22%, rgba(255,247,250,.1) 55%, transparent 100%),
linear-gradient(90deg, rgba(255,247,250,.9) 0%, rgba(255,247,250,.5) 42%, transparent 78%);
}
.hero-cinematic .hero-content {
position: relative; z-index: 2;
width: 100%;
padding: 0 1rem 2.5rem;
max-width: 1320px;
margin: 0 auto;
animation: heroContentIn .7s cubic-bezier(.2,.8,.2,1) both;
}
@media (min-width: 768px) {
.hero-cinematic .hero-content { padding: 0 2rem 4rem; max-width: 62%; margin: 0; padding-left: max(2rem, calc((100vw - 1320px) / 2 + 2rem)); }
}
@keyframes heroContentIn {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
.hero-cinematic .hero-eyebrow {
font-size: .68rem; font-weight: 800;
text-transform: uppercase; letter-spacing: .14em;
color: var(--accent);
margin-bottom: .5rem;
}
.hero-cinematic h1 {
font-size: clamp(1.6rem, 5.5vw, 3.2rem);
font-weight: 900;
line-height: 1.05;
letter-spacing: -0.02em;
color: #fff;
margin-bottom: .5rem;
text-shadow: 0 2px 24px rgba(0,0,0,.5);
}
[data-theme="light"] .hero-cinematic h1 { color: var(--ink); text-shadow: none; }
.hero-cinematic .hero-meta {
display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
font-size: .78rem; color: rgba(255,255,255,.8);
margin-bottom: .9rem;
}
[data-theme="light"] .hero-cinematic .hero-meta { color: var(--muted); }
.hero-cinematic .hero-meta .dot { opacity: .5; }
.hero-cinematic .hero-desc {
font-size: .88rem; line-height: 1.55;
color: rgba(255,255,255,.82);
max-width: 52ch;
margin-bottom: 1.25rem;
display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
overflow: hidden;
}
[data-theme="light"] .hero-cinematic .hero-desc { color: var(--muted); }
.hero-cinematic .hero-actions { display: flex; gap: .6rem; flex-wrap: wrap; }
/* Hero dot indicators */
.hero-dots {
position: absolute; z-index: 3;
bottom: 1rem; left: 50%; transform: translateX(-50%);
display: flex; gap: .35rem;
}
.hero-dots button {
width: 20px; height: 3px; border-radius: 999px; border: none; padding: 0;
background: rgba(255,255,255,.35);
transition: background-color .25s ease, width .25s ease;
}
.hero-dots button.active { background: var(--accent); width: 32px; }
/* ── 2. TRANSPARENT NAVBAR OVER HERO ─────────────────────────────
Applied only when
carries .has-hero (set by the page that
renders a hero), so every other page keeps the normal solid
navbar. .nav-scrolled is toggled by JS past a scroll threshold. */
body.has-hero .navbar {
background: transparent !important;
border-image: none;
border-bottom: 1px solid transparent;
position: fixed; top: 0; left: 0; right: 0;
transition: background-color .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}
body.has-hero .navbar.nav-scrolled {
background: rgba(15, 15, 20, .92) !important;
border-bottom-color: var(--border);
}
[data-theme="light"] body.has-hero .navbar.nav-scrolled {
background: rgba(255, 247, 250, .95) !important;
}
/* Over artwork the brand and controls need to be legible against
an unpredictable background, so force light treatment until the
navbar solidifies. */
body.has-hero .navbar:not(.nav-scrolled) .navbar-brand {
background: none; -webkit-text-fill-color: #fff; color: #fff;
}
body.has-hero .navbar:not(.nav-scrolled) .theme-toggle,
body.has-hero .navbar:not(.nav-scrolled) .btn-outline-secondary {
background: rgba(0,0,0,.28);
border-color: rgba(255,255,255,.22);
color: #fff;
}
body.has-hero .navbar:not(.nav-scrolled) .navbar-toggler {
border-color: rgba(255,255,255,.3);
}
body.has-hero .navbar:not(.nav-scrolled) .navbar-toggler-icon { filter: invert(1); }
/* ── 3. EDGE-TO-EDGE ROWS ────────────────────────────────────────
Cards scroll out under the screen edge instead of stopping at the
container margin. The negative margin breaks out; the matching
padding keeps the FIRST card aligned with the page's text. */
.row-bleed {
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem;
}
@media (min-width: 768px) {
.row-bleed { margin-left: -2rem; margin-right: -2rem; padding-left: 2rem; padding-right: 2rem; }
}
/* Hide the scrollbar on bleeding rows — a visible bar cutting
across a full-width row breaks the effect. */
.row-bleed::-webkit-scrollbar { display: none; }
.row-bleed { scrollbar-width: none; }
/* Row scroll arrows (desktop only — touch devices just swipe) */
.row-wrap { position: relative; }
.row-arrow {
display: none;
position: absolute; top: 0; bottom: 22px;
width: 44px;
border: none;
z-index: 4;
color: #fff;
font-size: 1.1rem;
opacity: 0;
transition: opacity .25s ease;
cursor: pointer;
}
.row-arrow.prev { left: 0; background: linear-gradient(90deg, var(--bg) 30%, transparent); }
.row-arrow.next { right: 0; background: linear-gradient(270deg, var(--bg) 30%, transparent); }
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {
.row-arrow { display: block; }
.row-wrap:hover .row-arrow { opacity: 1; }
}
/* ── Landscape card variant — Hotstar uses 16:9 tiles for most
content rows, not portrait posters. Portrait stays available via
the existing .poster-card for anything that suits it. ── */
.tile-card {
flex: 0 0 auto;
width: 168px;
scroll-snap-align: start;
color: var(--ink);
display: block;
}
.tile-thumb {
width: 168px; aspect-ratio: 16 / 9;
border-radius: 8px; overflow: hidden;
background: var(--surface); position: relative;
box-shadow: 0 4px 14px rgba(0,0,0,.3);
transition: transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease;
}
.tile-thumb img { width: 100%; height: 100%; object-fit: cover; }
.tile-thumb .no-image { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color: var(--muted); }
@media (min-width: 992px) {
.tile-card { width: 208px; }
.tile-thumb { width: 208px; }
}
@media (hover: hover) and (pointer: fine) {
.tile-card:hover .tile-thumb {
transform: scale(1.08);
box-shadow: 0 20px 40px rgba(0,0,0,.55);
z-index: 3;
}
}
.tile-caption { font-size: .72rem; font-weight: 600; margin-top: .45rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile-price {
position: absolute; bottom: 0; left: 0; right: 0;
background: linear-gradient(0deg, rgba(0,0,0,.88), transparent);
color: #fff; font-weight: 800; font-size: .74rem;
padding: 1.1rem .5rem .35rem;
}
/* Row heading — smaller and tighter than a page heading, with the
"See all" only appearing on hover (desktop), which is how these
rows behave on streaming apps. */
.row-head {
display: flex; align-items: center; justify-content: space-between;
margin: 1.4rem 0 .55rem;
}
.row-head h2 {
font-size: .98rem; font-weight: 800; margin: 0;
letter-spacing: -0.01em; color: var(--ink);
}
.row-head a { font-size: .72rem; font-weight: 700; opacity: 0; transition: opacity .2s ease; }
.row-wrap:hover .row-head a, .row-head:hover a { opacity: 1; }
@media (hover: none) { .row-head a { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
.hero-cinematic .hero-media img { animation: none; }
.hero-cinematic .hero-content { animation: none; }
}
✓VerifiedAD✪ GFE FS NURU EROTIC BODYRUBS DRAPING OR NO DRAPING
austin
· · 0 views
Price on request
I want you completely at ease and able to enjoy your time the way you truly want. I know exactly how to make you feel comfortable. I love the company of upscale gentlemen, although this is not my life nor full time job. I have a private life and I work days and nights . I’m discreet in all meanings of the word. I have a wonderful modeling career, so this is just my moonlight retreat. (just be careful not to fall in love)! I do FMTY Please text me only when you are absolutely ready to meet immediately or when you are ready to book a later appointment with a deposit FOR MY SAFETY I WILL TAKE SECURITY DEPOSIT ON OUTCALLS.No BS No head games and I will show you a good fun time to be your regular xoxo; My number 326,202,1737 available on Viber BiP Chat-In and Telegram or @eprofaida SignalApp @Eprovider.46 and Discord @profaida WeChat @Eprovider Zangi 103779I344 Text me with your AGE, Race and LOCATION to know if you’re near to meet before wasting our time..xx