@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--ink:#3b2633;--rose:#e73578;--deep:#ba1552;--cream:#fff6ef}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans',sans-serif}button{font:inherit}.experience{min-height:100vh;padding:26px clamp(22px,5vw,82px) 20px;background:radial-gradient(circle at 9% 75%,#fff1f6 0,transparent 33%),#fff}.topbar{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:auto}.brand{display:block;width:120px}.brand img{display:block;width:100%;height:auto}.edition{color:#a96b7e;font:500 10px 'DM Mono',monospace;letter-spacing:.12em}.edition span{padding:0 8px;color:var(--rose)}.hero{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(480px,1.2fr);align-items:center;gap:clamp(10px,3vw,52px);max-width:1400px;margin:20px auto 0}.hero-heading{padding:10px 0 40px}.kicker{margin:0 0 22px;color:#c02c62;font:500 11px 'DM Mono',monospace;letter-spacing:.19em}.hero-heading h1{margin:0;font:700 clamp(3.8rem,6vw,7.1rem)/.88 'Playfair Display',Georgia,serif;letter-spacing:-.065em}.hero-heading h1 em{color:var(--rose);font-weight:600}.intro{max-width:420px;margin:30px 0;color:#795a67;font-size:16px;line-height:1.72}.prize-count{display:flex;align-items:center;gap:13px;margin:33px 0 24px}.count-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid #f2b6ca;border-radius:50%;color:var(--rose);font-size:22px}.prize-count strong{display:block;font:700 24px 'Playfair Display',Georgia,serif}.prize-count small{display:block;margin-top:3px;color:#a17080;font:500 9px 'DM Mono',monospace;letter-spacing:.11em}.spin-button{display:flex;align-items:center;justify-content:space-between;gap:35px;min-width:250px;padding:16px 21px;border:0;border-radius:4px;color:white;background:var(--rose);box-shadow:0 8px 20px #e7357833;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.11em;transition:background .2s,transform .2s}.spin-button:hover{background:var(--deep);transform:translateY(-2px)}.spin-button:disabled{cursor:default;opacity:.6;transform:none}.spin-button span:last-child{font-size:21px;font-weight:400;line-height:.5}.rules{max-width:320px;margin:20px 0 0;color:#a07d89;font-size:11px;line-height:1.55}.game-area{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0}.photo-roulette{position:relative;width:min(100%,650px);aspect-ratio:1145/1374;isolation:isolate;user-select:none}.wheel-art{display:block;width:100%;height:100%;object-fit:contain}.spinning-disc{position:absolute;z-index:1;left:8.33%;top:9.72%;width:83.34%;aspect-ratio:1;border-radius:50%;overflow:hidden;transform-origin:center;transition:transform 5.2s cubic-bezier(.11,.68,.1,1);will-change:transform}.spinning-disc>img{position:absolute;display:block;width:120%;max-width:none;height:auto;left:-10%;top:-14%}.stock-overlays{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.stock-overlays .empty-wedge{fill:#c7c7c7;fill-opacity:.79;stroke:#aaa;stroke-width:2}.stock-overlays .empty-label{fill:#5e5a5a;font:700 23px 'DM Sans',sans-serif;text-anchor:middle;paint-order:stroke;stroke:#f1eeee;stroke-width:4}.pointer-art{position:absolute;z-index:3;left:41.5%;top:0;width:17%;height:12%;overflow:hidden;pointer-events:none}.pointer-art img{position:absolute;width:588.24%;max-width:none;height:auto;left:-244.12%;top:0}.hub-art{position:absolute;z-index:3;left:41.5%;top:37.5%;width:17%;aspect-ratio:1;border-radius:50%;overflow:hidden;pointer-events:none}.hub-art img{position:absolute;width:588.24%;max-width:none;height:auto;left:-244.12%;top:-264.7%}.hub-button{position:absolute;z-index:4;left:41.5%;top:37.5%;width:17%;aspect-ratio:1;border:0;border-radius:50%;background:transparent;cursor:pointer}.hub-button:hover{box-shadow:0 0 0 4px #f1bad1,0 0 25px #e73578b0}.hub-button:focus-visible{outline:3px solid #9e164a;outline-offset:5px}.hub-button:disabled{cursor:default}.spin-hint{margin:8px 0 16px;color:#bd597b;font:500 10px 'DM Mono',monospace;letter-spacing:.12em;text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spin-smoke{position:absolute;z-index:5;top:12%;left:15%;right:15%;height:55%;pointer-events:none;opacity:0;transition:opacity .2s}.spin-smoke.is-spinning{opacity:1}.spin-smoke i{position:absolute;width:100px;height:75px;border-radius:50%;background:radial-gradient(ellipse,#fff8f3cc,transparent 72%);filter:blur(8px);opacity:0}.spin-smoke i:nth-child(1){left:0;top:32%}.spin-smoke i:nth-child(2){right:0;top:18%;animation-delay:.25s}.spin-smoke i:nth-child(3){left:26%;bottom:5%;animation-delay:.5s}.spin-smoke i:nth-child(4){right:20%;bottom:10%;animation-delay:.75s}.spin-smoke i:nth-child(5){left:42%;top:4%;animation-delay:1s}.spin-smoke.is-spinning i{animation:smokeFloat 1.4s ease-in-out infinite}@keyframes smokeFloat{0%{opacity:0;transform:translateY(20px) scale(.3)}40%{opacity:.4}100%{opacity:0;transform:translateY(-27px) scale(1.5)}}.celebration{position:absolute;z-index:6;top:44%;left:50%;pointer-events:none}.celebration span{position:absolute;color:#e2a747;font:27px Georgia,serif;opacity:0}.celebration.burst span{animation:starBurst .95s cubic-bezier(.12,.68,.18,1) var(--d) forwards}@keyframes starBurst{0%{transform:scale(0);opacity:0}15%{opacity:1}100%{transform:translate(var(--x),var(--y)) scale(var(--s));opacity:0}}.inventory-details{max-width:1400px;margin:0 auto 40px;padding:17px 0;border-top:1px solid #f0d6de;color:#754554}.inventory-details summary{width:max-content;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.04em}.inventory-details ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 28px;margin:20px 0 0;padding:0;list-style:none}.inventory-details li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #f6e3e8;padding:7px 0;color:#795c66;font-size:12px}.inventory-details li b{color:#c23167;white-space:nowrap}.inventory-details li.empty{color:#aaa}.inventory-details li.empty b{color:#888}footer{display:flex;justify-content:space-between;gap:18px;max-width:1400px;margin:auto;padding-top:17px;border-top:1px solid #f0d6de;color:#a57d8b;font:9px 'DM Mono',monospace;letter-spacing:.08em}.reward-modal{width:min(calc(100% - 32px),440px);max-height:calc(100vh - 34px);padding:0;border:0;background:transparent;overflow:visible}.reward-modal::backdrop{background:#402332ab;backdrop-filter:blur(5px)}.reward-ticket{position:relative;overflow:hidden;background:#fffaf7;box-shadow:0 25px 75px #321d2d80}.ticket-head{display:flex;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f1c9d8;color:#a65775;font:10px 'DM Mono',monospace;letter-spacing:.1em}.ticket-content{padding:42px 28px 37px;text-align:center}.ticket-eyebrow{margin:0;color:#c52b66;font:10px 'DM Mono',monospace;letter-spacing:.16em}.ticket-spark{margin:16px auto;color:#e7ac53;font-size:27px}.reward-ticket h2{margin:0 auto;max-width:350px;color:#bc1957;font:700 clamp(27px,7vw,39px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-.04em}.reward-branch{margin:16px 0 0;color:#7c6269;font-size:13px}.ticket-claim{position:relative;padding:23px 25px 25px;border-top:2px dashed #eda8c2;text-align:center;background:#ffe8f0}.ticket-claim:before,.ticket-claim:after{content:'';position:absolute;top:-12px;width:24px;height:24px;border-radius:50%;background:#402332}.ticket-claim:before{left:-12px}.ticket-claim:after{right:-12px}.ticket-claim span,.ticket-claim small{display:block;color:#9a657b;font:9px 'DM Mono',monospace;letter-spacing:.09em}.ticket-claim strong{display:block;margin:9px 0;color:#a82459;font:600 18px 'DM Mono',monospace;letter-spacing:.09em}.ticket-claim small{font-size:8px;letter-spacing:0}.reward-modal .close{position:absolute;z-index:4;right:0;top:-39px;width:32px;height:32px;border:1px solid #ffffffaa;border-radius:50%;background:transparent;color:white;font-size:23px;line-height:1;cursor:pointer}.reward-modal .claim{display:block;width:100%;margin:14px 0 0;padding:15px;border:0;background:#dc2f70;color:white;font-weight:700;font-size:12px;letter-spacing:.1em;cursor:pointer}.reward-modal .fine-print{margin:12px 0 0;color:#fff5f3;text-align:center;font-size:11px}@media(max-width:900px){.hero{grid-template-columns:1fr;margin-top:55px}.hero-heading{text-align:center;padding:0}.hero-heading h1{font-size:clamp(3.8rem,10vw,6rem)}.intro,.rules{margin-left:auto;margin-right:auto}.prize-count{justify-content:center}.spin-button{margin:auto}.game-area{width:100%;max-width:620px;margin:auto}.inventory-details ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.experience{padding:20px 18px}.edition{display:none}.hero{margin-top:18px}.hero-heading h1{font-size:clamp(3.35rem,13vw,4.5rem)}.intro{margin-top:24px;font-size:14px}.prize-count{margin-top:26px}.photo-roulette{width:calc(100% + 22px);max-width:none}.spin-hint{margin-top:10px;font-size:9px}.inventory-details ul{grid-template-columns:1fr}footer span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){.spin-button,.spin-smoke i,.celebration span{animation:none;transition-duration:.01ms}}

