:root{--bg:#0b0b0b;--paper:#151515;--ink:#f4f4f2;--muted:#a3a39c;--accent:#e4f21c;--accent-strong:#eef75e;--on-accent:#0b0b0b;--line:#2a2a2a;--field:#707070;--soft:#1f1f1f;--input:#101010;--tint:#e4f21c12;--danger:#ff6b5b;--danger-bg:#ff6b5b21;--danger-ink:#ffb3a9;--ok:#4ade80;--ok-bg:#4ade8021;--ok-ink:#9ff0bd;--warn:#f5b83d;--warn-bg:#f5b83d21;--warn-ink:#ffd98a;--focus:#e4f21c;--display:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background-color:var(--bg);background-image:radial-gradient(60rem 32rem at 0 0,#e4f21c0f,#0000 65%);background-attachment:fixed;min-height:100vh;margin:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:.2em 0 .4em;font-weight:800;line-height:1.15}h1{font-size:2rem}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:.5em 0}a{color:var(--accent);text-underline-offset:3px;font-weight:600}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}code{background:var(--soft);white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:.95em}.page{max-width:36rem;margin:0 auto;padding:16px 16px 48px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;margin:16px 0;padding:20px}.center{text-align:center}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:.92rem}.eyebrow{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.btn{border:2px solid var(--accent);background:var(--accent);width:100%;min-height:52px;color:var(--on-accent);font:inherit;text-align:center;cursor:pointer;border-radius:12px;margin-top:12px;padding:12px 18px;font-size:1.05rem;font-weight:700;text-decoration:none;display:block}.btn:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-big{min-height:76px;font-size:1.25rem}.btn-dark{border-color:var(--field);color:var(--ink);background:#000}.btn-dark:hover:not(:disabled){background:var(--soft);border-color:var(--ink)}.btn-outline,.btn-ghost{color:var(--accent);background:0 0}.btn-ghost{border-color:var(--field);color:var(--ink)}.btn-outline:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--soft);color:var(--ink)}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:#e0503f;border-color:#e0503f}.btn-small,.btn-inline{width:auto;margin-top:0}.btn-small{min-height:44px;padding:8px 16px;font-size:.95rem;display:inline-block}.field .btn-small{margin-top:10px}.field{margin-top:16px}.field label{margin-bottom:6px;font-weight:700;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input:not([type]){border:2px solid var(--field);background:var(--input);width:100%;min-height:50px;color:var(--ink);font:inherit;border-radius:10px;padding:10px 12px;font-size:max(16px,1rem)}#code{text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.row{gap:8px;display:flex}.row input{flex:1;min-width:0}.check{align-items:flex-start;gap:12px;margin-top:16px;display:flex}.check input{width:24px;height:24px;accent-color:var(--accent);flex:none;margin:2px 0 0}.terms{margin-left:36px}.terms summary{width:fit-content;color:var(--accent);cursor:pointer;padding:10px 0;font-weight:600}.terms ul{margin:0;padding-left:1.2em}.alert{background:var(--danger-bg);color:var(--danger-ink);border-left:4px solid var(--danger);border-radius:10px;padding:12px 14px}.note{background:var(--soft);border-radius:10px;padding:12px 14px}.badge{background:var(--danger-bg);color:var(--danger-ink);border-radius:999px;padding:4px 12px;font-weight:700;display:inline-block}.badge-soft{background:var(--soft);color:var(--ink);font-size:.9rem}.list,.plain{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:12px 0;display:flex}.list li:last-child{border-bottom:0}.plain li{padding:4px 0}.history time{color:var(--muted)}.brand{border-radius:16px;margin-top:8px;padding:24px 20px}.brand h1{font-size:2.2rem}.brand-offer{font-size:1.15rem;font-weight:700}.brand a{color:inherit}.brand a:focus-visible{outline-color:currentColor}.brand-link{margin-bottom:0;font-size:.95rem}.brand-cta{border:2px solid;border-radius:999px;align-items:center;min-height:44px;margin-top:8px;padding:8px 18px;text-decoration:none;display:inline-flex}.brand-cta:hover{text-decoration:underline}.member-card{border-radius:20px;margin-top:8px;padding:20px;box-shadow:0 12px 32px #0000008c}.member-head p{margin:0}.member-tenant{letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;font-weight:700}.member-name{font-family:var(--display);font-size:1.7rem;line-height:1.2}.reward{border-radius:12px;margin:14px 0 0;padding:12px 14px;font-size:1.1rem;font-weight:700}.reward span{font-size:.95rem;font-weight:500;display:block}.stamps{grid-template-columns:repeat(var(--cols,4), 1fr);gap:10px;max-width:320px;margin:18px auto 8px;display:grid}.stamp{aspect-ratio:1;border:2px dashed;border-radius:50%;place-items:center;font-size:1.1rem;font-weight:700;display:grid}.stamp.on{border-style:solid;border-color:#0000;font-size:1.4rem}@keyframes pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.stamp.fresh{animation:none}}.member-progress,.notice{text-align:center;margin:4px 0;font-weight:700}.notice{min-height:1.5em;font-size:1.1rem}.qr-box{color:#1f1a16;text-align:center;background:#fff;border-radius:16px;margin-top:12px;padding:16px}.qr{max-width:100%;height:auto;margin:0 auto;display:block}.code{letter-spacing:.12em;margin:8px 0 0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:1.6rem;font-weight:700}.code-small{color:var(--muted);margin:0;font-size:1.05rem}.qr-help{color:#4a4a4a;margin:4px 0 0}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.topbar p{margin:0}.topbar-tenant{font-family:var(--display);font-size:1.3rem;font-weight:700}@media (width<=639px){.topbar{flex-wrap:wrap}.topbar-actions{flex:100%}.topbar-actions .btn{flex:auto;padding-inline:12px}}.stats{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 8px;display:grid}.stats div{background:var(--soft);border:1px solid var(--line);border-radius:12px;flex-direction:column;justify-content:space-between;padding:12px;display:flex}.stats dt{color:var(--muted);font-size:.9rem}.stats dd{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:2rem;font-weight:800}.stats-ready{color:var(--accent);letter-spacing:0;font-size:.95rem;display:block}.receipt{border:2px solid var(--ok);background:var(--ok-bg);color:var(--ok-ink);border-radius:12px;margin:12px 0;padding:12px 14px}.receipt p{margin:2px 0}.receipt .muted{color:var(--ok-ink)}.receipt-dup{border-color:var(--warn);background:var(--warn-bg);color:var(--warn-ink)}.receipt-dup .muted{color:var(--warn-ink)}.receipt-title{font-size:1.1rem;font-weight:700}.confirm{border:2px solid var(--danger);background:var(--danger-bg);border-radius:12px;margin-top:12px;padding:12px}.scanner{aspect-ratio:1;background:#000;border-radius:16px;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;display:block}.scanner-frame{border:3px solid var(--accent);border-radius:16px;position:absolute;inset:16%;box-shadow:0 0 0 999px #00000059}.scanner-hint{color:#fff;text-align:center;text-shadow:0 1px 3px #000;margin:0;font-weight:700;position:absolute;bottom:8px;left:0;right:0}.menu-nav{z-index:1;scrollbar-width:thin;background:var(--bg);border-bottom:1px solid var(--line);margin:12px -16px 0;padding:8px 16px;position:sticky;top:0;overflow-x:auto}.menu-nav ul{gap:8px;width:max-content;margin:0;padding:0;list-style:none;display:flex}.menu-nav a{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;padding:6px 14px;text-decoration:none;display:inline-flex}.menu-nav a:hover{border-color:var(--field);background:var(--soft)}@media (prefers-reduced-motion:no-preference){html:has(.menu-nav){scroll-behavior:smooth}}.menu-section{margin-top:24px}.menu-section h2{scroll-margin-top:72px}.menu-list{background:var(--paper);border:1px solid var(--line);border-radius:16px;margin:0;padding:0;list-style:none}.menu-item{border-bottom:1px solid var(--line);gap:14px;padding:14px 16px;display:flex}.menu-item:last-child{border-bottom:0}.menu-info{flex:1;min-width:0}.menu-item h3{overflow-wrap:anywhere;margin:0}.menu-desc{color:var(--muted);white-space:pre-line;overflow-wrap:anywhere;margin:4px 0 0;font-size:.95rem}.menu-price{margin:6px 0 0;font-weight:700}.menu-photo{object-fit:cover;background:var(--soft);width:88px;height:88px;color:var(--muted);border-radius:12px;flex:none;font-size:.75rem;overflow:hidden}.soldout h3,.soldout .menu-price{color:var(--muted)}.soldout .menu-photo{filter:grayscale();opacity:.55}.menu-badge{vertical-align:1px;padding:2px 10px;font-size:.8rem}.menu-foot{margin-top:24px}@property --sweep{syntax:"<percentage>";inherits:false;initial-value:-40%}:root{--glass:#16161494;--glass-edge:#ffffff14;--glass-lip:#ffffff0f;--glow:#e4f21c61;--spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}body{isolation:isolate;background-image:none}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed}body:before{background:radial-gradient(38vmax 30vmax at 18% 12%,#e4f21c26,#0000 70%),radial-gradient(34vmax 28vmax at 86% 78%,#ffa8261c,#0000 70%),radial-gradient(26vmax 22vmax at 70% 8%,#e4f21c0d,#0000 70%);animation:38s ease-in-out infinite alternate drift;inset:-20vmax}body:after{opacity:.09;mix-blend-mode:overlay;background-image:var(--grain);inset:0}@keyframes drift{50%{transform:translate(4vmax,3vmax)rotate(8deg)scale(1.06)}to{transform:translate(-3vmax,5vmax)rotate(-6deg)scale(1.02)}}.panel,.menu-list{background:var(--glass);border-color:var(--glass-edge);-webkit-backdrop-filter:blur(18px)saturate(1.25);backdrop-filter:blur(18px)saturate(1.25);box-shadow:inset 0 1px 0 var(--glass-lip), 0 24px 48px -28px #000000e6}.menu-nav{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0b0b0bb8}.stats div{border-color:var(--glass-edge);background:#ffffff09}h1{letter-spacing:-.035em;font-size:clamp(2rem,1.4rem + 3vw,2.75rem)}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.eyebrow{letter-spacing:.22em}.stats dd,.code,.menu-price{font-variant-numeric:tabular-nums}.page>*{animation:rise .7s var(--ease-out) backwards}.page>:nth-child(2){animation-delay:70ms}.page>:nth-child(3){animation-delay:.14s}.page>:nth-child(4){animation-delay:.21s}.page>:nth-child(5){animation-delay:.28s}.page>:nth-child(n+6){animation-delay:.35s}@keyframes rise{0%{opacity:0;filter:blur(4px);transform:translateY(14px)scale(.985)}to{opacity:1;filter:none;transform:none}}.btn{isolation:isolate;transition:transform .35s var(--spring), box-shadow .3s var(--ease-out), background-color .2s, border-color .2s, color .2s;position:relative;overflow:hidden}.btn:after{content:"";z-index:-1;background:linear-gradient(105deg,#0000 0 40%,#ffffff8c 50%,#0000 60%) 0 0/250% 100% no-repeat;background-position:var(--sweep) 0;opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.btn:not(.btn-ghost,.btn-outline,.btn-dark,.btn-danger):hover:not(:disabled){box-shadow:0 0 0 1px var(--accent), 0 10px 34px -6px var(--glow), 0 0 60px -20px var(--glow);transform:translateY(-1px)}.btn:not(.btn-ghost,.btn-outline,.btn-dark,.btn-danger):hover:not(:disabled):after{opacity:.55;animation:sweep .9s var(--ease-out)}@keyframes sweep{0%{--sweep:140%}to{--sweep:-40%}}.btn-ghost:hover:not(:disabled),.btn-outline:hover:not(:disabled),.btn-dark:hover:not(:disabled){border-color:#e4f21c8c;transform:translateY(-1px)}.btn:active:not(:disabled){transition-duration:80ms;transform:translateY(1px)scale(.98)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input:not([type]){transition:border-color .2s, box-shadow .25s var(--ease-out);background:#00000073}input:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px #e4f21c24, 0 0 24px -6px var(--glow);outline:none}a:not(.btn,.brand-cta){transition:text-decoration-color .2s, text-underline-offset .25s var(--spring);text-decoration-color:#e4f21c59;text-decoration-thickness:1px}a:not(.btn,.brand-cta):hover{text-underline-offset:5px;text-decoration-color:currentColor}.brand a:not(.btn,.brand-cta){text-decoration-color:currentColor}.brand{isolation:isolate;position:relative;overflow:hidden;box-shadow:0 28px 60px -30px #000000f2}.brand:before,.brand:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.brand:before{background:radial-gradient(120% 90% at 100% 0,#ffffff14,#0000 55%),linear-gradient(#0000 55%,#00000014)}.brand:after{opacity:.18;mix-blend-mode:overlay;background-image:var(--grain)}.brand-cta{transition:transform .35s var(--spring), background-color .2s}.brand-cta:hover{background-color:#ffffff1f;transform:translateY(-1px)}.member-card{isolation:isolate;transform-origin:50% 100%;transition:transform .6s var(--spring), box-shadow .4s var(--ease-out);position:relative;overflow:hidden;transform:perspective(900px)rotateX(0);box-shadow:inset 0 1px #ffffff40,0 30px 60px -28px #000000f2,0 12px 24px -16px #000c}.member-card:before{content:"";z-index:-1;pointer-events:none;mix-blend-mode:soft-light;animation:holo 7s var(--ease-out) 1.2s 1;background:linear-gradient(115deg,#0000 30%,#ffffff0d 42%,#ffffff47 50%,#e4f21c1f 53%,#ffffff0d 58%,#0000 70%);position:absolute;inset:-50% -10%;transform:translate(-70%)}.member-card:after{content:"";z-index:-1;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:var(--grain);position:absolute;inset:0}@keyframes holo{0%{transform:translate(-70%)}28%,to{transform:translate(70%)}}@media (hover:hover){.member-card:hover{transform:perspective(900px)rotateX(5deg)translateY(-3px);box-shadow:inset 0 1px #ffffff4d,0 40px 70px -30px #000,0 16px 30px -18px #000000d9}}.reward{box-shadow:0 10px 24px -14px #0009}.stamp{position:relative}.stamp.on{box-shadow:inset 0 -3px 6px #0000002e,0 4px 12px -4px #00000073}.stamp.fresh{animation:stamp-in .7s var(--spring) backwards}.stamp.fresh:after{content:"";animation:ripple 1.1s var(--ease-out) .15s both;pointer-events:none;border:2px solid;border-radius:50%;position:absolute;inset:-2px}@keyframes stamp-in{0%{opacity:0;transform:scale(1.8)rotate(-18deg)}60%{opacity:1;transform:scale(.92)rotate(4deg)}to{transform:none}}@keyframes ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.notice:not(:empty){animation:rise .5s var(--spring) backwards}.qr-box{box-shadow:0 0 0 1px #fff9, 0 22px 50px -22px #000000e6, 0 0 70px -30px var(--glow)}.receipt{animation:receipt-in .6s var(--spring) backwards}@keyframes receipt-in{0%{opacity:0;transform:translateY(10px)scale(.96);box-shadow:0 0 #4ade8080}60%{opacity:1;box-shadow:0 0 0 10px #4ade8000}to{transform:none}}.confirm{animation:rise .45s var(--spring) backwards}.scanner{box-shadow:0 0 0 1px var(--glass-edge), 0 30px 60px -30px #000000f2}.scanner-frame{--c:var(--accent);--l:34px;--t:4px;background:linear-gradient(var(--c), var(--c)) top left / var(--l) var(--t), linear-gradient(var(--c), var(--c)) top left / var(--t) var(--l), linear-gradient(var(--c), var(--c)) top right / var(--l) var(--t), linear-gradient(var(--c), var(--c)) top right / var(--t) var(--l), linear-gradient(var(--c), var(--c)) bottom left / var(--l) var(--t), linear-gradient(var(--c), var(--c)) bottom left / var(--t) var(--l), linear-gradient(var(--c), var(--c)) bottom right / var(--l) var(--t), linear-gradient(var(--c), var(--c)) bottom right / var(--t) var(--l);background-repeat:no-repeat;border:0;border-radius:18px;box-shadow:0 0 0 999px #00000073}.scanner-frame:after{content:"";background:linear-gradient(180deg, transparent calc(50% - 10px), #e4f21c2e calc(50% - 2px), var(--accent) 50%, #e4f21c2e calc(50% + 2px), transparent calc(50% + 10px));animation:2.2s ease-in-out infinite alternate laser;position:absolute;inset:8%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000)}@keyframes laser{0%{transform:translateY(-50%)}to{transform:translateY(50%)}}.scanner-hint{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:max-content;max-width:calc(100% - 24px);text-shadow:none;background:#0000008c;border-radius:999px;margin:0 auto;padding:6px 14px;font-size:.92rem;bottom:12px}.menu-item{transition:background-color .25s}.menu-photo{transition:transform .5s var(--spring)}@media (hover:hover){.menu-item:hover{background-color:#e4f21c09}.menu-item:hover .menu-photo{transform:scale(1.06)rotate(-1.5deg)}}.menu-nav a{border-color:var(--glass-edge);transition:border-color .2s, color .2s, transform .3s var(--spring);background:#ffffff0a}.menu-nav a:hover{color:var(--accent);background:#e4f21c0f;border-color:#e4f21c8c;transform:translateY(-1px)}[aria-busy=true]{animation:1.6s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.55}}.member-name{letter-spacing:-.02em;font-weight:700}.home{position:relative}.welcome{padding:28px 0 4px}.greet{color:var(--accent);margin:0;font-weight:700}.welcome h1{letter-spacing:-.045em;min-height:1em;margin:.15em 0 .1em;font-size:clamp(2.6rem,1.4rem + 5.5vw,4.6rem);line-height:.95}.welcome .muted{margin:0}.qr-tiles{gap:20px;margin-top:26px;display:grid}@media (width>=640px){.qr-tiles{grid-template-columns:1.15fr 1fr;align-items:stretch}}.qr-tile{isolation:isolate;text-align:center;border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.25);backdrop-filter:blur(18px)saturate(1.25);box-shadow:inset 0 1px 0 var(--glass-lip), 0 24px 48px -30px #000000e6;border-radius:24px;flex-direction:column;align-items:center;padding:26px 22px 22px;display:flex;position:relative}.qr-tile h2{margin:14px 0 2px;font-size:1.45rem}.qr-tile .muted{margin:0}.qr-tile-primary{border-color:#e4f21c47}.qr-tile-primary:before{content:"";z-index:-1;border-radius:inherit;border:1px solid var(--accent);opacity:0;animation:beckon 3.6s var(--ease-out) 1.2s 1;pointer-events:none;position:absolute;inset:-1px}@keyframes beckon{0%{opacity:.7;transform:scale(1)}60%,to{opacity:0;transform:scale(1.06)}}.qr-tile-zoom{color:inherit;font:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:20px;justify-items:center;gap:12px;padding:0;display:grid}.qr-tile-zoom:focus-visible{outline-offset:6px}.qr-frame{transition:transform .5s var(--spring);padding:14px;line-height:0;display:block;position:relative}.qr-frame .qr{box-shadow:0 0 0 1px #ffffff80, 0 22px 46px -22px #000000f2, 0 0 70px -30px var(--glow);border-radius:14px}.qr-frame:before{content:"";--c:var(--accent);--l:30px;--t:3px;background:linear-gradient(var(--c), var(--c)) top left / var(--l) var(--t), linear-gradient(var(--c), var(--c)) top left / var(--t) var(--l), linear-gradient(var(--c), var(--c)) top right / var(--l) var(--t), linear-gradient(var(--c), var(--c)) top right / var(--t) var(--l), linear-gradient(var(--c), var(--c)) bottom left / var(--l) var(--t), linear-gradient(var(--c), var(--c)) bottom left / var(--t) var(--l), linear-gradient(var(--c), var(--c)) bottom right / var(--l) var(--t), linear-gradient(var(--c), var(--c)) bottom right / var(--t) var(--l);filter:drop-shadow(0 0 6px var(--glow));pointer-events:none;background-repeat:no-repeat;border-radius:6px;animation:2.8s ease-in-out aim;position:absolute;inset:0}@keyframes aim{50%{opacity:.75;transform:scale(.965)}}.qr-frame:after{content:"";mix-blend-mode:multiply;opacity:0;animation:pass 4.5s var(--ease-out) .8s 1;pointer-events:none;background:linear-gradient(#0000 calc(50% - 14px),#e4f21c29 calc(50% - 2px),#e4f21ce6 50%,#e4f21c29 calc(50% + 2px),#0000 calc(50% + 14px));border-radius:14px;position:absolute;inset:14px}@keyframes pass{0%{opacity:0;transform:translateY(-50%)}8%{opacity:1}42%{opacity:1;transform:translateY(50%)}50%,to{opacity:0;transform:translateY(50%)}}@media (hover:hover){.qr-tile-zoom:hover .qr-frame{transform:scale(1.035)rotate(-1deg)}}.qr-tile-zoom:active .qr-frame{transition-duration:.12s;transform:scale(.98)}.qr-tile-hint{color:var(--muted);align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:inline-flex}.qr-tile-hint:before{content:"";border:2px solid;border-radius:50%;width:10px;height:10px;box-shadow:5px 5px 0 -3.5px}@media (hover:hover){.qr-tile-zoom:hover .qr-tile-hint{color:var(--accent)}}.qr-tile-open{align-items:center;gap:6px;min-height:44px;margin-top:10px;font-weight:700;display:inline-flex}.qr-tile-open:after{content:"→";transition:transform .3s var(--spring)}.qr-tile-open:hover:after,.my-card:hover .qr-tile-open:after{transform:translate(4px)}@media (hover:none) and (width<=639px){.qr-tile-primary .qr-tile-open{background:var(--accent);width:100%;min-height:52px;color:var(--on-accent);box-shadow:0 12px 30px -12px var(--glow);border-radius:14px;justify-content:center;margin-top:16px;text-decoration:none}}.my-card{color:var(--ink);text-decoration:none}.my-card .member-card{width:100%;transition:transform .6s var(--spring);margin:0;transform:rotate(-1.6deg)}@media (hover:hover){.my-card:hover .member-card{transform:rotate(0)translateY(-3px)}}.qr-zoom{border:1px solid var(--glass-edge);width:min(92vw,460px);max-height:94dvh;color:var(--ink);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#121210db;border-radius:28px;margin:auto;padding:0;overflow:auto;box-shadow:0 40px 120px -30px #000}.qr-zoom::backdrop{-webkit-backdrop-filter:blur(10px)saturate(.8);backdrop-filter:blur(10px)saturate(.8);background:#050505b8}.qr-zoom-body{text-align:center;justify-items:center;gap:6px;padding:26px 22px 22px;display:grid}.qr-zoom-body h2{margin:0;font-size:1.6rem}.qr-zoom-body .muted{margin:0 0 10px}.qr-zoom-code{width:100%;padding:0;line-height:0}.qr-zoom-code .qr{width:100%;height:auto;box-shadow:0 0 0 1px #ffffffb3, 0 0 0 10px #e4f21c1a, 0 0 90px -20px var(--glow);border-radius:20px}.qr-zoom-help{margin:12px 0 0;font-weight:700}.qr-zoom-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.qr-zoom-actions .btn{margin-top:6px;padding-inline:22px}::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.9,.2,1.05)}::view-transition-old(root){animation-duration:.3s}::view-transition-new(root){animation-duration:.3s}.config{margin-top:28px;padding:0}.config summary{min-height:52px;color:var(--muted);cursor:pointer;align-items:center;gap:10px;padding:12px 20px;font-weight:700;list-style:none;display:flex}.config summary::-webkit-details-marker{display:none}.config summary:before{content:"+";border:1px solid var(--field);width:22px;height:22px;transition:transform .3s var(--spring);border-radius:6px;place-items:center;display:grid}.config[open] summary:before{transform:rotate(45deg)}.config .field,.config .alert,.config>.hint{margin:0 20px 20px}@media (width>=1000px){.home{max-width:62rem;padding:64px 32px 72px}.qr-tiles{gap:28px}}.table-page.has-bar{padding-bottom:120px}.table-head{isolation:isolate;border-radius:22px;margin-top:8px;padding:22px 20px 20px;position:relative;overflow:hidden;box-shadow:0 28px 60px -30px #000000f2}.table-head:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 100% 0,#ffffff14,#0000 55%),linear-gradient(#0000 55%,#00000014);position:absolute;inset:0}.table-tenant{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:700}.table-head h1{letter-spacing:-.05em;margin:.1em 0 0;font-size:clamp(3rem,2rem + 6vw,4.4rem);line-height:.95}.table-word{letter-spacing:-.02em;vertical-align:.5em;font-size:.45em}.table-people{align-items:center;gap:4px;margin:12px 0 0;font-size:.9rem;display:flex}.table-people-names{margin-left:8px}.avatar{background:#fff3;border:1px solid #ffffff59;border-radius:9px;flex:none;place-items:center;width:28px;height:28px;font-size:.8rem;font-weight:800;display:inline-grid}.table-people .avatar+.avatar{margin-left:-8px}.table-me{color:var(--muted);margin:14px 2px 0}.linklike{color:var(--accent);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;-webkit-text-decoration:underline #e4f21c66;text-decoration:underline #e4f21c66}.name-step{margin-top:16px}.name-step label{font-family:var(--display);letter-spacing:-.02em;font-size:1.3rem;font-weight:800;display:block}.name-step .row{margin-top:10px}.name-step .btn{margin-top:0}.name-step .linklike{color:var(--muted);margin-top:12px}.orders-live{margin-top:20px}.orders-live h2{font-size:1.1rem}.order-live{animation:rise .5s var(--spring) backwards;background:#e4f21c0a;border:1px solid #e4f21c40;border-radius:18px;margin-top:10px;padding:16px}.order-live header{justify-content:space-between;gap:12px;display:flex}.steps-live{color:var(--muted);grid-template-columns:repeat(4,1fr);margin:14px 0 10px;padding:0;font-size:.75rem;list-style:none;display:grid}.steps-live li{text-align:center;padding-top:16px;position:relative}.steps-live li:before{content:"";background:var(--field);z-index:1;border-radius:50%;width:10px;height:10px;margin-left:-5px;position:absolute;top:2px;left:50%}.steps-live li+li:after{content:"";background:var(--field);width:100%;height:2px;position:absolute;top:6px;right:50%}.steps-live li.done,.steps-live li.now{color:var(--ink)}.steps-live li.done:before,.steps-live li.done:after,.steps-live li.now:after{background:var(--accent)}.steps-live li.now{color:var(--accent);font-weight:800}.steps-live li.now:before{background:var(--accent);animation:1.6s ease-out infinite now-dot;box-shadow:0 0 #e4f21c99}@keyframes now-dot{70%,to{box-shadow:0 0 0 8px #e4f21c00}}.order-live-items{color:var(--muted);margin:0;font-size:.9rem}.menu-item.orderable{align-items:center;position:relative}.orderable-hit{z-index:1;cursor:pointer;background:0 0;border:0;border-radius:12px;width:100%;position:absolute;inset:0}.orderable-hit:disabled{cursor:not-allowed}.orderable-hit:focus-visible{outline-offset:-3px}.add-dot{width:36px;height:36px;color:var(--accent);transition:transform .35s var(--spring), background-color .2s;border:1.5px solid #e4f21c99;border-radius:50%;flex:none;place-items:center;font-size:1.2rem;font-weight:800;display:grid}.add-dot.has{background:var(--accent);color:var(--on-accent);animation:pop-in .45s var(--spring);font-size:.95rem}@keyframes pop-in{40%{transform:scale(1.25)}}@media (hover:hover){.menu-item.orderable:hover .add-dot{transform:scale(1.1)}}.menu-item.orderable:active .add-dot{transform:scale(.92)}.cart-bar{left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:10;background:var(--accent);width:min(100% - 24px,34rem);color:var(--on-accent);font:inherit;text-align:left;cursor:pointer;box-shadow:0 18px 40px -12px #000000e6, 0 0 50px -16px var(--glow);animation:bar-in .5s var(--spring) backwards;transition:transform .3s var(--spring);border:0;border-radius:18px;align-items:center;gap:14px;padding:10px 14px 10px 10px;display:flex;position:fixed;transform:translate(-50%)}@keyframes bar-in{0%{transform:translate(-50%,120%)}}.cart-bar:active{transform:translate(-50%)scale(.98)}.cart-bar-count{background:var(--on-accent);min-width:42px;height:42px;color:var(--accent);border-radius:12px;place-items:center;padding:0 8px;font-size:1.1rem;font-weight:800;display:grid}.cart-bar-text{flex:1;line-height:1.2;display:grid}.cart-bar-text span{opacity:.75;font-size:.85rem}.cart-bar-total{font-variant-numeric:tabular-nums;font-weight:800}.sheet{border:1px solid var(--glass-edge);width:100%;max-width:34rem;max-height:92dvh;color:var(--ink);transition:transform .4s var(--spring), opacity .25s, display .4s allow-discrete, overlay .4s allow-discrete;background:#121211;border-bottom:0;border-radius:26px 26px 0 0;margin:auto auto 0;padding:0;overflow:hidden;box-shadow:0 -30px 80px -20px #000}.sheet[open]{flex-direction:column;display:flex}@starting-style{.sheet[open]{opacity:0;transform:translateY(40%)}}.sheet::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05050599}@media (width>=720px){.sheet{border-bottom:1px solid var(--glass-edge);border-radius:26px;margin:auto}}.sheet>form{flex-direction:column;flex:auto;min-height:0;display:flex}.sheet-photo{object-fit:cover;flex:none;width:100%;height:210px;display:block}.sheet-body{overscroll-behavior:contain;flex:auto;min-height:0;padding:22px 20px 8px;overflow-y:auto}.sheet-body h2{margin:0 40px 4px 0;font-size:1.6rem}.sheet-body .muted{margin:0}.sheet-price{color:var(--accent);margin:8px 0 0;font-size:1.15rem;font-weight:800}.sheet fieldset{border:0;min-width:0;margin:20px 0 0;padding:0}.sheet legend{margin-bottom:10px;font-weight:800}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--field);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;transition:background-color .2s, border-color .2s, color .2s, transform .3s var(--spring);background:0 0;border-radius:999px;padding:8px 14px;font-size:.92rem;font-weight:600}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent);animation:pop-in .35s var(--spring)}.chip-alert{border-color:#ff6b5b99}.chip-alert[aria-pressed=true]{border-color:var(--danger);background:var(--danger);color:#1a0705}.sheet-other,.sheet textarea{border:2px solid var(--field);width:100%;color:var(--ink);font:inherit;resize:none;background:#00000073;border-radius:12px;margin-top:10px;padding:10px 12px;font-size:max(16px,1rem)}.sheet textarea:focus-visible,.sheet-other:focus-visible{border-color:var(--accent);outline:none}.sheet-foot{padding:14px 20px max(16px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#121211;flex:none;align-items:center;gap:12px;display:flex}.sheet-add{flex:1;margin-top:0}.sheet-close{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008c;border:0;border-radius:50%;place-items:center;width:44px;height:44px;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:12px;right:12px}.stepper{border:1px solid var(--field);border-radius:14px;align-items:center;gap:4px;padding:4px;display:inline-flex}.stepper button{width:44px;height:44px;color:var(--ink);cursor:pointer;background:#ffffff0f;border:0;border-radius:10px;place-items:center;font-size:1.2rem;font-weight:800;display:grid}.stepper button:disabled{opacity:.4;cursor:not-allowed}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:26px;font-weight:800}.stepper-sm button{font-size:1rem}.cart-group{margin-top:18px}.cart-group h3{align-items:center;gap:10px;margin:0 0 6px;font-size:1.05rem;display:flex}.cart-group .avatar{color:var(--accent);background:#e4f21c1f;border-color:#e4f21c59}.cart-list{margin:0;padding:0;list-style:none}.cart-list li{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 0;display:grid}.cart-list li.mine .cart-name:after{content:" · vos";color:var(--muted);font-size:.85rem;font-weight:400}.cart-line{grid-column:1;justify-content:space-between;gap:12px;display:flex}.cart-name{font-weight:700}.cart-price{color:var(--muted);font-variant-numeric:tabular-nums}.cart-list .stepper{grid-area:1/2/span 2}.cart-notes{color:var(--muted);flex-wrap:wrap;grid-column:1;gap:6px;margin:0;font-size:.85rem;display:flex}.tag{color:var(--ink);background:#ffffff14;border-radius:6px;padding:1px 8px;font-size:.8rem;font-weight:700;display:inline-block}.tag-alert{background:var(--danger-bg);color:var(--danger-ink);border:1px solid #ff6b5b80}.cart-total{margin:0;line-height:1.1;display:grid}.cart-total span{color:var(--muted);font-size:.8rem}.cart-total strong{font-variant-numeric:tabular-nums;font-size:1.2rem}.toast{z-index:20;border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:calc(100% - 32px);color:var(--ink);text-align:center;opacity:0;transition:opacity .25s, transform .35s var(--spring);pointer-events:none;background:#141412e6;border-radius:999px;margin:0;padding:10px 16px;font-weight:700;position:fixed;bottom:100px;left:50%;transform:translate(-50%,12px)}.toast[data-show]{opacity:1;transform:translate(-50%)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.board{max-width:96rem;margin:0 auto;padding:20px 20px 96px}.board-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.board-head h1{margin:0}.board-tenant{color:var(--accent);margin:0;font-weight:700}.board-actions{flex-wrap:wrap;gap:8px;display:flex}.board-actions .btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.board-actions .btn[aria-pressed]:before{content:"";border:2px solid;border-radius:50%;width:.6em;height:.6em;margin-right:8px;display:inline-block}.board-actions .btn[aria-pressed=true]:before{background:currentColor}.board-cols{gap:16px;display:grid}@media (width>=720px){.board-cols{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}}.board-col h2{align-items:center;gap:8px;margin:0 0 10px;font-size:1.1rem;display:flex}.board-count{background:#ffffff14;border-radius:8px;place-items:center;min-width:26px;height:26px;padding:0 6px;font-size:.9rem;display:inline-grid}.col-received .board-count{background:var(--accent);color:var(--on-accent)}.board-empty{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:14px;padding:18px}.ticket{border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:rise .4s var(--spring) backwards;border-radius:16px;margin-bottom:12px;padding:14px 16px}.col-received .ticket{border-left:4px solid var(--accent)}.col-ready .ticket{border-left:4px solid var(--ok)}.ticket-new{animation:ticket-new 1.2s var(--ease-out) 3}@keyframes ticket-new{0%{box-shadow:0 0 #e4f21c99}to{box-shadow:0 0 0 14px #e4f21c00}}.ticket-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ticket-table{font-family:var(--display);letter-spacing:-.03em;font-size:1.5rem;font-weight:800}.ticket-meta{color:var(--muted);white-space:nowrap;font-size:.85rem}.ticket-person{margin-top:10px}.ticket-who{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:800}.ticket-person ul{margin:2px 0 0;padding:0;list-style:none}.ticket-person li{padding:3px 0;font-size:1.05rem}.ticket-qty{font-variant-numeric:tabular-nums;font-weight:800}.ticket-notes{color:var(--ink);flex-wrap:wrap;gap:6px;margin:3px 0 0 26px;font-size:.85rem;display:flex}.note-alert{color:var(--danger-ink);font-weight:700}.ticket-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:10px;display:flex}.ticket-buttons{gap:8px;display:flex}.board-col .ticket-buttons{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center}.ticket-advance{flex:auto;width:auto;margin-top:0}.board-tables{margin:26px 0}.board-tables ul{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.board-tables>ul>li .btn{white-space:nowrap}.board-tables>ul>li{border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-weight:700;display:flex}.order-hint{color:var(--muted);border:1px dashed #e4f21c73;border-radius:16px;margin:16px 0 0;padding:14px 16px}.order-hint strong{color:var(--accent)}.order-here{background:var(--accent);color:var(--on-accent);box-shadow:0 14px 34px -14px var(--glow);transition:transform .35s var(--spring);border-radius:16px;gap:2px;margin-top:16px;padding:16px 64px 16px 18px;text-decoration:none;display:grid;position:relative}.order-here strong{font-size:1.15rem}.order-here span{opacity:.75;font-size:.9rem}.order-here:after{content:"→";font-size:1.4rem;font-weight:800;position:absolute;top:50%;right:20px;transform:translateY(-50%)}.order-here:active{transform:scale(.98)}.order-live-msg{margin:0 0 4px;font-weight:800}.bill-tile{border:1px solid var(--glass-edge);background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s, transform .35s var(--spring);border-radius:18px;align-items:center;gap:14px;margin-top:14px;padding:16px 18px;display:flex}.bill-tile:hover{border-color:#e4f21c59}.bill-tile:active{transform:scale(.99)}.bill-tile-text{flex:1;display:grid}.bill-tile-text span{color:var(--muted);font-size:.9rem}.bill-tile-total{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.4rem;font-weight:800}.bill-tile-total:after{content:" →";color:var(--muted);font-size:1rem}.bill-people{margin:14px 0 0;padding:0;list-style:none}.bill-people>li{border-bottom:1px solid var(--line);padding:12px 0}.bill-people>li.me{background:#e4f21c0f;border-radius:12px;margin:0 -10px;padding:12px 10px}.bill-person{align-items:center;gap:10px;display:flex}.bill-person .avatar{color:var(--accent);background:#e4f21c1f;border-color:#e4f21c59}.bill-person-total{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:800}.bill-items{color:var(--muted);margin:6px 0 0 38px;padding:0;font-size:.92rem;list-style:none}.bill-items li{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding:2px 0;display:flex}.bill-total{justify-content:space-between;align-items:baseline;margin:14px 0 4px;display:flex}.bill-total span{color:var(--muted);font-weight:700}.bill-total strong{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.8rem;font-weight:800}.bill-asked{background:var(--ok-bg);color:var(--ok-ink);border-radius:12px;flex:1;margin:0;padding:12px 14px;font-weight:700}.board-tables>ul{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}.board-tables>ul>li.table-bill{background:var(--glass);grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;min-width:0;padding:14px 16px;display:grid}.table-bill header,.table-bill footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.table-bill footer{border-top:1px solid var(--line);flex-wrap:wrap;padding-top:8px;font-weight:400}.table-bill-total{font-variant-numeric:tabular-nums;font-size:1.3rem}.table-bill-people{color:var(--muted);gap:2px;margin:0;padding:0;font-weight:400;list-style:none;display:grid}.table-bill-people li{font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.table-bill.asked{border-color:var(--accent);animation:2s ease-out infinite asked;box-shadow:0 0 #e4f21c80}@keyframes asked{70%,to{box-shadow:0 0 0 10px #e4f21c00}}.table-bill footer .ticket-buttons{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.asked-badge{background:var(--accent);max-width:100%;color:var(--on-accent);border-radius:999px;justify-self:start;margin:0;padding:3px 10px;font-size:.85rem;font-weight:800}.table-bill.asked.ticket-new{animation:ticket-new 1.2s var(--ease-out) 3, asked 2s ease-out 3.6s infinite}.table-bill-why{color:var(--muted);text-align:right;margin:0;font-size:.85rem;font-weight:400}.board-closed{gap:6px;max-width:26rem;margin-bottom:22px;display:grid}.board-closed .table-bill-people{color:inherit}.board-closed .btn{justify-self:end}.board-undo{z-index:20;border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:fit-content;animation:rise .35s var(--spring) backwards;background:#141412eb;border-radius:999px;align-items:center;gap:14px;margin:0 auto;padding:8px 8px 8px 18px;font-weight:700;display:flex;position:fixed;bottom:20px;left:16px;right:16px}.table-closed{justify-items:center;gap:10px;margin-top:16px;display:grid}.table-closed h1,.table-closed p{margin:0}.table-locked{border-left:4px solid var(--accent);margin-top:14px}.bill-tile.asked{border-color:var(--accent)}.order-live-wait{color:var(--warn-ink)}.board-confirm{margin-bottom:22px}.board-confirm h2{color:var(--warn-ink);margin:0 0 10px;font-size:1.1rem}.board-confirm ul{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.confirm-ticket{border:1px solid var(--warn);border-left:4px solid var(--warn);background:var(--warn-bg);margin:0}.confirm-ask{margin:0;font-size:1.15rem}.confirm-ask strong{font-family:var(--display);font-size:1.4rem}.confirm-items{color:var(--muted);margin:6px 0 0}.board-free{margin-top:26px}.board-free h2{margin:0;font-size:1.1rem}.board-free ul{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.board-free li{align-items:center;gap:6px;display:flex}.free-scanned{color:var(--warn-ink);font-size:.85rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}.member-card:hover{transform:none}}
