.aff-page{isolation:isolate;background:var(--color-base);position:relative;overflow-x:clip}.aff-grid-floor{z-index:0;pointer-events:none;opacity:.32;background-image:linear-gradient(color-mix(in srgb, var(--color-line) 70%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--color-line) 70%, transparent) 1px, transparent 1px);transform-origin:top;background-size:48px 48px;height:min(68vh,680px);position:absolute;inset:0 0 auto;transform:perspective(900px)rotateX(58deg)translateY(-12%);-webkit-mask-image:linear-gradient(#0000008c,#0000 88%);mask-image:linear-gradient(#0000008c,#0000 88%)}.aff-aurora{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:clip}.aff-aurora:before{content:"";filter:blur(100px);opacity:.36;background:radial-gradient(circle at 40% 40%, color-mix(in oklab, var(--color-accent) 16%, transparent), transparent 64%);border-radius:50%;width:52vw;min-width:360px;height:52vw;min-height:360px;position:absolute;top:-18vw;right:-12vw}@media (prefers-reduced-motion:no-preference){.aff-aurora:before{animation:30s ease-in-out infinite alternate aff-aurora-drift}}@keyframes aff-aurora-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(-3vw,2vw)scale(1.05)}}.aff-stage{--rx:14deg;--ry:-20deg;perspective:1100px;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;min-height:420px;position:relative}.aff-stage:active{cursor:grabbing}.aff-stage__scene{transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform 80ms linear;position:absolute;inset:8% 6% 10%}.aff-stage__plate{background:radial-gradient(ellipse at 50% 40%, color-mix(in srgb, var(--color-accent) 18%, transparent), transparent 70%), color-mix(in srgb, var(--color-panel) 80%, transparent);border:1px solid color-mix(in srgb, var(--color-line) 90%, transparent);border-radius:50%;width:78%;height:42%;position:absolute;top:58%;left:50%;transform:rotateX(72deg)translateZ(-40px);box-shadow:0 40px 80px -40px #000000bf}.aff-stage__core{border:1px solid color-mix(in srgb, var(--color-accent) 35%, var(--color-line));background:linear-gradient(160deg, color-mix(in srgb, var(--color-accent) 10%, transparent), transparent 55%), color-mix(in srgb, var(--color-panel) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:.75rem;width:min(220px,48%);padding:1rem 1.1rem;position:absolute;top:42%;left:50%;transform:translateZ(48px);box-shadow:inset 0 1px #ffffff14,0 18px 40px -24px #000c}.aff-stage__node{border:1px solid var(--color-line);background:color-mix(in srgb, var(--color-raised) 92%, transparent);width:112px;transform-style:preserve-3d;border-radius:.625rem;padding:.55rem .65rem;position:absolute;box-shadow:0 12px 28px -18px #000000b3}.aff-stage__node--a{top:22%;left:8%;transform:translateZ(90px)rotateY(12deg)}.aff-stage__node--b{top:28%;right:6%;transform:translateZ(110px)rotateY(-14deg)}.aff-stage__node--c{bottom:14%;left:18%;transform:translateZ(70px)rotateY(8deg)}@media (prefers-reduced-motion:no-preference){.aff-stage__node--a{animation:5.5s ease-in-out infinite aff-float-a}.aff-stage__node--b{animation:6.2s ease-in-out infinite aff-float-b}.aff-stage__node--c{animation:7s ease-in-out infinite aff-float-c}}@keyframes aff-float-a{0%,to{transform:translateZ(90px)rotateY(12deg)translateY(0)}50%{transform:translateZ(96px)rotateY(12deg)translateY(-8px)}}@keyframes aff-float-b{0%,to{transform:translateZ(110px)rotateY(-14deg)translateY(0)}50%{transform:translateZ(118px)rotateY(-14deg)translateY(-10px)}}@keyframes aff-float-c{0%,to{transform:translateZ(70px)rotateY(8deg)translateY(0)}50%{transform:translateZ(78px)rotateY(8deg)translateY(-6px)}}.aff-beam{transform-origin:top;background:linear-gradient(180deg, color-mix(in srgb, var(--color-accent) 55%, transparent), transparent);opacity:.55;pointer-events:none;width:2px;height:90px;position:absolute;top:44%;left:50%}.aff-beam--1{transform:translateZ(40px)rotate(-38deg)}.aff-beam--2{transform:translateZ(40px)rotate(42deg)}.aff-beam--3{transform:translateZ(40px)rotate(168deg)}.aff-calc{border:1px solid color-mix(in srgb, var(--color-line) 90%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--color-accent) 5%, transparent), transparent 45%), color-mix(in srgb, var(--color-panel) 90%, transparent);border-radius:.5rem;box-shadow:inset 0 1px #ffffff12,0 24px 56px -36px #000000bf}.aff-calc__mode{border:1px solid var(--color-line);background:var(--color-raised);border-radius:.5rem;gap:2px;padding:3px;display:inline-flex}.aff-calc__mode button{color:var(--color-muted);border-radius:.375rem;padding:.45rem .85rem;font-size:12.5px;font-weight:600;transition:color .16s,background .16s,transform .12s}.aff-calc__mode button[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-ink)}.aff-calc__mode button:active{transform:scale(.98)}.aff-slider{appearance:none;background:color-mix(in srgb, var(--color-line) 80%, transparent);border-radius:999px;outline:none;width:100%;height:6px}.aff-slider::-webkit-slider-thumb{appearance:none;background:var(--color-accent);border:2px solid color-mix(in srgb, var(--color-accent-ink) 35%, transparent);width:20px;height:20px;box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 18%, transparent);cursor:grab;border-radius:50%}.aff-slider::-moz-range-thumb{background:var(--color-accent);border:2px solid color-mix(in srgb, var(--color-accent-ink) 35%, transparent);cursor:grab;border-radius:50%;width:20px;height:20px}.aff-metric{transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .22s}@media (prefers-reduced-motion:no-preference){.aff-metric[data-bump="1"]{animation:.42s cubic-bezier(.16,1,.3,1) aff-metric-bump}}@keyframes aff-metric-bump{0%{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.aff-bar{background:color-mix(in srgb, var(--color-line) 70%, transparent);border-radius:999px;height:8px;overflow:hidden}.aff-bar>span{border-radius:inherit;background:linear-gradient(90deg, var(--color-accent), color-mix(in srgb, var(--color-info) 70%, var(--color-accent)));height:100%;transition:width .32s cubic-bezier(.16,1,.3,1);display:block}@media (prefers-reduced-motion:reduce){.aff-stage__scene,.aff-bar>span,.aff-calc__mode button{transition:none!important}}
