/* Invitation Vivante — styles des modèles : polices libres (OFL), ouvertures, vignettes, galerie. */
@font-face{font-family:"Cinzel IV";src:url(fonts/cinzel.woff2?v=e3007b72) format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cinzel IV";src:url(fonts/cinzel-x.woff2?v=de1b0426) format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Josefin IV";src:url(fonts/josefin.woff2?v=0ff5ba86) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Josefin IV";src:url(fonts/josefin-x.woff2?v=dd5d3af5) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Cormorant IV";src:url(fonts/cormorant.woff2?v=74db058f) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant IV";src:url(fonts/cormorant-x.woff2?v=a9e49ee5) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Cormorant IV";src:url(fonts/cormorant-italic.woff2?v=52ea38a7) format("woff2");font-weight:300 700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Cormorant IV";src:url(fonts/cormorant-italic-x.woff2?v=a3b94a5a) format("woff2");font-weight:300 700;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Pinyon IV";src:url(fonts/pinyon.woff2?v=880fd562) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Pinyon IV";src:url(fonts/pinyon-x.woff2?v=dca37718) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Playfair IV";src:url(fonts/playfair.woff2?v=daeff530) format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair IV";src:url(fonts/playfair-x.woff2?v=99a7c18e) format("woff2");font-weight:400 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Playfair IV";src:url(fonts/playfair-italic.woff2?v=682cdaa4) format("woff2");font-weight:400 900;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair IV";src:url(fonts/playfair-italic-x.woff2?v=dc398705) format("woff2");font-weight:400 900;font-style:italic;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fredoka IV";src:url(fonts/fredoka.woff2?v=6438e7de) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fredoka IV";src:url(fonts/fredoka-x.woff2?v=de912154) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* 12/11 : Fredoka (Google Fonts) n'a pas ces lettres (pl/ro/tr) ; Nunito OFL, même terminaisons arrondies, 300-700, uniquement pour elles : jamais une police système */
@font-face{font-family:"Fredoka IV";src:url(fonts/fredoka-ext.woff2?v=a7983014) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0102-0107,U+0118-0119,U+011E-011F,U+0130,U+0143-0144,U+015A-015B,U+015E-015F,U+0179-017C,U+0218-021B}
@font-face{font-family:"Bebas IV";src:url(fonts/bebas.woff2?v=1f063bd9) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Bebas IV";src:url(fonts/bebas-x.woff2?v=9b33ea44) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Caveat IV";src:url(fonts/caveat.woff2?v=8a01467a) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Caveat IV";src:url(fonts/caveat-x.woff2?v=5b59be73) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Serif IV";src:url(fonts/dmserif.woff2?v=3d2a4355) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"DM Serif IV";src:url(fonts/dmserif-x.woff2?v=0c8a4209) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- titres : réglages typographiques du modèle ---------- */
html[data-modele] .gate-in h1,html[data-modele] .hero h1{font-weight:var(--hw,700);text-transform:var(--htt,none);letter-spacing:var(--hls,-.015em)}
html[data-modele] .gate-in h1{line-height:1.05}
html[data-modele] .kicker,html[data-modele] .gate-in .sub,html[data-modele] .hero .sub{font-family:var(--f-d)}

/* ---------- ouvertures ---------- */
.om-wrap{display:flex;justify-content:center;margin:26px auto 0;min-height:184px;position:relative;z-index:3;cursor:pointer;opacity:0;animation:omIn .8s .5s forwards}
@keyframes omIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.om{position:relative;transform:scale(var(--s,1));transform-origin:50% 0}
@media (max-height:700px){.om-wrap{margin-top:14px;min-height:150px}.om{--s:.82}}

/* enveloppe + cachet de cire */
.om-env{width:264px;height:178px;perspective:1100px}
.om-env .eb{position:absolute;inset:0;background:var(--o2);border-radius:8px;box-shadow:0 22px 44px -14px rgba(0,0,0,.6);z-index:0}
.om-env .ec{position:absolute;left:14px;right:14px;top:12px;bottom:14px;background:var(--o1);border-radius:5px;z-index:1;display:grid;place-items:center;box-shadow:0 1px 0 rgba(0,0,0,.08);transition:transform 1s .5s cubic-bezier(.3,.8,.25,1);color:var(--oink)}
.om-env .ec b{font:600 30px/1 var(--f-d);letter-spacing:.04em;color:var(--seal);margin-top:-30px}
.om-env .ec span{position:absolute;left:22px;right:22px;top:26px;height:1px;background:linear-gradient(90deg,transparent,var(--foil2),transparent)}
.om-env .ef{position:absolute;inset:0;z-index:2;border-radius:8px;background:linear-gradient(160deg,var(--o3),var(--o2));clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}
.om-env .eflap{position:absolute;left:0;right:0;top:0;height:58%;z-index:3;background:linear-gradient(180deg,var(--o3),var(--o2));clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;border-radius:8px 8px 0 0;filter:drop-shadow(0 4px 4px rgba(0,0,0,.15));transition:transform .85s cubic-bezier(.5,0,.2,1),z-index 0s .4s}
.om-env .es{position:absolute;left:50%;top:55%;width:50px;height:50px;margin:-25px 0 0 -25px;z-index:4;border-radius:52% 48% 50% 50%/48% 52% 50% 50%;background:radial-gradient(circle at 34% 30%,var(--sealh),var(--seal) 55%,var(--sealk));box-shadow:0 5px 10px rgba(0,0,0,.4),inset 0 -3px 6px rgba(0,0,0,.25),inset 0 2px 3px rgba(255,255,255,.3);display:grid;place-items:center;transition:transform .45s ease,opacity .35s ease}
.om-env .es::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35)}
.om-env .es span{font:700 15px/1 var(--f-d);color:rgba(255,255,255,.92);text-shadow:0 -1px 1px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.2);letter-spacing:.02em}
.om-env.open .eflap{transform:rotateX(180deg);z-index:0}
.om-env.open .ec{transform:translateY(-58%)}
.om-env.open .es{transform:scale(1.3) rotate(10deg);opacity:0}

