/* ════════════════════════════════════════════════════════
   OmniPOS — Warm Editorial Luxury
   Direction: Vogue India × Restaurant Software
   Fonts: Libre Baskerville (serif display) + Instrument Sans (body)
   Palette: Ivory base · Charcoal text · Terracotta accent
   ════════════════════════════════════════════════════════ */

/* ── Reset ─────────────────────────────────────────────── */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

html {
    scroll-behavior: smooth;
    font-size: 16px
}

img {
    display: block;
    max-width: 100%;
    height: auto
}

a {
    text-decoration: none;
    color: inherit
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none
}

ul,
ol {
    list-style: none
}

/* ── Design Tokens ─────────────────────────────────────── */
:root {
    /* Palette */
    --ivory: #F5F2EB;
    --ivory-dim: #EDE9DF;
    --ivory-deep: #E4DFD2;
    --chalk: #FAF8F3;
    --charcoal: #1A1712;
    --char-mid: #2D2921;
    --char-soft: #3E3830;
    --muted: #6B6154;
    --faint: #8A8175;
    --rust: #C8442B;
    /* THE accent — terracotta rust */
    --rust-dim: #A8361F;
    --rust-glow: rgba(200, 68, 43, 0.18);
    --rust-pale: #FAE8E4;
    --green: #2A7A52;
    --green-pale: #E2F0EA;
    --amber: #C4850A;
    --amber-pale: #FDF2DC;
    --violet: #5B3FA0;
    --violet-pale: #EDE8F8;
    --teal: #0D7B7B;
    --teal-pale: #DDF3F3;
    --slate: #374151;
    --slate-pale: #E8EAED;
    --border: #DDD8CC;
    --border-deep: #C8C2B4;

    /* Typography */
    --serif: 'Libre Baskerville', Georgia, serif;
    --sans: 'Instrument Sans', system-ui, sans-serif;
    --mono: 'Bebas Neue', monospace;

    /* Space */
    --max: 1280px;
    --pad: clamp(1.25rem, 5vw, 3.5rem);
    --sec: clamp(5rem, 9vw, 9rem);

    /* Motion */
    --spring: cubic-bezier(.16, 1, .3, 1);
    --out: cubic-bezier(.33, 1, .68, 1);
    --fast: 150ms;
    --base: 300ms;
    --slow: 600ms;
    --reveal: 700ms;
}

/* ── Base ───────────────────────────────────────────────── */
body {
    font-family: var(--sans);
    background: var(--ivory);
    color: var(--charcoal);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

/* ── Grain overlay ──────────────────────────────────────── */
.grain {
    position: fixed;
    inset: 0;
    z-index: 9990;
    pointer-events: none;
    opacity: .028;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 200px 200px;
    mix-blend-mode: multiply;
}

/* ── Custom cursor ──────────────────────────────────────── */
.cur,
.cur-ring {
    display: none
}

@media(pointer:fine) and (min-width:1024px) {
    .cur {
        display: block;
        position: fixed;
        width: 6px;
        height: 6px;
        background: var(--rust);
        border-radius: 50%;
        pointer-events: none;
        z-index: 9998;
        transform: translate(-50%, -50%);
        will-change: transform;
    }

    .cur-ring {
        display: block;
        position: fixed;
        width: 32px;
        height: 32px;
        border: 1.5px solid rgba(200, 68, 43, .4);
        border-radius: 50%;
        pointer-events: none;
        z-index: 9997;
        transform: translate(-50%, -50%);
        transition: width var(--base), height var(--base), border-color var(--base);
        will-change: transform;
    }

    body:has(a:hover) .cur-ring,
    body:has(button:hover) .cur-ring {
        width: 52px;
        height: 52px;
        border-color: var(--rust);
    }
}

/* ── Layout helpers ─────────────────────────────────────── */
.wrap {
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 var(--pad)
}

/* ── Scroll reveal ──────────────────────────────────────── */
.sr {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity var(--reveal) var(--spring), transform var(--reveal) var(--spring);
    transition-delay: var(--d, 0ms);
}

.sr.vis {
    opacity: 1;
    transform: none
}

/* ── Section header ─────────────────────────────────────── */
.sec-hd {
    text-align: center;
    max-width: 620px;
    margin: 0 auto clamp(3rem, 6vw, 5rem)
}

.eyebrow {
    display: inline-block;
    font-family: var(--mono);
    font-size: .78rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rust);
    margin-bottom: .875rem;
}

.sec-h2 {
    font-family: var(--serif);
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 700;
    line-height: 1.18;
    color: var(--charcoal);
    margin-bottom: 1.125rem;
}

.sec-h2 em {
    font-style: italic;
    color: var(--rust)
}

.sec-sub {
    color: var(--muted);
    font-size: 1.0625rem;
    line-height: 1.72
}

