.game-publications { margin: 2rem 0; padding: 1.4rem; border: 1px solid #655616; border-radius: 14px; background: #202025; color: #eee; }
.game-publications h2 { color: #ffd000; margin: 0 0 .7rem; }
.game-publications__intro { max-width: 72ch; line-height: 1.5; color: #ddd; }
.game-publications__message { color: #ddd; margin: 1rem 0; }
.game-publications__message[data-error="1"] { color: #ffb4b4; }
.game-publications__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1rem; margin-top: 1.2rem; }
.game-publications__card { display: flex; flex-direction: column; gap: .65rem; min-width: 0; padding: 1rem; border: 1px solid #55515d; border-radius: 11px; background: #2b2b33; }
.game-publications__cover { display: flex; align-items: center; justify-content: center; height: 220px; overflow: hidden; border-radius: 8px; background: #18181d; }
.game-publications__cover[hidden] { display: none; }
.game-publications__cover img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.game-publications__card h3 { margin: 0; color: #fff; font-size: 1.2rem; line-height: 1.3; }
.game-publications__card p { margin: 0; line-height: 1.48; }
.game-publications__meta { color: #dad0a5; font-size: .9rem; }
.game-publications__byline { color: #f4dc85; font-size: .95rem; }
.game-publications__summary { color: #ddd; flex: 1; overflow-wrap: anywhere; }
.game-publications__badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.game-publications__badge { display: inline-flex; align-items: center; border: 1px solid #80702c; border-radius: 999px; padding: .2rem .55rem; color: #ffdf68; font-size: .86rem; }
.game-publications__badge--owned { border-color: #43aa70; color: #b8f4c8; }
.game-publications__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: .25rem; }
.game-publications__button, .game-publications__button:visited, .game-reader__back a, .game-reader__back a:visited { display: inline-flex; justify-content: center; align-items: center; min-height: 40px; padding: .55rem .85rem; border: 1px solid #ffd000; border-radius: 8px; background: #ffd000; color: #191919; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.game-publications__button:hover, .game-publications__button:focus-visible, .game-reader__back a:hover, .game-reader__back a:focus-visible { background: #ffe767; color: #171717; }
.game-publications__button--secondary, .game-publications__button--secondary:visited, .game-reader__back a, .game-reader__back a:visited { background: transparent; color: #ffd000; }
.game-publications__button:disabled { opacity: .6; cursor: wait; }
.game-publications--library { margin: 0 0 1.5rem; }
.game-reader { box-sizing: border-box; width: 100%; max-width: none; margin: 0; padding: 0; color: #f1f1f1; }
.game-reader__header { border-bottom: 1px solid #655616; padding: 1.4rem 0; }
.game-reader__eyebrow { color: #ffd000; letter-spacing: .05em; text-transform: uppercase; font-size: .85rem; }
.game-reader h1 { color: #ffd000; line-height: 1.2; }
.game-reader__header p { color: #ddd; }
.game-reader__credits { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .2rem .9rem; margin: 1rem 0 0; color: #eee; line-height: 1.45; }
.game-reader__credits[hidden] { display: none; }
.game-reader__credits dt { color: #f4dc85; font-weight: 700; }
.game-reader__credits dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.game-reader__cover { display: flex; justify-content: center; margin: 1.4rem 0 0; }
.game-reader__cover[hidden] { display: none; }
.game-reader__cover img { display: block; max-width: min(100%, 360px); max-height: 520px; width: auto; height: auto; border-radius: 8px; box-shadow: 0 8px 28px rgb(0 0 0 / 45%); }
.game-reader__content { padding: 1.4rem 0; }
.game-reader__text { overflow-wrap: anywhere; font-size: 1.1rem; line-height: 1.8; }
.game-reader__block--heading { margin: 2rem 0 .8rem; line-height: 1.3; }
.game-reader__block--paragraph, .game-reader__legacy-text { margin: 0 0 1.4rem; white-space: pre-wrap; }
.game-reader__block--align-center { text-align: center; }
.game-reader__block--align-right { text-align: right; }
.game-reader__figure { margin: 2rem auto; max-width: 100%; text-align: center; }
.game-reader__figure img { display: block; max-width: 100%; max-height: 78vh; width: auto; height: auto; margin: 0 auto; border-radius: 8px; }
.game-reader__figure--left { margin-left: 0; text-align: left; }
.game-reader__figure--left img { margin-left: 0; }
.game-reader__figure--right { margin-right: 0; text-align: right; }
.game-reader__figure--right img { margin-right: 0; }
.game-reader__figure--wide { width: 100%; }
.game-reader__figure--wide img { width: 100%; max-height: none; }
.game-reader__figure figcaption { margin-top: .6rem; color: #ddd; font-size: .9rem; line-height: 1.5; }
.game-reader__page-break { width: min(75%, 360px); margin: 3rem auto; border: 0; border-top: 1px solid #867535; break-before: page; }
.game-reader__chapter { margin: 0 0 2.5rem; }
.game-reader__chapter h2 { color: #ffd000; font-size: 1.4rem; }
.game-reader__chapter + .game-reader__chapter { border-top: 1px solid #655616; padding-top: 2rem; }
.game-reader__toc { margin: 0 0 2.5rem; padding: 1rem 1.2rem; border: 1px solid #655616; border-radius: 10px; background: #27272d; }
.game-reader__toc h2 { margin: 0 0 .7rem; color: #ffd000; font-size: 1.1rem; }
.game-reader__toc ol { display: grid; gap: .45rem; margin: 0; padding-left: 1.5rem; }
.game-reader__toc li { padding-left: .2rem; }
.game-reader__toc a, .game-reader__toc a:visited { display: inline; min-height: auto; padding: 0; border: 0; background: transparent; color: #f6df8d; font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.game-reader__toc a:hover, .game-reader__toc a:focus-visible { background: transparent; color: #fff3bf; }
.game-reader__audio { padding: .75rem 0 1.2rem; margin-bottom: 1rem; border-bottom: 1px solid #655616; }
.game-reader__audio h2 { color: #ffd000; margin-top: 0; }
.game-reader__audio h3 { margin: 0 0 .6rem; color: #ffd000; font-size: 1rem; }
.game-reader__chapter-audio { margin: .5rem 0 1.5rem; }
.game-reader__audio audio { display: block; width: 100%; }
.game-publications__dialog { width: min(100% - 2rem, 550px); max-height: min(90vh, 760px); overflow: auto; padding: 1.5rem; border: 2px solid #ffd000; border-radius: 12px; background: #24242c; color: #fff; }
.game-publications__dialog::backdrop { background: rgb(0 0 0 / 75%); }
.game-publications__dialog h2 { color: #ffd000; margin-top: 0; }
.game-publications__dialog label { display: flex; gap: .6rem; margin: 1rem 0; line-height: 1.45; }
.game-publications__dialog input[type="checkbox"] { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin-top: .2rem; }
.game-publications__dialog a { color: #ffdd61; }
.game-publications__dialog-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }
/* La lecture garde une page calme, distincte des cartes du catalogue. */
.game-reader {
    --reader-title-font: Georgia, 'Times New Roman', serif;
    --reader-body-font: Georgia, 'Times New Roman', serif;
    --reader-text-size: clamp(1.05rem, 1.65vw, 1.18rem);
}
.game-reader[data-text-scale="90"] { --reader-text-size: clamp(.95rem, 1.48vw, 1.06rem); }
.game-reader[data-text-scale="115"] { --reader-text-size: clamp(1.2rem, 1.9vw, 1.36rem); }
.game-reader[data-text-scale="130"] { --reader-text-size: clamp(1.37rem, 2.15vw, 1.53rem); }
.game-reader[data-text-scale="150"] { --reader-text-size: clamp(1.58rem, 2.48vw, 1.77rem); }
.game-reader[data-title-font="literary"] { --reader-title-font: 'Palatino Linotype', 'Book Antiqua', Palatino, serif; }
.game-reader[data-title-font="modern"] { --reader-title-font: Arial, Helvetica, sans-serif; }
.game-reader[data-title-font="friendly"] { --reader-title-font: 'Trebuchet MS', Verdana, sans-serif; }
.game-reader[data-title-font="typewriter"] { --reader-title-font: 'Courier New', Courier, monospace; }
.game-reader[data-title-font="display"] { --reader-title-font: Impact, 'Arial Black', sans-serif; }
.game-reader[data-body-font="literary"] { --reader-body-font: 'Palatino Linotype', 'Book Antiqua', Palatino, serif; }
.game-reader[data-body-font="modern"] { --reader-body-font: Arial, Helvetica, sans-serif; }
.game-reader[data-body-font="friendly"] { --reader-body-font: 'Trebuchet MS', Verdana, sans-serif; }
.game-reader[data-body-font="typewriter"] { --reader-body-font: 'Courier New', Courier, monospace; }
/* La zone grise du site suffit comme cadre ; seul le texte a sa page de lecture. */
.game-reader__back,
.game-reader__header,
.game-reader > .game-publications__message,
.game-reader__audio,
.game-reader__text { max-width: 1000px; margin-inline: auto; }
.game-reader__back { margin-top: 0; margin-bottom: 0; }
.game-reader > .game-publications__message { margin-top: 1rem; margin-bottom: 1rem; }
.game-reader__header { padding: 1.2rem 0 1rem; }
.game-reader h1,
.game-reader__text h2,
.game-reader__text h3,
.game-reader__toc-toggle {
    font-family: var(--reader-title-font) !important; letter-spacing: normal; text-transform: none;
}
.game-reader h1 { font-size: clamp(2rem, 3.8vw, 3rem); margin: .8rem 0 .35rem; }
.game-reader__cover img { max-width: min(100%, 220px); max-height: 320px; }
.game-reader__content { padding: .65rem 0 0; }
.game-reader__bookmark-dock {
    position: fixed; z-index: 100;
    right: max(.85rem, env(safe-area-inset-right));
    bottom: max(.85rem, env(safe-area-inset-bottom));
    display: flex; flex-direction: column; align-items: flex-end; gap: .5rem;
    width: min(380px, calc(100vw - 1.7rem));
    box-sizing: border-box; font-family: Arial, Helvetica, sans-serif;
}
.game-reader__bookmark-toggle {
    min-height: 44px; padding: .65rem .95rem; cursor: pointer;
    border: 1px solid #b39231; border-radius: 999px;
    background: #25252b; color: #ffe082;
    box-shadow: 0 5px 20px #0009;
    font: 700 .9rem/1.2 Arial, Helvetica, sans-serif;
}
.game-reader__bookmark-toggle:hover,
.game-reader__bookmark-toggle:focus-visible { background: #40371e; color: #fff; }
.game-reader__bookmark-panel {
    order: -1; box-sizing: border-box; width: 100%;
    max-height: min(65vh, 350px); overflow: auto;
    padding: .85rem; border: 1px solid #b39231; border-radius: 12px;
    background: #25252bf5; color: #f4f4f4;
    box-shadow: 0 10px 35px #000a;
}
.game-reader__text-size {
    display: flex; flex-wrap: wrap; align-items: center; gap: .4rem;
    margin-bottom: .8rem; padding-bottom: .8rem; border-bottom: 1px solid #665a33;
}
.game-reader__text-size-label { flex: 1 1 130px; color: #ffdd6c; font-size: .85rem; font-weight: 700; }
.game-reader__text-size button {
    min-width: 38px; min-height: 36px; border: 1px solid #8d7742; border-radius: 7px;
    background: #413b30; color: #ffebad; cursor: pointer; font: 700 .9rem Arial, sans-serif;
}
.game-reader__text-size button:hover,
.game-reader__text-size button:focus-visible { background: #655127; color: #fff; }
.game-reader__text-size button:disabled { cursor: default; opacity: .48; }
.game-reader__text-size output { min-width: 54px; text-align: center; font-size: .83rem; color: #fff; }
.game-reader__text-size [data-reader-text-size-status] {
    flex: 0 0 100%; margin: 0; color: #c7c5ca; font-size: .75rem; line-height: 1.35;
}
.game-reader__bookmark-intro { margin-bottom: .7rem; }
.game-reader__bookmark-intro strong { color: #ffdd6c; display: block; font-size: .88rem; }
.game-reader__bookmark-intro small { color: #cccbd1; display: block; font-size: .77rem; line-height: 1.35; }
.game-reader__bookmark-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.game-reader__bookmark-actions button {
    background: #413b30; border: 1px solid #8d7742; border-radius: 7px; color: #ffebad;
    cursor: pointer; font: 700 .82rem/1.2 Arial, sans-serif; min-height: 34px; padding: .35rem .55rem;
}
.game-reader__bookmark-actions button:hover,
.game-reader__bookmark-actions button:focus-visible { background: #655127; color: #fff; }
.game-reader__bookmark-actions button:disabled { cursor: default; opacity: .48; }
.game-reader__bookmark-panel [data-reader-bookmark-status] {
    color: #c7c5ca; font-size: .76rem; line-height: 1.4; margin: .7rem 0 0;
}
.game-reader [hidden] { display: none !important; }
.game-reader__text {
    background: #f9f6ec; border: 1px solid #d8cfb8; border-radius: 4px; box-shadow: 0 16px 35px #0004;
    box-sizing: border-box; color: #29251e; font-family: var(--reader-body-font) !important;
    font-size: var(--reader-text-size); line-height: 1.78;
    min-height: 65vh; padding: clamp(1.35rem, 4vw, 3.5rem); position: relative;
}
#corp .game-reader__text h2,
#corp .game-reader__text h3 { color: #30271d; }
#corp .game-reader__text h2 {
    border: 0; font-size: 1.45rem; margin: 2rem 0 .8rem; padding: 0; text-align: left;
}
#corp .game-reader__text .game-reader__chapter h2 {
    border-bottom: 1px solid #b5aa93; font-size: clamp(1.35rem, 2.2vw, 1.9rem);
    line-height: 1.25; margin: 0 0 1.6rem; padding: 0 0 .75rem;
}
#corp .game-reader__text .game-reader__block--align-center { text-align: center; }
#corp .game-reader__text .game-reader__block--align-right { text-align: right; }
.game-reader__chapter + .game-reader__chapter { border-top: 0; padding-top: 2.5rem; }
.game-reader__block--paragraph,
.game-reader__legacy-text { margin-bottom: 1.15rem; }
.game-reader [data-reader-anchor] { border-radius: 3px; cursor: text; }
.game-reader [data-reader-anchor]:focus-visible { outline: 2px solid #a88439; outline-offset: 3px; }
.game-reader [data-reader-anchor].is-bookmark-target { background: #ffe8a4; }
.game-reader__bookmark-pin {
    color: #a46a12; font: 900 1.1rem Arial, sans-serif; left: .8rem; line-height: 1;
    pointer-events: none; position: absolute; transform: translateY(-50%); z-index: 2;
}
.game-reader__bookmark-pin--candidate { color: #8c806a; }
.game-reader__toc {
    background: transparent; border: 0; border-bottom: 1px solid #cfc4af; border-radius: 0;
    margin: 1.1rem 0 2.3rem; padding: 0 0 .9rem;
}
.game-reader__toc-toggle {
    background: transparent; border: 0; color: #49371f; cursor: pointer; display: flex;
    font-size: 1.1rem; font-weight: 700; justify-content: space-between; padding: .45rem 0; width: 100%;
}
.game-reader__toc-toggle::after { content: '▾'; font: 1rem Arial, sans-serif; }
.game-reader__toc-toggle[aria-expanded="true"]::after { content: '▴'; }
.game-reader__toc ol { columns: 2; display: block; margin: .4rem 0 0; padding-left: 1.4rem; }
.game-reader__toc li { break-inside: avoid; margin: .2rem 0; }
.game-reader__toc a, .game-reader__toc a:visited { color: #554124; }
.game-reader__toc a:hover, .game-reader__toc a:focus-visible { color: #111; }
.game-reader__figure figcaption { color: #635746; }
.game-reader__page-break { border-top-color: #b9a87d; }
@media (max-width: 600px) {
    .game-publications { padding: 1rem; }
    .game-reader { --reader-text-size: 1rem; }
    .game-reader[data-text-scale="90"] { --reader-text-size: .9rem; }
    .game-reader[data-text-scale="115"] { --reader-text-size: 1.15rem; }
    .game-reader[data-text-scale="130"] { --reader-text-size: 1.3rem; }
    .game-reader[data-text-scale="150"] { --reader-text-size: 1.5rem; }
}
@media (max-width: 600px) {
    .game-reader__bookmark-dock { width: min(360px, calc(100vw - 1.2rem)); right: .6rem; bottom: max(.6rem, env(safe-area-inset-bottom)); }
    .game-reader__bookmark-panel { max-height: min(56vh, 310px); }
    .game-reader__bookmark-panel [data-reader-bookmark-status] { font-size: .72rem; }
    .game-reader__text { padding: 1.35rem 1.2rem 2rem; }
    .game-reader__bookmark-pin { left: .18rem; }
    .game-reader__toc ol { columns: 1; }
}
@media print {
    .game-reader__back, .game-reader__bookmark-dock, .game-reader__bookmark-pin { display: none !important; }
    .game-reader__text { background: #fff; border: 0; box-shadow: none; }
    .game-reader__page-break { break-before: page; border: 0; }
    .game-reader__figure img { max-height: 90vh; }
}
