:root{color:#37151d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}.shell,.game-shell{color:#37151d;background:radial-gradient(circle at 84% 18%,#d9a4413d,#0000 24%),linear-gradient(#fff6f8 0%,#ffd8df 100%);width:100%;min-height:100vh}.shell{flex-direction:column;justify-content:center;gap:28px;padding:24px;display:flex}.centered{text-align:center;align-items:center}.home-shell,.result-shell{max-width:720px;margin:0 auto}.eyebrow{color:#d9a441;letter-spacing:0;text-transform:uppercase;font-size:13px;font-weight:900}h1,h2,p{margin:0}h1{color:#a80f2e;font-size:clamp(34px,9vw,58px);font-weight:950;line-height:1.02}h2{color:#a80f2e;font-size:clamp(24px,7vw,38px);line-height:1.08}p{color:#7a5360;font-size:17px;line-height:1.5}button{color:#fff;cursor:pointer;background:#d7193f;border:0;border-radius:8px;min-height:54px;padding:14px 18px;font-size:16px;font-weight:900;transition:transform .16s,opacity .16s,box-shadow .16s;box-shadow:0 12px 24px #a80f2e2e}button:hover{transform:translateY(-1px)}button:active{transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.gold-button{background:#d9a441}.hero-copy,.result-header{gap:12px;display:grid}.entry-panel{background:#fff;border:1px solid #f2b8c3;border-radius:8px;gap:12px;padding:18px;display:grid}label{color:#37151d;font-size:15px;font-weight:900}input{color:#37151d;min-height:54px;font:inherit;text-transform:uppercase;background:#fff6f8;border:1px solid #f2b8c3;border-radius:8px;padding:0 14px;font-weight:800}.loader-heart{color:#d7193f;font-size:86px;animation:1.1s ease-in-out infinite pulse}.game-shell{min-height:100svh;position:relative;overflow:hidden}.game-header{z-index:3;gap:8px;padding:24px;display:grid;position:relative}.game-header h1{font-size:clamp(32px,9vw,46px)}.game-header strong{color:#a80f2e;background:#fff3cd;border-radius:8px;width:fit-content;padding:6px 10px;font-size:13px}.balloon-field{z-index:2;position:absolute;inset:0}.heart-balloon{color:#d7193f;width:74px;height:118px;min-height:118px;box-shadow:none;text-shadow:0 10px 20px #a80f2e2e;animation:float-up var(--duration) linear infinite, sway 2.8s ease-in-out infinite alternate;background:0 0;border:0;padding:0;font-size:76px;line-height:.8;position:absolute}.heart-balloon span{background:#d9a441;width:2px;height:54px;margin:-2px auto 0;display:block}.empty-feedback{z-index:5;text-align:center;background:#fffffff5;border:1px solid #f2b8c3;border-radius:8px;justify-items:center;gap:10px;padding:18px;display:grid;position:absolute;top:34%;left:24px;right:24px;box-shadow:0 18px 34px #a80f2e2e}.empty-feedback span{color:#d7193f;font-size:50px;font-weight:900;line-height:.9}.empty-feedback p{color:#a80f2e;max-width:420px;font-weight:900}.balloon-1{--duration:9s;animation-delay:-4s;left:9%}.balloon-2{--duration:11s;animation-delay:-8s;left:29%}.balloon-3{--duration:8s;animation-delay:-1s;left:52%}.balloon-4{--duration:10s;animation-delay:-6s;left:73%}.balloon-5{--duration:12s;animation-delay:-11s;left:41%}.cloud{z-index:1;background:#ffffffdb;border-radius:999px;width:128px;height:48px;animation:24s linear infinite cloud-drift;position:absolute}.cloud:before,.cloud:after{content:"";background:#fffffff0;border-radius:999px;position:absolute}.cloud:before{width:54px;height:54px;top:-22px;left:24px}.cloud:after{width:58px;height:40px;top:-10px;right:18px}.cloud-one{top:110px;left:-160px}.cloud-two{animation-duration:34s;animation-delay:-12s;top:210px;left:-240px}.cloud-three{animation-duration:29s;animation-delay:-20s;top:320px;left:-190px}.ambient-heart{z-index:1;color:#d7193f3d;font-size:74px;animation:3.2s ease-in-out infinite pulse;position:absolute}.heart-one{top:180px;right:24px}.heart-two{color:#ff6f913d;animation-delay:-1.4s;bottom:220px;left:28px}.cupid{z-index:3;width:176px;height:132px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.wing{background:#ffffffe6;border-radius:70px 70px 10px;width:70px;height:42px;position:absolute;top:42px}.left-wing{left:8px;transform:rotate(-18deg)}.right-wing{right:8px;transform:scaleX(-1)rotate(-18deg)}.face{background:#ffd3c7;border-radius:50%;width:64px;height:64px;position:absolute;top:18px;left:56px}.hair{background:#f2b64b;border-radius:50% 50% 20% 20%;width:48px;height:26px;position:absolute;top:-8px;left:8px}.eye{background:#37151d;border-radius:50%;width:7px;height:7px;animation:2.8s infinite blink;position:absolute;top:32px}.left-eye{left:20px}.right-eye{right:20px}.smile{border-bottom:3px solid #a80f2e;border-radius:0 0 18px 18px;width:18px;height:8px;position:absolute;top:43px;left:24px}.body{background:#fff;border-radius:50%;width:60px;height:42px;position:absolute;bottom:10px;left:58px}.bow{border:4px solid #d9a441;border-left:0;border-radius:0 62px 62px 0;width:46px;height:62px;position:absolute;bottom:34px;right:18px}.gift-result,.empty-result{background:#fff;border:1px solid #f2b8c3;border-radius:8px;gap:16px;padding:16px;display:grid}.gift-result img,.gift-placeholder{aspect-ratio:1.35;object-fit:cover;background:#ffd8df;border-radius:8px;width:100%}.gift-placeholder{color:#d7193f;place-items:center;font-size:88px;display:grid}.gift-result span{color:#7a5360;font-weight:800}.gift-result p{overflow-wrap:anywhere;font-size:13px}.gift-result .pending-link{color:#a80f2e;background:#fff6f8;border-radius:8px;padding:10px;font-weight:800;line-height:1.45}.empty-result{text-align:center}.empty-result span{color:#d7193f;font-size:80px}.actions{gap:12px;display:grid}@keyframes float-up{0%{top:105%}to{top:-180px}}@keyframes sway{0%{margin-left:-18px}to{margin-left:18px}}@keyframes cloud-drift{0%{transform:translate(0)}to{transform:translate(calc(100vw + 320px))}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes blink{0%,90%,to{transform:scaleY(1)}94%{transform:scaleY(.1)}}.admin-shell{color:#37151d;background:#fff6f8;min-height:100vh;padding:28px}.admin-login,.admin-header,.admin-card,.admin-empty,.admin-message{width:min(980px,100%);margin:0 auto}.admin-login{align-content:center;gap:16px;min-height:calc(100vh - 56px);display:grid}.admin-login h1,.admin-header h1{color:#a80f2e;margin:0;font-size:34px}.admin-login p,.admin-header p,.admin-card p{color:#7a5360;line-height:1.5}.admin-login input,.admin-card input{color:#37151d;min-height:52px;font:inherit;background:#fff;border:1px solid #f2b8c3;border-radius:8px;padding:0 14px}.admin-login button,.admin-header button,.admin-actions button{color:#fff;min-height:48px;font:inherit;cursor:pointer;background:#d7193f;border:0;border-radius:8px;padding:0 18px;font-weight:800}.admin-login button:disabled,.admin-header button:disabled,.admin-actions button:disabled{opacity:.5;cursor:not-allowed}.admin-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.admin-queue-count{color:#a80f2e;background:#fff;border:1px solid #f2b8c3;border-radius:999px;width:fit-content;margin-top:8px;padding:8px 12px;font-size:13px;display:inline-flex}.admin-header-actions,.admin-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-header .admin-ghost,.admin-actions .admin-ghost{color:#a80f2e;background:0 0;border:1px solid #f2b8c3}.admin-message,.admin-empty{background:#fff;border:1px solid #f2b8c3;border-radius:8px;margin-bottom:16px;padding:14px}.admin-list{gap:16px;display:grid}.admin-card{background:#fff;border:1px solid #f2b8c3;border-radius:8px;grid-template-columns:150px 1fr;gap:16px;padding:14px;display:grid}.admin-card img,.admin-placeholder{aspect-ratio:1;object-fit:cover;background:#ffd8df;border-radius:8px;width:100%}.admin-placeholder{color:#d7193f;place-items:center;font-size:48px;display:grid}.admin-card-body{gap:10px;display:grid}.admin-card-title{gap:4px;display:grid}.admin-card-title span{color:#d9a441;text-transform:uppercase;font-size:12px;font-weight:900}.admin-card-title strong{color:#a80f2e;font-size:20px}.admin-card a{color:#d7193f;font-weight:800}.admin-paste-row input{background:#fffdf8;border-color:#d9a441;width:100%;font-weight:700}.admin-paste-row input:disabled{opacity:.7}@media (width<=700px){.admin-shell{padding:18px}.admin-header,.admin-card{grid-template-columns:1fr}.admin-header{display:grid}}
