2026-02-20 21:28:00 -05:00
|
|
|
|
/* =============================================================
|
2026-02-20 22:06:53 -05:00
|
|
|
|
OTS Theme - Main Stylesheet
|
2026-02-20 21:28:00 -05:00
|
|
|
|
============================================================= */
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 1. CSS Variables ───────────────────────────────────────── */
|
|
|
|
|
|
:root,
|
|
|
|
|
|
[data-theme="light"] {
|
2026-02-21 13:26:59 -05:00
|
|
|
|
/* ── Light palette - Orange Primary + Green Accent ── */
|
|
|
|
|
|
--color-primary: var(--wp--preset--color--primary, #D83302);
|
|
|
|
|
|
--color-primary-dk: var(--wp--preset--color--primary-dk, #A22702);
|
|
|
|
|
|
--color-primary-lt: var(--wp--preset--color--primary-lt, #FFF0EB);
|
|
|
|
|
|
--color-primary-rgb: 216,51,2;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--color-accent: var(--wp--preset--color--accent, #4CAF50);
|
|
|
|
|
|
--color-accent-dk: var(--wp--preset--color--accent-dk, #388E3C);
|
|
|
|
|
|
--color-accent-lt: var(--wp--preset--color--accent-lt, #E8F5E9);
|
|
|
|
|
|
--color-accent-rgb: 76,175,80;
|
|
|
|
|
|
--color-dark: var(--wp--preset--color--dark, #111111);
|
|
|
|
|
|
--color-dark-2: var(--wp--preset--color--dark-2, #1A1A1A);
|
|
|
|
|
|
--color-text: var(--wp--preset--color--text, #333333);
|
|
|
|
|
|
--color-text-muted: var(--wp--preset--color--text-muted, #666666);
|
|
|
|
|
|
--color-border: var(--wp--preset--color--border, #E0E0E0);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
--color-bg: var(--wp--preset--color--bg, #ffffff);
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--color-bg-alt: var(--wp--preset--color--bg-alt, #F5F5F5);
|
|
|
|
|
|
--color-bg-dark: var(--wp--preset--color--dark, #111111);
|
|
|
|
|
|
--color-heading: var(--wp--preset--color--dark, #111111);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
--header-scrolled-bg: rgba(255,255,255,.97);
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--header-scrolled-text: var(--wp--preset--color--text, #333333);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
--card-bg: var(--wp--preset--color--bg, #ffffff);
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--form-bg: var(--wp--preset--color--bg-alt, #F5F5F5);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
--form-bg-focus: var(--wp--preset--color--bg, #ffffff);
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Typography ── */
|
|
|
|
|
|
--font-sans: var(--wp--preset--font-family--sans, 'Inter', system-ui, -apple-system, sans-serif);
|
|
|
|
|
|
--font-heading: var(--wp--preset--font-family--heading, var(--font-sans));
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* ── Border radii ── */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
--radius-sm: var(--wp--custom--radius--sm, 6px);
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--radius-md: var(--wp--custom--radius--md, 10px);
|
|
|
|
|
|
--radius-lg: var(--wp--custom--radius--lg, 16px);
|
|
|
|
|
|
--radius-xl: var(--wp--custom--radius--xl, 24px);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--shadow-sm: none;
|
|
|
|
|
|
--shadow-md: 0 2px 8px rgba(0,0,0,.06);
|
|
|
|
|
|
--shadow-lg: 0 4px 16px rgba(0,0,0,.08);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
--transition: 0.2s ease;
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Layout ── */
|
|
|
|
|
|
--container-max: var(--wp--custom--container--max, 1200px);
|
|
|
|
|
|
--container-pad: var(--wp--custom--container--pad, clamp(1rem, 5vw, 2rem));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* ── Dark Mode ────────────────────────────────────────────── */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
[data-theme="dark"] {
|
2026-02-21 13:26:59 -05:00
|
|
|
|
--color-primary: var(--wp--custom--dark--primary, #FF6B3D);
|
|
|
|
|
|
--color-primary-dk: var(--wp--custom--dark--primary-dk, #D83302);
|
|
|
|
|
|
--color-primary-lt: var(--wp--custom--dark--primary-lt, rgba(216,51,2,.15));
|
|
|
|
|
|
--color-primary-rgb: 255,107,61;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
--color-accent: var(--wp--custom--dark--accent, #66BB6A);
|
|
|
|
|
|
--color-accent-dk: var(--wp--custom--dark--accent-dk, #388E3C);
|
|
|
|
|
|
--color-accent-lt: var(--wp--custom--dark--accent-lt, rgba(76,175,80,.12));
|
|
|
|
|
|
--color-accent-rgb: 102,187,106;
|
|
|
|
|
|
--color-dark: var(--wp--custom--dark--dark, #E0E0E0);
|
|
|
|
|
|
--color-dark-2: var(--wp--custom--dark--dark-2, #BDBDBD);
|
|
|
|
|
|
--color-text: var(--wp--custom--dark--text, #E0E0E0);
|
|
|
|
|
|
--color-text-muted: var(--wp--custom--dark--text-muted, #9E9E9E);
|
|
|
|
|
|
--color-border: var(--wp--custom--dark--border, #333333);
|
|
|
|
|
|
--color-bg: var(--wp--custom--dark--bg, #1A1A1A);
|
|
|
|
|
|
--color-bg-alt: var(--wp--custom--dark--bg-alt, #222222);
|
|
|
|
|
|
--color-bg-dark: var(--wp--custom--dark--bg-dark, #111111);
|
|
|
|
|
|
--color-heading: var(--wp--custom--dark--heading, #F5F5F5);
|
|
|
|
|
|
--header-scrolled-bg: rgba(26,26,26,.97);
|
|
|
|
|
|
--header-scrolled-text: var(--wp--custom--dark--text, #E0E0E0);
|
|
|
|
|
|
--card-bg: var(--wp--custom--dark--card-bg, #222222);
|
|
|
|
|
|
--form-bg: var(--wp--custom--dark--card-bg, #222222);
|
|
|
|
|
|
--form-bg-focus: #2A2A2A;
|
|
|
|
|
|
|
|
|
|
|
|
--shadow-sm: none;
|
|
|
|
|
|
--shadow-md: 0 2px 8px rgba(0,0,0,.3);
|
|
|
|
|
|
--shadow-lg: 0 4px 16px rgba(0,0,0,.4);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 2. Reset / Base ────────────────────────────────────────── */
|
|
|
|
|
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
html { scroll-behavior: smooth; font-size: 16px; }
|
|
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
|
font-family: var(--font-sans);
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
background: var(--color-bg);
|
|
|
|
|
|
line-height: 1.65;
|
|
|
|
|
|
-webkit-font-smoothing: antialiased;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
img, video { max-width: 100%; display: block; }
|
|
|
|
|
|
a { color: inherit; text-decoration: none; transition: color var(--transition); }
|
|
|
|
|
|
a:hover { color: var(--color-primary); }
|
|
|
|
|
|
|
2026-02-21 16:47:11 -05:00
|
|
|
|
/* ── Scroll-reveal animation classes ───────────────────────── */
|
|
|
|
|
|
.scroll-hidden {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translateY(24px);
|
|
|
|
|
|
}
|
|
|
|
|
|
.scroll-visible {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translateY(0);
|
|
|
|
|
|
transition: opacity .5s ease, transform .5s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 21:28:00 -05:00
|
|
|
|
/* Smooth theme transition */
|
|
|
|
|
|
body,
|
|
|
|
|
|
.site-header,
|
|
|
|
|
|
.feature-card,
|
|
|
|
|
|
.pricing-card,
|
|
|
|
|
|
.contact-form-wrap,
|
|
|
|
|
|
.platform-visual,
|
2026-02-21 17:20:19 -05:00
|
|
|
|
.platform-text h3,
|
|
|
|
|
|
.platform-text p,
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.form-group input,
|
|
|
|
|
|
.form-group textarea,
|
|
|
|
|
|
.form-group select { transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition); }
|
|
|
|
|
|
ul { list-style: none; }
|
|
|
|
|
|
button { font-family: inherit; cursor: pointer; border: none; background: none; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 3. Layout Utilities ───────────────────────────────────── */
|
|
|
|
|
|
.container {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
max-width: var(--container-max);
|
|
|
|
|
|
margin-inline: auto;
|
|
|
|
|
|
padding-inline: var(--container-pad);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.section {
|
|
|
|
|
|
padding-block: clamp(4rem, 8vw, 7rem);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.section-alt { background: var(--color-bg-alt); }
|
|
|
|
|
|
.section-dark {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: #111111;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.section-header {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
max-width: 680px;
|
|
|
|
|
|
margin-inline: auto;
|
|
|
|
|
|
margin-bottom: 3.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.section-header .section-label {
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
font-size: .75rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: .1em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
margin-bottom: .75rem;
|
|
|
|
|
|
}
|
2026-02-20 22:06:53 -05:00
|
|
|
|
.section-dark .section-header .section-label { color: var(--color-primary-lt); }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; }
|
|
|
|
|
|
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
|
|
|
|
|
|
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 960px) {
|
|
|
|
|
|
.grid-3 { grid-template-columns: repeat(2, 1fr); }
|
|
|
|
|
|
.grid-4 { grid-template-columns: repeat(2, 1fr); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; gap: 1.25rem; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 4. Typography ─────────────────────────────────────────── */
|
|
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
|
|
|
|
font-family: var(--font-heading, var(--font-sans));
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
}
|
|
|
|
|
|
.section-dark h1,
|
|
|
|
|
|
.section-dark h2,
|
|
|
|
|
|
.section-dark h3 { color: #fff; }
|
|
|
|
|
|
|
|
|
|
|
|
h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
|
|
|
|
|
|
h2 { font-size: clamp(1.6rem, 3.5vw, 2.4rem); }
|
|
|
|
|
|
h3 { font-size: clamp(1.1rem, 2vw, 1.35rem); }
|
|
|
|
|
|
h4 { font-size: 1rem; }
|
|
|
|
|
|
|
|
|
|
|
|
p { margin-bottom: 1rem; }
|
|
|
|
|
|
p:last-child { margin-bottom: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
.lead {
|
|
|
|
|
|
font-size: clamp(1rem, 2vw, 1.2rem);
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
line-height: 1.75;
|
|
|
|
|
|
}
|
|
|
|
|
|
.section-dark .lead { color: rgba(255,255,255,.75); }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 5. Buttons ────────────────────────────────────────────── */
|
|
|
|
|
|
.btn {
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .5rem;
|
|
|
|
|
|
padding: .8rem 1.75rem;
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
font-size: .95rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
transition: all var(--transition);
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.btn-primary {
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-primary:hover {
|
|
|
|
|
|
background: var(--color-primary-dk);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
transform: translateY(-1px);
|
|
|
|
|
|
box-shadow: 0 6px 20px rgba(var(--color-primary-rgb),.3);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.btn-outline {
|
|
|
|
|
|
border: 2px solid var(--color-primary);
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-outline:hover {
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
transform: translateY(-1px);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.btn-ghost {
|
|
|
|
|
|
border: 2px solid rgba(255,255,255,.35);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
.btn-ghost:hover {
|
|
|
|
|
|
background: rgba(255,255,255,.1);
|
|
|
|
|
|
border-color: rgba(255,255,255,.6);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.btn-sm { padding: .55rem 1.2rem; font-size: .875rem; }
|
|
|
|
|
|
.btn-lg { padding: 1rem 2.25rem; font-size: 1.05rem; }
|
|
|
|
|
|
|
|
|
|
|
|
.btn-group {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 6. Header ─────────────────────────────────────────────── */
|
|
|
|
|
|
.site-header {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
z-index: 100;
|
|
|
|
|
|
padding-block: 1rem;
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
transition: background var(--transition), box-shadow var(--transition), padding var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-header.scrolled {
|
|
|
|
|
|
background: var(--header-scrolled-bg);
|
|
|
|
|
|
box-shadow: var(--shadow-sm);
|
|
|
|
|
|
padding-block: .65rem;
|
|
|
|
|
|
backdrop-filter: blur(8px);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.header-inner {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 2rem;
|
|
|
|
|
|
height: 70px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Logo */
|
|
|
|
|
|
.site-logo {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
max-height: 60px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-logo a { display: flex; align-items: center; }
|
|
|
|
|
|
.custom-logo-link { display: flex; align-items: center; }
|
|
|
|
|
|
.site-logo img,
|
|
|
|
|
|
.custom-logo-link img,
|
|
|
|
|
|
.custom-logo,
|
|
|
|
|
|
.header-inner img {
|
|
|
|
|
|
max-height: 60px !important;
|
|
|
|
|
|
width: auto !important;
|
|
|
|
|
|
height: auto !important;
|
|
|
|
|
|
max-width: 220px !important;
|
|
|
|
|
|
display: block !important;
|
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
|
}
|
|
|
|
|
|
.logo-text {
|
|
|
|
|
|
font-size: 1.35rem;
|
|
|
|
|
|
font-weight: 300;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
letter-spacing: -.01em;
|
|
|
|
|
|
transition: color var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.logo-text strong { font-weight: 800; color: var(--color-accent); }
|
|
|
|
|
|
|
2026-02-21 14:42:45 -05:00
|
|
|
|
/* When header is over a light hero (set by JS) — unscrolled only */
|
|
|
|
|
|
.site-header.over-light-hero:not(.scrolled) .nav-menu a { color: var(--color-text); }
|
|
|
|
|
|
.site-header.over-light-hero:not(.scrolled) .nav-menu a:hover,
|
|
|
|
|
|
.site-header.over-light-hero:not(.scrolled) .nav-menu .current-menu-item > a { color: var(--color-primary); }
|
|
|
|
|
|
.site-header.over-light-hero:not(.scrolled) .logo-text { color: var(--color-heading); }
|
|
|
|
|
|
.site-header.over-light-hero:not(.scrolled) .nav-toggle span { background: var(--color-heading); }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
/* Nav */
|
|
|
|
|
|
.site-nav { margin-left: auto; }
|
|
|
|
|
|
.nav-menu {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-menu a {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
color: rgba(255,255,255,.85);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
padding-bottom: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 14:38:18 -05:00
|
|
|
|
/* Scrolled: switch to theme-appropriate text on solid bg */
|
|
|
|
|
|
.site-header.scrolled .nav-menu a { color: var(--header-scrolled-text); }
|
|
|
|
|
|
.site-header.scrolled .nav-menu a:hover,
|
|
|
|
|
|
.site-header.scrolled .nav-menu .current-menu-item > a { color: var(--color-primary); }
|
|
|
|
|
|
.site-header.scrolled .logo-text { color: var(--color-heading); }
|
|
|
|
|
|
.site-header.scrolled .nav-toggle span { background: var(--color-heading); }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.nav-menu a::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -2px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 0;
|
|
|
|
|
|
height: 2px;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
transition: width var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-menu a:hover,
|
|
|
|
|
|
.nav-menu .current-menu-item > a { color: #fff; }
|
|
|
|
|
|
.nav-menu a:hover::after,
|
|
|
|
|
|
.nav-menu .current-menu-item > a::after { width: 100%; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Dropdown sub-menu ─────────────────────────────────────── */
|
|
|
|
|
|
.nav-menu > li {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Invisible bridge fills the gap between the link and the dropdown panel,
|
|
|
|
|
|
so moving the cursor downward never breaks the :hover state. */
|
|
|
|
|
|
.nav-menu > li.menu-item-has-children::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 100%;
|
|
|
|
|
|
left: -1rem;
|
|
|
|
|
|
right: -1rem;
|
|
|
|
|
|
height: .85rem; /* must be >= the gap set on .sub-menu (top: calc(100% + .75rem)) */
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Caret indicator on parent items */
|
|
|
|
|
|
.nav-menu > li.menu-item-has-children > a {
|
|
|
|
|
|
padding-right: 1.2em;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-menu > li.menu-item-has-children > a::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-55%) rotate(45deg);
|
|
|
|
|
|
width: 5px;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
border-right: 1.5px solid currentColor;
|
|
|
|
|
|
border-bottom: 1.5px solid currentColor;
|
|
|
|
|
|
transition: transform var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-menu > li.menu-item-has-children:hover > a::before {
|
|
|
|
|
|
transform: translateY(-30%) rotate(225deg);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Dropdown panel */
|
|
|
|
|
|
.nav-menu .sub-menu {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: calc(100% + .75rem);
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
min-width: 200px;
|
|
|
|
|
|
background: var(--color-bg);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
box-shadow: var(--shadow-md);
|
|
|
|
|
|
padding: .5rem 0;
|
|
|
|
|
|
list-style: none;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
z-index: 200;
|
|
|
|
|
|
/* Hidden by default */
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
visibility: hidden;
|
|
|
|
|
|
transform: translateX(-50%) translateY(-6px);
|
|
|
|
|
|
transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Arrow notch above the dropdown */
|
|
|
|
|
|
.nav-menu .sub-menu::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -6px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%) rotate(45deg);
|
|
|
|
|
|
width: 10px;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
background: var(--color-bg);
|
|
|
|
|
|
border-top: 1px solid var(--color-border);
|
|
|
|
|
|
border-left: 1px solid var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Show on hover */
|
|
|
|
|
|
.nav-menu > li.menu-item-has-children:hover > .sub-menu,
|
|
|
|
|
|
.nav-menu > li.menu-item-has-children:focus-within > .sub-menu {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
pointer-events: auto;
|
|
|
|
|
|
visibility: visible;
|
|
|
|
|
|
transform: translateX(-50%) translateY(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Sub-menu links */
|
|
|
|
|
|
.nav-menu .sub-menu a {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
padding: .55rem 1.25rem;
|
|
|
|
|
|
font-size: .875rem;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-menu .sub-menu a::after { display: none; }
|
|
|
|
|
|
.nav-menu .sub-menu a:hover,
|
|
|
|
|
|
.nav-menu .sub-menu .current-menu-item > a {
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Dark mode overrides */
|
|
|
|
|
|
[data-theme="dark"] .nav-menu .sub-menu {
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
border-color: var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] .nav-menu .sub-menu::before {
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] .nav-menu .sub-menu a:hover,
|
|
|
|
|
|
[data-theme="dark"] .nav-menu .sub-menu .current-menu-item > a {
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.header-cta { margin-left: 1rem; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Mobile toggle */
|
|
|
|
|
|
.nav-toggle {
|
|
|
|
|
|
display: none;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
padding: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-toggle span {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 24px;
|
|
|
|
|
|
height: 2px;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
transition: all var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
|
|
|
|
|
|
.nav-toggle.open span:nth-child(2) { opacity: 0; }
|
|
|
|
|
|
.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
.nav-toggle { display: flex; }
|
|
|
|
|
|
.site-nav, .header-cta { display: none; }
|
|
|
|
|
|
.site-nav.open {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
top: 0; left: 0; right: 0; bottom: 0;
|
|
|
|
|
|
background: var(--color-dark);
|
|
|
|
|
|
z-index: 99;
|
2026-02-21 17:12:28 -05:00
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu {
|
2026-02-20 21:28:00 -05:00
|
|
|
|
padding: 5rem 2rem 2rem;
|
2026-02-21 17:12:28 -05:00
|
|
|
|
height: 100vh;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
overflow-y: auto;
|
2026-02-21 17:06:47 -05:00
|
|
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
|
|
}
|
|
|
|
|
|
body.menu-open {
|
|
|
|
|
|
overflow: hidden;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu {
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu > li {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu a {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-size: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Mobile sub-menu */
|
|
|
|
|
|
.site-nav.open .nav-menu > li.menu-item-has-children > a {
|
|
|
|
|
|
padding-right: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu > li.menu-item-has-children > a::before {
|
|
|
|
|
|
right: .25rem;
|
|
|
|
|
|
border-color: rgba(255,255,255,.7);
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu > li.menu-item-has-children.submenu-open > a::before {
|
|
|
|
|
|
transform: translateY(-30%) rotate(225deg);
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu .sub-menu {
|
|
|
|
|
|
position: static;
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
visibility: visible;
|
|
|
|
|
|
pointer-events: auto;
|
|
|
|
|
|
background: rgba(255,255,255,.07);
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
padding: .5rem 0 .5rem .75rem;
|
|
|
|
|
|
margin-top: .5rem;
|
|
|
|
|
|
display: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu .sub-menu::before { display: none; }
|
|
|
|
|
|
.site-nav.open .nav-menu > li.menu-item-has-children.submenu-open > .sub-menu {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu .sub-menu a {
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
padding: .4rem .75rem;
|
|
|
|
|
|
color: rgba(255,255,255,.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
.site-nav.open .nav-menu .sub-menu a:hover {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 7. Hero ───────────────────────────────────────────────── */
|
|
|
|
|
|
|
|
|
|
|
|
/* Datacenter canvas background (used by page-hero) */
|
|
|
|
|
|
@keyframes dc-breathe {
|
|
|
|
|
|
0%, 100% { filter: blur(1.5px) brightness(0.82) saturate(1.1); }
|
|
|
|
|
|
50% { filter: blur(2.5px) brightness(0.76) saturate(1.2); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dc-canvas {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
z-index: 0;
|
|
|
|
|
|
filter: blur(2px) brightness(0.80) saturate(1.15);
|
|
|
|
|
|
animation: dc-breathe 8s ease-in-out infinite;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
display: block;
|
2026-02-21 13:22:07 -05:00
|
|
|
|
will-change: filter;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-overlay {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
pointer-events: none;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: rgba(17, 17, 17, 0.85);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
min-height: 100vh;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: #111111;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-inner {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
gap: 3rem;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding-block: 8rem 5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-label {
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .5rem;
|
|
|
|
|
|
background: rgba(var(--color-primary-rgb),.12);
|
|
|
|
|
|
border: 1px solid rgba(var(--color-primary-rgb),.25);
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
font-size: .75rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: .1em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
padding: .4rem 1rem;
|
|
|
|
|
|
border-radius: 100px;
|
|
|
|
|
|
margin-bottom: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-title {
|
|
|
|
|
|
font-size: clamp(2.2rem, 5vw, 3.8rem);
|
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
|
line-height: 1.1;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
margin-bottom: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-title .highlight {
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-description {
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
color: rgba(255,255,255,.7);
|
|
|
|
|
|
max-width: 520px;
|
|
|
|
|
|
margin-bottom: 2.5rem;
|
|
|
|
|
|
line-height: 1.8;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-stats {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 2.5rem;
|
|
|
|
|
|
margin-top: 3rem;
|
|
|
|
|
|
padding-top: 2rem;
|
|
|
|
|
|
border-top: 1px solid rgba(255,255,255,.1);
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-stat-value {
|
|
|
|
|
|
font-size: 1.75rem;
|
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-stat-label {
|
|
|
|
|
|
font-size: .8rem;
|
|
|
|
|
|
color: rgba(255,255,255,.5);
|
|
|
|
|
|
margin-top: .2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Hero visual - device illustration */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.hero-visual {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: flex-end;
|
|
|
|
|
|
min-height: 0;
|
|
|
|
|
|
align-self: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Device grid ───────────────────────────────────────────── */
|
|
|
|
|
|
.hero-devices {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: flex-end;
|
|
|
|
|
|
gap: 1.75rem;
|
|
|
|
|
|
padding-bottom: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Individual device wrapper ─────────────────────────────── */
|
|
|
|
|
|
.hero-device {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column-reverse;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .75rem;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
animation: hero-device-in 1.4s ease-out forwards;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device--laptop { animation-delay: .3s; }
|
|
|
|
|
|
.hero-device--cloud { animation-delay: .6s; }
|
|
|
|
|
|
.hero-device--desktop { animation-delay: .9s; }
|
|
|
|
|
|
.hero-device--phone { animation-delay: 1.2s; }
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes hero-device-in {
|
|
|
|
|
|
from { opacity: 0; transform: translateY(18px); }
|
|
|
|
|
|
to { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Device frame ──────────────────────────────────────────── */
|
|
|
|
|
|
.hero-device__frame {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Screen (shared) ───────────────────────────────────────── */
|
|
|
|
|
|
.hero-device__screen {
|
|
|
|
|
|
background: var(--hero-screen-bg, #0f1623);
|
|
|
|
|
|
border: 1.5px solid var(--hero-screen-border, rgba(255,255,255,.15));
|
|
|
|
|
|
border-radius: 8px 8px 0 0;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
box-shadow: 0 4px 20px rgba(0,0,0,.3), 0 0 0 1px rgba(255,255,255,.05);
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__screen-content {
|
|
|
|
|
|
padding: .75rem;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .4rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Laptop specifics ──────────────────────────────────────── */
|
|
|
|
|
|
.hero-device--laptop .hero-device__screen {
|
|
|
|
|
|
width: 140px;
|
|
|
|
|
|
height: 95px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__base {
|
|
|
|
|
|
width: 160px;
|
|
|
|
|
|
height: 6px;
|
|
|
|
|
|
background: var(--hero-frame-bg, #1a2236);
|
|
|
|
|
|
border-radius: 0 0 4px 4px;
|
|
|
|
|
|
border: 1.5px solid var(--hero-screen-border, rgba(255,255,255,.15));
|
|
|
|
|
|
border-top: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* -- Laptop app bars -- */
|
|
|
|
|
|
.hero-device__app-bars {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 4px;
|
|
|
|
|
|
width: 80%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__app-bars div {
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
background: var(--hero-bar-bg, rgba(255,255,255,.12));
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__app-bars div:nth-child(1) { width: 100%; }
|
|
|
|
|
|
.hero-device__app-bars div:nth-child(2) { width: 75%; }
|
|
|
|
|
|
.hero-device__app-bars div:nth-child(3) { width: 55%; }
|
|
|
|
|
|
.hero-device__app-bars div:nth-child(4) { width: 40%; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Cloud (365Care) specifics ─────────────────────────────── */
|
|
|
|
|
|
.hero-device--cloud .hero-device__frame {
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__cloud-icon {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 80px;
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
filter: drop-shadow(0 2px 12px rgba(var(--color-primary-rgb),.2));
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.hero-device__cloud-icon svg {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__cloud-icon svg path {
|
|
|
|
|
|
stroke-width: 2.5;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__cloud-label {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-family: var(--font-sans);
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
letter-spacing: -.02em;
|
|
|
|
|
|
padding-top: 6px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Desktop specifics ─────────────────────────────────────── */
|
|
|
|
|
|
.hero-device--desktop .hero-device__screen {
|
|
|
|
|
|
width: 170px;
|
|
|
|
|
|
height: 115px;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border: 1.5px solid var(--color-primary);
|
|
|
|
|
|
box-shadow: 0 4px 24px rgba(var(--color-primary-rgb),.15), 0 0 0 1px rgba(var(--color-primary-rgb),.08);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.hero-device__stand {
|
|
|
|
|
|
width: 10px;
|
|
|
|
|
|
height: 18px;
|
|
|
|
|
|
background: var(--hero-frame-bg, #1a2236);
|
|
|
|
|
|
border-left: 1px solid var(--hero-screen-border, rgba(255,255,255,.1));
|
|
|
|
|
|
border-right: 1px solid var(--hero-screen-border, rgba(255,255,255,.1));
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__stand-base {
|
|
|
|
|
|
width: 50px;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
background: var(--hero-frame-bg, #1a2236);
|
|
|
|
|
|
border-radius: 0 0 3px 3px;
|
|
|
|
|
|
border: 1px solid var(--hero-screen-border, rgba(255,255,255,.1));
|
|
|
|
|
|
border-top: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Dashboard contents */
|
|
|
|
|
|
.hero-device__dash-row {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 6px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__dash-card {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 28px;
|
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
|
background: var(--hero-bar-bg, rgba(255,255,255,.08));
|
|
|
|
|
|
border: 1px solid var(--hero-card-inner-border, rgba(255,255,255,.04));
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__dash-bar {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 6px;
|
|
|
|
|
|
border-radius: 3px;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
opacity: .65;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__dash-bar--short {
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
opacity: .5;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Phone specifics ───────────────────────────────────────── */
|
|
|
|
|
|
.hero-device--phone .hero-device__screen {
|
|
|
|
|
|
width: 72px;
|
|
|
|
|
|
height: 120px;
|
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
|
border: 1.5px solid var(--hero-screen-border, rgba(255,255,255,.2));
|
|
|
|
|
|
box-shadow: 0 4px 20px rgba(0,0,0,.3);
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__notif {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__notif-icon {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: rgba(34,197,94,.2);
|
|
|
|
|
|
color: #22c55e;
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
box-shadow: 0 0 12px rgba(34,197,94,.25);
|
|
|
|
|
|
}
|
|
|
|
|
|
.hero-device__notif-text {
|
|
|
|
|
|
font-size: .6rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--hero-text-secondary, rgba(255,255,255,.5));
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: .08em;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Service list (stacks from bottom) ─────────────────────── */
|
|
|
|
|
|
.hero-device__services {
|
|
|
|
|
|
list-style: none;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column-reverse;
|
|
|
|
|
|
gap: .35rem;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.svc {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .4rem;
|
|
|
|
|
|
font-size: .65rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--hero-text-secondary, rgba(255,255,255,.6));
|
|
|
|
|
|
background: var(--hero-svc-bg, rgba(255,255,255,.04));
|
|
|
|
|
|
border: 1px solid var(--hero-svc-border, rgba(255,255,255,.06));
|
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
padding: .3rem .5rem;
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
animation: svc-stack-in .8s ease-out forwards;
|
|
|
|
|
|
}
|
|
|
|
|
|
.svc__dot {
|
|
|
|
|
|
width: 5px;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: #22c55e;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Stagger service items - stack upward from device */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.hero-device--laptop .svc--1 { animation-delay: 1.2s; }
|
|
|
|
|
|
.hero-device--laptop .svc--2 { animation-delay: 1.5s; }
|
|
|
|
|
|
.hero-device--laptop .svc--3 { animation-delay: 1.8s; }
|
|
|
|
|
|
.hero-device--cloud .svc--1 { animation-delay: 1.5s; }
|
|
|
|
|
|
.hero-device--cloud .svc--2 { animation-delay: 1.8s; }
|
|
|
|
|
|
.hero-device--cloud .svc--3 { animation-delay: 2.1s; }
|
|
|
|
|
|
.hero-device--desktop .svc--1 { animation-delay: 1.8s; }
|
|
|
|
|
|
.hero-device--desktop .svc--2 { animation-delay: 2.1s; }
|
|
|
|
|
|
.hero-device--desktop .svc--3 { animation-delay: 2.4s; }
|
|
|
|
|
|
.hero-device--phone .svc--1 { animation-delay: 2.1s; }
|
|
|
|
|
|
.hero-device--phone .svc--2 { animation-delay: 2.4s; }
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes svc-stack-in {
|
|
|
|
|
|
from { opacity: 0; transform: translateY(8px); }
|
|
|
|
|
|
to { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Light / Dark theme vars for hero ──────────────────────── */
|
|
|
|
|
|
:root, [data-theme="light"] {
|
|
|
|
|
|
--hero-screen-bg: #f7fafc;
|
|
|
|
|
|
--hero-screen-border: #e2e8f0;
|
|
|
|
|
|
--hero-frame-bg: #edf2f7;
|
|
|
|
|
|
--hero-bar-bg: #e2e8f0;
|
|
|
|
|
|
--hero-card-inner-border: #cbd5e0;
|
|
|
|
|
|
--hero-text-secondary: rgba(45,55,72,.6);
|
|
|
|
|
|
--hero-svc-bg: rgba(0,0,0,.03);
|
|
|
|
|
|
--hero-svc-border: #e2e8f0;
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] {
|
|
|
|
|
|
--hero-screen-bg: #0f1623;
|
|
|
|
|
|
--hero-screen-border: rgba(255,255,255,.1);
|
|
|
|
|
|
--hero-frame-bg: #1a2236;
|
|
|
|
|
|
--hero-bar-bg: rgba(255,255,255,.08);
|
|
|
|
|
|
--hero-card-inner-border: rgba(255,255,255,.04);
|
|
|
|
|
|
--hero-text-secondary: rgba(255,255,255,.55);
|
|
|
|
|
|
--hero-svc-bg: rgba(255,255,255,.04);
|
|
|
|
|
|
--hero-svc-border: rgba(255,255,255,.06);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Light-mode hero overrides */
|
|
|
|
|
|
[data-theme="light"] .hero {
|
|
|
|
|
|
background: var(--color-bg);
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-title {
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-description {
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-stats {
|
|
|
|
|
|
border-top-color: var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-stat-value {
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-stat-label {
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-label {
|
|
|
|
|
|
background: rgba(var(--color-primary-rgb),.08);
|
|
|
|
|
|
border-color: rgba(var(--color-primary-rgb),.2);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__app-bars div {
|
|
|
|
|
|
background: #cbd5e0;
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__screen {
|
|
|
|
|
|
box-shadow: 0 4px 20px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.05);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device--desktop .hero-device__screen {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
box-shadow: 0 4px 24px rgba(var(--color-primary-rgb),.08), 0 0 0 1px rgba(var(--color-primary-rgb),.05);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device--phone .hero-device__screen {
|
|
|
|
|
|
box-shadow: 0 4px 20px rgba(0,0,0,.08);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__cloud-icon {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
filter: drop-shadow(0 2px 12px rgba(var(--color-primary-rgb),.15));
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__cloud-icon svg path {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
stroke: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__notif-icon {
|
|
|
|
|
|
background: rgba(22,163,74,.12);
|
|
|
|
|
|
color: #16a34a;
|
|
|
|
|
|
box-shadow: 0 0 10px rgba(22,163,74,.15);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__dash-bar {
|
|
|
|
|
|
opacity: .5;
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .hero-device__dash-bar--short {
|
|
|
|
|
|
opacity: .35;
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="light"] .svc__dot {
|
|
|
|
|
|
background: #16a34a;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Reduced motion */
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.hero-device,
|
|
|
|
|
|
.svc {
|
|
|
|
|
|
animation: none;
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.hero-inner { grid-template-columns: 1fr; text-align: center; }
|
|
|
|
|
|
.hero-description { margin-inline: auto; }
|
|
|
|
|
|
.btn-group { justify-content: center; }
|
|
|
|
|
|
.hero-stats { justify-content: center; }
|
|
|
|
|
|
.hero-visual { margin-top: 2rem; }
|
|
|
|
|
|
.hero-devices { gap: 1rem; justify-content: center; }
|
|
|
|
|
|
.hero-device--laptop .hero-device__screen { width: 110px; height: 75px; }
|
|
|
|
|
|
.hero-device__base { width: 126px; }
|
|
|
|
|
|
.hero-device__cloud-icon { width: 64px; height: 48px; }
|
|
|
|
|
|
.hero-device__cloud-label { font-size: .9rem; }
|
|
|
|
|
|
.hero-device--desktop .hero-device__screen { width: 130px; height: 88px; }
|
|
|
|
|
|
.hero-device--phone .hero-device__screen { width: 58px; height: 96px; }
|
|
|
|
|
|
.svc { font-size: .58rem; padding: .25rem .4rem; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
|
|
|
.hero-devices { flex-wrap: wrap; gap: 1.5rem; }
|
|
|
|
|
|
.hero-device--desktop { order: -1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8. Shared Card Base ───────────────────────────────────── */
|
|
|
|
|
|
.oribi-card {
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
padding: 2rem;
|
|
|
|
|
|
transition: all var(--transition);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card:hover {
|
|
|
|
|
|
box-shadow: var(--shadow-md);
|
|
|
|
|
|
transform: translateY(-4px);
|
|
|
|
|
|
border-color: var(--color-primary-lt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card h3 { margin-bottom: .5rem; font-size: 1.1rem; }
|
|
|
|
|
|
.oribi-card p { color: var(--color-text-muted); font-size: .95rem; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Card Image System ─────────────────────────────────────── */
|
|
|
|
|
|
.oribi-card-img {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card-img--contain { object-fit: contain; }
|
|
|
|
|
|
.oribi-card-img--cover { object-fit: cover; }
|
|
|
|
|
|
.oribi-card-img-wrap {
|
|
|
|
|
|
line-height: 0;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Image position: top */
|
|
|
|
|
|
.oribi-card.img-top .oribi-card-img-wrap {
|
|
|
|
|
|
margin-bottom: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Image position: left - side-by-side */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.oribi-card.img-left {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
gap: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-left .oribi-card-img-wrap {
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-left .oribi-card-body {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
min-width: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
|
|
|
.oribi-card.img-left {
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Image position: replace-icon - image takes icon slot */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.oribi-card.img-replace-icon .oribi-card-img-wrap {
|
|
|
|
|
|
margin-bottom: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Image position: background */
|
|
|
|
|
|
.oribi-card.img-bg {
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-bg .oribi-card-img-wrap {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
z-index: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-bg .oribi-card-img-wrap .oribi-card-img {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
object-fit: cover;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-bg::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: rgba(17, 17, 17, 0.75);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
z-index: 1;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-bg .oribi-card-body {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.img-bg h3 { color: #fff; }
|
|
|
|
|
|
.oribi-card.img-bg p { color: rgba(255,255,255,.8); }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8a. Feature Card ──────────────────────────────────────── */
|
|
|
|
|
|
.feature-card-link {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
|
color: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
.feature-card-link:hover { color: inherit; }
|
|
|
|
|
|
.feature-icon {
|
|
|
|
|
|
width: 52px; height: 52px;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
border-radius: 14px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
margin-bottom: 1.25rem;
|
|
|
|
|
|
font-size: 1.4rem;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
transition: transform var(--transition), background var(--transition), color var(--transition);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Font Awesome <i> inside icon containers - normalise line-height and prevent
|
2026-02-20 21:28:00 -05:00
|
|
|
|
the icon from inheriting an unexpected font-size from its wrapper. */
|
|
|
|
|
|
.feature-icon i, .value-icon i {
|
|
|
|
|
|
line-height: 1;
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card:hover .feature-icon {
|
|
|
|
|
|
transform: scale(1.1);
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8b. Value Card ────────────────────────────────────────── */
|
|
|
|
|
|
.value-card {
|
|
|
|
|
|
text-align: center;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border-top: 3px solid var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
border-radius: var(--radius-sm) var(--radius-sm) var(--radius-md) var(--radius-md);
|
|
|
|
|
|
}
|
|
|
|
|
|
.value-card:hover {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border-top-color: var(--color-primary-dk);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.value-icon {
|
|
|
|
|
|
width: 64px; height: 64px;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary-lt);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
margin-inline: auto;
|
|
|
|
|
|
margin-bottom: 1.25rem;
|
|
|
|
|
|
font-size: 1.75rem;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
transition: transform var(--transition);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.value-card:hover .value-icon {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
transform: scale(1.05);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8c. Addon Card ────────────────────────────────────────── */
|
|
|
|
|
|
.oribi-card.addon-card {
|
|
|
|
|
|
border-style: dashed;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border-left: 3px solid var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
border-left-style: solid;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--card-bg);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-card:hover {
|
|
|
|
|
|
border-style: solid;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border-color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.addon-tag {
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--xs, .75rem);
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
padding: .25rem .75rem;
|
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
|
margin-bottom: .75rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
}
|
|
|
|
|
|
.addon-card h3 {
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
}
|
|
|
|
|
|
.addon-card p {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8d. Image Card ────────────────────────────────────────── */
|
|
|
|
|
|
.image-card {
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
border-radius: var(--radius-lg);
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
box-shadow: var(--shadow-sm);
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card:hover {
|
|
|
|
|
|
box-shadow: var(--shadow-lg);
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card .oribi-card-body { padding: 1.5rem 2rem; }
|
|
|
|
|
|
.image-card.img-left .oribi-card-body { padding: 1.5rem 1.5rem 1.5rem 0; }
|
|
|
|
|
|
.image-card .oribi-card-img {
|
|
|
|
|
|
transition: transform .4s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card:hover .oribi-card-img {
|
|
|
|
|
|
transform: scale(1.05);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8e. Stat Card ─────────────────────────────────────────── */
|
|
|
|
|
|
.stat-card {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-card::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
height: 4px;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.stat-value {
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--4-xl, 2.5rem);
|
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
line-height: 1;
|
|
|
|
|
|
margin-bottom: .25rem;
|
|
|
|
|
|
letter-spacing: -0.02em;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-card:hover .stat-value {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
color: var(--color-primary-dk);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.stat-label {
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--md, 1rem);
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: .05em;
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-card p {
|
|
|
|
|
|
margin-top: .75rem;
|
|
|
|
|
|
padding-top: .75rem;
|
|
|
|
|
|
border-top: 1px solid var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8f. Link Card ─────────────────────────────────────────── */
|
|
|
|
|
|
.link-card {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
border-left: 4px solid var(--color-dark-2);
|
|
|
|
|
|
border-radius: var(--radius-sm) var(--radius-md) var(--radius-md) var(--radius-sm);
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card:hover {
|
|
|
|
|
|
border-left-width: 5px;
|
|
|
|
|
|
border-left-color: var(--color-primary);
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card .feature-icon {
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
font-size: 1.6rem;
|
|
|
|
|
|
width: auto;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card:hover .feature-icon {
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card-cta {
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--sm, .875rem);
|
|
|
|
|
|
text-decoration: none;
|
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .35rem;
|
|
|
|
|
|
margin-top: auto;
|
|
|
|
|
|
padding-top: .75rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card-cta::after {
|
|
|
|
|
|
content: '\2192';
|
|
|
|
|
|
transition: transform var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card:hover .link-card-cta::after {
|
|
|
|
|
|
transform: translateX(4px);
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card-cta:hover { text-decoration: underline; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8g. Card Mobile Responsive ────────────────────────────── */
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Tablet - tighten padding & typography */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
@media (max-width: 960px) {
|
|
|
|
|
|
.oribi-card {
|
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-value {
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--3-xl, 2rem);
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card .oribi-card-body {
|
|
|
|
|
|
padding: 1.25rem 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Small screens - single-column adjustments */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.oribi-card {
|
|
|
|
|
|
padding: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card h3 {
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card p {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Feature card: smaller icon */
|
|
|
|
|
|
.feature-icon {
|
|
|
|
|
|
width: 44px;
|
|
|
|
|
|
height: 44px;
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Value card: downsize icon, keep centered */
|
|
|
|
|
|
.value-icon {
|
|
|
|
|
|
width: 52px;
|
|
|
|
|
|
height: 52px;
|
|
|
|
|
|
font-size: 1.5rem;
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Addon card: softer gradient, thinner accent */
|
|
|
|
|
|
.oribi-card.addon-card {
|
|
|
|
|
|
border-left-width: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Image card: reduce body padding */
|
|
|
|
|
|
.image-card .oribi-card-body {
|
|
|
|
|
|
padding: 1rem 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card.img-left .oribi-card-body {
|
|
|
|
|
|
padding: 1rem 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card {
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Stat card: scale down the value */
|
|
|
|
|
|
.stat-value {
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--2-xl, 1.75rem);
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-label {
|
|
|
|
|
|
font-size: .8rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-card p {
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Link card: full-width friendly */
|
|
|
|
|
|
.link-card {
|
|
|
|
|
|
border-left-width: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card:hover {
|
|
|
|
|
|
border-left-width: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.link-card .feature-icon {
|
|
|
|
|
|
font-size: 1.4rem;
|
|
|
|
|
|
margin-bottom: .75rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Image-left layout stacks at this breakpoint */
|
|
|
|
|
|
.oribi-card.img-left {
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card.img-left {
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card.img-left .oribi-card-img-wrap {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Extra-small - compact for narrow phones */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
@media (max-width: 400px) {
|
|
|
|
|
|
.oribi-card {
|
|
|
|
|
|
padding: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.feature-icon {
|
|
|
|
|
|
width: 40px;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.value-icon {
|
|
|
|
|
|
width: 46px;
|
|
|
|
|
|
height: 46px;
|
|
|
|
|
|
font-size: 1.3rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-value {
|
|
|
|
|
|
font-size: var(--wp--preset--font-size--xl, 1.5rem);
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card .oribi-card-body {
|
|
|
|
|
|
padding: .875rem 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Touch devices - disable hover transform to prevent sticky states */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
@media (hover: none) {
|
|
|
|
|
|
.oribi-card:hover {
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
border-color: var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
.value-card:hover {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border-top-color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-card:hover {
|
|
|
|
|
|
border-style: dashed;
|
|
|
|
|
|
border-left-style: solid;
|
|
|
|
|
|
border-color: var(--color-border);
|
2026-02-20 22:06:53 -05:00
|
|
|
|
border-left-color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.link-card:hover {
|
|
|
|
|
|
border-left-width: 4px;
|
|
|
|
|
|
border-left-color: var(--color-dark-2);
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card:hover {
|
|
|
|
|
|
box-shadow: var(--shadow-sm);
|
|
|
|
|
|
}
|
|
|
|
|
|
.image-card:hover .oribi-card-img {
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card:hover .feature-icon {
|
|
|
|
|
|
transform: none;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.value-card:hover .value-icon {
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.stat-card:hover .stat-value {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
color: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.link-card:hover .link-card-cta::after {
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Legacy compat aliases (deprecated) */
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 8h. New Card Variants ─────────────────────────────────── */
|
|
|
|
|
|
|
|
|
|
|
|
/* Bold Statement Card - large text, green left border */
|
|
|
|
|
|
.oribi-card.bold-statement {
|
|
|
|
|
|
border-left: 5px solid var(--color-primary);
|
|
|
|
|
|
border-radius: 0 var(--radius-md) var(--radius-md) 0;
|
|
|
|
|
|
padding: 2.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.bold-statement h3 {
|
|
|
|
|
|
font-size: clamp(1.3rem, 2.5vw, 1.75rem);
|
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
|
margin-bottom: .75rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.bold-statement p {
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
line-height: 1.7;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Minimal Feature Card - clean icon + title + description */
|
|
|
|
|
|
.oribi-card.minimal-feature {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-bottom: 2px solid var(--color-border);
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
padding: 1.75rem 0;
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.minimal-feature:hover {
|
|
|
|
|
|
border-bottom-color: var(--color-primary);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.minimal-feature .feature-icon {
|
|
|
|
|
|
width: 44px; height: 44px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.minimal-feature h3 {
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.minimal-feature p {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Prominent Stat Card - oversized number */
|
|
|
|
|
|
.oribi-card.prominent-stat {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
padding: 2.5rem 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.prominent-stat:hover {
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.prominent-stat .stat-value {
|
|
|
|
|
|
font-size: clamp(2.5rem, 5vw, 3.5rem);
|
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
line-height: 1;
|
|
|
|
|
|
margin-bottom: .5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.prominent-stat .stat-label {
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: .08em;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.prominent-stat::before {
|
|
|
|
|
|
display: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Testimonial Card - quote with author */
|
|
|
|
|
|
.oribi-card.testimonial {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-left: 4px solid var(--color-primary);
|
|
|
|
|
|
border-radius: 0 var(--radius-md) var(--radius-md) 0;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
padding: 2rem 2.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.testimonial:hover {
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.testimonial blockquote,
|
|
|
|
|
|
.oribi-card.testimonial .testimonial-quote {
|
|
|
|
|
|
font-size: 1.05rem;
|
|
|
|
|
|
line-height: 1.8;
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
margin-bottom: 1.25rem;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.testimonial .testimonial-author {
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
font-size: .95rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.testimonial .testimonial-role {
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Action Card - icon, title, arrow CTA */
|
|
|
|
|
|
.oribi-card.action {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
padding: 2rem;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.action:hover {
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.action:hover h3,
|
|
|
|
|
|
.oribi-card.action:hover p,
|
|
|
|
|
|
.oribi-card.action:hover .feature-icon {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.action:hover .feature-icon {
|
|
|
|
|
|
background: rgba(255,255,255,.15);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.action .action-arrow {
|
|
|
|
|
|
margin-top: auto;
|
|
|
|
|
|
padding-top: 1rem;
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
transition: transform var(--transition), color var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.action:hover .action-arrow {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
transform: translateX(4px);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Comparison Row Card - checkmark + label */
|
|
|
|
|
|
.oribi-card.comparison-row {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-bottom: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
padding: 1.25rem 0;
|
|
|
|
|
|
background: transparent;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.comparison-row:hover {
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
padding-inline: 1rem;
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.comparison-row .comparison-check {
|
|
|
|
|
|
width: 28px;
|
|
|
|
|
|
height: 28px;
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.comparison-row h3 {
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.comparison-row p {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Image Info Card - image top + metadata */
|
|
|
|
|
|
.oribi-card.image-info {
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info:hover {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info .oribi-card-img-wrap {
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
line-height: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info .oribi-card-img {
|
|
|
|
|
|
transition: transform .3s ease;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info:hover .oribi-card-img {
|
|
|
|
|
|
transform: scale(1.03);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info .oribi-card-body {
|
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info .image-info-tag {
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
font-size: .72rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: .08em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
margin-bottom: .5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info h3 {
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
margin-bottom: .5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info p {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Addon Bundle Card - icon grid + features */
|
|
|
|
|
|
.oribi-card.addon-bundle {
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
padding: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle:hover {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle .bundle-icons {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: .75rem;
|
|
|
|
|
|
margin-bottom: 1.25rem;
|
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle .bundle-icon {
|
|
|
|
|
|
width: 40px;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle .bundle-features {
|
|
|
|
|
|
list-style: none;
|
|
|
|
|
|
margin-top: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle .bundle-features li {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: .5rem;
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
padding: .35rem 0;
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle .bundle-features li::before {
|
|
|
|
|
|
content: '\2713';
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
font-size: .8rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Status Badge Card - circle badge + label */
|
|
|
|
|
|
.oribi-card.status-badge {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
padding: 2.5rem 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.status-badge:hover {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.status-badge .badge-circle {
|
|
|
|
|
|
width: 80px;
|
|
|
|
|
|
height: 80px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
margin: 0 auto 1rem;
|
|
|
|
|
|
font-size: 1.5rem;
|
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.status-badge .badge-label {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: .05em;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Content Block Card - title + description + optional icon */
|
|
|
|
|
|
.oribi-card.content-block {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
padding: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.content-block:hover {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
transform: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.content-block .content-block-icon {
|
|
|
|
|
|
width: 56px;
|
|
|
|
|
|
height: 56px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
color: var(--color-primary);
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 1.4rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.content-block .content-block-body {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
min-width: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.content-block h3 {
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
margin-bottom: .5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.content-block p {
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
line-height: 1.65;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── New card variants: responsive overrides ───────────────── */
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.oribi-card.bold-statement {
|
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
|
border-left-width: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.prominent-stat {
|
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.prominent-stat .stat-value {
|
|
|
|
|
|
font-size: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.testimonial {
|
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.content-block {
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.image-info .oribi-card-body {
|
|
|
|
|
|
padding: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.addon-bundle {
|
|
|
|
|
|
padding: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.oribi-card.status-badge .badge-circle {
|
|
|
|
|
|
width: 64px;
|
|
|
|
|
|
height: 64px;
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Legacy compat aliases (deprecated) */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.feature-card {
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
padding: 2rem;
|
|
|
|
|
|
transition: all var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.feature-card:hover {
|
|
|
|
|
|
box-shadow: var(--shadow-md);
|
|
|
|
|
|
transform: translateY(-4px);
|
|
|
|
|
|
border-color: var(--color-primary-lt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.card-image {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
}
|
|
|
|
|
|
.card-image-wrap { line-height: 0; }
|
|
|
|
|
|
.card-img-left {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
gap: 1.25rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.card-img-left .card-image-wrap { flex-shrink: 0; }
|
|
|
|
|
|
.card-img-left-body { flex: 1; min-width: 0; }
|
|
|
|
|
|
.card-img-left h3 { margin-bottom: .5rem; font-size: 1.1rem; }
|
|
|
|
|
|
.card-img-left p { color: var(--color-text-muted); font-size: .95rem; margin: 0; }
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
|
|
|
.card-img-left { flex-direction: column; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 9. Pricing ────────────────────────────────────────────── */
|
|
|
|
|
|
.pricing-grid {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
|
|
|
gap: 2rem;
|
|
|
|
|
|
max-width: 800px;
|
|
|
|
|
|
margin-inline: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-grid-3 {
|
|
|
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
|
|
|
max-width: 1100px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-card {
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
border: 2px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-lg);
|
|
|
|
|
|
padding: 2.5rem;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
transition: all var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-card:hover {
|
|
|
|
|
|
box-shadow: var(--shadow-md);
|
|
|
|
|
|
transform: translateY(-4px);
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-card.featured {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
box-shadow: 0 0 0 4px rgba(var(--color-primary-rgb),.1);
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-badge {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -14px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-size: .72rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: .1em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
padding: .35rem 1rem;
|
|
|
|
|
|
border-radius: 100px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-name { font-size: 1.25rem; font-weight: 700; margin-bottom: .5rem; }
|
|
|
|
|
|
.pricing-tagline { font-size: .9rem; color: var(--color-text-muted); margin-bottom: 1.5rem; }
|
|
|
|
|
|
.pricing-price { margin-bottom: 1.5rem; }
|
|
|
|
|
|
.pricing-amount {
|
|
|
|
|
|
font-size: 2.5rem;
|
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
line-height: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-amount sup { font-size: 1.25rem; vertical-align: super; }
|
|
|
|
|
|
.pricing-per { font-size: .85rem; color: var(--color-text-muted); margin-top: .35rem; }
|
|
|
|
|
|
.pricing-features {
|
|
|
|
|
|
list-style: none;
|
|
|
|
|
|
margin-bottom: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-features li {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
gap: .6rem;
|
|
|
|
|
|
font-size: .9rem;
|
|
|
|
|
|
padding: .5rem 0;
|
|
|
|
|
|
border-bottom: 1px solid var(--color-border);
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
}
|
|
|
|
|
|
.pricing-features li:last-child { border-bottom: none; }
|
2026-02-20 22:06:53 -05:00
|
|
|
|
.pricing-check { color: var(--color-primary); font-size: 1rem; flex-shrink: 0; margin-top: 1px; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.pricing-grid-3 { grid-template-columns: 1fr; max-width: 400px; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.pricing-grid { grid-template-columns: 1fr; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 10. Platform Feature Rows ─────────────────────────────── */
|
|
|
|
|
|
.platform-row {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
gap: 4rem;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding-block: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.platform-row + .platform-row {
|
|
|
|
|
|
border-top: 1px solid var(--color-border);
|
|
|
|
|
|
margin-top: 2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.platform-row.reverse .platform-text { order: 2; }
|
|
|
|
|
|
.platform-row.reverse .platform-visual { order: 1; }
|
|
|
|
|
|
|
2026-02-21 17:20:19 -05:00
|
|
|
|
.platform-text h3 { font-size: 1.5rem; margin-bottom: 1rem; color: var(--color-heading); }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.platform-text p { color: var(--color-text-muted); }
|
|
|
|
|
|
|
|
|
|
|
|
.platform-visual {
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
aspect-ratio: 4/3;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 4rem;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* When an image is set, remove the framed background styling */
|
|
|
|
|
|
.platform-visual.has-img {
|
|
|
|
|
|
background: none;
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
.platform-row { grid-template-columns: 1fr; }
|
|
|
|
|
|
.platform-row.reverse .platform-text,
|
|
|
|
|
|
.platform-row.reverse .platform-visual { order: unset; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 02:20:45 -05:00
|
|
|
|
/* Dashboard visual - remove framed background */
|
|
|
|
|
|
.platform-visual.has-dashboard {
|
|
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: visible;
|
|
|
|
|
|
box-shadow: none;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
2026-02-21 02:20:45 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 02:23:06 -05:00
|
|
|
|
/* ── Dashboard TV frame ────────────────────────── */
|
|
|
|
|
|
.dashboard-tv {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin: 0 auto;
|
2026-02-21 02:23:06 -05:00
|
|
|
|
}
|
|
|
|
|
|
.dashboard-tv__body {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
max-width: 520px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 4px solid #111;
|
2026-02-21 02:23:06 -05:00
|
|
|
|
border-radius: 6px 6px 4px 4px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
outline: 1px solid #000;
|
2026-02-21 02:23:06 -05:00
|
|
|
|
padding: 3px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 14px 48px rgba(0,0,0,0.55);
|
|
|
|
|
|
}
|
|
|
|
|
|
.dashboard-tv__body::after {
|
|
|
|
|
|
content: '\25B6';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -13px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
font-size: 8px;
|
|
|
|
|
|
color: rgba(74,222,128,0.7);
|
|
|
|
|
|
}
|
|
|
|
|
|
.dashboard-tv__screen {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
aspect-ratio: 16/9;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: var(--color-bg);
|
2026-02-21 02:23:06 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dashboard-tv__screen .dashboard-chart {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dashboard-tv__feet {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
max-width: 300px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.dashboard-tv__foot {
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 8px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 02:23:06 -05:00
|
|
|
|
border-radius: 0 0 4px 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 01:33:52 -05:00
|
|
|
|
/* ── 10b. Device Animator ───────────────────────────────────── */
|
|
|
|
|
|
.platform-visual.has-anim {
|
2026-02-21 01:42:47 -05:00
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
aspect-ratio: unset;
|
2026-02-21 13:22:07 -05:00
|
|
|
|
min-height: 300px;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
padding: 0;
|
2026-02-21 01:42:47 -05:00
|
|
|
|
overflow: visible;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
position: relative;
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-stage {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Each device panel – hidden by default, centred in stage */
|
|
|
|
|
|
.da-device {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translate(-50%, -50%) scale(0.88);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
transition: opacity 0.55s cubic-bezier(0.4,0,0.2,1),
|
|
|
|
|
|
transform 0.55s cubic-bezier(0.4,0,0.2,1);
|
|
|
|
|
|
will-change: opacity, transform;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-device.is-active {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translate(-50%, -50%) scale(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-device.is-leaving {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translate(-50%, -50%) scale(1.07);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Screen surface */
|
|
|
|
|
|
.da-screen {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
background:
|
|
|
|
|
|
repeating-linear-gradient(
|
|
|
|
|
|
180deg,
|
|
|
|
|
|
transparent,
|
|
|
|
|
|
transparent 3px,
|
|
|
|
|
|
rgba(0,0,0,0.10) 3px,
|
|
|
|
|
|
rgba(0,0,0,0.10) 4px
|
|
|
|
|
|
),
|
|
|
|
|
|
linear-gradient(135deg, #0c1016 0%, #151c28 60%, #0c1016 100%);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-screen::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -20%;
|
|
|
|
|
|
left: -10%;
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
height: 60%;
|
|
|
|
|
|
background: radial-gradient(ellipse, rgba(74,222,128,0.12) 0%, transparent 70%);
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes da-scan {
|
|
|
|
|
|
0% { top: -6%; opacity: 0; }
|
|
|
|
|
|
5% { opacity: 1; }
|
|
|
|
|
|
95% { opacity: 1; }
|
|
|
|
|
|
100% { top: 106%; opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-screen::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: linear-gradient(90deg, transparent, rgba(74,222,128,0.28), transparent);
|
|
|
|
|
|
animation: da-scan 3s linear infinite;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Device label */
|
|
|
|
|
|
.da-label {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
margin-top: 11px;
|
|
|
|
|
|
font-size: 0.68rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
letter-spacing: 0.12em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Tablet ────────────────────────────────────── */
|
|
|
|
|
|
.da-tablet .da-body {
|
|
|
|
|
|
width: 128px;
|
|
|
|
|
|
height: 194px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 2px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 14px;
|
|
|
|
|
|
padding: 10px 8px 14px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 16px 48px rgba(0,0,0,0.50);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-tablet .da-body::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 5px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
width: 6px;
|
|
|
|
|
|
height: 6px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #333;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-tablet .da-body::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: 5px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
width: 36px;
|
|
|
|
|
|
height: 3px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #333;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Small Monitor ─────────────────────────────── */
|
|
|
|
|
|
.da-monitor-sm .da-body {
|
|
|
|
|
|
width: 236px;
|
|
|
|
|
|
height: 146px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 5px solid #111;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 6px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
outline: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
padding: 3px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 10px 36px rgba(0,0,0,0.50);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-monitor-sm .da-body::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -9px;
|
|
|
|
|
|
right: 8px;
|
|
|
|
|
|
width: 5px;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
box-shadow: 0 0 5px var(--color-primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-monitor-sm .da-stand,
|
|
|
|
|
|
.da-monitor-lg .da-stand { display: flex; flex-direction: column; align-items: center; }
|
|
|
|
|
|
.da-monitor-sm .da-stem {
|
|
|
|
|
|
width: 14px;
|
|
|
|
|
|
height: 20px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border-left: 1px solid #000;
|
|
|
|
|
|
border-right: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
}
|
|
|
|
|
|
.da-monitor-sm .da-base {
|
|
|
|
|
|
width: 68px;
|
|
|
|
|
|
height: 5px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Large Monitor ─────────────────────────────── */
|
|
|
|
|
|
.da-monitor-lg .da-body {
|
|
|
|
|
|
width: 298px;
|
|
|
|
|
|
height: 177px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 4px solid #111;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 6px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
outline: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
padding: 3px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 12px 40px rgba(0,0,0,0.50);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-monitor-lg .da-stem {
|
|
|
|
|
|
width: 16px;
|
|
|
|
|
|
height: 26px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border-left: 1px solid #000;
|
|
|
|
|
|
border-right: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
}
|
|
|
|
|
|
.da-monitor-lg .da-base {
|
|
|
|
|
|
width: 88px;
|
|
|
|
|
|
height: 5px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── TV ────────────────────────────────────────── */
|
|
|
|
|
|
.da-tv .da-body {
|
|
|
|
|
|
width: 320px;
|
|
|
|
|
|
height: 188px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 4px solid #111;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 6px 6px 4px 4px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
outline: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
padding: 3px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 14px 48px rgba(0,0,0,0.55);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-tv .da-body::after {
|
|
|
|
|
|
content: '\25B6';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -13px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
font-size: 8px;
|
|
|
|
|
|
color: rgba(74,222,128,0.7);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-tv .da-feet { display: flex; justify-content: space-between; width: 180px; }
|
|
|
|
|
|
.da-tv .da-foot {
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 8px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 0 0 4px 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Projector ─────────────────────────────────── */
|
|
|
|
|
|
.da-projector .da-proj-layout { display: flex; flex-direction: column; align-items: center; }
|
|
|
|
|
|
.da-projector .da-proj-body {
|
|
|
|
|
|
width: 156px;
|
|
|
|
|
|
height: 62px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 10px 10px 8px 8px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 0 14px;
|
|
|
|
|
|
gap: 10px;
|
|
|
|
|
|
box-shadow: 0 6px 20px rgba(0,0,0,0.45);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-projector .da-proj-body::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 8px;
|
|
|
|
|
|
right: 10px;
|
|
|
|
|
|
width: 7px;
|
|
|
|
|
|
height: 7px;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
box-shadow: 0 0 6px var(--color-primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-projector .da-proj-body::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 10px;
|
|
|
|
|
|
bottom: 8px;
|
|
|
|
|
|
width: 28px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: repeating-linear-gradient(
|
|
|
|
|
|
90deg,
|
2026-02-21 10:28:20 -05:00
|
|
|
|
#333 0px,
|
|
|
|
|
|
#333 2px,
|
2026-02-21 01:33:52 -05:00
|
|
|
|
transparent 2px,
|
|
|
|
|
|
transparent 5px
|
|
|
|
|
|
);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-projector .da-lens {
|
|
|
|
|
|
width: 38px;
|
|
|
|
|
|
height: 38px;
|
|
|
|
|
|
background: #080c12;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
border: 2px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: inset 0 0 8px rgba(0,0,0,0.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-projector .da-lens::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 5px;
|
|
|
|
|
|
background: radial-gradient(circle at 35% 35%, rgba(74,222,128,0.30) 0%, #080c12 65%);
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-projector .da-beam {
|
|
|
|
|
|
width: 240px;
|
|
|
|
|
|
height: 50px;
|
|
|
|
|
|
clip-path: polygon(31% 0%, 69% 0%, 100% 100%, 0% 100%);
|
|
|
|
|
|
background: linear-gradient(
|
|
|
|
|
|
180deg,
|
|
|
|
|
|
rgba(74,222,128,0.07) 0%,
|
|
|
|
|
|
rgba(74,222,128,0.02) 100%
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-projector .da-proj-screen {
|
|
|
|
|
|
width: 240px;
|
|
|
|
|
|
height: 72px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
padding: 3px;
|
|
|
|
|
|
box-shadow: 0 4px 14px rgba(0,0,0,0.40);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Video Wall (2×2) ──────────────────────────── */
|
|
|
|
|
|
.da-vwall .da-vwall-grid {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
grid-template-rows: 1fr 1fr;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
background: #0a0d12;
|
|
|
|
|
|
padding: 5px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
border: 1px solid #000;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
border-radius: 4px;
|
|
|
|
|
|
box-shadow: 0 14px 48px rgba(0,0,0,0.60);
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-vwall .da-panel {
|
|
|
|
|
|
width: 148px;
|
|
|
|
|
|
height: 90px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 2px solid #111;
|
2026-02-21 01:33:52 -05:00
|
|
|
|
padding: 2px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
.da-vwall .da-panel:nth-child(2) .da-screen::after { animation-delay: -0.75s; }
|
|
|
|
|
|
.da-vwall .da-panel:nth-child(3) .da-screen::after { animation-delay: -1.5s; }
|
|
|
|
|
|
.da-vwall .da-panel:nth-child(4) .da-screen::after { animation-delay: -2.25s; }
|
|
|
|
|
|
/* ── Responsive scale-down ─────────────────────── */
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.da-device { transform: translate(-50%,-50%) scale(0.76); }
|
|
|
|
|
|
.da-device.is-active { transform: translate(-50%,-50%) scale(0.84); }
|
|
|
|
|
|
.da-device.is-leaving { transform: translate(-50%,-50%) scale(0.91); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.da-device { transform: translate(-50%,-50%) scale(0.56); }
|
|
|
|
|
|
.da-device.is-active { transform: translate(-50%,-50%) scale(0.64); }
|
|
|
|
|
|
.da-device.is-leaving { transform: translate(-50%,-50%) scale(0.70); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.da-device { transition: none; }
|
|
|
|
|
|
.da-screen::after { animation: none; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 09:43:58 -05:00
|
|
|
|
/* ── 10c. TV Stick Plug Animation ──────────────────────────── */
|
|
|
|
|
|
.platform-visual.has-tv-stick {
|
|
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: visible;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
font-size: inherit;
|
2026-02-21 17:20:19 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-self: center;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ts-stage {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
aspect-ratio: 4/3;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
2026-02-21 17:20:19 -05:00
|
|
|
|
/* Offset center leftward to account for the stick protruding on the right,
|
|
|
|
|
|
so the TV+stick combo appears visually centered in the column */
|
|
|
|
|
|
padding-right: 90px;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* ── TV ── */
|
|
|
|
|
|
.ts-tv {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-tv__body {
|
2026-02-21 17:20:19 -05:00
|
|
|
|
width: 400px;
|
|
|
|
|
|
height: 235px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 4px solid #111;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
border-radius: 6px 6px 4px 4px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
outline: 1px solid #000;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
padding: 3px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 14px 48px rgba(0,0,0,0.55);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-tv__screen {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
background:
|
|
|
|
|
|
repeating-linear-gradient(
|
|
|
|
|
|
180deg,
|
|
|
|
|
|
transparent,
|
|
|
|
|
|
transparent 3px,
|
|
|
|
|
|
rgba(0,0,0,0.10) 3px,
|
|
|
|
|
|
rgba(0,0,0,0.10) 4px
|
|
|
|
|
|
),
|
|
|
|
|
|
linear-gradient(135deg, #0c1016 0%, #151c28 60%, #0c1016 100%);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Subtle green ambient glow on screen */
|
|
|
|
|
|
.ts-tv__screen::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -20%;
|
|
|
|
|
|
left: -10%;
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
height: 60%;
|
|
|
|
|
|
background: radial-gradient(ellipse, rgba(74,222,128,0.12) 0%, transparent 70%);
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Scan line on screen */
|
|
|
|
|
|
.ts-tv__screen::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: linear-gradient(90deg, transparent, rgba(74,222,128,0.28), transparent);
|
|
|
|
|
|
animation: da-scan 3s linear infinite;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Screen glow when stick plugs in */
|
|
|
|
|
|
.ts-stage.is-plugged .ts-tv__screen {
|
|
|
|
|
|
animation: ts-screen-glow 0.8s ease 0.1s both;
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes ts-screen-glow {
|
|
|
|
|
|
0% { filter: brightness(1); }
|
|
|
|
|
|
40% { filter: brightness(1.25); }
|
|
|
|
|
|
100% { filter: brightness(1); }
|
|
|
|
|
|
}
|
2026-02-21 12:13:10 -05:00
|
|
|
|
/* ── Promotional slides inside screen ── */
|
|
|
|
|
|
.ts-slides {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transition: opacity 0.6s ease;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-stage.is-playing .ts-slides { opacity: 1; }
|
|
|
|
|
|
.ts-slide {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
padding: 12%;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transition: opacity 0.7s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-slide.is-active { opacity: 1; }
|
2026-02-21 12:18:48 -05:00
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
Slide 1 — Menu Board
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
.ts-slide--menu {
|
|
|
|
|
|
background: linear-gradient(170deg, #1a1206 0%, #0d0a04 100%);
|
|
|
|
|
|
padding: 8%;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-menu { width: 100%; height: 100%; display: flex; flex-direction: column; }
|
|
|
|
|
|
.ts-menu__header {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 6px;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
margin-bottom: 6px;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
padding-bottom: 4px;
|
|
|
|
|
|
border-bottom: 1px solid rgba(255,200,100,0.25);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-menu__logo {
|
|
|
|
|
|
width: 10px;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: #e6a730;
|
|
|
|
|
|
flex-shrink: 0;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-menu__title {
|
2026-02-21 12:13:10 -05:00
|
|
|
|
width: 50%;
|
|
|
|
|
|
height: 5px;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
background: rgba(255,220,150,0.8);
|
|
|
|
|
|
border-radius: 1px;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-menu__cols {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 10px;
|
|
|
|
|
|
flex: 1;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-menu__col {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-menu__cat {
|
|
|
|
|
|
width: 55%;
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
background: #e6a730;
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
margin-bottom: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-menu__item {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-menu__name {
|
|
|
|
|
|
width: 40%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: rgba(255,255,255,0.6);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-menu__dots {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 0;
|
|
|
|
|
|
border-bottom: 1px dotted rgba(255,255,255,0.18);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-menu__price {
|
|
|
|
|
|
width: 14%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: rgba(255,220,150,0.7);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
Slide 2 — Wayfinding Sign
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
.ts-slide--wayfind {
|
|
|
|
|
|
background: linear-gradient(170deg, #0c1a2e 0%, #081220 100%);
|
|
|
|
|
|
padding: 8%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf { width: 100%; height: 100%; display: flex; flex-direction: column; }
|
|
|
|
|
|
.ts-wf__header {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
margin-bottom: 8px;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
padding-bottom: 5px;
|
|
|
|
|
|
border-bottom: 1px solid rgba(74,222,128,0.2);
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-wf__building {
|
2026-02-21 12:13:10 -05:00
|
|
|
|
width: 60%;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
height: 5px;
|
|
|
|
|
|
background: rgba(255,255,255,0.7);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__rows {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__row {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
padding: 3px 4px;
|
|
|
|
|
|
background: rgba(255,255,255,0.04);
|
2026-02-21 12:13:10 -05:00
|
|
|
|
border-radius: 2px;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__arrow {
|
|
|
|
|
|
width: 0;
|
|
|
|
|
|
height: 0;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__arrow--left {
|
|
|
|
|
|
border-top: 3px solid transparent;
|
|
|
|
|
|
border-bottom: 3px solid transparent;
|
|
|
|
|
|
border-right: 5px solid #4ade80;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__arrow--right {
|
|
|
|
|
|
border-top: 3px solid transparent;
|
|
|
|
|
|
border-bottom: 3px solid transparent;
|
|
|
|
|
|
border-left: 5px solid #4ade80;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__arrow--up {
|
|
|
|
|
|
border-left: 3px solid transparent;
|
|
|
|
|
|
border-right: 3px solid transparent;
|
|
|
|
|
|
border-bottom: 5px solid #4ade80;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__label {
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: rgba(255,255,255,0.55);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-wf__label--w1 { max-width: 60%; }
|
|
|
|
|
|
.ts-wf__label--w2 { max-width: 45%; }
|
|
|
|
|
|
.ts-wf__label--w3 { max-width: 70%; }
|
|
|
|
|
|
.ts-wf__label--w4 { max-width: 50%; }
|
|
|
|
|
|
.ts-wf__floor {
|
|
|
|
|
|
width: 14px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: rgba(74,222,128,0.15);
|
|
|
|
|
|
border: 1px solid rgba(74,222,128,0.3);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
Slide 3 — Schedule / Timetable
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
.ts-slide--sched {
|
|
|
|
|
|
background: linear-gradient(170deg, #111827 0%, #0a0f1a 100%);
|
|
|
|
|
|
padding: 8%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched { width: 100%; height: 100%; display: flex; flex-direction: column; }
|
|
|
|
|
|
.ts-sched__header {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
margin-bottom: 6px;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
padding-bottom: 4px;
|
|
|
|
|
|
border-bottom: 1px solid rgba(74,222,128,0.2);
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-sched__title {
|
|
|
|
|
|
width: 35%;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
background: rgba(255,255,255,0.75);
|
|
|
|
|
|
border-radius: 1px;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-sched__date {
|
|
|
|
|
|
width: 20%;
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
background: rgba(255,255,255,0.3);
|
|
|
|
|
|
border-radius: 1px;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-sched__table {
|
2026-02-21 12:13:10 -05:00
|
|
|
|
display: flex;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
flex: 1;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-sched__hrow,
|
|
|
|
|
|
.ts-sched__row {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 3px;
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 12:18:48 -05:00
|
|
|
|
.ts-sched__hrow {
|
|
|
|
|
|
margin-bottom: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__hcell {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: rgba(255,255,255,0.25);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__hcell:first-child { flex: 0.5; }
|
|
|
|
|
|
.ts-sched__row {
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__time {
|
|
|
|
|
|
flex: 0.5;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__time::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
width: 80%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: rgba(255,255,255,0.3);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__cell {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
background: rgba(255,255,255,0.04);
|
2026-02-21 12:13:10 -05:00
|
|
|
|
border-radius: 2px;
|
2026-02-21 12:18:48 -05:00
|
|
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__event {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__event--a {
|
|
|
|
|
|
background: rgba(74,222,128,0.25);
|
|
|
|
|
|
border: 1px solid rgba(74,222,128,0.4);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__event--b {
|
|
|
|
|
|
background: rgba(96,165,250,0.25);
|
|
|
|
|
|
border: 1px solid rgba(96,165,250,0.4);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-sched__event--c {
|
|
|
|
|
|
background: rgba(251,191,36,0.25);
|
|
|
|
|
|
border: 1px solid rgba(251,191,36,0.4);
|
2026-02-21 12:13:10 -05:00
|
|
|
|
}
|
2026-02-21 09:43:58 -05:00
|
|
|
|
/* HDMI port on back-right of TV */
|
|
|
|
|
|
.ts-tv__port {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: -6px;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
width: 6px;
|
|
|
|
|
|
height: 14px;
|
|
|
|
|
|
background: #1a1a1a;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
border: 1px solid #000;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
border-left: none;
|
|
|
|
|
|
border-radius: 0 2px 2px 0;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-tv__port::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
top: 2px;
|
|
|
|
|
|
width: 3px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: #333;
|
|
|
|
|
|
border-radius: 0 1px 1px 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Feet */
|
|
|
|
|
|
.ts-tv__feet {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
2026-02-21 17:20:19 -05:00
|
|
|
|
width: 224px;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ts-tv__foot {
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 8px;
|
2026-02-21 10:28:20 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
border-radius: 0 0 4px 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Stick device ── */
|
|
|
|
|
|
.ts-stick {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: -20px;
|
|
|
|
|
|
top: 50%;
|
2026-02-21 12:07:06 -05:00
|
|
|
|
transform: translateY(-50%) translateX(80px) scaleX(-1);
|
2026-02-21 09:43:58 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-stick__body {
|
2026-02-21 17:20:19 -05:00
|
|
|
|
width: 84px;
|
|
|
|
|
|
height: 32px;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
background: linear-gradient(180deg, #f5f5f5, #e0e0e0);
|
|
|
|
|
|
border: 1px solid #ccc;
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow:
|
|
|
|
|
|
0 2px 8px rgba(0,0,0,0.25),
|
|
|
|
|
|
inset 0 1px 0 rgba(255,255,255,0.6);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Brand logo area subtle inset */
|
|
|
|
|
|
.ts-stick__body::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 6px;
|
|
|
|
|
|
left: 10px;
|
|
|
|
|
|
width: 28px;
|
|
|
|
|
|
height: 12px;
|
|
|
|
|
|
background: rgba(0,0,0,0.04);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* LED indicator */
|
|
|
|
|
|
.ts-stick__led {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 8px;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
width: 4px;
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
background: #999;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
transition: background 0.4s ease, box-shadow 0.4s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-stage.is-plugged .ts-stick__led {
|
|
|
|
|
|
background: #4CAF50;
|
|
|
|
|
|
box-shadow: 0 0 6px rgba(76,175,80,0.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* HDMI connector */
|
|
|
|
|
|
.ts-stick__connector {
|
2026-02-21 17:20:19 -05:00
|
|
|
|
width: 18px;
|
|
|
|
|
|
height: 14px;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
background: linear-gradient(180deg, #888, #666);
|
|
|
|
|
|
border-radius: 0 2px 2px 0;
|
|
|
|
|
|
margin-left: -1px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ts-stick__connector::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 2px;
|
|
|
|
|
|
top: 2px;
|
2026-02-21 17:20:19 -05:00
|
|
|
|
width: 8px;
|
|
|
|
|
|
height: 8px;
|
2026-02-21 09:43:58 -05:00
|
|
|
|
background: #555;
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ── Plug-in animation ── */
|
|
|
|
|
|
.ts-stage.is-animating .ts-stick {
|
|
|
|
|
|
animation: ts-slide-in 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes ts-slide-in {
|
2026-02-21 12:07:06 -05:00
|
|
|
|
0% { opacity: 0; transform: translateY(-50%) translateX(80px) scaleX(-1); }
|
|
|
|
|
|
20% { opacity: 1; transform: translateY(-50%) translateX(60px) scaleX(-1); }
|
|
|
|
|
|
70% { transform: translateY(-50%) translateX(8px) scaleX(-1); }
|
|
|
|
|
|
85% { transform: translateY(-50%) translateX(12px) scaleX(-1); }
|
|
|
|
|
|
100% { opacity: 1; transform: translateY(-50%) translateX(6px) scaleX(-1); }
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Responsive scale-down */
|
|
|
|
|
|
@media (max-width: 900px) {
|
2026-02-21 17:20:19 -05:00
|
|
|
|
.ts-tv__body { width: 320px; height: 188px; }
|
|
|
|
|
|
.ts-tv__feet { width: 178px; }
|
|
|
|
|
|
.ts-stick__body { width: 68px; height: 26px; }
|
|
|
|
|
|
.ts-stage { padding-right: 72px; }
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
2026-02-21 17:20:19 -05:00
|
|
|
|
.ts-tv__body { width: 240px; height: 142px; }
|
|
|
|
|
|
.ts-tv__feet { width: 134px; }
|
|
|
|
|
|
.ts-stick__body { width: 52px; height: 20px; }
|
|
|
|
|
|
.ts-stick__connector { width: 12px; height: 10px; }
|
|
|
|
|
|
.ts-stick__body::before { top: 4px; left: 6px; width: 22px; height: 10px; }
|
2026-02-21 09:43:58 -05:00
|
|
|
|
.ts-stick__led { width: 3px; height: 3px; right: 5px; }
|
2026-02-21 17:20:19 -05:00
|
|
|
|
.ts-stage { padding-right: 56px; }
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.ts-stage .ts-stick {
|
|
|
|
|
|
opacity: 1;
|
2026-02-21 12:07:06 -05:00
|
|
|
|
transform: translateY(-50%) translateX(6px) scaleX(-1);
|
2026-02-21 09:43:58 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ts-stage.is-animating .ts-stick { animation: none; }
|
|
|
|
|
|
.ts-stage.is-plugged .ts-tv__screen { animation: none; }
|
|
|
|
|
|
.ts-stage.is-plugged .ts-stick__led {
|
|
|
|
|
|
background: #4CAF50;
|
|
|
|
|
|
box-shadow: 0 0 6px rgba(76,175,80,0.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 21:28:00 -05:00
|
|
|
|
/* ── 11. Page Hero (inner pages) ───────────────────────────── */
|
|
|
|
|
|
.page-hero {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: #111111;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
color: #fff;
|
|
|
|
|
|
padding: 8rem 0 5rem;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
.page-hero .hero-overlay {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: rgba(17, 17, 17, 0.80);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.page-hero .container { position: relative; z-index: 2; }
|
|
|
|
|
|
.page-hero h1 { color: #fff; margin-bottom: 1rem; }
|
|
|
|
|
|
.page-hero .lead { color: rgba(255,255,255,.7); }
|
|
|
|
|
|
.page-hero .hero-label { margin-bottom: 1.5rem; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 11b. Animated Hero (OTS Signs) ────────────────────────── */
|
|
|
|
|
|
|
|
|
|
|
|
/* Particle keyframes */
|
|
|
|
|
|
@keyframes particle-float {
|
|
|
|
|
|
0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
|
|
|
|
|
|
10% { opacity: var(--p-opacity, 0.4); }
|
|
|
|
|
|
90% { opacity: var(--p-opacity, 0.4); }
|
|
|
|
|
|
100% { transform: translateY(var(--p-ty, -100vh)) translateX(var(--p-tx, 40px)) scale(var(--p-scale-end, 0.3)); opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 15:01:06 -05:00
|
|
|
|
@keyframes glow-appear {
|
|
|
|
|
|
from { opacity: 0; filter: blur(80px); transform: translate(-50%, -50%) scale(0.2); }
|
2026-02-21 15:02:25 -05:00
|
|
|
|
to { opacity: 0.65; filter: blur(22px); transform: translate(-50%, -50%) scale(0.85); }
|
2026-02-21 15:01:06 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 21:28:00 -05:00
|
|
|
|
@keyframes glow-drift {
|
2026-02-21 15:02:25 -05:00
|
|
|
|
0% { transform: translate(-50%, -50%) scale(0.85); opacity: 0.6; }
|
|
|
|
|
|
15% { transform: translate(-20%, -30%) scale(1.35); opacity: 0.75; }
|
|
|
|
|
|
30% { transform: translate(-65%, -70%) scale(0.65); opacity: 0.5; }
|
|
|
|
|
|
45% { transform: translate(-80%, -40%) scale(1.45); opacity: 0.8; }
|
|
|
|
|
|
60% { transform: translate(-30%, -75%) scale(0.7); opacity: 0.55; }
|
|
|
|
|
|
75% { transform: translate(-70%, -25%) scale(1.5); opacity: 0.75; }
|
|
|
|
|
|
90% { transform: translate(-40%, -60%) scale(0.8); opacity: 0.65; }
|
|
|
|
|
|
100% { transform: translate(-50%, -50%) scale(0.85); opacity: 0.6; }
|
2026-02-20 23:20:52 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 21:28:00 -05:00
|
|
|
|
/* Particle container */
|
|
|
|
|
|
.hero-particles {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Individual particles - circles with staggered float animation */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.hero-particle {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: rgba(255, 255, 255, 0.12);
|
2026-02-20 23:29:17 -05:00
|
|
|
|
animation: particle-float var(--p-dur, 18s) var(--p-delay, 0s) linear infinite;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
will-change: transform, opacity;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 12 particles with unique positions, sizes, speeds, and trajectories */
|
2026-02-20 23:29:17 -05:00
|
|
|
|
.hero-particle--1 { --p-dur: 22s; --p-delay: 0s; --p-tx: 60px; --p-ty: -110vh; --p-opacity: 0.35; --p-scale-end: 0.2; width: 8px; height: 8px; bottom: -10px; left: 8%; }
|
|
|
|
|
|
.hero-particle--2 { --p-dur: 28s; --p-delay: 3s; --p-tx: -40px; --p-ty: -105vh; --p-opacity: 0.25; --p-scale-end: 0.4; width: 14px; height: 14px; bottom: -20px; left: 20%; }
|
|
|
|
|
|
.hero-particle--3 { --p-dur: 20s; --p-delay: 1s; --p-tx: 80px; --p-ty: -115vh; --p-opacity: 0.3; --p-scale-end: 0.3; width: 6px; height: 6px; bottom: -8px; left: 35%; }
|
|
|
|
|
|
.hero-particle--4 { --p-dur: 26s; --p-delay: 5s; --p-tx: -60px; --p-ty: -100vh; --p-opacity: 0.4; --p-scale-end: 0.2; width: 10px; height: 10px; bottom: -12px; left: 50%; }
|
|
|
|
|
|
.hero-particle--5 { --p-dur: 24s; --p-delay: 2s; --p-tx: 30px; --p-ty: -108vh; --p-opacity: 0.2; --p-scale-end: 0.5; width: 20px; height: 20px; bottom: -25px; left: 65%; background: rgba(var(--color-primary-rgb),0.12); }
|
|
|
|
|
|
.hero-particle--6 { --p-dur: 30s; --p-delay: 7s; --p-tx: -20px; --p-ty: -112vh; --p-opacity: 0.35; --p-scale-end: 0.3; width: 12px; height: 12px; bottom: -15px; left: 78%; }
|
|
|
|
|
|
.hero-particle--7 { --p-dur: 19s; --p-delay: 4s; --p-tx: 50px; --p-ty: -106vh; --p-opacity: 0.2; --p-scale-end: 0.4; width: 16px; height: 16px; bottom: -20px; left: 90%; background: rgba(var(--color-primary-rgb),0.08); }
|
|
|
|
|
|
.hero-particle--8 { --p-dur: 25s; --p-delay: 6s; --p-tx: -70px; --p-ty: -102vh; --p-opacity: 0.3; --p-scale-end: 0.2; width: 7px; height: 7px; bottom: -10px; left: 15%; }
|
|
|
|
|
|
.hero-particle--9 { --p-dur: 32s; --p-delay: 8s; --p-tx: 45px; --p-ty: -110vh; --p-opacity: 0.15; --p-scale-end: 0.6; width: 24px; height: 24px; bottom: -30px; left: 42%; background: rgba(var(--color-primary-rgb),0.08); }
|
|
|
|
|
|
.hero-particle--10 { --p-dur: 21s; --p-delay: 10s; --p-tx: -35px; --p-ty: -108vh; --p-opacity: 0.3; --p-scale-end: 0.3; width: 9px; height: 9px; bottom: -12px; left: 58%; }
|
|
|
|
|
|
.hero-particle--11 { --p-dur: 27s; --p-delay: 12s; --p-tx: 25px; --p-ty: -104vh; --p-opacity: 0.2; --p-scale-end: 0.4; width: 18px; height: 18px; bottom: -22px; left: 72%; background: rgba(var(--color-primary-rgb),0.06); }
|
|
|
|
|
|
.hero-particle--12 { --p-dur: 23s; --p-delay: 9s; --p-tx: -55px; --p-ty: -106vh; --p-opacity: 0.25; --p-scale-end: 0.3; width: 11px; height: 11px; bottom: -14px; left: 5%; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
/* Ambient glow effect behind content */
|
|
|
|
|
|
.hero-animated__glow {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
left: 50%;
|
2026-02-21 15:02:25 -05:00
|
|
|
|
width: 520px;
|
|
|
|
|
|
height: 520px;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 15:01:06 -05:00
|
|
|
|
background: radial-gradient(circle, rgba(var(--color-primary-rgb), 0.32) 0%, rgba(var(--color-primary-rgb), 0.14) 45%, rgba(var(--color-primary-rgb), 0.04) 70%, transparent 90%);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
z-index: 1;
|
|
|
|
|
|
pointer-events: none;
|
2026-02-21 15:01:06 -05:00
|
|
|
|
filter: blur(22px);
|
|
|
|
|
|
animation:
|
|
|
|
|
|
glow-appear 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards,
|
|
|
|
|
|
glow-drift 20s 0.45s ease-in-out infinite;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Animated hero layout - centered single-column content */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.hero-animated__inner {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
padding-block: 10rem 6rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-animated__content {
|
|
|
|
|
|
max-width: 720px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-animated__content .hero-title {
|
|
|
|
|
|
font-size: clamp(2.4rem, 5vw, 4rem);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-animated__content .hero-description {
|
|
|
|
|
|
max-width: 600px;
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
margin-right: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-animated__content .btn-group {
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-animated__content .hero-stats {
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.hero-stats--three {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 3rem;
|
|
|
|
|
|
margin-top: 2.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
/* Page hero animated - inherits base page-hero + adds particles */
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.page-hero-animated {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
.page-hero-animated .hero-particles { z-index: 0; }
|
|
|
|
|
|
.page-hero-animated .hero-animated__glow { z-index: 0; }
|
|
|
|
|
|
.page-hero-animated .hero-overlay { z-index: 1; }
|
|
|
|
|
|
.page-hero-animated .container { position: relative; z-index: 2; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Reduce motion for accessibility */
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.hero-particle,
|
2026-02-20 23:29:17 -05:00
|
|
|
|
.hero-animated__glow {
|
2026-02-20 21:28:00 -05:00
|
|
|
|
animation: none;
|
2026-02-21 15:02:25 -05:00
|
|
|
|
opacity: 0.6;
|
|
|
|
|
|
transform: translate(-50%, -50%) scale(0.85);
|
2026-02-21 15:01:06 -05:00
|
|
|
|
filter: blur(22px);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
2026-02-21 15:02:25 -05:00
|
|
|
|
.hero-animated__glow { width: 340px; height: 340px; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.hero-animated__inner { padding-block: 7rem 4rem; }
|
|
|
|
|
|
.hero-stats--three { gap: 1.5rem; flex-wrap: wrap; justify-content: center; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 12. About page ────────────────────────────────────────── */
|
|
|
|
|
|
.about-intro {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
gap: 4rem;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.about-intro-visual {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
border-radius: var(--radius-xl);
|
|
|
|
|
|
aspect-ratio: 1;
|
|
|
|
|
|
max-width: 420px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 6rem;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* When an image is set, remove the gradient box styling */
|
|
|
|
|
|
.about-intro-visual.has-img {
|
|
|
|
|
|
background: none;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
color: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
.about-intro { grid-template-columns: 1fr; }
|
|
|
|
|
|
.about-intro-visual { max-width: 280px; margin-inline: auto; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 13. Contact ────────────────────────────────────────────── */
|
|
|
|
|
|
.contact-layout {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1.6fr;
|
|
|
|
|
|
gap: 4rem;
|
|
|
|
|
|
align-items: start;
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
.contact-layout { grid-template-columns: 1fr; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.contact-info h2 { margin-bottom: 1rem; }
|
|
|
|
|
|
.contact-info .lead { margin-bottom: 2rem; }
|
|
|
|
|
|
|
|
|
|
|
|
.contact-method {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
|
margin-bottom: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.contact-method-icon {
|
|
|
|
|
|
width: 44px; height: 44px;
|
|
|
|
|
|
background: var(--color-primary-lt);
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.contact-method-label { font-size: .8rem; color: var(--color-text-muted); }
|
|
|
|
|
|
.contact-method-value { font-weight: 600; color: var(--color-heading); font-size: .95rem; }
|
|
|
|
|
|
|
|
|
|
|
|
.contact-form-wrap {
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-lg);
|
|
|
|
|
|
padding: 2.5rem;
|
|
|
|
|
|
box-shadow: var(--shadow-sm);
|
|
|
|
|
|
}
|
|
|
|
|
|
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
|
|
|
|
|
|
@media (max-width: 560px) { .form-row { grid-template-columns: 1fr; } }
|
|
|
|
|
|
|
|
|
|
|
|
.form-group { margin-bottom: 1.25rem; }
|
|
|
|
|
|
.form-group label {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
margin-bottom: .4rem;
|
|
|
|
|
|
}
|
2026-02-20 22:06:53 -05:00
|
|
|
|
.form-group label .req { color: #D32F2F; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
.form-group input,
|
|
|
|
|
|
.form-group textarea,
|
|
|
|
|
|
.form-group select {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
padding: .75rem 1rem;
|
|
|
|
|
|
font-family: var(--font-sans);
|
|
|
|
|
|
font-size: .95rem;
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
background: var(--form-bg);
|
|
|
|
|
|
border: 1.5px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
transition: border-color var(--transition), box-shadow var(--transition);
|
|
|
|
|
|
outline: none;
|
|
|
|
|
|
resize: vertical;
|
|
|
|
|
|
}
|
|
|
|
|
|
.form-group input:focus,
|
|
|
|
|
|
.form-group textarea:focus,
|
|
|
|
|
|
.form-group select:focus {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb),.12);
|
|
|
|
|
|
background: var(--form-bg-focus);
|
|
|
|
|
|
}
|
|
|
|
|
|
.form-group textarea { min-height: 140px; }
|
|
|
|
|
|
|
|
|
|
|
|
.form-notice {
|
|
|
|
|
|
margin-top: 1rem;
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
padding: .75rem 1rem;
|
|
|
|
|
|
border-radius: var(--radius-sm);
|
|
|
|
|
|
display: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.form-notice.success { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; display: block; }
|
|
|
|
|
|
.form-notice.error { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; display: block; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 14. CTA Banner ─────────────────────────────────────────── */
|
|
|
|
|
|
@keyframes cta-shimmer {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
0% { opacity: 1; }
|
|
|
|
|
|
100% { opacity: 1; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
2026-02-21 01:45:51 -05:00
|
|
|
|
|
2026-02-21 02:08:54 -05:00
|
|
|
|
/* ── Dashboard Chart ───────────────────────────────────── */
|
2026-02-21 01:45:51 -05:00
|
|
|
|
.dashboard-chart {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
user-select: none;
|
2026-02-21 02:08:54 -05:00
|
|
|
|
overflow: visible;
|
2026-02-21 01:45:51 -05:00
|
|
|
|
}
|
2026-02-21 02:08:54 -05:00
|
|
|
|
/* Reduced-motion: JS already checks the media query, belt-and-suspenders */
|
2026-02-21 01:45:51 -05:00
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.dashboard-chart .bar,
|
2026-02-21 02:08:54 -05:00
|
|
|
|
.dashboard-chart .pie-segment { transition: none !important; }
|
2026-02-21 01:45:51 -05:00
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 768px) {
|
2026-02-21 02:08:54 -05:00
|
|
|
|
.dashboard-chart-container { padding: 1rem; border-radius: var(--radius-md, 12px); }
|
2026-02-21 01:45:51 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 21:28:00 -05:00
|
|
|
|
.cta-banner {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
color: #fff;
|
|
|
|
|
|
padding-block: 5rem;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.cta-banner::before {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
content: none;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.cta-banner::after {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
content: none;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.cta-banner .container { position: relative; z-index: 1; }
|
|
|
|
|
|
.cta-banner h2 { color: #fff; margin-bottom: 1rem; }
|
|
|
|
|
|
.cta-banner p { color: rgba(255,255,255,.85); margin-bottom: 2rem; font-size: 1.1rem; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 15. Footer ────────────────────────────────────────────── */
|
|
|
|
|
|
.site-footer {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: #111111;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
color: rgba(255,255,255,.7);
|
|
|
|
|
|
padding-top: 4rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-inner {
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1.5fr 1fr 1fr 1fr;
|
|
|
|
|
|
gap: 2rem;
|
|
|
|
|
|
padding-bottom: 3rem;
|
|
|
|
|
|
border-bottom: 1px solid rgba(255,255,255,.08);
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.footer-inner { grid-template-columns: 1fr 1fr; }
|
|
|
|
|
|
.footer-brand { grid-column: 1 / -1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 480px) {
|
|
|
|
|
|
.footer-inner { grid-template-columns: 1fr; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.footer-brand .logo-text { font-size: 1.5rem; color: #fff; }
|
|
|
|
|
|
.footer-tagline { font-size: .9rem; color: rgba(255,255,255,.5); margin-top: .75rem; margin-bottom: .5rem; }
|
|
|
|
|
|
.footer-location { font-size: .8rem; color: rgba(255,255,255,.4); }
|
|
|
|
|
|
|
|
|
|
|
|
.footer-links { display: contents; }
|
|
|
|
|
|
.footer-col h4 {
|
|
|
|
|
|
font-size: .8rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
letter-spacing: .1em;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
color: rgba(255,255,255,.4);
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-col ul { display: flex; flex-direction: column; gap: .6rem; }
|
|
|
|
|
|
.footer-col a {
|
|
|
|
|
|
font-size: .875rem;
|
|
|
|
|
|
color: rgba(255,255,255,.6);
|
|
|
|
|
|
transition: color var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-col a:hover { color: #fff; }
|
|
|
|
|
|
|
|
|
|
|
|
.footer-bottom {
|
|
|
|
|
|
padding-block: 1.5rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.footer-bottom p {
|
|
|
|
|
|
font-size: .8rem;
|
|
|
|
|
|
color: rgba(255,255,255,.3);
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 15a. FAQ Accordion ─────────────────────────────────────── */
|
|
|
|
|
|
.faq-list {
|
|
|
|
|
|
max-width: 800px;
|
|
|
|
|
|
margin-inline: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-item {
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
margin-bottom: 1rem;
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
transition: box-shadow var(--transition), border-color var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-item[open] {
|
|
|
|
|
|
border-color: var(--color-primary);
|
|
|
|
|
|
box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb),.08);
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-question {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
gap: 1rem;
|
|
|
|
|
|
padding: 1.25rem 1.5rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
list-style: none;
|
|
|
|
|
|
user-select: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-question::-webkit-details-marker { display: none; }
|
|
|
|
|
|
.faq-question::marker { content: ''; }
|
|
|
|
|
|
.faq-toggle {
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
width: 24px;
|
|
|
|
|
|
height: 24px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
transition: transform var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-toggle::before,
|
|
|
|
|
|
.faq-toggle::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
background: var(--color-text-muted);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
transition: transform var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-toggle::before {
|
|
|
|
|
|
width: 14px; height: 2px;
|
|
|
|
|
|
top: 50%; left: 50%;
|
|
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-toggle::after {
|
|
|
|
|
|
width: 2px; height: 14px;
|
|
|
|
|
|
top: 50%; left: 50%;
|
|
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-item[open] .faq-toggle::after {
|
|
|
|
|
|
transform: translate(-50%, -50%) rotate(90deg);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-answer {
|
|
|
|
|
|
padding: 0 1.5rem 1.25rem;
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
font-size: .95rem;
|
|
|
|
|
|
line-height: 1.7;
|
|
|
|
|
|
}
|
|
|
|
|
|
.faq-answer p { margin-bottom: .5rem; }
|
|
|
|
|
|
.faq-answer p:last-child { margin-bottom: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 15b. Comparison Table ──────────────────────────────────── */
|
|
|
|
|
|
.comparison-table-wrap {
|
|
|
|
|
|
overflow-x: auto;
|
|
|
|
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-md);
|
|
|
|
|
|
background: var(--card-bg);
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
border-collapse: collapse;
|
|
|
|
|
|
font-size: .92rem;
|
|
|
|
|
|
min-width: 600px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table thead th {
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
font-size: .85rem;
|
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
|
letter-spacing: .05em;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
padding: 1rem 1.25rem;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
border-bottom: 2px solid var(--color-border);
|
|
|
|
|
|
position: sticky;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table thead th:first-child {
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
min-width: 220px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table tbody td {
|
|
|
|
|
|
padding: .85rem 1.25rem;
|
|
|
|
|
|
border-bottom: 1px solid var(--color-border);
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
vertical-align: middle;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table tbody tr:last-child td {
|
|
|
|
|
|
border-bottom: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table tbody td:first-child {
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-feature-col { min-width: 220px; }
|
|
|
|
|
|
.comparison-feature-name { color: var(--color-text); }
|
|
|
|
|
|
.comparison-group-row td {
|
2026-02-21 14:14:59 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
font-weight: 700;
|
2026-02-21 14:14:59 -05:00
|
|
|
|
font-size: .82rem;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
text-transform: uppercase;
|
2026-02-21 14:14:59 -05:00
|
|
|
|
letter-spacing: .08em;
|
|
|
|
|
|
color: #fff;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
text-align: left !important;
|
2026-02-21 14:14:59 -05:00
|
|
|
|
padding: .85rem 1.25rem;
|
|
|
|
|
|
border-bottom-color: var(--color-primary) !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-group-row td:first-child {
|
|
|
|
|
|
border-left: 4px solid var(--color-accent);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
.comparison-yes {
|
|
|
|
|
|
color: var(--color-accent);
|
|
|
|
|
|
font-size: 1.1rem;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-no {
|
|
|
|
|
|
color: var(--color-text-muted);
|
|
|
|
|
|
font-size: 1rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comparison-table tbody tr:hover td {
|
|
|
|
|
|
background: rgba(var(--color-primary-rgb), .03);
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.comparison-table-wrap { margin-inline: calc(var(--container-pad) * -1); border-radius: 0; border-left: none; border-right: none; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 16. Misc ───────────────────────────────────────────────── */
|
|
|
|
|
|
.text-center { text-align: center; }
|
|
|
|
|
|
.text-primary { color: var(--color-primary); }
|
|
|
|
|
|
.text-accent { color: var(--color-accent); }
|
|
|
|
|
|
.mt-1 { margin-top: .5rem; }
|
|
|
|
|
|
.mt-2 { margin-top: 1rem; }
|
|
|
|
|
|
.mt-3 { margin-top: 1.5rem; }
|
|
|
|
|
|
.mt-4 { margin-top: 2rem; }
|
|
|
|
|
|
.mb-4 { margin-bottom: 2rem; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Divider */
|
|
|
|
|
|
.divider {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
border-top: 1px solid var(--color-border);
|
|
|
|
|
|
margin-block: 3rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Screen reader only */
|
|
|
|
|
|
.sr-only {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
width: 1px; height: 1px;
|
|
|
|
|
|
margin: -1px; padding: 0;
|
|
|
|
|
|
overflow: hidden; clip: rect(0,0,0,0);
|
|
|
|
|
|
white-space: nowrap; border: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Scroll to top */
|
|
|
|
|
|
.scroll-top {
|
|
|
|
|
|
position: fixed;
|
|
|
|
|
|
bottom: 2rem;
|
|
|
|
|
|
right: 2rem;
|
|
|
|
|
|
width: 44px; height: 44px;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 1.2rem;
|
|
|
|
|
|
box-shadow: var(--shadow-md);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translateY(10px);
|
|
|
|
|
|
transition: all var(--transition);
|
|
|
|
|
|
z-index: 50;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
.scroll-top.visible {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translateY(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── 17. Theme Toggle ──────────────────────────────────────── */
|
|
|
|
|
|
.theme-toggle {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 48px;
|
|
|
|
|
|
height: 26px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
border-radius: 100px;
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
margin-left: .75rem;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
transition: background var(--transition);
|
|
|
|
|
|
}
|
|
|
|
|
|
.theme-toggle:hover { background: var(--color-text-muted); }
|
|
|
|
|
|
.theme-toggle::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 3px;
|
|
|
|
|
|
left: 3px;
|
|
|
|
|
|
width: 20px;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
transition: transform var(--transition);
|
|
|
|
|
|
box-shadow: 0 1px 3px rgba(0,0,0,.2);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] .theme-toggle {
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] .theme-toggle::before {
|
|
|
|
|
|
transform: translateX(22px);
|
|
|
|
|
|
}
|
|
|
|
|
|
.theme-toggle-icon {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
width: 14px;
|
|
|
|
|
|
height: 14px;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.theme-toggle .sun-icon {
|
|
|
|
|
|
left: 5px;
|
|
|
|
|
|
color: #f59e0b;
|
|
|
|
|
|
}
|
|
|
|
|
|
.theme-toggle .moon-icon {
|
|
|
|
|
|
right: 5px;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
opacity: .7;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Dark mode overrides ───────────────────────────────────── */
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .section-dark { background: #111111; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
[data-theme="dark"] .section-alt { background: var(--color-bg-alt); }
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .hero { background: #111111; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .page-hero {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: #111111;
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .hero-animated { background: #0D0D0D; }
|
|
|
|
|
|
[data-theme="dark"] .page-hero-animated { background: #0D0D0D; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
[data-theme="dark"] .hero-animated__glow {
|
2026-02-21 15:01:06 -05:00
|
|
|
|
background: radial-gradient(circle, rgba(var(--color-primary-rgb), 0.40) 0%, rgba(var(--color-primary-rgb), 0.18) 45%, rgba(var(--color-primary-rgb), 0.06) 70%, transparent 90%);
|
2026-02-20 23:20:52 -05:00
|
|
|
|
}
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .site-footer { background: #0D0D0D; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .site-nav.open { background: #111111; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .logo-text { color: #F5F5F5; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
[data-theme="dark"] .logo-text strong { color: var(--color-accent); }
|
|
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .nav-menu a { color: rgba(255,255,255,.8); }
|
|
|
|
|
|
[data-theme="dark"] .nav-menu a:hover,
|
|
|
|
|
|
[data-theme="dark"] .nav-menu .current-menu-item > a { color: var(--color-primary); }
|
|
|
|
|
|
|
2026-02-20 22:06:53 -05:00
|
|
|
|
[data-theme="dark"] .nav-toggle span { background: #F5F5F5; }
|
2026-02-20 21:28:00 -05:00
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .cta-banner {
|
2026-02-20 22:06:53 -05:00
|
|
|
|
background: var(--color-primary-dk);
|
2026-02-20 21:28:00 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .btn-ghost {
|
|
|
|
|
|
border-color: rgba(255,255,255,.25);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 02:20:45 -05:00
|
|
|
|
[data-theme="dark"] .platform-visual:not(.has-img):not(.has-dashboard) {
|
2026-02-20 21:28:00 -05:00
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border-color: var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] .platform-visual.has-img {
|
|
|
|
|
|
background: none;
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .form-notice.success {
|
|
|
|
|
|
background: rgba(22,163,74,.1);
|
|
|
|
|
|
color: #4ade80;
|
|
|
|
|
|
border-color: rgba(22,163,74,.3);
|
|
|
|
|
|
}
|
|
|
|
|
|
[data-theme="dark"] .form-notice.error {
|
|
|
|
|
|
background: rgba(220,38,38,.1);
|
|
|
|
|
|
color: #f87171;
|
|
|
|
|
|
border-color: rgba(220,38,38,.3);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .faq-item { background: var(--card-bg); border-color: var(--color-border); }
|
|
|
|
|
|
[data-theme="dark"] .faq-item[open] { border-color: var(--color-primary); }
|
|
|
|
|
|
[data-theme="dark"] .faq-question { color: var(--color-heading); }
|
|
|
|
|
|
[data-theme="dark"] .faq-toggle::before,
|
|
|
|
|
|
[data-theme="dark"] .faq-toggle::after { background: var(--color-text-muted); }
|
|
|
|
|
|
|
|
|
|
|
|
[data-theme="dark"] .comparison-table-wrap { background: var(--card-bg); border-color: var(--color-border); }
|
|
|
|
|
|
[data-theme="dark"] .comparison-table thead th { background: var(--color-bg-alt); color: var(--color-heading); border-color: var(--color-border); }
|
|
|
|
|
|
[data-theme="dark"] .comparison-table tbody td { border-color: var(--color-border); color: var(--color-text); }
|
|
|
|
|
|
[data-theme="dark"] .comparison-group-row td { background: var(--color-bg-alt); color: var(--color-primary); }
|
|
|
|
|
|
[data-theme="dark"] .comparison-table tbody tr:hover td { background: rgba(var(--color-primary-rgb), .06); }
|
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
.theme-toggle { margin-left: 0; margin-right: .5rem; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* =============================================================
|
|
|
|
|
|
Block Editor Overrides
|
|
|
|
|
|
(loaded into the editor canvas via add_editor_style)
|
|
|
|
|
|
============================================================= */
|
|
|
|
|
|
|
|
|
|
|
|
/* Remove Gutenberg's default group-block padding so our section
|
|
|
|
|
|
classes control all spacing */
|
|
|
|
|
|
.wp-block-group {
|
|
|
|
|
|
padding: 0 !important;
|
|
|
|
|
|
margin: 0 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* The editor root container should not add extra padding */
|
|
|
|
|
|
.is-root-container {
|
|
|
|
|
|
padding: 0 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Make the editor canvas full-width so sections render at
|
|
|
|
|
|
their natural width instead of being constrained to post-content width */
|
|
|
|
|
|
.editor-styles-wrapper .is-root-container > .wp-block {
|
|
|
|
|
|
max-width: 100% !important;
|
|
|
|
|
|
margin-left: 0 !important;
|
|
|
|
|
|
margin-right: 0 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
.editor-styles-wrapper .wp-block.wp-block-group {
|
|
|
|
|
|
max-width: 100% !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Headings inside the editor should use our theme styles */
|
|
|
|
|
|
.editor-styles-wrapper h1,
|
|
|
|
|
|
.editor-styles-wrapper h2,
|
|
|
|
|
|
.editor-styles-wrapper h3 {
|
|
|
|
|
|
font-family: var(--font-sans);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Prevent Gutenberg from adding default margin on headings/paragraphs
|
|
|
|
|
|
since our sections control spacing */
|
|
|
|
|
|
.editor-styles-wrapper .wp-block-heading,
|
|
|
|
|
|
.editor-styles-wrapper .wp-block-paragraph {
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
}
|
2026-02-21 10:04:18 -05:00
|
|
|
|
|
|
|
|
|
|
/* ══════════════════════════════════════════════════════════════════════════════
|
|
|
|
|
|
CAMERA ANIMATOR (.platform-visual.has-camera)
|
2026-02-21 10:12:23 -05:00
|
|
|
|
Photo camera (left) + product scene (centre) + VHS camcorder on tripod (right)
|
2026-02-21 10:04:18 -05:00
|
|
|
|
══════════════════════════════════════════════════════════════════════════════ */
|
|
|
|
|
|
.platform-visual.has-camera {
|
|
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
aspect-ratio: unset;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: visible;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: inherit;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
min-height: 220px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cam-stage {
|
|
|
|
|
|
display: flex;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
flex-direction: row;
|
2026-02-21 10:34:17 -05:00
|
|
|
|
align-items: center;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
justify-content: center;
|
2026-02-21 17:20:19 -05:00
|
|
|
|
gap: 6px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
padding-bottom: 4px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* ── Product scene (between the two cameras) ── */
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-scene {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 140px;
|
|
|
|
|
|
height: 130px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 4px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
background-image:
|
2026-02-21 10:20:39 -05:00
|
|
|
|
linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
|
|
|
|
|
|
linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
|
|
|
|
|
|
background-size: 18px 18px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* ── Shared subject shapes ── */
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-subject {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.cam-subject::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.cam-subject--1 { animation: cam-subject-1 9s ease-in-out infinite; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-subject--1::before {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 40px; height: 58px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
background: linear-gradient(135deg, #064e3b 0%, #4ade80 100%);
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: 0 0 18px rgba(74,222,128,.4);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.cam-subject--2 { animation: cam-subject-2 9s ease-in-out infinite; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-subject--2::before {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 32px; height: 68px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
background: linear-gradient(160deg, #78350f 0%, #fbbf24 100%);
|
|
|
|
|
|
border-radius: 6px 6px 12px 12px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: 0 0 18px rgba(251,191,36,.35);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.cam-subject--3 { animation: cam-subject-3 9s ease-in-out infinite; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-subject--3::before {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 74px; height: 50px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
background: linear-gradient(135deg, #1e1b4b 0%, #818cf8 100%);
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: 0 0 18px rgba(129,140,248,.35);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* Flash overlay */
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-flash-overlay {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
animation: cam-flash-pulse 9s linear infinite;
|
|
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* CRT scanlines from the video cam */
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.cam-vid-overlay {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
background: repeating-linear-gradient(
|
|
|
|
|
|
to bottom,
|
|
|
|
|
|
transparent 0px, transparent 3px,
|
2026-02-21 10:20:39 -05:00
|
|
|
|
rgba(0,0,0,.08) 3px, rgba(0,0,0,.08) 4px
|
2026-02-21 10:12:23 -05:00
|
|
|
|
);
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
2026-02-21 10:04:18 -05:00
|
|
|
|
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* ══════════════════════════════════════════
|
2026-02-21 10:20:39 -05:00
|
|
|
|
PHOTO CAMERA (compact point-and-shoot)
|
2026-02-21 10:12:23 -05:00
|
|
|
|
══════════════════════════════════════════ */
|
|
|
|
|
|
.pc-wrap {
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
align-items: flex-start;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
flex-shrink: 0;
|
2026-02-21 10:34:17 -05:00
|
|
|
|
transform: translateY(-12px);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-body {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 90px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
position: relative;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
filter: drop-shadow(0 6px 18px rgba(0,0,0,.8));
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* Hot-shoe flash on top */
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-flash-unit {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 30px;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-bottom: none;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
border-radius: 3px 3px 0 0;
|
|
|
|
|
|
margin-left: 10px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
position: relative;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
.pc-flash-unit::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 2px; left: 4px; right: 4px; bottom: 2px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: #c8c870;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
animation: pc-flash-glow 9s linear infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Top strip */
|
|
|
|
|
|
.pc-top {
|
2026-02-21 10:04:18 -05:00
|
|
|
|
width: 100%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
height: 18px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-bottom: none;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
border-radius: 3px 3px 0 0;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 0 8px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: relative;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-shutter-btn {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
top: -8px; right: 10px;
|
|
|
|
|
|
width: 14px; height: 14px;
|
|
|
|
|
|
background: var(--color-border);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
border: 2px solid var(--color-border);
|
|
|
|
|
|
box-shadow: 0 0 0 1px rgba(255,255,255,.15), inset 0 1px 0 rgba(255,255,255,.1);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
animation: pc-shutter 9s linear infinite;
|
|
|
|
|
|
transform-origin: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pc-viewfinder {
|
|
|
|
|
|
width: 11px; height: 7px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: rgba(0,0,0,.6);
|
|
|
|
|
|
border: 1px solid rgba(255,255,255,.18);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Front face */
|
|
|
|
|
|
.pc-front {
|
|
|
|
|
|
width: 100%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
height: 52px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-top: 1px solid rgba(255,255,255,.1);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 0 0 4px 4px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
padding: 0 8px;
|
|
|
|
|
|
gap: 8px;
|
|
|
|
|
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.3);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Lens */
|
|
|
|
|
|
.pc-lens-ring {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 38px; height: 38px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: #0a0a0a;
|
|
|
|
|
|
border: 3px solid var(--color-border);
|
|
|
|
|
|
box-shadow: 0 0 0 1px rgba(255,255,255,.1), inset 0 0 8px rgba(0,0,0,1);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-lens-glass {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 26px; height: 26px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
background: radial-gradient(circle at 30% 30%, #1a6ad6 0%, #0a1844 50%, #000b1a 100%);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-lens-reflex {
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: absolute;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
top: 3px; left: 3px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 8px; height: 5px;
|
|
|
|
|
|
background: rgba(255,255,255,.25);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
transform: rotate(-20deg);
|
|
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* Grip ridges */
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-grip {
|
|
|
|
|
|
flex: 1;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
flex-direction: column;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
gap: 5px;
|
|
|
|
|
|
align-items: stretch;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-grip::before, .pc-grip::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
height: 4px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: rgba(255,255,255,.06);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Polaroid prints */
|
|
|
|
|
|
.pc-prints {
|
|
|
|
|
|
position: relative;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 90px;
|
|
|
|
|
|
height: 52px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pc-print {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 54px; height: 60px;
|
|
|
|
|
|
background: #f0e8d0;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 2px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: 0 4px 14px rgba(0,0,0,.7);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pc-print__img {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 6px; left: 6px; right: 6px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
height: 38px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 1px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
.pc-print--1 { left: 0; top: 0; transform-origin: bottom center; animation: pc-print-1 9s linear infinite; }
|
|
|
|
|
|
.pc-print--2 { left: 18px; top: 0; transform-origin: bottom center; animation: pc-print-2 9s linear infinite; }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-print--3 { left: 36px; top: 0; transform-origin: bottom center; animation: pc-print-3 9s linear infinite; }
|
|
|
|
|
|
.pc-print--1 .pc-print__img { background: linear-gradient(135deg, #064e3b, #4ade80); }
|
|
|
|
|
|
.pc-print--2 .pc-print__img { background: linear-gradient(160deg, #78350f, #fbbf24); }
|
|
|
|
|
|
.pc-print--3 .pc-print__img { background: linear-gradient(135deg, #1e1b4b, #818cf8); }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* ══════════════════════════════════════════
|
2026-02-21 10:20:39 -05:00
|
|
|
|
VIDEO CAMERA ON TRIPOD (retro VHS-era)
|
|
|
|
|
|
Lens barrel faces LEFT toward the scene
|
2026-02-21 10:12:23 -05:00
|
|
|
|
══════════════════════════════════════════ */
|
|
|
|
|
|
.vc-wrap {
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
flex-direction: column;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
align-items: center;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
flex-shrink: 0;
|
2026-02-21 10:34:17 -05:00
|
|
|
|
transform: translateY(12px);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
.vc-camera {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
filter: drop-shadow(0 6px 18px rgba(0,0,0,.8));
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Top carry handle */
|
|
|
|
|
|
.vc-handle {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 58px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
height: 13px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 8px 8px 0 0;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: relative;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
overflow: hidden;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: inset 0 1px 0 rgba(255,255,255,.07);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-handle::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 8px; top: 3px; right: 8px; bottom: 3px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: repeating-linear-gradient(90deg,
|
|
|
|
|
|
rgba(255,255,255,.04) 0, rgba(255,255,255,.04) 3px,
|
|
|
|
|
|
transparent 3px, transparent 6px);
|
|
|
|
|
|
border-radius: 2px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* Main body */
|
|
|
|
|
|
.vc-body {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 98px;
|
|
|
|
|
|
height: 54px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-top: 1px solid rgba(255,255,255,.12);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 0 4px 4px 0;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
overflow: visible;
|
|
|
|
|
|
box-shadow: inset 0 -1px 0 rgba(0,0,0,.3);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Lens barrel — extends LEFT toward the scene */
|
|
|
|
|
|
.vc-lens-barrel {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
left: -34px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
width: 38px; height: 38px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: #0c0c0c;
|
|
|
|
|
|
border: 2px solid var(--color-border);
|
|
|
|
|
|
box-shadow: 0 0 0 1px rgba(255,255,255,.1), inset 0 0 8px rgba(0,0,0,1);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
animation: vc-lens-zoom 4s ease-in-out infinite;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-lens-tip {
|
|
|
|
|
|
width: 26px; height: 26px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: #0a0a18;
|
|
|
|
|
|
border: 1px solid rgba(100,140,255,.3);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-lens-glass {
|
|
|
|
|
|
width: 17px; height: 17px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
background: radial-gradient(circle at 30% 30%, #1a6ad6 0%, #0a0f2e 55%, #000510 100%);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-lens-reflex {
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: absolute;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
top: 2px; left: 2px;
|
|
|
|
|
|
width: 6px; height: 4px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: rgba(255,255,255,.25);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
transform: rotate(-20deg);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* Top rail */
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-top-rail {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
top: 0; left: 6px; right: 6px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
height: 4px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: rgba(255,255,255,.04);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-top: none;
|
|
|
|
|
|
border-radius: 0 0 2px 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* REC indicator */
|
|
|
|
|
|
.vc-rec-light {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
top: 8px; left: 16px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
width: 7px; height: 7px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: #ef4444;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
box-shadow: 0 0 8px #ef4444, 0 0 16px rgba(239,68,68,.4);
|
2026-02-21 10:12:23 -05:00
|
|
|
|
animation: vc-rec-blink 1.4s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Eyepiece — extends RIGHT */
|
|
|
|
|
|
.vc-eyepiece {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
right: -14px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 14px; height: 18px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-left: none;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 0 4px 4px 0;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
justify-content: center;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-eyepiece::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
width: 8px; height: 8px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: rgba(0,0,0,.8);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 50%;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
border: 1px solid rgba(255,255,255,.15);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* Cassette door */
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-body::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
right: 6px; top: 7px;
|
|
|
|
|
|
width: 28px; height: 34px;
|
|
|
|
|
|
background: rgba(0,0,0,.2);
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* ── Tripod ── */
|
|
|
|
|
|
.vc-tripod {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 98px;
|
|
|
|
|
|
filter: drop-shadow(0 4px 10px rgba(0,0,0,.6));
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-stem {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 5px;
|
|
|
|
|
|
height: 40px;
|
|
|
|
|
|
background: linear-gradient(to right, var(--color-bg-alt), var(--color-border), var(--color-bg-alt));
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 2px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
margin-bottom: -2px;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-legs {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: flex-end;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 82px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
position: relative;
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.vc-leg {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
width: 3px; height: 30px;
|
|
|
|
|
|
background: linear-gradient(to right, var(--color-bg-alt), var(--color-border));
|
2026-02-21 10:12:23 -05:00
|
|
|
|
border-radius: 0 0 2px 2px;
|
|
|
|
|
|
transform-origin: top center;
|
|
|
|
|
|
}
|
2026-02-21 10:20:39 -05:00
|
|
|
|
.vc-leg--l { transform: rotate(-22deg); }
|
|
|
|
|
|
.vc-leg--c { height: 20px; }
|
|
|
|
|
|
.vc-leg--r { transform: rotate(22deg); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.vc-legs::after {
|
|
|
|
|
|
content: '';
|
2026-02-21 10:04:18 -05:00
|
|
|
|
position: absolute;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
top: 9px; left: 9px; right: 9px;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
height: 2px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
background: var(--color-border);
|
2026-02-21 10:04:18 -05:00
|
|
|
|
border-radius: 1px;
|
2026-02-21 10:20:39 -05:00
|
|
|
|
opacity: .7;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 10:20:39 -05:00
|
|
|
|
/* ══ Keyframes ══ */
|
2026-02-21 10:04:18 -05:00
|
|
|
|
@keyframes cam-subject-1 {
|
2026-02-21 10:12:23 -05:00
|
|
|
|
0%, 30% { opacity: 1; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
33%, 100% { opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes cam-subject-2 {
|
2026-02-21 10:12:23 -05:00
|
|
|
|
0%, 30% { opacity: 0; }
|
|
|
|
|
|
33%, 63% { opacity: 1; }
|
|
|
|
|
|
66%, 100% { opacity: 0; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
@keyframes cam-subject-3 {
|
2026-02-21 10:12:23 -05:00
|
|
|
|
0%, 63% { opacity: 0; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
66%, 100% { opacity: 1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes cam-flash-pulse {
|
2026-02-21 10:12:23 -05:00
|
|
|
|
0% { opacity: 0; } 0.5% { opacity: 0.9; } 2.5% { opacity: 0; }
|
|
|
|
|
|
33% { opacity: 0; } 33.5% { opacity: 0.9; } 35.5% { opacity: 0; }
|
|
|
|
|
|
66% { opacity: 0; } 66.5% { opacity: 0.9; } 68.5% { opacity: 0; }
|
|
|
|
|
|
100% { opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes pc-flash-glow {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
0% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
0.5% { background: #ffffa0; filter: brightness(4); }
|
|
|
|
|
|
2.5% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
33% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
33.5% { background: #ffffa0; filter: brightness(4); }
|
|
|
|
|
|
35.5% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
66% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
66.5% { background: #ffffa0; filter: brightness(4); }
|
|
|
|
|
|
68.5% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
100% { background: #c8c870; filter: brightness(1); }
|
|
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
@keyframes pc-shutter {
|
|
|
|
|
|
0% { transform: scaleY(1); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
0.4% { transform: scaleY(0.7) translateY(1px); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
2% { transform: scaleY(1); }
|
|
|
|
|
|
33% { transform: scaleY(1); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
33.4% { transform: scaleY(0.7) translateY(1px); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
35% { transform: scaleY(1); }
|
|
|
|
|
|
66% { transform: scaleY(1); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
66.4% { transform: scaleY(0.7) translateY(1px); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
68% { transform: scaleY(1); }
|
|
|
|
|
|
100% { transform: scaleY(1); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes pc-print-1 {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
0% { opacity: 0; transform: rotate(-12deg) translateY(-16px); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
1.5% { opacity: 1; }
|
|
|
|
|
|
4% { opacity: 1; transform: rotate(-12deg) translateY(0); }
|
|
|
|
|
|
95% { opacity: 1; transform: rotate(-12deg) translateY(0); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
99% { opacity: 0; } 100% { opacity: 0; transform: rotate(-12deg) translateY(-16px); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
@keyframes pc-print-2 {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
0%, 33% { opacity: 0; transform: rotate(-2deg) translateY(-16px); }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
34.5% { opacity: 1; }
|
|
|
|
|
|
37% { opacity: 1; transform: rotate(-2deg) translateY(0); }
|
|
|
|
|
|
95% { opacity: 1; transform: rotate(-2deg) translateY(0); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
99% { opacity: 0; } 100% { opacity: 0; transform: rotate(-2deg) translateY(-16px); }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
2026-02-21 10:12:23 -05:00
|
|
|
|
@keyframes pc-print-3 {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
0%, 66% { opacity: 0; transform: rotate(10deg) translateY(-16px); }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
67.5% { opacity: 1; }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
70% { opacity: 1; transform: rotate(10deg) translateY(0); }
|
|
|
|
|
|
95% { opacity: 1; transform: rotate(10deg) translateY(0); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
99% { opacity: 0; } 100% { opacity: 0; transform: rotate(10deg) translateY(-16px); }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
@keyframes vc-rec-blink {
|
2026-02-21 10:20:39 -05:00
|
|
|
|
0%, 45% { opacity: 1; }
|
|
|
|
|
|
55%, 100% { opacity: 0.15; }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
}
|
|
|
|
|
|
@keyframes vc-lens-zoom {
|
|
|
|
|
|
0%, 100% { transform: translateY(-50%) scale(1); }
|
2026-02-21 10:20:39 -05:00
|
|
|
|
50% { transform: translateY(-50%) scale(1.08); }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 16:47:11 -05:00
|
|
|
|
/* ── Responsive scale-down ── */
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.cam-stage { transform: scale(0.85); transform-origin: center center; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.cam-stage { transform: scale(0.72); transform-origin: center center; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 10:12:23 -05:00
|
|
|
|
/* ── Reduced-motion ── */
|
2026-02-21 10:04:18 -05:00
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.cam-subject--2, .cam-subject--3,
|
|
|
|
|
|
.cam-flash-overlay,
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-print--2, .pc-print--3 { animation: none !important; opacity: 0 !important; }
|
2026-02-21 10:04:18 -05:00
|
|
|
|
.cam-subject--1 { animation: none !important; opacity: 1 !important; }
|
2026-02-21 10:12:23 -05:00
|
|
|
|
.pc-shutter-btn, .pc-flash-unit::after,
|
|
|
|
|
|
.vc-lens-barrel, .vc-rec-light { animation: none !important; }
|
|
|
|
|
|
.pc-print--1 {
|
2026-02-21 10:04:18 -05:00
|
|
|
|
animation: none !important;
|
|
|
|
|
|
opacity: 1 !important;
|
2026-02-21 10:12:23 -05:00
|
|
|
|
transform: rotate(-12deg) translateY(0) !important;
|
2026-02-21 10:04:18 -05:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-02-21 10:46:40 -05:00
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════════════════
|
|
|
|
|
|
USE CASES SHOWCASE (uc-*)
|
|
|
|
|
|
Four animated circles in a rounded-border track beneath the hero.
|
|
|
|
|
|
═══════════════════════════════════════════════════════════════════════ */
|
|
|
|
|
|
|
|
|
|
|
|
.uc-track {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
gap: 1.5rem;
|
|
|
|
|
|
border: 1px solid var(--color-border);
|
|
|
|
|
|
border-radius: var(--radius-xl, 1.25rem);
|
|
|
|
|
|
padding: 2.5rem 3rem;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.uc-item {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.uc-circle {
|
|
|
|
|
|
width: 158px;
|
|
|
|
|
|
height: 158px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
border: 1.5px solid var(--color-border);
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
background: var(--color-bg);
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.uc-item-body {
|
|
|
|
|
|
margin-top: 1.1rem;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-item-title {
|
|
|
|
|
|
font-size: .875rem;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
color: var(--color-heading);
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-item-desc {
|
|
|
|
|
|
font-size: .75rem;
|
|
|
|
|
|
color: var(--color-muted);
|
|
|
|
|
|
margin-top: .3rem;
|
|
|
|
|
|
line-height: 1.45;
|
|
|
|
|
|
max-width: 160px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Shared inner wrapper ─────────────────────────────────────────────── */
|
|
|
|
|
|
.uc-inner {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
padding: 18px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
gap: 6px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ══════════════════════════════════
|
|
|
|
|
|
1 — MENU BOARD
|
|
|
|
|
|
══════════════════════════════════ */
|
|
|
|
|
|
.uc-inner--menu { gap: 0; padding: 14px 18px; }
|
|
|
|
|
|
|
|
|
|
|
|
.uc-menu-header {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 16px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-menu-row {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 5px 4px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
gap: 6px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-menu-row + .uc-menu-row { margin-top: 4px; }
|
|
|
|
|
|
|
|
|
|
|
|
.uc-menu-divider {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 1px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
margin: 6px 0;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-menu-name {
|
|
|
|
|
|
height: 7px;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-menu-name--sm { max-width: 55%; }
|
|
|
|
|
|
.uc-menu-price {
|
|
|
|
|
|
height: 7px;
|
|
|
|
|
|
width: 22px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-menu-row--highlight {
|
|
|
|
|
|
background: color-mix(in srgb, var(--color-primary) 15%, transparent);
|
|
|
|
|
|
animation: uc-menu-highlight 3s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-menu-row--highlight .uc-menu-name,
|
|
|
|
|
|
.uc-menu-row--highlight .uc-menu-price {
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
animation: uc-menu-price-update 3s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes uc-menu-highlight {
|
|
|
|
|
|
0%, 100% { background: color-mix(in srgb, var(--color-primary) 15%, transparent); }
|
|
|
|
|
|
45%, 55% { background: color-mix(in srgb, var(--color-accent) 25%, transparent); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes uc-menu-price-update {
|
|
|
|
|
|
0%, 38% { opacity: 1; }
|
|
|
|
|
|
42% { opacity: 0; }
|
|
|
|
|
|
48% { opacity: 1; }
|
|
|
|
|
|
52% { opacity: 0; }
|
|
|
|
|
|
58%, 100%{ opacity: 1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ══════════════════════════════════
|
|
|
|
|
|
2 — EVENT DISPLAY
|
|
|
|
|
|
══════════════════════════════════ */
|
2026-02-21 13:14:41 -05:00
|
|
|
|
.uc-inner--event {
|
|
|
|
|
|
gap: 0;
|
|
|
|
|
|
padding: 16px 18px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
2026-02-21 10:46:40 -05:00
|
|
|
|
|
|
|
|
|
|
.uc-event-header {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 13px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
flex-shrink: 0;
|
2026-02-21 13:05:58 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 0 6px;
|
|
|
|
|
|
font-size: 9px;
|
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
|
color: var(--color-text);
|
|
|
|
|
|
letter-spacing: 0.5px;
|
2026-02-21 10:46:40 -05:00
|
|
|
|
}
|
|
|
|
|
|
.uc-event-row {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 8px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-event-row + .uc-event-row { margin-top: 7px; }
|
|
|
|
|
|
.uc-event-time {
|
2026-02-21 13:05:58 -05:00
|
|
|
|
height: 10px;
|
|
|
|
|
|
width: 28px;
|
2026-02-21 10:46:40 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
flex-shrink: 0;
|
2026-02-21 13:05:58 -05:00
|
|
|
|
font-size: 7px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
color: var(--color-muted);
|
|
|
|
|
|
font-weight: 600;
|
2026-02-21 10:46:40 -05:00
|
|
|
|
}
|
2026-02-21 13:05:58 -05:00
|
|
|
|
.uc-event-title {
|
2026-02-21 10:46:40 -05:00
|
|
|
|
height: 14px;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
2026-02-21 13:05:58 -05:00
|
|
|
|
font-size: 8px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
padding: 0 6px;
|
|
|
|
|
|
color: var(--color-muted);
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
|
text-overflow: ellipsis;
|
2026-02-21 10:46:40 -05:00
|
|
|
|
}
|
2026-02-21 13:05:58 -05:00
|
|
|
|
.uc-event-title::after {
|
2026-02-21 10:46:40 -05:00
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
2026-02-21 13:05:58 -05:00
|
|
|
|
background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.2) 50%, transparent 100%);
|
2026-02-21 10:46:40 -05:00
|
|
|
|
transform: translateX(-150%);
|
2026-02-21 13:05:58 -05:00
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-event-title--active {
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-event-title--accent {
|
|
|
|
|
|
background: color-mix(in srgb, var(--color-accent) 55%, var(--color-border));
|
|
|
|
|
|
color: var(--color-text);
|
2026-02-21 10:46:40 -05:00
|
|
|
|
}
|
2026-02-21 13:05:58 -05:00
|
|
|
|
.uc-event-title--active::after { animation: uc-event-shimmer 2.2s linear infinite; }
|
|
|
|
|
|
.uc-event-title--accent::after { animation: uc-event-shimmer 2.2s linear infinite 1.1s; }
|
2026-02-21 10:46:40 -05:00
|
|
|
|
|
2026-02-21 13:14:41 -05:00
|
|
|
|
.uc-event-cursor {
|
2026-02-21 10:46:40 -05:00
|
|
|
|
position: absolute;
|
2026-02-21 13:14:41 -05:00
|
|
|
|
top: 32px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
height: 2px;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
opacity: .85;
|
2026-02-21 10:46:40 -05:00
|
|
|
|
pointer-events: none;
|
2026-02-21 13:14:41 -05:00
|
|
|
|
box-shadow: 0 0 8px rgba(var(--color-primary-rgb), 0.4);
|
|
|
|
|
|
animation: uc-event-time-progress 20s linear infinite;
|
2026-02-21 13:13:03 -05:00
|
|
|
|
}
|
2026-02-21 13:14:41 -05:00
|
|
|
|
.uc-event-cursor::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: -6px;
|
|
|
|
|
|
top: -4px;
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
box-shadow: 0 0 8px rgba(var(--color-primary-rgb), 0.6);
|
2026-02-21 10:46:40 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes uc-event-shimmer {
|
|
|
|
|
|
0% { transform: translateX(-150%); }
|
|
|
|
|
|
100% { transform: translateX(250%); }
|
|
|
|
|
|
}
|
2026-02-21 13:14:41 -05:00
|
|
|
|
@keyframes uc-event-time-progress {
|
|
|
|
|
|
0% { top: 32px; }
|
|
|
|
|
|
100% { top: calc(100% - 10px); }
|
2026-02-21 10:46:40 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ══════════════════════════════════
|
|
|
|
|
|
3 — OFFICE DASHBOARD
|
|
|
|
|
|
══════════════════════════════════ */
|
|
|
|
|
|
.uc-inner--dashboard {
|
|
|
|
|
|
justify-content: flex-end;
|
|
|
|
|
|
padding: 18px 16px 12px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-db-bars {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
gap: 9px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 80px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-db-bar {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
border-radius: 4px 4px 0 0;
|
|
|
|
|
|
transform-origin: bottom;
|
|
|
|
|
|
transform: scaleY(.55);
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-db-bar--1, .uc-db-bar--3 { background: var(--color-primary); }
|
|
|
|
|
|
.uc-db-bar--2, .uc-db-bar--4 { background: color-mix(in srgb, var(--color-primary) 45%, var(--color-border)); }
|
|
|
|
|
|
|
|
|
|
|
|
.uc-db-bar--1 { animation: uc-db-scale-1 3s ease-in-out infinite; }
|
|
|
|
|
|
.uc-db-bar--2 { animation: uc-db-scale-2 3s ease-in-out infinite .4s; }
|
|
|
|
|
|
.uc-db-bar--3 { animation: uc-db-scale-3 3s ease-in-out infinite .8s; }
|
|
|
|
|
|
.uc-db-bar--4 { animation: uc-db-scale-4 3s ease-in-out infinite 1.2s; }
|
|
|
|
|
|
|
|
|
|
|
|
.uc-db-baseline {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 1px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-db-labels {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 9px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-db-lbl {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
opacity: .6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes uc-db-scale-1 {
|
|
|
|
|
|
0%, 100% { transform: scaleY(.55); }
|
|
|
|
|
|
40% { transform: scaleY(.82); }
|
|
|
|
|
|
70% { transform: scaleY(.42); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes uc-db-scale-2 {
|
|
|
|
|
|
0%, 100% { transform: scaleY(.70); }
|
|
|
|
|
|
40% { transform: scaleY(.38); }
|
|
|
|
|
|
70% { transform: scaleY(.78); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes uc-db-scale-3 {
|
|
|
|
|
|
0%, 100% { transform: scaleY(.40); }
|
|
|
|
|
|
40% { transform: scaleY(.68); }
|
|
|
|
|
|
70% { transform: scaleY(.58); }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes uc-db-scale-4 {
|
|
|
|
|
|
0%, 100% { transform: scaleY(.62); }
|
|
|
|
|
|
40% { transform: scaleY(.50); }
|
|
|
|
|
|
70% { transform: scaleY(.88); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ══════════════════════════════════
|
|
|
|
|
|
4 — WAYFINDING
|
|
|
|
|
|
══════════════════════════════════ */
|
|
|
|
|
|
.uc-inner--wayfinding { padding: 0; }
|
|
|
|
|
|
|
|
|
|
|
|
/* Corridor lines */
|
|
|
|
|
|
.uc-wf-corridor {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
background: var(--color-border);
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-wf-corridor--h {
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
width: 70%;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
left: 15%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-wf-corridor--v {
|
|
|
|
|
|
width: 8px;
|
|
|
|
|
|
height: 54%;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
top: 23%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Rooms */
|
|
|
|
|
|
.uc-wf-room {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
border: 1.5px solid var(--color-border);
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
background: var(--color-bg-alt);
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-wf-room--1 { width: 32px; height: 28px; top: 17%; left: 17%; }
|
|
|
|
|
|
.uc-wf-room--2 { width: 28px; height: 26px; top: 17%; right: 17%; }
|
|
|
|
|
|
.uc-wf-room--3 { width: 30px; height: 28px; bottom: 17%; left: 50%; transform: translateX(-50%); }
|
|
|
|
|
|
|
|
|
|
|
|
/* Location dot */
|
|
|
|
|
|
.uc-wf-dot {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 12px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: var(--color-primary);
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
left: 36%;
|
|
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
|
}
|
|
|
|
|
|
.uc-wf-dot::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: -5px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
border: 1.5px solid var(--color-primary);
|
|
|
|
|
|
animation: uc-wf-pulse 2s ease-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Direction arrow */
|
|
|
|
|
|
.uc-wf-arrow {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
left: 36%;
|
|
|
|
|
|
transform: translate(-50%, calc(-50% - 18px));
|
|
|
|
|
|
width: 0;
|
|
|
|
|
|
height: 0;
|
|
|
|
|
|
border-left: 6px solid transparent;
|
|
|
|
|
|
border-right: 6px solid transparent;
|
|
|
|
|
|
border-bottom: 11px solid var(--color-accent);
|
|
|
|
|
|
animation: uc-wf-arrow-bob 1.8s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes uc-wf-pulse {
|
|
|
|
|
|
0% { transform: scale(1); opacity: .7; }
|
|
|
|
|
|
70% { transform: scale(2.4); opacity: 0; }
|
|
|
|
|
|
100% { transform: scale(1); opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes uc-wf-arrow-bob {
|
|
|
|
|
|
0%, 100% { transform: translate(-50%, calc(-50% - 18px)); }
|
|
|
|
|
|
50% { transform: translate(-50%, calc(-50% - 24px)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Responsive ──────────────────────────────────────────── */
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.uc-track { flex-wrap: wrap; justify-content: center; gap: 2rem; padding: 2.5rem 2rem; }
|
|
|
|
|
|
.uc-item { width: calc(50% - 1rem); flex: none; }
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 500px) {
|
|
|
|
|
|
.uc-track { padding: 2rem 1.5rem; }
|
|
|
|
|
|
.uc-item { width: 100%; }
|
|
|
|
|
|
.uc-item-desc { max-width: none; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Reduced-motion overrides ────────────────────────────── */
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.uc-menu-row--highlight,
|
|
|
|
|
|
.uc-menu-row--highlight .uc-menu-name,
|
|
|
|
|
|
.uc-menu-row--highlight .uc-menu-price,
|
2026-02-21 13:05:58 -05:00
|
|
|
|
.uc-event-title--active::after,
|
|
|
|
|
|
.uc-event-title--accent::after,
|
2026-02-21 13:14:41 -05:00
|
|
|
|
.uc-event-cursor,
|
2026-02-21 10:46:40 -05:00
|
|
|
|
.uc-db-bar--1, .uc-db-bar--2, .uc-db-bar--3, .uc-db-bar--4,
|
|
|
|
|
|
.uc-wf-dot::after,
|
|
|
|
|
|
.uc-wf-arrow { animation: none !important; }
|
|
|
|
|
|
/* Static bar heights when animation is off */
|
|
|
|
|
|
.uc-db-bar--1 { transform: scaleY(.55) !important; }
|
|
|
|
|
|
.uc-db-bar--2 { transform: scaleY(.70) !important; }
|
|
|
|
|
|
.uc-db-bar--3 { transform: scaleY(.40) !important; }
|
|
|
|
|
|
.uc-db-bar--4 { transform: scaleY(.62) !important; }
|
|
|
|
|
|
}
|
2026-02-21 12:35:28 -05:00
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
NEVER GOES DARK ANIMATION (.platform-visual.has-ngd)
|
|
|
|
|
|
Sequence (10 s loop):
|
|
|
|
|
|
0 – 30 % : Connected – dots travel player → cloud, cloud green
|
|
|
|
|
|
30 – 45 % : Breaking – line turns red, × icon fades in
|
|
|
|
|
|
45 – 72 % : Offline – × visible, ✓ on player, TV still plays
|
|
|
|
|
|
72 – 85 % : Reconnect – × fades, dots resume, cloud back to green
|
|
|
|
|
|
85 – 100% : Connected – steady state before next loop
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Wrapper overrides ─────────────────────────────────────── */
|
|
|
|
|
|
.platform-visual.has-ngd {
|
|
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: visible;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Stage ─────────────────────────────────────────────────── */
|
|
|
|
|
|
.ngd-stage {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 100%;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
max-width: 560px;
|
2026-02-21 12:45:48 -05:00
|
|
|
|
aspect-ratio: 1/1;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── TV ─────────────────────────────────────────────────────── */
|
|
|
|
|
|
.ngd-tv {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 12:52:54 -05:00
|
|
|
|
left: 20px;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
top: 72px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-tv__body {
|
2026-02-21 17:26:19 -05:00
|
|
|
|
width: 400px;
|
|
|
|
|
|
height: 235px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 4px solid #111;
|
|
|
|
|
|
border-radius: 6px 6px 4px 4px;
|
|
|
|
|
|
outline: 1px solid #000;
|
|
|
|
|
|
padding: 3px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
box-shadow: 0 14px 48px rgba(0,0,0,.55);
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* HDMI port stub on right side */
|
|
|
|
|
|
.ngd-tv__port {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
right: -6px;
|
|
|
|
|
|
top: 110px;
|
|
|
|
|
|
width: 6px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
height: 14px;
|
|
|
|
|
|
background: #1a1a1a;
|
|
|
|
|
|
border: 1px solid #000;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
border-left: none;
|
|
|
|
|
|
border-radius: 0 2px 2px 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-tv__port::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
top: 2px;
|
|
|
|
|
|
width: 3px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: #333;
|
|
|
|
|
|
border-radius: 0 1px 1px 0;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ngd-tv__screen {
|
2026-02-21 17:26:19 -05:00
|
|
|
|
--ngd-menu-scale-x: 1.8182;
|
|
|
|
|
|
--ngd-menu-scale-y: 1.4506;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
background:
|
|
|
|
|
|
repeating-linear-gradient(
|
|
|
|
|
|
180deg,
|
|
|
|
|
|
transparent, transparent 3px,
|
|
|
|
|
|
rgba(0,0,0,.10) 3px, rgba(0,0,0,.10) 4px
|
|
|
|
|
|
),
|
|
|
|
|
|
linear-gradient(135deg, #0c1016 0%, #151c28 60%, #0c1016 100%);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Scanline sweep */
|
|
|
|
|
|
.ngd-tv__screen::after {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 0; width: 100%; height: 3px;
|
|
|
|
|
|
background: linear-gradient(90deg, transparent, rgba(74,222,128,.22), transparent);
|
|
|
|
|
|
animation: da-scan 4s linear infinite;
|
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* TV feet */
|
|
|
|
|
|
.ngd-tv__feet {
|
|
|
|
|
|
display: flex;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
width: 224px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ngd-tv__foot {
|
2026-02-21 17:26:19 -05:00
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
|
|
|
|
|
border-radius: 0 0 4px 4px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Menu board content (always playing) ───────────────────── */
|
|
|
|
|
|
.ngd-menu {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
left: 0;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
width: 220px;
|
|
|
|
|
|
height: 162px;
|
|
|
|
|
|
transform: scale(var(--ngd-menu-scale-x), var(--ngd-menu-scale-y));
|
|
|
|
|
|
transform-origin: top left;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
padding: 7px 6px 4px;
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__hd {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
padding-bottom: 4px;
|
|
|
|
|
|
border-bottom: 1px solid rgba(255,200,80,.18);
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__logo {
|
|
|
|
|
|
width: 9px; height: 9px;
|
|
|
|
|
|
background: #4CAF50;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__ttl {
|
|
|
|
|
|
flex: 1; height: 5px;
|
|
|
|
|
|
background: rgba(255,200,80,.45);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
max-width: 55px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__cols {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 6px;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__col {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__cat {
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
background: rgba(76,175,80,.5);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
margin-bottom: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__row {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
padding: 2px 3px;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
transition: background .3s;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__row--hl {
|
|
|
|
|
|
background: rgba(76,175,80,.14);
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-hl-pulse 1.75s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__name {
|
|
|
|
|
|
flex: 1; height: 4px;
|
|
|
|
|
|
background: rgba(255,255,255,.25);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__row--hl .ngd-menu__name {
|
|
|
|
|
|
background: rgba(76,175,80,.55);
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__price {
|
|
|
|
|
|
width: 16px; height: 4px;
|
|
|
|
|
|
background: rgba(255,200,80,.4);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__row--hl .ngd-menu__price {
|
|
|
|
|
|
background: rgba(255,200,80,.7);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Scrolling ticker at bottom */
|
|
|
|
|
|
.ngd-menu__ticker {
|
|
|
|
|
|
height: 6px;
|
|
|
|
|
|
background: rgba(76,175,80,.12);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-menu__ticker-inner {
|
|
|
|
|
|
width: 250%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
background: repeating-linear-gradient(
|
|
|
|
|
|
90deg,
|
|
|
|
|
|
rgba(76,175,80,.5) 0px, rgba(76,175,80,.5) 30px,
|
|
|
|
|
|
transparent 30px, transparent 50px
|
|
|
|
|
|
);
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-ticker 2s linear infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 12:41:45 -05:00
|
|
|
|
/* ── Player device (stick plugged into TV right-side HDMI port) ── */
|
|
|
|
|
|
.ngd-player {
|
2026-02-21 12:35:28 -05:00
|
|
|
|
position: absolute;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
/* TV: left(20) + border(4) + width(400) + border(4) = 428px */
|
|
|
|
|
|
left: 428px;
|
|
|
|
|
|
/* TV top(72) + border(4) + port.top(110) + port half-h(7) = 193px
|
|
|
|
|
|
stick h=32px → top = 193 − 16 = 177px */
|
|
|
|
|
|
top: 177px;
|
2026-02-21 12:41:45 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
/* HDMI connector plug — left side, inserts into TV port */
|
|
|
|
|
|
.ngd-player__connector {
|
2026-02-21 17:26:19 -05:00
|
|
|
|
width: 18px;
|
|
|
|
|
|
height: 14px;
|
2026-02-21 12:41:45 -05:00
|
|
|
|
background: linear-gradient(180deg, #888, #666);
|
|
|
|
|
|
border-radius: 2px 0 0 2px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 1px 3px rgba(0,0,0,.3);
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
z-index: 1;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
2026-02-21 12:41:45 -05:00
|
|
|
|
.ngd-player__connector::before {
|
|
|
|
|
|
content: '';
|
2026-02-21 12:35:28 -05:00
|
|
|
|
position: absolute;
|
2026-02-21 12:41:45 -05:00
|
|
|
|
right: 2px;
|
|
|
|
|
|
top: 2px;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
width: 8px;
|
|
|
|
|
|
height: 8px;
|
2026-02-21 12:41:45 -05:00
|
|
|
|
background: #555;
|
|
|
|
|
|
border-radius: 1px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
2026-02-21 12:41:45 -05:00
|
|
|
|
/* Main stick body — white gradient capsule */
|
2026-02-21 12:35:28 -05:00
|
|
|
|
.ngd-player__body {
|
2026-02-21 17:26:19 -05:00
|
|
|
|
width: 84px;
|
|
|
|
|
|
height: 32px;
|
2026-02-21 12:41:45 -05:00
|
|
|
|
background: linear-gradient(180deg, #f5f5f5, #e0e0e0);
|
|
|
|
|
|
border: 1px solid #ccc;
|
|
|
|
|
|
border-radius: 0 5px 5px 0;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
position: relative;
|
2026-02-21 12:41:45 -05:00
|
|
|
|
box-shadow: 0 2px 8px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.6);
|
|
|
|
|
|
}
|
|
|
|
|
|
/* Brand logo area subtle inset */
|
|
|
|
|
|
.ngd-player__body::before {
|
|
|
|
|
|
content: '';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 6px;
|
|
|
|
|
|
left: 8px;
|
|
|
|
|
|
width: 28px;
|
|
|
|
|
|
height: 12px;
|
|
|
|
|
|
background: rgba(0,0,0,.04);
|
|
|
|
|
|
border-radius: 2px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
2026-02-21 12:41:45 -05:00
|
|
|
|
/* LED indicator — right side of body */
|
2026-02-21 12:35:28 -05:00
|
|
|
|
.ngd-player__led {
|
2026-02-21 12:41:45 -05:00
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 8px;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
width: 4px;
|
|
|
|
|
|
height: 4px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: #4CAF50;
|
|
|
|
|
|
box-shadow: 0 0 6px rgba(76,175,80,.8);
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-led 5s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Checkmark badge — visible only during offline phase */
|
|
|
|
|
|
.ngd-player__check {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -14px;
|
|
|
|
|
|
right: -11px;
|
|
|
|
|
|
width: 24px; height: 24px;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: scale(0.4);
|
|
|
|
|
|
transform-origin: center;
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-check-show 5s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
filter: drop-shadow(0 0 4px rgba(76,175,80,.6));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Signal wrap (cloud + vertical line to player) ─────────── */
|
|
|
|
|
|
.ngd-signal-wrap {
|
|
|
|
|
|
position: absolute;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
/* body centre X: player left(428) + connector(18) + body half(42) = 488
|
|
|
|
|
|
cloud width 74px → half = 37 → left = 488 − 37 = 451px */
|
|
|
|
|
|
left: 451px;
|
2026-02-21 12:52:54 -05:00
|
|
|
|
top: 22px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
width: 74px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-cloud {
|
|
|
|
|
|
width: 74px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-cloud__svg {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: auto;
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
}
|
|
|
|
|
|
.ngd-cloud__path {
|
|
|
|
|
|
stroke: #4CAF50;
|
|
|
|
|
|
opacity: .85;
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-cloud-color 5s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Vertical signal line */
|
|
|
|
|
|
.ngd-signal-line {
|
|
|
|
|
|
width: 3px;
|
2026-02-21 17:26:19 -05:00
|
|
|
|
height: 109px;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
background: rgba(76,175,80,.35);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: visible;
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-line-col 5s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
/* Dots container — hidden during break phase */
|
|
|
|
|
|
.ngd-signal__dots {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
overflow: hidden;
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-dots-vis 5s linear infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ngd-signal__dot {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
width: 5px; height: 5px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background: #4CAF50;
|
|
|
|
|
|
box-shadow: 0 0 5px rgba(76,175,80,.8);
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-dot-up 0.9s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
.ngd-signal__dot--2 { animation-delay: -0.6s; }
|
|
|
|
|
|
.ngd-signal__dot--3 { animation-delay: -1.2s; }
|
|
|
|
|
|
/* Break × badge — centered on line */
|
|
|
|
|
|
.ngd-signal__break {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translate(-50%, -50%) scale(0);
|
|
|
|
|
|
width: 18px; height: 18px;
|
|
|
|
|
|
opacity: 0;
|
2026-02-21 12:36:59 -05:00
|
|
|
|
animation: ngd-break-show 5s ease-in-out infinite;
|
2026-02-21 12:35:28 -05:00
|
|
|
|
filter: drop-shadow(0 0 4px rgba(239,68,68,.5));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
KEYFRAMES (10 s cycle)
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
|
|
|
|
|
|
/* Ticker scroll */
|
|
|
|
|
|
@keyframes ngd-ticker {
|
|
|
|
|
|
from { transform: translateX(0); }
|
|
|
|
|
|
to { transform: translateX(-50%); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Highlighted menu row pulsing */
|
|
|
|
|
|
@keyframes ngd-hl-pulse {
|
|
|
|
|
|
0%, 100% { background: rgba(76,175,80,.14); }
|
|
|
|
|
|
50% { background: rgba(76,175,80,.28); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Player LED: green → amber → red during disconnect → back to green */
|
|
|
|
|
|
@keyframes ngd-led {
|
|
|
|
|
|
0%, 29% { background: #4CAF50; box-shadow: 0 0 6px rgba(76,175,80,.8); }
|
|
|
|
|
|
33% { background: #f59e0b; box-shadow: 0 0 5px rgba(245,158,11,.6); }
|
|
|
|
|
|
38%, 71% { background: #ef4444; box-shadow: 0 0 4px rgba(239,68,68,.4); }
|
|
|
|
|
|
75% { background: #4CAF50; box-shadow: 0 0 6px rgba(76,175,80,.8); }
|
|
|
|
|
|
100% { background: #4CAF50; box-shadow: 0 0 6px rgba(76,175,80,.8); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Cloud stroke: green → red → green */
|
|
|
|
|
|
@keyframes ngd-cloud-color {
|
|
|
|
|
|
0%, 29% { stroke: #4CAF50; opacity: .85; }
|
|
|
|
|
|
36%, 71% { stroke: #ef4444; opacity: 1; }
|
|
|
|
|
|
76%, 100% { stroke: #4CAF50; opacity: .85; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Signal line colour */
|
|
|
|
|
|
@keyframes ngd-line-col {
|
|
|
|
|
|
0%, 29% { background: rgba(76,175,80,.35); }
|
|
|
|
|
|
36%, 71% { background: rgba(239,68,68,.45); }
|
|
|
|
|
|
76%, 100% { background: rgba(76,175,80,.35); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Dots container: visible during connected phases only */
|
|
|
|
|
|
@keyframes ngd-dots-vis {
|
|
|
|
|
|
0%, 29% { opacity: 1; }
|
|
|
|
|
|
33% { opacity: 0; }
|
|
|
|
|
|
71% { opacity: 0; }
|
|
|
|
|
|
75%, 100% { opacity: 1; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Single dot travelling bottom → top */
|
|
|
|
|
|
@keyframes ngd-dot-up {
|
|
|
|
|
|
0% { bottom: 1px; opacity: 0; }
|
|
|
|
|
|
8% { opacity: 1; }
|
|
|
|
|
|
85% { opacity: 1; }
|
|
|
|
|
|
100% { bottom: calc(100% - 5px); opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Break × badge: appears when disconnected */
|
|
|
|
|
|
@keyframes ngd-break-show {
|
|
|
|
|
|
0%, 29% { opacity: 0; transform: translate(-50%,-50%) scale(0); }
|
|
|
|
|
|
38%, 71% { opacity: 1; transform: translate(-50%,-50%) scale(1); }
|
|
|
|
|
|
76%, 100% { opacity: 0; transform: translate(-50%,-50%) scale(0); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Checkmark: appears when offline, confirming local playback */
|
|
|
|
|
|
@keyframes ngd-check-show {
|
|
|
|
|
|
0%, 44% { opacity: 0; transform: scale(0.4); }
|
|
|
|
|
|
52%, 71% { opacity: 1; transform: scale(1); }
|
|
|
|
|
|
77%, 100% { opacity: 0; transform: scale(0.4); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Responsive ─────────────────────────────────────────────── */
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.ngd-stage { max-width: 320px; }
|
2026-02-21 12:52:54 -05:00
|
|
|
|
/* Scale at 84% (320/380) */
|
2026-02-21 12:45:48 -05:00
|
|
|
|
.ngd-tv { left: 17px; top: 76px; }
|
|
|
|
|
|
.ngd-tv__body { width: 185px; height: 136px; }
|
2026-02-21 17:26:19 -05:00
|
|
|
|
.ngd-tv__screen { --ngd-menu-scale-x: 0.8409; --ngd-menu-scale-y: 0.8395; }
|
2026-02-21 12:52:54 -05:00
|
|
|
|
/* port at body midpoint: 136/2 − 7 = 61 */
|
|
|
|
|
|
.ngd-tv__port { top: 61px; }
|
2026-02-21 12:45:48 -05:00
|
|
|
|
.ngd-tv__feet { gap: 60px; }
|
|
|
|
|
|
.ngd-tv__foot { width: 24px; }
|
2026-02-21 12:52:54 -05:00
|
|
|
|
/* TV right: 17+4+185+4=210; port centre-y: 76+4+61+7=148; player top: 148−13=135 */
|
|
|
|
|
|
.ngd-player { left: 210px; top: 135px; }
|
2026-02-21 12:45:48 -05:00
|
|
|
|
.ngd-player__connector { width: 12px; height: 9px; }
|
|
|
|
|
|
.ngd-player__body { width: 68px; height: 24px; }
|
|
|
|
|
|
.ngd-player__body::before { top: 5px; left: 6px; width: 24px; height: 10px; }
|
2026-02-21 12:41:45 -05:00
|
|
|
|
.ngd-player__led { width: 3px; height: 3px; right: 6px; }
|
2026-02-21 12:52:54 -05:00
|
|
|
|
/* body centre-x: 210+12+34=256; cloud 62px → half=31 → wrap left=225 */
|
|
|
|
|
|
.ngd-signal-wrap { left: 225px; top: 18px; width: 62px; }
|
|
|
|
|
|
/* line: wrap.top(18)+cloud_h(~38)=56 to player.top(135) → 79px */
|
|
|
|
|
|
.ngd-signal-line { height: 79px; }
|
2026-02-21 12:35:28 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Reduced-motion overrides ───────────────────────────────── */
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.ngd-tv__screen::after,
|
|
|
|
|
|
.ngd-menu__ticker-inner,
|
|
|
|
|
|
.ngd-menu__row--hl,
|
|
|
|
|
|
.ngd-player__led,
|
|
|
|
|
|
.ngd-signal__dot,
|
|
|
|
|
|
.ngd-signal__dots,
|
|
|
|
|
|
.ngd-signal__break,
|
|
|
|
|
|
.ngd-cloud__path,
|
|
|
|
|
|
.ngd-signal-line,
|
|
|
|
|
|
.ngd-player__check { animation: none !important; }
|
|
|
|
|
|
/* Static fallback states */
|
|
|
|
|
|
.ngd-player__led { background: #4CAF50; box-shadow: 0 0 5px rgba(76,175,80,.6); }
|
|
|
|
|
|
.ngd-cloud__path { stroke: #4CAF50; opacity: .8; }
|
|
|
|
|
|
.ngd-signal__dots { opacity: 1; }
|
|
|
|
|
|
}
|
2026-02-21 13:33:53 -05:00
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
BRANDED DISPLAY ANIMATION (.platform-visual.has-branded)
|
|
|
|
|
|
Sequence (8 s loop per screen, staggered by 0.5 s):
|
|
|
|
|
|
0 – 25 % : Boot splash — logo fades in centred on dark screen
|
|
|
|
|
|
25 – 40 % : Transition — logo shrinks to header, brand bar grows
|
|
|
|
|
|
40 – 90 % : Content — UI blocks slide in beneath brand header
|
|
|
|
|
|
90 – 100% : Reset — fade out, loop
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Wrapper overrides ─────────────────────────────────────── */
|
|
|
|
|
|
.platform-visual.has-branded {
|
|
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: visible;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
font-size: inherit;
|
2026-02-21 17:22:35 -05:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-self: center;
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Stage ─────────────────────────────────────────────────── */
|
|
|
|
|
|
.bd-stage {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
max-width: 420px;
|
|
|
|
|
|
aspect-ratio: 4/3;
|
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
display: flex;
|
2026-02-21 17:22:35 -05:00
|
|
|
|
align-items: center;
|
2026-02-21 13:33:53 -05:00
|
|
|
|
justify-content: center;
|
|
|
|
|
|
gap: 18px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Shared device styles ─────────────────────────────────── */
|
|
|
|
|
|
.bd-device {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device__body {
|
|
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 3px solid #111;
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
outline: 1px solid #000;
|
|
|
|
|
|
padding: 2px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
box-shadow: 0 10px 32px rgba(0,0,0,.50);
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device__screen {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: hidden;
|
2026-02-21 13:43:07 -05:00
|
|
|
|
background: linear-gradient(135deg, #0c1016 0%, #151c28 60%, #0c1016 100%);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
|
|
|
|
|
.bd-device__label {
|
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
|
color: rgba(255,255,255,.45);
|
2026-02-21 13:37:23 -05:00
|
|
|
|
margin-bottom: 6px;
|
2026-02-21 13:33:53 -05:00
|
|
|
|
letter-spacing: .5px;
|
|
|
|
|
|
text-transform: uppercase;
|
2026-02-21 13:37:23 -05:00
|
|
|
|
order: -1;
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Tablet (portrait kiosk) ──────────────────────────────── */
|
|
|
|
|
|
.bd-device--tablet .bd-device__body {
|
|
|
|
|
|
width: 80px;
|
|
|
|
|
|
height: 120px;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--tablet .bd-device__screen { border-radius: 4px; }
|
|
|
|
|
|
.bd-device--tablet { animation-delay: 0s; }
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Wall display (wide landscape) ────────────────────────── */
|
|
|
|
|
|
.bd-device--wall .bd-device__body {
|
|
|
|
|
|
width: 180px;
|
|
|
|
|
|
height: 108px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-mount {
|
|
|
|
|
|
width: 6px;
|
|
|
|
|
|
height: 18px;
|
|
|
|
|
|
background: #222;
|
|
|
|
|
|
margin-top: -1px;
|
|
|
|
|
|
border-radius: 0 0 2px 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--wall { animation-delay: 0.5s; }
|
|
|
|
|
|
|
2026-02-21 13:37:23 -05:00
|
|
|
|
/* ── Interactive tablet on table ───────────────────────────── */
|
|
|
|
|
|
.bd-device--interactive .bd-device__body {
|
|
|
|
|
|
width: 110px;
|
|
|
|
|
|
height: 74px;
|
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
|
transform: perspective(400px) rotateX(25deg);
|
|
|
|
|
|
transform-origin: bottom center;
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-device__screen { border-radius: 3px; }
|
|
|
|
|
|
.bd-table {
|
|
|
|
|
|
width: 130px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
margin-top: -2px;
|
|
|
|
|
|
box-shadow: 0 4px 12px rgba(0,0,0,.4);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive { animation-delay: 1s; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
|
|
|
|
|
|
/* ── Boot splash overlay ──────────────────────────────────── */
|
|
|
|
|
|
.bd-splash {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
animation: bd-splash 8s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--wall .bd-splash { animation-delay: 0.5s; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-splash { animation-delay: 1s; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
|
|
|
|
|
|
.bd-splash__logo {
|
|
|
|
|
|
width: 28px;
|
|
|
|
|
|
height: 28px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
border-radius: 6px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
box-shadow: 0 0 20px rgba(var(--color-primary-rgb),.5), 0 0 50px rgba(var(--color-primary-rgb),.15);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
animation: bd-logo-pulse 8s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--wall .bd-splash__logo {
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
animation-delay: 0.5s;
|
|
|
|
|
|
}
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-splash__logo {
|
2026-02-21 13:33:53 -05:00
|
|
|
|
animation-delay: 1s;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Branded UI chrome ────────────────────────────────────── */
|
|
|
|
|
|
.bd-ui {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
animation: bd-ui-show 8s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--wall .bd-ui { animation-delay: 0.5s; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-ui { animation-delay: 1s; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
|
|
|
|
|
|
/* Brand header bar */
|
|
|
|
|
|
.bd-ui__header {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
gap: 4px;
|
|
|
|
|
|
padding: 4px 5px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: rgba(var(--color-primary-rgb),.15);
|
|
|
|
|
|
border-bottom: 1px solid rgba(var(--color-primary-rgb),.25);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-ui__logo {
|
|
|
|
|
|
width: 10px;
|
|
|
|
|
|
height: 10px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-ui__brand-bar {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 4px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: rgba(var(--color-primary-rgb),.4);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
max-width: 50px;
|
|
|
|
|
|
animation: bd-bar-grow 8s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--wall .bd-ui__brand-bar { animation-delay: 0.5s; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-ui__brand-bar { animation-delay: 1s; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
|
|
|
|
|
|
/* Content area */
|
|
|
|
|
|
.bd-ui__content {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 4px;
|
|
|
|
|
|
padding: 6px 5px;
|
|
|
|
|
|
animation: bd-content-slide 8s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-device--wall .bd-ui__content { animation-delay: 0.5s; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-ui__content { animation-delay: 1s; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
|
|
|
|
|
|
.bd-ui__block {
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-ui__block--txt {
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
background: rgba(255,255,255,.18);
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-ui__block--short {
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-ui__block--img {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
min-height: 16px;
|
|
|
|
|
|
background: linear-gradient(
|
|
|
|
|
|
135deg,
|
2026-02-21 13:46:21 -05:00
|
|
|
|
rgba(var(--color-primary-rgb),.10) 0%,
|
|
|
|
|
|
rgba(var(--color-primary-rgb),.05) 100%
|
2026-02-21 13:33:53 -05:00
|
|
|
|
);
|
2026-02-21 13:46:21 -05:00
|
|
|
|
border: 1px solid rgba(var(--color-primary-rgb),.12);
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 13:43:07 -05:00
|
|
|
|
/* ── Promotional content layouts ─────────────────────── */
|
|
|
|
|
|
.bd-promo {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Kiosk: Welcome / check-in screen ── */
|
|
|
|
|
|
.bd-promo--welcome {
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
gap: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__hero {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
min-height: 28px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: linear-gradient(135deg, rgba(var(--color-primary-rgb),.18) 0%, rgba(var(--color-primary-rgb),.06) 100%);
|
2026-02-21 13:43:07 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__heading {
|
|
|
|
|
|
width: 70%;
|
|
|
|
|
|
height: 5px;
|
|
|
|
|
|
background: rgba(255,255,255,.3);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__text {
|
|
|
|
|
|
width: 85%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
background: rgba(255,255,255,.14);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__btn {
|
|
|
|
|
|
width: 45%;
|
|
|
|
|
|
height: 8px;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: var(--color-primary);
|
2026-02-21 13:43:07 -05:00
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
margin-top: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Wall display: Sale / featured product ── */
|
|
|
|
|
|
.bd-promo--sale {
|
|
|
|
|
|
gap: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__cols {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
gap: 5px;
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__visual {
|
|
|
|
|
|
flex: 1;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: linear-gradient(160deg, rgba(var(--color-primary-rgb),.20) 0%, rgba(var(--color-primary-rgb),.06) 100%);
|
2026-02-21 13:43:07 -05:00
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
min-height: 24px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__info {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__badge {
|
|
|
|
|
|
width: 28px;
|
|
|
|
|
|
height: 6px;
|
|
|
|
|
|
background: rgba(239,68,68,.7);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo--sale .bd-promo__heading {
|
|
|
|
|
|
width: 90%;
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo--sale .bd-promo__text {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__text--short {
|
|
|
|
|
|
width: 65% !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__price {
|
|
|
|
|
|
width: 36px;
|
|
|
|
|
|
height: 6px;
|
|
|
|
|
|
background: rgba(255,200,80,.6);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
margin-top: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Interactive: Touch menu / category grid ── */
|
|
|
|
|
|
.bd-promo--menu {
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo--menu .bd-promo__heading {
|
|
|
|
|
|
width: 55%;
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__grid {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
display: grid;
|
|
|
|
|
|
grid-template-columns: 1fr 1fr;
|
|
|
|
|
|
gap: 3px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__tile {
|
|
|
|
|
|
background: rgba(255,255,255,.06);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__tile-img {
|
|
|
|
|
|
flex: 1;
|
2026-02-21 13:46:21 -05:00
|
|
|
|
background: linear-gradient(135deg, rgba(var(--color-primary-rgb),.14) 0%, rgba(var(--color-primary-rgb),.04) 100%);
|
2026-02-21 13:43:07 -05:00
|
|
|
|
}
|
|
|
|
|
|
.bd-promo__tile-lbl {
|
|
|
|
|
|
height: 4px;
|
|
|
|
|
|
margin: 2px 3px;
|
|
|
|
|
|
background: rgba(255,255,255,.18);
|
|
|
|
|
|
border-radius: 1px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 13:33:53 -05:00
|
|
|
|
/* ═══════════════════════════════════════════════════════════
|
|
|
|
|
|
KEYFRAMES (8 s cycle)
|
|
|
|
|
|
═══════════════════════════════════════════════════════════ */
|
|
|
|
|
|
|
|
|
|
|
|
/* Splash: visible 0–30%, fades out 30–40%, hidden rest */
|
|
|
|
|
|
@keyframes bd-splash {
|
|
|
|
|
|
0% { opacity: 0; }
|
|
|
|
|
|
5% { opacity: 1; }
|
|
|
|
|
|
25% { opacity: 1; }
|
|
|
|
|
|
35% { opacity: 0; }
|
|
|
|
|
|
100% { opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Logo pulse glow during splash */
|
|
|
|
|
|
@keyframes bd-logo-pulse {
|
2026-02-21 13:46:21 -05:00
|
|
|
|
0%, 25% { transform: scale(1); box-shadow: 0 0 20px rgba(var(--color-primary-rgb),.5), 0 0 50px rgba(var(--color-primary-rgb),.15); }
|
|
|
|
|
|
12% { transform: scale(1.08); box-shadow: 0 0 28px rgba(var(--color-primary-rgb),.7), 0 0 60px rgba(var(--color-primary-rgb),.25); }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
35%, 100% { transform: scale(0.6); opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* UI chrome: hidden 0–28%, fades in 28–38%, visible until 88%, fades out */
|
|
|
|
|
|
@keyframes bd-ui-show {
|
|
|
|
|
|
0%, 28% { opacity: 0; }
|
|
|
|
|
|
38% { opacity: 1; }
|
|
|
|
|
|
88% { opacity: 1; }
|
|
|
|
|
|
96%, 100% { opacity: 0; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Brand bar grows in from 0 width */
|
|
|
|
|
|
@keyframes bd-bar-grow {
|
|
|
|
|
|
0%, 30% { transform: scaleX(0); transform-origin: left; }
|
|
|
|
|
|
42% { transform: scaleX(1); transform-origin: left; }
|
|
|
|
|
|
88% { transform: scaleX(1); }
|
|
|
|
|
|
96%, 100% { transform: scaleX(0); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Content blocks slide up into view */
|
|
|
|
|
|
@keyframes bd-content-slide {
|
|
|
|
|
|
0%, 35% { opacity: 0; transform: translateY(10px); }
|
|
|
|
|
|
48% { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
88% { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
96%, 100% { opacity: 0; transform: translateY(4px); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Responsive ─────────────────────────────────────────────── */
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
|
.bd-stage { max-width: 360px; gap: 12px; }
|
|
|
|
|
|
.bd-device--tablet .bd-device__body { width: 64px; height: 96px; }
|
|
|
|
|
|
.bd-device--wall .bd-device__body { width: 148px; height: 88px; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-device__body { width: 88px; height: 58px; }
|
|
|
|
|
|
.bd-table { width: 104px; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
|
|
.bd-stage { max-width: 300px; gap: 8px; }
|
|
|
|
|
|
.bd-device--tablet .bd-device__body { width: 52px; height: 78px; }
|
|
|
|
|
|
.bd-device--wall .bd-device__body { width: 120px; height: 72px; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-device--interactive .bd-device__body { width: 72px; height: 48px; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
.bd-device__label { font-size: 8px; }
|
2026-02-21 13:37:23 -05:00
|
|
|
|
.bd-table { width: 86px; height: 6px; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ── Reduced-motion overrides ───────────────────────────────── */
|
|
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
|
|
|
|
.bd-splash,
|
|
|
|
|
|
.bd-splash__logo,
|
|
|
|
|
|
.bd-ui,
|
|
|
|
|
|
.bd-ui__brand-bar,
|
2026-02-21 13:43:07 -05:00
|
|
|
|
.bd-ui__content { animation: none !important; }
|
2026-02-21 13:33:53 -05:00
|
|
|
|
/* Static fallback: show branded UI */
|
|
|
|
|
|
.bd-splash { opacity: 0; }
|
|
|
|
|
|
.bd-ui { opacity: 1; }
|
|
|
|
|
|
.bd-ui__brand-bar { transform: scaleX(1); }
|
|
|
|
|
|
.bd-ui__content { opacity: 1; transform: translateY(0); }
|
|
|
|
|
|
}
|
2026-02-21 13:59:57 -05:00
|
|
|
|
|
|
|
|
|
|
/* ═══════════════════════════════════════════════════════════════
|
2026-02-21 14:11:56 -05:00
|
|
|
|
GALLERY TV SLIDESHOW (.platform-visual.has-gallery-tv)
|
2026-02-21 13:59:57 -05:00
|
|
|
|
═══════════════════════════════════════════════════════════════ */
|
|
|
|
|
|
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.platform-visual.has-gallery-tv {
|
2026-02-21 13:59:57 -05:00
|
|
|
|
background: none !important;
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
aspect-ratio: unset;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
overflow: visible;
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
font-size: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-stage {
|
2026-02-21 13:59:57 -05:00
|
|
|
|
width: 100%;
|
2026-02-21 14:11:56 -05:00
|
|
|
|
max-width: 520px;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 14:11:56 -05:00
|
|
|
|
/* TV frame (mirrors dashboard-tv pattern) */
|
|
|
|
|
|
.gtv-tv {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
width: 100%;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-tv__body {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
background: #111;
|
2026-02-21 14:30:42 -05:00
|
|
|
|
border: 5px solid #1a1a1a;
|
|
|
|
|
|
border-radius: 8px 8px 4px 4px;
|
|
|
|
|
|
outline: 2px solid #000;
|
|
|
|
|
|
padding: 4px;
|
2026-02-21 14:11:56 -05:00
|
|
|
|
position: relative;
|
2026-02-21 14:30:42 -05:00
|
|
|
|
box-shadow:
|
|
|
|
|
|
0 14px 48px rgba(0,0,0,0.6),
|
|
|
|
|
|
0 0 0 1px rgba(255,255,255,0.04),
|
|
|
|
|
|
inset 0 1px 0 rgba(255,255,255,0.06);
|
|
|
|
|
|
}
|
|
|
|
|
|
.gtv-tv__body::after {
|
|
|
|
|
|
content: '\25CF';
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -14px;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
font-size: 7px;
|
|
|
|
|
|
color: rgba(74,222,128,0.8);
|
|
|
|
|
|
filter: drop-shadow(0 0 3px rgba(74,222,128,0.5));
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-tv__screen {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
aspect-ratio: 16/9;
|
|
|
|
|
|
background: var(--color-bg);
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
position: relative;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-tv__feet {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
width: 60%;
|
|
|
|
|
|
max-width: 300px;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-tv__foot {
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 8px;
|
|
|
|
|
|
background: #111;
|
|
|
|
|
|
border: 1px solid #000;
|
|
|
|
|
|
border-radius: 0 0 4px 4px;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 14:11:56 -05:00
|
|
|
|
/* Slides */
|
|
|
|
|
|
.gtv-slides {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-slide {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
inset: 0;
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transition: opacity 0.8s ease;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-slide.is-active {
|
|
|
|
|
|
opacity: 1;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-slide img {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
object-fit: cover;
|
|
|
|
|
|
display: block;
|
2026-02-21 13:59:57 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-21 14:11:56 -05:00
|
|
|
|
/* ── Reduced-motion overrides for gallery TV ── */
|
2026-02-21 13:59:57 -05:00
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
2026-02-21 14:11:56 -05:00
|
|
|
|
.gtv-slide {
|
2026-02-21 13:59:57 -05:00
|
|
|
|
transition: none !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|