/* ══════════════════════════════════════════════════════════
   NAVIGATION
══════════════════════════════════════════════════════════ */
#nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
    transition: background var(--base) var(--out), border-color var(--base) var(--out), box-shadow var(--base) var(--out);
    border-bottom: 1px solid transparent;
}

#nav.scrolled {
    background: rgba(245, 242, 235, .95);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-color: var(--border);
    box-shadow: 0 2px 16px rgba(26, 23, 18, .06);
}

.nav-wrap {
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 var(--pad);
    height: 68px;
    display: flex;
    align-items: center;
    gap: 2rem;
}

.logo {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-shrink: 0
}

.logo:hover {
    opacity: .82
}

.logo-badge {
    width: 33px;
    height: 33px;
    border-radius: 7px;
    background: var(--rust);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    transition: transform var(--base) var(--spring);
}

.logo:hover .logo-badge {
    transform: rotate(-9deg) scale(1.1)
}

.logo-name {
    font-family: var(--serif);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--charcoal);
    letter-spacing: -.01em;
}

.logo-name em {
    font-style: normal;
    color: var(--rust)
}

.logo-light .logo-name {
    color: #fff
}

.logo-light .logo-name em {
    color: #FFBB8A
}

.nav-mid {
    display: none;
    align-items: center;
    gap: 2.25rem;
    margin-left: auto
}

@media(min-width:768px) {
    .nav-mid {
        display: flex
    }
}

.nl {
    font-size: .875rem;
    font-weight: 500;
    color: var(--muted);
    position: relative;
    transition: color var(--fast);
}

.nl::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 0;
    height: 1.5px;
    background: var(--rust);
    transition: width var(--base) var(--spring);
}

.nl:hover {
    color: var(--charcoal)
}

.nl:hover::after {
    width: 100%
}

.nav-end {
    display: flex;
    align-items: center;
    gap: .875rem;
    margin-left: auto
}

@media(min-width:768px) {
    .nav-end {
        margin-left: 0
    }
}

.btn-nav {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    background: var(--charcoal);
    color: #fff;
    padding: .5rem 1.125rem;
    border-radius: 6px;
    font-size: .845rem;
    font-weight: 600;
    transition: background var(--fast), transform var(--base) var(--spring), box-shadow var(--base);
}

.btn-nav i {
    font-size: .7rem;
    transition: transform var(--base) var(--spring)
}

.btn-nav:hover {
    background: var(--rust);
    transform: translateY(-1px);
    box-shadow: 0 6px 18px var(--rust-glow)
}

.btn-nav:hover i {
    transform: translateX(3px)
}

.btn-nav:active {
    transform: translateY(0);
    box-shadow: none
}


@media(max-width:768px) {
    .btn-nav {
        display: none;
    }
}

/* Hamburger */
.burger {
    width: 36px;
    height: 36px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 4px
}

.burger span {
    display: block;
    height: 1.5px;
    background: var(--muted);
    border-radius: 2px;
    transition: transform var(--base) var(--spring), opacity var(--fast), width var(--base) var(--spring)
}

.burger span:nth-child(2) {
    width: 65%
}

.burger:hover span {
    background: var(--charcoal)
}

.burger:hover span:nth-child(2) {
    width: 100%
}

.burger.open span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg)
}

.burger.open span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0)
}

.burger.open span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg)
}

@media(min-width:768px) {
    .burger {
        display: none
    }
}

.nav-drawer {
    display: none;
    background: var(--chalk);
    border-top: 1px solid var(--border);
    flex-direction: column;
    padding: 0 var(--pad);
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--slow) var(--spring), padding var(--base);
}

.nav-drawer.open {
    display: flex;
    max-height: 320px;
    padding: 1.1rem var(--pad) 1.5rem
}

.nav-drawer a {
    padding: .78rem 0;
    font-size: .9375rem;
    font-weight: 500;
    color: var(--muted);
    border-bottom: 1px solid var(--border);
    transition: color var(--fast), padding-left var(--base) var(--spring);
}

.nav-drawer a:last-child {
    border: none
}

.nav-drawer a:hover {
    color: var(--charcoal);
    padding-left: .4rem
}

.drawer-cta {
    color: var(--rust) !important;
    font-weight: 600
}

/* ══════════════════════════════════════════════════════════
   HERO
══════════════════════════════════════════════════════════ */
#hero {
    position: relative;
    overflow: hidden;
    background: var(--ivory);
    padding: calc(68px + 5rem) var(--pad) 5rem;
    min-height: 100dvh;
    display: flex;
    align-items: center;
}

/* Massive background rupee — THE unforgettable moment */
.hero-bg-glyph {
    position: absolute;
    right: -4vw;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--serif);
    font-size: clamp(280px, 40vw, 520px);
    font-weight: 700;
    color: transparent;
    -webkit-text-stroke: 1px rgba(26, 23, 18, .055);
    user-select: none;
    pointer-events: none;
    line-height: 1;
    z-index: 0;
}

/* Decorative horizontal rules */
.hero-lines {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
}

