*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0d0a2a;--color-deep-blue: #1a1150;--color-purple: #2d1b69;--color-gold: #f0c040;--color-gold-dark: #d4a830;--color-white: #ffffff;--color-light: #e8e0f0;--color-muted: #9e95b0;--color-card-bg: rgba(255, 255, 255, .05);--color-card-border: rgba(240, 192, 64, .15);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 12px;--radius-md: 18px;--radius-lg: 24px;--radius-pill: 50px;font-family:-apple-system,SF Pro Display,Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;color:var(--color-light);background-color:var(--color-bg);background-image:radial-gradient(ellipse at 50% 0%,rgba(45,27,105,.5) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(26,10,48,.6) 0%,transparent 40%),radial-gradient(ellipse at 20% 90%,rgba(13,10,42,.5) 0%,transparent 40%);background-attachment:fixed;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;position:relative;overflow-x:hidden}::selection{background:#f0c04040;color:var(--color-white)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#f0c04026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#f0c0404d}body:before{content:"";position:fixed;top:0;left:0;width:1px;height:1px;pointer-events:none;z-index:0;box-shadow:3vw 5vh 0 .5px #fff3,8vw 14vh #ffffff1f,14vw 7vh 0 .5px #ffffff4d,4vw 32vh #ffffff26,21vw 3vh #fff3,34vw 9vh 0 .5px #ffffff1f,47vw 4vh #ffffff2e,57vw 7vh 0 .5px #ffffff26,71vw 5vh #ffffff40,84vw 10vh 0 .5px #ffffff1f,91vw 8vh #fff3,95vw 16vh #ffffff26,2vw 50vh 0 .5px #ffffff26,6vw 67vh #ffffff38,3vw 84vh 0 .5px #ffffff1f,5vw 94vh #ffffff2e,92vw 27vh #ffffff26,87vw 44vh 0 .5px #ffffff40,95vw 60vh #ffffff1f,90vw 77vh #ffffff2e,84vw 91vh 0 .5px #ffffff26,94vw 96vh #ffffff1f,27vw 93vh #ffffff26,49vw 97vh 0 .5px #fff3,71vw 94vh #ffffff1f}body:after{content:"";position:fixed;top:0;left:0;width:1px;height:1px;pointer-events:none;z-index:0;box-shadow:11vw 19vh 0 .5px #ffffff4d,87vw 15vh #ffffff59,5vw 56vh 0 .5px #ffffff40,93vw 51vh #fff3,19vw 73vh #ffffff47,79vw 79vh 0 .5px #ffffff40,16vw 39vh #ffffff26,86vw 36vh 0 .5px #ffffff47,41vw 6vh #ffffff38,64vw 96vh #fff3,74vw 3vh 0 .5px #ffffff47,54vw 91vh #ffffff26;animation:twinkle 5s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.25}to{opacity:1}}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;z-index:1}:root{--c-bg-dark: #0f1020;--c-bg-card: #1a1b2e;--c-primary: #ffd700;--c-primary-dim: #cca800;--c-accent: #ff6b6b;--c-text-main: #ffffff;--c-text-muted: #8f90a0;--g-background: radial-gradient(circle at 50% 0%, #2a2c4e 0%, #0f1020 70%);--g-gold: linear-gradient(135deg, #ffd700 0%, #fdb931 100%);--g-gold-text: linear-gradient(to bottom, #fff8cc 0%, #ffd700 100%);--gap-xs: .5rem;--gap-sm: 1rem;--gap-md: 1.5rem;--gap-lg: 2.5rem;--r-card: 16px;--r-pill: 999px;--ease-spring: cubic-bezier(.175, .885, .32, 1.275)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--c-bg-dark);color:var(--c-text-main);overflow:hidden}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%;max-width:100%;margin:0 auto;position:relative;background:var(--g-background);box-shadow:0 0 50px #00000080}.background-ambient{position:absolute;inset:0;background-image:radial-gradient(circle at 10% 20%,rgba(100,50,255,.05) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(255,215,0,.03) 0%,transparent 40%);pointer-events:none;z-index:0}.app-header{z-index:10;padding:var(--gap-md) var(--gap-sm) var(--gap-sm);text-align:center;flex-shrink:0}.logo-container{display:flex;align-items:center;justify-content:center;gap:var(--gap-xs);margin-bottom:.25rem}.app-header h1{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;background:var(--g-gold-text);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 10px rgba(255,215,0,.2))}.beta-badge{font-size:.6rem;font-weight:700;background:#ffffff1a;color:var(--c-primary);padding:2px 6px;border-radius:4px;letter-spacing:.05em;border:1px solid rgba(255,215,0,.2)}.subtitle{font-size:.9rem;color:var(--c-text-muted)}.app-content{z-index:5;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 var(--gap-md);position:relative;overflow-y:auto;overflow-x:hidden}.wheel-section{flex-shrink:0;margin-top:4rem;margin-bottom:var(--gap-md);transform:scale(.95);transition:transform .5s var(--ease-spring)}.result-section.visible~.wheel-section{transform:scale(.85)}.action-section{width:100%;display:flex;flex-direction:column;align-items:center;min-height:80px}.spin-button{background:var(--g-gold);border:none;font-size:1.1rem;font-weight:700;color:#3e2c00;padding:18px 40px;border-radius:var(--r-pill);cursor:pointer;box-shadow:0 4px #b38f00,0 8px 20px #ffd7004d;transition:all .2s cubic-bezier(.25,1,.5,1);width:100%;max-width:280px;display:flex;align-items:center;justify-content:center}.spin-button:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 #b38f00,0 4px 10px #ffd70033}.spin-button:disabled{opacity:.7;filter:grayscale(.5);cursor:not-allowed}.spin-button.loading .loading-text{opacity:.8;font-size:.95rem}.result-section{display:none}.result-section.visible{display:flex}.ticket-header{background:#1a1b2e;padding:12px 20px;display:flex;justify-content:space-between;align-items:center}.ticket-type{color:var(--c-primary);font-size:.7rem;letter-spacing:.15em;font-weight:800}.ticket-id{color:#ffffff4d;font-family:monospace;font-size:.8rem}.ticket-body{padding:24px 20px 16px;text-align:center}.ride-title{font-size:1.6rem;line-height:1.1;font-weight:800;color:#1a1b2e;margin-bottom:8px}.ride-location{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.park-tag,.land-tag{font-size:.75rem;font-weight:600;padding:4px 8px;border-radius:4px;text-transform:uppercase}.park-tag{background:#e0e2ff;color:#3d428a}.land-tag{background:#f0f0f5;color:#666}.ticket-divider{position:relative;height:20px;display:flex;align-items:center;justify-content:center;margin:0 10px}.dashed-line{width:100%;height:1px;border-top:2px dashed #ddd}.notch-left,.notch-right{position:absolute;width:20px;height:20px;background:var(--c-bg-dark);border-radius:50%;top:0}.notch-left{left:-20px}.notch-right{right:-20px}.ticket-footer{padding:12px 24px 24px;display:flex;justify-content:space-between;align-items:center}.wait-time-container{display:flex;flex-direction:column}.wait-label{font-size:.65rem;color:#888;font-weight:700;letter-spacing:.05em}.wait-value{font-size:2.8rem;font-weight:900;background:linear-gradient(180deg,#d4af37,#a67c00);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:#b8860b;line-height:.9;letter-spacing:-.05em;filter:drop-shadow(0 2px 4px rgba(166,124,0,.2))}.wait-value small{font-size:1rem;font-weight:700;vertical-align:baseline;margin-left:4px;color:#666;text-transform:uppercase}.ticket-actions{display:flex;gap:12px;align-items:center}.action-icon-btn,.play-btn{width:44px;height:44px;border-radius:50%;border:2px solid #eee;background:transparent;font-size:1.5rem;color:#1a1b2e;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.play-btn{background:#2e7d32;border-color:#2e7d32;color:#fff;padding-left:4px}.play-btn.active{background:#f4eda2;border-color:#d4af37;color:#3e2c00;padding-left:0}.action-icon-btn:hover{background:#f5f5f5;border-color:#ddd}.play-btn:hover{transform:scale(1.05)}.timer-active{font-family:Roboto Mono,monospace;letter-spacing:-2px}.app-footer{text-align:center;padding:var(--gap-md);color:#fff3;font-size:.75rem;display:flex;flex-direction:column;gap:4px;margin-top:auto}.app-footer a{color:inherit;text-decoration:none;transition:color .2s}.app-footer a:hover{color:var(--c-primary)}.status-message{border-radius:8px;padding:10px 16px;font-size:.9rem;margin-top:1rem}.status-message.error{background:#ff6b6b26;color:#ff6b6b;border:1px solid rgba(255,107,107,.3)}.mickey-wheel{position:relative;width:100%;max-width:320px;padding-top:3rem;margin:0 auto}.mickey-ear{position:absolute;width:36%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 38%,#1a1b2e,#0f1020);border:2px solid rgba(255,215,0,.2);box-shadow:inset 0 0 20px #00000080,0 4px 12px #00000080;z-index:1;top:-10%}.mickey-ear:after{content:"";position:absolute;top:14%;left:18%;width:32%;height:22%;background:radial-gradient(ellipse,rgba(255,255,255,.05) 0%,transparent 70%);border-radius:50%}.mickey-ear-left{left:4%}.mickey-ear-right{right:4%}.wheel-container{position:relative;width:100%;aspect-ratio:1;z-index:2}.wheel-canvas{display:block;width:100%;height:100%;border-radius:50%;filter:drop-shadow(0 10px 30px rgba(0,0,0,.5))}.wheel-pointer{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:28px solid var(--c-primary);filter:drop-shadow(0 4px 6px rgba(0,0,0,.4));z-index:10}.app-content.has-result .wheel-section{transform:scale(.7) translateY(-20px)}.app-content.has-result .action-section{display:none}@media(min-width:380px){.mickey-wheel{max-width:380px}}@media(min-width:600px){.mickey-wheel{max-width:420px}.app-content.has-result .wheel-section{transform:scale(.8) translateY(-40px)}}@media(min-width:900px){.mickey-wheel{max-width:480px}.app-content{justify-content:center;padding-bottom:4rem}.app-content.has-result .wheel-section{transform:scale(.9) translateY(-60px)}}.result-section{width:100%;display:none;flex-direction:column;align-items:center;justify-content:center;margin-top:-40px;margin-bottom:40px;z-index:20;opacity:0;transform:translateY(50px);transition:all .5s var(--ease-spring)}.result-section.visible{display:flex;opacity:1;transform:translateY(0)}.ticket-card{background:#fff;color:#1a1b2e;width:90%;max-width:400px;border-radius:16px;overflow:hidden;box-shadow:0 25px 50px -12px #0006,0 10px 15px -3px #0000001a;position:relative}.ticket-card .ride-title,.ticket-card .wait-value{color:#1a1b2e}.ticket-card .ticket-id{color:#0006}.ticket-card .ticket-header{background:#1a1b2e}@media(max-height:700px)and (min-width:769px){.app-content.has-result .wheel-section{margin-top:0;transform:scale(.65) translateY(-20px)}.result-section{margin-top:-60px}}@media(max-width:768px){.result-section{position:fixed!important;inset:0;margin:0!important;padding:var(--gap-md);z-index:100;display:flex!important;flex-direction:column;align-items:center;justify-content:center;background:#0000;opacity:1!important;transform:none!important;visibility:hidden;pointer-events:none;transition:background .35s ease,visibility 0s linear .4s}.result-section.visible{background:#00000080;visibility:visible;pointer-events:auto;opacity:1!important;transform:none!important;transition:background .35s ease,visibility 0s linear 0s}.result-section .ticket-card{transform:translateY(40px);opacity:0;transition:transform .4s var(--ease-spring),opacity .3s ease;width:90%;max-width:400px;border-radius:16px}.result-section.visible .ticket-card{transform:translateY(0);opacity:1}.app-content.has-result .wheel-section{transform:scale(.95);margin-top:4rem}.app-content.has-result .action-section{display:flex}}
