:root{--brand:#13318b;--brand-deep:#0d2266;--brand-soft:#3b5bd6;--ink:#182136;--ink-soft:#5b6577;--danger:#cf3f3f;--surface:#fff;--bg-top:#f5f7fc;--bg-bottom:#e7ebf4;--track:#d8deea;--accent:#f59e0b;--accent-deep:#ea580c;--scan-bg:linear-gradient(165deg, #eaf1ff 0%, #d5e2ff 45%, #bcd2ff 100%);--fs-title:clamp(30px, 5.5vmin, 150px);--fs-name:clamp(28px, 4.4vmin, 120px);--fs-desc:clamp(15px, 2.1vmin, 42px);--fs-price:clamp(56px, 10.5vmin, 280px);--fs-price-label:clamp(14px, 1.8vmin, 30px);--fs-badge:clamp(16px, 2.3vmin, 46px);--fs-dates:clamp(14px, 2vmin, 40px);--fs-status:clamp(16px, 2.2vmin, 44px);--logo-h:clamp(44px, 8vmin, 150px);--pad-header:clamp(10px, 1.8vmin, 30px);--bar-h:clamp(3px, .6vmin, 8px);--frame:clamp(180px, 32vmin, 500px);--corner-w:clamp(4px, .9vmin, 12px);--radius:clamp(12px, 1.6vmin, 26px);--lift-duration:.65s;--lift-ease:cubic-bezier(.72, 0, .18, 1);--reset-delay:5s}*{box-sizing:border-box}html,body{height:100%}body{color:var(--ink);background:linear-gradient(180deg, var(--bg-top), var(--bg-bottom));-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}.app{flex-direction:column;height:100dvh;display:flex}.app__header{padding:var(--pad-header) 0;background:linear-gradient(180deg, var(--brand), var(--brand-deep));z-index:5;flex:none;justify-content:center;align-items:center;display:flex;position:relative;box-shadow:0 2px 14px #0d226640}.app__header img{height:var(--logo-h);width:auto}.stage{flex:auto;min-height:0;position:relative;overflow:hidden}.checker{position:absolute;inset:0}.result{z-index:1;opacity:0;justify-content:center;align-items:center;padding:clamp(16px,3vmin,48px);transition:opacity .3s;display:flex;position:absolute;inset:0}.result.is-visible{opacity:1}.loader{flex-direction:column;align-items:center;gap:clamp(12px,2vmin,28px);display:flex}.loader__ring{aspect-ratio:1;border:clamp(4px, .8vmin, 10px) solid var(--track);border-top-color:var(--brand);border-radius:50%;width:clamp(48px,8vmin,120px);animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loader p{font-size:var(--fs-status);color:var(--ink-soft);margin:0;font-weight:600}.card{background:var(--surface);border-radius:calc(var(--radius) * 1.5);text-align:center;width:min(88vw,58vmax);max-height:100%;animation:card-in .5s var(--lift-ease) .12s both;flex-direction:column;align-items:center;gap:clamp(10px,1.8vmin,26px);padding:clamp(28px,5vmin,80px) clamp(24px,4.5vmin,72px);display:flex;overflow:auto;box-shadow:0 24px 80px #1821362e,0 4px 16px #18213614}@keyframes card-in{0%{opacity:0;transform:translateY(clamp(20px,4vmin,60px))scale(.97)}to{opacity:1;transform:none}}.card__name{font-size:var(--fs-name);text-wrap:balance;margin:0;font-weight:700;line-height:1.08}.card__desc{font-size:var(--fs-desc);color:var(--ink-soft);text-wrap:balance;margin:0}.card__price-box{flex-direction:column;align-items:center;gap:clamp(4px,.8vmin,14px);margin-top:clamp(4px,1vmin,16px);display:flex}.card__price-label{font-size:var(--fs-price-label);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}.card__price{font-size:var(--fs-price);color:var(--brand);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:0;font-weight:800;line-height:1}.card__unit{color:var(--ink-soft);letter-spacing:0;font-size:.32em;font-weight:700}.card__promo{border-top:2px solid var(--track);flex-direction:column;align-items:center;gap:clamp(8px,1.4vmin,18px);width:100%;margin-top:clamp(6px,1.2vmin,18px);padding-top:clamp(10px,1.8vmin,24px);display:flex}.promo-badge{background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:#fff;font-size:var(--fs-badge);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.45em 1.2em;font-weight:800;animation:2s ease-in-out infinite badge-pulse;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #ea580c59}.promo-badge:before{content:"";background:linear-gradient(100deg,#0000,#fff9,#0000);width:40%;animation:2.6s ease-in-out infinite badge-shine;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-18deg)}@keyframes badge-shine{0%,40%{left:-60%}to{left:130%}}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.promo-dates{font-size:var(--fs-dates);color:var(--ink-soft);margin:0;font-weight:500}.promo-dates b{color:var(--ink);font-weight:700}.card__error-icon{aspect-ratio:1;width:clamp(64px,10vmin,160px);color:var(--danger);background:#cf3f3f1f;border-radius:50%;justify-content:center;align-items:center;font-size:clamp(40px,7vmin,110px);font-weight:800;display:flex}.card__error{font-size:var(--fs-name);color:var(--danger);text-wrap:balance;margin:0;font-weight:700}.scan{z-index:2;background:var(--scan-bg);transition:transform var(--lift-duration) var(--lift-ease);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden;transform:translateY(0)}.scan:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(60% 45% at 50% 38%,#ffffffbf,#0000 70%);position:absolute;inset:0}.scan__content{z-index:1;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:clamp(16px,3vmin,44px);min-height:0;display:flex;position:relative}.scan.is-lifted{transform:translateY(-103%)}.scan.is-lifted .scan__frame,.scan.is-lifted .scan__barcode,.scan.is-lifted .scan__line{animation-play-state:paused}.scan__form{position:absolute}.scan__input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.scan__frame{width:var(--frame);height:var(--frame);animation:3s linear infinite frame-scan;position:relative}@keyframes frame-scan{0%{animation-timing-function:cubic-bezier(.22,.68,.35,1);transform:scale(1)}6%{animation-timing-function:cubic-bezier(.6,.04,.98,.34);transform:scale(1.05)}14%,to{transform:scale(1)}}.scan__corner{border:0 solid var(--brand);filter:drop-shadow(0 2px 8px #13318b40);width:24%;height:24%;position:absolute}.scan__corner--tl{border-top-width:var(--corner-w);border-left-width:var(--corner-w);border-top-left-radius:16%;top:0;left:0}.scan__corner--tr{border-top-width:var(--corner-w);border-right-width:var(--corner-w);border-top-right-radius:16%;top:0;right:0}.scan__corner--bl{border-bottom-width:var(--corner-w);border-left-width:var(--corner-w);border-bottom-left-radius:16%;bottom:0;left:0}.scan__corner--br{border-bottom-width:var(--corner-w);border-right-width:var(--corner-w);border-bottom-right-radius:16%;bottom:0;right:0}.scan__barcode{opacity:.45;background:repeating-linear-gradient(90deg, var(--brand) 0 5%, transparent 5% 11%, var(--brand) 11% 15%, transparent 15% 27%, var(--brand) 27% 30%, transparent 30% 41%, var(--brand) 41% 48%, transparent 48% 58%, var(--brand) 58% 61%, transparent 61% 72%, var(--brand) 72% 81%, transparent 81% 87%, var(--brand) 87% 90%, transparent 90% 100%);animation:3s linear infinite barcode-scan;position:absolute;inset:16%}@keyframes barcode-scan{0%{opacity:.45;animation-timing-function:cubic-bezier(.22,.68,.35,1);transform:scale(1)}6%{opacity:.95;animation-timing-function:cubic-bezier(.6,.04,.98,.34);transform:scale(1.08)}14%,to{opacity:.45;transform:scale(1)}}.scan__line{background:var(--brand-soft);opacity:0;border-radius:999px;height:clamp(2px,.5vmin,8px);animation:3s linear infinite line-pass;position:absolute;top:14%;left:10%;right:10%}@keyframes line-pass{0%{opacity:0;top:14%}5%{opacity:1}13%{opacity:1;top:82%}15%,to{opacity:0;top:82%}}.scan__title{font-size:var(--fs-title);letter-spacing:.04em;text-transform:uppercase;color:var(--brand);text-align:center;text-wrap:balance;margin:0;font-weight:800}.promo-strip{z-index:1;flex:0 0 33.33%;justify-content:center;align-items:center;padding:0 clamp(16px,3vmin,48px) clamp(14px,2.4vmin,30px);display:flex;position:relative}.promo-strip__window{justify-content:center;gap:clamp(14px,2.4vmin,36px);width:100%;animation:.5s both promo-in;display:flex}@keyframes promo-in{0%{opacity:0;transform:translateY(clamp(12px,2vmin,32px))}to{opacity:1;transform:none}}.promo-card{background:var(--surface);border-radius:var(--radius);align-items:center;gap:clamp(12px,2vmin,28px);width:min(46vw,34vmax);height:100%;padding:clamp(12px,2vmin,26px);display:flex;box-shadow:0 10px 32px #1821361f}.promo-card__img{object-fit:cover;border-radius:calc(var(--radius) * .6);background:var(--bg-bottom);flex:none;width:clamp(90px,15vmin,220px);height:clamp(90px,15vmin,220px)}.promo-card__body{flex-direction:column;flex:auto;justify-content:center;gap:clamp(6px,1vmin,14px);min-width:0;display:flex}.promo-card__name{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:clamp(14px,1.9vmin,34px);font-weight:700;line-height:1.15;display:-webkit-box;overflow:hidden}.promo-card__prices{flex-wrap:wrap;align-items:baseline;gap:clamp(8px,1.2vmin,18px);margin:0;display:flex}.promo-card__price{color:var(--accent-deep);font-variant-numeric:tabular-nums;font-size:clamp(24px,3.8vmin,84px);font-weight:800;line-height:1}.promo-card__old{color:var(--ink-soft);font-size:clamp(14px,2vmin,36px);font-weight:600;text-decoration:line-through}.promo-card__discount{background:linear-gradient(135deg, var(--accent), var(--accent-deep));color:#fff;border-radius:999px;align-self:flex-start;align-items:center;padding:.3em .7em;font-size:clamp(12px,1.7vmin,28px);font-weight:800;display:inline-flex}.progress{z-index:3;height:var(--bar-h);background:var(--track);opacity:0;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.progress.is-active{opacity:1}.progress__fill{background:linear-gradient(90deg, var(--brand), var(--brand-soft));width:100%;height:100%}.progress__fill.is-running{animation:countdown var(--reset-delay) linear forwards}@keyframes countdown{0%{width:100%}to{width:0%}}@media (prefers-reduced-motion:reduce){.scan__frame,.scan__barcode,.scan__line,.promo-badge,.promo-badge:before{animation:none}}