.hero-lines span {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--border);
    opacity: .7;
}

.hero-lines span:nth-child(1) {
    top: 38%
}

.hero-lines span:nth-child(2) {
    top: 62%
}

.hero-lines span:nth-child(3) {
    bottom: 12%
}

.hero-inner {
    position: relative;
    z-index: 1;
    max-width: var(--max);
    margin: 0 auto;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4rem;
    align-items: center;
}

@media(min-width:1024px) {
    .hero-inner {
        grid-template-columns: 1fr 1fr;
        gap: 5rem
    }
}

/* LEFT */
.hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    border: 1px solid rgba(200, 68, 43, .3);
    background: var(--rust-pale);
    padding: .375rem 1rem;
    border-radius: 100px;
    font-size: .78rem;
    font-weight: 600;
    color: var(--rust);
    margin-bottom: 1.75rem;
}

.kicker-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rust);
    flex-shrink: 0;
    position: relative;
}

.kicker-dot::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: var(--rust);
    opacity: .3;
    animation: kpulse 1.8s cubic-bezier(0, 0, .2, 1) infinite;
}

@keyframes kpulse {

    75%,
    100% {
        transform: scale(2.2);
        opacity: 0
    }
}

[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    animation: rev var(--reveal) var(--spring) forwards;
    animation-delay: calc(var(--r, 0) * 100ms);
}

[data-reveal="0"] {
    --r: 0
}

[data-reveal="1"] {
    --r: 1
}

[data-reveal="2"] {
    --r: 2
}

[data-reveal="3"] {
    --r: 3
}

[data-reveal="4"] {
    --r: 4
}

@keyframes rev {
    to {
        opacity: 1;
        transform: none
    }
}

.hero-h1 {
    font-family: var(--serif);
    font-weight: 700;
    line-height: 1.06;
    letter-spacing: -.025em;
    color: var(--charcoal);
    margin-bottom: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .1em;
}

.h1-line {
    display: block;
    font-size: clamp(2.5rem, 5.5vw, 4.75rem);
}

.h1-italic {
    font-style: italic;
    color: var(--rust);
    font-size: clamp(3rem, 6vw, 5.5rem);
}

.h1-block {
    /* Break the grid — wider, bolder */
    font-size: clamp(2.75rem, 5.8vw, 5rem);
    position: relative;
}

/* Underline decoration on last line */
.h1-block::after {
    content: '';
    display: block;
    width: 60%;
    height: 3px;
    background: linear-gradient(90deg, var(--rust), transparent);
    margin-top: .35em;
}

.hero-body {
    font-size: clamp(.9375rem, 1.4vw, 1.0625rem);
    color: var(--muted);
    line-height: 1.78;
    max-width: 480px;
    margin-bottom: 2.5rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .875rem;
    align-items: center;
    margin-bottom: 2.25rem
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    background: var(--rust);
    color: #fff;
    font-size: .9375rem;
    font-weight: 600;
    padding: .875rem 1.625rem;
    border-radius: 8px;
    gap: 0;
    overflow: hidden;
    position: relative;
    transition: background var(--fast), box-shadow var(--base), transform var(--base) var(--spring);
}

.btn-primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .1);
    transform: translateX(-101%);
    transition: transform var(--base) var(--out);
}

.btn-primary:hover::before {
    transform: none
}

.btn-primary:hover {
    background: var(--rust-dim);
    box-shadow: 0 12px 30px var(--rust-glow);
    transform: translateY(-2px)
}

.btn-primary:active {
    transform: none;
    box-shadow: none
}

.btn-arr {
    display: flex;
    align-items: center;
    width: 0;
    overflow: hidden;
    transition: width var(--base) var(--spring);
    margin-left: 0;
}

.btn-primary:hover .btn-arr {
    width: 1.375rem
}

.btn-text {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--muted);
    font-size: .875rem;
    font-weight: 500;
    padding: .875rem .5rem;
    transition: color var(--fast);
}

.btn-text:hover {
    color: var(--charcoal)
}

.btn-text i {
    font-size: .68rem;
    transition: transform var(--base) var(--spring)
}

.btn-text:hover i {
    transform: translateY(3px)
}

.hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .875rem;
    align-items: center
}

.pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .78rem;
    color: var(--muted);
    font-weight: 500;
}

.pill i {
    color: var(--green);
    font-size: .72rem
}

/* RIGHT — dashboard */
.hero-right {
    position: relative
}

.dash {
    background: var(--chalk);
    border: 1.5px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(26, 23, 18, .12), 0 4px 12px rgba(26, 23, 18, .06);
    overflow: hidden;
    transform: perspective(1100px) rotateY(-4deg) rotateX(2deg);
    transition: transform var(--slow) var(--spring);
}

.dash:hover {
    transform: perspective(1100px) rotateY(-1deg) rotateX(1deg)
}

.dash-chrome {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .7rem 1rem;
    background: var(--ivory-dim);
    border-bottom: 1px solid var(--border);
}

