/* Local Security showcase. A real WebGL sculpture, with a usable static fallback. */
:root{--ember:#ff5542;--ivory:#f6efe5;--night:#100e0e}
body{background:var(--night)}
body>header.site-header{background:#100e0ee8;border-bottom:1px solid #dcc6ad20;backdrop-filter:blur(22px);height:82px}
.site-header .brand{font-size:18px;letter-spacing:.2px}
.site-header .official-emblem{width:44px;height:52px}
.site-header nav{gap:25px}
.site-header .nav-cta{border-color:#ba95894d;background:#ffffff04}
section.arrival{position:relative;isolation:isolate;min-height:790px;height:100svh;max-height:1150px;overflow:hidden;background:radial-gradient(ellipse at 77% 45%,#46221e55,transparent 51%),#100e0e;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;padding:125px 6% 125px;color:var(--ivory)}
.arrival-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#100e0e}
.arrival-scene img{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;object-position:center 58%;opacity:.8;filter:saturate(.84) brightness(.72);transform:scale(1.035);animation:guardian-city-drift 24s ease-in-out infinite alternate;will-change:transform}
.arrival-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#100e0ef2 0%,#100e0ed9 25%,#100e0e66 48%,#100e0e12 78%),linear-gradient(0deg,#100e0eab 0%,transparent 38%,#100e0e30 100%),radial-gradient(ellipse at 69% 47%,transparent 22%,#100e0e29 76%);mix-blend-mode:multiply}
.arrival-scene:before{content:"";position:absolute;z-index:1;inset:-20% -35%;background:linear-gradient(112deg,transparent 43%,#ff514000 48%,#ff66521c 50%,#ff514000 52%,transparent 57%);transform:translateX(-34%);animation:guardian-data-sweep 9s ease-in-out infinite;mix-blend-mode:screen}
@keyframes guardian-city-drift{0%{transform:scale(1.035) translate3d(-.35%,.2%,0)}100%{transform:scale(1.1) translate3d(.45%,-.35%,0)}}
@keyframes guardian-data-sweep{0%,14%{transform:translateX(-34%);opacity:0}32%{opacity:.7}70%{opacity:.42}100%{transform:translateX(34%);opacity:0}}
.arrival:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.045;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.arrival:after{content:'';position:absolute;inset:82px 6% 72px;pointer-events:none;border-left:1px solid #bca58c0a;border-right:1px solid #bca58c0a}
.arrival-copy{z-index:8;position:relative;isolation:isolate;max-width:720px;padding-bottom:20px;opacity:1;visibility:visible;pointer-events:none}
.arrival-copy>*{opacity:1;visibility:visible;transform:none;animation:none!important}
.arrival-copy a,.arrival-copy button{pointer-events:auto}
.arrival-overline{display:flex;align-items:center;gap:18px;font-size:clamp(56px,5.6vw,88px);font-weight:800;line-height:1.03;letter-spacing:-.045em;color:#fff8ef;margin:0 0 28px;text-transform:uppercase}
.arrival-overline i{width:4px;height:1.9em;flex-shrink:0;border-radius:2px;background:var(--ember);box-shadow:0 0 18px #ff554244}
.arrival-message{font-size:clamp(30px,2.8vw,44px);line-height:1.16;font-weight:500;letter-spacing:-.035em;margin:0 0 24px;max-width:600px}
.arrival-message span{display:block}
.arrival-message em{display:block;color:#fb7861;font-family:Georgia,serif;font-weight:400;letter-spacing:-.025em;font-style:italic;text-wrap:balance}
.arrival-lead{font-size:16px;line-height:1.8;color:#c9bdb6;max-width:410px;margin:0 0 12px}
.arrival-lead strong{font-weight:500;color:var(--ivory)}
.arrival-copy .hero-actions{gap:22px;margin-top:27px}
.arrival .button.red{border-radius:40px;background:#ee4c38;color:#fff;padding:18px 24px;font-size:12px;gap:23px}
.arrival .text-link{color:#e0cec3}
.arrival-fine{font-size:10px;color:#9d8d84;line-height:1.7;margin-top:24px;max-width:360px}
.arrival-stage{position:absolute;top:92px;bottom:90px;right:-2%;width:59%;z-index:2}
.arrival-stage:before{content:'';position:absolute;inset:12% 6%;border-radius:50%;background:radial-gradient(ellipse,#ff533517,transparent 65%);filter:blur(25px);pointer-events:none}
#arrival-canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}
#arrival-canvas:active{cursor:grabbing}
.arrival-fallback{position:absolute;inset:15% 21%;object-fit:contain;width:58%;height:70%;filter:drop-shadow(0 0 45px #fe3c2840)}
.arrival-fallback[hidden]{display:none}
.sculpture-caption{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);text-align:center;color:#a48e83;font-size:8px;letter-spacing:1.5px;line-height:2;white-space:nowrap;pointer-events:none}
.sculpture-caption b{display:block;color:#f3d5c4;font-size:10px;letter-spacing:3px;font-weight:500}
.arrival-controls{display:flex;align-items:center;gap:8px;position:absolute;right:6%;top:111px;z-index:5}
.arrival-controls button{display:grid;place-items:center;background:#211b18a6;border:1px solid #bb968333;color:#ddc6b8;border-radius:50%;height:35px;width:35px;font-size:14px;transition:border-color .2s,background .2s}
.arrival-controls button:hover{border-color:#ff7965;background:#3f2620}
.arrival-bottom{position:absolute;left:6%;right:6%;bottom:26px;z-index:4;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #a58e772e;padding-top:22px;gap:20px}
.arrival-bottom>a{font-size:10px;letter-spacing:1px;color:#d2c2b8;display:flex;align-items:center;gap:20px}
.arrival-bottom>a span{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid #bca28a44;border-radius:50%}
.arrival-facts{display:flex;gap:35px}
.arrival-facts>div{display:flex;align-items:center;gap:12px}
.arrival-facts b{font-size:24px;font-family:Manrope,sans-serif;font-weight:500;color:#f3d5c4}
.arrival-facts small{font-size:8px;line-height:1.5;color:#aa9488;text-transform:uppercase;letter-spacing:1px}
.entrance-ready .arrival-copy>*{animation:arrival-word 1.15s cubic-bezier(.2,.7,.2,1) both}
.entrance-ready .arrival-copy>.arrival-overline{animation:none}
.entrance-ready .arrival-copy .arrival-message{animation-delay:.12s}
.entrance-ready .arrival-lead{animation-delay:.26s}
.entrance-ready .hero-actions{animation-delay:.4s}
.entrance-ready .arrival-fine{animation-delay:.5s}
@keyframes arrival-word{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
.signal-ribbon{overflow:hidden;display:flex;align-items:center;justify-content:center;gap:30px;padding:30px 5%;background:#1c1512;border-top:1px solid #d0a18c22;border-bottom:1px solid #d0a18c22;color:#cbb2a3}
.signal-ribbon span{font-size:10px;letter-spacing:2px;white-space:nowrap}
.signal-ribbon i{height:1px;flex:1;max-width:150px;background:linear-gradient(90deg,transparent,#ff7057,transparent);position:relative}
.signal-ribbon i:after{content:'';position:absolute;top:-2px;width:5px;height:5px;background:#ffc0a4;box-shadow:0 0 12px #fa7859;animation:signal-travel 3s ease-in-out infinite;border-radius:50%}
.signal-ribbon i:nth-of-type(2):after{animation-delay:1.5s}
@keyframes signal-travel{from{left:0;opacity:0}35%{opacity:1}to{left:100%;opacity:0}}
.situation-hero{border-bottom:1px solid #f4ad8633}
.immersive-tech{background:radial-gradient(ellipse at 72% 50%,#57281b22,transparent 60%),#100e0e}
.tech-copy h2 em{font-family:Georgia,serif;font-style:italic;color:#f68970}
.light{background:#eee8de}
.manifesto h2,.how h2,.trust h2,.end h2{letter-spacing:-3px}
.film-section{background:#15110f}
.film-poster{border:1px solid #f6b49225;border-radius:6px}
.step-art{border:1px solid #9f74542b;background:radial-gradient(ellipse at 50% 40%,#f9f4e9,#e1d8cb)}
.step{border-radius:4px}
.connection{background:radial-gradient(ellipse at 80% 60%,#492b1c55,transparent 55%),#15110f}
.network-art>span{border-color:#bc91753d;background:linear-gradient(125deg,#41322be6,#201b17e6)}
.network-art>span{flex-wrap:wrap;gap:12px}
.network-art b small{display:block;margin-top:5px;font-size:10px;line-height:1.4;letter-spacing:.025em;color:inherit}
.tech-callout.c-two b{font-size:16px}
@media(max-width:700px){.network-art b small{font-size:11px}}
.faq-section{background:#15110f}
.faq details{border-color:#dac3aa25}
.faq summary{padding:25px 0}
.faq details[open] summary{color:#f89479}
.end{position:relative;overflow:hidden}
.end:before{content:'';position:absolute;right:12%;top:15%;width:350px;height:350px;border:1px solid #c7ad9440;border-radius:50%;pointer-events:none}
.end .official-art{filter:drop-shadow(12px 24px 30px #48241526)}
.patent-note{color:#aa9287}
@media(max-width:1100px){
 section.arrival{padding-left:5%;padding-right:5%;min-height:720px}
 .arrival-overline{font-size:60px}
 .arrival-message{font-size:34px}
 .arrival-stage{right:-12%;width:67%}
 .arrival-copy{max-width:470px}
 .arrival-lead{font-size:14px;max-width:340px}
 .arrival-copy .hero-actions{gap:15px;flex-wrap:wrap}
}
@media(max-width:700px){
 .arrival-scene img{object-position:58% center;opacity:.66;filter:saturate(.78) brightness(.62);animation-duration:32s}
 .arrival-scene:after{background:linear-gradient(90deg,#100e0ec7 0%,#100e0e78 45%,#100e0e30 100%),linear-gradient(0deg,#100e0edb 0%,#100e0e20 58%,#100e0e70 100%)}
}
@media(prefers-reduced-motion:reduce){.arrival-scene img,.arrival-scene:before{animation:none!important;transform:none!important}}
.arrival.motion-paused .arrival-scene img,.arrival.motion-paused .arrival-scene:before{animation-play-state:paused}
@media(min-width:601px) and (max-width:800px){
 section.arrival{min-height:760px;padding-top:120px;align-items:start}
 .arrival-copy{width:365px;max-width:none}
 .arrival-overline{font-size:52px}
 .arrival-message{font-size:30px}
 .arrival-message em{letter-spacing:-.025em}
 .arrival-lead{max-width:285px}
 .arrival-stage{top:290px;bottom:125px;width:55%;right:-5%}
 .sculpture-caption{bottom:-10px;left:50%;font-size:5px;letter-spacing:.8px}
 .sculpture-caption b{font-size:7px;letter-spacing:1px}
 .arrival-fine{max-width:290px}
 .arrival-facts{gap:18px}
 .arrival-facts small{font-size:7px}
 .arrival-facts b{font-size:20px}
 .arrival .hero-actions{max-width:300px}
}
@media(max-width:600px){
 body>header.site-header{height:72px;padding:0 5%}
 .site-header .brand{font-size:14px;gap:5px}
 .site-header .official-emblem{width:34px;height:42px}
 section.arrival{display:flex;flex-direction:column;align-items:stretch;height:auto;min-height:990px;max-height:none;padding:116px 6% 105px}
 .arrival-copy{display:contents;width:auto;max-width:none;padding-bottom:0}
 .arrival-overline{order:0;font-size:clamp(36px,10.8vw,60px);margin-bottom:24px}
 .arrival-message{order:1;font-size:clamp(25px,7vw,34px);margin-bottom:10px}
 .arrival-message em{letter-spacing:-.025em}
 .arrival-lead{order:3;max-width:430px;font-size:14px}
 .arrival .hero-actions{order:4;margin-top:20px;gap:18px}
 .arrival .button.red{padding:16px 19px;font-size:11px}
 .arrival .text-link{font-size:10px}
 .arrival-fine{order:5;max-width:360px;margin-top:15px;font-size:9px}
 .arrival-stage{order:2;position:relative;inset:auto;height:330px;width:120%;margin:-7px -10% 16px}
 .sculpture-caption{bottom:8px}
 .arrival-controls{top:360px;right:7%;bottom:auto}
 .arrival-bottom{bottom:25px;left:6%;right:6%;padding-top:16px;gap:12px}
 .arrival-bottom>a{font-size:8px;gap:7px;max-width:125px}
 .arrival-bottom>a span{flex-shrink:0;width:26px;height:26px}
 .arrival-facts{gap:16px}
 .arrival-facts>div{gap:7px}
 .arrival-facts b{font-size:20px}
 .arrival-facts small{font-size:6px;letter-spacing:.5px}
 .signal-ribbon{gap:13px;padding:24px 5%}
 .signal-ribbon span{font-size:8px;letter-spacing:1px}
 .signal-ribbon i{min-width:12px}
}
@media(prefers-reduced-motion:reduce){
 .entrance-ready .arrival-copy>*{animation:none}
 .signal-ribbon i:after{animation:none;left:50%}
}

#arrival-canvas[hidden]{display:none}

/* Petit ecran : .arrival-copy est en display:contents, ses textes ne sont plus positionnes et l'image de fond (z-index 0) se peint par-dessus. */
@media(max-width:600px){
 .arrival-message,.arrival-lead,.arrival-pricing,.arrival-fine{position:relative;z-index:8}
 .arrival-pricing{order:5}
 .arrival-fine{order:6}
}
