:root{--bg-deep: #1e2019;--bg-base: #2b2d28;--bg-elevated: #383a32;--bg-elevated-2: #45473d;--gold: #c9a87a;--gold-light: #e3c99a;--gold-lighter: #f1e6d3;--gold-dark: #a3835b;--ink: #201f19;--rust: #8b4a3d;--line: rgba(201, 168, 122, .22);--shadow-deep: rgba(0, 0, 0, .45);--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Jost", "Segoe UI", system-ui, sans-serif;--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--bg-base);color:var(--gold-lighter);font-family:var(--font-body);overflow:hidden;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.grain-overlay{position:fixed;inset:0;pointer-events:none;z-index:500;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px}.app{height:100vh;height:100dvh;display:flex;flex-direction:column;background:radial-gradient(circle at 50% -10%,rgba(201,168,122,.08),transparent 55%),var(--bg-base)}.topbar{flex:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(12px,2vw,28px);padding:10px clamp(14px,2.4vw,28px);background:linear-gradient(180deg,var(--bg-elevated),var(--bg-base));border-bottom:1px solid var(--line);box-shadow:0 6px 18px var(--shadow-deep);z-index:5}.topbar__brand{display:flex;align-items:center;gap:10px;justify-self:start;min-width:0}.brand-mark{height:clamp(42px,5.5vw,60px);width:auto;flex:0 0 auto;display:block}.topbar__center{display:flex;justify-content:center;justify-self:center;min-width:0}.topbar__actions{justify-self:end}.receipt-form{display:flex;flex-direction:column;align-items:center;gap:4px}.receipt-form__label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-dark)}.receipt-form__row{display:flex;gap:8px}.receipt-form__input{width:clamp(90px,12vw,140px);background:var(--bg-deep);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--gold-lighter);font-size:16px;font-weight:600;padding:8px 12px;text-align:center;outline:none;transition:border-color .15s,box-shadow .15s}.receipt-form__input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a87a2e}.receipt-form__input::-webkit-outer-spin-button,.receipt-form__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.receipt-form__hint{margin:2px 0 0;font-size:11px;min-height:14px;color:var(--rust);opacity:0;transition:opacity .2s}.receipt-form__hint.is-visible{opacity:1}.session-status{display:flex;align-items:center;gap:14px}.session-status__item{display:flex;flex-direction:column;align-items:center;line-height:1.2}.session-status__label{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-dark)}.session-status__value{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--gold-light)}.session-status__divider{width:1px;height:26px;background:var(--line)}.session-status__pips{display:flex;gap:5px;margin-top:3px}.pip{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;transition:background .2s,transform .2s}.pip.is-used{background:var(--gold);opacity:.35}.pip.is-available{background:var(--gold);box-shadow:0 0 6px #c9a87ab3}.session-status__new{margin-left:4px}.btn{border:none;border-radius:var(--radius-sm);padding:9px 18px;font-weight:600;font-size:13px;letter-spacing:1px;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.btn:active{transform:scale(.96)}.btn--gold{background:linear-gradient(180deg,var(--gold-light),var(--gold-dark));color:var(--ink);box-shadow:0 3px 10px #00000059}.btn--gold:hover{box-shadow:0 4px 14px #c9a87a59}.btn--ghost{background:transparent;color:var(--gold-light);border:1px solid var(--line)}.btn--ghost:hover{border-color:var(--gold)}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--bg-deep);color:var(--gold-light);display:flex;align-items:center;justify-content:center}.icon-btn svg{width:20px;height:20px}.icon-btn__off,.icon-btn[aria-pressed=true] .icon-btn__on{display:none}.icon-btn[aria-pressed=true] .icon-btn__off{display:block}.icon-btn:hover{border-color:var(--gold)}.stage{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,48px);padding:clamp(8px,2vh,20px) clamp(14px,3vw,40px);min-height:0}.wheel-zone{display:flex;flex-direction:column;align-items:center;gap:clamp(10px,2vh,20px);min-height:0}.wheel-wrap{position:relative;width:min(52vw,62vh,560px);height:min(52vw,62vh,560px);aspect-ratio:1 / 1}.wheel-svg{width:100%;height:100%;display:block;filter:drop-shadow(0 10px 26px rgba(0,0,0,.5))}.wheel-rotor{transform-origin:200px 200px}.wheel-sector{stroke:var(--bg-deep);stroke-width:1.5}.wheel-sector--a{fill:var(--bg-elevated-2)}.wheel-sector--b{fill:var(--bg-elevated)}.wheel-sector--bonus.wheel-sector--a,.wheel-sector--bonus.wheel-sector--b{fill:#6d5636}.wheel-sector--fail.wheel-sector--a,.wheel-sector--fail.wheel-sector--b{fill:#33241f}.wheel-divider{stroke:var(--gold);stroke-width:1.2;opacity:.45}.wheel-rim{fill:none;stroke:var(--gold);stroke-width:3}.wheel-label__emoji{font-size:22px}.wheel-label__name{font-family:var(--font-body);font-weight:600;fill:var(--gold-lighter);letter-spacing:.3px}.wheel-pointer{position:absolute;top:-14px;left:50%;transform:translate(-50%);width:clamp(28px,4.5vw,40px);z-index:3;filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}.wheel-pointer svg{width:100%;height:auto;display:block}.wheel-hub{position:absolute;top:50%;left:50%;width:15%;height:15%;transform:translate(-50%,-50%);z-index:2}.wheel-hub svg{width:100%;height:100%}.btn--spin{background:radial-gradient(120% 140% at 50% 0%,var(--gold-light),var(--gold-dark) 75%);color:var(--ink);border-radius:999px;padding:14px 46px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:0 8px 22px #0006,inset 0 1px #fff6;border:2px solid var(--bg-deep)}.btn--spin__label{font-family:var(--font-display);font-weight:800;font-size:clamp(16px,2vw,20px);letter-spacing:3px}.btn--spin__sub{font-size:10px;letter-spacing:1px;opacity:.75;font-weight:500}.btn--spin:disabled{filter:grayscale(.5);opacity:.55;cursor:not-allowed;box-shadow:none}.btn--spin:not(:disabled):hover{box-shadow:0 10px 28px #c9a87a66,inset 0 1px #fff6}.btn--spin.is-spinning .btn--spin__label{opacity:.6}.side-panel{flex:0 0 auto;width:clamp(190px,20vw,280px);max-height:100%;display:flex;flex-direction:column;background:#00000026;border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;min-height:0}.side-panel__title{margin:0 0 10px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-dark);font-weight:600}.history-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:0}.history-list__empty{font-size:12px;color:var(--gold-dark);opacity:.7;font-style:italic}.history-chip{display:flex;align-items:center;gap:8px;background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px;animation:chip-in .3s ease}.history-chip__emoji{font-size:16px}.history-chip--bonus{border-color:var(--gold)}.history-chip--fail{opacity:.75}@keyframes chip-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center}.modal[hidden]{display:none}.modal__backdrop{position:absolute;inset:0;background:#0a0a08b8;backdrop-filter:blur(2px);animation:fade-in .2s ease}.modal__card{position:relative;z-index:1;background:url(../assets/pack/06-logo-only-gold.svg) no-repeat calc(100% + 30px) calc(100% + 30px) / 200px 200px,linear-gradient(180deg,var(--bg-elevated),var(--bg-base));background-blend-mode:soft-light,normal;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 20px 50px #0000008c;padding:clamp(20px,3vh,32px) clamp(24px,4vw,40px);text-align:center;max-width:min(90vw,420px);overflow:hidden;animation:card-in .32s cubic-bezier(.2,.8,.25,1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.result-card__emoji{font-size:clamp(40px,6vh,56px);line-height:1;margin-bottom:6px}.result-card__title{font-family:var(--font-display);font-weight:800;font-size:clamp(20px,3vh,28px);letter-spacing:2px;margin:0 0 10px;color:var(--gold-light)}.result-card__reaction{margin:0 0 20px;font-size:15px;color:var(--gold-lighter);opacity:.9}.result-card__code{margin:-8px 0 20px;font-size:13px;color:var(--gold-lighter);opacity:.8}.result-card__code-value{display:inline-block;margin-left:4px;padding:3px 10px;font-family:var(--font-display);font-weight:800;font-size:15px;letter-spacing:3px;color:var(--ink);background:var(--gold-light);border-radius:var(--radius-sm)}.result-card__continue{min-width:140px}.result-card.is-fail .result-card__emoji{animation:devil-shake .5s ease}@keyframes devil-shake{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}.result-card.is-bonus{box-shadow:0 0 0 2px var(--gold),0 20px 50px #0000008c}.result-card.is-bonus .result-card__emoji{animation:jackpot-pop .6s cubic-bezier(.3,1.6,.4,1)}@keyframes jackpot-pop{0%{transform:scale(.4) rotate(-10deg);opacity:0}60%{transform:scale(1.15) rotate(6deg);opacity:1}to{transform:scale(1) rotate(0)}}.confirm-card__title{font-family:var(--font-display);font-size:20px;margin:0 0 10px;color:var(--gold-light)}.confirm-card__text{margin:0 0 20px;font-size:14px;opacity:.9}.confirm-card__actions{display:flex;gap:10px;justify-content:center}.confetti-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}.confetti-piece{position:absolute;animation-name:confetti-burst;animation-timing-function:cubic-bezier(.15,.7,.3,1);animation-fill-mode:forwards}@keyframes confetti-burst{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}.rotate-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:var(--bg-deep);text-align:center;overflow:hidden}html[data-orientation-blocked=true] .rotate-overlay{display:flex}html[data-orientation-blocked=true] .app{display:none}.rotate-overlay__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:32px;max-width:320px}.rotate-overlay__brand{width:88px;height:88px;margin-bottom:20px}.rotate-overlay__icon{width:74px;height:auto;color:var(--gold);margin-bottom:20px;animation:rotate-hint 1.8s ease-in-out infinite}@keyframes rotate-hint{0%,15%,to{transform:translate(0)}50%,65%{transform:translate(4px)}}.rotate-overlay__title{font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--gold-light);margin:0 0 8px}.rotate-overlay__text{font-size:14px;color:var(--gold-dark);margin:0}@media(max-width:860px){.side-panel{display:none}}@media(max-height:460px){.topbar{padding-top:6px;padding-bottom:6px}.receipt-form__label{display:none}.stage{padding-top:6px;padding-bottom:6px}}.cashier-panel{display:flex;flex-direction:column;align-items:center;gap:6px}.cashier-panel__label{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);opacity:.75}.cashier-panel__presets{display:flex;gap:10px}.cashier-preset{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;line-height:1.1}.cashier-preset__spins{font-family:var(--font-display);font-size:15px;font-weight:700}.cashier-preset__amount{font-size:11px;letter-spacing:.08em;opacity:.7}.cashier-panel__hint{margin:0;min-height:14px;font-size:12px;color:var(--rust);opacity:0;transition:opacity .2s ease}.cashier-panel__hint.is-visible{opacity:1}.result-card__claim{margin:14px 0 4px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius-md);background:#00000038}.result-card__claim-label{margin:0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);opacity:.8}.result-card__code-value{margin:4px 0 6px;font-family:var(--font-display);font-size:46px;font-weight:800;letter-spacing:.16em;color:var(--gold-light);text-shadow:0 2px 10px var(--shadow-deep)}.result-card__expiry{margin:0;font-size:13px;color:var(--gold-lighter)}.result-card__note{margin:6px 0 0;font-size:12px;opacity:.72}.pin-screen{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:var(--bg-deep)}.pin-screen__card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 34px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-base);box-shadow:0 24px 60px var(--shadow-deep)}.pin-screen__brand{opacity:.9}.pin-screen__title{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--gold-lighter)}.pin-screen__dots{display:flex;gap:10px;min-height:14px}.pin-dot{width:12px;height:12px;border:1px solid var(--gold-dark);border-radius:50%}.pin-dot.is-filled{background:var(--gold)}.pin-screen__hint{margin:0;min-height:16px;font-size:12px;color:var(--rust)}.pin-screen__keypad{display:grid;grid-template-columns:repeat(3,68px);gap:8px}.pin-key{height:52px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--gold-lighter);font-family:var(--font-body);font-size:20px;cursor:pointer;transition:background .15s ease}.pin-key:active{background:var(--bg-elevated-2)}.pin-key--gold{background:var(--gold);color:var(--ink)}.pin-key--muted{color:var(--gold)}