.dc {
    width: 11px;
    height: 11px;
    border-radius: 50%
}

.dc.r {
    background: #FF5F57
}

.dc.y {
    background: #FEBC2E
}

.dc.g {
    background: #28C840
}

.dash-title {
    margin-left: auto;
    font-size: .65rem;
    font-family: var(--mono);
    color: var(--faint);
    letter-spacing: .08em
}

.dash-body {
    padding: 1.25rem
}

.dash-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .625rem;
    margin-bottom: 1rem
}

.ds-card {
    background: var(--ivory);
    border: 1px solid var(--border);
    border-radius: 9px;
    padding: .75rem .625rem;
}

.ds-label {
    font-size: .58rem;
    font-family: var(--mono);
    color: var(--faint);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .25rem
}

.ds-val {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--charcoal);
    font-family: var(--serif);
    margin-bottom: .2rem
}

.ds-badge {
    font-size: .6rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: .2rem
}

.ds-badge.up {
    color: var(--green)
}

.ds-badge.live {
    color: var(--rust)
}

.live-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--rust);
    animation: livedot 1.8s ease-in-out infinite;
}

@keyframes livedot {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: .3
    }
}

.dash-section-label {
    font-size: .58rem;
    font-family: var(--mono);
    color: var(--faint);
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-bottom: .5rem
}

.floor-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin-bottom: .875rem
}

.tbl {
    border-radius: 8px;
    padding: .5rem .375rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 2px;
    transition: transform var(--fast)
}

.tbl:hover {
    transform: scale(1.05)
}

.tbl-n {
    font-family: var(--mono);
    font-size: .6rem;
    font-weight: 500;
    opacity: .6
}

.tbl-v {
    font-size: .68rem;
    font-weight: 700
}

.tbl.occ {
    background: rgba(13, 123, 123, .1);
    border: 1px solid rgba(13, 123, 123, .2);
    color: var(--teal)
}

.tbl.free {
    background: var(--ivory-dim);
    border: 1px solid var(--border);
    color: var(--faint)
}

.tbl.bill {
    background: var(--rust-pale);
    border: 1px solid rgba(200, 68, 43, .25);
    color: var(--rust);
    animation: billpulse 2s ease-in-out infinite
}

.tbl.rsvd {
    background: var(--violet-pale);
    border: 1px solid rgba(91, 63, 160, .2);
    color: var(--violet)
}

@keyframes billpulse {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: .65
    }
}

.kot-bar {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: var(--ivory-dim);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: .55rem .875rem;
    overflow: hidden;
}

.kot-chip {
    font-family: var(--mono);
    font-size: .58rem;
    font-weight: 700;
    background: var(--rust);
    color: #fff;
    padding: .15rem .45rem;
    border-radius: 3px;
    flex-shrink: 0;
    letter-spacing: .05em;
}

.kot-msg {
    font-size: .66rem;
    color: var(--muted);
    font-family: var(--sans);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: opacity .45s;
}

/* Floating notification */
.float-notif {
    position: absolute;
    bottom: -1rem;
    right: -1rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: .75rem 1rem;
    display: flex;
    align-items: center;
    gap: .625rem;
    box-shadow: 0 8px 24px rgba(26, 23, 18, .12);
    animation: fnFloat 3s ease-in-out infinite;
    z-index: 2;
}

@keyframes fnFloat {

    0%,
    100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-6px)
    }
}

.float-notif i {
    font-size: 1.25rem;
    color: #25D366
}

.fn-title {
    font-size: .78rem;
    font-weight: 600;
    color: var(--charcoal)
}

.fn-sub {
    font-size: .7rem;
    color: var(--muted)
}

/* Scroll cue */
.scroll-cue {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    font-size: .6rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--faint);
    font-family: var(--mono);
    animation: scappear 1s 1.5s both;
}

@keyframes scappear {
    from {
        opacity: 0
    }

    to {
        opacity: .7
    }
}

.sc-line {
    width: 1px;
    height: 36px;
    background: linear-gradient(to bottom, var(--rust), transparent);
    animation: scline 2s ease-in-out infinite;
}

@keyframes scline {
    0% {
        transform: scaleY(0);
        transform-origin: top
    }

    50% {
        transform: scaleY(1);
        transform-origin: top
    }

    51% {
        transform: scaleY(1);
        transform-origin: bottom
    }

    100% {
        transform: scaleY(0);
        transform-origin: bottom
    }
}

/* ── Ticket divider ─────────────────────────────────────── */
.ticket-divider {
    display: flex;
    align-items: center;
    background: var(--ivory);
    position: relative;
    z-index: 1;
}

.td-left,
.td-right {
    flex: 1;
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--border) 0, var(--border) 8px, transparent 8px, transparent 16px);
}

.td-holes {
    display: flex;
    gap: .5rem;
    align-items: center;
    background: var(--ivory);
    padding: 0 1.5rem;
    position: relative;
}

