@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--ink:#294a3f;--paper:#fffcf0;--muted:#63745f;--line:#d3ddc7;--gold:#b89a5c;--shadow:0 8px 24px #244b3712}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:15px 'DM Sans',sans-serif;color:var(--ink);background:#e8efdd}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.52}button:hover:not(:disabled){filter:brightness(.97)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a0b779;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#world{position:absolute;inset:0}#world canvas{display:block;touch-action:none}.playing #world canvas{cursor:crosshair}.vignette{position:absolute;inset:0;background:linear-gradient(90deg,#f1f5e5ee,transparent 48%);pointer-events:none}.playing .vignette{display:none}
header{position:absolute;top:28px;left:32px;right:28px;display:flex;justify-content:space-between;align-items:center;z-index:10;pointer-events:none}header a,header button{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font:600 26px Georgia,serif;letter-spacing:2px}.brand-sun{border:1px solid #a8b79a;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:32px;color:var(--gold)}.brand small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:3px;margin-top:6px}nav{display:flex;gap:8px}nav button{border:1px solid #e0e7d5;background:#fffdf0e8;border-radius:8px;min-width:38px;height:38px;padding:0 12px;font-size:14px}#audio{font-size:20px;padding:0;width:38px}#audio.active{background:#315746;color:#fff9d9}nav kbd{font-size:11px;margin-left:5px}#menu span{margin-left:8px;color:#91a184}
.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:700;color:#768269}h1,h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-1.4px}h1{font-size:49px;line-height:1.08;margin:19px 0 22px}h2{font-size:36px;margin:12px 0 18px}p{line-height:1.6}#welcome{position:absolute;left:4.4%;top:22%;width:365px}#welcome p{color:#627661;line-height:1.7;font-size:16px;margin-bottom:27px}#welcome label{font-size:13px;display:block;margin-bottom:8px}#name{height:43px;width:100%;border:1px solid #c5d3b7;border-radius:6px;background:#fffdf0b3;padding:0 12px;font-size:16px}.primary,.secondary{width:100%;border-radius:7px;min-height:46px;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:15px;margin-top:10px}.primary{background:#2e5545;color:#fff9e5}.primary span{font-size:18px}.secondary{background:#fffdf0a6;border:1px solid #c5d2b8}#welcome>small{font-size:12px;color:#6e7e66;display:block;margin-top:15px;line-height:1.6}#world-label{position:absolute;bottom:35px;left:4.4%;font-size:11px;letter-spacing:2px;color:#63795d}#world-label span{color:#b9a068;margin-left:10px}.playing #world-label{display:none}
#loading{position:absolute;inset:0;background:#eff4e4;z-index:80;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .6s}#loading>span{font-size:50px;color:#b69a59}#loading p{font-size:14px}
#hud{position:absolute;inset:0;pointer-events:none}.playing header{top:23px}.playing .brand{font-size:20px}.playing .brand-sun{width:34px;height:34px;font-size:26px}.playing .brand small{font-size:8px}
#event-card{position:absolute;top:20px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:#fffdf0ed;border:1px solid #ffffed;border-radius:9px;padding:10px 14px 12px;min-width:335px;max-width:420px;overflow:hidden;box-shadow:var(--shadow)}#event-symbol{font-size:25px}#event-name{font-size:16px;display:block}#event-caption{font-size:12px;color:#597057;display:block;margin-top:3px}.event-clock{border-left:1px solid var(--line);padding-left:12px;margin-left:auto;text-align:right}.event-clock strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}.event-clock small{display:block;font-size:10px;color:#718168;margin-top:2px;white-space:nowrap}.event-track{position:absolute;bottom:0;left:0;width:100%;height:2px;background:#dce5cc}.event-track i{display:block;height:100%;background:#b3a16b}#event-card[data-event=storm],#event-card[data-event=meteor]{border-color:#dacac5}
#play-dock{position:absolute;bottom:47px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 56px);display:flex;gap:17px;align-items:center;padding:13px 16px;background:#fffdf0f2;border:1px solid #fffff0;border-radius:12px;box-shadow:0 7px 30px #3158431c;pointer-events:auto}#player-card{width:174px;flex:0 0 174px}.vitals>div:first-child{display:flex;justify-content:space-between;font-size:14px;gap:8px}#health-label{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.health-track{height:7px;border-radius:5px;background:#dde6cf;overflow:hidden;margin:9px 0}.health-track i{display:block;height:100%;width:100%;background:#78a27b;transition:width .15s}.low-health .health-track i{background:#c57062}.vitals>small{display:block;font-size:11px;color:#687d5d;white-space:nowrap}.coin{color:#af8750}.dot{margin:0 5px}#loadout{min-width:0;border-left:1px solid var(--line);padding-left:16px}#weapon-slots{display:flex;gap:7px;max-width:430px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#b9c6a7 transparent;padding-bottom:2px}
.weapon-slot{position:relative;flex:0 0 63px;width:63px;min-height:64px;background:#edf1e1;border:1px solid #dce3cf;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:7px 3px 5px;gap:3px}.weapon-slot.selected{border:2px solid #b99955;background:#fff2ce;padding:6px 2px 4px}.weapon-slot>small{position:absolute;left:5px;top:3px;font-size:10px;color:#768269}.weapon-symbol{font-size:21px;line-height:1;color:#58715a}.weapon-slot.selected .weapon-symbol{color:#9a7739}.weapon-short-name{font-size:12px;line-height:1.2}.weapon-lives{font-size:9px;letter-spacing:1px;color:#799a6d;line-height:1}.weapon-lives:empty{display:none}.weapon-lives.last-life{color:#bc6b5d}
#potion{border:0;border-left:1px solid var(--line);border-radius:0;padding:3px 0 3px 16px;background:none;display:flex;align-items:center;gap:8px;text-align:left;min-width:142px;align-self:stretch}#potion:disabled{opacity:.7}.potion-symbol{font-size:27px;color:#ab717c}#potion strong{display:block;font-size:13px;font-weight:500;white-space:nowrap}#potion-count{font-size:12px;background:#e4ead7;border-radius:4px;padding:2px 5px;margin-left:3px}#potion-help{display:block;font-size:11px;color:#6c805f;margin-top:5px}#potion kbd{font-size:11px;margin:0}
kbd{font:11px 'DM Sans',sans-serif;border:1px solid #cad4bd;border-radius:4px;padding:3px 5px;background:#f8f9eccc;color:#587053;white-space:nowrap}.controls-strip{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:18px;align-items:center;font-size:12px;color:#3b5f45;white-space:nowrap}.controls-strip kbd{margin-right:4px}#dash-ready{font-size:10px;font-style:normal;color:#638657}
#interact{position:absolute;bottom:167px;left:50%;transform:translateX(-50%);display:flex;gap:10px;align-items:center;text-align:left;border-radius:7px;background:#fffbeeea;border:1px solid #e5d7b2;padding:9px 13px;pointer-events:auto;box-shadow:var(--shadow)}#interact kbd{font-size:15px;background:#315b48;color:#fffbe4;border:none;padding:6px 9px}#interact strong{display:block;font-size:14px;font-weight:500}#interact small{display:block;font-size:11px;margin-top:3px;color:#718164}
#toast{position:absolute;top:108px;left:50%;transform:translateX(-50%);max-width:min(460px,calc(100vw - 42px));padding:10px 15px;border-radius:7px;background:#2a4e43ed;color:#fff6df;font-size:13px;line-height:1.5;text-align:center;opacity:0;transition:opacity .2s;z-index:4}#toast.show{opacity:1}#danger-cue{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);color:#fff8e7;background:#aa4d43ed;padding:9px 15px;border-radius:7px;font-size:15px;font-weight:600;white-space:nowrap;box-shadow:0 0 0 4px #db79752b}
#ritual-banner{position:absolute;right:28px;top:91px;width:242px;border:1px solid #c8b5cd;background:#fff7eff0;border-radius:9px;padding:12px 14px}#ritual-banner>div:first-child{display:flex;justify-content:space-between;align-items:center}.ritual-kicker{font-size:10px;letter-spacing:1px;color:#7c6082}#ritual-countdown{font-size:23px;color:#73517f}#ritual-title{font-size:14px;display:block;margin-top:5px}#ritual-contender{font-size:12px;margin:7px 0;color:#68765a}#ritual-banner>small{font-size:11px;line-height:1.4;color:#6f7a63;display:block}.ritual-track{height:4px;background:#e5dce3;border-radius:3px;overflow:hidden;margin-top:9px}.ritual-track i{height:100%;display:block;background:#aa88bc}
#boss-bar{position:absolute;top:111px;left:50%;transform:translateX(-50%);width:260px;text-align:center}#boss-bar small{font-size:12px;color:#754f47;letter-spacing:1px}#boss-bar>div{height:6px;background:#fff6e9;border-radius:4px;overflow:hidden;margin-top:5px}#boss-health{height:100%;display:block;background:#bb7066}
#minimap-wrap{position:absolute;right:28px;top:80px;width:228px;padding:14px;background:#fffdf0f5;border:1px solid #fffef0;border-radius:10px;z-index:12;pointer-events:auto;box-shadow:var(--shadow)}.map-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin-bottom:10px}.map-heading small{font-size:11px}#minimap{display:block;width:198px;height:198px;border-radius:5px}.map-legend{display:flex;justify-content:space-between;font-size:10px;margin-top:10px;color:#69805c}.session-status{border-top:1px solid var(--line);padding-top:10px;margin-top:11px;font-size:10px;color:#728263}.session-status span{display:block}#population{font-size:11px;margin-top:5px}
#view-controls{position:absolute;right:27px;bottom:27px;display:flex;align-items:center;gap:6px;background:#fffdf0ca;border:1px solid #e2e9d6;border-radius:7px;padding:4px;z-index:3}#view-controls button{background:none;width:27px;height:27px;font-size:20px}#view-controls>span{font-size:11px;color:#748568}#photo{border-left:1px solid var(--line);margin-left:3px}.playing #view-controls{bottom:166px}.playing #view-controls>span{display:none}
.modal-backdrop{position:absolute;inset:0;background:#31524955;backdrop-filter:blur(6px);z-index:40;display:grid;place-items:center}.modal{position:relative;width:550px;max-width:calc(100vw - 36px);max-height:90vh;overflow:auto;padding:29px;background:var(--paper);border:1px solid #fffdf4;border-radius:15px;box-shadow:0 25px 100px #1f3d332b}.close{position:absolute;right:18px;top:16px;border-radius:50%;background:#eaf0dd;width:30px;height:30px;font-size:24px}.modal>p{font-size:14px;color:#64785c;line-height:1.6}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 15px;margin:25px 0}.guide-grid>div{display:flex;align-items:center;gap:8px;font-size:13px}.guide-grid kbd{font-size:11px}.role-guide{display:grid;gap:13px;padding:17px;background:#eef2e2;border-radius:9px}.role-guide>div{display:flex;align-items:center;gap:12px;font-size:12px;color:#64775c}.role-guide strong{display:block;font-size:13px;color:#3b5743;margin-bottom:3px}.role-guide i{font-style:normal;font-size:23px;width:27px;text-align:center}.you-symbol{color:#b59451}.rival-symbol{color:#527e9d}.enemy-symbol{color:#a74d61}.guide-note{font-size:12px!important}
details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer;font-size:14px;font-weight:500;color:#3e6047}details p{font-size:13px;color:#697a60;line-height:1.6}#return{margin-top:12px}.creative-buttons{display:flex;gap:8px}.creative-buttons button{font-size:12px;padding:10px;background:#e6ecd7;border:1px solid #cbd7b8;border-radius:6px}.panel-eyebrow{font-size:12px;display:flex;justify-content:space-between;margin:15px 0}.leader{display:flex;align-items:center;gap:10px;font-size:13px;margin:10px 0}.leader .rank{font-size:11px;color:#8c9b80}.leader-name{flex:1}.leader small{margin-left:8px;font-size:10px;color:#69829b}.leader.you{color:#ad8440}
.ritual-steps{display:flex;justify-content:space-between;gap:8px;padding-bottom:19px;font-size:11px;color:#68775e}.ritual-steps b{display:block;font-size:16px;color:#8d7955;margin-bottom:6px}.ritual-tabs{display:flex;gap:5px;padding:4px;background:#e9eddd;border-radius:8px;margin:20px 0}.ritual-tabs button{flex:1;padding:10px 7px;font-size:13px;border-radius:5px;background:none}.ritual-tabs [aria-selected=true]{background:#fffdf0;box-shadow:0 2px 8px #47614210;color:#2c563e}.ritual-modal label{font-size:13px;display:block;margin:15px 0 6px}.ritual-modal select{font:inherit;font-size:14px;width:100%;padding:11px;border:1px solid #c4d2b5;border-radius:6px;background:#f8faed}.ritual-modal section>p{font-size:13px;line-height:1.6;color:#64775b}#ritual-requirement{padding:11px 13px;border:1px solid #ddcca6;border-radius:6px;background:#f5edda;font-size:13px;line-height:1.5;color:#7b6640}.risk-note{background:#f3e8dd;padding:10px 12px;border-radius:6px;color:#865f45!important}.ritual-modal .primary span{font-size:14px}
#respawn{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:#edf2ddba;backdrop-filter:blur(5px);z-index:30}#respawn h2{font-size:38px;margin:0 0 9px}#respawn p{font-size:14px;color:#6c7b62}.cinematic header,.cinematic #hud,.cinematic #welcome,.cinematic #world-label,.cinematic #view-controls,.cinematic .vignette{display:none!important}#error{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;background:#fff0dc;border:1px solid #e2b994;padding:13px 20px;border-radius:8px;font-size:14px;z-index:100}
@media(max-width:1050px){.playing .brand>span:last-child{display:none}.playing header{left:22px;right:22px}#event-card{max-width:370px;min-width:315px}#play-dock{gap:12px;padding:12px}#player-card{width:148px;flex-basis:148px}#weapon-slots{max-width:330px}#potion{min-width:130px;padding-left:12px}#loadout{padding-left:12px}#welcome{width:320px}h1{font-size:43px}}
@media(max-width:760px){header{left:22px;right:22px;top:24px}.brand{font-size:23px}.playing .brand-sun{display:none}#event-card{top:80px;left:20px;right:20px;max-width:none;min-width:0;transform:none;padding:10px 12px}#event-caption{font-size:12px}.playing header{top:22px}.playing .brand>span:last-child{display:block;font-size:19px}.playing .brand small{display:none}#welcome{left:25px;top:145px;width:300px}h1{font-size:41px}#welcome p{font-size:15px}
#play-dock{bottom:46px;left:18px;right:18px;max-width:none;width:auto;transform:none;display:grid;grid-template-columns:1fr auto;gap:12px 20px;padding:13px 15px}#player-card{width:auto;min-width:0}.vitals>div:first-child{font-size:14px}.vitals>small{font-size:11px}#potion{grid-column:2;grid-row:1;min-width:142px;padding-left:18px}#loadout{grid-row:2;grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:11px 0 0}#weapon-slots{max-width:100%;gap:8px}.weapon-slot{min-height:53px;flex-basis:61px}.weapon-symbol{font-size:19px}.weapon-lives{font-size:9px}.controls-strip{gap:10px;bottom:16px;font-size:11px}.extra-control{display:none}.controls-strip kbd{font-size:10px;margin-right:2px}#dash-ready{display:none}#interact{bottom:245px;max-width:calc(100vw - 140px);padding:8px 12px}#interact strong{font-size:14px}#interact small{font-size:11px}.playing #view-controls{bottom:235px;right:20px}#view-controls{right:20px}#view-controls button{width:24px}#view-controls #photo{display:none}#toast{top:166px;font-size:13px}#ritual-banner{right:20px;top:164px;width:230px;padding:10px 12px}#boss-bar{left:20px;transform:none;top:165px;width:205px}#minimap-wrap{right:20px;top:70px}#danger-cue{font-size:14px;top:42%}#world-label{left:25px;bottom:30px}}
.bow-ammo{font-size:11px;line-height:1.2;color:#755b2e;white-space:nowrap}.weapon-slot:has(.bow-ammo){min-height:72px}.controls-strip{max-width:calc(100vw - 36px)}#attack-hint{white-space:normal;text-align:center;max-width:250px}
@media(max-width:760px){#attack-hint{max-width:180px;font-size:11px}.controls-strip{white-space:normal}.controls-strip>span{flex-shrink:0}.controls-strip #attack-hint{flex-shrink:1}}
@media(max-width:420px){#player-card{min-width:135px}#play-dock{gap:10px;padding:11px}#potion{min-width:116px;padding-left:11px;gap:6px}.potion-symbol{display:none}#interact{max-width:calc(100vw - 40px);bottom:237px}.playing #view-controls{bottom:308px;right:18px}#event-caption{font-size:11px}nav{gap:5px}nav button{padding:0 8px}.guide-grid{grid-template-columns:1fr}.modal{padding:23px}.ritual-steps{font-size:10px}}
.coin-wallet{padding:2px 5px;margin-left:-5px;border-radius:4px;background:#ece7ce;font-size:12px;color:#69532f}.shop-wallet{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:8px;background:#f0ead1;font-size:14px}.shop-wallet strong{font-size:19px;color:#846c38}#shop-location{font-size:14px}#shop-items{display:grid;gap:12px;margin:20px 0}.shop-item{display:grid;grid-template-columns:40px 1fr;gap:10px 15px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:10px;background:#f7f8e9}.shop-icon{font-size:32px;text-align:center;color:#8e7655}.shop-item h3{margin:0 0 5px;font-size:17px}.shop-item p{margin:0;font-size:13px;color:#5d735b}.shop-item small{display:block;margin-top:7px;font-size:12px;color:#6a795d}.shop-buy{grid-column:2;padding:10px 13px;border-radius:6px;background:#315746;color:#fff7de;font-size:14px;justify-self:start}.shop-buy:disabled{opacity:.7;background:#dde4cc;color:#65745c}#shop-status{min-height:22px;margin:12px 0;font-size:14px;color:#315b43}#shop-world-note{display:block;font-size:12px;color:#718064;line-height:1.5}.shop-modal h2{font-size:33px}.shop-modal .secondary{margin-top:20px}
#stealth-status{position:absolute;top:93px;left:28px;padding:10px 14px;border:1px solid #b8d8ad;border-radius:8px;background:#315e4cec;color:#efffdf;font-size:14px;box-shadow:var(--shadow)}#stealth-status.revealed{background:#fff0d8ed;border-color:#d9b388;color:#835536}@media(max-width:760px){#stealth-status{top:156px;left:20px;font-size:12px;padding:8px 10px}}
@media(max-height:780px) and (min-width:761px){#welcome{top:120px}h1{font-size:43px;margin:14px 0 18px}#welcome p{font-size:14px;margin-bottom:18px}#welcome>small{font-size:11px}}
