
:root{--bg:#09070e;--panel:#17111f;--panel2:#21182b;--line:#3a2944;--ink:#fbf4ff;--muted:#c3b7ce;--accent:#f478d9;--accent-light:#ffd0f1;--cool:#b5beff;--radius:18px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 "Segoe UI",system-ui,sans-serif}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent-light);outline-offset:4px}
.wrap{width:min(1170px,calc(100% - 56px));margin-inline:auto}
header{border-bottom:1px solid #342338;background:#110c17}
nav{min-height:76px;display:flex;align-items:center;gap:24px;justify-content:space-between}
.brand{display:flex;align-items:center;gap:11px}
.brand .brand-mark{width:43px;height:43px}
.brand b{font-size:16px;letter-spacing:.095em}
.brand small{display:block;color:var(--cool);font-size:9px;font-weight:700;letter-spacing:.22em}
.links{display:flex;gap:28px;color:var(--muted);font-weight:600;font-size:14px}
.links a:hover,.text-link:hover{color:var(--accent-light)}
.btn{border:1px solid transparent;border-radius:10px;padding:11px 17px;font-weight:700;color:#200d23;background:linear-gradient(112deg,#e8a3ff,#fc86d6 65%,#ff91b0);display:inline-flex;align-items:center;justify-content:center;gap:10px}
.btn:hover{background:var(--accent-light)}
.btn-subtle{color:var(--accent-light);background:#201426;border-color:#573856}
.btn-subtle:hover{background:#322139}
.btn svg,.nav-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.hero{position:relative;isolation:isolate;padding:60px 0 30px;overflow:hidden}
.hero:before{content:"";z-index:-1;position:absolute;inset:0;background:radial-gradient(ellipse at 9% 12%,#25226066,transparent 53%),radial-gradient(ellipse at 68% 14%,#6a185e65,transparent 54%),radial-gradient(ellipse at 100% 68%,#62162654,transparent 62%),linear-gradient(135deg,#1b112668,transparent 60%)}
.hero:after{content:"";z-index:-1;position:absolute;width:540px;height:540px;right:-128px;top:-190px;border:1px solid #c652b529;border-radius:50%;box-shadow:0 0 0 36px #a748a511,0 0 0 74px #a748a50c,0 0 0 112px #a748a50c}
.eyebrow{display:flex;align-items:center;gap:9px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.eyebrow:before{content:"";width:19px;height:1px;background:var(--accent)}
h1,h2,h3,p{margin:0}
h1{font-size:clamp(40px,6.2vw,78px);line-height:1.03;letter-spacing:-.058em;margin:16px 0 17px}
h1 span{color:#ff71dc}
.hero p{font-size:clamp(15px,2vw,19px);color:var(--muted);max-width:630px}
.showcase{display:grid;grid-template-columns:minmax(0,1.57fr) minmax(0,1fr);gap:18px;margin-top:34px}
.showcase>article,.feature,.dash-card,.rail{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.scene{display:flex;flex-direction:column;min-height:348px;padding:23px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 85% 8%,#40347355,transparent 65%),linear-gradient(153deg,#1d1830,#100c18)!important}
.scene:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(126deg,#d498e511 0 1px,transparent 1px 38px)}
.scene-top,.card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.meta{color:var(--cool);font-size:10px;font-weight:800;letter-spacing:.145em;text-transform:uppercase}
.pill{font-size:11px;color:#e2d4eb;background:#2c203a;border:1px solid #503a5f;border-radius:100px;padding:3px 9px;white-space:nowrap}
.discord{position:relative;padding:23px 8px 20px;flex:1;display:grid;align-content:center}
.botline{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;margin-bottom:9px}
.botline .bot-mark{width:31px;height:31px;border-radius:50%;background:#251932}
.botline small{font-weight:600;background:#4a4187;border-radius:4px;color:#eeecff;padding:0 5px;font-size:10px}
.embed{border:1px solid #44334e;border-left:3px solid var(--accent);border-radius:9px;padding:16px;background:#14101d}
.embed h3{font-size:17px;margin-bottom:5px}
.embed p{color:var(--muted);font-size:13px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.fact{padding:8px 9px;background:#21182d;border:1px solid #3b2b47;border-radius:7px;min-width:0}
.fact span{display:block;font-size:10px;color:var(--cool)}
.fact strong{font-size:12px}
.tabs{position:relative;display:flex;gap:6px;flex-wrap:wrap}
.tab{border:1px solid transparent;border-radius:8px;background:transparent;color:#cbbfd9;padding:7px 10px;font-weight:700;font-size:12px}
.tab[aria-pressed=true]{background:#3d2340;border-color:#875181;color:var(--accent-light)}
.tab:hover{border-color:#875181}
.launch{padding:20px 24px;display:flex;flex-direction:column;align-items:flex-start}
.crest{width:100%;height:218px;margin:0 0 12px;border-radius:12px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 22% 54%,#252266a1,transparent 58%),radial-gradient(ellipse at 76% 51%,#6c17396e,transparent 65%),#100b17;border:1px solid #432743}
.crest .crest-art{width:100%;height:100%;display:block;mix-blend-mode:screen}
.launch h2{font-size:26px;line-height:1.12;margin:7px 0}
.launch p{color:var(--muted);font-size:14px;margin-bottom:14px}
.launch .btn{width:100%;margin-top:auto}
section.features{padding:37px 0 62px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:20px}
.section-head h2{font-size:clamp(29px,4vw,43px);letter-spacing:-.035em;line-height:1.15;margin-top:7px}
.section-head p{color:var(--muted);max-width:320px;font-size:14px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.feature{padding:20px;display:flex;flex-direction:column;min-height:175px;align-items:flex-start}
.feature:hover{background:#21172b;border-color:#684671}
.icon{width:35px;height:35px;border-radius:9px;display:grid;place-items:center;border:1px solid #663c67;color:var(--accent-light);background:#2b1a36;margin-bottom:10px}
.icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.feature h3{font-size:17px;margin-bottom:4px}
.feature p{color:var(--muted);font-size:13px;margin-bottom:10px}
.text-link{font-size:13px;font-weight:700;color:var(--accent-light);background:transparent;border:0;padding:4px 0;margin-top:auto}
footer{border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:13px}
footer .wrap{display:flex;justify-content:space-between;gap:16px}
footer b{color:var(--ink);letter-spacing:.04em}
[hidden]{display:none!important}
#dashboard{padding:35px 0 62px}
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.dash-head h1{font-size:clamp(35px,5vw,55px);margin-bottom:5px}
.dash-head p{color:var(--muted)}
.workspace{display:grid;grid-template-columns:215px minmax(0,1fr);gap:18px}
.rail{padding:10px;align-self:start}
.rail button{width:100%;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:9px;padding:10px;text-align:left;font-weight:650}
.rail button[aria-pressed=true]{color:var(--accent-light);background:#3c2241;border-color:#754a78}
.dash-card{padding:24px;min-height:310px}
.dash-card h2{margin-bottom:4px;font-size:27px;letter-spacing:-.02em}
.dash-card>p{color:var(--muted);margin-bottom:18px}
.controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:650}
input,select{background:#130e1c;border:1px solid #493758;border-radius:8px;color:var(--ink);padding:9px;min-width:0}
label.check{display:flex;gap:9px;align-items:center}
input[type=checkbox]{accent-color:var(--accent)}
.wide{grid-column:1/-1}
.tools{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}
.notice{margin-top:14px;color:var(--cool);font-size:13px}
dialog{max-width:min(430px,calc(100% - 30px));background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:23px}
dialog::backdrop{background:#08030ddc}
dialog p{margin:8px 0 14px;color:var(--muted)}
@media(max-width:810px){.links{display:none}.showcase{grid-template-columns:1.15fr 1fr}.wrap{width:calc(100% - 36px)}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding-top:45px}.section-head{align-items:flex-start;flex-direction:column;gap:9px}}
@media(max-width:590px){nav{min-height:64px;gap:9px}.brand{gap:4px}.brand .brand-mark{width:33px;height:33px}.brand b{font-size:12px;letter-spacing:.06em}.brand small{font-size:8px}.btn{padding:9px 10px;font-size:12px}.wrap{width:calc(100% - 28px)}.showcase,.workspace,.grid{grid-template-columns:1fr}.hero{padding-top:34px}.hero h1{font-size:clamp(32px,8.5vw,46px)}.showcase{margin-top:24px}.scene{min-height:305px;padding:15px}.discord{padding-inline:0}.launch{padding:15px}.crest{height:190px}.feature{min-height:auto}.dash-head{align-items:flex-start;flex-direction:column}.rail{display:grid;grid-template-columns:1fr 1fr}.dash-card{padding:15px}.facts{gap:5px}.fact{padding:5px}.fact strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Accent colours follow the original crest across the home page and workspace. */
:root{--area:#f478d9}
[data-area=room]{--area:#8ea8ff}
[data-area=music]{--area:#b994ff}
[data-area=messages]{--area:#ff88d4}
[data-area=stats]{--area:#8ac8ff}
[data-area=roles]{--area:#ff8ca8}
[data-area=admin]{--area:#d69aff}
header{border-bottom:0;position:relative}
header:after{content:"";display:block;height:2px;background:linear-gradient(90deg,#546aff,#995cec 31%,#f251c4 66%,#ef3e63)}
body{background:radial-gradient(ellipse at 8% 94%,#211a3a9c,transparent 47%),radial-gradient(ellipse at 100% 87%,#36112488,transparent 47%),var(--bg)}
.scene .embed{border-left-color:var(--area)}
.scene .tab[aria-pressed=true]{color:var(--area);border-color:color-mix(in srgb,var(--area) 52%,var(--line));background:color-mix(in srgb,var(--area) 17%,var(--panel))}
.fact span,.feature .text-link{color:var(--area)}
.feature{border-top:2px solid var(--area);background:linear-gradient(145deg,color-mix(in srgb,var(--area) 15%,var(--panel)),var(--panel) 74%)}
.feature:hover,.feature:focus-within{border-color:var(--area);background:linear-gradient(145deg,color-mix(in srgb,var(--area) 21%,var(--panel)),var(--panel) 75%)}
.feature .icon{color:var(--area);background:color-mix(in srgb,var(--area) 21%,var(--panel));border-color:color-mix(in srgb,var(--area) 46%,var(--line))}
.feature .text-link:hover{text-decoration:underline}
.crest{position:relative;padding:0;color:inherit;height:340px;flex-shrink:0}
.crest:hover{border-color:var(--accent)}
.crest .crest-art{width:min(100%,320px);height:100%;mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent)}
.crest-link{position:absolute;bottom:9px;right:9px;color:var(--accent-light);background:#140b1de8;border:1px solid #6d396b;border-radius:6px;font-size:11px;padding:3px 7px}
#crest-dialog{text-align:center;max-width:min(550px,calc(100% - 28px));padding:16px}
#crest-dialog img{display:block;width:auto;max-width:100%;max-height:72vh;margin:8px auto 12px;object-fit:contain;border-radius:10px}
#dashboard .eyebrow,#dashboard .dash-card h2,#dashboard .notice{color:var(--area)}
#dashboard .eyebrow:before{background:var(--area)}
.dash-card{border-top:2px solid var(--area);background:linear-gradient(150deg,color-mix(in srgb,var(--area) 13%,var(--panel)),var(--panel) 55%)}
.rail button[aria-pressed=true]{color:var(--area);background:color-mix(in srgb,var(--area) 17%,var(--panel));border-color:color-mix(in srgb,var(--area) 45%,var(--line))}
.dash-card input,.dash-card select{border-color:color-mix(in srgb,var(--area) 31%,var(--line))}
.dash-card input:focus-visible,.dash-card select:focus-visible{outline-color:var(--area)}
.dash-card input[type=checkbox],.dash-card input[type=range]{accent-color:var(--area)}
.dash-card .btn{background:linear-gradient(112deg,color-mix(in srgb,var(--area) 72%,white),var(--area))}
.dash-card .btn:hover{background:color-mix(in srgb,var(--area) 70%,white)}
@media(max-width:590px){.crest{height:270px}.crest .crest-art{width:min(100%,250px)}}

.symbol-library{position:absolute;width:0;height:0;overflow:hidden}
#dashboard .workspace{grid-template-columns:215px minmax(0,1fr)}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
select,input,textarea{background:#120d1a;border:1px solid #493758;border-radius:8px;color:var(--ink);padding:9px;min-width:0}
textarea{min-height:105px;resize:vertical}
#guild{width:min(100%,285px)}
.nav-status{display:flex;align-items:center;gap:10px}
#session-note{margin:12px 0;color:var(--accent-light)}
.button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 18px}
.action-button{padding:9px 11px;text-align:left;background:#1c1425;border:1px solid #443451;border-radius:8px;color:var(--ink);font-weight:650}
.action-button[aria-pressed=true]{border-color:var(--area);color:var(--area);background:color-mix(in srgb,var(--area) 15%,var(--panel))}
#action-form{border-top:1px solid var(--line);padding-top:17px}
#action-form h3{margin-bottom:6px}
.description{color:var(--muted);margin:0 0 14px}
#result{margin-top:17px;color:var(--ink);overflow-wrap:anywhere}
#result:empty{display:none}
#result p{margin-bottom:8px}
#result dl{display:grid;grid-template-columns:minmax(85px,1fr) minmax(0,3fr);gap:3px 11px;margin:8px 0;padding:11px;background:#120d1a;border:1px solid var(--line);border-radius:8px}
#result dt{color:var(--cool);font-weight:650}
#result dd{margin:0}
#result li{margin-bottom:7px}
#result a{color:var(--accent-light);text-decoration:underline}
.status{color:var(--area);margin:10px 0;min-height:1.55em}
.status[data-error=true]{color:#ff9fb3}
.readonly-value{padding:9px 10px;color:var(--ink);background:#120d1a;border:1px solid var(--line);border-radius:8px}
#confirm-dialog h2{margin-bottom:8px}
#confirm-details{white-space:pre-line;overflow-wrap:anywhere}
#confirm-dialog .tools{justify-content:flex-end}
button:disabled{opacity:.58;cursor:default}
@media(max-width:590px){#dashboard .workspace{grid-template-columns:1fr}.button-grid,.controls{grid-template-columns:1fr}.nav-status{gap:5px}}

.dash-server{display:grid;gap:.6rem;align-items:end}.dash-server button{justify-self:end}

.action-group{display:grid;gap:6px;margin-bottom:12px}.action-group h3{margin:2px 0;color:var(--area);font-size:.76rem;letter-spacing:.04em}
