/* Scoped, static by default. The owning page enables motion only while visible. */
.gai-hs-screen {
  position: relative; isolation: isolate; width: 100%; min-width: 0; margin: 0;
  overflow: hidden; border: 1px solid #d9b87975; border-radius: 20px;
  background: #0a1529; box-shadow: 0 24px 70px #02071159, 0 0 35px #8d42651c, inset 0 1px #fff0ce24;
}
.gai-hs-screen *, .gai-hs-screen *::before, .gai-hs-screen *::after { box-sizing: border-box; }
.gai-hs-screenbar {
  display: flex; align-items: center; gap: 16px; min-height: 60px; padding: 10px 18px;
  background: linear-gradient(110deg,#0c1c34,#23152a); border-bottom: 1px solid #d9b8794a;
}
.gai-hs-brand { display: inline-flex; align-items: center; gap: 11px; color: #f4dfb5; font: 600 12px/1.3 system-ui,sans-serif; letter-spacing: .12em; }
.gai-hs-brand img { display: block; flex: none; width: 36px; height: 36px; object-fit: contain; border: 0; }
.gai-hs-brand b { font-weight: 400; color: #c1ccdb; }
.gai-hs-address { margin-left: auto; color: #aebdce; font: 400 11px/1.4 system-ui,sans-serif; letter-spacing: .03em; }
.gai-hs-window-dot { width: 5px; height: 5px; flex: none; border-radius: 50%; background: #d9b879; box-shadow: 0 0 10px #d9b87955; }
.gai-hs-viewport { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; background: #0b1b31; }
.gai-hs-panorama { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; border: 0; }
.gai-hs-scene-overlay { position: absolute; inset: 0; display: block; width: 100%; height: 100%; pointer-events: none; user-select: none; overflow: hidden; }
.gai-hs-screen-base { height: 13px; display: flex; align-items: center; justify-content: center; background: linear-gradient(110deg,#15213a,#2c1a2c); border-top: 1px solid #e4c18335; }
.gai-hs-screen-base span { display: block; width: 36px; height: 2px; border-radius: 2px; background: #bfa37380; }
.gai-hs-star-glow { opacity: .55; }
.gai-hs-neighbour-pose, .gai-hs-child-pose { opacity: 0; }
.gai-hs-neighbour-pose--0, .gai-hs-child-pose--0 { opacity: 1; }
.gai-hs-snowball, .gai-hs-puff { opacity: 0; }
.gai-hs-child--a { --gai-hs-snow-delay: 0s; }
.gai-hs-child--b { --gai-hs-snow-delay: -4s; }
.gai-hs-screen[data-motion="true"] .gai-hs-star-glow { animation: gai-hs-star 4.8s ease-in-out infinite alternate; }
.gai-hs-screen[data-motion="true"] .gai-hs-neighbour-pose--0 { animation: gai-hs-neighbour-rest var(--gai-hs-cycle) var(--gai-hs-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-neighbour-pose--1 { animation: gai-hs-neighbour-greet var(--gai-hs-cycle) var(--gai-hs-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-neighbour-pose--2 { animation: gai-hs-neighbour-smile var(--gai-hs-cycle) var(--gai-hs-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-steam { animation: gai-hs-steam 4.6s ease-in-out infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-child-pose--0 { animation: gai-hs-snow-rest 8s var(--gai-hs-snow-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-child-pose--1 { animation: gai-hs-snow-ready 8s var(--gai-hs-snow-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-child-pose--2 { animation: gai-hs-snow-throw 8s var(--gai-hs-snow-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-child-pose--3 { animation: gai-hs-snow-recover 8s var(--gai-hs-snow-delay) step-end infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-snowball--a { animation: gai-hs-ball-right 8s linear infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-snowball--b { animation: gai-hs-ball-left 8s -4s linear infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-puff--a { animation: gai-hs-puff 8s linear infinite; }
.gai-hs-screen[data-motion="true"] .gai-hs-puff--b { animation: gai-hs-puff 8s -4s linear infinite; }
@keyframes gai-hs-star { from { opacity: .4; } to { opacity: .9; } }
@keyframes gai-hs-neighbour-rest { 0%,33.332% { opacity:1; } 33.333%,100% { opacity:0; } }
@keyframes gai-hs-neighbour-greet { 0%,33.332% { opacity:0; } 33.333%,66.665% { opacity:1; } 66.666%,100% { opacity:0; } }
@keyframes gai-hs-neighbour-smile { 0%,66.665% { opacity:0; } 66.666%,100% { opacity:1; } }
@keyframes gai-hs-steam { 0%,100% { opacity:.22;transform:translateY(1px); } 50% { opacity:.46;transform:translateY(-3px); } }
@keyframes gai-hs-snow-rest { 0%,20% { opacity:1; } 20.001%,40% { opacity:0; } 40.001%,100% { opacity:1; } }
@keyframes gai-hs-snow-ready { 0%,20% { opacity:0; } 20.001%,25% { opacity:1; } 25.001%,100% { opacity:0; } }
@keyframes gai-hs-snow-throw { 0%,25% { opacity:0; } 25.001%,32% { opacity:1; } 32.001%,100% { opacity:0; } }
@keyframes gai-hs-snow-recover { 0%,32% { opacity:0; } 32.001%,40% { opacity:1; } 40.001%,100% { opacity:0; } }
@keyframes gai-hs-ball-right { 0%,24.9% { opacity:0;transform:translate(0,0); } 25% { opacity:1;transform:translate(0,0); } 35% { opacity:1;transform:translate(32px,-20px); } 47% { opacity:1;transform:translate(65px,30px); } 48%,100% { opacity:0;transform:translate(65px,30px); } }
@keyframes gai-hs-ball-left { 0%,24.9% { opacity:0;transform:translate(0,0); } 25% { opacity:1;transform:translate(0,0); } 35% { opacity:1;transform:translate(-32px,-20px); } 47% { opacity:1;transform:translate(-65px,30px); } 48%,100% { opacity:0;transform:translate(-65px,30px); } }
@keyframes gai-hs-puff { 0%,47% { opacity:0; } 48%,51% { opacity:.85; } 58%,100% { opacity:0; } }
@media (max-width:700px) {
  .gai-hs-screen { border-radius: 13px; }
  .gai-hs-screenbar { min-height: 48px; gap: 10px; padding: 7px 12px; }
  .gai-hs-brand { gap: 8px; font-size: 10px; letter-spacing: .08em; }
  .gai-hs-brand img { width: 30px; height: 30px; }
  .gai-hs-address { font-size: 9px; letter-spacing: 0; }
  .gai-hs-window-dot { display: none; }
  .gai-hs-screen-base { height: 9px; }
}
@media (prefers-reduced-motion:reduce) {
  .gai-hs-screen[data-motion="true"] * { animation: none !important; transition: none !important; }
  .gai-hs-screen .gai-hs-neighbour-pose, .gai-hs-screen .gai-hs-child-pose { opacity: 0; }
  .gai-hs-screen .gai-hs-neighbour-pose--0, .gai-hs-screen .gai-hs-child-pose--0 { opacity: 1; }
  .gai-hs-screen .gai-hs-snowball, .gai-hs-screen .gai-hs-puff { opacity: 0; }
}
@media print {
  .gai-hs-screen { box-shadow: none; break-inside: avoid; }
  .gai-hs-scene-overlay { display: none; }
}

