/* Voyance sans CB - feuille de style unique.
   Un seul univers, nocturne et feutré : une table dans la pénombre, un cadran de laque sombre
   gravé de laiton, éclairé à la bougie. Une seule colonne, centrée sur le fil du pendule. */

@font-face{font-family:"Marcellus";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/marcellus-400.woff2) format("woff2")}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:200 800;font-display:swap;src:url(../fonts/newsreader-wght.woff2) format("woff2")}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:200 800;font-display:swap;src:url(../fonts/newsreader-wght-italic.woff2) format("woff2")}

:root{
  color-scheme:dark;
  --night:#071315; --night-lit:#143237; --night-deep:#030a0b;
  --ivory:#efe6d0; --ivory-dim:#bcc5ba; --ivory-mute:#8b9e99;
  --lacquer:#0f2328; --lacquer-lit:#1c3f45; --lacquer-deep:#07141a; --rim:#5a4313;
  --brass:#d9b45c; --brass-hi:#f6dfa0; --brass-deep:#9c7826; --brass-dark:#3d2c06;
  --candle:255 178 96;
  --oui:#a4e8bf; --non:#ff9d85; --peut:#f5d284; --ref:#b9cde6;
  --chain:#e6c672; --chain-shade:#120c02; --shade:rgba(0,0,0,.7);
  --line:color-mix(in srgb,var(--ivory) 14%,transparent);
  --font-display:"Marcellus","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --font-text:"Newsreader","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --gutter:20px;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:12px}
body{
  margin:0;min-height:100vh;color:var(--ivory);background-color:var(--night);
  background-image:var(--grain),radial-gradient(90% 560px at 50% 300px,var(--night-lit) 0%,var(--night) 55%,var(--night-deep) 100%);
  background-repeat:repeat,no-repeat;
  font-family:var(--font-text);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;overflow-x:clip;
}
img,svg{max-width:100%}
a{color:var(--brass-hi);text-decoration-color:color-mix(in srgb,var(--brass) 55%,transparent);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-color:var(--brass-hi)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.saut{position:absolute;left:12px;top:-60px;z-index:20;background:var(--brass);color:var(--brass-dark);padding:8px 14px;border-radius:999px;font-family:var(--font-display);text-decoration:none}
.saut:focus{top:10px}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--font-display);font-weight:400;text-wrap:balance;line-height:1.15;letter-spacing:.01em}

