.
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; }
}
New✈️New????New???????????????? 405-762-3078 ????????????????Sweet and Sexy Beauty????????????????????best feelings for you????????
Stillwater
· · 0 views
Price on request
❤️▬▬▬▬Asian Massage Spa▬▬▬▬▬❤️
☎️☎️:405-762-3078
????????: 9:00am-10:00pm (7 days a week)
❄️✨ :219 S Perkins Rd, Stillwater, OK 74074
◀▶❌❌⭕️⭕️▶◀❌❌⭕️⭕️▶◀❌❌⭕️⭕️◀▶❌❌⭕️⭕️◀▶
???????? new faces
???????? New Asian sweet baby
???????? new environment
⭐⭐We will treat every gentleman here with gentle and considerate service.
⭐⭐Here, you can release the stress and fatigue in life and work to your heart's content.
★ ❣️ ❺ ⭐Here, you can treat and alleviate the lesions on your body and relieve your discomfort.
★ ❣️ ❺ ⭐ The beautiful Asian professional masseur will bring you a unique and excellent massage experience
⭐❣️♥️❤️ BEST SERVICE AND SWEET SMILE❤️♥️❣️⭐
⭐❣️♥️❤️ Amazing skills Great service ❤️♥️❣️⭐
????Clean, Private, comfortable, warm and Elegant environment, high-quality service.⭐
????Talented Asian Massages to serve you!⭐
????Come relax spend something with me!!!
????We are ready to give you the best massage, please call us directly!
Reviews
Seller
pgoswami test
4057623078