.td-holes::before,
.td-holes::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--ivory-dim);
    border: 2px solid var(--border);
    top: 50%;
    transform: translateY(-50%);
}

.td-holes::before {
    left: -10px
}

.td-holes::after {
    right: -10px
}

.td-holes span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--border);
}

/* ══════════════════════════════════════════════════════════
   FEATURES
══════════════════════════════════════════════════════════ */
#features {
    padding: var(--sec) 0;
    background: var(--chalk);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.feat-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.125rem;
}

@media(min-width:640px) {
    .feat-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(min-width:1024px) {
    .feat-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.375rem
    }
}

.fc {
    background: var(--ivory);
    border: 1.5px solid var(--border);
    border-radius: 14px;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: .875rem;
    position: relative;
    overflow: hidden;
    transition: border-color var(--base), box-shadow var(--base), transform var(--base) var(--spring);
}

/* Left accent bar */
.fc::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--rust);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform var(--base) var(--spring);
    border-radius: 0 2px 2px 0;
}

.fc:hover::after {
    transform: scaleY(1)
}

.fc:hover {
    border-color: var(--border-deep);
    box-shadow: 0 12px 32px rgba(26, 23, 18, .09);
    transform: translateY(-4px);
}

.fc-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
    transition: transform var(--base) var(--spring);
}

.fc:hover .fc-icon {
    transform: scale(1.1) rotate(-6deg)
}

.ic-rust {
    background: var(--rust-pale);
    color: var(--rust)
}

.ic-green {
    background: var(--green-pale);
    color: var(--green)
}

.ic-amber {
    background: var(--amber-pale);
    color: var(--amber)
}

.ic-violet {
    background: var(--violet-pale);
    color: var(--violet)
}

.ic-teal {
    background: var(--teal-pale);
    color: var(--teal)
}

.ic-slate {
    background: var(--slate-pale);
    color: var(--slate)
}

.fc-body h3 {
    font-family: var(--serif);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--charcoal);
    line-height: 1.3;
}

.fc-body p {
    color: var(--muted);
    font-size: .875rem;
    line-height: 1.72;
    margin-top: .375rem;
}

.fc-tag {
    display: inline-block;
    font-family: var(--mono);
    font-size: .65rem;
    letter-spacing: .08em;
    color: var(--rust);
    background: var(--rust-pale);
    border: 1px solid rgba(200, 68, 43, .3);
    padding: .2rem .55rem;
    border-radius: 4px;
    align-self: flex-start;
    margin-top: .25rem;
}

/* ── Band divider ───────────────────────────────────────── */
.band-divider {
    background: var(--charcoal);
    overflow: hidden;
    padding: .875rem 0;
    white-space: nowrap;
    border-top: 1px solid rgba(255, 255, 255, .06);
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.bd-track {
    display: inline-flex;
    gap: 2rem;
    animation: marquee 30s linear infinite;
    will-change: transform;
}

.bd-track span {
    font-family: var(--mono);
    font-size: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
    white-space: nowrap;
}

.bd-track span:nth-child(even) {
    color: var(--rust);
    opacity: .9
}

@keyframes marquee {
    to {
        transform: translateX(-50%)
    }
}

/* ══════════════════════════════════════════════════════════
   COMPARE
══════════════════════════════════════════════════════════ */
#compare {
    padding: var(--sec) 0;
    background: var(--ivory);
    border-bottom: 1px solid var(--border);
}

.cmp-hint {
    display: none;
    text-align: center;
    font-size: .65rem;
    font-family: var(--mono);
    color: var(--faint);
    letter-spacing: .1em;
    margin-bottom: .875rem;
}

@media(max-width:767px) {
    .cmp-hint {
        display: block
    }
}

.cmp-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 14px;
    border: 1.5px solid var(--border);
    box-shadow: 0 4px 20px rgba(26, 23, 18, .07);
    background: var(--chalk);
}

.cmp-table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    font-size: .875rem
}

.cmp-table thead tr {
    background: var(--ivory-dim)
}

.cmp-table th {
    padding: 1.125rem 1.375rem;
    text-align: left;
    font-size: .75rem;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: .03em;
    border-bottom: 1.5px solid var(--border);
    white-space: nowrap;
}

.cmp-feat {
    min-width: 180px
}

.cmp-us {
    background: var(--rust-pale) !important;
    color: var(--rust) !important;
    border-left: 2px solid rgba(200, 68, 43, .3);
    border-right: 2px solid rgba(200, 68, 43, .3);
}

.us-badge {
    width: fit-content;
    display: block;
    font-size: .5rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    background: var(--rust);
    color: #fff;
    border-radius: 3px;
    padding: .1rem .35rem;
    margin-bottom: .3rem;
    font-weight: 700;
}

.cmp-table tbody tr {
    border-bottom: 1px solid var(--border);
    transition: background var(--fast)
}