/* ---------- en-tête ---------- */
.entete{padding-inline:var(--gutter)}
.entete-in{max-width:1120px;margin-inline:auto;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.marque{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-size:1.08rem;letter-spacing:.03em;color:var(--ivory);text-decoration:none}
.marque-ico{width:15px;height:20px;color:var(--brass)}
.menu-btn{display:inline-block;text-decoration:none;font:inherit;font-size:.95rem;color:var(--ivory);background:none;border:1px solid color-mix(in srgb,var(--ivory) 26%,transparent);border-radius:999px;padding:5px 15px;cursor:pointer}
.menu-btn[aria-expanded="true"]{border-color:var(--brass);color:var(--brass-hi)}
.nav ul{list-style:none;margin:0;padding:0}
.nav a{color:var(--ivory-dim);text-decoration:none;font-size:1rem}
.nav a:hover{color:var(--ivory)}
.nav a[aria-current="page"]{color:var(--ivory);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:6px}
@media (max-width:999px){
  .nav{display:none;position:absolute;right:0;top:100%;z-index:10;min-width:240px;background:var(--lacquer-deep);border:1px solid color-mix(in srgb,var(--brass) 38%,transparent);border-radius:14px;padding:8px 6px;box-shadow:0 22px 40px -18px var(--shade)}
  .nav.ouvert{display:block}
  .nav li a{display:block;padding:9px 14px;border-radius:9px}
  .nav li a:hover{background:color-mix(in srgb,var(--ivory) 6%,transparent)}
}
@media (min-width:1000px){
  .menu-btn{display:none}
  .entete-in{min-height:64px}
  .nav ul{display:flex;gap:26px}
}

/* ---------- fil d'Ariane ---------- */
.ariane{padding-inline:var(--gutter)}
.ariane ol{max-width:680px;margin:4px auto 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:2px 0;font-size:.9rem;color:var(--ivory-mute)}
.ariane li+li::before{content:"/";margin-inline:8px;color:color-mix(in srgb,var(--ivory) 30%,transparent)}
.ariane a{color:var(--ivory-mute);text-decoration:none}
.ariane a:hover{color:var(--ivory);text-decoration:underline}

main{display:block;padding-inline:var(--gutter);padding-block:0 64px;overflow-x:hidden;overflow-x:clip}

/* =========================================================
   L'outil : le pendule
   ========================================================= */
.outil{max-width:560px;margin-inline:auto;display:flex;flex-direction:column;text-align:center}
.outil-tete h1{font-size:clamp(2rem,7.8vw,3rem);line-height:1.05;margin:4px 0 0}
.lede{margin:.3em 0 0;color:var(--ivory-dim);font-size:1rem}

.scene{position:relative;width:100%;max-width:min(540px,54svh);margin:-22px auto 0;aspect-ratio:1/.96;container-type:inline-size;pointer-events:none}
.glow{position:absolute;left:-30%;right:-30%;top:8%;bottom:-30%;background:radial-gradient(closest-side,rgb(var(--candle) / .2),rgb(var(--candle) / .07) 46%,transparent 72%);animation:flick 7s ease-in-out infinite}
@keyframes flick{0%,100%{opacity:.92}12%{opacity:1}23%{opacity:.84}31%{opacity:.97}47%{opacity:.88}58%{opacity:1}71%{opacity:.86}86%{opacity:.96}}
.board{
  position:absolute;left:calc(var(--cq,1cqw)*6);top:calc(var(--cq,1cqw)*16);width:calc(var(--cq,1cqw)*88);height:calc(var(--cq,1cqw)*88);border-radius:50%;
  background:radial-gradient(circle at 50% 60%,var(--lacquer-lit) 0%,var(--lacquer) 50%,var(--lacquer-deep) 100%);
  transform:perspective(calc(var(--cq,1cqw)*158.4)) rotateX(54deg);
  box-shadow:0 calc(var(--cq,1cqw)*.8) 0 var(--rim),0 calc(var(--cq,1cqw)*7) calc(var(--cq,1cqw)*9) calc(var(--cq,1cqw)*-1) var(--shade);
}
.board svg,.board canvas{position:absolute;inset:0;width:100%;height:100%;border-radius:50%}
.board canvas{mix-blend-mode:screen}
.dial .r1{fill:none;stroke:var(--brass);stroke-width:3.2}
.dial .r2{fill:none;stroke:var(--brass);stroke-width:1.3;opacity:.75}
.dial .r3{fill:none;stroke:var(--brass);stroke-width:1;opacity:.6}
.dial .dot,.dial .dia{fill:var(--brass)}
.dial .tick{stroke:var(--brass);stroke-width:1.3;opacity:.7}
.dial .ray{stroke:var(--brass);stroke-width:1;opacity:.4}
.dial .star{fill:none;stroke:var(--brass);stroke-width:1.1;opacity:.75}
.dial .moon circle{fill:none;stroke:var(--brass);stroke-width:1;opacity:.6}
.dial .moon path,.dial .moon .full{fill:var(--brass);stroke:none;opacity:.7}
.dial .ax{transition:opacity .7s}
.dial .ax line{stroke:var(--brass);stroke-width:2.4;stroke-linecap:round;transition:stroke .5s,stroke-width .4s}
.dial .ax.dg line{stroke-width:1.7;stroke-dasharray:11 9}
.dial .ax circle{fill:var(--brass);transition:fill .5s}
.dial .ax text{font-family:var(--font-display);fill:var(--brass-hi);transition:fill .5s}
.dial .ax text.big{font-size:58px;letter-spacing:9px}
.dial .ax text.sm{font-size:30px;letter-spacing:4.5px}
.board[data-near="oui"] .ax-oui line,.board[data-near="non"] .ax-non line,.board[data-near="peut"] .ax-peut line,.board[data-near="ref"] .ax-ref line{stroke-width:4.6;stroke:var(--brass-hi)}
.board[data-ans] .ax{opacity:.28}
.board[data-ans="oui"] .ax-oui,.board[data-ans="non"] .ax-non,.board[data-ans="peut"] .ax-peut,.board[data-ans="ref"] .ax-ref{opacity:1}
.board[data-ans="oui"] .ax-oui line{stroke:var(--oui);stroke-width:5}
.board[data-ans="oui"] .ax-oui text,.board[data-ans="oui"] .ax-oui circle{fill:var(--oui)}
.board[data-ans="non"] .ax-non line{stroke:var(--non);stroke-width:5}
.board[data-ans="non"] .ax-non text,.board[data-ans="non"] .ax-non circle{fill:var(--non)}
.board[data-ans="peut"] .ax-peut line{stroke:var(--peut);stroke-width:4}
.board[data-ans="peut"] .ax-peut text,.board[data-ans="peut"] .ax-peut circle{fill:var(--peut)}
.board[data-ans="ref"] .ax-ref line{stroke:var(--ref);stroke-width:4}
.board[data-ans="ref"] .ax-ref text,.board[data-ans="ref"] .ax-ref circle{fill:var(--ref)}
.motes,.rig{position:absolute;inset:0;width:100%;height:100%}
.rig{overflow:hidden;--halo:rgb(var(--candle))}
.no-js .rig,.no-js .motes,.no-js .sound{display:none}
.sound{position:absolute;bottom:calc(var(--cq,1cqw)*1);right:0;pointer-events:auto;font:inherit;font-size:.86rem;color:var(--ivory-mute);background:color-mix(in srgb,var(--night) 70%,transparent);border:1px solid color-mix(in srgb,var(--ivory) 20%,transparent);border-radius:999px;padding:3px 12px;cursor:pointer}
.sound[aria-pressed="true"]{color:var(--brass-dark);background:var(--brass);border-color:var(--brass)}

.verdict{position:absolute;left:0;right:0;top:calc(var(--cq,1cqw)*3);margin:0;font-family:var(--font-display);line-height:1;white-space:nowrap;text-shadow:0 0 .32em color-mix(in srgb,currentColor 55%,transparent)}
.verdict[data-o="oui"]{font-size:calc(var(--cq,1cqw)*27);letter-spacing:.04em;color:var(--oui)}
.verdict[data-o="non"]{font-size:calc(var(--cq,1cqw)*27);letter-spacing:.04em;color:var(--non)}
.verdict[data-o="peut"]{font-size:calc(var(--cq,1cqw)*14.5);top:calc(var(--cq,1cqw)*9);letter-spacing:.05em;color:var(--peut)}
.verdict[data-o="ref"]{font-size:calc(var(--cq,1cqw)*12.6);top:calc(var(--cq,1cqw)*10);letter-spacing:.05em;color:var(--ref)}
.verdict span{display:inline-block;animation:rise .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0)*80ms)}
@keyframes rise{from{opacity:0;transform:translateY(.2em);filter:blur(12px)}to{opacity:1;transform:none;filter:none}}

