:root{--paper:#f1e7d6;--paper-2:#fbf6ec;--card:#fdfaf3;--ink:#241a10;--ink-soft:#7c6a54;--line:#e3d4ba;--line-2:#d8c5a6;--brand:#df4526;--brand-press:#c23a1f;--olive:#5a6b39;--on-brand:#fdf6ea;--shadow:0 18px 40px -22px #3a26108c;--shadow-soft:0 6px 18px -12px #3a261066;--serif:"Fraunces", Georgia, serif;--sans:"Hanken Grotesk", system-ui, sans-serif;--mono:"Spline Sans Mono", ui-monospace, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{box-sizing:border-box}body{background:var(--paper);min-height:100svh;margin:0;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;background:radial-gradient(120% 60% at 50% -10%, #df452612, transparent 60%), linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);border-inline:1px solid var(--line-2);flex-direction:column;width:100%;max-width:480px;min-height:100svh;margin:0 auto;display:flex;position:relative}.wrap{padding:0 18px calc(150px + env(safe-area-inset-bottom)) 18px}.topbar{padding:calc(14px + env(safe-area-inset-top)) 18px 8px;justify-content:space-between;align-items:center;display:flex}.overline{font:600 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--brand-press)}.lang{border:1px solid var(--line-2);background:var(--card);color:var(--ink);font:600 11px/1 var(--mono);letter-spacing:.1em;cursor:pointer;border-radius:999px;padding:7px 11px;transition:transform .12s,background .15s}.lang:active{transform:scale(.94)}.hero{padding:6px 18px 16px}.hero h1{font:560 clamp(40px, 13vw, 58px)/.94 var(--serif);font-optical-sizing:auto;letter-spacing:-.02em;color:var(--ink);margin:6px 0 12px}.hero h1 .stress{color:var(--brand);font-style:italic;font-weight:520}.hero-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.badge{font:600 12px/1 var(--sans);border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;display:inline-flex}.badge.open{color:var(--olive);background:#5a6b391f;border-color:#5a6b394d}.badge.shut{color:var(--brand-press);background:#df45261a;border-color:#df452647}.badge .dot{background:currentColor;border-radius:50%;width:7px;height:7px}.badge.open .dot{animation:1.8s infinite pulse}.note{color:var(--ink-soft);font-size:13px}.note b{color:var(--olive)}.rule{background:repeating-linear-gradient(90deg, var(--line-2) 0 7px, transparent 7px 13px);height:1px;margin:14px 18px 4px}.cats{z-index:5;background:linear-gradient(180deg, var(--paper) 70%, transparent);scrollbar-width:none;gap:8px;padding:12px 18px;display:flex;position:sticky;top:0;overflow-x:auto}.cats::-webkit-scrollbar{display:none}.pill{border:1px solid var(--line-2);background:var(--card);color:var(--ink-soft);font:600 13px/1 var(--sans);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;padding:9px 14px;transition:all .15s}.pill.on{background:var(--ink);color:var(--paper-2);border-color:var(--ink)}.cat-h{font:italic 520 22px/1 var(--serif);color:var(--ink);align-items:baseline;gap:10px;margin:22px 0 12px;display:flex}.cat-h:after{content:"";background:var(--line);flex:1;height:1px}.dish{border-bottom:1px solid var(--line);opacity:0;align-items:center;gap:14px;padding:14px 0;animation:.5s cubic-bezier(.2,.7,.2,1) forwards rise;display:flex}.chip{width:46px;height:46px;font:600 19px/1 var(--serif);color:var(--on-brand);border-radius:14px;flex:none;place-items:center;display:grid;box-shadow:inset 0 -8px 14px -10px #00000080}.dish-main{flex:1;min-width:0}.dish-name{letter-spacing:-.01em;font-weight:600}.dish-price{font:500 13px/1 var(--mono);color:var(--ink-soft);margin-top:3px}.add{border:1.5px solid var(--ink);background:var(--card);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:12px;flex:none;font-size:22px;line-height:1;transition:transform .12s,background .15s,color .15s}.add:active{transform:scale(.9)}.add:hover{background:var(--ink);color:var(--paper-2)}.stepper{background:var(--ink);border-radius:12px;flex:none;align-items:center;gap:2px;padding:3px;display:inline-flex}.stepper button{width:30px;height:30px;color:var(--paper-2);cursor:pointer;background:0 0;border:none;border-radius:9px;font-size:19px;line-height:1}.stepper button:active{background:#ffffff1f}.stepper .n{text-align:center;min-width:22px;font:600 14px/1 var(--mono);color:var(--paper-2)}.cartbar{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:20;background:var(--brand);width:min(444px,100% - 28px);color:var(--on-brand);box-shadow:var(--shadow);cursor:pointer;border-radius:18px;align-items:center;gap:12px;padding:12px 12px 12px 18px;animation:.45s cubic-bezier(.2,.9,.2,1) forwards slideUp;display:flex;position:fixed;transform:translate(-50%)translateY(140%)}.cartbar .cb-meta{flex:1;line-height:1.2}.cartbar .cb-count{font:600 11px/1.4 var(--mono);letter-spacing:.06em;opacity:.85;text-transform:uppercase}.cartbar .cb-total{font:600 20px/1.1 var(--mono)}.cartbar .cb-go{background:var(--on-brand);color:var(--brand-press);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:700}.scrim{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#241a106b;justify-content:center;align-items:flex-end;animation:.25s forwards fade;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:480px;max-height:92svh;padding:8px 20px calc(24px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:.4s cubic-bezier(.2,.85,.2,1) forwards sheetUp;overflow-y:auto}.grip{background:var(--line-2);border-radius:4px;width:40px;height:4px;margin:8px auto 4px}.sheet h2{font:560 26px/1 var(--serif);margin:10px 0 16px}.seg{background:var(--paper);border:1px solid var(--line-2);border-radius:13px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:14px;padding:4px;display:grid}.seg button{color:var(--ink-soft);font:600 14px/1 var(--sans);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:11px;transition:all .15s}.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow-soft)}.field{width:100%;margin:8px 0}.field input{border:1px solid var(--line-2);background:var(--paper-2);width:100%;color:var(--ink);font:500 15px/1 var(--sans);border-radius:12px;outline:none;padding:13px 14px;transition:border .15s,box-shadow .15s}.field input::placeholder{color:var(--ink-soft)}.field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #df452621}.lines{margin:16px 0 8px}.line{align-items:baseline;gap:8px;padding:7px 0;font-size:14px;display:flex}.line .ln-name{color:var(--ink)}.line .ln-q{font:500 12px/1 var(--mono);color:var(--ink-soft)}.line .ln-dots{border-bottom:1.5px dotted var(--line-2);flex:1;transform:translateY(-3px)}.line .ln-sum{font:500 14px/1 var(--mono);color:var(--ink)}.totals{border-top:1.5px dashed var(--line-2);margin-top:8px;padding-top:12px}.trow{color:var(--ink-soft);justify-content:space-between;padding:5px 0;font-size:14px;display:flex}.trow .v{font:500 14px/1 var(--mono)}.trow.grand{color:var(--ink);padding-top:10px}.trow.grand .k{font:560 19px/1 var(--serif)}.trow.grand .v{font:600 19px/1 var(--mono);color:var(--brand-press)}.cta{background:var(--brand);width:100%;color:var(--on-brand);font:700 16px/1 var(--sans);cursor:pointer;box-shadow:var(--shadow-soft);border:none;border-radius:14px;margin-top:16px;padding:16px;transition:transform .12s,background .15s}.cta:active{transform:translateY(2px)}.cta:hover{background:var(--brand-press)}.cta:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.paynote{text-align:center;color:var(--ink-soft);margin-top:10px;font-size:12px}.ghost{border:1px solid var(--line-2);width:100%;color:var(--ink-soft);font:600 14px/1 var(--sans);cursor:pointer;background:0 0;border-radius:12px;margin-top:8px;padding:13px}.ticket-screen{padding:0 18px calc(40px + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.ticket{background:var(--card);box-shadow:var(--shadow);clip-path:inset(0);--perf:radial-gradient(circle at 9px 50%, var(--paper) 0 6px, transparent 6px);margin:8px 0 18px;padding:26px 22px;animation:.7s cubic-bezier(.3,.8,.3,1) forwards print;position:relative}.ticket:before,.ticket:after{content:"";background-repeat:repeat-x;background-size:18px 12px;height:12px;position:absolute;left:0;right:0}.ticket:before{background-image:var(--perf);top:-6px}.ticket:after{background-image:var(--perf);bottom:-6px;transform:scaleY(-1)}.tk-head{text-align:center;border-bottom:1.5px dashed var(--line-2);padding-bottom:14px}.tk-shop{font:italic 520 18px/1 var(--serif);color:var(--ink)}.tk-no{font:600 13px/1 var(--mono);letter-spacing:.12em;color:var(--ink-soft);text-transform:uppercase;margin-top:8px}.tk-total{font:560 34px/1 var(--serif);color:var(--brand);margin-top:10px}.timeline{margin:20px 4px 6px}.step{align-items:flex-start;gap:14px;display:flex}.step .mark{flex-direction:column;flex:none;align-items:center;width:22px;display:flex;position:relative}.step .ring{border:2px solid var(--line-2);background:var(--card);border-radius:50%;width:18px;height:18px;transition:all .4s}.step .stem{background:var(--line-2);flex:1;width:2px;min-height:26px;transition:background .4s}.step:last-child .stem{display:none}.step .lbl{color:var(--ink-soft);padding-bottom:26px;font-size:14px;transition:color .3s}.step.done .ring{border-color:var(--olive);background:var(--olive);box-shadow:0 0 0 4px #5a6b3926}.step.done .stem{background:var(--olive)}.step.done .lbl{color:var(--ink);font-weight:600}.step.active .ring{border-color:var(--brand);background:var(--brand);animation:1.5s infinite pulse;box-shadow:0 0 0 4px #df45262e}.step.active .lbl{color:var(--brand-press);font-weight:700}.stamp{font:700 15px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--olive);border:2.5px solid var(--olive);border-radius:8px;margin:10px auto 0;padding:9px 16px;animation:.5s cubic-bezier(.2,1.4,.4,1) .5s both stamp;display:inline-block;transform:rotate(-5deg)}.stamp.bad{color:var(--brand);border-color:var(--brand)}.tk-center{text-align:center}.thanks{text-align:center;font:italic 520 17px/1.3 var(--serif);color:var(--ink);margin-top:18px}.demo{border:1.5px dashed var(--line-2);color:var(--ink-soft);font:500 12px/1 var(--mono);cursor:pointer;background:0 0;border-radius:10px;margin:14px auto 0;padding:10px 14px;display:block}.err{color:var(--brand-press);text-align:center;margin:10px 0;font-size:13px;font-weight:600}.empty{text-align:center;color:var(--ink-soft);font:italic 500 16px/1.4 var(--serif);padding:40px 0}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes slideUp{0%{transform:translate(-50%)translateY(140%)}to{transform:translate(-50%)translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes print{0%{clip-path:inset(0 0 100%);opacity:.5}to{clip-path:inset(0);opacity:1}}@keyframes pulse{0%,to{box-shadow:0 0 0 4px #df45262e}50%{box-shadow:0 0 0 7px #df452600}}@keyframes stamp{0%{opacity:0;transform:rotate(-5deg)scale(1.6)}to{opacity:1;transform:rotate(-5deg)scale(1)}}.landing{flex-direction:column;min-height:100dvh;display:flex}.landing-body{text-align:center;padding:24px 28px calc(40px + env(safe-area-inset-bottom));flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;animation:.5s both rise;display:flex}.landing-mark{background:var(--card);border:1.5px solid #241a101f;border-radius:50%;place-items:center;width:92px;height:92px;font-size:42px;display:grid;box-shadow:0 10px 30px -18px #241a1080}.landing-body h1{font:560 clamp(28px, 9vw, 40px)/1.02 var(--serif);letter-spacing:-.02em;color:var(--ink);max-width:14ch;margin:4px 0 0}.landing-body p{color:var(--ink-soft);max-width:34ch;margin:0;font-size:15px;line-height:1.55}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}.dish,.cartbar{opacity:1}}
