/* Optional artwork only. Existing site layout, colors, photos and typography are unchanged. */
.touma-3d-shield{position:absolute;left:6%;top:28px;width:104px;height:132px;z-index:2;perspective:650px;pointer-events:none}
.touma-3d-shadow{position:absolute;left:15%;right:15%;bottom:-6px;height:11px;border-radius:50%;background:var(--color-primary);opacity:.22;filter:blur(6px)}
.touma-3d-tilt{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--shield-x,0deg)) rotateY(var(--shield-y,0deg));transition:transform .35s ease}
.touma-3d-object{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(-20deg) rotateX(6deg);animation:touma-shield-float 5s ease-in-out infinite;animation-play-state:paused}
.touma-3d-layer,.touma-3d-face{position:absolute;inset:0;clip-path:polygon(50% 0,96% 17%,91% 63%,77% 82%,50% 100%,23% 82%,9% 63%,4% 17%)}
.touma-3d-layer{background:linear-gradient(110deg,var(--color-primary),var(--color-secondary),var(--color-primary));transform:translateZ(calc(var(--depth) * 1px - 12px))}
.touma-3d-face{transform:translateZ(1px);background:linear-gradient(130deg,#fff,var(--color-secondary) 25%,var(--color-primary));color:#fff}
.touma-3d-face::before{content:"";position:absolute;inset:4px;clip-path:inherit;background:linear-gradient(145deg,var(--color-secondary),var(--color-primary) 70%)}
.touma-3d-face svg{position:absolute;width:65%;height:72%;left:17.5%;top:8%;filter:drop-shadow(0 1px 2px var(--color-primary))}
.touma-3d-shield.is-running .touma-3d-object{animation-play-state:running}
@keyframes touma-shield-float{0%,100%{transform:rotateY(-20deg) rotateX(6deg) translateY(0)}50%{transform:rotateY(18deg) rotateX(-4deg) translateY(-7px)}}
.touma-3d-toggle{position:absolute;top:15px;right:16px;z-index:3;min-height:44px;padding:8px 12px;border:1px solid var(--color-secondary);border-radius:6px;background:#fff;color:var(--color-primary);font:inherit;font-size:11px;font-weight:600;cursor:pointer}
.touma-3d-toggle[hidden]{display:none}
.touma-3d-toggle:focus-visible{outline:3px solid var(--color-secondary);outline-offset:3px}
@media(max-width:640px){.touma-3d-shield{left:5%;top:22px;width:72px;height:92px}.touma-3d-toggle{right:12px;top:12px;font-size:10px;padding:7px 10px}}
@media(prefers-reduced-motion:reduce){.touma-3d-object{animation:none}.touma-3d-tilt{transition:none;transform:none}.touma-3d-toggle{display:none}}
