/* RONVE v2 — motion design, polished interactions and editorial finishing */
:root {
  --ease-premium: cubic-bezier(.22,1,.36,1);
  --ease-smooth: cubic-bezier(.2,.75,.3,1);
  --glow-rgb: 245,139,33;
}
body { overflow-x:clip; }
:focus-visible { outline:2px solid var(--orange); outline-offset:5px; }
.skip-link { position:fixed;z-index:120;top:12px;left:12px;transform:translateY(-160%);background:#fff;color:#111;padding:12px 17px;border-radius:4px;font-weight:700; }
.skip-link:focus-visible { transform:translateY(0); }
.scroll-progress { position:fixed;inset:0 0 auto;z-index:105;height:2px;pointer-events:none;background:transparent; }
.scroll-progress span { display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#cc5a11,#ffb154,#ff8414);box-shadow:0 0 13px rgba(var(--glow-rgb),.55); }
.header { transition:box-shadow .35s, background .35s, border-color .35s; }
.header.is-scrolled { background:rgba(13,14,16,.92);box-shadow:0 15px 38px #0004;border-color:#37312a; }
.nav-links a { position:relative;transition:color .25s ease; }
.nav-links a::after { content:"";position:absolute;left:0;right:0;bottom:-9px;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-premium); }
.nav-links a:hover::after,.nav-links a.is-active::after { transform:scaleX(1); }
.nav-links a.is-active { color:#fff; }
.nav-cta { transition:transform .35s var(--ease-premium),background .35s,border-color .35s,color .35s; }
.nav-cta:hover { transform:translateY(-2px);border-color:#fff; }
.brand-mark i { transition:transform .45s var(--ease-premium); }
.brand:hover .brand-mark i { transform:translate(3px,-3px); }

/* Reveal is progressive enhancement. Without JS everything stays visible. */
html.motion-ready [data-reveal] { opacity:0;transform:translate3d(0,32px,0);transition:opacity .88s var(--ease-premium),transform .88s var(--ease-premium); }
html.motion-ready [data-reveal="scale"] { transform:translate3d(0,28px,0) scale(.965); }
html.motion-ready [data-reveal].is-visible { opacity:1;transform:translate3d(0,0,0) scale(1); }
html.motion-ready .hero [data-reveal]:nth-child(2) { transition-delay:.09s; }
html.motion-ready .hero [data-reveal]:nth-child(3) { transition-delay:.18s; }
html.motion-ready .hero [data-reveal]:nth-child(4) { transition-delay:.27s; }
html.motion-ready .hero [data-reveal]:nth-child(5) { transition-delay:.34s; }
html.motion-ready .hero [data-reveal]:nth-child(6) { transition-delay:.4s; }
html.motion-ready [data-stagger] [data-reveal]:nth-child(2) { transition-delay:.10s; }
html.motion-ready [data-stagger] [data-reveal]:nth-child(3) { transition-delay:.20s; }
html.motion-ready [data-stagger] [data-reveal]:nth-child(4) { transition-delay:.30s; }

/* Hero: an instrument panel feeling, not a video-heavy landing page */
.hero { isolation:isolate; }
.hero::before { content:"";position:absolute;inset:-12% -25% auto 21%;height:540px;background:radial-gradient(ellipse,rgba(245,139,33,.055),transparent 62%);pointer-events:none;z-index:-1; }
.hero h1 { font-size:clamp(39px,3.75vw,52px);letter-spacing:-.073em;line-height:1.12; }
.hero h1 em { background:linear-gradient(100deg,#dedede,#99999a 77%);-webkit-background-clip:text;background-clip:text;color:transparent; }
.hero h1 em span { -webkit-text-fill-color:var(--orange); }
.hero-description { max-width:490px; }
.eyebrow-index { margin-left:12px;color:#747579;font-size:9px;letter-spacing:.15em;border-left:1px solid #565658;padding-left:13px; }
.button { position:relative;overflow:hidden;isolation:isolate;transition:transform .4s var(--ease-premium),background .35s,color .35s,box-shadow .35s; }
.button::before { content:"";position:absolute;inset:-120% auto -120% -65%;width:35%;transform:rotate(25deg);background:linear-gradient(90deg,transparent,#fff8,transparent);transition:left .65s var(--ease-premium);z-index:-1; }
.button:hover::before { left:140%; }
.button-primary:hover {box-shadow:0 16px 40px rgba(var(--glow-rgb),.19);}
.button span,.nav-cta span,.text-link span {display:inline-block;transition:transform .3s var(--ease-premium);}
.button:hover span,.nav-cta:hover span { transform:translate(3px,-3px); }
.text-link:hover span { transform:translate(3px,2px); }
.scroll-cue { display:flex;gap:13px;align-items:center;margin-top:34px;color:#747579;font-size:9px;letter-spacing:.23em;font-weight:700;transition:color .3s; }
.scroll-cue-line { width:24px;height:1px;background:#626366;transform-origin:left;animation:scroll-line 3.2s ease-in-out infinite; }
.scroll-cue:hover { color:#ddd; }
.scroll-cue>span:last-child { font-size:14px;color:var(--orange);animation:bob-down 2.4s ease-in-out infinite; }
@keyframes scroll-line { 0%,100% { transform:scaleX(.55);opacity:.5 } 50% { transform:scaleX(1.2);opacity:1 } }
@keyframes bob-down { 0%,100% { transform:translateY(-2px) } 50% { transform:translateY(4px) } }
.hero-visual { --pointer-x:50%;--pointer-y:50%;perspective:1100px;isolation:isolate; }
.hero-visual::before { content:"";position:absolute;inset:-6% -10%;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(var(--glow-rgb),.15),transparent 36%);opacity:.8;pointer-events:none;z-index:-1; }
.visual-grid {opacity:.8;}
.visual-spotlight { position:absolute;inset:9% 10%;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),#ffa34312,transparent 43%);pointer-events:none;z-index:5; }
.symbol-panel { transition:transform .9s var(--ease-premium),box-shadow .6s;transform:perspective(1100px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));will-change:transform; }
.symbol-panel::after { content:"";position:absolute;inset:0;border:1px solid #ffae4b12;box-shadow:inset 0 0 70px rgba(0,0,0,.18);pointer-events:none; }
.symbol-panel img { position:relative;z-index:2;animation:mark-float 8s ease-in-out infinite;filter:drop-shadow(0 15px 30px #0004); }
.symbol-halo { position:absolute;inset:13%;border-radius:50%;background:radial-gradient(circle,rgba(var(--glow-rgb),.24),transparent 61%);filter:blur(23px);animation:halo-pulse 5s ease-in-out infinite; }
.visual-orbit {animation:spin-orbit 48s linear infinite;}
.orbit-two {animation-direction:reverse;animation-duration:57s;}
@keyframes mark-float { 0%,100% { transform:translateY(0) } 50% {transform:translateY(-9px)} }
@keyframes halo-pulse {0%,100% {opacity:.5;transform:scale(.92)}50%{opacity:.9;transform:scale(1.10)}}
@keyframes spin-orbit {to{rotate:360deg}}
.satellite { position:absolute;width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 7px #f58b2113,0 0 24px #f58b2190;z-index:7; }
.satellite-one {top:17%;right:25%;animation:sat-bob 5.5s ease-in-out infinite;}
.satellite-two {bottom:19%;left:18%;width:5px;height:5px;background:#fff;box-shadow:0 0 0 6px #fff1;animation:sat-bob 6.5s -2s ease-in-out infinite;}
@keyframes sat-bob {0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}
.orbit-crosshair {position:absolute;color:#575254;font:400 17px/1 monospace;z-index:5;}
.crosshair-top{top:17%;left:10%}.crosshair-bottom{bottom:13%;right:14%}
.visual-pill { position:absolute;z-index:8;display:flex;align-items:center;gap:9px;border:1px solid rgba(240,192,131,.24);background:#181818dc;backdrop-filter:blur(13px);color:#c9c4bd;font-size:9px;letter-spacing:.14em;font-weight:700;padding:12px 14px;box-shadow:0 14px 28px #0005;white-space:nowrap; }
.visual-pill strong{margin-left:13px;color:var(--orange);font-weight:700;}
.pill-dot {width:5px;height:5px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px #f58b2120;}
.visual-pill-one {right:-13px;top:31%;animation:pill-drift 7.8s ease-in-out infinite;}
.visual-pill-two {left:-13px;bottom:26%;animation:pill-drift 7.8s -3.3s ease-in-out infinite;}
@keyframes pill-drift {0%,100%{translate:0 0}50%{translate:0 -9px}}
.edge-label { z-index:8; }

/* Marquee: two identical content sets mean a real seamless loop */
.ticker {overflow:hidden;position:relative;}
.ticker::before,.ticker::after {content:"";position:absolute;top:0;bottom:0;width:65px;pointer-events:none;z-index:2;}
.ticker::before{left:0;background:linear-gradient(90deg,var(--orange),transparent)}
.ticker::after{right:0;background:linear-gradient(270deg,var(--orange),transparent)}
.ticker .ticker-track{display:flex;gap:0;width:max-content;min-width:0;animation:ronve-marquee 30s linear infinite;will-change:transform;}
.ticker .ticker-set{display:flex;align-items:center;justify-content:space-around;gap:39px;flex-shrink:0;padding-inline:20px;white-space:nowrap;}
.ticker .ticker-set span{margin:0 4px;}
.ticker:hover .ticker-track{animation-play-state:paused;}
@keyframes ronve-marquee {to{transform:translateX(-50%)}}

/* Interactions on the parts that actually matter */
.services{position:relative;}
.services::before {content:"";position:absolute;pointer-events:none;inset:0;background:radial-gradient(ellipse at 12% 5%,#ff922808,transparent 37%);}
.service-grid {position:relative;isolation:isolate;}
.service-card {--glow-x:50%;--glow-y:50%;overflow:hidden;transition:background .4s,border-color .4s,transform .55s var(--ease-premium),box-shadow .4s;}
.service-card::before { content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(360px circle at var(--glow-x) var(--glow-y),rgba(var(--glow-rgb),.15),transparent 65%);opacity:0;transition:opacity .45s;pointer-events:none; }
.service-card:hover,html.motion-ready .service-card.is-visible:hover {background:#202023;transform:translateY(-8px);box-shadow:0 20px 60px #0005;z-index:3;border-color:#ff9b364e;}
.service-card:hover::before{opacity:1;}
.service-card > *{position:relative;z-index:1;}
.service-icon svg{transition:transform .65s var(--ease-premium),filter .65s;}
.service-card:hover .service-icon svg{transform:translateY(-5px) scale(1.1);filter:drop-shadow(0 0 12px #ff931970);}
.card-arrow{transition:transform .4s,color .4s;}
.service-card:hover .card-arrow{transform:translate(4px,-4px);color:var(--orange);}
.step {transition:border-color .4s;}
.step:hover{border-color:#ffa450;}
.step-marker {transition:transform .45s var(--ease-premium),box-shadow .45s;}
.step:hover .step-marker {transform:rotate(135deg) scale(1.45);box-shadow:0 0 17px #f58b2180;}
.focus-art {transition:border-color .4s,box-shadow .6s;}
.focus-art:hover {border-color:#ab6938;box-shadow:0 25px 75px #0006;}
.plan-circle {animation:spin-orbit 37s linear infinite;}
.focus-asterisk{animation:asterisk-glow 8s ease-in-out infinite;}
@keyframes asterisk-glow {0%,100%{transform:translate(-50%,-50%) rotate(0);opacity:.95}50%{transform:translate(-50%,-50%) rotate(30deg);opacity:.75}}

/* Custom section: an animated but truthful overview of the work */
.blueprint {border-block:1px solid #2c2d2e;background:radial-gradient(ellipse at 78% 55%,#a45a1215,transparent 44%),#121315;}
.blueprint-layout {display:grid;grid-template-columns:.92fr 1.08fr;align-items:center;gap:72px;}
.blueprint-lead h2{max-width:560px;font:800 clamp(34px,3.9vw,56px)/1.14 "Manrope",sans-serif;letter-spacing:-.065em;margin:22px 0 24px;}
.blueprint-lead h2 span{color:#a4a4a6;}
.blueprint-lead p{max-width:470px;color:#a4a5a8;font-size:14px;line-height:1.86;margin-bottom:28px;}
.flow-diagram{border:1px solid #36312e;background:linear-gradient(148deg,#202021,#171719 57%,#141415);padding:28px 28px 22px;box-shadow:0 30px 95px #0005;position:relative;overflow:hidden;min-height:352px;}
.flow-diagram::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:35px 35px;mask-image:linear-gradient(to bottom,transparent,#0008 50%,transparent);pointer-events:none;}
.flow-diagram::after{content:"";position:absolute;right:-70px;top:-110px;width:260px;height:260px;background:radial-gradient(circle,#f5872919,transparent 67%);pointer-events:none;}
.flow-head,.flow-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;position:relative;z-index:1;color:#9a9b9e;font:700 9px/1.5 "DM Sans",sans-serif;letter-spacing:.13em;}
.flow-head span:first-child{color:#d8d8d6;}
.flow-head i,.flow-signal i{display:inline-block;vertical-align:middle;background:var(--orange);height:6px;width:6px;border-radius:50%;margin-right:9px;box-shadow:0 0 10px #ffa0386b;}
.flow-track{position:absolute;left:12%;right:12%;top:50%;height:1px;background:#7d60493b;overflow:visible;}
.flow-line{display:block;width:100%;height:1px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#ff9b31,#ffbe63);box-shadow:0 0 15px #ed872b75;transition:transform 1.7s .4s var(--ease-premium);}
.flow-diagram.is-visible .flow-line{transform:scaleX(1);}
.flow-items{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:70px 0 68px;}
.flow-item{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;}
.flow-index{color:#858585;font-size:9px;font-weight:700;letter-spacing:.16em;}
.flow-icon{display:grid;place-items:center;height:58px;width:58px;border:1px solid #7f5a3b90;background:#22201edb;color:var(--orange);border-radius:50%;font-size:25px;box-shadow:inset 0 0 22px #f58b2111,0 5px 15px #0005;transition:background .4s,transform .5s var(--ease-premium);}
.flow-item:hover .flow-icon{transform:translateY(-6px);background:#3c2b20;}
.flow-item strong{color:#fff;font:800 14px "Manrope",sans-serif;}
.flow-item small{color:#9e9e9f;font-size:11px;}
.flow-footer{border-top:1px solid #383332;padding-top:19px;}
.flow-signal{color:#c9a686;white-space:nowrap;}
.flow-signal i{animation:signal-pulse 2.6s ease-in-out infinite;}
@keyframes signal-pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 #ed872b55}50%{opacity:.6;box-shadow:0 0 0 6px transparent}}
.contact-panel{transition:box-shadow .5s;}
.contact-panel:hover{box-shadow:0 26px 95px #ef8b2830;}
.contact-background-text{animation:giant-text 12s ease-in-out infinite;}
@keyframes giant-text{0%,100%{transform:translateX(0)}50%{transform:translateX(-24px)}}
.footer-main>a:last-child {transition:color .3s,transform .3s;}
.footer-main>a:last-child:hover{transform:translateX(3px);}

@media (max-width:1050px) {
 .hero h1{font-size:clamp(38px,4.2vw,54px)}
 .blueprint-layout{gap:35px;}
 .visual-pill{font-size:8px;padding:10px;}
}
@media (max-width:760px) {
 .nav-links a::after{bottom:-4px;}
 .nav-links.open{box-shadow:0 25px 60px #0009;}
 .menu-button{z-index:4;}
 .menu-button span{transition:transform .35s var(--ease-premium),opacity .25s;transform-origin:center;}
 .menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
 .menu-button[aria-expanded="true"] span:nth-child(2){opacity:0;}
 .menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
 .hero::before{height:390px;}
 .hero h1{font-size:clamp(34px,8.5vw,53px);white-space:normal;}
 .hero-visual{min-height:400px;}
 .eyebrow-index{font-size:8px;}
 .visual-pill-one{right:12px;top:23%;}
 .visual-pill-two{left:10px;bottom:22%;}
 .visual-pill{font-size:8px;padding:9px;}
 .scroll-cue{margin-bottom:6px;}
 .ticker .ticker-track{width:max-content;min-width:0;animation:ronve-marquee 29s linear infinite;}
 .ticker .ticker-set{gap:27px;padding-inline:14px;}
 .blueprint-layout{grid-template-columns:1fr;gap:38px;}
 .blueprint-lead h2{font-size:clamp(34px,7.7vw,44px);}
 .blueprint-lead p{font-size:13px;}
 .flow-diagram{min-height:310px;padding:23px 17px 20px;}
 .flow-items{margin:58px 0 56px;}
 .flow-icon{width:51px;height:51px;}
 .flow-item strong{font-size:12px;}
 .flow-item small{font-size:9px;}
 .flow-head,.flow-footer{font-size:8px;}
 .focus-art .focus-asterisk{animation-duration:10s;}
 .service-card:hover,html.motion-ready .service-card.is-visible:hover{transform:translateY(-3px);}
}
@media (max-width:400px) {
 .eyebrow-index{display:none;}
 .visual-pill{font-size:7px;}
 .flow-diagram{padding:18px 13px;}
 .flow-head,.flow-footer{letter-spacing:.04em;}
 .flow-item small{font-size:8px;}
 .blueprint{padding-block:65px;}
}
@media (pointer:coarse) {
 .service-card:hover,html.motion-ready .service-card.is-visible:hover{transform:none;box-shadow:none;}
 .service-card::before{display:none;}
 .visual-pill{backdrop-filter:none;}
}
@media (prefers-reduced-motion:reduce) {
 html.motion-ready [data-reveal],html.motion-ready [data-reveal="scale"]{opacity:1!important;transform:none!important;transition:none!important;}
 .ticker .ticker-track,.visual-orbit,.symbol-panel img,.symbol-halo,.satellite,.visual-pill,.focus-asterisk,.plan-circle,.scroll-cue-line,.scroll-cue>span:last-child,.contact-background-text,.flow-signal i{animation:none!important;}
 .flow-line{transform:scaleX(1)!important;transition:none!important;}
 .symbol-panel{transform:none!important;will-change:auto;}
}
