@import url("https://fonts.cdnfonts.com/css/thegoodmonolith");
/* =========================
RESET + TOKENS (Black UI)
========================= */
*,
*::after,
*::before {
box-sizing: border-box;
}
:root {
color-scheme: dark;
/* Base */
--color-text: rgba(255, 255, 255, 0.92);
--color-muted: rgba(255, 255, 255, 0.68);
--color-dim: rgba(255, 255, 255, 0.48);
/* Black palette */
--bg: #060607;
--bg-2: #0b0c0f;
--panel: rgba(10, 10, 12, 0.62);
--panel-2: rgba(0, 0, 0, 0.55);
/* Accents (still “black UI”, but usable) */
--stroke: rgba(255, 255, 255, 0.14);
--stroke-2: rgba(255, 255, 255, 0.08);
--glow: rgba(255, 255, 255, 0.10);
/* Radius + shadow */
--r-lg: 18px;
--r-md: 14px;
--shadow-1: 0 18px 60px rgba(0, 0, 0, 0.55);
--shadow-2: 0 10px 30px rgba(0, 0, 0, 0.45);
/* Sizes */
--thumb-width: 120px;
--thumb-height: 80px;
/* Lines */
--line-spacing: 10px;
--line-base-height: 15px;
--line-max-height: 50px;
/* Motion */
--ease-out: cubic-bezier(0.22, 1, 0.36, 1);
--ease-soft: cubic-bezier(0.2, 0.7, 0.2, 1);
}
/* =========================
BASE
========================= */
html,
body {
height: 100%;
}
body {
margin: 0;
color: var(--color-text);
background: radial-gradient(1200px 800px at 50% 20%, rgba(255, 255, 255, 0.05), transparent 55%),
radial-gradient(900px 650px at 20% 80%, rgba(255, 255, 255, 0.03), transparent 60%),
var(--bg);
font-family: "TheGoodMonolith", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
overflow-x: hidden;
min-height: 100%;
-webkit-font-smoothing: antialiased;
text-rendering: geometricPrecision;
}
/* Selection */
::selection {
background: rgba(255, 255, 255, 0.16);
color: rgba(255, 255, 255, 0.95);
}
/* Focus ring (accessible) */
:where(a, button, [role="button"], input, textarea, select):focus-visible {
outline: 2px solid rgba(255, 255, 255, 0.35);
outline-offset: 3px;
border-radius: 10px;
}
/* =========================
SLIDES
========================= */
.slides {
width: 100%;
min-height: 100dvh;
overflow: hidden;
display: grid;
grid-template-rows: 100%;
grid-template-columns: 100%;
place-items: center;
margin-top: 60px;
position: relative;
}
.slide {
width: 100%;
height: 100%;
grid-area: 1 / 1 / -1 / -1;
pointer-events: none;
opacity: 0;
overflow: hidden;
position: relative;
display: grid;
place-items: center;
will-change: transform, opacity;
}
.slide--current {
pointer-events: auto;
opacity: 1;
}
/* Image layer */
.slide__img {
width: 100%;
height: 100%;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
will-change: transform, opacity, filter;
position: relative;
}
/* Dark overlay for readability (keeps "black UI" consistent) */
.slide__img::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0.62) 0%,
rgba(0, 0, 0, 0.22) 35%,
rgba(0, 0, 0, 0.70) 100%
);
pointer-events: none;
}
/* =========================
HINT
========================= */
.scroll-hint {
position: absolute;
top: 1rem;
right: 1rem;
z-index: 30;
color: var(--color-text);
font-size: 0.9rem;
letter-spacing: 0.4px;
padding: 0.55rem 0.75rem;
border-radius: 999px;
background: rgba(0, 0, 0, 0.35);
border: 1px solid var(--stroke);
box-shadow: var(--shadow-2);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
/* =========================
BOTTOM UI (polished panel)
========================= */
.bottom-ui-container {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: max(env(safe-area-inset-bottom), 14px);
width: min(760px, 100%);
z-index: 40;
padding: 0 1rem;
display: flex;
flex-direction: column;
align-items: center;
gap: 0.75rem;
pointer-events: auto;
overflow-x: hidden;
/* breathing space vs thumbs */
margin-bottom: 140px;
}
/* Main glass panel wrapper feel */
.bottom-ui-container::before {
content: "";
position: absolute;
inset: -10px -10px -12px -10px;
border-radius: calc(var(--r-lg) + 10px);
background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
border: 1px solid var(--stroke-2);
box-shadow: var(--shadow-1);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
pointer-events: none;
z-index: 0;
}
.bottom-ui-container > * {
position: relative;
z-index: 1;
}
/* =========================
TYPO / BLOCKS
========================= */
.slide-section {
width: 100%;
text-align: center;
color: var(--color-text);
font-size: clamp(1.15rem, 2vw + 0.6rem, 1.9rem);
font-weight: 800;
letter-spacing: 1.2px;
opacity: 0.95;
margin-bottom: 18px;
text-shadow: 0 8px 30px rgba(0, 0, 0, 0.55);
}
.slide-counter {
display: flex;
align-items: center;
width: 100%;
justify-content: space-between;
gap: 0.75rem;
color: var(--color-muted);
font-size: 0.88rem;
padding: 0.6rem 0.75rem;
border-radius: var(--r-md);
background: rgba(0, 0, 0, 0.28);
border: 1px solid var(--stroke-2);
}
.counter-display {
display: flex;
align-items: center;
gap: 10px;
}
.counter-divider {
opacity: 0.6;
font-size: 0.85rem;
}
.counter-nav {
width: 22px;
cursor: pointer;
opacity: 0.75;
transition: opacity 220ms var(--ease-soft), transform 220ms var(--ease-soft), filter 220ms var(--ease-soft);
filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
user-select: none;
-webkit-user-select: none;
touch-action: manipulation;
}
.counter-nav:hover {
opacity: 1;
transform: translateY(-1px);
}
.counter-nav:active {
transform: translateY(0);
opacity: 0.95;
}
/* Title with smoother motion */
.slide-title-container {
width: 100%;
text-align: center;
height: 32px;
overflow: hidden;
margin-bottom: 10px;
position: relative;
border-radius: var(--r-md);
background: rgba(0, 0, 0, 0.22);
border: 1px solid var(--stroke-2);
padding: 0.45rem 0.75rem;
}
.slide-title {
position: absolute;
inset: 0;
display: grid;
place-items: center;
color: var(--color-text);
font-size: 1.03rem;
letter-spacing: 0.6px;
opacity: 0.9;
transition: transform 520ms var(--ease-out), opacity 520ms var(--ease-out);
}
.slide-title.exit-up {
transform: translateY(-38px);
opacity: 0;
}
.slide-title.enter-up {
transform: translateY(38px);
opacity: 0;
}
/* =========================
DRAG INDICATOR
========================= */
.drag-indicator {
width: 100%;
height: 52px;
pointer-events: none;
margin-bottom: 6px;
position: relative;
border-radius: var(--r-md);
background: rgba(0, 0, 0, 0.18);
border: 1px solid var(--stroke-2);
overflow: hidden;
}
.drag-indicator::after {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(450px 80px at 50% 100%, rgba(255, 255, 255, 0.05), transparent 60%);
pointer-events: none;
}
.lines-container {
display: flex;
height: 100%;
width: 100%;
position: relative;
align-items: flex-end;
justify-content: space-between;
gap: var(--line-spacing);
padding: 10px 12px;
}
.drag-line {
width: 2px;
height: var(--line-base-height);
border-radius: 99px;
background-color: rgba(255, 255, 255, 0.22);
transform-origin: bottom center;
transition: height 600ms var(--ease-out), background-color 600ms var(--ease-out);
box-shadow: 0 0 18px rgba(255, 255, 255, 0.06);
}
/* Optional: when active (if you toggle a class in JS) */
.drag-indicator.is-active .drag-line {
background-color: rgba(255, 255, 255, 0.34);
}
/* =========================
THUMBS (real black “dock”)
========================= */
.thumbs-container {
width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border-radius: var(--r-lg);
background: rgba(0, 0, 0, 0.38);
border: 1px solid var(--stroke);
box-shadow: var(--shadow-2);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
/* nicer scroll */
scrollbar-width: thin;
scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}
.thumbs-container::-webkit-scrollbar {
height: 10px;
}
.thumbs-container::-webkit-scrollbar-track {
background: transparent;
}
.thumbs-container::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.16);
border-radius: 999px;
}
.slide-thumbs {
display: flex;
position: relative;
padding: 0.45rem 0.35rem;
z-index: 11;
gap: 0.35rem;
width: max-content;
}
.frost-bg {
display: none;
}
.slide-thumb {
width: var(--thumb-width);
height: var(--thumb-height);
flex: 0 0 auto;
background-size: cover;
background-position: center center;
cursor: pointer;
opacity: 0.58;
transform: translateY(0);
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.10);
outline: none;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
transition: opacity 220ms var(--ease-soft), transform 220ms var(--ease-soft), border-color 220ms var(--ease-soft), filter 220ms var(--ease-soft);
position: relative;
overflow: hidden;
}
.slide-thumb::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.55));
pointer-events: none;
}
.slide-thumb:hover {
opacity: 0.82;
transform: translateY(-2px);
border-color: rgba(255, 255, 255, 0.18);
}
.slide-thumb.active {
opacity: 1;
transform: translateY(-3px);
border-color: rgba(255, 255, 255, 0.28);
filter: saturate(1.05) contrast(1.03);
}
/* Tiny notch / indicator on active thumb */
.slide-thumb.active::before {
content: "";
position: absolute;
left: 12px;
right: 12px;
bottom: 8px;
height: 2px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.45);
box-shadow: 0 0 22px rgba(255, 255, 255, 0.10);
}
/* =========================
RESPONSIVE
========================= */
@media (max-width: 1024px) {
:root {
--thumb-width: 96px;
--thumb-height: 72px;
--line-spacing: 8px;
--line-base-height: 12px;
--line-max-height: 40px;
}
.slide-title {
font-size: 0.98rem;
}
.slide-counter {
font-size: 0.84rem;
}
}
@media (max-width: 768px) {
:root {
--thumb-width: 84px;
--thumb-height: 64px;
--line-spacing: 6px;
--line-base-height: 10px;
--line-max-height: 34px;
}
.bottom-ui-container {
margin: 1.1rem auto 2rem;
padding: 0 0.75rem 1.5rem;
margin-bottom: 120px;
}
.scroll-hint {
font-size: 0.84rem;
top: 0.75rem;
right: 0.75rem;
}
}
@media (max-width: 480px) {
:root {
--thumb-width: 72px;
--thumb-height: 56px;
--line-spacing: 4px;
--line-base-height: 8px;
--line-max-height: 28px;
}
.slide-section {
font-size: clamp(1rem, 4.5vw, 1.28rem);
margin-bottom: 14px;
}
.slide-title-container {
height: 30px;
}
.slide-title {
font-size: 0.95rem;
}
.counter-nav {
width: 20px;
}
.counter-divider {
font-size: 0.8rem;
}
}
/* =========================
REDUCED MOTION
========================= */
@media (prefers-reduced-motion: reduce) {
* {
transition-duration: 0.001ms !important;
animation-duration: 0.001ms !important;
scroll-behavior: auto !important;
}
}
7 respuestas
Te gusta este post? Compártelo!!
I learned a lot from this. Thank you.
This ‘Predict Smart • Win Big’ angle is catchy, but remember, solid odds analysis matters more than just quick sign-ups. Check out oklv লিংক for more angles.
Prudence is key; never trust an interface blindly. While the local payment options on 8999 bed app ক্যাসিনো look seamless, always verify security protocols first. Vigilance beats hype every time.
Just tried Okay Bet’s live dealer slots; the PBA coverage is slick. Smart Betting works here. okay bet casino offers fast GCash deposits and solid odds for Filipino players seeking premium entertainment today.
This analysis nails the psychological edge! Understanding the player mindset is key, much like knowing the best entry point via 888bet tz app. Solid breakdown, though I’d explore bankroll management more.
Honestly, the risk-aware angle is key; don’t just chase the jackpots! It’s more about the game structure than quick wins. For solid insights, check out Lucky Play Casino online casino first. 😉