/* As Above So Below - THE PORTAL (the living tree at /index.html)
   (c) 2026 Spiridon Tsakonas (Cyrus Nash) - Light in the Dark Solutions - All Rights Reserved */
#aasb-life{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#aasb-gems{position:fixed;inset:0;z-index:4;pointer-events:none;perspective:900px}
.aasb-gem{position:absolute;left:0;top:0;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);pointer-events:auto;text-decoration:none;outline:none;will-change:transform}
.aasb-gem .spin{position:absolute;inset:0;transform-style:preserve-3d;animation:aasb-spin var(--t,7s) linear infinite}
.aasb-gem svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 8px var(--glow)) drop-shadow(0 0 22px var(--glow2))}
.aasb-gem svg.back{transform:rotateY(180deg);filter:brightness(.8) drop-shadow(0 0 8px var(--glow))}
.aasb-gem .glint{position:absolute;left:62%;top:22%;width:34%;height:34%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0 8%,rgba(255,255,255,.8) 9%,transparent 22%),linear-gradient(90deg,transparent 46%,rgba(255,255,255,.9) 50%,transparent 54%),linear-gradient(0deg,transparent 46%,rgba(255,255,255,.9) 50%,transparent 54%);border-radius:50%;opacity:0;animation:aasb-glint 3.4s ease-in-out infinite;animation-delay:var(--gd,0s);pointer-events:none}
@keyframes aasb-glint{0%,70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(0)}80%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(45deg)}}
.aasb-gem .lbl{position:absolute;left:50%;top:100%;transform:translate(-50%,6px);white-space:nowrap;font:12px/1.2 Georgia,serif;letter-spacing:3px;text-transform:uppercase;color:var(--ink);text-shadow:0 0 8px #000;background:rgba(5,4,2,.55);padding:3px 9px;border-radius:10px;opacity:0;transition:opacity .35s}
.aasb-gem.front .lbl,.aasb-gem:hover .lbl,.aasb-gem:focus-visible .lbl{opacity:1}
.aasb-gem:hover svg.front,.aasb-gem:focus-visible svg.front{filter:brightness(1.35) drop-shadow(0 0 12px var(--glow)) drop-shadow(0 0 34px var(--glow2))}
.aasb-gem.above{--glow:rgba(251,191,36,.95);--glow2:rgba(251,191,36,.45);--ink:#fde68a;--c1:#fffbe8;--c2:#ffe9a3;--c3:#ffc93c;--c4:#f59e0b;--c5:#b45309}
.aasb-gem.below{--glow:rgba(74,222,128,.95);--glow2:rgba(74,222,128,.4);--ink:#86efac;--c1:#f0fff6;--c2:#a7f3c8;--c3:#4ade80;--c4:#22c55e;--c5:#166534}
#aasb-hint{position:fixed;left:50%;top:calc(51.5% + 14px);transform:translateX(-50%);z-index:4;pointer-events:none;font:11px Georgia,serif;letter-spacing:6px;text-transform:uppercase;color:rgba(253,230,138,.75);text-shadow:0 0 10px #000;animation:aasb-breathe 4s ease-in-out infinite}
@keyframes aasb-spin{from{transform:rotateY(0)}to{transform:rotateY(360deg)}}
@keyframes aasb-breathe{0%,100%{opacity:.35}50%{opacity:.95}}
@media (hover:none){.aasb-gem .lbl{opacity:1;font-size:10px;letter-spacing:2px}}
@media (prefers-reduced-motion:reduce){.aasb-gem .spin,#aasb-hint{animation:none}}
