.circulation-grid{grid-template-columns:minmax(150px,250px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.circulation-grid select{width:100%;min-width:0}.circulation-panel{container-type:inline-size}@container (width<=520px){.circulation-grid{grid-template-columns:minmax(0,1fr)}.bodymap-figure{max-width:210px;margin:0 auto}}.segmented button{min-width:0;padding-inline:6px}@media (width<=640px){.circulation-grid{grid-template-columns:1fr}.bodymap-figure{max-width:220px;margin:0 auto}.bodymap{width:auto;max-width:100%;max-height:46vh;margin:0 auto;display:block}}.bodymap-figure{min-width:0;margin:0 auto;position:relative}.bodymap-feedback{text-align:center;pointer-events:none;text-shadow:0 0 4px var(--bg), 0 0 8px var(--bg);font-size:14px;font-weight:600;position:absolute;top:6px;left:0;right:0}@media (hover:none){.key-hint{display:none}}.bodymap{width:100%;height:auto;display:block}.dantian-caption{text-align:center;font-size:var(--text-sm);margin-top:6px;line-height:1.4}.dt-core{pointer-events:none}.dt-wisp{fill:none;stroke:var(--jade);stroke-linecap:round;opacity:.85}.dt-wisp.faint{opacity:.45}.dt-ripple{fill:none;stroke:var(--jade);animation:3.6s ease-out infinite dt-ripple}.dt-ripple.late{animation-delay:1.8s}.dt-crack{fill:none;stroke:var(--bg);stroke-linejoin:round;opacity:.85}.dt-core-ring{fill:none;stroke:var(--gold);opacity:.8}.dt-mote{opacity:.95}.dt-mote.gold,.dt-soul-figure{fill:var(--text)}.dt-soul-figure.golden{fill:var(--gold)}.dt-soul-line{fill:none;stroke:var(--gold);stroke-linecap:round}.dt-soul-figure.golden .dt-soul-line{stroke:var(--bg)}.dt-soul-halo{fill:none;stroke:var(--gold);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.8}.dt-echo{opacity:.45;animation:7s ease-in-out infinite dt-drift}.dt-float,.dt-echo{transform-box:fill-box}.dt-taiji .yang{fill:var(--text)}.dt-taiji .yin{fill:var(--bg)}.dt-taiji .rim{fill:none;stroke:var(--gold);stroke-width:1.5px;vector-effect:non-scaling-stroke}.dt-halo-ring{fill:none;stroke:var(--gold);opacity:.75}.dt-ray{stroke:var(--gold);stroke-linecap:round;opacity:.6}.dt-burst{fill:none;stroke:var(--gold);stroke-width:2px;vector-effect:non-scaling-stroke;animation:dt-burst 1.4s var(--ease-out) forwards}.dt-breathe{animation:4s ease-in-out infinite dt-breathe}.dt-spin{animation:14s linear infinite dt-spin}.dt-spin.fast{animation-duration:5s}.dt-spin.slow{animation-duration:24s}.dt-float{animation:5s ease-in-out infinite dt-float}.dt-body-glow{animation:6s ease-in-out infinite dt-breathe-soft}.dt-halo{animation:60s linear infinite dt-spin}.bodymap.meditating .dt-spin{animation-duration:7s}.bodymap.meditating .dt-spin.fast{animation-duration:2.5s}.bodymap.meditating .dt-spin.slow{animation-duration:12s}.bodymap.meditating .dt-ripple{animation-duration:2.4s}.dt-forming .dt-form{animation:dt-form 1.4s var(--ease-out) backwards}@keyframes dt-spin{to{transform:rotate(360deg)}}@keyframes dt-breathe{0%,to{transform:scale(.9)}50%{transform:scale(1.12)}}@keyframes dt-breathe-soft{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes dt-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8%)}}@keyframes dt-drift{0%,to{transform:translate(0)}50%{transform:translate(6%,-4%)}}@keyframes dt-ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2)}}@keyframes dt-form{0%{transform:scale(.15)}60%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes dt-burst{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(5)}}.silhouette ellipse,.silhouette rect,.silhouette path{stroke:var(--border);stroke-width:1px}.silhouette polyline{stroke-opacity:1}.silhouette-detail path,.silhouette-detail rect{fill:none;stroke:var(--gold);stroke-opacity:.35;stroke-width:1.2px}.silhouette-aura{fill:var(--jade);stroke:var(--jade);opacity:.1}.bodymap.meditating .silhouette-aura{animation:4s ease-in-out infinite aura-breathe}@keyframes aura-breathe{0%,to{opacity:.14}50%{opacity:.34}}.dantian{opacity:0;transition:opacity .6s}.bodymap.meditating .dantian{opacity:1;animation:4s ease-in-out infinite dantian-pulse}@keyframes dantian-pulse{0%,to{transform:scale(.9)}50%{transform:scale(1.1)}}.dantian{transform-box:view-box}@media (prefers-reduced-motion:reduce){.bodymap.meditating .silhouette-aura,.bodymap.meditating .dantian{animation:none}}.route-seg{stroke-width:2px;stroke-linecap:round}.route-seg.open{stroke:var(--jade);opacity:.75}.route-seg.closed{stroke:var(--text-faint);stroke-dasharray:3 4;opacity:.6}.acupoint circle{fill:var(--bg-2);stroke:var(--text-faint);stroke-width:1.5px;transition:fill .2s}.acupoint.open circle{fill:var(--jade-dim);stroke:var(--jade)}.acupoint.blocked>circle:not(.opening-ring){stroke:var(--crimson);animation:1.2s ease-in-out infinite blocked-pulse}.acupoint.guided circle:not(.halo):not(.opening-ring){stroke:var(--gold);stroke-width:2.5px}.acupoint .opening-ring{fill:none;stroke:var(--crimson);stroke-width:2.5px}.acupoint .halo{fill:#d8b44a40;stroke:var(--gold);stroke-width:1px}.gate polygon{fill:#d8b44a14;stroke:var(--gold);stroke-width:1.5px;opacity:.55}.gate.open polygon{fill:var(--gold);opacity:1;filter:drop-shadow(0 0 4px var(--gold))}.gate.assault polygon{stroke:var(--crimson);opacity:1;animation:1.2s ease-in-out infinite blocked-pulse}.qi-pulse.partner{fill:#e58fb4;filter:drop-shadow(0 0 4px #e58fb4)}.qi-trail{fill:#7fe3c6;filter:blur(.6px)}.acupoint.open circle:not(.halo):not(.opening-ring){filter:drop-shadow(0 0 2.5px #4fbf9fb3)}.qi-pulse{fill:#e9fff7;filter:drop-shadow(0 0 5px var(--jade)) drop-shadow(0 0 10px var(--jade))}@keyframes blocked-pulse{50%{stroke-width:3px}}.guide-button{letter-spacing:.04em;-webkit-user-select:none;user-select:none;padding:14px;font-size:16px;font-weight:600}.guide-feedback{text-align:center;height:20px;font-size:13px;font-weight:600}.segmented{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--border);border-radius:0;flex:1}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--jade-button);color:var(--text)}.phase-steps{gap:6px;font-size:12px;display:flex}.phase-steps span{text-align:center;border:1px solid var(--border);color:var(--text-faint);border-radius:6px;flex:1;padding:4px}.phase-steps span.active{border-color:var(--violet);color:var(--violet);background:#b58cff14}.meter-row{grid-template-columns:90px 1fr;align-items:center;gap:10px;font-size:12.5px;display:grid}.bar.turbulence>.fill{background:linear-gradient(90deg, var(--warning), var(--crimson))}.bar.stability>.fill{background:var(--qi)}.bar .cap-mark{background:var(--crimson);width:2px;position:absolute;top:0;bottom:0}.req-list{margin:0;padding:0;font-size:13px;list-style:none}.req-list li:before{content:"✗ ";color:var(--crimson)}.req-list li.met:before{content:"✓ ";color:var(--jade)}.realm-future{color:var(--text-dim)}.weapon-warning{gap:var(--space-1);border-color:var(--warning);margin-bottom:var(--space-3)}.path-summary{gap:var(--space-3);margin-bottom:var(--space-4);border-color:var(--jade-dim)}.path-summary-head{align-items:center;gap:var(--space-3);display:flex}.path-summary-head h3,.path-summary-text{margin:0}.section-fold>summary{cursor:pointer;list-style:none}.section-fold>summary::-webkit-details-marker{display:none}.section-fold>summary:before{content:"▸ ";color:var(--text-faint);font-size:.8em}.section-fold[open]>summary:before{content:"▾ "}@media (hover:hover) and (pointer:fine){.section-fold>summary:hover:before{color:var(--jade)}}.section-fold>summary:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px}.slot-card{gap:var(--space-2)}.slot-move{gap:var(--space-1)}.slot-move button{min-width:34px}.slot-starved{border-color:var(--crimson)}.loadout-ledger{gap:var(--space-2);margin-top:var(--space-3)}.loadout-ledger-over{border-color:var(--warning)}.art-fold{margin-bottom:var(--space-3)}.art-fold>summary{cursor:pointer;padding:var(--space-1) 0;align-items:center;gap:var(--space-2);list-style:none;display:flex}.art-fold>summary::-webkit-details-marker{display:none}.art-fold>summary:before{content:"▸";color:var(--text-faint);font-size:.8em}.art-fold[open]>summary:before{content:"▾"}.art-fold>summary:focus-visible{outline:2px solid var(--border-strong);outline-offset:2px}@media (hover:hover) and (pointer:fine){.art-fold>summary:hover:before{color:var(--jade)}}.pavilion-head{border-bottom:1px solid var(--border);padding-bottom:var(--space-2);margin-bottom:var(--space-1)}.pavilion-label{text-transform:uppercase;letter-spacing:.08em;margin-top:var(--space-2)}.region-banner.scene-banner{object-position:center 6%;height:clamp(180px,30vw,320px)}.region-banner.scene-banner.cultivation-banner{object-position:30% 60%;height:clamp(130px,22vw,220px)}.bodymap.painted .route-seg,.bodymap.painted .acupoint circle,.bodymap.painted .gate polygon,.bodymap.painted .qi-pulse{vector-effect:non-scaling-stroke}.bodymap.painted .route-seg.closed{stroke-dasharray:9 11}.bodymap.painted .route-seg.open{stroke-width:2.5px;opacity:.9}.bodymap-art{opacity:.95}.dt-rising-halo{animation:7s ease-in-out infinite dt-breathe-soft}.qi-mote{opacity:0;transform-box:view-box;animation-name:qi-draw-in;animation-timing-function:cubic-bezier(.55,0,.75,.6);animation-iteration-count:infinite}@keyframes qi-draw-in{0%{transform:translate(var(--dx), var(--dy));opacity:0}20%{opacity:.85}85%{opacity:.6}to{opacity:0;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.qi-motes{display:none}.dt-rising-halo{animation:none}}.hand-storm{aspect-ratio:1;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;align-self:center;width:min(100%,420px);max-width:100%}.hand-storm .hs-ground{fill:var(--panel);stroke:var(--border-strong);stroke-width:.12px}.hand-storm .hs-array{fill:none;stroke:var(--jade);stroke-width:.12px;stroke-dasharray:.4 .3}.hand-storm .hs-mark{fill:none;stroke:var(--violet);stroke-width:.14px;stroke-dasharray:.5 .35}.hand-storm .hs-mark.settled{stroke-dasharray:none;stroke-width:.2px}.hand-storm .hs-fill{fill:color-mix(in srgb, var(--violet) 35%, transparent)}.hand-storm .hs-me{fill:var(--jade);stroke:var(--ink);stroke-width:.12px}.hand-storm .hs-raised{fill:var(--gold)}.hand-storm .hs-bolt{stroke:var(--text);stroke-width:.22px;animation:.35s ease-out forwards hs-bolt}@keyframes hs-bolt{0%{opacity:1}to{opacity:0}}
