/* Taymo Digital 5.0 — visual motion layer; existing layout remains intact */
:root{--cinematic-blue:#4A9EFF}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{overflow-x:clip}
.cinematic-aura{pointer-events:none;position:fixed;z-index:20;left:-180px;top:-180px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(74,158,255,.075),rgba(74,158,255,.025) 32%,transparent 70%);mix-blend-mode:screen;will-change:transform}
.cinematic-wipe{position:fixed;inset:0;z-index:99998;background:#05070a;display:grid;place-items:center;clip-path:circle(0% at 50% 50%);opacity:0;pointer-events:none;transition:clip-path .7s cubic-bezier(.7,0,.2,1),opacity .08s .6s}
.cinematic-wipe.is-active{opacity:1;clip-path:circle(150% at 50% 50%);pointer-events:all;transition:clip-path .7s cubic-bezier(.7,0,.2,1),opacity .05s}
.cinematic-wipe-core{width:120px;height:120px;border-radius:50%;border:1px solid rgba(74,158,255,.45);box-shadow:0 0 100px rgba(74,158,255,.15),inset 0 0 65px rgba(74,158,255,.09);position:absolute;animation:cinematic-core 3s linear infinite}
.cinematic-wipe-label{position:relative;color:#f6f7f9;font-weight:700;font-size:13px;letter-spacing:.2em;opacity:0;transition:opacity .3s .2s}
.cinematic-wipe-label span{color:var(--cinematic-blue)}.cinematic-wipe.is-active .cinematic-wipe-label{opacity:1}
@keyframes cinematic-core{to{transform:rotate(360deg)}}
/* Landing transition: radial light catches the hero as the entrance recedes. */
body.cinematic-entered .v3-hero:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 44%,rgba(74,158,255,.20),transparent 55%);animation:cinematic-hero-glow 1.7s ease-out both}
@keyframes cinematic-hero-glow{0%{opacity:0;transform:scale(.65)}35%{opacity:1}100%{opacity:0;transform:scale(1.3)}}
.cinematic-section{--cinematic-edge:0%;position:relative}
.cinematic-section:before{content:"";position:absolute;top:0;left:0;width:var(--cinematic-edge);height:1px;background:linear-gradient(90deg,transparent,rgba(74,158,255,.36),rgba(224,234,245,.32),transparent);z-index:4;pointer-events:none}
.v3-work-grid article .v3-img{overflow:hidden}.v3-work-grid article img{will-change:auto}
.v3-phone,.v3-laptop{transform-style:preserve-3d;backface-visibility:hidden}
.v3-steps.cinematic-steps{position:relative}
.cinematic-progress-line{display:none;position:absolute;top:0;left:0;width:100%;height:2px;transform-origin:left;background:linear-gradient(90deg,rgba(74,158,255,.1),#4A9EFF,rgba(185,218,255,.8));box-shadow:0 0 16px rgba(74,158,255,.42);pointer-events:none}
@media(min-width:800px){.cinematic-progress-line{display:block}.v3-work-grid article:hover img{filter:contrast(1.04)}.v3-work-grid article{transform-style:preserve-3d}}
.cinematic-inquiry-item{opacity:0;transform:translateY(22px);filter:blur(5px)}.cinematic-inquiry-ready .cinematic-inquiry-item{opacity:1;transform:translateY(0);filter:blur(0);transition:opacity .8s ease,transform .85s cubic-bezier(.16,1,.3,1),filter .85s ease;transition-delay:calc(var(--ci,0)*45ms)}
.start-form input:focus,.start-form textarea:focus,.start-form select:focus{border-color:var(--cinematic-blue)!important;box-shadow:0 0 0 2px rgba(74,158,255,.13);transition:border-color .2s,box-shadow .2s}
@media(max-width:799px){.cinematic-aura{display:none}.cinematic-section:before{opacity:.6}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cinematic-aura,.cinematic-wipe,.cinematic-section:before{display:none!important}.cinematic-inquiry-item{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}

/* 5.1: reduce sensory load and let native mobile scrolling stay fluid. */
@media(max-width:799px), (hover:none), (pointer:coarse){
 .cinematic-section:before{display:none}
 .v3-work-grid article,.v3-work-grid article img,.v3-phone,.v3-laptop,.v3-about-photo img{will-change:auto!important}
 .v3-img img{transition:transform .25s ease}
 .v3-orbit-rotator{animation-duration:32s}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* 5.2 — quiet, tactile entrance; gallery interaction for touch screens. */
.taymo-entrance-brand{animation:taymo-wordmark-in 1.3s .2s cubic-bezier(.16,1,.3,1) both}
@keyframes taymo-wordmark-in{from{opacity:0;filter:blur(7px);transform:translate(-50%,13px);letter-spacing:.54em}to{opacity:1;filter:blur(0);transform:translate(-50%,0);letter-spacing:.38em}}
.taymo-entrance-brand span{color:#4A9EFF!important}
.taymo-ambient{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.taymo-ambient i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#91c5ff;box-shadow:0 0 9px 2px rgba(74,158,255,.52),0 0 25px rgba(74,158,255,.24);opacity:0;animation:taymo-twinkle var(--dur) var(--delay) ease-in-out infinite}
@keyframes taymo-twinkle{0%,100%{opacity:0;transform:scale(.55)}45%{opacity:.58;transform:scale(1)}60%{opacity:.26}}
.taymo-entrance-pointer{position:absolute;left:0;top:0;width:110px;height:110px;z-index:2;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(74,158,255,.20),rgba(74,158,255,.055) 26%,transparent 68%);transform:translate3d(-200px,-200px,0);transition:opacity .2s;opacity:0}
@media(hover:hover) and (pointer:fine){.taymo-entrance:hover .taymo-entrance-pointer{opacity:1}}
.v3-work-grid article .v3-img img{transition:transform .55s cubic-bezier(.2,.75,.2,1),filter .55s ease}
.v3-work-grid article:is(:hover,:focus-within,.taymo-photo-active) .v3-img img{transform:scale(1.065)!important;filter:contrast(1.045)}
@media(hover:none),(pointer:coarse){.v3-work-grid article .v3-img{cursor:pointer;touch-action:pan-y}.v3-work-grid article .v3-img img{transition-duration:.42s}}
@media(max-width:700px){.taymo-entrance-brand{animation-name:taymo-wordmark-in-mobile}@keyframes taymo-wordmark-in-mobile{from{opacity:0;filter:blur(4px);transform:translate(-50%,9px)}to{opacity:1;filter:blur(0);transform:translate(-50%,0)}}.taymo-ambient i{box-shadow:0 0 8px rgba(74,158,255,.5)}}
@media(prefers-reduced-motion:reduce){.taymo-entrance-brand{animation:none!important}.taymo-ambient,.taymo-entrance-pointer{display:none!important}.v3-work-grid article img{transition:none!important}}

/* 5.3: screen-wide ambient constellation, never a competing focal point. */
.taymo-ambient{z-index:2;isolation:isolate}
.taymo-ambient i{background:#b7d8ff;box-shadow:0 0 7px 1px rgba(74,158,255,.48),0 0 19px rgba(74,158,255,.16)}
@keyframes taymo-twinkle{0%,100%{opacity:0;transform:scale(.35)}38%{opacity:.46;transform:scale(1)}53%{opacity:.21;transform:scale(.8)}70%{opacity:0;transform:scale(.5)}}
.taymo-entrance-pointer{width:110px;height:110px;background:radial-gradient(circle,rgba(74,158,255,.13),rgba(74,158,255,.038) 30%,transparent 70%)}
.v3-about-photo{overflow:hidden}
.v3-about-photo img{display:block;transform-origin:center center}
/* Tap zoom remains a voluntary interaction on phones, not a scroll-triggered reveal. */
@media(hover:none),(pointer:coarse){.v3-work-grid article .v3-img{position:relative;-webkit-tap-highlight-color:transparent}.v3-work-grid article .v3-img:focus-visible{outline:2px solid #4A9EFF;outline-offset:3px}}
@media(prefers-reduced-motion:reduce){.taymo-ambient{display:none!important}.v3-about-photo img{transform:none!important}}

/* 5.4 — slow, theatrical entrance wordmark; sphere remains the centerpiece. */
.taymo-entrance-brand{
  animation:taymo-wordmark-cinematic 3.5s .65s cubic-bezier(.22,1,.36,1) both;
  will-change:opacity,transform,filter;
}
@keyframes taymo-wordmark-cinematic{
  0%,12%{opacity:0;filter:blur(9px);transform:translate(-50%,19px) scale(.965);letter-spacing:.49em}
  48%{opacity:.35;filter:blur(5px);transform:translate(-50%,10px) scale(.985)}
  100%{opacity:1;filter:blur(0);transform:translate(-50%,0) scale(1);letter-spacing:.38em}
}
@media(max-width:700px){
 .taymo-entrance-brand{animation-name:taymo-wordmark-cinematic-mobile}
 @keyframes taymo-wordmark-cinematic-mobile{
  0%,12%{opacity:0;filter:blur(5px);transform:translate(-50%,13px)}
  55%{opacity:.4;filter:blur(2px);transform:translate(-50%,5px)}
  100%{opacity:1;filter:blur(0);transform:translate(-50%,0)}
 }
}
@media(prefers-reduced-motion:reduce){.taymo-entrance-brand{animation:none!important;will-change:auto}}

/* 5.5 — cinematic atmospheric glints on all content pages.
   Entrance retains its own brighter full-screen constellation. */
.taymo-site-ambience{position:fixed;inset:0;z-index:30;overflow:hidden;pointer-events:none;user-select:none;contain:strict}
.taymo-site-ambience i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#a8cfff;box-shadow:0 0 5px rgba(74,158,255,.28),0 0 12px rgba(74,158,255,.10);opacity:0;animation:taymo-site-glimmer var(--dur) var(--delay) ease-in-out infinite}
@keyframes taymo-site-glimmer{0%,100%{opacity:0;transform:scale(.75)}42%{opacity:.23;transform:scale(1)}62%{opacity:.10;transform:scale(.9)}75%{opacity:0;transform:scale(.75)}}
/* No double constellation behind the entrance. */
body.taymo-entrance-active .taymo-site-ambience{visibility:hidden}
@media(max-width:700px){.taymo-site-ambience i:nth-child(2n){display:none}.taymo-site-ambience i{box-shadow:0 0 4px rgba(74,158,255,.2)}}
@media(prefers-reduced-motion:reduce){.taymo-site-ambience{display:none!important}}

/* 5.6 — a confident, balanced title reveal and visible-but-quiet ambience. */
.taymo-entrance-brand{
  animation:taymo-wordmark-balanced 2.05s .30s cubic-bezier(.22,1,.36,1) both;
}
@keyframes taymo-wordmark-balanced{
  0%{opacity:0;filter:blur(5px);transform:translate(-50%,10px);letter-spacing:.44em}
  35%{opacity:.52;filter:blur(2px);transform:translate(-50%,5px);letter-spacing:.40em}
  100%{opacity:1;filter:blur(0);transform:translate(-50%,0);letter-spacing:.38em}
}
@media(max-width:700px){
 .taymo-entrance-brand{animation-name:taymo-wordmark-balanced-mobile;animation-duration:1.8s}
 @keyframes taymo-wordmark-balanced-mobile{
  0%{opacity:0;filter:blur(3px);transform:translate(-50%,7px)}
  45%{opacity:.62;filter:blur(1px);transform:translate(-50%,3px)}
  100%{opacity:1;filter:blur(0);transform:translate(-50%,0)}
 }
}
.taymo-site-ambience i{
  background:#b9dcff;
  box-shadow:0 0 7px rgba(74,158,255,.48),0 0 17px rgba(74,158,255,.22);
}
@keyframes taymo-site-glimmer{
  0%,100%{opacity:0;transform:scale(.72)}
  38%{opacity:.56;transform:scale(1)}
  60%{opacity:.28;transform:scale(.92)}
  78%{opacity:0;transform:scale(.75)}
}
@media(max-width:700px){
 .taymo-site-ambience i{box-shadow:0 0 6px rgba(74,158,255,.42),0 0 12px rgba(74,158,255,.16)}
}
@media(prefers-reduced-motion:reduce){
 .taymo-entrance-brand{animation:none!important;opacity:1!important;filter:none!important}
 .taymo-site-ambience{display:none!important}
}

/* 5.7 — slightly deeper atmospheric presence on content pages only.
   Entrance (including sphere, title, sparkles) is untouched. */
body:not(.taymo-entrance-active) .taymo-site-ambience i {
  background:#c5e3ff;
  box-shadow:0 0 8px rgba(74,158,255,.56),0 0 19px rgba(74,158,255,.29);
  animation-name:taymo-site-glimmer-content;
}
@keyframes taymo-site-glimmer-content {
  0%,100% {opacity:0;transform:scale(.72)}
  38% {opacity:.69;transform:scale(1.08)}
  60% {opacity:.37;transform:scale(.96)}
  78% {opacity:0;transform:scale(.75)}
}
@media(max-width:700px) {
  body:not(.taymo-entrance-active) .taymo-site-ambience i {
    box-shadow:0 0 7px rgba(74,158,255,.50),0 0 15px rgba(74,158,255,.22);
  }
}
@media(prefers-reduced-motion:reduce) {
  .taymo-site-ambience {display:none!important}
}


/* Cinematic ENTER transition — only plays after clicking ENTER.
   The brighter sphere and the entrance's resting appearance are unchanged. */
.taymo-entrance{overflow:hidden}
.taymo-entrance::after{
 content:"";position:absolute;inset:-15%;z-index:2;pointer-events:none;
 background:radial-gradient(circle at 50% 46%,rgba(196,224,255,.22) 0%,rgba(74,158,255,.13) 16%,rgba(74,158,255,.035) 37%,transparent 63%);
 opacity:0;transform:scale(.55);filter:blur(14px);
}
.taymo-entrance.taymo-entrance-leaving{
 transition:opacity 1.15s .28s cubic-bezier(.3,.6,.3,1),visibility 1.55s;
}
.taymo-entrance.taymo-entrance-leaving #taymo-particles{
 animation:taymo-enter-sphere-surge 1.45s cubic-bezier(.19,1,.25,1) both;
 transform-origin:50% 46%;
}
.taymo-entrance.taymo-entrance-leaving::after{
 animation:taymo-enter-light-wave 1.4s cubic-bezier(.16,1,.3,1) both;
}
.taymo-entrance.taymo-entrance-leaving .taymo-entrance-brand,
.taymo-entrance.taymo-entrance-leaving .taymo-entrance-actions{
 animation:taymo-enter-type-exit .55s ease-in both;
}
@keyframes taymo-enter-sphere-surge{
 0%{transform:scale(1);filter:brightness(1)}
 43%{transform:scale(1.19);filter:brightness(1.22)}
 100%{transform:scale(1.72);filter:brightness(1.38)}
}
@keyframes taymo-enter-light-wave{
 0%{opacity:0;transform:scale(.48);filter:blur(14px)}
 34%{opacity:.9;transform:scale(1);filter:blur(8px)}
 75%{opacity:.56;transform:scale(1.55);filter:blur(20px)}
 100%{opacity:0;transform:scale(2);filter:blur(28px)}
}
@keyframes taymo-enter-type-exit{
 to{opacity:0;filter:blur(3px);transform:translateY(-7px)}
}
body.cinematic-entered .v3-hero{animation:taymo-enter-hero-arrival 1.45s cubic-bezier(.16,1,.3,1) both}
@keyframes taymo-enter-hero-arrival{
 from{filter:brightness(.68);transform:scale(1.022)}
 to{filter:brightness(1);transform:scale(1)}
}
@media(max-width:700px){
 .taymo-entrance.taymo-entrance-leaving #taymo-particles{animation-name:taymo-enter-sphere-surge-mobile}
 @keyframes taymo-enter-sphere-surge-mobile{
  0%{transform:scale(1);filter:brightness(1)}
  100%{transform:scale(1.32);filter:brightness(1.18)}
 }
}
@media(prefers-reduced-motion:reduce){
 .taymo-entrance.taymo-entrance-leaving #taymo-particles,
 .taymo-entrance.taymo-entrance-leaving::after,
 .taymo-entrance.taymo-entrance-leaving .taymo-entrance-brand,
 .taymo-entrance.taymo-entrance-leaving .taymo-entrance-actions,
 body.cinematic-entered .v3-hero{animation:none!important}
 .taymo-entrance.taymo-entrance-leaving{transition:none!important}
}

/* Shared inquiry burst: same entrance light-wave animation, launched from each CTA. */
.taymo-inquiry-portal{position:fixed;inset:0;z-index:99999;pointer-events:none;opacity:0;overflow:hidden;background:radial-gradient(circle at var(--portal-x,50%) var(--portal-y,50%),rgba(74,158,255,.32),rgba(8,11,17,.05) 25%,#080b11 75%)}
.taymo-inquiry-portal:before{content:"";position:absolute;left:var(--portal-x,50%);top:var(--portal-y,50%);width:38vmax;height:38vmax;border-radius:50%;transform:translate(-50%,-50%) scale(.04);background:radial-gradient(circle,rgba(230,244,255,.98) 0%,rgba(74,158,255,.9) 8%,rgba(74,158,255,.35) 35%,transparent 69%);filter:blur(12px)}
.taymo-inquiry-portal:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--portal-x,50%) var(--portal-y,50%),rgba(240,248,255,.75),rgba(74,158,255,.25) 17%,transparent 64%);opacity:0}
body.taymo-inquiry-launching .taymo-inquiry-portal{opacity:1;animation:taymo-faq-portal-backdrop 1.35s ease-out both}
body.taymo-inquiry-launching .taymo-inquiry-portal:before{animation:taymo-enter-light-wave 1.4s cubic-bezier(.16,1,.3,1) both}
body.taymo-inquiry-launching .taymo-inquiry-portal:after{animation:taymo-faq-flash 1.35s ease-out both}
@keyframes taymo-faq-portal-backdrop{0%{opacity:0}15%,100%{opacity:1}}
@keyframes taymo-faq-flash{0%,8%{opacity:0}36%{opacity:1}100%{opacity:.1}}
@media(prefers-reduced-motion:reduce){body.taymo-inquiry-launching .taymo-inquiry-portal,body.taymo-inquiry-launching .taymo-inquiry-portal:before,body.taymo-inquiry-launching .taymo-inquiry-portal:after{animation:none}}
.v3-contact .taymo-build-arrow{filter:drop-shadow(0 0 5px rgba(74,158,255,.35));transition:filter .3s ease}
.v3-contact>a:hover .taymo-build-arrow,.v3-contact>a:focus-visible .taymo-build-arrow{filter:drop-shadow(0 0 14px rgba(74,158,255,.85))}

/* 5.8.6: Visible, click-origin cinematic inquiry burst. Keeps the approved page layout intact. */
.taymo-inquiry-portal{background:transparent!important;opacity:0;visibility:hidden;isolation:isolate;contain:paint}
.taymo-inquiry-portal:before{content:"";position:absolute;left:var(--portal-x,50%);top:var(--portal-y,50%);width:110vmax;height:110vmax;border-radius:50%;transform:translate(-50%,-50%) scale(.015);background:radial-gradient(circle,rgba(250,253,255,1) 0%,rgba(186,220,255,.98) 7%,rgba(74,158,255,.95) 17%,rgba(74,158,255,.53) 30%,rgba(15,34,65,.72) 53%,rgba(8,11,17,.96) 74%);filter:none;opacity:0;will-change:transform,opacity;box-shadow:0 0 85px 20px rgba(74,158,255,.7)}
.taymo-inquiry-portal:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--portal-x,50%) var(--portal-y,50%),rgba(255,255,255,.97) 0%,rgba(74,158,255,.72) 13%,rgba(74,158,255,.14) 32%,transparent 65%);opacity:0;will-change:opacity}
body.taymo-inquiry-launching .taymo-inquiry-portal{visibility:visible;opacity:1;animation:none!important}
body.taymo-inquiry-launching .taymo-inquiry-portal:before{animation:taymo-inquiry-boom 1.45s cubic-bezier(.2,.7,.16,1) both!important}
body.taymo-inquiry-launching .taymo-inquiry-portal:after{animation:taymo-inquiry-afterglow 1.45s ease-out both!important}
@keyframes taymo-inquiry-boom{0%{opacity:0;transform:translate(-50%,-50%) scale(.015)}9%{opacity:1}34%{opacity:1;transform:translate(-50%,-50%) scale(.34)}72%{opacity:1;transform:translate(-50%,-50%) scale(2.1)}100%{opacity:1;transform:translate(-50%,-50%) scale(2.7)}}
@keyframes taymo-inquiry-afterglow{0%,8%{opacity:0}26%{opacity:.95}60%{opacity:.34}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){body.taymo-inquiry-launching .taymo-inquiry-portal{display:none!important}body.taymo-inquiry-launching .taymo-inquiry-portal:before,body.taymo-inquiry-launching .taymo-inquiry-portal:after{animation:none!important}}
