/* V19 Studio Visuel — base éditoriale sans dépendance externe */
.tsf19-hero .hero-art{isolation:isolate;background-color:#11192a;background-image:url('/assets/visuals/stage.svg');background-position:center;background-size:cover;box-shadow:0 35px 110px rgba(0,0,0,.22)}
.tsf19-hero .hero-art::before{content:"";position:absolute;inset:-2px;z-index:0;pointer-events:none;background-size:cover;background-position:center;transform-origin:center;transform:scale(1);opacity:1}
.tsf19-hero .hero-art::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(160deg,rgba(12,16,28,.02),rgba(8,11,20,.4))}
.tsf19-hero .hero-art>*{z-index:1}.tsf19-hero .hero-art .art-ring{opacity:.5}.tsf19-hero .hero-art .art-mark{text-shadow:0 9px 50px #02050eb3}.tsf19-hero .hero-art .art-bottom{z-index:2}
.tsf19-area{position:relative;isolation:isolate}.tsf19-area::before{content:"";position:absolute;inset:0;z-index:0;background-image:url('/assets/visuals/atelier.svg');background-repeat:no-repeat;background-size:cover;background-position:center;pointer-events:none;opacity:.46;transform-origin:center}
.tsf19-area::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,14,25,.82),rgba(10,14,25,.65)),url('/assets/visuals/waves.svg') center/cover;opacity:.65}
.tsf19-area>*{position:relative;z-index:1}
.tsf19-slot-home_services::before{opacity:.37}.tsf19-slot-home_feature::before{opacity:.63;background-image:url('/assets/visuals/waves.svg')}.tsf19-slot-home_roster::before{opacity:.26}.tsf19-slot-home_final::before{opacity:.46}
.tsf19-slot-home_services .service-card{background:rgba(16,22,36,.90);backdrop-filter:blur(8px)}.tsf19-slot-home_roster .talent-card{background:rgba(16,22,36,.90)}
/* Trames intégrées, elles peuvent être remplacées pour chaque zone via /design. */
.tsf19-texture-grid::after{background-image:linear-gradient(to right,rgba(189,166,255,.10) 1px,transparent 1px),linear-gradient(to bottom,rgba(189,166,255,.10) 1px,transparent 1px)!important;background-size:48px 48px!important}
.tsf19-texture-lines::after{background-image:repeating-linear-gradient(116deg,transparent 0,transparent 28px,rgba(194,167,255,.13) 29px,transparent 30px)!important}
.tsf19-texture-waves::after{background-image:url('/assets/visuals/waves.svg')!important;background-size:cover!important}
.tsf19-texture-grain::after{background-image:repeating-radial-gradient(circle at 75% 36%,rgba(197,178,255,.12) 0 1px,transparent 2px 5px)!important;background-size:14px 14px!important}
.tsf19-texture-none::after{background-image:none!important}
.tsf19-hero.tsf19-texture-grid .hero-art::after{background-image:linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px)!important;background-size:44px 44px!important}
.tsf19-hero.tsf19-texture-lines .hero-art::after{background-image:repeating-linear-gradient(135deg,transparent 0 23px,#ffffff0d 24px 25px)!important}
.tsf19-hero.tsf19-texture-waves .hero-art::after{background-image:url('/assets/visuals/waves.svg')!important}
.tsf19-hero.tsf19-texture-grain .hero-art::after{background-image:repeating-radial-gradient(circle at 75% 36%,rgba(255,255,255,.12) 0 1px,transparent 2px 5px)!important;background-size:14px 14px!important}
.tsf19-hero.tsf19-texture-none .hero-art::after{background-image:none!important}
/* Studio */
.tsf19-studio-grid{display:grid;grid-template-columns:minmax(250px,1fr) minmax(290px,1fr);gap:25px}.tsf19-zone-list{display:grid;gap:7px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.tsf19-zone-list a{padding:14px;border:1px solid #3a4055;color:#d9deeb;font-size:.84rem}.tsf19-zone-list a.active{border-color:#b8f1c4;color:#b8f1c4;background:#192f2c}.tsf19-preview{height:clamp(280px,33vw,445px);position:relative;overflow:hidden;border:1px solid #667291;background:#12192b url('/assets/visuals/stage.svg') center/cover;touch-action:none;cursor:grab}.tsf19-preview:active{cursor:grabbing}.tsf19-preview>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}.tsf19-preview .tsf19-preview-shade{position:absolute;inset:0;pointer-events:none;background:#080b16}.tsf19-preview .tsf19-preview-label{position:absolute;bottom:0;left:0;right:0;padding:34px 22px 19px;background:linear-gradient(transparent,#060a16ce);font-weight:750;letter-spacing:.06em}.tsf19-preview .tsf19-preview-empty{display:block;position:absolute;top:45%;width:100%;text-align:center;color:#c8d2e6}.tsf19-slider{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}.tsf19-slider input{grid-column:1/-1;min-height:0;accent-color:#b8f1c4}.tsf19-media-picker{max-height:270px;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tsf19-media-picker label{display:flex;flex-direction:column;gap:5px;border:1px solid #495066;padding:6px;cursor:pointer;min-width:0}.tsf19-media-picker label:has(input:checked){border-color:#b8f1c4;background:#183a34}.tsf19-media-picker img{width:100%;height:76px;object-fit:cover}.tsf19-media-picker input{min-height:0;accent-color:#b8f1c4}.tsf19-media-picker small{font-size:.64rem;overflow-wrap:anywhere}
@media(max-width:840px){.tsf19-studio-grid{grid-template-columns:1fr}.tsf19-hero .hero-art{min-height:290px}.tsf19-media-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}

.tsf19-slot-talents_hero .hero-art{background-image:url('/assets/visuals/stage.svg')}
.tsf19-slot-agency_hero .hero-art,.tsf19-slot-expertises_hero .hero-art{background-image:url('/assets/visuals/atelier.svg')}
.tsf19-slot-brands_hero .hero-art,.tsf19-slot-realisations_hero .hero-art{background-image:url('/assets/visuals/waves.svg')}
.tsf19-preview.tsf19-texture-grid::after,.tsf19-preview.tsf19-texture-lines::after,.tsf19-preview.tsf19-texture-waves::after,.tsf19-preview.tsf19-texture-grain::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.3}
.tsf19-preview.tsf19-texture-grid::after{background-image:linear-gradient(to right,#ccc4ff57 1px,transparent 1px),linear-gradient(to bottom,#ccc4ff57 1px,transparent 1px);background-size:32px 32px}
.tsf19-preview.tsf19-texture-lines::after{background-image:repeating-linear-gradient(135deg,transparent 0 18px,#ccc4ff40 19px 20px)}
.tsf19-preview.tsf19-texture-waves::after{background:url('/assets/visuals/waves.svg') center/cover}
.tsf19-preview.tsf19-texture-grain::after{background-image:repeating-radial-gradient(circle at 25% 25%,#fff7 0 1px,transparent 2px 5px);background-size:14px 14px}
