:root {
  --gold:#d6aa55;
  --ink:#ece8dd;
  --panel:rgba(18,17,26,.94);
  --line:rgba(214,170,85,.42);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#09090d;color:var(--ink);font-family:Trebuchet MS,Arial,sans-serif;touch-action:none}
body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
#app{position:relative;width:100%;height:100%;overflow:hidden;background:#0e1018}
#game{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#11131c;image-rendering:pixelated}
.screen{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 50% 35%,rgba(55,52,78,.52),rgba(8,8,13,.94) 62%);z-index:20}
.screen.show{display:flex}
#menu{flex-direction:column;gap:20px}
.title-card{width:min(720px,90vw);text-align:center;padding:26px 30px 24px;border:2px solid var(--gold);outline:1px solid rgba(255,255,255,.09);outline-offset:-9px;background:linear-gradient(180deg,rgba(27,27,39,.94),rgba(15,14,22,.96));box-shadow:0 25px 80px #000, inset 0 0 45px rgba(214,170,85,.06);clip-path:polygon(4% 0,96% 0,100% 16%,100% 84%,96% 100%,4% 100%,0 84%,0 16%)}
.ornament{color:var(--gold);font-size:17px;letter-spacing:12px}
h1{margin:5px 0 0;font-family:Georgia,serif;font-size:clamp(34px,5.2vw,58px);letter-spacing:.045em;text-shadow:0 3px 0 #542f2c,0 0 24px rgba(224,174,88,.22)}
.subtitle{margin:3px 0 14px;color:var(--gold);letter-spacing:.5em;font-size:clamp(10px,1.8vw,15px)}
.tagline{margin:0;color:#aaa8b1;font-size:13px}
.menu-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:min(720px,90vw)}
button,input{font:700 14px Trebuchet MS,Arial,sans-serif;letter-spacing:.08em;border-radius:7px;border:1px solid rgba(255,255,255,.15);color:#e9e6dd;background:linear-gradient(#31303e,#1d1c27);min-height:46px;padding:10px 17px;box-shadow:inset 0 1px rgba(255,255,255,.08),0 5px 15px rgba(0,0,0,.3)}
button:active{transform:translateY(1px);filter:brightness(1.2)}
button.primary{background:linear-gradient(#b88a3e,#755128);border-color:#e6bd72;color:#fff8e9;text-shadow:0 1px #4e3015}
button.ghost{background:rgba(20,19,28,.68);color:#b6b3bc}
button.danger{background:linear-gradient(#7e3035,#491f27)}
button:disabled{opacity:.4;filter:grayscale(1)}
#helpBtn{grid-column:1/-1}
.menu-foot{font-size:11px;color:#777782;letter-spacing:.12em}
.panel{position:relative;width:min(680px,92vw);max-height:90vh;overflow:auto;padding:28px;background:var(--panel);border:1px solid var(--line);box-shadow:0 25px 100px #000,inset 0 0 0 6px rgba(255,255,255,.025)}
.panel h2{text-align:center;margin:0 0 22px;font-family:Georgia,serif;color:#e8c27c;letter-spacing:.12em}
.back-btn{position:absolute;left:16px;top:14px;width:42px;min-height:38px;padding:0}
.lobby-section{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.hidden{display:none!important}.room-code{font-size:48px;letter-spacing:.2em;color:#fff4d8;font-family:Georgia,serif;border:1px dashed var(--gold);padding:12px 18px;background:#0d0d13}.status-pill{font-size:12px;color:#aaa8b3;background:#11111a;border-radius:99px;padding:8px 15px}.lobby-section button{width:min(350px,85%)}
#joinCode{width:min(330px,88%);text-align:center;font-size:30px;letter-spacing:.25em;text-transform:uppercase;background:#0c0c13;border-color:var(--gold)}
.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.help-grid article{display:flex;flex-direction:column;gap:6px;background:#11111a;padding:13px;border-left:3px solid var(--gold)}.help-grid b{color:#e8c27c}.help-grid span{color:#aaa8b3;font-size:12px;line-height:1.4}
#hud{position:absolute;inset:0;z-index:8;pointer-events:none;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));display:flex;align-items:flex-start;justify-content:space-between}
.player-card,.level-card{display:flex;align-items:center;background:linear-gradient(90deg,rgba(13,13,20,.95),rgba(28,26,34,.88));border:1px solid rgba(214,170,85,.38);box-shadow:0 5px 15px rgba(0,0,0,.4)}
.player-card{width:min(330px,35vw);padding:5px}.portrait{width:42px;height:42px;background-size:320px 52px;background-position:0 center;image-rendering:pixelated;flex:none}.portrait.p1{background-image:url('assets/hero_blue.png')}.portrait.p2{background-image:url('assets/hero_red.png')}.bars{min-width:0;flex:1;padding:0 7px;font-size:10px;letter-spacing:.07em}.bar{height:8px;background:#1c161b;border:1px solid #49333b;margin:4px 0}.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#943943,#d9605c)}.hud-row{display:flex;gap:9px;justify-content:space-between;color:#d7bb80;font-size:9px;white-space:nowrap;overflow:hidden}.level-card{flex-direction:column;padding:7px 16px;min-width:250px}.level-card b{font:700 12px Georgia,serif;letter-spacing:.12em;color:#ead3a5}.level-card span{font-size:9px;color:#a9a6af;margin-top:3px}.hud-btn{pointer-events:auto;width:42px;min-height:42px;padding:0}
#touchControls{position:absolute;inset:0;z-index:9;pointer-events:none}.dpad,.actions{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));pointer-events:auto}.dpad{left:max(14px,env(safe-area-inset-left));width:154px;height:126px}.dpad button,.actions button{position:absolute;border-radius:50%;padding:0;min-height:0;width:52px;height:52px;background:rgba(24,24,34,.72);border:1px solid rgba(235,219,185,.38);backdrop-filter:blur(3px);font-size:18px;color:#f1e8d8}.dpad .up{left:51px;top:0}.dpad .left{left:0;top:52px}.dpad .down{left:51px;top:72px}.dpad .right{right:0;top:52px}.actions{right:max(14px,env(safe-area-inset-right));width:185px;height:126px}.actions .attack{right:0;bottom:8px;width:70px;height:70px;font-size:27px;border-color:#e1b65f;background:rgba(112,64,36,.75)}.actions .shield{right:78px;bottom:0}.actions .item{right:73px;bottom:63px;background:rgba(95,36,49,.76)}
#shopPanel{position:absolute;z-index:15;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,90vw);max-height:76vh;overflow:auto;background:rgba(12,12,18,.97);border:2px solid #c99a51;box-shadow:0 20px 80px #000;padding:14px}.shop-head{display:flex;justify-content:space-between;align-items:center;color:#e6c37c;padding:0 2px 10px}.shop-head button{width:40px;min-height:38px;padding:0}.shop-items{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.shop-item{display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(#272633,#171720);border:1px solid #4b4655;padding:9px;min-height:155px}.shop-item img{width:48px;height:48px;image-rendering:pixelated}.shop-item b{font-size:11px;color:#e8d4ab}.shop-item span{font-size:9px;color:#aaa7b1;min-height:34px;margin:5px 0}.shop-item button{width:100%;min-height:34px;padding:5px;font-size:10px}
.message-card{position:absolute;z-index:12;left:50%;top:92px;transform:translateX(-50%);display:flex;flex-direction:column;gap:3px;text-align:center;min-width:280px;max-width:70vw;padding:10px 18px;background:rgba(14,14,21,.93);border:1px solid var(--gold);box-shadow:0 5px 30px #000}.message-card b{font-family:Georgia,serif;color:#efcc88}.message-card span{font-size:11px;color:#bbb8c1}.compact{width:min(330px,85vw);display:flex;flex-direction:column;gap:10px}.compact button{width:100%}
.rotate-screen{display:none;position:absolute;inset:0;z-index:99;background:#0b0b10;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}.rotate-screen b{font-family:Georgia,serif;color:#e4bf78;letter-spacing:.12em}.rotate-screen span{font-size:12px;color:#9996a0;margin-top:9px}.phone-icon{font-size:60px;margin-bottom:15px;color:#d6aa55}
@media (orientation:portrait) and (max-width:700px){.rotate-screen{display:flex}}
@media (max-height:480px){.title-card{padding:14px 24px}.title-card h1{font-size:36px}.tagline{display:none}.menu-actions{gap:6px}.menu-actions button{min-height:38px}.shop-item{min-height:125px}.shop-item img{width:38px;height:38px}.dpad,.actions{transform:scale(.82);transform-origin:bottom left}.actions{transform-origin:bottom right}.level-card{min-width:200px}.help-grid{grid-template-columns:repeat(3,1fr)}}
@media (pointer:fine){#touchControls{opacity:.82}}
