/* Local geometry + compositor animation. No video, CDN, image API or audio. */
.iching-cast{padding:0 22px 22px;background:linear-gradient(150deg,#131e38,#090f23 65%,#182339);border-color:#806742;overflow:hidden;box-shadow:0 24px 80px #0004}
.iching-stage{height:330px;position:relative;isolation:isolate;margin:0 -22px;overflow:hidden;scroll-margin-top:14px;background:radial-gradient(ellipse at 50% 85%,#89704428,transparent 62%)}
.iching-stage-heading{position:absolute;inset:24px 24px auto;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#c7b18b;z-index:5}
.iching-stage-caption{font:13px/1.6 var(--serif);letter-spacing:.09em}
.iching-round{white-space:nowrap;font:italic 25px Georgia,serif;color:#ead4a4}
.iching-round i{font-size:12px;font-style:normal;color:#9d927e}
.iching-aura{position:absolute;width:380px;height:380px;left:50%;top:18px;transform:translateX(-50%);opacity:.35;background:radial-gradient(ellipse,#b5934938,transparent 62%);pointer-events:none}
.iching-orbit{position:absolute;left:50%;top:56%;width:240px;height:240px;transform:translate(-50%,-50%);opacity:.5}
.iching-orbit span{position:absolute;inset:0;border:1px solid #d8b87825;border-radius:50%;transform:rotate(-28deg) scaleY(.6)}
.iching-orbit span:nth-child(2){inset:16px;transform:rotate(36deg) scaleY(.68);border-style:dashed}
.iching-orbit span:nth-child(3){inset:-28px;transform:rotate(-62deg) scaleY(.65);border-color:#93c7dd16}
.iching-dais{position:absolute;left:50%;top:183px;width:310px;height:134px;transform:translateX(-50%);border:1px solid #d8b87860;border-radius:50%;background:radial-gradient(ellipse,#b3904a1c 5%,transparent 64%);box-shadow:inset 0 0 0 9px #0e18287a,inset 0 0 0 10px #d8b87830,0 14px 38px #0008}
.iching-dais:after{content:'';position:absolute;inset:18px;border:1px dashed #d8b87840;border-radius:50%}
.iching-coins{position:absolute;inset:173px 0 auto;height:110px;display:flex;gap:27px;justify-content:center;margin:0;perspective:850px;z-index:3}
.iching-coin{position:relative;display:block;width:78px;height:78px;flex:0 0 78px;border:0;border-radius:0;box-shadow:none;background:none!important;font:inherit;color:inherit!important;perspective:700px}
.coin-flight{position:absolute;inset:0;transform-style:preserve-3d;--drift:0px;--tilt:10deg}
.iching-coin:first-child .coin-flight{--drift:-27px;--tilt:-22deg}
.iching-coin:last-child .coin-flight{--drift:27px;--tilt:24deg}
.coin-core{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(var(--result-turn,0deg))}
.coin-face{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:2px solid #e9d098;background:conic-gradient(from 25deg,#b58b43,#fae6ae 16%,#bd944e 32%,#f4dc98 48%,#936a2d 65%,#f1d79a 85%,#b58b43);box-shadow:inset 0 0 0 3px #72501c,inset 0 0 0 5px #f9e3ae,inset 0 0 0 7px #ba924a,2px 3px 0 #74501e,3px 5px 0 #422d17,0 7px 18px #0008;transform:translateZ(2px);display:grid;place-items:center}
.coin-face:after{content:'';position:absolute;inset:9px;border:1px dashed #6f4c22a8;border-radius:50%}
.coin-face svg{width:62%;height:62%;fill:#6f4b20;filter:drop-shadow(0 1px 0 #fff3c9);overflow:visible}
.coin-face .coin-engraving{fill:none;stroke:#6f4b20;stroke-width:1.7;stroke-linecap:round}
.coin-face small{position:absolute;bottom:10px;font:9px var(--serif);color:#694821}
.coin-back{transform:rotateY(180deg) translateZ(2px);background:conic-gradient(from 55deg,#a67b38,#f9df9d,#97703a,#f6dda6,#bc9146,#a67b38)}
.coin-outcome{position:absolute;top:91px;left:-8px;right:-8px;text-align:center;font:12px/1.7 var(--serif);letter-spacing:.1em;color:#e5ce9d}
.coin-shadow{position:absolute;inset:66px 4px auto;height:18px;border-radius:50%;background:#0009;filter:blur(5px);transform:scaleX(1.1)}
.coin-trail{position:absolute;inset:25% 12% -70px;background:linear-gradient(#f8db9670,transparent);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);opacity:0;filter:blur(3px);transform:translateZ(-6px)}
.iching-shockwave{position:absolute;top:204px;left:50%;width:120px;height:60px;border:2px solid #ffe6a8;border-radius:50%;box-shadow:0 0 30px #ebcc8755;opacity:0;transform:translateX(-50%) scale(.2);z-index:2}
.iching-particles{position:absolute;left:50%;top:216px;width:1px;height:1px;pointer-events:none;z-index:4}
.iching-particles i{position:absolute;width:3px;height:3px;border-radius:50%;background:#f7dda1;box-shadow:0 0 8px #fff0b5;opacity:0}
.iching-action-zone{position:relative;padding-top:5px;z-index:6}
.iching-cast .iching-toss{margin:0;min-height:56px;letter-spacing:.12em;box-shadow:0 5px 25px #b18d4925;border:1px solid #efd29a;transition:box-shadow .2s,filter .2s}
.iching-cast .iching-toss:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 5px 34px #c9a35c45}
.iching-cast-status{margin:16px 0 20px;min-height:5.7em;font-size:13px;line-height:1.9;color:#c6c5c7}
.iching-ledger{padding:18px 0 8px;border-top:1px solid #d8b87838;border-bottom:1px solid #d8b87824}
.iching-ledger-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px;font:14px/1.8 var(--serif);color:#dcc69c}
.iching-progress{font:italic 17px Georgia,serif;white-space:nowrap}
.iching-cast-lines{margin:0;gap:7px}
.iching-cast-lines li{min-height:23px;font-size:11px;gap:12px}
.iching-drawn-line{box-shadow:0 0 12px #e5c78030;transform-origin:center}
.iching-line-state{font-size:10px;letter-spacing:.02em}
.iching-cast>.reading-limit{font-size:12px;margin:16px 0;line-height:1.9}
.iching-cast-cancel{font-size:13px}
.iching-completion{position:absolute;left:12px;right:12px;bottom:8px;text-align:center;letter-spacing:.18em;font:15px/1.5 var(--serif);color:#ffeac1;opacity:0;pointer-events:none;z-index:5}
.is-tossing .iching-coin{animation:none}
.is-tossing .coin-flight{animation:coin-flight 1.65s cubic-bezier(.22,.6,.4,1) both}
.is-tossing .coin-core{animation:coin-spin 1.65s cubic-bezier(.24,.5,.25,1) both}
.is-tossing .iching-coin:nth-child(2) .coin-flight,.is-tossing .iching-coin:nth-child(2) .coin-core{animation-delay:35ms}
.is-tossing .iching-coin:nth-child(3) .coin-flight,.is-tossing .iching-coin:nth-child(3) .coin-core{animation-delay:70ms}
.is-tossing .coin-shadow{animation:coin-shadow 1.65s ease both}
.is-tossing .coin-trail{animation:coin-trail 1.65s ease both}
.is-tossing .iching-orbit{animation:orbit-awaken 1.75s ease both}
.is-tossing .iching-aura{animation:aura-awaken 1.75s ease both}
.is-tossing .iching-shockwave{animation:landing-wave .48s 1.24s ease-out both}
.is-tossing .iching-particles i{animation:coin-spark .45s var(--delay) ease-out both}
.is-landed .is-new .iching-drawn-line{animation:line-inscribe .65s cubic-bezier(.1,.7,.2,1) both}
.is-landed .is-new .iching-line-state{animation:line-label .65s ease both}
.is-complete .iching-completion{opacity:1;animation:completion-title 1.2s ease both}
.is-complete .iching-aura{opacity:.8;animation:completion-aura 1.5s ease-out both}
.is-complete .iching-ledger{border-color:#d8b878aa;transition:border-color .8s}
@keyframes coin-flight{0%{transform:translate3d(0,0,0) rotateZ(0)}12%{transform:translate3d(0,8px,0) scale(.93)}43%{transform:translate3d(var(--drift),-83px,60px) rotateZ(var(--tilt)) scale(1.16)}62%{transform:translate3d(var(--drift),-66px,30px) rotateZ(var(--tilt))}82%{transform:translate3d(0,3px,0) rotateZ(-5deg)}91%{transform:translate3d(0,-12px,0) rotateZ(3deg)}100%{transform:translate3d(0,0,0) rotateZ(0)}}
@keyframes coin-spin{0%,12%{transform:rotateX(0) rotateY(0)}48%{transform:rotateX(240deg) rotateY(570deg)}82%{transform:rotateX(720deg) rotateY(calc(1080deg + var(--result-turn,0deg)))}100%{transform:rotateX(720deg) rotateY(calc(1080deg + var(--result-turn,0deg)))}}
@keyframes coin-shadow{0%,100%{opacity:1;transform:scaleX(1.1)}45%,60%{opacity:.22;transform:scale(.55)}82%{opacity:1;transform:scaleX(1.4)}}
@keyframes coin-trail{0%,15%,80%,100%{opacity:0}38%,55%{opacity:.6}}
@keyframes orbit-awaken{0%{opacity:.5;transform:translate(-50%,-50%) rotate(0)}45%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(1.12)}100%{opacity:.5;transform:translate(-50%,-50%) rotate(90deg)}}
@keyframes aura-awaken{0%,100%{opacity:.35}40%{opacity:1;transform:translateX(-50%) scale(1.25)}}
@keyframes landing-wave{0%{opacity:.9;transform:translateX(-50%) scale(.3)}100%{opacity:0;transform:translateX(-50%) scale(3.2)}}
@keyframes coin-spark{0%{opacity:0;transform:rotate(var(--angle)) translateX(5px) scale(1.7)}20%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateX(var(--distance)) scale(.15)}}
@keyframes line-inscribe{0%{transform:scaleX(.03);filter:brightness(2.5);box-shadow:0 0 25px #ffe4a8}100%{transform:scaleX(1);filter:brightness(1)}}
@keyframes line-label{0%{opacity:0;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}
@keyframes completion-title{0%{opacity:0;letter-spacing:.4em;transform:translateY(8px)}100%{opacity:1;letter-spacing:.18em;transform:translateY(0)}}
@keyframes completion-aura{0%{opacity:.35;transform:translateX(-50%) scale(.6)}55%{opacity:1}100%{opacity:.8;transform:translateX(-50%) scale(1.2)}}
body.iching-casting #appHomeLink{display:none!important}
@media(max-width:480px){.iching-stage{height:290px}.iching-stage-heading{inset:19px 18px auto}.iching-stage-caption{font-size:11px}.iching-coins{top:154px;gap:16px}.iching-coin{width:64px;height:64px;flex-basis:64px}.coin-outcome{top:77px}.coin-shadow{top:54px}.iching-dais{top:165px;width:265px;height:110px}.iching-shockwave{top:181px}.iching-particles{top:192px}.iching-completion{font-size:12px;bottom:6px}.coin-face small{bottom:8px;font-size:8px}.iching-stage .coin-face svg{width:57%;height:57%}}
@media(max-width:350px){.iching-cast{padding-left:16px;padding-right:16px}.iching-stage{margin:0 -16px}.iching-coins{gap:15px}.iching-coin{width:58px;height:58px;flex-basis:58px}.coin-outcome{top:72px}.iching-stage-caption{letter-spacing:0}.iching-cast-lines li{gap:8px}.iching-ledger-title{font-size:12px}}
@media(prefers-reduced-motion:reduce){.iching-cast *,.iching-cast *:before,.iching-cast *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.iching-completion{opacity:0}.is-complete .iching-completion{opacity:1}}
