/* Guest account dashboard — matches relaunch cream/ink tokens. */
.page-konto,.page-konto-login{background:var(--cream)}
.account-shell{max-width:560px;margin:20px auto 40px;padding:0 0 32px}
.account-shell--app{margin-top:8px;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.account-shell h1{font-size:clamp(34px,5vw,48px);margin:0 0 12px}
.account-shell .lead{max-width:28rem;color:var(--muted);margin:0 0 28px}
.account-shell .eyebrow{margin-bottom:12px}
.account-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 14px;min-height:44px}
.account-topbar__brand{display:inline-flex;align-items:center;text-decoration:none}
.account-topbar__brand img{width:auto;height:36px;display:block}
.account-topbar__actions{display:flex;align-items:center;gap:8px}
.account-topbar__points{margin:0;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid rgba(80,65,50,.1);font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap}
.account-topbar__settings{appearance:none;width:42px;height:42px;border-radius:14px;border:1px solid rgba(80,65,50,.12);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0}
.account-topbar__settings:focus-visible{outline:3px solid #486440;outline-offset:2px}
.account-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 0 16px;border-radius:999px;background:#fff;border:1px solid rgba(80,65,50,.12)}
.account-tabs__tab{appearance:none;border:0;border-radius:999px;min-height:44px;padding:10px 12px;background:transparent;color:var(--ink);font:inherit;font-weight:700;font-size:15px;cursor:pointer}
.account-tabs__tab.is-active{background:linear-gradient(120deg,#8a9a6e,#6f7f55);color:#fff}
.account-tabs__tab:focus-visible{outline:3px solid #486440;outline-offset:2px}
.account-tab-panel[hidden]{display:none!important}
.points-hero{position:relative;padding:18px 18px 16px;margin:0 0 12px;border-radius:22px;background:linear-gradient(145deg,#e9efe3 0%,#f4ebe4 55%,#f7f3ee 100%);border:1px solid rgba(80,65,50,.08);overflow:hidden}
.points-hero__hello{margin:0 0 4px;font-size:15px;color:var(--muted)}
.points-hero__value{margin:0 0 10px;font-size:clamp(34px,9vw,44px);line-height:1.05;letter-spacing:-.03em;font-weight:700;color:var(--ink)}
.points-hero__value--sheet{font-size:clamp(28px,8vw,36px);margin:0 0 12px}
.points-hero__links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;font-size:14px}
.points-hero__link{appearance:none;border:0;background:none;padding:0;color:var(--ink);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.points-hero__cta{min-height:44px;padding:10px 16px;background:#486440;color:#fff;border:0}
.account-tip{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 20px;padding:12px 14px;border-radius:16px;border:1px solid rgba(80,65,50,.1);background:#fffcf8;box-shadow:0 8px 18px #4b3a2e0d;text-align:left;cursor:pointer;font:inherit;color:inherit}
.account-tip__icon{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#e8ebe0;color:#486440;font-size:16px}
.account-tip__copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.account-tip__copy strong{font-size:15px}
.account-tip__copy small{font-size:13px;color:var(--muted);line-height:1.35}
.account-tip__chevron{flex:none;font-size:22px;color:var(--muted);line-height:1}
.reward-rail{margin:0 0 24px}
.reward-rail__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}
.reward-rail__head h2{margin:0;font-size:22px}
.reward-rail__coupons{
  appearance:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  margin:4px 0 0;
  padding:14px 16px;
  border:1px solid rgba(80,65,50,.12);
  border-radius:16px;
  background:#fffcf8;
  box-shadow:0 8px 18px #4b3a2e0d;
  color:var(--ink);
  font:inherit;
  font-weight:700;
  font-size:15px;
  text-align:left;
  cursor:pointer;
}
.reward-rail__coupons:focus-visible{outline:3px solid #486440;outline-offset:2px}
.reward-rail__coupons span:last-child{color:#6b5849;font-size:18px;line-height:1}
.reward-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:168px;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:4px 48px 14px 2px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.reward-carousel::-webkit-scrollbar{display:none}
.reward-card{scroll-snap-align:start;display:flex;flex-direction:column;width:168px;min-height:100%;padding:12px 12px 14px;border-radius:18px;background:#fff;border:1px solid rgba(80,65,50,.08);box-shadow:0 10px 22px #4b3a2e0f;cursor:pointer;text-align:left;color:inherit}
.reward-card:focus-visible{outline:3px solid #486440;outline-offset:2px}
.reward-card.is-ready{border-color:#8a9a6e}
.reward-card__media{position:relative;height:132px;display:grid;place-items:center;margin:0 0 10px}
.reward-card__ring{position:absolute;width:108px;height:108px;border-radius:50%;z-index:0}
.reward-card__media img,.reward-card__sticker{position:relative;z-index:1;width:112px;height:112px;object-fit:contain;display:block;filter:drop-shadow(0 8px 14px #4b3a2e22)}
.reward-card__media--dual{display:grid;grid-template-columns:1fr 1fr;align-items:end;justify-items:center;gap:0;padding:4px 0 0}
.reward-card__media--dual .reward-card__ring{width:118px;height:118px}
.reward-card__media--dual .reward-card__sticker--main{width:100px;height:100px;justify-self:end;margin-right:-18px;z-index:1}
.reward-card__media--dual .reward-card__sticker--side{width:78px;height:78px;justify-self:start;margin-left:-22px;margin-bottom:10px;z-index:2}
.accent-blue .reward-card__ring,.reward-detail__media.accent-blue .reward-card__ring{background:radial-gradient(circle,#9babc7aa,#9babc722 70%,transparent 72%)}
.accent-sage .reward-card__ring,.reward-detail__media.accent-sage .reward-card__ring{background:radial-gradient(circle,#a7b89eaa,#a7b89e22 70%,transparent 72%)}
.accent-clay .reward-card__ring,.reward-detail__media.accent-clay .reward-card__ring{background:radial-gradient(circle,#cdae91aa,#cdae9122 70%,transparent 72%)}
.accent-rose .reward-card__ring,.reward-detail__media.accent-rose .reward-card__ring{background:radial-gradient(circle,#e5afa9aa,#e5afa922 70%,transparent 72%)}
.accent-sand .reward-card__ring,.reward-detail__media.accent-sand .reward-card__ring{background:radial-gradient(circle,#dcc9b2aa,#dcc9b222 70%,transparent 72%)}
.reward-card__title{margin:0 0 4px;font-size:16px;line-height:1.25;min-height:2.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.reward-card__points{margin:0 0 8px;font-size:13px;color:var(--muted);font-weight:600}
.reward-card__bar{height:5px;margin:0 0 8px;border-radius:999px;background:#ebe4dc;overflow:hidden}
.reward-card__bar > svg{display:block;width:100%;height:100%}
.reward-card__bar-fill{fill:#7a8a5e}
.reward-card.is-ready .reward-card__bar-fill,.reward-card__bar.is-full .reward-card__bar-fill{fill:#8a9a6e}
.reward-card__status{margin:0;font-size:12px;color:var(--muted);font-weight:600}
.reward-card.is-ready .reward-card__status{color:#4f5d3a}
.account-offers{padding:8px 0 20px}
.account-offers h2{font-size:22px;margin:0 0 6px}
.account-offers > .caption{margin:0 0 14px}
.account-offers__empty{padding:22px 18px;border-radius:18px;background:#fffcf8;border:1px dashed rgba(80,65,50,.18)}
.account-offers__empty p{margin:0 0 8px}
.offer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.offer-card{appearance:none;width:100%;display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;border:1px solid rgba(80,65,50,.1);background:#fff;text-align:left;cursor:pointer;font:inherit;color:inherit;box-shadow:0 8px 18px #4b3a2e0d}
.offer-card:focus-visible{outline:3px solid #486440;outline-offset:2px}
.offer-card__media{position:relative;width:64px;height:64px;flex:none;display:grid;place-items:center}
.offer-card__media .reward-card__ring{width:56px;height:56px}
.offer-card__media img{position:relative;z-index:1;width:52px;height:52px;object-fit:contain}
.offer-card__copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.offer-card__tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#486440}
.offer-card__copy strong{font-size:16px;line-height:1.25}
.offer-card__copy small{font-size:13px;color:var(--muted)}
.offer-card__chevron{flex:none;font-size:22px;color:var(--muted)}
.account-stickers{margin:0 0 28px;padding:18px 16px;border-radius:20px;background:#fffcf8;border:1px solid rgba(80,65,50,.1)}
.account-stickers h2{font-size:20px;margin:0 0 6px}
.account-stickers__banner{margin:10px 0 14px;padding:10px 12px;border-radius:12px;background:#e8ebe0;color:#4b3a2e;font-size:15px;font-weight:600}
.account-stickers__banner[hidden]{display:none!important}
.sticker-pack-cta{display:flex;flex-direction:row;align-items:center;gap:14px;width:100%;margin:8px 0 16px;padding:14px 16px;border:0;border-radius:18px;background:linear-gradient(145deg,#4b3a2e,#6b5849);color:#f7f3ee;cursor:pointer;text-align:left;position:relative;box-shadow:0 14px 28px #4b3a2e33}
.sticker-pack-cta__art{width:56px;height:84px;object-fit:contain;background:transparent;flex:none;filter:drop-shadow(0 6px 10px #0005)}
.sticker-pack-cta__copy{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding-right:52px}
.sticker-pack-cta strong{font-size:20px}
.sticker-pack-cta small{opacity:.85;font-size:14px}
.sticker-pack-cta__seal{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:999px;background:#e5afa9;color:#4b3a2e;font-size:11px;letter-spacing:.08em;font-weight:700}
.sticker-album{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.sticker-slot{aspect-ratio:1;border-radius:50%;border:1.5px dashed #c4b5a4;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}
.sticker-slot.is-filled{border-style:solid;border-color:#4b3a2e;box-shadow:0 6px 14px #4b3a2e14}
.sticker-slot img{width:100%;height:100%;object-fit:cover;display:block}
.sticker-slot__empty{color:#c4b5a4;font-size:13px;font-weight:600}
.sticker-album.is-complete .sticker-slot.is-filled{box-shadow:0 0 0 2px #c7a57d88,0 8px 18px #4b3a2e22}
.sticker-slot.is-pop{animation:sticker-slot-pop .7s cubic-bezier(.2,1.2,.4,1)}
@keyframes sticker-slot-pop{0%{transform:scale(.55);opacity:.2}60%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.sticker-slot.is-pop{animation:none}}
.account-sheet{position:fixed;inset:0;z-index:90;display:grid;align-items:end}
.account-sheet[hidden]{display:none!important}
.account-sheet__backdrop{position:absolute;inset:0;background:#1a1410aa;backdrop-filter:blur(4px)}
.account-sheet__panel{position:relative;z-index:1;width:min(560px,100%);max-width:100%;margin:0 auto;max-height:min(88dvh,760px);overflow-x:hidden;overflow-y:auto;padding:12px 18px calc(22px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:var(--cream);box-shadow:0 -16px 40px #0004;box-sizing:border-box}
.account-sheet__handle{width:42px;height:4px;margin:4px auto 14px;border-radius:999px;background:#d4c7b8}
.account-sheet__panel h2{margin:0 0 14px;font-size:22px}
.account-sheet__panel h3,.account-subheading{margin:0 0 10px;font-size:17px}
.account-info-list{margin:0 0 18px;padding-left:1.1em;color:var(--muted);font-size:15px;line-height:1.5}
.account-info-list li{margin:0 0 8px}
.reward-detail__media{position:relative;height:160px;display:grid;place-items:center;margin:0 0 12px}
.reward-detail__media img{position:relative;z-index:1;width:140px;height:140px;object-fit:contain}
.reward-detail__media--dual{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:0;padding:0 8px}
.reward-detail__media--dual img:first-of-type{width:140px;height:140px;justify-self:end;margin-right:-22px;z-index:1}
.reward-detail__media--dual img:last-of-type{width:108px;height:108px;justify-self:start;margin-left:-28px;margin-bottom:12px;z-index:2}
.reward-detail__points{margin:0 0 8px;font-weight:700}
.reward-detail__status{margin:10px 0 14px;font-weight:700;color:#4f5d3a}
.birthday-claim__title{margin:6px 0 8px;font-size:22px;font-weight:700;color:#4b3a2e}
.birthday-claim__result{margin:0 0 16px;padding:14px;border-radius:16px;background:#fff;border:1px solid rgba(80,65,50,.08)}
.account-sheet--birthday .account-sheet__panel{background:linear-gradient(165deg,#fff7f0 0%,#f4f7f1 45%,#faf0ee 100%);overflow:hidden}
.birthday-claim{position:relative;text-align:center}
.birthday-claim__confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.birthday-claim .account-sheet__handle,
.birthday-claim h2,
.birthday-claim .caption,
.birthday-claim .button,
.birthday-claim .plain-button,
.birthday-claim__cake,
.birthday-claim__result,
.birthday-claim [data-birthday-error]{position:relative;z-index:1}
.birthday-claim__cake{font-size:56px;line-height:1;margin:4px 0 8px;animation:birthday-bounce .7s cubic-bezier(.2,1.2,.4,1) both}
.birthday-claim h2{font-family:var(--font-display,Georgia,serif);font-size:clamp(22px,5vw,28px);margin:0 0 10px;color:#4b3a2e}
@keyframes birthday-bounce{0%{transform:scale(.55);opacity:.3}70%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.birthday-claim__cake{animation:none}}
.account-qr__frame{display:flex;justify-content:center;padding:14px;margin:12px 0;border-radius:22px;background:#fff;border:1px solid rgba(80,65,50,.08)}
.account-qr__frame svg{display:block;width:min(260px,70vw);height:auto}
.account-qr__code{margin:0 0 14px;text-align:center;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.account-qr__code code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* Settings sheet: stacked fields, no overflow, clear section rhythm */
#account-settings-sheet .account-sheet__panel{display:flex;flex-direction:column;gap:14px}
.account-settings-block{margin:0;padding:16px;border-radius:18px;background:#fffcf8;border:1px solid rgba(80,65,50,.1);box-sizing:border-box;min-width:0}
.account-settings-block h3{margin:0 0 10px;font-size:17px}
.account-settings-block > .caption{margin:0 0 12px;line-height:1.45}
.account-settings-form{display:flex;flex-direction:column;gap:12px;min-width:0}
.account-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.account-field label{display:block;font-size:15px;font-weight:600;color:var(--ink)}
.account-field label .caption{font-weight:500;color:var(--muted)}
.account-settings-form input,
.account-field input{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin:0;
  appearance:none;
  -webkit-appearance:none;
}
.account-settings-form input[type=date]{
  min-height:48px;
  line-height:1.2;
}
.account-settings-form input[type=date]::-webkit-date-and-time-value{text-align:left}
.account-settings-form .wide-button,
.account-settings-footer .wide-button{width:100%;margin:0;box-sizing:border-box}
.account-settings-footer{display:flex;flex-direction:column;gap:10px;margin:4px 0 0;padding-top:4px}
.account-settings-footer .plain-button,
.account-logout .plain-button{min-height:44px;padding:8px 0;background:none;border:0;text-decoration:underline;cursor:pointer;font-size:16px;color:var(--muted);align-self:flex-start}
.account-empty{margin:0;color:var(--muted);font-size:16px}
.account-visit-list{list-style:none;margin:0;padding:0}
.account-visit-list li{border-top:1px solid var(--line)}
.account-visit-list li:first-child{border-top:0}
.account-visit-list a{display:flex;justify-content:space-between;gap:12px;min-height:48px;align-items:center;text-decoration:none;font-size:16px;color:inherit}
.account-visit-list__main{display:flex;flex-direction:column;gap:2px;min-width:0}
.account-visit-list__main strong{font-weight:600}
.account-visit-list__main small{color:var(--muted);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.account-favorites-label{margin:0 0 8px}
.account-favorites{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.account-favorites li{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid rgba(80,65,50,.1);font-size:13px;font-weight:600;max-width:100%}
.account-favorites__count{color:var(--muted);font-weight:600}
.account-logout{margin:8px 0 24px}
.account-login-form{display:flex;flex-direction:column;gap:10px;margin:0 0 20px}
.account-login-form .wide-button{margin-top:8px}
.account-error{color:#993b37;margin:0 0 14px}
.account-notice{color:#405d32;margin:0 0 14px;padding:10px 12px;border-radius:12px;background:rgba(255,252,248,.92)}
.play-feedback:empty{display:none}
.qr-dock{display:none}
body.account-sheet-open,body.sticker-reveal-open{overflow:hidden}
@keyframes account-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:760px){
  .page-konto.account-app .site-header{display:none}
  .account-shell--app{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
  .qr-dock{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;border:1px solid #ffffffbd;background:#ffffffad;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 24px #24382d18;color:#243b2f;cursor:pointer;padding:0}
  .qr-dock:focus-visible{outline:3px solid #486440;outline-offset:3px}
  .qr-dock:active{transform:scale(.95)}
}
@media(min-width:761px){
  .reward-carousel{grid-auto-columns:180px;padding-right:24px}
  .page-konto.account-app .site-header{display:flex}
  .account-shell--app{padding-bottom:40px}
  .account-topbar__brand{display:none}
  .account-topbar{justify-content:flex-end;margin-bottom:8px}
}
@media(min-width:431px) and (max-width:760px){
  .reward-carousel{grid-auto-columns:176px}
}
@media(prefers-reduced-motion:reduce){.points-hero,.reward-card{animation:none}.sticker-pack__art,.sticker-reveal__result img,.sticker-radiance__bloom,.sticker-radiance__rays,.sticker-radiance__ring{transition:none;animation:none!important}}

body.sticker-reveal-open{overflow:hidden}
.sticker-reveal{position:fixed;inset:0;z-index:80;display:grid;place-items:center}
.sticker-reveal[hidden]{display:none!important}
.sticker-reveal__backdrop{position:absolute;inset:0;background:#1a1410cc;backdrop-filter:blur(6px)}
.sticker-reveal__stage{position:relative;z-index:1;width:min(420px,calc(100% - 32px));padding:28px 22px 24px;border-radius:28px;background:var(--cream);text-align:center;box-shadow:0 24px 60px #0006}
.sticker-pack{appearance:none;border:0;background:transparent;padding:0;margin:8px auto 4px;width:min(260px,68vw);display:block;cursor:pointer;text-align:center}
.sticker-pack__art{display:block;width:100%;height:auto;aspect-ratio:.667;object-fit:contain;background:transparent;transform-origin:50% 70%;filter:drop-shadow(0 16px 28px #0005);transition:transform .35s ease,opacity .4s ease,filter .35s ease}
.sticker-pack__hint{display:block;margin-top:10px;font-size:14px;color:var(--muted)}
.sticker-pack.is-nudge .sticker-pack__art{animation:pack-nudge .7s ease}
.sticker-pack.is-open .sticker-pack__art{transform:translateY(-6px) scale(1.03) rotate(-2deg)}
.sticker-pack.is-done{pointer-events:none}
.sticker-pack.is-done .sticker-pack__art{opacity:0;transform:translateY(-24px) scale(1.06) rotate(5deg)}
.sticker-pack.is-done .sticker-pack__hint{opacity:0;transition:opacity .25s ease}
@keyframes pack-nudge{0%,100%{transform:none}18%{transform:rotate(-4deg) translateX(-3px)}36%{transform:rotate(4deg) translateX(3px)}54%{transform:rotate(-3deg) scale(1.02)}72%{transform:rotate(3deg) scale(1.03)}88%{transform:rotate(-1.5deg)}}
.sticker-reveal__result{position:relative;padding:12px 0 4px}
.sticker-reveal__result img{position:relative;z-index:2;width:min(240px,68vw);height:auto;border-radius:50%;filter:drop-shadow(0 10px 22px #4b3a2e33);animation:sticker-pop .65s cubic-bezier(.2,1.15,.3,1) both}
.sticker-radiance{position:absolute;left:50%;top:42%;width:min(360px,92vw);aspect-ratio:1;transform:translate(-50%,-50%);z-index:1;pointer-events:none}
.sticker-radiance__bloom,.sticker-radiance__rays,.sticker-radiance__ring{position:absolute;inset:0;border-radius:50%}
.sticker-radiance__bloom{background:radial-gradient(circle,rgba(255,255,252,.98) 0%,rgba(255,248,235,.75) 18%,rgba(167,184,158,.42) 38%,rgba(155,171,199,.16) 58%,transparent 74%);animation:radiance-breathe 2.6s ease-in-out infinite}
.sticker-radiance__rays{background:conic-gradient(from 0deg,rgba(255,248,235,.55) 0deg 10deg,transparent 10deg 30deg,rgba(199,174,125,.4) 30deg 40deg,transparent 40deg 60deg,rgba(167,184,158,.42) 60deg 70deg,transparent 70deg 90deg,rgba(155,171,199,.38) 90deg 100deg,transparent 100deg 120deg,rgba(255,248,235,.5) 120deg 130deg,transparent 130deg 150deg,rgba(199,174,125,.36) 150deg 160deg,transparent 160deg 180deg,rgba(167,184,158,.4) 180deg 190deg,transparent 190deg 210deg,rgba(155,171,199,.35) 210deg 220deg,transparent 220deg 240deg,rgba(255,248,235,.48) 240deg 250deg,transparent 250deg 270deg,rgba(199,174,125,.38) 270deg 280deg,transparent 280deg 300deg,rgba(167,184,158,.36) 300deg 310deg,transparent 310deg 330deg,rgba(155,171,199,.4) 330deg 340deg,transparent 340deg 360deg);mask-image:radial-gradient(circle,transparent 12%,#000 28%,#000 62%,transparent 82%);-webkit-mask-image:radial-gradient(circle,transparent 12%,#000 28%,#000 62%,transparent 82%);filter:blur(1.5px);opacity:.72;animation:radiance-spin 18s linear infinite}
.sticker-radiance__ring{inset:22%;border:0;background:radial-gradient(circle,transparent 58%,rgba(255,252,245,.55) 72%,transparent 78%);opacity:.7;animation:radiance-ring 2.6s ease-in-out infinite}
.sticker-radiance[data-tier=soft] .sticker-radiance__bloom{background:radial-gradient(circle,rgba(255,252,245,.95) 0%,rgba(167,184,158,.45) 34%,transparent 72%)}
.sticker-radiance[data-tier=soft] .sticker-radiance__rays{opacity:.42;animation-duration:22s}
.sticker-radiance[data-tier=glow] .sticker-radiance__bloom{background:radial-gradient(circle,#fffef9 0%,rgba(155,171,199,.55) 22%,rgba(167,184,158,.32) 46%,transparent 72%)}
.sticker-radiance[data-tier=glow] .sticker-radiance__rays{opacity:.78;animation-duration:14s}
.sticker-radiance[data-tier=halftime] .sticker-radiance__bloom{background:radial-gradient(circle,#fffaf0 0%,rgba(199,174,125,.62) 20%,rgba(155,171,199,.3) 48%,transparent 74%)}
.sticker-radiance[data-tier=halftime] .sticker-radiance__rays{opacity:.88;filter:blur(1px);animation-duration:11s}
.sticker-radiance[data-tier=halftime] .sticker-radiance__ring{background:radial-gradient(circle,transparent 56%,rgba(199,174,125,.65) 70%,transparent 78%)}
.sticker-radiance[data-tier=red] .sticker-radiance__bloom{background:radial-gradient(circle,#fff8f6 0%,rgba(229,175,169,.7) 18%,rgba(153,59,74,.28) 44%,transparent 72%)}
.sticker-radiance[data-tier=red] .sticker-radiance__rays{opacity:.92;background:conic-gradient(from 8deg,rgba(229,175,169,.7) 0deg 12deg,transparent 12deg 30deg,rgba(153,59,74,.35) 30deg 42deg,transparent 42deg 60deg,rgba(229,175,169,.55) 60deg 72deg,transparent 72deg 90deg,rgba(199,174,125,.4) 90deg 102deg,transparent 102deg 120deg,rgba(229,175,169,.65) 120deg 132deg,transparent 132deg 150deg,rgba(153,59,74,.3) 150deg 162deg,transparent 162deg 180deg,rgba(229,175,169,.6) 180deg 192deg,transparent 192deg 210deg,rgba(199,174,125,.35) 210deg 222deg,transparent 222deg 240deg,rgba(229,175,169,.7) 240deg 252deg,transparent 252deg 270deg,rgba(153,59,74,.32) 270deg 282deg,transparent 282deg 300deg,rgba(229,175,169,.55) 300deg 312deg,transparent 312deg 330deg,rgba(199,174,125,.4) 330deg 342deg,transparent 342deg 360deg);animation-duration:8s}
.sticker-radiance[data-tier=red] .sticker-radiance__ring{background:radial-gradient(circle,transparent 54%,rgba(229,175,169,.75) 70%,transparent 78%)}
.sticker-radiance[data-tier=finale] .sticker-radiance__bloom{background:radial-gradient(circle,#fff 0%,rgba(255,248,235,.9) 12%,rgba(155,171,199,.55) 28%,rgba(167,184,158,.4) 42%,rgba(229,175,169,.35) 54%,rgba(199,174,125,.28) 64%,transparent 78%);animation-duration:1.7s}
.sticker-radiance[data-tier=finale] .sticker-radiance__rays{opacity:1;filter:blur(.8px);background:conic-gradient(from 0deg,#9babc7cc 0deg 11deg,transparent 11deg 22deg,#a7b89ecc 22deg 33deg,transparent 33deg 44deg,#e5afa9cc 44deg 55deg,transparent 55deg 66deg,#c7a57dcc 66deg 77deg,transparent 77deg 88deg,#9babc7cc 88deg 99deg,transparent 99deg 110deg,#a7b89ecc 110deg 121deg,transparent 121deg 132deg,#e5afa9cc 132deg 143deg,transparent 143deg 154deg,#c7a57dcc 154deg 165deg,transparent 165deg 176deg,#9babc7cc 176deg 187deg,transparent 187deg 198deg,#a7b89ecc 198deg 209deg,transparent 209deg 220deg,#e5afa9cc 220deg 231deg,transparent 231deg 242deg,#c7a57dcc 242deg 253deg,transparent 253deg 264deg,#9babc7cc 264deg 275deg,transparent 275deg 286deg,#a7b89ecc 286deg 297deg,transparent 297deg 308deg,#e5afa9cc 308deg 319deg,transparent 319deg 330deg,#c7a57dcc 330deg 341deg,transparent 341deg 360deg);animation:radiance-spin 7s linear infinite}
.sticker-radiance[data-tier=finale] .sticker-radiance__ring{background:radial-gradient(circle,transparent 52%,rgba(255,255,255,.9) 68%,transparent 78%);animation-duration:1.7s}
.sticker-reveal__msg{margin:14px 0 6px;font-size:20px;font-weight:700}
.sticker-reveal__bonus{margin:0 0 14px;color:#486440;font-weight:700}
.sticker-reveal__stage.is-finale{width:min(440px,calc(100% - 28px));padding:22px 18px 20px}
.sticker-reveal__finale{position:relative;padding:4px 0 0;text-align:center}
.sticker-reveal__finale[hidden],.sticker-finale-coupon[hidden],.sticker-finale-actions[hidden]{display:none!important}
.sticker-reveal__finale .eyebrow{margin:0 0 12px}
.sticker-album--finale{
  margin:0 auto 14px;padding:12px;max-width:340px;
  border-radius:22px;background:#fffdf9;
  border:1.5px solid #e6d9c8;
  box-shadow:0 10px 28px #4b3a2e18;
  gap:8px;
  transition:box-shadow .45s ease,border-color .45s ease,transform .45s ease,opacity .5s ease;
}
.sticker-album--finale.is-complete{
  border-color:#c7a57d;
  box-shadow:0 0 0 2px #c7a57d66,0 14px 36px #c7a57d33;
  animation:finale-album-glow 1.4s ease-in-out 1;
}
.sticker-album--finale.is-resetting{opacity:.35;transform:scale(.96)}
.sticker-album--finale .sticker-slot{border-width:1.5px}
.sticker-reveal__msg--finale{margin:6px 0 12px;font-size:18px;line-height:1.35}
.sticker-finale-coupon{margin:0 0 14px;opacity:0;transform:translateY(18px) scale(.96);transition:opacity .45s ease,transform .55s cubic-bezier(.2,1.1,.3,1)}
.sticker-finale-coupon.is-in{opacity:1;transform:none}
.sticker-finale-coupon .coupon-ticket{width:100%;pointer-events:none;cursor:default;min-height:108px}
.sticker-finale-coupon .coupon-ticket__title{font-size:17px}
.sticker-finale-actions{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:4px}
.sticker-finale-actions .plain-button{min-height:44px;padding:8px 12px;background:none;border:0;text-decoration:underline;cursor:pointer;font-size:16px;color:var(--muted)}
.sticker-reveal__result.is-finale-hold [data-reveal-close-normal]{display:none}
@keyframes finale-album-glow{
  0%{transform:scale(1)}
  40%{transform:scale(1.025)}
  100%{transform:scale(1)}
}
@media(prefers-reduced-motion:reduce){
  .sticker-album--finale.is-complete{animation:none}
  .sticker-finale-coupon{opacity:1;transform:none;transition:none}
  .sticker-album--finale{transition:none}
}
@keyframes sticker-pop{from{opacity:0;transform:scale(.55) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes radiance-breathe{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}
@keyframes radiance-spin{to{transform:rotate(360deg)}}
@keyframes radiance-ring{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.06);opacity:.85}}
@media(max-width:760px){.account-shell:not(.account-shell--app){margin-top:18px}.stamp-card,.sticker-album{gap:8px}}


/* Login + Register: same viewport-sized play frame as Shop / Reservation */
.page-konto:not(.account-app),.page-konto-login,.page-konto-register{background:var(--cream)}
.page-konto:not(.account-app),.page-konto-register{height:100svh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.page-konto:not(.account-app)>.site-header,.page-konto-register>.site-header{flex-shrink:0}
.page-konto:not(.account-app)>main,.page-konto-register>main{display:flex;flex-direction:column;flex:1;min-height:0;padding-bottom:0}
.page-konto-register>main{padding-bottom:94px}
.page-konto:not(.account-app) footer,.page-konto-register footer{display:none}
.page-konto:not(.account-app) .mobile-navigation,.page-konto-register .mobile-navigation{z-index:45}
.page-konto .account-gate-heading,.page-konto-login .play-heading,.page-konto-register .play-heading{max-width:560px;width:100%;margin:10px auto;flex-shrink:0}
.page-konto .account-gate-heading .eyebrow,.page-konto-login .play-heading .eyebrow,.page-konto-register .play-heading .eyebrow{margin:0;font-size:11px;line-height:16px;letter-spacing:.08em}
.page-konto .account-gate-heading .caption,.page-konto-login .play-heading .caption,.page-konto-register .play-heading .caption{margin:3px 0 0;font-size:12px;line-height:18px}
.loyalty-play{
  max-width:560px;width:100%;margin:0 auto;padding:22px;border-radius:24px;position:relative;isolation:isolate;min-width:0;
  background-color:#c45c4a;
  background-image:url('/assets/flora-cafe/loyalty-background.jpg');
  background-image:image-set(
    url('/assets/flora-cafe/loyalty-background.webp') type('image/webp'),
    url('/assets/flora-cafe/loyalty-background.jpg') type('image/jpeg')
  );
  background-size:cover;background-position:center bottom;background-repeat:no-repeat
}
.page-konto .account-gate-play,.page-konto-register .loyalty-play{flex:1;min-height:0;margin:0 auto;display:flex;flex-direction:column;overflow:hidden}
.page-konto-register .loyalty-play .play-progress{flex-shrink:0}
.loyalty-play::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(247,243,238,.94),rgba(247,243,238,.62) 36%,rgba(247,243,238,.12) 72%,rgba(196,92,74,.08) 100%)}
.page-konto .account-gate-play{justify-content:flex-start;padding-top:18px;padding-bottom:calc(88px + env(safe-area-inset-bottom))}
.page-konto .account-gate-card{
  margin:0;padding:18px 16px 16px;border-radius:18px;background:rgba(255,252,248,.92);backdrop-filter:blur(7px);
  display:flex;flex-direction:column;gap:12px;min-width:0;width:100%
}
.page-konto .account-gate-card h2{margin:0;font-size:clamp(28px,6vw,36px);line-height:1.15}
.page-konto .account-gate-card>.caption{margin:0;font-size:15px;line-height:1.45;color:var(--muted)}
.page-konto .account-gate-card .wide-button{margin:6px 0 0;width:100%}
.page-konto .account-gate-card .account-login-links{margin:2px 0 0;text-align:center}
/* Single scroll surface: form scrolls. Sections must stay overflow:visible so Android
   touch gestures starting on the cream card still move this container (not trapped). */
.page-konto-register #account-register-form{
  flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;touch-action:pan-y;padding:4px 2px 20px;scrollbar-width:thin
}
.page-konto-register #account-register-form section:not([data-reg-step="0"]){
  background:rgba(255,252,248,.9);border-radius:18px;padding:16px;backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);overflow:visible;min-width:0
}
.page-konto-register #account-register-form .guest-intro{display:flex;flex-direction:column;gap:18px;padding:0;margin:0;background:none}
.page-konto-register #account-register-form .guest-intro h2{font-size:28px;line-height:1.15;margin:0;padding:0;background:none;border-radius:0}
.page-konto-register #account-register-form .guest-intro input{height:50px;min-height:50px;width:100%;font-size:18px;padding:10px 12px}
.page-konto-register #account-register-form .guest-intro .button{height:50px;min-height:50px;margin:0;width:100%;padding:10px 18px;font-size:18px}
.page-konto-register #account-register-form input[type=email],
.page-konto-register #account-register-form input[type=date]{display:block;width:100%;max-width:100%;min-width:0;overflow:hidden}
.page-konto-register #account-register-form input[type=date]::-webkit-datetime-edit,
.page-konto-register #account-register-form input[type=date]::-webkit-date-and-time-value{min-width:0;max-width:100%}
/* Register back uses shared .play-back-link (also in guest-flows for shop/reservation). */
.page-konto-register .play-back-link,
.page-konto-register #register-back{
  position:fixed;
  left:max(12px, env(safe-area-inset-left));
  bottom:calc(78px + env(safe-area-inset-bottom));
  z-index:40;
  appearance:none;
  margin:0;
  padding:10px 6px;
  min-height:44px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--ink);
  font:inherit;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  text-underline-offset:3px;
  cursor:pointer;
}
.page-konto-register .play-back-link:hover,
.page-konto-register #register-back:hover{text-decoration:underline}
.page-konto-register .play-back-link:focus-visible,
.page-konto-register #register-back:focus-visible{outline:3px solid #486440;outline-offset:3px}
.page-konto-register .play-back-link[hidden],
.page-konto-register #register-back[hidden]{display:none!important}
@media(min-width:761px){
  .page-konto-register .play-back-link,
  .page-konto-register #register-back{
    left:max(24px, calc(50% - 280px));
    bottom:32px;
  }
}
.page-konto-register .register-joy-options{grid-template-columns:1fr;gap:10px}
.page-konto-register #register-error a{color:inherit;font-weight:600}
@media(min-width:431px){.page-konto-register .register-joy-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
.page-konto-login .account-login-play{padding:24px 22px 22px;margin-bottom:18px}
.page-konto-login .account-login-play h2{margin:0 0 16px;font-size:clamp(28px,5vw,36px)}
.page-konto-login .account-login-form{background:rgba(255,252,248,.9);border-radius:18px;padding:16px;backdrop-filter:blur(7px);margin:0}
.page-konto-login .account-login-links{margin:14px 0 0;text-align:center}
.account-flow-footnote{max-width:560px;width:100%;margin:8px auto 0;text-align:center;flex-shrink:0}
.account-flow-footnote a{color:inherit}
@media(min-width:761px){
  .page-konto:not(.account-app)>main,.page-konto-register>main{padding-bottom:24px}
  .loyalty-play{background-size:100% auto}
}
@media(max-width:760px){
  .page-konto .account-gate-play,.page-konto-register .loyalty-play{padding:16px}
  .page-konto .account-gate-heading,.page-konto-register .play-heading{margin:8px auto}
  .page-konto-register #account-register-form{padding-bottom:28px}
  .page-konto-register #account-register-form .guest-intro h2{font-size:26px}
}


/* Serrated welcome coupons */
.coupon-ticket-list{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:14px}
.coupon-ticket{
  --coupon-accent:#8a9a6e;
  --coupon-cream:#f7f3ee;
  appearance:none;
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 48px;
  align-items:stretch;
  width:100%;
  min-height:132px;
  margin:0;
  padding:0;
  border:0;
  border-radius:3px;
  background:#fffdf9;
  color:#4b3a2e;
  font:inherit;
  text-align:left;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  box-shadow:0 10px 22px #4b3a2e14;
}
.coupon-ticket:focus-visible{outline:3px solid #486440;outline-offset:3px}
/* Page-cream scallops on left/right only — works on iOS (mask did not). */
.coupon-ticket__edge{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:
    radial-gradient(circle at left center,var(--coupon-cream) 5.5px,transparent 6px) left top / 12px 18px repeat-y,
    radial-gradient(circle at right center,var(--coupon-cream) 5.5px,transparent 6px) right top / 12px 18px repeat-y;
}
/* Product photo sits in the back; accent wash shimmers over it. */
.coupon-ticket__photo{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:52%;
  z-index:0;
  object-fit:cover;
  object-position:var(--photo-pos, 50% 40%);
  opacity:.58;
  filter:saturate(1.1) contrast(1.05);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 24%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 24%);
  pointer-events:none;
  transform:scale(1.12);
  transform-origin:var(--photo-pos, 50% 40%);
}
.coupon-ticket__wash{
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  width:50%;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,253,249,.94) 0%,rgba(255,253,249,.2) 36%,transparent 62%),
    linear-gradient(135deg,var(--coupon-accent),transparent 72%);
  opacity:.55;
  mix-blend-mode:multiply;
}
.coupon-ticket__body{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  min-width:0;
  padding:16px 10px 16px 22px;
  border-right:1.5px dashed rgba(80,65,50,.18);
}
.coupon-ticket__eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6b5849}
.coupon-ticket__title{margin:0;font-size:19px;line-height:1.25;font-weight:700;color:#4b3a2e;overflow-wrap:anywhere}
.coupon-ticket__was{margin:0;font-size:14px;color:#6b5849}
.coupon-ticket__was span{color:#b33a32;text-decoration:line-through;text-decoration-thickness:1.5px;font-weight:600}
.coupon-ticket__meta{margin:0;font-size:13px;color:#6b5849}
.coupon-ticket__stub{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  min-height:100%;
  padding:8px 0;
}
.coupon-ticket__stub-label{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  color:#6b5849;
  opacity:.72;
}
.coupon-ticket.accent-sage{--coupon-accent:#8a9a6e;background:linear-gradient(135deg,#f4f7f1 0%,#fffdf9 48%,#e8ebe0 100%);border-left:6px solid #8a9a6e}
.coupon-ticket.accent-clay{--coupon-accent:#cdae91;background:linear-gradient(135deg,#f8f1ea 0%,#fffdf9 48%,#f0e4d8 100%);border-left:6px solid #cdae91}
.coupon-ticket.accent-rose{--coupon-accent:#e5afa9;background:linear-gradient(135deg,#faf0ee 0%,#fffdf9 48%,#f3e0dd 100%);border-left:6px solid #e5afa9}
.coupon-ticket.accent-blue{--coupon-accent:#9babc7;background:linear-gradient(135deg,#eef2f7 0%,#fffdf9 48%,#e2e8f0 100%);border-left:6px solid #9babc7}
.coupon-ticket.accent-sand{--coupon-accent:#dcc9b2;background:linear-gradient(135deg,#f7f1e8 0%,#fffdf9 48%,#efe4d4 100%);border-left:6px solid #dcc9b2}
.coupon-ticket.accent-gold{
  --coupon-accent:#c7a57d;
  background:linear-gradient(135deg,#f8efd8 0%,#fffdf6 42%,#f0e2c0 100%);
  border-left:6px solid #c7a57d;
  box-shadow:inset 0 0 0 1px #c7a57d44
}
.coupon-ticket.is-locked{cursor:default;opacity:.96}
.coupon-ticket.is-locked .coupon-ticket__stub{opacity:.45}
.coupon-ticket.is-locked .coupon-ticket__stub-label{font-size:11px;letter-spacing:.04em}
.coupon-ticket--hero{
  min-height:168px;
  cursor:default;
  pointer-events:none;
  box-shadow:0 14px 28px #4b3a2e18;
}
.coupon-ticket--hero .coupon-ticket__title{font-size:22px}
.coupon-ticket--hero .coupon-ticket__photo{opacity:.62;width:56%}
.coupon-detail__hint{margin:14px 0 10px;font-size:15px}
.coupon-detail .account-qr__frame{margin:0 auto 12px}
.offer-list--after-coupons{margin-top:8px}
