body.grimoire-page {
  color:#f6eddb; background:radial-gradient(ellipse at 50% 25%,#25484b,#101d23 67%);
}
.grimoire-page header { background:#101e23; color:#f6eddb; border-color:#4a5752; }
.grimoire-page header a, .grimoire-page .registre-nav a { color:#efdfbb; }
.grimoire-page .registre > .kicker { color:#e0bd79; }
.grimoire-page .registre > .intro { color:#d9ded6; }
.grimoire-page .registre-panel { color:#173138; }
.grimoire-page form input[type=text] { color:#173138; }
.grimoire {
  position:relative; isolation:isolate; display:grid; place-items:center; min-height:470px;
  padding:25px 16px 34px; margin:30px 0 12px; overflow:hidden; border:1px solid #8b794c;
  border-radius:24px; background:radial-gradient(ellipse at center,#315558,#101e23 74%);
}
.grimoire::before {
  content:""; position:absolute; z-index:-1; inset:12px; border:1px solid #c7a96647;
  border-radius:16px; pointer-events:none;
}
.grimoire-volume {
  width:min(790px,100%); position:relative; perspective:1300px; display:grid;
  filter:drop-shadow(0 26px 18px #080d10ac);
}
.grimoire-leaves {
  grid-area:1/1; display:grid; grid-template-columns:1fr 1fr; min-height:360px;
  visibility:hidden; opacity:0; transform:scale(.78); transition:opacity 1.2s .35s,transform 1.65s;
  color:#302519; border:8px solid #244a46; border-radius:10px;
  box-shadow:0 7px 0 #b19a6d,0 11px 0 #213832;
}
.grimoire[data-open] .grimoire-leaves { visibility:visible; opacity:1; transform:scale(1); }
.grimoire-leaf {
  padding:22px clamp(12px,4vw,38px); min-width:0;
  background:linear-gradient(90deg,#f1dfb7,#fdf1d5 20%,#f3e3bc 88%,#ba9f70);
}
.grimoire-leaf + .grimoire-leaf { background:linear-gradient(90deg,#b9a073,#f6e7c6 13%,#f9edcf 88%,#cdb588); }
.grimoire-leaf h2 { font-size:clamp(1.05rem,3vw,1.7rem); }
.grimoire-cover {
  grid-area:1/1; z-index:2; justify-self:center; align-self:stretch; width:min(330px,90%);
  position:relative; display:grid; place-content:center; justify-items:center; gap:11px;
  padding:28px; text-align:center; color:#f7d891; cursor:pointer;
  background:radial-gradient(ellipse at 50% 30%,#32665a,#163732 70%);
  border:3px solid #ad8b50; border-left:13px solid #102c29; border-radius:8px 13px 13px 8px;
  box-shadow:7px 6px 0 #a6956e,11px 9px 0 #122f2c,inset 0 0 32px #091d1aa6;
  transform-origin:left center; transition:transform 1.65s cubic-bezier(.25,.65,.3,1),opacity .85s .55s;
}
.grimoire-cover::before { content:""; position:absolute; inset:14px; border:3px double #c7a263; border-radius:5px; pointer-events:none; }
.grimoire-cover strong { font:normal clamp(1.6rem,5vw,2.6rem)/1.02 Georgia,serif; max-width:10ch; }
.grimoire-cover span { font:700 .82rem/1.3 system-ui,sans-serif; color:#ffebbe; }
.grimoire-cover .grimoire-star { font-size:2.65rem; text-shadow:0 0 26px #ffc862; }
.grimoire[data-open] .grimoire-cover { transform:rotateY(-110deg); opacity:0; pointer-events:none; }
.grimoire-index {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 4px;
  list-style:none; padding:9px 3px 13px; margin:12px 0; max-height:305px; overflow:auto;
}
.grimoire-index li { min-width:0; text-align:center; }
.grimoire-entry {
  display:grid; justify-items:center; gap:6px; color:#21524b; padding:3px 1px;
  border-radius:8px; text-decoration:none;
}
.grimoire-medal, .grimoire-empty span {
  display:grid; place-items:center; width:min(64px,100%); aspect-ratio:1; border-radius:50%; margin-inline:auto;
}
.grimoire-medal {
  border:4px double #a97c37; color:#175966;
  background:radial-gradient(circle at 34% 25%,#fff8d8,#e7c484 72%,#c49850);
  box-shadow:0 3px 5px #69472155,inset 0 0 0 2px #fce9ab;
  transition:transform .2s,box-shadow .2s;
}
.grimoire-medal img { width:69%; height:auto; }
.grimoire-medal-code { font:700 .7rem/1.1 monospace; overflow-wrap:anywhere; }
.grimoire-entry:hover .grimoire-medal, .grimoire-entry:focus-visible .grimoire-medal {
  transform:translateY(-3px); box-shadow:0 6px 12px #69472166;
}
.grimoire-empty span {
  color:#856737; border:1px dashed #a1885f; background:#e5d2a74d;
  font:normal 1.4rem Georgia,serif;
}
.grimoire-entry[aria-current] .grimoire-medal {
  border-color:#f2c779; background:radial-gradient(circle at 40% 30%,#39776a,#174740 75%);
  box-shadow:0 0 16px #a36b23,inset 0 0 0 2px #336257;
  animation:sceau-lumiere .8s 1.25s both;
}
.grimoire-entry[aria-current] .grimoire-medal img { filter:brightness(0) saturate(100%) invert(89%) sepia(33%) saturate(520%) hue-rotate(346deg); }
@keyframes sceau-lumiere {
  0% { opacity:.6; transform:scale(.9); }
  65% { opacity:1; transform:scale(1.12); box-shadow:0 0 26px #e9a231; }
  100% { opacity:1; transform:scale(1); }
}
@media (max-width:560px) {
  .grimoire-index { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grimoire-medal-code { font-size:.64rem; }
}
.grimoire-detail { overflow-wrap:anywhere; }
.grimoire-detail p { line-height:1.45; }
.grimoire-detail .textlink { color:#21524b; }
.grimoire-illustration { display:block; max-width:100%; width:auto; height:175px; margin:10px auto; object-fit:contain; box-shadow:0 0 20px #ddab53; }
.grimoire[data-open] .grimoire-detail { animation:revelation .55s 1.3s both; }
@keyframes revelation { 0% { opacity:0; transform:scale(.94); } 100% { opacity:1; transform:scale(1); } }
.grimoire-page .registre-panel.certificat { scroll-margin-top:24px; }
@media (max-width:560px) {
  .grimoire { min-height:350px; padding-inline:9px; }
  .grimoire-leaves { min-height:290px; border-width:4px; }
  .grimoire-leaf { padding:16px 10px; }
  .grimoire-illustration { height:115px; }
}
@media (prefers-reduced-motion:reduce) {
  .grimoire *, .grimoire[data-open] .grimoire-detail { animation:none; transition:none; }
}
@media print {
  .grimoire-page { color:#173138 !important; background:white !important; }
  .grimoire-page .registre > .intro, #grimoire { display:none; }
}
.grimoire-private-seal {
  display:grid; place-items:center; width:62px; height:62px; margin:18px 0;
  border:4px double #efcd84; border-radius:50%; background:#244c45; color:#ffe6a5;
  box-shadow:0 0 25px #d8a743b0; font-size:1.85rem;
}
.grimoire-cover:focus-visible, .grimoire-entry:focus-visible { outline:3px solid #f0b04a; outline-offset:3px; }
.grimoire-detail blockquote {
  margin:14px 0; padding:0 0 0 10px; border-left:2px solid #a78442; font:italic 1rem/1.4 Georgia,serif;
}
.grimoire-page .registre-panel.certificat {
  padding:0; overflow:hidden; outline:none; max-width:820px; background:#fffaf1;
}
.grimoire-page .seal-masthead {
  display:block; position:static; padding:28px clamp(20px,5vw,46px);
  color:#fffaf1; background:#175966; border:0;
}
.seal-brand { display:flex; align-items:center; gap:10px; font-weight:700; }
.seal-brand img { width:42px; height:42px; background:#fffaf1; border-radius:50%; padding:4px; }
.seal-masthead h2 { font-size:clamp(1.7rem,5vw,3rem); }
.seal-masthead p { margin:0; color:#ffe5d8; }
.seal-masthead::after { content:""; display:block; height:3px; width:40px; background:#dc826d; margin-top:16px; }
.seal-body { display:grid; grid-template-columns:1fr auto; gap:18px; align-items:center; padding:clamp(20px,5vw,46px); }
.seal-number { font-size:clamp(1.15rem,4vw,2rem); }
.seal-qr { margin:0; padding:12px; text-align:center; background:#e6f2eb; border-radius:12px; max-width:160px; }
.seal-qr figcaption { font-size:.78rem; margin-top:6px; }
.seal-qr img, .seal-strip img { display:block; width:min(112px,100%); height:auto; margin:auto; image-rendering:pixelated; }
.seal-controls { padding:0 clamp(20px,5vw,46px) 24px; }
.seal-artwork { max-width:820px; }
.seal-artwork .registre-image { height:auto; max-height:620px; background:#f4efe6; }
.seal-strip { display:grid; grid-template-columns:1fr minmax(75px,112px); gap:16px; align-items:center; padding:14px 20px; margin:14px 0; border-top:4px solid #175966; background:#fffaf1; }
.seal-strip strong { display:block; margin-top:6px; }
@media (max-width:430px) {
  .seal-body { grid-template-columns:1fr; }
  .seal-qr { max-width:none; justify-self:start; }
}
@media print {
  .grimoire-page .seal-masthead { display:block; print-color-adjust:exact; }
  .seal-controls, .seal-artwork { display:none; }
}

.seal-qr-download { display:block; margin-top:10px; }
.registre .atlas-search {
  max-width:820px; margin:24px auto; padding:18px 22px; border:1px solid #84744c;
  border-radius:14px; background:#172d30;
}
.atlas-search > div { display:flex; align-items:stretch; gap:10px; flex-wrap:wrap; }
.atlas-search input[type=text] { flex:1 1 12rem; width:auto; }
.atlas-search .button { flex:0 0 auto; }
.atlas-invitation {
  text-align:center; padding:clamp(24px,5vw,44px); margin:30px auto 0; max-width:820px;
  background:#e6f2eb; border-radius:22px; color:#173138;
}
.atlas-invitation p { max-width:50ch; margin:14px auto 20px; }
.seal-revealed-work { margin:18px 0 0; }
.seal-revealed-work .registre-image { max-height:540px; height:auto; }
.grimoire-page .seal-body { grid-template-columns:1fr; }
@media print { .atlas-invitation { display:none; } }

.grimoire-glow { position:absolute; inset:0; z-index:3; pointer-events:none; }
.grimoire-glow span {
  position:absolute; left:var(--x); top:var(--y); opacity:0; color:#fff0b2;
  font-size:clamp(.8rem,3vw,1.6rem); text-shadow:0 0 9px #ffc85f,0 0 24px #ffb83d;
}
.grimoire[data-open] .grimoire-glow span { animation:atlas-spark 1.85s calc(.25s + var(--delay)) both; }
@keyframes atlas-spark {
  0% { opacity:0; transform:translateY(13px) scale(.25) rotate(20deg); }
  35% { opacity:.95; transform:translateY(-4px) scale(1) rotate(0); }
  100% { opacity:0; transform:translateY(-42px) scale(.45) rotate(-18deg); }
}
.grimoire-medal-title { font:.78rem/1.2 Georgia,serif; overflow-wrap:anywhere; }
.atlas-verdict { padding:13px 16px; border:1px solid; border-radius:10px; }
.atlas-verdict strong,.atlas-verdict span { display:block; }
.atlas-verdict span { margin-top:5px; }
.atlas-verdict-error { color:#751d23; background:#fff0ee; border-color:#c77272; }
.atlas-verdict-success { color:#174e40; background:#e6f2eb; border-color:#84b5a1; }
#registre-status.atlas-verdict { max-width:820px; margin:14px auto; }
.atlas-examples { max-width:900px; margin:54px auto 0; }
.atlas-examples .kicker { color:#e0bd79; }
.atlas-examples h2 { font-size:clamp(1.8rem,5vw,3.15rem); }
.atlas-examples-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:16px; margin-top:24px; }
.atlas-examples-grid figure { margin:0; overflow:hidden; border-radius:14px; color:#173138; background:#fffaf1; }
.atlas-examples-grid img { display:block; width:100%; height:310px; object-fit:contain; padding:12px; background:#e9e2d5; }
.atlas-examples-grid figcaption { padding:15px; }
.atlas-examples-grid span { display:block; margin-top:6px; font-size:.9rem; }
@media (prefers-reduced-motion:reduce) { .grimoire[data-open] .grimoire-glow span { animation:none; } }
@media print { .atlas-examples { display:none; } }
@media (prefers-reduced-motion:reduce) {
  .grimoire-entry[aria-current] .grimoire-medal { animation:none; }
  .grimoire[data-open] .grimoire-leaves, .grimoire[data-open] .grimoire-cover { transition:none; }
}

.grimoire[data-missing] .grimoire-glow { display:none; }
.grimoire[data-missing][data-open] { border-color:#da737a; }
.grimoire[data-missing][data-open] .grimoire-leaf + .grimoire-leaf {
  color:#741e26;
  background:linear-gradient(90deg,#bf9190,#f9e4df 13%,#f9e4df 88%,#c99794);
}
.grimoire-missing-mark {
  display:grid; place-items:center; width:52px; height:52px; border:3px double #b84f58;
  border-radius:50%; background:#831f2b; color:#fff4ed; font:bold 1.5rem Georgia,serif;
}
.grimoire[data-missing][data-open] .grimoire-detail { animation:seal-missing .85s both; }
@keyframes seal-missing {
  0% { opacity:.2; box-shadow:inset 0 0 0 #ad293a00; }
  70% { opacity:1; box-shadow:inset 0 0 42px #ad293a66; }
  100% { opacity:1; box-shadow:inset 0 0 0 #ad293a00; }
}
@media (prefers-reduced-motion:reduce) {
  .grimoire[data-missing][data-open] .grimoire-detail { animation:none; }
}

.grimoire-empty span { border-style:double; color:#997a49; background:radial-gradient(#f8e9c7,#e3ca96); }
.grimoire-index { position:relative; grid-template-columns:repeat(5,minmax(0,1fr)); max-height:320px; }
.grimoire-entry[aria-current] { position:relative; z-index:2; }
.grimoire[data-selected][data-open] .grimoire-entry[aria-current] .grimoire-medal {
  animation:atlas-medal-zoom .85s 1.2s both;
}
@keyframes atlas-medal-zoom {
  0% { transform:scale(.9); box-shadow:0 0 10px #a36b23; }
  60% { transform:scale(1.48); box-shadow:0 0 28px 7px #e9a231; }
  100% { transform:scale(1.12); box-shadow:0 0 16px #a36b23; }
}
@media (max-width:650px) {
  .grimoire-index { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .grimoire-entry[aria-current] .grimoire-medal { transform-origin:center; }
}
@media (prefers-reduced-motion:reduce) {
  .grimoire[data-selected][data-open] .grimoire-entry[aria-current] .grimoire-medal { animation:none; }
}
@media (min-width:800px) {
  .grimoire-page .registre { width:min(1320px,calc(100% - 56px)); }
  .grimoire { min-height:580px; padding:40px clamp(44px,7vw,100px) 49px; }
  .grimoire-volume { width:min(1010px,100%); }
  .grimoire-leaves { min-height:460px; }
  .grimoire-cover { width:min(395px,90%); }
  .grimoire-illustration { height:250px; }
}
.grimoire-demo-entry .grimoire-medal-code,.grimoire-demo-note { color:#725122; }
.grimoire-preview-spread { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.grimoire-preview-spread a { display:grid; gap:6px; align-content:start; color:#21524b; text-decoration:none; font:.84rem/1.2 Georgia,serif; }
.grimoire-preview-spread img {
  display:block; width:100%; height:clamp(86px,19vw,245px); object-fit:contain;
  padding:5px; background:#fbf4e4; border:1px solid #aa8f63; box-shadow:2px 3px 7px #563b272f;
}
.grimoire-neighbors-title { font:normal 1.05rem Georgia,serif; margin:12px 0 0; }
.grimoire-leaf .grimoire-preview-spread { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:10px; }
.grimoire-leaf .grimoire-preview-spread img { height:clamp(65px,12vw,145px); }
.grimoire-opening-spread { padding-top:12px; }
.grimoire-verified-entry .grimoire-medal { background:radial-gradient(#e8f2cd,#a6c2a3); border-color:#416e58; }
.grimoire-authentic {
  display:inline-block; color:#174f3c; background:#deead8; border:1px solid #80a390;
  border-radius:5px; padding:5px 8px; font-weight:bold;
}
.grimoire-turns { position:absolute; inset:8px 8px 8px 50%; perspective:1050px; pointer-events:none; z-index:1; }
.grimoire-turn {
  position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:12px;
  padding:18px; background:linear-gradient(90deg,#c1a775,#fbefd1 15%,#e6cf9f);
  color:#634c30; font:1rem Georgia,serif; opacity:0; transform-origin:left center;
  border:1px solid #b49a69; box-shadow:7px 3px 12px #37291266;
}
.grimoire-turn img { width:auto; max-width:95%; height:clamp(110px,23vw,265px); object-fit:contain; }
.grimoire[data-open] .grimoire-turn { animation:atlas-turn .59s var(--turn-delay) both; }
@keyframes atlas-turn {
  0% { opacity:0; transform:rotateY(8deg); }
  22% { opacity:1; }
  65% { opacity:1; }
  100% { opacity:0; transform:rotateY(-162deg); }
}
.grimoire[data-selected][data-open] .grimoire-detail { animation-delay:1.75s; }
.grimoire[data-selected][data-open] .grimoire-entry[aria-current] .grimoire-medal { animation-delay:1.66s; }

@media (min-width:800px) {
  .grimoire-leaves { min-height:clamp(460px,54vw,650px); }
  .grimoire-index { max-height:250px; }
  .grimoire-cover { width:min(435px,90%); }
}
@media (max-width:540px) {
  .grimoire-leaf .grimoire-preview-spread { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grimoire-index { max-height:200px; }
}
@media (prefers-reduced-motion:reduce) { .grimoire[data-open] .grimoire-turn { animation:none; } }
.grimoire-index { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; max-height:300px; }
.grimoire-number {
  display:grid; place-content:center; min-height:36px; border-radius:5px; padding:5px 2px;
  text-decoration:none; font:700 clamp(.57rem,1.1vw,.78rem)/1.2 monospace; overflow-wrap:anywhere;
}
.grimoire-number.grimoire-verified-entry {
  color:#174f3c; background:#e3efda; border:1px solid #769988;
}
.grimoire-number.grimoire-verified-entry::before { content:"✓"; text-align:center; font-size:.95em; }
.grimoire-number-empty { color:#96794f; border:1px solid #b89e714f; background:#f9edcc5c; }
.grimoire-number-missing { color:#7e252a; border:1px solid #b84f58; background:#f8ded9; }
.grimoire-number[aria-current] { outline:2px solid #927143; box-shadow:0 0 16px #e9a231; }
.grimoire[data-selected][data-open] .grimoire-number[aria-current] { animation:atlas-medal-zoom .85s 1.66s both; position:relative; z-index:1; }
.grimoire-gallery-numbers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-top:9px; }
.grimoire-gallery-number { color:#554629; border:1px solid #a58b5c; background:#f6e7c4; }
.grimoire-turn { grid-template-columns:repeat(3,minmax(0,1fr)); align-content:stretch; justify-items:stretch; gap:7px; }
.grimoire-turn .grimoire-number { min-height:0; }
.grimoire-private-message { color:#554629; }
@media (max-width:540px) {
  .grimoire-index,.grimoire-turn { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grimoire-turn { padding:8px; gap:4px; }
}
@media (prefers-reduced-motion:reduce) {
  .grimoire[data-selected][data-open] .grimoire-number[aria-current] { animation:none; }
}
.grimoire-index { grid-template-columns:repeat(3,minmax(0,1fr)); max-height:480px; }
.grimoire-index button.grimoire-number { width:100%; min-height:48px; cursor:pointer; }
.grimoire-index button.grimoire-number:hover { outline:2px solid #987747; }
.grimoire-preview-label { font-size:.75rem; color:#684f2d; margin:12px 0 0; }
.grimoire-detail .certificat { margin:12px 0; }
.grimoire-detail .certificat .registre-image { max-height:285px; height:auto; object-fit:contain; }
.grimoire-detail .seal-masthead,.grimoire-detail .seal-body,.grimoire-detail .seal-controls { padding:14px; }
.grimoire-detail .seal-masthead h2 { font-size:clamp(1.15rem,3vw,1.8rem); }
.grimoire-detail .certificat .button { white-space:normal; }
.grimoire-detail .certificat .kicker { padding:12px; }
.grimoire-detail .certificat blockquote { margin:12px; }
.grimoire-turn { grid-template-rows:repeat(6,minmax(0,1fr)); }
@media (max-width:540px) {
  .grimoire-index { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grimoire-turn { grid-template-rows:repeat(9,minmax(0,1fr)); }
  .grimoire-detail .seal-brand img { display:none; }
}
@media print {
  .grimoire-page:has(.grimoire-detail .seal-masthead) #grimoire {
    display:block; padding:0; min-height:0; overflow:visible; border:0; background:none;
  }
  .grimoire-page:has(.grimoire-detail .seal-masthead) .grimoire-volume,
  .grimoire-page:has(.grimoire-detail .seal-masthead) .grimoire-leaves {
    display:block; width:100%; min-height:0; border:0; filter:none; box-shadow:none; transform:none;
  }
  .grimoire-page .grimoire-detail { background:none!important; padding:0; animation:none!important; }
  .grimoire-leaves > :first-child,.grimoire-collection,.grimoire-glow,.grimoire-turns,.grimoire-cover,
  .grimoire-detail > h2,#registre-status { display:none!important; }
}

/* Cachets de cire */
.grimoire-index { gap:14px 8px; padding:12px 6px 20px; }
.grimoire-index .grimoire-number, .grimoire-turn .grimoire-number {
  --wax-size:clamp(43px,6vw,72px);
  --wax-light:#698b69;
  --wax-mid:#315c47;
  --wax-deep:#173b30;
  --wax-rim:#103729;
  position:relative; isolation:isolate; box-sizing:border-box;
  align-content:end; min-height:calc(var(--wax-size) + 1.5rem);
  padding:calc(var(--wax-size) + 4px) 2px 2px;
  border:0; background:none; color:#224837; text-align:center;
}
.grimoire-index .grimoire-gallery-number {
  --wax-light:#be975b; --wax-mid:#8e6539; --wax-deep:#623f26; --wax-rim:#593924;
}
.grimoire-index .grimoire-number-missing {
  --wax-light:#d27676; --wax-mid:#aa3f4a; --wax-deep:#78232e; --wax-rim:#691d27;
  color:#8b2730;
}
.grimoire-index .grimoire-number::after, .grimoire-turn .grimoire-number::after {
  content:""; position:absolute; z-index:-1; top:0; left:50%;
  width:var(--wax-size); height:var(--wax-size); translate:-50% 0;
  border-radius:46% 51% 44% 50% / 49% 42% 54% 46%;
  background:
    radial-gradient(ellipse at 38% 25%, #ffffff45, transparent 42%),
    radial-gradient(circle at 50% 48%, var(--wax-mid) 37%,var(--wax-deep) 47%,var(--wax-light) 52%,var(--wax-mid) 61%,var(--wax-deep) 76%);
  box-shadow:inset 1px 2px 2px #ffffff55,inset -2px -3px 4px var(--wax-rim),0 3px 4px #3629176e;
  transform:rotate(-8deg);
}
.grimoire-index li:nth-child(3n) .grimoire-number::after {
  border-radius:50% 42% 49% 45% / 44% 51% 45% 52%; transform:rotate(12deg);
}
.grimoire-index .grimoire-number::before, .grimoire-turn .grimoire-number::before {
  content:"✦"; position:absolute; top:0; left:50%; translate:-50% 0;
  display:grid; place-items:center; width:var(--wax-size); height:var(--wax-size);
  color:var(--wax-light); font:normal calc(var(--wax-size) * .36)/1 Georgia,serif;
  text-shadow:0 -1px 1px var(--wax-deep),0 1px 1px #ffffff52;
}
.grimoire-index .grimoire-verified-entry::before, .grimoire-turn .grimoire-verified-entry::before { content:"✦"; }
.grimoire-index .grimoire-number-missing::before { content:"×"; }
.grimoire-index button.grimoire-number[aria-current] { outline:0; box-shadow:none; }
.grimoire-index button.grimoire-number[aria-current]::after {
  box-shadow:inset 1px 2px 2px #ffffff55,inset -2px -3px 4px var(--wax-rim),0 0 15px 5px #edb747a6;
}
.grimoire-turn .grimoire-number { --wax-size:clamp(23px,4vw,43px); }
@media (max-width:540px) {
  .grimoire-turn .grimoire-number { --wax-size:20px; min-height:0; }
}
.grimoire[data-selected][data-open] .grimoire-number[aria-current] { animation-name:wax-zoom; }
@keyframes wax-zoom {
  0% { transform:scale(.92); }
  65% { transform:scale(1.18); }
  100% { transform:scale(1.06); }
}

.grimoire { background:radial-gradient(ellipse at 50% 42%,#2b4140,#132023 68%,#10191c); }
.grimoire::before { border-color:#c7a96635; }
.grimoire-index .grimoire-number::before, .grimoire-turn .grimoire-number::before {
  text-shadow:0 -1px 1px #112b22,0 1px 1px #ffffff66;
}
.grimoire-index .grimoire-number::after, .grimoire-turn .grimoire-number::after {
  box-shadow:inset 1px 2px 2px #ffffff47,inset -2px -3px 5px var(--wax-rim),0 4px 7px #36291752;
}

.grimoire-page .atlas-header {
  display:flex; justify-content:flex-start; align-items:center; flex-wrap:wrap; gap:10px 24px;
}
.grimoire-page .atlas-header .atlas-header-cta {
  color:#16362e; background:#ebd9a8; border-color:#ebd9a8;
  padding:.58rem .95rem; font-size:.86rem;
}
.grimoire-page .atlas-header .atlas-header-cta:hover { background:#f8e9c1; }
.grimoire-register h2 { margin:0 0 10px; font:normal clamp(1.28rem,3.2vw,2.15rem)/1.05 Georgia,serif; color:#2c382a; }
.grimoire-register .grimoire-preview-label { font:italic .76rem Georgia,serif; color:#6d604d; }
.grimoire-index .grimoire-number, .grimoire-turn .grimoire-number {
  --wax-size:clamp(34px,4.7vw,58px);
  --wax-light:#91a58a;
  --wax-mid:#426550;
  --wax-deep:#264837;
  --wax-rim:#233c2f;
  letter-spacing:.045em; font-weight:500;
}
.grimoire-index .grimoire-number::after, .grimoire-turn .grimoire-number::after {
  background:
    radial-gradient(ellipse at 34% 23%,#ffffff30,transparent 40%),
    radial-gradient(circle at 50% 48%,var(--wax-mid) 40%,var(--wax-deep) 49%,var(--wax-light) 52%,var(--wax-mid) 56%,var(--wax-deep) 77%);
  box-shadow:inset 1px 1px 1px #ffffff45,inset -1px -2px 3px var(--wax-rim),0 2px 4px #36291755;
}
.grimoire-index .grimoire-number:not(.grimoire-number-missing)::before, .grimoire-turn .grimoire-number::before {
  content:""; top:calc(var(--wax-size) * .23);
  width:calc(var(--wax-size) * .54); height:calc(var(--wax-size) * .54);
  background:#ede8ca; opacity:.83;
  -webkit-mask:url('/images/logo-etoile-filante.svg') center/contain no-repeat;
  mask:url('/images/logo-etoile-filante.svg') center/contain no-repeat;
  filter:drop-shadow(0 1px 0 #203e33);
}
.grimoire-turn .grimoire-number { --wax-size:clamp(18px,3.4vw,36px); }
@media (max-width:540px) {
  .grimoire-page .atlas-header { gap:8px 12px; }
  .grimoire-page .atlas-header .atlas-header-cta { font-size:.78rem; padding:.48rem .7rem; }
  .grimoire-turn .grimoire-number { --wax-size:17px; }
}
.atlas-examples-grid .textlink { display:inline-block; margin-top:12px; color:#175966; font-weight:700; }
.grimoire-order { margin-top:4px; }
.grimoire-detail .certificat > p:not(.kicker) { padding:0 12px; }

/* Certificat d’origine sur la page de droite */
.grimoire-detail .certificat {
  position:relative;
  border:3px double #aa8c56;
  border-radius:8px;
  background:#fffbef;
}
.grimoire-detail .certificat .seal-masthead {
  border-bottom:3px double #bca374;
}
.grimoire-page .grimoire-detail .seal-body {
  position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:start; column-gap:12px;
}
.seal-identity { min-width:0; }
.seal-certificate-stamp {
  position:relative; display:block; isolation:isolate; box-sizing:border-box;
  width:clamp(94px,11vw,136px); aspect-ratio:1; margin:8px 3px 10px;
  transform:rotate(-12deg); color:#285d4b; opacity:.75; mix-blend-mode:multiply;
  border:2px solid currentColor; border-radius:50%;
  box-shadow:inset 0 0 0 1px #285d4b42;
  -webkit-mask-image:repeating-linear-gradient(117deg,#000 0 2px,#0008 2px 2.45px,#000 2.45px 4.8px);
  mask-image:repeating-linear-gradient(117deg,#000 0 2px,#0008 2px 2.45px,#000 2.45px 4.8px);
}
.seal-certificate-stamp::before {
  content:""; position:absolute; inset:20%; border:1px dashed currentColor; border-radius:50%; opacity:.8;
}
.seal-certificate-stamp::after {
  content:""; position:absolute; inset:30%; background:currentColor;
  -webkit-mask:url('/images/logo-etoile-filante.svg') center/contain no-repeat;
  mask:url('/images/logo-etoile-filante.svg') center/contain no-repeat;
}
.seal-stamp-arc,.seal-stamp-arc span { position:absolute; inset:0; }
.seal-stamp-arc span {
  text-align:center; transform:rotate(var(--stamp-angle));
  font:700 clamp(6px,.76vw,10px)/1 Georgia,serif;
}
.seal-stamp-top span { padding-top:8%; }
.seal-stamp-bottom span { display:grid; align-content:end; padding-bottom:8%; }
.seal-stamp-arc span:nth-child(5n) { opacity:.68; }
@media (max-width:540px) {
  .grimoire-page .grimoire-detail .seal-body { display:block; }
  .seal-certificate-stamp { margin:12px auto 0; }
}
@media print { .seal-certificate-stamp { print-color-adjust:exact; } }

/* L’état invalide conserve sa cire rouge après les styles généraux. */
.grimoire-index .grimoire-number.grimoire-number-missing {
  --wax-light:#e18a85;
  --wax-mid:#a93440;
  --wax-deep:#721d29;
  --wax-rim:#55131d;
  color:#8b2730;
}
.grimoire-index .grimoire-number.grimoire-number-missing::before {
  color:#ffe1d4; text-shadow:0 1px 1px #55131d;
}

.grimoire[data-selected][data-open] .grimoire-index button.grimoire-number[aria-current]::after {
  animation:wax-halo 2s ease-in-out 1.15s 3 both;
}
@keyframes wax-halo {
  0%,100% {
    box-shadow:inset 1px 2px 2px #ffffff55,inset -2px -3px 4px var(--wax-rim),0 0 9px 3px #c891418c;
  }
  50% {
    box-shadow:inset 1px 2px 3px #fff7c9bc,inset -2px -3px 4px var(--wax-rim),0 0 17px 6px #f8c85b,0 0 30px 10px #f5c76877;
  }
}
@media (prefers-reduced-motion:reduce) {
  .grimoire[data-selected][data-open] .grimoire-index button.grimoire-number[aria-current]::after { animation:none; }
}

.grimoire[data-pending-missing] .grimoire-detail > *,
.grimoire[data-pending-missing] .grimoire-number-missing { visibility:hidden; }
#registre-status[hidden] { display:none; }
.seal-certificate-stamp.seal-stamp-missing {
  color:#9a2233;
  box-shadow:inset 0 0 0 1px #9a223342;
}

.grimoire-shared-portrait { width:min(100%, 330px); margin:10px auto 0; text-align:center; }
.grimoire-patinated-paper {
  position:relative; width:fit-content; max-width:100%; margin:0 auto;
  background:#efe1c4; border-radius:2px 4px 3px 2px;
  box-shadow:1px 3px 9px #65481944;
}
.grimoire-patinated-paper .registre-image {
  display:block; width:auto; max-width:100%; height:auto; max-height:440px;
  background:none; border-radius:inherit; filter:sepia(.18) saturate(.86) contrast(.96);
}
.grimoire-patinated-paper::after {
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(ellipse at 49% 46%, transparent 57%, #a36a302e 96%),
    linear-gradient(110deg, #aa6b231a, transparent 42%, #c6a25c14);
  box-shadow:inset 0 0 10px #97662a38; mix-blend-mode:multiply;
}
.grimoire-detail .grimoire-shared-portrait blockquote {
  margin:16px 0 6px; padding:0; border:0; color:#51402d;
  font:italic clamp(.87rem,1.5vw,1.13rem)/1.4 Georgia,serif;
}
.grimoire-portrait-name { margin:0; color:#365346; font:600 .86rem Georgia,serif; }
.grimoire-quote-only { margin:0 auto; }
.grimoire-quote-only .grimoire-preview-label { margin-top:18px; color:#6d604d; font:italic .76rem Georgia,serif; }

.grimoire-detail {
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; font-family:Georgia,serif;
}
.grimoire-detail > p { max-width:34ch; }
.grimoire-detail > .grimoire-preview-label {
  margin:8px 0 0; color:#6d604d; font:italic .86rem/1.4 Georgia,serif;
}
.grimoire-detail .grimoire-shared-portrait { margin-top:0; }
.grimoire-detail .certificat { width:100%; }
.grimoire-detail .seal-brand { justify-content:center; }
.grimoire-detail .seal-masthead::after { margin-inline:auto; }
.grimoire-page .grimoire-detail .seal-body { grid-template-columns:minmax(0,1fr); justify-items:center; }
.grimoire-detail .seal-certificate-stamp { margin:8px auto; }
.grimoire-detail .seal-revealed-work .registre-image { margin-inline:auto; }
.grimoire-detail .certificat blockquote { padding-inline:0; border:0; }

.grimoire-page .grimoire-detail .certificat {
  width:min(100%, 380px); margin:0 auto; background:none; border:0; box-shadow:none;
  color:#51402d;
}
.grimoire-page .grimoire-detail .certificat .seal-masthead {
  background:none; border:0; color:inherit; padding:0;
}
.grimoire-detail .certificat .seal-masthead h2 { color:#365346; font-weight:600; }
.grimoire-detail .certificat .seal-masthead p { color:#6d604d; font-style:italic; }
.grimoire-detail .certificat .seal-masthead::after { display:none; }
.grimoire-detail .certificat .seal-number { margin:14px 0 6px; color:#365346; font-family:Georgia,serif; }
.grimoire-detail .certificat .seal-body { padding:10px 0; }
.grimoire-detail .certificat .seal-controls { padding:0; }
.grimoire-detail .seal-certificate-stamp:not(.seal-stamp-missing) {
  width:clamp(120px,14vw,180px); margin:10px auto 16px; color:#225441;
  border-width:3px; opacity:.96;
  mask-image:repeating-linear-gradient(117deg,#000 0 2.25px,#000b 2.25px 2.55px,#000 2.55px 5px);
}
.grimoire-detail .seal-certificate-stamp:not(.seal-stamp-missing) .seal-stamp-arc span { font-size:clamp(8px,1vw,13px); }

.grimoire-detail .grimoire-inscription-date {
  margin:8px 0 0; color:#6d604d; font:italic .82rem/1.4 Georgia,serif;
}

.grimoire-detail .grimoire-record-heading {
  display:block; position:static; padding:0; background:none; border:0;
  margin:0 auto 14px; width:100%; color:#365346; text-align:center;
}
.grimoire-record-heading h2 { margin:0; font:600 clamp(1.1rem,2.8vw,1.8rem)/1.2 Georgia,serif; }
.grimoire-record-heading .grimoire-record-number { margin:7px 0 0; font-weight:700; letter-spacing:.04em; }
.grimoire-record-heading .grimoire-inscription-date { margin:4px 0 0; }

.grimoire-detail .grimoire-patinated-paper:has(.seal-certificate-stamp) {
  --portrait-seal-size:clamp(67px,38%,104px);
  --portrait-seal-right:clamp(-30px,-4vw,-18px);
  --portrait-seal-bottom:-10px;
  margin-bottom:18px;
}
.grimoire-detail .grimoire-patinated-paper:has(.seal-certificate-stamp)::before {
  content:""; position:absolute; z-index:1; pointer-events:none;
  right:calc(var(--portrait-seal-right) - 10px); bottom:calc(var(--portrait-seal-bottom) - 10px);
  width:calc(var(--portrait-seal-size) + 20px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,#fff8e7 0 61%,#f9ecd3 69%,#f5e6cb80 75%,transparent 82%);
}
.grimoire-detail .grimoire-patinated-paper .seal-certificate-stamp {
  position:absolute; z-index:2; right:var(--portrait-seal-right); bottom:var(--portrait-seal-bottom);
  width:var(--portrait-seal-size); margin:0; border-width:1.5px; opacity:1; pointer-events:none;
  color:#234d3e; mix-blend-mode:normal;
  -webkit-mask-image:none; mask-image:none;
}
.grimoire-detail .grimoire-patinated-paper .seal-certificate-stamp .seal-stamp-arc span {
  font-size:clamp(5.5px,.72vw,8.5px); opacity:1;
}

.grimoire-create-seal {
  display:grid; justify-items:center; gap:4px; margin-inline:auto; padding:4px; border:0; background:none;
  color:#365346; font:600 .8rem Georgia,serif; cursor:pointer;
}
.grimoire-create-symbol {
  display:grid; place-items:center; width:48px; aspect-ratio:1;
  border:3px double #a37e42; border-radius:46% 52% 47% 51%;
  background:radial-gradient(circle at 36% 28%,#f9e2aa,#d1a45b 69%,#996938);
  box-shadow:inset 0 1px 2px #fff2c1,0 3px 6px #6c4c344d;
  color:#4d3820; font:normal 1.8rem/1 Georgia,serif;
}
.grimoire-create-seal:hover .grimoire-create-symbol { filter:brightness(1.1); }
.grimoire-create-seal:focus-visible { outline:2px solid #365346; outline-offset:4px; }
.grimoire-create-intro { max-width:34ch; }
.grimoire-create-intro h2 { font-size:clamp(1.35rem,3vw,2.3rem); }
.grimoire-create-lead { font-style:italic; color:#51402d; }
.grimoire-create-intro ol { text-align:left; padding-inline-start:1.35em; margin:16px auto; }
.grimoire-create-intro li + li { margin-top:8px; }
.grimoire-create-intro .button { margin-top:6px; white-space:normal; }
@media print { .grimoire-create-seal { display:none !important; } }
