/* DoriSan Interactive V3 — real generated micro-video layer, staging only */
.ds-live-wrap{position:relative!important;overflow:hidden!important;isolation:isolate}
.ds-live-wrap>img{position:relative;z-index:1}
.ds-live-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;opacity:0;pointer-events:none;transition:opacity .45s ease;transform:translateZ(0);background:transparent}
.ds-live-media.is-ready{opacity:1}
.d30-cover.ds-live-wrap .ds-live-media,.dorisan-home-live-grid .ds-live-media,.dorisan-home-live-hero .ds-live-media{border-radius:inherit}
.d30-album{transform-style:preserve-3d;transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease}
.d30-album.ds-v3-hover{transform:perspective(900px) rotateX(var(--ds-rx,0deg)) rotateY(var(--ds-ry,0deg)) translateY(-5px) scale(1.012);box-shadow:0 26px 78px rgba(0,0,0,.58)}
.d30-album.ds-v3-hover .ds-live-media{transform:translate3d(var(--ds-tx,0px),var(--ds-ty,0px),18px) scale(1.025)}
[data-dorisan-global-topbar],.d30-header{position:relative;overflow:hidden;isolation:isolate}
[data-dorisan-global-topbar]::before,.d30-header::before{content:"";position:absolute;inset:-40%;pointer-events:none;background:conic-gradient(from 180deg at 50% 50%,transparent,rgba(70,150,255,.12),transparent,rgba(255,58,72,.12),transparent,rgba(242,199,112,.12),transparent);animation:dsV3BarOrbit 14s linear infinite;z-index:0}
[data-dorisan-global-topbar]>* ,.d30-header>*{position:relative;z-index:1}
@keyframes dsV3BarOrbit{to{transform:rotate(360deg)}}
.d30-slogan{position:relative;overflow:hidden}
.d30-slogan::after{content:"";position:absolute;left:-35%;top:0;width:25%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.17),transparent);transform:skewX(-18deg);animation:dsV3SloganSweep 6s ease-in-out infinite;pointer-events:none}
@keyframes dsV3SloganSweep{0%,55%{left:-35%;opacity:0}62%{opacity:1}82%{left:115%;opacity:.7}100%{left:115%;opacity:0}}
.d30-logo.ds-live-wrap{display:inline-flex!important;align-items:center}
.d30-logo .ds-live-media{width:44px;height:44px;inset:auto auto auto 0;border-radius:10px;object-fit:cover}
.ds-v3-loading::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(120deg,transparent 0 42%,rgba(255,255,255,.07) 50%,transparent 58%);animation:dsV3Load 1.8s linear infinite}
@keyframes dsV3Load{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:700px){.d30-album.ds-v3-hover{transform:none}.ds-live-media{transition-duration:.25s}[data-dorisan-global-topbar]::before,.d30-header::before{animation-duration:20s}}
@media(prefers-reduced-motion:reduce){.ds-live-media{display:none!important}[data-dorisan-global-topbar]::before,.d30-header::before,.d30-slogan::after{animation:none!important}.d30-album{transform:none!important}}
/* V3.1 generated alternate-frame motion */
.ds-alt-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;pointer-events:none;opacity:0;will-change:opacity,transform,filter;animation:dsAltBreathe 3.6s ease-in-out infinite}
.ds-alt-frame.is-ready{opacity:0;animation-play-state:running}
@keyframes dsAltBreathe{0%,100%{opacity:0;transform:scale(1)}45%,58%{opacity:.9;transform:scale(1.012)}72%{opacity:.28;transform:scale(1.004)}}
[data-ds-alt-mode="heart"] .ds-alt-frame{clip-path:inset(7% 0 13% 0);animation:dsAltHeart 2.2s ease-in-out infinite}
@keyframes dsAltHeart{0%,28%,100%{opacity:0;transform:scale(1)}38%{opacity:.94;transform:scale(1.025)}48%{opacity:.16;transform:scale(1.004)}58%{opacity:.82;transform:scale(1.016)}70%{opacity:0;transform:scale(1)}}
[data-ds-alt-mode="wolves"] .ds-alt-frame{clip-path:inset(4% 0 13% 0);animation-duration:4.2s}
[data-ds-alt-mode="car"] .ds-alt-frame{clip-path:inset(18% 0 5% 0);animation-duration:4.6s}
[data-ds-alt-mode="stars"] .ds-alt-frame{clip-path:inset(5% 0 12% 0);animation-duration:3.8s}
[data-ds-alt-mode="door"] .ds-alt-frame{clip-path:inset(5% 0 9% 0);animation-duration:4.8s}
[data-ds-alt-mode="ritual"] .ds-alt-frame,[data-ds-alt-mode="club"] .ds-alt-frame,[data-ds-alt-mode="ai"] .ds-alt-frame,[data-ds-alt-mode="album"] .ds-alt-frame{clip-path:inset(7% 0 12% 0);animation-duration:3s}
[data-ds-alt-mode="sea"] .ds-alt-frame{clip-path:inset(4% 0 8% 0);animation-duration:5.2s}
[data-ds-alt-mode="live"] .ds-alt-frame{animation-duration:5.5s;opacity:0}
[data-ds-alt-mode="logo"] .ds-alt-frame{animation:dsAltLogo 2.8s ease-in-out infinite;border-radius:10px}
@keyframes dsAltLogo{0%,100%{opacity:0;filter:brightness(1)}50%{opacity:.88;filter:brightness(1.08)}}
[data-ds-alt-mode="epk"] .ds-alt-frame{clip-path:polygon(47% 0,100% 0,100% 100%,47% 100%);animation-duration:4.8s}
[data-ds-alt-mode="poster"] .ds-alt-frame{opacity:0;mix-blend-mode:screen;animation:dsAltPoster 5s ease-in-out infinite}
@keyframes dsAltPoster{0%,100%{opacity:0}50%{opacity:.28}}
.ds-product-motion{will-change:transform,filter;animation:dsProductFloat 5.8s ease-in-out infinite;transform-origin:50% 65%}
@keyframes dsProductFloat{0%,100%{transform:perspective(700px) rotateY(-1deg) translateY(0) scale(1);filter:brightness(1)}50%{transform:perspective(700px) rotateY(1.2deg) translateY(-1.2%) scale(1.012);filter:brightness(1.06)}}
.ds-live-wrap:has(.ds-product-motion)::after{content:"";position:absolute;inset:-25%;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.13) 48%,transparent 58%);animation:dsProductSheen 5.5s linear infinite}
@keyframes dsProductSheen{0%,55%{transform:translateX(-90%)}85%,100%{transform:translateX(90%)}}
@media(prefers-reduced-motion:reduce){.ds-alt-frame,.ds-product-motion{animation:none!important}.ds-alt-frame{display:none!important}}
.d30-logo .ds-alt-frame{width:44px!important;height:44px!important;inset:0 auto auto 0!important;object-fit:cover;border-radius:10px}
.ds-player-cover-motion{animation:dsPlayerCover 4s ease-in-out infinite;transform-origin:center;will-change:transform,filter}
@keyframes dsPlayerCover{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.018);filter:brightness(1.06)}}
.ds-product-wrap{position:relative;overflow:hidden;isolation:isolate}
.ds-product-wrap::after{content:"";position:absolute;inset:-25%;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.13) 48%,transparent 58%);animation:dsProductSheen 5.5s linear infinite}
@media(prefers-reduced-motion:reduce){.ds-player-cover-motion{animation:none!important}.ds-product-wrap::after{display:none!important}}