.cmp-table tbody tr:last-child {
    border: none
}

.cmp-table tbody tr:hover {
    background: var(--ivory-dim)
}

.cmp-table td {
    padding: .9rem 1.375rem;
    vertical-align: middle
}

.fname {
    font-weight: 600;
    color: var(--charcoal);
    font-size: .875rem
}

.ucol {
    background: rgba(200, 68, 43, .03);
    border-left: 2px solid rgba(200, 68, 43, .15);
    border-right: 2px solid rgba(200, 68, 43, .15);
}

.cv {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .8rem;
    font-weight: 500;
    white-space: nowrap
}

.cv.yes {
    color: var(--green)
}

.cv.no {
    color: var(--rust)
}

.cv.par {
    color: var(--muted)
}

.cv.warn {
    color: var(--amber)
}

.cmp-fn {
    margin-top: 1rem;
    font-size: .72rem;
    color: var(--faint);
    font-style: italic;
    text-align: center
}

/* ══════════════════════════════════════════════════════════
   ROADMAP
══════════════════════════════════════════════════════════ */
#roadmap {
    padding: var(--sec) 0;
    background: var(--chalk);
    border-bottom: 1px solid var(--border);
}

.rm-spotlight {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    margin-bottom: clamp(3rem, 6vw, 5rem);
    align-items: center;
}

@media(min-width:1024px) {
    .rm-spotlight {
        grid-template-columns: 1fr 1fr
    }
}

.rm-img {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    aspect-ratio: 4/3;
    box-shadow: 0 24px 56px rgba(26, 23, 18, .14)
}

.rm-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--slow) var(--out)
}

.rm-img:hover img {
    transform: scale(1.04)
}

.rm-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(200, 68, 43, .08), transparent 60%);
    pointer-events: none
}

.rm-img-pill {
    position: absolute;
    bottom: 1.25rem;
    left: 1.25rem;
    z-index: 2;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
    color: var(--rust);
    font-size: .75rem;
    font-weight: 600;
    font-family: var(--sans);
    padding: .5rem 1rem;
    border-radius: 8px;
    border: 1px solid rgba(200, 68, 43, .3);
    display: flex;
    align-items: center;
    gap: .5rem;
    box-shadow: 0 4px 12px rgba(26, 23, 18, .1);
}

.rip-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rust);
    position: relative;
    flex-shrink: 0;
}

.rip-dot::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--rust);
    animation: ripdot 1.5s ease-in-out infinite;
}

@keyframes ripdot {
    0% {
        opacity: 1;
        transform: scale(.5)
    }

    100% {
        opacity: 0;
        transform: scale(1.8)
    }
}

.rm-text .eyebrow {
    display: block;
    margin-bottom: .875rem
}

.rm-text h3 {
    font-family: var(--serif);
    font-size: clamp(1.625rem, 2.8vw, 2.125rem);
    font-weight: 700;
    color: var(--charcoal);
    line-height: 1.22;
    margin-bottom: 1rem
}

.rm-text p {
    color: var(--muted);
    font-size: .9375rem;
    line-height: 1.78;
    margin-bottom: 1.75rem
}

.rm-checks {
    display: flex;
    flex-direction: column;
    gap: .75rem
}

.rm-checks li {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    color: var(--char-soft);
    font-size: .875rem;
    line-height: 1.55
}

.rm-checks i {
    color: var(--rust);
    margin-top: 2px;
    flex-shrink: 0
}

/* Timeline */
.rm-timeline {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem
}

@media(min-width:1024px) {
    .rm-timeline {
        grid-template-columns: 1fr auto 1fr auto 1fr;
        align-items: stretch
    }
}

.rmt-card {
    background: var(--ivory);
    border: 1.5px solid var(--border);
    border-radius: 13px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    transition: transform var(--base) var(--spring), border-color var(--base), box-shadow var(--base);
}

.rmt-card:hover {
    transform: translateY(-4px);
    border-color: var(--border-deep);
    box-shadow: 0 12px 28px rgba(26, 23, 18, .09)
}

.rmt-active {
    border-color: rgba(200, 68, 43, .35);
    background: var(--rust-pale)
}

.rmt-dim {
    opacity: .6
}

.rmt-q {
    font-family: var(--mono);
    font-size: .63rem;
    letter-spacing: .15em;
    color: var(--rust);
    text-transform: uppercase
}

.rmt-icon {
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: var(--rust-pale);
    color: var(--rust);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem
}

.rmt-card h4 {
    font-family: var(--serif);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--charcoal);
    line-height: 1.3
}

.rmt-card p {
    font-size: .825rem;
    color: var(--muted);
    line-height: 1.65
}

.rmt-conn {
    display: none
}

@media(min-width:1024px) {
    .rmt-conn {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0 .25rem
    }

    .rmt-conn::after {
        content: '';
        display: block;
        width: 32px;
        height: 1px;
        background: linear-gradient(90deg, rgba(200, 68, 43, .4), rgba(200, 68, 43, .1))
    }
}

