/* ═══ PAGE MERCHANDISING — même ADN que Branding, Communication et Event
       (planche crayonnée, feutres, annotations), en version claire comme son
       intercalaire (#F5F4F0) ; à intégrer ensuite dans
       .folder-panel[data-cat="merchandising"] du site ═══ */

@font-face{font-family:'Goodly';font-weight:800;font-display:swap;src:url('../fonts/font_1.woff2') format('woff2'),url('../fonts/font_1.ttf') format('truetype');}
@font-face{font-family:'Goodly';font-weight:700;font-display:swap;src:url('../fonts/font_2.woff2') format('woff2'),url('../fonts/font_2.ttf') format('truetype');}
@font-face{font-family:'Goodly';font-weight:500;font-display:swap;src:url('../fonts/font_3.woff2') format('woff2'),url('../fonts/font_3.ttf') format('truetype');}
@font-face{font-family:'Goodly';font-weight:400;font-display:swap;src:url('../fonts/font_4.woff2') format('woff2'),url('../fonts/font_4.ttf') format('truetype');}
@font-face{font-family:'Goodly';font-weight:300;font-display:swap;src:url('../fonts/font_5.woff2') format('woff2'),url('../fonts/font_5.ttf') format('truetype');}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --G:'Goodly',sans-serif;
  --fc:#F5F4F0;                 /* papier clair du dossier Merchandising */
  --fc0:rgba(245,244,240,0);
  --ftx:#12162A;                /* encre bleu nuit */
  --red:#D21F45;                /* feutre rouge */
  --paper:#FFFDF8;
  --ink:#F4F2EE;                /* couleur du marquage sur le t-shirt (pilotée par le JS) */
  --ink2:rgba(255,255,255,.55);
  --graphite:#34353D;
  --ease:cubic-bezier(.16,1,.3,1);
  /* 1 unité = 1 % de la largeur de la planche (plafonnée à 1959 px) */
  --u:min(1vw,19.59px);
}

html{scroll-behavior:smooth;}
body{font-family:var(--G);background:var(--fc);color:var(--ftx);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}

/* Grain papier très léger sur toute la page */
body::after{
  content:'';position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ─── Barre de page ─── */
.bp-bar{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:18px clamp(20px,5vw,80px);
  background:none;                 /* plus de dégradé derrière la barre */
}
.bp-back{display:inline-flex;align-items:center;gap:10px;font-weight:500;font-size:.95rem;opacity:.8;transition:opacity .3s;}
.bp-back:hover{opacity:1;}
.bp-steps{display:flex;gap:6px;}
.bp-step{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:8px 12px;border-radius:99px;opacity:.45;transition:opacity .3s,background .3s;}
.bp-step:hover{opacity:.8;}
.bp-step.is-active{opacity:1;background:rgba(255,255,255,.08);}

/* ─── Planche : grille de 100 colonnes = 1 colonne par % de largeur ─── */
.bp{max-width:1959px;margin:0 auto;}
.bp-row{
  position:relative;
  display:grid;grid-template-columns:repeat(100,minmax(0,1fr));
  align-items:center;
  padding:calc(var(--u)*7) 0;
}

/* Placements */
.mc-intro{padding-top:max(110px,calc(var(--u)*9));align-items:start;}
.mc-intro .bp-txt   {grid-column:14/59;}
.bp-note            {grid-column:75/92;grid-row:1;}
.mc-textile .bp-txt {grid-column:14/48;}
.bp-vis--cork       {grid-column:53/93;}
.bp-vis--tee        {grid-column:7/53;grid-row:1;}
.mc-apparel .bp-txt {grid-column:59/92;grid-row:1;}
.mc-objects .bp-txt {grid-column:14/48;}
.bp-vis--proc       {grid-column:54/92;}
.bp-vis--pack       {grid-column:9/50;grid-row:1;}
.mc-pack .bp-txt    {grid-column:58/92;grid-row:1;}

/* ─── Typo ─── */
.bp-txt{position:relative;z-index:2;}
.bp-title{font-weight:500;font-size:max(2.4rem,calc(var(--u)*3.8));line-height:1.05;letter-spacing:-.005em;margin-bottom:max(28px,calc(var(--u)*4.4));}
.bp-lead{font-weight:500;font-size:max(1.25rem,calc(var(--u)*1.85));line-height:1.35;margin-bottom:max(18px,calc(var(--u)*1.6));}
.bp-body{font-weight:400;font-size:max(15px,calc(var(--u)*1.05));line-height:1.55;margin-bottom:max(14px,calc(var(--u)*1.3));color:rgba(18,22,42,.8);max-width:46em;}
.bp-body:last-child{margin-bottom:0;}

/* Titres : lettres qui montent une à une */
.bp-title .ch{display:inline-block;opacity:0;transform:translateY(.45em) rotate(6deg);transition:opacity .7s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i)*38ms);}
.bp-title.is-in .ch{opacity:1;transform:none;}

