:root{--cream-50:#fffcf7;--cream-100:#fff8f0;--cream-200:#fbeedf;--cream-300:#f4e2cd;--ink-100:#ded2c6;--ink-300:#a6968c;--ink-500:#6e5e56;--ink-700:#3d322d;--ink-900:#241c19;--rust-400:#d9583c;--rust-500:#bf2e18;--rust-600:#a32513;--rust-700:#7e1b0d;--apricot-200:#fadcb8;--apricot-300:#f7c48c;--apricot-500:#ed963f;--apricot-600:#d07c29;--blue-100:#dceaf4;--blue-300:#9cc2dc;--blue-500:#498cbf;--blue-600:#35709e;--pine-500:#2f5d3a;--blush-300:#e8bcd4;--surface-page:var(--cream-100);--surface-card:#fff;--surface-raised:#fff;--surface-sunken:var(--cream-200);--surface-band:var(--apricot-200);--surface-accent:var(--rust-500);--surface-invert:var(--ink-900);--text-heading:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-display:var(--rust-500);--text-link:var(--rust-500);--text-link-hover:var(--rust-700);--text-on-accent:var(--cream-100);--text-on-band:var(--rust-600);--action-bg:var(--rust-500);--action-bg-hover:var(--rust-600);--action-bg-active:var(--rust-700);--action-fg:var(--cream-100);--action-ghost-fg:var(--rust-500);--border-hairline:var(--ink-100);--border-strong:var(--ink-900);--border-accent:var(--rust-500);--focus-ring:var(--blue-500);--status-success:var(--pine-500);--status-warn:var(--apricot-600);--status-error:var(--rust-500);--status-info:var(--blue-500);--font-display:"Designer RD", "Oswald", "Archivo Narrow", sans-serif;--font-body:"Archivo", "Lato", system-ui, sans-serif;--font-ui:"Lato", "Archivo", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--display-1:88px;--display-2:64px;--display-3:44px;--display-4:32px;--display-weight:300;--display-leading:1.05;--display-tracking:.22em;--display-tracking-tight:.12em;--text-2xl:28px;--text-xl:22px;--text-lg:19px;--text-md:17px;--text-sm:15px;--text-xs:13px;--label-size:13px;--label-weight:600;--label-tracking:.18em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-body:1.75;--leading-loose:2;--measure:62ch;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--container:1240px;--container-narrow:880px;--gutter:32px;--section-y:96px;--section-y-lg:128px;--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--radius-pill:999px;--radius-blob:62% 38% 44% 56% / 48% 56% 44% 52%;--shadow-sm:0 1px 2px #241c190f;--shadow-card:0 6px 18px #241c1914;--shadow-lift:0 18px 40px #241c1924;--shadow-polaroid:0 14px 32px #241c1929;--shadow-inset-hairline:inset 0 0 0 1px var(--border-hairline);--dur-fast:.14s;--dur-base:.22s;--dur-slow:.42s;--ease-out:cubic-bezier(.22, .61, .36, 1);--ease-in-out:cubic-bezier(.45, .05, .55, .95);--tilt-left:-4deg;--tilt-right:3.5deg;--kiosk-type-scale:1.6}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}body{font-family:var(--font-body);background:linear-gradient(160deg, var(--cream-100) 0%, var(--cream-300) 100%) fixed;color:var(--text-body);margin:0}.screen{animation:screen-in .5s var(--ease-out);justify-content:center;align-items:center;gap:var(--space-6);min-height:100vh;padding:var(--space-6);text-align:center;flex-direction:column;display:flex}.idle{cursor:pointer;--idle-boost:1.2}.idle-perks{text-align:left;gap:var(--space-4);font-size:calc(1.6rem * var(--kiosk-type-scale) * var(--idle-boost,1));flex-direction:column;margin:0;padding:0;font-weight:700;list-style:none;display:flex}.idle-perks li{align-items:center;gap:var(--space-3);display:flex}.idle-free{font-family:var(--font-ui);font-size:calc(var(--label-size) * var(--kiosk-type-scale) * var(--idle-boost,1));font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--rust-500,currentColor);margin:0}.idle-perks li:before{content:"";background:var(--rust-500,currentColor);border-radius:50%;flex:none;width:.55em;height:.55em}.idle h1{font-size:calc(clamp(44px, 8vw, var(--display-2)) * var(--kiosk-type-scale) * var(--idle-boost,1));margin:0}.tap{font-family:var(--font-ui);font-size:calc(var(--label-size) * var(--kiosk-type-scale));font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--text-muted);animation:pulse 2s var(--ease-in-out) infinite}@keyframes pulse{50%{opacity:.45}}.edge-snakes{pointer-events:none;width:1840px;height:1280px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.snake{fill:none;stroke-width:36px;stroke-linecap:round;transition:stroke-dasharray .7s var(--ease-in-out), opacity .7s var(--ease-in-out);animation:linear infinite snake-crawl}.edge-snakes.leaving .snake{opacity:0;stroke-dasharray:0 100!important}.edge-snakes.leaving .snake:nth-child(2){transition-delay:90ms}.edge-snakes.leaving .snake:nth-child(3){transition-delay:.18s}.edge-snakes.leaving .snake:nth-child(4){transition-delay:.27s}.edge-snakes.leaving .snake:nth-child(5){transition-delay:.36s}@keyframes screen-in{0%{opacity:0}}@keyframes snake-crawl{to{stroke-dashoffset:-100px}}@media (prefers-reduced-motion:reduce){.tap,.snake,.screen{animation:none}}h1,h2{font-family:var(--font-display);font-weight:var(--display-weight);text-transform:uppercase;letter-spacing:var(--display-tracking-tight);line-height:var(--display-leading);color:var(--text-display);text-wrap:balance}h1{letter-spacing:calc(var(--display-tracking-tight) * .7);font-size:calc(var(--display-3) * var(--kiosk-type-scale));margin:0}h2{font-size:calc(var(--display-4) * var(--kiosk-type-scale));margin:0}p{font-size:calc(var(--text-xl) * var(--kiosk-type-scale));color:var(--text-body);margin:0}.phone-display{font-family:var(--font-mono);font-size:calc(40px * var(--kiosk-type-scale));letter-spacing:3px;font-variant-numeric:tabular-nums;min-height:84px;color:var(--text-heading)}.keypad{gap:var(--space-4);grid-template-columns:repeat(3,156px);display:grid}.key{height:116px;font-family:var(--font-ui);font-size:calc(32px * var(--kiosk-type-scale));border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-card);color:var(--text-heading);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);border:none}.key:active{background:var(--surface-sunken)}.key:focus-visible,.primary:focus-visible,.ghost:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.primary{min-width:500px;padding:var(--space-5) var(--space-8);font-family:var(--font-ui);font-size:calc(var(--text-xl) * var(--kiosk-type-scale));font-weight:var(--weight-bold);border-radius:var(--radius-pill);background:var(--action-bg);color:var(--action-fg);cursor:pointer;transition:background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:none}.primary:not(:disabled):hover{background:var(--action-bg-hover)}.primary:not(:disabled):active{background:var(--action-bg-active);transform:scale(.98)}.primary:disabled{opacity:.35}.ghost{color:var(--action-ghost-fg);font-family:var(--font-ui);font-size:calc(var(--text-md) * var(--kiosk-type-scale));font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:none}.ghost:hover{color:var(--text-link-hover)}.error{color:var(--status-error);font-size:calc(var(--text-md) * var(--kiosk-type-scale));font-weight:var(--weight-semibold)}.row{gap:var(--space-4);display:flex}select,.email{font-family:var(--font-body);font-size:calc(var(--text-xl) * var(--kiosk-type-scale));padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border:1px solid var(--border-hairline);background:var(--surface-card);color:var(--text-heading);min-width:200px}select:focus-visible,.email:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.email{min-width:640px}.celebrate{background:linear-gradient(160deg, var(--cream-100) 0%, var(--apricot-200) 100%)}.count{font-family:var(--font-mono);font-size:calc(var(--text-2xl) * var(--kiosk-type-scale));color:var(--text-on-band)}.reward-box{gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-lift);flex-direction:column;display:flex}.admin{min-height:100vh;padding:var(--space-7);gap:var(--space-6);text-align:left;flex-direction:column;max-width:1100px;margin:0 auto;display:flex}.admin h1{font-size:var(--display-4)}.admin h2{font-family:var(--font-ui);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-3)}.admin table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin-top:var(--space-3);font-variant-numeric:tabular-nums}.admin th,.admin td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-hairline);text-align:left;color:var(--text-body)}.admin th{color:var(--text-muted);font-family:var(--font-ui);font-weight:var(--weight-semibold)}.admin input,.admin select{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);min-width:220px}.admin button{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:var(--weight-bold);padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);background:var(--action-bg);color:var(--action-fg);cursor:pointer;transition:background var(--dur-base) var(--ease-out);border:none}.admin button:not(:disabled):hover{background:var(--action-bg-hover)}.admin button:disabled{opacity:.4}.admin .row{flex-wrap:wrap;align-items:center}.status{color:var(--status-success);font-weight:var(--weight-semibold)}.dev-viewport-frame{pointer-events:none;z-index:9999;border:3px solid red;width:1840px;height:1280px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.consent-copy{text-align:center;max-width:720px;line-height:1.5}.consent-check{font-size:calc(var(--text-xl) * var(--kiosk-type-scale));color:var(--text-body);cursor:pointer;align-items:center;gap:16px;display:flex}.consent-check input{width:44px;height:44px;accent-color:var(--rust-500)}.legal-links{font-size:calc(var(--text-md) * var(--kiosk-type-scale));color:var(--text-muted)}.legal-link{font:inherit;color:var(--action-ghost-fg);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.legal-link:hover{color:var(--text-link-hover)}.legal-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.legal-overlay{z-index:100;align-items:center;gap:var(--space-5);padding:var(--space-6);background:linear-gradient(160deg, var(--cream-100) 0%, var(--cream-300) 100%);animation:screen-in .3s var(--ease-out);flex-direction:column;display:flex;position:fixed;inset:0}.legal-overlay .legal-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.legal-close{flex:none}.legal-page{min-height:100vh;padding:var(--space-7) var(--space-6);justify-content:center;display:flex}.legal-page .legal-body,.legal-page .legal-body *{-webkit-user-select:text;user-select:text}.legal-body{text-align:left;background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:860px;box-shadow:var(--shadow-card);padding:var(--space-7)}.legal-body h1{font-size:var(--display-4);margin:0 0 var(--space-3)}.legal-body h2{font-family:var(--font-ui);font-size:var(--text-lg);font-weight:var(--weight-bold);text-transform:none;letter-spacing:normal;margin:var(--space-6) 0 var(--space-2);color:var(--text-heading)}.legal-body p{font-size:var(--text-md);margin:0 0 var(--space-3);color:var(--text-body);line-height:1.6}.legal-updated{font-family:var(--font-ui);color:var(--text-muted)}.admin-auth{justify-content:center;align-items:center}.admin-login-card{border:1px solid var(--border-hairline);background:var(--surface-card);width:min(100%,460px);box-shadow:var(--shadow-lift);border-radius:20px;padding:36px}.admin-brand{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--action-bg);margin-bottom:12px;font-size:13px;font-weight:700}.admin-login-card h1{margin-bottom:12px;font-size:36px}.admin-login-card p{font-size:16px;line-height:1.5}.admin-login-card form{flex-direction:column;gap:20px;margin-top:28px;display:flex}.admin-login-card label{flex-direction:column;gap:8px;font-size:14px;font-weight:600;display:flex}.admin-login-card input{border:1px solid var(--border-hairline);background:#fff;border-radius:8px;width:100%;min-width:0;min-height:48px}.admin-login-card button{min-height:48px}.admin-error{color:#9b2525;font-size:16px;line-height:1.5}.admin-auth-notice{text-align:center;position:fixed;top:16px;left:24px;right:24px}.admin button.admin-secondary{color:var(--action-bg);border:1px solid var(--border-hairline);background:0 0}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.admin-toolbar span{font-size:14px}@media (width<=600px){.admin{padding:24px 16px}.admin-login-card{padding:24px}.admin section{overflow-x:auto}}.kiosk-access-form{gap:12px;max-width:480px;display:grid}.admin .kiosk-access-settings{background:#fff;border:1px solid #d8d0c5;border-radius:16px;margin:24px 0;padding:24px}.admin .kiosk-access-settings p{max-width:720px;font-size:16px;line-height:1.5}.kiosk-access-form label{font-size:14px;font-weight:600}.kiosk-access-form input{min-height:44px;font:inherit;border:1px solid #bfb8ad;border-radius:8px;padding:10px 12px}.kiosk-access-form label{gap:6px;display:grid}.kiosk-access-form input{box-sizing:border-box;width:100%}.kiosk-access-form p{margin:0}.kiosk-admin-link{color:inherit;margin-top:24px;display:inline-block}.kiosk-lock{z-index:10;color:#24342b;font:inherit;cursor:pointer;background:#fff;border:1px solid;border-radius:20px;padding:8px 14px;font-size:12px;position:fixed;top:12px;right:12px}
