/* Rich mode is opt-in at the presentation layer; system reduced motion wins. */
.shell{position:relative;isolation:isolate}.fx-atmosphere{display:none;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;border-radius:24px}
body[data-fx="rich"] .fx-atmosphere{display:block;background:linear-gradient(#89e1ef08 1px,transparent 1px),linear-gradient(90deg,#89e1ef08 1px,transparent 1px);background-size:48px 48px}
.fx-atmosphere:before{content:"";position:absolute;inset:-130px -20% 20%;background:radial-gradient(ellipse at 25% 15%,#17b8d52b,transparent 42%),radial-gradient(ellipse at 80% 40%,#9260ff30,transparent 45%);animation:fx-aurora 18s ease-in-out infinite alternate;transform-origin:center}
.fx-atmosphere i{position:absolute;inset:0;background-image:radial-gradient(circle,#c9e9ff99 1px,transparent 1.6px),radial-gradient(circle,#bea3ff66 1px,transparent 1.8px);background-size:147px 139px,223px 197px;background-position:15px 23px,67px 59px;opacity:.4;animation:fx-stars 24s ease-in-out infinite alternate}
.fx-atmosphere span{position:absolute;left:0;right:0;top:5%;height:1px;background:linear-gradient(90deg,transparent,#9bdeed55,transparent);box-shadow:0 0 16px #76ddf155;animation:fx-scan 18s linear infinite}
body[data-fx="rich"] .brand-mark{box-shadow:0 0 24px #78dfff40,inset 0 0 13px #96d4df20;border-color:#92dce4}
body[data-fx="rich"] .home-ritual{background:linear-gradient(115deg,#10303b,#211c3c);border-color:#547f94;box-shadow:0 0 35px #69cfff0c}
.orbit-runes,.orbit-satellite{display:none}
body[data-fx="rich"] .arcane-orbit{width:185px;height:185px;border-color:#9feaff77;box-shadow:0 0 35px #60d6ff22,inset 0 0 35px #a17fff19}
body[data-fx="rich"] .arcane-orbit:before{inset:8px;border-color:#81dcffbb;border-style:dashed;animation-duration:24s}
body[data-fx="rich"] .arcane-orbit:after{inset:41px;border-color:#c0a0ff99;box-shadow:0 0 18px #ae75ff30;animation-duration:33s}
body[data-fx="rich"] .arcane-orbit span{inset:25px;border:3px double #a3dff877}
body[data-fx="rich"] .orbit-runes{display:grid;place-items:center;position:absolute;inset:-13px;border:1px dashed #a4bcff66;border-radius:50%;font-style:normal;color:#a8d5f0;letter-spacing:3px;font-size:12px;animation:arcane-orbit 70s linear infinite;pointer-events:none}
body[data-fx="rich"] .orbit-satellite{display:block;position:absolute;inset:0;border-radius:50%;animation:arcane-orbit 11s linear infinite}
.orbit-satellite:before{content:"";position:absolute;left:24px;top:21px;width:6px;height:6px;border-radius:50%;background:#d9faff;box-shadow:0 0 14px 4px #72d9ff99}
body[data-fx="rich"] .arcane-orbit b{font-size:52px;text-shadow:0 0 18px #a1deff,0 0 40px #965fff88;animation:fx-core 5s ease-in-out infinite alternate}
.fx-card-edge,.fx-cursor{display:none;pointer-events:none;position:absolute;inset:0;border-radius:inherit}
body[data-fx="rich"] .idea{background:linear-gradient(145deg,#232337,#111e2b);border-color:#666188;box-shadow:0 5px 24px #0005,0 0 15px #aa8eff0d}
body[data-fx="rich"] .fx-card-edge{display:block;border:1px solid #9b91d777;box-shadow:inset 0 0 12px #8b7de81a;animation:fx-edge 6s ease-in-out infinite alternate}
@supports ((mask-composite:exclude) or (-webkit-mask-composite:xor)){
 body[data-fx="rich"] .fx-card-edge{padding:2px;border:0;background:linear-gradient(110deg,#63dfff,#9b76e833,#cf9eff,#5fe0ee33,#63dfff);background-size:300% 100%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:fx-border-flow 8s linear infinite}
}
body[data-fx="rich"] .fx-cursor{display:block;background:radial-gradient(150px circle at var(--px,50%) var(--py,50%),#97d8ff16,transparent 75%);opacity:0;transition:opacity .2s}
body[data-fx="rich"] .idea:hover .fx-cursor,body[data-fx="rich"] .idea:active .fx-cursor{opacity:1}
body[data-fx="rich"] .idea:active{transform:scale(.985);border-color:#d4bfff}
body[data-fx="rich"] .cover{border-color:#638ca0;box-shadow:0 0 18px #77d8ff14,inset 7px 0 #ffffff06}
body[data-fx="rich"] .cover:after{border-color:#bbecff55;clip-path:polygon(0 0,26% 0,26% 1%,1% 1%,1% 26%,0 26%,0 0,100% 0,100% 26%,99% 26%,99% 1%,74% 1%,74% 0,100% 0,100% 100%,74% 100%,74% 99%,99% 99%,99% 74%,100% 74%,100% 100%,0 100%,0 74%,1% 74%,1% 99%,26% 99%,26% 100%,0 100%)}
body[data-fx="rich"] .modal{border-color:#9e8abb;animation:arcane-unfold .24s ease-out both,fx-modal-rim 1s ease-out;box-shadow:0 25px 80px #0008,0 0 32px #ac8fff24}
body[data-fx="rich"] .reader.fx-enter:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(110deg,transparent 35%,#8ad7ff20 50%,transparent 65%);animation:fx-curtain .55s ease-out both}
.fx-map-radar{display:none;pointer-events:none}
body[data-fx="rich"] .fx-map-radar{display:block;position:absolute;width:310px;height:310px;left:calc(50% - 155px);top:calc(50% - 155px);border-radius:50%;background:conic-gradient(from 0deg,transparent 70%,#8ad7ff12 97%,#9edfff30 99%,transparent);animation:arcane-orbit 20s linear infinite;border:1px solid #83dfff1c}
.map-links .fx-link-flow{display:none}
body[data-fx="rich"] .map-links .fx-link-flow{display:block;stroke:#b2f3ff;stroke-width:.5;stroke-dasharray:1 8;opacity:.85;animation:fx-flow 4s linear infinite}
body[data-fx="rich"] .node-core{box-shadow:0 0 0 7px #96d4df10,0 0 18px #77d8ff44}
body[data-fx="rich"] .node[aria-pressed="true"] .node-core{animation:fx-node-pulse 2.8s ease-in-out infinite}
.fx-touch-ring{position:fixed;width:32px;height:32px;margin:-16px 0 0 -16px;border:1px solid #adebff;border-radius:50%;box-shadow:0 0 12px #9aafff77;pointer-events:none;z-index:35000;animation:fx-ring .7s ease-out forwards}
.fx-spark{position:fixed;width:3px;height:3px;border-radius:50%;background:#d6bcff;box-shadow:0 0 7px #bcb4ff;pointer-events:none;z-index:35000;animation:fx-spark .85s ease-out forwards}
body:has(.reader) .shell *,body:has(.reader) .shell *:before,body:has(.reader) .shell *:after,.fx-paused *,.fx-paused *:before,.fx-paused *:after{animation-play-state:paused!important}
body:has(.reader) .fx-touch-ring,body:has(.reader) .fx-spark{display:none}
@keyframes fx-aurora{to{transform:translate(5%,30px) rotate(8deg);opacity:.55}}
@keyframes fx-stars{to{transform:translateY(20px);opacity:.6}}
@keyframes fx-scan{to{top:90%;opacity:0}}
@keyframes fx-core{to{opacity:.65;transform:scale(.9)}}
@keyframes fx-edge{to{border-color:#85d9ffbb;box-shadow:inset 0 0 14px #92aaff20}}
@keyframes fx-border-flow{to{background-position:300% 0}}
@keyframes fx-modal-rim{from{border-color:#c3eeff;box-shadow:0 0 45px #8abbff55}to{border-color:#9e8abb}}
@keyframes fx-curtain{from{transform:translateX(-100%);opacity:1}to{transform:translateX(100%);opacity:0}}
@keyframes fx-flow{to{stroke-dashoffset:-18}}
@keyframes fx-node-pulse{50%{box-shadow:0 0 0 15px #96d4df00,0 0 30px #9bdfff99}}
@keyframes fx-ring{to{transform:scale(5);opacity:0}}
@keyframes fx-spark{to{transform:translate(var(--dx),var(--dy));opacity:0}}
@media(max-width:650px){body[data-fx="rich"] .arcane-orbit{width:95px;height:95px;margin:10px 4px}body[data-fx="rich"] .arcane-orbit:after{inset:23px}body[data-fx="rich"] .arcane-orbit span{inset:14px}body[data-fx="rich"] .arcane-orbit b{font-size:32px}.orbit-satellite:before{left:11px;top:10px}body[data-fx="rich"] .orbit-runes{font-size:8px;letter-spacing:0;inset:-8px}.home-ritual{gap:16px}}
@media(prefers-reduced-motion:reduce){.fx-atmosphere,.fx-card-edge,.fx-cursor,.fx-map-radar,.fx-link-flow,.fx-touch-ring,.fx-spark,.reader.fx-enter:after{display:none!important}*,*:before,*:after{animation:none!important;transition:none!important}}
