/* Touch-first interaction layer. No device permissions or hover required. */
.hero-touch-console,.touch-dock,.swipe-tip{display:none}
@media(max-width:991.98px){
 .home-hero.touch-enabled{--touch-color:#91eaff;--touch-art-height:clamp(250px,57vw,400px);height:auto;min-height:0;max-height:none}
 .home-hero.touch-enabled .hero-art{height:var(--touch-art-height);object-position:70% center;transform:none!important;transition:filter .3s}
 .home-hero.touch-enabled .hero-shade{background:linear-gradient(180deg,#050d1810,#060c1530 calc(var(--touch-art-height)*.6),#060c15 var(--touch-art-height))}
 .home-hero.touch-enabled .hero-content{padding-top:calc(var(--touch-art-height) + 18px)}
 .home-hero.touch-enabled .hero-bottom{position:relative;bottom:auto;margin-top:24px;padding-bottom:18px}
 .home-hero.touch-enabled .hero-hud{display:none}
 .hero-touch-console{display:block;position:absolute;inset:0 0 auto;height:var(--touch-art-height);z-index:3;color:var(--touch-color)}
 .hero-touch-console[hidden]{display:none}
 .touch-arena{position:absolute;inset:0 0 58px;width:100%;background:none;border:0;padding:0;overflow:hidden;touch-action:pan-y;cursor:pointer;color:inherit;text-align:left;-webkit-user-select:none;user-select:none}
 .touch-arena:focus-visible{outline-offset:-4px}
 .touch-hud{position:absolute;top:14px;left:20px;right:20px;display:flex;justify-content:space-between;gap:10px;pointer-events:none;font:600 10px/1.4 var(--body);letter-spacing:.7px}
 .touch-hud>span{padding:7px 9px;background:#08121ddd;border:1px solid #83b9d04d}
 .touch-hud b{font-variant-numeric:tabular-nums;font-weight:700}
 .touch-aim{position:absolute;left:65%;top:50%;width:54px;height:54px;translate:-50% -50%;border:1px solid currentColor;border-radius:50%;box-shadow:0 0 26px #78e3ff60,inset 0 0 20px #78e3ff40;pointer-events:none}
 .touch-aim:before,.touch-aim:after{content:'';position:absolute;inset:9px;border:1px dashed currentColor;border-radius:50%}.touch-aim:after{inset:23px;border:0;background:currentColor;box-shadow:0 0 20px 5px currentColor}
 .touch-instruction{position:absolute;left:20px;bottom:8px;padding:7px 9px;background:#06101de6;border-left:2px solid currentColor;font:500 11px/1.4 var(--body);letter-spacing:.2px;pointer-events:none;max-width:calc(100% - 40px)}
 .touch-powers{position:absolute;left:20px;right:20px;bottom:5px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .touch-powers button{min-height:48px;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 5px;background:#0c1726ef;color:#b3c6d8;border:1px solid #496278;font:600 12px/1.2 var(--body);touch-action:manipulation}
 .touch-powers button span{font-size:18px}.touch-powers button[aria-pressed=true]{border-color:var(--touch-color);color:var(--touch-color);background:#182d3eef;box-shadow:inset 0 -2px var(--touch-color)}
 .touch-status{display:block;font:500 12px/1.6 var(--body);color:var(--touch-color);margin:0 0 15px;min-height:20px;letter-spacing:.2px}
 .touch-status small{font-size:10px;color:#9db2c5}
 .home-hero[data-touch-power=ricochet]{--touch-color:#d6a2ff}.home-hero[data-touch-power=shield]{--touch-color:#d8ff62}
 .home-hero[data-touch-power=ricochet] .touch-aim{rotate:45deg;border-radius:8px}
 .home-hero[data-touch-power=shield] .touch-aim{border-radius:14px;clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%)}
 .touch-impact{position:absolute;left:var(--burst-x);top:var(--burst-y);width:30px;height:30px;margin:-15px;border:2px solid currentColor;border-radius:50%;box-shadow:0 0 16px currentColor;pointer-events:none;animation:touch-release .8s ease-out both}
 .touch-impact:after{content:'';position:absolute;inset:-10px;border:1px dashed currentColor;border-radius:inherit}
 [data-touch-power=ricochet] .touch-impact{border-radius:5px;animation-name:touch-arc}
 [data-touch-power=shield] .touch-impact{border-radius:15%;border-width:4px;animation-name:touch-shield}
 .touch-dock[data-visible=true]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:45;padding:5px;background:#0c1729f5;border:1px solid #52748b;box-shadow:0 8px 32px #0009;backdrop-filter:blur(12px)}
 .touch-dock a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:8px 4px;font:600 12px/1.3 var(--body);color:#d6e5f0;touch-action:manipulation}
 .touch-dock a:first-child{background:#d8ff621c;color:var(--lime)}.touch-dock a:last-child{color:var(--lime)}.touch-dock a:active{background:#30445a}
 body:has(.touch-dock[data-visible=true]) .motion-control{bottom:calc(84px + env(safe-area-inset-bottom))}
 body:has(.menu-toggle[aria-expanded=true]) .touch-dock{visibility:hidden}
 body:has(.touch-dock) footer{padding-bottom:160px}
 .swipe-enabled{touch-action:pan-y}.swipe-enabled .swipe-tip{display:block;position:absolute;left:16px;top:16px;z-index:4;background:#07121deb;border:1px solid #7ab8cb55;padding:9px 12px;font:500 12px/1.4 var(--body);color:#d8edf6;pointer-events:none}
 .swipe-enabled .hud-corner{top:64px}
 .power-options button:active,.hero-buttons a:active,.button:active{filter:brightness(1.18)}
}
@keyframes touch-release{from{transform:scale(.4);opacity:1}to{transform:scale(7);opacity:0}}
@keyframes touch-arc{from{transform:scale(.4) rotate(0deg);opacity:1}to{transform:scale(6) rotate(110deg);opacity:0}}
@keyframes touch-shield{0%{transform:scale(.4);opacity:1}35%{transform:scale(4);opacity:.8}100%{transform:scale(4.8);opacity:0}}
@media(prefers-reduced-motion:reduce){.touch-impact{animation:none!important;transform:scale(2);opacity:.65}.touch-aim,.hero-art{transition:none!important}}
.motion-paused .touch-impact{animation:none!important;transform:scale(2);opacity:.65}
