/* Fictional faction palettes. No animated flags or layout-changing effects. */
:root[data-faction]:not([data-faction="free"]) body{background-color:var(--paper);background-image:linear-gradient(110deg,color-mix(in srgb,var(--faction-accent) 7%,transparent),transparent 42%),url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.045' filter='url(%23n)'/%3E%3C/svg%3E")}
:root[data-faction]:not([data-faction="free"]) .header{border-bottom-color:var(--faction-accent)}
:root[data-faction]:not([data-faction="free"]) .primary:hover:not(:disabled){background:var(--faction-banner);color:#fff8e8}
:root[data-faction]:not([data-faction="free"]) .character-panel,:root[data-faction]:not([data-faction="free"]) .result-box{background:var(--light)}
:root[data-faction]:not([data-faction="free"]) .choice:hover:not(:disabled){background:var(--light)}
:root[data-faction]:not([data-faction="free"]) .event-top,:root[data-faction]:not([data-faction="free"]) .hero{background:var(--paper)}
:root[data-faction]:not([data-faction="free"]) .stat-fill{background:var(--faction-accent)}
:root[data-faction]:not([data-faction="free"]) .stat-fill.red{background:var(--faction-banner)}
:root[data-faction]:not([data-faction="free"]) .char-stamp{border-color:var(--faction-accent);color:var(--faction-accent)}
.faction-theme-banner{position:relative;display:grid;grid-template-columns:67px minmax(0,1fr) minmax(140px,auto);column-gap:24px;align-items:center;margin:0 0 24px;padding:17px 24px 12px 20px;border:1px solid var(--faction-accent);background:linear-gradient(100deg,color-mix(in srgb,var(--faction-accent) 8%,var(--light)),var(--light));isolation:isolate}
.faction-pennant{position:relative;align-self:start;display:grid;place-items:center;width:64px;height:92px;padding:2px 6px 17px;background:var(--faction-banner);color:#f9edce;clip-path:polygon(0 0,100% 0,100% 100%,50% 87%,0 100%);font:700 43px/1 var(--serif);filter:drop-shadow(0 2px 1px #29241425)}
.faction-pennant:before{content:'';position:absolute;inset:5px 5px 13px;border:1px solid #d3b97980;pointer-events:none}
.faction-pennant span{position:relative;z-index:1}.faction-pennant-double span{font-size:25px;line-height:1.05;writing-mode:vertical-rl;letter-spacing:2px}
.faction-banner-title{min-width:0}.faction-banner-kicker{display:block;font-size:10px;letter-spacing:1.1px;color:var(--muted);margin-bottom:4px}.faction-banner-title>strong{font:700 23px/1.45 var(--serif);color:var(--faction-accent);overflow-wrap:anywhere}.faction-banner-title>p{font:11px/1.7 var(--serif);color:var(--muted);margin-top:3px}
.faction-banner-office{text-align:right;min-width:0;border-left:1px solid var(--line);padding-left:22px}.faction-banner-office>span{display:block;color:var(--muted);font-size:10px}.faction-banner-office>strong{display:block;font:600 17px/1.6 var(--serif);color:var(--ink);overflow-wrap:anywhere}.faction-rank-stitches{display:flex;justify-content:flex-end;gap:5px;margin:9px 1px 3px}.faction-rank-stitches i{display:block;width:5px;height:5px;transform:rotate(45deg);border:1px solid var(--line)}.faction-rank-stitches .filled{border-color:var(--faction-gold);background:var(--faction-gold)}
.faction-banner-next{grid-column:2/-1;color:var(--ink);font-size:10px;line-height:1.7;margin-top:7px}.faction-banner-note{grid-column:2/-1;color:var(--muted);font-size:9px;line-height:1.7;margin-top:5px}.faction-banner-office>.faction-ornament-level{font-size:9px;margin-top:5px;color:var(--faction-accent)}
/* Ornament grows with held office or an actual assignment, never birth or money. */
:root[data-faction-rank="2"] .faction-theme-banner{border-top:3px solid var(--faction-accent)}
:root[data-faction-rank="3"] .faction-theme-banner{border-top:3px solid var(--faction-accent);box-shadow:inset 0 0 0 4px var(--light),inset 0 0 0 5px var(--line)}
:root[data-faction-rank="3"] .character-panel{border-top:3px solid var(--faction-accent)}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .faction-theme-banner{border:2px solid var(--faction-gold);box-shadow:inset 0 0 0 4px var(--light),inset 0 0 0 5px var(--faction-gold)}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .faction-theme-banner:before,:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .faction-theme-banner:after{content:'';position:absolute;width:14px;height:14px;border-color:var(--faction-gold);border-style:solid;pointer-events:none}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .faction-theme-banner:before{left:8px;top:8px;border-width:2px 0 0 2px}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .faction-theme-banner:after{right:8px;bottom:8px;border-width:0 2px 2px 0}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .header{border-bottom:3px double var(--faction-gold)}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .character-panel{border:1px solid var(--faction-gold);border-top:4px double var(--faction-gold)}
:root:is([data-faction-rank="4"],[data-faction-rank="5"]) .faction-pennant{background:linear-gradient(100deg,var(--faction-banner),var(--faction-accent),var(--faction-banner));color:#ffe7ad}
:root[data-faction-rank="4"][data-career-rank="4"] .faction-pennant:before{border:3px double #dec485}
:root[data-faction-rank="5"] .faction-theme-banner{background:linear-gradient(115deg,color-mix(in srgb,var(--faction-gold) 17%,var(--light)),var(--light) 35%,color-mix(in srgb,var(--faction-accent) 7%,var(--light)));box-shadow:inset 0 0 0 4px var(--light),inset 0 0 0 5px var(--faction-gold),0 4px 16px #59482812}
:root[data-faction-rank="5"] .faction-pennant:before{border:3px double #f0d59a}
:root[data-faction-rank="5"] .character-panel{box-shadow:inset 0 0 0 4px var(--light),inset 0 0 0 5px var(--line)}
:root[data-faction-rank="5"] .chapter-head{border-bottom:3px double var(--faction-gold)}
:root[data-faction-retired="true"] .faction-rank-stitches{opacity:.68}
@media(max-width:800px){.faction-theme-banner{column-gap:17px;padding:15px 18px 12px}.faction-banner-title>strong{font-size:21px}.faction-banner-office{padding-left:16px}}
@media(max-width:480px){.faction-theme-banner{grid-template-columns:51px minmax(0,1fr);column-gap:14px;row-gap:8px;padding:15px 16px 12px;margin-bottom:20px}.faction-pennant{width:49px;height:80px;font-size:34px;grid-row:1/3}.faction-pennant-double span{font-size:22px}.faction-banner-title>strong{font-size:20px}.faction-banner-kicker{font-size:9px;letter-spacing:.4px}.faction-banner-office{grid-column:2;text-align:left;border-left:0;border-top:1px solid var(--line);padding:6px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.faction-banner-office>strong{font-size:14px}.faction-rank-stitches{margin:3px 0;gap:4px}.faction-banner-next,.faction-banner-note{grid-column:1/-1;margin-top:1px}.faction-banner-note{font-size:9px}.faction-banner-title>p{font-size:10px}.faction-banner-office>.faction-ornament-level{margin:0}}
@media(forced-colors:active){.faction-theme-banner,.faction-pennant,.faction-banner-office{border:1px solid CanvasText}.faction-pennant{clip-path:none}.faction-rank-stitches .filled{background:CanvasText}.faction-theme-banner:before,.faction-theme-banner:after{display:none}}
