
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

:root {
  --nuit: #0F1219;
  --lune: #E9E4D6;
  --lune-doux: #A9A597;
  --washi: #DDD5C3;
  --sumi: #1A1917;
  --sumi-bleu: #1F2738;
  --shu: #B3352A;
  --shu-sombre: #7E2119;
  --tissu: #1B2233;
  --serif: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", Georgia, serif;
  --pinceau: "Yuji Boku", "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color-scheme: dark;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
html { scroll-padding-top: env(safe-area-inset-top, 0px); background: var(--nuit); overflow-x: clip; }
body {
  margin: 0; min-height: 100vh; overflow-x: clip;
  font-family: var(--serif); font-size: 1rem; line-height: 1.65;
  color: var(--lune);
  background: linear-gradient(180deg, #0C0F15 0%, #151B27 42%, #252C3B 74%, #171C26 100%) fixed;
}
:focus-visible { outline: 2px solid var(--lune); outline-offset: 3px; }
.paysage { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.grain {
  position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: .6;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%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 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
.visuellement-cache {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; margin: -1px; padding: 0; border: 0;
}
.conteneur { max-width: 1140px; margin: 0 auto; padding: 0 clamp(1.1rem, 4vw, 2.5rem); }
.page { position: relative; z-index: 1; padding-bottom: 6rem; }

/* Bandeau frontal : tissu + plaque de métal */
.bandeau {
  position: relative; z-index: 2; margin-top: 1.9rem;
  background-color: var(--tissu);
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,.035) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(-45deg, rgba(0,0,0,.2) 0 1px, transparent 1px 4px),
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 40%, rgba(0,0,0,.28));
  box-shadow: 0 10px 24px rgba(0,0,0,.45);
}
.bandeau::before, .bandeau::after {
  content: ""; position: absolute; left: 0; right: 0; pointer-events: none;
  border-top: 1px dashed rgba(233,228,214,.16);
}
.bandeau::before { top: 5px; }
.bandeau::after { bottom: 5px; }
.bandeau .conteneur { height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.marque {
  display: flex; align-items: center; gap: 1rem;
  padding: 0; background: none; border: 0; cursor: pointer; text-align: left;
  color: var(--lune); font: 700 1.12rem var(--serif); letter-spacing: .02em;
}
.plaque-front {
  position: relative; flex: none;
  display: grid; place-items: center;
  width: 112px; height: 74px; margin: -7px 0;
  border-radius: 7px;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 3px),
    linear-gradient(165deg, #D2D8DC 0%, #8F989F 40%, #BAC2C8 58%, #69717A 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65), inset 0 -2px 0 rgba(0,0,0,.3), 0 6px 14px rgba(0,0,0,.55);
}
.plaque-front::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background:
    radial-gradient(circle at 9px 9px, #F3F6F7 0 1.2px, #6E767C 2px 3px, transparent 3.8px),
    radial-gradient(circle at calc(100% - 9px) 9px, #F3F6F7 0 1.2px, #6E767C 2px 3px, transparent 3.8px),
    radial-gradient(circle at 9px calc(100% - 9px), #F3F6F7 0 1.2px, #6E767C 2px 3px, transparent 3.8px),
    radial-gradient(circle at calc(100% - 9px) calc(100% - 9px), #F3F6F7 0 1.2px, #6E767C 2px 3px, transparent 3.8px);
}
.plaque-front svg { width: 50px; height: 50px; filter: drop-shadow(0 1px 0 rgba(255,255,255,.55)); }
.lien-entete {
  padding: .25rem 0; background: none; border: 0; cursor: pointer;
  font: 500 1rem var(--serif); color: var(--lune-doux);
  text-decoration: underline; text-underline-offset: 4px; white-space: nowrap;
}
.lien-entete:hover { color: var(--lune); }
.bandeau-demo {
  margin: 1.4rem 0 0; padding: .5rem .85rem;
  font-size: .92rem; color: #D2B27A;
  border-left: 2px solid #C58B3A; background: rgba(197,139,58,.08);
}

/* Disposition */
.disposition {
  display: grid; grid-template-columns: minmax(230px, 310px) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem); align-items: start;
  margin-top: clamp(2.2rem, 5vw, 3.6rem);
}
.intro { position: sticky; top: 2rem; }
.kanji-titre { font-family: var(--pinceau); font-size: clamp(3.4rem, 6vw, 4.8rem); line-height: 1; color: var(--shu); margin-bottom: .5rem; }
.intro h1 { margin: 0 0 1rem; font-weight: 800; font-size: clamp(2.1rem, 4.2vw, 3.1rem); line-height: 1.08; }
.intro > p { margin: 0 0 2rem; color: var(--lune-doux); line-height: 1.85; }
.etapes { list-style: none; margin: 0; padding: 0; }
.etapes li {
  display: grid; grid-template-columns: 2.6rem minmax(0, 1fr);
  padding: .95rem 0; border-top: 1px solid rgba(233,228,214,.13);
  transition: opacity .4s;
}
.etapes .k { font-family: var(--pinceau); font-size: 1.7rem; line-height: 1; color: var(--shu); }
.etapes strong { display: block; font-weight: 700; font-size: 1.08rem; }
.etapes span.t { font-size: .93rem; line-height: 1.65; color: var(--lune-doux); }
.etapes li.fait { opacity: .35; }
.etapes li.fait strong { text-decoration: line-through; text-decoration-thickness: 1px; }

.memoire-depot { margin-bottom: 1.2rem; color: var(--lune-doux); font-size: .9rem; }
.memoire-depot p { margin: 0 0 .35rem; }
.memoire-depot .bouton-texte { text-align: left; white-space: normal; }

/* Rouleau de mission */
.rouleau { position: relative; }
.baton {
  position: relative; z-index: 2;
  height: 24px; margin: 0 -6px; border-radius: 12px;
  background: linear-gradient(180deg, #4C3831 0%, #24170F 42%, #110A07 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 8px 16px rgba(0,0,0,.5);
}
.baton::before, .baton::after {
  content: ""; position: absolute; top: -5px; width: 20px; height: 34px; border-radius: 4px;
  background: linear-gradient(90deg, #5E666D, #D8DDE0 45%, #8A939A 70%, #464D54);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.4), 0 3px 6px rgba(0,0,0,.4);
}
.baton::before { left: -6px; }
.baton::after { right: -6px; }
.baton.bas { transition: transform .8s cubic-bezier(.6,0,.3,1); }

.papier {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: clamp(1rem, 3.5vw, 2.25rem);
  margin: 0 6px;
  padding: clamp(2rem, 5vw, 3rem) clamp(1.2rem, 4.5vw, 3rem) clamp(1.6rem, 4vw, 2.4rem);
  color: var(--sumi);
  background-color: var(--washi);
  background-image:
    radial-gradient(ellipse 45% 30% at 0% 100%, rgba(60,48,32,.2), transparent 70%),
    radial-gradient(ellipse 35% 25% at 100% 0%, rgba(60,48,32,.14), transparent 70%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .3' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .38 0 0 0 0 .31 0 0 0 0 .22 0 0 0 .15 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .2 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  box-shadow: inset 0 0 60px rgba(70,55,35,.25), 0 26px 54px rgba(0,0,0,.55);
  clip-path: inset(0 0 0 0);
  transition: clip-path .8s cubic-bezier(.6,0,.3,1);
}
.papier :focus-visible { outline-color: var(--sumi); }
.roule .papier { clip-path: inset(0 0 100% 0); }
.roule .baton.bas { transform: translateY(calc(-1 * var(--h, 900px))); }

.texte { grid-column: 1; grid-row: 1; min-width: 0; }
.marge { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; align-items: center; gap: 1.3rem; }
.kanji-col { display: flex; flex-direction: column; align-items: center; font-family: var(--pinceau); font-size: clamp(2.4rem, 5.2vw, 3.5rem); line-height: 1.04; color: var(--sumi); }
.petit-sceau {
  display: grid; place-items: center; width: 2.6rem; height: 2.6rem;
  color: var(--shu); border: 3px solid var(--shu); border-radius: 4px;
  font-family: var(--pinceau); font-size: 1.5rem; line-height: 1;
  transform: rotate(4deg); filter: url(#encre-rugueuse); opacity: .9;
}

.doc-tete {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem 1rem;
  padding-bottom: .9rem; margin-bottom: 1.5rem;
  border-bottom: 2px solid var(--sumi);
  font-weight: 700; font-size: .98rem; letter-spacing: .02em;
}
.plaquette {
  display: inline-block; padding: .28rem .75rem; border-radius: 3px;
  font-weight: 700; font-size: .9rem; letter-spacing: .04em; font-variant-numeric: tabular-nums;
  color: #23292E; text-shadow: 0 1px 0 rgba(255,255,255,.5);
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 3px),
    linear-gradient(165deg, #CDD3D7, #8F989F 50%, #A9B1B7);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 1px 2px rgba(0,0,0,.35);
}
.papier h2 { margin: 0 0 .6rem; font-weight: 800; font-size: clamp(1.7rem, 3.4vw, 2.35rem); line-height: 1.12; }
.preambule { margin: 0 0 1.4rem; max-width: 60ch; line-height: 1.75; color: rgba(26,25,23,.78); }

.article { display: grid; grid-template-columns: 2.8rem minmax(0, 1fr); padding: 1.1rem 0 1.25rem; border-top: 1px solid rgba(26,25,23,.18); }
fieldset.article { margin: 0; min-width: 0; border-width: 1px 0 0; border-style: solid; border-color: rgba(26,25,23,.18); }
.num { font-family: var(--pinceau); font-size: 1.75rem; line-height: 1; color: var(--shu); }
.art-titre { display: block; margin: 0 0 .45rem; padding: 0; font-weight: 700; font-size: 1.12rem; line-height: 1.5; }
legend.art-titre { float: left; width: 100%; }
.duo { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1rem 1.5rem; }
.sous { display: block; margin-bottom: .1rem; font-style: italic; font-size: .9rem; color: rgba(26,25,23,.62); }
.trait {
  width: 100%; font: 500 1.1rem var(--serif); color: var(--sumi-bleu);
  background: transparent; border: 0; border-radius: 0;
  border-bottom: 1px solid rgba(26,25,23,.45); padding: .35rem .15rem;
}
.trait::placeholder { color: rgba(26,25,23,.34); font-style: italic; }
.trait:focus { outline: none; border-bottom: 2px solid var(--sumi); padding-bottom: calc(.35rem - 1px); background: rgba(26,25,23,.04); }
.trait[aria-invalid="true"] { border-bottom: 2px solid var(--shu); padding-bottom: calc(.35rem - 1px); background: rgba(179,53,42,.06); }
select.trait {
  appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 1.5rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231A1917' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right .2rem center / .7rem;
}
select.trait option { color: var(--sumi); background: var(--washi); }

.classes { clear: both; display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.classe { position: relative; cursor: pointer; }
.classe input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.classe span {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
  font-family: var(--serif); font-weight: 800; font-size: 1.3rem; line-height: 1;
  border: 1.5px solid rgba(26,25,23,.5);
  transition: background-color .15s, color .15s, transform .15s;
}
.classe input:checked + span {
  background: var(--shu); border-color: var(--shu); color: var(--washi);
  box-shadow: inset 0 0 0 3px var(--shu), inset 0 0 0 4.5px rgba(221,213,195,.6);
  transform: rotate(-4deg);
}
.classe input:focus-visible + span { outline: 2px solid var(--sumi); outline-offset: 3px; }
.classe-aide { margin: 0 0 0 .6rem; font-style: italic; color: rgba(26,25,23,.72); }

.conditions {
  display: block; width: 100%; min-height: 10rem;
  font: 500 1.05rem var(--serif); line-height: 2rem; color: var(--sumi-bleu);
  padding: 0 .2rem; border: 0; border-radius: 0; resize: vertical;
  background: repeating-linear-gradient(180deg, transparent 0 calc(2rem - 1px), rgba(26,25,23,.2) calc(2rem - 1px) 2rem);
  background-attachment: local;
}
.conditions::placeholder { color: rgba(26,25,23,.34); font-style: italic; }
.conditions:focus { outline: none; background-color: rgba(26,25,23,.035); }
.conditions[aria-invalid="true"] { box-shadow: inset 3px 0 0 var(--shu); }

.prime { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem .8rem; }
#f-prime { width: 10ch; font-size: 1.45rem; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.devise { font-weight: 700; font-size: 1.2rem; }
.prime-note { font-style: italic; font-size: .95rem; color: rgba(26,25,23,.65); }

.clauses { margin: .5rem 0 0; padding-top: 1rem; border-top: 2px solid var(--sumi); font-size: .88rem; line-height: 1.7; color: rgba(26,25,23,.74); }
.piege { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.erreur-doc { min-height: 1.5em; margin: 1rem 0 0; font-weight: 700; color: var(--shu); }
.signature { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 1.25rem 2rem; margin-top: .9rem; }
.signe { flex: 1 1 12rem; max-width: 18rem; }
.signe-nom {
  display: block; min-height: 2.3rem; padding: .2rem .1rem;
  border-bottom: 1px solid rgba(26,25,23,.55);
  font-style: italic; font-weight: 500; font-size: 1.3rem; color: var(--sumi-bleu);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.signe-nom:empty::before { content: "\00a0"; }
.sceller {
  margin-left: auto;
  display: inline-flex; align-items: center; gap: .8rem;
  padding: .65rem 1.4rem .65rem .65rem;
  font: 700 1.1rem var(--serif); letter-spacing: .02em;
  color: #F2E9DC; background: var(--shu);
  border: 0; border-radius: 3px; cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(242,233,220,.2), 0 2px 0 var(--shu-sombre), 0 10px 22px rgba(80,15,8,.3);
  transition: background-color .15s, transform .1s;
}
.sceller:hover { background: #C23C30; }
.sceller:active { transform: translateY(2px); }
.sceller:disabled { cursor: progress; opacity: .85; }
.sceller-marque {
  display: grid; place-items: center; width: 2.3rem; height: 2.3rem;
  border: 1.5px solid rgba(242,233,220,.75);
  font-family: var(--pinceau); font-size: 1.45rem; line-height: 1;
}

/* Scellement : cercle de sceau et tampon */
.fuin {
  position: absolute; left: 50%; top: 50%; z-index: 4;
  width: min(78%, 380px); height: auto; aspect-ratio: 1;
  transform: translate(-50%, -50%) rotate(-8deg);
  opacity: 0; pointer-events: none; mix-blend-mode: multiply;
}
.fuin .trace { fill: none; stroke: var(--sumi); stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.fuin .kc { font-family: var(--pinceau); font-size: 30px; fill: var(--sumi); text-anchor: middle; dominant-baseline: central; opacity: 0; }
.fuin.actif { opacity: 1; animation: tourne 1.1s cubic-bezier(.3,.6,.3,1) forwards; }
.fuin.actif .trace { animation: tracer .85s cubic-bezier(.6,0,.35,1) forwards; }
.fuin.actif .trace:nth-of-type(2) { animation-delay: .1s; }
.fuin.actif .trace:nth-of-type(3) { animation-delay: .2s; }
.fuin.actif .trace:nth-of-type(4) { animation-delay: .3s; }
.fuin.actif .kc { animation: apparait .25s forwards; animation-delay: calc(.35s + var(--i) * .06s); }
@keyframes tracer { to { stroke-dashoffset: 0; } }
@keyframes apparait { to { opacity: 1; } }
@keyframes tourne { from { transform: translate(-50%, -50%) rotate(-40deg) scale(1.06); } to { transform: translate(-50%, -50%) rotate(-8deg) scale(1); } }
.tampon {
  position: absolute; left: 50%; top: 50%; z-index: 5;
  width: 7rem; height: 7rem; margin: -3.5rem 0 0 -3.5rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-family: var(--pinceau); font-size: 2.6rem; line-height: 1.05;
  color: var(--shu); border: 5px solid var(--shu); border-radius: 6px;
  opacity: 0; transform: scale(2) rotate(-12deg);
  mix-blend-mode: multiply; pointer-events: none; filter: url(#encre-rugueuse);
}
.tampon.frappe { animation: frappe .32s cubic-bezier(.25,.7,.35,1.2) forwards; }
@keyframes frappe {
  0% { opacity: 0; transform: scale(2) rotate(-12deg); }
  70% { opacity: .95; transform: scale(.95) rotate(-6deg); }
  100% { opacity: .9; transform: scale(1) rotate(-6deg); }
}

/* Reçu : l'annonce au tableau */
.recu { opacity: 0; translate: 0 10px; transition: opacity .5s, translate .5s cubic-bezier(.2,.7,.3,1); }
.recu.visible { opacity: 1; translate: 0 0; }
.recu h2 { margin: 0 0 .6rem; font-weight: 800; font-size: clamp(1.9rem, 4vw, 2.6rem); line-height: 1.1; }
.recu > p { margin: 0; max-width: 58ch; color: var(--lune-doux); line-height: 1.85; }
.tableau {
  position: relative; overflow: hidden;
  margin: 1.8rem 0 1.6rem;
  padding: clamp(3rem, 7vw, 4rem) clamp(1.2rem, 5vw, 3.5rem) clamp(2rem, 5vw, 3rem);
  border: 10px solid #1E140E; border-radius: 2px;
  background-color: #4A3526;
  background-image:
    repeating-linear-gradient(180deg, transparent 0 calc(25% - 2px), rgba(0,0,0,.5) calc(25% - 2px) 25%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='300'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004 .09' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .07 0 0 0 0 .04 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E"),
    linear-gradient(180deg, #54402F, #3B2A1E);
  box-shadow: inset 0 0 50px rgba(0,0,0,.6), 0 22px 44px rgba(0,0,0,.5), 0 0 0 1px #0E0906;
}
.vestige { position: absolute; background: rgba(221,213,195,.09); box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.vestige.v1 { width: 20%; height: 38%; right: 6%; top: 10%; transform: rotate(4deg); }
.vestige.v2 { width: 16%; height: 30%; left: 5%; bottom: 8%; transform: rotate(-3deg); }
.annonce {
  position: relative; max-width: 31rem; margin: 0 auto;
  padding: 2.4rem 1.9rem 1.4rem;
  color: var(--sumi);
  background-color: var(--washi);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .2 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  box-shadow: inset 0 0 30px rgba(70,55,35,.2), 0 12px 22px rgba(0,0,0,.5), 0 2px 4px rgba(0,0,0,.4);
  transform: rotate(-1.2deg);
}
.kunai {
  position: absolute; top: -4rem; left: 50%; width: 34px; height: 120px; margin-left: -17px;
  transform: rotate(20deg); filter: drop-shadow(4px 6px 3px rgba(0,0,0,.5));
}
.phrase { margin: 0; text-align: center; font-weight: 700; font-size: clamp(1.25rem, 3vw, 1.7rem); line-height: 1.55; }
.annonce-ref { margin: 1.3rem 0 0; text-align: center; font-size: .88rem; letter-spacing: .05em; color: rgba(26,25,23,.58); font-variant-numeric: tabular-nums; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }
.bouton-clair {
  font: 700 1.05rem var(--serif); padding: .65rem 1.4rem; border-radius: 3px; cursor: pointer;
  color: var(--sumi); background: var(--lune); border: 0; box-shadow: 0 2px 0 #8F8A7D;
  transition: background-color .15s, transform .1s;
}
.bouton-clair:hover { background: #F4F0E6; }
.bouton-clair:active { transform: translateY(2px); }
.bouton-clair:disabled { opacity: .6; cursor: progress; }
.bouton-texte {
  font: 500 1rem var(--serif); cursor: pointer; padding: .3rem 0;
  color: var(--lune-doux); background: none; border: 0; text-decoration: underline; text-underline-offset: 4px;
}
.bouton-texte:hover { color: var(--lune); }

/* Espace guilde */
.guilde { margin-top: clamp(2.2rem, 5vw, 3.6rem); }
.plaque {
  position: relative; max-width: 460px; margin: 0 auto;
  padding: clamp(1.8rem, 5vw, 2.6rem);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004 .8' 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(%23b)'/%3E%3C/svg%3E"),
    linear-gradient(170deg, #30343A, #22252A 60%, #1C1E22);
  border: 1px solid #0C0D0E; border-radius: 4px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 30px 60px rgba(0,0,0,.5);
}
.plaque::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(circle at 14px 14px, #858B90 0 1.5px, #3A3E43 2.5px 3.5px, rgba(0,0,0,.6) 4px, transparent 5px),
    radial-gradient(circle at calc(100% - 14px) 14px, #858B90 0 1.5px, #3A3E43 2.5px 3.5px, rgba(0,0,0,.6) 4px, transparent 5px),
    radial-gradient(circle at 14px calc(100% - 14px), #858B90 0 1.5px, #3A3E43 2.5px 3.5px, rgba(0,0,0,.6) 4px, transparent 5px),
    radial-gradient(circle at calc(100% - 14px) calc(100% - 14px), #858B90 0 1.5px, #3A3E43 2.5px 3.5px, rgba(0,0,0,.6) 4px, transparent 5px);
}
.plaque h2 { margin: 0 0 .5rem; font-weight: 800; font-size: 1.9rem; line-height: 1.1; }
.plaque > p { margin: 0 0 1.2rem; color: var(--lune-doux); }
.plaque label { display: block; margin: 1.1rem 0 .35rem; font-weight: 500; }
.saisie {
  width: 100%; padding: .7rem .85rem;
  font: 500 1.05rem var(--serif); color: var(--lune);
  background: #141618; border: 1px solid #0B0C0D; border-radius: 2px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.6), 0 1px 0 rgba(255,255,255,.06);
}
.saisie:focus { outline: 1px solid var(--lune-doux); }
.plaque .bouton-clair { width: 100%; margin-top: 1.6rem; }
.erreur-plaque { min-height: 1.5em; margin: 1rem 0 0; font-weight: 700; color: #E0776B; }

.registre-tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.6rem; }
.registre-tete .kanji-titre { font-size: clamp(2.6rem, 5vw, 3.4rem); margin-bottom: .3rem; }
.registre-tete h1 { margin: 0; font-weight: 800; font-size: clamp(2rem, 4.4vw, 2.9rem); line-height: 1.05; }
.compte { margin: .5rem 0 0; color: var(--lune-doux); }
.registre-boutons { display: flex; gap: .6rem; flex-wrap: wrap; }
.registre-boutons button {
  font: 500 .98rem var(--serif); padding: .45rem 1rem; cursor: pointer; border-radius: 3px;
  color: var(--lune); background: rgba(15,18,25,.5); border: 1px solid rgba(233,228,214,.28);
}
.registre-boutons button:hover { border-color: var(--lune-doux); }
.recherche {
  width: 100%; padding: .75rem .9rem;
  font: 500 1.05rem var(--serif); color: var(--lune);
  background: rgba(10,12,17,.6); border: 1px solid rgba(233,228,214,.16); border-radius: 3px;
}
.recherche::placeholder { color: rgba(233,228,214,.4); }
.filtres { display: flex; flex-wrap: wrap; gap: 0 1.4rem; margin: 1rem 0 1.5rem; border-bottom: 1px solid rgba(233,228,214,.12); }
.filtre {
  font: 500 1rem var(--serif); cursor: pointer; padding: .5rem 0; margin-bottom: -1px;
  color: var(--lune-doux); background: none; border: 0; border-bottom: 2px solid transparent;
}
.filtre:hover { color: var(--lune); }
.filtre[aria-pressed="true"] { color: var(--lune); border-bottom-color: var(--shu); }
.etat-registre { margin: 0 0 1rem; color: var(--lune-doux); }
.etat-registre:empty { display: none; }
.erreur-registre { margin: 0 0 1rem; font-weight: 700; color: #E0776B; }
.erreur-registre:empty { display: none; }

.liste { list-style: none; margin: 0; padding: 0; }
.contrat {
  --c: #7A776F;
  display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .8rem 1.6rem;
  padding: 1.4rem 1.4rem 1.4rem 1.2rem;
  color: var(--sumi);
  background-color: var(--washi);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  border-left: 6px solid var(--c);
  box-shadow: inset 0 0 30px rgba(70,55,35,.15), 0 10px 20px rgba(0,0,0,.4);
}
.contrat + .contrat { margin-top: .9rem; }
.s-nouveau { --c: #C58B3A; }
.s-accepte { --c: #4F6B58; }
.s-en_cours { --c: var(--shu); }
.s-refuse { --c: #5C4B47; }
.s-termine { --c: #7A776F; }
.s-refuse .contrat-corps, .s-termine .contrat-corps { opacity: .62; }
.badge {
  display: grid; place-items: center; width: 2.8rem; height: 2.8rem;
  font-family: var(--serif); font-weight: 800; font-size: 1.35rem; line-height: 1;
  border: 1.5px solid rgba(26,25,23,.5);
}
.c-A { color: var(--shu); border-color: var(--shu); }
.c-S { color: var(--washi); background: var(--shu); border-color: var(--shu); }
.contrat-corps { min-width: 0; }
.contrat h3 { margin: 0 0 .25rem; font-weight: 800; font-size: 1.25rem; line-height: 1.3; overflow-wrap: anywhere; }
.contrat-meta { margin: 0 0 .85rem; font-size: .93rem; color: rgba(26,25,23,.64); }
.contrat-conditions { margin: 0 0 1rem; max-width: 70ch; font-size: .98rem; line-height: 1.75; white-space: pre-line; overflow-wrap: anywhere; }
.contrat-phrase { margin: 0; padding-top: .8rem; border-top: 1px dashed rgba(26,25,23,.25); font-style: italic; overflow-wrap: anywhere; }
.contrat-ref { display: block; margin-top: .2rem; font-style: normal; font-size: .88rem; letter-spacing: .04em; color: rgba(26,25,23,.58); }
.contrat-cote { display: flex; flex-direction: column; align-items: flex-end; gap: .7rem; text-align: right; }
.contrat-prime { margin: 0; font-weight: 800; font-size: 1.5rem; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.contrat-prime small { font-weight: 500; font-size: .95rem; color: rgba(26,25,23,.6); }
.choix-statut {
  font: 500 .98rem var(--serif); padding: .35rem .5rem; cursor: pointer; border-radius: 2px;
  color: var(--sumi); background: rgba(255,255,255,.25); border: 1px solid rgba(26,25,23,.4);
}
.supprimer {
  font: 500 .92rem var(--serif); padding: .1rem 0; cursor: pointer;
  color: rgba(26,25,23,.6); background: none; border: 0; text-decoration: underline; text-underline-offset: 3px;
}
.supprimer:hover { color: var(--shu); }
.prise {
  display: inline-block; margin: 0 0 .55rem; padding: .12rem .65rem;
  font-weight: 700; font-size: .95rem; letter-spacing: .01em;
  color: var(--shu); border: 1.5px solid var(--shu);
  transform: rotate(-1deg);
}
.prise.finie { color: rgba(26,25,23,.7); border-color: rgba(26,25,23,.45); }
.prendre { display: flex; align-items: center; gap: .5rem; cursor: pointer; font-weight: 700; font-size: .95rem; white-space: nowrap; }
.prendre input {
  appearance: none; -webkit-appearance: none; margin: 0; cursor: pointer; flex: none;
  display: grid; place-items: center; width: 1.35rem; height: 1.35rem;
  background: rgba(255,255,255,.25); border: 1.5px solid rgba(26,25,23,.6);
}
.prendre input:checked { background: var(--shu); border-color: var(--shu); }
.prendre input:checked::after {
  content: ""; width: .38rem; height: .72rem; margin-top: -2px;
  border: solid var(--washi); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
.prendre input:focus-visible { outline: 2px solid var(--sumi); outline-offset: 2px; }
.prendre.bloque { cursor: not-allowed; opacity: .55; }
.prendre.bloque input { cursor: not-allowed; }
.vide { padding: 2.5rem 1.25rem; text-align: center; color: var(--lune-doux); border: 1px dashed rgba(233,228,214,.2); }

/* Espace membre : onglets, bilan, compte */
.onglets { display: flex; flex-wrap: wrap; gap: 0 1.8rem; margin: 0 0 1.6rem; border-bottom: 1px solid rgba(233,228,214,.16); }
.onglet {
  font: 700 1.1rem var(--serif); padding: .6rem 0; margin-bottom: -1px; cursor: pointer;
  color: var(--lune-doux); background: none; border: 0; border-bottom: 3px solid transparent;
}
.onglet:hover { color: var(--lune); }
.onglet[aria-current="page"] { color: var(--lune); border-bottom-color: var(--shu); }
.info-registre { margin: 0 0 1rem; font-weight: 700; color: #A9CBB2; }
.info-registre:empty { display: none; }
.bouton-shu {
  font: 700 .95rem var(--serif); padding: .5rem .95rem; border-radius: 3px; cursor: pointer;
  color: #F2E9DC; background: var(--shu); border: 0; box-shadow: 0 2px 0 var(--shu-sombre);
  white-space: nowrap;
}
.bouton-shu:hover { background: #C23C30; }
.bouton-shu:disabled { opacity: .6; cursor: progress; }
.bouton-liberer {
  font: 500 .92rem var(--serif); padding: .1rem 0; cursor: pointer;
  color: rgba(26,25,23,.65); background: none; border: 0; text-decoration: underline; text-underline-offset: 3px;
}
.bouton-liberer:hover { color: var(--shu); }
.confirmation { display: flex; flex-direction: column; align-items: flex-end; gap: .45rem; }
.confirmation-q { margin: 0; max-width: 17rem; text-align: right; font-weight: 700; font-size: .93rem; line-height: 1.45; }
.confirmation-actions { display: flex; align-items: center; gap: .9rem; }
.bilan { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.3rem; }
.tablette {
  padding: 1.2rem 1.3rem 1rem;
  background: rgba(12,14,20,.9); border: 1px solid rgba(233,228,214,.14); border-top: 3px solid var(--shu);
}
.tablette .valeur { display: block; font-weight: 800; font-size: clamp(1.9rem, 4vw, 2.6rem); line-height: 1.1; font-variant-numeric: tabular-nums; }
.tablette .libelle { color: var(--lune-doux); }
.titre-membre { margin: 0 0 1rem; color: var(--lune-doux); }
.titre-membre strong { color: var(--lune); }
.par-rang { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; margin: 0 0 2.2rem; }
.rang-compte { display: flex; align-items: center; gap: .55rem; }
.par-rang .badge { width: 2.3rem; height: 2.3rem; font-size: 1.1rem; color: var(--lune); border-color: rgba(233,228,214,.45); }
.par-rang .c-A { color: #E08A7E; border-color: #E08A7E; }
.par-rang .c-S { color: var(--washi); background: var(--shu); border-color: var(--shu); }
.rc-n { font-weight: 700; font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.sous-titre { margin: 2.2rem 0 1rem; font-weight: 800; font-size: 1.45rem; }
.fait-ligne {
  display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .4rem 1.2rem; align-items: center;
  padding: .9rem 1.3rem .9rem 1.1rem;
  color: var(--sumi);
  background-color: var(--washi);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  border-left: 6px solid #7A776F;
  box-shadow: 0 8px 16px rgba(0,0,0,.35);
}
.fait-ligne + .fait-ligne { margin-top: .6rem; }
.fait-objet { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.fait-meta { margin: 0; font-size: .9rem; color: rgba(26,25,23,.62); }
.fait-prime { margin: 0; font-weight: 800; font-size: 1.2rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fait-prime small { font-weight: 500; font-size: .9rem; color: rgba(26,25,23,.6); }
.compte-grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.compte-grille .plaque { max-width: none; margin: 0; }
.fiche-membre {
  padding: 1.5rem 1.8rem 1.7rem; color: var(--sumi);
  background-color: var(--washi);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  box-shadow: inset 0 0 30px rgba(70,55,35,.15), 0 10px 20px rgba(0,0,0,.4);
}
.fiche-membre dl { margin: 0; }
.fiche-membre dl > div { padding: .8rem 0; border-bottom: 1px solid rgba(26,25,23,.15); }
.fiche-membre dt { font-style: italic; font-size: .9rem; color: rgba(26,25,23,.6); }
.fiche-membre dd { margin: 0; font-weight: 700; font-size: 1.1rem; overflow-wrap: anywhere; }
.note-compte { margin: 1rem 0 0; font-size: .92rem; line-height: 1.7; color: rgba(26,25,23,.7); }
.plaque-mdp h2 { font-size: 1.5rem; }
.plaque .info-plaque { margin: 1rem 0 0; font-weight: 700; color: #A9CBB2; }
.plaque .erreur-plaque { margin: 1rem 0 0; color: #E0776B; }
.plaque .info-plaque:empty { display: none; }
@media (max-width: 760px) {
  .compte-grille { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .bilan { gap: .5rem; }
  .tablette { padding: .8rem .75rem .7rem; }
  .tablette .valeur { font-size: 1.45rem; }
  .tablette .libelle { font-size: .85rem; }
  .fait-ligne { grid-template-columns: 2.8rem minmax(0, 1fr); }
  .fait-prime { grid-column: 2; }
}

@media (max-width: 900px) {
  .disposition { grid-template-columns: minmax(0, 1fr); }
  .intro { position: static; }
  .intro > p { max-width: 60ch; }
}
@media (max-width: 620px) {
  .bandeau .conteneur { height: 54px; }
  .plaque-front { width: 84px; height: 62px; }
  .plaque-front svg { width: 40px; height: 40px; }
  .marque { font-size: .98rem; gap: .7rem; }
  .papier { grid-template-columns: minmax(0, 1fr); }
  .marge { grid-column: 1; grid-row: 1; flex-direction: row; justify-content: space-between; margin-bottom: 1rem; padding-bottom: .7rem; border-bottom: 1px solid rgba(26,25,23,.2); }
  .kanji-col { flex-direction: row; font-size: 2rem; }
  .texte { grid-row: 2; }
  .article { grid-template-columns: 2.3rem minmax(0, 1fr); }
  .duo { grid-template-columns: minmax(0, 1fr); }
  .sceller { width: 100%; justify-content: center; }
  .signe { max-width: none; }
  .contrat { grid-template-columns: 3rem minmax(0, 1fr); }
  .contrat-cote { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.surtitre { text-transform:uppercase; letter-spacing:.2em; color:#BF9D6C; font-size:.75rem; margin:0 0 .8rem; }
.muted, small { color:var(--lune-doux); }
.portail-centre { max-width:740px; margin:4.5rem auto 6rem; text-align:center; }
.portail-centre h1 { font-size:clamp(2rem,5vw,3.6rem); line-height:1.15; margin:.6rem 0 1.2rem; }
.portail-centre .plaque { text-align:left; max-width:490px; margin:2rem auto; }
.portail-centre .kanji-titre { font-size:5rem; }
.choix-portail { max-width:940px; }
.choix-grille { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin:3rem 0; }
.voie { border:1px solid #5E5747; background:linear-gradient(145deg,#252B34,#151A24); color:var(--lune); text-align:left; padding:2.2rem; font:inherit; cursor:pointer; box-shadow:0 20px 40px #0004; transition:transform .15s,border-color .15s; }
.voie:hover { transform:translateY(-3px); border-color:#B3352A; }
.voie strong { display:block; font-size:1.5rem; margin:1.3rem 0 .7rem; }
.voie>span { display:block; }
.voie>span:not(.voie-kanji) { color:var(--lune-doux); }
.voie .voie-kanji { font-family:var(--pinceau); color:var(--shu); font-size:3.5rem; line-height:1; }
.voie .voie-suite { margin-top:2rem; font-size:.85rem; color:#CFB58E!important; }
.auth-panel { max-width:550px; }.auth-panel .onglets { justify-content:center; }.auth-panel h1 { font-size:2.5rem; }
.auth-panel small { display:block; font-size:.82rem; margin:.5rem 0 1rem; }
.deux-champs { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.demo-comptes { font-size:.85rem; color:var(--lune-doux); }.demo-comptes .actions { justify-content:center; }
.demo-comptes button { color:var(--lune); background:transparent; border:1px solid #615D52; padding:.6rem .9rem; font:inherit; cursor:pointer; }
.espace { margin:3rem 0 5rem; }.espace h1 { margin:0; line-height:1.2; font-size:clamp(1.8rem,4vw,2.8rem); }
.espace .bilan { margin:1.5rem 0; }.espace .onglets { overflow-x:auto; }.espace .onglet { white-space:nowrap; }
.outils-registre { display:grid; grid-template-columns:1fr 170px; gap:1rem; align-items:end; margin:1.5rem 0; }
.outils-registre label { font-size:.85rem; color:var(--lune-doux); }.outils-registre input,.outils-registre select { margin:.5rem 0 0; }
.etat { display:inline-block; padding:.18rem .6rem; font-size:.72rem; border:1px solid currentColor; letter-spacing:.04em; }
.etat.nouveau { color:#785017; }.etat.accepte { color:#355B40; }.etat.en_cours { color:#9F3027; }.etat.a_valider { color:#71512D; }.etat.termine { color:#3B6355; }.etat.refuse { color:#81504A; }
.contrat .contrat-cote { min-width:170px; }.contrat button { max-width:100%; }.contrat .etat { margin-bottom:.6rem; }
.contrat p { overflow-wrap:anywhere; }.contrat .muted { color:#665F52; font-size:.85rem; }
.contrat .identite-message { color:var(--sumi); font-size:.85rem; text-align:left; }
.contrat .identite-message input { accent-color:var(--shu); }
.contrat .bouton-texte { color:var(--sumi); }.contrat .ref { font-size:.75rem; color:#6C6253; margin-top:.7rem; }
.carte-membre { border-bottom:1px solid #4A4D50; padding:1.5rem 0; }.carte-membre h3 { margin:0 0 .5rem; }.carte-membre .actions { margin-top:1rem; }
.carte-membre .etat { color:#CBB080; }
.messagerie { display:grid; grid-template-columns:minmax(220px,300px) minmax(0,1fr); gap:2rem; margin:1.5rem 0; }
.messagerie h2 { font-size:1.25rem; }.thread { display:block; width:100%; text-align:left; color:var(--lune); background:#1D2430; border:1px solid #414650; padding:1rem; margin:.6rem 0; font:inherit; cursor:pointer; }
.thread[aria-pressed=true] { border-color:#BA7B63; background:#302A2A; }.thread strong,.thread small { display:block; }.thread small { font-size:.8rem; }
.unread { display:inline-block; font:700 .75rem var(--serif); background:var(--shu); color:#F5EADB; padding:.1rem .4rem; margin-left:.4rem; }
.salon { min-width:0; padding-left:2rem; border-left:1px solid #4A4D50; }.salon label { display:block; margin-top:1.5rem; }
.message { max-width:92%; padding:1rem 1.2rem; margin:1rem 0; background:#292F3A; border-left:2px solid #B69C71; overflow-wrap:anywhere; }
.message.mine { margin-left:auto; background:#31352E; border-color:#849978; }.message p { white-space:pre-wrap; margin:.5rem 0 0; }.message small { font-size:.72rem; }.message strong { font-size:.85rem; }
.salon #messages-list:empty::before { content:'Aucun message pour le moment.'; display:block; padding:1.5rem 0; color:var(--lune-doux); }
.confirmation { max-width:100%; }.confirmation button { white-space:normal; }.fiche-membre dd { overflow-wrap:anywhere; }
.recu .actions { flex-wrap:wrap; }.bandeau-demo { overflow-wrap:anywhere; }.signature { flex-wrap:wrap; }
.mission-options { margin:1.7rem 0; padding:1.2rem 0; border-top:1px solid #9A8D73; border-bottom:1px solid #9A8D73; }
.mission-options>label,.mission-options>div>label { display:block; margin:1.1rem 0 .5rem; font-weight:700; }.mission-options select { width:100%; }
.article select.trait { width:100%; margin:.5rem 0 1rem; }.article #custom-type label,.article #reward-details label { display:block;margin:.5rem 0; }.article #custom-type { margin-bottom:1rem; }.article #reward-details { margin-bottom:1rem; }
.mission-options .options-note { font-size:.8rem; color:#665B47; }.mission-options .rencontre { display:flex; align-items:flex-start; gap:.65rem; font-size:.9rem; }.rencontre input { margin-top:.4rem; accent-color:var(--shu); }
.filtres-avances { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }.filtres-avances label { color:var(--lune-doux);font-size:.8rem; }.filtres-avances select { margin:.4rem 0 0; }
.tags-contrat { font-size:.75rem; color:#685C46; margin:.4rem 0; }.precision { margin-top:1rem; padding:.8rem; border-left:2px solid #746344; background:#CABEA657; }.precision p { margin:.35rem 0 0; white-space:pre-wrap; }.precision strong { font-size:.82rem; }
.contrat .contract-mission-type { margin:.4rem 0 .3rem;font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;line-height:1.2;color:#8a3028; }
.contract-deadline { display:flex;flex-direction:column;gap:.3rem;margin:1rem 0;padding:1rem 1.2rem;border:1px solid #ad8d4f;border-left:4px solid #9d7736;background:#f4e8c9;color:#443725; }
.contract-deadline .deadline-label { font-size:.72rem;text-transform:uppercase;letter-spacing:.1em; }.contract-deadline strong { font-size:1.3rem;line-height:1.3; }.contract-deadline .deadline-detail { font-size:.88rem; }.contract-deadline small { font-size:.74rem;color:#6b5c46; }
.contract-deadline.is-urgent,.contract-deadline.is-expired { border-color:#a34635;background:#f1d9c8; }.contract-deadline.is-urgent strong,.contract-deadline.is-expired strong { color:#8b2f25; }
.gestion-contrat { grid-column:1/-1; border-top:1px solid #A99A7E; padding-top:1rem; margin-top:1rem; }.gestion-contrat summary { cursor:pointer; font-weight:700; }.gestion-contrat label { display:block; font-size:.85rem; margin:.8rem 0 .3rem; }.gestion-contrat select { width:100%; padding:.5rem; font:inherit; color:var(--sumi); background:#ECE3D0; border:1px solid #A39273; }.gestion-contrat .destinataires label { display:flex;gap:.5rem;align-items:center; }.gestion-contrat .bouton-shu { margin-top:1rem; }
.gestion-contrat .erreur-doc { margin-top:.5rem; }.rang-admin { display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:1rem 0; }.rang-admin select { width:auto;max-width:100%;margin:0; }
.publier { display:flex!important;gap:.6rem;align-items:center;font-size:.9rem; }.message .bouton-texte { display:block;margin-top:.6rem;font-size:.8rem; }.message .publication { display:block;color:#CABB93;margin-top:.5rem; }
.publier[hidden] { display:none!important; }
@media(max-width:760px) { .filtres-avances { grid-template-columns:1fr 1fr; } }
@media(max-width:760px) { .choix-grille,.messagerie { grid-template-columns:1fr; }.salon { padding-left:0; border-left:0; border-top:1px solid #4A4D50; padding-top:1rem; }.portail-centre { margin-top:3rem; }.voie { padding:1.6rem; }.choix-grille { margin-top:2rem; }.outils-registre { grid-template-columns:1fr; }.registre-tete { gap:1rem; }.deux-champs { grid-template-columns:1fr; }.contrat .contrat-cote { min-width:0; } }
@media(prefers-reduced-motion:reduce) { .voie:hover { transform:none; } }
.realisation,.declaration { margin-top:1rem; padding:1rem; border:1px solid #a99a7e; background:#e0d5be; color:#28231c; }
.realisation .bouton-shu,.declaration button { margin:.6rem .5rem 0 0; }.realisation p { margin:.4rem 0; }.declaration .destinataires label { display:flex;align-items:center;gap:.5rem;margin:.5rem 0; }
.historique article { border-top:1px solid #55554b;margin-top:1rem;padding-top:1rem; }.historique h4 { margin:0; }.historique p { margin:.4rem 0; }
#request-panel .plaque { max-width:620px; }.onglets { flex-wrap:wrap; }
.villages-acces { border:1px solid #a99a7e;padding:1rem;margin:1.2rem 0; }.villages-acces legend { font-weight:700;font-size:.9rem; }.villages-acces label,.gestion-contrat .villages-acces label { display:inline-flex;align-items:center;gap:.4rem;margin:.4rem 1rem .4rem 0;font-size:.9rem; }.villages-acces input { accent-color:var(--shu); }
.depot-formulaire { max-width:860px;margin:0 auto;min-width:0; }
.gestion-actions { grid-column:1/-1;order:5;border-top:1px solid #a99a7e;margin-top:1rem;padding-top:1rem; }.gestion-actions>summary,.gestion-globale>summary { cursor:pointer;font-weight:700; }.gestion-actions>.actions { margin:1rem 0; }.gestion-globale { width:100%;margin:0 0 1rem; }.gestion-globale button { margin-top:1rem; }.action-heading { font-size:.8rem;font-weight:700; }
.etat-personnel { padding:.45rem .65rem;border-left:3px solid #766346;background:#cabda544;font-size:.86rem; }.deadline-alert { padding:.65rem;border:1px solid #986122;background:#d9ac6238;color:#67400c;font-weight:700;font-size:.85rem; }.deadline-alert.passed { border-color:#994b40;color:#8b3025;background:#aa4a3a18; }
.field-error { color:#9e2f24;font-weight:700;font-size:.85rem;margin:.3rem 0 .8rem; }#document [aria-invalid=true] { outline:2px solid #ab3326;outline-offset:3px; }.required-mark { color:#9e2f24; }.required-note { font-size:.8rem;margin:0 0 1rem; }.deadline-shortcuts { display:flex;flex-wrap:wrap;gap:.7rem;margin:.7rem 0; }.deadline-shortcuts button { color:var(--sumi);font-size:.82rem; }.filter-tools { justify-content:space-between; }.filter-tools p { font-size:.85rem; }
.password-toggle { display:block;margin:.5rem .35rem 1rem auto;padding:.35rem .55rem;min-height:32px;font-size:.8rem; }.member-tools { display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem;margin-bottom:1.5rem; }.member-tools input,.member-tools select { margin-top:.4rem; }.destinataires label[hidden] { display:none!important; }.equipe-resume { font-weight:700;padding:.6rem 0; }.declaration .saisie { background:#efe6d4;color:var(--sumi); }
.notification { display:grid;gap:.5rem;border-bottom:1px solid #505159;padding:1.2rem; }.notification p { margin:0; }.notification.unread-event { border-left:3px solid #b23829;background:#ffffff05; }.notification button { justify-self:start; }.thread-group h3 { font-size:1rem;line-height:1.4;margin:1rem 0 .5rem; }.thread-preview { display:block;font-size:.83rem;overflow-wrap:anywhere;margin-top:.45rem; }.thread-group .thread strong { font-size:.9rem; }#chat-contract { margin:.5rem 0 1rem; }
@media(max-width:760px) { .member-tools { grid-template-columns:1fr; }.filter-tools { align-items:flex-start; } }

#gate { max-width:780px; }#gate .plaque { max-width:710px; }
.seal-password { padding:1.2rem;border:1px solid #85734d55;background:radial-gradient(ellipse at 68% 50%,#32302655,transparent 65%),#11151be6; }.seal-instruction { color:#eee3ce;font-size:1.1rem;margin:0 0 .3rem;font-weight:700; }.seal-help { color:#aaa595;font-size:.82rem;line-height:1.6;margin:.3rem 0 1.2rem; }
.seal-layout { display:grid;grid-template-columns:146px minmax(0,1fr);align-items:center;gap:1.5rem; }.seal-palette { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px; }.seal-choice { display:flex;flex-direction:column;align-items:center;border:1px solid #7062464d;border-radius:3px;background:#25252877;color:#eee7d9;padding:7px;font:inherit;cursor:pointer;transition:background .2s,border-color .2s; }.seal-choice small { font-size:.62rem!important;line-height:1.2;margin:0 0 4px!important;color:#beb39e; }.seal-choice span { font-size:1.6rem;line-height:1.25; }.seal-choice:hover:not(:disabled),.seal-choice:focus-visible { background:#65542b66;border-color:#c0a46e; }.seal-choice:disabled { opacity:.4;cursor:default; }
.seal-wheel { position:relative;aspect-ratio:1;min-width:0;max-width:380px;width:100%;margin:auto; }.seal-wheel svg { width:100%;height:100%;display:block;overflow:visible; }.seal-orbit,.seal-tick { fill:none;stroke:#9b8553;stroke-width:.65; }.seal-orbit.inner { opacity:.4; }.seal-tick { opacity:.7; }.seal-arc { fill:none;stroke:#e9e6d0;stroke-width:2;stroke-linecap:round;opacity:0;transition:opacity .25s; }.seal-arc.lit { opacity:1;filter:drop-shadow(0 0 3px #f2deb09a); }
.seal-slot { position:absolute;transform:translate(-50%,-50%);border:1px solid #8e7a4b66;border-radius:50%;background:#10141c;color:#8e7a4b;font:inherit;font-size:.85rem;width:12%;aspect-ratio:1;padding:0;cursor:pointer; }.seal-slot.filled { color:#f7f1df;border-color:#e1d5b6;box-shadow:0 0 10px #dfc08433;font-size:clamp(1rem,3vw,1.5rem); }.seal-slot:disabled { opacity:1;cursor:default; }
.seal-center { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24%;aspect-ratio:1;border:1px solid #8c7744;border-radius:50%;background:radial-gradient(circle,#6e522122,#0c101a 75%);color:#b29a5e;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:box-shadow .3s,color .3s; }.seal-center span { font-size:clamp(1.5rem,4vw,2.4rem);line-height:1; }.seal-center small { font-size:.55rem!important;margin:.35rem 0 0!important;color:inherit; }.seal-center:disabled { cursor:default; }.seal-ready .seal-center:not(:disabled) { color:#f0d888;border-color:#e0c276;box-shadow:0 0 24px #dab45244,inset 0 0 12px #dab45222; }.seal-center:focus-visible,.seal-slot:focus-visible { outline:2px solid #f5e0a8;outline-offset:5px; }
.seal-status { text-align:center;color:#d2bd91;font-size:.83rem;min-height:1.5em;margin:1rem 0 .6rem; }.seal-tools { display:flex;justify-content:center;gap:1.2rem;flex-wrap:wrap; }.seal-tools button { color:#b7b0a1;font-size:.77rem; }.seal-tools button:disabled { opacity:.35; }.seal-failed .seal-center { border-color:#bd574b;box-shadow:0 0 18px #a63e3233; }
@media(max-width:580px) { .seal-password { padding:1rem .65rem; }.seal-layout { display:flex;flex-direction:column-reverse;gap:.8rem; }.seal-wheel { max-width:310px; }.seal-palette { grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:6px; }.seal-choice { padding:7px 3px; }.seal-slot.filled { font-size:1.25rem; }.seal-center span { font-size:1.9rem; }.seal-modes { gap:.8rem; }.seal-modes button { font-size:.8rem; } }
@media(prefers-reduced-motion:reduce) { .seal-choice,.seal-arc,.seal-center { transition:none; } }

/* Le cercle se trace, rassemble son énergie, puis ouvre le passage. */
.seal-arc { stroke-dasharray:var(--trace-length);stroke-dashoffset:var(--trace-length);transition:stroke .25s; }.seal-arc.lit { stroke-dashoffset:0; }
.seal-inscription { display:inline-block;line-height:1.4;vertical-align:middle; }
.seal-slot { transition:border-color .6s,box-shadow .6s; }
.seal-slot.filled { border-color:#8e7a4b66;box-shadow:none; }
.seal-wheel .seal-slot .seal-outline { position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none;transform:rotate(-90deg);overflow:visible; }
.seal-outline circle { fill:none;stroke:#f1e9d2;stroke-width:1.4;stroke-dasharray:100;stroke-dashoffset:0;stroke-linecap:butt;filter:drop-shadow(0 0 2px #e6c98266); }
.seal-wheel { isolation:isolate; }.seal-ticks { transform-origin:160px 160px; }
.seal-wave { position:absolute;left:50%;top:50%;width:24%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #e8ce85;border-radius:50%;opacity:0;pointer-events:none; }
.seal-ready:not(.seal-failed):not(.seal-opening):not(.seal-activating) .seal-center { animation:seal-breathe 2.4s ease-in-out infinite; }
.seal-activating .seal-ticks { animation:seal-turn 2.4s linear infinite; }.seal-activating .seal-center { animation:seal-charge .75s ease-in-out infinite alternate; }.seal-activating .seal-arc { stroke:#efd78d; }
.seal-opening .seal-wave { animation:seal-release .8s ease-out both; }.seal-opening .seal-center { color:#fff0b3;animation:seal-unlock .8s ease-out both; }.seal-opening .seal-slot { border-color:#e7c57a;box-shadow:0 0 18px #dfc08477; }.seal-opening .seal-ticks { animation:seal-turn 3s ease-out; }.seal-opening .seal-arc { stroke:#f5d98c;filter:drop-shadow(0 0 5px #e8c878); }
.seal-failed .seal-wheel { animation:seal-reject .36s ease-out; }.seal-failed .seal-arc { stroke:#c86c60;filter:drop-shadow(0 0 3px #a64a3b66); }.seal-failed .seal-status { color:#e3a499; }
@keyframes seal-breathe { 0%,100% { box-shadow:0 0 15px #dab45222,inset 0 0 8px #dab45211; }50% { box-shadow:0 0 32px #dab45266,inset 0 0 15px #dab45233; } }
@keyframes seal-turn { to { transform:rotate(360deg); } }
@keyframes seal-charge { from { transform:translate(-50%,-50%) scale(1);box-shadow:0 0 20px #dab45255; }to { transform:translate(-50%,-50%) scale(1.1);box-shadow:0 0 40px #dab45288,inset 0 0 15px #dab45233; } }
@keyframes seal-release { 0% { opacity:.75;transform:translate(-50%,-50%) scale(1); }100% { opacity:0;transform:translate(-50%,-50%) scale(3.7); } }
@keyframes seal-unlock { 0% { transform:translate(-50%,-50%) scale(1); }45% { transform:translate(-50%,-50%) scale(1.15);box-shadow:0 0 48px #e4c47899; }100% { transform:translate(-50%,-50%) scale(1);box-shadow:0 0 25px #e4c47844; } }
@keyframes seal-reject { 0%,100% { transform:translateX(0); }25% { transform:translateX(-5px); }50% { transform:translateX(5px); }75% { transform:translateX(-3px); } }
@media(prefers-reduced-motion:reduce) { .seal-password *, .seal-password *::before,.seal-password *::after { animation:none!important;transition:none!important; }.seal-wave { display:none; } }

/* Fūinjutsu : symboles en mouvement et montée d'énergie bien visible. */
.seal-password { position:relative;overflow:hidden; }
.seal-flying { position:absolute;left:0;top:0;z-index:8;pointer-events:none;color:#fff0b2;font-size:2.2rem;line-height:1;text-shadow:0 0 8px #edc66d,0 0 24px #dca73c; }
.seal-spark { position:absolute;left:0;top:0;z-index:7;width:5px;height:5px;border-radius:50%;background:#ffe4a5;box-shadow:0 0 9px #e8be67;pointer-events:none;opacity:0; }
.seal-wheel svg { position:relative;z-index:1; }.seal-slot,.seal-center { z-index:3; }.seal-wave { z-index:4; }
.seal-script-ring,.seal-energy-ring { transform-origin:160px 160px;pointer-events:none; }
.seal-script-ring { animation:seal-turn 34s linear infinite; }.seal-script-ring text { fill:#bfa46a;font-size:9px;opacity:.65; }.seal-script-orbit { fill:none;stroke:#a0854544;stroke-width:.5; }
.seal-energy-ring { animation:seal-counterturn 17s linear infinite;fill:none;stroke:#cfac61;stroke-width:.8;opacity:.35; }.seal-energy-ring circle:first-child { stroke-dasharray:16 9 3 9; }.seal-energy-ring circle:last-child { stroke-dasharray:2 14; }
.seal-ticks { animation:seal-turn 55s linear infinite; }
.seal-aura { position:absolute;inset:9%;border-radius:50%;background:radial-gradient(circle,#d2a64b22,transparent 65%);pointer-events:none;animation:seal-aura-breathe 4s ease-in-out infinite;z-index:0; }
.seal-motes { position:absolute;inset:0;pointer-events:none;z-index:2; }.seal-motes i { position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:#e7ca8c;box-shadow:0 0 6px #c89943;animation:seal-mote 4.5s var(--delay) ease-in-out infinite; }
.seal-ready .seal-script-ring { animation-duration:18s; }.seal-ready .seal-script-ring text { fill:#eed494;opacity:.95; }.seal-ready .seal-energy-ring { opacity:.7;animation-duration:9s; }
.seal-ready .seal-center { box-shadow:0 0 35px #dfba6666; }
.seal-activating .seal-ticks { animation-duration:1.6s; }.seal-activating .seal-script-ring { animation:seal-counterturn 3s linear infinite; }.seal-activating .seal-energy-ring { animation-duration:1.2s;opacity:1;stroke:#ffe0a0; }
.seal-activating .seal-aura { animation:seal-gather 1.4s ease-in both; }.seal-activating .seal-motes i { animation-duration:.85s;width:4px;height:4px; }.seal-activating .seal-center { animation:seal-charge .6s ease-in-out infinite alternate; }
.seal-opening .seal-wave { animation:seal-release 1.05s var(--wave-delay) ease-out both;border-width:2px;box-shadow:0 0 12px #e8ce8555; }
.seal-opening .seal-aura { animation:seal-bloom 1.6s ease-out both; }.seal-opening .seal-center { animation:seal-grand-unlock 1.6s ease-out both; }.seal-opening .seal-script-ring { animation:seal-turn 5s ease-out; }.seal-opening .seal-script-ring text { fill:#fff1bc; }.seal-opening .seal-energy-ring { stroke:#ffe7ac;opacity:1; }.seal-opening .seal-motes i { animation-duration:1s; }
.seal-failed .seal-wheel { animation:seal-reject .65s ease-out; }.seal-failed .seal-script-ring text { fill:#db6c58; }.seal-failed .seal-energy-ring { stroke:#de6b59; }.seal-failed .seal-aura { background:radial-gradient(circle,#c944323d,transparent 70%); }.seal-failed .seal-motes i { background:#e38d72;box-shadow:0 0 8px #c95037; }
@keyframes seal-counterturn { to { transform:rotate(-360deg); } }
@keyframes seal-aura-breathe { 0%,100% { opacity:.45;transform:scale(.85); }50% { opacity:1;transform:scale(1.08); } }
@keyframes seal-mote { 0% { opacity:0;transform:rotate(var(--angle)) translateY(-110px) scale(.2); }25% { opacity:.8; }75% { opacity:.5; }100% { opacity:0;transform:rotate(calc(var(--angle) + 65deg)) translateY(-28px) scale(1.3); } }
@keyframes seal-gather { from { opacity:.4;transform:scale(1.3); }to { opacity:1;transform:scale(.6);background:radial-gradient(circle,#e4b955aa,transparent 70%); } }
@keyframes seal-bloom { 0% { opacity:.4;transform:scale(.5);background:radial-gradient(circle,#f5d38e99,transparent 70%); }40% { opacity:1;transform:scale(1.25); }100% { opacity:.2;transform:scale(1.8); } }
@keyframes seal-grand-unlock { 0% { transform:translate(-50%,-50%) scale(1); }30% { transform:translate(-50%,-50%) scale(1.32) rotate(15deg);box-shadow:0 0 65px #e4c478bb,inset 0 0 25px #e4c47855; }65% { transform:translate(-50%,-50%) scale(1.12) rotate(-5deg); }100% { transform:translate(-50%,-50%) scale(1);box-shadow:0 0 30px #e4c47866; } }
@media(max-width:580px) { .seal-flying { font-size:1.7rem; }.seal-script-ring text { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .seal-password *, .seal-password *::before,.seal-password *::after { animation:none!important;transition:none!important; }.seal-motes,.seal-wave { display:none; } }

.seal-cinematic { position:fixed;inset:0;margin:0;padding:0;border:0;background:#080c13;color:#ecd7ac;width:100vw;height:100dvh;max-width:none;max-height:none;overflow:hidden;text-align:center;box-shadow:none; }
.seal-cinematic::backdrop { background:#080c13; }
.seal-cinematic-stage { position:absolute;inset:0;width:100%;height:100%; }
.seal-cinematic canvas { display:block;width:100%;height:100%; }
.seal-cinematic-title { position:absolute;left:2rem;bottom:3.5rem;font:clamp(1.1rem,2.5vw,1.6rem) var(--serif);margin:0;letter-spacing:.06em;text-shadow:0 2px 12px #080c13;pointer-events:none; }
.seal-cinematic-sub { position:absolute;left:2rem;bottom:2rem;color:#b3a482;font-size:.8rem;letter-spacing:.17em;margin:0;pointer-events:none; }
.seal-cinematic-skip { position:absolute;right:2rem;bottom:2rem;color:#b9b09e;font:inherit;font-size:.82rem;background:#080c13bb;border:1px solid #796b5055;padding:.65rem 1rem;cursor:pointer; }
.seal-cinematic-skip:hover,.seal-cinematic-skip:focus-visible { border-color:#cfb581;color:#ead5ad;outline:2px solid #bfa36b;outline-offset:3px; }
@media(max-width:580px) { .seal-cinematic-title { left:1rem;right:1rem;bottom:6.5rem; }.seal-cinematic-sub { left:1rem;right:1rem;bottom:5rem; }.seal-cinematic-skip { right:50%;transform:translateX(50%);bottom:max(1.25rem,env(safe-area-inset-bottom));white-space:nowrap; } }

/* La page d'entrée entière est le fūinjutsu, dès la sélection des sceaux. */
body.gate-fullscreen { overflow:hidden; }
.gate-fullscreen .bandeau,.gate-fullscreen #bandeau-demo { display:none!important; }
#gate { position:fixed;inset:0;z-index:1000;width:100%;height:100dvh;max-width:none;margin:0;padding:0;background:radial-gradient(ellipse at 58% 50%,#29271c55,transparent 60%),#080c13;overflow:hidden; }
#gate>.kanji-titre,#gate>.surtitre,#gate>h1,#gate>.muted { display:none; }
#gate #gate-form { position:absolute;inset:0;max-width:none;width:100%;height:100%;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none; }
#gate #gate-form::before,#gate #gate-form::after { display:none; }
#gate .seal-password { position:absolute;inset:0;padding:0;border:0;background:none;overflow:hidden; }
#gate .seal-instruction { position:absolute;top:1.5rem;left:240px;right:0;margin:0;text-align:center;font-size:1.25rem;z-index:5; }
#gate .seal-help { position:absolute;top:3.7rem;left:240px;right:0;margin:0;text-align:center;font-size:.82rem;z-index:5; }
#gate .seal-layout { position:absolute;inset:0;display:block;margin:0; }
#gate .seal-wheel { position:absolute;left:calc(50% + 100px);top:50%;translate:-50% -50%;width:min(86dvh,calc(100vw - 290px));max-width:none;margin:0; }
#gate .seal-palette { position:absolute;left:2rem;top:50%;translate:0 -50%;width:160px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;z-index:6; }
#gate .seal-choice { padding:.9rem .5rem;background:#1e202566; }
#gate .seal-choice span { font-size:2rem; }#gate .seal-choice small { font-size:.75rem!important; }
#gate .seal-slot.filled { font-size:clamp(1.35rem,3.4vw,2.8rem); }
#gate .seal-center span { font-size:clamp(2rem,5vw,4.5rem); }#gate .seal-center small { font-size:.7rem!important; }
#gate .seal-status { position:absolute;bottom:3.3rem;left:240px;right:0;margin:0;text-align:center;pointer-events:none;z-index:5; }
#gate .seal-tools { position:absolute;bottom:1.4rem;left:240px;right:0;margin:0;z-index:6; }
#gate #gate-error { position:absolute;left:1.5rem;bottom:1.5rem;width:190px;margin:0;font-size:.85rem;z-index:7; }
@media(max-width:700px) {
 #gate .seal-instruction { top:1.25rem;left:1rem;right:1rem;font-size:1.15rem; }
 #gate .seal-help { top:3.3rem;left:1rem;right:1rem;font-size:.75rem; }
 #gate .seal-wheel { left:50%;top:calc((100dvh - 150px)/2);width:min(98vw,calc(100dvh - 310px)); }
 #gate .seal-palette { left:1rem;right:1rem;top:auto;bottom:5.4rem;translate:none;width:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem; }
 #gate .seal-choice { padding:.45rem .25rem; }#gate .seal-choice span { font-size:1.5rem; }#gate .seal-choice small { font-size:.65rem!important; }
 #gate .seal-status { bottom:3.25rem;left:1rem;right:1rem;font-size:.78rem; }
 #gate .seal-tools { bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;right:1rem; }
 #gate #gate-error { top:5.4rem;bottom:auto;left:1rem;width:calc(100% - 2rem);text-align:center;font-size:.75rem; }
}
@media(max-height:500px) and (min-width:701px) { #gate .seal-instruction { top:.5rem; }#gate .seal-help { top:2.1rem; }#gate .seal-palette { width:200px;grid-template-columns:repeat(4,minmax(0,1fr));left:1rem; }#gate .seal-choice { padding:.4rem .2rem; }#gate .seal-choice span { font-size:1.3rem; }#gate .seal-wheel { width:78dvh; }#gate .seal-status { bottom:2.2rem; }#gate .seal-tools { bottom:.5rem; } }
/* Trait blanc et cercle horaire, comme la référence au placement des kanji. */
.seal-password:not(.seal-failed):not(.seal-opening):not(.seal-activating) .seal-arc.lit { stroke:#f2f1e9;stroke-width:2.4;filter:drop-shadow(0 0 1px #fff9) drop-shadow(0 0 3px #ffffff33); }
.seal-outline circle { stroke:#f4f3ec;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 1px #ffffff55); }
.seal-slot.filled .seal-inscription { color:#f5f4ed; }
.seal-slot.filled { border-color:transparent; }
.seal-password .seal-arc { transition:none; }
/* GPU ink sits over the seal faces, with the SVG remaining as a no-WebGL fallback. */
.seal-wheel .seal-trace-canvas { position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none; }
.seal-password:not(.seal-failed):not(.seal-opening):not(.seal-activating) .has-seal-gpu .seal-arc,
.seal-password:not(.seal-failed):not(.seal-opening):not(.seal-activating) .has-seal-gpu .seal-outline { visibility:hidden; }
.seal-failed .seal-trace-canvas,.seal-opening .seal-trace-canvas,.seal-activating .seal-trace-canvas { opacity:0; }

/* Version sobre : seul le trait à la pose bouge. */
#gate .seal-password *,#gate .seal-password *::before,#gate .seal-password *::after { animation:none!important; }
#gate .seal-aura,#gate .seal-motes,#gate .seal-wave,#gate .seal-energy-ring { display:none; }
#gate .seal-script-ring { opacity:.32; }
#gate .seal-center,#gate .seal-slot { box-shadow:none; }
#gate .seal-center { transition:color .15s,border-color .15s; }
#gate .seal-arc.lit { stroke:#fff;stroke-width:.16;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 .5px #ffffff77); }
#gate .seal-outline circle { stroke:#fff;stroke-width:.16;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 .5px #ffffff77); }
#gate .seal-slot.filled .seal-inscription { color:#f1f6fb;text-shadow:0 0 7px #b4d7ff66,0 0 16px #8abaff20; }
#gate .seal-ready .seal-center { color:#f0dfb5;border-color:#c4ac77;box-shadow:0 0 16px #d9bd7024,inset 0 0 12px #d9bd7010; }
#gate .seal-failed .seal-arc { stroke:#b57570; }

/* Keep the fallback outline in the exact same coordinate system as GPU ink. */
.seal-wheel .seal-slot.filled{border-width:0}
.seal-wheel .seal-slot.filled .seal-outline{inset:0;width:100%;height:100%}

/* Non-scaling SVG dashes broke each arc on large wheels; scale only the ink width. */
#gate .seal-arc.lit{vector-effect:none;stroke-width:var(--seal-arc-width,.16)}
#gate .seal-outline circle{vector-effect:none;stroke-width:var(--seal-outline-width,.16)}

.clan-mark { display:flex;align-items:center;justify-content:center;flex:none;width:88px;height:56px; }.clan-mark-left svg { width:48px;height:56px; }.clan-mark-right svg { width:88px;height:46px; }.clan-mark svg { filter:drop-shadow(0 1px 7px #d8b36625); }
#nom-guilde { grid-column:2;text-align:center;white-space:nowrap; }
.bandeau .conteneur { position:relative;height:82px;min-height:0;max-width:1600px;display:flex;align-items:center;padding-block:0; }
#marque { box-sizing:border-box;width:100%;display:grid;grid-template-columns:88px minmax(0,1fr) 88px;align-items:center;gap:1rem;padding-inline:50px; }
#marque #nom-guilde { font-size:1.6rem;line-height:1.2;letter-spacing:.045em; }
.bandeau #lien-entete { position:absolute;right:clamp(1.1rem,4vw,2.5rem);top:50%;transform:translateY(-50%);margin:0;padding:0;width:34px;height:34px;font-size:0;line-height:0;border:1px solid transparent;border-radius:50%;background:transparent;color:#cfb57f;text-decoration:none; }
.bandeau #lien-entete::before { content:'';display:block;width:20px;height:20px;margin:auto;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cfb57f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4H4v16h5M8 12h13m-5-5 5 5-5 5'/%3E%3C/svg%3E"); }
.bandeau #lien-entete:hover { background:#c6a26412;border-color:#c6a26455; }
.bandeau #lien-entete:focus-visible { outline:2px solid #ebcd91;outline-offset:3px; }
@media(max-width:580px) { #marque { grid-template-columns:40px minmax(0,1fr) 40px;gap:.25rem;padding-inline:32px; }#marque #nom-guilde { font-size:1.15rem;letter-spacing:.02em; }.clan-mark { width:40px;height:40px; }.clan-mark-left svg { width:30px;height:40px; }.clan-mark-right svg { width:40px;height:35px; }.bandeau .conteneur { height:68px; }.bandeau #lien-entete { width:28px;height:32px; } }

.seal-cinematic { --ceremony-fade:0;background:rgba(8,12,19,var(--ceremony-fade)); }
.seal-cinematic::backdrop { background:transparent; }
.seal-cinematic-title,.seal-cinematic-sub { opacity:var(--ceremony-fade); }

/* La palette ne décale pas le centre de la page. */
@media(min-width:701px) {
 #gate .seal-wheel { left:50%;width:min(78dvh,calc(100vw - 430px)); }
 #gate .seal-instruction,#gate .seal-help,#gate .seal-status,#gate .seal-tools { left:230px;right:230px; }
}

/* Bleu-noir du portail, dorures et bois sombre. */
:root {
 --nuit:#080c13; --lune:#e6ca90; --lune-doux:#bcae92;
 --sumi:#e6ca90; --sumi-bleu:#eddbb3; --washi:#211c19;
 --shu:#c9a35e; --shu-sombre:#70532c; --tissu:#101620;
 --gold-line:#806941; --gold-soft:#bcae92; --panel:#171b22;
 --portal-night:radial-gradient(ellipse at 58% 50%,#29271c55,transparent 60%),#080c13;
 --wood-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='280'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.006 .13' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .62 0 0 0 0 .40 0 0 0 0 .20 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");
 --wood:var(--wood-grain),repeating-linear-gradient(0deg,#0000 0 77px,#08070544 78px,#ffffff04 79px,#0000 80px 157px),linear-gradient(115deg,#30271f,#211c19 55%,#29221c);
}
html { background:var(--nuit); }
body { background:var(--portal-night);background-attachment:fixed;color:var(--lune); }
.paysage { display:none; }.grain { opacity:.2; }
#gate { background:var(--portal-night); }
::selection { background:#8d6d38;color:#fff1d1; }
:focus-visible { outline-color:#edcd8b; }
.bandeau { background:var(--wood);border-block:1px solid #80694166;box-shadow:0 8px 30px #0005; }
.bandeau::before,.bandeau::after { border-color:#b38a4a33; }
.marque { color:#f0d59c; }.lien-entete,.surtitre { color:#cfb57f; }
.bandeau-demo { background:#c9a35e0b;border-color:#8c6e3c;color:#bda779;font-size:.8rem; }
h1,h2,h3,h4,.kanji-titre { color:var(--lune); }
.voie,.plaque,.papier,.contrat,.tablette,.carte-membre { background:var(--wood);color:var(--lune);border:1px solid #8069418c;box-shadow:inset 0 1px 0 #d7b87415,inset 0 0 40px #09070633,0 15px 35px #0004; }
.voie:hover { border-color:#d4af6c;box-shadow:inset 0 0 25px #d4af6c09,0 15px 35px #0005; }
.voie .voie-kanji { color:#d4af6c; }.voie strong { color:#edcf96; }
.plaque::before { background:radial-gradient(circle at 14px 14px,#c8a161 0 1px,#634b2b 2px 3px,transparent 4px),radial-gradient(circle at calc(100% - 14px) 14px,#c8a161 0 1px,#634b2b 2px 3px,transparent 4px),radial-gradient(circle at 14px calc(100% - 14px),#c8a161 0 1px,#634b2b 2px 3px,transparent 4px),radial-gradient(circle at calc(100% - 14px) calc(100% - 14px),#c8a161 0 1px,#634b2b 2px 3px,transparent 4px); }
.papier { border-inline:1px solid #806941; }.papier h2,.doc-tete { color:#efd6a2; }.doc-tete,.clauses { border-color:#8b7049; }
.baton { background:linear-gradient(#5b422a,#261b12 48%,#120e0a); }
.baton::before,.baton::after { background:linear-gradient(90deg,#6b5029,#c3a267 45%,#8e6d3c 75%,#493820); }
.papier .preambule,.papier .sous,.papier .prime-note,.papier .clauses,.papier .options-note,.papier .required-note { color:var(--gold-soft); }
.article,fieldset.article,.mission-options,.villages-acces,.gestion-actions,.gestion-contrat,.salon,.historique article,.fiche-membre div { border-color:#80694170; }
.saisie,.recherche,.trait,.conditions,.gestion-contrat select,.declaration .saisie { color:#eed8ab;background-color:#0c121b;border:1px solid #80694199;border-radius:2px;box-shadow:inset 0 2px 7px #0004; }
.trait { padding:.55rem .65rem; }.trait:focus { padding:.55rem .65rem;border:1px solid #d8b873;background-color:#111923;outline:2px solid #d8b87366;outline-offset:2px; }
.saisie:focus,.recherche:focus,.conditions:focus { background-color:#111923;outline:2px solid #d8b873;outline-offset:2px; }
select.trait { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23d9bc82' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right .65rem center;padding-right:2rem; }
select option,select.trait option { background:#101720;color:#eed8ab; }
.trait::placeholder,.conditions::placeholder,.saisie::placeholder,.recherche::placeholder { color:#a99d87;opacity:1; }
.conditions { padding:.5rem .65rem;background-image:repeating-linear-gradient(180deg,#0000 0 calc(2rem - 1px),#b2976222 calc(2rem - 1px) 2rem);background-attachment:local; }
.signe-nom { color:#e8c993;border-color:#806941; }.classe span,.badge { border-color:#a38654;color:#dfc18a; }
.classe input:checked+span,.c-S { background:#c9a35e;color:#111720;border-color:#dfbd7c;box-shadow:inset 0 0 0 3px #c9a35e,inset 0 0 0 4px #48361b; }
input[type=checkbox],input[type=radio] { accent-color:#c9a35e; }
.bouton-clair,.bouton-shu,.sceller { color:#111720;background:linear-gradient(135deg,#e0c18a,#b78d48);border:1px solid #dfc087;box-shadow:inset 0 1px 0 #ffe8b755,0 3px 0 #624926,0 6px 16px #0003; }
.bouton-clair:hover,.bouton-shu:hover,.sceller:hover { background:linear-gradient(135deg,#efdaa9,#ccaa6c); }
.sceller-marque { border-color:#4b3925;color:#3d2c18; }
.bouton-texte,.bouton-liberer,.contrat .bouton-texte,.contrat .identite-message,.supprimer { color:#d2b77f; }.bouton-texte:hover,.bouton-liberer:hover { color:#ffe1a6; }
.onglets,.filtres { border-color:#80694166; }.onglet[aria-current=page],.filtre[aria-pressed=true] { border-bottom-color:#d9b677;color:#f0d59e; }
.demo-comptes button,.registre-boutons button { border-color:#806941;background:#10151e;color:#d6bd89; }
.tablette { border-top:2px solid #a8884f; }.tablette .valeur { color:#efd29b; }
.contrat { border-left:4px solid var(--c,#a8884f); }.contrat .contract-mission-type { color:#e1b96e; }.contrat h3 { color:#f0d7a5; }
.contrat-meta,.contrat .muted,.tags-contrat,.contrat-prime small { color:#c0ae8e; }.contrat-prime { color:#efd19a; }
.s-nouveau { --c:#d2aa62; }.s-accepte { --c:#8eae92; }.s-en_cours { --c:#d2aa62; }.s-refuse { --c:#ca8c7b; }.s-termine { --c:#8c9eae; }
.s-refuse .contrat-corps,.s-termine .contrat-corps { opacity:1; }
.etat.nouveau,.etat.en_cours,.etat.a_valider { color:#e4be7a; }.etat.accepte,.etat.termine { color:#b2d0ae; }.etat.refuse,.etat.expire { color:#eca791; }
.contract-deadline { background:linear-gradient(110deg,#313025,#20231f);border-color:#aa8b52;color:#ead4a6;box-shadow:inset 0 0 25px #d2ac6310; }
.contract-deadline strong { color:#ffe0a0; }.contract-deadline small { color:#c3b191; }.contract-deadline.is-urgent,.contract-deadline.is-expired { background:#35221e;border-color:#c88967; }.contract-deadline.is-urgent strong,.contract-deadline.is-expired strong { color:#ffbe94; }
.realisation,.declaration,.precision,.etat-personnel { background:#141a22;color:#ddc59c;border-color:#806941; }
.carte-membre { padding:1.4rem;margin:1rem 0; }.carte-membre .etat { color:#d8be88; }
.fiche-membre { background:var(--wood);color:var(--lune);border:1px solid #8069418c;box-shadow:inset 0 1px 0 #d7b87415,0 15px 35px #0004; }.fiche-membre dt { color:#c4b08b; }.fiche-membre dd { color:#edcf96; }
.thread,.message { background:#111924;color:#ddc59c;border-color:#665839; }.thread[aria-pressed=true] { background:#29241c;border-color:#c6a363; }.message.mine { background:#29241e;border-color:#c6a363; }
.thread:hover { border-color:#c6a363; }.unread { background:#c9a35e;color:#111720; }
.notification { border-color:#80694166; }.notification.unread-event { background:#c9a35e0b;border-left-color:#c9a35e; }.notification button,#chat-contract,.password-toggle { color:#d5ba85; }
.info-registre { color:#b9cc9b; }.field-error,.erreur-doc,.erreur-plaque,.erreur-registre,.required-mark { color:#ffb49c; }#document [aria-invalid=true] { outline-color:#ee9b7e; }
.fuin,.tampon { mix-blend-mode:normal; }.fuin .trace { stroke:#edc985; }.fuin .kc { fill:#edc985; }
@media(max-width:760px) { .carte-membre { padding:1rem; }.contract-deadline { padding:.85rem; } }

/* Texte courant sobre ; dorures réservées à la hiérarchie et aux actions. */
:root { --lecture:"Noto Sans","Segoe UI",Arial,sans-serif; --texte:#ede7dc; --secondaire:#c1b7a6; }
body { font-family:var(--lecture);font-size:16px;line-height:1.65;color:var(--texte); }
h1,h2,h3,h4,.marque,.voie strong { font-family:var(--serif); }
button,input,textarea,select,.trait,.conditions,.saisie,.recherche,.onglet,.filtre,.bouton-texte,.bouton-clair,.bouton-shu,.bouton-liberer,.sceller,.demo-comptes button,.registre-boutons button { font-family:var(--lecture); }
.seal-password,.seal-password button,.seal-cinematic,.seal-cinematic button { font-family:var(--serif); }
.seal-slot,.seal-center span,.seal-choice span { font-family:var(--pinceau); }
.plaque,.papier,.contrat,.tablette,.carte-membre,.fiche-membre { background-image:linear-gradient(#111318b8,#111318b8),var(--wood);color:var(--texte); }
.voie { background-image:linear-gradient(#11131877,#11131877),var(--wood); }
.plaque label,.art-titre,.mission-options>label,.villages-acces legend,.gestion-contrat label,.signe-nom,.fiche-membre dd { color:var(--texte); }
.saisie,.recherche,.trait,.conditions,.gestion-contrat select,.declaration .saisie,select option,select.trait option { font-size:1rem;line-height:1.5;color:var(--texte); }
.saisie,.recherche { min-height:46px; }.trait { min-height:43px; }
.conditions { line-height:1.8;background-image:none;min-height:11rem; }
.trait::placeholder,.conditions::placeholder,.saisie::placeholder,.recherche::placeholder { color:#b6ac9b;font-style:normal; }
.muted,small,.contrat .muted,.contrat-meta,.tags-contrat,.papier .preambule,.papier .sous,.papier .prime-note,.papier .clauses,.papier .options-note,.papier .required-note,.fiche-membre dt { color:var(--secondaire); }
.papier .options-note,.required-note,.auth-panel small { font-size:.85rem;line-height:1.6; }
.papier .preambule { font-size:.95rem; }.papier h2 { margin-bottom:1rem; }
.article { padding-block:1.5rem; }.art-titre { font-size:1rem; }.num { color:#cbaa6b; }
.papier .clauses { font-size:.8rem;line-height:1.7; }.required-mark { color:#eac486; }
.onglets { gap:0 1.25rem; }.onglet { font-size:.95rem;font-weight:600;padding:.85rem 0; }
.filtre { font-size:.875rem;padding:.65rem 0; }.filtres { gap:0 1.15rem; }
.espace .bilan { margin:1.4rem 0; }.tablette { padding:1rem 1.2rem; }.tablette .valeur { font-size:1.8rem;font-family:var(--lecture); }.tablette .libelle { font-size:.82rem;color:var(--secondaire); }
.outils-registre label,.filtres-avances label { font-size:.82rem;color:var(--secondaire); }
.contrat { padding:1.5rem;gap:1rem 1.25rem;border-left-width:3px; }.contrat+.contrat { margin-top:1.25rem; }
.contrat .etat { margin-bottom:.65rem;font-size:.75rem;letter-spacing:0; }
.contrat .contract-mission-type { font-family:var(--serif);font-size:1.65rem;line-height:1.25;margin:.2rem 0 .45rem;color:#e7c280; }
.contrat h3 { font-family:var(--lecture);font-weight:600;font-size:1.15rem;line-height:1.5;color:var(--texte); }
.contrat-conditions { font-size:1rem;line-height:1.8;margin-block:1.1rem;max-width:65ch; }
.contrat-meta { font-size:.8rem;line-height:1.6;padding-top:.85rem;margin:.8rem 0 0;border-top:1px solid #c5a86f26; }
.contrat .contrat-cote { min-width:190px;gap:.8rem;padding-left:1.2rem;border-left:1px solid #c5a86f26; }
.reward-label { font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--secondaire); }
.contrat-prime { font-family:var(--lecture);font-size:1.65rem;line-height:1.25;font-weight:700;color:#f1cf8d; }.contrat-prime small { color:var(--secondaire);font-size:.9rem; }
.contrat-cote .bouton-shu { padding:.7rem 1rem;font-size:.9rem;white-space:normal; }
.contrat-cote .bouton-texte,.contrat .identite-message { font-size:.84rem;line-height:1.5; }.contrat .identite-message { color:var(--secondaire); }
.contract-deadline { padding:.85rem 1rem;gap:.25rem;background:#171e25;border:1px solid #b595534d;border-left:3px solid #cba768;box-shadow:none;margin:1.1rem 0; }
.contract-deadline .deadline-label { font-size:.7rem;color:var(--secondaire);letter-spacing:.07em; }.contract-deadline strong { font-family:var(--lecture);font-size:1.25rem;line-height:1.4; }.contract-deadline .deadline-detail { font-size:.86rem;color:var(--texte); }.contract-deadline small { font-size:.75rem;color:var(--secondaire); }
.gestion-actions { margin-top:.5rem;padding-top:1rem; }.gestion-actions>summary { font-size:.85rem;color:#c8b58f;font-weight:500; }.admin-contract-meta { font-size:.8rem;line-height:1.7; }
.contract-admin-info { margin:1rem 0;padding:.8rem 1rem;background:#0b121b80;border:1px solid #80694155; }
.realisation,.declaration { line-height:1.7; }.message p { font-size:1rem;line-height:1.8; }.message strong,.thread strong { color:#e3c385; }.thread small,.thread-preview { color:var(--secondaire); }
.bouton-clair,.bouton-shu,.sceller { font-weight:650; }.bouton-clair,.sceller { font-size:.95rem;min-height:44px; }
.bandeau-demo { font-size:.75rem;line-height:1.6; }.surtitre { font-size:.7rem; }.espace h1 { font-size:clamp(1.8rem,4vw,2.5rem); }
.voie>span:not(.voie-kanji) { font-size:.95rem;line-height:1.75;color:var(--secondaire); }.voie .voie-suite { font-size:.8rem; }
.chat-identity { padding:.8rem 1rem;margin:.5rem 0 1rem;border:1px solid #80694166;background:#0c131d; }.salon .chat-identity label { display:flex;align-items:center;gap:.5rem;margin:0;font-size:.9rem;cursor:pointer; }.chat-identity p { margin:.4rem 0 0;font-size:.82rem; }.chat-identity input { margin:0; }
@media(max-width:760px) {
 .contrat { grid-template-columns:2.3rem minmax(0,1fr);padding:1rem;gap:.7rem .8rem; }.badge { width:2.3rem;height:2.3rem;font-size:1.15rem; }
 .contrat .contrat-cote { grid-column:1/-1;min-width:0;padding:1rem 0 0;border-left:0;border-top:1px solid #c5a86f26;align-items:stretch;text-align:left;gap:.65rem; }
 .contrat-cote .bouton-shu { width:100%; }.contrat .contract-mission-type { font-size:1.4rem; }.contrat h3 { font-size:1.05rem; }
 .contrat-conditions { font-size:.95rem; }.bilan { gap:.5rem; }.tablette { padding:.85rem .6rem; }.tablette .valeur { font-size:1.5rem; }.tablette .libelle { font-size:.75rem; }
}

/* Alegreya — Copyright 2011 The Alegreya Project Authors (https://github.com/huertatipografica/Alegreya)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded, 
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
 */
@font-face {
  font-family: 'Alegreya';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(assets/2431eca3ed8ed66e713cf709.woff2) format('woff2');
  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;
}
:root { --lecture:"Alegreya",Georgia,"Times New Roman",serif;--serif:"Alegreya",Georgia,serif; }
body { font-size:20px;font-weight:500;line-height:1.65; }
h1,h2,h3,h4 { text-wrap:balance; }.espace h1 { font-size:clamp(2.3rem,4.5vw,3.4rem);font-weight:600;letter-spacing:-.02em; }
.portail-centre h1 { font-weight:600;font-size:clamp(2.6rem,5vw,4rem); }.auth-panel h1 { font-size:clamp(2.4rem,4.5vw,3.3rem); }
.marque { font-size:1.4rem;font-weight:600; }.bandeau { box-shadow:0 8px 24px #0004;border-bottom-color:#af8b4555; }
.registre-tete { padding-bottom:.8rem;margin-bottom:.8rem; }.registre-tete .surtitre { letter-spacing:.18em; }.registre-tete #welcome { margin-top:.5rem;font-size:.9rem; }
.voie { border-radius:4px;position:relative; }.voie strong { font-size:1.9rem;font-weight:600; }.voie .voie-suite { padding-top:1rem;border-top:1px solid #b3955933; }
.contrat { border-radius:4px;box-shadow:inset 0 1px 0 #d5b6790c,0 10px 28px #0003;background-image:linear-gradient(#12161adc,#12161adc),var(--wood); }
.contrat .contract-mission-type { font-size:2rem;font-weight:600;margin:0 0 .25rem;letter-spacing:.01em; }.contrat h3 { font-size:1.18rem;font-weight:600;line-height:1.4; }
.contract-facts { display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);margin:1.2rem 0 1.35rem;border:1px solid #b698593b;border-radius:3px;background:#0b141dbb;overflow:hidden; }
.contract-reward { display:flex;flex-direction:column;justify-content:center;gap:.5rem;padding:1rem 1.2rem;min-width:0; }.contract-reward .contrat-prime { font-size:1.85rem;white-space:normal;overflow-wrap:anywhere; }.contract-reward .muted { margin:0;font-size:.9rem;line-height:1.5; }
.contract-facts .contract-deadline { margin:0;padding:1rem 1.2rem;border:0;border-left:1px solid #b698593b;border-radius:0;background:transparent;justify-content:center; }
.contract-facts .contract-deadline.is-urgent,.contract-facts .contract-deadline.is-expired { background:#462b203f;box-shadow:inset 3px 0 #c58860; }
.reward-label,.contract-deadline .deadline-label { font-size:.73rem;color:#bdb2a0;letter-spacing:.09em; }.contract-deadline strong { font-size:1.4rem;font-weight:650; }
.contrat .contrat-cote { min-width:170px;max-width:220px;justify-content:center; }.contrat-cote .bouton-shu { min-height:44px; }.contrat-conditions { font-size:1.02rem;line-height:1.75; }
.contrat-meta { font-size:.85rem; }.badge { color:#e8c586;background:#b7914910;border-color:#a68a5155; }
.tablette { border-top-width:1px;border-radius:3px;background:#0d151ec7;box-shadow:none; }.tablette .valeur { font-size:2rem;line-height:1.2; }.tablette .libelle { font-size:.9rem; }
.outils-registre label,.filtres-avances label { font-size:.88rem; }.saisie,.recherche,.trait { font-size:1.06rem; }.art-titre { font-size:1.08rem; }
.onglet { font-size:1.03rem; }.filtre { font-size:.97rem; }.gestion-actions>summary { font-size:.95rem; }.papier h2 { font-size:2.6rem;font-weight:600; }
.fiche-membre h2,.plaque h2,.salon h2 { font-size:2rem;font-weight:600; }.thread-group h3 { font-family:var(--lecture);font-size:1.05rem;font-weight:600; }
@media(hover:hover) {
 .voie,.contrat,.thread { transition:border-color .18s ease,box-shadow .18s ease; }.contrat:hover { border-top-color:#bda16a80;border-right-color:#bda16a80;border-bottom-color:#bda16a80;box-shadow:inset 0 1px 0 #d5b67916,0 14px 30px #0004; }
 .bouton-clair,.bouton-shu,.sceller { transition:filter .15s ease,box-shadow .15s ease,transform .15s ease; }.bouton-clair:hover:not(:disabled),.bouton-shu:hover:not(:disabled),.sceller:hover:not(:disabled) { filter:brightness(1.07);transform:translateY(-1px);box-shadow:inset 0 1px 0 #ffe8b755,0 3px 0 #624926,0 8px 18px #0005; }
}
.onglet,.filtre { transition:color .16s ease,border-color .16s ease; }.saisie,.trait,.recherche,.conditions { transition:border-color .16s ease,background-color .16s ease; }
@media(max-width:760px) { .contrat .contrat-cote { max-width:none;min-width:0; }.contrat .contract-mission-type { font-size:1.8rem; }.contrat h3 { font-size:1.1rem; }.marque { font-size:1.2rem; }.tablette .valeur { font-size:1.6rem; }.tablette .libelle { font-size:.8rem; } }
@media(max-width:480px) { .contract-facts { grid-template-columns:1fr; }.contract-reward { padding:.8rem 1rem;gap:.25rem; }.contract-reward .contrat-prime { font-size:1.6rem; }.contract-facts .contract-deadline { padding:.8rem 1rem;border-left:0;border-top:1px solid #b698593b; }.contract-deadline strong { font-size:1.3rem; } }
@media(prefers-reduced-motion:reduce) { .voie,.contrat,.thread,.bouton-clair,.bouton-shu,.sceller,.onglet,.filtre,.saisie,.trait,.recherche,.conditions { transition:none!important; }.bouton-clair:hover,.bouton-shu:hover,.sceller:hover,.voie:hover { transform:none; } }
/* Les textes gardent le caractère des titres, à une taille adaptée à la lecture. */
.contrat-conditions,.message p,.conditions,.thread-preview,.papier .preambule { font-size:1.25rem;font-weight:500;line-height:1.65; }
.saisie,.recherche,.trait,.gestion-contrat select,select option,select.trait option { font-size:1.2rem;font-weight:500; }
.contrat h3,.thread-group h3 { font-size:1.3rem;line-height:1.4; }
.outils-registre label,.filtres-avances label,.papier .options-note,.required-note,.contrat-meta,.contract-reward .muted { font-size:1rem; }
.onglet,.filtre { font-size:1.1rem; }.contrat-cote .bouton-texte { font-size:1.05rem; }
.message strong,.thread strong { font-size:1.15rem; }.contract-deadline .deadline-detail { font-size:1rem; }
.papier .art-titre,.papier label[for],.papier legend { color:#e8c586;font-weight:700;font-style:normal; }
.papier .art-titre,.papier .mission-options>label[for],.papier label[for="f-type"] { font-size:1.25rem; }
/* Lecture plus ample et actions accordées au bois sombre du portail. */
html { font-size:18px; }
body { font-size:22px; }
.reward-label,.contract-deadline .deadline-label { font-size:.88rem;letter-spacing:.06em; }
.contract-deadline small,.contrat .etat,.bandeau-demo,.admin-contract-meta,.papier .clauses { font-size:.9rem; }
.tablette .libelle,.chat-identity p,.salon .chat-identity label,.voie .voie-suite { font-size:1rem; }
.voie>span:not(.voie-kanji) { font-size:1.1rem; }
.bouton-clair,.bouton-shu,.sceller,.contrat-cote .bouton-shu {
 color:#edcf98;background:#101820;
 border:1px solid #b4976033;border-bottom-color:#b49760;border-radius:4px;
 box-shadow:none;
 font-family:var(--lecture);font-size:1.1rem;font-weight:600;line-height:1.35;
 padding:.7rem 1.2rem;min-height:48px;white-space:normal;
 transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}
.bouton-clair:hover:not(:disabled),.bouton-shu:hover:not(:disabled),.sceller:hover:not(:disabled) {
 background:#18222c;
 color:#ffe4ad;border-color:#b4976066;border-bottom-color:#ebca8b;filter:none;transform:none;
 box-shadow:none;
}
.bouton-clair:active:not(:disabled),.bouton-shu:active:not(:disabled),.sceller:active:not(:disabled) { background:#0a1118; }
.bouton-clair:focus-visible,.bouton-shu:focus-visible,.sceller:focus-visible { outline:2px solid #f0ce8c;outline-offset:4px; }
.bouton-clair:disabled,.bouton-shu:disabled,.sceller:disabled { opacity:.5;cursor:wait; }
.sceller-marque { color:#e8c586;border-color:transparent;background:transparent; }
@media(max-width:760px) { .contrat .contrat-cote { max-width:none; }.tablette .libelle { font-size:.95rem; } }

#contracts-list.bounty-board { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1.8rem;list-style:none;margin-top:1rem;padding:2rem;align-items:stretch;border:1px solid #70573b;background:linear-gradient(#11182055,#11182077),repeating-linear-gradient(0deg,transparent 0 115px,#04070bac 116px 119px,transparent 120px 124px),var(--wood);box-shadow:inset 0 0 0 7px #120f0b88,inset 0 0 45px #0008; }
.bounty-board>.vide { grid-column:1/-1;padding:2rem;color:#e1ceb0;background:#0b121bd9; }
.bounty-poster { list-style:none;min-width:0;display:flex; }
.bounty-poster-button { position:relative;width:100%;display:flex;flex-direction:column;align-items:stretch;text-align:left;gap:.8rem;padding:2rem 1.4rem 1.1rem;color:#eee0c5;font-family:var(--lecture);font-size:1.1rem;background:radial-gradient(ellipse at 50% 0,#71604530,transparent 65%),#1d2021;border:1px solid #a88b586f;border-radius:1px;box-shadow:0 6px 12px #0006;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.bounty-pin { position:absolute;top:.55rem;left:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#b29869;box-shadow:inset -2px -2px 2px #48371e,0 2px 3px #000; }
.bounty-poster-top { display:flex;justify-content:space-between;gap:.6rem;align-items:center;border-bottom:1px solid #ad8c4e55;padding-bottom:.7rem; }
.bounty-kicker { font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#b9a984; }.bounty-rank { color:#edcc88;font-weight:700;white-space:nowrap; }
.bounty-type { font-family:var(--serif);font-size:2rem;font-weight:700;line-height:1.1;color:#e8c586; }.bounty-name { font-size:1.35rem;line-height:1.35;font-weight:600;overflow-wrap:anywhere; }
.bounty-status { font-size:.95rem;color:#d5c9b2; }.bounty-poster-facts { display:flex;flex-direction:column;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid #ad8c4e33; }.bounty-poster-reward,.bounty-poster-deadline { display:flex;flex-direction:column;gap:.15rem; }
.bounty-label { font-size:.85rem;letter-spacing:.04em;color:#c0b298; }.bounty-poster-reward strong { font-size:1.8rem;color:#f0d19a;line-height:1.2;overflow-wrap:anywhere; }.bounty-poster-deadline strong { font-size:1.15rem;font-weight:600; }.bounty-open-hint { color:#d6b673;font-size:1rem;text-align:right;border-top:1px solid #ad8c4e33;padding-top:.7rem; }
.bounty-poster-button:focus-visible { outline:2px solid #f0ce8c;outline-offset:5px; }
@media(hover:hover) { .bounty-poster-button:hover { transform:translateY(-4px);border-color:#d7b77a;box-shadow:0 12px 20px #0008; } }
body.bounty-open { overflow:hidden; }
#bounty-dialog { box-sizing:border-box;position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0 3vw 3rem;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 0,#30332a44,transparent 65%),#080e16;color:var(--texte);overflow:auto; }
#bounty-dialog::backdrop { background:#080e16; }
.bounty-toolbar { position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0;background:#080e16f5;border-bottom:1px solid #a98a4f55; }
.bounty-toolbar h2 { margin:0;font-size:1.4rem;color:#e8c586;line-height:1.25;overflow-wrap:anywhere; }.bounty-toolbar button { white-space:nowrap;font-size:1.1rem;min-height:44px; }.bounty-escape { color:#b6ac98;font-size:.9rem;white-space:nowrap; }
.bounty-detail-list { max-width:1250px;margin:1.7rem auto 0;padding:0;list-style:none; }.bounty-detail-list .contrat { width:100%;margin:0;padding:clamp(1rem,3vw,3rem);min-height:65vh;box-sizing:border-box; }.bounty-detail-list .contrat-corps { min-width:0; }.bounty-detail-list .contract-mission-type { font-size:clamp(2rem,5vw,3.5rem); }.bounty-detail-list .contrat h3 { font-size:1.7rem; }.bounty-detail-list .contrat-conditions { max-width:none;white-space:pre-wrap; }.bounty-detail-list .contrat-cote { max-width:270px;min-width:200px; }.bounty-detail-list .gestion-actions { align-self:end; }.bounty-notice,.bounty-dialog .erreur-doc { max-width:1250px;margin-inline:auto; }.bounty-notice:empty,#bounty-dialog>.erreur-doc:empty { display:none; }
@media(max-width:760px) { #contracts-list.bounty-board { padding:1rem;gap:1.2rem; }.bounty-toolbar { flex-wrap:wrap;gap:.4rem; }.bounty-toolbar h2 { width:100%;font-size:1.2rem; }.bounty-escape { display:none; }.bounty-detail-list .contrat { grid-template-columns:2.3rem minmax(0,1fr);padding:1rem; }.bounty-detail-list .contrat-cote { grid-column:1/-1;min-width:0;max-width:none; }.bounty-detail-list .contract-facts { grid-template-columns:1fr; }.bounty-detail-list .contract-deadline { border-left:0;border-top:1px solid #b698593b; }.bounty-detail-list .contrat-conditions { margin-left:-3.1rem; }.bounty-detail-list .contrat h3 { font-size:1.4rem; } }
@media(prefers-reduced-motion:reduce) { .bounty-poster-button { transition:none; }.bounty-poster-button:hover { transform:none; } }
/* Une carte agrandie au centre, le tableau reste visible derrière le voile. */
#contracts-list.bounty-board { grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr)); }
.bounty-poster-button { min-height:440px; }
#bounty-dialog { inset:0;width:min(1160px,94vw);height:auto;max-height:92vh;max-height:92dvh;margin:auto;padding:0 1.5rem 1.5rem;border:1px solid #b4976077;border-radius:5px;box-shadow:0 25px 100px #000b; }
#bounty-dialog::backdrop { background:#030609ad;backdrop-filter:blur(3px); }
.bounty-detail-list { margin-top:1rem; }.bounty-detail-list .contrat { min-height:0;padding:1.5rem; }
#bounty-dialog>.erreur-doc { max-width:1250px;margin-inline:auto; }
@media(max-width:760px) { #bounty-dialog { width:96vw;max-height:94dvh;padding:0 .65rem .8rem; }.bounty-detail-list .contrat { padding:.8rem; }.bounty-toolbar { padding:.6rem 0; }.bounty-poster-button { min-height:400px; } }
/* Cinq affiches par rangée sur ordinateur, avec un tableau plus large. */
.conteneur:has(#dashboard:not([hidden]) #contracts-panel:not([hidden])) { max-width:1860px;padding-inline:clamp(1rem,2vw,2rem); }
#contracts-list.bounty-board { grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;padding:1.4rem; }
.bounty-poster-button { padding-inline:1rem; }.bounty-poster-top { flex-wrap:wrap; }.bounty-kicker { font-size:.75rem; }.bounty-type { font-size:clamp(1.45rem,1.9vw,2rem);overflow-wrap:anywhere; }.bounty-name { font-size:1.2rem; }
@media(max-width:1199px) { #contracts-list.bounty-board { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:799px) { #contracts-list.bounty-board { grid-template-columns:repeat(2,minmax(0,1fr));padding:1rem; } }
@media(max-width:559px) { #contracts-list.bounty-board { grid-template-columns:minmax(0,1fr); } }

/* Un papier commun au dépôt et à la lecture des contrats. */
:root { --paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .16 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E"); }
#document,.bounty-detail-list .contract-paper {
 --texte:#302b23;--secondaire:#635640;--sumi:#302b23;--gold-soft:#635640;
 color:#302b23;background-color:#efe4cc;color-scheme:light;
 background-image:var(--paper-grain),radial-gradient(ellipse at 0 50%,#9e753e25,transparent 40%),linear-gradient(90deg,#c6ab7833,transparent 8% 92%,#c6ab7833);
 border:1px solid #c5af81;border-radius:0;box-shadow:inset 0 0 45px #a27b3b22,0 12px 30px #0004;
}
#document h2,#document .doc-tete,#document .art-titre,#document label[for],#document legend,#document .num,
.contract-paper .contract-mission-type,.contract-paper h3,.contract-paper .contrat-prime,.contract-paper .contract-deadline strong { color:#76551d; }
#document .sous,#document .preambule,#document .options-note,#document .clauses,#document .prime-note,#document .required-note,#document .signe-nom,
.contract-paper .muted,.contract-paper .contrat-meta,.contract-paper .contrat-prime small,.contract-paper .deadline-label,.contract-paper .deadline-detail,.contract-paper .contract-deadline small,.contract-paper .reward-label,.contract-paper .identite-message,.contract-paper .admin-contract-meta { color:#635640; }
#document .required-mark { color:#85601f; }#document .kanji-col { color:#76551d; }#document .petit-sceau { color:#90462e;border-color:#90462e; }
#document .trait,#document .conditions,.contract-paper .saisie,.contract-paper select,.contract-paper textarea,.contract-paper input:not([type=checkbox]):not([type=radio]) { color:#302b23;background-color:#fffaf080;border-color:#a18a6066;box-shadow:inset 0 1px 3px #775f1f0a; }
#document .trait:focus,#document .conditions:focus,.contract-paper .saisie:focus { color:#302b23;background-color:#fffaf0;outline:2px solid #8a672b;outline-offset:2px;border-color:#8a672b; }
#document select option,.contract-paper select option { color:#302b23;background:#f4ebd7; }
#document .trait::placeholder,#document .conditions::placeholder,.contract-paper input::placeholder { color:#776a55; }
#document select.trait { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2376551d' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:12px 8px;background-position:right .75rem center;padding-right:2.2rem; }
#document .article,#document .mission-options,#document .villages-acces,#document .doc-tete,#document .clauses,#document .signe-nom,.contract-paper .contrat-meta,.contract-paper .contrat-cote,.contract-paper .gestion-actions,.contract-paper .gestion-contrat,.contract-paper .villages-acces { border-color:#92744155; }
#document .classe span,.contract-paper .badge { color:#76551d;border-color:#9a7b47;background:#a68b5020; }
#document .classe input:checked+span { color:#302613;background:#d9bc78;box-shadow:inset 0 0 0 3px #d9bc78,inset 0 0 0 4px #76551d; }
#document input[type=checkbox],.contract-paper input[type=checkbox] { accent-color:#876127; }
.contract-paper .contract-facts { background:#f8efdc99;border-color:#a28a5c66; }.contract-paper .contract-facts .contract-deadline { border-color:#a28a5c66; }
.contract-paper .contract-facts .is-urgent,.contract-paper .contract-facts .is-expired { background:#bf743c18;box-shadow:inset 3px 0 #96542d; }
.contract-paper .etat { color:#634a20;border-color:#9b7e48;background:#b59a5815; }.contract-paper .etat-personnel { color:#4e5838; }
.contract-paper .contract-admin-info,.contract-paper .declaration,.contract-paper .realisation,.contract-paper .precision,.contract-paper .confirmation { color:#302b23;background:#faf3e378;border-color:#ac936666; }
.contract-paper .gestion-actions>summary,.contract-paper .gestion-contrat>summary,.contract-paper label,.contract-paper .bouton-texte,.contract-paper .bouton-liberer,#document .bouton-texte { color:#70501b; }
.contract-paper .bouton-texte:hover,.contract-paper .bouton-liberer:hover,#document .bouton-texte:hover { color:#3e2b0e; }
.contract-paper :focus-visible,#document :focus-visible { outline-color:#76551d; }
.contract-paper .erreur-doc,#document .erreur-doc,#document .field-error { color:#9e2921; }
.paper-heading { grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:2px solid #9b7c4255;padding-bottom:1rem;margin-bottom:.5rem;color:#76551d;font-weight:700;font-size:1rem; }
.paper-seal { color:#914930;font-family:var(--pinceau);font-size:1.8rem;letter-spacing:.12em; }
#bounty-dialog { height:fit-content;background:transparent;border:0;box-shadow:none;padding:0 1.2rem 1.5rem; }
.bounty-toolbar { border:1px solid #a98a4f55;border-radius:4px;background:#0b1219fa;padding:.7rem 1rem;margin-bottom:1.3rem; }
.bounty-scroll { margin:0 .5rem; }.bounty-detail-list { margin:0 6px; }.bounty-detail-list .contract-paper { padding:clamp(1.2rem,3vw,2.5rem); }
@media(max-width:760px) { #bounty-dialog { padding:0 .45rem 1rem; }.bounty-toolbar { padding:.6rem; }.bounty-scroll { margin-inline:.35rem; }.bounty-detail-list { margin-inline:3px; }.bounty-detail-list .contract-paper { padding:1rem .7rem; }.paper-heading { font-size:.85rem; }.bounty-scroll .baton::before,.bounty-scroll .baton::after { width:13px; } }
.contract-paper .etat-personnel { color:#43522e;background:#e0dfbf;border:1px solid #88916b80;border-left:3px solid #758257;font-size:1rem;line-height:1.5; }
.contract-paper .contrat-cote { flex-direction:column;align-items:center;text-align:center; }
.contract-paper .contrat-cote>button { align-self:center; }
.contract-paper .contrat-cote .confirmation { width:100%;box-sizing:border-box;align-items:center;text-align:center;padding:1rem .65rem;border:1px solid #ac936666;gap:1rem; }
.contract-paper .confirmation>p { margin:0;width:100%;text-align:center;line-height:1.5; }
.contract-paper .confirmation-actions { width:100%;justify-content:center;flex-wrap:wrap;gap:.7rem; }
.contract-paper .confirmation-actions button { width:auto;min-height:44px; }
.contract-paper .identite-message { display:flex;justify-content:center;align-items:center;gap:.4rem; }
.contract-paper .declaration { text-align:left;width:100%;box-sizing:border-box; }
.contract-paper .team-declaration { grid-column:1/-1;padding:1.4rem;margin:1.2rem 0 0;border:1px solid #a88a514d;border-top:2px solid #92703a;background:#f9f1df66; }
.contract-paper .team-heading h3 { margin:0 0 .35rem;font-size:1.5rem;color:#60461e; }.contract-paper .team-heading p { margin:0;color:#635640;font-size:1rem;line-height:1.5; }
.team-layout { display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,1fr);gap:1.7rem;margin-top:1.3rem; }.team-picker>label { display:grid;gap:.5rem;font-size:1rem;font-weight:600; }.team-picker .saisie { width:100%;min-width:0;box-sizing:border-box;margin:0;font-size:1rem; }
.team-members { display:flex;flex-wrap:wrap;align-content:start;gap:.5rem;max-height:240px;overflow:auto;margin-top:.8rem; }.team-declaration .team-members label { display:flex;align-items:center;gap:.55rem;padding:.55rem .8rem;margin:0;border:1px solid #9d845455;border-radius:2px;color:#4c412d;background:#fffaf066;cursor:pointer;font-size:1.05rem; }.team-declaration .team-members label:has(input:checked) { border-color:#80602d;background:#cbb37b44;box-shadow:inset 0 -2px #80602d; }.team-members input { width:16px;height:16px;margin:0; }.team-members label:focus-within { outline:2px solid #80602d;outline-offset:2px; }
.team-review { border-left:1px solid #a88a514d;padding-left:1.5rem; }.team-summary-label { display:block;color:#635640;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase; }.team-chips { display:flex;flex-wrap:wrap;gap:.4rem;margin:.65rem 0; }.team-chips span { padding:.25rem .55rem;background:#82622b13;border:1px solid #9d845433;color:#493b25;font-size:1.1rem;font-weight:700; }.team-summary small { color:#635640;font-size:.9rem; }.team-actions { display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:1.2rem; }.team-declaration .team-actions button { margin:0; }.team-actions .bouton-shu { font-size:1rem;padding:.65rem .9rem; }.team-empty { color:#635640;font-size:1rem;line-height:1.5; }
@media(max-width:700px) { .contract-paper .team-declaration { padding:1rem; }.team-layout { grid-template-columns:minmax(0,1fr);gap:1rem; }.team-review { border-left:0;border-top:1px solid #a88a514d;padding:1rem 0 0; }.team-actions { gap:1rem; }.team-actions .bouton-shu { width:100%; }.contract-paper .team-heading h3 { font-size:1.3rem; } }
/* Les actions font partie du parchemin, avec une encre sombre bien lisible. */
:is(#document,.contract-paper) :is(.bouton-clair,.bouton-shu,.sceller) {
 color:#503712;background-color:#e4d2ac;background-image:var(--paper-grain);
 border:1px solid #96713c;border-radius:2px;box-shadow:inset 0 1px #fff8e6a6;
 font-weight:700;text-shadow:none;
}
:is(#document,.contract-paper) :is(.bouton-clair,.bouton-shu,.sceller):hover:not(:disabled) {
 color:#392608;background-color:#d9c091;background-image:var(--paper-grain);
 border-color:#6f4c1d;box-shadow:inset 0 1px #fff8e666;filter:none;transform:none;
}
:is(#document,.contract-paper) :is(.bouton-clair,.bouton-shu,.sceller):active:not(:disabled) { background-color:#ceb380;box-shadow:inset 0 1px 3px #60401633; }
:is(#document,.contract-paper) :is(.bouton-clair,.bouton-shu,.sceller):focus-visible { outline:2px solid #76551d;outline-offset:3px; }
.filtres-avances { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:760px) { .filtres-avances { grid-template-columns:1fr; } }

/* Le rang reste écrit : la couleur apporte un second repère. */
[data-rank="D"],.badge.c-D,.classe:has(input[value="D"]) { --rank:#a8c8a0;--rank-edge:#6d9266;--rank-bg:#25392a; }
[data-rank="C"],.badge.c-C,.classe:has(input[value="C"]) { --rank:#8ed9cf;--rank-edge:#4b9c92;--rank-bg:#173b3a; }
[data-rank="B"],.badge.c-B,.classe:has(input[value="B"]) { --rank:#a2c7f4;--rank-edge:#618fc3;--rank-bg:#223653; }
[data-rank="A"],.badge.c-A,.classe:has(input[value="A"]) { --rank:#d9b8ed;--rank-edge:#a17bba;--rank-bg:#3c284d; }
[data-rank="S"],.badge.c-S,.classe:has(input[value="S"]) { --rank:#ffe3a3;--rank-edge:#d0a54f;--rank-bg:#4b3515; }
.bounty-rank,.contract-paper .badge,.badge[class*="c-"],#document .classe span { position:relative;overflow:hidden;color:var(--rank);background:var(--rank-bg);border:1px solid var(--rank-edge);box-shadow:none; }
.bounty-rank { display:inline-flex;align-items:center;justify-content:center;padding:.15rem .5rem;font-size:.95rem;line-height:1.5;border-radius:2px; }
.bounty-poster-button { border-top:3px solid var(--rank-edge); }
#document .classe input:checked+span { color:var(--rank);background:var(--rank-bg);border-color:var(--rank-edge);box-shadow:0 0 0 2px #efe4cc,0 0 0 4px var(--rank-edge); }
.bounty-poster[data-rank="S"] .bounty-poster-button { border-color:#bd944e;box-shadow:0 6px 16px #0007,0 0 20px #ddb45521,inset 0 0 25px #d7a13f09; }
.bounty-poster[data-rank="S"] .bounty-rank,.contract-paper .badge.c-S,.badge.c-S { color:#ffe7ad;background:linear-gradient(120deg,#39280f,#655022,#39280f);border-color:#e2b85f;box-shadow:0 0 14px #dca83d44,inset 0 0 8px #ffdb801c;text-shadow:0 0 8px #f5cd6555; }
.bounty-poster[data-rank="S"] .bounty-rank::after,.badge.c-S::after { content:"";position:absolute;inset:-30% -60%;background:linear-gradient(110deg,transparent 35%,#fff1be70 49%,transparent 63%);transform:translateX(-110%);animation:rank-s-glint 6s ease-in-out infinite;pointer-events:none; }
@keyframes rank-s-glint { 0%,65% { transform:translateX(-110%); } 86%,100% { transform:translateX(110%); } }
@media(prefers-reduced-motion:reduce) { .bounty-poster[data-rank="S"] .bounty-rank::after,.badge.c-S::after { animation:none;display:none; } }
/* Choix du rang sur papier : une ligne d’encre colorée, une sélection sobre. */
#document .classe:has(input[value="D"]) { --rank-ink:#42663d;--rank-wash:#dfe6ce; }
#document .classe:has(input[value="C"]) { --rank-ink:#256c65;--rank-wash:#d5e7dc; }
#document .classe:has(input[value="B"]) { --rank-ink:#355c8b;--rank-wash:#dbe3ed; }
#document .classe:has(input[value="A"]) { --rank-ink:#725083;--rank-wash:#e6dceb; }
#document .classe:has(input[value="S"]) { --rank-ink:#815913;--rank-wash:#edddad; }
#document .classe span { width:3.2rem;height:3rem;color:var(--rank-ink);background:#fff8e94d;border:1px solid #a58b5d55;border-bottom:3px solid var(--rank-ink);border-radius:4px;font-weight:600;box-shadow:none;transform:none; }
#document .classe input:checked+span { color:var(--rank-ink);background:var(--rank-wash);border-color:var(--rank-ink);box-shadow:inset 0 0 0 1px var(--rank-ink);transform:none;font-weight:800; }
#document .classe input:hover+span { background:var(--rank-wash); }

.outils-registre { grid-template-columns:1fr; }
.contract-filter-buttons { border-top:1px solid #b5985833;border-bottom:1px solid #b5985833;padding:.6rem 0;margin:1rem 0; }
.contract-filter-group { margin:0;padding:.55rem 0;border:0;min-width:0;display:grid;grid-template-columns:190px minmax(0,1fr);align-items:start;gap:.8rem; }
.contract-filter-group legend { float:left;width:190px;padding:.5rem 0;color:#bdb099;font-size:1rem;font-weight:600; }
.contract-filter-choices { display:flex;flex-wrap:wrap;gap:.45rem;min-width:0; }
.contract-filter-button,#status-filters .filtre { display:inline-flex;justify-content:center;align-items:center;gap:.35rem;padding:.4rem .75rem;min-height:42px;border:1px solid #ac936440;border-radius:3px;background:#111922;color:#d5c8b1;font-family:var(--lecture);font-size:1rem;font-weight:500;line-height:1.35;cursor:pointer; }
.contract-filter-button:hover,#status-filters .filtre:hover { color:#f2d49a;border-color:#b79a60; }
.contract-filter-button[aria-pressed="true"],#status-filters .filtre[aria-pressed="true"] { color:#ffe1a1;background:#332d20;border-color:#c6a264;box-shadow:inset 0 -2px #c6a264;font-weight:700; }
.contract-filter-button[aria-pressed="true"]::before { content:none; }
.contract-filter-button[data-rank] { border-color:var(--rank-edge);color:var(--rank); }
.contract-filter-button[data-rank][aria-pressed="true"] { background:var(--rank-bg);box-shadow:inset 0 -2px var(--rank-edge); }
.contract-filter-button:focus-visible,#status-filters .filtre:focus-visible { outline:2px solid #ebcd91;outline-offset:3px; }
#status-filters { gap:.45rem;padding:.4rem 0;border:0; }
@media(max-width:760px) { .contract-filter-group { display:block; }.contract-filter-group legend { float:none;width:auto;padding:.3rem 0 .5rem; }.contract-filter-choices { gap:.4rem; } }
.guild-experience #dashboard .contract-filter-button[data-rank]{min-width:94px;padding:.55rem .9rem;border:1px solid color-mix(in srgb,var(--rank-edge) 45%,transparent);background:linear-gradient(90deg,var(--rank-bg),var(--rank-bg)) left/0% 100% no-repeat #101820;color:var(--rank);box-shadow:none;font-weight:600;transition:background-size .22s ease,border-color .22s ease,box-shadow .22s ease}
.guild-experience #dashboard .contract-filter-button[data-rank]:hover{border-color:var(--rank-edge);background-size:15% 100%}
.guild-experience #dashboard .contract-filter-button[data-rank][aria-pressed=true]{background-size:100% 100%;border-color:var(--rank);box-shadow:inset 0 0 15px color-mix(in srgb,var(--rank-edge) 24%,transparent),0 0 13px color-mix(in srgb,var(--rank-edge) 28%,transparent);text-shadow:0 0 9px color-mix(in srgb,var(--rank) 35%,transparent)}
@media(prefers-reduced-motion:reduce){.guild-experience #dashboard .contract-filter-button[data-rank]{transition:none}}

.bounty-poster-button { color:#302b23;background-color:#efe4cc;background-image:var(--paper-grain),linear-gradient(90deg,#ab813f22,transparent 10% 90%,#ab813f22);border-right-color:#b6a071;border-bottom-color:#b6a071;border-left-color:#b6a071;box-shadow:inset 0 0 26px #9f7b3822,0 7px 15px #0007; }
.bounty-kicker,.bounty-status,.bounty-label { color:#65573e; }.bounty-type,.bounty-poster-reward strong,.bounty-open-hint { color:#77551e; }.bounty-name { color:#302b23; }
.bounty-poster-top,.bounty-poster-facts,.bounty-open-hint { border-color:#9a7b493d; }
.bounty-poster-deadline { padding:.65rem .75rem;border:1px solid #a48a5866;border-left:3px solid #a17e37;background:#d8c39355; }
.bounty-poster-deadline strong { color:#674817;font-size:1.4rem;font-weight:700;line-height:1.25; }.bounty-poster-deadline .bounty-label { font-size:.83rem; }
.bounty-poster-deadline.deadline-soon { border-color:#a95a37;background:#edd0ad88; }.bounty-poster-deadline.deadline-over { border-color:#a45445;background:#e9c7b977; }.bounty-poster-deadline.deadline-over strong { color:#8b3325; }
.deadline-caption { color:#824023;font-size:.88rem;font-weight:600;margin-top:.25rem; }
.priority-stamp { display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;padding:.25rem .6rem;color:#963d2b;border:1px solid #a34a35;background:#ad4d3110;font-size:.85rem;line-height:1.25;text-transform:uppercase;font-weight:800;letter-spacing:.08em; }
.bounty-poster.is-priority .bounty-poster-button { box-shadow:inset 3px 0 #a34a35,inset 0 0 26px #9f7b3822,0 7px 15px #0007; }
.bounty-poster[data-rank="S"] .bounty-poster-button { box-shadow:inset 0 0 26px #b08b3822,0 7px 15px #0007,0 0 18px #ddb45525; }
.bounty-poster.is-priority[data-rank="S"] .bounty-poster-button { box-shadow:inset 3px 0 #a34a35,inset 0 0 26px #b08b3822,0 7px 15px #0007,0 0 18px #ddb45525; }
.paper-heading { flex-wrap:wrap; }.paper-heading .priority-stamp { margin-left:auto;align-self:center; }.paper-heading .paper-seal { order:2; }
.priority-management { padding:1rem 0;border-bottom:1px solid #9a7b493d;margin-bottom:1rem; }.priority-management p { margin-top:0; }
@media(hover:hover) { .bounty-poster-button:hover { border-color:#a48954;box-shadow:inset 0 0 26px #9f7b3822,0 12px 22px #0008; } }
.bounty-poster.is-priority .bounty-poster-button,
.bounty-poster.is-priority .bounty-poster-button:hover { border:2px solid #a33f30;outline:1px solid #a33f3033;outline-offset:3px; }
.bounty-detail-list .contract-paper.is-priority { border:2px solid #a33f30;box-shadow:inset 0 0 45px #a27b3b22,0 0 0 3px #a33f3026,0 12px 30px #0004; }
.priority-assignees { border:1px solid #ac936666;padding:.8rem;margin:1rem 0;display:flex;flex-wrap:wrap;gap:.7rem 1.2rem; }
.priority-assignees legend { color:#76551d;font-weight:700;padding:0 .35rem; }
.priority-assignees label { display:flex;align-items:center;gap:.4rem; }

/* Les mandats officiels utilisent le même papier beige, plus foncé, et un sceau bronze. */
.bounty-poster.is-guild-contract .bounty-poster-button,
.bounty-detail-list .contract-paper.is-guild-contract,#document.is-guild-contract {
 background-color:#c8b28b;background-image:var(--paper-grain),linear-gradient(90deg,#77502038,transparent 12% 88%,#77502038);
 border-color:#8a6634;
 box-shadow:inset 0 0 30px #76511e26,0 8px 22px #0005;
}
.bounty-poster.is-guild-contract .bounty-kicker { color:#62471f; }
/* Cire bordeaux coulée : rebord irrégulier, cuvette et empreinte en creux. */
.guild-contract-seal { display:flex;align-items:center;justify-content:flex-end;padding:1rem .5rem .7rem;color:#f2b09b;line-height:1;isolation:isolate; }
.guild-seal-mark { position:relative;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex:none;width:132px;height:128px;padding:23px 15px;border:1px solid #3d1018;border-radius:47% 53% 49% 51% / 52% 46% 54% 48%;transform:rotate(-9deg);background:radial-gradient(ellipse at 28% 12%,#d38170aa,transparent 38%),radial-gradient(ellipse at 70% 90%,#230811aa,transparent 54%),linear-gradient(140deg,#923d46,#5f202d 55%,#812a36);box-shadow:inset 2px 3px 3px #f0ac8680,inset -3px -4px 3px #250810cc,0 3px 0 #45121d,2px 7px 8px #24160d80,4px 13px 15px #24160d35; }
.guild-seal-mark::before { content:'';position:absolute;inset:11px;border-radius:50%;border:1px solid #3c111e;background:radial-gradient(ellipse at 70% 88%,#a64e5150,transparent 60%),linear-gradient(145deg,#55202d,#853740);box-shadow:inset 1px 3px 4px #26081099,inset -1px -2px 2px #ed9a7570,0 1px 1px #e6a78599;z-index:-1; }
.guild-seal-mark::after { content:'';position:absolute;inset:5px;border-radius:48% 52% 46% 54%;border-top:1px solid #f8b99355;border-left:1px solid #f8b99322;pointer-events:none; }
.guild-seal-mark svg { width:94px;height:39px;opacity:.85;filter:brightness(0) saturate(100%) invert(15%) sepia(32%) saturate(1320%) hue-rotate(301deg) brightness(83%) drop-shadow(0 1px .45px #f4aa87); }
.guild-stamp-title { color:#39101c;font-family:Georgia,serif;font-weight:700;font-size:9px;letter-spacing:.14em;text-shadow:0 1px .5px #e79b80; }
.guild-stamp-caption { color:#39101c;font-family:Georgia,serif;font-size:6px;letter-spacing:.1em;text-shadow:0 1px .5px #e79b80; }
.bounty-poster .guild-contract-seal { padding:1rem .2rem .7rem;margin:0; }
.contract-paper.is-guild-contract>.guild-contract-seal { position:absolute;right:1.5rem;bottom:1.5rem;margin:0;padding:0;pointer-events:none;z-index:-1;opacity:.16; }
.contract-paper.is-guild-contract .paper-heading { border-bottom-color:#94713b77; }
.guild-post-option { display:flex;align-items:center;gap:.6rem;margin:.7rem 0 1.2rem;padding:.8rem 1rem;border:1px solid #94713b77;color:#513917;background:#a9864c20;font-weight:700; }
.guild-post-option input { width:18px;height:18px; }
#document.is-guild-contract #f-commanditaire { color:#513917;font-weight:700; }
.bounty-poster.is-guild-contract.is-priority .bounty-poster-button,
.bounty-detail-list .contract-paper.is-guild-contract.is-priority { border:2px solid #a33f30; }
.is-guild-contract .bounty-name,.is-guild-contract .bounty-type,.is-guild-contract .bounty-kicker,.is-guild-contract .bounty-open-hint,.is-guild-contract .bounty-poster-reward strong,
.contract-paper.is-guild-contract .contract-mission-type,.contract-paper.is-guild-contract h3,.contract-paper.is-guild-contract .contrat-prime,.contract-paper.is-guild-contract .contrat-conditions,
#document.is-guild-contract .art-titre,#document.is-guild-contract h2 { color:#432e17; }
.is-guild-contract .bounty-status,.is-guild-contract .bounty-label,.contract-paper.is-guild-contract .muted,.contract-paper.is-guild-contract .contrat-meta,#document.is-guild-contract .sous,#document.is-guild-contract .preambule,#document.is-guild-contract .options-note,#document.is-guild-contract .required-note,#document.is-guild-contract .clauses { color:#51422c; }
/* Une signature sobre plutôt qu'un gros bouton rempli. */
#document #bouton-sceller { background:transparent;border:0;border-bottom:2px solid #76551d;border-radius:0;box-shadow:none;padding:.65rem .2rem;gap:.7rem;color:#503712;min-height:48px; }
#document #bouton-sceller .sceller-marque { display:none; }
#document #bouton-sceller::after { content:'→';font-size:1.15em;font-weight:400; }
#document #bouton-sceller:hover:not(:disabled) { background:#76551d0a;color:#2e200d;border-bottom-color:#463112;box-shadow:none; }
#document #bouton-sceller:focus-visible { outline:2px solid #76551d;outline-offset:5px; }

.personal-card { display:grid;grid-template-columns:minmax(220px,32%) 1fr;max-width:1100px;margin:0 auto 2.5rem;border:1px solid #a98c5266;background:linear-gradient(120deg,#1e2b31,#111b23);box-shadow:0 18px 45px #0004;overflow:hidden; }
.personal-portrait { position:relative;min-height:440px;background:radial-gradient(ellipse at 50% 30%,#34454a,#101920 80%);border-right:1px solid #a98c5266;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem; }
.personal-portrait>img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }.portrait-placeholder svg { width:110px;height:130px;opacity:.45; }.portrait-placeholder-label { color:#bba77e;font-size:1rem;letter-spacing:.1em; }
.personal-card-body { padding:clamp(1.2rem,3vw,2.5rem); }.personal-eyebrow { font-size:.8rem;color:#bba77e;text-transform:uppercase;letter-spacing:.15em;margin:0 0 .6rem; }.personal-card h2 { font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:0 0 .6rem;color:#efd29b;overflow-wrap:anywhere; }.personal-identity { margin:.5rem 0;font-size:1.2rem; }.personal-card .muted { margin:.3rem 0 1rem; }
.personal-rank { display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;color:var(--rank,#e5c78d);background:var(--rank-bg,#2b312f);border:1px solid var(--rank-edge,#b99a60);padding:.35rem .7rem;font-weight:700;font-size:1rem; }
.personal-stats { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1.4rem 0; }.personal-stats .tablette { margin:0;padding:.8rem;text-align:left;min-width:0;background:#0d151b66; }.personal-stats .valeur { font-size:1.7rem; }.personal-stats .libelle { font-size:.95rem; }
.portrait-tools { display:grid;gap:.5rem;padding-top:1rem;border-top:1px solid #aa8d5133; }.portrait-tools>label { font-weight:700;color:#e3c38a; }.portrait-tools small { color:#bcb19e;font-size:.85rem; }.portrait-file { max-width:100%;width:100%;font-family:inherit;font-size:.95rem;color:#d8cbb4; }.portrait-file::file-selector-button { background:#263238;color:#e3c38a;border:1px solid #a58a5366;border-radius:2px;padding:.55rem .7rem;margin-right:.7rem;cursor:pointer;font:inherit; }
.personal-portrait .portrait-tools { position:absolute;bottom:.85rem;right:.85rem;display:flex;align-items:center;gap:.4rem;padding:0;border:0;z-index:1; }
.portrait-edit-button,.portrait-remove-button { min-height:36px;padding:.3rem .65rem;border:1px solid #b69a6055;border-radius:3px;background:#101820ed;color:#e6cb94;font:600 .9rem var(--lecture);cursor:pointer;box-shadow:0 2px 9px #0003; }
.portrait-edit-button:hover,.portrait-remove-button:hover { background:#263238;border-color:#b69a60; }.portrait-remove-button { width:36px;padding:0;font-size:1.35rem; }.personal-card-body>.erreur-plaque:empty { display:none; }
.carte-membre.member-personal-card { padding:0;width:100%;max-width:none;margin:0;background:linear-gradient(120deg,#1e2b31,#111b23);border:1px solid #a98c5266;grid-template-columns:minmax(180px,28%) minmax(0,1fr); }
.member-personal-card .personal-portrait { min-height:390px; }.member-personal-card .personal-card-body { padding:1.6rem 2rem; }.member-personal-card h2 { font-size:2rem; }.member-card-badges { display:flex;align-items:center;flex-wrap:wrap;gap:.65rem; }.member-personal-card .personal-stats { margin:1.1rem 0; }.member-card-management { margin-top:1rem;padding-top:1rem;border-top:1px solid #a98c5244; }.member-card-management>summary { cursor:pointer;color:#d9bb83;font-size:1.05rem;font-weight:600; }.member-card-management>.muted { margin-top:.8rem; }.member-card-management .rang-admin { display:flex;align-items:center;flex-wrap:wrap;gap:.6rem; }.member-personal-card .historique h4 { margin-bottom:.3rem; }.member-personal-card .historique p { font-size:1rem; }
@media(max-width:650px) { .carte-membre.member-personal-card { grid-template-columns:minmax(0,1fr); }.member-personal-card .personal-portrait { min-height:0;height:280px; }.member-personal-card .personal-card-body { padding:1.2rem; }.member-personal-card .rang-admin label { width:100%; } }
.personal-history { max-width:1100px;margin:auto; }.personal-history>h2 { color:#e6c790;font-size:1.7rem; }.personal-history-row { display:flex;align-items:center;gap:1.1rem;padding:1.2rem 0;border-bottom:1px solid #b2935333; }.personal-history-row>div { flex:1;min-width:0; }.personal-history-row h3 { margin:0 0 .3rem;font-size:1.2rem;overflow-wrap:anywhere; }.personal-history-row p { margin:0;font-size:.95rem; }
.ranking-intro { max-width:800px;color:#bcb19e;line-height:1.6;margin-bottom:1.5rem; }.ranking-list { list-style:none;padding:0;display:grid;gap:.7rem; }.ranking-row { display:grid;grid-template-columns:60px minmax(0,1fr) auto 110px;align-items:center;gap:1.3rem;border:1px solid #b2935333;background:linear-gradient(100deg,#233037,#111b23);padding:1.2rem 1.5rem; }.ranking-position { color:#bfa674;font-size:1.9rem; }.ranking-name { display:grid;gap:.2rem; }.ranking-name strong { color:#e9d2a4;font-size:1.35rem;overflow-wrap:anywhere; }.ranking-name .muted { font-size:.95rem; }.ranking-score { display:grid;text-align:right; }.ranking-score strong { font-size:1.8rem;color:#f0d196;line-height:1.2; }.ranking-score span { font-size:.9rem;color:#bcb19e; }.ranking-row[data-place="1"] { border-color:#c2a263;background:linear-gradient(100deg,#3a3628,#182126); }.ranking-row.is-self { box-shadow:inset 3px 0 #d7b775; }
.bandeau #sound-toggle { position:absolute;left:clamp(1.1rem,4vw,2.5rem);top:50%;transform:translateY(-50%);width:34px;height:34px;border:1px solid transparent;border-radius:50%;background:transparent;color:#cfb57f;font-family:Georgia,serif;font-size:1.3rem;padding:0;cursor:pointer; }.bandeau #sound-toggle:hover { border-color:#c6a26455;background:#c6a26412; }.bandeau #sound-toggle[aria-pressed=false] { opacity:.55; }
@media(max-width:650px) { .personal-card { grid-template-columns:1fr; }.personal-portrait { min-height:0;height:340px;border-right:0;border-bottom:1px solid #a98c5266; }.personal-portrait>img { object-position:center 30%; }.personal-history-row { flex-wrap:wrap;gap:.65rem; }.personal-history-row>div { flex-basis:65%; }.ranking-row { grid-template-columns:30px minmax(0,1fr) auto;gap:.6rem;padding:.9rem; }.ranking-row .personal-rank { grid-column:2;grid-row:2;justify-self:start;font-size:.85rem; }.ranking-score { grid-column:3;grid-row:1 / span 2; }.ranking-position { font-size:1.4rem; }.ranking-name strong { font-size:1.15rem; }.ranking-score strong { font-size:1.5rem; }.bandeau #sound-toggle { width:28px;height:32px; } }
.personal-identity-editor { margin-top:1.3rem;border-top:1px solid #ae955538;padding-top:.8rem; }
.personal-identity-editor summary { cursor:pointer;color:#c6ac78;font-size:1rem; }
.personal-identity-editor form { display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1.2rem;margin-top:1rem; }
.personal-identity-editor label { font-size:1rem; }
.personal-identity-editor .saisie { display:block;width:100%;margin-top:.3rem;font-size:1.1rem; }
.personal-identity-editor form>p { grid-column:1/-1;margin:0;font-size:.95rem; }
.personal-identity-editor button { justify-self:start;min-height:44px; }
.identity-save-message { color:#e2c791; }
@media(max-width:540px) { .personal-identity-editor form { grid-template-columns:1fr; } }

.conteneur:has(#dashboard:not([hidden])) { max-width:1860px;padding-inline:clamp(1rem,2vw,2rem); }
#dashboard { display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(1.3rem,2.5vw,2.8rem);align-items:start; }
.dashboard-sidebar { position:sticky;top:1.2rem;padding:1.8rem 1rem 2.5rem;border:0;background:radial-gradient(ellipse at 0 30%,#b0945c0c,transparent 70%);box-shadow:none; }
.sidebar-caption { margin:0 .8rem .9rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#ac966d; }
.side-menu-summary { display:none; }
#dashboard #nav { display:flex;flex-direction:column;align-items:stretch;gap:.4rem;margin:0;padding:0;border:0;max-height:none;overflow:visible; }
#dashboard #nav .onglet { position:relative;display:block;text-align:left;white-space:normal;line-height:1.35;font-size:1.18rem;padding:.85rem 1rem .85rem 1.5rem;min-height:48px;width:100%;border:0;color:#c8bdab;background:transparent;border-radius:0; }
#dashboard #nav .onglet::before { content:'';position:absolute;left:0;top:50%;width:5px;height:5px;border:1px solid #8e7748;transform:translateY(-50%) rotate(45deg);opacity:.5; }
#dashboard #nav .onglet:hover { color:#f1d49b;background:transparent; }
#dashboard #nav .onglet[aria-current=page] { color:#f4d8a1;background:transparent;font-weight:700; }
#dashboard #nav .onglet[aria-current=page]::before { background:#e0b96f;border-color:#e0b96f;opacity:1; }
#dashboard #nav .onglet[aria-current=page]::after { content:'';position:absolute;left:1.5rem;right:1rem;bottom:.4rem;height:2px;background:linear-gradient(90deg,#d4ae69,#d4ae6980 70%,transparent);clip-path:polygon(0 25%,60% 0,100% 60%,88% 80%,14% 100%);transform:rotate(-.6deg); }
#dashboard #nav .onglet:focus-visible { outline:2px solid #c8aa70;outline-offset:-2px; }
#dashboard #nav [data-tab=messages],#dashboard #nav [data-tab=personnage] { margin-top:.65rem; }
.dashboard-content { min-width:0; }.dashboard-content .registre-tete { margin-top:0; }.dashboard-content #titre-espace { font-size:clamp(2.2rem,3.4vw,3.8rem); }.dashboard-content>.erreur-plaque:empty,.dashboard-content>.info-registre:empty { display:none; }
.dashboard-content #members-list { display:grid;grid-template-columns:minmax(0,1fr);gap:1.2rem; }
@media(max-width:1100px) and (min-width:801px) { #dashboard { grid-template-columns:235px minmax(0,1fr);gap:1.2rem; }#dashboard #nav .onglet { font-size:1.08rem; }.dashboard-content .registre-tete { flex-wrap:wrap; }.dashboard-content .member-tools { grid-template-columns:1fr 1fr; }.dashboard-content .member-tools>label:first-child { grid-column:1/-1; } }
@media(min-width:801px) and (max-height:850px) { .dashboard-sidebar { position:static; } }
@media(max-width:800px) { #dashboard { grid-template-columns:minmax(0,1fr);gap:1.5rem; }.dashboard-sidebar { position:static;padding:.3rem .65rem; }.sidebar-caption { display:none; }.side-menu-summary { display:list-item;cursor:pointer;padding:.75rem .3rem;color:#e7c88f;font-size:1.1rem;font-weight:700; }.side-menu[open] .side-menu-summary { border-bottom:1px solid #b0945c30;margin-bottom:.5rem; }#dashboard #nav { max-height:60dvh;padding-bottom:.4rem; }#dashboard #nav .onglet { padding:.7rem .65rem; }.dashboard-content .registre-tete { gap:1rem; }.dashboard-content #titre-espace { font-size:2.3rem; } }

/* Un registre ouvert : des marges, de l'encre et du papier, sans cases imbriquées. */
.dashboard-sidebar::after { content:'';position:absolute;right:0;top:1rem;bottom:2rem;width:1px;background:linear-gradient(transparent,#bc995747 20%,#bc995726 75%,transparent); }
.sidebar-caption { font-size:.85rem;margin-left:1.5rem;margin-bottom:1.5rem; }
.dashboard-content .tablette { border:0;border-radius:0;background:transparent;box-shadow:none;padding:1rem 1.3rem;border-left:1px solid #b293533d; }
.dashboard-content .tablette .valeur { font-size:2.3rem; }
.dashboard-content .tablette .libelle { font-size:1rem; }
.personal-card,.carte-membre.member-personal-card { border:0;border-radius:0;background:radial-gradient(ellipse at 0 40%,#25323980,transparent 78%);box-shadow:none;overflow:visible; }
.personal-portrait { border:0;background:radial-gradient(ellipse,#27373a88,transparent 75%); }
.personal-portrait>img { clip-path:none; }
.personal-stats { gap:1rem 1.5rem; }
.personal-stats .tablette { padding:.4rem 1rem;background:none; }
.ranking-list { gap:0; }
.ranking-row,.ranking-row[data-place="1"] { border:0;border-bottom:1px solid #b2935333;background:transparent; }
.ranking-row[data-place="1"] .ranking-position { color:#f3cc81;font-size:2.5rem; }
.ranking-row.is-self { box-shadow:none;background:linear-gradient(90deg,#b2935310,transparent); }
.contract-filter-buttons { border:0;position:relative;padding-block:.8rem; }
.contract-filter-buttons::before,.contract-filter-buttons::after { content:'';position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,#b5985855,transparent); }
.contract-filter-buttons::before { top:0; }.contract-filter-buttons::after { bottom:0; }
.contract-filter-button { border-color:transparent;border-bottom-color:#ac936435;border-radius:0;background:transparent;padding:.4rem .65rem; }
.contract-filter-button:hover { background:#b5985809;border-color:transparent;border-bottom-color:#b79a60; }
.contract-filter-button[aria-pressed="true"] { background:#b5985812;border-color:transparent;border-bottom-color:#c6a264;box-shadow:none; }
.contract-filter-button[data-rank] { border-color:transparent;border-bottom-color:var(--rank-edge); }
.contract-filter-button[data-rank][aria-pressed="true"] { background:transparent;box-shadow:inset 0 -2px var(--rank-edge); }
#contracts-list.bounty-board { border:0;box-shadow:inset 0 8px 20px #0003,inset 0 -8px 20px #0003;padding:1.7rem 1.4rem;row-gap:1.5rem; }
.bounty-poster { --paper-tilt:-.45deg;transform:rotate(var(--paper-tilt)); }
.bounty-poster:nth-child(3n+2) { --paper-tilt:.5deg; }.bounty-poster:nth-child(3n) { --paper-tilt:-.15deg; }
.bounty-poster-button { border-radius:2px 1px 7px 2px / 2px 6px 2px 5px; }
.bounty-pin { left:46%; }.bounty-poster:nth-child(2n) .bounty-pin { left:54%; }
.contract-paper .contract-facts { border:0;border-block:1px solid #9d7d4140;background:transparent;border-radius:0; }
.contract-paper .contract-reward { padding-left:0; }
.contract-paper .team-declaration { border:0;border-top:1px solid #9d7d4155;background:transparent; }
.contract-paper .team-members label,.contract-paper .team-chips span { border:0;border-bottom:1px solid #9d845455;background:transparent; }
@media(max-width:800px) {
 .dashboard-sidebar::after { display:none; }
 .dashboard-sidebar { border-bottom:1px solid #b0945c40;background:none; }
 #dashboard #nav { overflow-y:auto;overflow-x:hidden; }
 #dashboard #nav .onglet { padding-left:1.5rem; }
}
@media(max-width:559px) { .bounty-poster { transform:none; } }

/* Menus de jeu : nuit, or patiné, sélection au curseur et contenu progressif. */
#choose.game-hub { position:relative;isolation:isolate;max-width:1100px;min-height:calc(100dvh - 230px);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:2rem auto 3rem;padding:2rem 1rem; }
.game-hub::before { content:'';position:absolute;z-index:-1;inset:2% 9%;border-radius:50%;border:1px solid #b69b5730;outline:1px solid #b69b5714;outline-offset:35px;background:radial-gradient(ellipse,#3c304f50,transparent 70%);pointer-events:none; }
#choose.game-hub h1 { font-size:clamp(3.5rem,7vw,6rem);color:#e6c98b;font-weight:600;letter-spacing:.035em;margin:.3rem 0; }
.game-hub .surtitre { color:#aa956f;letter-spacing:.2em;font-size:.8rem; }
.game-hub-note { color:#b8af9e;font-size:1.12rem;margin:.2rem 0 1.6rem; }
.game-main-menu { position:relative;display:flex;flex-direction:column;gap:.1rem;min-width:0;width:min(440px,100%);padding:1.35rem 1.6rem;margin:0;background:linear-gradient(150deg,#231f2df2,#10141bee);border:1px solid #b59a586f;outline:1px solid #b59a581d;outline-offset:4px;box-shadow:0 18px 55px #0003; }
.game-main-menu::before,.game-main-menu::after { content:'◆';position:absolute;left:-5px;top:-12px;color:#bca36b;font-size:12px;line-height:20px; }.game-main-menu::after { left:auto;top:auto;bottom:-11px;right:-5px; }
.game-main-menu .voie,.game-main-menu .game-menu-entry { position:relative;display:block;text-align:left;width:100%;min-height:51px;margin:0;padding:.45rem 1rem .45rem 1.35rem;border:0;border-left:2px solid transparent;border-radius:0;background:none;box-shadow:none;color:#d7cfbc;font:500 1.32rem var(--lecture);cursor:pointer;transform:none; }
.game-main-menu .voie>span { display:none; }
.game-main-menu .voie strong { font:inherit;color:inherit;margin:0; }
.game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { color:#f7dfa4;background:linear-gradient(90deg,#bca36b33,transparent);border-left-color:#e6c98b;box-shadow:none;outline:0;transform:none; }
.game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible)::before { content:'◆';position:absolute;left:-.8rem;top:50%;transform:translateY(-50%);font-size:.65rem;color:#e6c98b; }
.game-key-hint { font-size:.85rem;color:#9b9589;letter-spacing:.06em;margin:1.8rem 0 0; }
.game-home { background:none;border:0;border-bottom:1px solid #b59a583b;color:#b7a47e;font:500 1rem var(--lecture);padding:0 0 .85rem;margin:0 0 1.3rem;cursor:pointer; }
.game-home::before { content:'‹';margin-right:.7rem; }.game-home:hover { color:#f4d8a1; }
.dashboard-sidebar { padding-top:.5rem; }
.sidebar-caption { margin:0 0 1.1rem;font-size:1.7rem;letter-spacing:.02em;text-transform:none;color:#e2c58c; }
#dashboard #nav { gap:.65rem; }
.game-nav-group>summary { position:relative;list-style:none;cursor:pointer;color:#d2c5ad;font-size:1.35rem;padding:.65rem 1rem .65rem 1.4rem;min-height:48px;line-height:1.3; }
.game-nav-group>summary::-webkit-details-marker { display:none; }
.game-nav-group>summary::before { content:'◇';position:absolute;left:0;color:#9f8654;font-size:.8rem;top:1rem; }
.game-nav-group[open]>summary { color:#f0d39a;background:linear-gradient(90deg,#b59a581d,transparent); }
.game-nav-group[open]>summary::before { content:'◆';color:#dfbe7d; }
#dashboard #nav .game-nav-group .onglet { font-size:1.07rem;min-height:42px;padding:.55rem .5rem .55rem 1.55rem;margin:0; }
#dashboard #nav .game-nav-group .onglet::before { display:none; }
.game-nav-group summary:focus-visible,.game-home:focus-visible { outline:1px solid #e0c28c;outline-offset:4px; }
.game-unread { float:right;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%;background:#baa06325;color:#ebcb8f;font-size:.9rem;margin-top:.15rem; }
.dashboard-content .registre-tete { align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #b59a5833; }
.dashboard-content #titre-espace { font-size:clamp(2rem,3vw,3rem); }
.dashboard-content #role-label,.dashboard-content #welcome { display:none; }
.dashboard-content .registre-tete #refresh { font-size:.95rem;color:#aaa08c; }
.game-filter-drawer,.game-journal { border:0;margin:.6rem 0;color:#b9aa8c; }
.game-filter-drawer>summary,.game-journal>summary { width:fit-content;cursor:pointer;font-size:1rem;padding:.35rem 0;min-height:38px; }
.game-filter-drawer>summary:hover,.game-journal>summary:hover { color:#f0d39a; }
.game-journal { margin-top:0; }.game-journal .bilan { margin:.7rem 0; }
.contract-filter-buttons { margin:.4rem 0; }
.outils-registre { max-width:620px;margin-top:.8rem; }
.outils-registre>label { font-size:1rem;color:#bfb39d; }
.outils-registre .recherche { background:transparent;border:0;border-bottom:1px solid #a48b5855;border-radius:0;padding:.55rem 0;font-size:1.1rem; }
.filter-tools { min-height:1.7rem;margin:.2rem 0 .5rem; }
.filter-tools #result-count { margin:0;font-size:.9rem;color:#b9ad96; }
#contracts-list.bounty-board { margin-top:.6rem; }
.game-board-tools { display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.7rem;margin:.7rem 0; }
.game-board-tools .outils-registre { flex:1 1 260px;max-width:none;margin:0; }
.game-board-tools .outils-registre>label { font-size:0; }
.game-board-tools .game-filter-drawer,.game-board-tools .game-journal { margin:0; }
.game-board-tools details[open] { flex:1 0 100%; }
#contracts-panel .game-board-tools[hidden],
#contracts-panel .filter-tools[hidden],
#contracts-panel #status-filters[hidden],
#dashboard:has(#contracts-panel:not([hidden])) #refresh { display:none!important; }
.game-demo-note summary { cursor:pointer;font-size:.8rem;color:#a79b80; }
.game-demo-note p { margin:.5rem 0 0; }
#bandeau-demo { margin-block:.7rem;padding:.2rem .8rem;background:none;border:0; }
#account-panel>#purge-area { grid-column:1/-1; }
#titre-espace:focus:not(:focus-visible) { outline:none; }
body:has(#dashboard:not([hidden])) #titre-espace:focus { outline:none; }
@media(max-width:800px) {
 #choose.game-hub { min-height:calc(100dvh - 180px);padding:1rem .5rem;margin:1rem auto; }
 .game-hub::before { inset:8% 0;outline:0; }
 .game-main-menu { width:min(440px,100%);padding:1rem; }
 .game-main-menu .voie,.game-main-menu .game-menu-entry { font-size:1.22rem; }
 .game-home { margin:0;padding:.5rem 0;border:0; }
 .dashboard-content .registre-tete { flex-wrap:wrap; }
 .game-key-hint { display:none; }
}
@media(prefers-reduced-motion:no-preference) {
 .game-main-menu { animation:game-menu-arrive .4s ease-out both; }
 @keyframes game-menu-arrive { from { opacity:0;translate:0 8px; }to { opacity:1;translate:0 0; } }
}

/* Écran-titre et menu temporaire, comme un carnet ouvert pendant une partie. */
#dashboard { display:block; }
.game-page-nav { display:flex;align-items:center;gap:1rem;margin:0 0 1.3rem;padding-bottom:.7rem;border-bottom:1px solid #bba16622; }
.game-nav-trigger,.game-home-shortcut,.game-nav-close { font:600 1.05rem var(--lecture);color:#d7bf90;background:none;border:0;padding:.5rem .7rem;min-height:44px;cursor:pointer; }
.game-nav-trigger { padding-left:0; }.game-nav-trigger::before { content:'☰';font-family:Georgia,serif;font-size:.9rem;margin-right:.7rem; }
.game-page-trail { border-left:1px solid #bba16644;padding-left:1rem;color:#918874;font-size:.95rem; }
.game-home-shortcut { margin-left:auto;color:#b1a58d;font-size:.95rem; }
.game-nav-trigger:hover,.game-home-shortcut:hover,.game-nav-close:hover { color:#ffe0a1; }
.game-navigation-dialog { box-sizing:border-box;position:fixed;inset:1rem auto 1rem 1rem;width:min(350px,calc(100vw - 2rem));height:calc(100dvh - 2rem);max-width:none;max-height:none;margin:0;padding:1.2rem 1.5rem;background:linear-gradient(150deg,#241f2bf7,#0b1119fa);color:#e6ca90;border:1px solid #b99b5d77;box-shadow:0 16px 70px #0009;overflow:auto; }
.game-navigation-dialog::backdrop { background:#05070bb0;backdrop-filter:blur(4px); }
.game-navigation-dialog .dashboard-sidebar { position:static;padding:0;border:0;background:none; }
.game-navigation-dialog .dashboard-sidebar::after { display:none; }
.game-navigation-dialog .sidebar-caption { display:block;margin-top:.5rem; }
.game-navigation-dialog .side-menu-summary { display:none; }
#dashboard .game-navigation-dialog #nav { max-height:none;overflow:visible; }
.game-nav-close { display:block;margin-left:auto;font-size:.95rem;padding-right:0; }.game-nav-close::after { content:'×';margin-left:.6rem;font:1.3rem Georgia,serif; }
body.game-menu-open { overflow:hidden; }
.game-navigation-dialog .game-home { margin-bottom:.7rem; }
#choose.game-hub { display:grid;grid-template-columns:1.2fr 1fr;align-content:center;gap:2rem 5rem;max-width:1220px;min-height:calc(100dvh - 205px);padding:2rem 3rem;margin:0 auto;overflow:clip; }
.game-hub::before { inset:10% 22% 10% -8%;border-color:#b89f6321;outline-color:#b89f6310;background:radial-gradient(ellipse,#39304733,transparent 68%); }
.game-title-block { position:relative;text-align:left;z-index:1; }
#choose.game-hub h1 { font-size:clamp(4rem,7vw,7rem);line-height:1.05;margin:1rem 0;letter-spacing:-.025em;font-weight:600;text-shadow:0 4px 30px #0006; }
.game-hub-note { font-size:1.25rem;color:#a99e88;margin:.8rem 0 2.5rem; }
.game-home-identity { font-size:1.05rem;color:#ccb688;letter-spacing:.025em;padding-top:1rem;margin:0;border-top:1px solid #b69b5740;max-width:330px; }
.game-menu-column { position:relative;z-index:1;min-width:0; }
.game-menu-caption { color:#928169;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;text-align:left;margin:0 0 1rem 1.8rem; }
.game-main-menu { border:0;outline:0;box-shadow:none;background:linear-gradient(90deg,#25222b66,transparent);width:100%;padding:1rem 0;gap:.35rem; }
.game-main-menu::before,.game-main-menu::after { display:none; }
.game-main-menu .voie,.game-main-menu .game-menu-entry { padding:.7rem 1rem .7rem 1.8rem;font-size:clamp(1.25rem,1.8vw,1.55rem);min-height:58px; }
.game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible)::before { left:.3rem; }
.game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { border-color:transparent;background:linear-gradient(90deg,#c0a66c26,transparent); }
.game-hub .game-key-hint { grid-column:1/-1;text-align:right;font-size:.8rem;color:#827a6d;letter-spacing:.055em;padding-top:2rem;border-top:1px solid #b69b5722; }
.game-home-sigil { position:absolute;left:4%;top:3%;width:44%;height:90%;opacity:.035;pointer-events:none;transform:rotate(-8deg); }
.game-home-sigil svg { width:100%;height:100%; }
.at-game-home .bandeau { background:transparent;border-color:transparent;box-shadow:none; }.at-game-home .bandeau::before,.at-game-home .bandeau::after { opacity:.2; }
.at-game-home #nom-guilde { opacity:0; }
@media(max-width:800px) {
 #choose.game-hub { display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:1.5rem;min-height:calc(100dvh - 190px);padding:1.6rem 1rem; }
 .game-title-block { text-align:center; }.game-title-block .surtitre { font-size:.7rem; }
 #choose.game-hub h1 { font-size:3.7rem;margin:.5rem 0; }
 .game-hub-note { font-size:1.1rem;margin:.5rem 0 1rem; }.game-home-identity { margin:auto;font-size:.95rem;padding-top:.7rem; }
 .game-menu-column { width:min(430px,100%);margin:auto; }.game-menu-caption { display:none; }
 .game-main-menu { padding:0;gap:.1rem; }.game-main-menu .voie,.game-main-menu .game-menu-entry { font-size:1.25rem;min-height:49px;padding-block:.5rem; }
 .game-home-sigil { left:10%;width:80%; }
 .game-hub .game-key-hint { display:none; }
 .game-page-nav { margin-bottom:1rem; }.game-navigation-dialog .game-home { display:block; }
 #dashboard { margin-top:1rem; }.game-page-trail { font-size:.85rem; }
}
@media(prefers-reduced-motion:no-preference) {
 .game-navigation-dialog[open] { animation:game-drawer-enter .2s ease-out both; }
 .game-main-menu :is(.voie,.game-menu-entry) { transition:color .15s,background .15s; }
 @keyframes game-drawer-enter { from { opacity:0;translate:-15px 0; }to { opacity:1;translate:0 0; } }
}

/* Une scène persistante ; seuls les écrans de jeu changent au premier plan. */
body.guild-experience { isolation:isolate;background:#080e18;overflow:hidden; }
#game-world { position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden; }
.guild-landscape { width:100%;height:100%;display:block;opacity:.85; }
.guild-vignette { position:absolute;inset:0;background:radial-gradient(ellipse at 52% 42%,transparent 15%,#050a1277 80%),linear-gradient(90deg,#050a1266,transparent 65%); }
.guild-mist { position:absolute;left:-10%;right:-10%;bottom:12%;height:30%;background:radial-gradient(ellipse at 25% 60%,#abb9c70b,transparent 50%),radial-gradient(ellipse at 80% 80%,#bdc7d40c,transparent 48%);filter:blur(18px); }
.guild-lanterns { opacity:.38; }
.guild-experience[data-game-screen=dashboard] #game-world { opacity:.32; }
.guild-experience[data-game-screen=gate] #game-world { opacity:0; }
.guild-experience .bandeau { position:fixed;top:0;left:0;right:0;z-index:20;margin:0;background:linear-gradient(#080e18e6,transparent);border:0;box-shadow:none; }
.guild-experience .bandeau::before,.guild-experience .bandeau::after { display:none; }
.guild-experience .bandeau .conteneur { height:64px;max-width:none; }
.guild-experience .bandeau #marque #nom-guilde { font-size:1.25rem; }
.guild-experience .bandeau .clan-mark { opacity:.75;transform:scale(.75); }
.guild-experience .game-viewport { height:calc(100dvh - 64px);margin-top:64px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6d6348 transparent; }
.guild-experience #dashboard { margin:1rem 0 2.5rem; }
.guild-experience #choose.game-hub { min-height:calc(100dvh - 64px);margin:0 auto; }
.guild-experience .game-hub::before { opacity:.4; }
.guild-experience .game-home-sigil { opacity:.045; }
.guild-experience .game-page-nav { position:static;top:auto;z-index:auto;background:linear-gradient(#080e18f5,#080e18eb);margin-top:-1rem;padding-top:.4rem; }
.guild-experience .game-main-menu { background:linear-gradient(90deg,#0a101a66,transparent); }
.guild-experience .game-title-block h1 { text-shadow:0 4px 36px #0009; }
.experience-controls { position:fixed;bottom:.8rem;right:1rem;z-index:25; }
.experience-fullscreen { width:38px;height:38px;background:#080e1855;border:1px solid #bca46d22;border-radius:50%;color:#b8a57e;cursor:pointer;font:1.4rem Georgia,serif; }
.experience-fullscreen:hover { color:#f0d299;border-color:#bca46d77; }
.experience-demo { grid-column:1/-1; }
.guild-experience .auth-panel { margin:clamp(1.5rem,6vh,4rem) auto 3rem; }
.guild-experience .auth-panel h1 { font-size:clamp(2rem,4vw,3rem); }
.guild-experience #auth-form { background:linear-gradient(135deg,#171c28e8,#0a111ce8);border:1px solid #a48b5844;box-shadow:0 15px 60px #0004; }
.guild-experience #auth-form::before { display:none; }
.guild-experience .demo-comptes { opacity:.8; }
@media(min-width:1100px) { .guild-experience .game-viewport:has(#choose:not([hidden])) { max-width:1400px; } }
@media(max-width:800px) {
 .guild-experience .bandeau .conteneur { height:56px; }
 .guild-experience .game-viewport { margin-top:56px;height:calc(100dvh - 56px); }
 .guild-experience #choose.game-hub { min-height:calc(100dvh - 56px); }
 .guild-landscape { width:160%;max-width:none;margin-left:-30%; }
 .experience-controls { bottom:.5rem;right:.5rem; }
 .experience-fullscreen { width:32px;height:32px;font-size:1.1rem; }
 .guild-experience #dashboard { margin-top:.5rem; }
}
@media(prefers-reduced-motion:no-preference) {
 #game-world { transition:opacity .6s ease; }
 .guild-mist { animation:guild-mist-drift 32s ease-in-out infinite alternate; }
 .guild-lanterns { animation:guild-lantern-breathe 6s ease-in-out infinite alternate; }
 @keyframes guild-mist-drift { from { transform:translateX(-3%); }to { transform:translateX(3%); } }
 @keyframes guild-lantern-breathe { from { opacity:.26; }to { opacity:.45; } }
}
.guild-experience .page { padding-bottom:0; }

/* Même alphabet visuel que le portail et les primes : sceaux, papier et encre. */
.guild-experience #game-world { background:radial-gradient(ellipse at 35% 40%,#3b302344,transparent 65%),#0c100f; }
#game-world>.guild-fuin-art { position:absolute;left:-14%;top:50%;translate:0 -50%;width:95vmax;height:95vmax;opacity:.065; }
.guild-experience[data-game-screen=dashboard] #game-world { opacity:1; }
.guild-fuin-art { width:100%;height:100%;overflow:visible; }
.guild-fuin-art .seal-orbit,.guild-fuin-art .seal-tick { fill:none;stroke:#ae935a; }
.guild-fuin-art .seal-orbit { stroke-width:.5; }.guild-fuin-art .seal-orbit.inner { opacity:.5; }
.guild-fuin-art .seal-tick { stroke-width:.65; }
.guild-fuin-art .seal-script-ring text { fill:#c6aa70;font-size:9px;opacity:.85; }
.guild-fuin-art .seal-script-orbit { stroke:#a0854555;fill:none; }
.guild-fuin-art .seal-energy-ring { fill:none;stroke:#c3a269;opacity:.5;stroke-width:.65; }
.guild-fuin-art .guild-fuin-center { fill:#d0af6e;font-family:var(--pinceau),serif;font-size:43px; }
.guild-fuin-art :is(.seal-script-ring,.seal-ticks,.seal-energy-ring) { animation:none; }

/* Cinq destinations : le contraste et la matière portent la hiérarchie. */
.guild-experience #choose.game-hub { display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:1.4rem;max-width:1080px;padding:2rem 2rem 1.5rem;overflow:visible; }
.guild-experience .game-hub::before { display:none; }
.guild-experience .game-title-block { display:flex;flex-direction:column;align-items:center;text-align:center; }
.guild-experience .game-home-sigil { position:relative;inset:auto;flex:none;width:68px;height:68px;opacity:.75;transform:none; }
.guild-experience #choose.game-hub h1 { font-size:clamp(2.4rem,4vw,3.4rem);margin:.2rem 0 .4rem;letter-spacing:.08em;font-weight:500; }
.guild-experience .game-home-identity { width:auto;max-width:none;padding:0;border:0;font-size:.98rem;color:#a99b7d; }
.guild-experience .game-menu-column { width:100%;max-width:none;filter:none;margin:0; }
.guild-experience .game-menu-caption { display:none; }
.guild-experience .game-main-menu { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;width:100%;padding:0;background:none;border:0;outline:0;box-shadow:none;border-radius:0; }
.guild-experience .game-main-menu::before,.guild-experience .game-main-menu::after { display:none; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry) { isolation:isolate;position:relative;overflow:hidden;color:#e7ce95;border:1px solid #a58c5059;border-radius:1px;background-color:#1c1d1a;background-image:var(--wood-grain),radial-gradient(ellipse at 15% 0%,#76603a2b,transparent 80%),linear-gradient(130deg,#37312888,#111714aa);box-shadow:0 8px 24px #0003,inset 0 0 30px #0002;text-align:left;outline-offset:5px; }
.guild-experience .game-main-menu .voie { display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;grid-column:span 3;min-height:292px;padding:2rem 2.2rem; }
.guild-experience .game-main-menu .voie>span { display:block;position:relative;z-index:1;font-size:1.08rem;line-height:1.55;color:#bcb29c;max-width:29ch; }
.guild-experience .game-main-menu .voie>span.voie-kanji { font-family:var(--pinceau),serif;color:#d1af69;font-size:2.5rem;line-height:1.2;margin-bottom:1.1rem; }
.guild-experience .game-main-menu .voie strong { z-index:1;position:relative;font:600 clamp(1.9rem,3vw,2.35rem)/1.2 var(--lecture);color:#ecd39c;margin:0 0 .65rem; }
.guild-experience .game-main-menu .voie .voie-suite { width:100%;max-width:none;margin-top:auto;padding-top:1rem;border-top:1px solid #b79a5755;font-size:.95rem;color:#c8ad78; }
.guild-experience .game-main-menu .home-card-seal { position:absolute;z-index:-1;width:270px;height:270px;right:-80px;top:10px;opacity:.17;transform:rotate(-12deg);pointer-events:none; }
.guild-experience .game-main-menu .game-menu-entry { grid-column:span 2;display:flex;align-items:center;justify-content:center;gap:.7rem;min-height:85px;padding:1rem;font:600 1.25rem var(--lecture);background-color:#171b1a; }
.guild-experience .game-main-menu .game-menu-entry::after { content:'◇';color:#9f8754;font:1rem Georgia;order:-1; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry)::before { content:'';position:absolute;inset:6px;border:1px solid #aa8d4830;transform:none;pointer-events:none; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { color:#fff0c9;background-color:#302c21;border-color:#d1b778;box-shadow:0 10px 30px #0005,inset 0 0 32px #caaa4c0d;transform:translateY(-2px);outline:1px solid #dbc08966; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible)::before { content:'';inset:6px;transform:none;border-color:#aa8d4860; }
.guild-experience .game-main-menu .voie:is(:hover,:focus-visible) .home-card-seal { opacity:.3;transform:rotate(-4deg); }
.guild-experience .game-hub .game-key-hint { order:5;text-align:center;border:0;padding:0;margin:0;color:#918671;font-size:.75rem; }
.game-home-utilities { display:flex;justify-content:center;gap:1.7rem;margin-top:.1rem; }
.game-home-utilities button { font-size:.95rem;color:#aa9b7d;text-decoration:none; }
.guild-experience .game-page-nav { gap:1rem;padding:.5rem 0;background:linear-gradient(#0c100ff5,#0c100feb); }
.guild-experience .game-home-shortcut { margin:0;padding:.5rem 0;color:#d1b984; }
.game-home-shortcut::before { content:'‹';font-size:1.4rem;margin-right:.65rem; }
.game-page-trail { margin-left:auto;border:0;color:#8e8879; }
.game-section-links { display:flex;gap:1.5rem;flex-wrap:wrap;margin:0 0 1.4rem; }
.game-section-link { background:none;border:0;border-bottom:1px solid transparent;padding:.45rem 0;min-height:44px;color:#aa9f89;cursor:pointer;font:500 1.05rem var(--lecture); }
.game-section-link[aria-current=page] { color:#ead09a;border-color:#b99e65; }
.game-section-link:focus-visible,.game-home-shortcut:focus-visible { outline:1px solid #d7b775;outline-offset:4px; }

@media(prefers-reduced-motion:no-preference) {
 .guild-experience .game-main-menu :is(.voie,.game-menu-entry) { transition:background-color .3s,border-color .3s,transform .3s,box-shadow .3s; }
 .home-card-seal { transition:opacity .5s,transform 1s; }
}
.guild-experience .game-navigation-dialog { background-color:#10171d;background-image:var(--wood-grain),radial-gradient(ellipse at 0 0,#9f7e3420,transparent 65%);border-color:#90713e; }
.guild-experience .game-nav-group[open]>summary { background:linear-gradient(90deg,#b59a581d,transparent); }
/* Le formulaire est un feuillet du même registre, sans titre publicitaire. */
.guild-experience #auth { max-width:490px;margin:1.3rem auto 2rem; }
#auth #auth-title,#auth #auth-role { display:none; }
.guild-experience #auth-back { display:block;width:fit-content;margin:0 auto 1.1rem;font-size:.95rem;color:#bda575; }
.guild-experience #auth>.onglets { border:0;gap:1.5rem;margin:.3rem 0 1rem; }
.guild-experience #auth>.onglets .onglet { padding:.45rem .1rem;font-size:1.15rem; }
.guild-experience #auth-form { position:relative;margin:0 auto;padding:2.3rem 2.2rem 1.6rem;color:#3d3021;color-scheme:light;background-color:#e4d6b9;background-image:var(--paper-grain),radial-gradient(ellipse at 0 40%,#a27b3b25,transparent 70%);border:1px solid #ad925b;border-radius:2px 3px 7px 2px / 4px 2px 3px 5px;box-shadow:inset 0 0 35px #92723b22,0 15px 35px #0005; }
.guild-experience #auth-form::before { content:none;display:none; }
.guild-experience #auth-form label { color:#65471c;font-size:1.1rem;font-weight:700; }
.guild-experience #auth-form .saisie { background:#fff8e650;color:#372b1c;border:0;border-bottom:1px solid #99794499;border-radius:0;box-shadow:none;padding:.55rem .65rem;font-family:var(--lecture);font-size:1.15rem; }
.guild-experience #auth-form .saisie:focus { outline:2px solid #92703b;outline-offset:2px;background:#fff8e6a0; }
.guild-experience #auth-form small,.guild-experience #auth-form .muted { color:#6b5940;font-size:.9rem;line-height:1.4; }
.guild-experience #auth-form .password-toggle { color:#76531f;font-size:.85rem; }
.guild-experience #auth-submit { display:block;width:auto;min-width:180px;margin:1.5rem auto 0;padding:.6rem 1.3rem;border:0;border-bottom:1px solid #85622d;background:transparent;box-shadow:none;color:#5d4018;font-family:var(--lecture);font-size:1.2rem;font-weight:700; }
.guild-experience #auth-submit:hover { background:#92703b13;color:#3f2b10;transform:none;box-shadow:none; }
.guild-experience #auth-error { color:#872f22;font-size:1rem; }
.guild-experience #auth .demo-comptes { font-size:.85rem;margin-top:1rem; }

@media(max-width:800px) {
 .guild-experience #choose.game-hub { padding:1.2rem .4rem;gap:1.2rem; }
 .guild-experience .game-home-sigil { width:54px;height:54px; }
 .guild-experience #choose.game-hub h1 { font-size:2.5rem; }
 .guild-experience .game-main-menu { gap:.7rem; }
 .guild-experience .game-main-menu .voie { min-height:235px;padding:1.4rem; }
 .guild-experience .game-main-menu .voie strong { font-size:1.8rem; }
 .guild-experience #auth-form { padding:2rem 1.2rem 1.3rem; }
 .guild-experience #auth { margin-top:.8rem; }
}
@media(max-width:540px) {
 .guild-experience .game-main-menu .voie { min-height:205px;padding:1.25rem;grid-column:1/-1; }
 .guild-experience .game-main-menu .voie>span.voie-kanji { font-size:1.9rem;margin-bottom:.6rem; }
 .guild-experience .game-main-menu .voie .voie-suite { margin-top:.8rem; }
 .guild-experience .game-main-menu .game-menu-entry { min-height:70px;font-size:1rem;padding:.6rem .2rem; }
 .guild-experience .game-main-menu .game-menu-entry::after { display:none; }
 .guild-experience .game-main-menu .home-card-seal { width:225px;height:225px;top:-10px;right:-25px; }
}

.guild-experience .game-main-menu .voie>span:not(.voie-kanji):not(.voie-suite) { min-height:3.1em;margin-bottom:1rem; }
@media(prefers-reduced-motion:reduce){.guild-experience .game-main-menu :is(.voie,.game-menu-entry){transition:none!important;transform:none!important;}.home-card-seal{transition:none!important;}}
.guild-experience .game-main-menu { --menu-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='280'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.006 .13' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .62 0 0 0 0 .40 0 0 0 0 .20 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E"); }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry) { background-image:var(--menu-grain),radial-gradient(ellipse at 15% 0%,#76603a2b,transparent 80%),linear-gradient(130deg,#37312888,#111714aa); }
.guild-experience .game-main-menu .game-menu-entry:disabled { opacity:.45;transform:none; }
@media(max-width:540px) {
 .guild-experience .game-main-menu .voie { min-height:165px;padding:1rem 1.25rem; }
 .guild-experience .game-main-menu .voie>span:not(.voie-kanji):not(.voie-suite) { display:none; }
 .guild-experience .game-main-menu .voie>span.voie-kanji { font-size:1.6rem;margin-bottom:.4rem; }
 .guild-experience .game-main-menu .voie strong { margin-bottom:.3rem; }
 .guild-experience .game-main-menu .voie .voie-suite { margin-top:.5rem;padding-top:.6rem; }
 .guild-experience .game-main-menu .home-card-seal { opacity:.12; }
}
/* Accueil : acier patiné, relief léger et décoration retenue. */
.guild-experience #game-world { background:radial-gradient(ellipse at 50% 24%,#41454730,transparent 68%),linear-gradient(145deg,#171b1d,#0e1214 72%); }
#game-world>.guild-fuin-art,.guild-experience .game-home-sigil,.guild-experience .game-main-menu .home-card-seal { display:none; }
.guild-experience .game-title-block { padding-block:.8rem .3rem; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry) {
 background-color:#202527;
 background-image:repeating-linear-gradient(0deg,#e0e5e703 0 1px,transparent 1px 4px),linear-gradient(125deg,#727b8022,transparent 38%,#090d1033 73%,#a9b0b70b);
 border-color:#8b92944d;
 box-shadow:inset 0 1px 0 #e3e9ec16,inset 0 -1px 0 #0008,0 9px 22px #0003;
}
.guild-experience .game-main-menu :is(.voie,.game-menu-entry)::before,
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible)::before { inset:0;transform:none;border:0;border-top:1px solid #e0e5e712; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { background-color:#2b3133;border-color:#bcaa7d99;box-shadow:inset 0 1px 0 #f6e9c833,inset 0 -1px 0 #0008,0 12px 26px #0004;outline-color:#c4b68f44; }
.guild-experience .game-main-menu .voie>span.voie-kanji { color:#bcb092; }
.guild-experience .game-main-menu .voie .voie-suite { border-color:#9b97833d; }
.guild-experience .game-main-menu .game-menu-entry { min-height:132px;padding:1.5rem 1rem;font-size:1.4rem; }
.guild-experience .game-main-menu .game-menu-entry::after { color:#aaa18b; }
@media(max-width:800px) { .guild-experience .game-main-menu .game-menu-entry { min-height:116px;font-size:1.25rem; } }
@media(max-width:540px) { .guild-experience .game-main-menu .game-menu-entry { min-height:100px;padding:.9rem .25rem;font-size:1.04rem; } }

/* Les bandeaux et panneaux gardent une vraie marge intérieure. */
.guild-experience .game-page-nav { padding:.65rem clamp(1.2rem,2.5vw,2rem); }
.guild-experience .game-page-nav .game-home-shortcut { padding:.45rem .25rem; }
.guild-experience .game-page-nav .game-page-trail { padding-right:.25rem; }
.game-section-links { padding-inline:.3rem; }
/* Un casier sombre et des feuillets, plutôt que des bulles de discussion. */
#mail-panel .missive-desk { grid-template-columns:minmax(245px,310px) minmax(0,1fr);gap:clamp(1.5rem,3vw,3.5rem);align-items:start;margin:1.5rem 0 2rem; }
.missive-inbox { min-width:0;padding:1.6rem 1.25rem;background:linear-gradient(140deg,#353c3e77,#1a202266);border:1px solid #9e9e8540;box-shadow:inset 0 1px #ffffff08; }
.missive-inbox>h2 { margin:0 0 .35rem;font-size:1.5rem;color:#e3cfaa; }
.missive-inbox>p { margin:0 0 1.8rem;font-size:.95rem;color:#afa898;line-height:1.5; }
#threads-list { max-height:65dvh;overflow:auto;scrollbar-width:thin;scrollbar-color:#7d7869 transparent;padding:0 .2rem .3rem; }
.missive-inbox .thread-group { margin:0 0 1.4rem; }
.missive-inbox .thread-group>h3 { font-size:1.05rem;font-weight:600;line-height:1.4;color:#c3bcae;margin:0 0 .7rem;padding-inline:.25rem;overflow-wrap:anywhere; }
.missive-inbox .thread { position:relative;margin:.55rem 0;padding:1.2rem 1rem 1.15rem 3.5rem;border:1px solid #969b9330;border-radius:1px;background:linear-gradient(135deg,#727a7611,#11171944);color:#c9c5b9;box-shadow:none;min-height:115px; }
.missive-envelope { position:absolute;left:1rem;top:1.3rem;width:26px;height:22px;fill:none;stroke:#a69879;stroke-width:1; }
.missive-inbox .thread strong { font-size:1.03rem;font-weight:600;line-height:1.35; }
.missive-inbox .thread small { font-size:.8rem;color:#9f9d91;margin-top:.35rem; }
.missive-inbox .thread .thread-preview { display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45;font-size:.92rem;color:#aaa699;margin-top:.6rem; }
.missive-inbox .thread[aria-pressed=true] { border-color:#b8a37588;background:linear-gradient(120deg,#a48a4920,#161d1d66);box-shadow:inset 2px 0 #c0a872; }
.missive-inbox .thread:hover { border-color:#c1b48b80; }
.missive-inbox .thread:focus-visible { outline:2px solid #d8c096;outline-offset:2px; }
.missive-inbox .unread { background:none;padding:0;margin:.6rem 0 0;color:#e6c689;font:600 .8rem var(--lecture); }
.missive-inbox .has-unread .missive-envelope { stroke:#e0c185; }
#mail-panel #chat.salon { padding:0;border:0;min-width:0; }
.missive-heading { padding:1.3rem clamp(1.2rem,3vw,2.6rem) 1.7rem;border-bottom:1px solid #b8a47730;margin-bottom:1.7rem;scroll-margin-top:6rem; }
.missive-eyebrow { font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:#aa9d81;margin:0 0 .65rem; }
#chat #chat-title { font-size:clamp(1.65rem,2.5vw,2.2rem);line-height:1.2;margin:0 0 .8rem;overflow-wrap:anywhere; }
#chat #chat-meta { font-size:.9rem;color:#aca697;line-height:1.55;margin:0 0 .8rem;max-width:65ch; }
#chat #chat-contract { color:#d0b886;font-size:.95rem;min-height:38px; }
#chat #older-messages { margin:0 1.3rem 1.2rem;color:#d3bd90; }
#chat #messages-list { display:flex;flex-direction:column;gap:1.4rem;max-height:64dvh;overflow:auto;padding:.35rem .6rem 1.2rem;scrollbar-width:thin;scrollbar-color:#8c8269 transparent; }
#chat #messages-list:empty::before { content:'Aucune lettre ouverte.';display:block;padding:4rem 2rem;text-align:center;color:#b5aa94;font-size:1.15rem;font-style:italic;border-block:1px solid #c1ad7f25; }
#chat .message,#chat .message.mine { width:100%;max-width:none;margin:0;position:relative;padding:clamp(1.4rem,3vw,2.6rem);background-color:#e2d7be;background-image:var(--paper-grain),linear-gradient(115deg,#faf1da66,transparent 50%,#aa8f551a);border:1px solid #ad9b7566;border-radius:1px;box-shadow:0 7px 16px #0002,inset 0 0 28px #9782510c;color:#413b30; }
#chat .message.mine { background-color:#d9ceb5; }
.missive-letter-head { display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;border-bottom:1px solid #927e4d44;padding-bottom:.9rem;margin-bottom:1.25rem; }
.missive-letter-head>span { color:#786340;letter-spacing:.11em;text-transform:uppercase;font-size:.72rem; }
#chat .message small { font-size:.85rem;color:#756b56; }
#chat .message>p { font-size:1.15rem;line-height:1.85;max-width:70ch;margin:0;white-space:pre-wrap;overflow-wrap:anywhere; }
.missive-signature { display:flex;justify-content:flex-end;align-items:center;gap:.8rem;margin-top:1.8rem;padding-top:.8rem; }
.missive-signature::before { content:'';width:30px;height:1px;background:#96805288; }
#chat .missive-signature strong { font-size:1.05rem;color:#715735;font-weight:600;font-style:italic; }
#chat .message .bouton-texte { color:#775626;margin-top:1rem;min-height:36px; }
#chat .message .etat { color:#715735;border-color:#97805166;background:transparent; }
.missive-composer { margin:1.2rem .6rem 0;border-top:1px solid #aa966452;border-bottom:1px solid #aa966430; }
.missive-composer>summary { padding:1.2rem 1.5rem;cursor:pointer;color:#e2c89a;font-size:1.2rem;list-style:none; }
.missive-composer>summary::before { content:'＋';font:1.2rem Georgia;margin-right:1rem;color:#af9d75; }
.missive-composer[open]>summary::before { content:'−'; }
.missive-composer>summary:focus-visible { outline:1px solid #d6bf90;outline-offset:3px; }
#chat #message-form { padding:1.6rem clamp(1.2rem,3vw,2.5rem) 1.4rem;margin:0 0 1rem;background-color:#e8dfcd;background-image:var(--paper-grain);color:#484031;box-shadow:0 5px 18px #0002;color-scheme:light; }
#chat #message-form>label[for=message-text] { font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#76603c;margin:0 0 1rem; }
#chat #message-text { display:block;width:100%;box-sizing:border-box;min-height:175px;resize:vertical;padding:1rem 1.15rem;color:#423a2d;background:#fffaf02e;border:1px solid #9c88554d;border-radius:0;box-shadow:none;font:400 1.15rem/1.75 var(--lecture); }
#chat #message-text::placeholder { color:#897b61; }
#chat #message-text:focus { outline:2px solid #978258;outline-offset:3px; }
#chat #message-form .actions { display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:1.4rem;flex-wrap:wrap; }
#chat #send-message { border:0;border-bottom:1px solid #977d48;border-radius:0;background:none;color:#624a26;box-shadow:none;padding:.65rem .2rem;font:700 1.15rem var(--lecture); }
#chat #send-message:hover { color:#382910;border-bottom-color:#49391d;transform:none; }
#chat #message-form .muted,#chat #publish-help { font-size:.86rem;color:#796c56;line-height:1.55; }
#chat #message-form .publier,#chat .chat-identity label { color:#695636;font-size:.95rem;line-height:1.5;margin:1rem 0 .3rem; }
#chat #message-form input[type=checkbox] { accent-color:#907340; }
#chat #message-form .chat-identity { background:#d4c4a330;border:1px solid #9d88543d;margin:0 0 1.2rem;padding:1rem 1.2rem;box-shadow:none;color:#514331; }
#chat #message-form .chat-identity label { display:flex;align-items:center;gap:.65rem;margin:0;color:#59462d; }
#chat #message-form .chat-identity input { margin:0;flex:none; }
#chat #message-form #chat-identity-preview { margin:.5rem 0 0;color:#6c5b43;font-size:.86rem;line-height:1.6; }
#chat #message-error { color:#942f23;background:transparent; }
@media(max-width:800px) {
 #mail-panel .missive-desk { grid-template-columns:minmax(0,1fr);gap:1.5rem; }
 .missive-inbox { padding:1.3rem; }
 #threads-list { max-height:240px; }
 #chat #messages-list { max-height:none;overflow:visible;padding-inline:.2rem; }
 .missive-composer { margin-inline:.2rem; }
 .missive-heading { padding-inline:1.3rem; }
 #chat .message,#chat .message.mine { padding:1.5rem; }
 .guild-experience .game-page-nav { padding:.65rem 1rem; }
 .game-page-trail { font-size:.8rem; }
}
@media(prefers-reduced-motion:no-preference) { .missive-inbox .thread { transition:background .2s,border-color .2s; } }
@media(max-width:540px) {
 .guild-experience .game-main-menu .game-menu-entry { padding:.9rem .65rem;font-size:.94rem;overflow-wrap:anywhere; }
 .guild-experience .game-page-nav { gap:.8rem; }
}

/* Lecture et réponse sur la même feuille, sans fond sombre entre les deux. */
#chat .missive-sheet { background-color:#e2d7be;background-image:var(--paper-grain),linear-gradient(115deg,#faf1da66,transparent 50%,#aa8f551a);border:1px solid #ad9b7566;box-shadow:0 8px 24px #0003;padding:clamp(1.2rem,3vw,2.6rem);color:#413b30; }
#chat.missive-idle .missive-sheet { display:none; }
#chat .missive-sheet #messages-list { padding:0;gap:0;max-height:none;overflow:visible; }
#chat .missive-sheet #messages-list:empty::before { content:'Votre correspondance commence ici.';padding:1.8rem .4rem;border:0;color:#786340; }
#chat .missive-sheet .message,#chat .missive-sheet .message.mine { background:none;box-shadow:none;border:0;border-bottom:1px solid #927e4d44;border-radius:0;padding:1.4rem .3rem 1.6rem; }
#chat .missive-sheet .message:first-child { padding-top:.3rem; }
#chat .missive-sheet .missive-composer { margin:0;padding:0;border:0;background:none; }
#chat .missive-sheet .missive-composer>summary { color:#604927;padding:1.3rem .3rem;margin:0;border:0; }
#chat .missive-sheet #message-form { background:none;box-shadow:none;border:0;margin:0;padding:1.5rem .3rem .6rem; }
#chat .missive-sheet #older-messages { color:#765b32;margin:0 0 1rem; }
.guild-mail-new { width:100%;padding:.85rem 1rem;margin:0 0 1.3rem;text-align:center; }
#document .guild-payment-option { display:flex;align-items:flex-start;gap:.8rem;padding:1.1rem;margin:1rem 0;border:1px solid #98733b55;background:#a9854610;color:#5b4324; }
#document .guild-payment-option input { flex:0 0 auto;width:18px;height:18px;margin:.2rem 0 0; }
#document .guild-payment-option span { display:grid;gap:.5rem; }
#document .guild-payment-option small { font-size:.86rem;line-height:1.5;font-weight:400; }
.contract-paper .guild-payment-note { padding:1rem;border-block:1px solid #98733b55;color:#5b4324; }
@media(max-width:800px) { #chat .missive-sheet #messages-list { max-height:none; } }

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/d80df8ff5aecd299a61549f9.woff2) format('woff2');}
@font-face{font-family:'Lora';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/ddb8c66035104e233fc02466.woff2) format('woff2');}

/* Le repaire : acier patiné, cuir et papier, éclairés à la lampe. */
:root {
 --lecture:"Lora",Georgia,serif;
 --serif:"Cormorant Garamond",Georgia,serif;
 --guild-ground:#0c1117;
 --guild-edge:#bba57b44;
 --guild-gold:#cdb88c;
 --guild-metal:var(--paper-grain),radial-gradient(ellipse at 100% 0%,#92713c18,transparent 65%),linear-gradient(135deg,#232421f5,#11171bf5);
 --guild-ink:#c2b8a5;
}
.guild-experience { font-weight:400; }
.guild-experience :is(h1,h2,h3) { font-family:var(--serif); }
.guild-experience #game-world { overflow:hidden;background:var(--guild-room-backdrop,#091018); }
.guild-experience #game-world::before { content:'';position:absolute;inset:0;background:var(--paper-grain);opacity:.2;pointer-events:none; }
/* Les autres espaces partagent les matières, jamais le décor du comptoir. */
.guild-experience[data-guild-room=contracts] { --guild-room-backdrop:radial-gradient(ellipse at 50% 10%,#33302866,transparent 65%),linear-gradient(125deg,#151b20,#0b1118 75%); }
.guild-experience[data-guild-room=bounties] { --guild-room-backdrop:radial-gradient(ellipse at 20% 0%,#364c6044,transparent 65%),linear-gradient(120deg,#101922,#080e15); }
.guild-experience[data-guild-room=character] { --guild-room-backdrop:radial-gradient(ellipse at 15% 45%,#5d493123,transparent 65%),linear-gradient(110deg,#191b1b,#0b1219 75%); }
.guild-experience[data-guild-room=letters] { --guild-room-backdrop:radial-gradient(ellipse at 78% 30%,#55462f26,transparent 65%),linear-gradient(110deg,#10161c,#171a1c); }
.guild-experience[data-guild-room=honour] { --guild-room-backdrop:radial-gradient(ellipse at 50% 0%,#81704c23,transparent 50%),linear-gradient(90deg,#090f17,#19212b 50%,#090f17); }
.guild-experience[data-guild-room=account],.guild-experience[data-guild-room=steward] { --guild-room-backdrop:radial-gradient(ellipse at 15% 0%,#303d4544,transparent 60%),#0d141c; }

.guild-gpu-canvas { position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none; }
.guild-gpu-canvas.is-ready { opacity:1; }
.guild-experience:not([data-game-screen=choose]) .guild-gpu-canvas { display:none; }
.guild-experience[data-game-screen=choose] #game-world { background:radial-gradient(ellipse at 30% 100%,#18212d30,transparent 65%),#020409; }
.guild-experience[data-game-screen=choose] #game-world::before { opacity:.025; }
.guild-experience .game-title-block { position:relative;min-height:180px;justify-content:center; }
.guild-emblem-anchor { position:absolute;width:clamp(220px,17vw,350px);height:clamp(220px,17vw,350px);top:50%;transform:translateY(-50%);pointer-events:none; }
.guild-emblem-0 { left:0; }.guild-emblem-1 { right:0; }
.guild-emblem-anchor svg { width:100%;height:100%;filter:grayscale(1) brightness(.85) drop-shadow(2px 3px 1px #000);opacity:.65; }
.has-gpu-emblems .guild-emblem-anchor svg { opacity:0; }
.at-game-home .clan-mark { opacity:0; }
.guild-experience[data-game-screen=choose] .game-home-identity { color:#9fa8af; }
.guild-experience[data-game-screen=choose] .game-title-block::after { background:linear-gradient(90deg,transparent,#bac3c966,transparent); }
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry) { background:linear-gradient(120deg,#232b32,#131a21 70%);border-color:#8c9aa438;box-shadow:inset 0 1px #cbd7e40b,0 10px 30px #0003; }
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry)::before { opacity:.25;filter:grayscale(1); }
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { border-color:#bfcbd17d;background:linear-gradient(120deg,#2d3944,#1b252f 75%);box-shadow:inset 0 1px #d5dfe42b,0 10px 25px #0004; }
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry):focus-visible { outline-color:#bbc9d1; }
.guild-experience[data-game-screen=choose] .game-main-menu .voie strong,.guild-experience[data-game-screen=choose] .game-main-menu .game-menu-entry { color:#d8dedf; }
.guild-experience[data-game-screen=choose] .game-main-menu .voie>span.voie-kanji { color:#a5afb4; }
.guild-experience[data-game-screen=choose] .game-main-menu .voie>span:not(.voie-kanji) { color:#aab2b9; }
.guild-experience[data-game-screen=choose] .game-main-menu .voie .voie-suite { color:#bcc7cc;border-color:#9aaab32c; }
@media(max-width:800px) { .guild-emblem-anchor { width:110px;height:110px; }.guild-experience .game-title-block { min-height:150px; } }
@media(max-width:540px) { .guild-experience .game-title-block { padding-top:90px; }.guild-emblem-anchor { top:40px;width:95px;height:95px; }.guild-emblem-0 { left:calc(50% - 120px); }.guild-emblem-1 { right:calc(50% - 130px);width:140px;height:140px; } }
.guild-experience .bandeau { background:linear-gradient(#090e15ef,#090e1577,transparent); }
.guild-experience .game-viewport:has(#choose:not([hidden])) { max-width:2000px;width:100%; }
.guild-experience #choose.game-hub { width:100%;max-width:clamp(1080px,67vw,1880px);gap:clamp(1.4rem,2.2vh,2.4rem);padding:clamp(1.5rem,3vh,3rem) clamp(1.2rem,3vw,3rem); }
.guild-experience #choose.game-hub h1 { font-family:var(--serif);font-size:clamp(3.8rem,4vw,6.6rem);letter-spacing:.11em;line-height:1;color:#d6d9d7;font-weight:500;text-transform:uppercase;text-indent:.11em;text-shadow:0 2px 1px #000,0 4px 28px #000; }
.guild-experience .game-title-block { padding:0 0 .4rem; }
.guild-experience .game-title-block::after { content:'';width:190px;height:1px;background:linear-gradient(90deg,transparent,#bca775aa,transparent);margin-top:1.25rem; }
.guild-experience .game-home-identity { color:#baad95;font-size:.93rem;font-weight:400;letter-spacing:.04em;margin-top:.7rem;text-shadow:0 2px 5px #000; }
.guild-experience .game-main-menu { gap:clamp(1rem,1.2vw,1.7rem); }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry) { background:var(--paper-grain),linear-gradient(130deg,#292822ee,#111719ee 80%);border:1px solid #ad97604d;border-radius:0;box-shadow:inset 0 1px #d6c39417,0 10px 30px #0007;color:#ded0af; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry)::before,
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible)::before { display:block;content:'';position:absolute;inset:10px;border:0;background:linear-gradient(#b59b6690,#b59b6690) left top/22px 1px no-repeat,linear-gradient(#b59b6690,#b59b6690) left top/1px 15px no-repeat,linear-gradient(#b59b6655,#b59b6655) right bottom/22px 1px no-repeat,linear-gradient(#b59b6655,#b59b6655) right bottom/1px 15px no-repeat;pointer-events:none; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { background:var(--paper-grain),radial-gradient(ellipse at 15% 20%,#9d7a3b20,transparent 70%),linear-gradient(130deg,#353026f5,#171c1ef5);border-color:#cbb07a99;box-shadow:inset 0 1px #efda9e33,0 12px 32px #0008;transform:none;outline:none; }
.guild-experience .game-main-menu :is(.voie,.game-menu-entry):focus-visible { outline:1px solid #dac38d;outline-offset:5px; }
.guild-experience .game-main-menu .voie { min-height:clamp(310px,28vh,460px);padding:clamp(2rem,2.5vw,3.4rem); }
.guild-experience .game-main-menu .voie strong { font-family:var(--serif);font-size:clamp(2.45rem,2.2vw,4rem);font-weight:600;letter-spacing:.01em;margin-block:.2rem .7rem;color:#e7d6ad; }
.guild-experience .game-main-menu .voie>span.voie-kanji { color:#aa9160;font-size:clamp(1.9rem,1.8vw,3rem);margin-bottom:1.2rem;text-shadow:0 2px #080b0c; }
.guild-experience .game-main-menu .voie>span:not(.voie-kanji) { font-family:var(--lecture);font-size:clamp(.9rem,.63vw,1.1rem);font-weight:400;color:#bfb4a0;line-height:1.7;max-width:34ch; }
.guild-experience .game-main-menu .voie .voie-suite { border-color:#af97533b;color:#c4aa75;padding-top:1.2rem;font-size:.86rem;max-width:none;letter-spacing:.02em; }
.guild-experience .game-main-menu .game-menu-entry { min-height:clamp(132px,11vh,176px);padding:1.5rem;font-family:var(--serif);font-size:clamp(1.5rem,1.35vw,2.2rem);font-weight:600;letter-spacing:.02em; }
.guild-experience .game-main-menu .game-menu-entry::after { display:none; }
.guild-experience .game-home-utilities button { color:#afa28a;font-weight:400;font-size:.85rem;padding:.7rem 1rem; }
.guild-experience .game-hub .game-key-hint { color:#968d7d;font-size:.7rem;text-shadow:0 2px #000; }
.guild-experience .game-page-nav { background:none;border:0;border-bottom:1px solid #a6bac520;box-shadow:none;padding:12px 16px;margin-top:0;gap:20px; }
.guild-experience .game-home-shortcut { display:inline-flex;align-items:center;gap:12px;padding:4px;color:#dbe3e8;text-decoration:none;flex:none; }
.guild-experience .game-home-shortcut::before { display:none; }
.game-back-medallion { box-sizing:border-box;display:grid;place-items:center;width:48px;height:48px;border:1px solid #9eafb65c;border-radius:50%;background:linear-gradient(135deg,#34424d,#151e26 65%);box-shadow:inset 0 1px #eff8ff26,0 3px 10px #0005;transition:border-color .18s,box-shadow .18s; }
.game-back-medallion svg { width:26px;height:26px; }
.game-back-label { font-size:.95rem;letter-spacing:.04em; }
.game-back-key { font:10px var(--lecture);color:#98a7b2;border:1px solid #a6bac52e;border-radius:3px;padding:3px 5px;margin-left:4px; }
.guild-experience .game-home-shortcut:hover { color:#fff; }
.game-home-shortcut:hover .game-back-medallion { border-color:#c4d5dfb3;box-shadow:inset 0 1px #eff8ff40,0 0 14px #c3ddf014; }
.guild-experience .game-home-shortcut:focus-visible { outline:2px solid #b8cedb;outline-offset:5px;border-radius:28px; }
.guild-experience .game-page-trail { color:#9ca9b2;padding:0;text-align:right; }
@media(max-width:540px) { .game-back-key { display:none; }.guild-experience .game-page-nav { padding:10px 8px;gap:14px; }.game-back-medallion { width:44px;height:44px; } }
.guild-experience .game-section-links { padding-inline:1.2rem;gap:2rem; }
.guild-experience .game-section-link { padding:.65rem .25rem; }
.guild-experience .dashboard-content .registre-tete { padding:1.2rem 1.3rem;margin:0 0 1.2rem;border-color:var(--guild-edge); }
.guild-experience .dashboard-content #titre-espace { color:#dfcda6;font-size:clamp(2.7rem,2.8vw,4rem);font-weight:500; }
.game-board-tools { padding:.6rem 1.3rem;gap:1rem 2rem; }
.game-board-tools .outils-registre .recherche { padding:.75rem 1rem;background:#131719d9;border:0;border-bottom:1px solid #ae946166; }
.filter-tools { padding-inline:1.3rem; }
#contracts-list.bounty-board { background:var(--wood-grain),linear-gradient(#1f211ff0,#161b1df0);border:1px solid #6c60454d;border-top:3px solid #675539;padding:clamp(1.4rem,2vw,2.3rem);gap:1.6rem;box-shadow:inset 0 2px 8px #000a,0 18px 45px #0006; }
#contracts-list .bounty-poster-button { box-shadow:0 8px 14px #0008,inset 0 0 22px #98764612; }
#bounty-dialog { background:linear-gradient(140deg,#1f252aeb,#0d141cf7);border-color:var(--guild-edge); }
.bounty-toolbar { background:#11191ef5;padding:1rem 1.2rem;border-color:var(--guild-edge); }
.guild-experience .personal-card,.guild-experience .carte-membre.member-personal-card,.missive-inbox { background:var(--guild-metal);border:1px solid var(--guild-edge);box-shadow:inset 0 1px #d2bf901a,0 16px 36px #0006; }
.guild-experience .personal-card { border-left:4px double #aa8a505e; }
.guild-experience .personal-portrait { background:radial-gradient(ellipse,#51473555,#11191fdd); }
.missive-inbox .thread { background:linear-gradient(120deg,#b9a5780c,#0d162444);border-color:#a795712c; }
.missive-heading { border-color:var(--guild-edge); }
.guild-experience .plaque:not(#auth-form) { background:var(--guild-metal);border-color:var(--guild-edge); }
.guild-experience .personal-stats>div { background:none;box-shadow:none;border:0;border-bottom:1px solid var(--guild-edge); }
.guild-experience .personal-history { padding:1.5rem 2rem;background:#10171de8;border-top:1px solid var(--guild-edge); }
.guild-experience .personal-history h2 { font-size:2rem;color:#dac59a; }
@media(max-width:800px) {
 .guild-experience .game-page-trail { font-size:.78rem; }
}

/* Tableau d’honneur : la place, le nom et les hauts faits portent la lecture. */
.honour-head { display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem 2.5rem;margin:0 0 1.8rem;border-block:1px solid var(--guild-edge);background:radial-gradient(ellipse at 10% 20%,#a98b4311,transparent 70%); }
.honour-kicker { margin:0 0 .45rem;color:#b8a173;font-size:.78rem;text-transform:uppercase;letter-spacing:.17em; }
.honour-head h2 { color:#e2c792;font-size:clamp(1.8rem,2.1vw,2.8rem);margin:0;line-height:1.2; }
.honour-head .muted { margin:.8rem 0 0;font-size:1rem;max-width:48ch; }
.honour-self { min-width:180px;padding:.4rem 0 .4rem 2rem;border-left:1px solid var(--guild-edge);text-align:right; }
.honour-self strong { display:block;font-size:2.3rem;color:#e5c68b;font-weight:500;line-height:1.2; }
.honour-self span { display:block;color:#b8ad95;font-size:.9rem; }
.honour-podium { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-bottom:2rem; }
.honour-plate { position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.6rem;background:var(--guild-metal);border:1px solid var(--guild-edge);box-shadow:inset 0 1px #ead39c22,0 12px 25px #0003; }
.honour-plate::before { content:'';position:absolute;inset:8px;border:1px solid #ac91562b;pointer-events:none; }
.honour-plate[data-place="1"] { border-color:#d0af6c99;background:radial-gradient(ellipse at 50% 0,#c3a05222,transparent 75%),var(--guild-metal); }
.honour-numeral { font:500 3.2rem/1.2 var(--lecture);color:#bca474;margin-bottom:.9rem; }
.honour-plate[data-place="1"] .honour-numeral { color:#ead096; }
.honour-plate h3 { font-size:1.5rem;color:#e2cba1;margin:0 0 .9rem;overflow-wrap:anywhere; }
.honour-plate .personal-rank { font-size:.85rem; }
.honour-tally { margin:1.1rem 0 0;padding-top:.9rem;border-top:1px solid var(--guild-edge);color:#bfb49f;font-size:.95rem;width:100%; }
.honour-tally strong { color:#ead2a3;font-size:1.65rem;margin-right:.35rem; }
.honour-register { background:linear-gradient(130deg,#40536b1c,#121b2944);padding:.4rem 1.5rem;border-block:1px solid var(--guild-edge); }
.honour-register .ranking-row { padding:1.3rem 1rem;border-color:#af93562d;gap:1.5rem; }
.honour-register .ranking-row:last-child { border-bottom:0; }
.honour-register .ranking-row.is-self { background:linear-gradient(90deg,#c4a35412,transparent);box-shadow:inset 2px 0 #bca16c; }
.honour-register .ranking-position { font-size:2.1rem;color:#b5a178; }
.honour-register .ranking-name strong { font-size:1.4rem; }
.honour-register .ranking-score strong { font-size:2rem; }
.honour-rules { margin-top:1.3rem;padding:.4rem 1rem;color:#afa38a;font-size:.95rem; }
.honour-rules summary { cursor:pointer;padding:.5rem 0; }
.honour-rules p { max-width:70ch;line-height:1.7;padding:.2rem .8rem; }
/* Habillages propres à chaque espace ; les accents et les polices les relient. */
.guild-experience[data-guild-room=contracts] .depot-formulaire { filter:drop-shadow(0 18px 24px #0006); }
.guild-experience[data-guild-room=contracts] #contracts-list.bounty-board { background:var(--paper-grain),linear-gradient(135deg,#252623,#151b20);border-top:1px solid #a8935c70;box-shadow:0 15px 35px #0005; }
.guild-experience[data-guild-room=bounties] #contracts-list.bounty-board { border-inline:0;border-bottom:0;background:var(--wood-grain),linear-gradient(#272d2ee8,#141b22ee); }
.guild-experience #character-panel .personal-card { background:var(--paper-grain),linear-gradient(110deg,#242722,#141b21);border-color:#a28a5b4d;border-left:7px double #a28a5b77;box-shadow:-6px 0 0 #0a1017,0 18px 40px #0005; }
.guild-experience #character-panel .personal-card-body { position:relative; }
.guild-experience #character-panel .personal-card-body::after { content:'';position:absolute;inset:14px;pointer-events:none;border-block:1px solid #ad966124; }
.guild-experience #character-panel .personal-eyebrow { color:#b8a47e; }
.guild-experience #character-panel .personal-stats { gap:0 1.5rem; }
.guild-experience #character-panel .personal-stats .tablette { padding:1rem 0;border:0;border-bottom:1px solid #a28a5b36;background:none;box-shadow:none; }
.guild-experience #character-panel .personal-history { background:var(--paper-grain),#171e23;border-left:3px solid #9b88583b; }
.guild-experience .missive-inbox { background:var(--paper-grain),linear-gradient(110deg,#292620,#171b1d);border:0;border-top:2px solid #8f754b77;box-shadow:0 16px 35px #0003; }
.guild-experience .missive-inbox .thread { border:0;border-bottom:1px solid #9f8d642d;background:transparent;box-shadow:none;padding:1.1rem 1.2rem 1.1rem 3.5rem; }
.guild-experience .missive-inbox .thread[aria-pressed=true] { background:linear-gradient(90deg,#b69b5220,transparent);box-shadow:inset 2px 0 #b9a16a; }
.guild-experience .honour-head { background:transparent;border-top:0;text-align:center; }
.guild-experience .honour-plate { background:var(--paper-grain),linear-gradient(180deg,#29313b,#101923);border:0;border-top:1px solid #bb9f6377;border-bottom:1px solid #bb9f6333;box-shadow:0 14px 30px #0005; }
.guild-experience .honour-plate::before { inset:12px 25%;border:0;border-top:1px solid #c4af792b; }
.guild-experience .honour-plate[data-place="1"] { background:var(--paper-grain),radial-gradient(ellipse at 50% 0%,#a08c5233,transparent 72%),linear-gradient(#29313b,#101923);border-top-color:#d4b572; }
.guild-experience .honour-numeral { font-family:var(--serif);font-size:3.8rem;text-shadow:0 2px #000; }
.guild-experience .honour-register { background:#1019239c;border-inline:0; }
.guild-experience .honour-register .ranking-row { background:transparent;border-inline:0;box-shadow:none; }
.guild-experience .honour-register .ranking-row.is-self { background:linear-gradient(90deg,#c4a35412,transparent);box-shadow:inset 2px 0 #bca16c; }
@media(min-width:2000px) {
 .guild-experience .game-viewport { max-width:2060px; }
 .guild-experience .game-home-identity { font-size:1.3rem; }
 .game-home-utilities button { font-size:1.1rem; }
}
@media(max-width:800px) {
 .guild-experience #choose.game-hub { padding:1.5rem .5rem;gap:1.2rem; }
 .guild-experience #choose.game-hub h1 { font-size:3.7rem; }
 .guild-experience .game-main-menu .voie { padding:1.7rem;min-height:270px; }
 .guild-experience .game-main-menu .game-menu-entry { min-height:115px;padding:1.2rem .8rem;font-size:1.15rem; }
 .honour-head { padding:1.6rem 1.3rem;gap:1rem; }
 .honour-self { min-width:0;padding-left:1rem; }.honour-self strong { font-size:1.7rem; }
 .honour-podium { gap:.7rem; }.honour-plate { padding:1.4rem .9rem; }.honour-plate h3 { font-size:1.15rem; }.honour-tally { font-size:.8rem; }
 .honour-register { padding:.3rem .6rem; }.honour-register .ranking-row { gap:.8rem;padding:1.2rem .8rem; }
 #contracts-list.bounty-board { padding:1.2rem;gap:1.2rem; }
}
@media(max-width:540px) {
 .guild-experience #choose.game-hub h1 { font-size:2.6rem;letter-spacing:.07em;text-indent:.07em; }
 .guild-experience .game-main-menu .voie { min-height:180px;padding:1.35rem 1.5rem; }
 .guild-experience .game-main-menu .voie>span.voie-kanji { font-size:1.3rem;margin-bottom:.7rem; }
 .guild-experience .game-main-menu .voie strong { font-size:2rem;margin-top:0; }
 .guild-experience .game-main-menu .voie .voie-suite { font-size:.95rem; }
 .guild-experience .game-main-menu .game-menu-entry { grid-column:1/-1;justify-content:flex-start;padding:1.1rem 1.5rem;font-size:1.45rem;min-height:68px; }
 .honour-head { align-items:flex-start;flex-direction:column; }
 .honour-self { text-align:left;border-left:0;border-top:1px solid var(--guild-edge);padding:1rem 0 0;width:100%; }
 .honour-podium { grid-template-columns:1fr; }
 .honour-plate { padding:1.5rem; }.honour-plate h3 { font-size:1.5rem; }
 .honour-register .ranking-name strong { font-size:1.15rem; }
 .honour-register .ranking-position { font-size:1.5rem; }
 .honour-register .ranking-score strong { font-size:1.6rem; }
}
.honour-laureate { width:100%;padding:.4rem 0 1rem; }
.honour-laureate+.honour-laureate { border-top:1px solid #ac91562b;padding-top:1rem; }
.honour-plate .honour-tally { margin-top:auto;padding-top:1rem; }
@media(max-width:540px) {
 .guild-experience #choose .game-title-block { padding:95px 0 .4rem; }
}

/* Brushed dark steel, with a restrained silver reflection behind the parchment. */
.guild-experience[data-guild-room] #contracts-list.bounty-board {
 border:1px solid #9dabb638;
 background-color:#111820;
 background-image:linear-gradient(115deg,transparent 10%,#dceafa0d 32%,#dceafa17 39%,transparent 54%),radial-gradient(ellipse at 50% 0%,#b0c9dd20,transparent 65%),repeating-linear-gradient(0deg,#d9e8f003 0 1px,transparent 1px 3px),linear-gradient(135deg,#26313b,#111820 60%,#1b252e);
 background-size:100% 100%,100% 480px,100% 3px,100% 100%;
 background-repeat:no-repeat,no-repeat,repeat,no-repeat;
 box-shadow:inset 0 1px #eff7ff38,inset 1px 0 #d1e6f20d,inset 0 -1px #0009,0 16px 36px #0005;
 padding:clamp(1.5rem,2vw,2.5rem);
}


.guild-experience .game-main-menu .game-admin-entry { grid-column:1/-1;min-height:90px;gap:.35rem;flex-direction:column;padding:1.2rem 1.5rem;font-size:1.65rem; }
.guild-experience .game-admin-entry small { font-family:var(--lecture);font-size:.78rem;font-weight:400;letter-spacing:.04em;color:#aab2b9; }

.guild-experience[data-game-screen=choose] .game-main-menu .voie .voie-suite { display:none; }

.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry) { background:linear-gradient(120deg,#04070b94,#0204088f 70%); }
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible) { background:linear-gradient(120deg,#0c121ab3,#060b11a8 75%); }
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry)::before { display:none; }

/* One screen, one emblem: the available height determines the composition. */
.guild-experience .game-viewport:has(#choose:not([hidden])) { overflow-y:hidden; }
.guild-experience .game-viewport:has(#choose:not([hidden]))>main { height:100%;min-height:0; }
.guild-experience #choose.game-hub { box-sizing:border-box;height:100%;min-height:0;max-width:1500px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1.15fr) auto auto;gap:clamp(8px,1.5dvh,18px);padding:clamp(12px,2dvh,24px) clamp(20px,4vw,64px);align-content:stretch; }
.guild-experience #choose .game-title-block { width:100%;min-height:0;padding:0;align-self:stretch;justify-content:center;gap:6px; }
.guild-experience #choose .guild-emblem-1 { --emblem-size:clamp(240px,36dvh,420px);position:relative;order:-1;flex:none;left:auto;right:auto;top:auto;transform:none;width:var(--emblem-size);height:var(--emblem-size);margin-block:calc(var(--emblem-size) * -.24); }
.guild-experience #choose.game-hub h1 { font-size:clamp(2.2rem,5.4dvh,4.6rem);margin:0;line-height:1.05; }
.guild-experience #choose .game-title-block::after { display:none; }
.guild-experience #choose .game-home-identity { margin:0;padding:0;font-size:clamp(.8rem,1.65dvh,1rem);text-transform:uppercase; }
.guild-experience #choose .game-menu-column { width:100%;height:100%;min-height:0;margin:0; }
.guild-experience #choose .game-main-menu { height:100%;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:minmax(0,2.7fr) minmax(58px,1fr);gap:clamp(10px,1.6dvh,20px); }
.guild-experience #choose .game-main-menu .voie { grid-column:span 3;min-height:0;padding:clamp(18px,3dvh,38px);justify-content:center; }
.guild-experience #choose .game-main-menu .voie strong { font-size:clamp(1.8rem,4.1dvh,3.3rem);line-height:1.15;margin:0 0 .5rem; }
.guild-experience #choose .game-main-menu .voie>span.voie-kanji { font-size:clamp(1.4rem,3dvh,2.4rem);margin-bottom:clamp(6px,1.2dvh,14px); }
.guild-experience #choose .game-main-menu .voie>span:not(.voie-kanji):not(.voie-suite) { min-height:0;margin:0;font-size:clamp(.85rem,1.75dvh,1.08rem);line-height:1.5; }
.guild-experience #choose .game-main-menu .game-menu-entry { grid-column:span 2;min-height:0;padding:12px;gap:4px;font-size:clamp(1.1rem,2.4dvh,1.7rem); }
.guild-experience #choose:has(.game-admin-entry:not([hidden])) .game-main-menu { grid-template-columns:repeat(12,minmax(0,1fr)); }
.guild-experience #choose:has(.game-admin-entry:not([hidden])) .voie { grid-column:span 6; }
.guild-experience #choose:has(.game-admin-entry:not([hidden])) .game-menu-entry { grid-column:span 3; }
.guild-experience #choose .game-admin-entry small { font-size:.68rem; }
.guild-experience #choose .game-home-utilities { margin:0;gap:18px; }
.guild-experience #choose .game-home-utilities button { padding:6px 10px;min-height:32px; }
.guild-experience #choose .game-key-hint { margin:0;padding:0;font-size:.7rem; }
@media(max-width:700px) {
 .guild-experience #choose.game-hub { padding:12px 16px;grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto;gap:12px; }
 .guild-experience #choose .guild-emblem-1 { --emblem-size:clamp(200px,32dvh,310px); }
 .guild-experience #choose .game-main-menu .voie { padding:16px 12px; }
 .guild-experience #choose .game-main-menu .voie strong { font-size:clamp(1.1rem,5vw,1.6rem); }
 .guild-experience #choose .game-main-menu .voie>span:not(.voie-kanji) { display:none; }
 .guild-experience #choose .game-main-menu .game-menu-entry { font-size:clamp(.78rem,3vw,1.15rem);padding:10px 4px; }
 .guild-experience #choose:has(.game-admin-entry:not([hidden])) .game-main-menu { grid-template-rows:minmax(0,2fr) repeat(2,minmax(44px,.6fr)); }
 .guild-experience #choose:has(.game-admin-entry:not([hidden])) .game-menu-entry { grid-column:span 6; }
 .guild-experience #choose .game-admin-entry small,.guild-experience #choose .game-key-hint { display:none; }
}
@media(max-height:600px) {
 .guild-experience #choose.game-hub { grid-template-rows:minmax(0,1fr) minmax(0,1.2fr) auto;gap:8px;padding-block:8px; }
 .guild-experience #choose .guild-emblem-1 { --emblem-size:clamp(140px,30dvh,180px); }
 .guild-experience #choose.game-hub h1 { font-size:1.9rem; }
 .guild-experience #choose .game-main-menu .voie { padding:12px 18px; }
 .guild-experience #choose .game-main-menu .voie>span { display:none; }
 .guild-experience #choose .game-main-menu .voie strong { margin:0;font-size:1.5rem; }
 .guild-experience #choose .game-key-hint,.guild-experience #choose .game-admin-entry small { display:none; }
}

/* Silver framing; all parchment surfaces retain their original paper and ink. */
.guild-experience:not([data-game-screen=gate]) {
 --guild-edge:#aabcc733;--guild-gold:#ccd7df;--guild-ink:#b5c0c9;
 --guild-metal:linear-gradient(125deg,#202a33eb,#0b121beb 78%);
 color:#d3dbe1;scrollbar-color:#667680 #080d13;
}
.guild-experience[data-guild-room=contracts] { --guild-room-backdrop:radial-gradient(ellipse at 50% 0%,#263c5033,transparent 65%),#080d14; }
.guild-experience[data-guild-room=character] { --guild-room-backdrop:radial-gradient(ellipse at 15% 45%,#263c5030,transparent 65%),#080d14; }
.guild-experience[data-guild-room=letters] { --guild-room-backdrop:radial-gradient(ellipse at 78% 30%,#293d4c26,transparent 65%),#080d14; }
.guild-experience[data-guild-room=honour] { --guild-room-backdrop:radial-gradient(ellipse at 50% 0%,#41536435,transparent 65%),#070c12; }
.guild-experience[data-guild-room=bounties] { --guild-room-backdrop:radial-gradient(ellipse at 20% 0%,#364c6028,transparent 65%),#080d14; }
.guild-experience:not([data-game-screen=gate]) :is(#marque,.game-home-utilities button,.game-key-hint,.game-section-link,.game-section-link[aria-selected=true],.game-section-link.is-active,#sound-toggle,.game-fullscreen,.lien-entete) { color:#bdc9d1;border-color:#91a6b45c; }
.guild-experience:not([data-game-screen=gate]) .clan-mark { filter:grayscale(1) brightness(1.3); }
.guild-experience #choose .game-main-menu :is(.voie,.game-menu-entry) { align-items:center;justify-content:center;text-align:center; }
.guild-experience #choose .game-main-menu .voie>span { text-align:center;margin-inline:auto; }
/* Explicit exclusions prevent recolouring paper through broad page selectors. */
.guild-experience:not([data-game-screen=gate]) :is(#auth,#dashboard,#bounty-dialog) :is(h1,h2,h3,h4,label,legend,.bouton-texte,.personal-name,.personal-stats strong,.personal-code):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #auth-form *, #chat .message *, #message-form *, .missive-sheet *)) { color:#d4dde3; }
.guild-experience:not([data-game-screen=gate]) :is(#auth,#dashboard,#bounty-dialog) :is(.muted,.personal-meta,.personal-kicker):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #auth-form *, #chat .message *, #message-form *, .missive-sheet *)) { color:#a9b7c1; }
.guild-experience:not([data-game-screen=gate]) :is(#auth,#dashboard,#bounty-dialog) :is(.saisie,.recherche,textarea,select):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #auth-form *, #message-form *, .missive-sheet *)) { color:#dce5eb;background-color:#090f17;border-color:#7b94a347;box-shadow:inset 0 1px 3px #0003;color-scheme:dark; }
.guild-experience:not([data-game-screen=gate]) :is(#auth,#dashboard,#bounty-dialog) :is(.bouton-clair,.bouton-shu):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #auth-form *, #chat .message *, #message-form *, .missive-sheet *)) { color:#dce5eb;background:linear-gradient(135deg,#293743,#17222c);border-color:#a0b4c05c;box-shadow:inset 0 1px #e6f3ff17; }
.guild-experience:not([data-game-screen=gate]) :is(.personal-card,.carte-membre.member-personal-card,.missive-inbox,.plaque:not(#auth-form)) { background:var(--guild-metal);border-color:#98afbe38;box-shadow:inset 0 1px #d9eaf414,0 16px 36px #0006; }
.guild-experience:not([data-game-screen=gate]) .personal-portrait { background:radial-gradient(ellipse,#627d9030,#0a121c); }
.guild-experience:not([data-game-screen=gate]) .personal-history { background:#0a121c;border-color:#98afbe38; }
.guild-experience:not([data-game-screen=gate]) :is(.personal-identity-editor,.personal-history-row,.personal-stats>div) { border-color:#9bb0bf30; }
.guild-experience:not([data-game-screen=gate]) :is(.personal-identity-editor summary,.identity-save-message) { color:#bbccd7; }
.guild-experience:not([data-game-screen=gate]) :is(.honour-head h2,.honour-plate h3,.honour-numeral,.honour-self strong,.honour-tally strong,.ranking-name strong,.ranking-score strong) { color:#dce5eb; }
.guild-experience:not([data-game-screen=gate]) :is(.honour-kicker,.honour-rules,.honour-self span,.honour-tally,.ranking-position,.ranking-score span) { color:#a9b7c1; }
.guild-experience:not([data-game-screen=gate]) .honour-plate { background:linear-gradient(145deg,#21303d,#0d1721);border-color:#a9bfcd50; }
.guild-experience:not([data-game-screen=gate]) .honour-plate[data-place="1"] { background:radial-gradient(ellipse at 50% 0%,#bcd8eb1f,transparent 70%),linear-gradient(145deg,#283b4a,#0e1923);border-top-color:#d4e4ef; }
.guild-experience:not([data-game-screen=gate]) .honour-plate::before { border-color:#b7cbdc30; }
.guild-experience:not([data-game-screen=gate]) .honour-register .ranking-row.is-self { background:linear-gradient(90deg,#b5cddd12,transparent);box-shadow:inset 2px 0 #b5cddd; }
.guild-experience:not([data-game-screen=gate]) :is(.honour-register,.honour-tally,.missive-heading) { border-color:#9cb2c137; }
.guild-experience:not([data-game-screen=gate]) .missive-inbox .thread { background:linear-gradient(125deg,#2b3c4933,#09131e44);border-color:#8ca6b833; }
.guild-experience:not([data-game-screen=gate]) .missive-inbox .thread[aria-pressed=true] { background:linear-gradient(125deg,#57778f33,#13213077);border-color:#b1c7d578;box-shadow:inset 2px 0 #b1c7d5; }
.guild-experience:not([data-game-screen=gate]) .missive-inbox :is(h2,h3,.thread strong,.unread) { color:#d6e1e8; }
.guild-experience:not([data-game-screen=gate]) .missive-inbox :is(p,.thread small,.thread-preview) { color:#a5b5c1; }
.guild-experience:not([data-game-screen=gate]) .missive-envelope { stroke:#b8ccda; }
.guild-experience:not([data-game-screen=gate]) #chat :is(#chat-title,#chat-contract,#older-messages,.missive-composer>summary) { color:#d3e0e9; }
.guild-experience:not([data-game-screen=gate]) #chat :is(#chat-meta,.missive-eyebrow) { color:#a7b8c5; }
.guild-experience:not([data-game-screen=gate]) #chat .missive-composer { border-color:#a6c0d12b; }
.guild-experience:not([data-game-screen=gate]) .missive-composer>summary::before { color:#a6c0d1; }
.guild-experience:not([data-game-screen=gate]) #auth>.onglets .onglet { color:#bdcdd7;border-color:#91a8b5; }
/* The weather follows the player between rooms, behind the opaque parchment. */
.guild-experience:not([data-game-screen=gate]) .guild-gpu-canvas { display:block; }
.guild-experience:not([data-game-screen=gate]) #game-world { opacity:1; }
.guild-experience[data-game-screen=gate] .guild-gpu-canvas { display:none; }
.guild-experience:not([data-game-screen=gate]) #character-panel .personal-card { background:var(--guild-metal);border-color:#98afbe38; }
.guild-experience:not([data-game-screen=gate]) #character-panel .personal-card-body::after { border-color:#adbfcb24; }
.guild-experience:not([data-game-screen=gate]) #character-panel .personal-eyebrow { color:#a7b9c6; }
.guild-experience:not([data-game-screen=gate]) #character-panel .personal-stats .tablette { border-color:#a0b7c536; }
.guild-experience:not([data-game-screen=gate]) #character-panel .personal-history { background:#101923;border-color:#98afbe38; }
/* No gold on the interface chrome. Paper, seals and semantic rank colours are separate. */
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth,#pending,#bounty-dialog) :is(summary,.surtitre,.libelle,.valeur,.bouton-liberer,.password-toggle,.onglet,.game-demo-note,.action-heading):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #auth-form *, #chat .message *, #message-form *, .missive-sheet *)) { color:#bdcbd5; }
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth,#pending,#bounty-dialog) :is(summary,.bouton-texte,.bouton-liberer,.onglet):hover:not(:where(#document *, .contract-paper *, .bounty-poster-button *, #auth-form *, #chat .message *, #message-form *, .missive-sheet *)) { color:#edf4f8; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.game-filter-drawer>summary,.game-journal>summary,.filter-tools #result-count,.contract-filter-group legend) { color:#b6c5cf; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.saisie,.recherche):not(:where(#document *, .contract-paper *, #message-form *, .missive-sheet *))::placeholder { color:#a1b1bd; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.saisie,.recherche,select):not(:where(#document *, .contract-paper *, #message-form *, .missive-sheet *)):focus { outline-color:#b9cedb;border-color:#b9cedb; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.contract-filter-buttons,.onglets,.filtres,.tablette,.member-tools,.notification) { border-color:#9bb2c13b; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.contract-filter-button:not([data-rank]),#status-filters .filtre) { color:#c3d0d9;background:#111b25;border-color:#9db2c244; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.contract-filter-button:not([data-rank]),#status-filters .filtre):hover { color:#eef4f8;border-color:#bcd0dd; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.contract-filter-button:not([data-rank]),#status-filters .filtre)[aria-pressed=true] { color:#e8f1f7;background:#273947;border-color:#aec5d4;box-shadow:inset 0 -2px #aec5d4; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.contract-filter-button,#status-filters .filtre):focus-visible { outline-color:#bcd0dd; }
.guild-experience:not([data-game-screen=gate]) #dashboard select:not(:where(#document *, .contract-paper *, #message-form *, .missive-sheet *)) option { color:#d2dee6;background:#101923; }
.guild-experience:not([data-game-screen=gate]) :is(.experience-fullscreen,.bandeau #sound-toggle) { color:#bbcad4;border-color:#94aaba35; }
.guild-experience:not([data-game-screen=gate]) :is(.experience-fullscreen,.bandeau #sound-toggle):hover { color:#e8f2f8;border-color:#b5cbd980;background:#a8c7dc12; }
.guild-experience:not([data-game-screen=gate]) .game-viewport { scrollbar-color:#657987 transparent; }
.guild-experience:not([data-game-screen=gate]) #threads-list,.guild-experience:not([data-game-screen=gate]) #chat #messages-list { scrollbar-color:#657987 transparent; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.notification.unread-event,.bandeau-demo) { background:#a6c2d30b;border-color:#8daabc;color:#adbfcb; }
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth) .demo-comptes button { color:#c1d0da;border-color:#819cab;background:#111b25; }
.guild-experience:not([data-game-screen=gate]) #dashboard .tablette:not(:where(#document *, .contract-paper *)) { background:linear-gradient(135deg,#202c36,#101923);box-shadow:inset 0 1px #d7e8f015; }
.guild-experience:not([data-game-screen=gate]) #dashboard .plaque::before { filter:grayscale(1); }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.fiche-membre dt,.fiche-membre dd,.carte-membre>.etat,.personal-history h2,.personal-history-row strong) { color:#c0d0db; }
.guild-experience:not([data-game-screen=gate]) #dashboard .fiche-membre { background:var(--guild-metal);border-color:#97b0c043; }
.guild-experience:not([data-game-screen=gate]) #dashboard .game-board-tools .outils-registre .recherche { color:#d2dfe8;background:#0b141c;border-bottom-color:#8ca5b54d; }
.guild-experience:not([data-game-screen=gate]) .bandeau #lien-entete { color:#bdcbd5; }
.guild-experience:not([data-game-screen=gate]) .bandeau #lien-entete::before { filter:grayscale(1) brightness(1.25); }
.guild-experience:not([data-game-screen=gate]) .bandeau #lien-entete:hover { background:#b2cddd12;border-color:#a6bfce55; }
.guild-experience:not([data-game-screen=gate]) .bandeau #lien-entete:focus-visible { outline-color:#bcd0dd; }
/* The same emblem lives in the mist behind every interior screen. */
.guild-backdrop-emblem { position:absolute;left:50%;top:52%;width:min(112vw,125dvh,1400px);height:min(112vw,125dvh,1400px);transform:translate(-50%,-50%);pointer-events:none; }
.guild-backdrop-emblem svg { width:100%;height:100%;filter:grayscale(1) brightness(.8);opacity:.16; }
.guild-gpu-canvas.is-ready~.guild-backdrop-emblem svg { opacity:0; }
.guild-experience:is([data-game-screen=choose],[data-game-screen=gate]) .guild-backdrop-emblem { display:none; }
/* Parchment floats directly above the scene; keep comfortable outer spacing. */
.guild-experience[data-guild-room] #contracts-list.bounty-board { background:none;border:0;box-shadow:none; }
/* Straight portraits and generous insets on both player and mercenary cards. */
.guild-experience:not([data-game-screen=gate]) #dashboard .personal-portrait { overflow:hidden;border-radius:0; }
.guild-experience:not([data-game-screen=gate]) #dashboard .personal-portrait>img { clip-path:none;border-radius:0;transform:none; }
.guild-experience:not([data-game-screen=gate]) #dashboard .personal-stats { gap:1rem 1.25rem; }
.guild-experience:not([data-game-screen=gate]) #dashboard .personal-stats .tablette { box-sizing:border-box;padding:1.15rem 1.35rem; }
.guild-experience:not([data-game-screen=gate]) #dashboard .personal-stats .libelle { display:block;line-height:1.45;overflow-wrap:anywhere;margin-top:.25rem; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.portrait-edit-button,.portrait-remove-button) { color:#d0dee7;border-color:#96adbc55;background:#101b25ed; }
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.portrait-edit-button,.portrait-remove-button):hover { color:#f0f6fa;border-color:#b4cad8;background:#293d4c; }
@media(max-width:480px) {
 .guild-experience:not([data-game-screen=gate]) #dashboard .personal-stats { gap:.75rem; }
 .guild-experience:not([data-game-screen=gate]) #dashboard .personal-stats .tablette { padding:1rem; }
 .guild-experience:not([data-game-screen=gate]) #dashboard .personal-stats .libelle { font-size:.82rem; }
}

.guild-experience:not([data-game-screen=gate]) #chat .missive-sheet :is(.missive-composer>summary,#older-messages) { color:#604927; }
.guild-experience:not([data-game-screen=gate]) #chat .missive-sheet .missive-composer>summary::before { color:#8a6b37; }
.guild-experience:not([data-game-screen=gate]) .missive-inbox .guild-mail-new { color:#d3e0e9;background:linear-gradient(135deg,#25323e,#111b24);border-color:#94acbb66; }

/* Compact leaderboard, silver engraved metal over the persistent mist. */
.guild-experience[data-guild-room=honour] .guild-backdrop-emblem{display:none!important}
.guild-experience[data-guild-room=honour] .dashboard-content .registre-tete{display:none}
.guild-experience .game-viewport:has(#dashboard:not([hidden]) #ranking-panel:not([hidden])){width:94%;max-width:calc(1900px * var(--interface-scale));padding-inline:24px}
#dashboard #ranking-panel{width:100%;max-width:1680px;margin:0 auto;padding:0 0 1.5rem;color:#ced9df}
#dashboard #ranking-panel .honour-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0 1.3rem;background:none;border:0;margin:0;text-align:left}
#dashboard #ranking-panel .honour-kicker{font:500 .6rem/1.5 var(--lecture);letter-spacing:.2em;text-transform:uppercase;color:#93aab7;margin:0 0 .4rem}
#dashboard #ranking-panel h2{font:500 clamp(2.1rem,3vw,3.1rem)/1.12 var(--serif);letter-spacing:.025em;color:#e0e7eb;margin:0}
#dashboard #ranking-panel .honour-roster-count{display:flex;align-items:center;gap:.8rem;color:#9bafbc;font-size:.75rem;margin:0}
#dashboard #ranking-panel .honour-roster-count strong{font:400 2.2rem var(--serif);color:#dae7ee}
#dashboard #ranking-panel .honour-elite{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:0 0 .9rem}
#dashboard #ranking-panel .honour-leader{position:relative;isolation:isolate;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.55rem .85rem;padding:1rem 1.1rem;background:linear-gradient(130deg,#26333dfc,#111b23fc);border:1px solid #9cb6c433;box-shadow:inset 0 1px #e8f4ff0a;min-width:0}
#dashboard #ranking-panel .honour-leader-position{font:400 1.7rem var(--serif);color:#adc3d0;align-self:start;line-height:1.2}
#dashboard #ranking-panel .honour-leader-main{min-width:0}
#dashboard #ranking-panel .honour-leader:not(.is-first) .honour-kicker{display:none}
#dashboard #ranking-panel .honour-laureate+.honour-laureate{border-top:1px solid #b2ccdc22;margin-top:.65rem;padding-top:.65rem}
#dashboard #ranking-panel .honour-laureate h3{font:500 1.2rem/1.25 var(--serif);color:#e3eaef;margin:0;overflow-wrap:anywhere}
#dashboard #ranking-panel .honour-leader-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.4rem;color:#99acb9;font-size:.68rem}
#dashboard #ranking-panel .personal-rank{display:inline-block;font-size:.65rem;line-height:1.35;padding:.2rem .45rem;border-radius:1px;font-weight:500;white-space:nowrap}
#dashboard #ranking-panel .honour-leader-score{grid-column:1/-1;border-top:1px solid #bad3e01c;padding-top:.6rem;display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}
#dashboard #ranking-panel .honour-leader-score strong{font:500 1.45rem var(--serif);font-variant-numeric:tabular-nums;color:#dfeaf0}
#dashboard #ranking-panel .honour-leader-score>span{font-size:.63rem;color:#98aebd}
#dashboard #ranking-panel .honour-leader.is-first{grid-column:1/-1;grid-template-columns:60px minmax(0,1fr) minmax(150px,.35fr);gap:1.4rem;min-height:126px;padding:1.3rem 2rem;border-color:#bcd1de66;background:radial-gradient(ellipse at 88% 12%,#bddeee22,transparent 60%),linear-gradient(110deg,#344450,#192631 62%,#111b23);overflow:hidden;box-shadow:inset 0 1px #ebf5ff44,0 10px 24px #0002}
#dashboard #ranking-panel .is-first .honour-leader-position{font-size:3.2rem;align-self:center;background:linear-gradient(125deg,#fcffff,#8299a7 45%,#e2f1f9);background-clip:text;-webkit-text-fill-color:transparent}
#dashboard #ranking-panel .is-first .honour-laureate h3{font-size:1.95rem}
#dashboard #ranking-panel .is-first .honour-leader-score{grid-column:3;grid-row:1;border:0;flex-direction:column;gap:0;align-items:flex-start;padding:0;z-index:1}
#dashboard #ranking-panel .is-first .honour-leader-score strong{font-size:2.6rem}
#dashboard #ranking-panel .honour-tie{grid-column:1/-1;color:#bacbd6;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}
#dashboard #ranking-panel .honour-you{display:inline-block;margin-left:.5rem;font:500 .52rem/1.5 var(--lecture);letter-spacing:.06em;text-transform:uppercase;padding:.05rem .3rem;border:1px solid #b1d0e255;vertical-align:middle;color:#cde8f8}
#dashboard #ranking-panel .honour-self{display:flex;align-items:center;gap:1.5rem;padding:.85rem 1.1rem;border:1px solid #89b6d147;border-left:2px solid #bbd7e8;background:#1c2d39f5;margin:0 0 1.3rem}
#dashboard #ranking-panel .honour-self-identity{min-width:0}
#dashboard #ranking-panel .honour-self-identity .honour-kicker{font-size:.55rem;margin-bottom:.1rem}
#dashboard #ranking-panel .honour-self-identity strong{font:500 1.1rem var(--serif);overflow-wrap:anywhere}
#dashboard #ranking-panel .honour-self-place{font:500 1.5rem var(--serif);color:#e2eef6;white-space:nowrap}
#dashboard #ranking-panel .honour-self-score{font-size:.75rem;color:#b0c5d4}
#dashboard #ranking-panel .honour-self-next{margin-left:auto;color:#a4b9c7;font-size:.72rem;text-align:right}
#dashboard #ranking-panel .honour-filters{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin:1rem 0 .75rem}
#dashboard #ranking-panel .honour-filters label{display:flex;flex-direction:column;gap:.35rem;margin:0;min-width:0;font-size:.65rem;color:#a5b7c3;font-weight:400}
#dashboard #ranking-panel .honour-find{margin-left:auto;flex:0 1 330px}
#dashboard #ranking-panel :is(.honour-select,.honour-search){width:100%;min-height:40px;height:auto;box-sizing:border-box;border:1px solid #97afbf3d;border-radius:0;background:#17232df5;color:#d8e3e9;padding:.5rem .7rem;font:400 .78rem var(--lecture);box-shadow:none}
#dashboard #ranking-panel .honour-select{min-width:155px}
#dashboard #ranking-panel .honour-search::placeholder{color:#849eaf;opacity:1}
#dashboard #ranking-panel :is(.honour-page-button,.honour-locate){min-height:40px;padding:.5rem .8rem;border:1px solid #a4c2d447;background:#233440;color:#d8e6ef;font:500 .75rem var(--lecture);border-radius:0}
#dashboard #ranking-panel :is(button,input,select):focus-visible{outline:2px solid #c1dfef;outline-offset:3px}
#dashboard #ranking-panel button:hover:not(:disabled){background:#344957}
#dashboard #ranking-panel .honour-result-count{margin:.7rem 0;font-size:.65rem;color:#92a9b8}
#dashboard #ranking-panel .honour-table-wrap{border:1px solid #9cb6c433;background:#101c25f5}
#dashboard #ranking-panel .honour-table{table-layout:fixed;width:100%;border-collapse:collapse;margin:0;background:transparent;color:#c9d9e3}
#dashboard #ranking-panel .honour-table thead{background:#263640}
#dashboard #ranking-panel .honour-table th,#dashboard #ranking-panel .honour-table td{padding:.72rem 1rem;text-align:left;vertical-align:middle;border:0;border-bottom:1px solid #a5bfd21c;background:none}
#dashboard #ranking-panel .honour-table thead th{font:500 .65rem/1.3 var(--lecture);color:#abc0cd;letter-spacing:.03em;padding-block:.85rem}
#dashboard #ranking-panel .honour-col-0{width:8%}
#dashboard #ranking-panel .honour-col-1{width:35%}
#dashboard #ranking-panel .honour-col-2{width:16%}
#dashboard #ranking-panel .honour-col-3{width:15%}
#dashboard #ranking-panel .honour-col-4{width:26%}
#dashboard #ranking-panel .honour-row{height:65px;background:#15212bf7}
#dashboard #ranking-panel .honour-row:nth-child(even){background:#1b2832fa}
#dashboard #ranking-panel .honour-row[data-place="1"]{background:linear-gradient(90deg,#31424efa,#1e2d38fa)}
#dashboard #ranking-panel .honour-row.is-self{box-shadow:inset 3px 0 #c1ddec;background:#284252fa}
#dashboard #ranking-panel .honour-row:hover{background:#30434f}
#dashboard #ranking-panel .honour-row:focus{outline:2px solid #aacee4;outline-offset:-2px}
#dashboard #ranking-panel .honour-position{font:400 1.25rem var(--serif);color:#b4c8d5;font-variant-numeric:tabular-nums}
#dashboard #ranking-panel .honour-table-identity{display:flex;align-items:center;gap:.8rem;min-width:0}
#dashboard #ranking-panel .honour-avatar{display:grid;place-items:center;flex:none;width:34px;height:38px;border:1px solid #a8c1cf44;background:linear-gradient(135deg,#556873,#25343f 45%,#3e525f);box-shadow:inset 0 1px #e6f3fc26;font:500 .85rem var(--serif);color:#d1e4ef;clip-path:polygon(0 0,100% 0,100% 85%,50% 100%,0 85%)}
#dashboard #ranking-panel .honour-name-copy{min-width:0}
#dashboard #ranking-panel .honour-name-copy>strong{font:500 1.05rem/1.25 var(--serif);color:#e0e8ed;overflow-wrap:anywhere}
#dashboard #ranking-panel .honour-mobile-village{display:none}
#dashboard #ranking-panel .honour-village-cell{font-size:.75rem;color:#a6bccb;overflow-wrap:anywhere}
#dashboard #ranking-panel .honour-score-cell{display:flex;align-items:center;gap:1rem}
#dashboard #ranking-panel .honour-score-cell strong{font:500 1.25rem var(--serif);font-variant-numeric:tabular-nums;min-width:2rem;color:#dbeaf3}
#dashboard #ranking-panel .honour-score-track{display:block;height:5px;width:100%;max-width:170px;background:#080f15;border:1px solid #7696aa26;overflow:hidden}
#dashboard #ranking-panel .honour-score-track i{display:block;height:100%;background:linear-gradient(90deg,#607f92,#c7dfeb);box-shadow:0 0 8px #b4d3e566}
#dashboard #ranking-panel .honour-pages{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1rem 0}
#dashboard #ranking-panel .honour-page-label{font-size:.72rem;color:#a0b6c4}
#dashboard #ranking-panel button:disabled{opacity:.35;cursor:default}
#dashboard #ranking-panel .honour-rules{margin-top:.85rem;color:#95aebb;font-size:.7rem;border:0;background:none;padding:0}
#dashboard #ranking-panel .honour-rules summary{font-size:.7rem;color:#b4c6d2;padding:.5rem 0}
#dashboard #ranking-panel .honour-rules p{line-height:1.6;color:#a0b6c4;max-width:1000px}
#dashboard #ranking-panel .honour-empty{padding:2rem;border:1px solid #89a5b630;color:#b4c7d5;background:#192730f5;font-size:.85rem}
#dashboard #ranking-panel [hidden]{display:none!important}
@media(max-width:1000px){
 #dashboard #ranking-panel .honour-elite{grid-template-columns:repeat(2,minmax(0,1fr))}
 #dashboard #ranking-panel .honour-self{gap:.8rem;flex-wrap:wrap}
 #dashboard #ranking-panel .honour-self-next{flex-basis:100%;margin:0;text-align:left}
 #dashboard #ranking-panel .honour-find{flex:1 1 230px}
}
@media(max-width:600px){
 .guild-experience .game-viewport:has(#dashboard:not([hidden]) #ranking-panel:not([hidden])){width:100%;padding-inline:12px}
 #dashboard #ranking-panel .honour-head{align-items:start;padding-top:.75rem}
 #dashboard #ranking-panel h2{font-size:2rem}
 #dashboard #ranking-panel .honour-roster-count{flex-direction:row;gap:.5rem;align-items:center;font-size:.65rem;max-width:none;text-align:left}
 #dashboard #ranking-panel .honour-roster-count strong{font-size:1.5rem}
 #dashboard #ranking-panel .honour-leader{padding:.75rem;gap:.5rem;grid-template-columns:24px minmax(0,1fr)}
 #dashboard #ranking-panel .honour-leader-position{font-size:1.3rem}
 #dashboard #ranking-panel .honour-laureate h3{font-size:1rem}
 #dashboard #ranking-panel .honour-leader-score{flex-wrap:wrap;gap:.25rem}
 #dashboard #ranking-panel .honour-leader-score>span{font-size:.55rem}
 #dashboard #ranking-panel .honour-leader.is-first{grid-template-columns:35px minmax(0,1fr);padding:1rem;gap:.8rem}
 #dashboard #ranking-panel .is-first .honour-leader-position{font-size:2.2rem}
 #dashboard #ranking-panel .is-first .honour-laureate h3{font-size:1.5rem}
 #dashboard #ranking-panel .is-first .honour-leader-score{grid-column:2;grid-row:auto;flex-direction:row;align-items:baseline;gap:.6rem;justify-content:start}
 #dashboard #ranking-panel .is-first .honour-leader-score strong{font-size:1.5rem}
 #dashboard #ranking-panel .honour-filters>label{flex:1 1 40%}
 #dashboard #ranking-panel .honour-filters .honour-find{flex:1 1 60%;margin-left:0}
 #dashboard #ranking-panel .honour-select{min-width:0}
 #dashboard #ranking-panel .honour-table :is(th,td){padding:.6rem .45rem}
 #dashboard #ranking-panel .honour-col-0{width:12%}
 #dashboard #ranking-panel .honour-col-1{width:41%}
 #dashboard #ranking-panel .honour-col-3{width:21%}
 #dashboard #ranking-panel .honour-col-4{width:26%}
 #dashboard #ranking-panel .honour-col-2,#dashboard #ranking-panel .honour-village-cell{display:none}
 #dashboard #ranking-panel .honour-mobile-village{display:block;font-size:.6rem;color:#99b0c0;margin-top:.25rem}
 #dashboard #ranking-panel .honour-avatar{display:none}
 #dashboard #ranking-panel .honour-name-copy>strong{font-size:.95rem}
 #dashboard #ranking-panel .honour-table thead th{font-size:.58rem;overflow-wrap:anywhere}
 #dashboard #ranking-panel .honour-score-cell{gap:.35rem}
 #dashboard #ranking-panel .honour-score-cell strong{min-width:1.25rem;font-size:1.1rem}
 #dashboard #ranking-panel .personal-rank{font-size:.6rem;padding:.15rem .3rem}
 #dashboard #ranking-panel .honour-self{padding:.7rem}
}

#new-contract .depot-formulaire,#new-contract .rouleau,#new-contract #rouleau { width:100%;max-width:1320px;margin-inline:auto; }
#new-contract section { max-width:none; }
#document.contract-workshop { display:block;padding:clamp(1.4rem,3vw,2.8rem); }
#document.contract-workshop>.marge { display:none; }
#document.contract-workshop .doc-tete { margin-bottom:.9rem;padding-bottom:.65rem; }
#document.contract-workshop h2 { font-size:clamp(1.8rem,2.6vw,2.6rem); }
#document.contract-workshop .preambule { max-width:none;margin:0 0 .4rem;line-height:1.5; }
#document.contract-workshop .required-note { margin:0 0 1.4rem;font-size:.75rem; }
#document .workshop-grid { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(1.3rem,3vw,2.7rem); }
#document .workshop-grid>section { min-width:0;margin:0;padding:0; }
#document .workshop-terms { border-left:1px solid #92744144;padding-left:clamp(1.3rem,3vw,2.7rem)!important; }
#document.contract-workshop .article { display:block;padding:.9rem 0;border-top:1px solid #92744144; }
#document.contract-workshop .article>.num { display:none; }
#document.contract-workshop .art-titre { margin:0 0 .65rem; }
#document.contract-workshop .trait { min-height:44px;padding:.55rem .75rem;font-size:1rem; }
#document.contract-workshop .article select.trait { margin:.4rem 0 .8rem; }
#document.contract-workshop .conditions { min-height:125px;padding:.8rem 1rem;font-size:1rem;line-height:1.55; }
#document.contract-workshop #reward-details .conditions { min-height:78px; }
#document .workshop-mission>div { display:grid;grid-template-columns:minmax(125px,.65fr) minmax(0,1fr);gap:.4rem 1rem;align-items:start; }
#document .workshop-mission label[for=f-type] { grid-column:1;grid-row:1; }
#document .workshop-mission #f-type { grid-column:1;grid-row:2;margin:0; }
#document .workshop-mission label[for=f-objet] { grid-column:2;grid-row:1;margin:0; }
#document .workshop-mission #f-objet { grid-column:2;grid-row:2; }
#document .workshop-mission #custom-type { grid-column:1/-1; }
#document .workshop-deadline { padding-top:.9rem;border-top:1px solid #92744144; }
#document .workshop-deadline label { display:block;margin:0 0 .4rem;font-weight:700; }
#document .workshop-deadline .options-note { font-size:.76rem;line-height:1.45;margin:.5rem 0 0; }
/* Cachets de rang : étiquette de mission et empreinte d’encre. */
#document.contract-workshop .classes { gap:.7rem;flex-wrap:wrap;padding:.3rem .15rem .6rem; }
#document.contract-workshop .classe span { position:relative;width:58px;height:69px;min-width:58px;display:grid;place-items:center;padding:0;border:1px solid var(--rank-edge);border-radius:1px;box-shadow:inset 0 0 0 3px #e6d7b9,inset 0 0 0 4px var(--rank-edge);background:linear-gradient(145deg,#f2e7cd,#e1cfaa);color:var(--rank-bg);font-family:var(--pinceau),Georgia,serif;font-size:1.6rem;transition:background .18s,box-shadow .18s; }
#document.contract-workshop .classe span::before { content:none;position:absolute;top:6px;left:0;right:0;text-align:center;font-family:serif;font-size:.52rem;letter-spacing:.2em;line-height:1;color:currentColor;opacity:.6; }
#document.contract-workshop .classe span::after { content:'';position:absolute;inset:7px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;opacity:.18;pointer-events:none; }
#document.contract-workshop .classe:hover span { transform:none;box-shadow:inset 0 0 0 3px #e6d7b9,inset 0 0 0 4px var(--rank-edge),0 3px 8px #54371120; }
#document.contract-workshop .classe input:checked+span { transform:none;color:var(--rank);background:var(--rank-bg);border:2px solid var(--rank-bg);box-shadow:inset 0 0 0 2px var(--rank),inset 0 0 0 3px var(--rank-bg),0 3px 5px #39291433; }
#document.contract-workshop .classe input:checked+span::before { opacity:.85; }
#document.contract-workshop .classe input:focus-visible+span { outline:2px solid #755025;outline-offset:4px; }
#document.contract-workshop .mission-options { margin:.8rem 0 0;padding:1.2rem 0 .7rem; }
#document.contract-workshop #allowed-villages { display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1.3rem;border:0;margin:0;padding:0; }
#document.contract-workshop #allowed-villages legend { width:100%;padding:0;margin-bottom:.8rem;font-size:1rem; }
#document.contract-workshop #allowed-villages .options-note { width:100%;margin:0 0 .7rem;font-size:.76rem; }
#document .village-stamp { position:relative;display:flex;align-items:center;gap:.5rem;padding:.2rem;cursor:pointer;font-size:.86rem; }
#document .village-stamp input,#document .contract-option-stamp input { position:absolute!important;width:1px!important;height:1px!important;opacity:0;margin:0!important; }
#document .village-stamp-mark { display:grid;place-items:center;width:34px;height:34px;border:1px solid #9b886655;border-radius:50%;color:#9c8b6b;font-size:1.15rem; }
#document .village-stamp:has(input:checked) .village-stamp-mark { color:#8f3a30;border:3px double #8f3a30;background:#ab58490d;transform:none; }
#document .workshop-seals { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:.7rem; }
#document .workshop-seals:has(.guild-post-option:not([hidden])) { grid-template-columns:repeat(3,minmax(0,1fr)); }
#document .workshop-seals .contract-option-stamp { position:relative;display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:.85rem;margin:0;padding:1rem;min-height:108px;border:1px solid #92744144;background:#a9854608;cursor:pointer; }
#document .workshop-seals .contract-option-stamp[hidden] { display:none; }
#document .option-stamp-mark { display:grid;place-items:center;width:50px;height:50px;border:3px double #9b886666;border-radius:48% 51% 46% 52%;color:#ac9875;font-size:1.65rem; }
#document .option-stamp-copy { display:grid;gap:.35rem; }
#document .option-stamp-copy strong { font-size:.96rem;color:#644a27;line-height:1.25; }
#document .option-stamp-copy small { font-size:.76rem;font-weight:400;line-height:1.45;color:#796647; }
#document .option-stamp-state { grid-column:2;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#8d7958; }
#document .option-stamp-state::after { content:'Apposer le sceau'; }
#document .contract-option-stamp:has(input:checked) { border-color:#97433780;background:#aa493709; }
#document .contract-option-stamp:has(input:checked) .option-stamp-mark { color:#8e382e;border-color:#8e382e;background:#9d3c290b;transform:none;box-shadow:inset 0 0 0 2px #8e382e15; }
#document .contract-option-stamp:has(input:checked) .option-stamp-state::after { content:'Sceau apposé ✓';color:#8e382e; }
#document :is(.village-stamp,.contract-option-stamp):has(input:focus-visible) { outline:2px solid #755025;outline-offset:4px; }
#document .workshop-clauses { margin:.7rem 0;font-size:.8rem; }
#document .workshop-clauses .workshop-clauses-title { color:#796647;padding:.5rem 0;margin:0;font-weight:600; }
#document .workshop-clauses .clauses { margin:.5rem 0;line-height:1.6; }
#document.contract-workshop .signature { margin-top:.7rem;align-items:center; }
@media(max-width:800px) {
 #document .workshop-grid { grid-template-columns:1fr;gap:0; }
 #document .workshop-terms { border:0;padding-left:0!important; }
 #document .workshop-seals,#document .workshop-seals:has(.guild-post-option:not([hidden])) { grid-template-columns:1fr; }
 #document.contract-workshop .duo { grid-template-columns:1fr 1fr;gap:.7rem; }
}
@media(max-width:480px) { #document .workshop-mission>div { display:block; }#document .workshop-mission #f-type { margin:.4rem 0 1rem; }#document.contract-workshop .duo { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:no-preference) { #document .contract-option-stamp:has(input:checked) .option-stamp-mark { animation:contract-stamp-in .2s ease-out; }@keyframes contract-stamp-in { from { opacity:.3;transform:none; }to { opacity:1;transform:none; } } }

.bounty-engagement{display:block;margin:.6rem 0 .8rem;font-size:.8rem;color:#766347;letter-spacing:.015em}
.contract-engagement{padding:.7rem 1rem;border:1px solid #92744144;color:#705932}
.offer-editor{padding:clamp(1.3rem,3vw,2.5rem);border-top:1px solid #987a4855;color:#654c2b}
.offer-editor label{display:block;font-weight:700}.offer-editor input{display:block;width:min(100%,340px);margin:.6rem 0 1rem}.offer-editor textarea{display:block;width:100%;margin:1rem 0;padding:1rem}
.offer-editor h3,.offer-document h3{font-size:1.8rem;margin:.3rem 0 .7rem;color:#614827!important}
.offer-document{margin:1.3rem 0;padding:clamp(1.2rem,3vw,2rem);border:1px solid #94734266;box-shadow:inset 0 0 0 5px #e4d7b655;color:#614827;background:linear-gradient(125deg,#f2e7cc88,#d8bf8644)}
.offer-document-heading{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}.offer-eyebrow{font-size:.7rem!important;letter-spacing:.14em;text-transform:uppercase;margin:0!important;color:#8b7047!important}
.offer-price{margin:1rem 0;font-size:1rem}.offer-price strong{font-size:clamp(2rem,4vw,3rem);font-weight:600}.offer-conditions{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.offer-fineprint{font-size:.8rem!important;line-height:1.6;color:#887450!important;max-width:65ch}
.offer-status{font-size:.8rem;padding:.8rem 1rem;border:1px dashed #90714288}.offer-status.acceptee{border:3px double #516147;color:#465b3e;transform:rotate(-5deg);text-transform:uppercase}.offer-status.refusee{border:3px double #934536;color:#934536;transform:rotate(-5deg);text-transform:uppercase}
.offer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.4rem;margin-top:1.4rem}.offer-accept{padding:1.2rem 1.4rem!important;min-height:76px;border:3px double #a76756!important;border-radius:48% 46% 45% 49%!important;background:radial-gradient(ellipse at 35% 20%,#a8493b,#762d26 60%,#491d19)!important;color:#f2d6bb!important;box-shadow:inset 0 2px 2px #e6987266,inset 0 -4px 5px #32100e99,0 5px 7px #42231644;cursor:pointer;font:inherit}.offer-refuse{background:transparent!important;border:0;border-bottom:1px solid #954633!important;color:#873d30!important;padding:.65rem 1rem;cursor:pointer;font:inherit}
.offer-document .offer-price strong{color:#674923!important}
.offer-accept{width:136px;min-width:136px;height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem!important;font-size:.8rem!important;line-height:1.3;border-radius:47% 50% 46% 49%!important;text-shadow:0 1px 1px #300c08}
.offer-accept svg{width:64px;height:34px;color:#d5a18c;filter:drop-shadow(0 1px 0 #e8b39888) drop-shadow(0 -1px 0 #350e0b)}
@media(max-width:550px){.offer-document-heading{display:block}.offer-status{display:inline-block;margin:.6rem 0}.offer-document{padding:1rem}.offer-actions{gap:1rem}}

.bandeau .guild-audio-controls{position:absolute;left:clamp(.7rem,2vw,2.2rem);top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:.5rem}
.bandeau .guild-audio-controls :is(#music-toggle,#sound-toggle){position:relative;inset:auto;transform:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:auto;height:36px;min-width:36px;padding:.4rem .55rem;background:#0a10187a;color:#bdc9d1;border:1px solid #91a6b42b;border-radius:3px;font:500 .72rem var(--lecture);cursor:pointer;transition:color .2s,border-color .2s,opacity .2s}
.bandeau .guild-audio-controls button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.bandeau .guild-audio-controls :is(#music-toggle,#sound-toggle):hover{color:#edf6fb;border-color:#b5cbd980;background:#a8c7dc12}
.bandeau .guild-audio-controls :is(#music-toggle,#sound-toggle)[aria-pressed=false]{opacity:.45}
.bandeau .guild-audio-controls button:focus-visible{outline:2px solid #bdcedb;outline-offset:3px}
.music-cloud-light{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse 28% 12% at var(--storm-x,18%) 46%,#b4c8deaa,transparent 85%);filter:blur(25px)}
.guild-experience[data-game-screen=gate] .music-cloud-light{display:none}
@media(max-width:800px){.bandeau .guild-audio-controls button span{display:none}.bandeau .guild-audio-controls{gap:.25rem;left:.6rem}}
.audio-volume-settings{position:relative;margin:0;border:0;padding:0}
.audio-volume-settings>summary{list-style:none;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #91a6b42b;border-radius:3px;background:#0a10187a;color:#bdc9d1;cursor:pointer}
.audio-volume-settings>summary::-webkit-details-marker{display:none}.audio-volume-settings>summary::before,.audio-volume-settings>summary::after{display:none!important}
.audio-volume-settings>summary svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round}
.audio-volume-settings[open]>summary,.audio-volume-settings>summary:hover{border-color:#adc6d7;color:#eef5fa}
.audio-volume-settings>summary:focus-visible{outline:2px solid #bdcedb;outline-offset:3px}
.audio-volume-panel{position:absolute;top:46px;left:0;width:250px;padding:20px;background:#101923;border:1px solid #718b9c80;box-shadow:0 12px 35px #0008;display:grid;gap:20px;border-radius:4px;color:#c8d6df}
.audio-volume-row label{display:flex;justify-content:space-between;align-items:center;gap:16px;font:500 15px var(--lecture);margin:0 0 12px;color:#c8d6df}
.audio-volume-row output{font-size:13px;font-variant-numeric:tabular-nums;color:#9fb2c1}
.audio-volume-row input[type=range]{display:block;width:100%;height:20px;margin:0;padding:0;accent-color:#bdcedb;cursor:pointer;background:transparent;border:0}
.audio-volume-row input:focus-visible{outline:2px solid #bdcedb;outline-offset:4px}
@media(max-width:800px){.audio-volume-panel{left:-80px;width:min(250px,calc(100vw - 24px))}}

/* Échelle des interfaces selon la largeur ET la hauteur disponibles. */
:root { --interface-scale:1; }
.guild-experience :is(#dashboard,#auth,#pending) { zoom:var(--interface-scale); }
.guild-experience .game-viewport:has(#dashboard:not([hidden])) { max-width:calc(1860px * var(--interface-scale)); }
.guild-experience:not([data-game-screen=gate]) dialog:not(.seal-cinematic):not(#dashboard dialog):not(#auth dialog):not(#pending dialog) { zoom:var(--interface-scale); }
/* La cérémonie est plein écran et utilise les coordonnées du sceau d'origine. */
.guild-experience .seal-cinematic { zoom:1; }
.guild-experience .game-viewport:has(#auth:not([hidden]))>main { display:flex;flex-direction:column;justify-content:center;min-height:100%; }
.guild-experience #auth.auth-panel { flex:none;margin:1.25rem auto; }
.game-board-tools .outils-registre { display:none; }
/* La largeur du tableau suit l'écran, sans imposer cinq colonnes étroites. */
.guild-experience .game-viewport:has(#dashboard:not([hidden]) #contracts-panel:not([hidden])) { width:96%;max-width:calc(2460px * var(--interface-scale));padding-inline:clamp(16px,1.5vw,40px); }
.guild-experience #contracts-list.bounty-board { grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:1.3rem;padding:1rem 0; }
.guild-experience #contracts-list .bounty-poster-top { flex-wrap:nowrap; }
.guild-experience #contracts-list .bounty-kicker { font-size:.68rem;letter-spacing:.055em; }
.guild-experience #contracts-list .bounty-poster-button { padding:1.65rem 1.2rem 1rem;gap:.65rem;min-height:440px; }
.guild-experience #contracts-list .bounty-poster-facts { padding-top:.7rem;gap:.7rem; }
@media(max-width:650px) { .guild-experience .game-viewport:has(#dashboard:not([hidden]) #contracts-panel:not([hidden])) { width:100%;padding-inline:16px; } }

/* Un seul titre sur le dépôt ; les liens de navigation partagent une ligne. */
.guild-experience #dashboard:has(#new-contract:not([hidden])) { margin-block:.5rem .4rem; }
.guild-experience #dashboard:has(#new-contract:not([hidden])) .dashboard-content { display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1.5rem; }
.guild-experience #dashboard:has(#new-contract:not([hidden])) .dashboard-content>* { grid-column:1/-1; }
.guild-experience #dashboard:has(#new-contract:not([hidden])) .game-page-nav { grid-column:1;grid-row:1;margin:0 0 .5rem;padding:0;border:0; }
.guild-experience #dashboard:has(#new-contract:not([hidden])) .game-section-links { grid-column:2;grid-row:1;align-self:center;margin:0 0 .5rem;padding:0;border:0; }
.guild-experience #dashboard:has(#new-contract:not([hidden])) .registre-tete { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%); }
#new-contract :is(.depot-formulaire,.rouleau,#rouleau) { max-width:1740px; }
#new-contract .memoire-depot { margin:0 0 .3rem;min-height:0;font-size:.72rem; }
#new-contract .memoire-depot p { margin:0; }
#document.contract-workshop { padding:.85rem 1.65rem; }
#document .workshop-heading { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;align-items:center;margin-bottom:.6rem; }
#document .workshop-heading .doc-tete { border:0;text-align:right; }
#document .workshop-heading .required-note { margin:0;text-align:right; }
#document.contract-workshop .doc-tete { margin:0 0 .3rem;padding:0 0 .3rem; }
#document.contract-workshop h2 { font-size:2rem;margin:.2rem 0;line-height:1.2; }
#document.contract-workshop .preambule { font-size:.86rem;line-height:1.35;margin:.25rem 0; }
#document.contract-workshop .required-note { margin:0 0 .5rem; }
#document .workshop-grid { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:1.25rem;align-items:start; }
#document .workshop-terms { padding-left:1.25rem!important; }
#document.contract-workshop .article { padding:.55rem 0; }
#document.contract-workshop .art-titre { font-size:1.05rem;margin:0 0 .4rem;line-height:1.3; }
#document.contract-workshop .trait { min-height:38px;padding:.35rem .55rem; }
#document.contract-workshop .article select.trait { margin:.2rem 0 .4rem; }
#document.contract-workshop .duo { gap:.75rem; }
#document.contract-workshop .sous { font-size:.77rem; }
#document.contract-workshop .conditions { min-height:100px;height:100px;padding:.55rem .65rem;line-height:1.4; }
#document.contract-workshop #reward-details .conditions { min-height:60px;height:60px; }
#document.contract-workshop :is(#reward-details,#custom-type) label { font-size:.8rem; }
#document.contract-workshop .classes { gap:.5rem;padding:.15rem 0 .35rem; }
#document.contract-workshop .classe span { width:46px;min-width:46px;height:54px;font-size:1.4rem; }
#document.contract-workshop .prime { gap:.25rem .5rem; }
#document.contract-workshop .prime-note { font-size:.75rem;line-height:1.3; }
#document .workshop-deadline { padding-top:.55rem; }
#document .workshop-deadline label { font-size:.9rem;margin-bottom:.25rem; }
#document .workshop-deadline .options-note { font-size:.72rem;line-height:1.35;margin:.3rem 0 0; }
#document.contract-workshop .mission-options { margin:0;padding:.55rem 0 0 1.25rem;border:0;border-left:1px solid #92744144; }
#document.contract-workshop #allowed-villages { gap:.35rem .6rem; }
#document.contract-workshop #allowed-villages legend { margin:0 0 .4rem;font-size:1.05rem; }
#document.contract-workshop #allowed-villages .options-note { margin:0;font-size:.72rem;line-height:1.35; }
#document .village-stamp { gap:.3rem;font-size:.8rem; }
#document.contract-workshop #allowed-villages .village-stamp { margin:0;padding:.15rem; }
#document .village-stamp-mark { width:28px;height:28px;font-size:1rem; }
#document .workshop-seals,#document .workshop-seals:has(.guild-post-option:not([hidden])) { grid-template-columns:1fr;gap:.5rem;margin-top:.6rem; }
#document .workshop-seals .contract-option-stamp { grid-template-columns:36px minmax(0,1fr);gap:.25rem .6rem;min-height:0;padding:.65rem; }
#document .option-stamp-mark { width:36px;height:36px;font-size:1.35rem;grid-row:1/3; }
#document .option-stamp-copy { gap:.2rem; }
#document .option-stamp-copy strong { font-size:.85rem; }
#document .option-stamp-copy small { font-size:.71rem;line-height:1.3; }
#document .option-stamp-state { font-size:.59rem; }
#document .workshop-footer { display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.6fr);gap:1.5rem;align-items:center;border-top:1px solid #92744144;margin-top:.65rem;padding-top:.5rem; }
#document .workshop-clauses { margin:0; }
#document .workshop-clauses .workshop-clauses-title { padding:0;font-size:.76rem; }
#document .workshop-clauses .clauses { margin:.25rem 0 0;padding:0;border:0;font-size:.73rem;line-height:1.4; }
#document.contract-workshop .signature { margin:0;gap:.5rem 1rem;max-width:420px; }
#document.contract-workshop .signe { flex:1;min-width:0; }
#document.contract-workshop .signe-nom { display:block;width:100%; }
#document.contract-workshop #bouton-sceller { margin:0;padding:.55rem .2rem; }
#document.contract-workshop .signe-nom { min-width:100px;font-size:1.1rem;margin:0;padding:0; }
#document.contract-workshop .sceller { padding:.55rem .9rem;min-height:44px;font-size:1rem; }
#document.contract-workshop .sceller-marque { font-size:1.25rem; }
#document.contract-workshop #submit-help { margin:.25rem 0 0;font-size:.7rem; }
#document.contract-workshop .erreur-doc:empty { display:none; }
#document.contract-workshop .piege { top:0;overflow:hidden; }
@media(min-width:1051px) and (max-height:850px) {
 #document.contract-workshop .article { padding:.35rem 0; }
 #document.contract-workshop #reward-details .conditions { height:48px;min-height:48px; }
 #document.contract-workshop .classe span { height:48px; }
 #document.contract-workshop .signe-nom { min-height:1.5rem; }
 #document.contract-workshop .signature { row-gap:.25rem; }
 #document .workshop-footer { margin-top:.4rem;padding-top:.35rem; }
}
@media(max-width:1050px) {
 #document .workshop-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
 #document.contract-workshop .mission-options { grid-column:1/-1;border-left:0;border-top:1px solid #92744144;padding:.6rem 0 0; }
 #document .workshop-seals,#document .workshop-seals:has(.guild-post-option:not([hidden])) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #document .workshop-footer { grid-template-columns:1fr;gap:.6rem; }
 #document.contract-workshop .signature { max-width:none; }
}
@media(max-width:650px) {
 #document .workshop-heading { grid-template-columns:1fr; }
 #document .workshop-heading .doc-tete,#document .workshop-heading .required-note { text-align:left; }
 #document.contract-workshop { padding:1rem; }
 #document .workshop-grid { grid-template-columns:1fr;gap:0; }
 #document .workshop-terms { border:0;padding-left:0!important; }
 #document .workshop-seals,#document .workshop-seals:has(.guild-post-option:not([hidden])) { grid-template-columns:1fr; }
 .guild-experience #dashboard:has(#new-contract:not([hidden])) .dashboard-content { column-gap:.75rem; }
 .guild-experience #dashboard:has(#new-contract:not([hidden])) .game-section-links { gap:.75rem;flex-wrap:wrap; }
}

#document .contract-stamp-layer { position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;background:radial-gradient(ellipse at center,#eadbbbde, #eadbbbad 28%,#eadbbb44 55%,transparent 80%); }
#document .contract-submission-seal { padding:0;margin:0;filter:none; }
#document .contract-submission-seal .guild-seal-mark { width:164px;height:158px;gap:11px;box-shadow:inset 3px 4px 4px #f0ac8690,inset -4px -5px 4px #250810dd,0 4px 0 #45121d,3px 9px 12px #24160d70,5px 16px 22px #24160d30; }
#document .contract-submission-seal .guild-seal-mark svg { width:116px;height:48px; }
#document .contract-submission-seal .guild-stamp-title { font-size:11px; }
#document .contract-submission-seal .guild-stamp-caption { font-size:8px; }
#document .contract-stamp-caption { font:600 1.1rem var(--serif);letter-spacing:.1em;color:#603527;text-align:center;margin:1.4rem 0 0; }
#document .contract-stamp-ripple { position:absolute;left:calc(50% - 100px);top:calc(50% - 126px);width:200px;height:200px;border-radius:50%;border:1px solid #784832;opacity:0; }
#document .contract-stamp-tool { position:absolute;z-index:3;left:calc(50% - 92px);top:calc(50% - 232px);width:184px;height:232px;transform-origin:50% 100%;filter:drop-shadow(2px 4px 2px #1e110b55); }
#document .stamp-handle { position:absolute;left:62px;top:0;width:60px;height:167px;border:1px solid #111a21;border-radius:46% 46% 25% 25% / 21% 21% 8% 8%;background:repeating-linear-gradient(92deg,transparent 0 8px,#fff1 8px 9px,transparent 9px 14px),linear-gradient(90deg,#0a1016,#33404a 20%,#73828c 34%,#28333c 50%,#101821 85%,#38434c);box-shadow:inset 3px 0 4px #b7c6cf55,inset -5px 0 8px #0009; }
#document .stamp-handle::before { content:'';position:absolute;left:-13px;top:0;width:84px;height:58px;border-radius:48%;border:1px solid #73808b;background:radial-gradient(ellipse at 30% 17%,#d4dce0,#677985 22%,#24323c 55%,#101922 80%);box-shadow:inset 0 -5px 5px #0008,0 3px 2px #0008; }
#document .stamp-handle::after { content:'';position:absolute;left:-2px;right:-2px;bottom:10px;height:12px;border-radius:50%;border-top:2px solid #afbac2;border-bottom:3px solid #071018;background:linear-gradient(90deg,#26333d,#9dacb7 30%,#45545f,#17202a); }
#document .stamp-collar { position:absolute;left:49px;top:149px;width:86px;height:42px;border-radius:25% 25% 30% 30%;border:1px solid #87939b;background:linear-gradient(90deg,#192631,#c9d2d7 25%,#6f7c84 43%,#293a47 78%,#0c151c);box-shadow:inset 0 3px 2px #e1e7e977,0 3px 3px #0009; }
#document .stamp-head { position:absolute;left:5px;bottom:0;width:174px;height:68px;border-radius:50% 50% 38% 38% / 35% 35% 32% 32%;border:1px solid #626d75;border-bottom:7px solid #111b23;background:radial-gradient(ellipse at 32% 4%,#cbd5ddaa,transparent 48%),linear-gradient(90deg,#1c2933,#82939f 24%,#46545e 60%,#14212b);box-shadow:inset 0 5px 2px #d7e0e58c,inset 0 -5px 3px #080f17bb,0 4px 0 #555e61; }
#document .stamp-head svg { display:block;width:94px;height:35px;margin:7px auto;opacity:.65;filter:grayscale(1) brightness(.6) drop-shadow(0 1px 0 #d9e0e6); }
#document .contract-stamp-shadow { position:absolute;z-index:2;left:calc(50% - 92px);top:calc(50% - 67px);width:184px;height:84px;border-radius:50%;background:#22160d;opacity:0; }

/* Papier de fibres cendrées : mat, légèrement irrégulier, encre graphite.
   Palette locale aux documents ; ni le portail fūin ni le décor ne sont teintés. */
.guild-experience :is(#document,.contract-paper,.bounty-poster-button,#auth-form,#chat .missive-sheet,#chat .message,#message-form) {
 --paper-base:#cdd0cd;
 --paper-ink:#293135;
 --paper-heading:#35434a;
 --paper-muted:#424e54;
 --paper-line:#65727645;
 --paper-field:#eef0eb70;
 --paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .16 0 0 0 0 .20 0 0 0 0 .22 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
 --paper-fibres:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.025 .38' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .16 0 0 0 0 .18 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
 --paper-surface:var(--paper-grain),var(--paper-fibres),radial-gradient(ellipse at 30% 15%,#f6f6ed2b,transparent 65%),linear-gradient(90deg,#293c451a,transparent 8% 92%,#293c451a);
 --texte:var(--paper-ink);--secondaire:var(--paper-muted);--sumi:var(--paper-ink);--gold-soft:var(--paper-muted);
 color:var(--paper-ink);color-scheme:light;
}
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#chat .message,#message-form),
.guild-experience .bounty-poster .bounty-poster-button {
 background-color:var(--paper-base);background-image:var(--paper-surface);
 border-color:#828e8f;
 box-shadow:inset 0 0 32px #33434a0d,0 10px 26px #0005;
}

/* Les mandats officiels restent reconnaissables au papier plus dense et à la cire. */
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract,.bounty-poster.is-guild-contract .bounty-poster-button) {
 --paper-base:#bcc3c1;
}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract),
.guild-experience .bounty-poster.is-guild-contract .bounty-poster-button {
 border-inline-color:#707e83;
}

/* Encre, titres et annotations ; les badges de rang et cachets restent colorés. */
.guild-experience :is(#document,.contract-paper,.bounty-poster-button,#auth-form,#chat .missive-sheet,#chat .message,#message-form) :is(h2,h3,h4,label,legend,.doc-tete,.art-titre,.num,.required-mark,.kanji-col,.contract-mission-type,.contrat-prime,.paper-heading,.bounty-type,.bounty-poster-reward strong,.bounty-open-hint,.contract-deadline strong,.bounty-poster-deadline strong,.option-stamp-copy strong,.missive-signature strong,.password-toggle,.bouton-texte,.bouton-liberer,.contract-engagement,.guild-payment-note,summary) {
 color:var(--paper-heading);
}
.guild-experience :is(#document,.contract-paper,.bounty-poster-button,#auth-form,#chat .missive-sheet,#chat .message,#message-form) :is(.muted,small,.sous,.preambule,.options-note,.clauses,.prime-note,.required-note,.signe-nom,.contrat-meta,.deadline-label,.deadline-detail,.reward-label,.identite-message,.admin-contract-meta,.bounty-kicker,.bounty-status,.bounty-label,.bounty-engagement,.bounty-participants,.option-stamp-copy small,.option-stamp-state,.workshop-clauses-title,.team-heading p,.team-summary-label,.team-summary small,.team-empty,.missive-letter-head>span,.publier,#chat-identity-preview) {
 color:var(--paper-muted);
}
.guild-experience :is(.contract-paper,.bounty-poster-button) :is(.bounty-name,.contrat-conditions,.team-chips span) { color:var(--paper-ink); }
.guild-experience #document.is-guild-contract #f-commanditaire { color:var(--paper-ink); }

/* Traits de plume et champs clairs, sans aplat doré. */
.guild-experience :is(#document,.contract-paper,.bounty-poster-button,#auth-form,#chat .missive-sheet,#chat .message,#message-form) :is(.article,.mission-options,.villages-acces,.doc-tete,.clauses,.signe-nom,.contrat-meta,.contrat-cote,.gestion-actions,.gestion-contrat,.paper-heading,.workshop-terms,.workshop-deadline,.workshop-footer,.bounty-poster-top,.bounty-poster-facts,.bounty-open-hint,.missive-letter-head,.team-declaration,.team-review,.team-chips span,.priority-management,.priority-assignees,.contract-engagement,.guild-payment-note,.mission-ratings,.mission-rating) {
 border-color:var(--paper-line);
}
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :is(.trait,.conditions,.saisie,textarea,input:not([type=checkbox]):not([type=radio]),select) {
 color:var(--paper-ink);background-color:var(--paper-field);border-color:#69787c52;box-shadow:inset 0 1px 2px #26383e08;
}
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :is(input,textarea)::placeholder { color:#535f63;opacity:1; }
.guild-experience :is(#document,.contract-paper) .conditions { background-image:none; }
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :is(.trait,.conditions,.saisie,textarea,select):focus {
 color:var(--paper-ink);background-color:#edf0ea;outline-color:#526971;border-color:#526971;
}
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) select option { color:var(--paper-ink);background:#e0e3df; }
.guild-experience #document select.trait { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%234c6069' stroke-width='1.5'/%3E%3C/svg%3E"); }
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :focus-visible { outline-color:#526971; }
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) input[type=checkbox] { accent-color:#536a72; }

/* Étiquettes de mission : papier froid sous l'encre du rang. */
.guild-experience #document.contract-workshop .classe span {
 background:var(--paper-grain),linear-gradient(145deg,#e0e3de,#c2cbc8);
 box-shadow:inset 0 0 0 3px var(--paper-base),inset 0 0 0 4px var(--rank-edge);
}
.guild-experience #document.contract-workshop .classe:hover span {
 box-shadow:inset 0 0 0 3px var(--paper-base),inset 0 0 0 4px var(--rank-edge),0 3px 8px #26343c20;
}
.guild-experience #document.contract-workshop .classe input:checked+span {
 background:var(--rank-bg);color:var(--rank);
 box-shadow:inset 0 0 0 2px var(--rank),inset 0 0 0 3px var(--rank-bg),0 3px 5px #26343c33;
}
.guild-experience #document .workshop-seals .contract-option-stamp { background:#53656b07;border-color:var(--paper-line); }
.guild-experience #document :is(.option-stamp-mark,.village-stamp-mark) { color:#64757a;border-color:#6e80836b; }
.guild-experience #document .contract-option-stamp:has(input:checked) { border-color:#843d4580;background:#843d450a; }
.guild-experience #document :is(.village-stamp,.contract-option-stamp):has(input:checked) :is(.option-stamp-mark,.village-stamp-mark) { color:#843d45;border-color:#843d45;background:#843d450b;box-shadow:none; }
.guild-experience #document .contract-option-stamp:has(input:checked) .option-stamp-state::after { color:#843d45; }

/* Actions écrites à l'encre, formulaires secondaires et cartouches. */
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :is(.bouton-clair,.bouton-shu,.sceller) {
 color:var(--paper-heading);background-color:#c0c9c7;border-color:#6c7c80;box-shadow:inset 0 1px #f3f5ec80;
}
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :is(.bouton-clair,.bouton-shu,.sceller):hover:not(:disabled) {
 color:#1e2d34;background-color:#aebdbd;border-color:#465e68;box-shadow:inset 0 1px #f3f5ec80;
}
.guild-experience :is(#document,.contract-paper,#auth-form,#chat .missive-sheet,#message-form) :is(.bouton-texte,.bouton-liberer,.password-toggle):hover { color:#1e2d34; }
.guild-experience #document #bouton-sceller,.guild-experience #auth-form #auth-submit,.guild-experience #chat #send-message {
 color:var(--paper-heading);border-bottom-color:#526971;background:transparent;box-shadow:none;
}
.guild-experience #document #bouton-sceller:hover:not(:disabled),.guild-experience #auth-form #auth-submit:hover,.guild-experience #chat #send-message:hover {
 color:#17292f;border-bottom-color:#344a54;background:#5269710c;box-shadow:none;
}
.guild-experience :is(.contract-paper,#chat .missive-sheet,#message-form) :is(.contract-admin-info,.declaration,.realisation,.precision,.confirmation,.chat-identity,.team-members label) {
 color:var(--paper-ink);background:#edf0e740;border-color:var(--paper-line);
}
.guild-experience .contract-paper .team-members label:has(input:checked) { background:#52697120;border-color:#526971;box-shadow:inset 0 -2px #526971; }
.guild-experience .contract-paper .team-chips span { background:#52697112; }
.guild-experience .contract-paper :is(.contract-facts,.contract-facts .contract-deadline) { background:transparent;border-color:var(--paper-line); }
.guild-experience :is(.contract-paper,#chat .message) .etat { color:#3c4d54;border-color:#66787d77;background:#61777e0d; }
.guild-experience .contract-paper .etat-personnel { color:#3c5547;border-color:#6e8c7b88;background:#c4d1c4; }

/* Primes : papier et marges mats, repères de priorité/échéance conservés. */
.guild-experience .bounty-poster .bounty-poster-button { border-top-color:var(--rank-edge,#828e8f); }
.guild-experience .bounty-poster .bounty-poster-button:is(:hover,:not(:hover)) { box-shadow:inset 0 0 26px #33434a0d,0 9px 22px #0006; }
.guild-experience .bounty-poster:not(.is-priority) .bounty-poster-button:hover { border-inline-color:#b7c8ca;border-bottom-color:#b7c8ca;box-shadow:inset 0 0 26px #33434a0d,0 12px 26px #0008; }
.guild-experience .bounty-poster.is-priority :is(.bounty-poster-button,.bounty-poster-button:hover),.guild-experience :is(#document,.contract-paper).is-priority { border-color:#91454b;outline-color:#91454b33; }
.guild-experience .bounty-poster .bounty-pin { background:#a0adb0;box-shadow:inset -2px -2px 2px #35464e,0 2px 3px #0008; }
.guild-experience .bounty-poster .bounty-poster-deadline { color:var(--paper-heading);border-color:var(--paper-line);border-left-color:#5f747c;background:#566f7a0e; }
.guild-experience .bounty-poster :is(.deadline-soon,.deadline-over),.guild-experience .contract-paper .contract-facts :is(.is-urgent,.is-expired) { background:#9447530a;border-color:#94475388;box-shadow:none; }
.guild-experience :is(#document,.contract-paper,.bounty-poster-button,#chat .missive-sheet) :is(.deadline-over strong,.deadline-caption,.is-expired strong,.is-urgent strong) { color:#813843; }
.guild-experience :is(.bounty-poster,.contract-paper) .priority-stamp { color:#843c45;border-color:#91454b;background:#91454b0a; }

/* Une seule feuille pour la lettre et sa réponse, sans panneaux superposés. */
.guild-experience #chat .missive-sheet :is(.message,.message.mine,#message-form) { background:transparent;box-shadow:none;border-color:var(--paper-line); }
.guild-experience #chat #message-form { color:var(--paper-ink); }
.guild-experience #chat #message-form>label[for=message-text] { color:var(--paper-muted); }
.guild-experience #chat .missive-signature::before { background:#65727680; }
.guild-experience #chat .missive-sheet #messages-list:empty::before,.guild-experience #chat .missive-sheet #older-messages { color:var(--paper-muted); }
.guild-experience:not([data-game-screen=gate]) #chat .missive-sheet #older-messages { color:var(--paper-muted); }
.guild-experience #chat #message-text { color:var(--paper-ink);background-color:var(--paper-field);border-color:#69787c52; }
.guild-experience #chat #message-text::placeholder { color:#535f63; }
.guild-experience #chat #message-text:focus { outline-color:#526971; }
.guild-experience #auth-form::before { background:var(--paper-base);border-color:#91454b;color:#91454b; }

/* Contre-offres et appréciations partagent la même encre ; la cire reste bordeaux. */
.guild-experience :is(.contract-paper,#chat .missive-sheet,#chat .message) :is(.offer-editor,.offer-document) { color:var(--paper-heading);border-color:var(--paper-line); }
.guild-experience .offer-document { background:var(--paper-grain),linear-gradient(125deg,#edf0e866,#879f9f15);box-shadow:inset 0 0 0 5px #e1e6df55; }
.guild-experience :is(.offer-editor h3,.offer-document h3,.offer-document .offer-price strong) { color:var(--paper-heading)!important; }
.guild-experience :is(.offer-eyebrow,.offer-fineprint) { color:var(--paper-muted)!important; }
.guild-experience .offer-status:not(.acceptee):not(.refusee) { border-color:#65727688; }
.guild-experience .rating-stars span { color:#7e8b8c!important; }
.guild-experience .rating-stars .filled span { color:#354f60!important; }

/* Montures de rouleaux en acier, indépendantes de la surface fibreuse. */
.guild-experience :is(#new-contract,.bounty-scroll) .baton {
 background:linear-gradient(#6b797f,#35444c 19%,#1a262d 58%,#0e181f 83%,#35434a);
 box-shadow:inset 0 1px #cbd5d780,0 3px 5px #0005;
}
.guild-experience :is(#new-contract,.bounty-scroll) .baton::before,
.guild-experience :is(#new-contract,.bounty-scroll) .baton::after {
 background:linear-gradient(90deg,#374850,#87979b 36%,#b9c5c5 49%,#65777f 72%,#293b45);
 border-color:#3c505a;
}
.guild-experience #document .contract-stamp-layer { background:radial-gradient(ellipse at center,#cdd0cdde,#cdd0cdad 28%,#cdd0cd44 55%,transparent 80%); }

/* Un salon sombre et compact, accordé à l'acier de La Guilde. */
.guild-experience #dashboard:has(#mail-panel:not([hidden])) .registre-tete { display:none; }
.guild-experience #dashboard:has(#mail-panel:not([hidden])) :is(#global-info,#global-error) { font-size:.8rem;line-height:1.4;margin-block:6px; }
@media(min-width:801px) {
 .guild-experience #dashboard:has(#mail-panel:not([hidden])) .dashboard-content { display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:24px; }
 .guild-experience #dashboard:has(#mail-panel:not([hidden])) .dashboard-content>* { grid-column:1/-1; }
 .guild-experience #dashboard:has(#mail-panel:not([hidden])) .game-page-nav { grid-column:1;grid-row:1;margin:0 0 14px;padding:0;border:0; }
 .guild-experience #dashboard:has(#mail-panel:not([hidden])) .game-section-links { grid-column:2;grid-row:1;margin:0 0 14px;padding:0;align-self:center; }
}
.guild-experience .game-viewport:has(#mail-panel:not([hidden])) { width:96%;max-width:calc(2060px * var(--interface-scale)); }
#mail-panel.guild-messenger { --chat-text:#d6e0e5;--chat-muted:#94a6b2;--chat-line:#9ab4c31f;--chat-accent:#bad4df;font-family:'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger .missive-desk { height:var(--messenger-height,calc(80dvh / var(--interface-scale)));min-height:320px;display:grid;grid-template-columns:310px minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;gap:0;margin:0;overflow:hidden;border:1px solid #97aeb537;border-radius:8px;box-shadow:0 24px 80px #0006,inset 0 1px #ecf4f508;background:#101820f5; }
#mail-panel.guild-messenger .missive-inbox { display:flex;flex-direction:column;min-height:0;gap:0;padding:24px 14px 12px;border:0;border-right:1px solid var(--chat-line);background:#111a21f5;box-shadow:none; }
#mail-panel.guild-messenger .missive-inbox>h2 { color:#e2e9ed;font:600 1.65rem var(--serif);margin:0 12px 4px; }
#mail-panel.guild-messenger .missive-inbox>p { margin:0 12px 20px;font-size:.76rem;line-height:1.4;color:var(--chat-muted); }
#mail-panel.guild-messenger .guild-mail-new { flex:none;width:auto;margin:0 8px 16px;padding:12px 14px;min-height:42px;background:linear-gradient(140deg,#34454f,#25353f);border:1px solid #90abb450;border-radius:5px;font:600 .8rem 'Noto Sans',system-ui,sans-serif;color:#e5eef0;box-shadow:inset 0 1px #fff1; }
#mail-panel.guild-messenger .guild-mail-new::before { content:'＋';margin-right:8px;color:#c8dfe7; }
#mail-panel.guild-messenger .guild-mail-new:hover { background:#3a4e59;border-color:#a7c4d08a; }
#mail-panel.guild-messenger .messenger-search { flex:none;box-sizing:border-box;width:calc(100% - 16px);min-width:0;margin:0 8px 12px;padding:11px 12px;border:1px solid #91aabb26;border-radius:5px;background:#080f16;color:#dce6ed;font:400 .76rem 'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger .messenger-search::placeholder { color:#8296a4; }
#mail-panel.guild-messenger :focus-visible { outline:2px solid #a6cbdc;outline-offset:2px; }
#mail-panel.guild-messenger .messenger-filters { flex:none;display:flex;gap:4px;padding:0 8px 14px;border-bottom:1px solid var(--chat-line); }
#mail-panel.guild-messenger .messenger-filter { flex:1;white-space:nowrap;min-height:32px;padding:6px;border:0;border-radius:4px;background:none;color:#97aab7;font:500 .7rem 'Noto Sans',system-ui,sans-serif;cursor:pointer; }
#mail-panel.guild-messenger .messenger-filter[aria-pressed=true] { color:#e2edf2;background:#30424e; }
#mail-panel.guild-messenger .messenger-filter:hover { background:#263743; }
#mail-panel.guild-messenger #threads-list { flex:1;min-height:0;max-height:none;overflow:auto;padding:10px 4px 6px;scrollbar-color:#586c78 transparent;scrollbar-width:thin; }
#mail-panel.guild-messenger .messenger-thread { box-sizing:border-box;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;min-height:90px;margin:3px 0;padding:13px 10px;border:1px solid transparent;border-radius:5px;background:transparent;text-align:left;box-shadow:none;cursor:pointer; }
#mail-panel.guild-messenger .messenger-thread:hover { background:#26343e77;border-color:#8eafc01a; }
#mail-panel.guild-messenger .messenger-thread[aria-pressed=true] { background:linear-gradient(100deg,#344651,#26343e);border-color:#a0bdca30;box-shadow:inset 2px 0 #a9c8d7; }
#mail-panel.guild-messenger .messenger-avatar { width:36px;height:36px;box-sizing:border-box;display:grid;place-items:center;flex:none;border-radius:10px;border:1px solid #a8c2cf33;background:linear-gradient(140deg,#415462,#22323e);color:#caddE5;font:600 .76rem 'Noto Sans',system-ui,sans-serif;box-shadow:inset 0 1px #ffffff12; }
#mail-panel.guild-messenger .messenger-avatar.is-guild { background:linear-gradient(140deg,#788b90,#374a52);color:#f0f4ed;border-color:#c3d4d666; }
#mail-panel.guild-messenger .messenger-thread-copy { min-width:0;display:grid;gap:4px; }
#mail-panel.guild-messenger .messenger-thread strong { font:600 .8rem/1.35 'Noto Sans',system-ui,sans-serif;color:#cfdbe2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
#mail-panel.guild-messenger .messenger-thread-subject { color:#9aadb8;font-size:.69rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
#mail-panel.guild-messenger .messenger-thread .thread-preview { margin:0;display:block;color:#8195a3;font-size:.7rem;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
#mail-panel.guild-messenger .has-unread strong { color:#f0f5f7; }
#mail-panel.guild-messenger .has-unread .thread-preview { color:#bdcbd3; }
#mail-panel.guild-messenger .messenger-thread-meta { display:grid;justify-items:end;gap:10px; }
#mail-panel.guild-messenger .messenger-thread-meta time { color:#899eac;font-size:.58rem;white-space:nowrap;line-height:1.8; }
#mail-panel.guild-messenger .unread { display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;margin:0;border-radius:8px;background:#b6d0dc;color:#18252e;font:700 .65rem 'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger .messenger-no-results { padding:24px 12px;color:#9fb2bd;font-size:.8rem;line-height:1.7; }
#mail-panel.guild-messenger #chat { position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;background:linear-gradient(130deg,#1d2830f7,#17212af7);border:0;padding:0; }
#mail-panel.guild-messenger .missive-heading { flex:none;position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:3px 14px;align-items:center;min-height:82px;padding:16px 25px;margin:0;border-bottom:1px solid var(--chat-line);background:#141e26aa; }
#mail-panel.guild-messenger .missive-heading>.messenger-avatar { grid-column:1;grid-row:1/3;width:40px;height:40px; }
#mail-panel.guild-messenger .missive-eyebrow { display:none; }
#mail-panel.guild-messenger #chat-title { grid-column:2;grid-row:1;margin:0;font:600 .95rem/1.4 'Noto Sans',system-ui,sans-serif;color:#e4edf1; }
#mail-panel.guild-messenger #chat-meta { grid-column:2;grid-row:2;margin:0;max-width:none;font:400 .66rem/1.5 'Noto Sans',system-ui,sans-serif;color:#91a6b4; }
#mail-panel.guild-messenger #chat-contract { grid-column:3;grid-row:1/3;padding:9px 12px;min-height:36px;border:1px solid #a0bdca33;border-radius:5px;background:#293a4580;color:#bfd2dd;font:500 .7rem 'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger #chat-contract:hover { background:#354c5b; }
#mail-panel.guild-messenger .messenger-back { display:none; }
#mail-panel.guild-messenger #chat :is(.missive-sheet,.message,#message-form) { --paper-ink:#d3dee5;--paper-heading:#dfe9ef;--paper-muted:#9aadb9;--paper-line:#95b1c322;--paper-field:#243440; }
#mail-panel.guild-messenger #chat .missive-sheet { display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;position:relative;color:var(--chat-text); }
#mail-panel.guild-messenger #chat.missive-idle .missive-sheet { display:none; }
#mail-panel.guild-messenger .messenger-history { flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:16px 24px;scrollbar-width:thin;scrollbar-color:#536b7a transparent;overflow-anchor:none; }
#mail-panel.guild-messenger #chat #messages-list { max-height:none;overflow:visible;gap:0;padding:0; }
#mail-panel.guild-messenger #chat #messages-list:empty::before { content:'Le début de votre conversation.';padding:60px 20px;color:#91a5b2;font:400 .9rem 'Noto Sans',system-ui,sans-serif;text-align:center; }
#mail-panel.guild-messenger #chat #older-messages { display:block;margin:0 auto 18px;padding:6px 12px;color:#a4bdca;font:500 .7rem 'Noto Sans',system-ui,sans-serif;border:1px solid #8daaba30;border-radius:12px;background:#233440; }
#mail-panel.guild-messenger #chat #older-messages[hidden] { display:none; }
#mail-panel.guild-messenger .messenger-date { display:flex;align-items:center;gap:14px;color:#92a6b3;font-size:.62rem;font-weight:600;margin:16px 0 22px;text-transform:uppercase;letter-spacing:.06em; }
#mail-panel.guild-messenger .messenger-date::before,#mail-panel.guild-messenger .messenger-date::after { content:'';flex:1;height:1px;background:#8dabb421; }
#mail-panel.guild-messenger #chat .missive-sheet .message { display:block;position:relative;width:100%;min-height:48px;margin:0;padding:7px 12px 18px 54px;background:transparent;border:0;border-radius:5px;box-shadow:none;color:#cbd8e0; }
#mail-panel.guild-messenger #chat .missive-sheet .message:hover { background:#adc4d005; }
#mail-panel.guild-messenger .message>.messenger-avatar { position:absolute;left:2px;top:8px; }
#mail-panel.guild-messenger .messenger-message-head { display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:5px; }
#mail-panel.guild-messenger #chat .messenger-message-head strong { color:#dce6ec;font:600 .82rem/1.5 'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger .messenger-message-head time { color:#839aa9;font-size:.61rem; }
#mail-panel.guild-messenger #chat .message.mine .messenger-message-head strong { color:#bddaea; }
#mail-panel.guild-messenger #chat .message>p { font:400 .86rem/1.7 'Noto Sans',system-ui,sans-serif;white-space:pre-wrap;margin:0;max-width:90ch;color:#c5d2da; }
#mail-panel.guild-messenger #chat .message.is-grouped { min-height:0;padding-top:0;padding-bottom:8px;margin-top:-9px; }
#mail-panel.guild-messenger .message.is-grouped>.messenger-avatar { display:none; }
#mail-panel.guild-messenger .message.is-grouped>.messenger-message-head { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
#mail-panel.guild-messenger #chat .message>.bouton-texte { color:#acc6d4;font:500 .69rem 'Noto Sans',system-ui,sans-serif;min-height:26px;margin:8px 0 0; }
#mail-panel.guild-messenger #chat .missive-composer { flex:none;padding:0 24px 18px;margin:0;border:0;background:none;max-height:55%;overflow:auto; }
#mail-panel.guild-messenger #chat #message-form { padding:12px 14px 10px;margin:0;background:#263640;border:1px solid #a0bac440;border-radius:7px;box-shadow:0 4px 18px #0002;color:#d4e0e5; }
#mail-panel.guild-messenger #chat #message-form:focus-within { border-color:#afcdd877;box-shadow:0 0 0 2px #b9d6e207; }
#mail-panel.guild-messenger #message-form>label[for=message-text] { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
#mail-panel.guild-messenger #chat #message-text { display:block;min-height:48px;max-height:116px;resize:none;padding:5px 2px;border:0;outline:0;background:transparent;box-shadow:none;color:#e2ecf1;font:400 .85rem/1.65 'Noto Sans',system-ui,sans-serif;color-scheme:dark; }
#mail-panel.guild-messenger #chat #message-text::placeholder { color:#91a8b7; }
#mail-panel.guild-messenger #chat #message-form .actions { display:flex;gap:12px;margin:8px 0 0;padding-top:9px;border-top:1px solid #91afbd24;align-items:center; }
#mail-panel.guild-messenger #chat #send-message { order:3;margin-left:auto;min-height:36px;padding:8px 18px;border:1px solid #bdd5de66;border-radius:4px;background:#b5cdd7;color:#152934;box-shadow:inset 0 1px #f1f6f477;font:600 .73rem 'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger #chat #send-message:hover { background:#d1e2e9;color:#10232c; }
#mail-panel.guild-messenger #message-count { order:2;color:#9bb0bc;font:400 .64rem 'Noto Sans',system-ui,sans-serif;white-space:nowrap; }
#mail-panel.guild-messenger .messenger-key-hint { order:1;flex:1;color:#819aa9;font-size:.59rem; }
#mail-panel.guild-messenger .messenger-send-options { margin:4px 0 0;border:0; }
#mail-panel.guild-messenger #chat .messenger-send-options>summary { width:fit-content;cursor:pointer;color:#9bb7c6;font:500 .66rem 'Noto Sans',system-ui,sans-serif;padding:4px 0; }
#mail-panel.guild-messenger #chat #message-form :is(.publier,.chat-identity label) { color:#b7c9d3;font:400 .72rem/1.5 'Noto Sans',system-ui,sans-serif; }
#mail-panel.guild-messenger #chat #message-form :is(#publish-help,#chat-identity-preview) { color:#97aebb;font:400 .66rem/1.6 'Noto Sans',system-ui,sans-serif;margin:5px 0; }
#mail-panel.guild-messenger #chat #message-form .chat-identity { padding:8px;margin:8px 0;background:#16273255;border-color:#8daeb82b; }
#mail-panel.guild-messenger #chat #message-error { color:#f0b3b6;background:none;font:400 .75rem/1.5 'Noto Sans',system-ui,sans-serif;margin:5px 0; }
#mail-panel.guild-messenger #message-error:empty { display:none; }
#mail-panel.guild-messenger .messenger-latest { position:absolute;right:32px;bottom:175px;z-index:2;background:#bcd4df;color:#152b38;border:1px solid #e1ecf080;border-radius:16px;padding:7px 13px;font:600 .7rem 'Noto Sans',system-ui,sans-serif;box-shadow:0 4px 16px #0006;cursor:pointer; }
#mail-panel.guild-messenger .messenger-welcome { display:none;flex:1;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:36px; }
#mail-panel.guild-messenger #chat.missive-idle .messenger-welcome { display:flex; }
#mail-panel.guild-messenger .messenger-welcome-mark { display:grid;place-items:center;width:84px;height:84px;margin-bottom:25px;border:1px solid #9ab3c13a;border-radius:24px;background:linear-gradient(135deg,#34454e,#1c2b35);color:#a8c1cc;font:36px serif;box-shadow:inset 0 1px #d6e4e514,0 10px 40px #0003; }
#mail-panel.guild-messenger #chat .messenger-welcome h3 { color:#c9d9e2;font:500 1.4rem var(--serif);margin:0 0 10px; }
#mail-panel.guild-messenger .messenger-welcome p { color:#8ca3b2;max-width:350px;font-size:.8rem;line-height:1.7;margin:0; }
#mail-panel.guild-messenger .messenger-status { position:absolute;inset:84px 0 0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center;color:#b4c8d5;font-size:.85rem;background:#17222bec;z-index:4; }
#mail-panel.guild-messenger .messenger-status[hidden] { display:none; }
#mail-panel.guild-messenger .messenger-loading .missive-sheet { visibility:hidden; }
/* Les accords gardent leur nature de document scellé, à l'intérieur du fil. */
#mail-panel.guild-messenger #chat :is(.offer-document,.offer-editor) { --paper-ink:#293135;--paper-heading:#35434a;--paper-muted:#424e54;--paper-line:#65727645;color:#293135;color-scheme:light;background:var(--paper-grain),#cdd0cd;border:1px solid #7c92987a;border-radius:4px;box-shadow:0 5px 16px #0003;padding:20px 24px;font-family:var(--lecture); }
#mail-panel.guild-messenger #chat .offer-document { max-width:680px;margin:14px 0 4px; }
#mail-panel.guild-messenger #chat .offer-document :is(h3,.offer-price strong) { font-size:1.5rem; }
#mail-panel.guild-messenger #chat .offer-document .offer-price { margin:12px 0; }
#mail-panel.guild-messenger #chat .offer-document :is(.offer-fineprint,.offer-conditions) { font-size:.83rem!important;line-height:1.6; }
#mail-panel.guild-messenger #chat .offer-document .offer-accept { width:100px;min-width:100px;height:94px;font-size:.65rem!important; }
#mail-panel.guild-messenger #chat .offer-document .offer-accept svg { width:48px;height:24px; }
#mail-panel.guild-messenger #chat .offer-editor { position:absolute;inset:auto 24px 20px;max-height:85%;overflow:auto;z-index:3; }
#mail-panel.guild-messenger #chat .offer-editor[hidden] { display:none; }
#mail-panel.guild-messenger #chat .offer-editor :is(input,textarea) { color:#293135;background:#edf0e780;border-color:#65727666; }
#mail-panel.guild-messenger #chat .offer-editor label { color:#35434a; }
@media(max-width:1100px) { #mail-panel.guild-messenger .missive-desk { grid-template-columns:275px minmax(0,1fr); }#mail-panel.guild-messenger .messenger-key-hint { display:none; } }
@media(max-width:800px) {
 .guild-experience #dashboard:has(#mail-panel.conversation-open:not([hidden])) :is(.game-page-nav,.game-section-links) { display:none; }
 .guild-experience .game-viewport:has(#mail-panel:not([hidden])) { width:100%;padding-inline:10px; }
 #mail-panel.guild-messenger .missive-desk { grid-template-columns:minmax(0,1fr); }
 #mail-panel.guild-messenger .missive-inbox { border:0;padding-top:18px; }
 #mail-panel.guild-messenger:not(.conversation-open) #chat { display:none; }
 #mail-panel.guild-messenger.conversation-open .missive-inbox { display:none; }
 #mail-panel.guild-messenger .missive-heading { padding:12px 15px;grid-template-columns:32px minmax(0,1fr);gap:5px 10px; }
 #mail-panel.guild-messenger .messenger-back { display:block;grid-column:1/-1;grid-row:1;width:fit-content;background:none;border:0;padding:0 0 8px;color:#abc4d3;font:500 .75rem 'Noto Sans',system-ui,sans-serif;cursor:pointer; }
 #mail-panel.guild-messenger .messenger-back::before { content:'‹';font-size:1.15rem;margin-right:7px; }
 #mail-panel.guild-messenger .missive-heading>.messenger-avatar { width:32px;height:32px;grid-row:2/4; }
 #mail-panel.guild-messenger #chat-title { grid-row:2;font-size:.9rem; }
 #mail-panel.guild-messenger #chat-meta { grid-row:3; }
 #mail-panel.guild-messenger #chat-contract { grid-column:2;grid-row:4;justify-self:start;padding:5px 9px;min-height:28px;margin-top:3px; }
 #mail-panel.guild-messenger .messenger-history { padding:10px 12px; }
 #mail-panel.guild-messenger #chat .missive-composer { padding:0 12px 12px; }
 #mail-panel.guild-messenger #chat .message>p { font-size:.93rem; }
 #mail-panel.guild-messenger #chat .offer-document { padding:14px; }
 #mail-panel.guild-messenger #chat .offer-editor { inset:auto 12px 12px; }
}
@media(prefers-reduced-motion:no-preference) { #mail-panel.guild-messenger :is(.messenger-thread,.messenger-filter,.guild-mail-new) { transition:background .15s,border-color .15s; } }

#mail-panel.guild-messenger .messenger-mailboxes{display:flex;flex:none;gap:6px;margin:12px 8px 16px}
#mail-panel.guild-messenger .messenger-mailbox{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:0;padding:10px 6px;border:1px solid #96b2c22e;border-radius:5px;background:#192732;color:#a8bbc8;font:600 .72rem 'Noto Sans',sans-serif;cursor:pointer}
#mail-panel.guild-messenger .messenger-mailbox[aria-pressed=true]{background:#38505e;color:#edf5f8;border-color:#b7d0dd;box-shadow:inset 0 -2px #c3dbe7}
#mail-panel.guild-messenger .messenger-mailbox>svg{width:24px;height:24px;flex:none}
#mail-panel.guild-messenger .messenger-avatar.is-guild{border-radius:50%;background:linear-gradient(140deg,#415661,#20333f);border:0}
#mail-panel.guild-messenger .messenger-avatar.is-guild>svg{width:100%;height:100%;padding:2px;box-sizing:border-box}
#mail-panel.guild-messenger .messenger-author-role{font-size:.57rem;padding:2px 5px;border:1px solid #a2c2d033;border-radius:3px;color:#b4cdd9;background:#35536540}
#mail-panel.guild-messenger .messenger-send-options{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 0;margin:0}
#mail-panel.guild-messenger .messenger-send-options .chat-identity{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;border:0;background:none;padding:0;margin:0;width:100%}
#mail-panel.guild-messenger .chat-identity #chat-nickname[hidden]{display:none}
#mail-panel.guild-messenger .chat-identity .messenger-signature-button{display:inline-flex;align-items:center;gap:10px;min-height:38px;padding:8px 14px;border:1px solid #8ca9b85e;border-radius:4px;color:#b9cdd8;background:#20323e;font:600 .74rem 'Noto Sans',sans-serif;cursor:pointer}
#mail-panel.guild-messenger .messenger-signature-button::before{content:'✎';font-size:1.2rem}
#mail-panel.guild-messenger .messenger-signature-button[aria-pressed=true]{color:#f1f8fb;background:#415e6f;border-color:#c2d9e5;box-shadow:inset 0 0 0 1px #9bbdce33,0 0 12px #a6c8dc14}
#mail-panel.guild-messenger .messenger-signature-button:disabled{opacity:.5;cursor:default}
#mail-panel.guild-messenger #chat-identity-preview{margin:0;font-size:.66rem;color:#a9bdc9}
#mail-panel.guild-messenger .missive-heading #chat-meta{overflow-wrap:anywhere}
#mail-panel.guild-messenger :is(.messenger-mailboxes,.messenger-send-options,.chat-identity,.guild-mail-new,.messenger-filter)[hidden]{display:none}

#mail-panel.guild-messenger .chat-identity .messenger-signature-button[hidden]{display:none}

/* Compact portraits: the picture never controls row size. */
.character-thumbnail{position:relative;display:grid;place-items:center;flex:none;overflow:hidden;isolation:isolate;background:linear-gradient(145deg,#44535d,#19252e);color:#d5e3eb;border:1px solid #91a9b755;box-sizing:border-box}
.character-thumbnail img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;object-position:50% 20%;border:0;margin:0;padding:0;border-radius:inherit}
#dashboard #ranking-panel .honour-avatar{display:grid;width:38px;height:42px;clip-path:none;border-radius:3px;box-shadow:0 2px 6px #0005,inset 0 0 0 1px #c7e2ee18}
#dashboard #ranking-panel .honour-row[data-place="2"] .honour-position,#dashboard #ranking-panel .honour-row[data-place="3"] .honour-position{color:#deedf4}
#dashboard #ranking-panel .honour-table-identity{gap:.7rem}
#mail-panel.guild-messenger .messenger-avatar{overflow:hidden;border-radius:5px}
#mail-panel.guild-messenger .messenger-avatar img{object-position:50% 20%}
@media(max-width:600px){
 #dashboard #ranking-panel .honour-avatar{display:grid;width:28px;height:34px;font-size:.65rem}
 #dashboard #ranking-panel .honour-table-identity{gap:.4rem}
 #dashboard #ranking-panel .honour-name-copy>strong{font-size:.8rem}
 #dashboard #ranking-panel .honour-col-0{width:10%}
 #dashboard #ranking-panel .honour-col-1{width:47%}
 #dashboard #ranking-panel .honour-col-3{width:20%}
 #dashboard #ranking-panel .honour-col-4{width:23%}
}


/* Three places of honour, with a composed interior and a raised silver champion. */
#dashboard #ranking-panel .honour-elite{display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:end;gap:1rem;padding:1rem 0 .4rem;margin:0 0 1.2rem}
#dashboard #ranking-panel .honour-leader,
#dashboard #ranking-panel .honour-leader.is-first{position:relative;grid-column:auto;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:340px;padding:1.25rem 1.5rem 0;overflow:hidden;border:1px solid #91aeb552;border-top:2px solid #9fb7c4;background:radial-gradient(ellipse at 50% 22%,#45607044,transparent 68%),linear-gradient(145deg,#293c47,#172630 85%);box-shadow:inset 0 1px #effaff16,0 12px 24px #0003}
#dashboard #ranking-panel .honour-leader[data-place="2"]{grid-column:1}
#dashboard #ranking-panel .honour-leader[data-place="3"]{grid-column:3}
#dashboard #ranking-panel .honour-leader.is-first{grid-column:2;min-height:380px;border-color:#c3dae788;border-top-color:#ebf8ff;background:radial-gradient(ellipse at 50% 0,#98bfce38,transparent 72%),linear-gradient(145deg,#3a5261,#203541 80%);box-shadow:inset 0 1px #fff6,0 0 28px #99cbdf0c,0 16px 30px #0005}
#dashboard #ranking-panel .honour-leader::before{content:'';position:absolute;inset:6px;border:1px solid #b9d1df0c;pointer-events:none}
#dashboard #ranking-panel .honour-podium-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 0 .8rem;margin:0;border:0;border-bottom:1px solid #adccdc22;background:none;text-align:left}
#dashboard #ranking-panel .honour-leader .honour-podium-heading .honour-kicker{display:block;font-size:.57rem;letter-spacing:.18em;color:#aac2ce;margin:0;line-height:1.5}
#dashboard #ranking-panel .honour-leader-position,
#dashboard #ranking-panel .is-first .honour-leader-position{font:400 2rem/1 var(--serif);color:#b9d0df;align-self:center;letter-spacing:-.04em}
#dashboard #ranking-panel .is-first .honour-leader-position{font-size:2.5rem;background:linear-gradient(145deg,#fff,#9fb9c9 65%,#dfedf8);background-clip:text;-webkit-text-fill-color:transparent}
#dashboard #ranking-panel .honour-laureate,
#dashboard #ranking-panel .is-first .honour-laureate{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;min-width:0;padding:1.1rem 0;text-align:center}
#dashboard #ranking-panel .honour-leader-portrait,
#dashboard #ranking-panel .is-first .honour-leader-portrait{width:88px;height:104px;flex:none;border-radius:2px;border:1px solid #b7d1df88;box-shadow:0 6px 18px #0006,0 0 0 4px #b5d7ec08;font:500 1.8rem var(--serif)}
#dashboard #ranking-panel .is-first .honour-leader-portrait{width:104px;height:122px;border-color:#cce3ed;box-shadow:0 8px 20px #0006,0 0 0 4px #cce5f00a,0 0 24px #ceeaff14}
#dashboard #ranking-panel .honour-laureate-copy{min-width:0;width:100%}
#dashboard #ranking-panel .honour-laureate h3,
#dashboard #ranking-panel .is-first .honour-laureate h3{font:500 1.55rem/1.2 var(--serif);color:#e4edf2;overflow-wrap:anywhere;margin:0}
#dashboard #ranking-panel .is-first .honour-laureate h3{font-size:1.85rem;color:#f0f6f9}
#dashboard #ranking-panel .honour-leader-meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:.6rem;color:#a9c0ce;font-size:.7rem}
#dashboard #ranking-panel .honour-leader-score,
#dashboard #ranking-panel .is-first .honour-leader-score{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.8rem;flex:none;margin:0 -1.5rem;padding:.8rem 1.5rem;border:0;border-top:1px solid #a9c7d838;background:#09172038;min-height:75px}
#dashboard #ranking-panel .honour-leader-score strong,
#dashboard #ranking-panel .is-first .honour-leader-score strong{font:400 2.55rem/1 var(--serif);color:#e1eff7;font-variant-numeric:tabular-nums}
#dashboard #ranking-panel .is-first .honour-leader-score strong{font-size:3rem}
#dashboard #ranking-panel .honour-leader-score>span{font-size:.63rem;max-width:90px;color:#afc5d2;line-height:1.5}
#dashboard #ranking-panel .honour-elite[data-count="1"]{grid-template-columns:1fr;max-width:600px;margin-inline:auto}
#dashboard #ranking-panel .honour-elite[data-count="2"]{grid-template-columns:1.1fr 1fr}
#dashboard #ranking-panel .honour-elite:not([data-count="3"]) .honour-leader{grid-column:auto}
@media(max-width:900px) and (min-width:651px){
 #dashboard #ranking-panel .honour-elite{gap:.65rem}
 #dashboard #ranking-panel .honour-leader,#dashboard #ranking-panel .honour-leader.is-first{padding-inline:.8rem}
 #dashboard #ranking-panel .honour-laureate h3{font-size:1.25rem}
 #dashboard #ranking-panel .is-first .honour-laureate h3{font-size:1.5rem}
 #dashboard #ranking-panel .honour-leader-score,#dashboard #ranking-panel .is-first .honour-leader-score{margin-inline:-.8rem}
 #dashboard #ranking-panel .honour-leader .honour-kicker{font-size:.5rem;letter-spacing:.1em}
}
@media(max-width:650px){
 #dashboard #ranking-panel .honour-elite,#dashboard #ranking-panel .honour-elite[data-count="2"]{grid-template-columns:1fr;gap:.8rem;padding-top:.5rem}
 #dashboard #ranking-panel .honour-elite .honour-leader[data-place]{grid-column:1;grid-row:auto}
 #dashboard #ranking-panel .honour-leader,#dashboard #ranking-panel .honour-leader.is-first{grid-column:1;grid-row:auto;min-height:0;padding:1rem 1rem 0}
 #dashboard #ranking-panel .honour-laureate,#dashboard #ranking-panel .is-first .honour-laureate{flex-direction:row;gap:1rem;text-align:left;padding:1rem 0}
 #dashboard #ranking-panel .honour-leader-portrait,#dashboard #ranking-panel .is-first .honour-leader-portrait{width:64px;height:80px}
 #dashboard #ranking-panel .honour-laureate h3,#dashboard #ranking-panel .is-first .honour-laureate h3{font-size:1.4rem}
 #dashboard #ranking-panel .honour-leader-meta{justify-content:flex-start;gap:.4rem}
 #dashboard #ranking-panel .honour-leader-score,#dashboard #ranking-panel .is-first .honour-leader-score{margin:0 -1rem;min-height:58px;padding:.5rem 1rem}
 #dashboard #ranking-panel .honour-leader-score strong,#dashboard #ranking-panel .is-first .honour-leader-score strong{font-size:2.2rem}
 #dashboard #ranking-panel .honour-leader-score>span{max-width:none}
}

/* Rank rewards and medal frames. Table thumbnails remain compact. */
#dashboard #ranking-panel .honour-leader{--medal:#cbdce9;--medal-glow:#b6d8ee55}
#dashboard #ranking-panel .honour-leader[data-place="1"]{--medal:#e7c275;--medal-glow:#e4b85b60}
#dashboard #ranking-panel .honour-leader[data-place="3"]{--medal:#ce916a;--medal-glow:#cb875150}
#dashboard #ranking-panel .honour-leader .honour-leader-portrait{width:116px;height:140px;border:2px solid var(--medal);box-shadow:0 0 0 3px #101c24,0 0 0 4px var(--medal),0 0 24px var(--medal-glow),0 8px 20px #0007}
#dashboard #ranking-panel .honour-leader.is-first .honour-leader-portrait{width:132px;height:158px;box-shadow:0 0 0 3px #19212a,0 0 0 5px var(--medal),0 0 34px var(--medal-glow),0 10px 22px #0008}
#dashboard #ranking-panel .honour-leader-score>span{max-width:120px}
#dashboard #ranking-panel .honour-leader-score small{display:block;margin-top:.2rem;color:#a8becb;font-size:.6rem}
#dashboard #ranking-panel .honour-point-scale{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem 1.25rem;padding:.9rem 1rem;margin-bottom:1rem;border-block:1px solid #a9c7d82b;background:#14212bde}
#dashboard #ranking-panel .honour-point-scale>.honour-kicker{margin:0 auto 0 0;font-size:.6rem}
#dashboard #ranking-panel .honour-point-award{display:flex;align-items:center;gap:.5rem;font-size:.75rem;white-space:nowrap}
#dashboard #ranking-panel .honour-point-award .personal-rank{font-size:.6rem;padding:.15rem .4rem}
#dashboard #ranking-panel .honour-score-numbers{display:flex;flex-direction:column;flex:none;min-width:3.5rem}
#dashboard #ranking-panel .honour-score-numbers small{font-size:.6rem;white-space:nowrap;color:#a8becb;font-weight:400}
@media(max-width:650px){
 #dashboard #ranking-panel .honour-leader .honour-leader-portrait{width:82px;height:102px}
 #dashboard #ranking-panel .honour-leader.is-first .honour-leader-portrait{width:94px;height:114px}
 #dashboard #ranking-panel .honour-point-scale{gap:.65rem .85rem}
 #dashboard #ranking-panel .honour-point-scale>.honour-kicker{width:100%}
}

/* Shared material with the main menu: smoked charcoal, fine silver edges. */
:root{--guild-menu-surface:linear-gradient(120deg,#04070b94,#0204088f 70%);--guild-menu-hover:linear-gradient(120deg,#0c121ab3,#060b11a8 75%);--guild-menu-border:#8c9aa438;--guild-menu-shadow:inset 0 1px #cbd7e40b,0 10px 30px #0003}
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry){background:var(--guild-menu-surface);border-color:var(--guild-menu-border);box-shadow:var(--guild-menu-shadow)}
.guild-experience[data-game-screen=choose] .game-main-menu :is(.voie,.game-menu-entry):is(:hover,:focus-visible){background:var(--guild-menu-hover)}
#dashboard #ranking-panel .honour-leader,
#dashboard #ranking-panel .honour-leader.is-first{background:var(--guild-menu-surface);border:1px solid var(--guild-menu-border);box-shadow:var(--guild-menu-shadow)}
#dashboard #ranking-panel .honour-leader.is-first{border-top-color:#bac5cc80}
#dashboard #ranking-panel .honour-leader::before{border-color:#bac5cc0e}
#dashboard #ranking-panel .honour-podium-heading{border-bottom-color:#bac5cc24}
#dashboard #ranking-panel .honour-leader-score,
#dashboard #ranking-panel .is-first .honour-leader-score{background:#04070b40;border-top-color:#bac5cc24}
#dashboard #ranking-panel .honour-table-wrap{background:var(--guild-menu-surface);border-color:var(--guild-menu-border);box-shadow:var(--guild-menu-shadow)}
#dashboard #ranking-panel .honour-table thead{background:#cbd7e407}
#dashboard #ranking-panel .honour-row{background:transparent}
#dashboard #ranking-panel .honour-row:nth-child(even){background:#cbd7e405}
#dashboard #ranking-panel .honour-row[data-place="1"]{background:#cbd7e409}
#dashboard #ranking-panel .honour-row.is-self{background:#cbd7e411;box-shadow:inset 2px 0 #bfcbd17d}
#dashboard #ranking-panel .honour-row:hover{background:#cbd7e416}
#dashboard #ranking-panel :is(.honour-select,.honour-search,.honour-page-button,.honour-locate){background:var(--guild-menu-surface);border-color:var(--guild-menu-border);box-shadow:inset 0 1px #cbd7e40b}
#dashboard #ranking-panel :is(.honour-page-button,.honour-locate):hover:not(:disabled){background:var(--guild-menu-hover);border-color:#bfcbd17d}

/* Bounded portrait, readable dossier, and an always-open identity editor. */
#dashboard #character-panel .personal-card{grid-template-columns:minmax(200px,27%) minmax(0,1fr);gap:1.4rem 1.8rem;padding:1.6rem;align-items:start;margin-bottom:.8rem}
#dashboard #character-panel .personal-portrait{width:100%;height:auto;min-height:0;aspect-ratio:auto;align-self:stretch;border:1px solid #95afbd55;box-shadow:0 6px 18px #0004;overflow:hidden;transform:none}
#dashboard #character-panel .personal-portrait>img{width:100%;height:100%;object-fit:cover;object-position:center 25%;clip-path:none;transform:none}
#dashboard #character-panel .personal-card-body{padding:0;min-width:0}
#dashboard #character-panel .personal-card-body::after{display:none}
#dashboard #character-panel .personal-eyebrow{font-size:.65rem;margin:0 0 .65rem;color:#a6bdcb}
#dashboard #character-panel .personal-card h2{font-size:clamp(2rem,3vw,2.65rem);margin:0 0 .4rem}
#dashboard #character-panel .personal-identity{font-size:1.05rem;margin:.35rem 0}
#dashboard #character-panel .personal-card-body>.muted{font-size:1rem;margin:.3rem 0 .7rem}
#dashboard #character-panel .personal-card-body>.personal-rank{font-size:.8rem;padding:.25rem .6rem}
#dashboard #character-panel .personal-stats{margin:1rem 0 .6rem;gap:.65rem}
#dashboard #character-panel .personal-stats .tablette{padding:.65rem .85rem;min-height:0}
#dashboard #character-panel .personal-stats .valeur{font-size:1.65rem;line-height:1.15}
#dashboard #character-panel .personal-stats .libelle{font-size:.8rem;line-height:1.35;margin-top:.3rem}
#dashboard #character-panel .mercenary-reputation{font-size:.9rem;margin:.7rem 0 0;padding:.7rem 0 0;border-top:1px solid #9bb0bf30}
#dashboard #character-panel .personal-identity-editor{grid-column:1/-1;margin:0;padding-top:1.2rem;border-top:1px solid #9bb0bf30;min-width:0}
#dashboard #character-panel .personal-identity-editor h3{font:500 1.15rem var(--serif);margin:0;color:#d4dde3}
#dashboard #character-panel .personal-identity-editor form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.7rem 1.1rem;margin-top:.8rem}
#dashboard #character-panel .personal-identity-editor label{font-size:.85rem;margin:0}
#dashboard #character-panel .personal-identity-editor .saisie{font-size:1rem;min-height:42px;margin-top:.4rem}
#dashboard #character-panel .personal-identity-editor button{grid-column:3;grid-row:1;min-height:42px;align-self:end;margin-bottom:0}
#dashboard #character-panel .personal-identity-editor form>p{grid-column:1/-1;font-size:.8rem;margin:0;line-height:1.45}
#dashboard #character-panel .identity-save-message:empty{display:none}
#dashboard #character-panel .personal-history{display:flex;justify-content:flex-end;padding:.2rem 0 1.2rem;background:none;border:0;box-shadow:none}
#dashboard #character-panel .personal-primes-link{font-size:.95rem}
@media(max-width:700px){
 #dashboard #character-panel .personal-card{grid-template-columns:160px minmax(0,1fr);padding:1rem;gap:1.1rem}
 #dashboard #character-panel .personal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 #dashboard #character-panel .personal-identity-editor form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 #dashboard #character-panel .personal-identity-editor button{grid-column:1/-1;grid-row:auto;justify-self:end}
}
@media(max-width:500px){
 #dashboard #character-panel .personal-card{grid-template-columns:minmax(0,1fr)}
 #dashboard #character-panel .personal-portrait{width:170px;max-width:100%;justify-self:center;aspect-ratio:4/5;align-self:start}
 #dashboard #character-panel .personal-card h2{font-size:2rem}
 #dashboard #character-panel .personal-identity-editor form{grid-template-columns:minmax(0,1fr)}
 #dashboard #character-panel .personal-card-body>.personal-eyebrow,#dashboard #character-panel .personal-card-body>h2,#dashboard #character-panel .personal-card-body>.personal-identity,#dashboard #character-panel .personal-card-body>.muted{text-align:center}
 #dashboard #character-panel .personal-card-body>.personal-rank{display:table;margin-inline:auto}
}

/* The menu's smoked charcoal material, with denser surfaces for reading.
   Alpha belongs to backgrounds only: text, portraits and rank colours stay crisp. */
#etat-sauvegarde:empty {display:none}
.guild-experience:not([data-game-screen=gate]) {
 --guild-panel-surface:linear-gradient(120deg,#080b10cc,#04070bc7 70%);
 --guild-reading-surface:linear-gradient(120deg,#101318f5,#090d12f2 70%);
 --guild-field-surface:#080b10e8;
 --guild-selected-surface:linear-gradient(120deg,#c6cfd51c,#c6cfd50c);
 --guild-metal:var(--guild-panel-surface);
 --guild-edge:var(--guild-menu-border);
 --guild-line:#bac5cc24;
 --guild-text:#dbe0e4;
 --guild-muted:#aeb8c0;
 color:var(--guild-text);
 scrollbar-color:#657079 #080b10;
}

/* Character sheets, mercenaries, account and application panels. */
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.personal-card,.carte-membre.member-personal-card,.fiche-membre,.plaque,.personal-history):not(:where(#document *, .contract-paper *, #mail-panel *)) {
 background:var(--guild-panel-surface);border-color:var(--guild-menu-border);box-shadow:var(--guild-menu-shadow);
}
.guild-experience:not([data-game-screen=gate]) #dashboard .tablette:not(:where(#document *, .contract-paper *)) {
 background:var(--guild-menu-surface);border-color:var(--guild-line);box-shadow:inset 0 1px #cbd7e40b;
}
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.personal-identity-editor,.member-card-management,.personal-history-row,.member-tools,.notification) {
 border-color:var(--guild-line);
}
.guild-experience:not([data-game-screen=gate]) #dashboard .personal-portrait {
 background:radial-gradient(ellipse at 50% 25%,#b9c4cc10,transparent 75%),#070a0fc7;border-color:#aebac33b;
}
.guild-experience:not([data-game-screen=gate]) .character-thumbnail {
 background:linear-gradient(145deg,#252a30,#10151b);border-color:#aebac345;color:#dbe0e4;
}

/* Shared controls. Paper documents keep their own ink and fields. */
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth,#pending,#bounty-dialog) :is(.bouton-clair,.bouton-shu,.demo-comptes button,.portrait-edit-button,.portrait-remove-button,.contract-filter-button:not([data-rank]),#status-filters .filtre):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #mail-panel *)) {
 color:var(--guild-text);background:var(--guild-menu-surface);border-color:#aebac345;box-shadow:inset 0 1px #cbd7e40b;
}
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth,#pending,#bounty-dialog) :is(.bouton-clair,.bouton-shu,.demo-comptes button,.portrait-edit-button,.portrait-remove-button,.contract-filter-button:not([data-rank]),#status-filters .filtre):hover:not(:disabled):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #mail-panel *)) {
 background:var(--guild-menu-hover);border-color:#bac5cc80;color:#f0f3f5;
}
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.contract-filter-button:not([data-rank]),#status-filters .filtre)[aria-pressed=true] {
 background:var(--guild-selected-surface);border-color:#bac5cc80;box-shadow:inset 0 -2px #bac5cc;color:#eef1f3;
}
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth,#bounty-dialog) :is(.saisie,.recherche,textarea,select):not(:where(#document *, .contract-paper *, .bounty-poster-button *, #mail-panel *)) {
 color:var(--guild-text);background:var(--guild-field-surface);border-color:#aebac345;box-shadow:inset 0 1px 3px #0003;color-scheme:dark;
}
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth) :is(input,textarea):not(:where(#document *, .contract-paper *, #mail-panel *))::placeholder {color:#9ba6af;opacity:1}
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth) select:not(:where(#document *, .contract-paper *, #mail-panel *)) option {background:#14181e;color:#dbe0e4}
.guild-experience:not([data-game-screen=gate]) :is(#dashboard,#auth) :focus-visible:not(:where(#document *, .contract-paper *, #mail-panel *)) {outline-color:#c2cdd5}
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.notification.unread-event,.bandeau-demo) {background:#cbd7e40b;border-color:#aebac366;color:#c0c9d0}
.guild-experience:not([data-game-screen=gate]) #dashboard :is(.vide,.messenger-no-results):not(:where(#mail-panel *)) {background:var(--guild-menu-surface);color:var(--guild-muted);border-color:var(--guild-line)}

/* The register is an interface form; actual contracts remain opaque ash paper. */
.guild-experience:not([data-game-screen=gate]) #auth #auth-form {
 --paper-ink:var(--guild-text);--paper-heading:#dbe0e4;--paper-muted:var(--guild-muted);--paper-line:var(--guild-line);--paper-base:#12171d;
 background:var(--guild-panel-surface);border-color:var(--guild-menu-border);box-shadow:var(--guild-menu-shadow);color:var(--guild-text);color-scheme:dark;
}
.guild-experience #auth #auth-form::before {background:#14191f;color:#bac5cc;border-color:#bac5cc66}
.guild-experience #auth #auth-form :is(label,h2,h3,.password-toggle,.bouton-texte) {color:#dbe0e4}
.guild-experience #auth #auth-form :is(small,.muted) {color:#aeb8c0}
.guild-experience #auth #auth-form .saisie {background:var(--guild-field-surface);color:#dbe0e4;border:1px solid #aebac345;box-shadow:inset 0 1px 3px #0003;color-scheme:dark}
.guild-experience #auth #auth-form .saisie:focus {background:#0c1117;border-color:#c2cdd5;outline-color:#c2cdd5}
.guild-experience #auth #auth-form select option {background:#14181e;color:#dbe0e4}
.guild-experience #auth #auth-form .password-toggle {background:transparent;border:0}
.guild-experience #auth #auth-form #auth-submit {color:#dbe0e4;border-color:#bac5cc70;background:var(--guild-menu-surface)}
.guild-experience #auth #auth-form #auth-submit:hover {color:#f0f3f5;border-color:#d2dbe1;background:var(--guild-menu-hover)}
.guild-experience #auth #auth-form .password-toggle:hover {color:#f0f3f5}

/* Dialogues and popovers use the same material, with a protected reading layer. */
.guild-experience #bounty-dialog {background:var(--guild-reading-surface);border-color:var(--guild-menu-border)}
.guild-experience #bounty-dialog::backdrop {background:#020408b8;backdrop-filter:blur(4px)}
.guild-experience #bounty-dialog .bounty-toolbar {background:#0b0f15f7;border-color:var(--guild-line)}
.guild-experience:not([data-game-screen=gate]) :is(.game-navigation-dialog,.audio-volume-panel) {background:var(--guild-reading-surface);color:var(--guild-text);border-color:#aebac345;box-shadow:var(--guild-menu-shadow)}
.guild-experience:not([data-game-screen=gate]) :is(.storm-test,.audio-volume-settings>summary,.bandeau .guild-audio-controls button) {background:var(--guild-menu-surface);border-color:var(--guild-menu-border)}
.guild-experience:not([data-game-screen=gate]) :is(.storm-test,.audio-volume-settings>summary,.bandeau .guild-audio-controls button):hover {background:var(--guild-menu-hover);border-color:#bac5cc80}

/* Missives: the scene remains subtly visible, never competing with the text.
   Desk has no fill, so alpha is not compounded by three stacked surfaces. */
#dashboard #mail-panel.guild-messenger {--chat-text:#dbe0e4;--chat-muted:#adb7bf;--chat-line:#bac5cc24;--chat-accent:#c8d3db}
#dashboard #mail-panel.guild-messenger .missive-desk {background:transparent;border-color:var(--guild-menu-border);box-shadow:var(--guild-menu-shadow)}
#dashboard #mail-panel.guild-messenger .missive-inbox {background:linear-gradient(120deg,#0b0f15e8,#060a0fe3);border-color:var(--chat-line)}
#dashboard #mail-panel.guild-messenger #chat {background:var(--guild-reading-surface)}
#dashboard #mail-panel.guild-messenger .missive-heading {background:#070a104d;border-color:var(--chat-line)}
#dashboard #mail-panel.guild-messenger :is(.guild-mail-new,.messenger-mailbox,.messenger-welcome-mark),
#dashboard #mail-panel.guild-messenger #chat :is(#chat-contract,#older-messages),
#dashboard #mail-panel.guild-messenger .chat-identity .messenger-signature-button {
 background:var(--guild-menu-surface);border-color:#aebac345;color:#d0d8de;box-shadow:inset 0 1px #cbd7e40b;
}
#dashboard #mail-panel.guild-messenger :is(.guild-mail-new,.messenger-mailbox,.messenger-filter,.messenger-thread):hover,
#dashboard #mail-panel.guild-messenger #chat :is(#chat-contract,#older-messages):hover,
#dashboard #mail-panel.guild-messenger .chat-identity .messenger-signature-button:hover {
 background:var(--guild-menu-hover);border-color:#bac5cc60;
}
#dashboard #mail-panel.guild-messenger :is(.messenger-thread,.messenger-mailbox,.messenger-filter)[aria-pressed=true],
#dashboard #mail-panel.guild-messenger .chat-identity .messenger-signature-button[aria-pressed=true] {
 background:var(--guild-selected-surface);border-color:#bac5cc80;color:#eff2f5;
}
#dashboard #mail-panel.guild-messenger .messenger-thread {background:transparent;box-shadow:none}
#dashboard #mail-panel.guild-messenger .messenger-thread[aria-pressed=true] {box-shadow:inset 2px 0 #c2cdd5}
#dashboard #mail-panel.guild-messenger .messenger-mailbox[aria-pressed=true] {box-shadow:inset 0 -2px #c2cdd5}
#dashboard #mail-panel.guild-messenger .messenger-search {background:var(--guild-field-surface);border-color:var(--chat-line);color:var(--chat-text)}
#dashboard #mail-panel.guild-messenger .messenger-avatar {background:linear-gradient(140deg,#30373f,#161c24);border-color:#aebac345;color:#d6dfe5}
#dashboard #mail-panel.guild-messenger .messenger-avatar.is-guild {background:linear-gradient(140deg,#353e47,#151d25)}
#dashboard #mail-panel.guild-messenger #chat .message>p {color:#d7dde2}
#dashboard #mail-panel.guild-messenger #chat .messenger-message-head strong {color:#e5eaee}
#dashboard #mail-panel.guild-messenger #chat .message.mine .messenger-message-head strong {color:#cfdee8}
#dashboard #mail-panel.guild-messenger :is(.messenger-thread-subject,.thread-preview,.messenger-message-head time,.messenger-thread-meta time,.messenger-date,.messenger-welcome p,.messenger-key-hint) {color:#a8b2bb}
#dashboard #mail-panel.guild-messenger #chat #chat-meta {color:#adb7bf}
#dashboard #mail-panel.guild-messenger .messenger-author-role {background:#c6cfd510;border-color:var(--chat-line);color:#becbd4}
#dashboard #mail-panel.guild-messenger #chat #message-form {background:#191e25f5;border-color:#aebac340;color:#dbe0e4}
#dashboard #mail-panel.guild-messenger #chat #message-form:focus-within {border-color:#c2cdd57d;box-shadow:0 0 0 2px #c2cdd509}
#dashboard #mail-panel.guild-messenger #chat #message-text {color:#e5eaee}
#dashboard #mail-panel.guild-messenger #chat #message-text::placeholder {color:#a8b2bb}
#dashboard #mail-panel.guild-messenger #chat #message-form .chat-identity {background:#04070b38;border-color:var(--chat-line)}
#dashboard #mail-panel.guild-messenger #chat #message-form :is(#chat-identity-preview,#publish-help),
#dashboard #mail-panel.guild-messenger #message-count {color:#b7c1c9}
#dashboard #mail-panel.guild-messenger #chat #send-message {background:#c5cfd6;color:#131b22;border-color:#e1e8ed70;box-shadow:inset 0 1px #ffffff40}
#dashboard #mail-panel.guild-messenger #chat #send-message:hover {background:#e0e7ec;color:#080e14}
#dashboard #mail-panel.guild-messenger :is(.unread,.messenger-latest) {background:#c5cfd6;color:#131b22}
#dashboard #mail-panel.guild-messenger .messenger-status {background:#0d1117f7;color:#c5cfd6}
#dashboard #mail-panel.guild-messenger :focus-visible {outline-color:#c2cdd5}

/* A signature is a small text switch, not a second call-to-action. */
#dashboard #mail-panel.guild-messenger #chat #message-form .chat-identity {padding:0;margin:4px 0;background:none;border:0}
#dashboard #mail-panel.guild-messenger .chat-identity .messenger-signature-button,
#dashboard #mail-panel.guild-messenger .chat-identity .messenger-signature-button:is(:hover,[aria-pressed=true]) {
 min-height:32px;padding:4px 0;gap:8px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#becbd4;font-weight:400;font-size:.72rem;
}
#dashboard #mail-panel.guild-messenger .messenger-signature-button::before {content:none}
#dashboard #mail-panel.guild-messenger .messenger-signature-button::after {content:'⇄';font-size:.95rem;color:#96a7b3}
#dashboard #mail-panel.guild-messenger .chat-identity .messenger-signature-button:hover:not(:disabled) {color:#eef3f6;text-decoration:underline;text-underline-offset:4px}
#dashboard #mail-panel.guild-messenger .messenger-signature-button:disabled::after {content:none}
#dashboard #mail-panel.guild-messenger #chat #chat-identity-preview[hidden] {display:none}

/* Compact roster: portrait and identity above a permanently visible rank bar. */
.guild-experience #dashboard #members-tools {grid-template-columns:minmax(180px,1.2fr) minmax(240px,1.6fr) auto;align-items:start;gap:1rem;font-size:.85rem}
#members-tools .member-filter-group>span {display:block;margin-bottom:.4rem}
#members-tools .member-filter-choices {display:flex;flex-wrap:wrap;gap:5px}
#members-tools .member-filter-choice {padding:.45rem .65rem;min-height:36px;border:1px solid var(--guild-menu-border);background:var(--guild-menu-surface);color:#b9c5ce;font:inherit;cursor:pointer}
#members-tools .member-filter-choice[aria-pressed=true] {border-color:var(--rank-edge,#bac5cc80);color:var(--rank,#e5ebef);background:var(--rank-bg,#c6cfd514)}
#members-tools .member-filter-choice:hover {border-color:#bac5cc80}
#members-tools select[hidden] {display:none}
.guild-experience #dashboard #members-list:has(.member-personal-card) {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.guild-experience #dashboard #members-list .member-personal-card {display:grid;grid-template-columns:100px minmax(0,1fr);gap:1rem;padding:1.1rem;margin:0;min-width:0;max-width:none;border:1px solid var(--guild-menu-border)}
.guild-experience #dashboard #members-list .member-personal-card .personal-portrait {width:100%;height:130px;min-height:0;border:1px solid #aebac33b;align-self:start}
.guild-experience #dashboard #members-list .portrait-placeholder svg {width:60px;height:65px}
.guild-experience #dashboard #members-list .portrait-placeholder-label {font-size:.65rem;letter-spacing:0;color:#aeb8c0}
.guild-experience #dashboard #members-list .personal-card-body {padding:0;min-width:0}
.guild-experience #dashboard #members-list .personal-card-body::after {display:none}
.guild-experience #dashboard #members-list h2 {font-size:1.55rem;line-height:1.15;margin:0 0 .25rem;overflow-wrap:anywhere}
.guild-experience #dashboard #members-list .personal-identity {font-size:.86rem;margin:0 0 .25rem}
.guild-experience #dashboard #members-list .member-account {font-size:.72rem;margin:.25rem 0 .65rem;overflow-wrap:anywhere}
.guild-experience #dashboard #members-list .member-card-badges {gap:.4rem}
.guild-experience #dashboard #members-list :is(.personal-rank,.etat) {font-size:.66rem;padding:.2rem .4rem}
.guild-experience #dashboard #members-list .etat {color:#b5c3cd;border-color:#aebac345}
.guild-experience #dashboard #members-list .personal-stats {display:flex;flex-wrap:wrap;gap:1rem;margin:.7rem 0 .25rem}
.guild-experience #dashboard #members-list .personal-stats .tablette {display:flex;align-items:baseline;gap:.4rem;padding:0;margin:0;border:0;background:none;box-shadow:none}
.guild-experience #dashboard #members-list .personal-stats .valeur {font-size:1.3rem;line-height:1}
.guild-experience #dashboard #members-list .personal-stats .libelle {font-size:.72rem;margin:0}
.guild-experience #dashboard #members-list .member-history-button {font-size:.75rem;min-height:32px;margin:.1rem 0;padding:.25rem 0}
.guild-experience #dashboard #members-list .member-card-management {grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.75rem;margin:0;padding:.8rem 0 0;border-top:1px solid var(--guild-line)}
.guild-experience #dashboard #members-list .rang-admin {order:-1;flex-basis:100%;display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;border:0;padding:0;margin:0;min-width:0}
.guild-experience #dashboard #members-list .rang-admin legend {font-size:.7rem;color:#aeb8c0;margin-bottom:.5rem;padding:0}
.member-rank-choices {display:flex;gap:6px}
.member-rank-choice {position:relative;cursor:pointer}
.member-rank-choice input {position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.member-rank-choice span {display:grid;place-items:center;width:36px;height:38px;border:1px solid var(--rank-edge);border-bottom:3px solid var(--rank-edge);color:var(--rank);background:#0b111866;font:600 1.25rem var(--serif)}
.member-rank-choice input:checked+span {background:var(--rank-bg);box-shadow:inset 0 0 0 1px var(--rank-edge),0 0 12px color-mix(in srgb,var(--rank-edge) 22%,transparent)}
.member-rank-choice input:focus-visible+span {outline:2px solid #d4dee5;outline-offset:3px}
.member-rank-choice input:disabled {cursor:wait}
.guild-experience #dashboard #members-list .member-rank-save {margin-left:auto;font-size:.75rem;min-height:36px}
.member-rank-status {flex-basis:100%;font-size:.75rem;color:#e5b7b7}
.member-rank-status:empty {display:none}
.guild-experience #dashboard #members-list :is(.actions,.gestion-globale) {width:auto;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;border:0}
.guild-experience #dashboard #members-list :is(.actions,.gestion-globale):empty {display:none}
.guild-experience #dashboard #members-list :is(.actions,.gestion-globale)>.bouton-clair {font-size:.68rem;min-height:32px;padding:.35rem .55rem;margin:0}
.guild-experience #dashboard #members-list .confirmation {flex-basis:100%;font-size:.8rem}

/* Nested native dialogs: closing a prime returns to this board, then the roster. */
.guild-experience #member-history-dialog {box-sizing:border-box;width:min(calc(var(--history-columns,3) * 280px + 70px),92vw);max-height:85dvh;margin:auto;padding:1.5rem 1.75rem;background:var(--guild-reading-surface);color:var(--guild-text);border:1px solid #aebac355;box-shadow:0 24px 100px #0009;overflow:auto;color-scheme:dark}
#member-history-dialog::backdrop {background:#020408b8;backdrop-filter:blur(4px)}
#member-history-dialog .member-history-header {display:flex;align-items:start;justify-content:space-between;gap:1rem;border-bottom:1px solid #bac5cc24;padding-bottom:1rem;margin-bottom:1.25rem}
#member-history-dialog .personal-eyebrow {color:#aeb8c0;font-size:.65rem;margin:0 0 .3rem}
#member-history-dialog h2 {color:#dbe0e4;font-size:2rem;line-height:1.15;margin:0 0 .5rem;overflow-wrap:anywhere}
#member-history-dialog .muted {color:#aeb8c0;font-size:.8rem;margin:0}
#member-history-dialog .bouton-texte {color:#dbe0e4;font-size:.85rem}
#member-history-dialog .member-history-board {display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin:0;padding:0;list-style:none}
#member-history-dialog .member-history-board>li {min-width:0}
#member-history-dialog .bounty-poster-button {box-sizing:border-box;height:100%;min-height:250px;padding:1.6rem 1.1rem .85rem;gap:.8rem;transform:none;text-align:left;background-color:var(--paper-base);background-image:var(--paper-surface);border-color:#828e8f;border-top-color:var(--rank-edge);box-shadow:inset 0 0 32px #33434a0d,0 8px 20px #0004}
#member-history-dialog .bounty-poster-button:focus-visible {outline:2px solid #c2cdd5;outline-offset:4px}
#member-history-dialog .bounty-name {font-size:1.4rem;line-height:1.25;margin:0;color:var(--paper-heading);overflow-wrap:anywhere}
#member-history-dialog :is(.bounty-status,.member-history-team) {font-size:.8rem;line-height:1.5;margin:0;color:var(--paper-muted);overflow-wrap:anywhere}
#member-history-dialog .bounty-open-hint {margin-top:auto;font-size:.8rem}
#member-history-dialog .bounty-kicker {font-size:.62rem}
#member-history-dialog .bounty-rank {font-size:.7rem}
#member-history-dialog .member-history-empty {padding:2rem 0;text-align:center;color:#bdc7cf}
@media(max-width:1000px){.guild-experience #dashboard #members-tools{grid-template-columns:1fr}.guild-experience #dashboard #members-list:has(.member-personal-card){grid-template-columns:1fr}}
@media(min-width:1700px){.guild-experience #dashboard #members-list:has(.member-personal-card){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:500px){
 .guild-experience #dashboard #members-list .member-personal-card{grid-template-columns:70px minmax(0,1fr);gap:.75rem;padding:.85rem}
 .guild-experience #dashboard #members-list .member-personal-card .personal-portrait{height:92px}
 .guild-experience #dashboard #members-list h2{font-size:1.35rem}
 .guild-experience #member-history-dialog{width:94vw;max-height:90dvh;padding:1rem}
 #member-history-dialog .member-history-board{grid-template-columns:1fr}
}

/* Finished missions use the smoked menu material, also in the roster archive. */
.guild-experience #dashboard #contracts-list.completed-bounty-board .bounty-poster-button,
.guild-experience #member-history-dialog .bounty-poster-button {
 --paper-ink:#dbe0e4;--paper-heading:#dbe0e4;--paper-muted:#aeb8c0;--paper-line:#bac5cc24;
 color:var(--paper-ink);background:var(--guild-menu-surface);border-color:var(--guild-menu-border);border-top-color:var(--rank-edge);box-shadow:var(--guild-menu-shadow);color-scheme:dark;
}
.guild-experience #dashboard #contracts-list.completed-bounty-board .bounty-poster-button:is(:hover,:focus-visible),
.guild-experience #member-history-dialog button.bounty-poster-button:is(:hover,:focus-visible){background:var(--guild-menu-hover);border-color:#bac5cc80}
.completed-bounty-board .bounty-pin,#member-history-dialog .bounty-pin{background:#9eacb5;box-shadow:inset -2px -2px 2px #303840,0 2px 3px #000}
.completed-bounty-board .bounty-name{color:#dbe0e4}
.guild-experience #dashboard #ranking-panel .honour-podium-heading{justify-content:center;padding-bottom:.5rem}
.guild-experience #dashboard #ranking-panel .honour-leader-position,
.guild-experience #dashboard #ranking-panel .is-first .honour-leader-position{font:500 3.3rem/.95 var(--serif);color:var(--medal);background:none;-webkit-text-fill-color:currentColor;text-shadow:0 0 18px var(--medal-glow);letter-spacing:-.06em}
.guild-experience #dashboard #ranking-panel .is-first .honour-leader-position{font-size:4rem}

.guild-experience .bandeau #notification-bell{position:absolute;right:calc(clamp(1.1rem,4vw,2.5rem) + 42px);top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;padding:6px;background:transparent;border:1px solid transparent;border-radius:50%;color:#bdcbd5;cursor:pointer}
.guild-experience .bandeau #notification-bell[hidden]{display:none}
#notification-bell svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.guild-experience .bandeau:has(#notification-bell:not([hidden])) .clan-mark-right{transform:translateX(-42px) scale(.75)}
.guild-experience .bandeau #notification-bell:hover{border-color:#bac5cc55;background:#c6cfd510}
#notification-bell:focus-visible{outline:2px solid #bdcedb;outline-offset:3px}
#notification-bell .notification-bell-count{position:absolute;right:-4px;top:-3px;min-width:15px;height:15px;padding:0 3px;display:grid;place-items:center;background:#c5cfd6;color:#10171f;border-radius:9px;font:700 10px/1 system-ui;box-shadow:0 0 0 2px #070b10}
#notification-bell .notification-bell-count[hidden]{display:none}
.guild-experience #notification-popover{position:fixed;left:auto;bottom:auto;box-sizing:border-box;width:min(410px,calc(100vw - 24px));max-height:min(600px,80dvh);overflow:auto;margin:0;padding:18px;background:var(--guild-reading-surface);color:#dbe0e4;border:1px solid #aebac345;box-shadow:0 16px 60px #000a;font-family:var(--lecture);scrollbar-width:thin;scrollbar-color:#657079 transparent}
#notification-popover>header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
#notification-popover h2{margin:0;color:#dbe0e4;font:600 1.6rem var(--serif)}
#notification-popover .bouton-texte{font-size:.8rem;color:#bdcbd5}
#notification-popover .notification-item{border-top:1px solid #bac5cc24;margin-top:8px}
#notification-popover .notification-item-button{display:grid;gap:6px;width:100%;padding:14px 10px;background:transparent;border:0;text-align:left;font:400 .85rem/1.45 var(--lecture);color:#aeb8c0;cursor:pointer}
#notification-popover .notification-item-button strong{color:#dbe0e4;font-weight:500}
#notification-popover .is-unread .notification-item-button{background:#c6cfd50a;box-shadow:inset 2px 0 #bdcbd5}
#notification-popover .notification-item-button:hover{background:#c6cfd514}
#notification-popover .notification-item-link{color:#d5dfe6;font-size:.75rem;text-decoration:underline;text-underline-offset:3px}
#notification-popover .notification-item-button small{font-size:.68rem}
#notification-popover .notification-empty{padding:24px 8px;color:#aeb8c0;font-size:.85rem}
#notification-popover .erreur-plaque:empty{display:none}
#notification-popover [hidden]{display:none}
@media(max-width:580px){.guild-experience .bandeau #notification-bell{right:calc(clamp(1.1rem,4vw,2.5rem) + 34px);width:28px;height:32px;padding:4px}.guild-experience .bandeau:has(#notification-bell:not([hidden])) .clan-mark-right{transform:translateX(-34px) scale(.75)}}

/* Straight, compact cards and stationary selection feedback throughout the UI. */
.guild-experience .bounty-poster{transform:none!important;rotate:none!important}
.guild-experience :is(button,a.onglet,.voie,.classe span,.village-stamp-mark,.option-stamp-mark,.member-rank-choice,.assignment-member,.honour-leader):is(:hover,:active,:focus-visible),
.guild-experience :is(.classe,.village-stamp,.contract-option-stamp):has(input:checked) :is(span,.option-stamp-mark,.village-stamp-mark){rotate:none!important}
.guild-experience :is(.bounty-poster-button,.voie,.classe span,.village-stamp-mark,.option-stamp-mark,.honour-leader,.member-rank-choice,.assignment-member){transform:none!important}
.guild-experience #document .contract-option-stamp .option-stamp-mark{animation:none!important}
.guild-experience .game-main-menu .home-card-seal{transform:none!important}
.guild-experience .offer-status{transform:none}
.guild-experience #document.contract-workshop .classe span{padding:0}
.guild-experience #document.contract-workshop .classe span::before{content:none}
.guild-experience #contracts-list.bounty-board{align-items:start;gap:1.2rem}
.guild-experience #contracts-list .bounty-poster-button{min-height:0;gap:.55rem;padding:1.45rem 1.15rem 1rem}
.guild-experience #contracts-list .bounty-poster-facts{margin-top:.3rem;padding-top:.7rem}
.guild-experience #contracts-list .bounty-client{font-size:.86rem;line-height:1.4;color:var(--paper-muted)}
.guild-experience #contracts-list .bounty-open-hint{margin-top:.25rem}
.guild-experience .board-filter-strip{margin:.3rem 0 1rem;padding:.7rem 1rem;background:var(--guild-menu-surface);border:1px solid var(--guild-menu-border)}
.guild-experience .board-filter-strip[hidden]{display:none}
.guild-experience .board-filter-strip .contract-filter-buttons{display:grid;grid-template-columns:1fr 1.6fr;gap:.4rem 1.5rem;margin:0;padding:0}
.guild-experience .board-filter-strip .contract-filter-buttons::before,.guild-experience .board-filter-strip .contract-filter-buttons::after{display:none}
.guild-experience .board-filter-strip .contract-filter-group{display:block;padding:.35rem 0}
.guild-experience .board-filter-strip legend{float:none;width:auto;font-size:.8rem;padding:0 0 .4rem;color:#aeb8c0}
.guild-experience #dashboard .board-filter-strip .contract-filter-button{min-width:0;min-height:32px;padding:.3rem .65rem;font-size:.8rem}
.guild-experience .board-filter-strip>.bouton-texte{font-size:.75rem;margin-top:.6rem}

/* The same horizontal organisation as contract creation, no closed sections. */
.guild-experience #bounty-dialog{width:min(1160px,calc(94vw / var(--interface-scale)));max-width:calc(96vw / var(--interface-scale));max-height:calc(92dvh / var(--interface-scale));min-height:0;overflow:auto;overscroll-behavior:contain}
.guild-experience .bounty-detail-list .contract-paper{position:relative;isolation:isolate}
.guild-experience #bounty-dialog.admin-contract-dialog{width:min(1780px,calc(96vw / var(--interface-scale)));max-width:calc(98vw / var(--interface-scale));max-height:calc(94dvh / var(--interface-scale))}
#bounty-dialog.admin-contract-dialog .bounty-detail-list{max-width:none}
.guild-experience .bounty-detail-list .contract-admin-layout{padding:1.3rem 1.7rem;gap:1rem 1.4rem;grid-template-columns:50px minmax(0,1fr) minmax(220px,.35fr)}
.guild-experience .contract-admin-layout .contrat-cote{min-width:0;max-width:none}
.guild-experience .contract-admin-layout .contract-mission-type{font-size:1.8rem}
.guild-experience .contract-admin-layout .contrat-corps>h3{font-size:1.4rem}
.guild-experience .contract-admin-layout .contrat-conditions{margin:.6rem 0;line-height:1.5;font-size:1rem}
.guild-experience .contract-admin-layout>.admin-workshop{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(300px,1.1fr) minmax(350px,1.3fr);gap:1.5rem;grid-column:1/-1;margin:.4rem 0 0;padding:1.2rem 0 0;align-items:start}
.guild-experience .admin-workshop>section,.guild-experience .admin-workshop>.priority-management{min-width:0;margin:0;padding:0;border:0}
.guild-experience .admin-workshop>section+section,.guild-experience .admin-workshop>.priority-management{border-left:1px solid var(--paper-line);padding-left:1.5rem}
.guild-experience .contract-paper .admin-workshop h3{margin:0 0 .9rem;font-size:1.25rem}
.guild-experience .admin-workshop .contract-admin-info{padding:.7rem;background:#6070780a}
.guild-experience .admin-workshop .admin-contract-meta{font-size:.8rem;line-height:1.5;margin:0 0 .4rem}
.guild-experience .admin-validation>.actions{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;margin-top:1rem}
.guild-experience .admin-workshop button{font-size:.85rem;min-height:36px}
.guild-experience .admin-workshop p{font-size:.8rem;line-height:1.45}
.guild-experience .admin-workshop .admin-field{margin-bottom:1rem}
.guild-experience .admin-field-title{display:block;font-size:.85rem;font-weight:600;margin-bottom:.45rem}
.guild-experience .admin-choice-group{display:flex;flex-wrap:wrap;gap:.4rem}
.guild-experience .admin-choice{padding:.4rem .65rem;background:transparent;border:1px solid var(--paper-line);color:var(--paper-heading);font-family:var(--lecture);cursor:pointer}
.guild-experience .admin-choice[aria-pressed=true]{background:#58738024;border-color:#607a88;box-shadow:inset 0 -2px #607a88}
.guild-experience .admin-choice[data-rank]{min-width:44px;color:var(--rank-bg);border-color:var(--rank-edge)}
.guild-experience .admin-choice[data-rank][aria-pressed=true]{color:var(--rank);background:var(--rank-bg);box-shadow:0 0 8px color-mix(in srgb,var(--rank-edge) 30%,transparent)}
.guild-experience .admin-workshop .villages-acces{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0;padding:.6rem}
.guild-experience .admin-workshop .villages-acces label{font-size:.85rem;border:1px solid transparent;padding:.3rem .4rem;cursor:pointer}
.guild-experience .admin-workshop .villages-acces label:has(input:checked){border-color:#607a88;background:#5873801c}
.guild-experience .admin-workshop .villages-acces input{accent-color:#607a88}
.guild-experience .admin-workshop :is(.villages-acces,.priority-assignees) legend{font-size:.85rem}
.guild-experience .admin-workshop .priority-assignees{display:block;padding:0;margin:.6rem 0 1rem;border:0;min-width:0}
.guild-experience .priority-assignees>input{box-sizing:border-box;width:100%;font:inherit;font-size:.85rem;padding:.5rem .7rem;min-height:36px}
.guild-experience .assignment-count{margin:.5rem 0;color:var(--paper-muted)}
.guild-experience .assignment-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.guild-experience .priority-assignees .assignment-member{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.4rem .55rem;min-width:0;padding:.65rem;border:1px solid var(--paper-line);background:#17202908;cursor:pointer}
.guild-experience .assignment-member[hidden]{display:none}
.guild-experience .assignment-member>input{position:absolute;opacity:0;width:1px;height:1px}
.guild-experience .assignment-member:has(input:checked){border-color:#607a88;box-shadow:inset 0 0 0 1px #607a88;background:#58738024}
.guild-experience .assignment-member:has(input:checked)::after{content:'✓';position:absolute;right:6px;top:4px;color:var(--paper-heading);font:700 .7rem system-ui}
.guild-experience .assignment-member:has(input:focus-visible){outline:2px solid #607a88;outline-offset:3px}
.guild-experience .assignment-member .character-thumbnail{width:38px;height:48px;grid-row:1/3}
.guild-experience .assignment-identity{display:grid;gap:.2rem;min-width:0}
.guild-experience .assignment-identity strong{font-size:.85rem;overflow-wrap:anywhere;line-height:1.2}
.guild-experience .assignment-identity small{font-size:.68rem}
.guild-experience .assignment-member .personal-rank{font-size:.65rem;justify-self:start;padding:.1rem .3rem;grid-column:2}
.guild-experience .contract-clipboard{display:flex;flex-wrap:wrap;gap:.45rem .8rem;align-items:center;margin-left:auto}
.guild-experience .contract-clipboard button{font-size:.85rem}
.guild-experience .contract-clipboard>span{font-size:.75rem;font-weight:400}
.guild-experience .contract-clipboard textarea{width:100%;min-height:100px;box-sizing:border-box}

/* Official guild paper: opaque charcoal, not tinted parchment. */
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract,.bounty-poster.is-guild-contract .bounty-poster-button){
 --paper-base:#0b0e12;--paper-ink:#dbe0e4;--paper-heading:#dbe0e4;--paper-muted:#adb8bf;--paper-line:#bac5cc30;--paper-field:#171c22;
 color:var(--paper-ink);background-color:var(--paper-base);background-image:var(--paper-surface);border-color:#65737d;color-scheme:dark;
}
.guild-experience #dashboard #contracts-list .bounty-poster.is-guild-contract .bounty-poster-button{background-color:var(--paper-base);background-image:var(--paper-surface);color:var(--paper-ink)}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract) :is(.contract-admin-info,.confirmation,.precision,.declaration,.realisation){background:#171c22;color:var(--paper-ink);border-color:var(--paper-line)}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract) :is(input,textarea,select):focus{background:#20272e;color:#e0e5e9}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract) select option{color:#dbe0e4;background:#171c22}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract) :is(.bouton-shu,.bouton-clair){background:#1b2229;color:#dbe0e4;border-color:#65737d;box-shadow:none}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract) :is(.bouton-texte,.bouton-liberer):hover{color:#fff}
.guild-experience .contract-paper.is-guild-contract .admin-choice[data-rank]{color:var(--rank)}
.guild-experience :is(#document.is-guild-contract,.contract-paper.is-guild-contract,.bounty-poster.is-guild-contract) .priority-stamp{color:#e0a1a4;border-color:#b76970;background:#b7697010}
.guild-experience .bounty-detail-list .completed-contract:not(.is-guild-contract){--paper-ink:#dbe0e4;--paper-heading:#dbe0e4;--paper-muted:#aeb8c0;--paper-line:#bac5cc30;--paper-field:#171c22;background:var(--guild-reading-surface);color:var(--paper-ink);color-scheme:dark}
@media(max-width:1100px){.guild-experience .contract-admin-layout>.admin-workshop{grid-template-columns:1fr 1.5fr}.guild-experience .admin-workshop>.priority-management{grid-column:1/-1;border-left:0;border-top:1px solid var(--paper-line);padding:1rem 0 0}.guild-experience .assignment-roster{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.guild-experience .board-filter-strip .contract-filter-buttons{grid-template-columns:1fr}.guild-experience .bounty-detail-list .contract-admin-layout{padding:1rem;grid-template-columns:40px minmax(0,1fr)}.guild-experience .contract-admin-layout>.admin-workshop{grid-template-columns:1fr}.guild-experience .admin-workshop>section+section{border-left:0;border-top:1px solid var(--paper-line);padding:1rem 0 0}.guild-experience .assignment-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.guild-experience .contract-admin-layout .contrat-cote{grid-column:1/-1}.guild-experience .contract-clipboard{margin-left:0}}
/* Ink impression of the circled Senju emblem, shared by official documents. */
.guild-experience .guild-contract-seal{padding:.4rem .2rem;justify-content:flex-end;line-height:1;color:var(--paper-muted,#aab7c0)}
.guild-experience .guild-contract-seal .guild-seal-mark,
.guild-experience #document .contract-submission-seal .guild-seal-mark{width:90px;height:106px;gap:3px;padding:0;border:0;border-radius:0;transform:none;background:none;box-shadow:none;opacity:.75;color:inherit}
.guild-experience .guild-seal-mark::before,.guild-experience .guild-seal-mark::after{display:none}
.guild-experience .guild-contract-seal .guild-seal-mark svg,.guild-experience #document .contract-submission-seal .guild-seal-mark svg{width:76px;height:76px;filter:none;opacity:.92;mask-image:repeating-linear-gradient(8deg,#000 0 2px,#0009 2px 2.35px,#000 2.35px 4px)}
.guild-experience .guild-seal-mark :is(.guild-stamp-title,.guild-stamp-caption){color:inherit;text-shadow:none;letter-spacing:.12em;font-size:7px}
.guild-experience .guild-seal-mark .guild-stamp-title{font-size:8px}
.guild-experience #mail-panel .messenger-avatar.is-guild{background:none;border:0;box-shadow:none;color:#b6c5cd}
.guild-experience #mail-panel .messenger-avatar.is-guild svg{filter:none;opacity:.85;mask-image:repeating-linear-gradient(8deg,#000 0 3px,#0009 3px 3.35px,#000 3.35px 5px)}
.guild-experience .game-main-menu .game-menu-entry[data-destination=messages]{position:relative;display:flex;align-items:center;justify-content:center;gap:.7rem}
.guild-experience .game-main-menu .game-menu-entry[data-destination=messages].has-unread{border-color:#b8c9d38c;box-shadow:inset 0 0 22px #b6d7e409,0 0 15px #b6d7e40c}
.guild-experience .home-mail-unread{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border:1px solid #bdcbd5aa;border-radius:50%;background:#bdcbd51a;color:#dbe5eb;font:600 .72rem/1 var(--lecture);box-shadow:0 0 12px #9ec4d42b}
.guild-experience #board-filter-body[hidden]{display:none}
.guild-experience #board-filter-body{padding-top:.75rem}
.guild-experience #board-filter-body>.bouton-texte{font-size:.75rem;margin-top:.65rem}
.guild-experience .board-filter-toggle{font-size:.85rem}
/* Equal card heights; the official stamp is a watermark, outside the layout. */
.guild-experience #contracts-list.bounty-board{align-items:stretch;grid-auto-rows:1fr}
.guild-experience #contracts-list .bounty-poster-button{height:100%;box-sizing:border-box;isolation:isolate}
.guild-experience #contracts-list .bounty-poster-facts{margin-top:auto}
.guild-experience #contracts-list .bounty-poster.is-guild-contract .guild-contract-seal{position:absolute;right:18px;bottom:70px;padding:0;margin:0;opacity:.16;pointer-events:none;z-index:-1}
.guild-experience #contracts-list .bounty-poster.is-guild-contract .guild-seal-mark{width:155px;height:155px;opacity:1}
.guild-experience #contracts-list .bounty-poster.is-guild-contract .guild-seal-mark svg{width:155px;height:155px}
.guild-experience #contracts-list .bounty-poster.is-guild-contract :is(.guild-stamp-title,.guild-stamp-caption){display:none}
/* A missing portrait stays neutral, without the Senju emblem. */
.guild-experience .personal-portrait>.portrait-placeholder{display:none}
.guild-experience .personal-portrait:has(>.portrait-placeholder){display:flex;align-items:center;justify-content:center}
.guild-experience .personal-portrait:has(>.portrait-placeholder)>.portrait-placeholder-label{position:static;margin:0;padding:.5rem;text-align:center}
.guild-experience #dashboard #character-panel .personal-primes-link{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;padding:.8rem 1.2rem;min-height:46px;margin-top:.5rem;border:1px solid #aebac350;background:var(--guild-menu-surface);color:#dbe0e4;text-decoration:none;font:600 .95rem var(--serif);box-shadow:inset 0 1px #cbd7e40b;transition:background .18s,border-color .18s,box-shadow .18s}
.guild-experience #dashboard #character-panel .personal-primes-link:hover{border-color:#c5d1db9c;background:var(--guild-menu-hover);box-shadow:0 0 15px #b6d7e40c}
.guild-experience #dashboard #character-panel .personal-primes-link:focus-visible{outline:2px solid #bdcedb;outline-offset:4px}
/* Explicitly clear the old full-width diffusion placement inside the new grid. */
.guild-experience .contract-admin-layout>.admin-workshop>.admin-diffusion{grid-column:auto}
.guild-experience #bounty-dialog .contract-paper:is(.is-guild-contract,.completed-contract) :is(.contract-admin-info,.confirmation,.precision,.declaration,.realisation){background:#151a20;color:var(--paper-ink);border-color:var(--paper-line)}
.guild-experience #bounty-dialog .contract-paper:is(.is-guild-contract,.completed-contract) :is(.bouton-clair,.bouton-shu){background:#1b2229;color:#dbe0e4;border-color:#65737d;box-shadow:none}
.guild-experience #bounty-dialog .contract-paper:is(.is-guild-contract,.completed-contract) :is(.bouton-clair,.bouton-shu):hover{background:#29333d;color:#f0f4f7}
.guild-experience #mail-panel.guild-messenger .messenger-avatar.is-guild{background:none}
/* The approval desk follows the creation form: mission, conditions, assignment. */
.guild-experience .bounty-detail-list .contract-admin-layout{display:block;padding:1rem 1.65rem}
.guild-experience .contract-admin-layout>.admin-workshop{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.1fr);border:0;margin:0;padding:.5rem 0 0;gap:1.25rem}
.guild-experience .admin-workshop .admin-mission>.badge{display:inline-flex;align-items:center;justify-content:center;width:42px;height:44px;font-size:1.7rem;margin-bottom:.7rem}
.guild-experience .admin-workshop .admin-mission .contrat-corps{width:100%;min-width:0}
.guild-experience .admin-workshop .admin-mission .contrat-cote{border:0;text-align:left;align-items:flex-start;padding:0;margin-top:1rem}
.guild-experience .admin-workshop .admin-mission .contract-mission-type{font-size:1.45rem;margin:.25rem 0}
.guild-experience .admin-workshop .admin-mission .contrat-conditions{padding:.8rem;border:1px solid var(--paper-line);background:var(--paper-field);font-size:.9rem;line-height:1.6;margin:.7rem 0;max-height:none}
.guild-experience .admin-workshop .admin-mission .contract-facts{margin:.8rem 0;padding:.6rem .8rem;border:1px solid var(--paper-line);background:transparent}
.guild-experience .admin-workshop .admin-mission .contrat-meta{margin-top:.75rem;padding-top:.65rem;font-size:.8rem}
.guild-experience .admin-workshop>.admin-approval-footer{grid-column:1/-1;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;border:0;border-top:1px solid var(--paper-line);padding:1rem 0 0;margin:.25rem 0 0}
.guild-experience .admin-approval-footer>h3{display:none}
.guild-experience .admin-approval-footer>.contract-admin-info{background:transparent!important;padding:0;flex:1;min-width:180px;border:0}
.guild-experience .admin-approval-footer>.actions{display:flex;flex-direction:row;gap:.7rem;align-items:center;flex-wrap:wrap;margin:0}
.guild-experience .admin-approval-footer .admin-contract-meta{margin:0;font-size:.72rem}
@media(max-width:1100px){.guild-experience .contract-admin-layout>.admin-workshop{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.guild-experience .contract-admin-layout>.admin-workshop{grid-template-columns:1fr}.guild-experience .admin-workshop>.admin-approval-footer{flex-direction:column;align-items:stretch}.guild-experience .admin-approval-footer>.actions{justify-content:flex-start}}

/* Counter-offers are concise agreement cards inside the dark correspondence. */
.guild-experience #mail-panel.guild-messenger #chat .offer-document{max-width:660px;margin:.65rem 0;padding:1.15rem 1.3rem;border:1px solid #aebac342;border-left:3px solid #8ba2b0;border-radius:3px;background:linear-gradient(120deg,#141a21,#0c1117);color:#dbe0e4;box-shadow:0 6px 20px #0002;--paper-ink:#dbe0e4;--paper-heading:#dbe0e4;--paper-muted:#aeb8c0}
.guild-experience #mail-panel.guild-messenger #chat .offer-document h3,.guild-experience #mail-panel.guild-messenger #chat .offer-editor h3{color:#dbe0e4!important;font-size:1.25rem;margin:.2rem 0 0}
.guild-experience #mail-panel.guild-messenger #chat .offer-eyebrow{color:#9baeb9!important;font-size:.6rem!important;letter-spacing:.13em}
.guild-experience #mail-panel.guild-messenger #chat .offer-document-heading{gap:.65rem;align-items:center}
.guild-experience #mail-panel.guild-messenger #chat .offer-status{border:1px solid #bac5cc33;padding:.3rem .5rem;font-size:.7rem;line-height:1.3;transform:none;color:#b4c1ca;background:#bac5cc08;text-transform:none}
.guild-experience #mail-panel.guild-messenger #chat .offer-status.acceptee{color:#acd1b5;border-color:#acd1b550;background:#acd1b510}
.guild-experience #mail-panel.guild-messenger #chat .offer-status.refusee{color:#d49ba0;border-color:#d49ba050;background:#d49ba010}
.guild-experience #mail-panel.guild-messenger #chat .offer-document .offer-price{margin:1rem 0 .8rem;color:#aeb8c0;font-size:.9rem}
.guild-experience #mail-panel.guild-messenger #chat .offer-document .offer-price strong{color:#e1e9ed!important;font-size:2rem;line-height:1.2}
.guild-experience #mail-panel.guild-messenger #chat .offer-conditions{font-size:.9rem;line-height:1.6;margin:.6rem 0;color:#c5d0d7}
.guild-experience #mail-panel.guild-messenger #chat .offer-fineprint{color:#9eadb7!important;font-size:.73rem!important;line-height:1.5;border-top:1px solid #bac5cc24;padding-top:.8rem;margin-top:.8rem}
.guild-experience #mail-panel.guild-messenger #chat .offer-actions{gap:.7rem;margin-top:.9rem}
.guild-experience #mail-panel.guild-messenger #chat :is(.offer-accept,.offer-refuse){width:auto;min-width:0;height:auto;min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:.55rem .9rem!important;border:1px solid #7e929f!important;border-radius:2px!important;background:#bccbd4!important;color:#15212a!important;box-shadow:none;text-shadow:none;font:600 .82rem var(--lecture)!important;transform:none}
.guild-experience #mail-panel.guild-messenger #chat .offer-refuse{background:transparent!important;color:#c2cdd4!important;border-color:#aebac342!important}
.guild-experience #mail-panel.guild-messenger #chat .offer-accept:hover{background:#e0e7eb!important}
.guild-experience #mail-panel.guild-messenger #chat .offer-refuse:hover{border-color:#c2cdd480!important;background:#c2cdd40a!important}
.guild-experience #mail-panel.guild-messenger #chat .offer-editor{background:#11171e;color:#c5d0d7;padding:1.2rem;border-color:#bac5cc30}
.guild-experience #mail-panel.guild-messenger #chat .offer-editor :is(input,textarea){box-sizing:border-box;background:#080e14;color:#dbe0e4;border:1px solid #aebac342;font:inherit;padding:.65rem}
.guild-experience #mail-panel .delete-conversation-area{grid-column:1/-1;justify-self:end;font-size:.72rem}
.guild-experience #mail-panel .delete-conversation{color:#9faeb8;font-size:.7rem;min-height:26px}
.guild-experience #mail-panel .delete-conversation:hover{color:#e3b4b8}
.guild-experience #mail-panel .delete-conversation-area[hidden]{display:none}
.guild-experience #mail-panel .delete-conversation-area .confirmation{padding:.7rem;border:1px solid #aebac342;background:#111820;color:#c5d0d7}
.guild-experience #bounty-dialog .contract-paper:is(.is-guild-contract,.completed-contract) :is(.etat,.etat-personnel){color:#bfced7;border-color:#667c8a;background:#1b252e}
.guild-experience #bounty-dialog .contract-paper:is(.is-guild-contract,.completed-contract) input::placeholder{color:#a4b1bb}
.guild-experience .admin-workshop .assignment-member .personal-rank{margin:0;line-height:1.2}
.guild-experience .admin-workshop .assignment-member{padding:.5rem;gap:.25rem .55rem}
.guild-experience .admin-workshop .assignment-roster{gap:.4rem}
.guild-experience .admin-mission .contract-facts .contrat-prime{margin:.3rem 0;font-size:1.7rem;font-weight:600}
.guild-experience .admin-workshop .admin-choice[data-rank]{width:46px;min-width:46px;height:55px;padding:0;font-size:1.5rem;box-shadow:inset 0 0 0 3px var(--paper-base),inset 0 0 0 4px var(--rank-edge)}
.guild-experience .admin-workshop .admin-choice[data-rank][aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--rank),inset 0 0 0 3px var(--rank-bg)}
.guild-experience .admin-workshop .villages-acces{border:0;border-top:1px solid var(--paper-line);padding:1rem 0;margin-top:1rem;gap:.6rem}
.guild-experience .admin-workshop .admin-village-stamp{position:relative;display:inline-flex;align-items:center;gap:.35rem}
.guild-experience .admin-workshop .admin-village-stamp input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.guild-experience .admin-workshop .admin-village-stamp .village-stamp-mark{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;color:var(--paper-muted);font-size:1.05rem}
.guild-experience .admin-workshop .admin-village-stamp:has(input:checked) .village-stamp-mark{border:3px double currentColor;color:var(--paper-heading)}
.guild-experience .admin-workshop .admin-village-stamp:has(input:focus-visible){outline:2px solid var(--paper-heading);outline-offset:2px}
.guild-experience #mail-panel.guild-messenger #chat .offer-document .erreur-doc:empty{display:none}
.guild-experience .bounty-toolbar .bounty-manage{padding:.5rem .8rem;font-size:.9rem;border:1px solid #aebac355;background:#aebac30c;color:#dbe0e4;white-space:normal}
.guild-experience .bounty-toolbar .bounty-manage[aria-pressed=true]{border-color:#becbd4;background:#aebac321}
.guild-experience .bounty-toolbar .bounty-manage[hidden]{display:none}
.guild-experience #bounty-dialog .bounty-toolbar{background:#10161c;isolation:isolate}
.guild-experience #bounty-dialog{scroll-padding-top:6rem}
/* Realisation: one readable palette and compact, separate actions. */
.guild-experience #bounty-dialog .contract-paper.completed-contract{
 --paper-base:#151c20;--paper-ink:#dce3e5;--paper-heading:#e2e9e9;--paper-muted:#acbcbf;--paper-line:#a9baba38;--paper-field:#dce8e70c;
 --texte:var(--paper-ink);--muted:var(--paper-muted);
 background-color:#151c20;background-image:var(--paper-grain),var(--paper-fibres),linear-gradient(125deg,#22303250,#11181d70);color:var(--paper-ink);border-color:#7d979180;color-scheme:dark;
}
.guild-experience #bounty-dialog .bounty-detail-list .contract-paper .realisation{padding:1rem 0;margin:1.25rem 0;border:0;border-block:1px solid var(--paper-line);background:transparent;color:var(--paper-ink);box-shadow:none}
.guild-experience #bounty-dialog .realisation-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.guild-experience #bounty-dialog .realisation-heading>div{display:grid;gap:.3rem}
.guild-experience #bounty-dialog .realisation-label{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-muted)}
.guild-experience #bounty-dialog .realisation strong{color:var(--paper-heading);font-size:1.1rem;line-height:1.4}
.guild-experience #bounty-dialog .realisation-state{font-size:.75rem;border:1px solid var(--paper-line);padding:.35rem .6rem;color:var(--paper-ink)}
.guild-experience #bounty-dialog .realisation[data-state=termine] .realisation-state{color:#b4cdbb;border-color:#8eaf9560;background:#8eaf950a}
.guild-experience #bounty-dialog .realisation-date{display:block;margin-top:.7rem;color:var(--paper-muted);font-size:.75rem}
.guild-experience #bounty-dialog .realisation-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.85rem}
.guild-experience #bounty-dialog .realisation-actions button{margin:0;font-size:.85rem}
.guild-experience #bounty-dialog .completed-contract .etat{display:none}
.guild-experience #bounty-dialog .completed-contract .contract-engagement{border:0;padding:0;font-size:.8rem;color:var(--paper-muted)}
.guild-experience .mission-completed-mark{display:flex;align-items:center;gap:.65rem;color:#b9d1bc;border:1px solid #9ebda463;padding:.6rem .75rem;background:#91b3980b;line-height:1.2}
.guild-experience .mission-completed-check{display:grid;place-items:center;flex:0 0 27px;height:27px;border:3px double #9ebda496;border-radius:50%;font-size:1rem}
.guild-experience .mission-completed-mark>span:last-child{display:grid;gap:.22rem}
.guild-experience .mission-completed-mark strong{color:inherit;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase}
.guild-experience .mission-completed-mark small{color:#a6bbb0;font-size:.65rem}
.guild-experience #contracts-list .mission-completed .mission-completed-mark{margin:.65rem 0 .15rem}
.guild-experience #bounty-dialog .paper-heading .mission-completed-mark{order:1;margin-right:auto}
.guild-experience #bounty-dialog .completed-contract .paper-seal{display:none}
.guild-experience #bounty-dialog .paper-heading{flex-wrap:wrap;gap:.75rem}
.guild-experience #bounty-dialog .paper-heading .contract-clipboard{order:2}
/* Reuse the same portrait cards, with three visible rows and internal scrolling. */
.guild-experience #bounty-dialog .assignment-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:88px;gap:.5rem;max-height:280px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start;padding:3px;box-sizing:border-box}
.guild-experience #bounty-dialog .assignment-roster .assignment-member{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:1fr auto;align-items:center;gap:.2rem .55rem;min-width:0;min-height:0;margin:0;padding:.55rem;border:1px solid var(--paper-line);background:var(--paper-field);color:var(--paper-ink);cursor:pointer;box-sizing:border-box}
.guild-experience #bounty-dialog .assignment-member[hidden]{display:none}
.guild-experience #bounty-dialog .assignment-member>input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.guild-experience #bounty-dialog .assignment-member:has(input:checked){border-color:var(--paper-heading);box-shadow:inset 0 0 0 1px var(--paper-heading);background:#7893a22a}
.guild-experience #bounty-dialog .assignment-member:has(input:checked)::after{content:'✓';position:absolute;right:5px;top:3px;font-size:.75rem;color:var(--paper-heading)}
.guild-experience #bounty-dialog .assignment-member:has(input:focus-visible){outline:2px solid var(--paper-heading);outline-offset:1px}
.guild-experience #bounty-dialog .assignment-member .character-thumbnail{width:38px;height:48px;grid-row:1/3}
.guild-experience #bounty-dialog .assignment-identity{display:grid;gap:.15rem;min-width:0;padding-right:.3rem}
.guild-experience #bounty-dialog .assignment-identity strong{font-size:.8rem;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:var(--paper-heading)}
.guild-experience #bounty-dialog .assignment-identity small{font-size:.65rem;color:var(--paper-muted)}
.guild-experience #bounty-dialog .assignment-member .personal-rank{font-size:.6rem;justify-self:start;padding:.1rem .3rem;grid-column:2;margin:0;line-height:1.2}
.guild-experience #bounty-dialog .team-picker{min-width:0}
.guild-experience #bounty-dialog .team-members{margin-top:.75rem}
.guild-experience #bounty-dialog .team-declaration{background:transparent}
.guild-experience .bounty-toolbar:has(.bounty-manage:not([hidden])) .bounty-escape{display:none}
@media(max-width:760px){.guild-experience .bounty-toolbar .bounty-manage{order:1;margin-left:auto}.guild-experience .bounty-toolbar h2{order:2}}

/* The instrument is centred; eight engraved talismans form a single control row. */
#gate{background:#050505}
#gate::before{content:'';position:absolute;inset:18px;border:1px solid #ffffff10;pointer-events:none;z-index:1}
#gate .seal-password{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto auto;justify-items:center;align-content:center;gap:8px;padding:clamp(18px,3vh,36px) 24px 20px;box-sizing:border-box}
#gate .seal-password:focus{outline:none}
#gate .seal-instruction,#gate .seal-help,#gate .seal-layout,#gate .seal-status,#gate .seal-tools,#gate .seal-keyboard-help{position:static;inset:auto;translate:none;margin:0;max-width:none;width:auto}
#gate .seal-instruction{font:400 clamp(25px,2.4vw,38px)/1.15 var(--serif);letter-spacing:.045em;text-transform:none;color:#e8e8e5;text-shadow:none;text-align:center}
#gate .seal-instruction::before{content:'LA GUILDE';display:block;color:#92928e;font:500 10px/1.2 var(--lecture);letter-spacing:.34em;margin-bottom:10px}
#gate .seal-help{font:400 13px/1.5 var(--serif);color:#a4a49f;text-align:center}
#gate .seal-layout{display:contents}
#gate .seal-wheel{position:relative;left:auto;top:auto;translate:none;align-self:center;grid-row:3;width:min(53dvh,570px,78vw);max-width:none;aspect-ratio:1;margin:0;overflow:visible}
#gate .seal-wheel::before{content:'';position:absolute;inset:-11%;background:none;border-radius:50%;pointer-events:none;animation:ritual-haze 7s ease-in-out infinite}
#gate .seal-slot{width:10%;background:#0b0b0b;color:#999993;border:1px solid #ffffff26;font:400 14px var(--serif);box-shadow:none;transition:background .3s,border-color .3s,box-shadow .3s}
#gate .seal-slot.next{border-color:#d0d0c947;box-shadow:none;animation:none}
#gate .seal-slot.filled{background:#090909;font-size:clamp(20px,2.5vw,32px);box-shadow:0 0 16px #d4b26715}
#gate .seal-slot.filled .seal-inscription{color:#f4dfa6;text-shadow:0 0 12px #d7af525c,0 0 3px #ffecb56b}
#gate .seal-center{width:18%;border:1px solid #aaaaa536;background:#080808;color:#d2b881;box-shadow:0 0 28px #d9b87009;animation:ritual-heart 4s ease-in-out infinite;transition:color .4s,border-color .4s}
#gate .seal-center::before{content:'';position:absolute;inset:8%;border:1px solid #ffffff12;border-radius:50%;pointer-events:none}
#gate .seal-center span{font-size:clamp(27px,3.4vw,44px);text-shadow:0 0 22px #e1c48c55}
#gate .seal-center small{font:500 8px/1 var(--lecture)!important;letter-spacing:.17em;margin-top:7px!important;text-transform:uppercase;color:#a5a59f}
#gate .seal-orbit{stroke:#a0a09a;stroke-width:.4;opacity:.32}
#gate .seal-orbit.inner{stroke-dasharray:.5 3;opacity:.4}
#gate .seal-tick{stroke:#aaa9a2;opacity:.32;stroke-width:.45}
#gate .seal-ticks{animation:seal-turn 140s linear infinite}
#gate .seal-script-ring{animation:seal-counterturn 65s linear infinite}
#gate .seal-script-ring text{fill:#b0afa8;opacity:.36;font-size:7px;transition:fill .7s,opacity .7s}
#gate .seal-script-orbit{stroke:#a5a59e26;stroke-width:.35}
#gate .seal-energy-ring{stroke:#c6b07d;opacity:.4;animation:seal-turn 42s linear infinite;stroke-width:.5}
#gate .seal-aura,#gate .seal-motes{display:none}
#gate .ritual-effects{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
#gate .seal-slot,#gate .seal-center{z-index:4}
#gate .seal-palette{position:relative;left:auto;right:auto;top:auto;bottom:auto;translate:none;grid-row:5;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;width:min(720px,100%);padding:14px 0 0;border-top:1px solid #ffffff1c;background:none;z-index:6}
#gate .seal-choice{position:relative;display:grid;grid-template-rows:1fr auto;place-items:center;min-height:88px;padding:12px 8px 10px;border:1px solid #ffffff26;border-radius:2px;background:#0b0b0b;color:#d8d8d3;box-shadow:none;transition:background .22s,border-color .22s,box-shadow .22s,opacity .22s}
#gate .seal-choice::after{content:'';position:absolute;bottom:-1px;left:30%;right:30%;height:1px;background:#d1b77d00;transition:background .2s,box-shadow .2s}
#gate .seal-choice span{grid-row:1;font-size:30px;line-height:1.1;font-family:var(--pinceau),serif;text-shadow:none}
#gate .seal-choice small{grid-row:2;margin:6px 0 0!important;font:400 10px/1 var(--lecture)!important;letter-spacing:.06em;color:#ababA5}
#gate .seal-choice kbd{position:absolute;top:6px;left:7px;font:400 9px var(--lecture);color:#8e8e88}
#gate .seal-choice:hover:not(:disabled),#gate .seal-choice:focus-visible{border-color:#c5b47b70;color:#fff1cc;background:#101010;box-shadow:0 0 15px #d6b97710;outline:none}
#gate .seal-choice:hover:not(:disabled)::after,#gate .seal-choice:focus-visible::after{background:#d5bb80;box-shadow:0 0 10px #d9b778}
#gate .seal-choice:disabled{opacity:.6;cursor:default}
#gate .seal-choice[data-used=true]{border-color:#c4a15a55;background:#0c0c0c;color:#f2d997}
#gate .seal-status{grid-row:4;display:flex;align-items:center;gap:14px;min-height:20px;font:400 13px/1.4 var(--serif);color:#c4c4be;text-align:center}
#gate .seal-status::before,#gate .seal-status::after{content:'';width:36px;height:1px;background:linear-gradient(90deg,transparent,#bdbdb638)}
#gate .seal-status::after{rotate:180deg}
#gate .seal-tools{grid-row:6;display:flex;align-items:center;justify-content:center;gap:22px;margin:6px 0 0}
#gate .seal-tools button{border:0;background:none;font:400 11px/1.3 var(--lecture);text-decoration:none;color:#b0b0aa;padding:6px 10px;min-height:28px;border-bottom:1px solid #ffffff20;transition:color .2s,border-color .2s}
#gate .seal-tools button:hover:not(:disabled){color:#eeeeea;border-color:#b8b8b1}
#gate .seal-keyboard-help{grid-row:7;font:400 9px/1.5 var(--lecture);color:#94948e;letter-spacing:.06em;white-space:pre-wrap;text-align:center}
#gate #gate-error{left:50%;top:auto;bottom:7px;translate:-50% 0;width:min(620px,90vw);font-size:11px;text-align:center;pointer-events:none}
#gate .seal-ready .seal-center{color:#f3dca5;border-color:#e7c984;box-shadow:0 0 45px #d8ba7630,inset 0 0 25px #dfc58e1c;animation:ritual-heart 1.8s ease-in-out infinite}
#gate .seal-ready .seal-script-ring text{fill:#d7c59b;opacity:.75}
#gate .seal-ready .seal-energy-ring{opacity:.6;animation-duration:22s}
#gate .seal-ready .seal-status{color:#dfdfd9}
#gate .seal-failed .seal-wheel{animation:none}
#gate .seal-failed .seal-center{animation:none;color:#c9c9c5;border-color:#ffffff30;box-shadow:none}
#gate .seal-failed .seal-center::after{content:none}
#gate .seal-rejection-ring{position:absolute;z-index:5;left:50%;top:50%;width:23%;aspect-ratio:1;border:1px solid #f2f2ed;border-radius:50%;opacity:0;pointer-events:none;box-shadow:none}
#gate .seal-failed .seal-status{color:#d7a89b}
#gate .seal-failed .seal-arc.lit{stroke:#fff;filter:none}
#gate .seal-failed .seal-trace-canvas{opacity:1}
#gate .seal-failed .has-seal-gpu .seal-arc,#gate .seal-failed .has-seal-gpu .seal-outline{visibility:hidden}
#gate .seal-failed .seal-script-ring text{fill:#c1a699;opacity:.6}
#gate .seal-failed .seal-energy-ring{stroke:#c88971;opacity:.4}
#gate .seal-activating .seal-center{animation:ritual-heart .7s ease-in-out infinite}
#gate .seal-activating .seal-ticks{animation-duration:14s}
#gate .ritual-travelling-glyph{position:absolute;left:0;top:0;z-index:20;width:0;height:0;display:flex;align-items:center;justify-content:center;font:36px var(--pinceau),serif;color:#ffebaf;text-shadow:0 0 8px #f8d279,0 0 30px #d4aa4a;pointer-events:none}
.seal-cinematic{--ceremony-fade:1;background:#050505}
.seal-cinematic-fallback{position:absolute;inset:0;display:grid;place-items:center;font:clamp(70px,12vw,150px) var(--pinceau),serif;color:#e7d6a9;pointer-events:none}
@keyframes ritual-heart{50%{box-shadow:0 0 30px #dbc48b12}}
@keyframes ritual-socket{50%{border-color:#d4bd8690;box-shadow:0 0 22px #ccb47a20}}
@keyframes ritual-haze{50%{opacity:.5;transform:scale(1.06)}}
@keyframes ritual-reject-rest{50%{box-shadow:0 0 38px #c37a632e,inset 0 0 20px #c27b6312}}
@media(max-width:700px){
 #gate .seal-password{padding:22px 18px 22px;gap:7px}#gate::before{inset:9px}
 #gate .seal-instruction{font-size:25px}#gate .seal-instruction::before{font-size:8px;margin-bottom:7px}#gate .seal-help{font-size:11px;max-width:280px}
 #gate .seal-wheel{width:min(85vw,43dvh)}#gate .seal-center span{font-size:27px}#gate .seal-center small{display:none}
 #gate .seal-palette{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding-top:10px;max-width:390px}
 #gate .seal-choice{min-height:61px;padding:7px 6px}#gate .seal-choice span{font-size:24px}#gate .seal-choice small{font-size:9px!important;margin-top:4px!important}
 #gate .seal-status{font-size:11px;gap:8px}#gate .seal-status::before,#gate .seal-status::after{width:18px}
 #gate .seal-tools{gap:12px;margin:0}#gate .seal-tools button{font-size:10px}#gate .seal-keyboard-help{font-size:8px;letter-spacing:0}

}
@media(max-height:650px) and (min-width:701px){
 #gate .seal-password{padding:12px 20px;gap:4px}#gate .seal-instruction{font-size:24px}#gate .seal-instruction::before{font-size:8px;margin-bottom:4px}#gate .seal-help{font-size:11px}
 #gate .seal-wheel{width:min(45dvh,420px)}#gate .seal-palette{width:600px;gap:7px;padding-top:8px}#gate .seal-choice{min-height:57px;padding:6px}#gate .seal-choice span{font-size:22px}#gate .seal-choice small{font-size:9px!important;margin-top:3px!important}#gate .seal-center small{display:none}#gate .seal-center span{font-size:25px}#gate .seal-status{font-size:11px;min-height:15px}#gate .seal-tools{margin:0}#gate .seal-tools button{padding:3px 8px;font-size:10px;min-height:20px}#gate .seal-keyboard-help{font-size:8px}
}
@media(max-height:700px) and (max-width:700px){#gate .seal-password{padding-block:14px;gap:4px}#gate .seal-wheel{width:min(76vw,38dvh)}#gate .seal-instruction{font-size:22px}#gate .seal-choice{min-height:53px}#gate .seal-choice span{font-size:22px}}
@media(min-width:2000px) and (min-height:900px){#gate .seal-password{padding:42px 40px 28px;gap:10px}#gate .seal-wheel{width:min(57dvh,900px)}#gate .seal-instruction{font-size:46px}#gate .seal-instruction::before{font-size:12px}#gate .seal-help{font-size:16px}#gate .seal-palette{width:980px;gap:14px}#gate .seal-choice{min-height:104px;padding:16px 10px 12px}#gate .seal-choice span{font-size:38px}#gate .seal-choice small{font-size:12px!important}#gate .seal-choice kbd{font-size:11px}#gate .seal-slot.filled{font-size:44px}#gate .seal-center span{font-size:58px}#gate .seal-center small{font-size:10px!important}#gate .seal-status{font-size:16px}#gate .seal-tools button{font-size:13px}#gate .seal-keyboard-help{font-size:11px}}
html[data-guild-motion=paused] #gate .seal-password *{animation:none!important;transition:none!important}
html[data-guild-motion=paused] #gate .ritual-effects{display:none}
@media(prefers-reduced-motion:reduce){#gate .seal-password *{animation:none!important}#gate .ritual-effects{display:none}}

/* Gold remains consistent in the SVG fallback and during entry. */
#gate .seal-arc.lit{stroke:#fff;filter:none}
#gate .seal-outline circle{stroke:#fff;filter:none}
body.gate-fullscreen .bandeau{background:#060606;color:#c8c8c2}
body.gate-fullscreen .bandeau .guild-audio-controls :is(button,summary){background:#0b0b0b;color:#bdbdb7;border-color:#ffffff26}

/* Rejection stamp follows the in-game reference: oversized arrival, quick contraction. */
#gate .seal-rejection-stamp{position:absolute;z-index:7;left:50%;top:50%;width:26%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;color:#dc5c60;opacity:1}
#gate .seal-rejection-stamp svg{display:block;width:100%;height:100%;overflow:visible}
#gate .seal-rejection-stamp circle{fill:none;stroke:currentColor;stroke-width:1.5}
#gate .seal-rejection-stamp text{fill:currentColor;font-family:KaiTi,"Yu Mincho","MS Mincho",SimSun,serif;font-size:42px;font-weight:400}
#gate .seal-rejected .seal-center span,#gate .seal-rejected .seal-center small{opacity:0}
#gate .seal-rejected .seal-center{border-color:#d2b88150;background:transparent;box-shadow:none}

/* Local crimson impact; white arcs and gold calligraphy fracture on the canvas. */
#gate .seal-rejection-stamp{z-index:9;color:#e46167;filter:drop-shadow(0 0 7px #c9444b45)}
#gate .seal-rejection-stamp .rejection-rim{stroke-width:1.3;stroke-dasharray:91 2 1 2 2 2;stroke-linecap:round}
#gate .seal-rejection-stamp .rejection-inner{stroke-width:.45;opacity:.35}
#gate .seal-rejection-fracture{position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none}
#gate .seal-rejected .ritual-effects,#gate .seal-rejected .seal-energy-ring{opacity:0}

/* The original golden ceremony, with a quiet signature and an uninterrupted dissolve. */
.seal-cinematic.seal-opening-scene{--ceremony-fade:1;background:transparent;outline:0;isolation:isolate;color:#efcd84}
.seal-opening-scene::backdrop{background:transparent}
.seal-opening-scene .seal-cinematic-title{position:absolute;left:0;top:0;right:auto;bottom:auto;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.seal-opening-scene .seal-cinematic-sub{left:28px;right:auto;bottom:30px;font:10px var(--lecture);letter-spacing:.27em;color:#ababA4;text-transform:uppercase;opacity:0}
.seal-opening-scene .seal-cinematic-skip{right:26px;bottom:22px;font:10px var(--lecture);letter-spacing:.09em;text-transform:uppercase;padding:10px 12px;color:#afafa8;border:1px solid transparent;background:transparent;z-index:2;transition:color .16s,border-color .16s}
.seal-opening-scene .seal-cinematic-skip:hover,.seal-opening-scene .seal-cinematic-skip:focus-visible{color:#eeeEE8;border-color:#bfbfb855;background:#111111b3}
.seal-opening-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#eed9a0;background:none;transition:opacity .4s}
.seal-opening-fallback span{display:grid;place-items:center;width:150px;height:150px;border:1px solid #d6bc7d99;border-radius:50%;font:75px serif;box-shadow:0 0 0 15px #d6bc7d0a,0 0 calc(10px + var(--seal-charge,0)*32px) #efcd8430;filter:brightness(calc(1 + var(--seal-charge,0)*.3));transform:scale(var(--seal-core-scale,1));transition:filter .7s,opacity .7s}
.seal-opening-fallback.released span{filter:blur(8px);opacity:0}
@media(max-width:600px){.seal-opening-scene .seal-cinematic-sub{bottom:31px;left:20px;font-size:9px}.seal-opening-scene .seal-cinematic-skip{right:15px;bottom:22px;transform:none}}
@media(max-height:550px){.seal-opening-scene .seal-cinematic-sub{bottom:26px}.seal-opening-scene .seal-cinematic-skip{bottom:17px}}
@media(prefers-reduced-motion:reduce){.seal-opening-scene *{transition:none!important}}

.seal-motion-setting{border-top:1px solid #9caeb429;margin-top:10px;padding-top:12px;display:flex;align-items:center;gap:10px;color:#cbd3d6;font:12px var(--lecture);line-height:1.5;cursor:pointer}
.seal-motion-setting input{width:14px;height:14px;flex:0 0 auto;margin:0;accent-color:#b7a575}

/* One Senju moves from the mist into the home header after successful sign-in. */
.guild-entry-cover{position:fixed;inset:0;z-index:10000;cursor:wait;background:transparent;isolation:isolate}
.guild-entry-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.guild-entry-emblem{position:absolute;transform:translate(-50%,-50%);pointer-events:none;color:#c7cdcd;perspective:1100px}
.guild-entry-emblem svg{display:block;width:100%;height:100%;filter:grayscale(1) brightness(.9) drop-shadow(0 4px 12px #0008);transform-origin:center}
body.guild-entry-running:not(.guild-entry-reduced) .guild-backdrop-emblem svg,body.guild-entry-running:not(.guild-entry-reduced) .guild-emblem-anchor svg{opacity:0!important}
body.guild-entry-running #game-world{transition:none!important;animation:none!important;opacity:1!important}
body.guild-entry-foreground #game-world{z-index:1000}
body.guild-entry-running main,body.guild-entry-running .bandeau{transition:none!important;animation:none!important}

.discord-settings { grid-column:1/-1; }
.discord-settings h2 { margin-top:0; }
.discord-settings > button,.discord-link-code > button,.discord-unlink > button { margin:.35rem .6rem .35rem 0; }
.discord-settings p { max-width:65ch; line-height:1.6; }
.discord-link-code { max-width:44rem; }
.discord-link-code input { width:100%; font-family:monospace; font-size:.9rem; }
.discord-feedback { min-height:1.5em; }
.discord-unlink { padding:1rem; border:1px solid #b69b6250; margin-top:1rem; }

