.factions-hero{padding-top:clamp(8rem,16vw,13rem);background:radial-gradient(circle at 78% 45%,rgba(40,127,255,.18),transparent 24rem),linear-gradient(110deg,#0b1119,#101d30)}
.factions-hero h1{font:800 clamp(4rem,10vw,8rem)/.85 var(--head);text-transform:uppercase;margin:.6rem 0}
.factions-hero p{max-width:650px}.factions-hero .btn{display:inline-flex;margin-top:1.2rem}
.faction-directory{display:flex;flex-direction:column;gap:5rem}
.faction-section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line);padding-bottom:1rem}
.faction-section-head h2,.faction-request-intro h2{font:800 clamp(2.8rem,6vw,5rem)/.9 var(--head);text-transform:uppercase;margin:.35rem 0 0}
.faction-section-head>span{color:#8db8ff;font:700 .68rem var(--head);letter-spacing:.11em;text-transform:uppercase}
.public-faction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.public-faction-card{position:relative;display:grid;grid-template-columns:12px 1fr;gap:1.3rem;min-height:210px;border:1px solid color-mix(in srgb,var(--faction-color) 40%,#303a48);background:linear-gradient(125deg,color-mix(in srgb,var(--faction-color) 15%,#121923),#0c1118 65%);padding:1.45rem;overflow:hidden}
.public-faction-card:after{content:"";position:absolute;width:180px;height:180px;right:-75px;top:-75px;border:1px solid color-mix(in srgb,var(--faction-color) 35%,transparent);transform:rotate(35deg)}
.faction-band{display:block;width:10px;height:100%;min-height:150px;background:var(--faction-color);box-shadow:0 0 26px color-mix(in srgb,var(--faction-color) 58%,transparent)}
.public-faction-card small{color:var(--faction-color);font-size:.64rem;font-weight:800;letter-spacing:.12em}
.public-faction-card h3{position:relative;z-index:1;margin:.55rem 0 1.3rem;font:800 clamp(2.1rem,4vw,3.4rem)/.9 var(--head);overflow-wrap:anywhere}
.public-faction-card dl{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0;border:1px solid var(--line);background:var(--line)}
.public-faction-card dl div{background:#0c1118;padding:.8rem}.public-faction-card dt{color:var(--muted);font-size:.58rem;letter-spacing:.09em;text-transform:uppercase}.public-faction-card dd{margin:.22rem 0 0;font-size:.82rem;font-weight:700;overflow-wrap:anywhere}
.public-faction-members{position:relative;z-index:2;margin-top:.75rem;border:1px solid color-mix(in srgb,var(--faction-color) 30%,#303a48);background:#0b1017}.public-faction-members summary{display:flex;justify-content:space-between;cursor:pointer;padding:.8rem;color:#dce5f0;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.public-faction-members summary span{color:var(--faction-color)}.public-faction-members>div{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-top:1px solid #293441;background:#293441}.public-faction-members section{background:#0c1118;padding:.75rem}.public-faction-members h4{margin:0 0 .4rem;color:var(--faction-color);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase}.public-faction-members p{margin:.25rem 0;color:#e7ecf3;font-size:.72rem;overflow-wrap:anywhere}
.factions-empty{grid-column:1/-1;border:1px dashed #394453;background:rgba(16,21,29,.5);color:var(--muted);padding:2rem;text-align:center}
.faction-request-section{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(2rem,6vw,6rem);align-items:start;border-top:1px solid var(--line)}
.faction-request-intro{position:sticky;top:100px}.faction-request-intro>p:last-child{color:var(--muted);line-height:1.7}
.public-faction-form,.faction-success,.faction-form-errors{border:1px solid #354252;border-left:4px solid var(--blue);background:linear-gradient(135deg,#121a27,#0c1118);padding:clamp(1.2rem,4vw,2rem)}
.public-faction-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.public-faction-form label{display:flex;flex-direction:column;gap:.45rem;color:#b9c2ce;font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.public-faction-form input,.public-faction-form select{box-sizing:border-box;width:100%;min-height:50px;border:1px solid #3b4859;border-radius:0;background:#0b1017;color:#fff;padding:.8rem;font:inherit}
.public-faction-form select option:disabled{color:#8e5961;background:#211319}
.public-faction-form label small{color:#748195;font-size:.6rem;line-height:1.5;text-transform:none;letter-spacing:0}
.public-faction-color-field{grid-column:1/-1}.public-color-control{display:grid;grid-template-columns:64px minmax(0,1fr);gap:.6rem}.public-color-control input[type=color]{padding:.3rem;cursor:pointer}.public-color-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}.public-color-control input[type=color]::-webkit-color-swatch{border:0}.public-color-control input[type=color]::-moz-color-swatch{border:0}.public-color-palette{grid-column:1/-1;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;border:1px solid #354252;padding:.85rem}.public-color-palette legend{padding:0 .45rem;color:#7f8da0;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.public-color-palette button{width:32px;height:32px;border:2px solid #0b1017;outline:1px solid #536277;background:var(--swatch);cursor:pointer;transition:transform .15s ease,outline-color .15s ease}.public-color-palette button:hover,.public-color-palette button:focus-visible{outline-color:#fff;transform:scale(1.1)}
.faction-member-confirm{grid-column:1/-1;display:grid!important;grid-template-columns:22px 1fr;align-items:start;border:1px solid #394453;background:#0b1017;padding:1rem;line-height:1.55;text-transform:none!important;letter-spacing:0!important}
.faction-member-confirm input{width:18px;min-height:18px;margin:.15rem 0 0;accent-color:#287fff}
.public-faction-form>.btn{grid-column:1/-1;justify-self:start}
.faction-honeypot{position:absolute!important;left:-9999px!important}
.faction-form-errors{grid-column:2;border-left-color:var(--danger);margin-bottom:1rem;color:#ffc1c7}.faction-form-errors strong{color:#fff}.faction-form-errors ul{margin-bottom:0}
.faction-success{border-left-color:var(--ok)}.faction-success h3{font:800 clamp(2.5rem,5vw,4rem)/.92 var(--head);text-transform:uppercase;margin:.5rem 0}.faction-success>p{color:#bfc9d5;line-height:1.6}.faction-success ol{color:#c7d0db;line-height:1.8;margin:1.5rem 0;padding-left:1.3rem}
.faction-code{display:grid;grid-template-columns:1fr auto;gap:.5rem;border:1px solid #3c4b5e;background:#080b10;padding:1rem;margin:1.5rem 0}.faction-code span{grid-column:1/-1;color:#7f8da0;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.faction-code strong{font:800 clamp(2rem,5vw,3.2rem) monospace;letter-spacing:.14em;color:#82e3ac}.faction-code button{border:1px solid #60d394;background:rgba(32,116,73,.25);color:#9ff0bf;padding:.7rem 1rem;font-weight:800;text-transform:uppercase;cursor:pointer}.faction-code button.is-copied{background:#60d394;color:#07130d}
@media(max-width:850px){.public-faction-grid,.faction-request-section{grid-template-columns:1fr}.faction-request-intro{position:static}.faction-form-errors{grid-column:auto}}
@media(max-width:600px){.faction-section-head{align-items:start;flex-direction:column}.public-faction-form{grid-template-columns:1fr}.public-faction-color-field,.public-color-palette,.faction-member-confirm,.public-faction-form>.btn{grid-column:auto}.public-faction-form>.btn{width:100%}.public-faction-card dl,.public-faction-members>div{grid-template-columns:1fr}.faction-code{grid-template-columns:1fr}.faction-code button{width:100%}}
