:root{
  color-scheme:dark;
  --ink:#f7fbff;
  --muted:#b9c4cb;
  --panel:rgba(9,15,20,.78);
  --line:rgba(255,255,255,.16);
  --accent:#62d468;
  --accent2:#f2c94c;
  --danger:#e85757;
  --shadow:0 18px 70px rgba(0,0,0,.45);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#070b0f;color:var(--ink)}
button,input{font:inherit}
button{border:0;color:inherit;cursor:pointer}
.hidden{display:none!important}
#app{position:relative;width:100%;height:100%;isolation:isolate}
.screen{position:absolute;inset:0}

/* Main menu */
#menu{display:grid;grid-template-columns:minmax(330px,520px) 1fr;align-items:center;padding:clamp(20px,5vw,76px);overflow:auto;background:#071019}
.menu-bg{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(2,5,8,.94) 0%,rgba(2,5,8,.70) 44%,rgba(2,5,8,.18) 100%),url('assets/menu/background.9.png');background-size:cover;background-position:center;filter:saturate(1.05);transition:opacity .8s ease,background-image 1s ease;z-index:-2}
.menu-vignette{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 72% 42%,transparent 0 20%,rgba(0,0,0,.24) 62%,rgba(0,0,0,.78) 100%),linear-gradient(0deg,rgba(0,0,0,.66),transparent 38%)}
.menu-card{width:min(100%,520px);padding:clamp(22px,3.6vw,44px);border:1px solid rgba(255,255,255,.15);border-radius:24px;background:linear-gradient(155deg,rgba(15,24,29,.90),rgba(7,12,16,.75));backdrop-filter:blur(18px);box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:18px;margin-bottom:28px}.brand img{width:76px;height:76px;image-rendering:pixelated;filter:drop-shadow(0 12px 18px rgba(0,0,0,.55))}.brand h1{font-size:clamp(34px,5vw,64px);line-height:.92;margin:0;letter-spacing:-.055em}.brand h1 span{display:block;font-size:.22em;letter-spacing:.24em;text-transform:uppercase;color:#8fe59a;margin-bottom:8px}
.menu-card p{font-size:clamp(14px,1.3vw,17px);line-height:1.65;color:var(--muted);max-width:44ch;margin:0 0 28px}
.menu-actions{display:grid;gap:12px}.primary,.secondary,.ghost{min-height:54px;border-radius:12px;padding:0 18px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;transition:transform .18s ease,filter .18s ease,background .18s ease}.primary{background:linear-gradient(135deg,#49c75b,#8ee16c);color:#09230d;box-shadow:0 12px 28px rgba(61,190,76,.28)}.secondary{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16)}.ghost{background:transparent;border:1px solid rgba(255,255,255,.14);color:#cad3d9}.primary:hover,.secondary:hover,.ghost:hover{transform:translateY(-2px);filter:brightness(1.08)}
.menu-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.menu-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;color:#a7b4bb;font-size:12px}.menu-meta span{padding:7px 10px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(0,0,0,.22)}
.feature-rail{justify-self:end;align-self:end;width:min(470px,42vw);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.feature{min-height:120px;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(5,10,14,.57);backdrop-filter:blur(12px)}.feature strong{display:block;font-size:14px;margin-bottom:7px}.feature span{font-size:12px;color:#b9c4cb;line-height:1.45}.feature em{display:block;color:#7de587;font-style:normal;font-weight:900;font-size:22px;margin-bottom:8px}
.corner-controls{position:absolute;right:22px;top:18px;display:flex;gap:8px}.icon-button{width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.48);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px)}

/* Loading */
#loading{display:grid;place-items:center;background:#080d11}.loading-card{text-align:center;width:min(460px,86vw)}.loading-card img{width:90px;image-rendering:pixelated}.loading-card h2{margin:16px 0 8px}.progress-track{height:8px;border-radius:99px;background:#1a252c;overflow:hidden}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,#4dc95d,#e8d15d);transition:width .2s}.loading-status{font-size:12px;color:#aab7be;margin-top:10px}

/* Game */
#game{background:linear-gradient(#79b9ed,#dff4ff)}
#glcanvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
#sky-sun{position:absolute;width:64px;height:64px;border-radius:50%;background:#fff2bd;box-shadow:0 0 50px 18px rgba(255,226,137,.52);pointer-events:none;left:70%;top:14%;transition:background .5s,box-shadow .5s}
#crosshair{position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 1px 2px #000)}#crosshair:before,#crosshair:after{content:"";position:absolute;background:white;border-radius:2px}#crosshair:before{width:2px;height:18px;left:9px;top:1px}#crosshair:after{height:2px;width:18px;top:9px;left:1px}
#status{position:absolute;left:18px;top:18px;display:grid;gap:8px;pointer-events:none}.status-line{display:flex;gap:3px;padding:7px 9px;border-radius:9px;background:rgba(8,13,17,.55);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px)}.status-line img{width:18px;height:18px;image-rendering:pixelated}.pip{width:18px;height:18px;background-size:contain;background-repeat:no-repeat;image-rendering:pixelated;opacity:.22}.pip.on{opacity:1}.pip.heart{background-image:url('assets/ui/heart.png')}.pip.hunger{background-image:url('assets/ui/hunger.png')}
#world-info{position:absolute;right:16px;top:16px;min-width:160px;padding:12px 14px;border-radius:12px;background:rgba(8,13,17,.58);border:1px solid rgba(255,255,255,.12);font:700 12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:#e8f3f7;backdrop-filter:blur(7px)}#world-info b{color:#87e48d}
#toast{position:absolute;left:50%;top:20%;transform:translateX(-50%) translateY(-8px);padding:10px 16px;border-radius:999px;background:rgba(6,10,14,.78);border:1px solid rgba(255,255,255,.15);font-weight:800;font-size:13px;opacity:0;transition:.25s;pointer-events:none}.toast-show{opacity:1!important;transform:translateX(-50%) translateY(0)!important}
#hotbar{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:10px;background:rgba(13,18,21,.68);border:1px solid rgba(255,255,255,.19);backdrop-filter:blur(7px);box-shadow:0 12px 35px rgba(0,0,0,.28)}.slot{position:relative;width:54px;height:54px;border-radius:7px;background:rgba(255,255,255,.08);border:2px solid transparent;display:grid;place-items:center;transition:.15s}.slot.active{border-color:white;background:rgba(255,255,255,.20);transform:translateY(-5px)}.slot img{width:38px;height:38px;image-rendering:pixelated}.slot small{position:absolute;right:4px;bottom:1px;font:800 11px ui-monospace,monospace;text-shadow:0 1px 2px #000}.slot kbd{position:absolute;left:4px;top:2px;color:#c9d3d8;font:700 9px ui-monospace,monospace}
#hand-item{position:absolute;right:3vw;bottom:0;width:min(24vw,250px);height:min(35vh,340px);transform:rotate(-15deg);transform-origin:bottom right;pointer-events:none;filter:drop-shadow(0 18px 14px rgba(0,0,0,.4));transition:transform .15s}#hand-item.swing{animation:handSwing .22s ease}@keyframes handSwing{50%{transform:rotate(24deg) translate(-35px,20px)}}#hand-item img{position:absolute;right:15%;bottom:-5%;width:55%;image-rendering:pixelated}
#block-label{position:absolute;left:50%;bottom:88px;transform:translateX(-50%);font-size:12px;font-weight:800;text-shadow:0 2px 4px #000;pointer-events:none}
#lock-hint{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);padding:12px 18px;border-radius:12px;background:rgba(6,10,13,.68);border:1px solid rgba(255,255,255,.16);font-size:13px;text-align:center;pointer-events:none}

/* Overlays */
.overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(2,5,7,.75);backdrop-filter:blur(10px);z-index:30}.panel{width:min(560px,90vw);max-height:86vh;overflow:auto;padding:28px;border-radius:22px;background:#10181d;border:1px solid rgba(255,255,255,.15);box-shadow:var(--shadow)}.panel h2{font-size:30px;margin:0 0 8px}.panel p{color:#b8c2c7;line-height:1.55}.panel-actions{display:grid;gap:10px;margin-top:22px}.inventory-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0}.inventory-item{aspect-ratio:1;border-radius:10px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);display:grid;place-items:center}.inventory-item img{width:70%;image-rendering:pixelated}.help-list{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:14px}.help-list kbd{padding:4px 7px;border-radius:5px;background:#263238;border-bottom:2px solid #111}.help-list span{color:#bdc7cc}

/* Mobile controls */
#mobile-controls{display:none;position:absolute;inset:0;pointer-events:none}.joy{position:absolute;left:22px;bottom:22px;width:130px;height:130px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:rgba(5,10,15,.25);pointer-events:auto;touch-action:none}.joy-knob{position:absolute;left:42px;top:42px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.45);border:2px solid rgba(255,255,255,.65)}.mobile-actions{position:absolute;right:18px;bottom:18px;display:grid;grid-template-columns:repeat(2,64px);gap:10px;pointer-events:auto}.mobile-action{height:64px;border-radius:50%;background:rgba(9,15,19,.55);border:1px solid rgba(255,255,255,.25);font-weight:900;font-size:11px;backdrop-filter:blur(7px)}.mobile-action.primary-action{background:rgba(75,192,91,.7)}

#fatal{position:absolute;inset:0;display:grid;place-items:center;background:#0b1014;padding:24px;text-align:center;z-index:99}#fatal .panel{max-width:680px}

@media(max-width:900px){
  #menu{grid-template-columns:1fr;align-content:center;padding:20px}.feature-rail{display:none}.menu-bg{background-image:linear-gradient(0deg,rgba(2,5,8,.94),rgba(2,5,8,.35)),url('assets/menu/background.9.png')}.menu-card{margin:auto}.menu-row{grid-template-columns:1fr}.brand img{width:62px;height:62px}.brand h1{font-size:43px}
  #mobile-controls{display:block}#hotbar{bottom:12px;max-width:calc(100vw - 190px);overflow-x:auto;left:50%;transform:translateX(-50%)}.slot{min-width:42px;width:42px;height:42px}.slot img{width:30px;height:30px}#hand-item{right:0;bottom:50px;width:140px;height:200px}#world-info{top:10px;right:10px;font-size:10px;min-width:130px}#status{top:10px;left:10px}.pip{width:14px;height:14px}.status-line{padding:5px}.mobile-actions{bottom:76px}.joy{bottom:80px}
}
@media(max-width:520px){.brand{gap:12px}.brand h1{font-size:36px}.menu-card{padding:21px}.menu-card p{font-size:13px}.primary,.secondary,.ghost{min-height:48px}.corner-controls{top:10px;right:10px}.slot:nth-child(n+7){display:none}.mobile-actions{grid-template-columns:repeat(2,56px)}.mobile-action{height:56px}.joy{width:112px;height:112px}.joy-knob{left:36px;top:36px;width:40px;height:40px}}

/* V2 source/reference controls */
.edition-tabs{display:flex;gap:8px;margin:0 0 18px}.edition-tab{padding:9px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.22);color:#aebbc2;font-size:10px;font-weight:850;letter-spacing:.1em}.edition-tab.active{background:#73dc78;color:#09220d;border-color:transparent}.pack-list{display:grid;gap:9px;margin-top:18px}.pack-list article{display:grid;grid-template-columns:76px 1fr;gap:12px;padding:13px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.04)}.pack-list b{color:#82e489}.pack-list span{color:#b7c2c8;font-size:13px;line-height:1.45}.source-packs-panel{width:min(720px,92vw)}