/* ─── Séparateur sous l'intro : se trace depuis le centre ─── */
.bp-divider{display:grid;grid-template-columns:repeat(100,minmax(0,1fr));padding:calc(var(--u)*3) 0 0;}
.bp-divider span{grid-column:32/69;height:2px;background:rgba(18,22,42,.3);border-radius:2px;transform:scaleX(var(--d,0));}

/* ─── Visuels ─── */
.bp-vis{
  position:relative;
  transform:translate3d(0,var(--py,0px),0) perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform .6s var(--ease);
}

/* ─── Feuilles de papier crayonnées (plan, calendrier, storyboard, résultats) ───
   Tout ce qui est dessus est exprimé en % de la feuille (container queries) */
.sheet{
  position:relative;container-type:inline-size;aspect-ratio:4/3;
  background:var(--paper);color:var(--graphite);border-radius:2px;
  box-shadow:0 24px 36px rgba(18,22,42,.16),0 3px 8px rgba(18,22,42,.1);
  transform:rotate(var(--sr,0deg));
}
.sheet--wide{aspect-ratio:16/10;}
/* grain du papier */
.sheet::after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;border-radius:inherit;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5  0 0 0 0 .48  0 0 0 0 .45  0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* bout de scotch */
.sheet::before{
  content:'';position:absolute;top:-3.2%;left:50%;width:22%;height:7%;z-index:3;
  transform:translateX(-50%) rotate(-3deg);
  background:rgba(214,195,161,.6);box-shadow:0 1px 3px rgba(0,0,0,.1);
}
/* papier pointillé façon carnet */
.sheet--dots{background:radial-gradient(circle,rgba(52,53,61,.16) 1px,transparent 1.4px) 0 0/4.5cqw 4.5cqw,var(--paper);}

