/* Amethyst, ink and moonlight: a single control and type language. */
:root{--violet:#d79cff;--gold:#d1a0ff;--ink:#f1eaf8;--muted:#d0c7de;--quiet:#b5a7c9;--rune:#dab0ff;--action-ink:#fbf3ff;--action-edge:#ba83f1;--action-shadow:#7442c247}
body{color:var(--ink)}
h2:not(#codex-title),.section-heading h2,.recruit-intro h2{font-family:RootCinzel,var(--serif);font-weight:500;letter-spacing:-.045em;line-height:1.22}
h2 em,h1 em,.hero h1 em{color:#d9a6ff;text-shadow:0 0 36px #ac51ed25}
.roots-intro h2{font-size:clamp(34px,3.2vw,46px)}
.principles h3,.guild-philosophy h3,.adventure-guide h3,.planner h3,.recruit-bottom h3,.codex-heading h3{font-family:RootCinzel,var(--serif);font-weight:500;letter-spacing:-.025em}
.principles h3{font-size:23px;line-height:1.45;color:#e5ccf8}
.eyebrow,.faction,.activity-meta{color:#d1a0ec;letter-spacing:.12em}
.roots-intro>p:not(.eyebrow),.principles p,.guild-philosophy p,.hall-copy>p{color:#cfc7da;line-height:1.9}
.button,.hero .enchanted-button,.button:not(.secondary){position:relative;isolation:isolate;background:radial-gradient(ellipse at 15% 0%,#a15fea40,transparent 65%),linear-gradient(130deg,#51277a,#281642);border:1px solid var(--action-edge);border-radius:22px 5px 22px 5px;color:var(--action-ink);font:600 13px/1.45 RootCinzel,var(--serif);letter-spacing:.025em;min-height:54px;padding:15px 24px;gap:17px;box-shadow:inset 0 1px 0 #f4d6ff45,inset 0 -3px 0 #0a051f50,0 6px 22px #02041260,0 0 24px var(--action-shadow);transition:border-color .2s,box-shadow .2s,transform .2s,background .2s;text-wrap:balance}
.button::before{content:'';position:absolute;inset:4px;border:1px solid #dfbdff25;border-radius:17px 3px 17px 3px;pointer-events:none;z-index:-1}
.button:hover,.hero .enchanted-button:hover,.button:not(.secondary):hover{color:#fff;background:radial-gradient(ellipse at 15% 0%,#c486f64a,transparent 65%),linear-gradient(130deg,#6b3498,#3a205d);border-color:#e6bcff;box-shadow:inset 0 1px 0 #ffe9ff70,inset 0 -3px 0 #10052270,0 7px 28px #8c3aba40;transform:translateY(-2px)}
.button:active{transform:translateY(0);box-shadow:inset 0 2px 8px #09041980}
.button.secondary{color:#e9d8f9;background:linear-gradient(125deg,#1d2435,#271d39);border-color:#8c6db2;box-shadow:inset 0 1px 0 #ddc0ff13,0 5px 18px #05061145}
.button.secondary:hover{background:linear-gradient(125deg,#30334b,#3b2656);border-color:#c391ed}
.button.small,.site-header nav .button{font-size:12px;min-height:48px;padding:12px 19px;gap:11px}
.text-link{color:#d4adf4;font:600 13px/1.6 RootCinzel,var(--serif);letter-spacing:.01em;gap:13px}
.text-link:hover{color:#f0d5ff;text-decoration-color:#b683db}
.icon-button{display:grid;place-items:center;border:1px solid #aa75cc45;border-radius:11px 3px;background:#2b193839;min-width:42px;min-height:42px;padding:5px;transition:border-color .2s,background .2s}
.icon-button:hover{border-color:#c18de3;background:#48305755}
.principles article{gap:23px;align-items:flex-start}
.principles .line-icon{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;padding:0;rotate:-7deg;border-color:#bb7beb80;background:radial-gradient(ellipse at 35% 20%,#6d36914d,#24153688 65%);box-shadow:inset 0 0 12px #b85dee13,0 0 20px #9552cc10}
.principles .line-icon>.talisman-icon{display:block;width:40px;height:40px;object-fit:contain;rotate:7deg;margin:0;filter:drop-shadow(0 2px 7px #d991ff30)}
.codex-tabs button,.codex-role-row [role=group]>button,.guide-filters button,.recruit-filters button{font-weight:500;color:#cab6dd;border-color:#76508e66}
.codex-tabs button[aria-pressed=true],.codex-role-row [role=group]>button[aria-pressed=true],.guide-filters button[aria-pressed=true]{color:#eed4ff;border-color:#bc80ed;background:linear-gradient(130deg,#61318866,#32204b99);box-shadow:inset 0 1px 0 #dfadff26}
.codex-card h4,.class-heading h3{color:#dbb8f4}.codex-open,.class-guide-link,.source-byline{color:#c6aadf}.codex-card{border-color:#9c68b947}.codex-chapter h3{color:#ddb8f5}.codex-family button[aria-current=page]{background:#6c38894a;color:#edd4fb;border-color:#bc87df}
@media(max-width:680px){.roots-intro h2,h2:not(#codex-title){font-size:clamp(29px,8.3vw,36px);letter-spacing:-.04em}.principles h3{font-size:21px}.principles article{gap:16px}.principles .line-icon{flex-basis:44px;width:44px;height:44px}.principles .line-icon>.talisman-icon{width:35px;height:35px}.button,.hero .enchanted-button,.button:not(.secondary){font-size:12px;padding:14px 20px;gap:13px;min-height:51px}.text-link{font-size:12px}.button.small,.site-header nav .button{font-size:12px;padding:12px 17px}.preview-actions .button{font-size:11px}.trail-top h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.button:hover,.hero .enchanted-button:hover,.button:not(.secondary):hover{transform:none}}
body[data-motion=still] .button:hover{transform:none}
/* A jeweled, intentionally non-networked chat gem. */
.adventures::before{display:none}.chat-gem{position:absolute;z-index:3;left:50%;top:0;translate:-50% -50%;width:68px;height:68px;display:grid;place-items:center;padding:10px;border-radius:50%;isolation:isolate}.gem-setting{display:grid;place-items:center;width:48px;height:48px;rotate:45deg;border:1px solid #b2b9e5;border-radius:9px 3px;background:linear-gradient(135deg,#29364c,#0c1121 45%,#8793b4 49%,#27344d 53%,#131927);box-shadow:0 0 0 4px #101525,0 0 0 5px #75688b77,0 6px 22px #0008;transition:box-shadow .25s,border-color .25s}.gem-stone{width:34px;height:34px;display:block;clip-path:polygon(22% 0,78% 0,100% 22%,100% 78%,78% 100%,22% 100%,0 78%,0 22%);background:conic-gradient(from 45deg,#254a91 0 12%,#77c6f5 12% 25%,#254d9b 25% 37%,#122c64 37% 50%,#519fdb 50% 62%,#b2eaff 62% 75%,#3871b7 75% 87%,#244585 87%);position:relative;filter:drop-shadow(0 0 8px #448eef70);transition:filter .25s}.gem-stone::before{content:'';position:absolute;inset:8px;background:linear-gradient(135deg,#b4e9ff,#3d86d6 35%,#184a8e 70%,#68c9fa);border:1px solid #bcdeff70}.gem-stone::after{content:'';position:absolute;left:7px;top:4px;width:3px;height:13px;background:#e4f4ffb3;rotate:40deg;box-shadow:0 0 6px #edf6ff}.chat-gem:hover .gem-setting,.chat-gem:focus-visible .gem-setting{box-shadow:0 0 0 4px #101525,0 0 0 5px #c0a4e2aa,0 0 30px #589cff66;border-color:#d9dfff}.chat-gem[aria-pressed=true] .gem-setting{border-color:#e5bcff;box-shadow:0 0 0 4px #101525,0 0 0 5px #d197f399,0 0 30px #b357f399,0 0 65px #9e35e440}.chat-gem[aria-pressed=true] .gem-stone{filter:hue-rotate(48deg) saturate(1.65) brightness(1.15) drop-shadow(0 0 8px #cb84ff)}.chat-gem-message{position:absolute;top:47px;left:50%;translate:-50% 0;max-width:calc(100% - 30px);text-align:center;color:#e6bbff;font:500 12px/1.6 RootCinzel,var(--serif);letter-spacing:.06em;padding:8px 18px;border:1px solid #ac68d359;border-radius:4px;background:#20132a;box-shadow:0 0 25px #a44bdc20;opacity:0;transition:opacity .55s;pointer-events:none;z-index:2}.chat-gem-message.is-visible{opacity:1}.chat-gem-message:empty{display:none}@media(prefers-reduced-motion:reduce){.chat-gem-message,.gem-setting,.gem-stone{transition:none}}
.season-orbit>.talisman-icon{width:43px;height:43px}.raid-state{align-items:center;gap:16px}.raid-state>.raid-talisman{width:35px;height:35px;filter:drop-shadow(0 0 9px #b56aed33)}
.ready-section::before{display:none}.hall>.chat-gem{top:0}.hall{border-top:1px solid #9e74b137}.guild-philosophy h3 em{color:#d9a6ff;font-style:normal}
[data-about-guides]{font-size:11px;color:#d0a8ec;text-decoration:underline;text-underline-offset:4px;min-height:36px;padding:5px 0}.codex-scope [data-about-guides],.lookup-method [data-about-guides]{margin-left:14px}.codex-provenance{display:block;font-size:12px;color:#d3b0eb}
#archive-about-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 40px);padding:0;overflow-y:auto;background:#191728;border:1px solid #a675c4;border-radius:28px 4px}#archive-about-dialog .dialog-top{position:sticky;top:0;background:#1b1728f7;z-index:3;padding:16px 25px;border-bottom:1px solid #9665b447}#archive-about-dialog .dialog-top>span{font-size:10px;color:#d0addf}.archive-about-body{padding:28px 32px 35px}.archive-about-body h2{font-size:30px!important;margin-bottom:28px;color:#e4c5f5}.archive-about-body h3{font-size:23px;color:#d6b3eb;margin:27px 0 14px}.archive-about-body p{font-size:14px;line-height:1.9}.archive-about-body p+p{margin-top:14px}
/* Consistent quiet depth and an equally visible keyboard state across cards. */
.class-card,.codex-card,.road-card,.raid-card{transition:border-color .22s,box-shadow .22s,transform .22s;background-color:#1b172c;box-shadow:inset 0 1px 0 #d5acfa0b,0 10px 28px #03061030}
.class-card:hover,.class-card:focus-within,.codex-card:hover,.codex-card:focus-within,.road-card:hover,.road-card:focus-within{border-color:#b57fe0;box-shadow:inset 0 1px 0 #edc5ff25,0 13px 35px #03061070,0 0 30px #7844a21c;transform:translateY(-3px)}
.recruit-filters,.recruit-toolbar>[role=group]{display:flex;gap:8px;flex-wrap:wrap}.recruit-filters button,.recruit-toolbar [data-recruit-filter]{min-height:44px;border:1px solid #8a5ea95c;border-radius:14px 3px;background:linear-gradient(130deg,#241b34,#192431);padding:10px 17px;color:#cdb4df;font:500 12px RootCinzel,var(--serif)}.recruit-toolbar [data-recruit-filter][aria-pressed=true]{background:linear-gradient(135deg,#6a378763,#322142);border-color:#c490ed;color:#f0d6ff;box-shadow:inset 0 1px 0 #e8bdff30,0 0 19px #a55fd91c}.class-card li button{border-radius:4px;transition:background .2s,color .2s}.class-card li button:hover,.class-card li button:focus-visible{background:#a967d719;color:#f2d7ff}.class-card{translate:none!important}
@media(max-width:680px){.archive-about-body{padding:24px 22px 30px}.archive-about-body h2{font-size:27px!important}.codex-scope [data-about-guides],.lookup-method [data-about-guides]{display:block;margin-left:0}.recruit-toolbar [data-recruit-filter]{font-size:11px;padding:10px 13px}}
@media(prefers-reduced-motion:reduce){.class-card:hover,.class-card:focus-within,.codex-card:hover,.codex-card:focus-within,.road-card:hover,.road-card:focus-within{transform:none}}
body[data-motion=still] .class-card,body[data-motion=still] .codex-card,body[data-motion=still] .road-card{transform:none}
/* Light catches edges; it never competes with the words. */
h2,h3,.codex-card h4,.road-card h5{ text-shadow:0 2px 2px #03051090,0 0 24px #ae6ce51a}.eyebrow{color:#d5a5f2;text-shadow:0 0 18px #a855d824}.talisman-icon{filter:drop-shadow(0 2px 4px #03020b90) drop-shadow(0 0 8px #bb73e833)}.class-sigil{background:radial-gradient(#7a46994f,transparent 70%);filter:drop-shadow(0 0 14px #ac5add22)}.portal-ring{box-shadow:inset 0 0 16px #b584e714,0 0 24px #ac6be919}.forest-portal:hover .portal-ring,.forest-portal:focus-visible .portal-ring{box-shadow:inset 0 0 18px #c39af03c,0 0 32px #c28cf052}.class-card,.codex-card,.road-card{border-color:#b27ed75e}.raid-card{border-color:#ba83df50;box-shadow:inset 0 1px 0 #e0adf722,0 14px 38px #02061345}.raid-card h3,.class-heading h3,.codex-card h4{color:#e0b5ff}.guide-list details{border-color:#956cba5e}.guide-list summary:hover h3,.guide-list summary:focus-visible h3{color:#dfb7ff}.checklist label:has(input:checked){color:#dbbaff}.checklist input{accent-color:#bb7ee8}.image-caption,.archive-caption{color:#e2ccf4;text-shadow:0 2px 7px #06030a}.site-header{box-shadow:0 1px 0 #c297e51c,0 10px 30px #07051035}.brand>span{color:#e5cdf7}.moon-symbol{filter:drop-shadow(0 0 9px #b8a0ea55)}
body:not([data-page=home]) main{padding-top:115px}body:not([data-page=home]) main>.section:first-child{padding-top:65px}.roots-intro h1,.hall-copy h1{font:500 clamp(35px,3.8vw,50px)/1.2 RootCinzel,var(--serif);letter-spacing:-.04em;margin:0 0 27px}.guide-vista-copy h1{font:500 clamp(40px,4.2vw,57px)/1.15 RootCinzel,var(--serif);letter-spacing:-.04em;margin:17px 0 23px}.guide-vista-copy h1 em,.roots-intro h1 em,.hall-copy h1 em{color:#dda9ff;font-style:normal}.site-header nav a[aria-current=page]{color:#edccff;text-shadow:0 0 19px #bf79f24a;border-bottom:1px solid #c18be178}.site-header nav a{white-space:nowrap}.hall:first-child{border-top:0}.hall:first-child>.chat-gem{top:15px}.ready-section .chat-gem-message{top:47px}
@media(max-width:680px){body:not([data-page=home]) main{padding-top:86px}body:not([data-page=home]) main>.section:first-child{padding-top:43px}.roots-intro h1,.hall-copy h1{font-size:33px}.guide-vista-copy h1{font-size:33px}.hall:first-child>.chat-gem{top:8px}.site-header nav a[aria-current=page]{border-bottom:0}}
/* Original class scenes remain visible below the ink, rather than decorative thumbnails. */
.class-card,.codex-card[data-character-class]{isolation:isolate;position:relative;overflow:hidden;background:#151729}
.class-card::before,.codex-card[data-character-class]::before{content:'';position:absolute;inset:0;background-image:linear-gradient(90deg,#121526f0 0%,#1716298f 42%,#12152624 100%),linear-gradient(0deg,#101623ec 0%,#1416236b 42%,#15152500 100%),var(--class-art);background-size:cover;background-position:50% 20%;z-index:-1;transition:filter .3s,transform .35s;filter:saturate(1.12) brightness(.95)}
.class-card:hover::before,.class-card:focus-within::before,.codex-card[data-character-class]:hover::before,.codex-card[data-character-class]:focus-within::before{filter:saturate(1.25) brightness(1.16);transform:scale(1.025)}
.class-card.warrior,[data-character-class=warrior]{--class-art:url('assets/class-art/warrior.webp')}.class-card.paladin,[data-character-class=paladin]{--class-art:url('assets/class-art/paladin.webp')}.class-card.hunter,[data-character-class=hunter]{--class-art:url('assets/class-art/hunter.webp')}.class-card.rogue,[data-character-class=rogue]{--class-art:url('assets/class-art/rogue.webp')}.class-card.priest,[data-character-class=priest]{--class-art:url('assets/class-art/priest.webp')}.class-card.shaman,[data-character-class=shaman]{--class-art:url('assets/class-art/shaman.webp')}.class-card.mage,[data-character-class=mage]{--class-art:url('assets/class-art/mage.webp')}.class-card.warlock,[data-character-class=warlock]{--class-art:url('assets/class-art/warlock.webp')}.class-card.druid,[data-character-class=druid]{--class-art:url('assets/class-art/druid.webp')}
.class-card .class-heading{padding-top:27px;padding-bottom:25px}.class-card ul{background:#11142160;margin:0 12px 13px;padding:0 9px 0;border-radius:5px;backdrop-filter:blur(3px)}.class-card .class-heading h3{color:#e8c9ff;text-shadow:0 2px 5px #000,0 0 18px #ac59e836}.class-guide-link{color:#dcb8f5;text-shadow:0 1px 3px #02020b}.codex-card[data-character-class] .codex-summary{color:#dfd3e9;text-shadow:0 1px 3px #02020d}.codex-card[data-character-class] h4{text-shadow:0 2px 4px #02020b}.codex-card[data-character-class] .codex-role-pills span{background:#141927b8;color:#bed9d5}.codex-card[data-character-class] .codex-card-foot{padding-top:26px}
@media(prefers-reduced-motion:reduce){.class-card::before,.codex-card[data-character-class]::before{transition:none}.class-card:hover::before,.class-card:focus-within::before,.codex-card[data-character-class]:hover::before,.codex-card[data-character-class]:focus-within::before{transform:none}}
body[data-motion=still] .class-card::before,body[data-motion=still] .codex-card[data-character-class]::before{transform:none}
#page-motion-toggle{font-size:11px;color:#c5a8d9;border:1px solid #7e5d9c66;padding:9px 14px;min-height:40px;border-radius:4px;grid-column:1/-1;justify-self:start}#page-motion-toggle[aria-pressed=true]{color:#e5c7fa;background:#6c3b8d3b}

/* A quiet continuous score, with controls always in reach. */
.music-bar{position:fixed;left:24px;bottom:24px;z-index:25;display:flex;align-items:center;gap:11px;padding:7px 13px 7px 7px;border:1px solid #af80cf66;border-radius:28px 8px 28px 8px;background:#151323e8;box-shadow:0 6px 30px #03050c70;backdrop-filter:blur(14px);max-width:calc(100vw - 32px)}.music-bar>button{width:40px;height:40px;border-radius:50%;border:1px solid #b888db77;background:#643d8555;color:#e8d1fa;font:22px/1 RootSans,sans-serif}.music-bar[data-playing=true]>button{box-shadow:0 0 17px #aa61dd40}.music-bar select{color:#d5c1e4;background:#181526;border:0;padding:7px 2px;font:11px RootSans,sans-serif;width:89px;min-height:40px}.music-bar input{width:76px;accent-color:#bb87e6;height:28px;margin:0}.music-volume-icon{font-size:16px;color:#ae93c4}.music-bar button:focus-visible,.music-bar select:focus-visible,.music-bar input:focus-visible{outline:2px solid #e9c4ff;outline-offset:3px}footer{padding-bottom:115px!important}html[data-navigating=true]{cursor:progress}#page-root{min-height:100vh}@media(max-width:680px){.music-bar{left:12px;bottom:12px;gap:9px;padding-right:12px;max-width:calc(100vw - 24px)}.music-bar>button{width:38px;height:38px}.music-bar select{width:85px}.music-bar input{width:70px}.trail-toggle{bottom:81px!important}.wonder-message{bottom:82px!important}footer{padding-bottom:155px!important}}
