/* Shared portal colours. Load after each game's own layout stylesheet. */
:root{color-scheme:light;--ink:#4b2d1f;--deep:#28170f;--paper:#efd9ad;--gold:#b77d40;--gold-light:#7b4727;--gold-pale:#dfb675;--muted:#67503e;--line:#44241347;--accent:#6a2935;--portal-text:#2e1c13;--portal-cream:#f7e7c8;--night:#e7cfa4;--cream:#2e1c13;--soft:#67503e}
body{color:var(--portal-text);background-color:#e7cfa4;background-image:radial-gradient(circle at 9% 8%,#2f7f7a17 0 4px,#0000 5px),radial-gradient(circle at 87% 17%,#ce674a14 0 5px,#0000 6px),radial-gradient(circle at 21% 75%,#963b4c0f 0 3px,#0000 4px),repeating-linear-gradient(2deg,#0000 0 8px,#48261204 9px 10px),linear-gradient(105deg,#eed5a3,#f8e8c6 48%,#e5c48d);background-size:90px 90px,120px 120px,75px 75px,auto,auto}
.game-header{background:#2f1e16f7;color:var(--portal-cream);border-bottom:4px solid var(--gold);box-shadow:0 7px #52362457,0 14px 30px #23130a2e}
.game-header .brand small,.game-header .text-button,.game-header .portal-link{color:var(--portal-cream)}
.game-header .brand-mark{border-color:var(--gold-pale);color:var(--gold-pale)}
.game-header :focus-visible{outline-color:var(--gold-pale)}
body .primary,body .button.primary{background:var(--accent);color:var(--portal-cream);border-color:var(--accent)}
body .primary:not(:disabled):hover{background:#431923;color:var(--portal-cream);border-color:#431923}
body .secondary,body .button.secondary{background:#f4e5c7;color:var(--ink);border-color:#a78355}
body .secondary:not(:disabled):hover{background:#efd9ad;border-color:var(--accent)}
.eyebrow{color:var(--muted)}
.aside,.notebook{background:#f4e5c7;border-color:#a78355;border-top-color:var(--ink);box-shadow:6px 6px 0 #49301f15}
.option{background:#f4e5c7;border-color:#a78355;box-shadow:0 5px 0 #49301f15}
.option>.letter{background:var(--deep);color:var(--portal-cream);border-color:var(--gold)}
.event-art{background:#e7cfa4;border-color:#a78355}
.scene-scroll{border-color:var(--ink);background:#e7cfa4;box-shadow:0 6px 0 #49301f15}
.scene-badge,.text-mode,.object-choice{border-color:#a78355}
.object-choice{background:#f4e5c7;color:var(--ink)}
.object-choice:not(:disabled):hover{background:#efd9ad}
.scene-message,.feedback,.loading,.image-error{background:#f4e5c7}
.reason-panel{background:#f4e5c7;color:var(--portal-text);border-color:#a78355}
.reason-options label{background:#f9ecd2;color:var(--portal-text);border-color:#a78355}
.reason-options label:has(input:checked){background:#ead5ae;border-color:var(--accent)}
.reason-options input{accent-color:var(--accent)}
dialog{background:#f4e5c7;color:var(--portal-text);border-color:#a78355}
dialog::backdrop{background:#28170fb3}
progress,progress::-webkit-progress-bar{background:#d6bc8f}
progress::-webkit-progress-value{background:var(--accent)}
progress::-moz-progress-bar{background:var(--accent)}
.game-footer{border-color:var(--line);color:var(--muted)}
.game-wallet{background:#f4e5c7;color:var(--portal-text);border-color:#a78355}
.game-wallet strong,.game-wallet a,.game-wallet #wallet-message{color:var(--ink)}
.game-wallet .wallet-actions button,.game-wallet .wallet-actions select{background:#f9ecd2;color:var(--ink);border-color:#a78355}
.game-wallet #wallet-start{background:var(--accent);color:var(--portal-cream);border-color:var(--accent)}
/* Merchant: preserve the map and its route colours; recolour the surrounding UI. */
body[data-portal-game="merchant"] header{background:#2f1e16f7;color:var(--portal-cream);border-color:var(--gold)}
body[data-portal-game="merchant"] header span{color:var(--portal-cream)}
body[data-portal-game="merchant"] button{background:#f4e5c7;color:var(--ink);border-color:#a78355}
body[data-portal-game="merchant"] button:hover{background:#efd9ad}
body[data-portal-game="merchant"] .stats,body[data-portal-game="merchant"] .stats>div,body[data-portal-game="merchant"] .task,body[data-portal-game="merchant"] .map-panel{background:#f4e5c7;color:var(--portal-text);border-color:#a78355}
body[data-portal-game="merchant"] .stats span,body[data-portal-game="merchant"] .rules,body[data-portal-game="merchant"] .map-title span,body[data-portal-game="merchant"] .map-note{color:var(--muted)}
body[data-portal-game="merchant"] .map-title,body[data-portal-game="merchant"] .ledger,body[data-portal-game="merchant"] .map-details,body[data-portal-game="merchant"] .map-stops li{border-color:#a78355}
body[data-portal-game="merchant"] .choices button{background:#f9ecd2;color:var(--ink);border-color:#a78355}
body[data-portal-game="merchant"] button.primary,body[data-portal-game="merchant"] .game-wallet #wallet-start{background:var(--accent);color:var(--portal-cream);border-color:var(--accent)}
body[data-portal-game="merchant"] button.primary:hover{background:#431923}
/* Chronicle: light portal panels; the illustrated archive stays a scene. */
body[data-portal-game="chronicle"] .intro::before{background:linear-gradient(90deg,#f4e5c7fa,#f4e5c7eb 35%,#f4e5c766 75%,#f4e5c733)}
body[data-portal-game="chronicle"] .intro-story,body[data-portal-game="chronicle"] .intro-lead,body[data-portal-game="chronicle"] .intro-features,body[data-portal-game="chronicle"] .fiction-note,body[data-portal-game="chronicle"] .intro-caption,body[data-portal-game="chronicle"] .case-story{color:var(--ink)}
body[data-portal-game="chronicle"] .trail-card,body[data-portal-game="chronicle"] .discovery-summary{background:#f4e5c7;color:var(--portal-text);border-color:#a78355}
body[data-portal-game="chronicle"] .trail-card:hover{background:#efd9ad}
body[data-portal-game="chronicle"] .trail-card.solved .trail-state{color:#355335}
body[data-portal-game="chronicle"] .ending p:not(.eyebrow):not(.ending-lead),body[data-portal-game="chronicle"] .discovery-summary ul{color:var(--ink)}
body[data-portal-game="chronicle"] .ending-seal{background:var(--deep);color:var(--portal-cream)}

/* The same image asset as the portal header; never a replacement monogram. */
.portal-brand-logo{display:block;width:54px;height:54px;object-fit:contain;flex:0 0 54px;border:0;border-radius:0;background:none}
.merchant-portal-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
body[data-portal-game="merchant"] .merchant-portal-brand span{display:block;letter-spacing:0;font:20px/1.2 Georgia,serif}
@media(max-width:520px){.portal-brand-logo{width:44px;height:44px;flex-basis:44px}body[data-portal-game="merchant"] header{flex-wrap:wrap}body[data-portal-game="merchant"] .merchant-portal-brand span{font-size:17px}}
