@import"https://fonts.googleapis.com/css2?family=Archivo+Black&family=JetBrains+Mono:wght@500;700&family=Instrument+Serif:ital@0;1&display=swap";:root{--cream:#f7efdf;--cream-2:#ede0c4;--espresso:#4a1f08;--espresso-2:#2b1004;--crema:#c8985f;--milk:#e6c79b;--ink:#1a0a02;--accent:var(--espresso);--accent-2:var(--crema);--color-bg:var(--cream);--color-surface:#fff;--color-text:var(--ink);--color-text-muted:#666;--color-border:#ddd;--color-primary:var(--espresso);--color-danger:#c0392b;--radius:6px;--status-open:#2e7d32;--status-closed:#c62828}[data-palette=matcha]{--cream:#f1eddc;--cream-2:#e1dcc1;--espresso:#2f4a23;--espresso-2:#1a2b13;--crema:#8aa676;--milk:#cad9b5;--ink:#0e1a08;--status-open:#2e7d32;--status-closed:#8b2e2e}[data-palette=honey]{--cream:#fbf3df;--cream-2:#f3e4b8;--espresso:#6e3a05;--espresso-2:#3b1f02;--crema:#e0a032;--milk:#f0cf7a;--ink:#2a1500;--status-open:#3d6b2e;--status-closed:#a03b1e}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background:var(--cream);color:var(--ink);font-family:JetBrains Mono,monospace;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background .4s ease,color .4s ease}.admin-layout .page{padding:2rem}.admin-layout .page-header{margin-bottom:1rem}.admin-layout .page h1{font-size:1.5rem;margin-bottom:.5rem}.admin-layout .muted,.admin-layout .subtitle{color:var(--color-text-muted)}.admin-layout .error-msg{color:var(--color-danger);margin-bottom:1rem}.admin-layout .btn-primary{display:inline-block;padding:.625rem 1.25rem;border:none;border-radius:var(--radius);background:var(--color-primary);color:#fff;font-size:.875rem;font-weight:500;text-decoration:none}.admin-layout .btn-primary:disabled{opacity:.6}.admin-layout .btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.admin-layout .btn-secondary{display:inline-block;padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:.875rem;text-decoration:none}.admin-layout .btn-secondary:hover{background:var(--color-bg);text-decoration:none}.admin-layout .field{display:flex;flex-direction:column;gap:.375rem}.admin-layout .field label{font-size:.875rem;font-weight:500}.grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.29 0 0 0 0 0.12 0 0 0 0 0.03 0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}.marquee{position:fixed;top:0;left:0;right:0;height:44px;background:var(--espresso);overflow:hidden;z-index:30}.marquee,.marquee-track{display:flex;align-items:center}.marquee-track{gap:18px;white-space:nowrap;animation:scroll 60s linear infinite;will-change:transform;padding-left:22px;font-family:inherit;font-weight:700;font-size:12px;letter-spacing:.32em;color:var(--cream);text-transform:uppercase}.marquee-track .drink-name{display:inline-flex;align-items:center;flex-shrink:0}.bean{width:14px;height:9px;background:var(--crema);border-radius:50%;position:relative;transform:rotate(-22deg);flex-shrink:0}.bean:after{content:"";position:absolute;inset:0;border-radius:50%;border-top:1px solid var(--espresso-2);transform:rotate(90deg) scaleY(.4)}.bean.light{background:#d9b78a}.bean.medium{background:var(--crema)}.bean.dark{background:#6b3a18}.bean.french{background:var(--espresso-2)}.dot{width:4px;height:4px;border-radius:50%}.dash,.dot{background:var(--milk);flex-shrink:0}.dash{width:22px;height:2px;border-radius:2px}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.corner{position:fixed;width:22px;height:22px;z-index:25;pointer-events:none}.corner:after,.corner:before{content:"";position:absolute;background:var(--espresso)}.corner:before{width:100%;height:1.4px}.corner:after{width:1.4px;height:100%}.corner.tl{top:50px;left:26px}.corner.tr{top:50px;right:26px}.corner.tr:after,.corner.tr:before{right:0}.corner.bl{bottom:50px;left:26px}.corner.bl:after,.corner.bl:before{bottom:0}.corner.br{bottom:50px;right:26px}.corner.br:after,.corner.br:before{right:0;bottom:0}.hero{position:absolute;inset:0;display:grid;place-items:center;padding:60px 24px}.stage{position:relative;width:min(960px,92vw);height:min(640px,78vh);display:grid;place-items:center}.ring{position:absolute;width:540px;height:540px;border-radius:50%;border:14px solid var(--accent);opacity:.07;top:52%;left:22%;transform:translate(-50%,-50%) rotate(-8deg);z-index:0}.ring:before{inset:-28px;border-radius:50%;border:1.5px solid var(--accent);opacity:.55}.ring:after,.ring:before{content:"";position:absolute}.ring:after{inset:24px;border-radius:50%;border:1px dashed var(--accent);opacity:.45}.tamper{position:absolute;width:320px;height:320px;border-radius:50%;border:2px solid var(--accent);opacity:.1;top:52%;left:22%;transform:translate(-50%,-50%) rotate(8deg);z-index:0}.tamper:after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dotted var(--accent);opacity:.7}.dial{position:absolute;top:4%;left:4%;width:110px;height:110px;border-radius:50%;border:1.5px solid var(--espresso);background:var(--cream);z-index:2;box-shadow:4px 4px 0 0 var(--crema)}.dial .ticks{position:absolute;inset:0;border-radius:50%}.dial .tick{position:absolute;left:50%;top:6px;width:1.4px;height:8px;margin-left:-.7px;background:var(--espresso);transform-origin:center 49px;opacity:.85}.dial .tick.major{height:12px;width:2px;top:4px;margin-left:-1px}.dial .needle{width:2px;height:42px;background:var(--espresso);animation:spin-minute 60s linear infinite}.dial .needle,.dial .second-hand{position:absolute;left:50%;top:50%;transform-origin:bottom center;transform:translate(-50%,-100%) rotate(0);border-radius:2px;will-change:transform}.dial .second-hand{width:1.2px;height:46px;background:var(--crema);animation:spin-second 60s steps(60) infinite;z-index:2}@keyframes spin-minute{0%{transform:translate(-50%,-100%) rotate(0)}to{transform:translate(-50%,-100%) rotate(1turn)}}@keyframes spin-second{0%{transform:translate(-50%,-100%) rotate(0)}to{transform:translate(-50%,-100%) rotate(1turn)}}.dial .hub{left:50%;top:50%;width:14px;height:14px;background:var(--crema);border:1.5px solid var(--espresso);transform:translate(-50%,-50%)}.dial .hub,.dial .hub:after{position:absolute;border-radius:50%}.dial .hub:after{content:"";inset:4px;background:var(--espresso)}.cup{position:absolute;width:150px;height:170px;top:0;right:2%;z-index:1;filter:drop-shadow(0 14px 18px rgba(74,31,8,.22))}.cup .mug{bottom:22px;left:24px;width:88px;height:100px;border:2.5px solid var(--espresso);border-radius:4px 4px 32px 32px/4px 4px 22px 22px;z-index:1}.cup .mug,.cup .mug:before{position:absolute;background:var(--cream-2)}.cup .mug:before{content:"";top:-7px;left:-2.5px;right:-2.5px;height:16px;border:2.5px solid var(--espresso);border-radius:50%;z-index:2}.cup .liquid{position:absolute;top:-2.5px;left:3px;right:3px;height:9px;border-radius:50%;background:radial-gradient(ellipse at 45% 35%,#8a5a2c 0,#4a2310 55%,#2c1004);border:1.5px solid var(--espresso-2);z-index:3;animation:breathe 4s ease-in-out infinite}.cup .liquid:after{content:"";position:absolute;inset:1px 2px;border-radius:50%;background:radial-gradient(ellipse at 35% 30%,rgba(255,225,170,.4),transparent 55%)}.cup .saucer{position:absolute;right:-10px;top:56px;width:44px;height:64px;z-index:0;overflow:visible}.cup .saucer svg{width:100%;height:100%}.cup .saucer .stroke-outer{stroke:var(--espresso);stroke-width:14;fill:none;stroke-linecap:round}.cup .saucer .stroke-inner{stroke:var(--cream-2);stroke-width:9;fill:none;stroke-linecap:round}.cup .mug:after{content:"";position:absolute;bottom:-16px;left:-16px;right:-16px;height:14px;background:var(--cream-2);border:2.5px solid var(--espresso);border-radius:50%;z-index:-1}.steam{position:absolute;top:-50px;left:50%;transform:translate(-50%);width:90px;height:90px;overflow:visible;z-index:4}.steam path{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:4 8;opacity:0;animation:rise 3.8s ease-in-out infinite}.steam path:first-child{animation-delay:0s}.steam path:nth-child(2){animation-delay:1s}.steam path:nth-child(3){animation-delay:2s}@keyframes rise{0%{transform:translateY(20px) scaleY(.7);opacity:0}25%{opacity:.55}60%{opacity:.35}to{transform:translateY(-60px) scaleY(1.15);opacity:0}}.app-root[data-steam=off] .steam,body[data-steam=off] .steam{display:none}@keyframes breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.1)}}.logo-wrap{z-index:2;text-align:center;transform:translateY(-30px)}.logo,.logo-wrap{position:relative}.logo{font-family:Archivo Black,sans-serif;font-size:clamp(86px,13.5vw,196px);color:var(--espresso);letter-spacing:-.045em;line-height:.86}.logo,.logo .bang{display:inline-block}.logo .bang{color:var(--crema);font-family:"Instrument Serif",serif;font-style:italic;font-weight:400;transform:translateY(-.04em) rotate(-8deg);margin:0 -.04em 0 -.02em;text-shadow:0 6px 0 var(--espresso-2)}.logo:before{content:"";top:-22px;right:-14px;width:26px;height:26px;border:1.5px solid var(--espresso);background:var(--cream)}.logo-wrap .chip-mark,.logo:before{position:absolute;border-radius:50%;transform:rotate(8deg)}.logo-wrap .chip-mark{top:-16px;right:-8px;width:14px;height:14px;background:var(--crema);z-index:3}.logo:after{content:"";position:absolute;left:12%;right:12%;bottom:-14px;height:2px;background:var(--espresso)}.knot{left:50%;bottom:-22px;width:18px;height:18px;background:var(--cream);border:2px solid var(--espresso);transform:translate(-50%);z-index:3}.knot,.knot:after{position:absolute;border-radius:50%}.knot:after{content:"";inset:5px;background:var(--crema)}.actions{position:absolute;bottom:9%;display:flex;gap:18px;z-index:4}.btn{font-family:inherit;font-weight:700;font-size:13px;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;padding:18px 30px 18px 46px;border-radius:6px;cursor:pointer;position:relative;border:1.5px solid var(--espresso);transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s;display:inline-flex;align-items:center;gap:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:before{height:9px;border-radius:50%;background:currentColor}.btn:after,.btn:before{content:"";position:absolute;left:18px;top:50%;width:14px;transform:translateY(-50%) rotate(-22deg)}.btn:after{height:1px;background:var(--btn-bg);opacity:.6}.btn-primary{--btn-bg:var(--espresso);background:var(--espresso);color:var(--cream);box-shadow:6px 6px 0 0 var(--espresso-2)}.btn-primary:before{background:var(--crema)}.btn-primary:after{background:var(--espresso)}.btn-primary:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 0 var(--espresso-2)}.btn-primary:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--espresso-2)}.btn-secondary{--btn-bg:var(--cream);background:var(--cream);color:var(--espresso);box-shadow:6px 6px 0 0 var(--crema)}.btn-secondary:before{background:var(--espresso)}.btn-secondary:after{background:var(--cream)}.btn-secondary:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 0 var(--crema)}.btn-secondary:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--crema)}.bg-shape{position:absolute;background:var(--espresso);opacity:.06;pointer-events:none;z-index:0}.bg-shape.circle{left:-6%;top:6%;width:clamp(220px,32vw,460px);border-radius:50%;border:24px solid var(--espresso);opacity:.05}.bg-shape.circle,.bg-shape.diamond{aspect-ratio:1;background:transparent}.bg-shape.diamond{right:-2%;bottom:2%;width:clamp(180px,26vw,360px);transform:rotate(45deg);border:1.5px dashed var(--espresso);opacity:.35}.tweaks-toggle{position:fixed;right:60px;bottom:50px;z-index:50;width:44px;height:44px;background:var(--espresso);color:var(--cream);border:none;border-radius:50%;cursor:pointer;font-family:inherit;font-weight:700;font-size:16px;display:none;align-items:center;justify-content:center;box-shadow:0 4px 14px #4a1f084d}body.tweaks-on .tweaks-toggle{display:flex}.tweaks{position:fixed;right:60px;bottom:110px;z-index:55;background:var(--cream);border:1.5px solid var(--espresso);border-radius:8px;padding:18px;width:260px;font-family:inherit;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--espresso);display:none;box-shadow:6px 6px 0 0 var(--espresso-2)}.tweaks.open{display:block}.tweaks h4{font-size:10px;letter-spacing:.3em;font-weight:700;margin-bottom:10px;opacity:.7}.tweaks .row{display:flex;gap:6px;margin-bottom:14px}.tweaks .row:last-child{margin-bottom:0}.tweaks button{flex:1;background:transparent;border:1.2px solid var(--espresso);color:var(--espresso);padding:8px 6px;border-radius:4px;font-family:inherit;font-size:10px;letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:all .15s ease}.tweaks button.active{background:var(--espresso);color:var(--cream)}.tweaks button:hover:not(.active){background:var(--cream-2)}a{color:var(--espresso);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button,input,select,textarea{font:inherit}h1,h2,h3,h4{line-height:1.2;font-weight:600}@media(max-width:700px){.hero{min-height:100svh;padding:44px 20px;background-image:url(../images/hero-mobile.webp);background-size:cover;background-position:50%}.stage{width:100%;height:min(520px,74svh);min-height:420px;align-content:center}.bg-shape,.corner,.cup,.dial,.ring,.tamper{display:none}.logo-wrap{transform:translateY(-54px)}.logo{font-size:clamp(58px,19vw,86px);letter-spacing:-.03em}.logo:before{top:-14px;right:-8px;width:18px;height:18px}.logo-wrap .chip-mark{top:-10px;right:-4px;width:10px;height:10px}.logo:after{bottom:-10px}.knot{bottom:-18px;width:14px;height:14px}.knot:after{inset:4px}.actions{left:50%;bottom:18%;width:min(100%,280px);transform:translate(-50%);gap:12px;flex-direction:column;align-items:stretch}.actions form{display:contents}.btn{width:100%;min-height:54px;justify-content:center;padding:16px 22px 16px 38px;font-size:12px;letter-spacing:.16em}.btn:after,.btn:before{left:16px}.welcome-msg{max-width:100%;font-size:.82rem;line-height:1.35;letter-spacing:.04em;overflow-wrap:anywhere}.corner.tl,.corner.tr{top:46px}.corner.bl,.corner.br{bottom:46px}}.skeleton-shimmer{border-radius:4px;background:linear-gradient(90deg,var(--cream-2,#ede0c4) 25%,var(--cream,#f7efdf) 50%,var(--cream-2,#ede0c4) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.cup .liquid,.dial .needle,.dial .second-hand,.marquee-track,.steam path{animation:none}}.site-footer[data-v-4bfd3254]{position:fixed;left:0;right:0;bottom:0;height:36px;z-index:30;border-top:1.5px dashed var(--espresso);background:var(--cream);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.pip[data-v-4bfd3254]{width:6px;height:6px;border:1.2px solid var(--espresso);border-radius:50%}.pip-group[data-v-4bfd3254]{display:flex;gap:10px;align-items:center}.pip-group .bar[data-v-4bfd3254]{width:28px;height:1.2px;background:var(--espresso)}.copyright[data-v-4bfd3254]{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--espresso);opacity:.6;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none}.app-root[data-v-46b43cd5]{width:100%;height:100%;position:relative}.error-page[data-v-c40c1ecc]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:5rem 1.5rem;color:var(--espresso,#4a1f08)}.error-state[data-v-c40c1ecc]{width:min(100%,460px);text-align:center}.error-code[data-v-c40c1ecc]{margin-bottom:.75rem;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;letter-spacing:.22em;color:var(--crema,#c8985f);text-transform:uppercase}.error-state h1[data-v-c40c1ecc]{margin-bottom:.75rem;font-size:clamp(1rem,8vw,4rem);line-height:.95}.error-copy[data-v-c40c1ecc]{margin:0 auto;max-width:24rem;color:var(--color-text-muted,#666);font-size:.95rem;line-height:1.5}.error-actions[data-v-c40c1ecc]{display:flex;justify-content:center;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}