.sans-js{margin:6px auto 0;max-width:34ch;color:var(--peut)}

/* les temps du rituel */
.steps{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 14px;margin:4px 0 0;padding:0;font-size:.9rem;counter-reset:s}
.steps button{font:inherit;background:none;border:0;border-bottom:1px solid transparent;color:var(--ivory-mute);padding:3px 1px;cursor:pointer}
.steps button::before{counter-increment:s;content:counter(s) ". "}
.steps button:disabled{cursor:default}
.steps button.done{color:var(--ivory-dim)}
.steps button.done:not(:disabled):hover{color:var(--ivory)}
.steps button[aria-current="step"]{color:var(--ivory);border-bottom-color:var(--brass)}

.panel{margin-top:14px;min-height:216px;display:flex;flex-direction:column;align-items:center}
.asked{margin:0 0 6px;font-style:italic;color:var(--ivory-dim);font-size:1.05rem;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.step{width:100%;display:flex;flex-direction:column;align-items:center;animation:stepin .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes stepin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.step h2{font-size:1.34rem;line-height:1.2;margin:0 0 12px}

.bobs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
.bobopt{font:inherit;color:var(--ivory);background:color-mix(in srgb,var(--ivory) 4%,transparent);border:1px solid color-mix(in srgb,var(--brass) 30%,transparent);border-radius:14px;padding:10px 6px 11px;cursor:pointer;display:grid;justify-items:center;gap:1px;transition:border-color .2s,background .2s}
.bobopt svg{width:30px;height:60px;margin-bottom:4px}
.bobopt strong{font-family:var(--font-display);font-weight:400;font-size:1.08rem}
.bobopt span{font-size:.88rem;color:var(--ivory-dim);line-height:1.25}
.bobopt:hover,.bobopt[aria-pressed="true"]{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 13%,transparent)}

.ask{width:100%;max-width:460px}
.ask input{
  width:100%;background:transparent;border:0;border-bottom:1.5px solid color-mix(in srgb,var(--ivory) 40%,transparent);border-radius:0;text-align:center;
  color:var(--ivory);caret-color:var(--brass);font:italic 400 1.36rem/1.3 var(--font-text);padding:4px 0 9px;outline:0;text-overflow:ellipsis;
}
.ask input::placeholder{color:var(--ivory-mute);opacity:1}
.ask input:focus{border-bottom-color:var(--brass);box-shadow:0 1.5px 0 var(--brass)}
.starters{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}
.chip{font:inherit;font-size:.93rem;color:var(--ivory);background:color-mix(in srgb,var(--ivory) 6%,transparent);border:1px solid color-mix(in srgb,var(--ivory) 22%,transparent);border-radius:999px;padding:2px 12px;cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--brass)}
.hint{margin:10px 0 0;color:var(--peut);font-size:.98rem;line-height:1.35;text-wrap:balance}
.btn{display:inline-block;font-family:var(--font-display);font-size:1.08rem;letter-spacing:.03em;color:var(--brass-dark);background:linear-gradient(180deg,var(--brass-hi),var(--brass) 55%,var(--brass-deep));border:0;border-radius:999px;padding:10px 30px;cursor:pointer;margin-top:14px;box-shadow:0 10px 20px -12px var(--shade);text-decoration:none}
.btn:hover{filter:brightness(1.06)}
.note{margin:8px 0 0;font-size:.9rem;color:var(--ivory-mute)}

