/* Small, local effects: no animation library, canvas, or remote dependencies. */
.atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1;color:var(--accent,#c6af7d)}
.atmosphere i{position:absolute;left:12%;top:34%;width:2px;height:2px;border-radius:50%;background:currentColor;box-shadow:110px 70px 0 currentColor,170px 280px 0 currentColor,460px 120px 0 currentColor,630px 300px 0 currentColor,230px 470px 0 currentColor;opacity:.22;animation:atmosphere-drift 14s ease-in-out infinite alternate}
.atmosphere i:nth-child(2){left:55%;top:16%;animation-delay:-5s;opacity:.15}.atmosphere i:nth-child(3){width:38%;height:1px;left:58%;top:30%;background:linear-gradient(90deg,transparent,currentColor,transparent);box-shadow:none;opacity:.1;transform:rotate(-35deg);animation:light-trace 16s ease-in-out infinite alternate}
.crafted-tianji .atmosphere{color:#b18d51}.crafted-tianji .atmosphere i{opacity:.22}.crafted-tianji .atmosphere i:nth-child(3){top:65%;left:15%;width:70%;transform:none}
@keyframes atmosphere-drift{to{transform:translate3d(18px,-28px,0);opacity:.5}}@keyframes light-trace{to{translate:12px -20px;opacity:.28}}
.hero-collectible .collectible-foil{animation:foil-pass 12s ease-in-out infinite}.crafted-sanguo .hero-collectible{animation:hero-card-breathe 10s ease-in-out infinite alternate}
@keyframes foil-pass{0%,30%,100%{background-position:15% 50%;opacity:.16}60%{background-position:85% 50%;opacity:.36}}
@keyframes hero-card-breathe{to{transform:rotateY(5deg) rotateX(-2deg) translateY(-5px)}}
.motion-entry{opacity:.6;transform:translateY(20px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}.motion-entry.motion-seen{opacity:1;transform:none}
.crafted-sanguo .splash-copy>.eyebrow,.crafted-sanguo .portal-copy>.eyebrow,.crafted-tianji .tianji-title>.eyebrow,.game-splash-copy>.eyebrow{animation:hero-enter .65s ease-out both}
.crafted-sanguo .splash-copy>h1,.crafted-sanguo .portal-copy>h1,.crafted-tianji .title-and-seal,.game-splash-copy>h1{animation:hero-enter .7s .08s ease-out both}
.crafted-sanguo .play-actions,.crafted-tianji .play-actions,.game-splash .play-actions{animation:hero-enter .7s .16s ease-out both}
@keyframes hero-enter{from{translate:0 10px}to{translate:0 0}}
.button{position:relative;overflow:hidden;transition:background .25s,border-color .25s,box-shadow .25s,translate .25s}.button:after{content:'';position:absolute;inset:-60% auto -60% -40%;width:22%;background:linear-gradient(90deg,transparent,#ffffff26,transparent);transform:rotate(25deg);pointer-events:none;transition:left .65s ease}.button:hover:after,.button:focus-visible:after{left:130%}.button:active{translate:0 1px}
.button span[aria-hidden]{transition:transform .25s}.button:hover span[aria-hidden]{transform:translate(2px,-2px)}
.game-tile{transition:transform .5s,box-shadow .5s}.game-tile:active{transform:scale(.99)}
.scenery-layer{position:absolute;inset:0;overflow:hidden;border-radius:8px;pointer-events:none;background:#18241f}.gallery-scenery{width:100%;height:100%;object-fit:cover;object-position:center 57%;opacity:.86}.scenery-layer:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 20%,#11191744 70%),linear-gradient(0deg,#111815aa,transparent 25%,#11181522)}
.scenery-layer:before{content:'';position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 25% 60%,#ebe7cb20,transparent 65%);animation:scene-mist 13s ease-in-out infinite alternate}
@keyframes scene-mist{to{opacity:.3;transform:translateX(12px)}}
.card-stage,.inline-collector .collectible-stage{position:relative;border:1px solid #ccb78528;border-radius:8px}
.card-stage .card-object,.collectible-stage .collectible-object{z-index:2;flex-shrink:0}.auto-rotating .collectible-object,.dragging .collectible-object{transition:none!important}
.scene-controls{display:flex;justify-content:center;gap:16px;align-items:center;margin:12px 0 16px;flex-wrap:wrap}.scene-controls button{min-height:44px;border:1px solid #c6af7855;background:#b69d6410;color:#e5d4b4;border-radius:3px;padding:9px 14px;font-size:12px}.scene-controls button[aria-pressed=true]{background:#c4a66922;border-color:#d8b96f}.scene-controls label{display:flex;align-items:center;gap:8px;font-size:11px;color:#b9b7ad}.scene-controls select{min-height:44px;max-width:166px;padding:7px 23px 7px 9px;font-size:12px;background:#202821;color:#dddbc9;border:1px solid #ffffff26;border-radius:3px}
.inline-collector .collectible-tools{margin-top:9px}.viewer .scene-controls{gap:10px}.viewer .scene-controls label{font-size:10px}.scene-controls button:disabled{opacity:.45;cursor:default}
.zen-quick-links{display:flex;justify-content:center;gap:24px}
.casting{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center;background:radial-gradient(ellipse at 75% 30%,#c6ac7120,transparent 60%),#eae5d8;border-block:1px solid #a68d632d;color:#343b32;scroll-margin-top:80px}
.casting-copy h2{font:clamp(38px,4.4vw,60px)/1.5 Archive,serif}.casting-copy h2 em{font-style:normal;color:#8b714c}.casting-copy>p:not(.eyebrow){font-size:14px;margin:24px 0 18px;color:#72745f}.ritual-note{font-size:11px;color:#858570;letter-spacing:.1em}.casting .eyebrow{color:#8b7753}
.casting-desk{border:1px solid #a58b5833;padding:25px 30px 24px;border-radius:6px;background:linear-gradient(140deg,#fffcf266,#f5f0e12b);box-shadow:0 22px 65px #6755360b;min-width:0}.coin-table{display:flex;justify-content:center;align-items:center;gap:22px;height:158px;position:relative;perspective:800px}.coin-holder{position:relative;width:76px;height:76px;z-index:1}.ritual-coin{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateY(0deg)}.ritual-coin img{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.coin-front{transform:translateZ(1px)}.coin-back{transform:rotateY(180deg) translateZ(1px)}.ritual-coin.tails{transform:rotateY(180deg)}.coin-shadow{display:block;position:absolute;width:72%;height:8px;background:#62533722;border-radius:50%;left:14%;bottom:-17px;filter:blur(3px)}
.ritual-ripple{position:absolute;width:290px;height:115px;border:1px solid #b2936022;border-radius:50%;top:45px}.ritual-ripple:after{content:'';position:absolute;inset:10px -18px;border:1px solid #b293601a;border-radius:50%}
.casting-active .ritual-coin{animation:coin-turn 1s cubic-bezier(.25,.1,.3,1) both;animation-delay:calc(var(--coin)*.04s)}.casting-active .coin-holder{animation:coin-lift 1s ease-in-out both;animation-delay:calc(var(--coin)*.04s)}.casting-active .ritual-ripple{animation:ripple-out 1s ease-out both}
@keyframes coin-turn{to{transform:rotateY(calc(1080deg + var(--coin-result,0deg)))}}@keyframes coin-lift{0%,100%{translate:0 0}28%{translate:0 -35px}70%{translate:0 5px}85%{translate:0 -5px}}@keyframes ripple-out{from{scale:.75;opacity:0}40%{opacity:1}to{scale:1.12;opacity:.2}}
.casting-reading{position:relative;border-block:1px solid #9c885b26;padding:18px 0}.reading-caption{font-size:10px;letter-spacing:.12em;color:#88816b}.casting-progress{float:right;font-size:11px;letter-spacing:.12em;color:#988363;font-variant-numeric:tabular-nums}.yao-stack{display:flex;flex-direction:column-reverse;gap:11px;margin-top:20px}.yao-row{display:grid;grid-template-columns:42px 1fr 80px;gap:20px;align-items:center;min-height:18px;font-size:11px;color:#989483}.yao-line{display:flex;gap:0;height:5px;opacity:.14}.yao-line i{height:100%;width:50%;background:#7f775a;transition:background .3s}.yao-row.formed .yao-line{opacity:1}.yao-row.formed{color:#5f6657}.yao-row.yin .yao-line{gap:13px}.yao-row.changing .yao-line i{background:#9a503c}.yao-row.changing .yao-type{color:#9a503c}.yao-type{font-size:10px;text-align:right}
.casting-status{min-height:22px;margin:19px 0 16px;text-align:center;font:15px Archive,serif;color:#73674f}.casting-actions{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap}.casting-actions .primary{background:#874936;color:#fff3db;border-color:#874936;min-width:140px}.casting-actions>button:not(.primary){border:0;border-bottom:1px solid #ae997550;font-size:11px;color:#7a725e;min-height:44px;padding:4px}.casting-actions>button:disabled{opacity:.65;cursor:wait}
@media(hover:hover) and (pointer:fine){.game-tile:hover{transform:translateY(-5px);box-shadow:0 18px 35px #0003}.button:hover{box-shadow:0 5px 24px #baa06a22;translate:0 -2px}}
@media(max-width:650px){.crafted-sanguo .hero-collectible{animation-name:hero-card-mobile}.atmosphere i{box-shadow:100px 80px 0 currentColor,200px 230px 0 currentColor}.atmosphere i:nth-child(3){display:none}.casting{display:flex;flex-direction:column;padding:55px 6%;gap:28px}.casting-copy{text-align:center}.casting-copy h2{font-size:36px}.casting-copy>p:not(.eyebrow){margin:18px 0 12px;font-size:12px}.casting-copy .eyebrow{font-size:9px}.casting-desk{width:100%;padding:17px 19px 20px}.coin-table{height:134px;gap:19px}.coin-holder{width:61px;height:61px}.ritual-ripple{width:235px;height:94px;top:33px}.yao-row{gap:15px;grid-template-columns:34px 1fr 74px}.casting-status{font-size:13px}.casting-actions{gap:12px}.casting-actions .primary{font-size:13px;min-width:130px;padding:12px 17px}.scene-controls{gap:10px}.scene-controls label{font-size:10px}.scene-controls select{max-width:150px}.scene-controls button{padding:8px 11px}.viewer .scene-controls{gap:8px}.viewer .scene-controls select{max-width:145px}}
@keyframes hero-card-mobile{to{transform:translateY(-4px)}}
@media(max-width:360px){.coin-holder{width:53px;height:53px}.coin-table{gap:15px}.casting-actions{gap:8px}.casting-actions .primary{min-width:115px;padding:11px 12px}.casting-desk{padding-inline:14px}.scene-controls label{gap:5px}.scene-controls select{max-width:143px}}
.motion-paused .atmosphere i,.motion-paused .hero-collectible,.motion-paused .collectible-foil,.motion-paused .scenery-layer:before,.tab-idle *,.tab-idle *:before,.tab-idle *:after,.motion-idle .atmosphere i,.motion-idle .hero-collectible,.motion-idle .collectible-foil,.motion-idle.scenery-layer:before{animation-play-state:paused!important}
.motion-paused .motion-entry{opacity:1;transform:none;transition:none}
@media(prefers-reduced-motion:reduce){.atmosphere i,.crafted-sanguo .hero-collectible,.hero-collectible .collectible-foil,.scenery-layer:before,.casting-active .ritual-coin,.casting-active .coin-holder,.casting-active .ritual-ripple,.crafted-sanguo .splash-copy>*,.crafted-sanguo .portal-copy>*,.crafted-tianji .tianji-title>*,.crafted-tianji .play-actions,.game-splash-copy>*{animation:none!important}.motion-entry,.game-tile,.button,.button:after{opacity:1;transform:none;transition:none}.motion-entry{translate:none}.button:hover{translate:none}}
