.page{width:100%;max-width:var(--page-max-width);margin:0 auto;padding:0 var(--spacing-20) var(--spacing-120)}.balance-bar{position:sticky;top:0;z-index:50;max-width:var(--page-max-width);margin:0 auto;padding:var(--spacing-16) 0 0}.balance-bar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-16);padding:var(--spacing-8) var(--spacing-16) var(--spacing-8) var(--spacing-32);border-radius:var(--radius-pill);background:#ffffff80;backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:1px solid rgba(255,255,255,.65);box-shadow:inset 0 1px #ffffffb3,0 12px 32px -10px #09090b38,0 0 0 1px #09090b08}.balance-bar .btn--icon{background:transparent;border-color:transparent;color:var(--color-slate)}.balance-bar .btn--icon:hover{background:#09090b0f;border-color:transparent;color:var(--color-obsidian)}.balance-bar__left{display:flex;flex-direction:column;gap:2px;min-width:0}.balance-bar__label{font-size:var(--text-caption);line-height:1;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-steel)}.balance-bar__amount{font-size:clamp(28px,5vw,var(--text-heading-lg));line-height:1.05;font-weight:var(--font-weight-bold);color:var(--color-obsidian);font-variant-numeric:tabular-nums;white-space:nowrap}.balance-bar__amount--empty{color:var(--color-ember)}.balance-bar__right{display:flex;align-items:center;gap:var(--spacing-8)}.btn{font-family:var(--font-cosmica);font-size:var(--text-body);font-weight:var(--font-weight-medium);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-8);white-space:nowrap;transition:transform .18s var(--ease-out),opacity .18s var(--ease-out)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--color-obsidian);color:var(--color-snow);border-radius:var(--radius-cards);padding:var(--spacing-12) var(--spacing-20);box-shadow:var(--shadow-subtle)}.btn--ghost{background:var(--color-snow);color:var(--color-graphite);border:1px solid var(--color-graphite);border-radius:var(--radius-cards);padding:var(--spacing-12) var(--spacing-16)}.btn--icon{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-inputs);background:var(--color-snow);color:var(--color-graphite);border:1px solid var(--color-pebble)}.btn--icon:hover{border-color:var(--color-graphite)}.hero{position:relative;overflow:hidden;background:linear-gradient(160deg,#1c1c20 0%,var(--color-obsidian) 60%);border-radius:var(--radius-hero);padding:clamp(32px,5vw,56px) clamp(24px,4vw,52px);margin:var(--spacing-24) 0 var(--spacing-40);display:flex;flex-direction:column;gap:var(--spacing-16);box-shadow:inset 0 1px #ffffff0f}.hero__title{position:relative;font-size:clamp(40px,7vw,var(--text-display-sm));line-height:var(--leading-display-sm);font-weight:var(--font-weight-bold);color:var(--color-snow);letter-spacing:-.02em}.hero__title em{font-style:normal;color:var(--color-money-bright)}.hero__subtitle{position:relative;font-size:var(--text-body-lg);line-height:var(--leading-body-lg);font-weight:var(--font-weight-regular);color:#ffffffb3;max-width:56ch}.hero__subtitle strong{font-weight:var(--font-weight-semibold);color:var(--color-snow)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-20)}.card{position:relative;background:var(--surface-card-muted);border-radius:var(--radius-cards);padding:var(--spacing-28);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-12);transition:transform .2s var(--ease-spring)}.card:hover{transform:translateY(-3px)}.card--hero{background:var(--color-orchid-flash)}.card--hero .card__name,.card--hero .card__price{color:var(--color-snow)}.card--hero .card__blurb{color:#ffffffd9}.card--hero .card__icon{background:#ffffff2e;color:var(--color-snow)}.card__icon{width:64px;height:64px;border-radius:var(--radius-icons);background:var(--color-mist);color:var(--color-obsidian);display:flex;align-items:center;justify-content:center;flex-shrink:0}.card__photo{width:100%;height:150px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-4)}.card__photo img{max-width:88%;max-height:100%;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(1.5px 1.5px 0 #fff) drop-shadow(-1.5px 1.5px 0 #fff) drop-shadow(1.5px -1.5px 0 #fff) drop-shadow(-1.5px -1.5px 0 #fff)}.card__name{font-size:var(--text-heading);line-height:var(--leading-heading);font-weight:var(--font-weight-bold);color:var(--color-obsidian)}.card__price{font-size:var(--text-heading-sm);font-weight:var(--font-weight-bold);color:var(--color-money);font-variant-numeric:tabular-nums}.card__blurb{font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-steel);max-width:28ch}.card__owned{position:absolute;top:var(--spacing-20);right:var(--spacing-20);background:var(--color-graphite);color:var(--color-snow);border-radius:var(--radius-badges);padding:var(--spacing-4) var(--spacing-8);font-size:var(--text-caption);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.card--hero .card__owned{background:#00000059}.qty{display:flex;align-items:center;gap:var(--spacing-8);width:100%;margin-top:var(--spacing-8)}.qty__btn{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-inputs);display:inline-flex;align-items:center;justify-content:center;transition:transform .15s var(--ease-out),opacity .15s var(--ease-out)}.qty__btn:active{transform:scale(.92)}.qty__btn--sell{background:var(--color-snow);color:var(--color-graphite);border:1px solid var(--color-pebble)}.qty__btn--sell:hover:not(:disabled){border-color:var(--color-graphite)}.qty__btn--buy{background:var(--color-obsidian);color:var(--color-snow);box-shadow:var(--shadow-subtle)}.card--hero .qty__btn--buy{background:var(--color-obsidian)}.qty__btn:disabled{opacity:.35;cursor:not-allowed}.qty__input{flex:1;min-width:0;height:44px;text-align:center;border-radius:var(--radius-inputs);border:1px solid var(--color-pebble);background:var(--color-snow);color:var(--color-ink);font-size:var(--text-body-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.qty__input:focus{outline:none;border-color:var(--color-graphite)}.card--hero .qty__input{border-color:transparent}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:var(--spacing-40) var(--spacing-20) var(--spacing-64);overflow-y:auto}.overlay:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:#09090b8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.printer-stack{width:100%;max-width:380px;margin:0 auto;display:flex;flex-direction:column}.printer{position:sticky;top:0;z-index:2;height:76px;margin-bottom:-11px;background:linear-gradient(180deg,#1d1d20,#09090b);border-radius:28px 28px 12px 12px;box-shadow:var(--shadow-md),inset 0 1px #ffffff12}.printer--printing{animation:printer-shake .09s linear infinite}.printer__brand{position:absolute;top:15px;left:22px;font-size:var(--text-caption);letter-spacing:.14em;text-transform:uppercase;font-weight:var(--font-weight-semibold);color:var(--color-ash)}.printer__led{position:absolute;top:17px;right:58px;width:8px;height:8px;border-radius:50%;background:var(--color-graphite)}.printer--printing .printer__led{background:var(--color-ember);box-shadow:0 0 8px var(--color-ember);animation:led-blink .45s steps(1,end) infinite}.printer__close{position:absolute;top:13px;right:14px;width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-ash);background:#ffffff0f;transition:background .15s var(--ease-out),color .15s var(--ease-out)}.printer__close:hover{color:var(--color-snow);background:#ffffff24}.printer__slot{position:absolute;left:18px;right:18px;bottom:9px;height:7px;border-radius:6px;background:#000;box-shadow:inset 0 2px 5px #000000e6,0 1px #ffffff0f}.paper-feed{position:relative;z-index:1;margin:0 16px;overflow:hidden}.paper{--tooth-h: 11px;position:relative;background:#fcfcf8;color:#1b1b1b;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12.5px;line-height:1.5;padding:24px 22px calc(16px + var(--tooth-h));box-shadow:var(--shadow-md);-webkit-mask:linear-gradient(135deg,#000 50%,transparent 51%) 0 100% / 16px var(--tooth-h) repeat-x,linear-gradient(225deg,#000 50%,transparent 51%) 0 100% / 16px var(--tooth-h) repeat-x,linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth-h)) no-repeat;mask:linear-gradient(135deg,#000 50%,transparent 51%) 0 100% / 16px var(--tooth-h) repeat-x,linear-gradient(225deg,#000 50%,transparent 51%) 0 100% / 16px var(--tooth-h) repeat-x,linear-gradient(#000 0 0) top / 100% calc(100% - var(--tooth-h)) no-repeat}.paper:before{content:"";position:absolute;top:0;left:0;right:0;height:16px;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent);pointer-events:none}.paper__center{text-align:center}.paper__store{font-size:19px;font-weight:700;letter-spacing:.08em}.paper__tag{font-size:11px;color:#6a6a6a;letter-spacing:.1em;margin-top:2px}.paper__meta{font-size:11px;color:#555;margin-top:10px;line-height:1.7}.paper__rule{border:none;border-top:1px dashed rgba(0,0,0,.32);margin:12px 0}.paper__rows{display:flex;flex-direction:column;gap:8px}.r-item{display:flex;align-items:flex-end;gap:6px}.r-item__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}.r-item__dots{flex:1;border-bottom:1px dotted rgba(0,0,0,.4);transform:translateY(-3px)}.r-item__price{white-space:nowrap}.paper__line{display:flex;justify-content:space-between}.paper__muted{color:#6a6a6a}.paper__total{display:flex;justify-content:space-between;font-size:15px;font-weight:700}.paper__thanks{text-align:center;margin-top:14px;font-weight:700;letter-spacing:.05em}.paper__empty{text-align:center;color:#6a6a6a;padding:16px 0}.barcode{height:48px;width:72%;margin:16px auto 6px;background:repeating-linear-gradient(90deg,#111 0,#111 2px,#fff0 2px,#fff0 4px,#111 4px,#111 5px,#fff0 5px,#fff0 9px,#111 9px,#111 12px,#fff0 12px,#fff0 14px,#111 14px,#111 15px,#fff0 15px,#fff0 18px)}.barcode-num{text-align:center;font-size:11px;letter-spacing:.32em;color:#555}.receipt-actions{display:flex;gap:var(--spacing-12);margin:var(--spacing-20) 6px 0}.receipt-actions .btn{flex:1}@keyframes printer-shake{0%,to{transform:translate(0)}25%{transform:translate(-.6px)}75%{transform:translate(.6px)}}@keyframes led-blink{0%,to{opacity:1}50%{opacity:.2}}.footnote{margin-top:var(--spacing-64);text-align:center;font-size:var(--text-body);color:var(--color-ash)}.footnote a{color:var(--color-steel);text-decoration:underline;text-underline-offset:2px}@media (max-width: 520px){.grid{grid-template-columns:1fr}.balance-bar__right .btn--ghost-text{display:none}.balance-bar__inner{padding:var(--spacing-4) var(--spacing-12) var(--spacing-4) var(--spacing-16);gap:var(--spacing-8)}.balance-bar__amount{font-size:clamp(14px,5vw,24px)}.balance-bar__right{gap:var(--spacing-4)}.balance-bar .btn--icon,.balance-bar .btn--primary{width:38px;height:38px;padding:0;border-radius:var(--radius-inputs)}}:root{--color-obsidian: #09090b;--color-ink: #18181b;--color-graphite: #3f3f46;--color-slate: #52525b;--color-steel: #71717a;--color-ash: #a1a1aa;--color-pebble: #d4d4d8;--color-fog: #ececee;--color-mist: #f4f4f5;--color-snow: #ffffff;--color-ember: #ff5a00;--color-orchid-flash: #fe45e2;--color-money: #16a34a;--color-money-bright: #22c55e;--font-cosmica: "DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-caption: 10px;--leading-caption: 1.8;--text-body: 14px;--leading-body: 1.56;--text-body-lg: 16px;--leading-body-lg: 1.5;--text-subheading: 18px;--leading-subheading: 1.45;--text-heading-sm: 20px;--leading-heading-sm: 1.35;--text-heading: 32px;--leading-heading: 1.28;--text-heading-lg: 40px;--leading-heading-lg: 1.25;--text-display-sm: 56px;--leading-display-sm: 1.12;--text-display: 64px;--leading-display: 1;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-4: 4px;--spacing-8: 8px;--spacing-12: 12px;--spacing-16: 16px;--spacing-20: 20px;--spacing-24: 24px;--spacing-28: 28px;--spacing-32: 32px;--spacing-36: 36px;--spacing-40: 40px;--spacing-48: 48px;--spacing-64: 64px;--spacing-68: 68px;--spacing-80: 80px;--spacing-120: 120px;--page-max-width: 1200px;--section-gap: 80px;--element-gap: 8px;--radius-badges: 12px;--radius-inputs: 14px;--radius-button-rect: 16px;--radius-cards-compact: 28px;--radius-cards: 36px;--radius-icons: 40px;--radius-hero: 48px;--radius-pill: 10000px;--shadow-subtle: rgba(255, 255, 255, .5) 0px .5px 0px 0px inset, rgba(117, 123, 133, .4) 0px 9px 14px -5px inset, rgb(44, 46, 52) 0px 0px 0px 1.5px, rgba(0, 0, 0, .14) 0px 4px 6px 0px;--shadow-card-inset: rgb(228, 228, 231) 0px 1px 0px 0px inset;--shadow-md: rgba(0, 0, 0, .04) 0px 4px 12px 0px;--surface-canvas: #d4d4d8;--surface-card-white: #ffffff;--surface-card-muted: #ececee;--surface-dark: #09090b;--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-cosmica);font-size:var(--text-body-lg);line-height:var(--leading-body-lg);font-weight:var(--font-weight-regular);color:var(--color-ink);background-color:var(--surface-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none}input{font-family:inherit}h1,h2,h3,h4{letter-spacing:normal;font-weight:var(--font-weight-bold);color:var(--color-obsidian)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}