.status{margin:0 0 4px;font-style:italic;font-size:1.12rem;line-height:1.36;min-height:2.72em;max-width:32ch;text-wrap:balance;display:grid;align-items:center}
.holdwrap{position:relative;width:124px;height:124px;display:grid;place-items:center}
.holdwrap svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.holdwrap .trk{fill:none;stroke:color-mix(in srgb,var(--ivory) 18%,transparent);stroke-width:2}
.holdwrap .prg{fill:none;stroke:var(--ivory);stroke-width:3.5;stroke-linecap:round}
.hold{
  position:relative;width:96px;height:96px;border-radius:50%;border:0;cursor:pointer;
  font-family:var(--font-display);font-size:1.1rem;letter-spacing:.05em;color:var(--brass-dark);
  background:radial-gradient(circle at 34% 26%,var(--brass-hi) 0%,var(--brass) 42%,var(--brass-deep) 100%);
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brass-hi) 60%,transparent),inset 0 0 0 9px color-mix(in srgb,var(--brass-dark) 16%,transparent),inset 0 0 0 10px color-mix(in srgb,var(--brass-hi) 40%,transparent),0 0 34px -6px rgb(var(--candle) / .45),0 12px 22px -10px var(--shade);
  touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:transform .15s,opacity .3s;
}
.hold::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid var(--brass);opacity:0;animation:call 3s ease-out infinite;pointer-events:none}
@keyframes call{0%{transform:scale(.88);opacity:.55}100%{transform:scale(1.22);opacity:0}}
.hold.is-down{transform:scale(.96)}
.hold.is-busy{cursor:default;opacity:.5}
.hold.is-down::after,.hold.is-busy::after{animation:none}
.hold:focus-visible{outline-offset:18px}

