@font-face { font-family: "Titan One"; src: url("TitanOne-Regular.ttf") format("truetype"); font-display: swap; }
@font-face { font-family: "Pally"; src: url("Pally-Regular.otf") format("opentype"); font-display: swap; }
@font-face { font-family: "Pally"; src: url("Pally-Bold.otf") format("opentype"); font-weight: 700; font-display: swap; }

:root { --blue:#1646c6; --ink:#102242; --cream:#fff9ee; --pink:#ff9fbd; --pink-light:#ffd5e3; --lime:#dcf74f; --yellow:#ffd65b; --white:#fff; --line:rgba(16,34,66,.13); --shadow:0 16px 44px rgba(28,61,150,.15); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"Pally", Arial, sans-serif; font-size:17px; line-height:1.48; }
button, a { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
.skip-link { position:absolute; left:-999px; top:0; background:var(--blue); color:var(--white); padding:.7rem 1rem; z-index:30; }
.skip-link:focus { left:1rem; top:1rem; }
.site-shell { min-height:100vh; overflow:hidden; }
.topbar { height:82px; padding:12px clamp(20px,5vw,76px); display:flex; align-items:center; justify-content:space-between; background:rgba(255,249,238,.9); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; backdrop-filter:blur(15px); }
.brand { min-width:110px; height:58px; display:flex; align-items:center; }
.brand-mark { display:block; color:var(--blue); font-family:"Titan One",sans-serif; font-size:2rem; line-height:.66; letter-spacing:-.11em; transform:rotate(-2deg); }
.brand-mark small { display:block; margin-top:11px; padding-left:4px; color:var(--ink); font-family:"Pally",sans-serif; font-size:.43rem; font-weight:700; letter-spacing:.16em; transform:rotate(2deg); }
.desktop-nav { display:flex; align-items:center; gap:34px; font-size:15px; font-weight:700; }
.desktop-nav a { padding:8px 2px; border-bottom:2px solid transparent; }
.desktop-nav a.is-active { color:var(--blue); border-color:var(--blue); }
.profile-trigger { width:42px; height:42px; border:0; border-radius:50%; color:var(--white); background:var(--blue); font-weight:700; box-shadow:0 4px 0 var(--ink); }
.view { display:none; padding:0 clamp(20px,5vw,76px) 88px; max-width:1550px; margin:auto; }
.notification-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-top:22px;padding:24px 26px;border:1px solid var(--line);border-radius:26px;background:linear-gradient(135deg,#fff 0%,#f5f8ff 100%);box-shadow:0 12px 28px rgba(16,34,66,.08)}.notification-card h2{margin:2px 0 5px;font-size:1.45rem}.notification-card p:not(.eyebrow){margin:0;color:#53617b}.notification-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--blue);color:#e8ff47;font-size:1.45rem}.notification-status{grid-column:2/-1;margin:0;color:var(--blue);font-weight:700}
.view.is-visible { display:block; animation:fade .35s ease; }
@keyframes fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.hero { min-height:570px; display:grid; grid-template-columns:1.06fr .94fr; align-items:center; gap:40px; position:relative; }
.hero:before { content:""; position:absolute; inset:0 -30vw 0 51%; z-index:-1; background:var(--pink-light); border-bottom-left-radius:48% 30%; }
.eyebrow,.card-label { margin:0 0 .55rem; color:var(--blue); letter-spacing:.12em; font-size:.76rem; font-weight:700; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:.96; letter-spacing:-.035em; }
h1 { font-family:"Titan One", sans-serif; color:var(--blue); font-size:clamp(3.4rem,7vw,7rem); margin-bottom:1.25rem; }
h1 em { color:var(--ink); font-style:normal; }
h2 { font-size:clamp(1.8rem,3.4vw,3.25rem); margin-bottom:.85rem; }
h3 { font-size:1.35rem; margin-bottom:.5rem; }
.hero-text { max-width:470px; color:#4a5a75; font-size:1.15rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.button { border:1px solid transparent; border-radius:999px; padding:.82rem 1.22rem; font-weight:700; transition:transform .2s, box-shadow .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 7px 0 rgba(16,34,66,.16); }
.button-primary { background:var(--blue); color:#fff; }
.button-ghost { background:transparent; border-color:var(--blue); color:var(--blue); }
.button-dark { background:var(--ink); color:#fff; white-space:nowrap; }
.hero-art { height:480px; position:relative; min-width:300px; }
.cup { position:absolute; width:245px; height:310px; left:50%; top:96px; transform:translateX(-50%) rotate(-7deg); }
.cup-body { position:absolute; bottom:0; left:15px; width:220px; height:230px; background:var(--blue); clip-path:polygon(0 0,100% 0,87% 100%,13% 100%); border-radius:28px 28px 45px 45px; box-shadow:10px 13px 0 rgba(16,34,66,.12); display:grid; place-items:center; }
.cup-body span { color:#fff; font-family:"Titan One"; font-size:3.4rem; letter-spacing:-.13em; transform:rotate(7deg); }
.cup-top { position:absolute; z-index:2; left:14px; bottom:208px; width:222px; height:49px; background:var(--cream); border:7px solid var(--blue); border-radius:50%; }
.cream { position:absolute; z-index:3; width:110px; height:100px; border-radius:55% 45% 35% 55%; background:#fff8f0; border:7px solid var(--blue); }
.cream-one { top:45px; left:66px; transform:rotate(15deg); }.cream-two { top:75px; left:22px; transform:rotate(-27deg); }.cream-three { top:82px; right:6px; transform:rotate(37deg); }
.straw { position:absolute; z-index:1; height:145px; width:23px; background:var(--pink); border:6px solid var(--blue); border-radius:13px; left:152px; top:0; transform:rotate(17deg); }
.sticker { position:absolute; z-index:5; font-family:"Titan One"; color:var(--blue); text-align:center; line-height:1; letter-spacing:-.05em; }
.sticker-top { top:34px; left:5%; background:var(--lime); padding:20px 17px; transform:rotate(-11deg); border-radius:46% 54% 45% 52%; font-size:1.25rem; box-shadow:6px 6px 0 var(--blue); }
.sticker-bottom { bottom:21px; right:0; font-size:1.1rem; background:var(--yellow); border-radius:50%; padding:17px 12px; transform:rotate(13deg); box-shadow:5px 5px 0 var(--blue); }
.quick-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:20px; padding:24px 27px; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:var(--shadow); margin-top:-34px; position:relative; }
.quick-card h2 { font-size:1.4rem; margin-bottom:.25rem; }.quick-card p:not(.card-label) { margin:0; color:#53617b; }.quick-icon { background:var(--lime); width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:var(--blue); font-size:1.8rem; }
.section { padding:100px 0 0; }.section-heading,.page-heading { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:30px; }.section-heading h2 { margin:0; }.text-button { border:0; padding:0; background:transparent; color:var(--blue); font-weight:700; }.text-button span { font-size:1.25em; }
.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.menu-card { min-height:370px; padding:24px; border-radius:26px; position:relative; overflow:hidden; }.menu-card-pink { background:var(--pink-light); }.menu-card-blue { background:var(--blue); color:#fff; }.menu-card-cream { background:var(--yellow); }.menu-pill { border:1px solid currentColor; border-radius:30px; padding:5px 10px; font-size:.72rem; font-weight:700; letter-spacing:.09em; }.menu-card p { max-width:240px; margin-bottom:0; }.menu-card h3 { margin-top:22px; }.menu-visual { height:175px; position:relative; margin:12px auto 0; }.waffle { width:174px; height:140px; border-radius:48% 48% 40% 40%; background:#e9a34a; transform:rotate(-7deg); display:grid; grid-template-columns:repeat(4,1fr); gap:5px; padding:17px; box-shadow:11px 11px 0 rgba(101,67,7,.16); }.waffle i { border-radius:50%; background:#cd7f31; }.waffle b { position:absolute; width:50px; height:50px; background:#fff7ec; border-radius:50%; top:-16px; right:7px; box-shadow:18px 30px 0 #ef4f67; }.mini-frappe { width:120px; height:146px; margin-top:10px; background:var(--pink); clip-path:polygon(12% 0,88% 0,78% 100%,22% 100%); border:5px solid #fff; border-radius:17px; box-shadow:8px 8px 0 rgba(0,0,0,.16); }.mini-frappe b { position:absolute; width:78px; height:48px; left:17px; top:-35px; border-radius:50% 50% 42% 42%; border:5px solid #fff; background:#fff8ea; }.mini-frappe i { position:absolute; width:16px; height:52px; background:var(--lime); border-radius:10px; right:15px; top:-70px; transform:rotate(18deg); }.baguette { width:210px; height:90px; border:7px solid var(--ink); background:#e89938; border-radius:50% 10% 18% 50%; transform:rotate(-10deg); box-shadow:10px 9px 0 rgba(16,34,66,.13); }.baguette i { position:absolute; width:12px; height:46px; background:#ffec87; border-radius:50%; transform:rotate(31deg); top:16px; }.baguette i:nth-child(1){left:48px}.baguette i:nth-child(2){left:92px}.baguette i:nth-child(3){left:138px}
.visit-banner { margin-top:82px; padding:38px 44px; border-radius:26px; color:#fff; background:var(--blue) url("gula-pattern.webp") right center/320px auto no-repeat; display:flex; align-items:center; justify-content:space-between; gap:25px; }.visit-banner .eyebrow { color:var(--lime); }.visit-banner h2 { margin:0; max-width:600px; }.visit-banner .button-primary { background:var(--lime); color:var(--ink); }
.page-heading { padding:64px 0 20px; align-items:center; }.page-heading h1 { font-size:clamp(3rem,6vw,5rem); }.page-heading p:last-child { max-width:510px; color:#53617b; }
.feed-grid { columns:2; column-gap:20px; }.post { break-inside:avoid; padding:14px; border-radius:24px; margin:0 0 20px; }.post-lime{background:var(--lime)}.post-blue{background:#b7d1ff}.post-pink{background:var(--pink-light)}.post-cream{background:#ffe485}.post-photo { border-radius:16px; min-height:230px; position:relative; overflow:hidden; }.photo-waffle { background:linear-gradient(135deg,#a8491e 0 20%,#e69b38 20% 40%,#ffda77 40% 48%,#b85e24 48% 67%,#f3b94f 67%); }.photo-waffle:before { content:""; position:absolute; width:170px; height:140px; background:radial-gradient(circle,#a4511e 0 18%,transparent 20%) 0 0/30px 30px,#e6a040; border-radius:45% 45% 42% 42%; left:calc(50% - 85px); top:44px; transform:rotate(-8deg); }.photo-drink{background:linear-gradient(160deg,#ecf5ff,#5b9ce9)}.photo-drink:before{content:"";position:absolute;width:100px;height:178px;left:calc(50% - 50px);bottom:12px;background:#e26ea2;clip-path:polygon(8% 0,92% 0,80% 100%,20% 100%);border-radius:15px}.photo-drink:after{content:"";position:absolute;width:96px;height:60px;left:calc(50% - 48px);top:38px;border-radius:50%;background:#fff3ef;border:5px solid #e26ea2}.photo-friends{background:linear-gradient(160deg,#ffb9d0,#ff6c9d 45%,#feefb8)}.photo-friends:before,.photo-friends:after{content:"";position:absolute;width:102px;height:172px;bottom:0;border-radius:60px 60px 10px 10px;background:#225cc9}.photo-friends:before{left:25%;background:#f2b487}.photo-friends:after{right:19%;background:#5d3972}.photo-baguette{background:linear-gradient(130deg,#ffe898,#f7a947 58%,#e67836)}.photo-baguette:before{content:"";position:absolute;width:210px;height:85px;left:calc(50% - 105px);top:73px;border-radius:55% 12% 14% 55%;background:#e99734;border:7px solid #6a3a22;transform:rotate(-12deg)}.post-meta{display:flex;justify-content:space-between;font-size:.76rem;font-weight:700;letter-spacing:.08em;margin:13px 2px 4px}.post p{margin:0;font-size:1.05rem}
.club-layout { min-height:600px; padding-top:78px; display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; align-items:center; }.club-copy h1 { font-size:clamp(3.8rem,7vw,6.8rem); }.club-copy>p:not(.eyebrow) { font-size:1.2rem; max-width:410px; color:#53617b; }.reward-note { display:flex; gap:13px; align-items:center; padding:15px; background:var(--lime); border-radius:16px; margin-top:30px; max-width:385px; }.reward-note span{font-size:1.7rem;color:var(--blue)}.reward-note p{margin:0}.loyalty-card { color:#fff; background:var(--blue); border-radius:34px; padding:34px; max-width:600px; min-height:420px; box-shadow:13px 15px 0 var(--pink); position:relative; overflow:hidden; }.loyalty-card:after { content:""; position:absolute; width:310px; height:310px; right:-75px; bottom:-130px; background:var(--lime); border-radius:50%; opacity:.9; }.card-top{display:flex;justify-content:space-between;letter-spacing:.11em;font-weight:700;font-size:.76rem}.loyalty-card h2{font-family:"Titan One";font-size:2.7rem;margin:60px 0 4px}.stamps{display:grid;grid-template-columns:repeat(8,1fr);gap:9px;margin:36px 0 24px}.stamp{position:relative;z-index:1;display:grid;place-items:center;aspect-ratio:1;border:2px solid #9bb7ff;border-radius:50%;font-weight:700}.stamp.done{background:var(--lime);border-color:var(--lime);color:var(--blue)}.stamp.gift{background:var(--pink);border-color:var(--pink);color:var(--ink)}.progress{height:8px;background:#6285e5;border-radius:9px;overflow:hidden}.progress span{display:block;width:62.5%;height:100%;background:var(--lime)}.progress-copy{position:relative;z-index:1;margin:11px 0 24px}.qr-button{position:relative;z-index:1;display:flex;align-items:center;gap:10px;border:0;background:#fff;color:var(--blue);font-weight:700;border-radius:12px;padding:12px 15px}.qr-mini{width:20px;height:20px;background:repeating-conic-gradient(var(--blue) 0 25%,#fff 0 50%) 0/9px 9px}.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}.how-it-works article{padding:23px;background:#fff;border:1px solid var(--line);border-radius:18px}.how-it-works span{display:grid;place-items:center;background:var(--pink);color:var(--blue);font-family:"Titan One";width:38px;height:38px;border-radius:50%;margin-bottom:20px}.how-it-works p{margin:0;color:#53617b}
.visit-cooldown{position:relative;z-index:1;display:flex;align-items:center;gap:11px;margin:-10px 0 20px;padding:12px 14px;border:1px solid rgba(255,255,255,.28);border-radius:16px;background:rgba(255,255,255,.12);backdrop-filter:blur(6px)}.visit-cooldown[hidden]{display:none}.visit-cooldown>span{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:var(--lime);color:var(--blue);font-size:1.45rem;font-weight:800}.visit-cooldown p{margin:0;font-size:.82rem;line-height:1.4}.visit-cooldown strong{color:var(--lime);letter-spacing:.02em}
.profile-layout{padding-top:72px}.profile-header{display:flex;align-items:center;gap:22px;padding-bottom:34px;border-bottom:1px solid var(--line)}.profile-header h1{font-size:clamp(2.4rem,5vw,4.8rem);margin-bottom:.4rem}.profile-header p:not(.eyebrow){margin:0;color:#53617b}.profile-header .button{margin-left:auto}.avatar-large{width:114px;height:114px;display:grid;place-items:center;border-radius:50%;background:var(--pink);color:var(--blue);font-family:"Titan One";font-size:2.5rem;box-shadow:7px 7px 0 var(--blue)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.profile-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:#fff}.profile-card h2{font-size:1.65rem}.profile-card dl{margin:0}.profile-card dl>div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid var(--line)}.profile-card dt{color:#66728a}.profile-card dd{font-weight:700;margin:0;text-align:right}.big-number{font-family:"Titan One";font-size:5rem;color:var(--blue);line-height:1;margin-bottom:16px}.big-number span{font-family:"Pally";font-size:1.2rem;color:var(--ink)}.profile-card>p:not(.big-number){color:#53617b}
.qr-dialog{max-width:390px;border:0;border-radius:28px;padding:35px;text-align:center;color:var(--ink);box-shadow:var(--shadow)}.qr-dialog::backdrop{background:rgba(16,34,66,.55);backdrop-filter:blur(3px)}.qr-dialog h2{font-size:2.2rem}.dialog-close{position:absolute;right:16px;top:13px;border:0;background:transparent;color:var(--blue);font-size:2rem}.qr-code{width:215px;height:215px;margin:25px auto;background:repeating-conic-gradient(var(--ink) 0 25%,#fff 0 50%) 0/17px 17px;border:13px solid var(--ink);outline:8px solid var(--blue);position:relative}.qr-code:before,.qr-code:after{content:"";position:absolute;background:#fff;border:8px solid var(--ink);width:38px;height:38px}.qr-code:before{left:12px;top:12px}.qr-code:after{right:12px;bottom:12px}.qr-dialog small{color:#66728a}
.mobile-nav{display:none}
@media (max-width:800px){body{font-size:16px}.topbar{height:68px;padding:7px 20px}.brand{min-width:90px;height:52px}.brand-mark{font-size:1.65rem}.desktop-nav{display:none}.view{padding:0 20px 100px}.hero{min-height:unset;grid-template-columns:1fr;padding-top:45px;gap:5px}.hero:before{inset:39% -20px 0 38%;border-bottom-left-radius:48% 9%}.hero h1{font-size:3.85rem}.hero-art{height:355px}.cup{transform:translateX(-50%) scale(.8) rotate(-7deg);top:0}.sticker-top{left:3%;top:12px}.sticker-bottom{bottom:20px;right:2%}.quick-card{grid-template-columns:auto 1fr;margin-top:0;padding:21px;gap:12px}.quick-card .button{grid-column:1/-1;width:100%}.section{padding-top:68px}.section-heading,.page-heading{display:block}.section-heading .text-button{margin-top:12px}.menu-grid{grid-template-columns:1fr}.menu-card{min-height:310px}.menu-visual{position:absolute;right:17px;bottom:17px;width:145px;transform:scale(.8);transform-origin:bottom right}.menu-card h3,.menu-card p{max-width:48%;position:relative;z-index:1}.visit-banner{margin-top:50px;padding:28px;background-size:210px;background-position:125% center;display:block}.section-heading,.page-heading{display:block}.feed-grid{columns:1}.club-layout{min-height:unset;grid-template-columns:1fr;padding-top:48px}.club-copy h1{font-size:4.4rem}.loyalty-card{padding:25px;box-shadow:8px 9px 0 var(--pink)}.loyalty-card h2{margin-top:43px}.stamps{gap:6px}.how-it-works{grid-template-columns:1fr;margin-top:34px}.how-it-works article{display:grid;grid-template-columns:48px 1fr;column-gap:16px}.how-it-works span{grid-row:1/3}.how-it-works h3{margin:0}.how-it-works p{margin:4px 0}.profile-layout{padding-top:47px}.profile-header{align-items:flex-start;flex-wrap:wrap}.avatar-large{width:76px;height:76px;font-size:1.6rem}.profile-header h1{font-size:2.5rem}.profile-header .button{margin-left:0;width:100%}.profile-grid{grid-template-columns:1fr}.notification-card{grid-template-columns:auto 1fr;padding:21px;gap:14px}.notification-card .button{grid-column:1/-1;width:100%}.notification-status{grid-column:1/-1}.mobile-nav{display:flex;position:fixed;z-index:19;bottom:0;left:0;right:0;padding:9px 9px calc(9px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);justify-content:space-around}.mobile-nav button{border:0;background:transparent;color:#66728a;font-size:.67rem;display:grid;gap:2px;justify-items:center}.mobile-nav span{font-size:1.3rem;line-height:1}.mobile-nav button.is-active{color:var(--blue);font-weight:700}}

.loader{position:fixed;z-index:100;inset:0;display:grid;place-content:center;justify-items:center;background:var(--cream);color:var(--blue);transition:opacity .5s ease,visibility .5s ease;overflow:hidden}.loader:before{content:"";position:absolute;width:350px;height:350px;border-radius:50%;background:var(--pink-light);animation:loader-orbit 3.2s ease-in-out infinite}.loader img{position:relative;z-index:1;width:190px;height:160px;object-fit:cover;object-position:center 30%;mix-blend-mode:multiply;animation:logo-pop .65s cubic-bezier(.18,.89,.32,1.28) both}.loader p{position:relative;z-index:1;margin:-10px 0 0;font-size:.95rem;font-weight:700;letter-spacing:.04em;animation:soft-pulse 1.4s ease-in-out infinite}.loader-bubble{position:absolute;border-radius:50%;border:4px solid var(--blue);background:var(--lime)}.bubble-a{width:28px;height:28px;left:calc(50% - 130px);top:calc(50% - 55px);animation:float 1.8s ease-in-out infinite}.bubble-b{width:18px;height:18px;right:calc(50% - 122px);top:calc(50% + 30px);background:var(--pink);animation:float 1.8s .4s ease-in-out infinite}.bubble-c{width:13px;height:13px;right:calc(50% - 88px);top:calc(50% - 92px);background:var(--yellow);animation:float 1.8s .7s ease-in-out infinite}body.is-ready .loader{opacity:0;visibility:hidden;pointer-events:none}@keyframes loader-orbit{50%{transform:scale(.86) rotate(22deg);border-radius:42% 58% 50% 50%}}@keyframes logo-pop{from{transform:scale(.7) translateY(15px);opacity:0}to{transform:none;opacity:1}}@keyframes soft-pulse{50%{opacity:.48}}@keyframes float{50%{transform:translateY(-12px) rotate(14deg)}}.menu-card{transition:transform .25s ease,box-shadow .25s ease}.menu-card:hover{transform:translateY(-7px) rotate(-.5deg);box-shadow:var(--shadow)}.menu-visual{transition:transform .35s cubic-bezier(.18,.89,.32,1.28)}.menu-card:hover .menu-visual{transform:translateY(-8px) rotate(4deg)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

.community-empty{grid-column:1/-1;margin:0;padding:30px 24px;border:2px dashed #9bb7e9;border-radius:22px;background:#f4f7ff;color:#53617b;text-align:center;line-height:1.5}.post-meta>span{display:flex;align-items:center;gap:8px}.post-author-avatar{width:25px;height:25px;border:2px solid var(--blue);border-radius:50%;object-fit:cover;background:#eaf0ff}

[hidden]{display:none!important}

.post-like{margin-left:auto;min-width:52px;border:0;border-radius:999px;padding:7px 10px;background:#fff;color:var(--blue);font:inherit;font-weight:700;letter-spacing:0;cursor:pointer;box-shadow:0 2px 0 rgba(16,34,66,.13);transition:transform .18s ease,background .18s ease,color .18s ease}.post-like:active{transform:scale(.92)}.post-like.is-liked{background:var(--pink);color:#8e2446}.post-like:disabled{opacity:.6;cursor:wait}
body:not(.auth-resolved) .welcome-entry{opacity:0!important;visibility:hidden;pointer-events:none}
.auth-field input{font-size:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar-name{display:grid;gap:0;max-width:118px;overflow:hidden;line-height:1;white-space:nowrap}.topbar-name small{overflow:hidden;color:#637290;font-size:.48rem;font-weight:700;letter-spacing:.13em;text-overflow:ellipsis}.topbar-name strong{overflow:hidden;color:var(--blue);font-family:"Titan One",sans-serif;font-size:.95rem;letter-spacing:-.04em;text-overflow:ellipsis}
.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-logout{border:0;background:transparent;color:#a0445f;font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.profile-header-actions{grid-area:actions}.profile-qr{width:47px;height:47px;padding:0;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 4px 0 var(--ink);border:2px solid var(--ink)}.profile-qr .qr-mini{width:25px;height:25px;background:repeating-conic-gradient(var(--ink) 0 25%,#fff 0 50%) 0/10px 10px}.profile-header-logout{display:none}
@media(max-width:800px){.topbar-logout{font-size:.7rem}.profile-header-actions{justify-self:end}.profile-qr{width:45px;height:45px}.profile-qr .qr-mini{display:block;width:23px;height:23px}}

/* Final mobile controls: intentionally compact, high-contrast and independent of earlier layout rules. */
.topbar-actions{display:flex!important;align-items:center!important;gap:8px!important}.topbar-logout{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #e9b6c6!important;border-radius:50%;background:#fff7f9!important;color:#a0445f!important;box-shadow:none!important}.topbar-logout svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.profile-qr{display:grid!important;place-items:center;width:48px!important;height:48px!important;padding:0!important;border:2px solid var(--ink)!important;border-radius:13px!important;background:#fff!important;color:var(--ink)!important;box-shadow:0 3px 0 var(--ink)!important}.profile-qr svg{display:block!important;width:27px!important;height:27px!important;fill:currentColor!important}.profile-qr .qr-mini{display:none!important}@media(max-width:800px){.topbar-actions{gap:7px!important}.topbar-logout{width:34px;height:34px}.profile-header{grid-template-columns:76px minmax(0,1fr) 48px!important;grid-template-areas:"avatar identity actions" "edit edit edit"!important}.profile-header-actions{justify-self:end!important}.profile-qr{width:44px!important;height:44px!important;border-radius:12px!important}.profile-qr svg{width:24px!important;height:24px!important}}
.topbar-name{display:grid;gap:0;max-width:118px;overflow:hidden;line-height:1;white-space:nowrap}.topbar-name small{overflow:hidden;color:#637290;font-size:.48rem;font-weight:700;letter-spacing:.13em;text-overflow:ellipsis}.topbar-name strong{overflow:hidden;color:var(--blue);font-family:"Titan One",sans-serif;font-size:.95rem;letter-spacing:-.04em;text-overflow:ellipsis}@media(max-width:800px){.topbar-name{max-width:82px}.topbar-name small{font-size:.44rem}.topbar-name strong{font-size:.84rem}}
.password-control{position:relative;display:block}.password-control input{width:100%;padding-right:3.25rem}.password-reveal{position:absolute;right:.45rem;top:50%;width:2.3rem;height:2.3rem;transform:translateY(-50%);border:0;border-radius:50%;background:transparent;color:var(--blue);display:grid;place-items:center;line-height:1;font-size:1.15rem}.password-reveal:hover,.password-reveal:focus-visible{background:#eaf0ff;outline:none}.password-reveal[aria-pressed="true"]{background:var(--pink-light);color:var(--ink)}
.auth-message{margin:12px 0 2px!important;padding:11px 13px;border:1px solid #9bb7ff;border-radius:12px;background:#eef3ff;color:var(--blue)!important;font-size:.84rem;line-height:1.35}.auth-message.is-error{border-color:#d98ca3;background:#fff0f4;color:#8d2948!important}.auth-submit:disabled{cursor:wait;opacity:.58}
.credential-dialog{width:min(440px,calc(100% - 28px));border:0;border-radius:28px;padding:32px;color:var(--ink);box-shadow:var(--shadow)}.credential-dialog::backdrop{background:rgba(16,34,66,.78);backdrop-filter:blur(4px)}.credential-dialog h2{font-size:2.15rem;margin:0 0 8px}.credential-dialog>p:not(.eyebrow){color:#53617b;margin-bottom:20px}.credential-dialog .button{width:100%;margin-top:10px}.profile-form-message{margin:9px 2px 0;color:var(--blue);font-size:.8rem}.profile-form-message.is-error{color:#9a3151}.qr-code-real{display:block;background:#fff}.big-number #visit-count{font-family:"Titan One";font-size:5rem;color:var(--blue)}
.scanner-dialog{width:min(450px,calc(100% - 24px));border:0;border-radius:28px;padding:30px;color:var(--ink);box-shadow:var(--shadow)}
.scanner-dialog::backdrop{background:rgba(16,34,66,.72);backdrop-filter:blur(4px)}
.scanner-dialog h2{font-size:2rem;margin:0 0 8px}
.scanner-dialog>p:not(.eyebrow){margin:0 0 18px;color:#53617b}
.scanner-viewport{position:relative;overflow:hidden;width:100%;aspect-ratio:3/4;border:5px solid var(--blue);border-radius:22px;background:var(--ink)}
.scanner-viewport video{display:block;width:100%;height:100%;object-fit:cover}
.scanner-frame{position:absolute;inset:50% auto auto 50%;width:min(64%,240px);aspect-ratio:1;transform:translate(-50%,-50%)}
.scanner-frame i{position:absolute;width:42px;height:42px;border-color:var(--lime);border-style:solid}
.scanner-frame i:nth-child(1){top:0;left:0;border-width:5px 0 0 5px;border-radius:12px 0 0}
.scanner-frame i:nth-child(2){top:0;right:0;border-width:5px 5px 0 0;border-radius:0 12px 0 0}
.scanner-frame i:nth-child(3){right:0;bottom:0;border-width:0 5px 5px 0;border-radius:0 0 12px}
.scanner-frame i:nth-child(4){bottom:0;left:0;border-width:0 0 5px 5px;border-radius:0 0 0 12px}
.scanner-status{min-height:2.5em;margin:15px 0 0!important;color:var(--blue)!important;font-weight:700;text-align:center}
.scanner-result{margin-top:14px;padding:14px;border-radius:15px;background:var(--yellow)}
.scanner-result p{margin:4px 0 0;color:#5a4b2e;font-size:.88rem}
.scanner-retry{width:100%;margin-top:14px}
.visit-success-dialog{width:min(420px,calc(100% - 26px));overflow:hidden;border:0;border-radius:31px;padding:32px 26px 27px;text-align:center;color:var(--ink);background:var(--cream);box-shadow:0 24px 70px rgba(16,34,66,.28)}.visit-success-dialog::before,.visit-success-dialog::after{content:"";position:absolute;border-radius:50%;pointer-events:none}.visit-success-dialog::before{width:180px;height:180px;top:-102px;right:-77px;background:var(--lime)}.visit-success-dialog::after{width:168px;height:168px;bottom:-102px;left:-79px;background:var(--pink-light)}.visit-success-dialog>*{position:relative;z-index:1}.visit-success-dialog::backdrop{background:rgba(16,34,66,.68);backdrop-filter:blur(4px)}.visit-success-dialog .dialog-close{z-index:2}.visit-success-mark{display:grid;place-items:center;width:84px;height:84px;margin:0 auto 20px;border:5px solid #fff;border-radius:31px;background:var(--blue);color:var(--lime);font-family:"Titan One",sans-serif;font-size:2.75rem;line-height:1;box-shadow:0 8px 0 var(--ink),0 14px 30px rgba(16,34,66,.2);transform:rotate(-6deg)}.visit-success-dialog h2{margin:0 0 10px;font-family:"Titan One",sans-serif;font-size:clamp(2.1rem,9vw,3rem);color:var(--blue);line-height:.94}.visit-success-copy{margin:0 auto;max-width:300px;color:#53617b;font-size:1.05rem}.visit-success-progress{margin:18px 0 0;padding:11px 14px;border:1px solid rgba(16,34,66,.12);border-radius:15px;background:#fff;color:var(--ink);font-size:.86rem;font-weight:700;line-height:1.35}.visit-success-actions{display:grid;gap:11px;margin-top:21px}.visit-success-actions .button{width:100%}.visit-success-actions .text-button{justify-self:center;font-size:.9rem}

@media (max-width:800px){
  .mobile-nav button{min-width:0;flex:1}
  .mobile-nav .scan-nav-action{position:relative;display:flex;flex:0 0 76px;align-self:flex-start;align-items:center;justify-content:center;gap:4px;height:76px;margin:-31px 2px 0;border:6px solid #fff;border-radius:50%;background:var(--blue);color:#fff;box-shadow:0 8px 0 var(--ink),0 13px 24px rgba(16,34,66,.24)}
  .mobile-nav .scan-nav-action .scan-icon{display:grid;place-items:center;width:31px;height:31px;font-size:inherit}
  .scan-icon svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .mobile-nav .scan-nav-action strong{position:absolute;top:77px;width:88px;color:var(--blue);font-size:.64rem;line-height:1.05}
  .scanner-dialog{max-height:calc(100dvh - 20px);padding:26px 20px 22px}
  .scanner-viewport{max-height:52dvh}
}

input{font:inherit}.profile-trigger{display:grid;place-items:center;overflow:hidden}.profile-icon{position:relative;display:block;width:18px;height:18px}.profile-icon:before,.profile-icon:after{content:"";position:absolute;left:50%;transform:translateX(-50%);background:#fff}.profile-icon:before{top:0;width:7px;height:7px;border-radius:50%}.profile-icon:after{bottom:0;width:16px;height:9px;border-radius:9px 9px 4px 4px}.profile-trigger:has(#topbar-avatar:not([hidden])) .profile-icon{display:none}#topbar-avatar{width:100%;height:100%;object-fit:cover}@media (max-width:800px){body{overflow-x:hidden}.site-shell{max-width:100%;overflow-x:clip}.view{width:100%}.hero h1{font-size:clamp(3.05rem,15vw,3.85rem)}.hero-art{width:100%;min-width:0;height:min(355px,90vw)}}@media (max-width:390px){.topbar{padding-inline:16px}.view{padding-inline:16px}.hero{padding-top:34px}.hero-art{height:312px}.cup{transform:translateX(-50%) scale(.72) rotate(-7deg)}.quick-card{padding:18px}.loyalty-card{padding:21px}.stamps{gap:4px}.profile-trigger{width:38px;height:38px}}

.profile-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar identity qr" "avatar identity edit";gap:12px 22px;align-items:center}.profile-avatar-block{grid-area:avatar;display:grid;justify-items:center;gap:9px}.profile-identity{grid-area:identity;min-width:0}.profile-qr{grid-area:qr;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:11px 13px;background:var(--blue);color:#fff;font-weight:700;white-space:nowrap;box-shadow:0 4px 0 var(--ink)}.profile-qr .qr-mini{background:repeating-conic-gradient(#fff 0 25%,var(--blue) 0 50%) 0/9px 9px}.profile-edit{grid-area:edit;margin:0!important;justify-self:end}.avatar-large{position:relative;overflow:hidden;isolation:isolate}.avatar-large img{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:translate(var(--avatar-x,0),var(--avatar-y,0)) scale(var(--avatar-scale,1));transform-origin:center;z-index:1}.avatar-large.has-photo img{display:block}.avatar-large.has-photo span{display:none}.avatar-edit{border:0;background:transparent;color:var(--blue);font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.inline-edit{margin-left:9px;border:0;background:transparent;color:var(--blue);font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.phone-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.phone-form label{display:block;margin-bottom:7px;font-size:.82rem;font-weight:700}.phone-form>div{display:flex;gap:9px}.phone-form input{min-width:0;flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--cream)}.phone-form .button{padding:.63rem .92rem;white-space:nowrap}.avatar-dialog{width:min(410px,calc(100% - 30px));border:0;border-radius:28px;padding:31px;color:var(--ink);box-shadow:var(--shadow)}.avatar-dialog::backdrop{background:rgba(16,34,66,.55);backdrop-filter:blur(3px)}.avatar-dialog h2{font-size:2rem;margin-bottom:8px}.avatar-dialog>p:not(.eyebrow){color:#53617b;margin-bottom:20px}.avatar-crop{width:184px;height:184px;margin:0 auto 22px;border:7px solid var(--blue);border-radius:50%;overflow:hidden;background:var(--pink-light);position:relative}.avatar-crop img{width:100%;height:100%;display:block;object-fit:cover;transform-origin:center}.crop-control{display:block;margin:14px 0;color:#53617b;font-size:.84rem;font-weight:700}.crop-control input{display:block;width:100%;margin-top:6px;accent-color:var(--blue)}.avatar-save{width:100%;margin-top:12px}
.profile-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar identity actions" "avatar identity edit";gap:12px 22px;align-items:center}.profile-avatar-block{grid-area:avatar;display:grid;justify-items:center;gap:9px}.profile-identity{grid-area:identity;min-width:0}.profile-header-actions{grid-area:actions;display:flex;align-items:center;gap:9px}.profile-qr{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:11px 13px;background:var(--blue);color:#fff;font-weight:700;white-space:nowrap;box-shadow:0 4px 0 var(--ink)}.profile-qr .qr-mini{background:repeating-conic-gradient(#fff 0 25%,var(--blue) 0 50%) 0/9px 9px}.profile-header-logout{border:0;background:transparent;color:#a0445f;font-size:.77rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.profile-edit{grid-area:edit;margin:0!important;justify-self:end}.avatar-large{position:relative;overflow:hidden;isolation:isolate}.avatar-large img{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:translate(var(--avatar-x,0),var(--avatar-y,0)) scale(var(--avatar-scale,1));transform-origin:center;z-index:1}.avatar-large.has-photo img{display:block}.avatar-large.has-photo span{display:none}.avatar-edit{border:0;background:transparent;color:var(--blue);font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.inline-edit{margin-left:9px;border:0;background:transparent;color:var(--blue);font-size:.78rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.inline-phone-form{display:flex;align-items:center;gap:7px;justify-content:flex-end;flex-wrap:wrap}.inline-phone-form input{min-width:0;width:165px;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:var(--cream);font:inherit}.inline-phone-form .button{padding:.57rem .78rem;white-space:nowrap}.inline-cancel{border:0;background:transparent;color:#66728a;font-size:.77rem;text-decoration:underline}.inline-value-editor .profile-form-message{margin-left:auto}.phone-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.phone-form label{display:block;margin-bottom:7px;font-size:.82rem;font-weight:700}.phone-form>div{display:flex;gap:9px}.phone-form input{min-width:0;flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--cream)}.phone-form .button{padding:.63rem .92rem;white-space:nowrap}.avatar-dialog{width:min(410px,calc(100% - 30px));border:0;border-radius:28px;padding:31px;color:var(--ink);box-shadow:var(--shadow)}.avatar-dialog::backdrop{background:rgba(16,34,66,.55);backdrop-filter:blur(4px)}.avatar-dialog h2{font-size:2rem;margin-bottom:8px}.avatar-dialog>p:not(.eyebrow){color:#53617b;margin-bottom:20px}.avatar-crop{width:184px;height:184px;margin:0 auto 22px;border:7px solid var(--blue);border-radius:50%;overflow:hidden;background:var(--pink-light);position:relative}.avatar-crop img{width:100%;height:100%;display:block;object-fit:cover;transform-origin:center}.crop-control{display:block;margin:14px 0;color:#53617b;font-size:.84rem;font-weight:700}.crop-control input{display:block;width:100%;margin-top:6px;accent-color:var(--blue)}.avatar-save{width:100%;margin-top:12px}
.profile-actions{display:flex;justify-content:flex-end;margin-top:26px}.logout-button{border:0;background:transparent;color:#a0445f;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.share-dialog{width:min(490px,calc(100% - 28px));border:0;border-radius:28px;padding:32px;color:var(--ink);box-shadow:var(--shadow)}.share-dialog::backdrop{background:rgba(16,34,66,.55);backdrop-filter:blur(3px)}.share-dialog h2{font-size:2rem;margin:0 0 8px}.share-dialog>p:not(.eyebrow){color:#53617b;margin-bottom:20px}.visit-photo-picker{width:100%;min-height:108px;border:2px dashed #88a5e5;border-radius:18px;background:#f2f6ff;color:var(--blue);display:grid;place-content:center;gap:2px}.visit-photo-picker span{font-size:1.8rem;line-height:1}.visit-photo-picker small{color:#66728a}.visit-photo-picker.has-photo{display:none}.visit-preview{position:relative;margin-bottom:16px;overflow:hidden;border-radius:18px;background:var(--cream);max-height:260px}.visit-preview img{display:block;width:100%;max-height:260px;object-fit:cover}.visit-remove{position:absolute;top:10px;right:10px;width:35px;height:35px;border:0;border-radius:50%;background:rgba(16,34,66,.8);color:#fff;font-size:1.5rem;line-height:1}.share-copy{display:block;margin:17px 0 13px;font-size:.84rem;font-weight:700}.share-copy textarea{display:block;resize:vertical;width:100%;min-height:88px;margin-top:6px;border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--cream);font:inherit}.share-submit{width:100%;margin-top:18px}.share-submit:disabled{cursor:not-allowed;opacity:.48}.share-note{display:block;margin-top:12px;color:#66728a;text-align:center}
.post-user{background:#dbe7ff}.community-photo-fallback{display:grid;place-items:center;width:100%;aspect-ratio:4/5;min-height:230px;overflow:hidden;background:linear-gradient(145deg,#102242,#2455cd);color:var(--lime);font-family:var(--display);font-size:2.2rem;letter-spacing:.12em}.user-visit-photo{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;opacity:0;transition:opacity .24s ease}.user-visit-photo.is-ready{opacity:1}.post-meta{align-items:center;gap:9px}.post-meta>b{margin-left:auto}.post-delete{border:0;background:transparent;color:#234fae;font:inherit;letter-spacing:.04em;text-decoration:underline;cursor:pointer}.post-delete:disabled{opacity:.55;cursor:wait}
.community-photo-fallback.is-loading{color:rgba(255,255,255,.72);font-family:var(--body);font-size:.9rem;letter-spacing:.04em;background:linear-gradient(110deg,#dbe7ff 25%,#eef4ff 45%,#dbe7ff 65%);background-size:220% 100%;animation:community-shimmer 1.15s linear infinite}@keyframes community-shimmer{to{background-position:-220% 0}}
.community-photo-fallback.has-image{animation:none;background:#091831}.community-photo-fallback.has-error{animation:none;background:linear-gradient(145deg,#102242,#2455cd)}.community-photo-retry{border:1px solid rgba(255,255,255,.72);border-radius:999px;padding:.72rem 1rem;background:rgba(255,255,255,.94);color:var(--blue);font:700 .84rem var(--body);box-shadow:0 6px 18px rgba(0,0,0,.18)}.community-photo-retry:disabled{opacity:.58;cursor:wait}
@media(max-width:800px){
  #comunidad{position:relative;width:100%;max-width:none;height:calc(100dvh - 68px);padding:0 0 calc(82px + env(safe-area-inset-bottom));overflow:hidden;background:#091831}
  #comunidad .page-heading{position:absolute;z-index:4;top:12px;right:14px;margin:0;padding:0;pointer-events:none}
  #comunidad .page-heading>div{display:none}
  #comunidad #share-visit{pointer-events:auto;padding:.65rem .92rem;border:1px solid rgba(255,255,255,.5);background:rgba(22,70,198,.9);box-shadow:0 7px 20px rgba(0,0,0,.18);backdrop-filter:blur(9px)}
  #comunidad .feed-grid{display:block;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;columns:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none;background:#091831}
  #comunidad .feed-grid::-webkit-scrollbar{display:none}
  #comunidad .post{position:relative;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;background:#091831}
  #comunidad .community-photo-fallback{position:relative;width:100%;height:100%;min-height:0;aspect-ratio:auto;border-radius:0;overflow:hidden;background:linear-gradient(110deg,#132a50 25%,#203c6b 45%,#132a50 65%);background-size:220% 100%;isolation:isolate}
  #comunidad .community-photo-fallback.has-image{background:#091831}
  #comunidad .community-photo-fallback.has-image:before{content:"";position:absolute;z-index:-1;inset:-28px;background-image:var(--community-photo);background-position:center;background-size:cover;filter:blur(20px) brightness(.68) saturate(1.08);transform:scale(1.08)}
  #comunidad .user-visit-photo{display:block;width:100%;height:100%;aspect-ratio:auto;border-radius:0;object-fit:contain;object-position:center;background:transparent;transform:none;transition:opacity .24s ease}
  #comunidad .post:after{content:"";position:absolute;z-index:1;inset:auto 0 0;height:34%;pointer-events:none;background:linear-gradient(transparent,rgba(3,12,29,.88))}
  #comunidad .post-meta{position:absolute;z-index:2;left:17px;right:17px;bottom:58px;display:flex;align-items:center;margin:0;color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.65)}
  #comunidad .post-meta>span{font-size:.86rem;letter-spacing:.04em}
  #comunidad .post-author-avatar{width:31px;height:31px;border-color:#fff}
  #comunidad .post-like{margin-left:auto;background:rgba(255,255,255,.94);text-shadow:none}
  #comunidad .post-delete{color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.65)}
  #comunidad .post>p{position:absolute;z-index:2;left:17px;right:17px;bottom:18px;display:-webkit-box;margin:0;overflow:hidden;color:#fff;font-size:1rem;line-height:1.25;text-shadow:0 1px 5px rgba(0,0,0,.75);-webkit-line-clamp:2;-webkit-box-orient:vertical}
  #comunidad .community-empty{height:auto;margin:25vh 20px 0;border-color:#6f8fc9;background:#132a50;color:#fff}
}
.pull-refresh{position:fixed;z-index:120;top:calc(8px + env(safe-area-inset-top));left:50%;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:var(--blue);color:#fff;box-shadow:0 7px 20px rgba(16,34,66,.2);font-size:.78rem;opacity:0;pointer-events:none;transform:translate(-50%,-22px) scale(.92);transition:opacity .18s ease,transform .18s ease}.pull-refresh span{font-size:1.1rem;transition:transform .2s ease}.pull-refresh.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}.pull-refresh.is-ready{background:var(--ink)}.pull-refresh.is-ready span{transform:rotate(180deg)}.pull-refresh.is-loading span{animation:refresh-spin .65s linear infinite}@keyframes refresh-spin{to{transform:rotate(360deg)}}
@media (max-width:800px){.profile-header{grid-template-columns:76px minmax(0,1fr) auto;grid-template-areas:"avatar identity qr" "edit edit edit";gap:14px 13px}.profile-avatar-block{gap:6px}.profile-header .profile-edit{width:100%;justify-self:stretch;margin:4px 0 0!important}.profile-qr{width:45px;height:45px;padding:0;border-radius:14px}.profile-qr>span:last-child{display:none}.profile-header h1{font-size:clamp(2rem,9vw,2.5rem)}.phone-form>div{align-items:stretch}.avatar-dialog{padding:27px 22px}}

.menu-dialog{width:min(560px,calc(100% - 26px));max-height:calc(100dvh - 28px);overflow:auto;border:0;border-radius:28px;padding:30px;color:var(--ink);background:var(--cream);box-shadow:var(--shadow)}.menu-dialog::backdrop{background:rgba(16,34,66,.72);backdrop-filter:blur(4px)}.menu-dialog h2{margin:0 0 6px;font-size:clamp(2.2rem,8vw,3.4rem);line-height:.95}.menu-dialog-copy{margin:0 0 23px;color:#53617b}.menu-category{overflow:hidden;border:2px solid var(--ink);border-radius:18px;background:#fff}.menu-category-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:var(--blue);color:#fff}.menu-category-heading strong{font-family:"Titan One",sans-serif;font-size:1.1rem;letter-spacing:.02em}.menu-category-heading span{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.menu-list{padding:4px 16px}.menu-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed #ccd6eb;font-size:.96rem;font-weight:700}.menu-list>div:last-child{border-bottom:0}.menu-list b{flex:0 0 auto;color:var(--blue);font-family:"Titan One",sans-serif;font-size:1.05rem}.menu-dialog-note{display:block;margin:14px 2px 0;color:#66728a;line-height:1.4}@media(max-width:480px){.menu-dialog{max-height:calc(100dvh - 18px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:25px 18px calc(22px + env(safe-area-inset-bottom));border-radius:24px}.menu-category-heading{padding-inline:13px}.menu-category-heading span{font-size:.61rem}.menu-list{padding-inline:13px}.menu-list>div{padding-block:9px;font-size:.9rem}}
.reward-menu-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:18px}.reward-menu-actions .button{width:auto}.reward-catalog-dialog{width:min(760px,calc(100% - 26px))}.reward-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.reward-catalog-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff}.reward-catalog-photo{display:grid;place-items:center;width:100%;aspect-ratio:4/3;padding:8px;background:linear-gradient(145deg,var(--blue),#274fba);color:var(--lime);font-family:"Titan One",sans-serif;font-size:1.4rem;object-fit:contain}.reward-catalog-card>div:last-child{padding:16px}.reward-catalog-card h3{margin:0 0 6px;font-size:1.35rem}.reward-catalog-card p{margin:0;color:#53617b}.reward-cost{display:inline-flex;margin-top:12px;padding:6px 10px;border-radius:999px;background:var(--lime);color:var(--ink);font-size:.78rem;font-weight:700}.catalog-empty{grid-column:1/-1;padding:28px 20px;border:2px dashed #9bb7e9;border-radius:18px;background:#f4f7ff;color:#53617b;text-align:center}.menu-admin-trigger{margin-top:18px}.catalog-admin-form{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:20px;background:#fff}.catalog-admin-form label{display:grid;gap:6px;color:#53617b;font-size:.79rem;font-weight:700}.catalog-admin-form input,.catalog-admin-form textarea,.catalog-admin-form select{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--cream);color:var(--ink);font:inherit}.catalog-admin-form textarea{min-height:82px;resize:vertical}.catalog-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-catalog-list{display:grid;gap:10px;margin-top:18px}.admin-catalog-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.admin-catalog-row strong,.admin-catalog-row small{display:block}.admin-catalog-row small{margin-top:3px;color:#66728a}.admin-catalog-actions{display:flex;align-items:center;gap:7px}.admin-catalog-actions button{border:0;border-radius:9px;padding:8px 10px;background:#e8efff;color:var(--blue);font-weight:700}.admin-catalog-actions .danger{background:#ffe4eb;color:#9d3755}@media(max-width:560px){.reward-catalog-grid{grid-template-columns:1fr}.catalog-form-row{grid-template-columns:1fr}.reward-menu-actions{display:grid}.reward-menu-actions .button{width:100%}.admin-catalog-row{grid-template-columns:1fr}.admin-catalog-actions{justify-content:flex-end}}
.live-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.live-menu-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}.live-menu-photo{display:grid;place-items:center;width:100%;aspect-ratio:4/3;padding:8px;object-fit:contain;background:#f4f7ff;color:var(--blue);font-family:"Titan One",sans-serif}.live-menu-card>div{padding:14px}.live-menu-card strong{display:block;margin:3px 0 5px;font-size:1.2rem}.live-menu-category{color:var(--blue);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.live-menu-card p{margin:0;color:#66728a;font-size:.86rem}.live-menu-card b{display:block;margin-top:9px;color:var(--blue);font-family:"Titan One",sans-serif}@media(max-width:480px){.live-menu-grid{grid-template-columns:1fr}}

.loader{position:fixed;z-index:100;inset:0;display:grid;place-content:center;justify-items:center;background:var(--cream);color:var(--blue);transition:opacity .5s ease,visibility .5s ease;overflow:hidden}.loader:before{content:"";position:absolute;width:350px;height:350px;border-radius:50%;background:var(--pink-light);animation:loader-orbit 3.2s ease-in-out infinite}.loader img{position:relative;z-index:1;width:190px;height:160px;object-fit:cover;object-position:center 30%;mix-blend-mode:multiply;animation:logo-pop .65s cubic-bezier(.18,.89,.32,1.28) both}.loader p{position:relative;z-index:1;margin:-10px 0 0;font-size:.95rem;font-weight:700;letter-spacing:.04em;animation:soft-pulse 1.4s ease-in-out infinite}.loader-bubble{position:absolute;border-radius:50%;border:4px solid var(--blue);background:var(--lime)}.bubble-a{width:28px;height:28px;left:calc(50% - 130px);top:calc(50% - 55px);animation:float 1.8s ease-in-out infinite}.bubble-b{width:18px;height:18px;right:calc(50% - 122px);top:calc(50% + 30px);background:var(--pink);animation:float 1.8s .4s ease-in-out infinite}.bubble-c{width:13px;height:13px;right:calc(50% - 88px);top:calc(50% - 92px);background:var(--yellow);animation:float 1.8s .7s ease-in-out infinite}body.is-ready .loader{opacity:0;visibility:hidden;pointer-events:none}@keyframes loader-orbit{50%{transform:scale(.86) rotate(22deg);border-radius:42% 58% 50% 50%}}@keyframes logo-pop{from{transform:scale(.7) translateY(15px);opacity:0}to{transform:none;opacity:1}}@keyframes soft-pulse{50%{opacity:.48}}@keyframes float{50%{transform:translateY(-12px) rotate(14deg)}}.menu-card{transition:transform .25s ease,box-shadow .25s ease}.menu-card:hover{transform:translateY(-7px) rotate(-.5deg);box-shadow:var(--shadow)}.menu-visual{transition:transform .35s cubic-bezier(.18,.89,.32,1.28)}.menu-card:hover .menu-visual{transform:translateY(-8px) rotate(4deg)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
