@import url('/fonts.css');
:root{color-scheme:dark;font:15px/1.6 system-ui,-apple-system,sans-serif;color:#dce9ef;background:#08131f;--gold:#d6b56c;--muted:#8babbc;--line:#254052}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 70% 0,#13334d55,transparent 60%)}[hidden]{display:none!important}button,input{font:inherit}button{border:1px solid #466074;border-radius:5px;background:#162e40;color:#dce9ef;padding:11px 19px;cursor:pointer}button:hover:enabled{border-color:var(--gold);background:#203d51}button:disabled{opacity:.42;cursor:not-allowed}.gold{background:var(--gold);color:#152331;border-color:var(--gold);font-weight:650}.gold:hover:enabled{background:#efcf88}.quiet{padding:7px 12px;background:transparent;border-color:transparent;color:#aec5d3}input{display:block;width:100%;background:#0a1a28;border:1px solid #36566b;padding:12px;color:inherit;border-radius:4px;margin:7px 0 18px}label{font-size:.86rem;color:#a9bfcd}a{color:inherit;text-decoration:none}h1,h2,.brand,.sigil{font-family:Georgia,'Times New Roman',serif}h1{font-weight:400;letter-spacing:-.03em;line-height:1.07;margin:18px 0}h2{font-size:1.65rem;font-weight:400;margin:6px 0 14px}.eyebrow{font-size:.68rem;letter-spacing:.22em;color:var(--gold);font-weight:650}.muted{color:var(--muted)}small{font-size:.75rem}header{height:82px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #294456;padding:0 max(24px,calc((100vw - 1240px)/2));background:#081622c9}.brand{display:flex;gap:12px;align-items:center;letter-spacing:.13em;font-size:1.1rem}.brand>span{color:var(--gold);font-size:2rem}.brand small{font:10px system-ui;letter-spacing:.2em;border-left:1px solid #405666;padding-left:15px;color:#8babbc}header>div{display:flex;align-items:center;gap:10px}#freshness{font-size:.7rem;color:#839eae}.shell{max-width:1240px;margin:auto;padding:26px 24px}.hero{min-height:365px;position:relative;overflow:hidden;display:flex;align-items:center;border-bottom:1px solid #284d64;background:linear-gradient(90deg,#0c2031,transparent)}.hero-copy{z-index:1;position:relative;max-width:60%;padding:30px 24px}.hero h1{font-size:clamp(3rem,6vw,5.4rem);color:#f0e4c9}.hero-bottom{display:flex;gap:20px;align-items:center;margin-top:28px;flex-wrap:wrap}.state{color:#8dd2bc;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;border:1px solid #3c7264;padding:5px 12px;border-radius:2px}.state.offline{color:#d8b47c;border-color:#8c7351}.hero code{font-size:.8rem;color:#95b3c6}.tree{position:absolute;right:-10px;top:-8px;width:64%;height:110%;object-fit:cover;opacity:.9}.runes{position:absolute;right:35px;bottom:28px;color:#bb9e67;letter-spacing:.6em;font-size:1.05rem}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.metrics article{display:flex;gap:20px;padding:22px 26px;border:1px solid var(--line);background:#0d2030}.icon{font-size:2rem;color:var(--gold);align-self:center;opacity:.75}.metrics p{margin:0;color:var(--muted);letter-spacing:.12em;font-size:.62rem}.metrics strong{display:block;font-size:1.7rem;font-weight:500;letter-spacing:-.03em}.metrics small{color:#66899e}.columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.panel{padding:28px;background:linear-gradient(145deg,#102738,#0c1d2b);border:1px solid var(--line);border-radius:6px}.panel .muted{font-size:.86rem}.buttons{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}#control-message,#update-message{font-size:.82rem;color:#d2bc87;min-height:24px}.divider{height:1px;background:var(--line);margin:26px 0}dl{margin:16px 0}dl>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #24405255;font-size:.82rem}dt{color:#8babbc}dd{margin:0;text-align:right}.builds{display:flex;justify-content:space-between;gap:20px;align-items:center;background:#091a28;padding:19px;border:1px solid #294356;margin:23px 0}.builds span{font-size:.68rem;color:var(--muted)}.builds strong{display:block;font-size:1.05rem;font-weight:500}.builds .arrow{color:var(--gold);font-size:1.5rem}.steps{list-style:none;counter-reset:step;padding:0;margin:28px 0}.steps li{counter-increment:step;color:#9bb6c8;font-size:.79rem;margin:13px 0;display:flex;gap:13px;align-items:center}.steps li:before{content:counter(step);display:grid;place-items:center;width:23px;height:23px;border:1px solid #52707e;border-radius:50%;color:var(--gold);font-size:.65rem}.job{border-top:1px solid var(--line);padding-top:22px}.job strong{display:block;margin:8px 0;text-transform:capitalize}.journal{margin-top:22px}.journal-heading{display:flex;justify-content:space-between;align-items:center}pre{white-space:pre-wrap;overflow:auto;max-height:360px;padding:20px;background:#06131e;color:#91b2c5;font:12px/1.8 ui-monospace,monospace;border:1px solid #294052}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 2px;color:#587c93;font-size:.66rem;letter-spacing:.08em}footer b{color:var(--gold);padding:0 10px}.login{max-width:400px;margin:7vh auto;padding:32px;text-align:center}.login h1{font-size:3rem}.login form{text-align:left;margin:32px 0}.login button{width:100%}.login>small{color:#698799;letter-spacing:.12em}.sigil{font-size:5rem;color:var(--gold);text-shadow:0 0 40px #ceb97155}dialog{background:#102738;color:inherit;border:1px solid #927c51;border-radius:8px;max-width:490px;padding:32px}dialog::backdrop{background:#020a13c9}#notice{position:fixed;bottom:25px;right:25px;max-width:450px;padding:16px 22px;background:#142f43;border:1px solid var(--gold);z-index:10}#login-error{color:#efa597}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media(max-width:760px){header{padding:0 18px;height:68px}.brand small,#freshness{display:none}.brand{font-size:.85rem}.shell{padding:12px}.hero{min-height:340px}.hero-copy{max-width:90%;padding:20px}.hero h1{font-size:3.7rem}.tree{width:100%;opacity:.4;right:-90px}.runes{font-size:.75rem;right:20px}.metrics{gap:8px}.metrics article{padding:15px 10px}.icon{display:none}.metrics strong{font-size:1.2rem}.metrics small{font-size:.6rem}.columns{grid-template-columns:1fr}.panel{padding:22px}.buttons button{flex:1}.journal-heading{align-items:flex-start;gap:12px}footer{flex-direction:column;gap:4px}.hero-bottom{gap:10px}.login{margin-top:4vh}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Worldkeeper artwork: scenery frames the readable operational panels. */
body{background:#081622 url('/valheim-worldkeeper-background.png') center top / cover fixed no-repeat}
header{background:rgba(8,22,34,.95)}
.hero{background:linear-gradient(90deg,rgba(8,22,34,.98),rgba(11,29,43,.91));border:1px solid #294456;border-radius:6px}
.hero-copy{max-width:58%}
.tree{right:18px;top:0;width:43%;height:100%;object-fit:contain;opacity:1;mask-image:radial-gradient(ellipse at center,#000 58%,transparent 75%)}
.runes{display:none}
.metrics article{background:rgba(11,29,43,.95)}
.panel{background:linear-gradient(145deg,rgba(16,39,56,.97),rgba(8,22,34,.97))}
footer{color:#a0b8c8;text-shadow:0 1px 4px #081622}
.login{background:rgba(8,22,34,.96);border:1px solid #294456;border-radius:8px}
@media(max-width:760px){body{background-attachment:scroll}.hero-copy{max-width:90%}.tree{width:75%;right:-45px;opacity:.25}.hero code{overflow-wrap:anywhere}header{background:#081622}}
