.
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; }
}
???????? ????????TEXT ME ????????????TEXT ME (((????????????TEXT ME ????????????TEXT ME (((((((???????????? FOR CHEAP~RATE ????????HOT SEXY GIRL READY FOR YOU NOW????INCALL OR OUTCAL
Sandusky
· · 0 views
Price on request
I am 27years old sweet and hot and soft sexy girl.High class sexy girl is the girl
of your dreams.❤???? I am pure and real girl. Trust me? please accept me.
???? I live alone in my home. You can come to my house or anywhere you like.
???? 1OO% Real,Young,Sexy And Anytime Available.
???? Sexy Magic Touch & Gentle relaxation
???? I'm Independent, Open Minded, Setish Friendly, Respectful,And Very Discreet