:root{font:14px "Helvetica Neue",Arial,sans-serif;color:#edf2e5;letter-spacing:0;background:#273b30;--mint:#9de2b7;--gold:#efce89;--red:#ec8c71;--line:#d7efdb29;--muted:#a7baaa;--panel:#172a20f2}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#233d2eda;color:inherit;border:1px solid var(--line);border-radius:3px;transition:background .15s}button:hover{background:#466951}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button svg{pointer-events:none}svg{width:19px;height:19px;stroke-width:1.6;flex:none}input{background:#132219c9;color:#eef2df;border:1px solid var(--line);padding:12px 13px;border-radius:3px;outline:none;min-width:0;width:100%}input::placeholder{color:#95ac9a}.hidden{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none;display:block}#shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#13271eed, #13271ed9 25%,transparent 72%),linear-gradient(0deg,#14271dcc,transparent 30%)}body.playing #shade{background:linear-gradient(180deg,#122219a6,transparent 25%),linear-gradient(0deg,#14271dca,transparent 25%)}.topbar{position:fixed;top:0;left:0;right:0;z-index:4;height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);background:#12251945;backdrop-filter:blur(3px)}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:inherit;font-size:13px}.brand-x{font-size:40px;font-weight:200;border-right:1px solid var(--line);padding-right:17px;line-height:1}.brand small{font:9px monospace;display:block;margin-top:6px;color:#b5c9b5}.top-tools{display:flex;align-items:center;gap:8px}.top-tools #connection{font:9px monospace;color:#c3d3bd;margin-right:16px}.icon{width:35px;height:35px;flex:none;background:#142c2080}.eyebrow{font:10px monospace;color:var(--mint);display:flex;align-items:center;gap:9px}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint)}#entry{position:fixed;top:24%;left:6%;width:350px}#entry h1{font-weight:400;font-size:43px;line-height:1.12;margin:23px 0}#entry h1 span{color:#b6d1b9}.intro{font-size:13px;line-height:1.8;color:#bdcdb8;margin:0 0 27px}#entry label{display:block;font:9px monospace;color:#a7bcaa;margin:17px 0 9px}.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.roles button{height:69px;flex-direction:column;gap:9px;font-size:11px}.roles .selected{border-color:var(--mint);color:var(--mint);background:#9de2b715}.role-stats{display:flex;justify-content:space-between;font:10px monospace;color:#b3c7b2;padding:15px 0 22px}.primary{background:var(--mint);color:#173125;border:none;width:100%;padding:13px 17px;min-height:45px;font-weight:600}.primary:hover{background:#bbf0ce}.entry-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;margin-top:26px;font:8px monospace;color:#aec3ab}#alice{position:fixed;bottom:23px;left:32px;display:flex;align-items:center;gap:12px;max-width:calc(100% - 64px);pointer-events:none}.alice-mark{width:34px;height:34px;border:1px solid #9de2b770;background:#17302199;color:var(--mint);border-radius:50%;display:grid;place-items:center;flex:none}#alice b{font:10px monospace;color:var(--mint)}#alice b span{color:#a2bda5;font-size:8px}#alice p{font-size:11px;color:#c8d6bf;margin:5px 0 0;line-height:1.4}#location{position:fixed;top:110px;left:32px;pointer-events:none;text-shadow:0 2px 10px #152719}#location h2{font-size:24px;font-weight:400;margin:9px 0 12px}#zone-state{display:flex;align-items:center;gap:7px;font:9px monospace;color:var(--mint)}#zone-state svg{width:14px;height:14px}#zone-state.danger{color:#f1aa84}#minimap{position:fixed;right:32px;top:107px;width:176px;padding:7px;background:#122619c9;border:1px solid #afcda64a;border-radius:4px}#map{width:160px;height:160px;display:block}#coordinates{position:absolute;bottom:30px;left:10px;font:8px monospace;color:#bdcbb2}.map-caption{border-top:1px solid var(--line);margin-top:7px;padding-top:7px;font:8px monospace;color:#b7d0b3;text-align:center}#objectives{position:fixed;top:335px;right:32px;width:176px}#objectives>.eyebrow{font-size:8px;margin-bottom:13px}.boss-objective{display:grid;grid-template-columns:16px 1fr;gap:9px;margin:13px 0;font-size:11px;align-items:start}.boss-objective svg{width:14px;height:14px;color:var(--gold)}.boss-objective small{display:block;font:8px monospace;color:#b0c5aa;margin-top:5px}.boss-objective.done svg{color:var(--mint)}#target{position:fixed;top:108px;left:50%;transform:translateX(-50%);width:350px;text-align:center}#target>div:first-child{display:flex;justify-content:space-between;font:11px monospace;color:#f4c3a1}#target b{font-weight:400;font-size:9px}.track{height:7px;background:#26352bbd;border:1px solid #efbc9b80;margin:9px 0}.track>div{height:100%;background:#ec9670;transition:width .1s}#target small{font:9px monospace;color:#efc6a3}#crosshair{position:fixed;top:50%;left:50%;width:17px;height:17px;transform:translate(-50%,-50%);pointer-events:none;opacity:.85}#crosshair span{position:absolute;left:7px;top:7px;width:3px;height:3px;background:#e6fbdc;box-shadow:0 0 5px #142916}#crosshair i{position:absolute;inset:0;border:1px solid #e6fbdc90;border-radius:50%}#party-roster{position:fixed;left:32px;top:233px;width:180px}.party-person{margin:12px 0;background:#16302160;padding:8px;border-left:2px solid var(--mint);border-radius:2px}.party-person>div{display:flex;justify-content:space-between;gap:7px;font-size:10px}.party-person b{font:9px monospace;color:#c3d3b6}.party-person progress{width:100%;height:4px;display:block;margin-top:7px;accent-color:var(--mint);border:none}.party-person span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#vitals{position:fixed;left:32px;bottom:108px;width:262px;text-shadow:0 1px 5px #173521}.vital-title,.vital-stats{display:flex;align-items:center;justify-content:space-between;gap:10px}.vital-title{font-size:13px}.vital-title b{font:10px monospace;color:var(--gold)}.hp-line{height:7px;background:#152b1dcd;margin:10px 0 8px;border:1px solid #8eb69740}.hp-line>div{background:var(--mint);height:100%;transition:width .1s}.vital-stats{font:10px monospace;color:#c8dcc1}.xp-line{height:2px;background:#1e3426;margin-top:12px}.xp-line>div{height:100%;background:var(--gold)}#xp-label{display:block;font:8px monospace;color:#c6d1b6;margin-top:5px}#quick-tools{position:fixed;bottom:110px;right:329px;display:flex;gap:6px}#actions{position:fixed;right:32px;bottom:105px;display:flex;gap:7px}.action{width:49px;height:51px;position:relative;background:#152b20de;touch-action:none;user-select:none}.action span{position:absolute;inset:0;background:#142519e8;display:grid;place-items:center;font:18px monospace;pointer-events:none}.action span:empty{display:none}.action small{position:absolute;right:5px;bottom:3px;color:var(--gold);font:9px monospace}.action.pressed{background:#6d9472}#context{position:fixed;bottom:195px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:10px 15px;border:1px solid #bdd6aa70;background:#163723e8;border-radius:4px;font-size:12px;pointer-events:none}.panel{position:fixed;top:96px;bottom:88px;right:24px;width:355px;padding:24px;display:flex;flex-direction:column;background:var(--panel);border:1px solid #a0c39b55;backdrop-filter:blur(15px);z-index:8;border-radius:5px;box-shadow:0 12px 50px #0c1f1690}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel h2{font-size:25px;font-weight:400;margin:9px 0 20px}.panel-head .icon{align-self:flex-start}.panel .eyebrow{font-size:8px}.scroll-list{overflow-y:auto;scrollbar-width:thin;flex:1;min-height:0}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:17px 0}.slot{min-width:0;border:1px solid var(--line);padding:10px 7px;border-radius:3px;text-align:center;background:#122a1b80}.slot svg{color:var(--mint);margin-bottom:9px}.slot span{display:block;font-size:9px;line-height:1.5;overflow-wrap:anywhere}.list-heading{display:flex;justify-content:space-between;font:9px monospace;color:var(--muted);margin:12px 0}#gear-stats,#shop-credits{font:11px monospace;color:var(--gold);padding-bottom:12px;border-bottom:1px solid var(--line)}.item{display:flex;gap:11px;align-items:center;border-bottom:1px solid var(--line);padding:13px 0}.item>svg{width:21px;height:21px}.item-info{flex:1;min-width:0}.item-info strong{display:block;font-size:11px;font-weight:400;line-height:1.4}.item-info small{display:block;font:9px monospace;color:#a6bfa5;margin-top:5px}.item .icon{width:29px;height:29px}.item .icon svg{width:14px;height:14px}.item.selected{opacity:.6}.join-row{display:flex;gap:7px;margin-top:13px}.join-row .icon{height:auto;width:43px}.code-button{width:100%;padding:15px;font:18px monospace;color:var(--mint)}.secondary{width:100%;padding:12px;margin-top:15px;color:#d9bf9c}.message{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.message b{display:block;font:9px monospace;color:var(--mint);margin-bottom:5px}#chat-form{display:flex;gap:7px;margin-top:15px}#chat-form .icon{height:auto}#joystick{display:none;position:fixed;left:28px;bottom:220px;width:96px;height:96px;border-radius:50%;border:1px solid #b4d5b66a;background:#21452c60;touch-action:none}#joystick div{position:absolute;width:32px;height:32px;border:1px solid var(--mint);border-radius:50%;background:#a6dbae55;top:31px;left:31px;pointer-events:none}#death{position:fixed;left:50%;top:44%;transform:translate(-50%,-50%);text-align:center;background:#1c2f23eb;border:1px solid #b4c7a65e;padding:28px 35px;border-radius:4px;min-width:280px}#death .eyebrow{justify-content:center;color:#eea880}#death h2{font-size:26px;font-weight:400}#respawn-time{font:12px monospace;color:#c8d6b8}.backdrop{position:fixed;inset:0;background:#12241cbb;backdrop-filter:blur(10px);z-index:30;display:grid;place-items:center;padding:20px}.reward{width:min(500px,100%);max-height:90dvh;overflow:auto;background:#1d3425;border:1px solid #a8caa766;border-radius:6px;padding:35px}.reward h2{font-size:35px;font-weight:400;margin:15px 0}.reward p{font-size:13px;line-height:1.65;color:#bed1b8}.flag-row{display:flex;align-items:center;gap:10px;background:#102619;border:1px solid #8cb79a70;padding:13px;margin:24px 0 18px;border-radius:3px}.flag-row code{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--mint);font-size:13px}#toast{position:fixed;top:87px;left:50%;transform:translateX(-50%);max-width:min(90vw,470px);text-align:center;background:#163120f5;border:1px solid #acd8b76b;padding:13px 20px;color:#d9edce;font-size:12px;z-index:40;border-radius:3px}.map-player-label{color:#fff}
@media(pointer:coarse){body.playing #joystick{display:block}}
@media(max-height:760px) and (min-width:701px){#entry{top:125px}#entry h1{font-size:36px;margin:18px 0}.intro{margin-bottom:17px}.roles button{height:61px}.entry-footer{margin-top:20px}}
@media(max-width:1000px){#target{width:255px;top:206px}#party-roster{top:230px;width:150px}#objectives{display:none}}
@media(max-width:700px){.topbar{height:64px;padding:0 17px}.brand{gap:9px;font-size:11px}.brand-x{font-size:31px;padding-right:10px}.brand small{font-size:7px}.top-tools{gap:5px}.top-tools #connection{font-size:0;margin:0 3px}.top-tools #connection:before{content:'';width:5px;height:5px;display:block;border-radius:50%;background:var(--mint)}.icon{width:31px;height:31px}.top-tools svg{width:17px;height:17px}#entry{top:auto;bottom:105px;left:20px;width:calc(100% - 40px);max-width:360px}#entry h1{font-size:32px;margin:15px 0}.intro{font-size:11px;line-height:1.6;margin-bottom:17px}.eyebrow{font-size:8px}#entry label{font-size:8px;margin:14px 0 8px}.roles button{height:57px;gap:6px;font-size:10px}.roles svg{width:17px;height:17px}.role-stats{font-size:9px;padding:12px 0 17px}.primary{font-size:12px;min-height:42px}.entry-footer{font-size:7px;padding-top:13px;margin-top:19px}#shade{background:linear-gradient(0deg,#142b20f5,#142b20df 48%,transparent 100%)}#alice{left:18px;bottom:20px;gap:9px;max-width:calc(100% - 36px)}#alice p{font-size:10px}.alice-mark{width:29px;height:29px;font-size:12px}#alice b{font-size:9px}#alice b span{font-size:7px}#location{left:17px;top:86px;max-width:calc(100% - 147px)}#location h2{font-size:18px;margin:8px 0 10px;line-height:1.2}#location .eyebrow{font-size:7px}#zone-state{font-size:7px;gap:4px}#zone-state svg{width:11px;height:11px}#minimap{width:110px;right:14px;top:81px;padding:4px}#map{width:100px;height:100px}.map-caption{font-size:6px;padding-top:4px;margin-top:4px}#coordinates{font-size:6px;bottom:21px;left:7px}#target{width:calc(100% - 40px);top:223px}#target>div:first-child{font-size:9px}#target small{font-size:8px}#party-roster{left:17px;top:177px;width:122px}.party-person{padding:5px;margin:6px 0}.party-person>div{font-size:8px}.party-person b{font-size:7px}.party-person progress{height:3px;margin-top:5px}#vitals{left:18px;bottom:107px;width:177px}.vital-title{font-size:11px}.vital-title b{font-size:9px}.hp-line{height:5px;margin:8px 0}.vital-stats{font-size:8px}#xp-label{font-size:7px}.xp-line{margin-top:8px}#quick-tools{right:15px;bottom:254px;display:grid;grid-template-columns:repeat(2,31px);gap:5px}#actions{right:15px;bottom:99px;display:grid;grid-template-columns:repeat(2,42px);gap:6px}.action{width:42px;height:42px}.action svg{width:17px;height:17px}.action span{font-size:15px}#context{bottom:341px;max-width:calc(100% - 40px);font-size:10px;padding:9px 12px;text-align:center}#joystick{bottom:226px;left:22px}.panel{left:14px;right:14px;top:77px;bottom:86px;width:auto;padding:20px}.panel h2{font-size:23px}.panel .eyebrow{font-size:7px}.panel-head .icon{width:30px;height:30px}.reward{padding:24px}.reward h2{font-size:29px}.reward p{font-size:12px}#toast{top:72px;font-size:11px}#death{top:47%;padding:22px;min-width:250px}#death h2{font-size:23px}}
@media(max-width:700px) and (max-height:700px){#entry{top:82px;bottom:93px;overflow:auto;padding-right:2px}#entry h1{font-size:27px}.intro{display:none}.entry-footer{margin-top:12px}#location h2{font-size:16px}#joystick{bottom:213px;width:84px;height:84px}#joystick div{top:25px;left:25px}#vitals{bottom:100px}#quick-tools{bottom:248px}}
@media(max-width:700px){#party-roster{max-height:125px;overflow-y:auto}body.near-boss #party-roster{display:none}}
.auth-link{display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;border-radius:3px}.auth-link.unavailable{opacity:.5;pointer-events:none}#auth-status{font-size:12px;color:var(--muted);margin-top:12px}.stamina-line{height:4px;background:#14271f;margin-top:10px}.stamina-line>div{height:100%;background:#78bed1;transition:width .1s}#quick-tools{right:385px}#weapon-hud{position:fixed;right:32px;bottom:175px;width:329px;display:flex;align-items:center;justify-content:space-between;text-shadow:0 1px 6px #112518}#weapon-name{font-size:12px;color:#d5dec8}#ammo{font:20px monospace;color:var(--gold)}
.admin-controls{display:flex;align-items:center;gap:22px;padding:0 0 16px;border-bottom:1px solid var(--line)}.admin-controls label{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.admin-controls input{width:16px;height:16px;padding:0;accent-color:var(--gold)}.admin-controls>button{margin-left:auto}#admin{width:min(590px,calc(100% - 48px));padding:20px}#admin h2{font-size:23px}#admin-map{display:block;width:100%;height:150px;flex:none;margin:16px 0;border:1px solid var(--line)}.admin-filters{display:flex;gap:8px;align-items:center}.admin-filters input{flex:1}.admin-filters select{max-width:160px}select{font:inherit;border:1px solid var(--line);border-radius:3px;background:#1b3327;color:#edf2e5;padding:10px;min-width:0}#admin-count{font:10px monospace;color:var(--muted);margin:16px 0 7px}.admin-player{display:grid;grid-template-columns:minmax(0,1fr) 70px 35px 35px;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.admin-player strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.admin-player small{display:block;color:var(--muted);font-size:10px;margin-top:5px;overflow-wrap:anywhere;line-height:1.5}.admin-health{font:10px monospace;color:var(--gold);text-align:right}.admin-pagination{display:flex;justify-content:flex-end;gap:12px;align-items:center;padding-top:12px;font:11px monospace}.admin-empty{color:var(--muted);text-align:center;margin-top:25px}#admin-error,#admin-ban-error{color:var(--red);font-size:12px;line-height:1.5;margin:6px 0}#admin-error:empty,#admin-ban-error:empty{display:none}#admin-indicator{position:fixed;top:85px;left:50%;transform:translateX(-50%);color:var(--gold);font:10px monospace;background:#182a22e6;padding:5px 12px;pointer-events:none;z-index:5}#admin-ban-dialog{width:420px;max-width:calc(100% - 40px);background:#192d23;color:#edf2e5;border:1px solid #a7c2ac77;border-radius:6px;padding:25px}#admin-ban-dialog::backdrop{background:#09130edb;backdrop-filter:blur(5px)}#admin-ban-dialog h2{font-size:22px;overflow-wrap:anywhere}#admin-ban-dialog label{display:block;color:var(--muted);font-size:12px;margin:17px 0 8px}#admin-ban-dialog select{width:100%}.admin-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.admin-dialog-actions button{padding:10px 14px;min-height:40px}#admin-ban-submit{background:#723d37;border-color:#ec8c7180}
#party-roster{max-height:calc(100dvh - 445px);overflow-y:auto;scrollbar-width:thin}#party-active{display:flex;flex-direction:column;flex:1;min-height:0}#party-members{min-height:0;flex:1;overflow-y:auto;scrollbar-width:thin}#party-active>.code-button,#party-leave{flex-shrink:0}
.character-actions{flex:none;border-top:1px solid var(--line);padding-top:14px;margin-top:12px}.character-actions>span{display:block;font-size:11px;color:var(--muted);margin-bottom:10px}.character-actions button{width:100%;padding:10px;font-size:12px}#recreate-dialog{width:480px;max-width:calc(100% - 48px);max-height:calc(100dvh - 60px);overflow:auto;background:#192d23;color:#edf2e5;border:1px solid #a7c2ac77;border-radius:6px;padding:24px}#recreate-dialog::backdrop{background:#09130edb;backdrop-filter:blur(5px)}#recreate-dialog h2{font-size:22px;margin:0}#recreate-dialog .panel-head{margin-bottom:20px}#recreate-dialog p{font-size:12px;line-height:1.6;color:var(--muted)}.recreate-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.recreate-roles label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:96px;border:1px solid var(--line);border-radius:4px;font-size:12px;cursor:pointer}.recreate-roles label:has(:checked){border-color:var(--mint);background:#335544}.recreate-roles label:has(:disabled){opacity:.4;cursor:default}#recreate-dialog input{width:16px;height:16px;accent-color:var(--mint);padding:0}.reset-ack{display:flex;align-items:center;gap:10px;font-size:12px;margin:20px 0}.reset-ack input{flex:none}#recreate-submit{width:100%;margin-top:12px}#recreate-error{color:var(--red)!important}#recreate-error:empty{display:none}