.sheet .an{--u:1cqw;font-size:calc(var(--fs,5) * 1cqw);}
.sheet .an{color:var(--graphite);}
.sheet .an--red{color:#D21F45;}
.an.an--t{width:max-content;}
.an.an--c{transform:translate(-50%,-50%) rotate(var(--r,0deg));}
.an.an--full{left:0;top:0;width:100%;}

.an.an--l{transform:translate(0,-50%) rotate(var(--r,0deg));}
.an path.thin{opacity:.55;stroke-width:calc(var(--sw,1.6) * .75);}

/* ─── Textile : échantillons épinglés en vrac, directement sur la page ─── */
.cork{position:relative;container-type:inline-size;aspect-ratio:4/3;}
.sw{
  position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w,23) * 1cqw);z-index:var(--z,1);
  translate:-50% -50%;rotate:var(--r);transform-origin:50% 8%;
  filter:drop-shadow(.4cqw .9cqw .7cqw rgba(18,22,42,.25));cursor:pointer;
}
.sw:hover{z-index:9;animation:swing 1.8s cubic-bezier(.3,.6,.3,1);}
@keyframes swing{
  0%{transform:rotate(0);} 15%{transform:rotate(7deg);} 32%{transform:rotate(-5deg);}
  50%{transform:rotate(3deg);} 68%{transform:rotate(-1.6deg);} 84%{transform:rotate(.6deg);} 100%{transform:rotate(0);}
}
.fab{position:relative;aspect-ratio:1/1.06;clip-path:var(--cut,none);}
/* chaque tissu : couleur + armure + grain */
.fab::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(135deg,rgba(255,255,255,.14),transparent 38%,transparent 62%,rgba(0,0,0,.18)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;opacity:.55;
}
.fab--jersey{background:
  repeating-linear-gradient(72deg,rgba(255,255,255,.09) 0 .25cqw,transparent .25cqw .55cqw),
  repeating-linear-gradient(-72deg,rgba(0,0,0,.22) 0 .25cqw,transparent .25cqw .55cqw),#1F2B4D;}
.fab--fleece{background:
  radial-gradient(circle,rgba(255,255,255,.35) 0 .12cqw,transparent .2cqw) 0 0/.9cqw .9cqw,
  radial-gradient(circle,rgba(0,0,0,.25) 0 .12cqw,transparent .2cqw) .45cqw .3cqw/1.1cqw 1.1cqw,#8D8F96;}
.fab--denim{background:
  repeating-linear-gradient(-45deg,rgba(255,255,255,.12) 0 .12cqw,transparent .12cqw .7cqw),
  repeating-linear-gradient(45deg,#2C4775 0 .32cqw,#1B2F57 .32cqw .64cqw);}
.fab--linen{background:
  repeating-linear-gradient(0deg,rgba(110,90,60,.2) 0 .14cqw,transparent .14cqw .5cqw),
  repeating-linear-gradient(90deg,rgba(255,255,255,.28) 0 .14cqw,transparent .14cqw .46cqw),
  linear-gradient(90deg,transparent 30%,rgba(110,90,60,.12) 31% 32%,transparent 33% 70%,rgba(110,90,60,.1) 71% 71.6%,transparent 72%),#D9CBB1;}
.fab--mesh{background:
  radial-gradient(circle,rgba(40,0,10,.65) 0 .38cqw,transparent .48cqw) 0 0/1.3cqw 1.3cqw,
  radial-gradient(circle,rgba(40,0,10,.65) 0 .38cqw,transparent .48cqw) .65cqw .65cqw/1.3cqw 1.3cqw,#C81E3A;}
.fab--polar{background:
  radial-gradient(circle at 30% 30%,rgba(255,255,255,.22) 0 .5cqw,transparent .9cqw) 0 0/2.2cqw 2.2cqw,
  radial-gradient(circle at 70% 60%,rgba(0,0,0,.18) 0 .6cqw,transparent 1cqw) .8cqw .6cqw/2.6cqw 2.6cqw,#2F5D46;}
.fab--fleece::after,.fab--polar::after{filter:blur(.15cqw);opacity:.75;}
/* épingle */
.pin{
  position:absolute;left:50%;top:5%;width:2.4cqw;aspect-ratio:1;border-radius:50%;translate:-50% -50%;z-index:2;
  background:radial-gradient(circle at 35% 30%,#fff 0 12%,var(--pin) 34%,color-mix(in srgb,var(--pin) 70%,#000) 100%);
  box-shadow:.3cqw .5cqw .5cqw rgba(0,0,0,.4);
}
.pin::after{content:'';position:absolute;left:60%;top:70%;width:2.4cqw;height:.22cqw;border-radius:1cqw;background:linear-gradient(90deg,#B8BCC4,#F2F3F5);rotate:38deg;transform-origin:0 50%;z-index:-1;}
/* petite étiquette carton */
.sw-tag{
  position:absolute;left:50%;top:calc(100% - 1.4cqw);translate:-50% 0;rotate:calc(var(--r) * -1.4);
  padding:.7cqw 1.5cqw .8cqw;background:#FFFDF6;color:#2A2B33;white-space:nowrap;text-align:center;
  font-family:'Reenie Beanie',cursive;font-size:2.6cqw;line-height:.9;
  box-shadow:0 .3cqw .8cqw rgba(0,0,0,.2);
}

/* ─── Vêtements : fiche technique interactive ─── */
.tee .tee-svg{position:absolute;left:8%;top:14%;width:48%;overflow:visible;--tee:#1F2B4D;}
.tee-body{fill:var(--tee);stroke:#2A2B33;stroke-width:1.4;stroke-linejoin:round;transition:fill .5s;}
.tee-rib{fill:color-mix(in srgb,var(--tee) 82%,#000);stroke:#2A2B33;stroke-width:1.1;transition:fill .5s;}
.tee-seam{fill:none;stroke:rgba(0,0,0,.35);stroke-width:1;}
.tee-stitch{fill:none;stroke:color-mix(in srgb,var(--tee) 55%,#fff);stroke-width:.9;stroke-dasharray:3 2.4;transition:stroke .5s;}
.tee-logo{transform-box:view-box;transition:transform .8s var(--ease),opacity .3s;}
.tee-logo[data-p="coeur"]{transform:translate(196px,96px) scale(.42);}
.tee-logo[data-p="centre"]{transform:translate(150px,150px) scale(1.05);}
.tee-logo[data-p="manche"]{transform:translate(34px,84px) rotate(-30deg) scale(.3);}
.tee-logo[data-t="brode"]{fill:url(#emb);stroke:var(--ink2);stroke-width:1.4;stroke-dasharray:2.2 1.4;}
.tee-logo[data-t="serig"]{fill:var(--ink);filter:url(#silk);}
.tee-logo[data-t="flex"]{fill:url(#flexg);stroke:rgba(255,255,255,.35);stroke-width:.8;}
.emb-a{fill:var(--ink);}
.emb-b{fill:rgba(255,255,255,.28);}
.flex-a{stop-color:var(--ink);}
.flex-b{stop-color:color-mix(in srgb,var(--ink) 40%,#fff);}
.flex-c{stop-color:color-mix(in srgb,var(--ink) 75%,#000);}
.tee-ctrl{position:absolute;left:62%;top:15%;width:34%;display:flex;flex-direction:column;gap:3.4cqw;font-family:var(--G);z-index:2;}
.tc-grp > span{display:block;margin-bottom:1.2cqw;font-weight:700;font-size:1.6cqw;letter-spacing:.2em;text-transform:uppercase;opacity:.55;}
.tc-dots{display:flex;gap:1.4cqw;}
.tc-dots button{
  width:4.6cqw;aspect-ratio:1;border-radius:50%;cursor:pointer;background:var(--c);
  border:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);transition:box-shadow .25s,transform .25s var(--ease);
}
.tc-dots button:hover{transform:scale(1.1);}
.tc-dots button.is-on{box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),0 0 0 .5cqw #fff,0 0 0 .8cqw #D21F45;}
.tc-opts{display:flex;flex-wrap:wrap;gap:1cqw;}
.tc-opts button{
  padding:1cqw 1.8cqw;border-radius:99px;cursor:pointer;font:500 1.75cqw var(--G);color:#2A2B33;
  background:transparent;border:1px solid rgba(42,43,51,.3);transition:background .25s,color .25s,border-color .25s;
}
.tc-opts button:hover{border-color:#2A2B33;}
.tc-opts button.is-on{background:#12162A;border-color:#12162A;color:#fff;}

/* ─── Objets : du croquis au produit ─── */
.pr-stage{aspect-ratio:4/3;overflow:hidden;}
.pr-l{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s .5s;}
.pr-stage[data-step="0"] .pr-l--0,.pr-stage[data-step="1"] .pr-l--1,.pr-stage[data-step="2"] .pr-l--2,
.pr-stage[data-step="3"] .pr-l--3,.pr-stage[data-step="4"] .pr-l--4{opacity:1;visibility:visible;transition:opacity .5s ease .1s;}
/* 01 recherche */
.pr-ghost{position:absolute;left:50%;top:6%;height:88%;translate:-50% 0;fill:none;stroke:rgba(52,53,61,.35);stroke-width:1.2;stroke-dasharray:4 4;}
.pr-card,.pr-word{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);rotate:var(--r);}
.pr-card{
  display:flex;align-items:flex-end;gap:1cqw;padding:1.2cqw;width:22cqw;height:15cqw;
  box-shadow:0 .6cqw 1.6cqw rgba(0,0,0,.18);font:700 1.6cqw var(--G);letter-spacing:.12em;text-transform:uppercase;color:#fff;
}
.pr-card--steel{background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 .15cqw,transparent .15cqw .45cqw),linear-gradient(120deg,#9AA0A8,#D9DCE0 45%,#8A9098);color:#2A2B33;}
.pr-card--chips{background:#fff;align-items:stretch;}
.pr-card--chips i{flex:1;background:var(--c);}
.pr-word{font-family:'Reenie Beanie',cursive;font-size:4.4cqw;color:#2A2B33;line-height:1;}
.pr-l--0.is-anim .pr-card,.pr-l--0.is-anim .pr-word{animation:prIn .6s var(--ease) both;}
.pr-l--0 > :nth-child(3){animation-delay:.08s!important;}.pr-l--0 > :nth-child(4){animation-delay:.16s!important;}
.pr-l--0 > :nth-child(5){animation-delay:.24s!important;}.pr-l--0 > :nth-child(6){animation-delay:.32s!important;}
.pr-l--0 > :nth-child(7){animation-delay:.4s!important;}
@keyframes prIn{from{opacity:0;scale:.85;}}
/* 03 développement */
.pr-dev{position:absolute;inset:0;width:100%;height:100%;}
.dv-body{fill:#12162A;}
.dv-cap{fill:#2A2B33;}
.dv-zone{fill:none;stroke:#D21F45;stroke-width:1;stroke-dasharray:3 2;}
.dv-logo{fill:rgba(255,255,255,.85);}
.dv-dim{fill:none;stroke:#2A2B33;stroke-width:1;}
.dv-lead{fill:none;stroke:#D21F45;stroke-width:1;}
.dv-txt{font-family:var(--G);font-size:10px;letter-spacing:.06em;fill:#2A2B33;}
.dv-sub{font-size:8px;opacity:.6;}
.pr-chips{position:absolute;left:10%;top:23%;display:flex;flex-direction:column;gap:1.2cqw;}
.pr-chips i{width:6cqw;height:4cqw;border-radius:.6cqw;background:var(--c);box-shadow:0 .3cqw .8cqw rgba(0,0,0,.15);}
/* 04 prototype */
.pr-proto{position:absolute;left:50%;top:5%;height:88%;translate:-50% 0;rotate:-4deg;}
.pr-l--3.is-anim .pr-proto{animation:protoIn .9s var(--ease) both;}
@keyframes protoIn{from{opacity:0;translate:-50% 6%;rotate:-12deg;}}
.pr-tag{
  position:absolute;left:62%;top:30%;rotate:8deg;padding:1.2cqw 2.4cqw 1.4cqw;border-radius:.6cqw;background:#FFFDF6;
  font-family:'Reenie Beanie',cursive;font-size:4.2cqw;line-height:.9;color:#2A2B33;box-shadow:0 .5cqw 1.4cqw rgba(0,0,0,.18);
}
.pr-tag::before{content:'';position:absolute;left:-7cqw;top:50%;width:7cqw;height:1px;background:#8A8A90;rotate:-14deg;transform-origin:100% 50%;}
.pr-tag small{display:block;font-size:3.4cqw;color:#1F7A4D;}
/* 05 production */
.pr-row{position:absolute;left:6%;right:6%;bottom:12%;height:66%;display:flex;justify-content:space-between;align-items:flex-end;}
.pr-row svg{height:100%;width:auto;}
.pr-l--4.is-anim .pr-row svg{animation:prodIn .7s var(--ease) both;animation-delay:calc(var(--i) * 120ms);}
@keyframes prodIn{from{opacity:0;translate:0 12%;}}
.pr-hand{position:absolute;left:8%;top:7%;rotate:-3deg;font-family:'Reenie Beanie',cursive;font-size:4.8cqw;color:#D21F45;}
/* étapes */
.proc{container-type:inline-size;}
.pr-steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:1cqw;margin-top:3.4cqw;position:relative;}
.pr-steps::before{content:'';position:absolute;left:10%;right:10%;top:1.8cqw;height:1px;background:rgba(18,22,42,.2);}
.pr-steps button{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:.9cqw;width:100%;padding:0;border:0;background:none;cursor:pointer;
  font:500 max(10px,1.9cqw) var(--G);color:rgba(18,22,42,.55);transition:color .3s;
}
.pr-steps b{
  display:grid;place-items:center;width:3.6cqw;aspect-ratio:1;border-radius:50%;background:var(--fc);
  border:1px solid rgba(18,22,42,.3);font-weight:700;font-size:max(9px,1.5cqw);transition:background .3s,color .3s,border-color .3s;
}
.pr-steps button:hover{color:var(--ftx);}
.pr-steps button.is-on{color:var(--ftx);}
.pr-steps button.is-on b{background:#12162A;border-color:#12162A;color:#fff;}
.pr-steps button.is-done b{background:#D21F45;border-color:#D21F45;color:#fff;}
.pr-cap{margin-top:2.6cqw;text-align:center;font-size:max(13px,2.2cqw);line-height:1.45;color:rgba(18,22,42,.75);min-height:3em;}

/* ─── Packaging : plan de découpe imprimé → retourné et plié → ouvert ───
   À plat, on voit le côté imprimé (le plan de découpe, avec ses pointillés de pli).
   La feuille se retourne, les côtés se relèvent, le couvercle se rabat avec sa
   languette ; à l'ouverture apparaît l'intérieur kraft.
   Chaque face a deux côtés : .i (intérieur kraft) et .o (extérieur imprimé). */
.pk{position:relative;container-type:inline-size;aspect-ratio:100/96;perspective:200cqw;touch-action:pan-y;}
.pk:not([data-state="flat"]){cursor:grab;}
.pk-scene{
  position:absolute;inset:0;transform-style:preserve-3d;transform-origin:50% 64.6%;
  transform:translateY(-26cqw) rotateX(180deg) rotateZ(0deg);       /* à plat : on regarde le côté imprimé */
  transition:transform 1.3s var(--ease) .9s;                          /* au dépliage, on se retourne en dernier */
}
.pk:not([data-state="flat"]) .pk-scene{
  transform:translateY(9cqw) rotateX(58deg) rotateZ(var(--rz,-32deg));
  transition-delay:0s;
}
.pk.is-drag .pk-scene{transition:none;}
.pf{position:absolute;transform-style:preserve-3d;transition:transform .9s var(--ease);}
.pf > .i,.pf > .o{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;}
/* intérieur : carton kraft */
.pf > .i{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .24  0 0 0 0 .12  0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    #CDAE80;
  box-shadow:inset 0 0 4cqw rgba(60,35,10,.25);
}
/* extérieur imprimé (vu de dos, d'où la rotation) */
.pf > .o{
  transform:rotateY(180deg);overflow:hidden;background:#12162A;color:#fff;font-family:var(--G);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8cqw;
  outline:1px dashed transparent;outline-offset:-1px;transition:outline-color .4s;
}
.pk[data-state="flat"] .pf > .o{outline-color:rgba(255,255,255,.5);}          /* pointillés de pli */
.pf > .o::after{content:'';position:absolute;inset:0;background:var(--shade,transparent);pointer-events:none;transition:background .6s;}
.pk[data-state="flat"] .pf > .o::after{background:transparent;}
.pf-front > .o,.pf-lid > .o,.pf-base > .o,.pf-back > .o{transform:rotateX(180deg);}   /* textes lisibles à l'endroit sur le plan à plat */
/* couvercle premium : bleu nuit mat, texture de marque à peine visible,
   « & » en dorure rouge métallisée (un reflet passe dessus), filets fins */
.o--lid{
  background:
    linear-gradient(rgba(13,15,30,.82),rgba(13,15,30,.82)),
    url('../images/texture-bleu-rose.svg') center/30cqw auto,
    #0D0F1E!important;
  box-shadow:
    inset 0 0 0 1.5cqw #0D0F1E,
    inset 0 0 0 1.62cqw rgba(229,33,72,.75),
    inset 0 0 0 2.1cqw #0D0F1E,
    inset 0 0 0 2.16cqw rgba(255,255,255,.18)!important;
  gap:1.1cqw!important;
}
.lid-top,.lid-name{font-family:var(--G);text-transform:uppercase;color:rgba(255,255,255,.82);}
.lid-top{font-size:1.05cqw;letter-spacing:.5em;opacity:.7;}
.lid-name{font-size:1.45cqw;font-weight:500;letter-spacing:.46em;}
.lid-name em{font-style:normal;color:#E52148;}
.lid-foil{
  display:block;width:8.2cqw;aspect-ratio:136/200;
  -webkit-mask:url('../images/amp-blanc.svg') 50% 50%/300% auto no-repeat;
          mask:url('../images/amp-blanc.svg') 50% 50%/300% auto no-repeat;
  background:linear-gradient(115deg,#6E0C22 0%,#C8183E 28%,#FF9AAE 44%,#E52148 52%,#8E1230 72%,#E52148 100%) 0 0/300% 100%;
  filter:drop-shadow(0 .12cqw 0 rgba(0,0,0,.6)) drop-shadow(0 -.06cqw 0 rgba(255,255,255,.25));
  animation:foil 5s ease-in-out infinite;
}
@keyframes foil{0%,100%{background-position:0 0;}50%{background-position:100% 0;}}
.o--front{background:#A01838!important;}
.o--front b{font-size:3.4cqw;font-weight:700;letter-spacing:.01em;}
.o--front span{font-size:1.3cqw;letter-spacing:.36em;text-transform:uppercase;opacity:.8;}
.o--back span{font-size:1.4cqw;letter-spacing:.3em;text-transform:uppercase;opacity:.75;}
.pk-code{display:block;width:9cqw;height:3cqw;margin-top:.6cqw;padding:.4cqw .6cqw;background:#fff repeating-linear-gradient(90deg,#12162A 0 .22cqw,transparent .22cqw .42cqw,#12162A .42cqw .5cqw,transparent .5cqw .85cqw) content-box;}
.o--side{background:repeating-linear-gradient(90deg,#12162A 0 2.2cqw,#A01838 2.2cqw 2.6cqw,#12162A 2.6cqw 3.2cqw,#fff 3.2cqw 3.35cqw)!important;}
.o--tuck{background:#A01838!important;}
.o--base span{font-size:1.3cqw;letter-spacing:.3em;text-transform:uppercase;opacity:.55;}
.pf-base{left:33cqw;top:49cqw;width:34cqw;height:26cqw;}
.pf-front{left:0;top:100%;width:100%;height:14cqw;transform-origin:50% 0;}
.pf-back{left:0;bottom:100%;width:100%;height:14cqw;transform-origin:50% 100%;}
.pf-left{right:100%;top:0;width:14cqw;height:100%;transform-origin:100% 50%;}
.pf-right{left:100%;top:0;width:14cqw;height:100%;transform-origin:0 50%;}
.pf-lid{left:0;bottom:100%;width:100%;height:26cqw;transform-origin:50% 100%;}
.pf-tuck{left:4%;bottom:100%;width:92%;height:6cqw;transform-origin:50% 100%;}
.pf-tuck > .i,.pf-tuck > .o{border-radius:3cqw 3cqw 0 0;}
.pf-left > .o{--shade:rgba(0,0,0,.3);}
.pf-right > .o{--shade:rgba(0,0,0,.12);}
.pf-back > .o{--shade:rgba(0,0,0,.22);}
/* ═══ États : à plat → fermée → ouverte ═══ */
.pk:not([data-state="flat"]) .pf-front{transform:rotateX(90deg);transition-delay:.5s;}
.pk:not([data-state="flat"]) .pf-back{transform:rotateX(-90deg);transition-delay:.5s;}
.pk:not([data-state="flat"]) .pf-left{transform:rotateY(90deg);transition-delay:.65s;}
.pk:not([data-state="flat"]) .pf-right{transform:rotateY(-90deg);transition-delay:.65s;}
.pk[data-state="closed"] .pf-lid{transform:rotateX(-90deg);transition-delay:1.45s;}   /* le couvercle descend une fois la languette repliée */
.pk[data-state="closed"] .pf-tuck{transform:rotateX(-96deg);transition-delay:.95s;}  /* repliée d'abord ; un peu plus qu'à angle droit pour passer DERRIÈRE la face avant (sinon elle se confond avec elle et la traverse) */
.pk[data-state="open"] .pf-lid{transform:rotateX(18deg);}
.pk[data-state="open"] .pf-tuck{transform:rotateX(-25deg);transition-delay:.5s;}
/* dépliage : dans l'ordre inverse */
.pk[data-state="flat"] .pf-left,.pk[data-state="flat"] .pf-right{transition-delay:.3s;}
.pk[data-state="flat"] .pf-front,.pk[data-state="flat"] .pf-back{transition-delay:.45s;}
.pk-notes{position:absolute;inset:0;pointer-events:none;transition:opacity .4s;}
.pk-notes .an{--u:1cqw;font-size:calc(var(--fs,4) * 1cqw);}
.pk:not([data-state="flat"]) .pk-notes{opacity:0;}
.pk-btn{
  display:flex;align-items:center;gap:10px;margin:max(14px,calc(var(--u)*1.2)) auto 0;padding:12px 22px;border-radius:99px;cursor:pointer;
  font:500 max(12px,calc(var(--u)*.8)) var(--G);letter-spacing:.14em;text-transform:uppercase;
  color:var(--ftx);background:transparent;border:1px solid rgba(18,22,42,.3);transition:background .3s,color .3s,border-color .3s;
}
.pk-btn:hover{background:#12162A;color:#fff;border-color:#12162A;}

/* ─── Post-it au vent : maillage WebGL plié d'un seul tenant ─── */
.bp-note{margin-top:calc(var(--u)*-1);}
.pi{position:relative;width:100%;aspect-ratio:1;transform:rotate(calc(-6deg + var(--rz,0deg)));}
.pi canvas{position:absolute;inset:-35%;width:170%;height:170%;pointer-events:none;}
.pi .pi-shade{filter:blur(7px);opacity:.9;}
.pi .pi-flat{position:static;inset:auto;width:100%;height:100%;box-shadow:6px 14px 24px rgba(0,0,0,.45);}   /* secours sans WebGL */

/* ─── Marquages au feutre ─── */
/* Surligné : chaque mot se remplit au rythme du scroll, comme une lecture */
.mk-hl{background:none;color:inherit;}
/* Mots importants : en gras (plus de surlignage) */
.mk-hl .w{font-weight:700;color:var(--ftx);}

/* Souligné : le trait avance au fur et à mesure du scroll */
.mk-under{position:relative;display:inline-block;white-space:nowrap;}
.mk-under svg{position:absolute;left:-.05em;bottom:-.28em;width:calc(100% + .15em);height:.4em;overflow:visible;pointer-events:none;}

/* Entouré : la boucle se trace quand on arrive sur le mot */
.mk-circle{position:relative;display:inline-block;white-space:nowrap;}
.mk-circle svg{position:absolute;left:-.45em;top:-.42em;width:calc(100% + .95em);height:calc(100% + .78em);overflow:visible;pointer-events:none;}

.mk-under path,.mk-circle path{fill:none;stroke:var(--red);stroke-linecap:round;stroke-linejoin:round;}
.mk-under path{stroke-width:3;}
.mk-circle path{stroke-width:2.2;}

/* ─── Annotations manuscrites & gribouillages ─── */
.an{
  position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*var(--u));
  transform:rotate(var(--r,0deg));pointer-events:none;z-index:1;
  color:rgba(40,42,54,.85);                                     /* crayon graphite */
  font-family:'Reenie Beanie',cursive;font-weight:400;font-size:max(24px,calc(var(--u)*2.45));line-height:.9;letter-spacing:.02em;
}
.an--red{color:var(--red);}                                      /* crayon de couleur rouge */
.an svg,.an-txt{filter:url(#pencil);}
.an svg{display:block;width:100%;height:auto;overflow:visible;}
.an path{fill:none;stroke:currentColor;stroke-width:var(--sw,1.6);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1.2;stroke-dashoffset:1;}
.an path.an-pass{opacity:.5;stroke-width:calc(var(--sw,1.6) * .7);}   /* trait repassé */
.an.is-drawn path{stroke-dashoffset:0;}
.an .an-over{position:absolute;left:-4%;width:108%;}
.an-txt{display:block;white-space:nowrap;clip-path:inset(-30% 100% -30% 0);}
.an.is-drawn .an-txt{clip-path:inset(-30% -5% -30% 0);}
.an[data-scrub] .an-txt{transition:clip-path .8s cubic-bezier(.45,.1,.55,.95);}
.an-txt .l{display:inline-block;transform:translateY(var(--ly,0)) rotate(var(--lr,0deg)) scale(var(--ls,1));}
/* Mots-clés SEO : la largeur suit le texte, le trait souligne en dessous */
.an--seo{width:max-content;}
.an--seo .an-over{top:100%;}
.bp-seo-intro{margin:max(18px,calc(var(--u)*1.8)) 0 0 calc(var(--u)*12);}
.an--inline{position:relative;left:auto;top:auto;display:inline-block;vertical-align:middle;margin-right:18px;margin-bottom:26px;}

/* ─── Apparitions ─── */
.rv{opacity:0;translate:0 22px;transition:opacity .9s var(--ease),translate .9s var(--ease);}
.rv.is-in{opacity:1;translate:0 0;}
.rv-img{opacity:0;translate:0 60px;scale:.95;transition:opacity 1.1s var(--ease),translate 1.2s var(--ease),scale 1.2s var(--ease),transform .6s var(--ease);}
.rv-img.is-in{opacity:1;translate:0 0;scale:1;}
/* Feuilles : elles apparaissent sur place, sans bouger */
.rv-fade{opacity:0;transition:opacity .6s ease;}
.rv-fade.is-in{opacity:1;}

/* Mots-clés sous l'accroche */
.bp-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 max(10px,calc(var(--u)*.8));}
.bp-tags li{
  font-size:max(11px,calc(var(--u)*.72));letter-spacing:.08em;line-height:1;
  padding:.6em 1.1em;border:1px solid rgba(18,22,42,.22);border-radius:99px;color:rgba(18,22,42,.8);
}
/* ─── Voir plus : titre + accroche, le reste au clic ─── */
.bp-toggle{
  display:inline-flex;align-items:center;gap:10px;padding:8px 0;background:none;border:0;color:inherit;cursor:pointer;
  font:500 max(12px,calc(var(--u)*.78)) var(--G);letter-spacing:.16em;text-transform:uppercase;opacity:.75;transition:opacity .3s;
}
.bp-toggle:hover{opacity:1;}
.bp-toggle span{padding-bottom:3px;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease);}
.bp-toggle:hover span{background-size:100% 1px;}
.bp-toggle svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;transition:transform .45s var(--ease);}
.is-open .bp-toggle svg{transform:rotate(45deg);}
.bp-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease);}
.bp-more-in{overflow:hidden;min-height:0;}
.bp-more-in > :first-child{margin-top:max(14px,calc(var(--u)*1.3));}
.is-open .bp-more{grid-template-rows:1fr;}
.bp-row > .an{transition:opacity .4s;}
.is-closed > .an{opacity:0;visibility:hidden;}
@media(max-width:900px){ .is-closed > .an.an--seo{display:none;} }

/* ─── Fin ─── */
.bp-end{padding:calc(var(--u)*6) 20px max(100px,calc(var(--u)*10));text-align:center;}
.bp-cta{
  display:inline-flex;align-items:center;gap:14px;padding:20px 34px;border-radius:99px;
  background:var(--ftx);color:var(--fc);font-weight:700;font-size:1.05rem;
  transition:background .35s,color .35s,gap .35s var(--ease);
}
.bp-cta:hover{background:var(--red);color:#fff;gap:20px;}

/* ─── Navigation des sections : intercalaires verticaux, à droite ───
   Chaque section est un onglet qui dépasse du bord de l'écran ;
   l'onglet en cours sort davantage, en papier, comme un intercalaire tiré */
.bp-steps{
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;align-items:flex-end;gap:5px;
}
.bp-step{
  writing-mode:vertical-rl;transform:rotate(180deg);          /* lecture de bas en haut */
  padding:16px 10px 16px 8px;border-radius:0 9px 9px 0;          /* arrondi côté page (inversé par la rotation) */
  font-size:.64rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;
  color:rgba(18,22,42,.65);opacity:1;
  background:rgba(18,22,42,.06);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:inset 1px 0 0 rgba(18,22,42,.08);
  transition:padding .45s var(--ease),background .3s,color .3s,box-shadow .3s;
}
.bp-step:hover{background:rgba(18,22,42,.12);color:var(--ftx);padding-right:14px;}
.bp-step.is-active{
  background:#12162A;color:#fff;padding-right:18px;
  box-shadow:6px 0 18px rgba(18,22,42,.2);              /* ombre vers la page (rotation 180°) */
}
.bp-sep{
  margin:12px 8px 3px 0;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;
  font-weight:800;font-size:.66rem;border:1px solid rgba(18,22,42,.4);opacity:.75;
}

/* ─── Tablette / mobile : une colonne ─── */
@media(max-width:900px){
  .bp-steps{display:none;}
  .bp-row > .an:not(.an--inline){display:none;}
  .bp-row > .an.an--seo{display:block;position:relative;left:auto;top:auto;justify-self:start;order:1;margin:-20px 0 0 4px;font-size:26px;}
  .an.bp-seo-intro{margin:18px 0 0 4px;}
  .bp-row{grid-template-columns:1fr;row-gap:48px;padding:56px 20px;}
  .bp-row > *{grid-column:1/-1!important;grid-row:auto!important;}
  .mc-intro{padding-top:100px;}
  .bp-note{width:min(62%,260px);justify-self:center;margin-top:0;}
  .bp-vis--tee,.bp-vis--pack,.bp-vis--cork,.bp-vis--proc{order:2;}
  .bp-divider{grid-template-columns:1fr;padding:0 20%;}
  .bp-divider span{grid-column:1/-1;}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rv,.rv-img,.rv-fade,.bp-title .ch{opacity:1;translate:none;scale:none;rotate:none;transition:none;}
  .bp-title .ch{transform:none;}
}
.sw.is-swing{animation:swing 1.8s cubic-bezier(.3,.6,.3,1);}