/* carte qui se déplie */
.om-card{width:236px;height:172px;perspective:1200px;transition:transform 1.1s cubic-bezier(.5,.1,.2,1)}
.om-card .ci{position:absolute;inset:0;background:var(--o1);border-radius:6px;box-shadow:0 22px 44px -14px rgba(0,0,0,.6);display:grid;place-items:center;align-content:center;gap:10px;color:var(--oink)}
.om-card .ci b{font:600 34px/1 var(--f-d);color:var(--seal);letter-spacing:.04em}
.om-card .ci i{display:block;width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--foil2),transparent)}
.om-card .cc{position:absolute;inset:0;transform-origin:0 50%;transform-style:preserve-3d;transition:transform 1.15s .1s cubic-bezier(.45,.05,.2,1)}
.om-card .cf,.om-card .cb{position:absolute;inset:0;border-radius:6px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.om-card .cf{background:linear-gradient(150deg,var(--o3),var(--o2));display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.om-card .cf::before{content:"";position:absolute;inset:9px;border:1px solid var(--foil2);border-radius:3px}
.om-card .cf::after{content:"";position:absolute;inset:15px;border:1px solid color-mix(in srgb,var(--foil2) 45%,transparent);border-radius:2px}
.om-card .cf em{position:absolute;top:22px;left:50%;width:7px;height:7px;margin-left:-3.5px;background:var(--foil2);transform:rotate(45deg)}
.om-card .cf b{font:600 40px/1 var(--f-d);color:var(--seal);letter-spacing:.04em}
.om-card .cb{background:var(--o2);transform:rotateY(180deg)}
.om-card.open{transform:translateX(118px)}
.om-card.open .cc{transform:rotateY(-171deg)}

/* ticket doré qui se déchire */
.om-ticket{width:270px;height:116px;filter:drop-shadow(0 18px 22px rgba(0,0,0,.45));transition:transform 1s .1s ease}
.om-ticket svg{position:absolute;left:0;top:0;overflow:visible}
.om-ticket .tk-m{clip-path:inset(0 27% 0 0)}
.om-ticket .tk-s{clip-path:inset(0 0 0 73%);transform-origin:100% 100%;transition:transform .8s cubic-bezier(.5,0,.3,1),opacity .6s .35s}
.om-ticket.open{transform:scale(1.06) rotate(-2deg)}
.om-ticket.open .tk-s{transform:translate(26px,18px) rotate(16deg);opacity:0}
.om-ticket .tk-m text,.om-ticket .tk-s text{font-family:var(--f-b)}

/* rideau de cinéma, piste A (M2, 08/11/2026) : velours photographié en 2 pans distincts + lambrequin (assets/rideau/), lumière en dégradés CSS ; transform et opacité seulement */
.om-curtain.rd-lay{position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none;contain:layout paint;container-type:inline-size;background:none}
.rd-wall{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse 70% 85% at 50% 58%,#6a2028 0,#3a1016 40%,#150407 85%)}
.rd-beam{position:absolute;inset:0;opacity:0;will-change:opacity;background:radial-gradient(ellipse 30% 52% at 50% 56%,rgba(255,226,170,.34),rgba(255,190,110,.13) 55%,transparent 80%)}
.rd-beam::before{content:"";position:absolute;left:50%;top:0;height:100%;width:min(78%,calc(72vh*5/7*1.7));transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,236,196,.34),rgba(255,214,150,.12) 55%,rgba(255,190,110,.06));clip-path:polygon(41% 0,59% 0,100% 100%,0 100%)}
/* la carte (titre, date) est DERRIÈRE le rideau fermé : invisible pour tous, elle l'est aussi pour les lecteurs d'écran, le focus et les mesures de contraste ; elle apparaît quand le rideau commence à s'ouvrir */
#gate.has-rd:not(.opening) .rd-card{visibility:hidden}
/* la plaque du rideau dit déjà « Vous êtes invité » / « Pour <prénom> » : le même texte juste dessous (invitation sans carte de modèle) faisait doublon */
#gate.has-curtain:has(.rd-nm:not(:empty)) .gate-in .kicker:not(.sg-k){display:none}
.rd-card{position:absolute;left:50%;top:57%;width:min(88vw,calc(72vh*5/7));transform:translate(-50%,-50%) scale(.94);z-index:2;will-change:transform}
#gate .rd-card .sg-gate{width:100%;margin:0}
.rd-dim{display:block;position:absolute;left:0;right:0;top:0;height:200%;z-index:1;will-change:transform;background:linear-gradient(180deg,rgba(8,2,3,.5) 0,rgba(8,2,3,.5) 44%,rgba(8,2,3,0) 56%,rgba(8,2,3,0) 100%)}
.rd-p{position:absolute;top:0;bottom:0;z-index:2;overflow:hidden;will-change:transform;backface-visibility:hidden;background:#2a0509}
.rd-p img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 100%;display:block}
.rd-p::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 120% 40% at 50% 0,rgba(255,236,196,.16),transparent 70%),linear-gradient(180deg,transparent 80%,rgba(0,0,0,.35))}
.rd-pl{left:0;width:56%;transform-origin:0 50%}
.rd-pr{right:0;width:56%;transform-origin:100% 50%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}   /* raccord au centre : fondu sur 4,5 % de l'écran, aucune couture */
.rd-val{position:absolute;left:0;right:0;top:0;z-index:4}
.rd-val img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 12px rgba(0,0,0,.55))}
.rd-nm{position:absolute;left:50%;top:8.64cqw;transform:translateX(-50%);box-sizing:border-box;width:max-content;max-width:92%;min-width:44%;text-align:center;padding:.5em 1.1em;border-radius:7px;color:#f7de9e;font-family:"Cormorant Garamond","Playfair Display",Georgia,serif;font-weight:700;line-height:1.16;letter-spacing:.03em;background:linear-gradient(180deg,rgba(46,5,13,.94),rgba(24,2,7,.95));border:1px solid #c9a24a;box-shadow:inset 0 0 0 3px rgba(24,2,7,.95),inset 0 0 0 4px rgba(201,162,74,.6),0 5px 12px rgba(0,0,0,.6);text-shadow:0 1px 0 #7a5410,0 -1px 0 rgba(255,244,204,.35),0 2px 3px rgba(0,0,0,.85);overflow-wrap:anywhere}
.rd-nm:empty{display:none}
.rd-nm[lang=ar]{font-family:"Amiri","Noto Naskh Arabic","Segoe UI","Arial",sans-serif;letter-spacing:0;line-height:1.5}
@media (min-width:700px){.rd-nm{top:5.1cqw;max-width:84%}}
.rd-lay.open:not(.rd-ani) .rd-p{transform:scaleX(.2)}
@media (prefers-reduced-motion:reduce){.rd-p,.rd-dim,.rd-beam,.rd-card{animation:none!important;transition:none!important}}
@media (prefers-reduced-motion:reduce){.om-wrap{animation:none;opacity:1}.om *{transition:none!important}}

/* ---------- porte d'entrée : ton clair (fond clair, textes foncés) ---------- */
#gate[data-tone=light]{color:var(--gw)}
#gate[data-tone=light] .gate-in .when{color:var(--gw);opacity:1}
#gate .m-gdecor{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero-decor{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 38%,transparent 38%,#000 86%);mask-image:radial-gradient(ellipse 78% 62% at 50% 38%,transparent 38%,#000 86%);opacity:.9}

/* ---------- vignette animée (porte en miniature) ---------- */
.mini{position:relative;overflow:hidden;display:block;color:var(--mk,#fff);isolation:isolate}
.mini .m-decor,.mini .m-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.mini .m-decor{z-index:0}.mini .m-fx{z-index:3}
.mini .mini-cur{z-index:1}
.mini .mini-cur .rd-nm{display:none}
.mini .m-open{position:absolute;left:0;right:0;bottom:-6px;display:flex;justify-content:center;z-index:2;pointer-events:none;height:96px;overflow:visible}
.mini .m-open .om-wrap{margin:0;min-height:0;animation:none;opacity:1;display:block}
.mini .m-open .om{--s:.46}
.mini .m-open .om-env,.mini .m-open .om-card,.mini .m-open .om-ticket{margin:0 auto}
.mini .m-tx{position:absolute;left:0;right:0;top:15%;z-index:4;text-align:center;padding:0 10px;display:grid;gap:3px}
.mini .m-t{font:var(--hw,700) clamp(20px,5.6vw,26px)/1.05 var(--f-d);text-transform:var(--htt,none);letter-spacing:var(--hls,0);background:linear-gradient(180deg,var(--mh0,#fffaf0),var(--mh1,#f3d9a4));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 6px rgba(0,0,0,.18));overflow-wrap:anywhere}
.mini .m-s{font:italic 500 12px/1.25 var(--f-d);color:var(--ms,#f3d9a4);opacity:.95}
.mini[data-tone=light] .m-t{filter:none}

/* ---------- galerie ---------- */
.mgal{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;perspective:1100px}
@media (min-width:700px){.mgal{grid-template-columns:repeat(3,1fr);gap:20px}}
/* vignette = vraie carte : papier, grain léger, rayon 20, ombre en 2 couches, survol 4 px + inclinaison 3D (EXCELLENCE.md §2) */
.mcard{position:relative;border:1px solid rgba(22,26,51,.08);border-radius:20px;background:var(--paper,#f8f3ea) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .35 0 0 0 0 .25 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='60' height='60' filter='url(%23n)'/%3E%3C/svg%3E");text-align:left;cursor:pointer;display:grid;grid-template-rows:auto 1fr;overflow:hidden;padding:0;text-decoration:none;color:inherit;font:inherit;box-shadow:0 1px 2px rgba(22,26,51,.10),0 14px 30px -16px rgba(22,26,51,.38);transform:translateY(0) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s cubic-bezier(.2,.7,.2,1),border-color .2s;animation:mIn .5s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*40ms);-webkit-tap-highlight-color:transparent}
@keyframes mIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.mcard:active{transform:scale(.985);transition-duration:.1s}
.mcard .m-poster{display:block;width:100%;height:auto;aspect-ratio:4/5;border-radius:0}
.mcard .m-info{padding:12px 14px 14px;display:grid;gap:6px;align-content:start}
.mcard .m-info b{font:600 17px/1.2 var(--f-d,Georgia,serif);color:var(--ink,#161a33);overflow-wrap:anywhere}
.m-badge{justify-self:start;font:600 14px/1.2 var(--f-b,sans-serif);padding:0;border-radius:0;letter-spacing:0;background:none}
.m-badge.free{color:#1d6a43}
.m-badge.free::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#2f9e68;margin-inline-end:7px;vertical-align:1px}
.m-badge.prem{color:#6b4a06}
.m-badge.prem::before{content:"\2726";margin-inline-end:6px;color:#b98a1f}
/* premium = Signature : liseré or 1,5 px, coin gravé, reflet de dorure sur le papier */
.mcard[data-prem="1"]{border:1.5px solid #c9a24a;box-shadow:0 1px 2px rgba(120,84,10,.18),0 16px 34px -16px rgba(168,124,24,.55),inset 0 0 0 1px rgba(255,236,181,.55)}
.m-sig{position:absolute;top:12px;right:0;z-index:7;padding:6px 12px 6px 14px;border-radius:999px 0 0 999px;background:linear-gradient(135deg,#f8e7b9,#e0b95a 55%,#c99a30);color:#33240a;font:700 12px/1 var(--f-b,sans-serif);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 4px 10px -4px rgba(60,40,0,.55),inset 0 1px 0 rgba(255,255,255,.65);pointer-events:none}
[dir=rtl] .m-sig{right:auto;left:0;border-radius:0 999px 999px 0;padding:6px 14px 6px 12px}
.mcard[data-prem="1"] .m-poster::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,244,205,.38) 48%,transparent 60%);background-size:260% 100%;background-position:120% 0;box-shadow:inset 0 0 0 1.5px rgba(232,200,120,.75),inset 0 0 22px rgba(255,226,150,.18);transition:background-position .9s cubic-bezier(.2,.7,.2,1)}
.mcard[aria-pressed=true]{border-color:var(--ink,#161a33);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold2,#e2bd6b) 55%,transparent)}
@media (hover:hover){.mcard:hover{transform:translateY(-4px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 2px 4px rgba(22,26,51,.10),0 26px 44px -18px rgba(22,26,51,.5)}
 .mcard[data-prem="1"]:hover{box-shadow:0 2px 4px rgba(120,84,10,.2),0 28px 46px -18px rgba(168,124,24,.7),inset 0 0 0 1px rgba(255,236,181,.55)}
 .mcard[data-prem="1"]:hover .m-poster::after{background-position:-40% 0}}
@media (prefers-reduced-motion:reduce){.mcard{animation:none;transition:none}.mcard[data-prem="1"] .m-poster::after{transition:none}}
.mcard[hidden]{display:none}
.mcard.seen{animation:none}
/* onglets : pastilles 40 px, fondu aux bords, indicateur qui glisse */
.mchips{position:relative;display:flex;gap:6px;overflow-x:auto;padding:4px 4px 12px;margin:0 -4px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.mchips.sl{-webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 28px),transparent)}
[dir=rtl] .mchips{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(270deg,#000 calc(100% - 28px),transparent)}
[dir=rtl] .mchips.sl{-webkit-mask-image:linear-gradient(270deg,transparent,#000 22px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(270deg,transparent,#000 22px,#000 calc(100% - 28px),transparent)}
.mchips::-webkit-scrollbar{display:none}
.mchips .m-ind{position:absolute;top:4px;left:0;height:40px;border-radius:999px;background:var(--ink,#161a33);box-shadow:0 8px 18px -10px rgba(22,26,51,.7);transition:transform .35s cubic-bezier(.2,.7,.2,1),width .35s cubic-bezier(.2,.7,.2,1);z-index:0;pointer-events:none}
.mchips button{position:relative;z-index:1;flex:none;border:1.5px solid rgba(22,26,51,.12);background:rgba(255,255,255,.7);border-radius:999px;padding:0 16px;height:40px;display:inline-flex;align-items:center;gap:8px;font:600 14px/1 var(--f-b,sans-serif);color:var(--ink,#161a33);cursor:pointer;white-space:nowrap;transition:color .25s,border-color .25s,transform .1s}
.mchips button:active{transform:scale(.97)}
.mchips button i{font-style:normal;font-weight:500;color:var(--ink2,#535a78);transition:color .25s}
.mchips button[aria-pressed=true]{color:#fbf6ea;border-color:transparent;background:transparent}
.mchips button[aria-pressed=true] i{color:#e6d6ac}
.mchips.noind .m-ind{display:none}.mchips.noind button[aria-pressed=true]{background:var(--ink,#161a33)}
@media (prefers-reduced-motion:reduce){.mchips .m-ind{transition:none}}
/* recherche de modèles : 52 px, pilule, loupe tracée 1,5 px */
.msearch{position:relative;display:block;margin:0 0 14px}
.msearch svg{position:absolute;top:50%;inset-inline-start:18px;transform:translateY(-50%);width:20px;height:20px;color:var(--ink2,#535a78);pointer-events:none}
.msearch input{width:100%;box-sizing:border-box;height:52px;border-radius:999px;border:1.5px solid rgba(22,26,51,.14);background:#fff;padding:0 52px;font:500 17px/1 var(--f-b,sans-serif);color:var(--ink,#161a33);box-shadow:0 8px 22px -16px rgba(22,26,51,.5);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.msearch input::placeholder{color:#6b7190;opacity:1}
.msearch input:focus{outline:none;border-color:var(--gold2,#e2bd6b);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold1,#f0d79a) 50%,transparent),0 8px 22px -16px rgba(22,26,51,.5)}
.msearch input::-webkit-search-cancel-button{display:none}
.msearch .m-x{position:absolute;top:50%;inset-inline-end:8px;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--ink2,#535a78);cursor:pointer;display:grid;place-items:center;transition:background .2s}
.msearch .m-x[hidden]{display:none}
.msearch .m-x:hover{background:rgba(22,26,51,.07)}
.msearch .m-x svg{position:static;transform:none;width:18px;height:18px}
.mnone{text-align:center;padding:36px 12px 28px}
.mnone b{display:block;font:600 21px/1.25 var(--f-d,Georgia,serif);margin-bottom:6px}
.mnone p{margin:0 0 16px;color:var(--ink2,#535a78);font-size:17px}
.mnone .m-sugg{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.mnone .m-sugg button{height:40px;padding:0 16px;border-radius:999px;border:1.5px solid rgba(22,26,51,.14);background:#fff;font:600 14px/1 var(--f-b,sans-serif);color:var(--ink,#161a33);cursor:pointer}
.mnone .m-sugg button:hover{border-color:var(--ink,#161a33)}
.m-prev{position:absolute;inset-inline-start:10px;bottom:10px;z-index:6;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:0 12px;background:rgba(10,12,24,.62);color:#fff;font:600 14px/1 var(--f-b,sans-serif);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;min-height:36px}
.m-prev:hover{background:rgba(10,12,24,.78)}
.mcard:focus-visible{outline:3px solid var(--gold2,#e2bd6b);outline-offset:2px}
/* cadres d'aperçu de la page de création */
.pv-frame[data-tone=light]::after{display:none}
.pv-frame[data-modele] .pv-title,.preview[data-modele] .t{font-weight:var(--hw,700);text-transform:var(--htt,none);letter-spacing:var(--hls,0);background:linear-gradient(180deg,var(--mh0,#fffaf0),var(--mh1,var(--gold1)));-webkit-background-clip:text;background-clip:text;color:transparent}
.pv-frame[data-modele] .pv-sub,.pv-frame[data-modele] .pv-eyebrow,.preview[data-modele] .s{color:var(--ms,var(--gold1))}
.pv-frame[data-tone=light] .pv-meta,.pv-frame[data-tone=light] .pv-cta{color:var(--mk);border-color:var(--mk)}
.pv-frame[data-tone=light] .pv-title.pv-ph,.pv-frame[data-tone=light] .pv-sub.pv-ph,.pv-frame[data-tone=light] .pv-meta.pv-ph{-webkit-text-fill-color:var(--ms);color:var(--ms)}
.pv-frame[data-modele] .m-decor,.preview[data-modele] .m-decor{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.preview[data-tone=light]{color:var(--mk)}
.occ-ask{position:fixed;inset:0;z-index:60;background:rgba(8,10,24,.6);display:grid;place-items:end center;padding:0}
.occ-ask>div{background:#fff;border-radius:24px 24px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));width:min(560px,100%);display:grid;gap:10px;max-height:80vh;overflow:auto}
.occ-ask h2{font:600 22px/1.2 var(--f-d);margin-bottom:6px}
.occ-ask button.o{min-height:52px;border:1.5px solid var(--line,#e6dccb);background:#fff;border-radius:16px;font:700 16px/1.2 var(--f-b);color:var(--ink,#161a33);cursor:pointer;text-align:left;padding:0 16px}
.occ-ask button.o:hover{border-color:var(--ink,#161a33)}
.mhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 16px}
.mhead .mn{font:600 20px/1.2 var(--f-d)}
.mnote{font-size:14px;color:var(--ink2,#555c7a);margin:0 0 10px}

/* ---------- polices de la signature (OFL, Google Fonts, latin + latin étendu ; arabe : Amiri, Aref Ruqaa) ---------- */
@font-face{font-family:"Bodoni IV";src:url(fonts/bodoni-italic-x.woff2?v=9e0c2323) format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Bodoni IV";src:url(fonts/bodoni-italic.woff2?v=d990155b) format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Bodoni IV";src:url(fonts/bodoni-x.woff2?v=33d6f33d) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Bodoni IV";src:url(fonts/bodoni.woff2?v=00411212) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Garamond IV";src:url(fonts/garamond-italic-x.woff2?v=cd2b4786) format("woff2");font-weight:400 600;font-style:italic;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Garamond IV";src:url(fonts/garamond-italic.woff2?v=494f0440) format("woff2");font-weight:400 600;font-style:italic;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Garamond IV";src:url(fonts/garamond-x.woff2?v=76769be9) format("woff2");font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Garamond IV";src:url(fonts/garamond.woff2?v=5f1a1f17) format("woff2");font-weight:400 600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Gloock IV";src:url(fonts/gloock-x.woff2?v=6d30574b) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Gloock IV";src:url(fonts/gloock.woff2?v=a2ca3226) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Young IV";src:url(fonts/youngserif-x.woff2?v=aab136a6) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Young IV";src:url(fonts/youngserif.woff2?v=8e9e7939) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Amiri IV";src:url(fonts/amiri-ar.woff2?v=2dfffa91) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:"Amiri IV";src:url(fonts/amiri-700-ar.woff2?v=d4fcd1fe) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:"Ruqaa IV";src:url(fonts/ruqaa-ar.woff2?v=3c5b344d) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:"Ruqaa IV";src:url(fonts/ruqaa-700-ar.woff2?v=537c5352) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
/* ---------- SIGNATURE : la carte de papeterie (mission signature 08/11/2026) ---------- */
.sg-w{position:relative;container-type:inline-size;width:100%;margin:0 auto;filter:drop-shadow(0 1px 1.5px rgba(20,14,8,.16)) drop-shadow(0 16px 26px rgba(20,14,8,.2))}
.sg{position:relative;width:100%;aspect-ratio:5/7;display:flex;flex-direction:column;color:var(--sg-i);overflow:hidden;isolation:isolate;text-align:center}
.sg-paper{position:absolute;inset:0;z-index:0;background:var(--sg-tex),var(--sg-mo,linear-gradient(transparent,transparent)),var(--sg-p);background-size:260px 260px,auto,auto}
.sg-m .sg-paper{background:var(--sg-tex),var(--sg-p);background-size:260px 260px,auto}
.sg-m .sg-paper::before{content:"";position:absolute;inset:0;background:var(--sg-mo);background-size:180px 180px;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 var(--sg-pt),transparent var(--sg-pt),transparent calc(100% - var(--sg-pb)),#000 calc(100% - var(--sg-pb)));mask-image:linear-gradient(to bottom,#000 0,#000 var(--sg-pt),transparent var(--sg-pt),transparent calc(100% - var(--sg-pb)),#000 calc(100% - var(--sg-pb)))}
.sg-dark .sg-paper{background-blend-mode:soft-light,normal,normal}
.sg-m.sg-dark .sg-paper{background-blend-mode:soft-light,normal}
.sg-paper::after{content:"";position:absolute;inset:0;background:radial-gradient(140% 90% at 30% 0%,rgba(255,255,255,.16),transparent 55%),radial-gradient(120% 80% at 80% 110%,rgba(0,0,0,.07),transparent 60%);pointer-events:none}
.sg-e-droit{border-radius:.8cqw}
.sg-e-arrondi{border-radius:5cqw}
.sg-e-arche{border-radius:50cqw 50cqw 1cqw 1cqw}
.sg-e-arche .sg-body{padding-top:calc(var(--sg-pt) * 1.4)}   /* même facteur que .sg-body : le manifeste des ornements suppose ×1,4 (15 × 1,4 = 15 + 6 : inchangé pour les anciens ornements) */
.sg-frame,.sg-top,.sg-bot{position:absolute;left:0;width:100%;pointer-events:none;z-index:1;overflow:visible}
.sg-frame{top:0;height:100%}
.sg-top{top:0;height:60cqw}
.sg-bot{bottom:0;height:60cqw}
.sg-e-arche .sg-top{top:3cqw}
img.sg-top,img.sg-bot{display:block;height:60cqw;max-width:none;object-fit:fill;mix-blend-mode:var(--sg-bm,normal);user-select:none;-webkit-user-drag:none}
.sg-body{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:calc(var(--sg-pt) * 1.4) 11cqw calc(var(--sg-pb) * 1.4);min-width:0}
.sg-body>*{max-width:100%;margin:0}
.sg .sg-k,#gate .sg .sg-k{font:italic 400 calc(4.6cqw * var(--sg-sc,1))/1.25 var(--sg-bf);color:var(--sg-i2);letter-spacing:.01em;margin:0 0 calc(2.6cqw * var(--sg-sc,1))!important;opacity:1;animation:none}
.sg .sg-t,#gate .sg .sg-t{font-family:var(--sg-tf);font-weight:var(--sg-tw);font-style:var(--sg-tst);font-size:calc(var(--sg-ts) * 1cqw);line-height:var(--sg-tlh);letter-spacing:var(--sg-tls);text-transform:var(--sg-ttt);color:var(--sg-i);text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:manual;padding:.04em .06em .1em}
.sg-ink .sg-t,#gate .sg-ink .sg-t{background:none;-webkit-text-fill-color:currentColor;filter:none;text-shadow:0 .045em 0 rgba(255,255,255,.6),0 -.02em 0 rgba(0,0,0,.07)}
.sg-ink.sg-dark .sg-t,#gate .sg-ink.sg-dark .sg-t{text-shadow:0 .03em 0 rgba(0,0,0,.45)}
.sg-foil .sg-t,#gate .sg-foil .sg-t{background:linear-gradient(100deg,var(--sg-f0),var(--sg-f1) 18%,var(--sg-f2) 34%,var(--sg-f3) 48%,var(--sg-f2) 60%,var(--sg-f1) 76%,var(--sg-f4));background-size:240% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 .5px 0 rgba(40,25,5,.35));animation:sgSheen 2.6s .5s cubic-bezier(.3,.6,.2,1) both}
.sg-foil.sg-dark .sg-t,#gate .sg-foil.sg-dark .sg-t{filter:drop-shadow(0 1px 0 rgba(0,0,0,.6))}
@keyframes sgSheen{from{background-position:100% 0}to{background-position:8% 0}}
.sg-neon .sg-t,#gate .sg-neon .sg-t{color:#fff;-webkit-text-fill-color:#fff;background:none;filter:none;text-shadow:0 0 .05em #fff,0 0 .16em var(--sg-glow),0 0 .42em var(--sg-glow),0 0 .9em var(--sg-glow)}
.sg .sg-mid,#gate .sg .sg-mid{display:block;width:36cqw;height:3.6cqw;margin:calc(3.2cqw * var(--sg-sc,1)) auto calc(2.4cqw * var(--sg-sc,1))!important;overflow:visible}
.sg .sg-s,#gate .sg .sg-s{font:italic 400 calc(5.6cqw * var(--sg-sc,1))/1.28 var(--sg-bf);color:var(--sg-i);opacity:1;animation:none}
.sg .sg-d,#gate .sg .sg-d{font:500 max(var(--sg-dmin,14px),3.5cqw)/1.55 var(--sg-bf);font-variant-caps:all-small-caps;letter-spacing:.12em;color:var(--sg-i2);margin-top:calc(3.6cqw * var(--sg-sc,1))!important;opacity:1;animation:none;max-width:66cqw;margin-left:auto;margin-right:auto;text-wrap:balance}   /* M2 : la date et le lieu restent entre les ornements des coins, jamais dessus */
.sg-dark .sg-k,.sg-dark .sg-d,#gate .sg-dark .sg-k,#gate .sg-dark .sg-d{color:var(--sg-i2)}
html[lang=ar] .sg *,[dir=rtl] .sg *{letter-spacing:0!important;font-variant-caps:normal!important;font-synthesis:none}
html[lang=ar] .sg .sg-k,html[lang=ar] .sg .sg-s,[dir=rtl] .sg .sg-k,[dir=rtl] .sg .sg-s{font-style:normal!important}
.sg *{font-synthesis:small-caps}
/* enveloppe ouverte derrière la carte : rabat et liseré (rayures, or, rose) */
.sg-env{position:absolute;z-index:-1;left:7%;right:7%;top:-15cqw;height:34cqw;clip-path:polygon(0 100%,50% 0,100% 100%);background:var(--sg-p);transform:rotate(-1.6deg)}
.sg-env::before{content:"";position:absolute;inset:3.2cqw 6cqw 0;clip-path:polygon(0 100%,50% 0,100% 100%)}
/* 12/11/2026 : sur une carte en arche, les épaules du rabat (7 % de chaque côté) dépassaient de la courbe et faisaient un petit coin blanc/coloré en haut de la carte ; à 14 %, le bas du rabat reste dans l'arche (rayon 50cqw) */
.sg-env.sg-env-arche{left:14%;right:14%}
.sg-env-rayures::before{background:repeating-linear-gradient(90deg,var(--sg-i2) 0 1.4cqw,transparent 1.4cqw 3.2cqw),var(--sg-p);opacity:.75}
.sg-env-or::before{background:radial-gradient(circle at 30% 40%,rgba(255,255,255,.7) 0 .3cqw,transparent .5cqw) 0 0/3cqw 3cqw,linear-gradient(115deg,#9a7224,#f6e2a3 30%,#c49638 52%,#fff3cf 64%,#86621c)}
.sg-env-rose::before{background:radial-gradient(circle,rgba(255,255,255,.6) 0 .35cqw,transparent .5cqw) 0 0/2.6cqw 2.6cqw,linear-gradient(115deg,#a0604f,#f6d2c4 34%,#c4846f 55%,#fee8df 68%,#8c5243)}
@media (prefers-reduced-motion:reduce){.sg-foil .sg-t{animation:none;background-position:30% 0}}

/* porte d'entrée : la carte au centre, posée sur sa table */
#gate[data-sig]{background:radial-gradient(130% 90% at 50% 18%,var(--gb1),var(--gb2))}
#gate .sg-gate{width:min(86vw,calc((100svh - 230px) * 5 / 7),460px);margin:0 auto}
#gate .sg-gate.has-env,#gate .sg-gate:has(.sg-env){margin-top:calc(min(86vw,calc((100svh - 230px) * 5 / 7),460px) * .16)}
@media (min-width:900px) and (min-height:860px){#gate .sg-gate{width:min(620px,calc((100svh - 104px) * 5 / 7),86vw)}#gate .sg-gate.has-env,#gate .sg-gate:has(.sg-env){margin-top:calc(min(620px,calc((100svh - 104px) * 5 / 7),86vw) * .16)}}
#gate[data-sig] .gate-in{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:12px;max-width:none;width:100%}
#gate[data-sig] .gate-in .sg h1.sg-t,#gate[data-sig] .rd-card .sg h1.sg-t{margin:0;animation:none;opacity:1;text-shadow:none}
#gate[data-sig] .gate-in .sg .kicker,#gate[data-sig] .gate-in .sg .sub,#gate[data-sig] .gate-in .sg .when,#gate[data-sig] .rd-card .sg .kicker,#gate[data-sig] .rd-card .sg .sub,#gate[data-sig] .rd-card .sg .when{text-shadow:none;animation:none;opacity:1}
#gate[data-sig] .sg-w{opacity:0;animation:sgIn 1s .1s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes sgIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
#gate[data-sig] button.open{margin-top:22px}
#gate[data-sig] button.open.tap{margin-top:18px}
#gate[data-sig] .sound{margin-top:8px}
#gate.opening .sg-w{transition:transform .9s cubic-bezier(.5,0,.2,1),opacity .7s .25s;transform:translateY(-6vh) scale(1.04);opacity:0!important}
#gate.has-rd.opening .sg-w{transition:none;transform:none;opacity:1!important}
#gate[data-sig].has-curtain .sg-w{z-index:3}
@media (prefers-reduced-motion:reduce){#gate[data-sig] .sg-w{animation:none;opacity:1}#gate.opening .sg-w{transition:none}}
/* page après ouverture : texture du papier et ornement du modèle en tête */
.hero .sg-hero{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero .sg-hero .tx{position:absolute;inset:0;background:var(--sg-tex);background-size:260px 260px;mix-blend-mode:soft-light;opacity:.9}
.hero .sg-hero svg{position:absolute;left:50%;top:0;width:min(100%,620px);transform:translateX(-50%);opacity:.92}
/* vignettes */
.mini.mini-sg{display:grid;place-items:center}
.mini.mini-sg .sg-w{position:relative;z-index:1;filter:drop-shadow(0 1px 1px rgba(20,14,8,.18)) drop-shadow(0 8px 12px rgba(20,14,8,.2))}
.mini.mini-sg .m-fx{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}

#gate[data-sig] .sg .sg-t{margin:0;opacity:1;animation:none}
#gate[data-sig] .sg-foil .sg-t{animation:sgSheen 2.6s .5s cubic-bezier(.3,.6,.2,1) both}
#gate[data-sig] .sg-ink .sg-t{color:var(--sg-i)}
#gate[data-sig]:not(.has-curtain) button.open.tap{color:var(--gw);text-shadow:none}
#gate[data-sig][data-tone=light]:not(.has-curtain) .lang-pick{color:var(--gw)}
#gate[data-sig].has-curtain .lang-pick,#gate[data-sig].has-curtain .sound{color:rgba(255,255,255,.85);background-color:rgba(0,0,0,.18);border-color:rgba(255,255,255,.3)}
#gate[data-sig].has-curtain .sound{background:none}
#gate[data-sig][data-tone=light]:not(.has-curtain) .sound{color:var(--gw);opacity:.75}
#gate[data-sig] .gate-in .sg .sg-t,#gate[data-sig] .rd-card .sg .sg-t{filter:none}
#gate[data-sig] .gate-in .sg-foil .sg-t,#gate[data-sig] .rd-card .sg-foil .sg-t{filter:drop-shadow(0 .5px 0 rgba(40,25,5,.3))}
#gate[data-sig] .gate-in .sg-foil.sg-dark .sg-t,#gate[data-sig] .rd-card .sg-foil.sg-dark .sg-t{filter:drop-shadow(0 1px 0 rgba(0,0,0,.6))}
#gate[data-sig] .gate-in .sg .kicker,#gate[data-sig] .gate-in .sg .sub,#gate[data-sig] .gate-in .sg .when,#gate[data-sig] .rd-card .sg .kicker,#gate[data-sig] .rd-card .sg .sub,#gate[data-sig] .rd-card .sg .when{text-shadow:none}
#gate[data-sig] .gate-in .sg .sg-d,#gate[data-sig] .rd-card .sg .sg-d{color:var(--sg-i2);text-shadow:none}
#gate[data-sig] .gate-in .sg .sg-k,#gate[data-sig] .rd-card .sg .sg-k{color:var(--sg-i2)}
#gate[data-sig] .gate-in .sg .sg-s,#gate[data-sig] .rd-card .sg .sg-s{color:var(--sg-i)}
html[data-sig] .hero h1{font-family:var(--sg-tf);font-weight:var(--sg-tw);font-style:var(--sg-tst);text-transform:var(--sg-ttt);letter-spacing:var(--sg-tls)}
html[data-sig] .hero .sub{text-transform:none}
/* aperçus de la page de création */
.pv-frame[data-sig]{background:radial-gradient(130% 90% at 50% 18%,var(--gb1),var(--gb2))!important}
.pv-frame[data-sig]::after{display:none}
.pv-frame[data-sig] .pv-content{justify-content:center;padding:22px 16px 20px;color:var(--gw,#222)}
.pv-frame[data-sig] .sg-pv{width:min(86%,300px)}
.pv-frame[data-sig] .sg-pv.has-env{margin-top:14%}
.pv-frame[data-sig] .pv-cta{color:var(--gw,#222);border-color:currentColor;margin-top:16px}
.pv-frame[data-sig][data-tone=dark] .pv-cta,.pv-frame[data-sig][data-tone=dark] .pv-content{color:#fff}
.pv-frame[data-sig] .sg .sg-t{background:none;-webkit-text-fill-color:currentColor;color:var(--sg-i);font-weight:var(--sg-tw);text-transform:var(--sg-ttt);letter-spacing:var(--sg-tls);font-size:calc(var(--sg-ts) * 1cqw);font-family:var(--sg-tf);font-style:var(--sg-tst);line-height:var(--sg-tlh)}
.pv-frame[data-sig] .sg-foil .sg-t{background:linear-gradient(100deg,var(--sg-f0),var(--sg-f1) 18%,var(--sg-f2) 34%,var(--sg-f3) 48%,var(--sg-f2) 60%,var(--sg-f1) 76%,var(--sg-f4));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;background-size:240% 100%;background-position:30% 0}
.pv-frame[data-sig] .sg .sg-k,.pv-frame[data-sig] .sg .sg-d{color:var(--sg-i2);-webkit-text-fill-color:currentColor;opacity:1}
.pv-frame[data-sig] .sg .sg-s{color:var(--sg-i);-webkit-text-fill-color:currentColor;opacity:1}
.pv-frame[data-sig] .sg .pv-ph{opacity:.45}
.preview[data-sig]{background:radial-gradient(130% 90% at 50% 18%,var(--gb1),var(--gb2))!important;padding:26px 16px}
.preview[data-sig]>div:not(.sg-w){display:none}
.preview[data-sig] .sg-pv{width:min(78%,320px);position:relative;z-index:1}
.preview[data-sig] .sg-pv.has-env{margin-top:12%}
.preview[data-sig]>canvas{z-index:2;pointer-events:none}

/* trait d'union lisible dans les polices à filet (Bodoni : 0 pixel d'encre à 40 px, Pinyon et DM Serif : trop fins) : seul le caractère « - » vient d'une police à trait plein (contrôle t_m0_controles f) */
@font-face{font-family:"Bodoni IV";src:url(fonts/playfair.woff2?v=daeff530) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+002D,U+2010-2015,U+2212}
@font-face{font-family:"Bodoni IV";src:url(fonts/playfair-italic.woff2?v=682cdaa4) format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+002D,U+2010-2015,U+2212}
@font-face{font-family:"Pinyon IV";src:url(fonts/playfair.woff2?v=daeff530) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+002D,U+2010-2015,U+2212}
@font-face{font-family:"DM Serif IV";src:url(fonts/playfair.woff2?v=daeff530) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+002D,U+2010-2015,U+2212}
@font-face{font-family:"Gloock IV";src:url(fonts/playfair.woff2?v=daeff530) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+002D,U+2010-2015,U+2212}

/* vignette « carte posée sur sa table » : lumière douce, ombre portée marquée (le fond ne doit pas écraser la carte) */
.mini-sg::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(70% 60% at 50% 38%,rgba(255,255,255,.38),transparent 72%),linear-gradient(180deg,transparent 55%,rgba(30,20,5,.14))}
.mini-sg .sg-mini{box-shadow:0 22px 30px -12px rgba(30,20,5,.6),0 3px 7px rgba(30,20,5,.28)!important}
