@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&display=swap');
/* Soulveil: charcoal surfaces and the user-selected blue accent. */
.soulHome{background:var(--dark)}.soulHome .nav{position:relative;max-width:1220px;margin:auto;padding:20px 28px;background:var(--dark);border-bottom:0}.soulHome .navRight{gap:25px}.soulHome .navRight a{font-size:13px}.soulHome .navRight a.playLink{font-weight:700;padding:10px 22px}.soulHome .brand img{width:145px;height:36px}.homeWrap{max-width:1220px;padding:0 28px;margin:auto}.skipLink{position:fixed;top:-100px;left:20px;z-index:100;padding:12px;background:var(--accent);color:var(--dark)}.skipLink:focus{top:12px}
.overline{font-size:10px;letter-spacing:.17em;font-weight:600;line-height:1.5;color:var(--mute);margin:0 0 10px}.gameHero{position:relative;min-height:490px;display:flex;align-items:center;isolation:isolate;overflow:hidden;border-radius:7px 7px 40px 7px;border:1px solid #283345;background:var(--surface)}.heroPainting{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:center 50%}.heroShade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(11,11,14,.97),rgba(11,11,14,.82) 25%,rgba(11,11,14,.17) 66%,rgba(11,11,14,.04)),linear-gradient(0deg,rgba(11,11,14,.65),transparent 35%)}.heroContent{padding:45px 50px;position:relative;width:64%}.heroContent>.overline{display:flex;align-items:center;gap:9px;font-size:9px;color:var(--paper)}.statusDot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.heroContent h1{margin:36px 0 24px;line-height:1}.heroContent h1 img{width:100%;max-width:470px;height:auto;display:block}.heroTag{font-size:17px;line-height:1.6;color:var(--paper);margin:0 0 29px}.heroActions{display:flex;align-items:center;gap:24px}.enterButton{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--accent);color:var(--dark);padding:13px 20px;font-size:12px;font-weight:700;text-decoration:none;border:1px solid var(--accent);border-radius:3px;box-shadow:0 4px 22px rgba(53,114,238,.2)}.enterButton:hover{background:var(--paper);border-color:var(--paper)}.heroGuide{color:var(--paper);text-decoration:none;font-size:11px;display:flex;gap:14px;align-items:center}.heroGuide:hover{color:var(--accent)}
.sectionHeading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.sectionHeading h2,.guideHeading h2{font-family:'Barlow Condensed',Impact,'Arial Narrow',sans-serif;font-size:42px;font-weight:700;line-height:1;letter-spacing:-.01em;margin:0}.sectionHeading h2>span,.guideHeading h2>span{color:var(--accent)}.underLink{display:inline-flex;gap:22px;align-items:center;color:var(--paper);text-decoration:none;font-size:11px;padding-bottom:5px;border-bottom:1px solid #3572ee}.underLink:hover{color:var(--accent)}.raceSection{padding:36px 0 40px}.raceCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.raceCard{position:relative;display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--paper);background:var(--surface);border:1px solid #283345;border-bottom:3px solid #3572ee;border-radius:5px;padding:20px 15px;min-height:140px;overflow:hidden;transition:transform .18s,border-color .18s,background .18s}.raceIllustration{position:relative;display:grid;place-items:center;width:64px;height:85px;flex:none;isolation:isolate;color:#F0EDF2}.raceIllustration svg{width:64px;height:75px;z-index:1;transform:rotate(-10deg)}.raceHalo{position:absolute;inset:14px 0;background:#3572ee;opacity:.5;filter:blur(15px);z-index:-1;border-radius:50%}.race1 .raceIllustration svg{transform:rotate(7deg)}.race2 .raceIllustration svg{transform:rotate(-5deg)}.race3 .raceIllustration svg{transform:rotate(13deg)}.raceText h3{font-family:'Barlow Condensed',Impact,sans-serif;font-size:27px;line-height:1;margin:0 0 7px;font-weight:600}.raceText p{font-size:9px;line-height:1.5;color:var(--mute);margin:0}.raceArrow{position:absolute;right:11px;top:8px;font-size:13px;color:var(--accent)}.raceCard:hover{transform:translateY(-4px);border-color:var(--accent);background:var(--depth)}
.gameGuide{display:grid;grid-template-columns:1fr 2.6fr;gap:40px;border-top:1px solid var(--line);padding:35px 0 45px;scroll-margin-top:25px}.guideHeading{padding-top:6px}.guideHeading h2{font-size:43px;line-height:.98;margin-bottom:15px}.guideHeading>p:not(.overline){font-size:12px;color:var(--mute);max-width:215px;line-height:1.8;margin:0 0 17px}.guideGroups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.guideGroup h3{font-size:12px;font-weight:600;line-height:1.5;padding:7px 0 13px;margin:0;border-bottom:2px solid #3572ee}.guideGroup>a{display:flex;align-items:center;justify-content:space-between;color:var(--paper);padding:16px 0;text-decoration:none;border-bottom:1px solid var(--line);font-size:13px;gap:8px}.guideGroup>a>span:last-child{font-size:11px;color:var(--accent)}.guideGroup>a:hover{color:var(--accent);background:var(--surface)}
.worldBanner{position:relative;min-height:260px;background:linear-gradient(90deg,rgba(11,11,14,.94),rgba(11,11,14,.5) 40%,rgba(11,11,14,.06)),url('assets/soulveil-blue.png') center 70% / cover;border:1px solid #283345;border-radius:5px;overflow:hidden}.worldBannerCopy{padding:30px 36px}.worldBanner .overline{font-size:9px;color:var(--paper)}.worldBanner h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:43px;line-height:.98;letter-spacing:-.01em;margin:0 0 22px}.worldBanner .enterButton{font-size:10px;padding:10px 15px;background:var(--depth);border-color:#3572ee;color:var(--paper);box-shadow:none}.worldBanner .enterButton:hover{background:var(--accent);color:var(--dark)}
.communitySection{padding:38px 0 45px}.communitySection .sectionHeading h2{font-size:36px}.communityCards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.communityCard{display:block;padding:24px;text-decoration:none;color:var(--paper);background:var(--surface);border:1px solid var(--line);border-radius:5px;position:relative;overflow:hidden}.communityCard:after{content:'';position:absolute;top:-20px;right:-20px;width:75px;height:75px;border:1px solid #304C7C;transform:rotate(45deg);opacity:.7}.communityCard .overline{font-size:8px;color:var(--accent);margin-bottom:17px}.communityCard h3{font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;font-weight:600;line-height:1.05;margin:0 0 12px}.communityCard>p{font-size:12px;color:var(--mute);line-height:1.8;margin:0 0 22px}.cardCta{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--paper)}.cardCta>span{color:var(--accent)}.communityCard:hover{border-color:#3572ee;background:var(--depth)}.soulFooter{max-width:1164px;margin:0 auto;padding:24px 0 30px;border-top:1px solid var(--line);display:flex;align-items:center;gap:25px;flex-wrap:wrap}.soulFooter img{display:block;object-fit:contain}.soulFooter>div{display:flex;gap:22px;margin-left:auto}.soulFooter>div a{color:var(--mute);font-size:11px;text-decoration:none}.soulFooter a:hover{color:var(--accent)}.soulFooter small{font-size:9px;color:var(--mute);width:100%}
@media(max-width:1100px){.raceCard{gap:5px;padding:15px 10px}.raceIllustration{width:48px}.raceIllustration svg{width:52px}.raceText h3{font-size:24px}.soulFooter{margin:0 28px}.heroContent{width:70%}.gameGuide{gap:24px}.guideGroups{gap:18px}}
@media(max-width:800px){.soulHome .navRight{gap:20px}.soulHome .navRight a{font-size:12px}.heroContent{width:80%;padding:35px}.gameHero{min-height:420px}.heroContent h1 img{max-width:370px}.raceCards{grid-template-columns:repeat(2,minmax(0,1fr))}.raceCard{padding:17px;gap:13px;min-height:120px}.raceIllustration{width:58px;height:70px}.raceText h3{font-size:28px}.gameGuide{grid-template-columns:1fr}.guideHeading h2 br{display:none}.guideHeading>p:not(.overline){max-width:none}.guideGroups{gap:24px}.communityCard{padding:20px}.communityCard h3{font-size:26px}.communityCard p{font-size:11px}.communityCard p br{display:none}}
@media(max-width:560px){.homeWrap{padding:0 16px}.soulHome .nav{padding:15px 18px;gap:12px}.soulHome .navRight{gap:20px;padding-bottom:6px}.soulHome .navRight a{font-size:11px}.gameHero{min-height:470px;border-radius:5px 5px 24px 5px;align-items:flex-end}.heroPainting{object-position:65% 50%}.heroShade{background:linear-gradient(0deg,rgba(11,11,14,.97),rgba(11,11,14,.7) 45%,rgba(11,11,14,.05) 90%)}.heroContent{width:100%;padding:27px 24px}.heroContent>.overline{font-size:8px}.heroContent h1{margin:20px 0 18px}.heroContent h1 img{width:85%;max-width:320px}.heroTag{font-size:15px;margin-bottom:24px}.heroActions{gap:18px;flex-wrap:wrap}.enterButton{padding:12px 15px;font-size:11px;gap:20px}.heroGuide{font-size:10px}.raceSection{padding:28px 0}.sectionHeading{gap:12px;margin-bottom:18px}.sectionHeading h2{font-size:33px}.sectionHeading .underLink{font-size:9px;gap:10px;white-space:nowrap}.sectionHeading .overline{font-size:8px}.raceCards{gap:9px}.raceCard{padding:17px 10px;gap:6px;min-height:117px}.raceIllustration{width:44px;flex-basis:44px}.raceIllustration svg{width:48px}.raceText h3{font-size:24px}.raceText p{font-size:8px}.guideHeading h2{font-size:38px}.gameGuide{padding:28px 0;gap:20px}.guideGroups{grid-template-columns:1fr;gap:16px}.guideGroup h3{padding:10px 12px;border:0;background:var(--depth);border-left:3px solid var(--accent)}.guideGroup>a{padding:13px 12px}.worldBanner{min-height:240px;background-position:center,65% 65%}.worldBannerCopy{padding:26px 24px}.worldBanner h2{font-size:36px}.communityCards{grid-template-columns:1fr}.communityCard{padding:22px}.communityCard h3{font-size:30px}.communityCard p br{display:none}.communitySection{padding:29px 0}.soulFooter{margin:0 16px;gap:20px}.soulFooter>div{gap:16px;margin:0}.soulFooter>div a{font-size:10px}.soulFooter small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.raceCard{transition:none}}
/* Keep supporting labels readable alongside the stronger headings. */
.raceText p{font-size:11px}.guideHeading>p:not(.overline){font-size:13px}.communityCard>p{font-size:13px}.heroGuide,.underLink{font-size:12px}
@media(max-width:560px){.raceText p{font-size:10px}.heroGuide{font-size:11px}.sectionHeading .underLink{font-size:10px}}

/* Frame the supplied square artwork alongside the hero copy. */
.heroPainting{left:auto;right:0;width:74%;object-position:center 34%}.enterButton,.soulHome .navRight a.playLink{color:#FFFFFF}.enterButton:hover{color:var(--dark)}.worldBanner{background-position:center,center 36%}.worldBanner .enterButton:hover{color:#FFFFFF}.raceHalo{opacity:.3}
@media(max-width:560px){.heroPainting{width:100%;object-position:center 30%}.worldBanner{background-position:center,center 42%}}

/* Supplied emblems, a soft image edge, and layered play controls. */
.raceEmblem{display:block;width:62px;height:72px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}.raceHalo{opacity:.15}
.heroPainting{-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 20%,#000 48%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 20%,#000 48%)}
.soulHome .navRight a.playLink,.enterButton{position:relative;background:linear-gradient(135deg,#253D69 0%,#19253C 50%,#111823 100%);border:1px solid #3572ee;border-top-color:#6A96ED;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 4px 16px rgba(53,114,238,.14);color:#F0EDF2;transition:background .18s,box-shadow .18s,border-color .18s}
.soulHome .navRight a.playLink:hover,.enterButton:hover{background:linear-gradient(135deg,#31538E,#1B2D4E 65%,#141E30);color:#FFFFFF;border-color:#86ACF5;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 4px 22px rgba(53,114,238,.25);filter:none;transform:none}
.soulHome .navRight a.playLink:active,.enterButton:active{box-shadow:inset 0 2px 5px rgba(0,0,0,.5);opacity:1}
@media(max-width:1100px){.raceEmblem{width:48px;height:64px}}
@media(max-width:800px){.raceEmblem{width:56px;height:67px}}
@media(max-width:560px){.raceEmblem{width:42px;height:58px}.heroPainting{-webkit-mask-image:linear-gradient(0deg,transparent 0%,rgba(0,0,0,.6) 35%,#000 70%);mask-image:linear-gradient(0deg,transparent 0%,rgba(0,0,0,.6) 35%,#000 70%)}}
