@property --lp-tilt{syntax:"<angle>";inherits:true;initial-value:0deg}.lp-stage{--px:0;--py:0;--lp-tilt:9deg;position:relative}.lp-window{transform:perspective(2200px) rotateX(calc(var(--lp-tilt) - var(--py) * 1.5deg)) rotateY(calc(var(--px) * 2.5deg));transform-origin:50% 0;will-change:transform}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.lp-stage{animation:linear both lp-untilt;animation-timeline:scroll(root);animation-range:0 70vh}@media (pointer:coarse){.lp-stage{animation-name:lp-untilt-soft}}}}@keyframes lp-untilt{0%{--lp-tilt:16deg}to{--lp-tilt:0deg}}@keyframes lp-untilt-soft{0%{--lp-tilt:8deg}to{--lp-tilt:0deg}}.lp-float{--depth:12;transform:translate3d(calc(var(--px) * var(--depth) * -1px), calc(var(--py) * var(--depth) * -1px), 0);will-change:transform}.lp-bob{animation:7s ease-in-out infinite lp-bob}.lp-bob-late{animation:8s ease-in-out -3s infinite lp-bob}@keyframes lp-bob{0%,to{translate:0}50%{translate:0 -6px}}@media (prefers-reduced-motion:reduce),(pointer:coarse){.lp-stage{--lp-tilt:6deg}.lp-window,.lp-float{transform:none}.lp-window{transform:perspective(2200px) rotateX(var(--lp-tilt))}}@media (prefers-reduced-motion:reduce){.lp-window{transform:none}.lp-bob,.lp-bob-late{animation:none}}.lp-defer{content-visibility:auto;contain-intrinsic-size:auto var(--lp-h,1000px)}@media print{.lp-defer{content-visibility:visible}}.lp-floor{pointer-events:none;background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);transform-origin:50% 100%;opacity:.7;background-size:56px 56px;height:26rem;position:absolute;inset:auto -20% 0;transform:perspective(700px)rotateX(62deg);-webkit-mask-image:linear-gradient(#0000 15%,#000 90%);mask-image:linear-gradient(#0000 15%,#000 90%)}.lp-horizon{pointer-events:none;background:radial-gradient(60% 40% at 50% 0%, color-mix(in oklch, var(--sim-challenge), transparent 86%), transparent 70%), radial-gradient(50% 35% at 50% 100%, color-mix(in oklch, var(--sim-goal), transparent 88%), transparent 70%);position:absolute;inset:0}.lp-flow{height:var(--lp-card-h,27rem);perspective:1400px;touch-action:pan-y;position:relative}.lp-flow__card{--o:0;--a:0;width:var(--lp-card-w,22rem);height:100%;margin-left:calc(var(--lp-card-w,22rem) / -2);transform:translateX(calc(var(--o) * var(--lp-step,68%))) translateZ(calc(var(--a) * -140px)) rotateY(calc(var(--o) * -32deg));opacity:calc(1 - max(0, var(--a) - 1) * .55);transition:transform .8s var(--ease-out-quint), opacity .6s var(--ease-out-quint);position:absolute;top:0;left:50%}.lp-flow__card:after{content:"";background:var(--background);opacity:calc(min(var(--a), 1) * .5);pointer-events:none;transition:opacity .6s var(--ease-out-quint);border-radius:1rem;position:absolute;inset:0}.lp-flow__card[data-far=true]{opacity:0;pointer-events:none;visibility:hidden}.lp-flow__card[data-active=false]>*{pointer-events:none}.lp-flow__card[data-active=false]{cursor:pointer}@media (max-width:639px){.lp-flow__card{transform:translateX(calc(var(--o) * var(--lp-step,84%))) translateZ(calc(var(--a) * -90px)) rotateY(calc(var(--o) * -22deg))}}@media (prefers-reduced-motion:reduce){.lp-flow__card{transform:translateX(calc(var(--o) * 104%));transition:opacity .2s linear}.lp-flow__card[data-active=false]{opacity:0;visibility:hidden}}.lp-timer{transform-origin:0;animation:lp-timer var(--lp-dwell,5.2s) linear both}.lp-timer[data-paused=true]{animation-play-state:paused}@keyframes lp-timer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.lp-tilt{transition:transform .6s var(--ease-out-quint), box-shadow .6s var(--ease-out-quint)}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.lp-tilt:hover{transform:perspective(1200px)rotateX(3deg)rotateY(-4deg)translateY(-4px)}.lp-tilt-r:hover{transform:perspective(1200px)rotateX(3deg)rotateY(4deg)translateY(-4px)}}.lp-panel-in{animation:lp-panel-in .5s var(--ease-out-quint) both}@keyframes lp-panel-in{0%{opacity:0;transform:translateY(10px)scale(.99)}to{opacity:1;transform:none}}.lp-flow__card[data-active=true] .lp-stamp{animation:var(--animate-sim-stamp)}.lp-flow__card[data-active=true] .lp-stamp-late{animation:var(--animate-sim-stamp);animation-delay:.35s}
