.logo{display:flex;align-items:center;justify-content:center}.logo img{width:100%;height:auto}.logo--xsmall{width:80px}.logo--small{width:120px}.logo--medium{width:180px}.logo--large{width:240px}.logo--animate{transform:scale(.5);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}.logo--animated{transform:scale(1);opacity:1}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-body);font-weight:700;border-radius:var(--radius-full);transition:all .2s ease;cursor:pointer;border:none;outline:none;white-space:nowrap}.button:disabled{opacity:.5;cursor:not-allowed}.button--full{width:100%}.button--primary{background:var(--color-primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.button--secondary{background:var(--color-card-bg);color:var(--color-text)}.button--secondary:hover:not(:disabled){background:var(--color-border)}.button--outline{background:transparent;color:var(--color-text);border:2px solid var(--color-border)}.button--outline:hover:not(:disabled){border-color:var(--color-text)}.button--ghost{background:transparent;color:var(--color-text-secondary);opacity:.7}.button--ghost:hover:not(:disabled){opacity:1;color:var(--color-text)}.button--small{padding:8px 16px;font-size:14px}.button--medium{padding:14px 24px;font-size:16px}.button--large{padding:18px 32px;font-size:18px}.button__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.button__icon svg{width:20px;height:20px;display:block}.button__text{flex-shrink:1}.language-switcher{position:fixed;top:16px;right:16px;padding:8px 12px;background:var(--color-card-bg);border:none;border-radius:var(--radius-full);font-size:14px;font-weight:600;cursor:pointer;z-index:50;transition:background .2s ease}.language-switcher:hover{background:var(--color-border)}.home-page__content{display:flex;flex-direction:column;align-items:center;gap:48px;position:relative;width:100%}.home-page__logo-container{position:relative;display:flex;justify-content:center;align-items:center;width:300px;height:300px;z-index:1}.home-page__logo-container .logo{z-index:10}.home-page__meme-card{position:absolute;width:120px;height:120px;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0003;opacity:0;transition:all .8s cubic-bezier(.34,1.56,.64,1);transform:translate(-50%,-50%) scale(.5);left:50%;top:50%;pointer-events:none;z-index:1}.home-page__meme-card img{width:100%;height:100%;object-fit:cover}.home-page__meme-card--active{opacity:.9;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--rotation)) scale(var(--scale));transition-delay:var(--delay)}.home-page__buttons{display:flex;flex-direction:column;gap:12px;width:100%;max-width:300px;z-index:1}.input{font-family:var(--font-body);font-size:16px;font-weight:600;padding:14px 20px;border:2px solid var(--color-border);border-radius:var(--radius-full);background:#fff;color:var(--color-text);text-align:center;outline:none;transition:border-color .2s ease}.input::placeholder{color:var(--color-text-secondary);font-weight:400}.input:focus{border-color:var(--color-text)}.input--full{width:100%}.avatar{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar--clickable{cursor:pointer}.avatar--clickable:hover{transform:scale(1.05)}.avatar__image{width:100%;height:100%;object-fit:contain;border-radius:50%}.avatar--small{width:36px;height:36px}.avatar--medium{width:48px;height:48px}.avatar--large{width:64px;height:64px}.avatar--disabled{opacity:.3;cursor:not-allowed}.avatar--disabled:hover{transform:none}.avatar__selected-ring{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:3px solid var(--color-success);border-radius:50%;animation:pop .3s ease-out}.avatar__ready-ring{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:3px solid var(--color-success);border-radius:50%}.avatar__crown{position:absolute;top:-10px;right:-25px;transform:translate(-50%);width:36px;height:auto;z-index:1}.avatar--large .avatar__crown{top:-8px;right:-26px;width:42px}.avatar--winner .avatar__image{box-shadow:0 0 0 3px var(--color-winner)}.avatar-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:8px}.create-room-page,.join-room-page{gap:24px;padding-top:40px}.join-room-page__observer-link{display:none;background:none;border:none;color:#8e8e93;font-size:14px;text-decoration:underline;cursor:pointer;padding:8px;transition:color .2s;margin-top:-8px}.join-room-page__observer-link:hover:not(:disabled){color:#636366}.join-room-page__observer-link:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}@media (min-width: 601px){.join-room-page__observer-link{display:block}}.join-room-page__inputs{display:flex;flex-direction:column;gap:12px;width:100%}.player-list{display:flex;flex-direction:column;gap:8px;width:100%}.player-list__item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-card-bg);border-radius:var(--radius-lg)}.player-list__name{flex:1;font-size:18px;font-weight:700;text-transform:uppercase}.player-list__score{font-size:24px;font-weight:800;color:var(--color-text-secondary)}.player-list__score--winner{color:var(--color-winner)}.player-list__item--winner{background:var(--color-winner)}.player-list__item--winner .player-list__name,.player-list__item--winner .player-list__score{color:var(--color-card-bg)}.timer{font-weight:600;font-variant-numeric:tabular-nums}.timer--warning{color:#ef4444;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.info-line{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--color-text-secondary);font-size:14px}.info-line__dot{font-weight:700}.lobby-page{gap:20px;padding-top:40px}.lobby-page__instructions{text-align:center;color:var(--color-text-secondary);font-size:16px;line-height:1.4;max-width:280px}.lobby-page__buttons{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:auto}.splash-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:24px;animation:fadeIn .3s ease-out}.splash-screen__text{text-align:center}.splash-screen__title{font-family:var(--font-display);font-size:48px;font-weight:400;line-height:1.1;margin:0;animation:slideUp .5s ease-out .2s both}.splash-screen__subtitle{font-size:24px;color:var(--color-text-secondary);margin-top:8px;animation:slideUp .5s ease-out .3s both}.player-avatar-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:-8px}.situation-card{background:var(--color-situation-bg);color:var(--color-situation-text);border-radius:var(--radius-lg);padding:20px 24px;min-height:80px;display:flex;align-items:center;justify-content:center;text-align:center}.situation-card--small{padding:14px 18px;min-height:60px;font-size:14px}.situation-card--medium{padding:20px 24px;min-height:80px;font-size:16px}.situation-card--large{padding:24px 28px;min-height:100px;font-size:18px}.situation-card--rotated{transform:rotate(3deg)}.situation-card__text{font-weight:600;line-height:1.4}.meme-preview{position:relative;width:100%;max-width:280px;margin:0 auto 24px}.meme-preview__meme-area{aspect-ratio:1;background:var(--color-card-bg);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;padding:0}.meme-preview__placeholder{text-align:center;color:var(--color-text-secondary);font-size:18px;padding:24px;line-height:1.4}.meme-preview__image{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md)}.meme-preview__situation{position:absolute;bottom:-20px;right:-10px;max-width:200px;z-index:1}.meme-grid{display:grid;gap:8px;width:100%;justify-content:center}.meme-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr));max-width:100%}.meme-grid--cols-4{grid-template-columns:repeat(4,minmax(0,1fr));max-width:100%}.meme-grid--cols-5{grid-template-columns:repeat(5,minmax(0,1fr));max-width:100%}.meme-grid__item{aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;position:relative;width:100%}.meme-grid__item:hover{transform:scale(1.02)}.meme-grid__item--selected{box-shadow:0 0 0 3px var(--color-success);transform:scale(1.02)}.meme-grid__image{width:100%;height:100%;object-fit:cover}.meme-grid__item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px #00000026;pointer-events:none;background:#00000005;mix-blend-mode:darken}.choosing-phase{padding-top:16px}.choosing-phase__waiting{text-align:center;color:var(--color-text-secondary);font-size:16px;margin-top:24px}.revealing-stack{position:relative;width:260px;height:300px;margin:0 auto}.revealing-stack__pile{position:absolute;width:100%;height:100%;top:0;left:0}.revealing-stack__card{position:absolute;width:240px;height:240px;left:50%;top:50%;margin-left:-120px;margin-top:-120px;perspective:1200px;transform:translate(var(--stack-x, 0px)) translateY(calc(var(--stack-offset, 0px) + var(--stack-y, 0px))) rotate(var(--stack-rotate, 0deg));transition:transform .5s cubic-bezier(.4,0,.2,1);z-index:1}.revealing-stack__card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1)}.revealing-stack__card-front,.revealing-stack__card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 4px 12px #0000004d,0 2px 4px #0003}.revealing-stack__card-front{background:var(--color-card-bg)}.revealing-stack__card-back{background:var(--color-meme-back);transform:rotateY(180deg);display:flex;align-items:center;justify-content:center}.revealing-stack__logo{width:55%;height:auto;opacity:.9;display:block;will-change:transform}.revealing-stack__card-image{width:100%;height:100%;object-fit:cover}.revealing-stack__card .revealing-stack__card-inner{transform:rotateY(180deg)}.revealing-stack__card--revealed .revealing-stack__card-inner,.revealing-stack__card--moving-down .revealing-stack__card-inner{transform:rotateY(0)}.revealing-stack__card--flipping{transition:transform .5s cubic-bezier(.4,0,.2,1)}.revealing-stack__card--flipping .revealing-stack__card-inner{transform:rotateY(0);transition:transform .6s cubic-bezier(.4,0,.2,1)}@keyframes stackEntrance{0%{opacity:0;transform:translate(var(--stack-x, 0px)) translateY(calc(var(--stack-offset, 0px) + var(--stack-y, 0px) + 30px)) rotate(var(--stack-rotate, 0deg)) scale(.9)}to{opacity:1;transform:translate(var(--stack-x, 0px)) translateY(calc(var(--stack-offset, 0px) + var(--stack-y, 0px))) rotate(var(--stack-rotate, 0deg)) scale(1)}}.revealing-stack__card{animation:stackEntrance .4s cubic-bezier(.34,1.56,.64,1) backwards}.revealing-stack__card:nth-child(1){animation-delay:.02s}.revealing-stack__card:nth-child(2){animation-delay:.04s}.revealing-stack__card:nth-child(3){animation-delay:.06s}.revealing-stack__card:nth-child(4){animation-delay:.08s}.revealing-stack__card:nth-child(5){animation-delay:.1s}.revealing-stack__card:nth-child(6){animation-delay:.12s}.revealing-phase{padding-top:24px;justify-content:flex-start}.revealing-phase__stack-container{display:flex;justify-content:center;align-items:center;margin:32px 0;min-height:280px}.revealing-phase__buttons{width:100%;margin-top:auto}.voting-phase{padding-top:16px}.voting-phase__waiting{text-align:center;color:var(--color-text-secondary);font-size:16px;margin-top:24px}.meme-stack{position:relative;width:240px;height:240px;margin:0 auto}.meme-stack__item{position:absolute;width:100%;height:100%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);transition:transform .3s ease}.meme-stack__item--top{z-index:10!important}.meme-stack__image{width:100%;height:100%;object-fit:cover}.winner-phase{padding-top:24px;justify-content:flex-start}.winner-phase__winner{display:flex;align-items:center;gap:16px;padding:16px 24px;background:var(--color-card-bg);border-radius:var(--radius-full);margin-top:24px;animation:pop .5s ease-out}.winner-phase__name{font-size:20px;font-weight:700;text-transform:uppercase}.leaderboard-phase{padding-top:40px}.leaderboard-phase__buttons{width:100%;margin-top:auto}.confetti-piece{position:absolute;width:10px;height:20px;top:-20px;border-radius:2px;animation:confetti 3s ease-in-out forwards}.game-over-phase{padding-top:24px}.game-over-phase__header{text-align:center;margin-bottom:32px;animation:slideUp .6s ease-out}.game-over-phase__title{font-family:var(--font-display);font-size:48px;font-weight:400;line-height:1.1;margin:0 0 8px;color:var(--color-text);animation:slideUp .5s ease-out .1s both}.game-over-phase__subtitle{font-size:24px;color:var(--color-text-secondary);margin:0 0 24px;font-weight:600;animation:slideUp .5s ease-out .2s both}.game-over-phase__winner{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:var(--color-card-bg);border-radius:var(--radius-xl);margin:0 auto;max-width:300px;animation:pop .6s ease-out .3s both;box-shadow:var(--shadow-md)}.game-over-phase__winner-name{font-size:24px;font-weight:700;text-transform:uppercase;color:var(--color-winner);letter-spacing:.5px}.game-over-phase__buttons{width:100%;margin-top:auto}.game-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.game-page--observer .game-phase{max-width:none;width:100%;justify-content:center}.game-page--observer .choosing-phase--observer,.game-page--observer .revealing-phase--observer,.game-page--observer .voting-phase--observer{justify-content:flex-start;height:100vh;max-height:100dvh;padding:24px 40px;gap:24px}.game-page--observer .choosing-phase__observer-content,.game-page--observer .voting-phase__observer-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%}.game-page--observer .choosing-phase__observer-content .situation-card,.game-page--observer .voting-phase__observer-content .situation-card{max-width:800px;width:100%;aspect-ratio:16/9}.game-page--observer .choosing-phase__observer-content .situation-card .situation-card__text,.game-page--observer .voting-phase__observer-content .situation-card .situation-card__text,.game-page--observer .revealing-phase--observer .situation-card .situation-card__text,.game-page--observer .winner-phase .situation-card .situation-card__text{font-size:36px}.game-page--observer .voting-phase__observer-text{margin-top:32px;font-size:24px;font-weight:600;color:#1c1c1e}.game-page--observer .revealing-phase--observer .situation-card{max-width:600px}.game-page--observer .revealing-phase--observer .revealing-phase__stack-container{flex:1;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.game-page--observer .revealing-phase--observer .revealing-stack{height:100%;width:100%;max-width:none;flex-grow:1}.game-page--observer .revealing-phase--observer .revealing-stack__card{height:100%;width:auto;aspect-ratio:auto;max-width:90vw;margin-left:0;margin-top:0;left:50%;top:50%;transform:translate(-50%,-50%) translate(var(--stack-x, 0px)) translateY(calc(var(--stack-offset, 0px) + var(--stack-y, 0px))) rotate(var(--stack-rotate, 0deg))}.game-page--observer .revealing-phase--observer .revealing-stack__card-image{height:100%;width:100%;object-fit:cover}.game-page--observer .revealing-phase--observer .revealing-stack__card-inner,.game-page--observer .revealing-phase--observer .revealing-stack__card-front,.game-page--observer .revealing-phase--observer .revealing-stack__card-back{height:100%;width:auto;aspect-ratio:1/1}.game-phase{flex:1;display:flex;flex-direction:column;align-items:center;padding:24px 16px;max-width:400px;margin:0 auto;width:100%;gap:16px}.textarea{font-family:var(--font-body);font-size:16px;font-weight:600;padding:14px 20px;border:2px solid var(--color-border);border-radius:16px;background:#fff;color:var(--color-text);text-align:left;outline:none;transition:border-color .2s ease;resize:vertical;min-height:80px}.textarea::placeholder{color:var(--color-text-secondary);font-weight:400}.textarea:focus{border-color:var(--color-text)}.textarea--full{width:100%}.admin-page{width:100%!important;max-width:100%!important;min-width:100%;padding:24px 16px;margin:0;box-sizing:border-box}@media (min-width: 768px){.admin-page{padding:32px 24px}}@media (min-width: 1024px){.admin-page{padding:40px 32px}}@media (min-width: 1440px){.admin-page{padding:48px}}.admin-page__login{display:flex;flex-direction:column;gap:16px;width:100%;max-width:300px}.admin-page__header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:24px}.admin-page__title{font-family:var(--font-display);font-size:24px;margin:0;text-align:center}.admin-page__tabs{display:flex;gap:8px;width:100%;margin-bottom:24px;border-bottom:2px solid var(--color-border)}.admin-page__tab{flex:1;padding:12px 16px;background:none;border:none;border-bottom:2px solid transparent;font-family:var(--font-body);font-size:16px;color:var(--color-text-secondary);cursor:pointer;transition:all .2s;margin-bottom:-2px}.admin-page__tab:hover{color:var(--color-text)}.admin-page__tab--active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:600}.admin-page__content{width:100%}.admin-page__add-section{display:flex;gap:12px;margin-bottom:24px;align-items:center}.admin-page__file-label{cursor:pointer}.admin-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;width:100%}.admin-page__card{position:relative;aspect-ratio:1;background:var(--color-card-bg);border-radius:var(--radius-md);overflow:hidden;transition:transform .2s,box-shadow .2s}.admin-page__card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.admin-page__card-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.admin-page__card-image img{width:100%;height:100%;object-fit:cover}.admin-page__card--situation{display:flex;align-items:center;justify-content:center;padding:16px;background:var(--color-situation-bg);color:var(--color-situation-text)}.admin-page__card-text{font-size:12px;text-align:left;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;width:100%;display:flex;flex-direction:column;gap:8px;height:100%}.admin-page__card-text>div{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px;background:#0000000d;border-radius:var(--radius-sm);word-break:break-word}.admin-page__card-text>div>strong{font-size:10px;margin-bottom:4px;text-align:center;opacity:.7}.admin-page__card-text>div>div{text-align:center;flex:1;display:flex;align-items:flex-start;padding-top:24px;justify-content:center}.admin-page__card-actions{position:absolute;top:8px;right:8px;opacity:0;transition:opacity .2s}.admin-page__card:hover .admin-page__card-actions{opacity:1}.admin-page__card>.admin-page__delete-btn{position:absolute;top:8px;right:8px;opacity:0;transition:opacity .2s}.admin-page__card:hover>.admin-page__delete-btn{opacity:1}.admin-page__edit-btn,.admin-page__delete-btn{width:32px;height:32px;border-radius:var(--radius-full);color:#fff;border:none;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.admin-page__edit-btn{background:#3b82f6cc}.admin-page__edit-btn:hover{background:#3b82f6}.admin-page__delete-btn{background:#f00c;font-size:24px}.admin-page__delete-btn:hover{background:red}.admin-page__edit-form{display:flex;flex-direction:column;gap:8px;width:100%;height:100%}.admin-page__edit-form input{flex:1;font-size:12px;border-radius:var(--radius-md)}.admin-page__edit-buttons{display:flex;gap:8px;margin-top:auto}.admin-page__edit-buttons .button--outline{background:#fff}.admin-page__error{padding:12px;background:#ff00001a;color:#dc2626;border-radius:var(--radius-md);margin-bottom:16px;font-size:14px}.admin-page__loading{text-align:center;padding:24px;color:var(--color-text-secondary)}@media (max-width: 599px){.admin-page__grid{grid-template-columns:1fr;gap:12px}.admin-page__header{flex-direction:column;gap:16px;align-items:flex-start}.admin-page__add-section{flex-direction:column}}.how-to-play-page{padding:2rem 1.5rem;max-width:600px;margin:0 auto;overflow-y:auto;display:flex;flex-direction:column;align-items:center;min-height:100vh}.how-to-play-page__container{width:100%;padding:1rem 0;margin-top:4rem}.how-to-play-page__title{font-size:2.5rem;margin-bottom:2.5rem;text-align:center;color:var(--color-text);font-family:var(--font-display);text-transform:uppercase;letter-spacing:-1px}.how-to-play-page__steps{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2.5rem}.how-to-play-page__step{display:flex;gap:1rem;align-items:flex-start}.how-to-play-page__step-number{display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;background:var(--color-primary);color:#fff;border-radius:50%;font-size:.9rem;font-weight:700;flex-shrink:0;margin-top:.2rem}.how-to-play-page__step-text{font-size:1.1rem;line-height:1.5;margin:0;color:var(--color-text)}.how-to-play-page__actions{display:flex;justify-content:center;width:100%}@media (max-width: 480px){.how-to-play-page__container{padding:1.5rem}.how-to-play-page__title{font-size:1.75rem}.how-to-play-page__step-text{font-size:1rem}}:root{--color-bg: #ffffff;--color-text: #1a1a1a;--color-text-secondary: #888888;--color-primary: #000000;--color-primary-hover: #333333;--color-border: #e5e5e5;--color-card-bg: #f5f5f5;--color-success: #22c55e;--color-winner: #8b5cf6;--color-situation-bg: #1a1a1a;--color-situation-text: #ffffff;--color-meme-back: #1e1b4b;--font-display: "Dela Gothic One", cursive;--font-body: "Nunito", sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-body);font-size:16px;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;min-height:100dvh;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}input,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}img{max-width:100%;height:auto}.page{flex:1;display:flex;flex-direction:column;align-items:center;padding:24px 16px;max-width:400px;margin:0 auto;width:100%}.page-center{justify-content:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes flip{0%{transform:perspective(400px) rotateY(0)}to{transform:perspective(400px) rotateY(180deg)}}@keyframes flipBack{0%{transform:perspective(400px) rotateY(180deg)}to{transform:perspective(400px) rotateY(0)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideUp .4s ease-out}.animate-bounce{animation:bounce .5s ease-in-out}.animate-pop{animation:pop .3s ease-out}.meme-bg{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:-1;overflow:hidden}.meme-bg-item{position:absolute;width:80px;height:80px;border-radius:var(--radius-md);opacity:.3;object-fit:cover}.confetti-container{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:100;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:20px;top:-20px;animation:confetti 3s ease-in-out forwards}
