/* Rookera / living signals. Visual layers never change document flow. */
/* The ongoing promise: three connected accents, one continuous commitment. */
.idea-promise{min-width:0}
.idea-promise .promise-heading{display:block;margin-top:.22em;color:#b6caff;font-size:.88em;line-height:1.35;letter-spacing:-.035em}
.promise-heading>span{display:inline-block;position:relative;padding-bottom:.12em}
.promise-heading>span:nth-child(2){color:#b8b9ff}
.promise-heading>span:nth-child(3){color:#c2aaff}
.promise-heading>span::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,#59d8ff99,#8566ff88);transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.idea-promise.has-entered .promise-heading>span::after{transform:scaleX(1)}
.promise-heading>span:nth-child(2)::after{transition-delay:.16s}
.promise-heading>span:nth-child(3)::after{transition-delay:.32s}
.idea-promise.signal-surface::before{inset:-26px;border-radius:18px;background:radial-gradient(420px circle at var(--surface-x,50%) var(--surface-y,50%),#498aff14,transparent 75%)}
.idea-copy.idea-promise>.body-large{font-size:1.0625rem!important;line-height:1.85;max-width:650px}
.idea-copy.idea-promise>.promise-close{position:relative;margin-top:28px;padding:20px 0 0;color:#e0e8fb;font-size:1.0625rem!important;line-height:1.7;max-width:650px}
.promise-close::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,#59d8ff80,#8566ff65,transparent)}
.promise-close>span{display:block;color:#b7b6e7}
@media(max-width:600px){.idea-promise .promise-heading{font-size:.85em}.idea-copy.idea-promise>.body-large,.idea-copy.idea-promise>.promise-close{font-size:1rem!important}.idea-promise.signal-surface::before{inset:0}}
body.motion-off .promise-heading>span::after{transition:none!important;transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){.promise-heading>span::after{transition:none!important;transform:scaleX(1)}}
@media print{.idea-promise .promise-heading,.promise-heading>span,.promise-close>span{color:#333!important}}
/* Phone controls stay easy to tap and never sit on top of reading content. */
@media(max-width:700px){
  .idea-section .section-side{display:flex;align-items:center;justify-content:space-between;gap:16px}
  .idea-section .section-side .eyebrow{margin-bottom:0}
  .idea-section .orbit-emblem{display:grid;width:78px;height:72px;margin:0;flex-shrink:0}
  .idea-section .orbit-emblem::before{inset:4px -2px}
  .idea-section .idea-margin-note{display:none}
  .combined-product-card.is-inview .product-art::before{opacity:.32}
  .header-actions .menu-toggle{width:44px;height:44px;flex-shrink:0}
  .header-actions .menu-toggle span{left:12px}
  .contact-modal .modal-close{width:44px;height:44px}
  .mobile-nav .button{padding:12px 16px;min-height:48px;align-items:center}
  .mobile-nav{max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
  .rk-replay{position:relative;bottom:auto;right:auto;display:flex;width:fit-content;margin:16px auto 24px;min-height:44px;padding:10px 18px}
}
.product-art{perspective:700px;isolation:isolate}
.product-art::before{width:150px;height:100px;opacity:.18;transition:opacity .45s}
.product-art .product-sigil{width:224px;height:168px;max-width:100%;overflow:visible;filter:drop-shadow(0 8px 15px #0005);transform:translate3d(var(--icon-x,0px),var(--icon-y,0px),0) rotateX(var(--icon-rx,0deg)) rotateY(var(--icon-ry,0deg));transition:transform .38s ease,filter .4s;pointer-events:none}
.combined-product-card:hover .product-art::before{opacity:.38}
.combined-product-card:hover .product-sigil{filter:drop-shadow(0 8px 20px #0a63ff38)}
.product-sigil .icon-core{animation:sigil-float 6s ease-in-out infinite;animation-play-state:paused}
.product-sigil .icon-trace{animation:signal-travel 9s linear infinite;animation-play-state:paused}
.product-sigil .icon-radar{transform-origin:120px 83px;animation:radar-turn 12s linear infinite;animation-play-state:paused}
.product-sigil .icon-beacon,.product-sigil .icon-sparks{animation:signal-breathe 4s ease-in-out infinite;animation-play-state:paused}
.combined-product-card.is-inview .product-sigil *{animation-play-state:running}
.combined-product-card:nth-child(2n) .icon-core{animation-delay:-2s}
.combined-product-card:nth-child(3n) .icon-core{animation-delay:-4s}
.combined-product-card:focus-within{border-color:var(--card-light);box-shadow:0 0 0 1px color-mix(in srgb,var(--card-hue) 35%,transparent),0 16px 42px #0004}
.combined-product-card .card-link:focus-visible{outline:2px solid var(--card-light);outline-offset:7px;border-radius:2px}

/* A quiet traveling highlight ties the ribbon to the rest of the page. */
.possibility-strip{position:relative;overflow:hidden}
.possibility-strip::after{content:"";position:absolute;top:0;bottom:0;width:25%;left:-30%;pointer-events:none;background:linear-gradient(100deg,transparent,#59d8ff0a,#8566ff16,transparent);transform:skewX(-25deg);animation:ribbon-signal 12s ease-in-out infinite;animation-play-state:paused}
.possibility-strip.is-inview::after{animation-play-state:running}
.strip-inner{position:relative;z-index:1}
.strip-inner>span{transition:color .3s,text-shadow .3s}
.strip-inner>span:hover{color:#c6f3ff;text-shadow:0 0 20px #59d8ff88}
.strip-inner i{animation:signal-breathe 5s ease-in-out infinite;animation-play-state:paused}
.possibility-strip.is-inview .strip-inner i{animation-play-state:running}
.strip-inner i:nth-of-type(2n){animation-delay:-2s}

/* Draw a fine band of light into each section as it enters view. */
.signal-section{position:relative}
.signal-section::after{content:"";position:absolute;pointer-events:none;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent 5%,#0a63ff70 25%,#72e7ffb0 48%,#8566ff80 72%,transparent 95%);transform:scaleX(.05);opacity:0;transform-origin:center;transition:transform 1.8s cubic-bezier(.2,.7,.2,1),opacity 1.2s}
.signal-section.has-entered::after{transform:scaleX(1);opacity:.75}
.idea-section .orbit-emblem::before{content:"";position:absolute;inset:16px -10px;border:1px solid #497dff30;border-radius:50%;transform:rotate(-24deg);box-shadow:0 0 40px #0a63ff12,inset 0 0 35px #0a63ff0b;pointer-events:none}
.idea-section .orbit-emblem::after{content:"";position:absolute;width:7px;height:7px;left:50%;top:50%;border-radius:50%;background:#8cecff;box-shadow:0 0 8px #59d8ff,0 0 22px #0a63ff;transform:rotate(-25deg) translateX(125px);animation:brand-satellite 18s linear infinite;animation-play-state:paused;pointer-events:none}
.idea-section.is-inview .orbit-emblem::after{animation-play-state:running}
.idea-section .orbit-emblem img{transform:translateY(var(--scene-drift,0px));transition:transform .18s linear;filter:drop-shadow(0 10px 30px #0a63ff20)}
.idea-principles span{transition:color .3s,text-shadow .3s}
.idea-principles span:hover{color:#c2efff;text-shadow:0 0 18px #59d8ff55}

/* Cursor-lit surfaces carry the card language down the homepage. */
.signal-surface{position:relative;isolation:isolate}
.signal-surface::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(380px circle at var(--surface-x,50%) var(--surface-y,50%),#498aff18,transparent 75%);opacity:0;transition:opacity .45s}
.signal-surface:hover::before,.signal-surface:focus-within::before{opacity:1}
.process-grid article{position:relative}
.process-grid article::after{content:"";position:absolute;top:-1px;left:0;height:2px;width:100%;background:linear-gradient(90deg,#59d8ff,#0a63ff,#8566ff00);transform:scaleX(0);transform-origin:left;transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}
.process-grid article.has-entered::after{transform:scaleX(1)}
.process-grid article:nth-child(2)::after{transition-delay:.18s}
.process-grid article:nth-child(3)::after{transition-delay:.36s}
.lab-visual>img{transform:translateY(var(--scene-drift,0px)) scale(1.045);transition:transform .2s linear}
.hero-visual>img{transform:translateY(var(--scene-drift,0px)) scale(1.025);transition:transform .2s linear}
.contact-section.is-inview .contact-orbits i{animation:orbit-breathe 9s ease-in-out infinite}
.contact-section.is-inview .contact-orbits i:nth-child(2){animation-delay:-3s}
.contact-section.is-inview .contact-orbits i:nth-child(3){animation-delay:-6s}
.button-primary{transition:box-shadow .35s,background .35s}
.button-primary:hover{box-shadow:inset 0 1px 0 #c4e2ff66,0 0 28px #0a63ff55,0 8px 40px #8566ff30}
.scroll-progress{box-shadow:0 0 12px #59d8ff70}

@keyframes sigil-float{0%,100%{transform:translateY(2px)}50%{transform:translateY(-4px)}}
@keyframes signal-travel{to{stroke-dashoffset:-100}}
@keyframes radar-turn{to{transform:rotate(360deg)}}
@keyframes signal-breathe{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes ribbon-signal{0%,18%{left:-30%;opacity:0}30%{opacity:1}75%,100%{left:110%;opacity:0}}
@keyframes brand-satellite{from{transform:rotate(-25deg) translateX(125px) scale(.75)}50%{transform:rotate(155deg) translateX(125px) scale(1)}to{transform:rotate(335deg) translateX(125px) scale(.75)}}
@keyframes orbit-breathe{0%,100%{opacity:.4}50%{opacity:1}}
@media(max-width:700px){.product-art .product-sigil{width:200px;height:150px}.idea-section .orbit-emblem::after{display:none}.hero-visual>img,.lab-visual>img,.idea-section .orbit-emblem img{transform:none}.signal-surface::before{display:none}}
@media(max-width:700px){.possibility-strip .strip-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:76px;gap:10px 8px;padding-top:14px;padding-bottom:14px;overflow:visible;text-align:center}.possibility-strip .strip-inner>span{display:block;font-size:.625rem!important;letter-spacing:.1em}.possibility-strip .strip-inner i{display:none}}
html.signal-paused .product-sigil *,html.signal-paused .strip-inner i,html.signal-paused .possibility-strip::after,html.signal-paused .orbit-emblem::after,html.signal-paused .contact-orbits i{animation-play-state:paused!important}
body.motion-off .product-sigil,body.motion-off .hero-visual>img,body.motion-off .lab-visual>img,body.motion-off .orbit-emblem img{transform:none!important;transition:none!important}
body.motion-off .signal-section::after,body.motion-off .process-grid article::after{transition:none!important}
body.motion-off .signal-surface::before{display:none}
@media(prefers-reduced-motion:reduce){.product-sigil *,.strip-inner i,.possibility-strip::after,.orbit-emblem::after,.contact-orbits i{animation:none!important}.product-art .product-sigil,.hero-visual>img,.lab-visual>img,.idea-section .orbit-emblem img{transform:none!important;transition:none!important}.signal-section::after,.process-grid article::after{transition:none!important}.signal-surface::before{display:none}}
