.stage-controller{text-align:center;padding:2rem}.stage-controller h2{font-family:var(--font-display);color:var(--color-gold);margin-bottom:1rem}.entrance-stage{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at center,var(--color-maroon) 0%,var(--color-black) 100%)}.entrance-content{position:relative;z-index:2;text-align:center;padding:2rem;max-width:600px}.temple-gate{margin-bottom:3rem}.temple-title{font-family:var(--font-display);font-size:clamp(3rem,8vw,5rem);color:var(--color-gold);text-shadow:0 0 20px rgba(212,175,55,.5),0 0 40px rgba(212,175,55,.3),2px 2px 4px rgba(0,0,0,.8);letter-spacing:.1em;margin-bottom:.5rem;animation:titleGlow 3s ease-in-out infinite}@keyframes titleGlow{0%,to{text-shadow:0 0 20px rgba(212,175,55,.5),0 0 40px rgba(212,175,55,.3),2px 2px 4px rgba(0,0,0,.8)}50%{text-shadow:0 0 30px rgba(212,175,55,.7),0 0 60px rgba(212,175,55,.5),2px 2px 4px rgba(0,0,0,.8)}}.temple-subtitle{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.5rem);color:var(--color-cream);letter-spacing:.2em;opacity:.9;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.entrance-prompt{font-family:var(--font-body);font-size:clamp(1rem,2vw,1.25rem);color:var(--color-cream);line-height:1.8;margin-bottom:3rem;opacity:.95;text-shadow:1px 1px 2px rgba(0,0,0,.8);font-style:italic}.enter-button{font-family:var(--font-display);font-size:clamp(1rem,2vw,1.25rem);color:var(--color-gold);background:transparent;border:2px solid var(--color-gold);padding:1rem 3rem;letter-spacing:.15em;cursor:pointer;position:relative;overflow:hidden;transition:all .3s ease;text-transform:uppercase;box-shadow:0 0 10px #d4af374d,inset 0 0 10px #d4af371a}.enter-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#d4af3733;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.enter-button:hover:before{width:300px;height:300px}.enter-button:hover{box-shadow:0 0 20px #d4af3780,inset 0 0 20px #d4af3733}.enter-button:active{transform:scale(.95)}.smoke-effect{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 20% 50%,rgba(212,175,55,.05) 0%,transparent 50%),radial-gradient(ellipse at 80% 50%,rgba(212,175,55,.05) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(245,230,211,.03) 0%,transparent 40%);animation:smokeFloat 8s ease-in-out infinite}@keyframes smokeFloat{0%,to{opacity:.6;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-20px) scale(1.05)}}@media(max-width:768px){.entrance-content{padding:1.5rem}.temple-gate,.entrance-prompt{margin-bottom:2rem}.enter-button{padding:.875rem 2rem}}@media(max-width:480px){.entrance-content{padding:1rem}.temple-gate,.entrance-prompt{margin-bottom:1.5rem}.enter-button{padding:.75rem 1.5rem;font-size:.875rem}}.shaking-stage{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#2a0000 0%,var(--color-maroon) 50%,#2a0000 100%)}.shaking-content{text-align:center;padding:2rem}.shaking-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);color:var(--color-gold);margin-bottom:1rem}.shaking-prompt{font-size:clamp(1rem,2vw,1.3rem);color:var(--color-cream);margin-bottom:3rem;opacity:.9}.cylinder-container{width:min(300px,60vw);height:min(400px,70vw);margin:0 auto 2rem;cursor:pointer}.bamboo-cylinder{width:100%;height:100%;position:relative;display:flex;flex-direction:column;align-items:center}.cylinder-top,.cylinder-bottom{width:70%;height:20px;background:linear-gradient(90deg,#5a4a3a,#8b7355,#5a4a3a);border-radius:4px;border:2px solid #3a2a1a}.cylinder-body{flex:1;width:80%;background:linear-gradient(90deg,#6b5a4a,#9b8365 30%,#8b7355 70%,#5a4a3a);border-left:3px solid #4a3a2a;border-right:3px solid #4a3a2a;display:flex;flex-direction:column;gap:2px;overflow:hidden}.bamboo-segment{flex:1;background:#8b73554d;border-bottom:1px solid rgba(58,42,26,.3)}.desktop-hint{font-size:.9rem;color:var(--color-cream);opacity:.5;margin-top:1rem;font-style:italic}.validation-stage{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--color-maroon) 0%,#2a0000 100%)}.validation-content{text-align:center;padding:2rem;max-width:600px}.validation-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);color:var(--color-gold);margin-bottom:2rem}.fallen-stick{width:min(200px,50vw);height:min(300px,60vw);margin:0 auto 2rem;background:linear-gradient(90deg,#8b7355,#a08060,#8b7355);border-radius:8px;border:3px solid var(--color-gold);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 10px 30px #00000080}.stick-title{font-size:clamp(.8rem,2vw,1rem);color:var(--color-cream);text-align:center;padding:0 1rem}.validation-prompt{font-size:clamp(1rem,2vw,1.2rem);color:var(--color-cream);margin-bottom:2rem;opacity:.9}.result-message{font-size:clamp(1rem,2vw,1.3rem);color:var(--color-gold);margin-bottom:1.5rem;padding:1rem;border:1px solid var(--color-gold);border-radius:4px;background:#d4af371a}.bowl-container{position:relative;width:min(250px,60vw);height:250px;margin:0 auto 3rem;cursor:pointer;perspective:1000px;display:flex;align-items:center;justify-content:center}.bowl-pair{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;transform-style:preserve-3d}.bowl-poe{width:min(100px,25vw);height:min(100px,25vw);background:linear-gradient(135deg,#c41e3a,#8b0000);border-radius:50%;border:4px solid var(--color-gold);box-shadow:0 8px 20px #0006,inset 0 -10px 20px #0000004d,inset 0 5px 10px #fff3;position:relative}.bowl-poe:before{content:"";position:absolute;top:10%;left:10%;width:30%;height:30%;background:linear-gradient(135deg,rgba(255,255,255,.3) 0%,transparent 100%);border-radius:50%}.bowl-poe-left{z-index:2}.bowl-poe-right{z-index:1}.bowl-container:hover .bowl-poe{box-shadow:0 12px 25px #d4af374d,inset 0 -10px 20px #0000004d,inset 0 5px 10px #fff3}.tap-hint{font-size:clamp(1rem,2vw,1.2rem);color:var(--color-gold);opacity:.8;margin-top:1rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.bowl-container:focus-visible{outline:3px solid var(--color-gold);outline-offset:4px;border-radius:8px}.reveal-stage{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#1a0a0a 0%,var(--color-maroon) 100%);padding:2rem 1rem}.scroll-container{width:100%;max-width:600px;margin-bottom:2rem}.fortune-scroll{background:linear-gradient(135deg,#f5e6d3,#e8d4b8);border-radius:8px;border:4px solid var(--color-gold);box-shadow:0 10px 40px #00000080;transform-origin:top center;overflow:hidden}.scroll-top,.scroll-bottom{height:30px;background:linear-gradient(90deg,#8b7355 0%,var(--color-gold) 50%,#8b7355 100%);border:2px solid #5a4a3a}.scroll-content{padding:2rem;color:#2a1a1a}.fortune-header{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--color-gold)}.fortune-number{font-family:var(--font-display);font-size:clamp(1.2rem,3vw,1.5rem);color:var(--color-maroon);margin-bottom:.5rem}.fortune-title{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.5rem);color:#2a1a1a;margin-bottom:.5rem}.fortune-grade{font-family:var(--font-display);font-size:clamp(1rem,2vw,1.3rem);font-weight:600}.fortune-verse{text-align:center;margin-bottom:2rem;padding:1.5rem;background:#d4af3733;border-radius:4px;border-left:3px solid var(--color-gold)}.verse-text{font-size:clamp(1rem,2vw,1.2rem);line-height:1.8;font-style:italic}.fortune-interpretation{margin-bottom:2rem}.fortune-interpretation h3{font-family:var(--font-display);font-size:1.5rem;color:var(--color-maroon);margin-bottom:1rem;text-align:center}.interpretation-item{margin-bottom:1.5rem;padding-left:1rem;border-left:2px solid var(--color-gold)}.interpretation-label{font-weight:600;color:var(--color-maroon);display:block;margin-bottom:.3rem}.interpretation-item p{font-size:1rem;line-height:1.6;margin:0}.lucky-elements{text-align:center}.lucky-elements h3{font-family:var(--font-display);font-size:1.5rem;color:var(--color-maroon);margin-bottom:1rem}.lucky-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.lucky-item{display:flex;flex-direction:column;padding:1rem;background:#d4af3726;border-radius:4px;border:1px solid var(--color-gold)}.lucky-label{font-size:.85rem;color:var(--color-maroon);margin-bottom:.3rem}.lucky-value{font-family:var(--font-display);font-size:1.5rem;color:#2a1a1a;font-weight:600}.share-button{font-family:var(--font-display);font-size:1.2rem;padding:1rem 3rem;background:linear-gradient(135deg,var(--color-gold) 0%,#b8962e 100%);color:var(--color-maroon);border:2px solid var(--color-gold);border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.1em}@media(max-width:480px){.lucky-grid{grid-template-columns:1fr}.scroll-content{padding:1.5rem 1rem}}.share-stage{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--color-maroon) 0%,#1a0a0a 100%)}.share-content{text-align:center;padding:2rem;max-width:800px}.share-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);color:var(--color-gold);margin-bottom:1rem}.share-prompt{font-size:clamp(1rem,2vw,1.3rem);color:var(--color-cream);margin-bottom:2rem;opacity:.9}.card-preview{display:flex;justify-content:center;margin-bottom:2rem}.capture-container{position:absolute;top:0;left:0;width:360px;height:640px;z-index:-1;opacity:1;visibility:visible;overflow:visible;pointer-events:none}.capture-container .fortune-card{transform:none!important;box-shadow:none!important}.share-actions{display:flex;flex-direction:column;gap:1rem;align-items:center}@media(min-width:480px){.share-actions{flex-direction:row;justify-content:center}}.save-button,.restart-button{font-family:var(--font-display);font-size:1.1rem;padding:1rem 2rem;border:2px solid var(--color-gold);border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.1em;transition:all .3s ease}.save-button{background:linear-gradient(135deg,var(--color-gold) 0%,#b8962e 100%);color:var(--color-maroon)}.save-button:disabled{opacity:.6;cursor:not-allowed}.restart-button{background:transparent;color:var(--color-gold)}.fortune-card{width:360px;height:640px;background-color:maroon;background:linear-gradient(135deg,maroon,#5a0000);border:8px solid #D4AF37;border-radius:8px;padding:2rem;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#f5e6d3}.fortune-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.05'/%3E%3C/svg%3E");pointer-events:none}.card-header{text-align:center;margin-bottom:1rem;border-bottom:2px solid #D4AF37;padding-bottom:1rem}.card-traditional{font-size:1rem;color:#d4af37;margin-bottom:.3rem}.card-title{font-family:Cinzel,serif;font-size:1.5rem;color:#f5e6d3}.card-number{font-family:Cinzel,serif;font-size:2.5rem;color:#d4af37;text-align:center;margin-bottom:.5rem}.card-fortune-title{font-family:Cinzel,serif;font-size:1.3rem;color:#f5e6d3;text-align:center;margin-bottom:.5rem;line-height:1.3}.card-grade{font-family:Cinzel,serif;font-size:1rem;color:#d4af37;text-align:center;margin-bottom:1.5rem;padding:.5rem;background:#d4af371a;border-radius:4px}.card-verse{flex:1;display:flex;flex-direction:column;justify-content:center;margin-bottom:1.5rem}.card-verse p{font-size:.95rem;color:#f5e6d3;text-align:center;line-height:1.8;margin:0;font-style:italic}.card-lucky{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.card-lucky-item{text-align:center;padding:.5rem;background:#d4af3726;border-radius:4px;border:1px solid rgba(212,175,55,.3)}.card-lucky-item span{font-family:Cinzel,serif;font-size:.8rem;color:#d4af37}.card-footer{text-align:center;padding-top:1rem;border-top:1px solid rgba(212,175,55,.3)}.card-date{font-size:.8rem;color:#d4af37;opacity:.7}:root{color-scheme:dark;--color-maroon: #800000;--color-gold: #D4AF37;--color-cream: #F5E6D3;--color-black: #1a1a1a;--font-display: "Cinzel", serif;--font-body: "Cormorant Garamond", serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background-color:var(--color-black);color:var(--color-cream);line-height:1.6}#root{min-height:100vh;display:flex;flex-direction:column}.App{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;position:relative}.app:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}h1{font-family:var(--font-display);color:var(--color-gold);font-size:clamp(2rem,5vw,4rem);text-align:center;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.5)}@media(max-width:768px){.App{padding:1rem}.app:before{opacity:.02}}@media(max-width:480px){.App{padding:.5rem}.app:before{opacity:.015}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}
