html.sting-open { overflow: hidden; }
.house-sting { position: fixed; inset: 0; z-index: 100; overflow: hidden; background: #080a09; color: #e9dcc2; opacity: 1; transition: opacity .6s ease; isolation: isolate; }
.house-sting.sting-finished { opacity: 0; pointer-events: none; }
.sting-art { position: absolute; inset: 0; opacity: 0; transition: opacity .7s; pointer-events: none; }
.sting-loaded .sting-art { opacity: 1; }
.sting-art img { display: block; width: 100%; height: auto; max-width: none; }
.sting-archer, .sting-target, .sting-gear-position, .sting-arrow, .sting-smoke { position: absolute; }
.sting-archer { z-index: 1; }
.sting-archer img, .sting-target img { position: absolute; inset: 0; width: 100%; height: 100%; }
.sting-target { z-index: 3; }
.sting-gear-position { z-index: 2; opacity: 0; }
.sting-gear { animation: sting-turn 36s linear infinite; }
.sting-static .sting-gear { animation: none; }
.sting-arrow { z-index: 4; opacity: 0; transform: rotate(var(--shot-angle)); transform-origin: 0 0; }
/* The generated arrow points left. Its visible tip is (77,486) of 1672x940.
   Pin that tip at the flight coordinate before rotating along the bow line. */
.sting-arrow img { position: absolute; left: -4.6053%; top: -51.7021%; width: 100%; height: 100%; }
.sting-smoke { z-index: 5; opacity: 0; transform-origin: center 80%; }
.sting-wordmark { position: absolute; top: 64%; left: 50%; transform: translateX(-50%); width: 90%; text-align: center; font: 15px/2 Georgia, serif; letter-spacing: 6px; opacity: 0; pointer-events: none; }
.sting-wordmark span { display: block; }
.sting-wordmark span:first-child { font-size: 11px; letter-spacing: 7px; }
.sting-enter { position: absolute; z-index: 6; left: 50%; bottom: max(6%, 24px); transform: translateX(-50%); min-width: 210px; min-height: 48px; padding: 12px 25px; color: #e9dcc2; background: #080a09db; border: 1px solid #75623e; text-transform: uppercase; letter-spacing: 2.3px; font-size: 10px; transition: border-color .4s, background .3s; }
.sting-enter span { margin-left: 12px; }
.sting-enter:hover { background: #292317; border-color: #d5b26e; }
.sting-enter:focus-visible { outline: 2px solid #d5b26e; outline-offset: 6px; }
.sting-ready .sting-enter { border-color: #c9a55e; }
@keyframes sting-turn { to { transform: rotate(360deg); } }
@media (max-aspect-ratio: 9/10) { .sting-wordmark { top: 63%; font-size: 12px; letter-spacing: 4px; } .sting-wordmark span:first-child { font-size: 10px; letter-spacing: 5px; } }
@media (prefers-reduced-motion: reduce) { .house-sting, .sting-art, .sting-enter { transition: none; } .sting-gear { animation: none; } }
