:root {
  --wav-ink: #030817;
  --wav-surface: #07142a;
  --wav-raised: #0a2044;
  --wav-cyan: #22e7ee;
  --wav-blue: #168cff;
  --wav-violet: #5b54ff;
  --wav-lavender: #c8b2ff;
  --wav-text: #f3f7ff;
  --wav-muted: #b7c8e6;
  --wav-line: rgba(143, 189, 255, .17);
}

body.wavulate-site {
  color: var(--wav-text);
  background: var(--wav-ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

body.wavulate-site::after { background: var(--wav-cyan); box-shadow: 0 0 22px rgba(34, 231, 238, .86); }
body.wavulate-site::before { background: linear-gradient(90deg, transparent 0 22%, rgba(22, 140, 255, .2) 38%, rgba(34, 231, 238, .84) 50%, rgba(91, 84, 255, .2) 62%, transparent 78%), linear-gradient(180deg, rgba(3, 8, 23, .96), rgba(5, 12, 28, .98)); }
.wavulate-site .site-header { border-color: var(--wav-line); background: rgba(3, 8, 23, .88); }
.wavulate-site .site-nav { color: #c7d6ee; }
.wavulate-site .nav-dropdown-menu { border-color: rgba(34, 231, 238, .34); background: rgba(3, 8, 23, .98); }
.wavulate-site .site-nav a:hover { color: var(--wav-cyan); }
.product-home-grid { display: grid; gap: 12px; }
.wavulate-home-card { border-color: rgba(34, 231, 238, .24); background: linear-gradient(140deg, #0a2044, #0b1021); }
.wavulate-directory-card img { aspect-ratio: 2.4 / 1; object-fit: cover; }
.wavulate-directory-card .directory-price { margin: 8px 0; color: #dcecff; font-size: 1.2rem; font-weight: 850; }
.wav-wrap { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.wav-hero { position: relative; overflow: hidden; padding: clamp(68px, 8vw, 116px) 0 76px; border-bottom: 1px solid var(--wav-line); background: radial-gradient(ellipse at 75% 22%, rgba(22, 140, 255, .2), transparent 34%), radial-gradient(ellipse at 95% 60%, rgba(91, 84, 255, .14), transparent 35%), linear-gradient(145deg, #06152e, #030817 72%); }
.wav-hero::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .28; background-image: linear-gradient(rgba(102, 166, 255, .08) 1px, transparent 1px), linear-gradient(90deg, rgba(102, 166, 255, .08) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, transparent 4%, black 72%); }
.wav-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, .96fr) minmax(430px, 1.04fr); align-items: center; gap: clamp(36px, 7vw, 94px); }
.wav-eyebrow, .wav-section-label, .wav-capability-label { color: var(--wav-cyan); font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.wav-eyebrow { display: flex; align-items: center; gap: 9px; }
.wav-eyebrow span, .wav-fact-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--wav-cyan); box-shadow: 0 0 18px rgba(34, 231, 238, .8); }
.wav-hero h1 { max-width: 700px; margin: 20px 0; font-size: clamp(3.2rem, 6.6vw, 6.5rem); line-height: .98; letter-spacing: -.065em; }
.wav-hero h1 em { color: transparent; font-style: normal; background: linear-gradient(105deg, var(--wav-cyan), var(--wav-blue) 40%, var(--wav-violet) 76%, var(--wav-lavender)); background-clip: text; -webkit-background-clip: text; }
.wav-lede { max-width: 600px; color: var(--wav-muted); font-size: clamp(1.08rem, 1.6vw, 1.3rem); line-height: 1.6; }
.wav-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 30px; }
.wav-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 18px; padding: 0 20px; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; color: #061327; font-weight: 850; background: linear-gradient(108deg, var(--wav-cyan), #28a5ff 50%, #6854ff); box-shadow: 0 12px 35px rgba(36, 113, 255, .18); transition: transform .18s ease, box-shadow .18s ease; }
.wav-button:hover { transform: translateY(-2px); box-shadow: 0 16px 42px rgba(36, 113, 255, .3); }
.wav-text-link { color: var(--wav-muted); font-weight: 700; }
.wav-text-link:hover, .wav-legal-link:hover { color: var(--wav-cyan); }
.wav-hero-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 27px; color: #93a9ca; font-size: .77rem; }
.wav-hero-meta strong { color: var(--wav-text); }
.wav-hero-meta i { width: 3px; height: 3px; border-radius: 50%; background: #6386b1; }
.wav-checkout-note { margin: 10px 0 0; color: #8297b8; font-size: .73rem; }
.wav-hero-art { min-width: 0; }
.wav-logo-frame { overflow: hidden; border: 1px solid rgba(106, 146, 220, .35); border-radius: 16px; background: #030817; box-shadow: 0 25px 80px rgba(0, 0, 0, .36), 0 0 50px rgba(22, 140, 255, .1); }
.wav-logo-frame img { display: block; width: 100%; height: auto; }
.wav-output-card { margin: 16px 0 0 8%; overflow: hidden; border: 1px solid rgba(123, 169, 236, .36); border-radius: 12px; background: rgba(7, 20, 42, .92); box-shadow: 0 20px 64px rgba(0,0,0,.34); transform: rotate(-1.2deg); }
.wav-output-top { display: flex; justify-content: space-between; gap: 12px; padding: 11px 14px; color: #9db4d5; font-size: .61rem; font-weight: 850; letter-spacing: .12em; }
.wav-output-scene { position: relative; display: grid; min-height: 180px; place-items: center; overflow: hidden; background: radial-gradient(ellipse at 50% 100%, rgba(32, 186, 255, .36), transparent 38%), radial-gradient(ellipse at 20% 45%, rgba(91, 84, 255, .24), transparent 48%), linear-gradient(130deg, #091931, #101937 52%, #090e24); }
.wav-output-scene::before { position: absolute; inset: 0; content: ""; opacity: .24; background: repeating-linear-gradient(120deg, transparent 0 28px, rgba(180, 204, 255, .1) 29px 30px, transparent 31px 62px); }
.wav-orbit { position: absolute; width: 380px; height: 180px; border: 1px solid rgba(34, 231, 238, .18); border-radius: 50%; transform: rotate(-18deg); }
.wav-orbit-one { width: 450px; height: 210px; }
.wav-orbit-two { width: 315px; height: 140px; border-color: rgba(168, 131, 255, .26); transform: rotate(18deg); }
.wav-scene-kicker, .wav-scene-lyric, .wav-bars { position: relative; z-index: 1; }
.wav-scene-kicker { margin: 4px 0 0; color: #a8c4ec; font-size: .59rem; font-weight: 800; letter-spacing: .2em; }
.wav-scene-lyric { margin: 5px 0 22px; color: #fff; font-size: clamp(1.2rem, 2.4vw, 2rem); font-weight: 800; line-height: 1.05; text-align: center; text-shadow: 0 3px 20px #061224; }
.wav-scene-lyric strong { color: #8beeff; }
.wav-bars { position: absolute; right: 7%; bottom: 10px; left: 7%; display: flex; height: 42px; align-items: end; justify-content: center; gap: 4px; }
.wav-bars b { flex: 1; max-width: 11px; height: var(--h, 34%); border-radius: 4px 4px 0 0; background: linear-gradient(180deg, #38ebf2, #247dff 57%, #8d69ff); box-shadow: 0 0 12px rgba(34, 231, 238, .18); }
.wav-bars b:nth-child(5n + 1) { --h: 86%; }.wav-bars b:nth-child(5n + 2) { --h: 62%; }.wav-bars b:nth-child(5n + 3) { --h: 43%; }.wav-bars b:nth-child(5n + 4) { --h: 72%; }
.wav-art-caption { margin: 0; padding: 8px 13px; color: #8297b8; font-size: .65rem; }
.wav-intro, .wav-workflow, .wav-capabilities, .wav-local, .wav-price, .wav-legal { padding: clamp(62px, 8vw, 100px) 0; }
.wav-intro { border-bottom: 1px solid var(--wav-line); background: linear-gradient(180deg, #050d1e, #030817); }
.wav-intro-grid { display: grid; grid-template-columns: .48fr 1.52fr; gap: 40px; }
.wav-intro h2, .wav-section-heading h2, .wav-local h2, .wav-price h2, .wav-legal h2 { margin: 0; font-size: clamp(2.15rem, 4vw, 3.5rem); line-height: 1.08; letter-spacing: -.04em; }
.wav-intro h2 span { color: var(--wav-muted); }
.wav-intro-grid > div > p:last-child { max-width: 720px; margin: 22px 0 0; color: var(--wav-muted); font-size: 1.06rem; }
.wav-section-heading { margin-bottom: 30px; }
.wav-section-heading .wav-section-label { margin: 0 0 10px; }
.wav-steps { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--wav-line); border-radius: 14px; background: linear-gradient(145deg, rgba(10,32,68,.9), rgba(5,13,30,.95)); }
.wav-steps article { min-height: 225px; padding: 24px 22px; border-right: 1px solid var(--wav-line); }
.wav-steps article:last-child { border: 0; }
.wav-step-no { color: var(--wav-cyan); font-size: .75rem; font-weight: 900; letter-spacing: .16em; }
.wav-steps h3, .wav-capability h3 { margin: 30px 0 9px; font-size: 1.25rem; line-height: 1.2; }
.wav-steps p, .wav-capability > p:not(.wav-capability-label) { margin: 0; color: var(--wav-muted); font-size: .91rem; }
.wav-capabilities { background: radial-gradient(ellipse at 80% 18%, rgba(48, 80, 255, .11), transparent 34%), #050c1b; }
.wav-capability-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.wav-capability { min-height: 320px; padding: 24px; border: 1px solid var(--wav-line); border-radius: 14px; background: linear-gradient(155deg, rgba(10,32,68,.88), rgba(5,13,30,.93)); }
.wav-capability-mark { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(34,231,238,.28); border-radius: 12px; color: var(--wav-cyan); font-size: 1.3rem; font-weight: 900; background: rgba(34,231,238,.07); }
.wav-capability-label { margin: 22px 0 0; font-size: .67rem; }
.wav-capability h3 { margin: 9px 0 11px; font-size: 1.42rem; }
.wav-mark-bars { display: flex; align-items: end; justify-content: center; gap: 3px; padding: 8px; }
.wav-mark-bars i { width: 3px; height: 60%; border-radius: 2px; background: linear-gradient(var(--wav-cyan), var(--wav-violet)); }.wav-mark-bars i:nth-child(2n) { height: 82%; }.wav-mark-bars i:nth-child(3n) { height: 40%; }
.wav-mark-short { display: flex; align-items: center; justify-content: center; gap: 3px; }.wav-mark-short i { width: 8px; height: 21px; border: 1px solid var(--wav-cyan); border-radius: 2px; }.wav-mark-short i:nth-child(2) { height: 28px; border-color: #6789ff; }.wav-mark-short i:nth-child(3) { height: 16px; border-color: var(--wav-lavender); }
.wav-chip-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }.wav-chip-row span { padding: 5px 8px; border: 1px solid rgba(143,189,255,.16); border-radius: 99px; color: #acc2e4; font-size: .67rem; }
.wav-local { border-block: 1px solid var(--wav-line); background: linear-gradient(135deg, #06142a, #071b36 58%, #060b1e); }
.wav-local-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 70px; }
.wav-local h2 { max-width: 600px; }
.wav-local-grid > div:first-child > p:last-child { max-width: 670px; color: var(--wav-muted); }
.wav-local-facts { display: grid; gap: 10px; }
.wav-local-facts > div { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--wav-line); border-radius: 11px; background: rgba(3,8,23,.44); }
.wav-local-facts p { display: grid; gap: 1px; margin: 0; }.wav-local-facts small { color: #91a7c9; font-size: .76rem; }
.wav-price { background: linear-gradient(180deg, #030817, #050b1c); }
.wav-price-panel { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 52px; padding: clamp(28px, 5vw, 54px); border: 1px solid rgba(34, 231, 238, .3); border-radius: 18px; background: radial-gradient(ellipse at 5% 0%, rgba(34,231,238,.1), transparent 40%), linear-gradient(125deg, #0a2044, #080e23 68%); box-shadow: 0 26px 80px rgba(0,0,0,.24); }
.wav-price h2 span { color: var(--wav-cyan); }.wav-price-panel > div:first-child > p:not(.wav-section-label) { max-width: 660px; color: var(--wav-muted); }.wav-price-footnote { color: #859bbd!important; font-size: .75rem; }
.wav-price-action { min-width: 230px; display: grid; justify-items: start; gap: 13px; }.wav-price-tag { display: grid; color: #9bb1d2; font-size: .68rem; font-weight: 850; letter-spacing: .14em; }.wav-price-tag strong { color: var(--wav-text); font-size: 3.15rem; line-height: 1.06; letter-spacing: -.06em; }.wav-price-tag small { color: #91a7c9; font-size: .73rem; letter-spacing: .1em; }
.wav-price-action .wav-button { width: 100%; }.wav-legal { padding-top: 48px; padding-bottom: 28px; background: #030817; }.wav-legal-row { display: grid; grid-template-columns: 1fr .86fr; gap: 60px; }.wav-legal h2 { font-size: clamp(1.7rem, 3vw, 2.45rem); }.wav-legal-row > div > p:not(.wav-section-label) { max-width: 700px; color: #99adca; font-size: .86rem; }.wav-legal-links { display: grid; align-content: start; border-top: 1px solid var(--wav-line); }.wav-legal-links a { display: flex; justify-content: space-between; gap: 16px; padding: 11px 3px; border-bottom: 1px solid var(--wav-line); color: #d8e6fa; font-size: .84rem; }.wav-legal-links a span { color: var(--wav-cyan); }.wav-source-notice { margin-top: 29px; padding: 15px 18px; border: 1px solid rgba(200,178,255,.22); border-radius: 10px; color: #9eafc9; background: rgba(91,84,255,.06); font-size: .75rem; }.wav-source-notice p { margin: 0; }.wav-source-notice strong { color: #d6caff; }.wav-source-notice a { color: var(--wav-cyan); text-decoration: underline; text-underline-offset: 3px; }
.wavulate-site .site-footer { border-color: var(--wav-line); background: #020613; }.wavulate-site .site-footer a:hover { color: var(--wav-cyan); }

@media (max-width: 980px) {
  .wav-hero-grid { grid-template-columns: 1fr; }.wav-hero-copy { max-width: 790px; }.wav-hero-art { max-width: 760px; }.wav-steps { grid-template-columns: repeat(2, 1fr); }.wav-steps article:nth-child(2) { border-right: 0; }.wav-steps article:nth-child(-n + 2) { border-bottom: 1px solid var(--wav-line); }.wav-capability-grid { grid-template-columns: 1fr; }.wav-capability { min-height: 0; }.wav-local-grid { grid-template-columns: 1fr; gap: 32px; }.wav-legal-row { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 680px) {
  .wav-wrap { width: min(100% - 28px, 1180px); }.wav-hero { padding-top: 54px; }.wav-hero h1 { font-size: clamp(2.9rem, 13vw, 4.7rem); }.wav-output-card { margin-left: 2%; }.wav-intro-grid { grid-template-columns: 1fr; gap: 12px; }.wav-intro h2, .wav-section-heading h2, .wav-local h2, .wav-price h2 { font-size: 2.2rem; }.wav-steps { grid-template-columns: 1fr; }.wav-steps article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--wav-line); }.wav-steps article:nth-child(2) { border-bottom: 1px solid var(--wav-line); }.wav-steps article:last-child { border-bottom: 0; }.wav-steps h3 { margin-top: 16px; }.wav-price-panel { grid-template-columns: 1fr; gap: 25px; }.wav-price-action { width: 100%; }.wav-hero-meta { line-height: 1.5; }
}
@media (prefers-reduced-motion: reduce) { .wav-button { transition: none; } .wav-button:hover { transform: none; } }
