/* 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:transparent; 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:100%; z-index:-1; overflow:hidden; -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 35%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0%,#000 35%,transparent 100%); }
.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,#000b,#0005),linear-gradient(180deg,#0001 0%,#0005 42%,#000b 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-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); } }
@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; } }

.campaign-public-stage{position:relative;min-height:280px;}
.campaign-public-nav a[aria-current="page"]{color:#fff;border-bottom:2px solid #c1c8cf;padding-bottom:12px;}
.campaign-public-article-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.campaign-public .campaign-public-article-grid > .creator-card-article{width:100%;min-width:0;max-width:100%;margin:0;aspect-ratio:4/3;min-height:340px;justify-self:stretch;}
.campaign-public .campaign-public-article-grid .creator-card-copy{min-width:0;overflow-wrap:anywhere;}
.campaign-public .creator-card-type{position:absolute;top:20px;left:20px;padding:4px 9px;background:#111c;color:#d5d9df;font-size:12px;}
.campaign-public .creator-card-subtitle{font-size:12px;color:#c9cbd1;}
.campaign-primer-heading{max-width:760px;margin-bottom:28px;}
.campaign-public-content>.sessions-content{max-width:1000px;}
.campaign-public-tab-status{color:#c9cbd1;margin-bottom:16px;}
.campaign-public-tab-status:empty{display:none;}
@media(max-width:1199px){.campaign-public-article-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:899px){.campaign-public-article-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:599px){.campaign-public-article-grid{grid-template-columns:1fr;}}

.campaign-public-content > .sessions-content { max-width:900px; margin-inline:auto; }
.campaign-public .campaign-character-grid-full { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1199px) { .campaign-public .campaign-character-grid-full { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:899px) { .campaign-public .campaign-character-grid-full { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:599px) { .campaign-public .campaign-character-grid-full { grid-template-columns:1fr; } }

/* Landscape primer cards must not inherit portrait minimum heights. */
.campaign-public .campaign-public-article-grid > .creator-card-article{aspect-ratio:16/10;min-height:0;height:auto;}
.campaign-public .campaign-public-article-grid .creator-card-front,
.campaign-public .campaign-public-article-grid .creator-card-back{position:absolute;inset:0;width:100%;height:100%;min-height:0;}
.campaign-public .campaign-public-article-grid .creator-card-copy{padding:18px 18px 44px;}
.campaign-public .campaign-public-article-grid .creator-card h3{font-size:20px;line-height:1.25;margin-bottom:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.campaign-public .campaign-public-article-grid .creator-card-back{padding:18px 18px 48px;}
.campaign-public .campaign-public-article-grid .creator-card-type{top:14px;left:18px;font-size:11px;}

/* Compact masthead: one identity group and an adjacent action stack. */
.campaign-public #campaign-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,auto);align-items:center;gap:28px;max-width:none;padding:64px 0 28px;}
.campaign-public .campaign-public-identity{min-width:0;}
.campaign-public #campaign-header .campaign-public-eyebrow{margin:0 0 7px;font-size:11px;color:#d5dfe7;}
.campaign-public #campaign-header h1{font-size:clamp(36px,4vw,54px);margin:0 0 10px;}
.campaign-public #campaign-header .campaign-public-lead{font-size:17px;line-height:1.5;margin:0 0 16px;color:#e1e5e9;}
.campaign-public #campaign-header .campaign-header-details{gap:8px;margin:0;}
.campaign-public #campaign-header .campaign-header-details>span{font-size:12px;padding:3px 9px;border:1px solid #56616a;background:#101416;color:#dce1e5;}
.campaign-public #campaign-header .campaign-public-actions{flex-direction:column;align-items:stretch;gap:8px;max-width:300px;}
.campaign-public #campaign-header .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:400;padding:9px 12px;white-space:normal;}
.campaign-public .campaign-public-nav{margin-bottom:28px;padding-top:16px;}
.campaign-public-backdrop::after{background:linear-gradient(90deg,#000e,#0007),linear-gradient(180deg,#0002 0%,#0005 42%,#000b 100%);}
@media(max-width:700px){.campaign-public #campaign-header{grid-template-columns:1fr;gap:20px;padding-top:40px;}.campaign-public #campaign-header .campaign-public-actions{flex-direction:row;flex-wrap:wrap;max-width:none;}}
