@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--ink:#09121c;--ink2:#101d2b;--panel:#142337;--line:#334355;--text:#f5f1e9;--muted:#afbfcb;--red:#e2534c;--red2:#992b35;--gold:#e7b57e;--cyan:#8ecbd8;--green:#9cd3aa;--radius:16px;--shadow:0 28px 90px #02070d80}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.6 Inter,system-ui,sans-serif;color:var(--text);background:var(--ink);min-height:100vh}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;height:auto}h1,h2,h3,h4,.eyebrow,.nav-link,.btn,.stat-number{font-family:'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.03em}h1{font-size:clamp(3.8rem,9vw,8rem);line-height:.86;letter-spacing:-.02em;margin:18px 0 28px;text-transform:uppercase}h2{font-size:clamp(2rem,4vw,3rem);line-height:1.06;margin:0 0 16px;text-transform:uppercase}h3{font-size:1.5rem;margin:0 0 14px}p{margin:0 0 14px}.muted{color:var(--muted)}.eyebrow{font-size:1rem;letter-spacing:.22em;font-weight:800;text-transform:uppercase;color:var(--gold)}.wrap{max-width:1220px;margin:auto;padding:0 24px}.topbar{position:sticky;top:0;z-index:50;background:#09111bf2;border-bottom:1px solid #34425496;backdrop-filter:blur(18px)}.bar-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:80px}.brand{display:flex;gap:10px;align-items:center;color:white;flex-shrink:0}.brand img{width:46px;height:46px}.brand strong{font:800 1.6rem 'Barlow Condensed';letter-spacing:.05em}.nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.nav-link{display:inline-flex;padding:10px 13px;color:var(--muted);text-transform:uppercase;font-size:1.05rem;font-weight:800}.nav-link:hover,.nav-link.active{color:#fff;text-decoration:none}.nav-link.active{box-shadow:inset 0 -2px var(--red)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ffffff38;color:white;padding:11px 20px;border-radius:7px;background:#172335;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:1.15rem;line-height:1.15;min-height:43px}.btn:hover{background:#23354c;text-decoration:none}.btn-primary{background:linear-gradient(135deg,#a42e36,#e1574b);border-color:#ee7562;box-shadow:0 6px 22px #992b353d}.btn-primary:hover{background:#ce4749}.btn-ghost{background:transparent}.btn-small{padding:7px 13px;min-height:32px;font-size:1rem}
.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse 65% 40% at 78% 83%,#de754153,transparent 73%),radial-gradient(ellipse 40% 50% at 19% 40%,#54678478,transparent 75%),linear-gradient(160deg,#101b30 10%,#0c1522 65%,#261c24 100%);border-bottom:1px solid var(--line);isolation:isolate}.hero:before,.hero:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1}.hero:before{background-image:radial-gradient(1px 1px at 15% 19%,#fff 99%,transparent),radial-gradient(1px 1px at 63% 16%,#fff 99%,transparent),radial-gradient(2px 2px at 88% 24%,#fff 99%,transparent),radial-gradient(1px 1px at 33% 62%,#fff 99%,transparent),radial-gradient(1px 1px at 84% 52%,#fff 99%,transparent),radial-gradient(2px 2px at 7% 74%,#fff 99%,transparent);background-size:240px 240px,310px 310px,460px 460px,530px 530px,680px 680px,380px 380px;opacity:.58}.hero:after{inset:auto -8% -57% -8%;height:85%;border-radius:50% 50% 0 0;background:linear-gradient(175deg,#6b666c 0%,#242e3e 23%,#0a1522 72%);box-shadow:0 -20px 80px #ef8b5559;transform:rotate(-6deg)}.hero-inner{min-height:650px;display:flex;align-items:center;gap:60px;padding-block:115px 145px}.hero-content{width:min(100%,750px);position:relative;z-index:2}.hero-lead{font-size:1.17rem;line-height:1.8;color:#dce2e5;max-width:620px}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:27px}.hero-seal{width:230px;height:230px;opacity:.16;flex-shrink:0;filter:drop-shadow(0 0 90px #ec584e)}.hero-kicker{color:#d1a57c;font-family:'Barlow Condensed';font-weight:800;letter-spacing:.4em;font-size:1.15rem}
.section{padding:74px 0}.section-dark{background:linear-gradient(170deg,#101c2b,#0b1520)}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.feature,.card,.metric,.notice{border:1px solid var(--line);background:linear-gradient(155deg,#1b2c40,#101b29);border-radius:var(--radius);padding:23px;box-shadow:0 12px 40px #02071223}.feature-icon{font-size:2.1rem;display:block;margin-bottom:16px}.feature p{color:var(--muted)}.feature h3{margin-bottom:9px}.pagehead{padding:58px 0 26px;border-bottom:1px solid #27374b;background:linear-gradient(110deg,#172339,#0c1725)}.pagehead h1{font-size:clamp(2.6rem,5vw,4.4rem);margin:8px 0 11px}.content{padding:38px 0 90px}.cols{display:grid;grid-template-columns:1.25fr .75fr;gap:24px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stack{display:grid;gap:18px}.card h3{color:#fff}.card-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.card-head h3{margin:0}.badge{display:inline-flex;border:1px solid #4d6577;color:#dbe5ed;border-radius:50px;padding:2px 11px;font:700 .87rem Inter,sans-serif;white-space:nowrap}.badge-gold{border-color:#a68555;color:#f6c996}.badge-red{border-color:#98454c;color:#ffb7ac}.badge-green{border-color:#47795d;color:#a0ddb2}.metric{padding:20px}.stat-number{font-size:2.45rem;font-weight:800;line-height:1.1;color:var(--gold)}.form{display:grid;gap:16px}.form label{display:grid;gap:7px;font-weight:600;color:#dee5ed}.form input,.form select,.form textarea,.form-inline select{display:block;width:100%;padding:11px 13px;border:1px solid #435269;border-radius:7px;background:#091623;color:#fff;outline-offset:3px;min-height:44px}.form textarea{min-height:100px;resize:vertical}.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--cyan);outline:2px solid #8ecbd830}.hint{color:var(--muted);font-size:.85rem}.auth-wrap{max-width:520px;margin:auto}.auth-wrap .card{padding:38px}.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.form-row>*{flex:1}.alert{border:1px solid #9c5555;background:#54252977;color:#ffe0d4;padding:13px 17px;border-radius:10px;margin-bottom:20px}.alert-success{background:#25533f77;color:#c5f4d7;border-color:#618a71}.alert-info{background:#23445b77;color:#d3eff7;border-color:#547990}.alert-zone{padding-top:20px}.alert-zone .alert{margin-bottom:0}.site-footer{border-top:1px solid var(--line);padding:32px 0;background:#080f18;color:#9aaebe;font-size:.86rem}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-inner strong{color:#e8edee}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:12px 9px;border-bottom:1px solid #334355}th{color:#b8d3e1;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}td{vertical-align:top}tr:last-child td{border-bottom:0}.mission{padding:22px}.mission h3{margin-bottom:8px}.mission-meta{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 15px}.mission-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.split{display:flex;justify-content:space-between;gap:15px;align-items:center}.inline-form{display:inline-block}.inline-form button{vertical-align:middle}.mini{font-size:.88rem;color:var(--muted)}.empty{padding:32px 10px;text-align:center;color:var(--muted)}.status{font-weight:700}.status.pending{color:var(--gold)}.status.approved,.status.open{color:var(--green)}.status.rejected,.status.cancelled{color:#ed9f9b}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.tabs a{padding:10px 15px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-weight:700}.tabs a[aria-current=page]{background:#7c2932;color:white;border-color:#ad4350}.rule{padding:14px 0;border-bottom:1px solid var(--line)}.rule:last-child{border:none}.rule strong{display:block;color:#f2e9df}.campaign-points{display:grid;gap:15px;margin-top:24px}.campaign-points .card{border-left:3px solid var(--red)}.small-title{color:var(--gold);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800}.skip-link{position:absolute;left:-999px;top:0;padding:10px;background:white;color:black;z-index:100}.skip-link:focus{left:12px}.nowrap{white-space:nowrap}.gm-grid{margin:24px 0}.gm-missions{margin-top:20px}.form-inline{display:flex;align-items:center;gap:8px}.form-inline select{min-width:120px}
@media(max-width:1020px){.features{grid-template-columns:repeat(2,1fr)}.hero-seal{display:none}.bar-inner{align-items:flex-start;padding-block:15px;flex-direction:column;gap:7px}.nav{gap:1px}.nav-link{font-size:.96rem;padding:7px 9px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.wrap{padding-inline:16px}.features,.cols,.grid2,.grid3{grid-template-columns:1fr}.hero-inner{padding-block:90px 110px;min-height:580px}.hero:after{inset:auto -30% -50%}.bar-inner{min-height:auto}.brand strong{font-size:1.4rem}.nav{max-width:100%;gap:0}.nav-link{font-size:.88rem}.nav .btn{min-height:36px;padding:8px 10px;font-size:.9rem}.section{padding:55px 0}.pagehead{padding:38px 0 23px}.content{padding:28px 0 70px}.card,.feature{padding:19px}.auth-wrap .card{padding:22px}.hero-lead{font-size:1.06rem}.mission-actions{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero-wordmark{margin-bottom:34px}.hero-wordmark img{display:block;width:min(100%,550px);height:auto}.hero-kicker{margin-bottom:10px}
/* Character importer and sheet refinements */
.confirm-row{display:flex!important;align-items:flex-start;gap:12px;line-height:1.45}
.form .confirm-row input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:0 0 20px;margin-top:3px;accent-color:var(--red)}
.character-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px;margin:18px 0 26px}
.stat-chip{background:#0a1523;border:1px solid var(--line);border-radius:9px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.stat-chip span{color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}
.stat-chip strong{font:800 1.35rem 'Barlow Condensed',sans-serif;color:var(--gold)}
.gm-missions{margin-top:22px}.alert-zone{padding-top:14px}.form-inline{display:flex;align-items:center;gap:6px}.form-inline select{background:#0b1828;color:#fff;border:1px solid var(--line);padding:8px;border-radius:7px;max-width:160px}
.hero-wordmark img{width:min(650px,100%);max-height:145px;object-fit:contain;object-position:left}
@media(max-width:700px){.form-inline{flex-wrap:wrap}.nav{row-gap:4px}.character-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.edit-dossier{border:1px solid var(--line);border-radius:10px;padding:15px 18px;margin:22px 0;background:#0b1726}
.edit-dossier summary{font-weight:700;cursor:pointer;color:var(--cyan)}
.edit-dossier[open] summary{margin-bottom:18px}
/* Public portal: accessible, low-JS, safely scoped. */
.portal-links a{color:var(--text);text-decoration:none}.portal-links a:hover{border-color:var(--gold);transform:translateY(-2px)}.portal-links p{color:var(--muted)}
.calendar-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.calendar-nav h2{margin:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekday{font-weight:800;text-align:center;padding:8px;color:var(--gold)}.calendar-cell{border:1px solid var(--line);border-radius:6px;min-height:110px;padding:9px;background:#0e1d2c;min-width:0}.calendar-number{font-weight:800}.calendar-cell.empty-day{background:#0a1420;opacity:.4}.calendar-event{display:grid;background:#572e39;border-left:3px solid var(--red);padding:6px;border-radius:3px;margin:5px 0;font-size:.8rem;overflow-wrap:anywhere}.calendar-event span{color:#e9d5c8}.public-search{display:flex;flex-wrap:wrap;align-items:end;gap:14px}.public-search label{flex:1;min-width:160px;display:grid;gap:6px}.public-search input,.public-search select{display:block;width:100%;padding:11px;background:#091623;color:#fff;border:1px solid #435269;border-radius:6px}.public-search button{margin-bottom:1px}
.sector-map{min-height:490px;position:relative;overflow:hidden;border:1px solid #40516a;border-radius:10px;background:radial-gradient(circle at 20% 25%,#557f8e6b,transparent 30%),radial-gradient(circle at 80% 80%,#9b434465,transparent 28%),repeating-radial-gradient(circle at 50% 50%,transparent 0 59px,#5e7d9233 60px 61px),#071421}.sector-map:before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 10% 20%,#ffffff 98%,transparent),radial-gradient(1px 1px at 55% 67%,#ffffff 98%,transparent);background-size:79px 91px,113px 103px;opacity:.45;pointer-events:none}.sector-pin{position:absolute;display:flex;align-items:center;gap:4px;color:#ffe0b5;transform:translate(-50%,-50%);background:#172c40c9;border:1px solid #6d9bab;border-radius:14px;padding:5px 8px;max-width:33%;font-size:.82rem;z-index:1}.sector-pin:hover,.sector-pin:focus-visible{background:#7b303c;color:#fff}.sector-pin .pin-label{white-space:normal;line-height:1.2}.map-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;min-width:60%;color:var(--muted)}.profile-publishing{margin:22px 0}.checkrow{display:flex;align-items:center;gap:8px;font-weight:700}.checkrow input{width:auto}.form-inline{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.form-inline select{padding:7px;background:var(--ink);color:white;border:1px solid var(--line)}.portal-links .card{transition:transform .15s ease}
@media(max-width:750px){.calendar-cell{min-height:65px;padding:5px}.calendar-event{font-size:.66rem;padding:3px}.calendar-weekday{font-size:.78rem;padding:5px 0}.calendar-nav h2{font-size:1.5rem}.sector-map{min-height:390px}.sector-pin{max-width:45%;font-size:.7rem;padding:4px}}

/* v0.3.1: visitor-facing navigation is immediately below the hero, never below long feature blocks. */
.public-access{padding:10px 0;background:#0e1c2b;border-block:1px solid #405067}
.public-access-inner{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.public-access a{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:72px;padding:9px 10px;border-radius:8px;color:#f8eee5;border:1px solid transparent;text-decoration:none}
.public-access a strong{font:800 1.24rem 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.045em;text-transform:uppercase}
.public-access a span{font-size:.75rem;color:#b7c9d5}
.public-access a:hover,.public-access a:focus-visible{background:#22374c;border-color:#6f8ca1;text-decoration:none}
.nav .auth-login{white-space:nowrap}
@media(max-width:1050px){.public-access-inner{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.public-access-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.public-access a{min-height:65px}.topbar .nav{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;padding:2px 0 8px;scrollbar-width:thin;scrollbar-color:#647b8f #101d2b}.topbar .nav > *{flex:0 0 auto}.topbar .bar-inner{overflow:hidden}.topbar .nav-link{white-space:nowrap}.topbar .nav .btn{white-space:nowrap}}