.answer{margin:0;font-style:italic;font-size:1.16rem;line-height:1.4;max-width:34ch;text-wrap:balance}
.again{font:inherit;font-size:1.04rem;color:var(--ivory);background:transparent;border:1.5px solid color-mix(in srgb,var(--ivory) 70%,transparent);border-radius:999px;padding:9px 24px;cursor:pointer;margin-top:14px;white-space:nowrap}
.again:hover{background:var(--ivory);color:var(--night)}

.log{width:100%;margin-top:22px;text-align:left}
.log h3{font-family:var(--font-text);font-weight:400;font-size:.92rem;color:var(--ivory-mute);margin:0 0 4px;letter-spacing:0}
.log ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.log li{display:flex;justify-content:space-between;gap:16px;color:var(--ivory-dim);font-size:.98rem}
.log li i{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.log li b{font-weight:500;color:var(--ivory);flex:none}

/* ---------- carte de consultation ---------- */
.carte{width:100%;margin:26px auto 0;max-width:560px;padding:22px 20px 18px;border-radius:16px;border:1px solid color-mix(in srgb,var(--brass) 42%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--lacquer-lit) 55%,transparent),color-mix(in srgb,var(--lacquer) 80%,transparent));box-shadow:0 24px 40px -26px var(--shade);text-align:center}
.carte h2{font-size:1.46rem;line-height:1.18;margin:0}
.carte>p{margin:.5em auto 0;color:var(--ivory-dim);max-width:40ch}
.carte .carte-info{font-size:.88rem;color:var(--ivory-mute);margin-top:10px}
.tel{display:flex;flex-direction:column;align-items:center;margin:14px 0 0}
.tel-num{font-family:var(--font-display);font-size:1.7rem;letter-spacing:.03em;color:var(--brass-dark);background:linear-gradient(180deg,var(--brass-hi),var(--brass) 55%,var(--brass-deep));padding:7px 24px;border-radius:999px;text-decoration:none;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.tel-num:hover{filter:brightness(1.06)}
.tel small{font-size:.86rem;color:var(--ivory-mute);margin-top:7px}
.carte .carte-alt{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 22px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);max-width:none}
.carte-alt a{color:var(--ivory)}

/* =========================================================
   Pages de texte
   ========================================================= */
.prose{max-width:680px;margin-inline:auto;text-align:left}
.outil+.prose{margin-top:44px;padding-top:36px;border-top:1px solid var(--line)}
.prose .exemples,.prose .legende,.prose .themes,.prose .questions-liste,.prose .mouvements,.prose .planches,.prose .trio{padding-left:0}
.page-tete{max-width:680px;margin:18px auto 0}
.page-tete h1{font-size:clamp(2rem,7vw,2.8rem);line-height:1.08;margin:0}
.page-tete .intro{font-size:1.14rem;line-height:1.55;color:var(--ivory);margin:.8em 0 0}
.prose h2{font-size:1.5rem;margin:2.1em 0 .5em}
.prose h3{font-size:1.18rem;margin:1.6em 0 .4em}
.prose p,.prose li{line-height:1.62}
.prose p{margin:.75em 0}
.prose ul,.prose ol{padding-left:1.25em;margin:.75em 0}
.prose li{margin:.3em 0}
.prose li::marker{color:var(--brass)}
.prose strong{font-weight:600;color:var(--ivory)}
.prose .chapo{font-size:1.14rem}
.prose blockquote{margin:1.2em 0;padding:.2em 0 .2em 18px;border-left:2px solid var(--brass);font-style:italic;color:var(--ivory-dim)}
.table-wrap{overflow-x:auto;margin:1.1em 0;border:1px solid color-mix(in srgb,var(--brass) 30%,transparent);border-radius:12px}
.prose table{border-collapse:collapse;width:100%;font-size:.98rem;min-width:440px}
.prose th,.prose td{text-align:left;vertical-align:top;padding:10px 14px;border-bottom:1px solid var(--line)}
.prose th{font-family:var(--font-display);font-weight:400;color:var(--brass-hi);background:color-mix(in srgb,var(--lacquer-lit) 40%,transparent)}
.prose tr:last-child td{border-bottom:0}
.encart{margin:1.4em 0;padding:16px 18px;border-radius:14px;background:color-mix(in srgb,var(--lacquer-lit) 45%,transparent);border:1px solid color-mix(in srgb,var(--brass) 30%,transparent)}
.encart>:first-child{margin-top:0}.encart>:last-child{margin-bottom:0}
.maj{margin-top:2.4em;font-size:.9rem;color:var(--ivory-mute)}
.sources{font-size:.95rem}
.sources li{line-height:1.45}

