:root{--parchment: #FAF6EF;--parchment-dark: #EFE7D7;--parchment-deep: #E3D5C0;--forest: #1B4332;--forest-mid: #2D6A4F;--sage: #52B788;--mint: #B7E4C7;--amber: #D4A017;--amber-light: #F0CC6A;--terracotta: #B5541A;--bark: #6B4C3B;--soil: #2E1F14;--mist: #D8ECD6;--white: #FFFFFF;--shadow-soft: 0 4px 20px rgba(27, 67, 50, .1);--shadow-med: 0 8px 32px rgba(27, 67, 50, .15);--shadow-deep: 0 16px 48px rgba(27, 67, 50, .2);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Nunito,sans-serif;background-color:var(--parchment);color:var(--soil);min-height:100vh;background-image:radial-gradient(circle at 20px 20px,rgba(107,76,59,.035) 1.5px,transparent 0),radial-gradient(circle at 60px 60px,rgba(107,76,59,.035) 1.5px,transparent 0);background-size:80px 80px}.card-scene{perspective:1200px}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,.2,.2,1);cursor:pointer}.card-inner.is-flipped,.card-inner.is-matched{transform:rotateY(180deg)}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-back-face{background:linear-gradient(145deg,var(--forest) 0%,var(--forest-mid) 100%);border:2px solid rgba(255,255,255,.12)}.card-back-face:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1.5px solid rgba(255,255,255,.18);border-radius:calc(var(--radius-md) - 4px)}.card-back-face:after{content:"🌿";font-size:1.6rem;opacity:.45}.card-front-face{transform:rotateY(180deg);background:var(--white);border:2px solid var(--parchment-deep);box-shadow:var(--shadow-soft)}.card-front-face.is-matched-face{background:linear-gradient(145deg,#f0faf4,#d8ecd6);border-color:var(--sage)}@keyframes matchPulse{0%{transform:rotateY(180deg) scale(1)}40%{transform:rotateY(180deg) scale(1.06)}to{transform:rotateY(180deg) scale(1)}}.card-inner.is-matched{animation:matchPulse .4s ease-out}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .45s ease-out both}.fade-up:nth-child(1){animation-delay:0s}.fade-up:nth-child(2){animation-delay:.06s}.fade-up:nth-child(3){animation-delay:.12s}.fade-up:nth-child(4){animation-delay:.18s}.fade-up:nth-child(5){animation-delay:.24s}.fade-up:nth-child(6){animation-delay:.3s}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulse{0%,to{opacity:.5}50%{opacity:.9}}.skeleton{background:#e3d5c0;border-radius:8px;animation:pulse 1.6s ease-in-out infinite}@keyframes floatLeaf{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-14px) rotate(4deg)}70%{transform:translateY(-7px) rotate(-2deg)}}.auth-float{animation:floatLeaf var(--dur, 6s) ease-in-out infinite}.auth-input{width:100%;font-family:Nunito,sans-serif;font-size:1.05rem;font-weight:600;color:#2e1f14;background:#fff;border:2px solid #D8C9B8;border-radius:12px;padding:14px 18px;outline:none;transition:border-color .18s ease,box-shadow .18s ease;-webkit-appearance:none}.auth-input::placeholder{color:#c0afa0;font-weight:500}.auth-input:focus{border-color:#2d6a4f;box-shadow:0 0 0 3px #2d6a4f24}.auth-input.error{border-color:#b5541a;box-shadow:0 0 0 3px #b5541a1f}@keyframes shake{0%,to{transform:translate(0)}18%{transform:translate(-7px)}36%{transform:translate(7px)}54%{transform:translate(-5px)}72%{transform:translate(5px)}90%{transform:translate(-2px)}}@keyframes pb-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes matchPop{0%{transform:scale(1)}40%{transform:scale(1.04)}70%{transform:scale(.98)}to{transform:scale(1)}}.wm-shake{animation:shake .45s ease-in-out}.wm-matched{animation:matchPop .35s ease-out}.pb-selected{animation:pb-wobble 1.8s ease-in-out infinite;transform-origin:center bottom}button{font-family:Nunito,sans-serif;cursor:pointer;border:none;background:none}button:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
