/* Indirect metadata becomes a quiet engraving, never a claimed item depiction. */
.context-accents{position:absolute;inset:5%;color:var(--context-color,#a9ba9e);pointer-events:none;z-index:3;opacity:.62;transition:opacity 400ms ease,filter 450ms ease}
.context-engraving{position:absolute;width:18%;height:19%;filter:drop-shadow(0 2px 1px #000c)}
.engraving-0{left:5%;top:16%;rotate:-18deg}.engraving-1{right:5%;bottom:16%;rotate:15deg;width:15%;height:16%;opacity:.72}
.context-trace{position:absolute;inset:12%;border:1px solid color-mix(in srgb,var(--context-color) 22%,transparent);border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;rotate:-25deg;opacity:.5}
.context-alchemy .context-trace{inset:12% 39% 43% 23%;border:0;background:radial-gradient(ellipse,#8ebca026,transparent 65%);filter:blur(6px);rotate:-12deg}
.context-class-mark{position:absolute;right:14%;bottom:12%;width:28px;height:28px;padding:2px;border:1px solid #8d835e;border-radius:50%;background:#1d2119;box-shadow:0 3px 6px #0008;z-index:4;opacity:.75}
.context-class-mark img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;filter:saturate(.5)}
.seal-card:hover .context-accents,.seal-card:focus-visible .context-accents{opacity:.9}
.seal-card[data-context]:not([data-context=mystery]) .card-subtitle{color:var(--context-color)}
.relic-assembly:not(.context-mystery) .rune-halo .sigil{stroke:color-mix(in srgb,var(--context-color) 40%,#a89c74)!important}
.context-caption{margin:5px auto 0;max-width:65ch;text-align:center;font:400 14px/1.6 var(--brand-reading);color:var(--context-color,#98dcd0)}
.item-knowledge #context-demo{margin:12px 0 0;font-size:16px;min-height:44px}.context-demo-note{display:block;font:400 13px/1.65 var(--brand-reading);color:#bdb6a7;margin-top:10px;max-width:65ch}
.ritual-theme-control{display:flex;align-items:center;justify-content:center;gap:14px;position:relative;z-index:8;margin:3px auto 0;padding:8px 0 12px;font:400 14px var(--brand-reading);color:#bdb6a7}
.ritual-theme-control select{font:400 16px var(--brand-reading);background:#18251f;color:#e5dcc7;border:1px solid #5f7867;border-radius:2px;min-height:44px;max-width:100%;padding:8px 36px 8px 12px;min-width:230px}.ritual-theme-control select:disabled{opacity:.65;cursor:wait}
/* The authored reveal stays grand; profession accents remain secondary. */
dialog.epic-demo{width:min(1080px,calc(100% - 48px));max-height:calc(100dvh - 32px)}
.epic-demo .ritual-room{min-height:790px;background:radial-gradient(ellipse at 50% 32%,#2a695c21,transparent 53%),#131a15}
.epic-demo .ritual-visual{height:365px;perspective:800px}.epic-demo .dialog-seal{width:400px;height:400px;max-width:80vw;z-index:4;transform-origin:50% 50%}.epic-demo .ritual-halo{width:410px;height:410px}.epic-demo .ritual-copy h2{font-size:41px;line-height:1.16}.epic-demo .ritual-copy{transition:opacity 350ms ease;z-index:7}.epic-demo .ritual-actions{margin-top:24px;min-height:49px}.epic-demo .ritual-copy>p:last-child{font-size:16px}.epic-demo .demo-disclosure{max-width:75ch}
.epic-rings{position:absolute;inset:-15px 0;perspective:760px;pointer-events:none;z-index:0;opacity:.08;transition:opacity 600ms ease,transform 1500ms var(--mystery-ease)}
.epic-rings i{position:absolute;display:block;inset:0;left:50%;width:460px;height:460px;max-width:88vw;max-height:88vw;transform:translate(-50%,-8%) rotateX(48deg);transform-origin:50% 50%;opacity:.45}.epic-rings i:nth-child(2){transform:translate(-50%,-8%) rotateX(-42deg) rotateZ(35deg)}.epic-rings i:nth-child(3){display:none}.epic-rings .sigil{stroke:#b4bd9d!important;stroke-width:.65}.epic-rings .heart{display:none}.epic-rings .outer-orbit,.epic-rings .inner-orbit{animation:none!important}
.epic-energy{position:absolute;left:50%;top:13%;bottom:13%;width:2px;z-index:2;transform:translateX(-50%) scaleY(0);background:#d7eed7;opacity:0;box-shadow:0 0 16px 2px #8cbda350;transition:opacity 700ms ease,transform 900ms var(--mystery-ease);pointer-events:none}
.epic-fragments{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.epic-fragments i{position:absolute;left:50%;top:50%;width:3px;height:3px;background:#c8d3b8;border-radius:50%;opacity:0;transform:rotate(var(--fragment-angle));box-shadow:0 0 5px #b5d6b54a}
.phase-summoning .epic-rings{opacity:.4}.phase-summoning .epic-rings i{animation:epic-ring-one 5s cubic-bezier(.35,0,.4,1) both}.phase-summoning .epic-rings i:nth-child(2){animation-name:epic-ring-two}
.phase-awakening .context-accents{opacity:.85;filter:drop-shadow(0 0 3px #b9cba633)}.phase-unbinding .ritual-halo{transform:scale(1.3);opacity:1}.phase-unbinding .dialog-seal .seal-half{filter:brightness(1.14) drop-shadow(0 0 7px #94baa95a)}
.phase-fracture .epic-energy{opacity:.55;transform:translateX(-50%) scaleY(.85)}
/* Both painted halves stay joined as their shared alpha silhouette dissolves. */
.epic-demo .phase-parted .seal-half-left,.epic-demo .phase-parted .seal-half-right{transform:none;opacity:0;animation:seal-dissolves 1500ms cubic-bezier(.16,1,.3,1) both}
.phase-parted .context-accents,.phase-parted .context-class-mark{opacity:0;filter:blur(3px);transition:opacity 1000ms ease,filter 1100ms ease}
.phase-parted .epic-rings{opacity:0;transform:scale(1.25)}.phase-parted .epic-fragments i{animation:seal-dust-rises 1600ms var(--mystery-ease) both;animation-delay:var(--fragment-delay)}.phase-parted .epic-energy{opacity:.45;transform:translateX(-50%) scaleY(1)}.epic-demo .phase-parted:not(.revealed) .ritual-copy{opacity:.5}
.revealed .epic-energy{opacity:0;transition-duration:1000ms}.revealed .epic-rings i{animation:none!important}.revealed .ritual-copy{opacity:1}.epic-demo .revealed-icon{padding:20px;background:linear-gradient(135deg,#5f5030,#1b2c20);box-shadow:0 18px 70px #000c,inset 0 0 0 3px #152119}.epic-demo .revealed-icon img{width:100px;height:100px}.epic-demo .revealed .revealed-icon{animation:epic-identity-arrives 1500ms var(--mystery-ease) both}.epic-demo .revealed .ritual-copy h2{animation:epic-name-arrives 1200ms var(--mystery-ease) both}.epic-demo .revealed .ritual-status{animation:epic-name-arrives 900ms var(--mystery-ease) both}.epic-demo .reveal-burst{width:240px;height:240px;background:radial-gradient(circle,#e5e7c074,#88b99b22,transparent 70%)}
.ritual-room[data-context=alchemy].opening .context-trace{animation:alchemy-trace 3.4s ease-in-out both}.ritual-room[data-context=engineering].opening .engraving-0{animation:none}.ritual-room[data-context=enchanting].opening .context-engraving{animation:crystal-trace 3.4s ease-in-out both}.ritual-room[data-context=blacksmithing] .ritual-sparks i{background:#d8bc91}.ritual-room.revealed .context-accents{animation:none!important;opacity:0}
@keyframes seal-dissolves{0%{opacity:1;transform:none;filter:brightness(1.25);mask-image:linear-gradient(0deg,transparent,#000 22%,#000 78%,transparent);mask-size:100% 300%;mask-position:50% 50%}40%{opacity:.7;filter:brightness(1.4) blur(1px);transform:translateY(-4px) scale(1.015)}100%{opacity:0;filter:brightness(1.5) blur(7px);transform:translateY(-15px) scale(1.05);mask-image:linear-gradient(0deg,transparent,#000 22%,#000 78%,transparent);mask-size:100% 300%;mask-position:50% 100%}}
@keyframes seal-dust-rises{0%{opacity:0;transform:translate(calc(var(--fragment-x)*.48),calc(var(--fragment-y)*.48)) scale(.5)}15%{opacity:.8}100%{opacity:0;transform:translate(calc(var(--fragment-x)*.8),calc(var(--fragment-y)*.6 - 75px)) scale(.2)}}
@keyframes epic-ring-one{0%{transform:translate(-50%,-8%) rotateX(58deg) rotateZ(-30deg);opacity:.1}30%{opacity:.55}75%{transform:translate(-50%,-8%) rotateX(15deg) rotateZ(40deg);opacity:.8}100%{transform:translate(-50%,-8%) rotateX(0deg) rotateZ(75deg);opacity:0}}
@keyframes epic-ring-two{0%{transform:translate(-50%,-8%) rotateX(-52deg) rotateZ(20deg);opacity:.1}30%{opacity:.5}75%{transform:translate(-50%,-8%) rotateX(-12deg) rotateZ(-50deg);opacity:.7}100%{transform:translate(-50%,-8%) rotateX(0deg) rotateZ(-90deg);opacity:0}}
@keyframes epic-identity-arrives{0%{opacity:0;filter:blur(5px);transform:translateY(20px) scale(.7)}45%{opacity:1;filter:blur(0)}100%{opacity:1;filter:none;transform:none}}@keyframes epic-name-arrives{0%{opacity:0;filter:blur(3px);transform:translateY(8px)}100%{opacity:1;filter:none;transform:none}}
@keyframes alchemy-trace{0%{opacity:.3;translate:0 5px}60%{opacity:.9;translate:0 -14px}100%{opacity:0;translate:0 -28px}}@keyframes gear-trace{0%{rotate:-18deg}100%{rotate:65deg}}@keyframes crystal-trace{0%{translate:0 0}70%{translate:0 -6px}100%{translate:0 -10px}}
@media(max-width:700px){dialog.epic-demo{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.epic-demo .ritual-room{min-height:705px;padding-inline:20px}.ritual-theme-control{justify-content:space-between;gap:10px;margin:0;padding:4px 0 10px;font-size:13px}.ritual-theme-control select{min-width:0;max-width:70%;width:205px;font-size:14px;padding-right:25px}.epic-demo .ritual-visual{height:285px}.epic-demo .dialog-seal{width:310px;height:310px;max-width:88vw}.epic-demo .ritual-halo{width:290px;height:290px}.epic-demo .ritual-copy h2{font-size:33px}.epic-demo .ritual-copy>p:last-child{font-size:15px}.epic-rings{inset:0 -15px}.epic-rings i{width:340px;height:340px;max-width:98vw;max-height:98vw}.epic-demo .revealed-icon{padding:15px}.epic-demo .revealed-icon img{width:80px;height:80px}.context-caption{font-size:13px}.context-class-mark{width:23px;height:23px}.item-knowledge #context-demo{width:100%;font-size:15px}.context-demo-note{font-size:13px}}
@media(max-width:359px){.epic-demo .ritual-room{padding-inline:15px}.epic-demo .ritual-visual{height:255px}.epic-demo .dialog-seal{width:280px;height:280px}.epic-demo .ritual-copy h2{font-size:29px}.ritual-theme-control select{font-size:13px;max-width:69%}.epic-rings i{width:305px;height:305px}}
body.motion-paused :is(.epic-energy,.epic-rings,.epic-fragments){display:none!important}body.motion-paused .epic-demo .revealed .ritual-copy h2,body.motion-paused .epic-demo .revealed .ritual-status{animation:none!important;opacity:1!important;filter:none!important;transform:none!important}body.motion-paused .seal-half{animation:none!important}
@media(prefers-reduced-motion:reduce){.epic-rings,.epic-energy,.epic-fragments{display:none!important}.context-accents,.context-engraving,.context-trace,.ritual-copy,.seal-half,.epic-demo .revealed .ritual-copy h2,.epic-demo .revealed .ritual-status{animation:none!important;transition:none!important;transform:none!important;translate:none!important;filter:none!important}.epic-demo .revealed .ritual-copy h2,.epic-demo .revealed .ritual-status{opacity:1!important}}

/* A second pass gives each known craft a material response at the rim. */
.context-accents{opacity:.7}.context-engraving{width:20%;height:21%;color:color-mix(in srgb,var(--context-color) 60%,#c5ad76)}.engraving-0{left:3%;top:15%}.engraving-1{right:4%;bottom:15%;width:16%;height:17%}
.vial-liquid{fill:#7eae8a;fill-opacity:.32;stroke:none}.vial-bubbles{fill:#c2ddba;stroke:none;opacity:.7}.context-vapour{position:absolute;left:4%;top:1%;width:17%;height:25%;opacity:.16;stroke-width:1.3;stroke-dasharray:12 10;filter:blur(.25px)}.context-vapour path:nth-child(2){stroke-dashoffset:11;opacity:.55}.context-current{position:absolute;right:6%;bottom:17%;width:29%;height:17%;opacity:.18;stroke-width:1.2;stroke-dasharray:6 15}
.gear-companion{transform-origin:40.5px 44px;fill:#20291b;fill-opacity:.8}.context-engineering .engraving-outline{transform-origin:26px 30px}.forge-motes{color:#e6ba7e}.crystal-shards{fill:#c7b9e8;fill-opacity:.24}.craft-stitches{stroke-dasharray:3 2;opacity:.8}
.opening .context-alchemy .vial-liquid{animation:vial-stirs 3.6s ease-in-out both;transform-origin:26px 41px}.opening .context-alchemy .vial-bubbles circle{animation:vial-bubbles-rise 1.6s ease-out 2 both}.opening .context-alchemy .vial-bubbles circle:nth-child(2){animation-delay:.3s}.opening .context-alchemy .vial-bubbles circle:nth-child(3){animation-delay:.55s}.opening .context-alchemy .context-vapour{animation:vapour-unfurls 3.7s ease-in-out both}
.opening .context-engineering .engraving-0 .engraving-outline{animation:rim-gear-turn 3.8s cubic-bezier(.4,0,.2,1) both}.opening .context-engineering .gear-companion{animation:rim-companion-turn 3.8s cubic-bezier(.4,0,.2,1) both}.opening .context-engineering .context-current{animation:conduit-gathers 3.7s ease-in-out both}
.opening .context-blacksmithing .forge-motes{animation:forge-embers 1.7s ease-out 2 both}.opening .context-enchanting .crystal-shards{animation:crystal-resonance 3.6s ease-in-out both}.opening :is(.context-tailoring,.context-leatherworking) .craft-stitches{animation:thread-unravels 3.8s ease-in-out both}
.ritual-bindings{position:absolute;left:50%;top:50%;width:400px;height:400px;max-width:84vw;max-height:84vw;transform:translate(-50%,-50%);z-index:5;pointer-events:none;opacity:0;color:#bdd9bd;transition:opacity 700ms ease}.ritual-bindings svg{width:100%;height:100%;overflow:visible;stroke-width:.9}.ritual-bindings path{stroke-dasharray:210;stroke-dashoffset:210;filter:drop-shadow(0 0 2px #a0d5b74d)}.phase-summoning .ritual-bindings{opacity:.35}.phase-summoning .ritual-bindings path{animation:binding-draws 3s cubic-bezier(.3,0,.2,1) both}.phase-summoning .ritual-bindings path:nth-child(2n){animation-delay:.2s}.phase-unbinding .ritual-bindings{opacity:.72}.phase-fracture .ritual-bindings{opacity:.95}.phase-parted .ritual-bindings{opacity:0;transition-duration:650ms}.phase-parted .ritual-bindings path{animation:binding-releases 900ms ease-out both}
.ritual-nova{position:absolute;left:50%;top:50%;width:280px;height:280px;max-width:65vw;max-height:65vw;transform:translate(-50%,-50%) scale(.75);border:1px solid #bdd5b4;border-radius:50%;background:radial-gradient(circle,transparent 57%,#9ad3b31a 70%,transparent 73%);opacity:0;z-index:2;pointer-events:none}.phase-parted .ritual-nova{animation:seal-nova 1600ms var(--mystery-ease) both}
.epic-demo .phase-unbinding:not(.phase-parted) .dialog-seal .seal-half{animation:seal-stores-energy 1450ms ease-in-out both}.phase-fracture .epic-rings{opacity:.65}.epic-demo .phase-parted .seal-half-left,.epic-demo .phase-parted .seal-half-right{animation:seal-dissolves 1700ms cubic-bezier(.16,1,.3,1) both}
.epic-fragments i{width:var(--dust-size,2px);height:var(--dust-size,2px);background:#d0dcc2}.epic-fragments i:nth-child(3n){background:#bba475}.phase-parted .epic-fragments i{animation:seal-dust-ascends 1900ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--fragment-delay)}
@keyframes vial-stirs{0%,100%{transform:none}30%{transform:rotate(-4deg)}65%{transform:rotate(3deg);fill-opacity:.65}}
@keyframes vial-bubbles-rise{0%{opacity:0;transform:translateY(3px)}25%{opacity:.8}100%{opacity:0;transform:translateY(-13px) scale(.8)}}
@keyframes vapour-unfurls{0%{opacity:.1;transform:translateY(4px);stroke-dashoffset:0}60%{opacity:.65}100%{opacity:0;transform:translateY(-16px);stroke-dashoffset:-50}}
@keyframes rim-gear-turn{0%{transform:rotate(0)}100%{transform:rotate(100deg)}}@keyframes rim-companion-turn{0%{transform:rotate(0)}100%{transform:rotate(-150deg)}}
@keyframes conduit-gathers{0%{opacity:.12;stroke-dashoffset:100}65%{opacity:.8}100%{opacity:0;stroke-dashoffset:-30}}
@keyframes forge-embers{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}100%{opacity:0;transform:translateY(-9px)}}
@keyframes crystal-resonance{0%{opacity:.25}60%{opacity:1;filter:drop-shadow(0 0 3px #c7b9e8)}100%{opacity:0;transform:translateY(-6px)}}
@keyframes thread-unravels{0%{stroke-dashoffset:0;opacity:.4}55%{opacity:1}100%{stroke-dashoffset:30;opacity:0}}
@keyframes binding-draws{0%{stroke-dashoffset:210}100%{stroke-dashoffset:0}}@keyframes binding-releases{0%{stroke-dashoffset:0}100%{stroke-dashoffset:-210}}
@keyframes seal-stores-energy{0%{filter:brightness(1.06)}65%{filter:brightness(1.28) drop-shadow(0 0 8px #a4c9ab44)}100%{filter:brightness(1.18)}}
@keyframes seal-nova{0%{opacity:0;transform:translate(-50%,-50%) scale(.75)}20%{opacity:.55}100%{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}
@keyframes seal-dust-ascends{0%{opacity:0;transform:translate(calc(var(--fragment-x)*.7),calc(var(--fragment-y)*.7)) scale(.65)}18%{opacity:.85}60%{opacity:.5}100%{opacity:0;transform:translate(calc(var(--fragment-x)*1.05),calc(var(--fragment-y)*.8 - 90px)) scale(.15)}}
@media(max-width:700px){.ritual-bindings{width:305px;height:305px}.ritual-nova{width:220px;height:220px}}
body.motion-paused :is(.ritual-bindings,.ritual-nova){display:none!important}body.motion-paused .context-accents *{animation:none!important}
@media(prefers-reduced-motion:reduce){.ritual-bindings,.ritual-nova{display:none!important}.context-accents *{animation:none!important;transition:none!important}}
