@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Outfit:wght@300;400;600;800&family=Space+Mono:wght@400;700&display=swap";:root{--bg-page:#e8ecef;--text-main:#111;--c-purple:#6c589a;--c-orange:#e2943b;--c-red:#c53440;--c-green:#258f55;--dome-rim:#e2943b}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-page);width:100vw;min-height:100vh;color:var(--text-main);font-family:Outfit,sans-serif;overflow-x:hidden}.app-container{flex-direction:row;justify-content:center;align-items:center;gap:5vw;width:100%;max-width:1600px;height:100vh;margin:0 auto;padding:0 5%;display:flex;overflow:hidden}.left-hero-panel{flex-direction:column;flex:1;justify-content:center;max-width:320px;display:flex}.hero-brand{color:var(--c-red);margin-bottom:1.5rem;font-family:Playfair Display,serif;font-size:1.3rem;font-weight:700}.hero-headline{color:var(--text-main);margin-bottom:1rem;font-family:Playfair Display,serif;font-size:2.2rem;line-height:1.2}.hero-desc{color:#444;margin-bottom:1.5rem;font-size:.95rem;line-height:1.5}.hero-badge{color:#fff;background:#111;border-radius:4px;padding:.4rem .8rem;font-size:.75rem;font-weight:600;display:inline-block}.stats-box{border-left:4px solid var(--c-purple);background:#fff;border-radius:4px;margin-top:3rem;padding:1rem 1.5rem;box-shadow:0 5px 15px #0000000d}.stats-label{text-transform:uppercase;color:#777;letter-spacing:.05em;font-size:.8rem;font-weight:700}.stats-number{color:var(--text-main);margin-top:.2rem;font-family:Space Mono,monospace;font-size:2rem;font-weight:700}.machine-container{z-index:10;filter:drop-shadow(0 30px 40px #00000040);transform-origin:50%;flex-direction:column;flex:none;align-items:center;display:flex;position:relative;transform:scale(1.35)}@media (width<=1300px){.machine-container{transform:scale(1.15)}}@media (height<=900px) and (width>=1025px){.machine-container{transform:scale(1.1)}}@media (height<=800px) and (width>=1025px){.machine-container{transform:scale(.95)}}@media (height<=700px) and (width>=1025px){.machine-container{transform:scale(.8)}}.machine-dome-frame{background:radial-gradient(circle at 30% 30%, #ffd085, var(--dome-rim), #b36b22);z-index:5;border-radius:50%;justify-content:center;align-items:center;width:360px;height:360px;margin-bottom:-50px;display:flex;box-shadow:inset -5px -5px 15px #00000080,inset 5px 5px 15px #fff6,0 10px 20px #00000080}.machine-dome{background:radial-gradient(circle,#222,#000);border:4px solid #111;border-radius:50%;justify-content:center;align-items:center;width:300px;height:300px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 50px #000000e6}.machine-dome:after{content:"";pointer-events:none;z-index:20;background:linear-gradient(90deg,#ffffff26,#fff0);border-radius:50%;width:100px;height:160px;position:absolute;top:20px;left:25px;transform:rotate(35deg)}.hypno-wheel{background:repeating-conic-gradient(from 0deg, #111 0deg 20deg, var(--c-orange) 20deg 40deg);z-index:1;border:2px solid #000;border-radius:50%;width:140px;height:140px;margin:-70px 0 0 -70px;animation:20s linear infinite hypnoSpin;position:absolute;top:50%;left:50%;box-shadow:inset 0 0 15px #000000e6}.analyzing .hypno-wheel{animation:.5s linear infinite reverse hypnoSpin}@keyframes hypnoSpin{to{transform:rotate(360deg)}}.led-layer{width:100%;height:100%;position:absolute}.bulb{width:8px;height:8px;transform:translate(-50%, -50%) rotate(calc(var(--i) * (360deg / var(--count)))) translateY(calc(-1 * var(--dist)));box-shadow:0 0 5px var(--color);opacity:.3;animation:8s ease-in-out infinite idlePulse;animation-delay:calc((var(--i) / var(--count)) * 8s);border-radius:50%;position:absolute;top:50%;left:50%}.analyzing .bulb{animation:.7s linear infinite chaserSpin;animation-delay:calc((var(--i) / var(--count)) * .7s);opacity:.05}@keyframes idlePulse{0%,to{opacity:.3;filter:brightness()}50%{opacity:.7;filter:brightness(1.3)}}@keyframes chaserSpin{0%,to{opacity:.05;filter:brightness()drop-shadow(0 0 #0000)}15%{opacity:1;filter:brightness(2) drop-shadow(0 0 15px var(--color))}30%{opacity:.05;filter:brightness()drop-shadow(0 0 #0000)}}.machine-body{background:linear-gradient(to right, var(--c-purple) 0%, var(--c-purple) 25%, var(--c-orange) 25%, var(--c-orange) 50%, var(--c-red) 50%, var(--c-red) 75%, var(--c-green) 75%, var(--c-green) 100%);z-index:2;border-left:2px solid #222;border-right:2px solid #111;flex-direction:column;align-items:center;width:190px;height:420px;display:flex;position:relative;box-shadow:inset -15px 0 20px #0000004d,inset 15px 0 20px #ffffff1a,inset 0 10px 10px #0006}.machine-base{z-index:1;background:linear-gradient(#333,#111);border-top:4px solid #444;border-radius:2px;width:230px;height:40px;box-shadow:0 15px 25px #000c}.coin-plate{background:linear-gradient(135deg,#e0e0e0,#888);border:2px solid #555;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:60px;height:80px;margin-top:90px;margin-bottom:40px;display:flex;position:relative;box-shadow:0 5px 10px #00000080,inset 0 2px 5px #fff9}.coin-plate:before,.coin-plate:after{content:"";background:#333;border-radius:50%;width:4px;height:4px;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 0 1px 1px #ffffff80}.coin-plate:before{top:5px}.coin-plate:after{bottom:5px}.coin-slot-text{color:#222;letter-spacing:.5px;margin-bottom:6px;font-family:Space Mono,monospace;font-size:7px;font-weight:700}.coin-slot{background:#000;border:1px solid #777;border-radius:20px;width:8px;height:35px;box-shadow:inset 0 2px 5px #000,inset 0 0 2px #000}.ticket-dispenser{z-index:10;background:linear-gradient(#d4d4d4,#aaa);border:2px solid #666;border-radius:4px;justify-content:center;width:130px;height:40px;display:flex;position:relative;box-shadow:inset 0 -2px 5px #0003,0 5px 10px #0006}.ticket-slot{z-index:12;background:#000;border-radius:3px;width:100px;height:8px;margin-top:15px;box-shadow:inset 0 3px 6px #000}.ticket-chute{pointer-events:none;z-index:5;width:55px;height:160px;position:absolute;top:19px;left:50%;overflow:hidden;transform:translate(-50%)}.mini-ticket{z-index:4;background-color:#fffdf5;background-image:linear-gradient(135deg,#0000 4px,#fffdf5 4px),linear-gradient(225deg,#0000 4px,#fffdf5 4px);background-position:0 100%,100% 100%;background-repeat:no-repeat;background-size:50% 8px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:1px solid #999;border-bottom:none;justify-content:center;align-items:center;width:55px;height:120px;transition:transform 1.2s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;left:0;transform:translateY(-100%);box-shadow:0 5px 10px #0003}.ticket-ready .mini-ticket{transform:translateY(0)}.mini-ticket:after{content:"destiny.";color:#333;font-family:Playfair Display,serif;font-size:10px}.controls-panel{text-align:center;background:#fff;border-radius:16px;flex-direction:column;flex:1;justify-content:center;max-width:320px;padding:2rem;display:flex;position:relative;box-shadow:0 10px 40px #00000014}.panel-title{margin-bottom:.5rem;font-family:Playfair Display,serif;font-size:1.8rem;line-height:1.2}.panel-sub{color:#555;margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.btn{background:var(--text-main);color:#fff;cursor:pointer;border:none;border-radius:999px;width:100%;padding:.9rem;font-family:inherit;font-size:1.05rem;font-weight:600;transition:background .3s,transform .2s}.btn:hover{background:#333;transform:translateY(-2px)}.btn:disabled{cursor:not-allowed;background:#ccc;transform:none}@media (width<=1024px){.app-container{flex-direction:column;gap:4rem;height:auto;padding-top:5rem;padding-bottom:5rem;overflow-y:auto}.left-hero-panel{text-align:center;max-width:600px}.controls-panel{margin-bottom:4rem}.machine-container{transform:scale(1)}}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;opacity:0;pointer-events:none;background:#000000b3;justify-content:center;align-items:center;padding:1rem;transition:opacity .5s;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay.active{opacity:1;pointer-events:all}.reading-ticket-large{text-align:center;background:#fffdf5 radial-gradient(circle at 10px 0,#0000 10px,#fffdf5 11px) top/25px 20px repeat-x;border-top:1px dashed #ccc;border-radius:0 0 10px 10px;width:100%;max-width:440px;max-height:85vh;padding:2rem 1.5rem;transition:all .5s cubic-bezier(.16,1,.3,1);position:relative;overflow-y:auto;transform:translateY(50px)scale(.9);box-shadow:0 20px 50px #00000080}.modal-overlay.active .reading-ticket-large{transform:translateY(0)scale(1)}.ticket-header{letter-spacing:.1em;color:#555;text-transform:uppercase;border-bottom:1px solid #eee;margin-bottom:.5rem;padding-bottom:.5rem;font-family:Space Mono,monospace;font-size:.75rem}.ticket-user-meta{color:#888;text-transform:uppercase;margin-bottom:1.5rem;font-family:Space Mono,monospace;font-size:.7rem}.ticket-user-meta .highlight{color:var(--c-red);font-weight:700}.ticket-quote{margin-bottom:1.5rem;font-family:Playfair Display,serif;font-size:1.5rem;font-style:italic;font-weight:700;line-height:1.25}.ticket-forecast{text-align:left;background:#f4f3ea;border-radius:8px;margin-bottom:1.5rem;padding:1rem;font-family:Space Mono,monospace;font-size:.95rem;line-height:1.6}.close-btn{border:1px solid var(--text-main);color:var(--text-main);cursor:pointer;background:0 0;border-radius:999px;width:100%;padding:.8rem;font-family:inherit;font-size:1rem;font-weight:600}.close-btn:hover{background:var(--text-main);color:#fff}.user-indicator{background:#f8f9fa;border:1px solid #eee;border-radius:12px;flex-direction:column;align-items:center;gap:.8rem;margin-bottom:2rem;padding:1rem;display:flex}.user-handle-text{color:var(--c-red);font-family:Space Mono,monospace;font-size:1.1rem}.logout-btn{color:#888;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:6px;padding:.4rem .8rem;font-family:inherit;font-size:.75rem;transition:all .2s}.logout-btn:hover{color:var(--c-red);border-color:var(--c-red);background:#fff}.login-form{flex-direction:column;gap:1rem;display:flex}.handle-input{text-align:center;border:2px solid #eee;border-radius:999px;outline:none;width:100%;padding:1rem 1.5rem;font-family:inherit;font-size:1rem;transition:border-color .2s}.handle-input:focus{border-color:var(--c-purple)}