/* légende du cadran */
.legende{list-style:none;margin:1em 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 24px}
.legende li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start;margin:0}
.legende svg{width:44px;height:44px}
.legende svg circle{fill:none;stroke:var(--ivory-mute);stroke-width:1.2}
.legende svg line{stroke:var(--brass);stroke-width:2.6;stroke-linecap:round}
.legende strong{font-family:var(--font-display);font-weight:400;font-size:1.1rem;display:block}
.legende span{color:var(--ivory-dim);font-size:.98rem;line-height:1.45;display:block}

/* exemples de questions cliquables */
.exemples{list-style:none;padding:0;margin:1em 0;display:grid;gap:6px}
.exemples li{margin:0}
.exemples a{display:block;padding:8px 14px;border-radius:10px;border:1px solid var(--line);text-decoration:none;color:var(--ivory);font-style:italic;background:color-mix(in srgb,var(--ivory) 3%,transparent)}
.exemples a:hover{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 10%,transparent)}
.themes{list-style:none;margin:1em 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.themes a{display:inline-block;padding:3px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ivory) 22%,transparent);text-decoration:none;color:var(--ivory);font-size:.95rem}
.themes a:hover{border-color:var(--brass)}
.questions-liste{counter-reset:qn;list-style:none;padding:0;margin:.8em 0 0;display:grid;gap:4px}
.questions-liste li{margin:0}
.questions-liste a{display:grid;grid-template-columns:2.6em minmax(0,1fr);gap:6px;padding:7px 10px;border-radius:9px;text-decoration:none;color:var(--ivory)}
.questions-liste a::before{content:attr(data-n);color:var(--brass);font-family:var(--font-display);font-variant-numeric:tabular-nums}
.questions-liste a:hover{background:color-mix(in srgb,var(--brass) 10%,transparent)}

/* pendules illustrés */
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:1.2em 0}
.trio figure{margin:0;padding:14px 8px;border:1px solid var(--line);border-radius:14px;text-align:center}
.trio svg{width:40px;height:80px}
.trio figcaption{font-family:var(--font-display);font-size:1.02rem;margin-top:6px}

