:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#f4f6ea;background:#0b1210;font-synthesis:none;
--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);
--top:max(10px,var(--safe-top));--bottom:max(12px,var(--safe-bottom));--left:max(12px,var(--safe-left));--right:max(12px,var(--safe-right));
--accent:#c7f26a;--panel:#0b1210cc;--line:#ffffff2e}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}
button:focus-visible{outline:3px solid #b3eaff;outline-offset:2px}
[hidden]{display:none!important}
.game-shell{position:relative;width:100%;height:var(--app-height,100dvh);overflow:hidden;background:#15241e}
#game{position:absolute;inset:0;width:100%;height:100%;touch-action:none}

.hurt{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 45%,#c0101099 100%)}
.hurt.on{animation:hurt .45s ease-out}
@keyframes hurt{from{opacity:1}to{opacity:0}}

.topbar{position:absolute;z-index:3;top:var(--top);left:var(--left);right:var(--right);display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}
.brand,.status{display:flex;align-items:center;gap:8px;text-shadow:0 2px 8px #000}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:2px solid var(--accent);color:var(--accent);font-size:20px;font-weight:900;border-radius:7px}
.brand b{display:block;letter-spacing:.12em;font-size:14px}
.brand small,.status small{display:block;color:#c2d0c5;font-size:11px;line-height:1.4}
.status{max-width:200px;padding:6px 9px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.status b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-avatar{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#101916;text-shadow:none;font-weight:800}
.profile-copy{min-width:0}

.compass{position:relative;flex:1;max-width:420px;height:26px;margin-top:4px;background:linear-gradient(90deg,transparent,#0b121099 15%,#0b121099 85%,transparent);border-radius:4px;overflow:hidden}
.compass::after{content:'';position:absolute;left:50%;top:0;width:2px;height:7px;background:var(--accent);transform:translateX(-50%)}
.compass i{position:absolute;top:5px;transform:translateX(-50%);font-style:normal;font-size:12px;font-weight:700;color:#e8efe6}
.compass i[data-l="С"]{color:#ff7a5c}
.compass b{position:absolute;top:2px;transform:translateX(-50%);color:#ffb04a;font-size:16px;text-shadow:0 0 8px #ff8a2a}

.info{position:absolute;z-index:2;top:calc(var(--top) + 46px);left:var(--left);display:flex;flex-direction:column;gap:6px;max-width:min(330px,60vw);pointer-events:none}
.clock,.mission,.crate-line{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:6px 10px}
.clock{display:flex;align-items:center;gap:8px;align-self:flex-start;pointer-events:auto;text-align:left}
.clock .chev{font-style:normal;font-size:12px;color:var(--accent);transition:transform .2s}
.info.min .chev{transform:rotate(-90deg)}
.info.min .mission,.info.min .crate-line{display:none}
.clock>span:first-child{font-size:20px}
.clock b{display:block;font-size:13px}.clock small{display:block;font-size:11px;color:#c2d0c5}
.mission{border-left:3px solid var(--accent)}
.mission small{font-size:10px;letter-spacing:.1em;color:var(--accent)}
.mission b{display:block;font-size:13px;line-height:1.35;margin-top:2px}
.crate-line{font-size:12px;color:#ffc78a;align-self:flex-start}

.feed{position:absolute;z-index:2;right:var(--right);top:calc(var(--top) + 52px);max-width:min(300px,45vw);display:flex;flex-direction:column;align-items:flex-end;gap:3px;pointer-events:none}
.feed div{background:#0b1210b0;padding:3px 8px;border-radius:5px;font-size:12px;line-height:1.5;text-shadow:0 1px 3px #000;animation:feedIn .2s ease-out}
.feed .good{color:var(--accent)}.feed .bad{color:#ff8a7a}
@keyframes feedIn{from{opacity:0;transform:translateX(10px)}}

.crosshair{position:absolute;z-index:2;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%);pointer-events:none}
.crosshair::before,.crosshair::after{content:'';position:absolute;background:#fff;box-shadow:0 0 2px #000}
.crosshair::before{left:10px;top:3px;width:2px;height:16px}
.crosshair::after{top:10px;left:3px;width:16px;height:2px}
.crosshair.hit::before,.crosshair.hit::after{background:#ff5a4a;transform:rotate(45deg) scale(1.2)}
.target{position:absolute;z-index:2;left:50%;top:calc(50% + 22px);transform:translateX(-50%);text-align:center;min-width:120px;pointer-events:none;text-shadow:0 1px 4px #000}
.target b{font-size:13px}
.target .tbar{height:4px;margin:3px auto 0;width:110px;background:#ffffff33;border-radius:2px;overflow:hidden}
.target .tbar i{display:block;height:100%;background:var(--accent)}
.target.enemy b{color:#ff9a8a}.target.enemy .tbar i{background:#ff5a4a}
.target small{display:block;font-size:11px;color:#ffd29b;margin-top:2px}
.lock-hint{position:absolute;z-index:2;left:50%;top:calc(50% + 70px);transform:translateX(-50%);background:var(--panel);padding:6px 12px;border-radius:6px;font-size:12px;pointer-events:none}

.vitals{position:absolute;z-index:3;left:var(--left);bottom:calc(var(--bottom) + 84px);width:190px;padding:7px 9px;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:5px;pointer-events:none}
.vital{display:flex;align-items:center;gap:7px;font-size:12px}
.vital b{width:26px;text-align:right;font-variant-numeric:tabular-nums}
.meter{flex:1;height:7px;background:#ffffff26;border-radius:4px;overflow:hidden}
.meter i{display:block;height:100%;width:100%;background:#7ee06a;transition:width .2s}
.meter.food i{background:#f0b94a}
.meter i.low{background:#ff4a3a;animation:blink 1s infinite}
@keyframes blink{50%{opacity:.4}}

.hotbar{position:absolute;z-index:3;left:50%;bottom:var(--bottom);transform:translateX(-50%);display:flex;gap:4px;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:min(560px,calc(100% - 24px));overflow-x:auto;scrollbar-width:none}
.slot{position:relative;flex:none;width:60px;height:62px;border:1px solid #ffffff24;border-radius:7px;background:#17201dd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0}
.slot.active{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent);background:#243320}
.slot span{font-size:22px;line-height:1.1}
.slot small{font-size:9.5px;color:#d5e0d6;max-width:56px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.slot em{position:absolute;right:4px;top:2px;font-style:normal;font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px #000}
.slot kbd{position:absolute;left:4px;top:2px;font:600 9px/1 inherit;color:#ffffff70}

.joystick{display:none;position:absolute;z-index:4;left:var(--left);bottom:calc(var(--bottom) + 80px);width:124px;height:124px;border:1px solid #ffffff5c;border-radius:50%;background:#0d151370;touch-action:none}
.joystick i{position:absolute;left:41px;top:41px;width:42px;height:42px;border-radius:50%;background:#d8e1d8c7;border:1px solid #fff;pointer-events:none}
.actions{position:absolute;z-index:4;right:var(--right);bottom:calc(var(--bottom) + 80px);display:grid;grid-template-columns:auto auto;grid-template-areas:"bag use" "jump main";gap:8px;align-items:end;justify-items:center}
.action{width:56px;height:56px;border-radius:50%;border:1px solid #ffffff45;background:#18231fd9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;touch-action:none}
.action span{font-size:21px;line-height:1}
.action small{font-size:9px;font-weight:700;letter-spacing:.03em}
.action.primary{grid-area:main;width:82px;height:82px;background:var(--accent);color:#111a16;border:0}
.action.primary span{font-size:30px}
.action.use{grid-area:use;background:#ffb04a;color:#1a1208;border:0;animation:pulse 1.2s infinite}
#bagBtn{grid-area:bag}#jumpBtn{grid-area:jump}
@keyframes pulse{50%{transform:scale(1.08)}}
.fullscreen{position:absolute;z-index:4;right:var(--right);top:calc(var(--top) + 52px);width:38px;height:38px;background:var(--panel);border:1px solid var(--line);border-radius:7px;font-size:22px;display:none}
.desktop-help{position:absolute;z-index:2;right:var(--right);bottom:calc(var(--bottom) + 8px);color:#d5dfd5;font-size:11px;line-height:1.6;text-align:right;text-shadow:0 2px 6px #000;pointer-events:none}
.desktop-help+.bag{}
@media(pointer:fine) and (min-width:900px){.actions{display:none}.desktop-help{display:block}}

.bag{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:#000a;padding:calc(var(--top) + 10px) var(--right) calc(var(--bottom) + 10px) var(--left)}
.bag-card{width:min(560px,100%);max-height:100%;overflow:auto;background:#101a16f2;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.bag-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.bag-card header b{letter-spacing:.1em}
.bag-card header button{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#1b2722;font-size:16px}
.bag-res{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:6px}
.res{background:#17201d;border:1px solid #ffffff1f;border-radius:7px;padding:6px 4px;text-align:center}
.res span{font-size:18px}.res b{display:block;font-size:15px}.res small{font-size:10px;color:#c2d0c5}
.res.empty{opacity:.4}
.bag-card h3{font-size:12px;letter-spacing:.12em;color:var(--accent);margin:14px 0 8px}
.bag-card h3 span{color:#ffb04a;letter-spacing:0;margin-left:8px}
.bag-recipes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.recipe{display:flex;gap:10px;align-items:center;text-align:left;background:#1b2a22;border:1px solid #c7f26a66;border-radius:8px;padding:8px}
.recipe:disabled{opacity:.5;border-color:#ffffff1f;cursor:default}
.recipe:not(:disabled):active{transform:scale(.98)}
.ri{font-size:26px}
.rt b{display:block;font-size:13px}.rt small{display:block;font-size:11px;color:#c2d0c5}
.rc{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}
.rc i{font-style:normal;font-size:11px}.rc .have{color:var(--accent)}.rc .need{color:#ff8a7a}

.net-btn{pointer-events:auto;flex:none;height:38px;min-width:44px;padding:0 10px;background:var(--panel);border:1px solid var(--accent);border-radius:8px;font-size:15px;font-weight:700;color:var(--accent)}
.net-card{width:min(400px,100%)}
.net-text{font-size:13px;line-height:1.5;color:#d5dfd5;margin:0 0 12px}
.net-main{display:block;width:100%;padding:13px;border:0;border-radius:9px;background:var(--accent);color:#111a16;font-weight:800;font-size:15px}
.net-main:disabled,.net-join button:disabled{opacity:.5}
.net-join{display:flex;gap:8px;margin-top:10px}
.net-join input{flex:1;min-width:0;padding:12px;border-radius:9px;border:1px solid var(--line);background:#17201d;color:#fff;font:700 20px/1 ui-monospace,monospace;letter-spacing:.35em;text-align:center;text-transform:uppercase;-webkit-user-select:text;user-select:text}
.net-join button{padding:0 18px;border-radius:9px;border:1px solid var(--accent);background:#1b2a22;color:var(--accent);font-weight:700}
.net-code{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px}
.net-code b{font:800 38px/1 ui-monospace,monospace;letter-spacing:.3em;color:var(--accent)}
.net-code button{width:40px;height:40px;border-radius:8px;border:1px solid var(--line);background:#1b2722;font-size:18px}
.net-players{list-style:none;margin:0;padding:0;font-size:14px;line-height:1.9}
.net-status{font-size:13px;color:#ffd29b;min-height:1em;margin:10px 0 0}
.death{position:absolute;inset:0;z-index:11;display:grid;place-items:center;background:radial-gradient(#3a0a0acc,#000e);text-align:center;padding:20px}
.death h2{font-size:32px;letter-spacing:.15em;color:#ff6a5a;margin:0 0 8px}
.death p{color:#e0d0cc;margin:0 0 20px}
.death .big{display:block;margin:0 auto 10px;padding:14px 26px;background:var(--accent);color:#111a16;font-weight:800;border:0;border-radius:9px;font-size:16px}
.death .ghost{background:none;border:1px solid #ffffff55;border-radius:8px;padding:8px 16px;color:#e0d0cc}

@media(pointer:coarse),(max-width:899px){
  .joystick{display:block}.desktop-help{display:none}.fullscreen{display:block}
  .vitals{bottom:calc(var(--bottom) + 214px);width:150px}
}
@media(max-width:600px){
  .brand>span:last-child{display:none}
  .status{max-width:38%;padding:4px 6px}.status small{font-size:10px}
  .compass{max-width:none}
  .info{top:calc(var(--top) + 42px);max-width:58vw}
  .mission b{font-size:12px}
  .feed{top:calc(var(--top) + 90px);max-width:44vw}
  .slot{width:52px;height:56px}.slot span{font-size:19px}.slot small{font-size:8.5px}
  .vitals{width:132px;bottom:calc(var(--bottom) + 214px)}
  .fullscreen{top:calc(var(--top) + 46px)}
  .feed{top:calc(var(--top) + 92px)}
}
@media(max-height:500px) and (orientation:landscape){
  .info{top:calc(var(--top) + 40px);flex-direction:row;flex-wrap:wrap;max-width:55vw}
  .mission{flex-basis:100%}
  .crate-line{display:none}
  .joystick{bottom:calc(var(--bottom) + 8px);width:110px;height:110px}.joystick i{left:34px;top:34px}
  .actions{bottom:calc(var(--bottom) + 8px)}
  .vitals{bottom:calc(var(--bottom) + 70px);left:50%;transform:translateX(-50%);width:200px;flex-direction:row}
  .vital{flex:1}
  .hotbar{bottom:var(--bottom);max-width:46vw}
  .slot{width:46px;height:48px}.slot small{display:none}
}
