/* Dreamy Shorts v2.2 — independent banner. No selectors shared with AI Girlfriendly's original hero. */
.aigds-banner{--aigds-pink:#ff199e;--aigds-blush:#ff82d0;--aigds-purple:#c785ff;position:relative;isolation:isolate;width:100%;max-width:100%;margin:0 0 22px;overflow:hidden;box-sizing:border-box;border-radius:0;background:#100515;color:#fff;font-family:Arial,Helvetica,sans-serif;line-height:1.15;}
.aigds-banner,.aigds-banner *{box-sizing:border-box}
.aigds-banner .aigds-backdrop{position:absolute;inset:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 81% 38%,rgba(209,14,145,.26),transparent 43%),radial-gradient(ellipse at 6% 65%,rgba(128,28,148,.25),transparent 55%),linear-gradient(118deg,#06060b 0%,#210821 55%,#12061c 100%)}
.aigds-banner .aigds-backdrop:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 84px,rgba(249,57,174,.12) 85px,transparent 88px),linear-gradient(120deg,transparent 50%,rgba(255,58,173,.15) 51%,transparent 55%);opacity:.4;animation:aigds-backlights 6s ease-in-out infinite}
.aigds-banner .aigds-backdrop:after{content:"";position:absolute;inset:-20% -100%;background:linear-gradient(110deg,transparent 44%,rgba(255,110,213,.03) 47%,rgba(255,255,255,.16) 50%,rgba(255,58,186,.05) 53%,transparent 58%);transform:translateX(-48%);animation:aigds-sweep 6s ease-in-out infinite}
.aigds-banner .aigds-stars{position:absolute;inset:0;pointer-events:none;opacity:.42;background-image:radial-gradient(#ff9be2 1px,transparent 1px),radial-gradient(#a869da 1px,transparent 1px);background-size:83px 107px,147px 181px;background-position:12px 9px,64px 70px;animation:aigds-starflow 20s linear infinite}
.aigds-banner .aigds-inner{position:relative;display:grid;grid-template-columns:minmax(0,47%) minmax(0,53%);align-items:center;max-width:1480px;min-height:545px;margin:0 auto;padding:50px clamp(25px,5.5vw,92px) 36px;gap:0}
.aigds-banner .aigds-copy{position:relative;z-index:2;min-width:0;padding-right:12px}
.aigds-banner .aigds-brand{display:flex;align-items:center;gap:12px;margin:0 0 37px;color:#fa41b0;font-weight:900;font-style:italic;font-size:clamp(17px,2vw,27px);letter-spacing:-.045em;text-shadow:0 0 22px rgba(238,11,155,.45)}
.aigds-banner .aigds-brand svg{width:40px;height:40px;flex:none;overflow:visible;filter:drop-shadow(0 0 6px rgba(255,19,163,.55))}
.aigds-banner .aigds-brand span span{color:#c9a2ff}
.aigds-banner .aigds-title{font-size:clamp(45px,6.3vw,96px);line-height:.9;letter-spacing:-.07em;font-weight:1000;font-style:italic;text-transform:uppercase;margin:0;white-space:nowrap;text-shadow:0 5px 22px #120315;}
.aigds-banner .aigds-title .aigds-title-hot{display:block;color:#ff54bb;-webkit-text-fill-color:#ff54bb;text-shadow:0 0 28px rgba(255,36,161,.44)}
.aigds-banner .aigds-title .aigds-title-last{display:block;color:#fff}
.aigds-banner .aigds-subtitle{font-size:clamp(12px,1.35vw,18px);line-height:1.45;letter-spacing:.23em;font-weight:800;color:#ffc3e8;text-transform:uppercase;margin:22px 0 11px}
.aigds-banner .aigds-wave{display:block;width:min(100%,440px);height:33px;margin:7px 0 19px;overflow:visible;filter:drop-shadow(0 0 9px rgba(255,53,179,.66));}
.aigds-banner .aigds-wave path{fill:none;stroke:#ff70cb;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:700;animation:aigds-wave 6s linear infinite}
.aigds-banner .aigds-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:65px;min-width:290px;padding:17px 35px;border-radius:100px;border:2px solid #ffb4e3;background:linear-gradient(160deg,#ff70c5,#f60892 65%,#ce087c);color:#fff!important;text-decoration:none!important;font:900 clamp(22px,2.1vw,29px)/1 Arial,Helvetica,sans-serif;letter-spacing:.01em;white-space:nowrap;box-shadow:0 8px 30px rgba(255,11,146,.33),inset 0 1px 10px rgba(255,255,255,.26);text-shadow:0 2px 7px rgba(66,0,41,.45);animation:aigds-ctapulse 3s ease-in-out infinite;}
.aigds-banner .aigds-cta svg{width:22px;height:22px;fill:white;flex:none}
.aigds-banner a.aigds-cta:hover{filter:brightness(1.15);transform:translateY(-2px)}
.aigds-banner a.aigds-cta:focus-visible{outline:3px solid #fff;outline-offset:4px}
.aigds-banner .aigds-cta.aigds-cta-preview{cursor:default;opacity:.93}
.aigds-banner .aigds-scene{position:relative;z-index:1;width:117%;max-width:none;min-width:0;margin-left:-7%;height:100%;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 10px 38px rgba(247,35,159,.12))}
.aigds-banner .aigds-scene svg{width:100%;height:auto;max-height:630px;display:block;overflow:visible}
.aigds-banner .aigds-scene:before{content:"";position:absolute;inset:15% 5% 10%;border:2px solid rgba(255,21,164,.13);border-radius:50%;box-shadow:0 0 70px rgba(255,18,151,.15),inset 0 0 45px rgba(237,35,170,.07);animation:aigds-rings 6s ease-in-out infinite;pointer-events:none}
.aigds-banner .aigds-scene:after{content:"";position:absolute;inset:7% 0 14%;border-radius:50%;border:1px solid rgba(255,135,214,.14);transform:scale(.9);animation:aigds-rings 6s ease-in-out infinite reverse;pointer-events:none}
.aigds-banner .aigds-person{transform-box:fill-box;transform-origin:50% 85%}
.aigds-banner .aigds-man{animation:aigds-manmove 6s ease-in-out infinite}
.aigds-banner .aigds-girlfriend{animation:aigds-gfmove 6s ease-in-out infinite}
.aigds-banner .aigds-rival{animation:aigds-rivalmove 6s ease-in-out infinite}
.aigds-banner .aigds-head{transform-box:fill-box;transform-origin:50% 85%}
.aigds-banner .aigds-head-man{animation:aigds-manlook 6s ease-in-out infinite}
.aigds-banner .aigds-head-gf{animation:aigds-gflook 6s ease-in-out infinite}
.aigds-banner .aigds-head-rival{animation:aigds-rivallook 6s ease-in-out infinite}
.aigds-banner .aigds-rival-arm{transform-box:fill-box;transform-origin:80% 100%;animation:aigds-gesture 6s ease-in-out infinite}
.aigds-banner .aigds-mouth-open{opacity:0}
.aigds-banner .aigds-mouth-open.aigds-mouth-gf{animation:aigds-talk-gf 6s steps(1,end) infinite}
.aigds-banner .aigds-mouth-closed.aigds-mouth-gf{animation:aigds-talk-gf-closed 6s steps(1,end) infinite}
.aigds-banner .aigds-mouth-open.aigds-mouth-man{animation:aigds-talk-man 6s steps(1,end) infinite}
.aigds-banner .aigds-mouth-closed.aigds-mouth-man{animation:aigds-talk-man-closed 6s steps(1,end) infinite}
.aigds-banner .aigds-mouth-open.aigds-mouth-rival{animation:aigds-talk-rival 6s steps(1,end) infinite}
.aigds-banner .aigds-mouth-closed.aigds-mouth-rival{animation:aigds-talk-rival-closed 6s steps(1,end) infinite}
.aigds-banner .aigds-eye{transform-box:fill-box;transform-origin:center;animation:aigds-blink 6s ease-in-out infinite}
.aigds-banner .aigds-neon-heart{filter:drop-shadow(0 0 10px rgba(255,39,174,.65));animation:aigds-heart 6s ease-in-out infinite;transform-origin:51% 28%}
.aigds-banner .aigds-neon-heart-blur{pointer-events:none}
.aigds-banner .aigds-speech{opacity:0;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 6px rgba(255,20,159,.25))}
.aigds-banner .aigds-speech-1{animation:aigds-speech1 6s steps(1,end) infinite}
.aigds-banner .aigds-speech-2{animation:aigds-speech2 6s steps(1,end) infinite}
.aigds-banner .aigds-speech-3{animation:aigds-speech3 6s steps(1,end) infinite}
@keyframes aigds-backlights{0%,100%{opacity:.22}35%{opacity:.6}60%{opacity:.32}}
@keyframes aigds-sweep{0%,20%{transform:translateX(-48%)}65%,100%{transform:translateX(54%)}}
@keyframes aigds-starflow{to{background-position:95px 9px,211px 70px}}
@keyframes aigds-ctapulse{0%,100%{box-shadow:0 8px 28px rgba(255,11,146,.28),inset 0 1px 10px rgba(255,255,255,.26)}50%{box-shadow:0 6px 41px 9px rgba(255,11,146,.5),inset 0 1px 12px rgba(255,255,255,.38)}}
@keyframes aigds-wave{0%{stroke-dashoffset:700;opacity:.45}25%,75%{opacity:1}100%{stroke-dashoffset:-700;opacity:.45}}
@keyframes aigds-rings{0%,100%{transform:scale(.95);opacity:.3}50%{transform:scale(1.04);opacity:.9}}
@keyframes aigds-manmove{0%,100%{transform:translateY(0)}45%{transform:translateY(-5px)}}
@keyframes aigds-gfmove{0%,100%{transform:translateY(0) rotate(-.3deg)}37%{transform:translateY(-8px) rotate(1.5deg)}}
@keyframes aigds-rivalmove{0%,100%{transform:translateX(6px)}58%{transform:translateX(-14px)}}
@keyframes aigds-manlook{0%,28%,100%{transform:rotate(-3deg)}45%,80%{transform:rotate(4deg)}}
@keyframes aigds-gflook{0%,25%,100%{transform:rotate(2deg)}43%{transform:rotate(-3deg)}}
@keyframes aigds-rivallook{0%,43%,100%{transform:rotate(-3deg)}65%,87%{transform:rotate(4deg)}}
@keyframes aigds-gesture{0%,52%,100%{transform:rotate(0)}67%{transform:rotate(-6deg)}80%{transform:rotate(3deg)}}
@keyframes aigds-heart{0%,100%{opacity:.55}45%{opacity:1}}
@keyframes aigds-blink{0%,15%,17%,46%,48%,76%,78%,100%{transform:scaleY(1)}16%,47%,77%{transform:scaleY(.1)}}
/* Mouth swap: 0-2 seconds GF, 2-4 seconds man, 4-6 seconds rival. */
@keyframes aigds-talk-gf{0%,3%,8%,14%,21%,28%,33%,100%{opacity:0}4%,7%,15%,20%,29%,32%{opacity:1}}
@keyframes aigds-talk-gf-closed{0%,3%,8%,14%,21%,28%,33%,100%{opacity:1}4%,7%,15%,20%,29%,32%{opacity:0}}
@keyframes aigds-talk-man{0%,34%,38%,45%,51%,58%,66%,100%{opacity:0}35%,37%,46%,50%,59%,65%{opacity:1}}
@keyframes aigds-talk-man-closed{0%,34%,38%,45%,51%,58%,66%,100%{opacity:1}35%,37%,46%,50%,59%,65%{opacity:0}}
@keyframes aigds-talk-rival{0%,67%,71%,76%,83%,89%,96%,100%{opacity:0}68%,70%,77%,82%,90%,95%{opacity:1}}
@keyframes aigds-talk-rival-closed{0%,67%,71%,76%,83%,89%,96%,100%{opacity:1}68%,70%,77%,82%,90%,95%{opacity:0}}
@keyframes aigds-speech1{0%,33%{opacity:1}34%,100%{opacity:0}}
@keyframes aigds-speech2{0%,33%{opacity:0}34%,66%{opacity:1}67%,100%{opacity:0}}
@keyframes aigds-speech3{0%,66%{opacity:0}67%,96%{opacity:1}97%,100%{opacity:0}}
@media (max-width:1200px) and (min-width:1025px){.aigds-banner .aigds-inner{min-height:495px;padding:35px 37px}.aigds-banner .aigds-title{font-size:clamp(50px,6.4vw,79px)}.aigds-banner .aigds-brand{margin-bottom:30px}}
/* Tablet and mobile share a vertically arranged presentation, as requested. */
@media (max-width:1024px){
 .aigds-banner .aigds-inner{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:23px clamp(16px,4vw,38px) 32px;gap:0;max-width:720px}
 .aigds-banner .aigds-copy{display:contents}
 .aigds-banner .aigds-brand{order:0;position:relative;z-index:2;margin:0 0 5px;font-size:clamp(19px,3.4vw,27px)}
 .aigds-banner .aigds-brand svg{width:35px;height:35px}
 .aigds-banner .aigds-scene{order:1;width:100%;height:auto;margin:-15px 0 -40px;align-self:center;max-width:670px}
 .aigds-banner .aigds-scene svg{width:100%;max-height:430px}
 .aigds-banner .aigds-title{order:2;position:relative;z-index:3;font-size:clamp(52px,11vw,98px);text-align:center;white-space:normal;margin:0;text-shadow:0 4px 18px #100515}
 .aigds-banner .aigds-subtitle{order:3;font-size:clamp(12px,2.1vw,17px);text-align:center;margin:13px 0 5px}
 .aigds-banner .aigds-wave{order:5;align-self:center;width:min(82%,420px);height:25px;margin:0 0 16px}
 .aigds-banner .aigds-cta{order:6;width:100%;max-width:580px;min-height:65px;min-width:0;align-self:center;font-size:clamp(24px,4vw,33px)}
}
@media (max-width:480px){
 .aigds-banner .aigds-inner{padding:16px 14px 22px}
 .aigds-banner .aigds-brand{font-size:20px}
 .aigds-banner .aigds-scene{width:113%;margin:-1px -6.5% -23px;align-self:center}
 .aigds-banner .aigds-scene svg{max-height:none}
 .aigds-banner .aigds-title{font-size:clamp(47px,12.5vw,65px);letter-spacing:-.073em}
 .aigds-banner .aigds-subtitle{font-size:11px;letter-spacing:.13em}
 .aigds-banner .aigds-wave{width:85%;margin:0 0 12px}
 .aigds-banner .aigds-cta{min-height:61px;padding:12px 20px;font-size:25px}
}
/* Motion is paused while offscreen or tab hidden. Reduced-motion visitors get a still banner. */
.aigds-banner.aigds-paused *, .aigds-banner.aigds-paused .aigds-backdrop:before,.aigds-banner.aigds-paused .aigds-backdrop:after{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
 .aigds-banner *, .aigds-banner .aigds-backdrop:before,.aigds-banner .aigds-backdrop:after{animation:none!important;transition:none!important}
 .aigds-banner .aigds-speech-1{opacity:1}
 .aigds-banner .aigds-speech-2,.aigds-banner .aigds-speech-3{opacity:0}
 .aigds-banner .aigds-mouth-open{opacity:0!important}
 .aigds-banner .aigds-mouth-closed{opacity:1!important}
}

/* v2.2 — On Shorts archive + Shorts articles only, reserve the original
 * #sc-hero node for its existing header-scroll JS while taking it out of
 * document flow and hiding it from view/keyboard navigation. No CSS affecting
 * the old hero anywhere else. Its measured min-height remains available. */
body.aigds-dreamy-target #sc-hero {
  position:absolute!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* v2.3.0: Desktop-only removal of the redundant in-banner logo.
   The site header logo is untouched. Tablet/mobile layouts stay exactly as v2.2.0. */
@media (min-width:1025px){
  .aigds-banner .aigds-brand{display:none;}
}
