.ritual-steps{display:flex;justify-content:center;gap:23px;list-style:none;padding:0;margin:1px 0 5px;color:#b7a995;font:11px system-ui,sans-serif;letter-spacing:1px}.ritual-steps li{padding:7px 0;border-bottom:2px solid transparent}.ritual-steps .active{color:#a83229;border-bottom-color:#a83229}.ritual-steps .finished{color:#977d4d}.shrine{height:400px;overflow:visible}.table-edge{bottom:30px}.altar{bottom:35px}.incense-sticks,.smoke{opacity:0}.incense-lit .incense-sticks,.incense-lit .smoke{opacity:1}.incense{cursor:pointer;z-index:6}.incense.inviting:after{content:"插香于此 ↓";position:absolute;white-space:nowrap;left:50%;bottom:-19px;transform:translateX(-50%);font:10px system-ui,sans-serif;color:#a83229}.incense.inviting .burner{box-shadow:0 0 0 7px #d9b66a40,0 0 25px #e1bb7250}.incense-bundle{position:absolute;bottom:64px;left:65px;width:90px;height:72px;z-index:8;border:0;background:none;padding:0;touch-action:none;cursor:grab;color:#987948}.bundle-art{display:flex;gap:9px;justify-content:center;transform:rotate(-65deg);height:64px;pointer-events:none}.bundle-art i{display:block;width:3px;height:64px;background:linear-gradient(#b14a34 6px,#b99359 6px,#d7b479 70%,#a86b37);box-shadow:1px 1px 2px #69502a30}.bundle-label{font:10px system-ui,sans-serif;white-space:nowrap;position:absolute;bottom:-12px;left:6px}.incense-bundle.carried{position:fixed;left:calc(50% - 35px);top:45%;bottom:auto;width:70px;height:85px;cursor:grabbing;filter:drop-shadow(0 8px 8px #54352126);z-index:20}.incense-bundle.carried .bundle-art{transform:rotate(0deg);height:80px}.incense-bundle.carried .bundle-art i{height:80px;background:linear-gradient(#ff9a52 3px,#b94325 7px,#b99359 7px,#d7b479)}.incense-bundle.carried .bundle-label{display:none}.incense-bundle.offered{display:none}.offering-incense .incense-sticks{animation:insert-incense .85s ease-out}.jar{touch-action:none;cursor:grab}.jar[aria-disabled="true"]{cursor:default}.jar.available .jar-body{outline:2px dashed #ba945b;outline-offset:6px}.jar.available:after{content:"点我拿起 ↑";position:absolute;white-space:nowrap;font:10px system-ui,sans-serif;color:#987948;left:31px;bottom:-29px}.jar-area:has(.available) .jar-caption{opacity:0}.holding-jar .god{opacity:.22;transition:opacity .3s}.holding-jar .halo{background:radial-gradient(circle,#e9cf9380,transparent 68%)}.holding-jar .jar:not(.held){opacity:.4}.jar.held{position:absolute;left:auto;right:auto;top:0;bottom:auto;z-index:12;width:135px;height:154px;transform:rotate(var(--tilt,0deg)) scale(1.42);transform-origin:50% 80%;transition:transform .14s ease-out;cursor:grab;filter:drop-shadow(0 14px 14px #4e33222b)}.red-area:has(.held){left:calc(50% - 67px);top:111px;z-index:12}.blue-area:has(.held){right:auto;left:calc(50% - 67px);top:111px;z-index:12}.jar-area:has(.held) .jar-caption{display:none}.jar.held:active{cursor:grabbing}.held-shadow{display:none;position:absolute;left:50%;top:286px;width:155px;height:20px;transform:translateX(-50%);border-radius:50%;background:#7b57361a;filter:blur(4px)}.holding-jar .held-shadow{display:block}.jar.held.pulse{animation:hand-shake .23s ease-in-out}.gesture-guide{position:absolute;left:50%;bottom:0;transform:translateX(-50%);text-align:center;z-index:15;width:290px;font:11px system-ui,sans-serif;color:#875d39;pointer-events:none}.gesture-guide[hidden]{display:none}.gesture-guide>span{background:#fff7e9e8;padding:5px 12px;border-radius:20px}.shake-track{height:4px;width:155px;margin:10px auto 5px;border-radius:8px;background:#e7dac4;overflow:hidden}.shake-track span{display:block;width:0;height:100%;background:#ac392d;transition:width .15s}.gesture-guide small{font-size:9px;color:#9b876c}.falling-stick{position:absolute;display:none;left:calc(50% + 35px);top:60px;width:35px;height:161px;border-radius:6px 6px 3px 3px;background:linear-gradient(90deg,#d4ac6e,#f6e1b4 45%,#e1bb80);border:1px solid #b1874e;text-align:center;color:#9c342a;z-index:14;box-shadow:4px 6px 10px #5b382e20;padding-top:15px;pointer-events:none}.falling-stick>span{font-size:16px;writing-mode:vertical-rl;letter-spacing:4px;display:block;margin:0 auto 10px}.falling-stick strong{font:23px Georgia,serif}.falling-stick.blue{color:#356785}.falling-stick.falling{display:block;animation:one-stick 1s ease-in-out both}.number.collected.red{background:#af392f;color:#fff3d8;border-color:#af392f;box-shadow:inset 0 0 0 3px #ffffff14}.number.collected.blue{background:#386d8a;color:#f8f5e8;border-color:#386d8a;box-shadow:inset 0 0 0 3px #ffffff14}#collection-count{font:10px Georgia,serif;color:#ad9470;margin-left:7px}.draw-panel{margin-top:22px}.intro{padding-top:24px;padding-bottom:14px}.draw-button{font-family:system-ui,sans-serif!important;letter-spacing:1px!important}.hint{line-height:1.6;min-height:16px}@keyframes one-stick{0%{opacity:0;transform:translate(-20px,80px) rotate(-8deg)}35%{opacity:1;transform:translate(-5px,-35px) rotate(8deg)}65%{opacity:1;transform:translate(55px,35px) rotate(24deg)}100%{opacity:1;transform:translate(55px,100px) rotate(16deg)}}@keyframes hand-shake{0%,100%{transform:rotate(0) scale(1.42)}25%{transform:rotate(-13deg) scale(1.42)}75%{transform:rotate(13deg) scale(1.42)}}@keyframes insert-incense{from{transform:translateY(-80px);opacity:0}to{transform:none;opacity:1}}@media(max-width:680px){.ritual-steps{gap:14px;font-size:9px;letter-spacing:0;margin-bottom:0}.shrine{height:370px}.incense-bundle{left:5px;bottom:52px;transform:scale(.8)}.incense-bundle.carried{transform:none}.jar.held{transform:rotate(var(--tilt,0deg)) scale(1.24)}.red-area:has(.held),.blue-area:has(.held){top:112px;left:calc(50% - 67px);width:135px}.altar{bottom:50px}.table-edge{bottom:42px}.gesture-guide{bottom:2px;width:280px;font-size:10px}.draw-panel{margin-top:17px}.jar.available:after{bottom:-29px;left:27px;font-size:11px}.jar-area{top:170px}.falling-stick{height:140px;width:31px}.jar.held.pulse{animation-name:hand-shake-mobile}.intro{padding-top:24px}.held-shadow{top:275px}}@keyframes hand-shake-mobile{0%,100%{transform:rotate(0) scale(1.24)}25%{transform:rotate(-13deg) scale(1.24)}75%{transform:rotate(13deg) scale(1.24)}}@media(prefers-reduced-motion:reduce){.falling-stick.falling{transform:translate(45px,100px)}.jar.held{transition:none}}
.shrine .smoke{display:none}.shrine.incense-lit .smoke{display:block}
.draw-button[hidden]{display:none}
.instruction-banner{max-width:640px;margin:14px auto 10px;padding:11px 16px;text-align:center;border:1px solid #d8bc855c;background:#eee0c43d;border-radius:9px;color:#963a2c;font:500 14px/1.6 system-ui,sans-serif;letter-spacing:.5px}
.god.god-portrait{width:auto;object-fit:contain;border:3px solid #bf9349;border-radius:5px;background:#ffc300;box-shadow:0 0 0 3px #efe1c0,0 7px 18px #81552c20;user-select:none;pointer-events:none}
.shrine.incense-lit .smoke{display:none}
.incense-smoke{display:none;position:absolute;bottom:83px;left:50%;width:110px;height:160px;transform:translateX(-50%);overflow:visible;pointer-events:none;z-index:9;filter:blur(.45px)}
.incense-lit .incense-smoke{display:block}
.incense-smoke path{stroke-width:3.5;stroke-dasharray:145 90;animation:smoke-rise 4.5s linear infinite;transform-origin:55px 156px}
.incense-smoke path:nth-child(2){stroke-width:4.5;animation-delay:-1.5s;animation-duration:5.3s}
.incense-smoke path:nth-child(3){stroke-width:2.8;animation-delay:-3s;animation-duration:4.8s}
.offering-incense .incense-sticks{opacity:1}
.incense-lit .incense-sticks i{position:relative}
.incense-lit .incense-sticks i:after{content:"";position:absolute;top:0;left:-1px;width:4px;height:4px;border-radius:50%;background:#f59a58;box-shadow:0 0 6px 2px #ee754a80}
@keyframes smoke-rise{0%{stroke-dashoffset:0;transform:translateY(3px) skewX(-3deg);opacity:.25}30%{opacity:.85}70%{opacity:.7}100%{stroke-dashoffset:-235;transform:translateY(-12px) skewX(5deg);opacity:.25}}
@media(prefers-reduced-motion:reduce){.incense-smoke path{stroke-dasharray:none;opacity:.7}}
.shrine.holding-jar{height:600px}
.holding-jar .god{opacity:1}
.holding-jar .altar{bottom:235px}
.holding-jar .table-edge{bottom:230px}
.holding-jar .red-area:has(.held),.holding-jar .blue-area:has(.held){top:410px}
.holding-jar .jar.held{transform:rotate(var(--tilt,0deg)) scale(1.08)}
.holding-jar .held-shadow{top:570px}
.holding-jar .falling-stick{top:360px}
.holding-jar .gesture-guide{bottom:0}
.holding-jar .jar.held.pulse{animation-name:foreground-shake}
@keyframes foreground-shake{0%,100%{transform:rotate(0) scale(1.08)}25%{transform:rotate(-13deg) scale(1.08)}75%{transform:rotate(13deg) scale(1.08)}}
@media(max-width:680px){.shrine.holding-jar{height:570px}.holding-jar .altar{bottom:250px}.holding-jar .table-edge{bottom:242px}.holding-jar .red-area:has(.held),.holding-jar .blue-area:has(.held){top:375px}.holding-jar .held-shadow{top:537px}.holding-jar .falling-stick{top:330px}}
@media(max-width:680px){
  main{padding:0 16px;min-width:0}
  .intro{padding-top:22px}
  h1{font-size:clamp(24px,6.5vw,31px);letter-spacing:0;white-space:nowrap}
  .intro p{font-size:11px;line-height:1.8;letter-spacing:0}
  .ritual-steps{gap:clamp(8px,3vw,17px);font-size:9px;flex-wrap:wrap}
  .instruction-banner{font-size:13px;padding:9px 8px;margin-top:12px}
  .shrine{height:415px;width:100%;max-width:440px}
  .shrine .god.god-portrait{height:270px;width:auto;max-width:calc(100% - 170px);object-fit:contain;top:10px}
  .shrine .halo{top:10px;width:245px;height:270px}
  .shrine .scene-top{top:2px;left:8px;right:8px;font-size:7px;letter-spacing:1px}
  .shrine .couplet{top:58px;font-size:12px;letter-spacing:7px}
  .shrine .couplet.left{left:0}
  .shrine .couplet.right{right:0}
  .shrine .jar-area{top:160px;width:108px}
  .shrine .red-area{left:0}
  .shrine .blue-area{right:0}
  .shrine .jar{width:135px;height:154px;left:-13.5px;transform:scale(.74);transform-origin:50% 100%}
  .shrine .jar-caption{display:block;font-size:10px;margin-top:12px;line-height:1.5}
  .shrine .jar-caption i{display:inline-block;margin-right:4px;vertical-align:middle}
  .shrine .jar-caption span{display:block;font-size:8px;margin:2px 0 0;white-space:nowrap}
  .shrine .jar.available:after{bottom:-26px;left:22px}
  .shrine .altar,.shrine.holding-jar .altar{top:310px;bottom:auto;width:220px;height:93px;transform:translateX(-50%) scale(.76);transform-origin:50% 100%}
  .shrine .table-edge,.shrine.holding-jar .table-edge{top:395px;bottom:auto;left:0;right:0}
  .shrine .incense-bundle{left:0;bottom:86px;transform:scale(.8)}
  .shrine .incense-bundle.carried{position:fixed;bottom:auto;transform:none}
  .shrine.holding-jar{height:630px}
  .shrine.holding-jar .red-area:has(.held),.shrine.holding-jar .blue-area:has(.held){left:calc(50% - 67.5px);right:auto;top:440px;width:135px}
  .shrine.holding-jar .jar.held{left:0;height:154px;transform:rotate(var(--tilt,0deg)) scale(1.08)}
  .shrine .jar-area:has(.held) .jar-caption{display:none}
  .shrine.holding-jar .held-shadow{top:600px}
  .shrine.holding-jar .falling-stick{top:390px}
  .shrine.holding-jar .gesture-guide{bottom:0}
  .draw-panel{margin-top:16px;padding:18px 14px}
  .numbers{gap:clamp(5px,1.9vw,9px)}
  .number{width:clamp(30px,9vw,40px);height:clamp(30px,9vw,40px);font-size:17px}
  .actions button{min-height:46px;height:auto;padding-top:12px;padding-bottom:12px;font-size:13px;letter-spacing:0}
  .hint{font-size:11px;line-height:1.7;margin-top:13px}
  .incense-smoke{filter:none}
}
@media(max-width:359px){.shrine .jar{transform:scale(.65)}.shrine .god.god-portrait{max-width:calc(100% - 155px)}.actions{flex-wrap:wrap}.actions .draw-button{flex-basis:100%}}
