:root{color-scheme:dark;--ink:#090a09;--paper:#eeeae3;--copper:#c29370;--muted:#aaa69f;--line:#ffffff20;--gutter:clamp(24px,5.5vw,100px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--copper);outline-offset:7px}::selection{background:#b7845c;color:#080808}.skip{position:fixed;top:15px;left:20px;transform:translateY(-180%);z-index:20;background:var(--paper);color:var(--ink);padding:14px}.skip:focus{transform:none}
.hero{min-height:760px;min-height:max(700px,100svh);position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;background:#080908}.map-scene,.shade,.constellation{position:absolute;inset:0;pointer-events:none}.map-scene{z-index:-3;overflow:hidden}.map{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scale(1.10) translate(-3%,1%);animation:survol 21s linear infinite alternate;will-change:transform}.shade{z-index:-2;background:linear-gradient(180deg,#04050435,transparent 30%,#04050435 65%,#080908d9),linear-gradient(90deg,#04050435,transparent 70%)}.constellation{z-index:-1;width:100%;height:100%}.header{padding:30px var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:24px}.wordmark{font-family:Georgia,serif;font-size:31px;letter-spacing:-3px}.mark-dot{color:var(--copper);padding:0 4px}.header nav{display:flex;gap:42px;font-size:13px}.header nav a{padding:12px 0;border-bottom:1px solid transparent}.header nav a:hover,.header nav a[aria-current]{border-color:var(--copper)}.header nav span{color:var(--copper);padding-left:12px}.hero-content{padding:clamp(100px,19vh,200px) var(--gutter) 50px;margin:auto 0}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:10px;line-height:1.6;color:var(--copper);margin:0 0 28px}.hero-content h1{margin:0 0 35px}.hero-logo{display:block;width:min(78vw,920px);height:auto}.hero-baseline{font-size:clamp(17px,1.8vw,25px);line-height:1.5;font-weight:400;letter-spacing:-.015em;margin:0;max-width:560px}.hero-bottom{padding:20px var(--gutter) 35px;display:flex;gap:20px;align-items:center;justify-content:space-between}.discover{font-size:11px;letter-spacing:.055em;padding:10px 0}.scroll-arrow{display:inline-block;font-size:23px;color:var(--copper);margin-right:15px}.motion-button{background:transparent;border:1px solid #ffffff24;border-radius:30px;padding:11px 16px;display:flex;align-items:center;gap:9px;font-size:10px;cursor:pointer;color:#cec7bd}.motion-button[hidden]{display:none}.motion-button:hover{border-color:var(--copper)}.motion-icon{color:var(--copper)}.motion-paused .map,.scene-hidden .map{animation-play-state:paused}
.section{padding:110px var(--gutter)}.section-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:8%;margin-bottom:74px}.section-heading .eyebrow{grid-column:1/-1}.section-heading h2{font-size:clamp(31px,4vw,57px);font-weight:400;letter-spacing:-.045em;line-height:1.12;margin:0}.section-heading h2 em,.contact-title em,.contact-content em{font-family:Georgia,'Times New Roman',serif;font-weight:400}.intro{max-width:440px;font-size:16px;line-height:1.8;color:var(--muted);align-self:end;margin:0}.world{display:grid;grid-template-columns:55px 1fr 1fr;column-gap:4%;padding:42px 0;border-top:1px solid var(--line)}.world:last-child{border-bottom:1px solid var(--line)}.world-number{font-size:10px;letter-spacing:.1em;color:var(--copper);padding-top:8px}.world-name h3{font-size:clamp(24px,3vw,40px);font-weight:400;letter-spacing:-.04em;margin:0 0 12px}.world-name>span{color:var(--muted);font-size:12px;line-height:1.5;display:block}.world-description p{color:var(--muted);font-size:14px;line-height:1.8;margin:0 0 20px;max-width:490px}.world-description a{display:inline-block;font-size:11px;border-bottom:1px solid #c2937040;padding-bottom:7px}.world-description a:hover{border-color:var(--copper);color:var(--copper)}.world-description a span{padding-left:18px;color:var(--copper)}.invitation{background:#10110f;padding-top:85px;padding-bottom:95px}.contact-title{position:relative;display:block;font-size:clamp(40px,6.8vw,100px);line-height:1.05;letter-spacing:-.05em;max-width:1300px}.contact-title>span{position:absolute;right:0;top:15%;font-size:.7em;color:var(--copper);transition:transform .25s}.contact-title:hover>span{transform:translate(8px,-8px)}.footer{padding:25px var(--gutter);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:10px;color:var(--muted);line-height:1.7}.footer a:hover{color:var(--paper)}
.contact-content{padding:70px var(--gutter);margin:auto 0}.contact-content h1{font-size:clamp(48px,7vw,100px);letter-spacing:-.055em;line-height:1.05;font-weight:400;margin:0 0 45px}.email{display:inline-block;font-size:clamp(17px,2.5vw,35px);letter-spacing:-.03em;border-bottom:1px solid #c2937060;padding-bottom:10px}.email>span{color:var(--copper);padding-left:20px}.contact-details{display:flex;gap:90px;margin-top:55px}.contact-details .eyebrow{display:block;font-size:9px;margin-bottom:12px}.contact-details p,.contact-details a{font-size:13px;line-height:1.8;margin:0;color:#c4beb5}
@keyframes survol{from{transform:scale(1.10) translate(-3%,1%)}to{transform:scale(1.18) translate(3%,-1%)}}
@media(min-width:1800px){.hero-content{max-width:1700px}.section-heading,.world-list{max-width:1600px;margin-left:auto;margin-right:auto}}
@media(max-width:700px){.hero{min-height:max(660px,100svh)}.header{padding-top:22px}.header nav{gap:25px;font-size:12px}.hero-content{padding-top:120px;padding-bottom:65px}.hero-content .eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:24px}.hero-logo{width:100%;max-width:560px}.hero-content h1{margin-bottom:25px}.map{object-position:58% center}.hero-bottom{padding-bottom:24px;gap:12px}.motion-button{padding:10px;font-size:9px}.discover{font-size:10px}.section{padding-top:74px;padding-bottom:74px}.section-heading{display:block;margin-bottom:44px}.intro{margin-top:25px;font-size:14px}.world{grid-template-columns:27px 1fr;padding:30px 0;gap:20px 14px}.world-description{grid-column:2}.world-name h3{margin-bottom:8px}.world-description p{font-size:13px}.contact-title{padding-right:25px}.footer{font-size:9px;gap:12px}.footer span:nth-child(2){display:none}.contact-content{padding-top:75px;padding-bottom:60px}.contact-details{gap:35px;flex-wrap:wrap}.email>span{padding-left:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.map{animation:none;will-change:auto}.constellation{display:none}.contact-title>span{transition:none}}

/* Contact intégré à la page unique. */
.contact-section .contact-title{margin:0;font-weight:400}
.contact-bottom{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;margin-top:58px;flex-wrap:wrap}
.contact-bottom .contact-details{margin-top:0;gap:50px}
.contact-bottom .email{max-width:100%;overflow-wrap:anywhere}
@media(max-width:700px){.contact-bottom{margin-top:35px;gap:32px}.contact-bottom .contact-details{gap:35px}}

/* Identité fournie et formulaire commun au bureau et au mobile. */
.wordmark{display:block;line-height:0;flex-shrink:0}
.wordmark img{display:block;width:62px;height:62px;object-fit:contain}
.hero-content .hero-tagline{color:#fff}
.hero-baseline{max-width:760px;text-wrap:balance}
.world-logo{display:block;width:210px;max-width:100%;height:auto;margin-bottom:20px}
.world-logo--ooyoo{width:170px}
.world-logo--gigabole{width:200px;filter:brightness(0) invert(1)}
.world-logo--gttp{width:245px}
.contact-section .contact-title{font-size:clamp(36px,5.5vw,78px);line-height:1.15;max-width:1200px}
.contact-form{margin-top:54px;min-width:0}
.form-direct{font-size:12px;line-height:1.7;color:var(--muted);margin:18px 0 0}
.form-direct a{color:var(--paper);text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.wordmark img{width:48px;height:48px}.world-logo{width:180px}.world-logo--ooyoo{width:145px}.world-logo--gttp{width:210px}.contact-form{margin-top:32px}}

/* Visuel provisoire posé sur le panneau vide de l'embed, sans intercepter les clics.
   La zone du badge Fillout reste dégagée ; sur petit écran, le visuel suit le formulaire. */
.contact-form-stage{position:relative}
.contact-art{display:flex;justify-content:center;align-items:center;background:#333;padding:24px;border-radius:0 0 10px 10px;pointer-events:none}
.contact-art img{display:block;width:min(100%,360px);height:auto;max-height:540px;object-fit:contain}
@media(min-width:1100px){.contact-art{position:absolute;top:24px;bottom:80px;right:16px;width:calc(40% - 32px);padding:0;border-radius:0;background:transparent}.contact-art img{width:100%;height:100%;max-height:none}}
@media(prefers-reduced-motion:reduce){.contact-art{display:none}}

/* Couche décorative liée au viewport : les liens restent cliquables. */
body>.constellation{position:fixed;inset:0;z-index:10;width:100%;height:100%;pointer-events:none}

/* Consentement non bloquant, deux choix de même importance. */
.consent-banner{position:fixed;z-index:40;bottom:20px;right:20px;width:min(520px,calc(100% - 40px));max-height:calc(100svh - 40px);overflow:auto;background:#171917;border:1px solid #74766f;border-radius:12px;padding:24px;box-shadow:0 12px 55px #0008;color:var(--paper)}
.consent-banner[hidden]{display:none}.consent-banner h2{font-size:20px;line-height:1.3;margin:0 0 12px;font-weight:400}.consent-banner p{font-size:13px;line-height:1.6;margin:0 0 16px}.consent-actions{display:flex;gap:12px;margin:18px 0}.consent-actions button{flex:1;border:1px solid #aaa69f;border-radius:6px;padding:12px;background:#252823;color:#fff;cursor:pointer;font-size:13px}.consent-actions button:hover{background:#3a3e37}.consent-banner summary{font-size:12px;cursor:pointer;padding:6px 0}.consent-banner details p{margin-top:12px;font-size:12px}.consent-banner a{text-decoration:underline}.consent-settings{padding:0;border:0;background:transparent;font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.consent-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:420px){.consent-banner{padding:18px;bottom:12px;right:12px;width:calc(100% - 24px)}.consent-actions{flex-direction:column}}
