
  :root{
    --night:#120C3A; --night-2:#0C0827; --paper:#F6F2E9;
    --vert:#2FE08C; --orange:#FF5C29; --rose:#FF3D8B;
    --accent:var(--rose);
    --dim:rgba(246,242,233,.55); --line:rgba(246,242,233,.18);
    --argent:#C9C6C0;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    background:var(--night);color:var(--paper);
    font-family:"Familjen Grotesk",sans-serif;
    -webkit-font-smoothing:antialiased;overflow:hidden;
  }
  #bg{
    position:fixed;inset:0;z-index:0;
    background:linear-gradient(180deg,var(--accent) -70%,var(--night) 42%,#05030F 100%);
    transition:background 1.6s cubic-bezier(.4,0,.2,1);
  }
  .mono{font-family:"Martian Mono",monospace;font-weight:400;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase}

  /* ================= LE DISQUE (pièce de monnaie) ================= */
  #stage{position:fixed;inset:0;z-index:2;display:grid;place-items:center;perspective:1700px;cursor:grab}
  /* désaxage : la pièce n'est ni tout à fait centrée, ni tout à fait droite */
  .tilt{
    transform-style:preserve-3d;
    transform:translate(4.5%,-2.5%) rotate(-6deg);
  }
  @media(max-width:860px){ .tilt{transform:translate(3%,-1.5%) rotate(-5deg)} }
  #stage.dragging{cursor:grabbing}

  .disc{
    position:relative;
    width:min(46vw, calc(100svh - 232px), 780px);
    aspect-ratio:1;              /* cercle parfait */
    transform-style:preserve-3d;
    will-change:transform;
  }
  @media(max-width:860px){ .disc{width:min(80vw, calc(100svh - 226px), 460px)} }

  /* couches empilées = épaisseur réelle de la tranche */
  .slab{
    position:absolute;inset:0;border-radius:50%;
    background:var(--fc,var(--rose));
    transform-style:preserve-3d;
  }
  .face{
    position:absolute;inset:0;border-radius:50%;
    backface-visibility:hidden;
    background:var(--fc,var(--rose));
    padding:13px;                 /* liseré coloré */
    transition:background 1.2s;
  }
  .face .inner{position:absolute;inset:13px;border-radius:50%;padding:6px;background:var(--argent)}
  .face .media{position:absolute;inset:6px;border-radius:50%;overflow:hidden;background:#0C0827}
  .face video,.face img,.face .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
  .face .ph{
    display:grid;place-content:center;text-align:center;padding:0 14%;
    background:linear-gradient(160deg,var(--fc,var(--rose)) -20%,#1A1240 55%,#0C0827 100%);
  }
  .face .ph .t{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:clamp(1.05rem,2vw,1.7rem);line-height:1.1;letter-spacing:-.02em}
  .face .ph .f{font-family:"Martian Mono",monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,242,233,.6);margin-top:13px}
  .face .ph .x{font-family:"Martian Mono",monospace;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fc,var(--rose));margin-top:22px}

  /* ================= HABILLAGE ================= */
  /* ---- en-tête : logo + nom + navigation + langue ---- */
  .topbar{
    position:fixed;z-index:6;top:0;left:0;right:0;
    display:flex;align-items:center;gap:14px 26px;flex-wrap:wrap;
    padding:16px 30px;pointer-events:none;
  }
  .topbar > *{pointer-events:auto}
  .brandbox{display:flex;align-items:center;gap:13px;margin-right:8px}
  #logoSlot{width:56px;height:44px;flex:none;display:flex;align-items:center;justify-content:center}
  #logoSlot img{height:100%;width:auto;display:block;filter:drop-shadow(0 2px 12px rgba(0,0,0,.45));transition:opacity .24s ease,transform .24s ease}
  #logoSlot img.swap{opacity:0;transform:translateY(-4px)}
  .brandbox .nm{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.22rem;letter-spacing:-.025em;line-height:1.05}
  .brandbox .sub{display:block;font-family:"Martian Mono",monospace;font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-top:5px}

  .nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
  .trig{
    display:flex;align-items:center;gap:9px;background:none;border:0;cursor:pointer;
    color:var(--paper);font-family:"Familjen Grotesk",sans-serif;font-weight:500;
    font-size:.98rem;padding:4px;transition:color .3s;white-space:nowrap;
  }
  .trig .p{color:var(--dim);transition:transform .4s cubic-bezier(.2,.9,.2,1),color .3s;display:inline-block}
  .trig:hover{color:var(--c)} .trig:hover .p{transform:rotate(90deg);color:var(--c)}

  .lang{margin-left:auto;display:flex;gap:2px;align-items:center;font-family:"Martian Mono",monospace;font-size:.6rem;letter-spacing:.14em}
  .lang button{background:none;border:0;cursor:pointer;color:var(--dim);padding:5px 7px;font:inherit;transition:color .3s}
  .lang button[aria-pressed="true"]{color:var(--paper)}
  .lang span{color:var(--line)}

  /* ---- film à l'écran : sous le cercle, centré ---- */
  .nowbar{
    position:fixed;z-index:5;left:0;right:0;bottom:78px;
    display:flex;flex-direction:column;align-items:center;gap:5px;
    padding:0 20px;text-align:center;pointer-events:none;
  }
  .nowbar .ft{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:clamp(1.05rem,2vw,1.5rem);letter-spacing:-.02em;line-height:1.1}
  .nowbar .fs{font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

  /* ---- pied de page ---- */
  .botbar{position:fixed;z-index:6;bottom:0;left:0;right:0;display:flex;align-items:center;gap:24px;padding:16px 30px;pointer-events:none}
  .botbar a,.botbar button{pointer-events:auto}
  .botbar a{color:var(--paper);text-decoration:none;font-size:.9rem;display:flex;align-items:center;gap:8px;transition:color .3s}
  .botbar a .p{color:var(--dim)}
  .botbar a:hover{color:var(--accent)}
  .spacer{flex:1}
  .sound{
    display:flex;align-items:center;gap:9px;background:none;border:0;cursor:pointer;
    color:var(--paper);padding:6px;opacity:.72;transition:opacity .3s,color .3s;
  }
  .sound:hover{opacity:1;color:var(--accent)}
  .sound svg{width:19px;height:19px;flex:none;overflow:visible}
  .sound .waves{opacity:0;transition:opacity .3s}
  .sound .slash{opacity:1;transition:opacity .3s}
  .sound.on .waves{opacity:1}
  .sound.on .slash{opacity:0}
  .slabel{font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase}
  @media(max-width:480px){.slabel{display:none}}
  .legal{color:var(--dim);font-size:.7rem;max-width:40ch;line-height:1.4;text-align:right}

  @media(max-width:1050px){ .legal{display:none} }
  @media(max-width:820px){
    .topbar{padding:12px 18px;gap:10px 18px}
    #logoSlot{width:46px;height:36px}
    .brandbox .nm{font-size:1.05rem}
    .nav{gap:16px;order:3;width:100%}
    .trig{font-size:.9rem}
    .lang{order:2}
    .botbar{padding:12px 18px;gap:16px}
    .nowbar{bottom:66px}
  }
  @media(max-width:480px){
    .nav{gap:12px}
    .trig{font-size:.82rem;gap:6px}
    .botbar a{font-size:.82rem}
  }

  /* ================= PANNEAUX ================= */
  .panel{position:fixed;inset:0;z-index:30;background:var(--night-2);transform:translateY(100%);transition:transform .7s cubic-bezier(.76,0,.24,1);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
  .panel.open{transform:translateY(0)}
  .panel-inner{max-width:1180px;width:100%;margin:0 auto;padding:88px 32px;flex:1}
  @media(max-width:640px){.panel-inner{padding:78px 20px 66px}}
  .panel-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:17px 32px;background:var(--night-2);border-bottom:1px solid var(--line)}
  @media(max-width:640px){.panel-top{padding:13px 20px}}
  .panel-top .lbl{color:var(--c)}
  .closer{background:none;border:0;cursor:pointer;color:var(--paper);font-family:"Martian Mono",monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:9px;padding:6px}
  .closer .x{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--c);color:var(--night);font-size:.8rem;transition:transform .4s;flex:none}
  .closer:hover .x{transform:rotate(90deg)}
  .panel h2{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:clamp(2.2rem,6.5vw,5rem);line-height:.88;letter-spacing:-.035em;text-transform:lowercase;margin-bottom:14px}
  .panel h2 .dot{color:var(--c)}
  .panel .lede{max-width:48ch;color:var(--dim);font-size:clamp(1rem,1.5vw,1.12rem);line-height:1.5;margin-bottom:44px}

  .filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
  .filters button{font-family:"Martian Mono",monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;padding:9px 15px;border-radius:100px;cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--dim);transition:.3s}
  .filters button:hover{border-color:var(--c);color:var(--paper)}
  .filters button[aria-pressed="true"]{background:var(--c);border-color:var(--c);color:var(--night)}

  /* grille projets avec aperçu image */
  .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  @media(max-width:940px){.grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:600px){.grid{grid-template-columns:1fr}}
  .card{text-align:left;background:none;border:0;padding:0;cursor:pointer;color:var(--paper);display:flex;flex-direction:column;gap:13px}
  .card .thumb{
    position:relative;width:100%;aspect-ratio:16/10;border-radius:14px;overflow:hidden;
    background:linear-gradient(150deg,var(--cc) -20%,#1A1240 60%,#0C0827 100%);
    transition:transform .5s cubic-bezier(.2,.9,.2,1);
  }
  .card:hover .thumb{transform:translateY(-5px)}
  .card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .card .thumb .badge{position:absolute;left:12px;top:12px;font-family:"Martian Mono",monospace;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(12,8,39,.72);backdrop-filter:blur(6px);padding:5px 10px;border-radius:100px}
  .card .thumb .num{position:absolute;right:12px;bottom:12px;font-family:"Martian Mono",monospace;font-size:.6rem;color:var(--cc)}
  .card .ct{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.25rem;letter-spacing:-.02em;line-height:1.1}
  .card .cs{font-family:"Martian Mono",monospace;font-size:.56rem;letter-spacing:.13em;text-transform:uppercase;color:var(--dim)}
  .card[hidden]{display:none}

  /* fiche projet */
  .detail{position:fixed;inset:0;z-index:40;background:var(--night-2);transform:translateY(100%);transition:transform .6s cubic-bezier(.76,0,.24,1);overflow-y:auto;display:flex;flex-direction:column}
  .detail.open{transform:translateY(0)}
  .detail .hero-img{width:100%;aspect-ratio:16/7;border-radius:18px;overflow:hidden;background:linear-gradient(150deg,var(--cc) -20%,#1A1240 60%,#0C0827 100%);margin-bottom:40px;position:relative}
  .detail .hero-img img,.detail .hero-img video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .detail .meta{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
  @media(max-width:760px){.detail .meta{grid-template-columns:repeat(2,1fr)}}
  .detail .meta .k{font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);margin-bottom:7px}
  .detail .meta .v{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.02rem}
  .detail .body{max-width:60ch;font-size:1.03rem;line-height:1.65;color:var(--dim)}
  .detail .body p{margin-bottom:16px}
  .backlink{background:none;border:0;cursor:pointer;color:var(--paper);font-family:"Martian Mono",monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:9px;padding:6px}
  .backlink:hover{color:var(--accent)}

  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  @media(max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:560px){.svc-grid{grid-template-columns:1fr}}
  .svc{border:1px solid var(--line);border-radius:18px;padding:25px 23px 28px;min-height:200px;display:flex;flex-direction:column;transition:border-color .4s,transform .4s}
  .svc:hover{border-color:var(--c);transform:translateY(-4px)}
  .svc .sn{font-family:"Martian Mono",monospace;font-size:.58rem;letter-spacing:.14em;color:var(--c);margin-bottom:auto}
  .svc h3{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.28rem;line-height:1.1;letter-spacing:-.02em;margin:26px 0 10px}
  .svc p{font-size:.9rem;line-height:1.5;color:var(--dim)}

  .studio-body{display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:start}
  @media(max-width:820px){.studio-body{grid-template-columns:1fr;gap:36px}}
  .studio-body p{font-size:1rem;line-height:1.6;color:var(--dim);margin-bottom:17px}
  .studio-body p strong{color:var(--paper);font-weight:500}
  .facts{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .fact{background:var(--night-2);padding:17px 20px;display:flex;justify-content:space-between;gap:16px;align-items:baseline}
  .fact dt{font-family:"Martian Mono",monospace;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
  .fact dd{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.02rem;text-align:right}
  .team{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:44px;max-width:660px}
  @media(max-width:600px){.team{grid-template-columns:1fr}}
  .member{border-top:2px solid var(--c);padding-top:14px}
  .member .nm{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.15rem}
  .member .ro{font-family:"Martian Mono",monospace;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:6px;line-height:1.6}

  /* blog */
  .post{display:grid;grid-template-columns:120px 1fr;gap:26px;padding:24px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--paper);transition:padding-left .45s cubic-bezier(.2,.9,.2,1)}
  .post:last-child{border-bottom:1px solid var(--line)}
  .post:hover{padding-left:14px}
  .post .d{font-family:"Martian Mono",monospace;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);padding-top:5px}
  .post .h{display:block;font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:clamp(1.15rem,2.4vw,1.7rem);letter-spacing:-.02em;line-height:1.15}
  .post .x{display:block;font-size:.94rem;line-height:1.5;color:var(--dim);margin-top:9px;max-width:62ch}
  @media(max-width:640px){.post{grid-template-columns:1fr;gap:8px}}

  .big-mail{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:clamp(1.4rem,5vw,3.6rem);line-height:1;letter-spacing:-.035em;color:var(--paper);text-decoration:none;display:inline-block;word-break:break-word;transition:color .35s}
  .big-mail:hover{color:var(--c)}
  .ct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:54px;padding-top:32px;border-top:1px solid var(--line)}
  @media(max-width:700px){.ct-grid{grid-template-columns:1fr;gap:22px}}
  .ct-col .h{font-family:"Martian Mono",monospace;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c);margin-bottom:10px}
  .ct-col p,.ct-col a{font-size:.96rem;line-height:1.55;color:var(--dim);text-decoration:none;display:block}
  .ct-col a:hover{color:var(--paper)}

  a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}