/* ══════════════════════════════════════════════════════════
   BOOK DEMO
══════════════════════════════════════════════════════════ */
#book-demo {
    padding: var(--sec) 0;
    background: var(--charcoal);
    position: relative;
    overflow: hidden;
}

/* Huge background "DEMO" text */
.demo-bg-text {
    position: absolute;
    font-family: var(--mono);
    font-weight: 700;
    font-size: clamp(120px, 20vw, 240px);
    letter-spacing: -.02em;
    color: rgba(255, 255, 255, .025);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    user-select: none;
    pointer-events: none;
    white-space: nowrap;
}

.demo-wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4rem;
    position: relative;
    z-index: 1;
}

@media(min-width:1024px) {
    .demo-wrap {
        grid-template-columns: 1fr 1.2fr;
        gap: 4rem;
        align-items: center
    }
}

.demo-left .eyebrow {
    color: #FFBB8A
}

.demo-h2 {
    font-family: var(--serif);
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 1.25rem;
}

.demo-h2 em {
    font-style: italic;
    color: #FFBB8A
}

.demo-body {
    color: rgba(255, 255, 255, .65);
    font-size: .9375rem;
    line-height: 1.78;
    margin-bottom: 2.5rem;
    max-width: 460px
}

.demo-perks {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-bottom: 2.5rem
}

.dp {
    display: flex;
    align-items: flex-start;
    gap: 1rem
}

.dp-icon {
    width: 42px;
    height: 42px;
    border-radius: 9px;
    flex-shrink: 0;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFBB8A;
    font-size: .95rem;
    transition: transform var(--base) var(--spring), background var(--base);
}

.dp:hover .dp-icon {
    transform: rotate(-8deg) scale(1.08);
    background: rgba(200, 68, 43, .2)
}

.dp strong {
    display: block;
    color: #fff;
    font-size: .9rem;
    font-weight: 600;
    margin-bottom: .2rem
}

.dp span {
    font-size: .8125rem;
    color: rgba(255, 255, 255, .55);
    line-height: 1.5
}

/* Social proof numbers */
.demo-numbers {
    display: flex;
    gap: 1.25rem;
    align-items: center;
    flex-wrap: wrap
}

.dn {
    display: flex;
    flex-direction: column;
    gap: .2rem
}

.dn-v {
    font-family: var(--serif);
    font-size: 2rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}

.dn-plus {
    font-size: 1.25rem;
    color: #FFBB8A
}

.dn-l {
    font-size: .72rem;
    color: rgba(255, 255, 255, .45);
    font-family: var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase
}

.dn-sep {
    width: 1px;
    height: 48px;
    background: rgba(255, 255, 255, .12)
}

/* Form card */
.demo-form-card {
    background: var(--chalk);
    border-radius: 18px;
    border: 1.5px solid rgba(255, 255, 255, .08);
    padding: clamp(1.25rem, 3.5vw, 2.25rem);
    box-shadow: 0 40px 80px rgba(0, 0, 0, .4);
    max-width: 620px;
    margin: 0 auto;
}

@media(max-width:375px) {
    .demo-form-card {
        padding: 1rem;
        border-radius: 12px;
    }
}

.demo-form-card form h3 {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--charcoal);
    margin-bottom: .3rem;
}

.demo-form-card form>p {
    font-size: .84rem;
    color: var(--muted);
    margin-bottom: 1.75rem
}

.fields {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin-bottom: 1.25rem
}

@media(min-width: 640px) {
    .fields {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .875rem 1rem;
    }

    .fld-full {
        grid-column: span 2;
    }
}

.fld {
    display: flex;
    flex-direction: column;
    gap: .25rem
}

.fld label {
    font-size: .78rem;
    font-weight: 600;
    color: var(--muted);
    letter-spacing: .02em;
    transition: color var(--fast)
}

.fld:focus-within label {
    color: var(--rust)
}

.fld input,
.fld textarea {
    background: var(--ivory);
    border: 1.5px solid var(--border);
    border-radius: 8px;
    color: var(--charcoal);
    font-family: var(--sans);
    font-size: .9rem;
    padding: .72rem 1rem;
    transition: border-color var(--fast), box-shadow var(--fast), background var(--fast);
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
}

.fld textarea {
    resize: vertical;
    min-height: 80px;
}

.fld input::placeholder,
.fld textarea::placeholder {
    color: var(--faint)
}

.fld input:focus,
.fld textarea:focus {
    outline: none;
    border-color: var(--rust);
    box-shadow: 0 0 0 3px var(--rust-glow);
    background: #fff;
}

.fld input.bad,
.fld textarea.bad {
    border-color: rgba(200, 68, 43, .6);
    box-shadow: 0 0 0 3px rgba(200, 68, 43, .1)
}

.ferr {
    font-size: .7rem;
    color: var(--rust);
    min-height: 1rem
}

