
@font-face{font-family:ITC;src:url(font/ITC-Book.otf);font-weight:400}@font-face{font-family:ITC;src:url(font/ITC-Bold.otf);font-weight:700}
:root{--navy:#092753;--blue:#0055A4;--deep:#003a70;--sky:#7696b9;--light:#f2f2f2}
*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--navy);color:#fff;font-family:ITC,Arial,sans-serif}
@media (pointer:fine){body,a{cursor:none}}
canvas#gl{position:fixed;inset:0;width:100vw;height:100vh;z-index:0}
#pre{position:fixed;inset:0;z-index:100;background:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transition:clip-path 1.2s cubic-bezier(.77,0,.18,1)}
#pre img{width:150px;opacity:.95}#pre .bar{width:220px;height:1px;background:rgba(255,255,255,.15)}#pre .bar i{display:block;height:100%;width:0;background:#fff;transition:width .3s}
#pre .n{font-size:12px;letter-spacing:.4em;color:var(--sky)}#pre.done{clip-path:inset(0 0 100% 0)}
#cur,#dot{position:fixed;top:0;left:0;z-index:99;pointer-events:none;border-radius:50%;mix-blend-mode:difference}
#cur{width:42px;height:42px;margin:-21px;border:1px solid #fff;transition:width .3s,height .3s,margin .3s,background .3s}#dot{width:6px;height:6px;margin:-3px;background:#fff}
#cur.h{width:84px;height:84px;margin:-42px;background:#fff}
@media (pointer:coarse){#cur,#dot{display:none}}
nav{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:20px 5vw;background:linear-gradient(rgba(9,39,83,.7),transparent)}
nav img{height:44px}nav a{color:#fff;text-decoration:none;margin-left:28px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
#prog{position:fixed;left:0;top:0;height:2px;background:linear-gradient(90deg,var(--blue),#fff);z-index:11;width:0}
#dots{position:fixed;right:3vw;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;gap:14px}#dots i{width:8px;height:8px;border-radius:50%;border:1px solid #fff;opacity:.5;transition:.4s}#dots i.on{background:#fff;opacity:1;transform:scale(1.4)}
section{position:relative;z-index:2;min-height:100vh;display:flex;align-items:center;padding:110px 7vw}
.c{max-width:640px}.r{margin-left:auto}
.c>*{opacity:0;transform:translateY(12px);transition:opacity .5s,transform .5s cubic-bezier(.2,.8,.2,1)}
.c.on>*{opacity:1;transform:none}.c.on>*:nth-child(2){transition-delay:.08s}.c.on>*:nth-child(3){transition-delay:.16s}.c.on>*:nth-child(4){transition-delay:.24s}.c.on>*:nth-child(5){transition-delay:.32s}.c.on>*:nth-child(6){transition-delay:.4s}
.k{font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--sky);margin-bottom:18px}
h1{font-size:clamp(40px,6.4vw,96px);line-height:1;font-weight:700;letter-spacing:-.02em}
h2{font-size:clamp(32px,4.2vw,60px);line-height:1.05;font-weight:700;margin-bottom:22px}
p{font-size:17px;line-height:1.65;color:#d6e0ee}
.g{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}
.glass{position:relative;overflow:hidden;background:rgba(0,85,164,.14);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);border-radius:18px;padding:20px 22px;transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .4s,background .4s;transform-style:preserve-3d}
.glass::after{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--x,50%) var(--y,50%),rgba(255,255,255,.22),transparent 60%);opacity:0;transition:opacity .4s;pointer-events:none}
.glass:hover{border-color:rgba(255,255,255,.45);background:rgba(0,85,164,.28)}.glass:hover::after{opacity:1}
.glass h3{font-size:17px;margin:4px 0}.glass span{font-size:11px;color:var(--sky);letter-spacing:.18em;text-transform:uppercase}.glass p{font-size:14px}
.photo{border-radius:18px;overflow:hidden;margin-top:18px;height:220px}.photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}.photo:hover img{transform:scale(1.02)}
.btn{display:inline-block;margin-top:28px;padding:16px 30px;border-radius:4px;background:var(--blue);color:#fff;font-weight:700;text-decoration:none;letter-spacing:.06em;transition:background .3s}.btn:hover{background:#fff;color:var(--navy)}
.btn.o{background:transparent;border:1px solid rgba(255,255,255,.5);margin-left:10px}
.steps{counter-reset:s;margin-top:18px}.steps .glass{margin-top:12px;padding-left:64px}.steps .glass::before{counter-increment:s;content:"0" counter(s);position:absolute;left:22px;top:20px;color:var(--sky);font-weight:700}
.labels{display:flex;gap:18px;align-items:center;margin-top:26px;flex-wrap:wrap}.labels img{height:46px;background:#fff;border-radius:6px;padding:6px}
footer{position:relative;z-index:2;padding:40px 7vw;font-size:13px;color:var(--sky);display:flex;justify-content:space-between;align-items:center}footer img{height:40px}
@media (max-width:760px){.c{background:rgba(9,39,83,.35);border-radius:18px;padding:4px}.g{grid-template-columns:1fr}nav div{display:none}#dots{display:none}section{padding:100px 6vw}}

nav{z-index:60;background:rgba(6,26,58,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}nav .logo{margin:0}nav a.logo img{height:44px}
.c.wide{max-width:980px;width:100%;margin:0 auto}
section.ph{min-height:62vh;align-items:flex-end;padding-bottom:40px}section.ph h1{font-size:clamp(34px,5vw,72px)}section.pc{align-items:flex-start;padding-top:20px}
.k a{color:var(--sky);text-decoration:none}
.doc{padding:34px 40px;background:rgba(9,39,83,.62)}.doc:hover{transform:none!important}.doc::after{display:none}
.doc h1,.doc h2{font-size:clamp(24px,2.6vw,34px);margin:28px 0 12px;line-height:1.15}.doc h3,.doc h4,.doc h5{font-size:19px;margin:22px 0 8px;color:#fff}
.doc p,.doc li,.doc td,.doc th{font-size:16px;line-height:1.65;color:#d6e0ee}.doc p{margin:8px 0}.doc ul,.doc ol{padding-left:22px;margin:8px 0}
.doc a{color:#9cc3ff}.doc table{border-collapse:collapse;width:100%;margin:14px 0}.doc td,.doc th{border:1px solid rgba(255,255,255,.15);padding:8px 10px;text-align:left}
.note{opacity:.8;font-style:italic}
#menu{position:fixed;inset:0;z-index:50;background:rgba(6,26,58,.86);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);clip-path:circle(0 at 95% 4%);transition:clip-path .9s cubic-bezier(.77,0,.18,1);overflow:auto}
#menu.open{clip-path:circle(150% at 95% 4%)}.mi{display:grid;grid-template-columns:repeat(5,1fr);gap:30px;padding:120px 6vw 60px}
.mi a{display:block;color:#fff;text-decoration:none;font-size:15px;padding:6px 0;opacity:.8;transition:opacity .3s,transform .3s}.mi a:hover{opacity:1;transform:translateX(6px)}
#mb{position:relative;z-index:60}
footer{flex-wrap:wrap;gap:16px}footer a{color:var(--sky)}.fl{display:flex;flex-direction:column;gap:6px;text-align:right}
#pre{transition:clip-path .8s cubic-bezier(.77,0,.18,1)}
@media (max-width:760px){.mi{grid-template-columns:1fr 1fr;padding-top:90px}nav div{display:flex}nav div a:not(#mb){display:none}.doc{padding:22px 18px}.fl{text-align:left}}
/* === nav PSTM (miroir pstm.fr) === */
nav{padding:14px 4vw}
nav .nl,nav .nb{display:flex!important;align-items:center}
nav .nl{gap:4px}
nav .ni{position:relative}
nav .ni>a.nt{display:flex!important;align-items:center;gap:6px;margin:0;padding:12px 14px;font-size:13px;letter-spacing:.06em;text-transform:none;font-weight:600;opacity:.9;border-radius:8px;transition:background .25s,opacity .25s}
nav .ni>a.nt i{width:6px;height:6px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg) translateY(-2px);transition:transform .25s}
nav .ni:hover>a.nt,nav .ni.on>a.nt{background:rgba(255,255,255,.1);opacity:1}
nav .ni.on>a.nt{color:#9cc2ec}
nav .ni:hover>a.nt i{transform:rotate(225deg) translateY(-2px)}
nav .sub{position:absolute;top:100%;left:0;min-width:270px;padding:12px;margin-top:6px;background:rgba(6,26,58,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s}
nav .sub:before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
nav .ni:hover>.sub,nav .ni.open>.sub{opacity:1;visibility:visible;transform:none}
nav .sub a{display:block!important;margin:0;padding:9px 12px;font-size:13.5px;letter-spacing:0;text-transform:none;border-radius:8px;opacity:.85;line-height:1.35}
nav .sub a:hover{background:var(--blue);opacity:1}
nav .mega>.sub{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:6px 18px;width:min(880px,88vw);left:50%;transform:translate(-50%,8px)}
nav .mega:hover>.sub,nav .mega.open>.sub{transform:translate(-50%,0)}
nav .sub .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#9cc2ec;padding:8px 12px 4px}
nav .nb{gap:10px}
nav a.bt{display:inline-block!important;margin:0;padding:8px 16px;font-size:12.5px;letter-spacing:.04em;text-transform:none;border-radius:999px;opacity:1;font-weight:600}
nav a.cx{border:1px solid rgba(255,255,255,.6)}
nav a.in{background:var(--blue)}
nav a.bt:hover{background:#fff;color:var(--navy)}
nav #mb{display:none!important;margin:0}
@media(max-width:1100px){
 nav .nl,nav .nb a.bt{display:none!important}
 nav #mb{display:inline-block!important}
}
.mi.mm{display:block;max-width:640px;margin:0 auto;padding:100px 7vw 60px}
.mm .mh,.mm summary{display:block;color:#fff;font-size:22px;font-weight:600;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12);cursor:pointer;list-style:none;text-decoration:none}
.mm summary::-webkit-details-marker{display:none}
.mm summary:after{content:"+";float:right;opacity:.7}
.mm details[open] summary:after{content:"–"}
.mm details a{font-size:15px;padding:7px 0 7px 14px}
.mm details{padding-bottom:6px}
.mm .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#9cc2ec;margin:14px 0 2px 14px}
.mm .mbt{display:flex;gap:12px;margin-top:28px}
.mm .mbt a.bt{flex:1;text-align:center;padding:13px;border-radius:999px;font-weight:600;font-size:15px;transform:none!important}
.mm .mbt .cx{border:1px solid rgba(255,255,255,.6)}.mm .mbt .in{background:var(--blue)}
/* === typographie v10 === */
h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty;hyphens:manual}
#hero .c{max-width:min(760px,60vw)}
h1.hero-t{font-size:clamp(40px,5.4vw,84px);line-height:1.02;letter-spacing:-.025em}
h1.hero-t span{display:block;white-space:nowrap}
#hero p{max-width:34em}
.doc{padding:clamp(22px,4vw,48px)!important;line-height:1.65}
.doc h2{font-size:clamp(24px,2.6vw,36px);line-height:1.15;margin:0 0 22px}
.doc h3{font-size:clamp(19px,1.7vw,24px);margin:38px 0 12px;line-height:1.25}
.doc p{margin:0 0 12px;max-width:68ch;opacity:.88}
.doc .muted{opacity:.65;font-size:.92em}
.dg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:8px 0 4px}
.dc{display:block;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);color:#fff;text-decoration:none;transition:background .25s,transform .25s}
.dc:hover{background:rgba(0,85,164,.35);transform:translateY(-2px)}
.dc span{display:block;font-weight:700;margin-bottom:6px;color:#9cc2ec;letter-spacing:.02em}
.dc p{font-size:14px;margin:0;opacity:.85}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pills a{padding:8px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);color:#fff;text-decoration:none;font-size:14px}
.pills a:hover{background:var(--blue)}
.ticks{padding-left:1.2em;margin:4px 0 12px}.ticks li{margin:4px 0;opacity:.88}
.doc blockquote{margin:0;padding:4px 0 4px 20px;border-left:2px solid #d4af37}
.doc cite{display:block;font-style:normal;color:#9cc2ec;font-weight:600;margin-top:6px}
@media (max-width:760px){
 #hero .c{max-width:100%}
 h1.hero-t{font-size:clamp(34px,10vw,46px)}
 h1.hero-t span{white-space:normal}
 .c{background:rgba(9,39,83,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
 h2{font-size:clamp(28px,8vw,36px)}
}
h1.hero-t{font-size:clamp(40px,4.8vw,78px)}
#hero .hb{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
#hero .hb .btn{margin:0}
@media (max-width:760px){h1.hero-t{font-size:clamp(30px,8.6vw,40px)}#hero .hb .btn{flex:1 1 140px;text-align:center}}
@media (max-width:760px){#hero .hb .btn{white-space:nowrap;padding:14px 18px}}
/* v11 photos */
.pcard{padding-top:0!important;overflow:hidden}.pimg{margin:0 -22px 14px;height:140px;overflow:hidden;border-radius:16px 16px 0 0}.pimg img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1);filter:saturate(.95)}.pcard:hover .pimg img{transform:scale(1.07)}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:0;padding:0!important;overflow:hidden;border-radius:18px}.sp-img{min-height:240px;overflow:hidden}.sp-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}.split:hover .sp-img img{transform:scale(1.05)}.sp-t{padding:24px;align-self:center}
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:12px;margin-top:22px}.gal figure{margin:0;border-radius:18px;overflow:hidden;position:relative;box-shadow:0 10px 30px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.15)}.gal figure img{width:100%;height:118%;object-fit:cover;transform:translateY(var(--py,0px));transition:transform .9s cubic-bezier(.2,.7,.2,1)}.gal figure:hover img{transform:translateY(var(--py,0px)) scale(1.06)}.gal .big{grid-column:span 2;grid-row:span 2}.gal .wide2{grid-column:1/-1}.gal .wide2 img{object-position:center 30%}
@media(max-width:760px){.split{grid-template-columns:1fr}.sp-img{min-height:180px}.gal{grid-template-columns:1fr 1fr;grid-auto-rows:120px}.pimg{height:120px}}

/* clean pass */
.glass{backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;background:rgba(10,32,68,.55)!important;border-color:rgba(255,255,255,.1)!important;box-shadow:none!important}
.glass::after{display:none}
h1,h2,h3{text-shadow:none!important}
.gal figure{box-shadow:none!important}
#gl{filter:saturate(.9) brightness(1.15)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.jouer-cta{position:relative;z-index:3;display:flex;justify-content:center;padding:28px 16px 40px}
.jouer-cta a{display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:14px 28px;border-radius:999px;border:1px solid rgba(232,184,74,.7);background:rgba(5,11,31,.72);backdrop-filter:blur(6px);color:#f0c35a;font-weight:600;font-size:16px;letter-spacing:.02em;text-decoration:none;box-shadow:0 0 28px rgba(31,111,255,.35);transition:transform .2s,box-shadow .2s}
.jouer-cta a:hover{transform:translateY(-2px);box-shadow:0 0 40px rgba(232,184,74,.45)}
.jouer-cta small{font-size:12px;font-weight:400;color:#aab6d8}
.jc-dot{width:8px;height:8px;border-radius:50%;background:#1f6fff;box-shadow:0 0 10px #1f6fff;animation:jcp 1.6s infinite}
@keyframes jcp{50%{opacity:.3}}
.doc img.old-img{display:block;max-width:min(100%,520px);height:auto;border-radius:14px;margin:14px 0}
.dir-teaser{display:flex;gap:20px;align-items:center;margin:10px 0 20px}.dir-teaser img{width:130px;height:130px;object-fit:cover;object-position:top;border-radius:50%;border:2px solid #e8b84a;flex:none}
.alt-intro{margin-top:14px;color:#f0c35a;font-weight:600}
@media(max-width:700px){.dir-teaser{flex-direction:column;text-align:center}}
footer .fsite{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;margin-bottom:16px;font-size:13px}
footer .fsite div{display:flex;flex-direction:column;gap:5px}footer .fsite b{color:#e8b84a;font-weight:600;margin-bottom:4px}
footer .fsite a{color:#c9d3ef;text-decoration:none}footer .fsite a:hover{color:#fff}
@media(max-width:700px){footer .fsite{grid-template-columns:1fr}}
/* gal-fix: full graduation photo + no empty band on mobile */
@media (max-width:700px){.gal{grid-auto-rows:minmax(120px,auto)}.gal figure:not(.wide2):not(.big){height:120px}.gal .big{height:252px}.gal .wide2{aspect-ratio:1200/894;height:auto}.gal .wide2 img{height:100%;transform:none!important;object-position:center}#vie{min-height:0!important;padding-bottom:12px!important}#contact{min-height:0!important;padding-top:12px!important}}
/* hdr-fix: footer <nav class=fsite> inherited fixed header rules */
footer nav.fsite{position:static!important;z-index:auto;display:grid!important;justify-content:initial;align-items:start;padding:0!important;background:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
footer nav.fsite div{display:flex!important;flex-direction:column}
footer nav.fsite a{display:inline!important;margin:0;opacity:1}
body>nav{background:rgba(6,26,58,.97)!important}
@media(max-width:720px){footer nav.fsite{grid-template-columns:1fr}}
