:root{--app-height: 100vh}html,body,#root{min-height:100%}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}.presentation-shell{min-height:var(--app-height);padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));touch-action:pan-y}.presentation-shell-mobile{padding-bottom:calc(108px + env(safe-area-inset-bottom))}.mobile-slide-stage{border:1px solid rgba(203,213,225,.8);border-radius:0;overflow-x:hidden!important;overflow-y:auto!important}.mobile-slide-stage .grid:has(>[data-base-card=true]){grid-template-columns:minmax(0,1fr)!important;grid-auto-flow:row!important}.mobile-slide-stage [data-base-card=true]{min-width:0}.mobile-controls{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid rgba(203,213,225,.9);border-radius:999px;background:#ffffffeb;color:#051c2c;box-shadow:0 10px 28px #0f172a24;transform:translate(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-controls button{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:999px;background:#051c2c;color:#fff}.mobile-controls span{min-width:48px;text-align:center;font:600 12px/1.2 Inter,Noto Sans SC,system-ui,sans-serif;font-variant-numeric:tabular-nums}@media(max-width:768px),(pointer:coarse){body{overflow:hidden;position:fixed;width:100%}.presentation-shell{align-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes scaleBounce{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.18)}to{opacity:1;transform:scale(1)}}@keyframes lineExpand{0%{width:0;opacity:0}to{width:200px;opacity:1}}@keyframes lineExpandCenter{0%{width:0;opacity:0}to{width:96px;opacity:1}}@keyframes topLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes bgSlideIn{0%{transform:skew(-12deg) translate(100%);opacity:0}to{transform:skew(-12deg) translate(80px);opacity:.3}}@keyframes bgExpand{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:.2}}@keyframes ringPulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}50%{opacity:1}to{transform:translate(-50%,-50%) scale(1.3);opacity:0}}@keyframes ripple{0%{transform:scale(.5);opacity:0}30%{opacity:1}to{transform:scale(2.5);opacity:0}}@keyframes pingSlow{0%{transform:scale(1);opacity:.5}to{transform:scale(2);opacity:0}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(10px,-20px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(-15px,15px)}}@keyframes float3{0%,to{transform:translate(0)}50%{transform:translate(5px,-25px)}}@keyframes float4{0%,to{transform:translate(0)}50%{transform:translate(-8px,18px)}}.animate-fade-in{opacity:0;animation:fadeIn .8s ease-out forwards}.animate-fade-in-up{opacity:0;animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) forwards}.animate-fade-in-left{opacity:0;animation:fadeInLeft .8s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{opacity:0;animation:scaleIn .6s cubic-bezier(.34,1.56,.64,1) forwards}.animate-scale-bounce{opacity:0;animation:scaleBounce .8s cubic-bezier(.34,1.56,.64,1) forwards}.animate-line-expand{animation:lineExpand .6s cubic-bezier(.16,1,.3,1) forwards}.animate-line-expand-center{animation:lineExpandCenter .5s cubic-bezier(.16,1,.3,1) .6s forwards}.animate-top-line{animation:topLine .8s cubic-bezier(.16,1,.3,1) forwards;transform-origin:left}.animate-bg-slide-in{animation:bgSlideIn 1.1s cubic-bezier(.16,1,.3,1) .1s forwards}.animate-bg-expand{animation:bgExpand 1.3s cubic-bezier(.16,1,.3,1) .2s forwards;transform-origin:bottom left}.animate-ring-pulse{animation:ringPulse 3s ease-out infinite}.animate-ring-pulse-delayed{animation:ringPulse 3s ease-out 1s infinite}.animate-ring-pulse-delayed-2{animation:ringPulse 3s ease-out 2s infinite}.animate-ripple{animation:ripple 4s ease-out infinite}.animate-ripple-delayed{animation:ripple 4s ease-out 1.3s infinite}.animate-ripple-delayed-2{animation:ripple 4s ease-out 2.6s infinite}.animate-ping-slow{animation:pingSlow 2s ease-out infinite}.animate-spin-slow{animation:spinSlow 20s linear infinite}.animate-float-1{animation:float1 4s ease-in-out infinite}.animate-float-2{animation:float2 5s ease-in-out .5s infinite}.animate-float-3{animation:float3 6s ease-in-out 1s infinite}.animate-float-4{animation:float4 4.5s ease-in-out 1.5s infinite}.fill-mode-forwards{animation-fill-mode:forwards}