/* Responsive reading order: heading, wheel, then details on narrow screens. */
.hero{grid-template-rows:auto auto}.hero-heading{grid-column:1;grid-row:1;align-self:end}.hero-actions{grid-column:1;grid-row:2;align-self:start}.game-area{grid-column:2;grid-row:1/span 2}.game-area>.spin-button{margin-top:-2px}.hero-actions .intro{margin-top:8px}.hero-actions .prize-count{margin-top:22px}.hero-actions .rules{margin-top:18px}
@media(max-width:900px){.hero{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:0;margin-top:14px}.hero-heading{grid-column:1;grid-row:1;text-align:center;padding:0}.game-area{grid-column:1;grid-row:2}.hero-actions{grid-column:1;grid-row:3;text-align:center}.hero-actions .intro{margin:18px auto 0}.hero-actions .rules{margin:18px auto 0}.game-area>.spin-button{margin:0 auto 6px}}
@media(max-width:540px){.brand{width:80px}.hero{margin-top:0}.hero-heading h1{font-size:clamp(3rem,12vw,4.5rem)}.hero-heading .kicker{margin-bottom:14px}.photo-roulette{width:calc(100% + 22px)}.game-area>.spin-button{width:min(100%,270px);min-width:0}.hero-actions .prize-count{margin:22px auto 0}}
.wheel-button{position:absolute;z-index:4;left:8.33%;top:9.72%;width:83.34%;aspect-ratio:1;border:0;border-radius:50%;background:transparent;cursor:pointer}.wheel-button:focus-visible{outline:3px solid #b81552;outline-offset:4px}.wheel-button:disabled{cursor:default}.hub-button{z-index:5}
/* The pointer stays mounted at the top and flexes as each sector passes. */
.pointer-art{transform-origin:50% 12%;clip-path:polygon(50% 100%,11% 54%,7% 34%,9% 18%,18% 7%,31% 4%,50% 19%,69% 4%,82% 7%,91% 18%,93% 34%,89% 54%);will-change:transform}.saved-prizes{max-width:1400px;margin:-30px auto 35px;padding:12px 0 18px;border-top:1px solid #f0d6de;color:#754554}.saved-prizes summary{width:max-content;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.04em}.saved-prizes ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:18px 0 0;padding:0;list-style:none}.saved-prizes li{color:#8c6b76;font-size:12px}.saved-prizes li button{width:100%;padding:10px 12px;border:1px solid #f0cad8;border-radius:5px;background:#fff8fb;color:#8e3658;text-align:left;font-size:11px;font-weight:700;cursor:pointer}.saved-prizes li button:hover{background:#ffecf3}.spin-hint.is-error{color:#a32748;max-width:360px;line-height:1.5}.reward-state{margin:13px 0 0;color:#a32758;font:700 9px 'DM Mono',monospace;letter-spacing:.07em}.copy-code{display:block;width:100%;margin:14px 0 0;padding:13px;border:1px solid #dc2f70;background:#fff;color:#bd1f5c;font-size:11px;font-weight:700;letter-spacing:.1em;cursor:pointer}.copy-code:disabled{opacity:.55;cursor:default}.reward-modal .claim{margin-top:8px}@media(max-width:540px){.saved-prizes{margin-top:-20px}.saved-prizes ul{grid-template-columns:1fr}}
