@import url('/css/films.css');
@import url('/css/studies.css');
#page-content{min-width:0;view-transition-name:page-content}
::view-transition-group(page-content){animation-duration:580ms}
::view-transition-old(page-content){animation:page-leave 330ms cubic-bezier(.4,0,.6,1) both;mix-blend-mode:normal}
::view-transition-new(page-content){animation:page-arrive 580ms cubic-bezier(.22,1,.36,1) both;mix-blend-mode:normal}
/* The document itself remains in place; only its content changes. */
:root[data-theme=signal]::view-transition-old(root),:root[data-theme=signal]::view-transition-new(root){animation:none;mix-blend-mode:normal}
.language-popover>a{display:flex;align-items:center;gap:13px;width:100%;border:0;border-radius:7px;background:transparent;color:inherit;font-size:13px;text-align:left;padding:11px 10px;min-height:44px;transition:background-color 400ms ease}
.language-popover>a[aria-checked=true]{background:#1255c9;color:white}.language-popover>a>i{margin-left:auto;font-size:16px}.language-popover>a:not([aria-checked=true]):hover{background:#19304b}.language-popover>a:focus-visible{outline:2px solid #72aaff;outline-offset:2px}
#navigation-error{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);max-width:90vw;padding:15px 24px;background:#0a1e39;border:1px solid #4b729c;color:#fff;z-index:300;font-size:13px}
.htmx-request .reading-progress{opacity:.7}
@media(prefers-reduced-motion:reduce){::view-transition-old(page-content),::view-transition-new(page-content){animation:none}}

/* Editorial width stays fixed; the light stage may breathe across the viewport. */
.theme-signal.is-home .signal-hero{overflow:visible;background:transparent}
.theme-signal.is-home .hero-art{-webkit-mask-image:none;mask-image:none}
.theme-signal.is-home .signal-hero:after{display:none}
.theme-signal.is-home .hero-art>.faithful-image{
 -webkit-mask-image:linear-gradient(to right,transparent,#000 19%,#000 79%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 75%,transparent 93%);
 mask-image:linear-gradient(to right,transparent,#000 19%,#000 79%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 75%,transparent 93%);
 -webkit-mask-composite:source-in;mask-composite:intersect;
}

.theme-signal.is-home .hero-art:has(.depth-canvas.ready)>.faithful-image{opacity:0}

/* Quiet, non-modal privacy notice; fixed positioning never shifts page content. */
.cookie-notice{position:fixed;z-index:280;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));width:min(510px,calc(100% - 48px));max-height:calc(100dvh - 48px);overflow:auto;box-sizing:border-box;padding:26px 28px 24px;border:1px solid #314458;border-radius:16px;background:linear-gradient(125deg,#102137f7,#081019fc 65%);box-shadow:0 18px 64px #0008,0 1px 0 #91bcff0d inset;color:#f6f8fc;font-family:Inter,sans-serif;opacity:0;transform:translate3d(0,18px,0);transition:opacity 220ms ease,transform 220ms cubic-bezier(.4,0,1,1);isolation:isolate;view-transition-name:cookie-notice}
.cookie-notice[hidden]{display:none}
.cookie-notice:before{content:"";position:absolute;left:28px;right:28px;top:0;height:1px;background:linear-gradient(90deg,transparent,#659cffb3 30%,#65adff55 65%,transparent);pointer-events:none}
.cookie-notice.is-visible{opacity:1;transform:translate3d(0,0,0);transition-duration:360ms;transition-timing-function:cubic-bezier(.22,1,.36,1)}
.cookie-notice.is-instant{transition:none}
.cookie-notice-heading{display:flex;align-items:center;gap:15px}
.cookie-notice-heading>div{min-width:0}
.cookie-notice-symbol{display:grid;place-items:center;flex:none;width:42px;height:46px;color:#7cabf6}
.cookie-notice-symbol svg{width:28px;height:32px;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.cookie-notice .cookie-notice-eyebrow{margin:0 0 6px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#9cb9df;line-height:1.4}
.cookie-notice h2{margin:0;font:500 clamp(19px,2vw,23px)/1.25 Manrope,sans-serif;letter-spacing:-.035em;overflow-wrap:normal;text-wrap:balance}
.cookie-notice .cookie-notice-description{margin:18px 0 22px;font-size:13px;line-height:1.75;font-weight:400;color:#b6c2d3;text-wrap:pretty}
.cookie-notice-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.cookie-notice-confirm{border:1px solid #3e7bdb;border-radius:6px;background:#1253bb;color:#fff;min-height:44px;padding:11px 22px;font:500 12px/1.4 Inter,sans-serif;cursor:pointer;transition:background-color 280ms ease,border-color 280ms ease}
.cookie-notice-privacy{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:#d1dcec;text-decoration:none;font:400 12px/1.4 Inter,sans-serif;transition:color 280ms ease}
.cookie-notice-privacy i{transition:transform 280ms cubic-bezier(.22,1,.36,1)}
.cookie-notice :is(button,a):focus-visible,.footer-cookie-notice:focus-visible{outline:2px solid #86b7ff;outline-offset:5px}
.cookie-notice h2:focus{outline:none}
.footer-bottom>div{flex-wrap:wrap}
.footer-cookie-notice{border:0;background:none;padding:0;color:inherit;font:inherit;min-height:44px;cursor:pointer;transition:color 280ms ease}
::view-transition-group(cookie-notice){animation-duration:0s}
::view-transition-old(cookie-notice){display:none}
::view-transition-new(cookie-notice){animation:none;mix-blend-mode:normal}
@media(hover:hover) and (pointer:fine){.cookie-notice-confirm:hover{background:#1f65cc;border-color:#6a9bea}.cookie-notice-privacy:hover,.footer-cookie-notice:hover{color:#89baff}.cookie-notice-privacy:hover i{transform:translate(2px,-2px)}}
@media(max-width:600px){.cookie-notice{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right)));max-height:calc(100dvh - 24px);padding:21px 20px 19px;border-radius:13px}.cookie-notice-heading{gap:10px}.cookie-notice-symbol{width:32px}.cookie-notice .cookie-notice-description{font-size:12px;line-height:1.7;margin:15px 0 17px}.cookie-notice-actions{gap:10px 20px}.cookie-notice-confirm{padding-inline:19px}.footer-bottom>div{justify-content:flex-start;column-gap:22px;row-gap:4px}}
@media(prefers-reduced-motion:reduce){.cookie-notice,.cookie-notice-confirm,.cookie-notice-privacy,.cookie-notice-privacy i,.footer-cookie-notice{transition:none}}

/* The receipt stays in the same form surface and uses the site's blue light. */
.site .contact-form-panel.has-receipt{position:relative;overflow:hidden;isolation:isolate;scroll-margin-top:105px;background:linear-gradient(145deg,#0d1b30,#080f19 65%);border-color:#294260}
.contact-receipt{position:relative;z-index:0;padding:4px 0 0;min-width:0}
.receipt-light{position:absolute;z-index:-1;pointer-events:none;inset:-70px -60px 0;background:radial-gradient(ellipse at 18% 12%,#1269e133,transparent 47%),radial-gradient(ellipse at 94% 50%,#1354b51c,transparent 52%)}
.receipt-top{display:flex;align-items:center;gap:22px;margin-bottom:28px;min-width:0}
.receipt-emblem{width:88px;height:88px;flex:none;position:relative;display:grid;place-items:center}
.receipt-orbit{position:absolute;inset:0;border-radius:50%;border:1px solid #5075a133;border-top-color:#8bbcffbb;border-right-color:#3a81db99;transform:rotate(-35deg)}
.receipt-wave{position:absolute;inset:12px;border:1px solid #79b5ff44;border-radius:50%;opacity:0}
.receipt-seal{width:59px;height:59px;display:grid;place-items:center;border:1px solid #759fd78c;border-radius:18px;background:linear-gradient(135deg,#4a83c84d,#0b213ee6);box-shadow:0 0 36px #2382ff29,inset 0 1px 0 #cce1ff30;color:#dbecff;transform:rotate(-8deg)}
.receipt-seal svg{width:39px;height:39px;transform:rotate(8deg)}
.receipt-status{font-size:10px!important;letter-spacing:.13em;text-transform:uppercase;line-height:1.65!important;color:#a6c2e6!important;margin:0!important;display:flex;gap:9px;align-items:center}
.receipt-status>span{width:5px;height:5px;border-radius:50%;background:#88c0ff;box-shadow:0 0 12px #539dff;flex:none}
.site .contact-receipt h2{font-size:clamp(33px,3.2vw,48px);line-height:1.12;letter-spacing:-.045em;font-weight:500;margin:0 0 22px;outline:none;max-width:100%;overflow-wrap:normal}
.contact-receipt h2>span,.contact-receipt h2>em{display:block}
.contact-receipt h2>em{font-style:normal;color:#8bbaff;font-size:.8em;line-height:1.23;margin-top:8px;text-wrap:balance}
.receipt-message{font-size:15px!important;line-height:1.8!important;color:#b4c2d5!important;max-width:38ch;margin:0 0 30px!important;text-wrap:pretty}
.receipt-promise{display:grid;grid-template-columns:auto minmax(0,1fr) 18px;align-items:center;gap:23px;padding:22px 0;border-top:1px solid #55759a40;border-bottom:1px solid #55759a40;margin-bottom:25px}
.receipt-time{font:400 58px/1 Manrope,sans-serif;color:#f0f6ff;letter-spacing:-.065em;white-space:nowrap}
.receipt-time>span{font-size:21px;color:#8daaca;letter-spacing:0;margin-left:5px}
.receipt-promise>p{font-size:13px!important;line-height:1.7!important;color:#c4d2e4!important;margin:0!important}
.receipt-promise>i{align-self:start;color:#739fd5;font-size:18px;margin-top:4px}
.receipt-signoff{font-size:12px!important;color:#8299b8!important;line-height:1.7!important;margin:0 0 23px!important}
.receipt-home{font-size:12px!important;gap:18px;min-height:44px;display:inline-flex;align-items:center;color:#e2ecfa}
.receipt-reference{display:grid;gap:7px;margin-top:30px;padding-top:20px;border-top:1px solid #55759a26;color:#758ba6;font-size:10px;line-height:1.6}
.receipt-reference code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;letter-spacing:.02em;overflow-wrap:anywhere;user-select:all;color:#95a9c2}
.footer-cookie-notice{display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}
@media(prefers-reduced-motion:no-preference){
 .contact-receipt[data-motion=true]{animation:receipt-arrive 720ms cubic-bezier(.22,1,.36,1) both}
 .contact-receipt[data-motion=true] .receipt-orbit{animation:receipt-orbit 1450ms cubic-bezier(.22,1,.36,1) both}
 .contact-receipt[data-motion=true] .receipt-wave{animation:receipt-wave 1400ms 100ms cubic-bezier(.22,1,.36,1) both}
 .contact-receipt[data-motion=true] .receipt-seal{animation:receipt-seal 950ms 80ms cubic-bezier(.22,1,.36,1) both}
 .contact-receipt[data-motion=true] .receipt-light{animation:receipt-light 2300ms ease-out both}
}
@keyframes receipt-arrive{from{opacity:0;transform:translate3d(20px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes receipt-orbit{from{opacity:0;transform:rotate(-160deg) scale(.85)}to{opacity:1;transform:rotate(-35deg) scale(1)}}
@keyframes receipt-wave{0%{opacity:0;transform:scale(.8)}25%{opacity:.7}100%{opacity:0;transform:scale(1.65)}}
@keyframes receipt-seal{from{opacity:0;transform:rotate(-20deg) scale(.86)}to{opacity:1;transform:rotate(-8deg) scale(1)}}
@keyframes receipt-light{from{opacity:.2;transform:translateX(-25px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.receipt-top{gap:17px;margin-bottom:25px}.receipt-emblem{width:73px;height:73px}.receipt-status{font-size:9px!important;letter-spacing:.1em}.site .contact-receipt h2{font-size:37px}.receipt-message{font-size:14px!important}.receipt-promise{gap:17px;grid-template-columns:auto minmax(0,1fr)}.receipt-promise>i{display:none}.receipt-time{font-size:50px}.receipt-promise>p{font-size:12px!important}.receipt-reference code{font-size:9px}}

/* Keep the original side-by-side hero composition on phones as well.
   Copy stays in document flow so translated text and enlarged type have room. */
@media (max-width:600px){
 .theme-signal.is-home .signal-hero{
  display:grid;grid-template-columns:minmax(0,1fr);align-content:center;align-items:center;
  height:auto;min-height:100svh;padding-block:100px 90px;
 }
 .theme-signal.is-home .hero-art{
  position:relative;grid-area:1/1;inset:auto;width:100%;height:104vw;
 }
 .theme-signal.is-home .hero-content{
  position:relative;grid-area:1/1;left:auto;top:auto;width:52%;margin-left:5%;padding:0;
 }
 .theme-signal.is-home .hero-content .eyebrow{
  font-size:7.5px;line-height:1.4;letter-spacing:.16em;margin-bottom:24px;
 }
 .theme-signal.is-home .hero-content h1{
  font-size:clamp(44px,14.06vw,82px);line-height:.87;letter-spacing:-.065em;
  width:100%;margin-left:-3px;
 }
 .theme-signal.is-home .hero-content h1 br:nth-child(2){display:initial}
 html:not([lang=de]) .theme-signal.is-home .hero-content h1{
  font-size:calc(96 * var(--u));line-height:.98;
 }
 html[lang=fr] .theme-signal.is-home .hero-content h1,
 html[lang=it] .theme-signal.is-home .hero-content h1{font-size:calc(89 * var(--u))}
 .theme-signal.is-home .hero-content>p:not(.eyebrow){
  font-size:clamp(13px,3.2vw,15px);line-height:1.5;margin-top:24px;letter-spacing:-.02em;
 }
 .theme-signal.is-home .hero-actions{
  flex-direction:column;align-items:flex-start;gap:10px;margin-top:24px;
 }
 .theme-signal.is-home .hero-actions .button{
  font-size:12px;min-height:46px;padding:12px 14px;gap:8px;max-width:100%;
 }
 .theme-signal.is-home .hero-actions .text-link{
  font-size:12px;min-height:44px;max-width:100%;padding-block:10px;
 }
 .theme-signal.is-home .hero-caption{bottom:28px}
}

/* The final hero punctuation is a brand-color accent in every language. */
.theme-signal.is-home .hero-content h1 .hero-period{color:var(--accent)}

/* Reading targets keep semantic focus without looking like a selected control. */
[data-anchor-focus]:focus{outline:none}

/* The contact introduction borrows the original hero's moving light field. */
.site .contact-lead{position:relative;isolation:isolate}
.contact-aurora{position:absolute;z-index:-1;left:50%;top:-48px;width:100vw;height:clamp(820px,70vw,1100px);transform:translateX(-50%);pointer-events:none;background:radial-gradient(ellipse at 60% 48%,#08235066,transparent 58%)}
.contact-aurora canvas{display:block;width:100%;height:100%;opacity:0}
.contact-aurora.ready canvas{opacity:1}
.site .contact-layout{padding-top:0}
.contact-layout>.contact-aside{grid-column:1;grid-row:1}
.site .contact-layout>.contact-form-panel{grid-column:2;grid-row:1;min-width:0;min-height:0;padding:38px;overflow-anchor:none}
.contact-form-panel .step-indicator{margin-bottom:26px}
.site .contact-form-panel h2{font-size:32px}
.contact-form-panel .service-options{grid-template-columns:repeat(2,minmax(0,1fr));margin-block:26px;gap:14px}
.contact-form-panel .service-options button{padding:17px;gap:12px;min-height:116px;align-items:flex-start}
.contact-form-panel .service-options button>div{min-width:0}
.contact-form-panel .service-options strong{font-size:18px}
.contact-form-panel .service-options button span{font-size:12px;line-height:1.5}
/* Both steps occupy the same grid cell and reserve the taller step's height.
   Only their horizontal positions change; the page and panel remain still. */
.contact-step-page{align-self:stretch;display:flex;flex-direction:column}
.contact-step-page[data-page="1"]>.button{margin-top:auto;align-self:flex-start}
.contact-step-page[data-page="2"]>form{display:flex;flex-direction:column;flex:1}
.contact-step-page[data-page="2"] fieldset{display:flex;flex-direction:column;flex:1}
.contact-form-panel .selected-service{padding:0 0 12px;margin-bottom:16px}
.contact-form-panel .selected-service strong{margin-inline-start:.3em}
.contact-form-panel label{margin-bottom:14px}
.contact-form-panel input,.contact-form-panel textarea{font-size:16px;line-height:1.4;padding:10px 12px;margin-top:6px}
.contact-form-panel textarea{height:104px;min-height:104px}
.contact-form-panel .form-note{margin:4px 0 16px}
.contact-form-panel .form-note a{margin-inline-start:.25em}
.contact-form-panel fieldset>.button[type="submit"]{margin-top:auto;align-self:flex-start}
.contact-form-panel .service-options button{display:grid;grid-template-columns:22px minmax(0,1fr) 22px;gap:8px 12px}
.contact-form-panel .service-options button>div{display:contents}
.contact-form-panel .service-options strong{grid-column:2;grid-row:1}
.contact-form-panel .service-options button span{grid-column:1/-1;grid-row:2;margin-top:0}
.contact-form-panel .service-options button>i:last-child{grid-column:3;grid-row:1}
@media(min-width:601px){.contact-form-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:850px){
 .site .contact-layout>.contact-form-panel{grid-column:1;grid-row:1}
 .contact-layout>.contact-aside{grid-column:1;grid-row:2}
}
@media(max-width:600px){
 .contact-aurora{top:-20px;height:clamp(660px,160vw,850px)}
 .site .contact-layout>.contact-form-panel{padding:28px 22px}
 .site .contact-form-panel h2{font-size:27px;margin-bottom:14px}
 .contact-form-panel .step-indicator{margin-bottom:24px}
 .contact-form-panel .service-options{grid-template-columns:1fr;gap:11px;margin-block:24px}
 .contact-form-panel .service-options button{min-height:0;padding:15px;align-items:center}
 .contact-form-panel .service-options button span{margin-top:3px;line-height:1.45}
}
.duo-world>.duo-poster{position:absolute;inset:3%;width:94%;height:94%;max-width:none;object-fit:contain;pointer-events:none;opacity:1;transition:opacity .18s ease,visibility 0s}
.duo-showcase[data-status="ready"] .duo-poster{opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s .18s}
.duo-world>canvas{opacity:0;transition:opacity .18s ease}
.duo-showcase[data-status="ready"] .duo-world>canvas{opacity:1}
@media(prefers-reduced-motion:reduce){.duo-world>.duo-poster,.duo-world>canvas,.duo-showcase[data-status="ready"] .duo-poster{transition:none}}
.duo-showcase .duo-loading{top:auto;bottom:75px;left:28%;right:1%;padding:0;background:transparent;pointer-events:none;font-size:11px}
@media(max-width:700px){.duo-showcase .duo-loading{left:20px;right:20px;bottom:85px;font-size:10px}}
