:root{--bg: #0a0a0a;--card: #131313;--teal: #1ea2b1;--teal-bright: #2bc0d1;--yellow: #ffe500;--green: #00c87a;--red: #ff3b3b;--text: #f5f5f5;--muted: #8a8a8a;--motion-fast: .15s;--motion-base: .25s;--motion-slow: .4s;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none}button{font-family:inherit;cursor:pointer;border:none}@keyframes dober-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes dober-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}@keyframes screen-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.screen-enter{animation:screen-enter var(--motion-slow) var(--ease) both}@keyframes node-enter{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}.node-enter{animation:node-enter var(--motion-fast) var(--ease) both}@keyframes celebration-bounce{0%{transform:scale(.6);opacity:0}55%{transform:scale(1.15);opacity:1}75%{transform:scale(.97)}to{transform:scale(1);opacity:1}}.celebration-bounce{animation:celebration-bounce var(--motion-slow) var(--ease) both}.dober-pop-enter{animation:dober-pop var(--motion-slow) var(--ease) both}@keyframes particle-fly{0%{opacity:0;transform:translate(0) scale(.5) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate(var(--tx),var(--ty)) scale(1) rotate(var(--rot))}}.particle{animation:particle-fly var(--motion-slow) var(--ease) both;pointer-events:none}.dober-btn{box-shadow:0 6px 0 var(--lip, transparent);transition:transform var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease)}.dober-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--lip, transparent)}@keyframes match-pending-pulse{0%,to{opacity:1}50%{opacity:.6}}.match-pending{animation:match-pending-pulse var(--motion-slow) var(--ease) infinite}:root{--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}.dober-btn{position:relative;overflow:hidden}.dober-btn:after{content:"";position:absolute;top:0;bottom:0;left:-45%;width:40%;opacity:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent);transform:skew(-18deg);pointer-events:none}.dober-btn--cta:not(:disabled):after{animation:btn-sheen-idle 9s ease-in-out infinite}@keyframes btn-sheen-idle{0%{left:-45%;opacity:0}4%{opacity:1}16%{left:130%;opacity:1}17%,to{left:130%;opacity:0}}.dober-card{transition:transform var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),box-shadow var(--motion-base) var(--ease);will-change:transform}.dober-card:active{transform:scale(.975);transition-duration:90ms}.dober-card:hover{transform:translateY(-4px);border-color:#1ea2b1;box-shadow:0 18px 50px -30px #1ea2b1}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.node-breathe{animation:breathe 2s var(--ease) infinite}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rise-in{animation:rise-in var(--motion-base) var(--ease) both;animation-delay:calc(var(--i, 0) * 60ms)}@keyframes soft-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.soft-shake{animation:soft-shake .3s var(--ease)}@keyframes latch-pop{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}.latch-pop{animation:latch-pop .26s var(--ease-spring)}@keyframes check-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.check-pop{animation:check-pop .26s var(--ease-spring) both}@keyframes shimmer{to{background-position:200% 0}}.skeleton{background:linear-gradient(100deg,#ffffff0a 40%,#ffffff1a,#ffffff0a 60%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0}body:before{width:78vw;height:78vw;top:-26vw;right:-22vw;background:radial-gradient(circle,#2bc0d14d,#2bc0d100 68%);animation:orb-drift-a 22s ease-in-out infinite alternate}body:after{width:68vw;height:68vw;bottom:-26vw;left:-22vw;background:radial-gradient(circle,#1ea2b138,#1ea2b100 68%);animation:orb-drift-b 27s ease-in-out infinite alternate}#root{position:relative;z-index:1}@keyframes orb-drift-a{0%{transform:translate(0) scale(1)}to{transform:translate(-7vw,9vw) scale(1.18)}}@keyframes orb-drift-b{0%{transform:translate(0) scale(1)}to{transform:translate(9vw,-7vw) scale(1.22)}}.dober-card{transition:transform .14s var(--ease-spring),border-color var(--motion-fast) var(--ease);will-change:transform}.dober-card:active{transform:translateY(4px) scale(.995);transition:transform 90ms ease-out}.dober-card:hover{border-color:#2bc0d18c}.dober-btn{transition:transform .24s var(--ease-spring),box-shadow var(--motion-fast) var(--ease)}.dober-btn:active:not(:disabled){transform:translateY(6px);transition:transform 90ms ease-out;box-shadow:0 0 0 var(--lip, transparent)}.ripple{position:absolute;border-radius:50%;background:#ffffff4d;transform:scale(0);animation:ripple-go .56s var(--ease);pointer-events:none;z-index:0}@keyframes ripple-go{to{transform:scale(1);opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.85) translateY(6px)}60%{opacity:1;transform:scale(1.03)}to{transform:scale(1)}}.pop-in{animation:pop-in var(--motion-base) var(--ease-spring) both;animation-delay:calc(var(--i, 0) * 55ms)}@media(prefers-reduced-motion:reduce){:root{--motion-fast: .01ms;--motion-base: .01ms;--motion-slow: .01ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
