/* Manrope by the Manrope Project Authors. SIL OFL 1.1: assets/fonts/OFL-Manrope.txt. */
@font-face{font-family:'Minevi Manrope';src:url('assets/fonts/Manrope-Variable.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
/* V0.3 — direction artistique : lecture, proportions, rythme. */
:root{
 --font-text:'Minevi Manrope','Avenir Next','Segoe UI',Arial,Helvetica,sans-serif;
 --font-accent:Georgia,'Times New Roman',serif;
 --size-body:18px;--size-small:15px;--section-space:104px;
 --gutter:clamp(28px,5.5vw,104px);--header-height:96px;
 --muted:#b8c1cf;--line:#ffffff25;
}
body{font-size:18px;line-height:1.75;font-weight:400}
h1,h2,h3{text-wrap:balance;font-weight:600}
h2{font-size:clamp(40px,4.2vw,64px);line-height:1.13;letter-spacing:-.035em;max-width:19ch;margin:18px 0 30px}
h3{letter-spacing:-.02em}
p{text-wrap:pretty}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.15em;line-height:1.65}
.lead,.identity .lead,.group-context,.service p,.offer p,.discipline-panel p,.contact .lead{
 font-size:18px;line-height:1.8;letter-spacing:0;
}
.lead{max-width:56ch}
.light .lead,.group-context{color:#485463}
header{height:96px;border-bottom:1px solid #d9b77938;gap:28px;background:#080e1bf5}
.brand{padding:5px 11px;border-radius:4px;border-color:#d9b77960}
.brand img{width:60px;height:61px}
nav{gap:clamp(20px,2vw,34px);font-size:16px}
nav>a{font-size:16px;font-weight:500;color:#e0e4eb;padding-block:14px}
.nav-cta{font-size:15px;padding:13px 20px;gap:22px;border-radius:3px}
.lang-toggle{font-size:15px;min-height:46px}
.reading-progress{top:95px}
.hero{min-height:760px;padding-top:76px;padding-bottom:96px}
.hero-copy{max-width:51%}
.hero .eyebrow{font-size:13px;letter-spacing:.16em;margin-bottom:28px}
.hero h1{font-size:clamp(72px,7.2vw,112px);font-weight:500;line-height:1.04;letter-spacing:-.055em;margin-bottom:30px}
.hero h1 em{font-weight:400;letter-spacing:-.045em}
.hero-intro{font-size:19px;line-height:1.8;max-width:43ch;color:#d0d6df;margin-bottom:32px}
.hero-actions{gap:22px}
.hero .btn,.hero .hero-link,.btn,.hero-link{font-size:16px;line-height:1.5;font-weight:600;letter-spacing:0}
.btn{min-height:56px;padding:16px 24px;gap:22px;border-radius:3px;box-shadow:0 5px 22px #0001}
.hero-link{padding:13px 0;min-height:50px}
.hero .hero-link{background:none}
.hero-motto{font-size:13px;letter-spacing:.12em;margin-top:36px;color:#c1c9d4}
.hero-motto b{margin:0 7px}
.hero-bottom{font-size:12px;letter-spacing:.12em;bottom:24px;color:#c0c8d3}
.hero-bottom a{gap:18px;min-height:36px}
.hero-brand:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#080e1b65 0%,#080e1b20 42%,transparent 66%)}
.section{position:relative}
.section-head{align-items:flex-start;gap:56px;margin-bottom:48px}
.section-head h2{margin-bottom:0}
.section-head .lead{font-size:18px;line-height:1.8;max-width:36ch;padding-top:34px;margin:0}
.intro-grid{grid-template-columns:1fr 1fr;gap:9%;align-items:center}
.statement{font-size:clamp(28px,2.7vw,40px);line-height:1.5;letter-spacing:-.025em;margin:0 0 26px}
.mini{font-size:14px;line-height:1.8;letter-spacing:.04em;color:#56616e}
.group-context{font-size:17px;line-height:1.8;margin-top:26px;max-width:48ch}
.rule{background:#8b642d38;margin:30px 0}
.services{gap:26px}
.services>.service{padding:32px;border:1px solid #d9b77935;border-radius:5px;background:linear-gradient(155deg,#16233a,#0d1728)}
.services .num{font-size:13px;letter-spacing:.16em;line-height:1.8}
.services .num:after{font-size:22px}
.services .logo-panel{height:132px;margin:30px 0 0;padding:20px;background:#f6f3ed;border-radius:3px}
.services .division-logo{max-width:228px;height:88px}
.services .service h3{font-size:28px;line-height:1.25;margin:28px 0 18px;min-height:0}
.services .service>p{font-size:18px;line-height:1.8;color:#c2cbd8;min-height:0;flex:1;margin-bottom:0}
.services .service details{margin-top:28px;padding-top:18px;border-color:#d9b77940;font-size:16px}
.services .service summary{font-size:16px;line-height:1.6;gap:14px;min-height:46px}
.services .service summary>span:last-child{font-size:24px}
.services .service ul{font-size:16px;line-height:1.85;color:#c2cbd8;margin-block:16px}
.services .status{position:absolute;top:31px;right:32px;align-self:auto;margin:0;font-size:11px;font-weight:600;letter-spacing:.04em;padding:4px 8px;color:#e4c58e;border-color:#d9b77970}
.service-link{font-size:16px;padding:12px 0;color:#e4c58e}
.service:hover,.service:focus-within{transform:translateY(-4px);border-color:#d9b77990}
.internal-head{margin-top:46px;padding-top:28px}
.internal-head .eyebrow{font-size:12px}
.internal-services{gap:9%}
.internal-services .service h3{font-size:22px;margin-bottom:12px}
.internal-services .service p{font-size:17px;line-height:1.8;color:#b9c3d2;max-width:50ch}
.showcase{background:linear-gradient(145deg,#101e33,#0b1423);border-block:1px solid #d9b77925}
.portfolio-heading{margin:8px 0 30px;gap:26px;align-items:center}
.portfolio-heading h3{font-size:26px;line-height:1.35;font-weight:500}
.filters{gap:10px}
.filters button{font-size:15px;line-height:1.5;min-height:46px;padding:10px 18px;color:#ccd4df;border-color:#ffffff38;transition:background .2s,color .2s,border-color .2s}
.filters button:hover{border-color:var(--gold);color:var(--gold)}
.filters button[aria-pressed=true]{color:var(--navy);font-weight:600;box-shadow:0 3px 14px #0002}
.gallery{gap:26px}
.media-placeholder{border:1px solid #d9b77945;border-radius:5px;overflow:hidden;background:#132037}
.media-slot{aspect-ratio:4/3;font-size:15px;letter-spacing:.04em;gap:18px;color:#bec8d8;background:radial-gradient(ellipse at center,#26365050,transparent 70%),#101b2e}
.frame-corners{inset:25px;border-color:#d9b77955;border-radius:2px}
.slot-symbol{font-size:40px;color:var(--gold)}
.slot-caption{padding:24px}
.slot-caption h3{font-size:23px;line-height:1.3;margin-bottom:10px;font-weight:500}
.slot-caption>span{font-size:15px;color:#b3bfd0}
.gallery-notice{font-size:15px;line-height:1.75;color:#b4bfd0;margin-top:24px;max-width:70ch}
.work-card{border-radius:5px;overflow:hidden}
.work-card h3{font-size:24px}
.work-card p{font-size:17px}
.offers{gap:38px;margin-top:48px}
.offer{padding-right:32px}
.offer .icon{font-size:34px;height:48px;color:#8b642d}
.offer h3{font-size:26px;line-height:1.3;margin:22px 0 18px;min-height:2.6em}
.offer p{font-size:18px;line-height:1.8;color:#485463;margin-bottom:0}
.contact{gap:8%;align-items:start}
.contact h2{font-size:clamp(42px,4.5vw,66px);line-height:1.13;max-width:14ch;margin:22px 0 30px}
.contact .lead{font-size:18px;line-height:1.8;color:#c2cbd8;margin-bottom:30px}
.contact-details{font-size:17px;line-height:1.8;gap:12px;margin-top:28px}
.contact-details a{text-underline-offset:5px}
.contact-details a:hover{text-decoration:underline;color:var(--gold)}
form{padding:38px;background:var(--ivory);border:1px solid #e9d8b8;border-radius:5px;box-shadow:0 24px 64px #0002}
form h3{font-size:32px;line-height:1.25;font-weight:500;margin:20px 0 28px}
form .eyebrow{font-size:12px}
label{font-size:16px;font-weight:500;line-height:1.5;margin:22px 0 10px}
input,select,textarea{font-size:17px;line-height:1.65;min-height:50px;padding:10px 0 12px;border-bottom-color:#56616e80}
.form-row{gap:22px}
.form-note{font-size:15px;line-height:1.75;margin-top:26px;color:#4d5866}
form .btn{font-size:16px!important;margin-top:12px;width:100%}
.field-error{font-size:14px;line-height:1.65}
#form-status,#copy-status{font-size:16px;line-height:1.75}
#prepared-message{font-size:16px;padding:14px;line-height:1.75;min-height:210px}
.contact-result{margin-top:28px;padding-top:12px}
.contact-actions .btn{margin-top:0}
.contact-copy-button,.contact-email{font-size:15px;min-height:48px}
.contact-copy-button{border-radius:3px;padding:12px 16px}
footer{padding-top:36px;padding-bottom:36px;gap:32px;border-top:1px solid #d9b77935;align-items:center}
footer>div>strong{font-size:18px;line-height:1.6}
footer>div>span{font-size:15px;line-height:1.7;letter-spacing:.02em}
footer p,footer>a:last-child{font-size:14px;line-height:1.7}
footer .footer-brand img{width:72px;height:66px;object-fit:contain}
.floating{font-size:15px;min-height:52px;padding:14px 20px;gap:10px;border-radius:3px;box-shadow:0 8px 30px #0003}
.floating svg{width:22px;height:22px}
dialog h3{font-size:28px}
.btn:hover{transform:translateY(-2px)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline-width:3px;outline-offset:5px}
@media(min-width:1650px){.hero{min-height:850px}.hero-copy{max-width:48%}}
@media(max-width:1200px) and (min-width:1051px){
 nav{gap:18px}nav>a{font-size:15px}.nav-cta{padding:12px 16px;font-size:14px}
 header{gap:20px}.hero .hero-link{font-size:15px}.hero-actions{gap:18px}
 .services>.service{padding:26px}.services .status{right:26px;top:26px}
}
@media(max-width:1050px){
 :root{--header-height:86px;--section-space:88px}
 header{height:86px}.reading-progress{top:85px}
 #nav{top:85px;max-height:calc(100dvh - 86px);padding:22px var(--gutter) 30px}
 #nav>a{font-size:18px;min-height:52px;padding:14px 0}
 #nav>.nav-cta{padding:16px 20px}
 .lang-toggle{font-size:15px;min-height:46px}
 .hero{min-height:700px;padding-top:60px;padding-bottom:88px}
 .hero-copy{max-width:60%}
 .hero h1{font-size:clamp(68px,8vw,88px)}
 .hero-intro{font-size:18px;max-width:38ch}
 .hero .btn,.hero .hero-link{font-size:16px}
 .hero-motto{font-size:12px}
 .section-head{gap:32px}.section-head .lead{max-width:37ch;font-size:18px;padding-top:28px}
 .services{gap:24px}.services>.service{padding:30px}
 .services .status{right:30px;top:30px}
 .services .service h3{font-size:28px;min-height:0}
 .services .service>p{font-size:18px}
 .services .service:last-child{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
 .services .service:last-child .num{grid-column:1/-1}
 .services .service:last-child .logo-panel{grid-row:2/5;align-self:center;margin-top:20px}
 .services .service:last-child h3{grid-column:2;margin-top:24px}
 .services .service:last-child>p{grid-column:2}
 .services .service:last-child details{grid-column:2}
 .portfolio-heading{align-items:flex-start;flex-direction:column}
 .filters{margin:0}
 .offers{gap:26px}.offer{padding-right:22px}.offer h3{font-size:24px}
 .contact{grid-template-columns:1fr;gap:44px}
 .contact-copy{max-width:68ch}.contact h2{max-width:18ch}
 form{max-width:none;padding:36px}.form-row{grid-template-columns:1fr 1fr}
 footer{flex-wrap:wrap;padding-bottom:100px}
}
@media(min-width:651px) and (max-width:900px){
 .hero-copy{max-width:66%}.hero h1{font-size:68px}
 .hero-scene{opacity:.75;object-position:65% center}
 .hero-brand:after{background:linear-gradient(90deg,#080e1be0 0%,#080e1b70 48%,transparent 80%)}
 .hero-actions{flex-direction:column;align-items:flex-start;gap:10px}
 .intro-grid{grid-template-columns:1fr;gap:32px}.intro-grid .lead{max-width:60ch}
 .statement{font-size:34px;max-width:36ch}
 .section-head{display:block}.section-head .lead{max-width:60ch;padding-top:22px}
 .offers{grid-template-columns:1fr;gap:28px}.offer{border-right:0;border-bottom:1px solid #15213b30;padding:0 0 28px}
 .offer:last-child{border-bottom:0;padding-bottom:0}.offer h3{min-height:0;margin:12px 0}
 .offer p{max-width:64ch}
}
@media(max-width:650px){
 :root{--gutter:24px;--section-space:68px;--size-body:17px}
 body{font-size:17px;line-height:1.75}
 header{padding-inline:24px;gap:18px}.brand img{width:50px;height:51px}
 .brand{padding:4px 9px}.header-tools{gap:12px}
 h2{font-size:40px;line-height:1.17;letter-spacing:-.035em;margin:16px 0 24px}
 .eyebrow{font-size:12px;line-height:1.7;letter-spacing:.12em}
 .hero{padding-top:44px;padding-bottom:56px;min-height:0;gap:24px}
 .hero-copy{max-width:none}
 .hero .eyebrow{font-size:11px;line-height:1.7;letter-spacing:.11em;margin-bottom:24px}
 .hero h1{font-size:clamp(54px,15.5vw,92px);line-height:1.06;margin-bottom:24px}
 .hero-intro{font-size:17px;line-height:1.8;max-width:43ch;margin-bottom:26px}
 .hero-actions{flex-direction:column;align-items:stretch;gap:10px}
 .hero .btn{font-size:16px;padding:16px 20px;justify-content:space-between}
 .hero .hero-link{font-size:16px;align-self:flex-start;min-height:48px}
 .hero-motto{font-size:11px;letter-spacing:.08em;margin-top:24px}
 .hero-motto b{margin-inline:5px}
 .hero-brand{height:310px;width:calc(100% + 48px);margin:0 -24px}
 .hero-brand:after{background:linear-gradient(180deg,#080e1b50,transparent 35%)}
 .hero-scene{opacity:1;object-position:83% center}
 .hero-bottom{font-size:10px;letter-spacing:.08em;bottom:12px}
 .hero-bottom a{gap:12px}
 .lead,.identity .lead,.group-context,.service p,.offer p,.contact .lead{font-size:17px;line-height:1.8}
 .section-head{display:block;margin-bottom:32px}
 .section-head .lead{font-size:17px;line-height:1.8;max-width:none;margin-top:20px;padding:0}
 .intro-grid{grid-template-columns:1fr;gap:28px}.statement{font-size:29px;line-height:1.5;margin:0 0 22px}
 .mini{font-size:14px}.group-context{margin-top:22px}
 .services{gap:22px}.services>.service{padding:28px}
 .services .num{font-size:13px}.services .status{right:28px;top:28px;font-size:11px}
 .services .logo-panel{height:124px;margin-top:28px}
 .services .division-logo{max-width:230px;height:84px}
 .services .service h3{font-size:28px;margin:26px 0 18px}
 .services .service>p{font-size:17px;line-height:1.8}
 .services .service details{margin-top:24px;font-size:16px}
 .services .service summary,.services .service ul{font-size:16px}
 .services .service:last-child{display:flex}
 .internal-head{margin-top:34px;padding-top:26px}
 .internal-services{gap:28px}
 .internal-services .service h3{font-size:23px}.internal-services .service p{font-size:17px}
 .portfolio-heading{margin:0 0 26px;gap:20px;display:flex;flex-direction:column}
 .portfolio-heading h3{font-size:25px}
 .filters{gap:8px;margin:0}.filters button{font-size:14px;min-height:44px;padding:10px 13px}
 .gallery{gap:22px}.media-slot{font-size:15px;aspect-ratio:4/3}
 .frame-corners{inset:22px}.slot-caption{padding:23px}
 .slot-caption h3{font-size:24px}.slot-caption>span,.gallery-notice{font-size:15px}
 .offers{gap:28px;margin-top:32px}.offer{display:block;padding:0 0 28px}
 .offer .icon{height:40px;font-size:32px}
 .offer h3{font-size:26px;min-height:0;margin:14px 0}
 .offer p{font-size:17px}
 .contact{gap:34px}.contact h2{font-size:43px;line-height:1.16;max-width:15ch}
 .contact .lead{font-size:17px}.contact .btn{font-size:16px}
 .contact-details{font-size:17px;gap:12px}
 form{padding:26px}.form-row{grid-template-columns:1fr;gap:0}
 form h3{font-size:29px;line-height:1.3;margin:18px 0 24px}
 label{font-size:16px;margin:20px 0 10px}
 input,select,textarea,#prepared-message{font-size:17px;line-height:1.65;min-height:50px}
 textarea{min-height:120px}#prepared-message{min-height:230px}
 .form-note{font-size:15px;line-height:1.75}
 form .btn{font-size:16px!important;white-space:normal;gap:12px;padding:16px 18px}
 .contact-copy-button,.contact-email{font-size:16px}
 .btn,.hero-link{font-size:16px}
 footer{gap:24px;padding-top:30px;padding-bottom:108px}
 footer p{width:100%;font-size:14px}footer>a:last-child{font-size:14px;margin-left:0}
 footer>div>strong{font-size:17px}footer>div>span{font-size:14px}
 footer .footer-brand img{width:65px;height:62px}
 .floating{font-size:14px;padding:12px 16px;min-height:48px}
}
@media(max-width:360px){
 :root{--gutter:20px}
 header{padding-inline:20px}
 .hero h1{font-size:50px}
 .hero-brand{height:280px;width:calc(100% + 40px);margin-inline:-20px}
 .hero-motto{font-size:10px;letter-spacing:.05em}
 .services>.service{padding:24px}.services .status{right:24px;top:25px;font-size:10px}
 form{padding:22px}form h3{font-size:27px}h2,.section-head h2{font-size:36px}
 .filters button{font-size:13px;padding-inline:11px}
}
@media(prefers-reduced-motion:reduce){.service:hover,.btn:hover{transform:none}}

/* V0.3.1 — consistent typography in form controls and validation feedback. */
body{font-weight:450}
button,input,select,textarea,option,optgroup{font-family:var(--font-text)}
.field-error,.form-note,#form-status,#copy-status{font-family:var(--font-text);font-weight:450;letter-spacing:0}
.field-error{color:#9a302b;font-size:15px;line-height:1.7}
label{font-weight:600}
form h3{font-weight:600;letter-spacing:-.035em}
input,select,textarea{font-weight:450}
.services .service h3{font-weight:600}
nav>a{font-weight:600}
@media(max-width:650px){.field-error{font-size:14px}}

/* V0.3.2 — legible small text, stronger opening statement, refined enquiry form. */
.eyebrow,.hero .eyebrow,.internal-head .eyebrow{font-size:16px;font-weight:650;letter-spacing:.09em;line-height:1.6}
.light .eyebrow{color:#79501f}
.services .num{font-size:16px;font-weight:600;letter-spacing:.07em;line-height:1.65}
.services .status{font-size:13px;letter-spacing:.015em;line-height:1.55;padding:5px 8px}
.hero-intro{font-size:clamp(23px,2vw,29px);font-weight:500;line-height:1.55;letter-spacing:-.018em;max-width:33ch;color:#f1ede5;margin:0 0 32px;text-wrap:pretty}
.hero-copy{max-width:53%}
.hero{min-height:840px}
.hero-motto{font-size:15px;letter-spacing:.08em;color:#d1d7df}
.hero-bottom{font-size:14px;letter-spacing:.07em}
.mini{font-size:16px;line-height:1.75;color:#485463}
.gallery-notice,.slot-caption>span{font-size:16px;color:#c1cad7}
.internal-services .service p{font-size:18px}
.contact-details{font-size:20px;line-height:1.7;gap:14px;margin-top:30px;color:#d8dfe8}
.contact-details a{display:inline-block;max-width:100%;overflow-wrap:anywhere}
.contact h2{margin-bottom:26px}
form{position:relative;padding:40px;border:1px solid #d9c5a2;border-radius:14px;background:linear-gradient(155deg,#fffdf8,#f1ede5);box-shadow:0 28px 70px #0003;color:#121c2c}
form:before{content:'';display:block;width:58px;height:3px;background:#a0783e;margin-bottom:24px;border-radius:3px}
form .form-head{align-items:center}
form .eyebrow{font-size:16px;letter-spacing:.09em;color:#79501f}
form h3{font-size:34px;line-height:1.25;letter-spacing:-.035em;margin:20px 0 30px}
label{font-size:18px;font-weight:600;line-height:1.5;margin:24px 0 10px;color:#172438}
input,select,textarea{background:#fffdf9;color:#172438;border:1px solid #b6b4ae;border-radius:7px;padding:14px 16px;font-size:18px;line-height:1.6;min-height:58px;transition:border-color .18s,box-shadow .18s;box-shadow:0 1px 3px #17243805}
select{padding-right:36px;cursor:pointer}
textarea{min-height:155px}
input:hover,select:hover,textarea:hover{border-color:#8a785d}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #8b652e;outline-offset:3px;border-color:#8b652e;box-shadow:0 0 0 4px #d9b77918}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border:1.5px solid #a1302b;background:#fff9f6}
.field-error{font-size:16px;line-height:1.65;margin:8px 0 0;color:#962d29}
.form-row{gap:20px}
.form-note{font-size:16px;line-height:1.8;color:#465363;background:#e7e1d659;border-left:3px solid #ad8b57;border-radius:0 5px 5px 0;padding:14px 16px;margin:26px 0 20px}
form .btn{font-size:18px!important;min-height:60px;padding:17px 21px;border-radius:7px;box-shadow:0 8px 20px #080e1b14;transition:background .18s,box-shadow .18s,transform .18s}
form .btn:hover{box-shadow:0 10px 22px #080e1b25}
#form-status,#copy-status{font-size:17px;line-height:1.75;margin:16px 0 0}
#form-status:empty,#copy-status:empty{margin:0}
.contact-result{margin-top:26px;padding-top:18px;border-color:#c9b998}
#prepared-message{font-size:17px;line-height:1.75;border-radius:7px;padding:14px 16px;min-height:230px;background:#fffdf9}
.contact-copy-button,.contact-email{font-size:17px;min-height:50px}
.contact-copy-button{border-radius:7px}
footer>div>span,footer p,footer>a:last-child{font-size:16px}
@media(max-width:1200px) and (min-width:1051px){
 .hero-intro{font-size:24px;max-width:32ch}
 .services .num{font-size:15px}
 .services .status{font-size:12px}
}
@media(max-width:1050px){
 .hero{min-height:790px}
 .hero-intro{font-size:25px;line-height:1.6;max-width:33ch}
 .hero-copy{max-width:65%}
 .services .num{font-size:16px}
 .contact-details{font-size:20px}
 form{padding:36px}
}
@media(min-width:651px) and (max-width:900px){
 .hero-copy{max-width:72%}
 .hero-intro{font-size:24px}
 .hero .eyebrow{font-size:15px}
}
@media(max-width:650px){
 .eyebrow,.hero .eyebrow,.internal-head .eyebrow{font-size:15px;letter-spacing:.07em;line-height:1.65}
 .hero{min-height:0}
 .hero-copy{max-width:none}
 .hero-intro{font-size:22px;line-height:1.6;letter-spacing:-.015em;max-width:none;margin-bottom:28px}
 .hero-motto{font-size:13px;letter-spacing:.05em}
 .hero-bottom{font-size:12px;letter-spacing:.035em}
 .mini{font-size:16px}
 .services .num{font-size:16px}
 .services .status{position:static;align-self:flex-start;margin:0 0 18px;font-size:14px;padding:5px 9px}
 .contact-details{font-size:19px;gap:14px}
 form{padding:28px 24px;border-radius:12px}
 form:before{margin-bottom:22px}
 form .eyebrow{font-size:15px}
 form h3{font-size:30px;margin:18px 0 26px}
 label{font-size:17px;margin-top:22px}
 input,select,textarea{font-size:17px;min-height:56px;padding:13px 14px}
 textarea{min-height:150px}
 .field-error,.form-note{font-size:16px}
 .form-note{padding:13px 14px;margin-top:24px}
 form .btn{font-size:17px!important;padding:16px;min-height:58px}
 #form-status,#copy-status{font-size:16px}
 #prepared-message{font-size:17px;min-height:230px}
 .contact-copy-button,.contact-email{font-size:17px}
 footer p,footer>a:last-child,footer>div>span{font-size:15px}
}
@media(max-width:360px){
 .hero-intro{font-size:21px}
 .hero .eyebrow{font-size:14px;letter-spacing:.04em}
 .hero-motto{font-size:12px}
 form{padding:26px 20px}
 form h3{font-size:28px}
}
@media(prefers-reduced-motion:reduce){input,select,textarea,form .btn{transition:none}}

/* Section markers 01–05: explicit priority over inherited small labels. */
#groupe .intro-grid > div > .eyebrow,
#poles .section-head .eyebrow,
#realisations .section-head .eyebrow,
#offres > .eyebrow,
#contact .contact-copy > .eyebrow{font-size:20px;font-weight:700;line-height:1.6;letter-spacing:.065em}
@media(max-width:650px){
 #groupe .intro-grid > div > .eyebrow,
 #poles .section-head .eyebrow,
 #realisations .section-head .eyebrow,
 #offres > .eyebrow,
 #contact .contact-copy > .eyebrow{font-size:18px;letter-spacing:.045em}
}

/* V0.4 — targeted optical and typographic finishes; official logo pixels unchanged. */
#poles .section-head .lead{font-size:18px;line-height:1.8;max-width:36ch;color:#c8d1dd}
.group-context{font-size:18px;line-height:1.8}
.services .logo-panel{height:144px;padding:18px 24px;background:#fff;border:1px solid #d9b77955;border-radius:4px;box-shadow:0 1px 0 #fff1}
.services .division-logo{display:block;max-width:100%;width:232px;height:104px;object-fit:contain}
.services .division-logo[src$="pictures-black.webp"]{width:180px;height:108px}
.services .division-logo[src$="tv-black.webp"]{width:258px;height:92px}
.services .service h3{margin-top:26px;margin-bottom:17px}
.services .service>p{color:#c8d1dd;line-height:1.8}
.services .service details{border-color:#d9b77945}
.services .service summary{font-weight:550;line-height:1.65}
.offers{column-gap:36px;align-items:stretch}
.offer{padding-right:30px;border-right-color:#16233a28}
.offer .icon{height:44px;display:flex;align-items:center;line-height:1;color:#845d29}
.offer .icon svg{width:32px;height:32px;display:block;flex:none}
.offer h3{margin:16px 0 16px;line-height:1.35;min-height:2.7em}
.offer p{margin:0;line-height:1.85;color:#485463}
.filters button{font-size:16px;min-height:46px}
.media-slot{font-size:16px;color:#c2ccda}
.gallery-notice{line-height:1.8}
.hero-link,.service-link{text-underline-offset:5px}
.btn,.nav-cta,.filters button{transition-duration:.18s}
@media(min-width:651px) and (max-width:900px){
 .offer h3{min-height:0;margin:14px 0}
 .offer{padding-bottom:28px}
}
@media(max-width:650px){
 #poles .section-head .lead,.group-context{font-size:17px;line-height:1.8}
 .services .logo-panel{height:136px;padding:18px 22px}
 .services .division-logo{width:228px;height:98px}
 .services .division-logo[src$="pictures-black.webp"]{width:164px;height:98px}
 .services .division-logo[src$="tv-black.webp"]{width:246px;height:92px}
 .offer{padding-right:0}
 .offer h3{min-height:0;margin:14px 0 16px}
 .filters button{font-size:16px;padding-inline:14px}
 .media-slot{font-size:16px}
}
@media(max-width:360px){
 .services .logo-panel{padding-inline:16px}
 .filters button{font-size:15px;padding-inline:11px}
}
@media(prefers-reduced-motion:reduce){.btn,.nav-cta,.filters button{transition:none}}

/* Keep the opening statement clear of the gold artwork. */
.hero-intro{font-size:clamp(22px,1.8vw,26px);max-width:30ch;line-height:1.6}
@media(min-width:651px) and (max-width:1050px){
 .hero-intro{font-size:23px;max-width:29ch}
}
@media(max-width:650px){
 .hero-intro{font-size:22px;max-width:100%}
}
@media(max-width:360px){.hero-intro{font-size:21px}}

/* Independent cards, with a clear directional disclosure control. */
footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:28px;padding-block:36px}
footer .footer-identity{display:flex;align-items:center;gap:24px;min-width:0}
footer .footer-identity>div{display:flex;flex-direction:column;gap:7px}
footer .footer-identity strong{color:var(--gold);font-size:18px;font-weight:500;line-height:1.5}
footer .footer-identity>div>span{color:#b8c4d5;font-size:16px;line-height:1.7}
footer .footer-brand{flex:0 0 auto;margin:0}
footer .footer-copyright{width:auto;margin:0;text-align:center;justify-self:center;font-size:16px;white-space:nowrap}
footer>a:last-child{justify-self:end;margin:0;font-size:16px;text-underline-offset:5px}
footer>a:last-child:hover{color:var(--gold);text-decoration:underline}
@media(max-width:1100px){
 footer{grid-template-columns:1fr 1fr;gap:26px}
 footer .footer-identity{grid-column:1/-1}
 footer .footer-copyright{grid-column:1/-1;grid-row:3;justify-self:center}
 footer>a:last-child{grid-column:2;grid-row:1}
 footer .footer-identity{padding-right:180px}
}
@media(max-width:650px){
 footer{display:flex;flex-direction:column;align-items:center;gap:24px;padding-block:32px}
 footer .footer-identity{padding:0;gap:18px;justify-content:center}
 footer .footer-identity strong{font-size:17px}
 footer .footer-identity>div>span{font-size:15px}
 footer .footer-copyright{order:3;font-size:15px;white-space:normal}
 footer>a:last-child{font-size:16px}
}
.contact-details>a,.contact-details>span{display:flex;align-items:flex-start;gap:15px;max-width:100%}
.contact-details .contact-icon{flex:0 0 23px;width:23px;height:23px;color:var(--gold);margin-top:.28em}
.contact-details>a>span,.contact-details>span>span{min-width:0;overflow-wrap:anywhere}
.services{align-items:start}
.services .service summary{padding:5px 0;min-height:54px}
.services .service summary .expertise-chevron{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid #d9b77970;border-radius:50%;color:var(--gold);background:#d9b7790a;transition:transform .35s ease,background .25s ease,color .25s ease}
.services .service details[open] summary .expertise-chevron{transform:rotate(180deg);background:var(--gold);color:var(--navy)}
.services .service summary:hover .expertise-chevron{background:var(--gold);color:var(--navy)}
.expertise-chevron svg{display:block}
.expertise-content{display:flow-root}
.services .expertise-content ul{margin:18px 0 12px;padding-left:20px}
.expertise-content li::marker{color:var(--gold)}
.services .service details[open] .expertise-content{animation:expertise-reveal .4s ease both}
.services .service details[open] li{animation:expertise-reveal .42s ease both}
.expertise-content li:nth-child(2){animation-delay:35ms!important}
.expertise-content li:nth-child(3){animation-delay:70ms!important}
.expertise-content li:nth-child(4){animation-delay:105ms!important}
.expertise-content li:nth-child(5){animation-delay:140ms!important}
@keyframes expertise-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 .services .service summary .expertise-chevron{transition:none}
 .services .service details[open] .expertise-content,.services .service details[open] li{animation:none}
}

/* Immersive portfolio: three entry cards, nine intentionally empty positions. */
.gallery-category{display:block;width:100%;padding:0;text-align:left;color:var(--ivory);font:inherit;cursor:pointer;transition:border-color .25s,transform .25s,box-shadow .25s}
.gallery-category:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 16px 36px #0003}
.gallery-category .media-slot{color:var(--gold)}
.gallery-category .slot-caption>span{display:flex;justify-content:space-between;gap:12px}
#viewer{width:min(1120px,94vw);max-width:94vw;max-height:94svh;padding:30px;border-radius:8px;background:linear-gradient(145deg,#142036,#080e1b);border:1px solid #d9b77970;box-shadow:0 30px 100px #0009;scrollbar-gutter:stable}
#viewer::backdrop{background:#02060df0;backdrop-filter:blur(8px)}
#close-viewer{position:sticky;display:block;top:0;margin:0 0 6px auto;z-index:2;width:46px;height:46px;border:1px solid #d9b77970;border-radius:50%;background:#0c1526;line-height:1;transition:background .2s}
#close-viewer:hover{background:#283149}
.immersive-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;color:var(--gold);font-size:16px}
.gallery-counter{white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.12em}
.immersive-stage{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:16/9;max-height:52svh;min-height:220px;background:radial-gradient(ellipse at center,#1c2b43,#0a1220 75%);border:1px solid #d9b77940;border-radius:4px;overflow:hidden}
.immersive-empty{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:24px;color:var(--gold)}
.immersive-empty strong{font-size:clamp(20px,2vw,27px);font-weight:500}
.immersive-empty>span{font-size:16px;line-height:1.7;color:#bcc7d7;max-width:40ch}
#viewer .immersive-stage img,#viewer .immersive-stage video,#viewer .immersive-stage iframe{width:100%;height:100%;max-height:52svh;object-fit:contain}
.immersive-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 24px}
.immersive-controls>span{font-size:15px;color:#bac5d5;text-align:center}
.immersive-controls button{width:48px;height:48px;flex:0 0 48px;border-radius:50%;border:1px solid #d9b77980;background:transparent;color:var(--gold);font-size:25px;transition:background .2s,color .2s}
.immersive-controls button:hover{background:var(--gold);color:var(--navy)}
.immersive-caption{border-top:1px solid #d9b77935;padding-top:24px}
.immersive-caption .eyebrow{font-size:14px;letter-spacing:.08em;margin-bottom:10px}
#viewer .immersive-caption h3{font-size:clamp(23px,2.5vw,32px);line-height:1.35;margin:0 0 14px;overflow-wrap:anywhere}
.immersive-caption>p:not(.eyebrow){font-size:17px;color:#c2cddd;line-height:1.75;max-width:65ch;margin-bottom:10px}
.immersive-stage>*{animation:gallery-arrival .28s ease both}
@keyframes gallery-arrival{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){
 #viewer{padding:16px;width:96vw;max-width:96vw;max-height:94svh}
 .immersive-top{font-size:15px;gap:10px;margin-bottom:14px}
 .immersive-stage{aspect-ratio:4/3;min-height:210px}
 .immersive-empty{padding:18px;gap:14px}
 .immersive-empty>span{font-size:15px}
 .immersive-controls{gap:10px;margin-bottom:20px}
 .immersive-controls>span{font-size:14px}
 .immersive-caption>p:not(.eyebrow){font-size:16px}
 .gallery-category .slot-caption h3{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.immersive-stage>*{animation:none}.gallery-category{transition:none}.gallery-category:hover{transform:none}}

/* Internal units: consistent reading columns and shared text baselines. */
.internal-head{margin-top:44px;padding-top:28px;margin-bottom:22px}
.internal-head .eyebrow{margin:0;line-height:1.6}
.internal-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,64px);align-items:start}
.internal-services .service{display:block;min-width:0;padding:0 0 0 20px;border:0;border-left:2px solid #d9b77955;border-radius:0;background:none;box-shadow:none;transform:none}
.internal-services .service:hover,.internal-services .service:focus-within{transform:none;box-shadow:none;border-color:#d9b77955}
.internal-services .service h3{font-size:23px;font-weight:600;line-height:1.4;margin:0 0 12px;color:var(--ivory)}
.internal-services .service p{font-size:18px;line-height:1.8;max-width:48ch;margin:0;color:#c2cddd;text-wrap:pretty}
@media(max-width:650px){
 .internal-head{margin-top:34px;margin-bottom:20px;padding-top:26px}
 .internal-services{grid-template-columns:1fr;gap:28px}
 .internal-services .service{padding-left:16px}
 .internal-services .service h3{font-size:22px;margin-bottom:10px}
 .internal-services .service p{font-size:17px}
}

/* Official compositions remain entirely visible, including their embedded lettering. */
.gallery-category .media-slot{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#080e1b}
.gallery-category .media-slot>img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;aspect-ratio:4/3}
#viewer .gallery-notice-label{font-size:14px;line-height:1.6;color:var(--gold);margin:0 0 14px}
.gallery-fullsize{display:block;width:fit-content;color:#c2cddd;font-size:15px;text-decoration:underline;text-underline-offset:4px;margin-top:8px;padding-block:8px}
.gallery-fullsize:hover{color:var(--gold)}

/* Founder portrait: original proportions, with concise institutional copy. */
.founder-profile{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,76px);margin-top:54px;padding-top:48px;border-top:1px solid #94703940}
.founder-portrait{margin:0;position:relative;max-width:330px;padding:8px;border:1px solid #94703950;border-radius:5px;background:#fff8}
.founder-portrait img{display:block;width:100%;height:auto;border-radius:2px}
.founder-copy{min-width:0;max-width:66ch}
.founder-kicker{color:#805b28;font-size:15px;font-weight:650;line-height:1.6;letter-spacing:.06em;margin:0 0 14px}
.founder-copy h3{font-size:clamp(28px,2.8vw,39px);line-height:1.2;letter-spacing:-.035em;color:var(--ink);margin:0 0 16px;font-weight:600}
.founder-role{font-size:19px;font-weight:600;line-height:1.7;color:#25354a;margin:0 0 6px}
.founder-expertise{font-size:17px;line-height:1.8;color:#536177;margin:0 0 22px}
.founder-bio p{font-size:18px;line-height:1.85;color:#35465e;margin:0 0 14px;text-wrap:pretty}
.founder-signature{display:inline-block;border-top:1px solid #94703945;padding-top:16px;margin:8px 0 0;font-size:17px;font-weight:600;letter-spacing:.025em;color:#805b28}
@media(min-width:651px) and (max-width:1050px){
 .founder-profile{grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:28px;align-items:start}
 .founder-copy h3{font-size:29px}
 .founder-role{font-size:18px}
 .founder-bio p{font-size:17px}
}
@media(max-width:650px){
 .founder-profile{grid-template-columns:1fr;gap:28px;margin-top:36px;padding-top:32px}
 .founder-portrait{width:min(100%,280px);justify-self:center}
 .founder-copy h3{font-size:29px}
 .founder-role{font-size:18px}
 .founder-expertise,.founder-bio p{font-size:17px}
 .founder-signature{font-size:16px}
}

/* A modest readability increase throughout the identity and founder copy. */
#groupe .intro-grid .lead,#groupe .group-context{font-size:20px;line-height:1.8;color:#304159;font-weight:450}
#groupe .group-context{max-width:48ch}
.founder-kicker{font-size:17px;letter-spacing:.035em;color:#795321}
.founder-role{font-size:21px;line-height:1.65}
.founder-expertise{font-size:19px;line-height:1.75;color:#41536c}
.founder-bio p{font-size:20px;line-height:1.8;color:#304159;font-weight:450}
.founder-signature{font-size:19px;line-height:1.7}
@media(max-width:1050px){
 #groupe .intro-grid .lead,#groupe .group-context,.founder-bio p{font-size:19px}
 .founder-role{font-size:20px}
 .founder-expertise{font-size:18px}
}
@media(max-width:650px){
 #groupe .intro-grid .lead,#groupe .group-context,.founder-bio p{font-size:18px;line-height:1.85}
 .founder-kicker{font-size:16px}
 .founder-role{font-size:19px}
 .founder-expertise,.founder-signature{font-size:18px}
}

/* The original, complete logo stays visible. Only additive accents animate. */
.services .logo-panel{background:radial-gradient(ellipse at 50% 30%,#1d2c43,#09111e 80%);border-color:#d9b77940;box-shadow:inset 0 1px 0 #ffffff08;overflow:visible}
.logo-signature{display:block;position:relative;width:100%;height:100%;max-width:280px;isolation:isolate;--logo-delay:0s}
.services .logo-signature .division-logo{display:block;width:100%;height:100%;max-width:none;object-fit:contain;opacity:1!important;visibility:visible!important;animation:none!important;transform:none!important}
.signature-pictures{max-width:230px;--logo-delay:-5.33s}
.signature-tv{max-width:290px;--logo-delay:-2.66s}
.logo-layer{display:block;position:absolute;inset:0;background-image:var(--logo-mask);background-size:contain;background-position:center;background-repeat:no-repeat;pointer-events:none;opacity:0;animation-duration:8s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important;animation-delay:var(--logo-delay)!important;animation-play-state:paused!important}
.logo-animating .logo-layer{animation-play-state:running!important}
body.logo-page-hidden .logo-layer{animation-play-state:paused!important}
/* Spare construction layers are inactive; source identity is never segmented. */
.layer-design-name,.layer-design-word{display:none!important;animation:none!important}
.layer-design-mark{filter:brightness(1.6);animation-name:precision-reflection!important}
.layer-pictures-mark{filter:brightness(1.15) drop-shadow(0 0 3px #e4c17e55);animation-name:studio-breath!important}
.layer-pictures-name{filter:brightness(1.5);clip-path:inset(76% 0 0 0);animation-name:studio-sweep!important}
.layer-tv-brand{filter:brightness(1.25);animation-name:broadcast-energy!important}
.layer-tv-signal{filter:brightness(1.45);clip-path:inset(0 0 0 74%);animation-name:signal-accent!important}
@keyframes precision-reflection{
 0%,6%{opacity:0;clip-path:polygon(-30% 0,-10% 0,-25% 100%,-45% 100%)}
 14%,30%{opacity:.5}
 43%,100%{opacity:0;clip-path:polygon(145% 0,165% 0,150% 100%,130% 100%)}
}
@keyframes studio-breath{0%,100%{opacity:.04}35%{opacity:.24}70%{opacity:.08}}
@keyframes studio-sweep{
 0%,7%{opacity:0;clip-path:polygon(-30% 76%,-10% 76%,-25% 100%,-45% 100%)}
 19%,34%{opacity:.4}
 46%,100%{opacity:0;clip-path:polygon(145% 76%,165% 76%,150% 100%,130% 100%)}
}
@keyframes broadcast-energy{0%,100%{opacity:.03}25%{opacity:.2}60%{opacity:.06}}
@keyframes signal-accent{
 0%,8%,70%,100%{opacity:0;transform:translateX(0)}
 26%{opacity:.26;transform:translateX(.35px)}
 42%{opacity:.14;transform:translateX(-.2px)}
 54%{opacity:.06;transform:translateX(0)}
}
.service:hover .signature-design,.service:focus-within .signature-design{translate:0 -1px;filter:drop-shadow(0 2px 2px #d9b77922)}
.signature-design{transition:translate .3s ease,filter .3s ease}
.service:hover .signature-pictures,.service:focus-within .signature-pictures,.service:hover .signature-tv,.service:focus-within .signature-tv{filter:brightness(1.06)}
.logo-motion-control{display:block;margin:0 0 22px auto;padding:10px 16px;border:1px solid #d9b77970;border-radius:4px;color:var(--gold);background:transparent;font:inherit;font-size:15px;cursor:pointer}
@media(prefers-reduced-motion:reduce){
 body:not(.logos-motion-enabled) .logo-layer{display:none!important;animation:none!important}
 body:not(.logos-motion-enabled) .signature-design{translate:none;filter:none;transition:none}
}

/* Single Pictures prototype: a solid emblem suspended above a restrained studio orbit. */
.signature-pictures{perspective:650px}
.signature-pictures .pictures-emblem{display:block;position:absolute;inset:0;z-index:2;transform-origin:50% 55%;filter:drop-shadow(0 6px 3px #0007);animation:studio-emblem-drift 10s ease-in-out infinite paused!important}
.signature-pictures .pictures-orbit{display:block;position:absolute;z-index:1;left:50%;top:50%;width:180px;height:180px;margin:-90px 0 0 -90px;border:1px solid #d9b77945;border-top-color:#edcc8dbb;border-right-color:#d9b77922;border-radius:50%;transform-style:preserve-3d;animation:studio-orbital-path 10s linear infinite paused!important;pointer-events:none}
.signature-pictures .pictures-orbit::after{content:'';position:absolute;top:-3px;left:calc(50% - 3px);width:6px;height:6px;background:#eed39e;border-radius:50%;box-shadow:0 0 8px #d9b77988}
.signature-pictures.logo-animating .pictures-emblem,.signature-pictures.logo-animating .pictures-orbit{animation-play-state:running!important}
body.logo-page-hidden .signature-pictures .pictures-emblem,body.logo-page-hidden .signature-pictures .pictures-orbit{animation-play-state:paused!important}
@keyframes studio-emblem-drift{
 0%,100%{transform:translate3d(-3px,5px,0) rotate(-.8deg)}
 25%{transform:translate3d(0,-2px,0) rotate(0deg)}
 50%{transform:translate3d(3px,-5px,0) rotate(.8deg)}
 75%{transform:translate3d(0,2px,0) rotate(0deg)}
}
@keyframes studio-orbital-path{
 from{transform:rotateX(64deg) rotateZ(-15deg)}
 to{transform:rotateX(64deg) rotateZ(345deg)}
}
@media(max-width:650px){.signature-pictures .pictures-orbit{width:164px;height:164px;margin:-82px 0 0 -82px}}
@media(prefers-reduced-motion:reduce){
 body:not(.logos-motion-enabled) .signature-pictures .pictures-emblem{animation:none!important;transform:none!important}
 body:not(.logos-motion-enabled) .signature-pictures .pictures-orbit{animation:none!important;transform:rotateX(64deg) rotateZ(-15deg)!important}
}

/* Companion signatures share Pictures' permanent image and gentle kinetic presence. */
.companion-emblem{display:block;position:absolute;inset:0;z-index:2;filter:drop-shadow(0 5px 3px #0006);animation-duration:10s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important;animation-play-state:paused!important}
.design-emblem{animation-name:design-studio-drift!important;animation-delay:-3.33s!important}
.tv-emblem{animation-name:tv-studio-drift!important;animation-delay:-6.66s!important}
.companion-environment{display:block;position:absolute;pointer-events:none;z-index:1;left:50%;top:50%;animation-duration:10s!important;animation-iteration-count:infinite!important;animation-play-state:paused!important}
.design-track{width:210px;height:84px;margin:-42px 0 0 -105px;border:1px solid #d9b77938;border-radius:3px;transform:rotate(-4deg)}
.design-track::before{content:'';position:absolute;inset:-4px;border:1px solid #d9b77977;clip-path:polygon(0 0,15% 0,15% 2%,2% 2%,2% 25%,0 25%,0 0,100% 0,100% 25%,98% 25%,98% 2%,85% 2%,85% 0,100% 0,100% 100%,85% 100%,85% 98%,98% 98%,98% 75%,100% 75%,100% 100%,0 100%,0 75%,2% 75%,2% 98%,15% 98%,15% 100%,0 100%)}
.design-track::after{content:'';position:absolute;left:-3px;top:-3px;width:5px;height:5px;background:#eed39e;border-radius:1px;box-shadow:0 0 6px #d9b77966;animation:design-trace 10s linear -3.33s infinite paused!important}
.tv-broadcast{width:210px;height:90px;margin:-45px 0 0 -105px;border:1px solid #d9b77970;border-radius:50%;animation-name:tv-studio-wave!important;animation-timing-function:ease-in-out!important;animation-delay:-6.66s!important}
.tv-broadcast::after{content:'';position:absolute;inset:10px 16px;border:1px solid #d9b77950;border-radius:50%}
.logo-animating .companion-emblem,.logo-animating .companion-environment,.logo-animating .design-track::after{animation-play-state:running!important}
body.logo-page-hidden .companion-emblem,body.logo-page-hidden .companion-environment,body.logo-page-hidden .design-track::after{animation-play-state:paused!important}
@keyframes design-studio-drift{0%,100%{transform:translate(-4px,3px) rotate(-.5deg)}50%{transform:translate(4px,-3px) rotate(.5deg)}}
@keyframes tv-studio-drift{0%,100%{transform:translate(3px,4px) rotate(.4deg)}50%{transform:translate(-3px,-4px) rotate(-.4deg)}}
@keyframes design-trace{0%{transform:translate(0,0)}35%{transform:translate(210px,0)}50%{transform:translate(210px,84px)}85%{transform:translate(0,84px)}100%{transform:translate(0,0)}}
@keyframes tv-studio-wave{0%,100%{transform:scale(.9) rotate(-9deg);opacity:.35}50%{transform:scale(1.08) rotate(9deg);opacity:.85}}
@media(prefers-reduced-motion:reduce){
 body:not(.logos-motion-enabled) .companion-emblem{animation:none!important;transform:none!important}
 body:not(.logos-motion-enabled) .companion-environment,body:not(.logos-motion-enabled) .design-track::after{animation:none!important}
 body:not(.logos-motion-enabled) .tv-broadcast{transform:none;opacity:.5}
}

/* Refined studio environments: lighter engineering marks, depth and focused broadcast. */
.design-track{border:0;border-radius:0;transform:none;opacity:.8}
.design-track::before{inset:-3px;clip-path:none;border:0;background:linear-gradient(#d9b77999,#d9b77999) left top/20px 1px no-repeat,linear-gradient(#d9b77999,#d9b77999) left top/1px 12px no-repeat,linear-gradient(#d9b77966,#d9b77966) right top/20px 1px no-repeat,linear-gradient(#d9b77966,#d9b77966) right top/1px 12px no-repeat,linear-gradient(#d9b77966,#d9b77966) left bottom/20px 1px no-repeat,linear-gradient(#d9b77966,#d9b77966) left bottom/1px 12px no-repeat,linear-gradient(#d9b77999,#d9b77999) right bottom/20px 1px no-repeat,linear-gradient(#d9b77999,#d9b77999) right bottom/1px 12px no-repeat}
.design-track::after{width:4px;height:4px;box-shadow:0 0 7px #d9b77966}
.signature-pictures .pictures-orbit{border-color:#d9b77926;border-top-color:#efd49c99;border-left-color:#d9b77955}
.signature-pictures .pictures-orbit::after{width:5px;height:5px;top:-2.5px;left:calc(50% - 2.5px)}
.tv-broadcast{left:83%;width:88px;height:64px;margin:-32px 0 0 -44px;border-color:#d9b77977;transform-origin:center}
.tv-broadcast::after{inset:8px 11px;border-color:#d9b77955}
@keyframes tv-studio-wave{
 0%,100%{transform:scale(.88);opacity:.28}
 50%{transform:scale(1.18);opacity:.72}
}
@keyframes design-studio-drift{
 0%,100%{transform:translate(-3px,2px) rotate(-.3deg)}
 50%{transform:translate(3px,-2px) rotate(.3deg)}
}
@keyframes tv-studio-drift{
 0%,100%{transform:translate(2px,3px) rotate(.25deg)}
 50%{transform:translate(-2px,-3px) rotate(-.25deg)}
}

/* TV emits successive outward waves; the logo itself remains fully present. */
.tv-broadcast{left:83%;width:64px;height:46px;margin:-23px 0 0 -32px;border:0;opacity:1;transform:none;animation:none!important}
.tv-broadcast::before,.tv-broadcast::after{content:'';position:absolute;inset:0;border:1px solid #e4c587;border-radius:50%;opacity:0;transform-origin:center;animation:tv-outward-emission 3.6s linear infinite paused!important}
.tv-broadcast::after{animation-delay:-1.8s!important}
.logo-animating .tv-broadcast::before,.logo-animating .tv-broadcast::after{animation-play-state:running!important}
body.logo-page-hidden .tv-broadcast::before,body.logo-page-hidden .tv-broadcast::after{animation-play-state:paused!important}
@keyframes tv-outward-emission{
 0%{transform:translateX(-3px) scale(.35);opacity:0}
 14%{opacity:.65}
 65%{opacity:.28}
 100%{transform:translateX(4px) scale(1.7);opacity:0}
}
@media(prefers-reduced-motion:reduce){
 body:not(.logos-motion-enabled) .tv-broadcast{opacity:.4}
 body:not(.logos-motion-enabled) .tv-broadcast::before,body:not(.logos-motion-enabled) .tv-broadcast::after{animation:none!important;transform:scale(.9);opacity:.4}
 body:not(.logos-motion-enabled) .tv-broadcast::after{display:none}
}

/* Keep Pictures' orbit above the wordmark throughout its full revolution. */
.signature-pictures .pictures-orbit{top:40%}
@keyframes studio-orbital-path{
 from{transform:rotateX(72deg) rotateZ(-15deg)}
 to{transform:rotateX(72deg) rotateZ(345deg)}
}
@media(prefers-reduced-motion:reduce){
 body:not(.logos-motion-enabled) .signature-pictures .pictures-orbit{transform:rotateX(72deg) rotateZ(-15deg)!important}
}

/* Centre on the visible TV lettering, not on the PNG's transparent canvas. */
.tv-emblem .tv-broadcast{left:85%;top:54%}
.tv-emblem .division-logo{position:relative;z-index:2}
@keyframes tv-outward-emission{
 0%{transform:scale(.35);opacity:0}
 14%{opacity:.65}
 65%{opacity:.28}
 100%{transform:scale(1.7);opacity:0}
}

/* Mobile flex layout must not shrink TV's panel to its padding width. */
@media(max-width:650px){
 .services .service:last-child .logo-panel{align-self:stretch;width:100%}
}

/* Cover previews are opt-in by mouse hover; image is always the fallback. */
.gallery-category .card-preview-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#080e1b;pointer-events:none;opacity:0}
.gallery-category.preview-playing .card-preview-video{opacity:1}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){
 .gallery-category .card-preview-video{display:none}
}

/* Hero prototype: aligned to the original composition; text area stays protected. */
.hero-brand .hero-orbits{position:absolute;inset:0;pointer-events:none;opacity:.85;mask-image:none;-webkit-mask-image:none}
@media(min-width:651px) and (max-width:1050px){
 .hero-brand .hero-orbits{opacity:.55;mask-image:linear-gradient(90deg,transparent 0%,transparent 65%,#000 78%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 65%,#000 78%)}
}
@media(max-width:650px),(prefers-reduced-motion:reduce){.hero-brand .hero-orbits{display:none}}
