:root{--bg0:#fff8e7;--bg1:#ffe28a;--ink:#1c2430;--muted:#5a6573;--yellow:#ffd000;--yellow-deep:#e8a800;--have:#1f8a4c;--need:#c45c26;--surface:#ffffffb8;--shadow:0 10px 30px #1c243014;--radius:18px;--font-display:"Baloo 2", system-ui, sans-serif;--font-body:"Nunito", system-ui, sans-serif}*{box-sizing:border-box}html{scrollbar-gutter:stable}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 600px at 10% -10%, #fff1b8 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #ffd56a 0%, transparent 50%), linear-gradient(180deg, var(--bg0), #fff3c8 40%, #ffe9a0);background-attachment:fixed;margin:0}body:before{content:"";pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23e8a800' fill-opacity='0.18'%3E%3Ccircle cx='7' cy='7' r='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");position:fixed;inset:0}.page{width:min(1200px,100% - 2rem);margin:0 auto;padding:1.5rem 0 4rem;position:relative}.page.narrow{width:min(420px,100% - 2rem)}.hero{text-align:center;margin-bottom:1.75rem;animation:.6s both rise}.hero.compact{margin-bottom:1.25rem}.brand{font-family:var(--font-display);letter-spacing:.02em;color:var(--yellow-deep);text-shadow:0 2px #fff6c8,0 8px 24px #e8a80059;margin:0 0 1rem;font-size:clamp(2.4rem,8vw,4.2rem);font-weight:800;line-height:.95}h1:not(.brand){font-family:var(--font-display);margin:.35rem 0 .4rem;font-size:clamp(1.4rem,3.5vw,2rem);font-weight:700}.hero-controls{width:min(600px,100%);margin:0 auto}.progress{background:#1c243014;border:2px solid #1c243014;border-radius:999px;width:100%;min-height:2.4rem;margin:0 0 1.15rem;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #1c24300f}.progress-fill{background:linear-gradient(90deg, #2aa85a, var(--have));transition:width .45s;position:absolute;inset:0 auto 0 0}.progress-label{z-index:1;min-height:2.4rem;color:var(--ink);text-shadow:0 1px #ffffff8c;justify-content:center;align-items:center;padding:.45rem .9rem;font-size:.95rem;font-weight:700;display:flex;position:relative}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;width:100%;display:flex}.search{width:auto;min-width:0;font:inherit;background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid #1c24301f;border-radius:999px;flex:12rem;padding:.7rem 1rem}.search:focus{border-color:var(--yellow-deep);outline:none;box-shadow:0 0 0 3px #ffd00059}.filters{background:var(--surface);border:2px solid #1c243014;border-radius:999px;flex:none;gap:.25rem;padding:.25rem;display:inline-flex}@media (width<=520px){.search,.filters{flex:100%;width:100%}.filters{justify-content:space-between}.filters button{flex:1}}.filters button,.sync-btn,.login button,.ghost{font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:999px;padding:.55rem .95rem;font-weight:700}.filters button.active{background:var(--yellow);box-shadow:var(--shadow)}.sync-btn{background:var(--ink);color:#fff}.sync-btn:disabled{opacity:.6;cursor:wait}.ghost{background:var(--surface);border:2px solid #1c243014}.admin-link{color:var(--muted);margin-top:.9rem;font-weight:700;text-decoration:none;display:inline-block}.admin-link:hover{color:var(--ink)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}}@media (width>=900px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1100px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.duck{text-align:center;animation:.45s both pop}.duck-photo{aspect-ratio:1;border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(160deg,#fff,#ffe9a8);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.duck.owned .duck-photo{box-shadow:0 0 0 3px var(--have), var(--shadow)}.duck.clickable{cursor:pointer}.duck.clickable:hover .duck-photo,.duck.clickable:focus-visible .duck-photo{transform:translateY(-3px)scale(1.02)}.duck img{object-fit:cover;width:100%;height:100%;display:block}.no-img{background:repeating-linear-gradient(-45deg,#ffe9a8,#ffe9a8 8px,#fff3c8 8px 16px);width:100%;height:100%}.badge{letter-spacing:.02em;color:#fff;background:var(--have);border-radius:999px;padding:.28rem .55rem;font-size:.72rem;font-weight:800;position:absolute;bottom:.5rem;left:.5rem}.duck h3{margin:.55rem 0 0;font-size:.92rem;font-weight:700;line-height:1.25}.login{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);border:2px solid #1c243014;gap:.75rem;padding:1.25rem;display:grid}.login input{font:inherit;border:2px solid #1c24301f;border-radius:12px;padding:.8rem 1rem}.login button{background:var(--yellow)}.status,.error,.sync-result{text-align:center;color:var(--muted);min-height:1.5em}.error{color:#b42318}.sentinel{height:1px}.toast{z-index:50;color:#fff;text-align:center;background:#1c2430f0;border-radius:16px;gap:.2rem;min-width:min(20rem,100% - 2rem);max-width:24rem;padding:.9rem 1.1rem;animation:.25s both toast-in;display:grid;position:fixed;bottom:1.5rem;left:50%;box-shadow:0 12px 32px #1c243047}.toast strong{font-size:.95rem}.toast span{opacity:.9;font-size:.88rem}.duck-card-page{padding-top:1rem}.back-link{margin:0 0 1rem}.duck-card{text-align:center}.duck-card-photo{aspect-ratio:1;border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(160deg,#fff,#ffe9a8);margin-bottom:1rem;position:relative;overflow:hidden}.duck-card-photo img{object-fit:cover;width:100%;height:100%;display:block}.duck-card h1{font-family:var(--font-display);margin:0 0 .5rem;font-size:clamp(1.5rem,5vw,2rem)}.market-btns{gap:.65rem;margin-top:.75rem;display:grid}.market{font:inherit;cursor:pointer;color:#fff;border:0;border-radius:999px;padding:.85rem 1rem;font-weight:800}.market.ozon{background:#005bff}.market.wb{background:#cb11ab}.market.ym{color:var(--ink);background:#fc0}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.hero,.duck{animation:none}}
