/* Public campaign showcase: scoped reader variant of the Worldbuilder language. */
.campaign-public { --public-text:#e9eaf0; --public-muted:#adb2b8; --public-line:#3b4044; position:relative; isolation:isolate; background:#0b0d0f; color:var(--public-text); padding:0 32px 64px; margin:-20px -20px 0; font-size:16px; line-height:1.6; }
.campaign-public * { box-sizing:border-box; }
.campaign-public-backdrop { position:absolute; inset:0 0 auto; height:850px; max-height:100vh; z-index:-1; overflow:hidden; }
.campaign-public-backdrop img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.campaign-public-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#080a0dcc, #080a0d44),linear-gradient(180deg,#0b0d0f11 0%,#0b0d0f66 42%,#0b0d0f 100%); }
.campaign-public-container { max-width:1560px; margin:auto; }
.campaign-public #campaign-cover { margin:0; background:none; }
.campaign-public #campaign-header { padding:110px 0 48px; max-width:1000px; }
.campaign-public h1 { font:normal clamp(38px,5vw,76px)/1.08 Georgia,serif; color:var(--public-text); margin:16px 0 24px; overflow-wrap:anywhere; text-shadow:0 2px 18px #0008; }
.campaign-public h2 { font:normal 30px/1.25 Georgia,serif; margin:0 0 20px; color:var(--public-text); }
.campaign-public h3,.campaign-public h4 { color:var(--public-text); }
.campaign-public .campaign-public-eyebrow { color:#c1c8cf; font-weight:600; line-height:1.5; font-size:12px; letter-spacing:.16em; text-transform:uppercase; margin:0 0 16px; }
.campaign-public-lead { max-width:740px; font-size:21px; color:#d5d9df; }
.campaign-public .campaign-header-details { display:flex; flex-wrap:wrap; gap:8px 20px; color:#c1c8cf; margin:24px 0; }
.campaign-public-actions { display:flex; flex-wrap:wrap; gap:12px; }
.campaign-public a { color:#47bfff; }
.campaign-public a:hover { color:#94dbff !important; }
.campaign-public a:focus-visible,.campaign-public summary:focus-visible { outline:2px solid #c9d7e4; outline-offset:4px; }
.campaign-public .btn { border-radius:0; padding:10px 16px; font-size:14px; font-weight:600; text-decoration:none; box-shadow:none; }
.campaign-public .btn-primary { background:#1e6d9e; border:1px solid #1e6d9e; color:#fff; }
.campaign-public .btn-primary:hover { background:#2483bd; color:#fff !important; }
.campaign-public .btn-secondary { background:#2c2d2e; border:1px solid #47484a; color:#e9eaf0; }
.campaign-public .btn-secondary:hover { background:#47484a; color:#fff !important; }
.campaign-public .btn-danger:hover { color:#fff !important; }
.campaign-public-nav { display:flex; flex-wrap:wrap; gap:12px 32px; border-bottom:1px solid var(--public-line); padding:20px 0; margin-bottom:40px; }
.campaign-public-nav a { color:#d7d9df; font:20px Georgia,serif; padding:4px 0; }
.campaign-public-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(320px,1fr); gap:56px; }
.campaign-public-layout main,.campaign-public-layout aside { min-width:0; }
.campaign-public-layout section { scroll-margin-top:32px; margin-bottom:32px; }
.campaign-public-introduction { padding:32px; }
.campaign-public-introduction h2 { margin-bottom:24px; }
.campaign-public-prose { overflow-wrap:anywhere; }
.campaign-public-prose p:last-child { margin-bottom:0; }
.campaign-public .campaign-storyteller { display:flex; flex-wrap:wrap; gap:8px 16px; border-top:1px solid var(--public-line); margin-top:24px; padding-top:16px; font-size:14px; }
.campaign-public .campaign-storyteller span,.campaign-public-muted { color:var(--public-muted); }
.campaign-public-cast { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.campaign-public-character { position:relative; aspect-ratio:3/4; background:#151719; border:1px solid var(--public-line); overflow:hidden; }
.campaign-public-character>img { position:absolute; width:100%; height:100%; object-fit:cover; }
.campaign-public-character::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(transparent 35%,#08090beb 100%); }
.campaign-public-character-copy { position:absolute; z-index:1; bottom:0; left:0; right:0; padding:24px; }
.campaign-public-character h3 { font:normal 28px/1.2 Georgia,serif; overflow-wrap:anywhere; margin:0 0 12px; }
.campaign-public-character h3 a { color:#e9eaf0; }
.campaign-public .ibox { border:1px solid #000; background:linear-gradient(135deg,#202427,#101214); border-radius:0; margin-bottom:24px; }
.campaign-public .ibox-title { background:none; border:0; padding:0; min-height:0; }
.campaign-public .ibox-title h2,.campaign-public .ibox-title h5 { display:inline-block; float:none; background:#080909; clip-path:polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%); margin:-1px 0 0 -1px; padding:14px 36px 14px 20px; max-width:100%; font-weight:600; line-height:1.3; font-size:17px; text-transform:uppercase; color:var(--public-text); }
.campaign-public .ibox-content { border:0; background:transparent; color:inherit; padding:24px; }
.campaign-public .campaign-content { margin-bottom:0 !important; }
.campaign-public .maps-list-header,.campaign-public .timelines-list-header { display:none; }
.campaign-public .list-unstyled { margin:0; }
.campaign-public .list-unstyled li+li { border-top:1px solid #ffffff12; padding-top:12px; }
.campaign-public-session { display:flex; gap:20px; background:linear-gradient(135deg,#202427,#0d1012); border:1px solid var(--public-line); padding:24px; margin-bottom:24px; }
.campaign-public-date { flex:0 0 54px; display:flex; flex-direction:column; align-items:center; text-transform:uppercase; line-height:1.4; font-size:12px; color:var(--public-muted); }
.campaign-public-date strong { font-size:36px; color:var(--public-text); font-weight:600; }
.campaign-public-date span:last-child { margin-top:4px; text-align:center; }
.campaign-public-session-body { min-width:0; flex:1; }
.campaign-public-date+.campaign-public-session-body { border-left:1px solid var(--public-line); padding-left:20px; }
.campaign-public-session h4 { font-size:21px; line-height:1.3; margin:0 0 16px; overflow-wrap:anywhere; }
.campaign-public-roster { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.campaign-public-roster:empty { display:none; }
.campaign-public-roster img { width:40px; height:40px; object-fit:cover; border:1px solid #62676b; border-radius:50%; }
.campaign-public-session-footer,.campaign-public-journals { border-top:1px solid var(--public-line); margin-top:20px; padding-top:16px; font-size:14px; }
.campaign-public-journals summary { cursor:pointer; }
.campaign-public-journals ul { padding-left:18px; margin-top:12px; }
.campaign-public-links { display:grid; gap:12px; }
.campaign-public-links a { display:flex; justify-content:space-between; }
.campaign-public img { max-width:100%; }
.campaign-public iframe { max-width:100%; }
.campaign-public-broadcast { width:100%; aspect-ratio:16/9; border:0; }
@media(max-width:1100px) { .campaign-public-layout { gap:32px; grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr); } .campaign-public-session { padding:18px; gap:12px; } .campaign-public-date+.campaign-public-session-body { padding-left:12px; } }
@media(max-width:850px) { .campaign-public-layout { grid-template-columns:1fr; } .campaign-public #campaign-header { padding-top:64px; } }
@media(max-width:500px) { .campaign-public { padding:0 16px 40px; } .campaign-public-cast { grid-template-columns:1fr; } .campaign-public-introduction { padding:24px; } .campaign-public-nav { gap:16px 24px; } }
