/* Public visual layer: native SVG/CSS motion, no external assets or libraries. */
.public-site {
    --flow-cyan: var(--theme-cyan);
    --flow-violet: var(--theme-violet);
    --flow-peach: var(--theme-peach);
    position: relative;
    isolation: isolate;
    background: var(--bg);
}
.public-site > :is(header, main, footer) { position: relative; z-index: 1; }
.flow-field { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; contain: strict; }
.flow-aurora { position: absolute; width: 80vw; height: 90vh; border-radius: 50%; opacity: .42; animation: aurora-drift 23s ease-in-out infinite alternate; }
.flow-aurora--cyan { right: -35%; top: -35%; background: radial-gradient(ellipse, #128b974d, transparent 65%); }
.flow-aurora--violet { left: -42%; bottom: -45%; background: radial-gradient(ellipse, #7151b84d, transparent 65%); animation-delay: -11s; animation-direction: alternate-reverse; }
.flow-grid { position: absolute; inset: 0; background-image: linear-gradient(#83aac40b 1px, transparent 1px), linear-gradient(90deg, #83aac40b 1px, transparent 1px); background-size: 78px 78px; mask-image: radial-gradient(ellipse at 72% 28%, #000, transparent 75%); }
.flow-routes { position: absolute; width: 100%; height: 100%; opacity: .75; }
.flow-tracks { stroke-width: .8; opacity: .23; }
.flow-runners { stroke-width: 1.7; filter: drop-shadow(0 0 5px #8be8ef77); }
.flow-runner { stroke-dasharray: 140 2460; animation: route-travel 12s linear infinite; }
.flow-runner--a { animation-duration: 12s; animation-delay: -6s; }
.flow-runner--b { animation-duration: 15s; animation-delay: -9s; opacity: .65; }
.flow-runner--c { animation-duration: 18s; animation-delay: -3s; opacity: .45; }
.flow-runner--d { animation-duration: 14s; animation-delay: -10s; }
.flow-runner--e { animation-duration: 19s; animation-delay: -4s; opacity: .5; }
.flow-runner--f { animation-duration: 14s; animation-delay: -8s; opacity: .55; }
.flow-runner--g { animation-duration: 17s; animation-delay: -12s; opacity: .4; }
.flow-runner--h { animation-duration: 13s; animation-delay: -5s; opacity: .6; }
.flow-runner--i { animation-duration: 18s; animation-delay: -11s; opacity: .45; }
.flow-runner--j { animation-duration: 16s; animation-delay: -3s; }
.flow-runner--k { animation-duration: 20s; animation-delay: -10s; opacity: .6; }
.flow-runner--l { animation-duration: 22s; animation-delay: -17s; opacity: .4; }
.flow-vignette { position: absolute; inset: 0; background: linear-gradient(90deg, #090d1470, transparent 70%), linear-gradient(0deg, #090d14aa, transparent 45%); }
.reading-progress { position: fixed; z-index: 15; inset: 0 0 auto; height: 2px; pointer-events: none; }
.reading-progress span { display: block; height: 100%; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg, var(--flow-violet), var(--flow-cyan), var(--flow-peach)); }
.public-site .site-header { border-bottom-color: #c2e7fa1c; padding-block: 30px; }
.public-site .site-header::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 20%; height: 1px; background: linear-gradient(90deg, transparent, var(--flow-cyan), var(--flow-violet), transparent); animation: header-scan 13s ease-in-out infinite alternate; }
.public-site .wordmark { letter-spacing: -.075em; }
.public-site .wordmark span { color: var(--flow-cyan); }
.public-site .site-header nav a { position: relative; }
.public-site .site-header nav a::after { content: ''; position: absolute; inset: auto 0 1px; height: 1px; background: linear-gradient(90deg, var(--flow-cyan), var(--flow-violet)); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.public-site .site-header nav a:hover::after, .public-site .site-header nav a[aria-current]::after { transform: scaleX(1); }
.public-site em, .public-site .approach h2 span {
    color: var(--mint);
    background: linear-gradient(110deg, #c7ffe4 5%, #78e5ef 30%, #ba9bff 52%, #ffc7a5 75%, #c7ffe4 95%);
    background-size: 250% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: spectrum-shift 15s ease-in-out infinite alternate;
}
.public-site .hero { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); padding-top: 85px; gap: 0; }
.public-site .hero h1 { font-size: clamp(3rem, 6.5vw, 7rem); letter-spacing: -.065em; line-height: 1.02; }
.public-site .hero h1 em { display: inline-block; }
.public-site .hero-intro { font-size: 1.05rem; max-width: 48ch; }
.public-site .hero .eyebrow { color: #c3d4de; }
.public-site .small-shape { border-radius: 50%; transform: none; box-shadow: 0 0 15px #87f5e85c; animation: signal-breathe 4s ease-in-out infinite; }
.public-site .button { position: relative; overflow: hidden; border-radius: 3px; color: #0a1720; background: linear-gradient(110deg, #b6f5d7, #8ce1e8); border-color: #a5efdb; box-shadow: 0 5px 30px #76d9d60d; transition: transform .25s, box-shadow .25s; }
.public-site .button::before { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 20%, #ffffff66, transparent 80%); transform: translateX(-130%) skewX(-20deg); transition: transform .65s; pointer-events: none; }
.public-site .button:hover { transform: translateY(-3px); box-shadow: 0 8px 35px #76d9d62b; }
.public-site .button:hover::before { transform: translateX(130%) skewX(-20deg); }
.public-site .button-outline { color: var(--mint); background: #111b2580; border-color: #7bdad667; }
.public-site .text-link { border-bottom-color: #86dcd568; transition: color .2s, border-color .2s, gap .25s; }
.public-site .text-link:hover { color: var(--flow-cyan); border-bottom-color: var(--flow-violet); gap: 53px; }
.kinetic-mark { position: relative; min-width: 0; width: 115%; align-self: center; aspect-ratio: 1; margin-left: -6%; margin-top: -16px; perspective: 900px; overflow: clip; }
.kinetic-halo { position: absolute; inset: 8%; border-radius: 50%; background: radial-gradient(ellipse, #4c568b33, #20758216 48%, transparent 70%); animation: halo-breathe 9s ease-in-out infinite alternate; }
.kinetic-pointer { width: 100%; height: 100%; transform: translate3d(var(--mark-x, 0px), var(--mark-y, 0px), 0) rotateX(var(--mark-rx, 0deg)) rotateY(var(--mark-ry, 0deg)); transition: transform .45s cubic-bezier(.2, .7, .3, 1); }
.kinetic-float { animation: mark-float 6s ease-in-out infinite alternate; }
.kinetic-svg { position: relative; width: 100%; height: 100%; overflow: visible; transform: rotate(-8deg); }
.kinetic-latitudes { opacity: .42; stroke-width: .8; transform-origin: 300px 300px; animation: latitude-drift 18s ease-in-out infinite alternate; }
.kinetic-orbit { stroke-width: 1.2; transform-origin: 300px 300px; animation: orbit-turn 32s linear infinite; }
.kinetic-axis { stroke-width: .8; opacity: .5; stroke-dasharray: 4 8; animation: axis-travel 16s linear infinite; }
.kinetic-letter { filter: drop-shadow(0 16px 30px #6c86d126); animation: letter-float 8s ease-in-out infinite alternate; }
.kinetic-letter-shadow { fill: #283b57; stroke: #a09ce34d; animation: letter-float 8s ease-in-out infinite alternate; }
.kinetic-sparks { transform-origin: 300px 300px; animation: orbit-turn 38s linear infinite reverse; }
.kinetic-coordinate { top: 8%; right: 7%; color: #bfa7e3; }
.public-site .presence-card { transition: background-color .3s; }
.public-site .presence-card:hover { background: color-mix(in srgb, var(--flow-cyan) 5%, transparent); }
.public-site .presence-steps li { transition: border-color .3s; }
.public-site .presence-steps li:hover { border-color: var(--flow-cyan); }
.public-site .hero .button > span { transition: transform .3s; }
.public-site .hero .button:hover > span { transform: translate(3px, -3px); }
.public-site .hero-foot { position: relative; margin-top: 10px; padding-top: 38px; border-color: #91bad22b; }
.public-site .hero-foot::after { --scan-distance: 335%; content: ''; position: absolute; bottom: -1px; left: 0; width: 23%; height: 1px; background: linear-gradient(90deg, transparent, var(--flow-violet), var(--flow-cyan), transparent); animation: header-scan 11s ease-in-out infinite alternate-reverse; }
.public-site .page-intro { position: relative; padding-block: 90px 76px; }
.public-site .page-intro h1 { letter-spacing: -.065em; font-size: clamp(2.7rem, 7vw, 7.5rem); }
.public-site .page-intro > p:not(.eyebrow) { max-width: 58ch; }
.pricing-intro .eyebrow { display: flex; gap: 12px; align-items: center; }
.signal-dot { display: inline-block; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--flow-cyan); box-shadow: 0 0 16px #72e9ef88; animation: signal-breathe 4s ease-in-out infinite; }
.pricing-legend { display: flex; align-items: center; gap: 16px; width: min(500px, 100%); margin-top: 38px; font: .58rem var(--font-mono); letter-spacing: .1em; color: var(--muted); }
.legend-line { flex: 1; min-width: 10px; height: 1px; background: linear-gradient(90deg, #a0e9dd66, #b69aff66); }
.public-site .pricing-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; counter-reset: package; }
.public-site .price-row { --package-accent: #8febe5; position: relative; isolation: isolate; min-width: 0; overflow: hidden; grid-template-columns: minmax(0, 1fr) auto; gap: 18px 24px; padding: clamp(24px, 3vw, 42px); border: 1px solid #afc5e329; border-radius: 12px; background: linear-gradient(140deg, #172230ed, #0e151ff5 70%); box-shadow: 0 16px 45px #00000012; transition: transform .3s, border-color .3s; }
.public-site .price-row::before { content: ''; position: absolute; z-index: -1; width: 260px; height: 260px; top: -180px; right: -80px; border: 1px solid var(--package-accent); border-radius: 50%; box-shadow: 0 0 0 18px #91e9ee06, 0 0 0 38px #91e9ee05, 0 0 0 60px #91e9ee04; opacity: .38; transition: transform .8s; }
.public-site .price-row::after { content: ''; position: absolute; top: 0; left: 0; width: 45%; height: 1px; background: linear-gradient(90deg, transparent, var(--package-accent), transparent); animation: card-scan 8s ease-in-out infinite alternate; }
.public-site .price-row:nth-of-type(3n + 2) { --package-accent: #b69aff; }.public-site .price-row:nth-of-type(3n) { --package-accent: #ffbb97; }
.public-site .price-row:nth-of-type(even)::after { animation-delay: -5s; }
.public-site .price-row:hover { border-color: var(--package-accent); transform: translateY(-4px); }
.public-site .price-row:hover::before { transform: scale(1.4); }
.public-site .price-row > div:first-child { grid-column: 1 / -1; }
.public-site .price-row .eyebrow { color: var(--package-accent); font-size: .62rem; }
.public-site .price-row h3 { font-size: clamp(1.45rem, 2.4vw, 2.1rem); max-width: 23ch; margin-block: 15px; }
.public-site .price-row .price { align-items: flex-start; grid-column: 1 / -1; padding-block: 8px; }
.public-site .price-row .price strong { font-size: clamp(2.25rem, 3.6vw, 3.7rem); color: var(--package-accent); }
.public-site .price-row .tax-note { order: 2; color: #9dadbc; font-size: .7rem; }
.public-site .price-row .package-features { grid-column: 1 / -1; margin-block: 0; }
.public-site .price-row .text-link { grid-column: 1 / -1; justify-self: start; margin-top: 4px; }
.public-site .price-row:first-of-type { grid-column: 1 / -1; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); padding-block: 44px; background: linear-gradient(115deg, #192837ef, #11272bea 55%, #1e2035ea); }
.public-site .price-row:first-of-type > div:first-child { grid-column: 1; }
.public-site .price-row:first-of-type .price { grid-column: 2; grid-row: 1 / 3; align-items: flex-end; }
.public-site .price-row:first-of-type .price strong { font-size: clamp(3rem, 5vw, 5.4rem); }
.public-site .price-row:first-of-type .package-features { grid-column: 1; }
.public-site .price-row:first-of-type .text-link { grid-column: 2; justify-self: end; }
.public-site .price-row:first-of-type::before { width: 480px; height: 480px; top: -310px; right: -80px; }
.public-site .service-row { position: relative; transition: background .3s; }
.public-site .service-row::before { content: ''; position: absolute; inset: -1px auto auto 0; width: 0; height: 1px; background: linear-gradient(90deg, var(--flow-cyan), var(--flow-violet), transparent); transition: width .65s; }
.public-site .service-row:hover::before { width: 100%; }.public-site .service-row:hover { background: #19233344; }
.public-site .service-number { color: var(--flow-cyan); font-family: var(--font-mono); }
.public-site .approach { position: relative; overflow: hidden; border: 1px solid #a6dbe02b; border-radius: 12px; background: linear-gradient(125deg, #152632e8, #191c30e8); }
.public-site .approach::after { content: ''; position: absolute; width: 550px; height: 550px; right: -300px; top: -200px; border: 1px solid #ab8bff45; border-radius: 50%; box-shadow: 0 0 0 35px #8bd9ed09, 0 0 0 70px #8bd9ed06, 0 0 0 105px #8bd9ed04; pointer-events: none; animation: halo-breathe 14s ease-in-out infinite alternate; }
.public-site .approach > * { position: relative; z-index: 1; }
.public-site .concept-canvas { border-radius: 8px; transition: transform .5s; }.public-site .concept:hover .concept-canvas { transform: translateY(-6px); }
.public-site .home-packages article { border-top-color: #a5cde63d; }
.public-site .contact-strip { position: relative; border-top-color: #bed7f02a; }
.public-site .contact-strip::before { content: ''; position: absolute; inset: -1px auto auto 0; width: 35%; height: 1px; background: linear-gradient(90deg, var(--flow-violet), var(--flow-cyan), transparent); }
.public-site .site-footer { border-color: #a0c6e426; padding-bottom: 85px; }
.motion-toggle { position: fixed; z-index: 12; bottom: 20px; right: 24px; display: inline-flex; align-items: center; gap: 10px; min-height: 42px; padding: 10px 14px; border-radius: 30px; border: 1px solid #a4d3ec38; background: #111a27ee; color: #d3e2eb; font-size: .68rem; cursor: pointer; box-shadow: 0 3px 20px #0003; }
.motion-toggle[hidden] { display: none; }.motion-toggle:hover { border-color: var(--flow-cyan); }
.motion-toggle-icon { width: 9px; height: 10px; border-inline: 2px solid var(--flow-cyan); }.motion-toggle[aria-pressed="true"] .motion-toggle-icon { border: 0; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid var(--flow-violet); }
.public-site.motion-ready [data-reveal] { transition: opacity .7s, translate .7s; }
.public-site.motion-ready [data-reveal="waiting"] { opacity: 0; translate: 0 20px; }
.public-site[data-motion="paused"] *, .public-site[data-motion="paused"] *::before, .public-site[data-motion="paused"] *::after { animation-play-state: paused !important; }
.public-site[data-motion="paused"] .kinetic-pointer { transform: none; transition: none; }
.public-site[data-motion="paused"] [data-reveal] { opacity: 1; translate: none; transition: none; }
.public-site[data-visibility="hidden"] *, .public-site[data-visibility="hidden"] *::before, .public-site[data-visibility="hidden"] *::after { animation-play-state: paused !important; }
@keyframes route-travel { to { stroke-dashoffset: -2600; } }
@keyframes axis-travel { to { stroke-dashoffset: -192; } }
@keyframes aurora-drift { to { transform: translate(10%, 14%) scale(1.15); } }
@keyframes spectrum-shift { to { background-position: 100% 50%; } }
@keyframes header-scan { from { transform: translateX(0); } to { transform: translateX(var(--scan-distance, 400%)); } }
@keyframes card-scan { to { transform: translateX(122%); } }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
@keyframes latitude-drift { from { transform: rotate(-15deg) scale(.95); } to { transform: rotate(9deg) scale(1.04); } }
@keyframes mark-float { from { transform: translateY(3px); } to { transform: translateY(-5px); } }
@keyframes letter-float { to { transform: translateY(-13px); } }
@keyframes halo-breathe { to { transform: scale(1.13); opacity: .68; } }
@keyframes signal-breathe { 50% { opacity: .5; } }
@media (max-width: 950px) {
    .public-site .hero { padding-top: 65px; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
    .kinetic-mark { width: 113%; margin-left: -8%; }
    .public-site .price-row { padding: 27px; }.public-site .price-row:first-of-type { padding: 34px; }
}
@media (max-width: 640px) {
    .public-site .site-header { padding-block: 22px; }
    .public-site .hero { grid-template-columns: minmax(0, 1fr); padding-top: 52px; }
    .public-site .hero h1 { font-size: clamp(2.9rem, 10.4vw, 4.6rem); }
    .kinetic-mark { width: min(100%, 420px); margin: 16px auto 0; }
    .public-site .page-intro { padding-block: 58px 48px; }.public-site .page-intro h1 { font-size: clamp(2.3rem, 8.7vw, 3.8rem); }
    .public-site .pricing-list { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .public-site .price-row, .public-site .price-row:first-of-type { grid-template-columns: minmax(0, 1fr); padding: 25px; }
    .public-site .price-row:first-of-type .price { grid-column: 1; grid-row: auto; align-items: flex-start; }
    .public-site .price-row:first-of-type .price strong { font-size: 3rem; }.public-site .price-row:first-of-type .text-link { grid-column: 1; justify-self: start; }
    .pricing-legend { gap: 8px; font-size: .46rem; margin-top: 28px; }
    .flow-runner:nth-child(n+9) { display: none; }
    .flow-routes { width: 150%; left: -30%; opacity: .55; }.flow-grid { background-size: 54px 54px; }
    .flow-aurora { width: 140vw; }.flow-aurora--cyan { right: -80%; }
    .motion-toggle { bottom: 12px; right: 14px; min-height: 40px; font-size: .62rem; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site *, .public-site *::before, .public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .public-site [data-reveal] { opacity: 1 !important; translate: none !important; }
    .flow-runners { opacity: .4; }.flow-runner { stroke-dasharray: none; }.motion-toggle { display: none; }
}
@media print { .flow-field, .kinetic-mark, .motion-toggle, .reading-progress { display: none; } }
