:root{color-scheme:dark;font:16px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;background:#111824;color:#f5f0e9}*{box-sizing:border-box}body{margin:0}header{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #344252;flex-wrap:wrap}.tag,.small{color:#aebbc9;font-size:.85rem}.tag{margin-left:10px}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;max-width:1500px;margin:auto}#world{align-self:start;position:relative;min-width:0;background:#10151b;min-height:520px}#canvas{height: min(72vw,740px);min-height:520px;position:relative}#canvas canvas{display:block;width:100%;height:100%}.loading{padding:28px;color:#e5c79b}.hud{position:absolute;top:14px;left:16px;display:flex;gap:10px;flex-wrap:wrap}.hud span{background:#172231dc;padding:6px 10px;border-radius:8px;font-size:.8rem}.controls{z-index:2;position:absolute;bottom:18px;left:18px;display:grid;grid-template-columns:repeat(3,49px);gap:4px}.controls button:nth-child(1){grid-column:1;grid-row:2}.controls button:nth-child(2){grid-column:2;grid-row:1}.controls button:nth-child(3){grid-column:2;grid-row:2}.controls button:nth-child(4){grid-column:3;grid-row:2}aside{padding:20px;max-height:none;background:#18212e}h1{font-size:1.5rem;margin:0}h2{font-size:1rem;margin:0 0 8px}.panel{border:1px solid #344252;border-radius:12px;padding:14px;margin-top:16px}.panel p{margin:6px 0 12px}.panel ol{padding-left:20px;color:#bcc9d4;font-size:.85rem}label{display:block;font-size:.85rem;margin-top:12px;margin-bottom:5px;color:#ded4c9}input,select,button,.button{font:inherit;border:1px solid #64748b;background:#263547;color:#fff;border-radius:7px;padding:10px 12px;min-height:44px}input,select{width:100%}button,.button{cursor:pointer}button:hover:not(:disabled),.button:not(.disabled):hover{background:#40516a}.primary{background:#9e633a;border-color:#bc8d58;width:100%;margin-top:12px}.primary:hover{background:#b47848!important}.button{display:block;text-align:center;text-decoration:none;margin-top:10px}.disabled{opacity:.65;cursor:default}.buttonrow{display:flex;gap:6px;flex-wrap:wrap}.buttonrow button{flex:1}#toast{position:fixed;bottom:14px;right:14px;background:#a4743d;color:#fff;padding:10px 14px;border-radius:8px;max-width:360px;display:none;z-index:10}#connection{color:#e2bc82}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffdf8e;outline-offset:2px}[hidden]{display:none!important}@media(max-width:850px){main{grid-template-columns:1fr}#world{min-height:350px}#canvas{height:60vw;min-height:350px}aside{padding:18px}.controls{bottom:10px;left:10px}}@media(max-width:480px){header{padding:10px}.tag{display:block;margin:3px 0 0}#canvas{height:390px}.hud{right:6px;left:6px}}

/* Use installed licensed fonts until webfont files are supplied. */
@font-face{font-family:"Saol Display";src:local("Saol Display Light");font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:"Canela";src:local("Canela Light");font-style:normal;font-weight:300;font-display:swap}
:root{font-family:"Canela","Baskerville","Palatino Linotype",serif;font-weight:300;line-height:1.6}
.gathering-intro{text-align:center;padding:80px 24px 54px;background:radial-gradient(ellipse at 50% 0%,#293548 0%,#111824 70%)}
.eyebrow{margin:0 0 22px;color:#d9bd91;font-size:.8rem;letter-spacing:.25em;text-transform:uppercase}
#gathering-title{font-family:"Bodoni Moda","Didot","Bodoni MT",serif;font-size:clamp(3rem,7.5vw,7rem);font-weight:400;line-height:1.12;letter-spacing:-.035em;margin:0;text-wrap:balance}
.gathering-motto,.welcome h2{font-family:"Saol Display","Baskerville","Times New Roman",serif;font-weight:300;text-transform:uppercase}
.gathering-motto{font-size:clamp(.85rem,1.7vw,1.15rem);letter-spacing:.19em;margin:28px 0 14px;color:#e1c59d}
.gathering-description{font-size:clamp(1.1rem,2vw,1.4rem);color:#d9d6d0;margin:0}
.welcome{max-width:780px;margin:0 auto;padding:40px 28px 64px;text-align:center;font-size:1.16rem;color:#d9d6d0}
.welcome h2{font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:.13em;line-height:1.35;color:#f5f0e9;margin:0 0 24px;text-wrap:balance}
.welcome p{margin:0 0 19px}.welcome .welcome-lead{font-size:1.35rem;color:#f5f0e9}.welcome .welcome-closing{margin:28px 0 0;color:#e1c59d}.welcome-closing strong{font-weight:400}
.aside-title{font-size:1.5rem}header strong{font-weight:400;letter-spacing:.08em}
@media(max-width:480px){.gathering-intro{padding:54px 20px 30px}.gathering-motto{letter-spacing:.1em}.welcome{padding:32px 22px 44px;font-size:1.05rem}.welcome .welcome-lead{font-size:1.2rem}}

.world-column{min-width:0}.world-column .welcome{padding-top:48px}
