/* RV Studio – zufälliger Glanz und schaltbare Animationen */
/* Dauerhafter Glanz aus: nur noch einzelne, zufällige Glanzmomente */
.cc-sheen, #s4 .stock-card::before, .v11-m .mi::after, .v11-s2 .mi::after, .cc-q .ic::after { display:none !important; animation:none !important; }
.v11-tile, .v11-q, .v11-card, .v11-m, .v11-s2, #s4 .stock-card, #s4 .v5-kpi, #s4 .v6-tile, #ccChat .cc-q, #finance .stat, #finance .insight { position:relative; overflow:hidden; }
.cc-gleam { position:absolute; top:0; bottom:0; left:0; width:55%; z-index:3; pointer-events:none; border-radius:inherit;
  background:linear-gradient(105deg, transparent 0%, rgba(255,255,255,0) 30%, rgba(255,245,225,.22) 50%, rgba(255,255,255,0) 70%, transparent 100%);
  transform:translateX(-130%); animation:cc-gleam 2.2s ease-in-out forwards; }
@keyframes cc-gleam { to { transform:translateX(260%); } }
/* Schalter */
html.cc-no-glint .cc-glint { display:none !important; }
html.cc-no-globefx .cc-globe-gold, html.cc-no-globefx .cc-globe-bg, html.cc-no-globefx .cc-globe-hud, html.cc-no-globefx .v15-globe-wrap::before { display:none !important; }
html.cc-no-globefx .v15-globe-wrap .cc-earth { animation:none !important; }
html.cc-no-shimmer .v11-m .mi .v11-ico, html.cc-no-shimmer .v11-s2 .mi .v11-ico, html.cc-no-shimmer .v11-card .ci, html.cc-no-shimmer .cc-q .ic .v11-ico,
html.cc-no-shimmer .v11-card p em, html.cc-no-shimmer #s4 .lux-stock-hero h1 em, html.cc-no-shimmer #s4 .v6-tile b, html.cc-no-shimmer #s4 .lux-stock-mark svg,
html.cc-no-shimmer #finance #financeProfitHero, html.cc-no-shimmer :is(#finance, #settingsPage) h1 em, html.cc-no-shimmer .finance-mark, html.cc-no-shimmer .settings-mark,
html.cc-no-shimmer .v11-tile .ic, html.cc-no-shimmer .v11-q .ic { animation:none !important; }
html.cc-no-pulse .v11-pill, html.cc-no-pulse .v11-seg button[aria-pressed='true'], html.cc-no-pulse .v11-tile .bd, html.cc-no-pulse #s4 .stock-filter.selected,
html.cc-no-pulse #s4 #stockNewArticleQuick, html.cc-no-pulse #steps .step.active, html.cc-no-pulse .cc-gold-rim,
html.cc-no-pulse :is(#rvCloudConnect, #settingsAiApply, #settingsBackup, #v7BackupNow, #aiBtn, #next) { animation:none !important; }
/* Einstellungen-Karte */
.rv-anim-card { grid-column:1 / -1; }
.rv-anim-list { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:12px; }
@media(max-width:640px) { .rv-anim-list { grid-template-columns:1fr; } }
.rv-anim-row { position:relative; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:14px; cursor:pointer;
  border:1px solid transparent; background:linear-gradient(180deg, rgba(185,205,230,.12), rgba(90,110,140,.06)) padding-box, linear-gradient(180deg, rgba(18,26,40,.7), rgba(14,20,32,.76)) padding-box,
  linear-gradient(165deg, rgba(255,255,255,.45), rgba(255,255,255,.1) 40%, rgba(255,255,255,.22)) border-box; }
.rv-anim-row span { display:grid; gap:2px; min-width:0; }
.rv-anim-row b { color:#f3f5f9; font-weight:600; font-size:14px; }
.rv-anim-row small { color:#aeb8c8 !important; font-size:12px; line-height:1.3; }
.rv-anim-row input[type=checkbox] { position:absolute; opacity:0; pointer-events:none; }
.rv-switch { flex:none; width:44px; height:24px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); position:relative; transition:background .2s ease, box-shadow .2s ease; }
.rv-switch::after { content:''; position:absolute; left:2px; top:2px; width:18px; height:18px; border-radius:50%; background:#d9e0ea; transition:transform .2s ease, background .2s ease; }
.rv-anim-row input:checked + .rv-switch { background:radial-gradient(ellipse at 50% 0, rgba(255,170,80,.6), rgba(120,60,20,.6)); border-color:#ffd585; box-shadow:0 0 10px rgba(255,160,70,.5); }
.rv-anim-row input:checked + .rv-switch::after { transform:translateX(20px); background:#fff4e0; }
.rv-anim-row input:focus-visible + .rv-switch { outline:2px solid #fff0ba; outline-offset:2px; }
.rv-anim-sub select { max-width:130px; }

/* ===== Lebendige Unterseiten ===== */
/* 1) Wandernde Hintergrundlichter (nur Transform/Opacity, sehr günstig) */
.cc-ambient { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; contain:strict; transform:translateZ(0); }
.cc-ambient i { position:absolute; width:46vmax; height:46vmax; border-radius:50%; opacity:.55; will-change:transform; }
.cc-ambient i:nth-child(1) { left:-18vmax; top:30%; background:radial-gradient(circle, rgba(255,160,80,.22), transparent 62%); animation:cc-drift1 34s ease-in-out infinite alternate; }
.cc-ambient i:nth-child(2) { right:-20vmax; top:55%; background:radial-gradient(circle, rgba(255,175,110,.18), transparent 62%); animation:cc-drift2 41s ease-in-out infinite alternate; }
.cc-ambient i:nth-child(3) { right:-10vmax; top:-14vmax; background:radial-gradient(circle, rgba(80,140,255,.20), transparent 62%); animation:cc-drift3 38s ease-in-out infinite alternate; }
.cc-ambient i:nth-child(4) { left:20%; bottom:-24vmax; background:radial-gradient(circle, rgba(60,120,240,.14), transparent 62%); animation:cc-drift1 46s ease-in-out infinite alternate-reverse; }
@keyframes cc-drift1 { from { transform:translate(0,0) scale(1); } to { transform:translate(14vmax,-10vmax) scale(1.15); } }
@keyframes cc-drift2 { from { transform:translate(0,0) scale(1.1); } to { transform:translate(-16vmax,-8vmax) scale(.95); } }
@keyframes cc-drift3 { from { transform:translate(0,0) scale(1); } to { transform:translate(-12vmax,12vmax) scale(1.2); } }
html.cc-no-ambient .cc-ambient { display:none; }
main.wrap, #finance, #settingsPage, #aiChat { position:relative; z-index:1; }

/* 2) Seitenauftritt: Bereiche gleiten nacheinander herein */
.cc-enter > *, #s4.cc-enter .stock-grid > *, #finance.cc-enter .finance-hero > *, #finance.cc-enter .finance-split > *, #settingsPage.cc-enter .settings-grid > * {
  animation:cc-rise .7s cubic-bezier(.2,.7,.2,1) both; }
.cc-enter > :nth-child(2), #s4.cc-enter .stock-grid > :nth-child(2), #finance.cc-enter .finance-hero > :nth-child(2), #settingsPage.cc-enter .settings-grid > :nth-child(2) { animation-delay:.07s; }
.cc-enter > :nth-child(3), #s4.cc-enter .stock-grid > :nth-child(3), #finance.cc-enter .finance-split > :nth-child(2), #settingsPage.cc-enter .settings-grid > :nth-child(3) { animation-delay:.14s; }
.cc-enter > :nth-child(4), #s4.cc-enter .stock-grid > :nth-child(4), #settingsPage.cc-enter .settings-grid > :nth-child(4) { animation-delay:.21s; }
.cc-enter > :nth-child(5), #s4.cc-enter .stock-grid > :nth-child(5) { animation-delay:.28s; }
.cc-enter > :nth-child(6), #s4.cc-enter .stock-grid > :nth-child(6) { animation-delay:.35s; }
.cc-enter > :nth-child(7), #s4.cc-enter .stock-grid > :nth-child(n+7) { animation-delay:.42s; }
.cc-enter > :nth-child(n+8) { animation-delay:.48s; }
@keyframes cc-rise { from { opacity:0; transform:translateY(18px) scale(.985); } to { opacity:1; transform:none; } }
html.cc-no-pagefx .cc-enter > *, html.cc-no-pagefx .cc-enter * { animation-name:none !important; }

/* 3) Seitensymbole mit drehendem Lichtring und Puls */
#finance .finance-mark, #settingsPage .settings-mark { position:relative; overflow:visible !important; }
#s4 .lux-stock-mark { overflow:visible !important; }
#s4 .lux-stock-mark::before, #finance .finance-mark::before, #settingsPage .settings-mark::before {
  content:''; position:absolute; inset:-7px; border-radius:18px; pointer-events:none;
  background:conic-gradient(from 0deg, transparent 0 55%, rgba(255,200,130,.0) 60%, rgba(255,210,150,.9) 72%, #fff3dc 76%, rgba(95,180,255,.7) 82%, transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); mask:linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; padding:1.5px; animation:cc-spin 6s linear infinite; }
#s4 .lux-stock-mark::after, #finance .finance-mark::after, #settingsPage .settings-mark::after {
  content:''; position:absolute; inset:-16px; border-radius:24px; pointer-events:none; z-index:-1;
  background:radial-gradient(circle, rgba(255,170,80,.35), transparent 70%); animation:cc-markpulse 4.2s ease-in-out infinite; }
@keyframes cc-markpulse { 0%,100% { opacity:.4; transform:scale(.92); } 55% { opacity:1; transform:scale(1.06); } }
html.cc-no-pulse #s4 .lux-stock-mark::after, html.cc-no-pulse #finance .finance-mark::after, html.cc-no-pulse #settingsPage .settings-mark::after,
html.cc-no-shimmer #s4 .lux-stock-mark::before, html.cc-no-shimmer #finance .finance-mark::before, html.cc-no-shimmer #settingsPage .settings-mark::before { animation:none !important; }

/* 4) Überschriften: feine Goldlinie, die langsam aufleuchtet */
:is(#s4 .lux-stock-hero, #finance .page-head, #settingsPage .page-head, #s0, #s1, #s2, #s3) .eyebrow { position:relative; display:inline-block; }
:is(#s4 .lux-stock-hero, #finance .page-head, #settingsPage .page-head, #s0, #s1, #s2, #s3) .eyebrow::after { content:''; position:absolute; left:0; right:-30%; bottom:-4px; height:1.5px; border-radius:2px;
  background:linear-gradient(90deg, rgba(255,200,130,0), #ffd585 30%, #fff0c8 50%, rgba(255,200,130,0)); background-size:200% 100%; animation:cc-lineflow 5s ease-in-out infinite; }
@keyframes cc-lineflow { 0%,100% { background-position:100% 0; opacity:.5; } 50% { background-position:0 0; opacity:1; } }
html.cc-no-shimmer .eyebrow::after { animation:none !important; }

@media (prefers-reduced-motion: reduce) { .cc-ambient i, .cc-enter *, .eyebrow::after, .lux-stock-mark::before, .lux-stock-mark::after, .finance-mark::before, .finance-mark::after, .settings-mark::before, .settings-mark::after { animation:none !important; } }

/* V28: Animations-Schalter wirken auch auf den neuen Seiten */
#rvTop .rvt-tile, #hmRoot .st-m, #hmRoot .hm-q, #hmRoot .hm-row, #hmRoot .hm-cattile, #hmRoot .hm-s2, #hmRoot .hm-task, .sx-panel .st-m, .in-pf, .in-tipcard, .ch-q, .st-nav button, .st .st-action, #steps .step, .sx-pub, #s4 .bx-tab { position:relative; overflow:hidden; }
#rvTop .rvt-tile .bd { z-index:4; }
#rvTop .rvt-tile:has(.bd:not([hidden])) { overflow:visible; }
html.cc-no-pulse :is(.bx-q .bd, .bx-cta-orb, .sx-cta, #nav.sx-nav #next, .rvt-pill .dot, .bx-st i, .ch-state::before, .ch-send, #homeAiSend, .sx-cta-orb) { animation:none !important; }
html.cc-no-shimmer :is(#s4.bx .mi .bx-ico, .sx-orb::after, .bx-orb::after) { animation:none !important; }
html.cc-no-globefx :is(.bx-ring .hud, .bx-ring .orbit, .ch-orb, .hm-globe::before) { animation:none !important; }
/* Seitenauftritt für die neuen Seiten: Bereiche gleiten gestaffelt herein */
:is(#home.cc-enter #hmRoot, #finance.cc-enter, #settingsPage.cc-enter, #aiChat.cc-enter .ch-root, #s4.cc-enter) > * { animation:cc-rise .55s cubic-bezier(.2,.7,.2,1) both; }
:is(#home.cc-enter #hmRoot, #finance.cc-enter, #settingsPage.cc-enter, #aiChat.cc-enter .ch-root, #s4.cc-enter) > :nth-child(2) { animation-delay:.06s; }
:is(#home.cc-enter #hmRoot, #finance.cc-enter, #settingsPage.cc-enter, #aiChat.cc-enter .ch-root, #s4.cc-enter) > :nth-child(3) { animation-delay:.12s; }
:is(#home.cc-enter #hmRoot, #finance.cc-enter, #settingsPage.cc-enter, #aiChat.cc-enter .ch-root, #s4.cc-enter) > :nth-child(4) { animation-delay:.18s; }
:is(#home.cc-enter #hmRoot, #finance.cc-enter, #settingsPage.cc-enter, #aiChat.cc-enter .ch-root, #s4.cc-enter) > :nth-child(n+5) { animation-delay:.24s; }
html.cc-no-pagefx :is(#hmRoot, #finance, #settingsPage, .ch-root, #s4) > * { animation-name:none !important; }
/* Randlicht auf den neuen Panels: ein Lichtpunkt läuft über die Oberkante.
   Nur ein 2px-Streifen auf eigener Ebene wird neu gezeichnet – kein Neuzeichnen des ganzen Panels, kein Flackern. */
html:not(.cc-no-glint) :is(.sx-panel, .bx-panel, #rvTop .rvt-tile.on)::after { content:''; position:absolute; top:-1px; left:16px; right:16px; height:2px; pointer-events:none; border-radius:2px;
  background:linear-gradient(90deg, transparent, rgba(160,215,255,.9) 30%, #fff 50%, rgba(255,190,120,.85) 70%, transparent) no-repeat; background-size:34% 100%;
  animation:rv-edge 8s linear infinite; opacity:.85; will-change:transform; transform:translateZ(0); }
#rvTop .rvt-tile.on::after { left:10px; right:10px; animation-duration:5s; }
@keyframes rv-edge { from { background-position:-60% 0; } to { background-position:160% 0; } }
html.cc-lite :is(.sx-panel, .bx-panel)::after { display:none; }
