/* Reference effects 31-42 */
.fx-hologram{position:relative;font:600 28px/1.2 "JetBrains Mono",monospace;letter-spacing:.12em;color:color-mix(in srgb,var(--ink-3) 72%,var(--ink));text-shadow:0 0 6px color-mix(in srgb,var(--ink-3) 60%,transparent),0 0 22px color-mix(in srgb,var(--ink-3) 45%,transparent);isolation:isolate;animation:fx-hologram-float 3.8s ease-in-out infinite}.fx-hologram::before,.fx-hologram::after{content:attr(data-text);position:absolute;inset:0}.fx-hologram::before{color:var(--ink-2);clip-path:inset(0 0 52% 0);opacity:.58;animation:fx-hologram-split 2.8s steps(1) infinite}.fx-hologram::after{color:transparent;background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--ink) 70%,transparent) 0 1px,transparent 1px 4px);background-clip:text;-webkit-background-clip:text;opacity:.48;animation:fx-hologram-lines 1.2s linear infinite}@keyframes fx-hologram-float{0%,100%{transform:translateY(2px);filter:brightness(1)}50%{transform:translateY(-4px) skewX(-3deg);filter:brightness(1.35)}}@keyframes fx-hologram-split{0%,14%,40%,72%,100%{transform:translateX(0);opacity:.22}15%{transform:translateX(-5px);opacity:.8}17%{transform:translateX(4px);opacity:.6}74%{transform:translateX(3px);opacity:.7}}@keyframes fx-hologram-lines{to{background-position:0 12px}}
.fx-foil{font:600 36px/1.05 "JetBrains Mono",monospace;letter-spacing:.08em;color:transparent;background:linear-gradient(108deg,#7a4a08,#f2c15d 18%,#fff4b8 24%,#b87014 36%,#f6d66d 51%,#8e560b 68%,#fff0a2 76%,#c98218) 0/230% 100%;background-clip:text;-webkit-background-clip:text;text-shadow:0 1px 0 #fff4b873,0 9px 20px #0000005c;animation:fx-foil 3.1s ease-in-out infinite}@keyframes fx-foil{0%,100%{background-position:115% 0;filter:saturate(1.05)}45%{background-position:-35% 0;filter:saturate(1.35) brightness(1.12)}}
.fx-pixel{position:relative;font:600 30px/1.1 "JetBrains Mono",monospace;letter-spacing:.08em;color:var(--ink);text-shadow:1px 0 var(--ink-2),-1px 0 var(--ink-3)}.fx-pixel::before,.fx-pixel::after{content:attr(data-text);position:absolute;inset:0;opacity:.85}.fx-pixel::before{color:var(--ink-2);clip-path:polygon(0 0,100% 0,100% 28%,0 28%,0 44%,100% 44%,100% 58%,0 58%);animation:fx-pixel-a 2.2s steps(1) infinite}.fx-pixel::after{color:var(--ink-3);clip-path:polygon(0 30%,100% 30%,100% 42%,0 42%,0 66%,100% 66%,100% 82%,0 82%);animation:fx-pixel-b 2.2s steps(1) infinite}@keyframes fx-pixel-a{0%,20%,54%,100%{transform:none}22%{transform:translate(7px,-2px)}24%{transform:translate(-4px,1px)}56%{transform:translate(5px,2px)}58%{transform:translate(-7px)}}@keyframes fx-pixel-b{0%,18%,58%,100%{transform:none}19%{transform:translate(-6px,2px)}21%{transform:translate(4px,-1px)}60%{transform:translate(-5px,-2px)}63%{transform:translate(6px,1px)}}
.fx-starlight{font:600 28px/1.2 "JetBrains Mono",monospace;letter-spacing:.12em;color:transparent;background:radial-gradient(circle at 14% 35%,#fff 0 2px,transparent 2.4px),radial-gradient(circle at 42% 68%,#fff 0 1.6px,transparent 2px),radial-gradient(circle at 75% 24%,#fff 0 2.2px,transparent 2.6px),linear-gradient(100deg,var(--ink),var(--ink-3),var(--ink));background-size:120px 60px,150px 72px,180px 68px,240% 100%;background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--ink-3) 45%,transparent));animation:fx-starlight 3.6s linear infinite}@keyframes fx-starlight{0%{background-position:0 0,0 0,0 0,120% 0}100%{background-position:120px 0,-150px 0,180px 0,-120% 0}}
.fx-blueprint{font:600 28px/1.15 "JetBrains Mono",monospace;letter-spacing:.1em;color:transparent;padding:.28em .45em;-webkit-text-stroke:1px color-mix(in srgb,var(--ink-3) 80%,var(--ink));background:linear-gradient(90deg,color-mix(in srgb,var(--ink-3) 22%,transparent) 1px,transparent 1px),linear-gradient(0deg,color-mix(in srgb,var(--ink-3) 18%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ink-3) 42%,transparent),transparent 35% 65%,color-mix(in srgb,var(--ink-3) 42%,transparent));background-size:12px 12px,12px 12px,240% 100%;border:1px solid color-mix(in srgb,var(--ink-3) 42%,transparent);box-shadow:inset 0 0 18px color-mix(in srgb,var(--ink-3) 18%,transparent);animation:fx-blueprint 4s linear infinite}@keyframes fx-blueprint{to{background-position:24px 0,0 24px,-100% 0}}
.fx-vapor{position:relative;font:600 32px/1.1 "JetBrains Mono",monospace;letter-spacing:.16em;color:var(--ink);text-shadow:0 0 12px color-mix(in srgb,var(--ink) 45%,transparent);animation:fx-vapor-main 2.8s ease-in-out infinite}.fx-vapor::before,.fx-vapor::after{content:attr(data-text);position:absolute;inset:0;filter:blur(2px);opacity:.62}.fx-vapor::before{color:var(--ink-2);animation:fx-vapor-a 2.8s ease-in-out infinite}.fx-vapor::after{color:var(--ink-3);animation:fx-vapor-b 2.8s ease-in-out infinite}@keyframes fx-vapor-main{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}@keyframes fx-vapor-a{0%,100%{transform:translate(-10px,6px) scaleX(1.08);opacity:.22}50%{transform:translate(-18px,-4px) scaleX(1.22);opacity:.58}}@keyframes fx-vapor-b{0%,100%{transform:translate(10px,-5px) scaleX(1.08);opacity:.2}50%{transform:translate(18px,5px) scaleX(1.2);opacity:.56}}
.fx-kinetic,.fx-magnetic{font:600 30px/1.1 "JetBrains Mono",monospace;letter-spacing:.06em;color:var(--ink);display:inline-flex}.fx-kinetic b,.fx-magnetic b{font-weight:inherit;display:inline-block}.fx-kinetic b{animation:fx-kinetic 2.6s cubic-bezier(.2,.8,.2,1) infinite;animation-delay:calc(var(--i)*.08s)}.fx-kinetic b:nth-child(2n){color:var(--ink-3)}.fx-kinetic b:nth-child(3n){color:var(--ink-2)}@keyframes fx-kinetic{0%,18%{transform:translateY(0);filter:blur(0)}34%{transform:translateY(-18px) rotate(-9deg);filter:blur(.4px)}52%{transform:translateY(14px) rotate(7deg)}68%,100%{transform:none;filter:blur(0)}}
.fx-blackout{position:relative;font:600 24px/1.15 "JetBrains Mono",monospace;letter-spacing:.08em;color:var(--ink);padding:.28em .12em}.fx-blackout::before,.fx-blackout::after{content:"";position:absolute;left:-.18em;right:-.18em;height:44%;background:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink-2) 45%,transparent);animation:fx-blackout 3s steps(1) infinite}.fx-blackout::before{top:0;transform-origin:left}.fx-blackout::after{bottom:0;transform-origin:right;animation-delay:.28s}@keyframes fx-blackout{0%,20%,72%,100%{transform:scaleX(0)}26%,58%{transform:scaleX(1)}64%{transform:scaleX(.38)}}
.fx-magnetic b{text-shadow:0 0 0 var(--ink-2);animation:fx-magnetic 2.7s ease-in-out infinite;animation-delay:calc(var(--i)*.07s)}.fx-magnetic b:nth-child(odd){color:var(--ink-3)}@keyframes fx-magnetic{0%,100%{transform:none;text-shadow:none}42%{transform:translateX(calc((3 - var(--i))*2px)) scale(1.12);text-shadow:0 0 16px color-mix(in srgb,var(--ink-2) 70%,transparent)}62%{transform:translateX(calc((var(--i) - 3)*3px)) scale(.96)}}
.fx-mesh{font:600 38px/1.05 "JetBrains Mono",monospace;letter-spacing:.08em;color:transparent;background:radial-gradient(circle at 18% 28%,var(--ink-2) 0 12%,transparent 28%),radial-gradient(circle at 78% 24%,var(--ink-3) 0 14%,transparent 30%),radial-gradient(circle at 44% 82%,#fff 0 10%,transparent 24%),linear-gradient(110deg,var(--ink-2),var(--ink-3));background-size:180% 180%,170% 170%,160% 160%,220% 100%;background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--ink-3) 28%,transparent));animation:fx-mesh 4.8s ease-in-out infinite alternate}@keyframes fx-mesh{0%{background-position:0 20%,100% 10%,35% 100%,100% 0}100%{background-position:100% 80%,0 60%,70% 0,-100% 0}}
.fx-iridescent{font:600 38px/1.05 "JetBrains Mono",monospace;letter-spacing:.12em;color:transparent;background:conic-gradient(from 20deg,#f7fbff,var(--ink-3),#bba7ff,var(--ink-2),#fff7d6,#f7fbff) 50%/220% 220%;background-clip:text;-webkit-background-clip:text;text-shadow:0 10px 28px #00000047;animation:fx-iridescent 4.5s linear infinite}@keyframes fx-iridescent{to{filter:hue-rotate(360deg);background-position:120% 50%}}
.fx-glass{position:relative;font:600 34px/1.1 "JetBrains Mono",monospace;letter-spacing:.12em;color:color-mix(in srgb,var(--ink) 58%,transparent);-webkit-text-stroke:1px color-mix(in srgb,var(--ink) 52%,transparent);text-shadow:0 1px #fff6,0 12px 24px #0000004d;animation:fx-glass 3.4s ease-in-out infinite}.fx-glass::before{content:attr(data-text);position:absolute;inset:0;color:var(--ink-3);opacity:.34;filter:blur(3px);transform:translate(4px,5px)}.fx-glass::after{content:attr(data-text);position:absolute;inset:0;color:transparent;background:linear-gradient(115deg,transparent 22%,#fff 44%,transparent 62%) 110%/260% 100%;background-clip:text;-webkit-background-clip:text;opacity:.55;animation:fx-glass-sheen 2.7s ease-in-out infinite}@keyframes fx-glass{50%{transform:translateY(-3px)}}@keyframes fx-glass-sheen{to{background-position:-110% 0}}
