/* GREENSHI 1.1.0: visual upgrade over the existing layout and controls. */
:root{--gold:#d7ad3e;--ink:#063e2b;--green:#00794d}
body{
  background:radial-gradient(ellipse at 15% 5%,#e4ffbe 0,transparent 45%),
    radial-gradient(ellipse at 90% 85%,#e6ffd3 0,transparent 48%),
    linear-gradient(135deg,#35c57c,#07865c 55%,#b1ed88);
}
.stage{
  background:radial-gradient(ellipse at 0% 25%,#faffdf 0,transparent 45%),
    radial-gradient(ellipse at 100% 70%,#e9ffae 0,transparent 42%),
    linear-gradient(145deg,#c8ffd8,#54d9a0 48%,#d6ffda);
}
.site-header{
  background:linear-gradient(135deg,#fff 35%,#f2fff5);
  border:1px solid #fff;
  box-shadow:0 2px 0 #ffffffb3,inset 0 0 0 1px #d4e9b7,0 5px 16px #0a86501a;
}
.brand strong{color:#071b12;text-shadow:none}
.brand small{color:#23764f;font-weight:500}
.brand img{filter:none;box-shadow:0 0 0 1px #53b995,0 2px 5px #17794420}
.gold-button{border-color:#d5a83c;box-shadow:0 0 0 2px #fff9,0 3px 8px #a47e2a30}
.gold-button:hover{box-shadow:0 0 0 2px #fff,0 3px 14px #e9ba4680}
.login{background:linear-gradient(#fff,#fffdf2);color:#122719}
.hero{
  background:radial-gradient(ellipse at 16% 15%,#fff 0,transparent 56%),
    radial-gradient(ellipse at 82% 50%,#46d7a3 0,transparent 58%),
    linear-gradient(108deg,#f6ffed 3%,#deffc8 42%,#40c895 100%);
  border:1px solid #fff;
  box-shadow:0 0 0 2px #eaffd0,inset 0 0 0 1px #c8db83,0 5px 14px #167a4324;
}
.hero h1{color:#071b12;text-shadow:none}
.hero h1 em{color:#006b3e;text-shadow:0 1px 0 #fff}
.hero p{color:#204d3d;text-shadow:none;font-weight:500}
.presenter{
  filter:none;
  mask-image:none;
  animation:presenter-lift 7s ease-in-out infinite;
  transform:translate3d(0,0,0);
}
.hero-note{background:#006b47e8;color:#fff;border:1px solid #ceecb6;box-shadow:0 1px 3px #06452c24}
.hero::after{
  content:"";position:absolute;left:48%;bottom:-24%;width:34%;height:68%;
  border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(ellipse,#fffbd1a8 0,#fff7ae33 33%,transparent 68%);
  animation:ambient-lift 9s ease-in-out infinite;
}
.energy{
  border-color:#fff0a8;
  box-shadow:0 0 0 1px #d9b34390,0 0 8px #fff5a0b0,inset 0 0 6px #fbffb84d;
  animation:ring-breath 8s ease-in-out infinite;
}
.energy-two{border-color:#ffffffc9;animation:ring-counter 10s ease-in-out infinite}
.energy::before{
  content:"";position:absolute;left:10%;top:10%;width:9px;height:9px;
  border-radius:50%;background:#fffcea;box-shadow:0 0 5px 2px #fff5a4;
}
.energy-two::before{left:auto;right:9%;top:67%;width:6px;height:6px}
.sparkles i{
  width:4px;height:4px;background:#fff;
  box-shadow:0 0 4px 2px #fff3a5;
  animation:light-drift 7s ease-in-out infinite;
}
.sparkles i:nth-child(3n){width:10px;height:10px;border-radius:0;background:#fff6b4;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);box-shadow:none}
.sparkles i:nth-child(7){left:59%;top:13%;animation-delay:-4s}
.sparkles i:nth-child(8){left:18%;top:66%;animation-delay:-5s}
.sparkles i:nth-child(9){left:90%;top:84%;animation-delay:-1s}
.sparkles i:nth-child(10){left:42%;top:54%;animation-delay:-6s}
.stage::before,.stage::after{opacity:1;filter:none;animation:leaf-sway 11s ease-in-out infinite}
.stage::after{animation-name:leaf-sway-reverse;animation-delay:-3s}
.consultation{
  border-color:#fff4b9;background:#087d53;
  box-shadow:0 0 0 2px #e5ffc2,0 5px 16px #0b704730;
}
.consultation-header{
  position:relative;isolation:isolate;
  background:radial-gradient(ellipse at 18% 0%,#31dc9b 0,transparent 58%),
    radial-gradient(ellipse at 95% 100%,#00a06b 0,transparent 55%),
    linear-gradient(110deg,#008c5b,#00643f);
}
.consultation-header h2{color:#fff6cf;text-shadow:0 1px 1px #06442d}
.consultation-header p{color:#fff;font-weight:500}
.chat-medallion{background:linear-gradient(145deg,#57e6b6,#009568 45%,#006542);box-shadow:inset 0 1px 2px #ffffff80,0 0 0 1px #fffac1;animation:medallion-glint 7s ease-in-out infinite}
.more{background:linear-gradient(#00a96e,#007446);color:#fff8cb}
.consultation-body{
  background:radial-gradient(ellipse at 7% 7%,#fff 0,transparent 55%),
    radial-gradient(ellipse at 96% 100%,#f4ffd9 0,transparent 48%),
    linear-gradient(135deg,#fbfff4,#e4ffed);
  box-shadow:inset 0 1px 0 #fff;
}
.welcome img{
  mix-blend-mode:normal;filter:none;opacity:1;
  mask-image:radial-gradient(ellipse at center,#000 66%,transparent 97%);
  animation:float 6s ease-in-out infinite;
}
.welcome-caption{color:#0b4f32}
.welcome-caption span{color:#ae7810}
.sample{color:#264650;background:#fff;border-color:#bee6cd;box-shadow:0 2px 5px #15854b20}
.question-form input{background:#fff;color:#154d36;border-color:#c6982d;box-shadow:0 0 0 2px #fff}
.question-form input::placeholder{color:#617568;opacity:1}
.send{background:linear-gradient(140deg,#36d798,#008b59 45%,#00613d)}
.send svg{filter:none}
.contact{
  background:radial-gradient(ellipse at 25% 0%,#31d78c 0,transparent 44%),
    linear-gradient(165deg,#00a96d 0,#007c4e 54%,#005d39 100%);
  text-shadow:0 1px 1px #04412c;font-weight:600;
}
.contact-caption{color:#315944}
.login,.send,.contact{position:relative;isolation:isolate;overflow:hidden}
.login::after,.send::after,.contact::after{
  content:"";position:absolute;inset:-35% auto -35% -55%;width:35%;
  pointer-events:none;z-index:0;background:linear-gradient(90deg,transparent,#ffffff5c,transparent);
  transform:skewX(-22deg);animation:button-glint 9s ease-in-out infinite;
}
.send::after{animation-delay:-2s}.contact::after{animation-delay:-4s}
.login>*,.send>*,.contact>*{position:relative;z-index:1}
.bubble.user{background:#d9fbe6;color:#124733}
.bubble.greenshi{background:#fff;border-color:#a9dbba;box-shadow:0 2px 4px #15733e14}
.bubble-name{color:#167343;font-weight:700}
.material-button{background:#fff;border-color:#d2ad50;box-shadow:0 2px 5px #15733e14}
.options-popover,dialog{background:#fffef8;box-shadow:0 8px 30px #07522d30}
dialog::backdrop{background:#053d2a80;backdrop-filter:none}
body.chat-active .hero{filter:none}
body.greenshi-thinking .energy{animation-duration:3s;border-color:#fffccf}
body.greenshi-thinking .chat-medallion{animation-duration:2s}
body.greenshi-answering .sparkles i{animation-duration:3s}
body.greenshi-answering .hero-note{box-shadow:0 0 0 1px #fff7bd}
body.page-paused *,body.page-paused *::before,body.page-paused *::after{animation-play-state:paused!important}
@keyframes presenter-lift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-4px,0)}}
@keyframes ambient-lift{50%{transform:translate3d(4px,-9px,0);opacity:.65}}
@keyframes ring-breath{0%,100%{transform:rotate(-30deg);opacity:.9}50%{transform:rotate(-24deg);opacity:1}}
@keyframes ring-counter{0%,100%{transform:rotate(30deg);opacity:.85}50%{transform:rotate(37deg);opacity:1}}
@keyframes light-drift{0%,100%{opacity:.25;transform:translate3d(0,0,0)}45%{opacity:1;transform:translate3d(3px,-8px,0)}75%{opacity:.55;transform:translate3d(-2px,-3px,0)}}
@keyframes button-glint{0%,65%{transform:translate3d(0,0,0) skewX(-22deg);opacity:0}70%{opacity:.75}88%,100%{transform:translate3d(530%,0,0) skewX(-22deg);opacity:0}}
@keyframes medallion-glint{50%{transform:translate3d(0,-1px,0);box-shadow:inset 0 1px 2px #ffffff80,0 0 0 1px #fffac1,0 0 7px #fff7bd80}}
@keyframes leaf-sway{0%,100%{transform:rotate(-15deg)}50%{transform:rotate(-11deg)}}
@keyframes leaf-sway-reverse{0%,100%{transform:rotate(150deg)}50%{transform:rotate(154deg)}}
@media(max-width:420px){.sparkles i:nth-child(n+9){display:none}}
@media(min-width:721px){.stage{box-shadow:0 0 35px #08653b30;border-left-color:#e3ffd3;border-right-color:#e3ffd3}}
/* The existing user option remains authoritative over decorative animation. */
body.reduced-motion *,body.reduced-motion *::before,body.reduced-motion *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