/* ================= PAGES DE CONTENU (projets, journal) ================= */
body.page{overflow:auto;background:var(--night-2)}
body.page #bg{background:linear-gradient(180deg,var(--accent) -90%,var(--night) 34%,#05030F 78%)}
.page .topbar{position:sticky;background:rgba(12,8,39,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.wrap{max-width:1180px;margin:0 auto;padding:52px 32px 100px}
@media(max-width:640px){.wrap{padding:38px 20px 70px}}
.crumb{display:flex;gap:9px;align-items:center;font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);margin-bottom:34px;flex-wrap:wrap}
.crumb a{color:var(--dim);text-decoration:none}
.crumb a:hover{color:var(--paper)}
h1.big{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:clamp(2.1rem,6vw,4.4rem);line-height:.92;letter-spacing:-.035em;margin-bottom:18px}
h1.big .dot{color:var(--accent)}
.chapo{max-width:54ch;color:var(--dim);font-size:clamp(1.02rem,1.6vw,1.2rem);line-height:1.55;margin-bottom:44px}
.visuel{width:100%;aspect-ratio:16/8;border-radius:20px;overflow:hidden;position:relative;background:linear-gradient(150deg,var(--cc,var(--accent)) -25%,#1A1240 58%,#0C0827 100%);margin-bottom:46px}
.visuel img,.visuel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.visuel .att{position:absolute;left:20px;bottom:18px;font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(246,242,233,.6)}
article.texte{max-width:64ch}
article.texte p{font-size:1.05rem;line-height:1.7;color:rgba(246,242,233,.8);margin-bottom:20px}
article.texte h2{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.6rem;letter-spacing:-.02em;margin:42px 0 16px}
.fiche{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:52px 0;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(max-width:760px){.fiche{grid-template-columns:repeat(2,1fr)}}
.fiche .k{font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.fiche .v{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.05rem;line-height:1.25}
.suite{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}
@media(max-width:820px){.suite{grid-template-columns:1fr}}
.suite a{text-decoration:none;color:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;transition:border-color .35s,transform .35s}
.suite a:hover{border-color:var(--accent);transform:translateY(-4px)}
.suite .st{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.12rem;letter-spacing:-.02em;margin-bottom:7px}
.suite .ss{font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.13em;text-transform:uppercase;color:var(--dim)}
.section-h{font-family:"Martian Mono",monospace;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:66px 0 22px}

/* FAQ */
.faq{max-width:70ch}
.faq details{border-top:1px solid var(--line);padding:20px 0}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.12rem;letter-spacing:-.02em;display:flex;justify-content:space-between;gap:18px;align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-family:"Martian Mono",monospace;font-size:1rem;flex:none;transition:transform .35s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin-top:14px;font-size:1rem;line-height:1.65;color:var(--dim);max-width:64ch}

/* contenu indexable présent dans la page d'accueil */
.seo-intro{max-width:60ch}
.pied{border-top:1px solid var(--line);margin-top:80px;padding:36px 0 10px;display:flex;gap:30px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
.pied a{color:var(--dim);text-decoration:none;font-size:.9rem;display:block;line-height:1.9}
.pied a:hover{color:var(--paper)}
.pied .ph{font-family:"Martian Mono",monospace;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);margin-bottom:9px}