/* mouvements du pendule */
.mouvements{list-style:none;margin:1em 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.mouvements li{margin:0;padding:14px;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center}
.mouvements svg{width:52px;height:52px}
.mouvements svg circle{fill:none;stroke:var(--ivory-mute);stroke-width:1.2}
.mouvements svg .m{fill:none;stroke:var(--brass);stroke-width:2.4;stroke-linecap:round}
.mouvements strong{font-family:var(--font-display);font-weight:400;font-size:1.05rem;display:block}
.mouvements span{color:var(--ivory-dim);font-size:.95rem;line-height:1.4;display:block}

/* planches à télécharger */
.planches{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin:1.2em 0}
.planche{display:flex;flex-direction:column;padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--brass) 32%,transparent);background:color-mix(in srgb,var(--lacquer) 70%,transparent)}
.planche img{display:block;width:100%;height:auto;aspect-ratio:210/297;object-fit:contain;background:#fff;border-radius:6px}
.planche h3{margin:14px 0 4px;font-size:1.2rem}
.planche p{margin:0 0 12px;color:var(--ivory-dim);font-size:.98rem;line-height:1.45}
.planche .btn{margin-top:auto;align-self:flex-start;font-size:1rem;padding:9px 22px}
.planche small{display:block;margin-top:8px;color:var(--ivory-mute);font-size:.85rem}
.recueil{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.recueil .btn{margin-top:0}

/* FAQ */
.faq{margin-top:2.4em}
.faq h2{margin-bottom:.6em}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:14px 32px 14px 0;position:relative;font-family:var(--font-display);font-size:1.12rem;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:9px;height:9px;border-right:1.5px solid var(--brass);border-bottom:1.5px solid var(--brass);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .faq-r{padding:0 0 12px}
.faq .faq-r p{margin:.2em 0 .7em}

.prose .carte{margin-top:2.6em}

/* ---------- formulaire ---------- */
.form{display:grid;gap:16px;margin:1.4em 0}
.champ{display:grid;gap:5px}
.champ label,.champ .lib{font-family:var(--font-display);font-size:1.02rem}
.champ .aide{font-size:.9rem;color:var(--ivory-mute)}
.champ input[type=text],.champ input[type=email],.champ input[type=date],.champ select,.champ textarea{
  width:100%;font:inherit;font-size:1.02rem;color:var(--ivory);background:color-mix(in srgb,var(--night-deep) 60%,transparent);
  border:1px solid color-mix(in srgb,var(--ivory) 28%,transparent);border-radius:10px;padding:10px 12px;
}
.champ textarea{min-height:150px;resize:vertical;line-height:1.5}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:0;border-color:var(--brass);box-shadow:0 0 0 2px color-mix(in srgb,var(--brass) 35%,transparent)}
.champ [aria-invalid="true"]{border-color:var(--non)}
.erreur{color:var(--non);font-size:.95rem;margin:0}
.accord{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-size:.95rem;line-height:1.45;color:var(--ivory-dim)}
.accord input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--brass)}
.piege{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form .btn{justify-self:start;margin-top:4px}
.alerte{padding:14px 16px;border-radius:12px;border:1px solid var(--non);color:var(--ivory);background:color-mix(in srgb,var(--non) 10%,transparent)}
.succes{padding:18px;border-radius:14px;border:1px solid var(--oui);background:color-mix(in srgb,var(--oui) 8%,transparent)}
.succes h2{margin-top:0}

/* ---------- 404 ---------- */
.perdu{max-width:560px;margin:24px auto 0;text-align:center}
.perdu svg.dial{width:min(320px,80vw);height:auto;margin:10px auto 0;display:block;background:radial-gradient(circle at 50% 60%,var(--lacquer-lit) 0%,var(--lacquer) 50%,var(--lacquer-deep) 100%);border-radius:50%}
.perdu h1{font-size:clamp(1.8rem,6vw,2.4rem);margin:0 auto .4em}
.perdu ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px}

/* ---------- pied de page ---------- */
.pied{padding-inline:var(--gutter);padding-block:40px 32px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--night-deep) 60%,transparent)}
.pied-in{max-width:1120px;margin-inline:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:26px 32px}
.pied p,.pied li{font-size:.94rem;color:var(--ivory-dim)}
.pied-nom{font-family:var(--font-display);font-size:1.12rem;color:var(--ivory)!important;margin:0 0 6px}
.pied-marque p:last-child{margin:0}
.pied-titre{font-family:var(--font-display);color:var(--brass-hi)!important;font-size:1rem!important;margin:0 0 8px}
.pied ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pied a{color:var(--ivory-dim);text-decoration:none}
.pied a:hover{color:var(--ivory);text-decoration:underline}
.pied-bas{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}
.pied-bas p{margin:.3em 0;color:var(--ivory-mute)}
.pied-bas a{text-decoration:underline}

@media (min-width:700px){
  body{font-size:18px}
  .panel{min-height:230px}
  .holdwrap{width:132px;height:132px}
  .hold{width:104px;height:104px}
  :root{--gutter:28px}
}
@media (prefers-reduced-motion:reduce){
  .glow,.hold::after,.verdict span,.step,.carte{animation:none}
  html{scroll-behavior:auto}
}
