@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=JetBrains+Mono:wght@400;500&family=Manrope:wght@400;500;600;700&family=Source+Sans+3:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap");:root{--cm-lemon-lime:#bae100;--cm-steel-blue:#2684c0;--cm-steel-blue-2:#257dc0;--cm-willow-green:#84b94f;--cm-yellow:#ff0;--cm-ink:#0e1a1f;--cm-graphite:#1d2a33;--cm-slate:#4a5b66;--cm-mist:#e8eef2;--cm-cloud:#f6f8fa;--cm-white:#fff;--cm-danger:#e25a5a;--cm-primary:var(--cm-steel-blue);--cm-primary-strong:var(--cm-steel-blue-2);--cm-accent:var(--cm-lemon-lime);--cm-success:var(--cm-willow-green);--cm-warning:var(--cm-yellow);--cm-font-display:"Space Grotesk",sans-serif;--cm-font-body:"Source Sans 3",sans-serif;--cm-font-sans:"Manrope",sans-serif;--cm-font-mono:"JetBrains Mono",monospace;--cm-font-logo:"Bebas Neue",sans-serif;--cm-space-1:4px;--cm-space-2:8px;--cm-space-3:12px;--cm-space-4:16px;--cm-space-5:24px;--cm-space-6:32px;--cm-space-7:48px;--cm-space-8:64px;--cm-radius-sm:8px;--cm-radius-md:14px;--cm-radius-lg:22px;--cm-shadow-sm:0 6px 18px rgba(14,26,31,.08);--cm-shadow-md:0 16px 40px rgba(14,26,31,.12);--cm-border-default:rgba(14,26,31,.08);--cm-border-subtle:rgba(14,26,31,.1);--cm-border-input:rgba(14,26,31,.15);--cm-border-stronger:rgba(14,26,31,.2)}*{margin:0;padding:0;box-sizing:border-box}body,html{min-height:100%}body{font-family:var(--cm-font-body);font-size:16px;line-height:1.55;color:var(--cm-slate);background:radial-gradient(ellipse 80% 50% at 50% 0,#eaf4fb 0,var(--cm-cloud) 100%);background-color:var(--cm-cloud)}.app-shell,body{min-height:100dvh}.app-shell{display:flex;flex-direction:column}h1,h2,h3{font-family:var(--cm-font-display);letter-spacing:-.02em;color:var(--cm-graphite)}a{color:inherit;text-decoration:none}input,select,textarea{font-family:var(--cm-font-body);font-size:16px;padding:var(--cm-space-3) var(--cm-space-4);border:1.5px solid var(--cm-border-input);border-radius:var(--cm-radius-md);background:var(--cm-white);color:var(--cm-graphite);width:100%;outline:none;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--cm-primary)}input::placeholder{color:var(--cm-slate);opacity:.6}.font-mono{font-family:var(--cm-font-mono)}.badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--cm-font-sans);font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.badge-info{background:rgba(38,132,192,.1);color:var(--cm-primary)}.badge-success{background:rgba(132,185,79,.1);color:var(--cm-success)}.badge-warning{background:rgba(255,255,0,.15);color:#8a8a00}.badge-danger{background:rgba(226,90,90,.1);color:var(--cm-danger)}.btn{display:inline-flex;align-items:center;gap:var(--cm-space-2);font-family:var(--cm-font-sans);font-size:14px;font-weight:600;padding:var(--cm-space-2) var(--cm-space-5);border-radius:var(--cm-radius-sm);border:none;cursor:pointer;transition:all .2s;text-decoration:none}.btn-primary{background:var(--cm-primary);color:var(--cm-white);box-shadow:0 6px 18px rgba(38,132,192,.2)}.btn-primary:hover{background:var(--cm-primary-strong)}.btn-secondary{background:var(--cm-white);color:var(--cm-graphite);border:1.5px solid var(--cm-border-stronger)}.btn-secondary:hover{background:var(--cm-cloud)}.btn-accent{background:var(--cm-accent);color:var(--cm-ink)}.btn-accent:hover{filter:brightness(1.05)}.btn-full{width:100%;justify-content:center}.sparkle{position:absolute;width:10px;height:10px;opacity:0;pointer-events:none}.sparkle:after,.sparkle:before{content:"";position:absolute;border-radius:2px}.sparkle:before{width:100%;height:3px;top:50%;left:0;transform:translateY(-50%)}.sparkle:after,.sparkle:before{background:var(--cm-lemon-lime);box-shadow:0 0 6px rgba(186,225,0,.6)}.sparkle:after{width:3px;height:100%;left:50%;top:0;transform:translateX(-50%)}.sparkle.s1{animation:sparkle-pop .9s ease 1s 1 forwards}.sparkle.s2{animation:sparkle-pop .9s ease 1.5s 1 forwards}.sparkle.s3{animation:sparkle-pop .9s ease 2s 1 forwards}.sparkle.s4{animation:sparkle-pop .9s ease 2.5s 1 forwards}@keyframes sparkle-pop{0%{opacity:0;transform:scale(0) rotate(0deg)}30%{opacity:1;transform:scale(1.4) rotate(60deg)}60%{opacity:.8;transform:scale(.8) rotate(120deg)}80%{opacity:1;transform:scale(1.2) rotate(160deg)}to{opacity:0;transform:scale(0) rotate(180deg)}}