@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800;900&family=Oswald:wght@400;600;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#080807;color:#e9e4dd;font-family:Barlow Condensed,Arial,sans-serif;background-image:radial-gradient(circle at 50% 0,#24140f55,transparent 35%);font-size:18px}.he-nav{height:70px;background:#090909f7;border-bottom:1px solid #7b251f;display:flex;align-items:center;padding:0 3.2vw;gap:32px;position:sticky;top:0;z-index:20;box-shadow:0 8px 24px #0008}.he-logo{font:900 25px Oswald;text-decoration:none;color:#e6dfd2;letter-spacing:-1px;white-space:nowrap}.he-logo b{color:#a92620}.he-nav nav{display:flex;gap:28px;align-items:center;flex:1;justify-content:center}.he-nav nav a{color:#c8c1b8;text-decoration:none;text-transform:uppercase;font:600 13px Oswald;letter-spacing:1px;padding:25px 0 21px;border-bottom:3px solid transparent}.he-nav nav a:hover,.he-nav nav a.active{color:#fff;border-color:#a92d25}.discord{border:1px solid #ad2d25;color:#fff;text-decoration:none;padding:10px 15px;font:700 13px Oswald;letter-spacing:1px}.disabled{opacity:.55;pointer-events:none}.hero{position:relative;background:#000}.hero img{display:block;width:100%;height:auto;max-height:650px;object-fit:cover}.heroShade{position:absolute;inset:auto 0 0;height:24%;background:linear-gradient(transparent,#080807)}.status{max-width:1540px;margin:-3px auto 0;position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .8fr 1.2fr 1fr auto;background:linear-gradient(#171716,#0d0d0c);border:1px solid #5b2a25;border-top:3px solid #922a22;box-shadow:0 8px 30px #000c;padding:16px 22px;gap:10px}.status>div{padding:2px 24px;border-right:1px solid #4b4641}.status small,.status em{display:block;color:#aaa29a;font:600 11px Oswald;letter-spacing:1.8px}.status strong{display:block;color:#eee9df;font:700 21px Oswald;margin:4px 0}.status .pending{color:#c34a3d}.status button{background:#70241f;border:1px solid #b33a30;color:#ddd;padding:0 24px;font:700 14px Oswald;letter-spacing:1px}.split{max-width:1500px;margin:auto;display:grid;grid-template-columns:42% 58%;min-height:440px}.channelArt{min-height:440px;padding:45px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(0deg,#080807dd,#08080711),radial-gradient(circle at 25% 30%,#8a3f2377,transparent 23%),linear-gradient(135deg,#30302d,#0e0f0e 60%,#251610);border-right:1px solid #5e201d;position:relative;overflow:hidden}.channelArt:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(120deg,transparent 0 30px,#fff008 31px 32px)}.channelArt .coast{font:900 clamp(48px,7vw,105px) Oswald;color:#ffffff0b;position:absolute;transform:rotate(-8deg);top:100px;left:20px}.channelArt p{position:relative;color:#c2b4a6;text-transform:uppercase;letter-spacing:2px}.intro article,.why article,.philosophy article,.hostile article{padding:50px 5vw;background:#0c0c0b}.intro label,.why label,.philosophy label,.hostile label{color:#b7332b;font:700 15px Oswald;letter-spacing:2px}.intro h1,.why h2,.philosophy h2,.hostile h2{font:800 clamp(34px,4vw,60px) Oswald;line-height:.98;margin:7px 0 22px;color:#e8e2d9}.intro p,.why p,.philosophy p,.hostile p{color:#bbb3aa;line-height:1.45;max-width:850px}.why{max-width:1500px;margin:auto;display:grid;grid-template-columns:38% 62%;border-top:1px solid #68231f;border-bottom:1px solid #68231f}.features{display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;background:#10100f}.features div{padding:45px 20px;text-align:center;border-left:1px solid #403a35;display:flex;flex-direction:column;justify-content:center}.features b{font-size:42px;color:#d7d1c9}.features strong{font:700 17px Oswald;margin:14px 0}.features span{font-size:15px;color:#aaa198}.philosophy{max-width:1500px;margin:auto;display:grid;grid-template-columns:1fr 320px;background:linear-gradient(90deg,#0b0b0a,#17100d)}.philosophy aside{margin:35px;align-self:center;border:1px solid #4e312a;padding:32px;background:#120e0b;transform:rotate(-2deg);font:700 31px Oswald;color:#b6a89b}.philosophy aside span,.philosophy aside b{display:block}.philosophy aside b{color:#a7332c}.hostile{max-width:1500px;margin:auto;display:grid;grid-template-columns:38% 62%;border-top:1px solid #68231f}.scene{min-height:450px;background:radial-gradient(circle at 70% 35%,#8c382955,transparent 22%),linear-gradient(145deg,#1a1a18,#070707);display:flex;flex-direction:column;justify-content:flex-end;padding:50px;border-right:1px solid #54201d}.scene strong{font:900 52px Oswald;color:#a9322b}.scene span{font:700 22px Oswald;color:#d7d0c7}.quote{text-align:center;min-height:390px;padding:85px 20px;background:linear-gradient(#090909aa,#090909ee),radial-gradient(circle at 50% 50%,#91332366,transparent 35%);border-top:1px solid #79251f}.quote small{color:#a99e93;letter-spacing:3px}.quote h2{font:600 italic clamp(36px,5vw,68px) Oswald;margin:20px}.quote h2 b{color:#b9342d}.quote p{letter-spacing:6px;color:#8f8780}footer{border-top:1px solid #4e211e;padding:24px 4vw;display:flex;justify-content:space-between;color:#756f69;font-size:14px}footer a{color:#a63a33;text-decoration:none}@media(max-width:950px){.he-nav nav{display:none}.he-nav{justify-content:space-between}.status{grid-template-columns:1fr 1fr;margin:0}.status button{min-height:55px}.split,.why,.philosophy,.hostile{grid-template-columns:1fr}.features{grid-template-columns:1fr 1fr}.channelArt,.scene{min-height:280px}.philosophy aside{display:none}}@media(max-width:560px){body{font-size:16px}.he-nav{height:58px}.he-logo{font-size:20px}.discord{font-size:11px;padding:8px}.status{grid-template-columns:1fr;padding:10px 16px}.status>div{border-right:0;border-bottom:1px solid #35312e;padding:10px}.features{grid-template-columns:1fr}.features div{border-left:0;border-top:1px solid #403a35;padding:28px 20px}.intro article,.why article,.philosophy article,.hostile article{padding:38px 22px}.quote{padding:60px 18px;min-height:320px}footer{display:block;text-align:center}footer a{display:block;margin-top:10px}}
/* v0.20.2 — approved concept artwork + live Hope's Edge server */
.channelArt{background-image:linear-gradient(0deg,#080807c7,#08080710),url('/hopes-edge-channel.jpg');background-size:cover;background-position:center}
.philosophy{background:linear-gradient(90deg,#0b0b0a 0 48%,#0b0b0a66 62%,#0b0b0a20),url('/hopes-edge-community.jpg') right center/54% 100% no-repeat}
.philosophy aside{background:#120e0bd9}
.scene{background-image:linear-gradient(0deg,#08080788,#08080710),url('/hopes-edge-hostile.jpg');background-size:cover;background-position:center}
.quote{background-image:linear-gradient(#09090955,#090909d9),url('/hopes-edge-coast.jpg');background-size:cover;background-position:center}
.status .online{color:#55d56b}.status .offline{color:#d84b43}.status button{cursor:pointer}.status button:hover{background:#963029;color:#fff}

/* v0.20.3 — keep artwork clean: no decorative/text overlays on images */
.channelArt{padding:0;display:block;background-image:url('/hopes-edge-channel.jpg');background-size:cover;background-position:center}
.channelArt:before,.channelArt .coast,.channelArt p{display:none!important}
.philosophy{grid-template-columns:62% 38%;background:#0b0b0a}
.philosophy .communityArt{min-height:430px;background:url('/hopes-edge-community.jpg') center/cover no-repeat;border-left:1px solid #54201d}
.philosophy aside{display:none!important}
.scene{padding:0;display:block;background-image:url('/hopes-edge-hostile.jpg');background-size:cover;background-position:center}
.scene strong,.scene span{display:none!important}
.closing{max-width:1500px;margin:auto;border-top:1px solid #79251f;background:#090909}
.quoteArt{min-height:390px;background:url('/hopes-edge-coast.jpg') center/cover no-repeat}
.quoteText{text-align:center;padding:48px 20px 55px;background:#090909;border-top:1px solid #4e211e}
.quoteText small{color:#a99e93;letter-spacing:3px}.quoteText h2{font:600 italic clamp(36px,5vw,68px) Oswald;margin:20px}.quoteText h2 b{color:#b9342d}.quoteText p{letter-spacing:6px;color:#8f8780}
@media(max-width:950px){.philosophy{grid-template-columns:1fr}.philosophy .communityArt{min-height:300px;border-left:0;border-top:1px solid #54201d}.quoteArt{min-height:300px}}
@media(max-width:560px){.channelArt,.scene,.philosophy .communityArt,.quoteArt{min-height:260px}.quoteText{padding:38px 18px 44px}}
/* v0.20.4 — editable Hope's Edge community map */
.mapSection{max-width:1500px;margin:auto;padding:52px 4vw;background:#0b0b0a;border-top:1px solid #68231f}.mapHead{display:flex;gap:20px;justify-content:space-between;align-items:end;margin-bottom:18px}.mapHead label{color:#b7332b;font:700 15px Oswald;letter-spacing:2px}.mapHead h2{font:800 clamp(34px,4vw,58px) Oswald;margin:5px 0}.mapHead p{color:#aaa198;margin:0}.mapAdmin{display:flex;gap:8px;flex-wrap:wrap}.mapAdmin button,.mapAdmin a,.mapForm button{min-height:44px;border:1px solid #84312a;background:#171312;color:#eee;padding:10px 14px;font:700 13px Oswald;text-decoration:none;cursor:pointer}.mapAdmin button.active,.mapForm .save{background:#7b2822}.mapWrap{position:relative;aspect-ratio:1/1;min-height:360px;background:radial-gradient(circle at 50% 45%,#322b25,#111 55%,#070707);border:1px solid #4e312a;overflow:hidden;touch-action:none}.mapPlaceholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#706a64;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:5% 8%}.mapPlaceholder b{display:block;font:800 clamp(26px,5vw,64px) Oswald;color:#ffffff12}.mapSvg{position:absolute;inset:0;width:100%;height:100%}.mapSvg .marker{fill:#c83d33;stroke:#f0ded8;stroke-width:.35}.mapSvg .route{fill:none;stroke:#d64a3f;stroke-width:.65;vector-effect:non-scaling-stroke}.mapSvg .area{fill:#b53b302c;stroke:#d64a3f;stroke-width:.55;vector-effect:non-scaling-stroke}.mapSvg .selected{stroke:#fff;stroke-width:1.1}.mapSvg .handle{fill:#fff;stroke:#7b2822;stroke-width:.4;cursor:move}.mapLegend{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;color:#aaa198;font-size:14px}.mapForm{margin-top:14px;padding:16px;border:1px solid #403a35;background:#111;display:grid;grid-template-columns:1fr 180px;gap:10px}.mapForm input,.mapForm select,.mapForm textarea{width:100%;background:#080808;border:1px solid #4a423d;color:#eee;padding:11px;font:16px Barlow Condensed}.mapForm textarea{grid-column:1/-1;min-height:70px}.mapForm .actions{grid-column:1/-1;display:flex;gap:8px}.mapHint{color:#a99e93;font-size:14px;margin:10px 0 0}.mapPopup{position:absolute;max-width:260px;background:#0c0b0bf2;border:1px solid #713029;padding:10px 12px;pointer-events:none;color:#ddd}.mapPopup b{font:700 16px Oswald}.mapPopup small{display:block;color:#b84a42;text-transform:uppercase}.mapPopup p{margin:5px 0 0;color:#aaa198}.mapError{color:#d7685f;margin-top:10px}@media(max-width:700px){.mapHead{display:block}.mapAdmin{margin-top:15px}.mapForm{grid-template-columns:1fr}.mapForm textarea,.mapForm .actions{grid-column:1}.mapWrap{min-height:330px;aspect-ratio:1/1}}

.mapZoom{display:flex;gap:6px;margin-left:auto}.mapZoom button{min-width:44px}.mapSvg .baseMap{pointer-events:none}.mapWrap.isPanning{cursor:grabbing}.mapWrap:not(.isPanning){cursor:grab}