.submit-btn {
    width: 100%;
    background: var(--charcoal);
    color: #fff;
    font-family: var(--sans);
    font-size: .9375rem;
    font-weight: 700;
    padding: .875rem 1.5rem;
    border-radius: 9px;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .625rem;
    position: relative;
    overflow: hidden;
    transition: background var(--fast), transform var(--base) var(--spring), box-shadow var(--base);
}

.submit-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--rust);
    transform: translateX(-101%);
    transition: transform var(--base) var(--out);
}

.submit-btn>* {
    position: relative;
    z-index: 1
}

.submit-btn:hover::before {
    transform: none
}

.submit-btn:hover {
    box-shadow: 0 12px 28px var(--rust-glow);
    transform: translateY(-1px)
}

.submit-btn:active {
    transform: none;
    box-shadow: none
}

.sb-load {
    display: none
}

.submit-btn.loading .sb-label,
.submit-btn.loading .sb-icon {
    display: none
}

.submit-btn.loading .sb-load {
    display: flex
}

.submit-btn:disabled {
    opacity: .65;
    pointer-events: none
}

.form-fine {
    margin-top: .875rem;
    font-size: .7rem;
    text-align: center;
    color: var(--faint)
}

.form-fine a {
    color: var(--rust);
    text-decoration: underline;
    text-underline-offset: 2px
}

/* Success */
.form-ok {
    display: none;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 0;
    gap: 1rem;
}

.form-ok.show {
    display: flex
}

.ok-anim {
    width: 68px;
    height: 68px
}

.ok-anim svg {
    width: 100%;
    height: 100%
}

.ok-anim circle {
    stroke: var(--rust);
    stroke-width: 2;
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    animation: ckdash .6s cubic-bezier(.65, 0, .45, 1) forwards
}

.ck {
    stroke: var(--rust);
    stroke-width: 2.5;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: ckdash .4s .4s cubic-bezier(.65, 0, .45, 1) forwards
}

@keyframes ckdash {
    to {
        stroke-dashoffset: 0
    }
}

.form-ok h4 {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--charcoal)
}

.form-ok p {
    color: var(--muted);
    font-size: .875rem;
    line-height: 1.65;
    max-width: 300px
}

/* ══════════════════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════════════════ */
#footer {
    background: #111009;
    color: #666;
    padding: clamp(3.5rem, 7vw, 5rem) 0 0;
}

.ft-inner {
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 var(--pad);
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
}

@media(min-width:640px) {
    .ft-inner {
        grid-template-columns: 1fr 1fr
    }
}

@media(min-width:1024px) {
    .ft-inner {
        grid-template-columns: 2fr 1fr 1fr 1fr
    }
}

.ft-brand p {
    font-size: .84rem;
    color: #555;
    line-height: 1.72;
    margin: 1rem 0 1.5rem;
    max-width: 280px
}

.ft-social {
    display: flex;
    gap: .75rem
}

.ft-social a {
    width: 33px;
    height: 33px;
    border-radius: 7px;
    border: 1px solid rgba(255, 255, 255, .08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #555;
    font-size: .85rem;
    transition: color var(--fast), border-color var(--fast), transform var(--base) var(--spring);
}

.ft-social a:hover {
    color: var(--rust);
    border-color: rgba(200, 68, 43, .4);
    transform: translateY(-2px)
}

.ft-col h5 {
    font-size: .65rem;
    font-weight: 700;
    font-family: var(--mono);
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #444;
    margin-bottom: 1.25rem
}

.ft-col {
    display: flex;
    flex-direction: column;
    gap: .7rem
}

.ft-col a {
    font-size: .845rem;
    color: #555;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    transition: color var(--fast)
}

.ft-col a:hover {
    color: #e0d8cc
}

.ft-col a i {
    font-size: .72rem;
    opacity: .5
}

.ft-bar {
    max-width: var(--max);
    margin: 3rem auto 0;
    padding: 1.375rem var(--pad);
    border-top: 1px solid rgba(255, 255, 255, .05);
    display: flex;
    flex-direction: column;
    gap: .7rem;
    align-items: center;
    text-align: center;
}

@media(min-width:768px) {
    .ft-bar {
        flex-direction: row;
        justify-content: space-between;
        text-align: left
    }
}

.ft-bar p {
    font-size: .78rem;
    color: #3a3530
}

.ft-bar div {
    display: flex;
    gap: 1.5rem
}

.ft-bar a {
    font-size: .78rem;
    color: #3a3530;
    transition: color var(--fast)
}

.ft-bar a:hover {
    color: #e0d8cc
}

/* ── Accessibility ──────────────────────────────────────── */
:focus-visible {
    outline: 2px solid var(--rust);
    outline-offset: 3px;
    border-radius: 3px
}

@media(prefers-reduced-motion:reduce) {

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important
    }

    .sr,
    [data-reveal] {
        opacity: 1 !important;
        transform: none !important
    }
}