/* Visual overrides are opt-in; content remains visible without animation scripts. */
body.visual-global-width [data-component-instance].decoration-width--normal>.container,body.visual-global-width [data-component-instance].decoration-width--normal>.hero-inner{width:min(var(--visual-width),92vw);max-width:none}
body[style*="--visual-radius"] [data-component-instance]{--dec-radius:var(--visual-radius)}
body[style*="--visual-gap"] [data-component-instance]{--dec-gap:var(--visual-gap)}
body[style*="--visual-radius"] [data-component-instance] :is(.decoration-card,.decoration-feature,.decoration-logo,.decoration-stat,.visual-profile){border-radius:var(--dec-radius)}
body[style*="--visual-shadow"] [data-component-instance]:not(.decoration-shadow--none) :is(.decoration-card,.decoration-feature,.decoration-logo,.decoration-stat,.visual-profile){box-shadow:var(--visual-shadow)}
[data-visual-background]:not([data-visual-background="template"]){position:relative;isolation:isolate}
[data-visual-background]:not([data-visual-background="template"]) :is([data-hero-canvas],[data-template-effect],.hero-aurora,.template-stage,.decoration-background-fx){display:none!important}
.visual-background-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;border-radius:inherit;opacity:.85}
[data-visual-background]:not([data-visual-background="template"]) [data-template-motion]{display:none!important}
.visual-motion-toggle{position:absolute;bottom:18px;right:4vw;z-index:3;min-height:44px;padding:8px 16px;border:1px solid var(--template-border,var(--line));border-radius:999px;background:var(--template-surface,var(--card));color:var(--template-text,var(--ink));font:inherit;font-size:12px;cursor:pointer}.visual-motion-toggle:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.visual-motion-toggle:disabled{opacity:.65;cursor:default}.visual-motion-toggle[hidden]{display:none}
[data-visual-background]>.container,[data-visual-background]>.hero-inner{position:relative;z-index:1}
[data-visual-entrance]:not([data-visual-entrance="template"]) .reveal{opacity:1;transform:none;transition:none}
.visual-enter-active{animation:visual-rise .65s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--visual-delay,0ms)}
[data-visual-entrance="fade"] .visual-enter-active{animation-name:visual-fade}
[data-visual-entrance="zoom"] .visual-enter-active{animation-name:visual-zoom}
.visual-hover-target{position:relative;transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
[data-visual-hover="none"] .visual-hover-target:hover{transform:none!important;translate:none!important}
[data-visual-hover="lift"] .visual-hover-target:hover{translate:0 -6px}
[data-visual-hover="lift"] .visual-hover-target:hover,[data-visual-hover="spotlight"] .visual-hover-target:hover{transform:none!important}
[data-visual-hover="spotlight"] .visual-hover-target:before,[data-visual-hover="hologram"] .visual-hover-target:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;border-radius:inherit;opacity:0;background:radial-gradient(circle at var(--visual-pointer-x,50%) var(--visual-pointer-y,50%),color-mix(in srgb,var(--primary) 20%,transparent),transparent 60%);transition:opacity .25s}
[data-visual-hover="spotlight"] .visual-hover-target:is(:hover,:focus-within):before,[data-visual-hover="hologram"] .visual-hover-target:is(:hover,:focus-within):before{opacity:1}
[data-visual-hover="hologram"] .visual-hover-target:hover{transform:perspective(900px) rotateX(var(--visual-rotate-x,0deg)) rotateY(var(--visual-rotate-y,0deg));border-color:var(--primary)}
[data-visual-hover="hologram"] .visual-hover-target:before{background:linear-gradient(120deg,transparent 10%,#ffffff0a 40%,color-mix(in srgb,var(--primary) 22%,transparent) 48%,#ffffff0c 55%,transparent 80%)}
[data-visual-title="shimmer"] :is(.hero-title,.sec-head h2,.decoration-heading h2){background-image:linear-gradient(110deg,var(--dec-title-color,var(--template-text,var(--ink))) 20%,var(--primary) 40%,var(--dec-title-color,var(--template-text,var(--ink))) 60%);background-size:220% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:visual-shimmer 5s ease-in-out infinite}
.visual-title-char{display:inline-block;white-space:pre;animation:visual-reassemble .7s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--visual-delay,0ms)}
.visual-parallax{translate:0 var(--visual-parallax,0px)}
.visual-cursor{position:fixed;left:0;top:0;translate:calc(var(--cursor-x) - 18px) calc(var(--cursor-y) - 18px);width:36px;height:36px;border:1px solid var(--primary);border-radius:50%;pointer-events:none;z-index:2000;opacity:.6;transition:width .15s,height .15s;box-shadow:0 0 18px color-mix(in srgb,var(--primary) 20%,transparent)}
.visual-cursor.is-interactive{width:44px;height:44px}
.visual-knowledge-controls{display:flex;justify-content:flex-end;margin:0 0 16px}
.visual-knowledge-controls button{font:inherit;font-size:14px;min-height:44px;padding:8px 18px;border-radius:999px;border:1px solid var(--template-border,var(--line));background:var(--template-surface,var(--card));color:var(--template-text,var(--ink));cursor:pointer}
[data-knowledge-map]{position:relative;isolation:isolate}
.visual-knowledge-lines{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible}
.visual-knowledge-lines path{stroke:var(--primary);stroke-width:1.5;fill:none;opacity:.4;stroke-dasharray:6 5;animation:visual-beam 8s linear infinite}
[data-knowledge-map].visual-knowledge-list{display:flex!important;flex-direction:column;gap:14px!important}
[data-knowledge-map].visual-knowledge-list [data-knowledge-node]{width:100%;margin:0!important;transform:none!important}
[data-knowledge-map].visual-knowledge-list .visual-course-nodes{grid-template-columns:minmax(0,1fr)!important}
[data-knowledge-map].visual-knowledge-list .visual-knowledge-lines{display:none}
[data-visual-beam] [data-beam-step]{transition:border-color .5s,box-shadow .5s}
[data-visual-beam] .visual-beam-active{border-color:var(--primary);box-shadow:0 0 24px color-mix(in srgb,var(--primary) 15%,transparent)}
[data-visual-beam] .visual-beam-active .decoration-step-number{background:var(--primary);color:var(--bg)}
body[data-visual-motion="paused"] :is(.visual-title-char,.visual-enter-active,.visual-knowledge-lines path),.visual-motion-quiet :is(.visual-title-char,.visual-enter-active,.visual-knowledge-lines path){animation:none!important;opacity:1!important;translate:none!important;rotate:none!important;scale:none!important}
body[data-visual-motion="paused"] [data-component-instance] *,body[data-visual-motion="paused"] [data-component-instance] *:before,body[data-visual-motion="paused"] [data-component-instance] *:after{animation-play-state:paused!important}
.visual-motion-quiet .visual-hover-target:hover{transform:none!important;translate:none!important}
body[data-visual-motion="paused"] .visual-parallax,.visual-motion-quiet .visual-parallax{translate:none}
@keyframes visual-rise{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes visual-fade{from{opacity:.15}to{opacity:1}}
@keyframes visual-zoom{from{opacity:.15;scale:.96}to{opacity:1;scale:1}}
@keyframes visual-shimmer{to{background-position:220% center}}
@keyframes visual-reassemble{from{opacity:.15;translate:0 .35em;rotate:5deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes visual-beam{to{stroke-dashoffset:-110}}
@media(max-width:600px),(pointer:coarse){.visual-cursor{display:none}.visual-hover-target:hover{transform:none!important;translate:none!important}.visual-hover-target:before{display:none}.visual-parallax{translate:none}}
@media(prefers-reduced-motion:reduce){.visual-title-char,.visual-enter-active,.visual-knowledge-lines path{animation:none!important;opacity:1!important;translate:none!important;rotate:none!important;scale:none!important}.visual-hover-target:hover{transform:none!important;translate:none!important}.visual-cursor{display:none}.visual-parallax{translate:none}}
