:root{color-scheme:dark;font-family:Segoe UI,Arial,sans-serif;color:#e4e1d7;background:#111513}*{box-sizing:border-box}body{margin:0}header{height:100px;margin:0 3vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #343a31}.brand{display:flex;gap:16px;align-items:center}.mark{border:1px solid #a6aa7c;color:#d4d6a8;font-size:30px;padding:4px 15px;font-family:Georgia}h1{font-size:23px;font-weight:600;letter-spacing:5px;margin:0 0 5px}.eyebrow{font-size:10px;letter-spacing:2px;color:#9caa89}.connection{font-size:12px;color:#adb4a8;display:flex;align-items:center;gap:8px}i{width:7px;height:7px;background:#777;border-radius:100%}i.online{background:#b8c77e;box-shadow:0 0 12px #a4b26e}main{margin:28px 3vw;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px}.game{border:1px solid #343a31;align-self:start;background:#171b16}.scene-head,.scene-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:10px;letter-spacing:1.5px;color:#c1c5b7}.scene-foot{letter-spacing:0;font-size:12px;color:#aeb5a6}.scene-foot label{white-space:nowrap}.viewport{position:relative;line-height:0}#world{width:100%;height:auto;display:block;touch-action:none;cursor:crosshair}.north{position:absolute;top:14px;left:18px;font-size:9px;line-height:1;letter-spacing:2px;background:#151914bd;padding:9px;color:#dfdfcb;pointer-events:none}.loading{position:absolute;inset:0;display:grid;place-items:center;background:#242b21;line-height:1.5;font-size:15px}.loading[hidden]{display:none}aside{padding:12px 0}h2{font:36px/1.15 Georgia,serif;color:#ecebdc;margin:15px 0}p{font-size:13px;line-height:1.7;color:#a4ad9f}form>label,legend{font-size:11px;color:#b8bfae}input:not([type=checkbox]){width:100%;padding:12px;border:1px solid #414a3b;background:#1c231b;color:#f0efdf;margin:8px 0 17px;font:inherit;font-size:14px}fieldset{border:0;padding:0;margin:0}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #d9dc9e;outline-offset:3px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 17px}.choice{background:linear-gradient(#2a3027,#1c221c);border:1px solid #3a4333;color:#bfc5b5;display:grid;place-items:center;padding:7px;font-size:12px}.choice.selected{border-color:#c0c68b;background:linear-gradient(#3b4330,#232b20)}.choice canvas{width:75px;height:120px}.primary{width:100%;padding:14px;background:#c1c796;color:#1d271a;border:0;font-size:12px;display:flex;justify-content:space-between;font-weight:600}.primary:disabled{opacity:.5;cursor:wait}.secondary{border:1px solid #57614b;color:#c5ceb5;padding:10px;background:transparent}.instructions{margin-top:25px;padding-top:20px;border-top:1px solid #343a31}h3{font-size:11px;letter-spacing:1.6px}.keys{font-family:monospace;word-spacing:7px;color:#d8d9c8;font-size:15px}.keys span{font:11px Segoe UI;color:#858e7a;word-spacing:0}.pad{display:flex;gap:7px}.pad button{background:#242d20;border:1px solid #48523d;color:#d6ddc3;width:43px;height:37px;touch-action:none;user-select:none}.note{border-left:2px solid #7b865c;margin-top:22px;padding-left:12px;font-size:9px;letter-spacing:1.5px;color:#b7c396;line-height:1.7}.note span{font-size:12px;letter-spacing:0;color:#929f8b}footer{margin:0 3vw 22px;border-top:1px solid #343a31;padding-top:16px;font-size:9px;letter-spacing:1.5px;color:#87947b;display:flex;justify-content:space-between}footer span{letter-spacing:0}@media(min-width:1700px){main{max-width:1700px;margin:28px auto}}@media(max-width:900px){main{grid-template-columns:1fr}aside{display:block;max-width:520px;width:100%;margin:auto}header{height:80px}.connection{font-size:10px}h1{font-size:18px}.scene-foot{flex-wrap:wrap}footer{gap:15px;line-height:1.6}.north{font-size:7px;padding:6px}}

.choices{grid-template-columns:repeat(2,minmax(0,1fr))}.choice canvas{max-width:100%}



.size-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid #343a31;font-size:12px;color:#bfc8af}.size-controls button{font-size:12px;padding:8px 12px}
.creating main,.creating footer{display:none}.creating .connection{visibility:hidden}.creation{max-width:1200px;margin:32px auto 50px;padding:0 24px}.creation-intro{text-align:center}.creation-intro h2{font-size:44px}.creation-intro h2 br{display:none}.creation-form{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:center;gap:60px;margin-top:26px}.portrait-picker{display:flex;align-items:center;gap:14px;justify-content:center}.portrait-picker figure{margin:0;width:min(100%,380px)}.portrait-picker img{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;border:1px solid #515a42;background:#242b21}.portrait-picker figcaption{text-align:center;font-size:12px;letter-spacing:1px;color:#c6ceae;padding:12px}.portrait-arrow{flex-shrink:0;width:42px;height:48px;border:1px solid #626e50;background:#222a1e;color:#e5e8ce;font-size:23px}.portrait-arrow:hover{background:#39442e}.creation-fields>label{display:block;font-size:12px;margin-top:24px;color:#c7cfb8}.creation-fields #name{margin-bottom:5px}.creation-fields small{display:block;text-align:right;color:#a4ad9f;font-size:11px}.creation-fields fieldset{margin-top:25px}.sex-options{display:flex;gap:12px;margin-top:12px}.sex-options label{flex:1;padding:13px;background:#232b20;border:1px solid #46523b;font-size:13px;cursor:pointer}.sex-options label:has(input:checked){border-color:#c1c796;background:#35412b}.sex-options input{accent-color:#c1c796}.creation[hidden]{display:none}#creation-status{min-height:22px;font-size:12px}@media(max-width:700px){.creation-form{grid-template-columns:1fr;gap:20px}.creation-fields{max-width:370px;width:100%;margin:auto}.creation-intro h2{font-size:32px}.portrait-picker figure{width:min(68vw,300px)}.creation{padding:0 16px}.portrait-picker{gap:10px}}

.sex-options input[type=radio]{width:auto;margin:0 8px 0 0;padding:0}.sex-options label{display:flex;align-items:center}

.size-controls{flex-wrap:wrap}.size-controls>span{margin-right:auto}

.motion-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid #343a31;font-size:12px;color:#bfc8af}.motion-controls button{font-size:12px;padding:8px 12px}.motion-controls button[aria-pressed=true]{border-color:#c1c796;background:#35412b}

.action-button{display:inline-flex;align-items:center;gap:10px;min-height:44px}.action-icon{width:24px;height:24px;flex:0 0 24px;display:block;color:#d3dba8}.action-button:disabled{opacity:.5;cursor:wait}

.modular-entry-link{display:block;margin-bottom:24px;color:#d3dbac;font-size:13px;text-decoration:none}.modular-entry-link:hover{text-decoration:underline}

.brand-bannis h1{margin:0;line-height:0}.bannis-logo{display:block;width:290px;max-width:55vw;height:auto}@media(max-width:600px){.bannis-logo{width:240px}}

.creating header{display:none}.creation-intro .brand-bannis{justify-content:center;margin:0 auto 28px}.creation-intro .bannis-logo{width:360px;max-width:85vw}

.character-intro{margin-bottom:28px}.character-intro h2{font-size:36px;margin:12px 0}.character-intro p{margin:0}.character-intro h2 br{display:none}@media(max-width:700px){.character-intro h2{font-size:32px}}

#play-hud[hidden]{display:none}
.playing{overflow:hidden}
.playing>header,.playing>footer,.playing aside,.playing .size-controls,.playing .motion-controls,.playing .scene-head,.playing .scene-foot,.playing .north{display:none}
.playing main{display:block;position:fixed;inset:64px 0 76px;margin:0;max-width:none}
.playing .game{height:100%;border:0}.playing .viewport{height:100%}.playing #world{width:100%;height:100%}
.play-topbar{position:fixed;z-index:3;inset:0 0 auto;height:64px;display:flex;align-items:center;gap:24px;padding:8px 24px;background:#151b16;border-bottom:1px solid #46523b;white-space:nowrap;overflow-x:auto}
.play-topbar .play-logo{display:block;width:158px;height:44px;object-fit:contain;flex-shrink:0}
.play-topbar #play-name{font:17px Georgia,serif;margin:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.survival-stats{display:flex;align-items:center;gap:24px;margin-left:auto}
.survival-stat{display:grid;gap:5px;min-width:110px;font-size:10px;letter-spacing:1px;color:#bdc5b3}
.survival-stat progress{display:block;appearance:none;width:clamp(110px,12vw,200px);height:7px;border:0;border-radius:4px;overflow:hidden;background:#30382b}
.survival-stat progress::-webkit-progress-bar{background:#30382b;border-radius:4px}
.survival-stat progress::-webkit-progress-value{background:var(--stat-color);border-radius:4px}
.survival-stat progress::-moz-progress-bar{background:var(--stat-color);border-radius:4px}
.energy{--stat-color:#b9c97d}.hunger{--stat-color:#c7a46a}.thirst{--stat-color:#78aebd}
#play-fullscreen{font-size:20px;padding:4px 9px;flex-shrink:0}#play-fullscreen[hidden]{display:none}
.play-bar{position:fixed;z-index:3;bottom:0;left:0;right:0;height:76px;display:flex;align-items:center;gap:20px;padding:12px 28px;border-top:1px solid #566047;background:#151b16;color:#e4e1d7;white-space:nowrap;overflow-x:auto}
#play-name{font:18px Georgia,serif;margin-right:12px}.play-bar>div{flex-shrink:0}.play-bar .secondary{background:#252e20}
.carried-items{display:flex;align-items:center;gap:16px;margin-left:auto;border-left:1px solid #46523b;padding-left:24px;font-size:13px}.carried-items>span:first-child{color:#aeb99f}
#play-equipment{padding:10px 16px;border:1px solid #46523b;min-width:130px;text-align:center}#play-action-status:empty{display:none}#play-action-status{font-size:12px;color:#e3c995}
@media(max-width:700px){.play-bar{gap:12px;padding:10px 14px}.play-topbar{gap:14px;padding:8px 14px}.play-topbar .play-logo{width:120px}.survival-stats{gap:14px}#play-name{font-size:16px;margin-right:0}.carried-items{padding-left:12px;gap:10px}}

.action-key{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid #75835e;border-radius:4px;background:#182014;color:#e2e7c7;font:600 14px Segoe UI,Arial,sans-serif;box-shadow:0 2px 0 #0c100a;flex-shrink:0}
.play-bar .pad button{width:43px;height:43px;font-size:20px}

.health{--stat-color:#c97870}
#account-fields{display:grid;gap:8px;margin:12px 0;padding:14px;border:1px solid #687553;min-width:0}
#account-fields select,#account-fields input{width:100%;box-sizing:border-box;padding:10px;background:#182014;color:#e2e7c7;border:1px solid #75835e;font:inherit}
.portrait-picker[hidden]{display:none}.creation-form.account-login{grid-template-columns:minmax(0,380px);justify-content:center;gap:0}
#new-character-fields>label{display:block;font-size:12px;margin-top:24px;color:#c7cfb8}
