:root{--paper-bg: #F0EDE5;--ink-dark: #31302C;--ink-mid: #7A766F;--ink-light: #C0BDB4;--stamp-red: #C46D5E;--green-hint: #809689;--btn-bg: #353330}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Songti SC,STSong,"Noto Serif CJK SC",serif;font-weight:400;background-color:var(--paper-bg);overflow:hidden;color:var(--ink-dark)}.hidden{display:none!important}.screen{position:fixed;inset:0}#screen-start{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:60px;background:var(--paper-bg);z-index:100}.p1-top-graphic{display:flex;flex-direction:column;align-items:center}.jade-array-container{width:220px;height:220px;position:relative;display:flex;align-items:center;justify-content:center}.jade-array-aura{width:220px;height:220px;border-radius:50%;box-shadow:inset 0 0 20px #b8a4881a,0 0 40px #b8a4880d;border:1px solid rgba(184,164,136,.2);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.jade-array-inner{width:120px;height:120px;border-radius:50%;border:1px dashed rgba(184,164,136,.25);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:spin-slow-2 30s linear infinite reverse}.jade-array-orbit{width:220px;height:220px;border-radius:50%;border:1px solid rgba(184,164,136,.15);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);animation:spin-slow-2 40s linear infinite}.jade-array-accent{position:absolute;width:3px;height:3px;background:#c4b090;border-radius:50%;opacity:.6}.jade-array-accent.top{top:-1.5px;left:50%;margin-left:-1.5px}.jade-array-accent.bottom{bottom:-1.5px;left:50%;margin-left:-1.5px}.jade-array-accent.left{left:-1.5px;top:50%;margin-top:-1.5px}.jade-array-accent.right{right:-1.5px;top:50%;margin-top:-1.5px}.jade-node{width:20px;height:20px;border-radius:50%;position:absolute;box-shadow:0 4px 8px #0000001a,inset 0 -3px 6px #0000004d,inset 0 1px 3px #fff6;transform:translate(-50%,-50%)}.jade-node:after{content:"";position:absolute;inset:-5px;border-radius:50%;filter:blur(5px);opacity:.25;z-index:-1}.j-water{top:calc(50% - 110px);left:50%;background:radial-gradient(circle at 35% 35%,#d4dbe0,#8a98a3,#434c54);animation:float-breath 5s ease-in-out infinite}.j-water:after{background:#8a98a3}.j-wood{top:calc(50% - 34px);left:calc(50% + 104.6px);background:radial-gradient(circle at 35% 35%,#d6e0d8,#8d9e92,#445148);animation:float-breath 5s ease-in-out infinite 1s}.j-wood:after{background:#8d9e92}.j-fire{top:calc(50% + 89px);left:calc(50% + 64.7px);background:radial-gradient(circle at 35% 35%,#e0d4d4,#a38c8c,#544545);animation:float-breath 5s ease-in-out infinite 2s}.j-fire:after{background:#a38c8c}.j-earth{top:calc(50% + 89px);left:calc(50% - 64.7px);background:radial-gradient(circle at 35% 35%,#e0dcd4,#a19a8a,#524c40);animation:float-breath 5s ease-in-out infinite 3s}.j-earth:after{background:#a19a8a}.j-metal{top:calc(50% - 34px);left:calc(50% - 104.6px);background:radial-gradient(circle at 35% 35%,#e2e2e2,#949494,#4a4a4a);animation:float-breath 5s ease-in-out infinite 4s}.j-metal:after{background:#949494}.jade-center{width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;color:#a19a8a}.jade-center svg{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.jade-center-glow{position:absolute;inset:-10px;border-radius:50%;background:#d1c0a5;filter:blur(10px);opacity:.15;z-index:-1;animation:pulse-glow 3s ease-in-out infinite}@keyframes spin-slow-2{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes float-breath{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-6px)}}@keyframes pulse-glow{0%,to{opacity:.15;transform:scale(.9)}50%{opacity:.3;transform:scale(1.1)}}.p1-bottom-content{display:flex;flex-direction:column;align-items:center;width:100%;padding:0 35px;box-sizing:border-box}.p1-title{font-size:32px;color:var(--ink-dark);margin:0 0 16px;letter-spacing:4px;font-weight:400}.p1-subtitle{font-size:11px;color:var(--ink-mid);margin-bottom:50px;letter-spacing:3px;font-family:-apple-system,sans-serif;white-space:nowrap;text-align:center}.btn-ink-solid{background:var(--btn-bg);color:#fff;border:none;padding:16px 0;width:100%;border-radius:4px;font-size:15px;letter-spacing:8px;font-family:Songti SC,serif;cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent}.btn-ink-solid:active{opacity:.8}.note-https{margin-top:15px;color:var(--stamp-red);font-size:12px;font-family:-apple-system,sans-serif;text-align:center}#screen-ar{z-index:10}.stage{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#111;z-index:1}#output-canvas{width:100vw;height:100vh;object-fit:cover}.p2-gradient-bg{position:absolute;bottom:0;left:0;width:100%;height:50%;background:linear-gradient(to bottom,transparent,rgba(160,158,150,.5));pointer-events:none;z-index:2}.p2-top-hint{position:absolute;top:max(30px,env(safe-area-inset-top));left:0;width:100%;text-align:center;font-size:13px;color:var(--paper-bg);letter-spacing:4px;z-index:3;text-shadow:0 1px 4px rgba(0,0,0,.5)}.bottom-panel{position:absolute;bottom:max(env(safe-area-inset-bottom,20px),50px);left:0;width:100%;text-align:center;z-index:10;display:flex;flex-direction:column;align-items:center;gap:12px;transition:all .3s ease}.bottom-panel.hidden{opacity:0;pointer-events:none}.step-title{font-size:13px;letter-spacing:4px;color:#ffffffbf;font-weight:400;text-shadow:0 2px 8px rgba(0,0,0,.8);margin-bottom:0}.step-action{font-size:16px;letter-spacing:2px;color:#fff;font-weight:400;text-shadow:0 2px 8px rgba(0,0,0,.9),0 0 4px rgba(0,0,0,.6);line-height:1.5}.gesture-icon{display:inline-block;width:32px;height:32px;vertical-align:middle;margin-right:4px;object-fit:contain}.hud__manual{pointer-events:auto;margin-top:8px;padding:6px 16px;border:none;border-radius:100px;background:#00000026;border:1px solid rgba(255,255,255,.2);color:#fff9;font-size:11px;letter-spacing:1px;cursor:pointer;font-family:-apple-system,sans-serif}.hud__manual.hidden{display:none}.result-overlay{position:absolute;bottom:0;width:100%;padding:0 30px max(env(safe-area-inset-bottom,20px),40px);display:flex;flex-direction:row;justify-content:center;gap:16px;opacity:0;pointer-events:none;transition:opacity .5s ease;z-index:15;background:linear-gradient(to top,rgba(0,0,0,.3) 0%,transparent 100%)}.result-overlay.active{opacity:1;pointer-events:auto}.result-status-text{font-size:12px;letter-spacing:4px;color:#ffffffd9;text-shadow:0 2px 4px rgba(0,0,0,.5);font-weight:400}.btn-primary{background:#31302c;color:#f0ede5;border:none;padding:14px 0;flex:1;max-width:160px;border-radius:4px;font-size:14px;letter-spacing:4px;font-weight:400;font-family:inherit;box-shadow:0 4px 16px #0000004d;transition:transform .2s;cursor:pointer;pointer-events:auto;text-align:center}.btn-primary:active{transform:scale(.96)}.btn-secondary{background:#f0ede5e6;color:#31302c;border:none;padding:14px 0;flex:1;max-width:160px;border-radius:4px;font-size:14px;letter-spacing:4px;font-weight:400;font-family:inherit;box-shadow:0 4px 16px #0000004d;transition:transform .2s;cursor:pointer;pointer-events:auto;text-align:center}.btn-secondary:active{transform:scale(.96)}.result-ethereal{position:absolute;top:32%;left:50%;transform:translate(-50%,-50%) scale(.9);display:flex;flex-direction:column;align-items:center;gap:4px;opacity:0;pointer-events:none;transition:all .6s cubic-bezier(.2,.8,.2,1);z-index:20;width:320px;padding:20px 0}.result-ethereal.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.ethereal-title{font-family:Songti SC,STSong,"Noto Serif CJK SC",serif;font-size:32px;letter-spacing:8px;color:#fff;text-shadow:0px 2px 4px rgba(0,0,0,.8),0px 4px 12px rgba(0,0,0,.6),0px 0px 2px rgba(0,0,0,.8);margin-left:8px;position:relative;font-weight:400}.stamp{position:absolute;right:-28px;top:-8px;border:1px solid var(--stamp-red);color:var(--stamp-red);font-family:-apple-system,sans-serif;font-size:9px;padding:2px 3px;transform:rotate(-15deg);letter-spacing:1px;background:#f5f0ebf2;border-radius:2px;text-shadow:none;box-shadow:0 2px 8px #0006;font-weight:400;line-height:1.2}.ethereal-stars{font-size:20px;color:gold;letter-spacing:2px;text-shadow:0px 2px 4px rgba(0,0,0,.8),0px 4px 12px rgba(0,0,0,.6),0px 0px 2px rgba(0,0,0,.8);margin-bottom:0;margin-top:0}.ethereal-tier{font-size:14px;font-weight:700;color:#ffc107;letter-spacing:4px;text-shadow:0px 2px 4px rgba(0,0,0,.8),0px 4px 12px rgba(0,0,0,.6),0px 0px 2px rgba(0,0,0,.8);margin-bottom:6px}.ethereal-desc{font-size:14px;color:#f5f0eb;letter-spacing:2px;line-height:1.4;text-shadow:0px 2px 4px rgba(0,0,0,.8),0px 4px 12px rgba(0,0,0,.6),0px 0px 2px rgba(0,0,0,.8);margin-left:2px;margin-top:0;font-weight:400;text-align:center}.freezeFlash{position:fixed;inset:0;z-index:50;pointer-events:none;background:#fff0}.freezeFlash.play{animation:flashPop .42s ease-out}@keyframes flashPop{0%{background:#fff0}22%{background:#fff}to{background:#fff0}}.poster{position:fixed;inset:0;z-index:60;background:var(--paper-bg);display:flex;flex-direction:column;align-items:center;justify-content:center}.poster__top{position:absolute;top:max(10px,env(safe-area-inset-top));width:100%;display:flex;justify-content:space-between;padding:0 20px;z-index:65}.poster__body{width:100%;height:100%;display:flex;justify-content:center;align-items:center;padding:60px 20px max(20px,env(safe-area-inset-bottom))}.poster__card{width:min(100%,400px);max-height:100%;box-shadow:0 10px 40px #0000001a;border-radius:12px;overflow:hidden}.poster__img{width:100%;display:block}.poster__hint{text-align:center;font-size:11px;color:var(--ink-mid);margin-top:15px;letter-spacing:1px;font-family:-apple-system,sans-serif}#gather-effect-layer{position:absolute;top:0;left:0;width:0;height:0;z-index:15;pointer-events:none}.gather-particle{position:absolute;width:16px;height:16px;margin-top:-8px;margin-left:-8px;background:radial-gradient(circle,rgba(255,250,210,1) 10%,rgba(255,225,130,.8) 30%,rgba(255,180,60,.4) 60%,transparent 80%);border-radius:50%;opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--s, 1));filter:blur(1px)}.gather-particle.gold{background:radial-gradient(circle,rgba(255,255,255,1) 10%,rgba(255,230,150,.9) 30%,rgba(255,160,40,.5) 60%,transparent 80%)}@keyframes particleSuckIn{0%{transform:translate(var(--dx),var(--dy)) scale(var(--s));opacity:0}15%{opacity:1}80%{opacity:.9}to{transform:translate(0) scale(.1);opacity:0}}.burst-flash{position:absolute;top:50%;left:50%;width:4px;height:4px;transform:translate(-50%,-50%);background:#fff;border-radius:50%;box-shadow:0 0 20px 10px #fff,0 0 80px 40px #64c8ffcc,0 0 200px 100px #0064ff80;opacity:0;pointer-events:none;z-index:18}.burst-flash.play{animation:burstFlashAnim .7s cubic-bezier(.1,.8,.2,1) forwards}@keyframes burstFlashAnim{0%{transform:translate(-50%,-50%) scale(1);opacity:0}10%{transform:translate(-50%,-50%) scale(60);opacity:1}30%{transform:translate(-50%,-50%) scale(100);opacity:.8}to{transform:translate(-50%,-50%) scale(120);opacity:0}}.camera-shake{animation:cameraShakeAnim .5s cubic-bezier(.36,.07,.19,.97) both}@keyframes cameraShakeAnim{0%,to{transform:translateZ(0)}10%,50%,90%{transform:translate3d(-12px,8px,0) scale(1.03)}30%,70%{transform:translate3d(12px,-8px,0) scale(1.03)}}.full-screen-flash{position:absolute;inset:0;background:#fff;opacity:0;z-index:17;pointer-events:none}.full-screen-flash.play{animation:fullScreenFlashAnim .8s ease-out forwards}@keyframes fullScreenFlashAnim{0%{opacity:0}5%{opacity:.85}15%{opacity:.3;background:#adf}to{opacity:0;background:#adf}}.lens-flare{position:absolute;top:50%;left:50%;width:100vw;height:4px;background:#fff;transform:translate(-50%,-50%) scaleX(0);box-shadow:0 0 20px 10px #64c8ffcc,0 0 50px 20px #0064ff80;opacity:0;pointer-events:none;z-index:19}.lens-flare.play{animation:lensFlareAnim .7s cubic-bezier(.1,.8,.2,1) forwards}@keyframes lensFlareAnim{0%{transform:translate(-50%,-50%) scaleX(0) scaleY(1);opacity:0}10%{transform:translate(-50%,-50%) scaleX(1) scaleY(5);opacity:1}30%{transform:translate(-50%,-50%) scaleX(1.5) scaleY(2);opacity:.8}to{transform:translate(-50%,-50%) scaleX(2) scaleY(0);opacity:0}}@media(max-width:360px){.p1-subtitle{font-size:9px!important;letter-spacing:1px!important}}
