@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;600;700;900&family=Rajdhani:wght@500;600;700&display=swap');
:root{--cream:#f7f3df;--amber:#f2c65c;--dark:#101914;--glass:rgba(12,22,17,.76);--line:rgba(255,255,255,.15)}
*{box-sizing:border-box}html,body,#game,#scene{width:100%;height:100%;margin:0;overflow:hidden}
body{background:#82b5d0;color:var(--cream);font-family:"Noto Sans SC",sans-serif;user-select:none}
canvas{display:block;width:100%;height:100%}
#weather,#underwater,#vignette,#hud{position:fixed;inset:0;pointer-events:none}
#weather{opacity:0;transition:opacity 1s;background:linear-gradient(#23344155,#62747b22)}
#weather.active{opacity:1}
#underwater{z-index:1;opacity:0;transition:opacity .28s;background:linear-gradient(180deg,rgba(18,105,119,.42),rgba(5,60,72,.58));box-shadow:inset 0 0 120px rgba(1,34,43,.58);mix-blend-mode:multiply}
#underwater.active{opacity:1}
#vignette{z-index:2;background:radial-gradient(circle,transparent 50%,rgba(3,9,7,.38) 120%)}#hud{z-index:3}
#stats{display:none;position:absolute;left:8px;top:8px;max-width:620px;padding:5px;color:#fff;background:#0007;font:600 13px/1.35 monospace;white-space:pre-line;text-shadow:1px 1px #000}
#stats.visible{display:block}
#status-bars{position:absolute;left:50%;bottom:78px;width:364px;transform:translateX(-50%);display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;text-shadow:2px 2px #000}
#status-bars.creative-hidden{display:none}
#stellar-hud{display:none;position:absolute;left:24px;top:24px;width:280px;padding:14px 16px;color:#dffcff;background:linear-gradient(135deg,#071521d9,#15254ad1);border-left:3px solid #68e4ff;box-shadow:0 0 28px #248bc944;text-shadow:1px 1px #001;clip-path:polygon(0 0,94% 0,100% 18%,100% 100%,6% 100%,0 82%)}
body.stellar-mode #stellar-hud{display:flex;flex-direction:column;gap:4px}#stellar-hud strong{color:#fff;font:700 20px Rajdhani;letter-spacing:.08em}#stellar-hud span{font-size:11px}#stellar-hud small{margin-top:6px;color:#78d9ef;font:600 10px Rajdhani}#stellar-hud b{margin-top:5px;color:#fff59d;font-size:11px}.stellar-meter{height:6px;margin-top:5px;background:#03111c;border:1px solid #4b7892}.stellar-meter i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#ff765e,#72efff);transition:width .2s}
#stellar-flight{display:none;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:4px}body.stellar-piloting #stellar-flight{display:grid}#stellar-flight span{padding:4px 3px;color:#9feeff;background:#03111ca8;border:1px solid #315a70;text-align:center;font:600 10px Rajdhani}#stellar-flight .warning{color:#ffbc70;border-color:#b9693d}
body.stellar-piloting #crosshair{background:none;border:1px solid #70e5ff;border-radius:50%;width:52px;height:52px}body.stellar-piloting #held-item,body.stellar-piloting #hotbar,body.stellar-piloting #status-bars{opacity:.18}
#warp-overlay{display:none;position:fixed;inset:0;z-index:60;place-items:center;color:#e9fbff;background:radial-gradient(circle at center,#2cb7ff44 0,#06091de8 48%,#000 100%);overflow:hidden}#warp-overlay.active{display:grid}#warp-overlay:before,#warp-overlay:after{content:"";position:absolute;inset:-70%;background:repeating-conic-gradient(from 0deg,transparent 0 2deg,#71e8ff88 2.2deg 2.35deg,transparent 2.5deg 5deg);animation:warp-spin .75s linear infinite;mask:radial-gradient(circle,transparent 0 8%,#000 24%)}#warp-overlay:after{animation-direction:reverse;animation-duration:1.3s;opacity:.45}.warp-core{width:90px;height:90px;border:3px solid #bdf7ff;border-radius:50%;box-shadow:0 0 25px #fff,0 0 90px #35cfff;animation:warp-core .7s ease-in-out infinite alternate}#warp-overlay strong,#warp-overlay span{position:absolute;z-index:2;text-shadow:0 0 14px #35cfff}#warp-overlay strong{top:64%;font:700 32px Rajdhani;letter-spacing:.2em}#warp-overlay span{top:70%;font:600 14px Rajdhani;color:#88ddff;letter-spacing:.12em}@keyframes warp-spin{to{transform:rotate(1turn) scale(1.18)}}@keyframes warp-core{to{transform:scale(1.5);opacity:.5}}body.warping #hud,body.warping #stellar-hud{opacity:0}
#warp-planet{position:absolute;right:8%;bottom:-42%;width:min(48vw,620px);aspect-ratio:1;border-radius:50%;opacity:0;background:radial-gradient(circle at 35% 28%,#d7fbff 0,#4c9fc7 18%,#31537c 44%,#10152e 72%);box-shadow:-40px -20px 90px #6de8ff55,inset -70px -45px 100px #02030de8;transition:opacity 1s,transform 1.4s;transform:translate(25%,35%) scale(.5)}#warp-overlay.arrival #warp-planet{opacity:1;transform:translate(0,0) scale(1)}#warp-overlay.arrival:before,#warp-overlay.arrival:after{opacity:.08}
.hud-icons{display:flex;height:20px;align-items:center}.hud-icons#hunger{justify-content:flex-end}.hud-icon{width:18px;height:18px;background-size:18px 18px;background-repeat:no-repeat;image-rendering:pixelated}.heart-full{background-image:url("assets/faithful/gui/heart/full.png")}.heart-half{background-image:url("assets/faithful/gui/heart/half.png")}.heart-empty{background-image:url("assets/faithful/gui/heart/container.png")}.food-full{background-image:url("assets/faithful/gui/food_full.png")}.food-empty{background-image:url("assets/faithful/gui/food_empty.png")}
.xp{grid-column:1/3;display:flex;align-items:center;gap:5px;color:#80ff20;font:700 13px Rajdhani}.xp>div{flex:1;height:10px;background:url("assets/faithful/gui/experience_bar_background.png") center/100% 100% no-repeat;image-rendering:pixelated}.xp i{display:block;height:100%;width:32%;background:url("assets/faithful/gui/experience_bar_progress.png") left center/364px 100% no-repeat;transition:width .2s}
#block-name{position:absolute;left:50%;bottom:120px;transform:translateX(-50%);color:#fff;font-size:13px;text-shadow:2px 2px #222;opacity:0;transition:opacity .15s}#block-name.visible{opacity:1}
#chat-log{position:absolute;left:4px;bottom:72px;width:min(720px,70vw);display:flex;flex-direction:column-reverse;gap:1px;color:#fff;font:500 16px/1.25 monospace;text-shadow:2px 2px #222;pointer-events:none}
#chat-log .chat-line{width:max-content;max-width:100%;padding:1px 4px;background:#0007;overflow-wrap:anywhere;animation:chat-fade 10s forwards}
#chat-log .chat-line.command{color:#ddd}#chat-log .chat-line.error{color:#ff5555}#chat-log .chat-line.success{color:#aaa}
#chat-log.open .chat-line{animation:none}
#chat-box{position:fixed;z-index:40;left:2px;right:2px;bottom:2px;display:none;margin:0}
#chat-box.open{display:block}
#chat-input{width:100%;height:28px;padding:3px 5px;color:#fff;background:#000b;border:0;outline:0;font:500 16px/22px monospace;text-shadow:2px 2px #222;caret-color:#fff;user-select:text}
@keyframes chat-fade{0%,80%{opacity:1}100%{opacity:0}}
#crosshair{position:fixed;left:50%;top:50%;width:30px;height:30px;transform:translate(-50%,-50%);pointer-events:none;background:url("assets/faithful/gui/crosshair.png") center/30px 30px no-repeat;image-rendering:pixelated}
#break-ring{display:none}
#hotbar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:0;padding:2px;background:url("assets/faithful/gui/hotbar.png") center/100% 100% no-repeat;image-rendering:pixelated}
#held-item{position:fixed;right:2.5vw;bottom:-1vh;width:240px;height:240px;z-index:0;transform-origin:82% 88%;pointer-events:none;image-rendering:pixelated}
#held-item .held-icon{position:absolute;background-position:center;background-size:contain!important;background-repeat:no-repeat!important;image-rendering:pixelated;filter:drop-shadow(6px 8px 0 #0005)}
/* Java版 item/generated 与 item/handheld 的 firstperson_righthand 变换：Y -90°、Z 25°、缩放约 .68。 */
#held-item.held-generated .held-icon,#held-item.held-handheld .held-icon{right:4px;bottom:-2px;width:205px;height:205px;transform:perspective(420px) rotateY(-24deg) rotateZ(25deg) scale(.68);transform-origin:70% 72%}
#held-item.held-handheld .held-icon{right:-8px;bottom:-12px;width:225px;height:225px}
/* 原版方块物品在第一人称使用独立的方块模型变换，而不是放大的 GUI 图标。 */
#held-item.held-block .held-icon.block-item{left:auto;right:88px;top:87px;bottom:auto;width:32px;height:32px;transform:perspective(420px) rotateY(45deg) scale(4.1);transform-origin:center;filter:drop-shadow(2px 3px 0 #0006)!important}
#held-item.swing{animation:held-swing .28s cubic-bezier(.2,.75,.35,1)}
#held-item.mining{animation:held-mine .42s ease-in-out infinite}
@keyframes held-swing{0%{transform:translate(0,0) rotate(0)}45%{transform:translate(-70px,70px) rotate(-34deg) scale(.88)}100%{transform:translate(0,0) rotate(0)}}
@keyframes held-mine{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-48px,48px) rotate(-25deg) scale(.92)}}
.slot{position:relative;width:40px;height:40px;display:grid;place-items:center;isolation:isolate;transition:.08s}
.slot-backdrop{position:absolute!important;inset:3px;z-index:0!important;display:block;background:#8b8b8b;pointer-events:none}
.slot.selected:after{content:"";position:absolute;inset:-4px;background:url("assets/faithful/gui/hotbar_selection.png") center/100% 100% no-repeat;image-rendering:pixelated;z-index:2;pointer-events:none}.slot>*{position:relative;z-index:1}
.swatch{width:32px;height:32px;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;image-rendering:pixelated;filter:drop-shadow(2px 2px #0008)}
.item-icon{display:block;background-position:center!important;background-repeat:no-repeat!important}
.door-item{background-color:transparent!important;background-size:contain!important}
.slot>b{position:absolute;right:3px;bottom:2px;font:700 9px Rajdhani}.slot .name{display:none}
.overlay{position:fixed;inset:0;z-index:10;display:grid;place-items:center;background:linear-gradient(115deg,#0b1711d9,#17313a73);opacity:0;pointer-events:none;backdrop-filter:blur(0);transition:.3s}
.overlay.open{opacity:1;pointer-events:auto;backdrop-filter:blur(8px)}
.hero-card,.menu-card,.settings-card,.station-card{width:min(540px,calc(100% - 34px));padding:42px 46px;background:linear-gradient(145deg,#17261fee,#0e1915ed);border:1px solid var(--line);border-top:3px solid var(--amber);box-shadow:0 30px 90px #0009;transform:translateY(14px);transition:.3s}
.overlay.open>div{transform:none}.hero-card,.menu-card{text-align:center}.eyebrow{margin:0 0 8px;color:var(--amber);font:700 10px Rajdhani;letter-spacing:.3em}
h1{margin:0;font-size:clamp(68px,12vw,98px);line-height:1;letter-spacing:.12em;font-weight:900}h2{margin:0 0 25px;font-size:42px;letter-spacing:.1em}
.subtitle{max-width:400px;margin:18px auto 27px;color:#c9d2cc;font-size:13px;line-height:1.9}
button,select{color:#e8eee9;background:#ffffff0b;border:1px solid #ffffff25;font:700 13px "Noto Sans SC";cursor:pointer;transition:.17s}
button{width:100%;padding:12px 17px;margin:4px 0}button:hover{background:#ffffff1c;border-color:#ffffff45}button.primary{color:#20291c;background:var(--amber);border-color:var(--amber)}button.primary:hover{background:#ffda7a}.primary span{float:right}.danger{color:#ff9f91}
.keys{display:flex;justify-content:center;gap:17px;flex-wrap:wrap;margin:24px 0 0;color:#aebbb3;font-size:10px}kbd{padding:3px 6px;border:1px solid #ffffff38;border-bottom-width:2px;font:600 11px Rajdhani;color:#fff}
.menu-head{display:flex;justify-content:space-between;align-items:start}.menu-head h2{margin-bottom:15px}.close{width:39px;margin:0;font-size:22px;padding:4px}
.settings-card label,.weather-row{display:block;margin:16px 0;color:#cdd6d0;font-size:12px}.settings-card label>span,.weather-row>span{display:block;margin-bottom:8px}.settings-card label b{color:var(--amber)}
.quality-control{padding:11px 12px;border:1px solid #ffffff16;background:linear-gradient(90deg,#ffffff08,transparent)}.quality-control>span{display:flex!important;justify-content:space-between;gap:16px}.quality-control b{font:600 10px Rajdhani;letter-spacing:.04em}
input[type=range]{width:100%;accent-color:var(--amber)}select{width:100%;padding:10px}.weather-row div{display:flex;gap:5px}.weather-row button{font-size:11px}.weather-row button.active{color:#252b1c;background:var(--amber);border-color:var(--amber)}
label.toggle{display:flex;align-items:center;justify-content:space-between}.toggle span{margin:0!important}.toggle input{display:none}.toggle i{width:37px;height:19px;background:#ffffff24;border-radius:20px;padding:3px}.toggle i:after{content:"";display:block;width:13px;height:13px;border-radius:50%;background:#aaa;transition:.2s}.toggle input:checked+i{background:#d2aa4f}.toggle input:checked+i:after{transform:translateX(18px);background:#fff}
.settings-note{margin:23px 0 0;color:#7f8e85;font-size:10px}
.station-card{width:min(820px,calc(100% - 28px));max-height:90vh;overflow:auto;padding:27px 31px;text-align:left}.station-card h2{font-size:31px;margin-bottom:14px}.station-card h3{margin:14px 0 8px;font-size:12px;letter-spacing:.14em;color:#bac7bf}.station-note{margin:15px 0 0;color:#7f8e85;font-size:10px}
.item-grid{display:grid;grid-template-columns:repeat(9,minmax(42px,1fr));gap:5px}.item-slot{position:relative;min-height:54px;padding:5px 3px;background:#ffffff0a;border:1px solid #ffffff20;color:#eaf0eb;text-align:center;cursor:pointer}.item-slot:hover{border-color:#f2c65c99;background:#f2c65c12}.item-slot.empty{opacity:.3}.item-icon{display:block;width:32px;height:32px;margin:0 auto 2px;background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;image-rendering:pixelated}.item-slot small{display:block;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-slot b{position:absolute;right:4px;bottom:2px;font:700 9px Rajdhani}.durability{position:absolute;left:4px;right:4px;bottom:2px;height:2px;background:#0008}.durability i{display:block;height:100%;background:#6fdb72}
.craft-layout{display:grid;grid-template-columns:175px 1fr;gap:18px;align-items:start}.craft-grid{display:grid;grid-template-columns:repeat(3,50px);gap:5px}.recipe-list{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.recipe{padding:8px;margin:0;font-size:10px;text-align:left}.recipe:disabled{opacity:.35;cursor:not-allowed}.station-flow{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0}.machine-slot{width:90px;min-height:70px;padding:10px;background:#ffffff0b;border:1px solid #ffffff27;text-align:center}.machine-slot strong{display:block;color:var(--amber);font-size:11px}.machine-slot span{font-size:10px}.progress{height:7px;flex:1;max-width:220px;background:#080e0b;border:1px solid #ffffff20}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#d87a35,#f2c65c)}.fuel i{background:#e05b32}.chest-title{display:flex;justify-content:space-between;align-items:center}
#toast{position:fixed;z-index:30;left:50%;top:15%;transform:translate(-50%,-8px);padding:8px 14px;color:#fff;background:#101a16e8;border-left:2px solid var(--amber);font-size:11px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}
#loading{position:fixed;right:22px;bottom:22px;display:flex;gap:8px;align-items:center;padding:7px 10px;background:#0d1713bf;font-size:9px;letter-spacing:.1em;opacity:0;transition:.2s}#loading.show{opacity:1}#loading i{width:10px;height:10px;border:2px solid #ffffff38;border-top-color:var(--amber);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}#loading i{animation-duration:1.8s}}
@media(max-width:760px){.hero-card,.menu-card,.settings-card,.station-card{padding:24px 16px}#stats{left:6px;top:6px}.slot{width:34px;height:34px}.swatch{width:27px;height:27px}.swatch.block-item{transform:scale(.84)}#status-bars{bottom:64px;width:306px}#hotbar{bottom:14px}.item-grid{grid-template-columns:repeat(6,1fr)}.craft-layout{grid-template-columns:1fr}.recipe-list{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.launcher-tools{grid-template-columns:repeat(3,1fr)}.connect-grid{grid-template-columns:1fr}.connect-heading{align-items:start}.connect-heading>span{margin-top:8px}.launcher-foot{gap:12px}.world-actions{grid-template-columns:1fr}}

/* Faithful / Minecraft 界面层 */
:root{--mc-gray:#c6c6c6;--mc-dark:#373737;--mc-light:#fff;--slot:44px}
.overlay{background:rgba(0,0,0,.54);backdrop-filter:none!important}
.mc-menu,.mc-panel,.station-card{font-family:"Noto Sans SC",sans-serif;text-shadow:2px 2px #222}
.hero-card,.menu-card{border:0;box-shadow:none;background:transparent;transform:none}
.mc-menu{width:min(600px,92vw);padding:20px;text-align:center}.mc-menu h1{position:relative;margin:0 auto 52px;font-size:0}
.mc-menu h1 span{display:block;color:#ddd;font:900 clamp(52px,9vw,82px)/.9 Rajdhani;letter-spacing:-.06em;transform:scaleY(1.15);text-shadow:4px 4px #292929,-3px -3px #fff7}
.webclient-brand{position:relative;margin:0 auto 42px}.webclient-brand h1{margin-bottom:0}.webclient-brand>b{display:block;margin-top:12px;color:#f4f4f4;font:900 17px Rajdhani;letter-spacing:.42em;text-shadow:2px 2px #111}.webclient-brand>small{display:block;margin-top:5px;color:#b8c6bd;font:700 9px Rajdhani;letter-spacing:.3em}.webclient-brand.small{margin-bottom:24px;transform:scale(.76)}
.primary-entry{height:48px!important;margin:12px 0!important;font-size:17px!important}.launcher-tools{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:20px}.launcher-tools .mc-button{height:38px;margin:0;font-size:11px}.launcher-link{display:grid!important;place-items:center;padding:0!important;text-decoration:none}.launcher-exit{color:#ffb0a5}.launcher-foot{display:flex;justify-content:space-between;margin-top:22px;color:#d2d2d2;font-size:10px;text-shadow:1px 1px #111}
.start-page{display:none;position:relative}.start-page.active{display:block}
.splash-text{position:absolute;right:8px;top:78px;color:#ffff55;font:700 18px/1.1 Rajdhani;transform:rotate(-18deg);text-shadow:2px 2px #3f3f00;animation:splash-pulse .8s ease-in-out infinite alternate}
@keyframes splash-pulse{to{transform:rotate(-18deg) scale(1.08)}}
.world-menu{width:min(760px,94vw)!important}.world-menu h2,.create-world-menu h2{margin:0 0 24px;color:#fff;font-size:24px}.world-list{height:min(390px,48vh);margin-bottom:14px;padding:5px;overflow:auto;background:#080808aa;border:2px solid;border-color:#222 #aaa #aaa #222}.world-entry{display:block;width:100%;height:76px;margin:0;padding:9px 16px;color:#fff;background:#1118;border:2px solid transparent;text-align:left;text-shadow:2px 2px #222}.world-entry.selected,.world-entry:hover{border-color:#fff;background:#333d}.world-entry span,.world-entry small{display:block}.world-entry span{font-size:18px}.world-entry small{margin-top:5px;color:#aaa;font-size:12px}.world-empty{display:grid;height:100%;place-items:center;color:#aaa;font-size:14px}.world-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.server-entry{height:64px}.server-entry small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exit-menu{color:#fff}.exit-menu h2{font-size:30px}.exit-menu p{margin:0 0 28px;color:#ddd;line-height:1.8}
.connect-heading{display:flex;align-items:end;justify-content:space-between;text-align:left}.connect-heading small{color:#aaa;font:700 9px Rajdhani;letter-spacing:.25em}.connect-heading h2{margin:4px 0 8px}.connect-heading>span{margin-bottom:12px;padding:5px 8px;color:#ffdb73;background:#0009;border:1px solid #ffffff30;font-size:10px}.connect-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:12px}.connect-grid .world-field{margin:8px 0}.quick-connect{margin:12px 0 8px}.connect-save{display:flex;align-items:center;gap:8px;margin:8px 0 13px;color:#ddd;font-size:12px;text-align:left}.compact-server-list{height:150px}.connect-actions{margin-top:10px}.credits-menu{color:#fff}.credits-menu h2{font-size:26px}.credits-menu p{color:#d0d7d2;line-height:1.8}.credits-links{display:flex;justify-content:center;gap:18px}.credits-links a{color:#8dd5ff}
.stellar-button{color:#dffcff!important;outline-color:#5fc8e8!important;background:linear-gradient(#38647c,#263d62)!important}.stellar-menu{color:#e9fbff}.stellar-menu h2{margin:8px 0 18px;font:700 44px Rajdhani;letter-spacing:.12em}.stellar-menu p{margin:0 0 22px;color:#bcd2df;font-size:13px;line-height:1.8}.stellar-mark{color:#70e5ff;font:700 11px Rajdhani;letter-spacing:.45em}
.stellar-menu .world-list{height:238px}.local-save-note{display:block;margin:8px 0 12px;color:#85a5b8;font:500 11px/1.6 "Noto Sans SC";text-align:left}
.create-world-menu{width:min(640px,94vw)!important}.world-field{display:block;margin:20px 0;color:#fff;text-align:left;font-size:14px}.world-field span{display:block;margin-bottom:8px}.world-field input{width:100%;height:40px;padding:6px 10px;color:#fff;background:#111;border:2px solid;border-color:#333 #ddd #ddd #333;outline:0;font:15px "Noto Sans SC";user-select:text}.world-field input:focus{border-color:#fff}
.mc-button{display:block;width:100%;height:42px;margin:8px 0;padding:0;color:#fff;background:linear-gradient(#777,#555);border:2px solid #000;outline:2px solid #aaa;box-shadow:inset 2px 2px #aaa,inset -2px -2px #333;text-shadow:2px 2px #222;font-size:15px}
.mc-button:hover{color:#ffffa0;background:linear-gradient(#7185b5,#526799);outline-color:#aab8e3}.mc-button.disabled{opacity:.45;cursor:not-allowed}
.game-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.game-mode-row .active{color:#ffffa0;background:linear-gradient(#7185b5,#526799);outline-color:#aab8e3}
.menu-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pause-menu h2{font-size:25px;margin-bottom:30px}
#start{background:linear-gradient(#0005,#0005),url("assets/menu-panorama.jpg") center/cover no-repeat}
.mc-panel,.station-card{color:#3f3f3f;text-shadow:none;background:var(--mc-gray);border:4px solid;border-color:#fff #555 #555 #fff;box-shadow:0 0 0 3px #000;padding:22px}
.settings-card h2{width:100%;color:#333;text-align:center;font-size:25px}.settings-card label,.weather-row{color:#333}.settings-card .settings-note{color:#555}
.settings-card button:not(.pixel-close),.settings-card select{color:#fff;background:#666;border:2px solid;border-color:#aaa #333 #333 #aaa;text-shadow:1px 1px #222}
.pixel-close{position:absolute;right:8px;top:8px;width:28px;height:28px;margin:0;padding:0;color:#fff;background:#777;border:2px solid;border-color:#aaa #333 #333 #aaa;font-size:18px;text-shadow:1px 1px #222}
.station-card{position:relative;width:auto;min-width:436px;max-height:96vh;overflow:auto;padding:18px 22px 16px}
.station-card.crafting-ui{width:586px}.station-card.chest-ui{width:436px}.station-card.furnace-ui{width:436px}
.gui-label{display:block;height:22px;color:#404040;font-size:13px}.station-note{margin:10px 0 0;color:#555;text-align:center;font-size:10px}
.slot-grid{display:grid;grid-template-columns:repeat(9,var(--slot));gap:0}
.player-inventory{padding-top:4px}.player-inventory .gui-slot:nth-child(n+28){margin-top:13px}
.gui-slot{position:relative;width:var(--slot);height:var(--slot);padding:0;margin:0;background:#8b8b8b;border:3px solid;border-color:#373737 #fff #fff #373737;cursor:pointer}
.gui-slot:hover:after{content:"";position:absolute;inset:0;background:#fff6}.gui-slot.output{border-color:#fff #555 #555 #fff}
.gui-slot .item-icon{width:36px;height:36px;margin:1px auto}.gui-slot b,#cursor-stack b{position:absolute;right:2px;bottom:0;color:#fff;font:700 14px Rajdhani;text-shadow:2px 2px #222;z-index:3}
.gui-slot .durability{bottom:2px;height:3px}
#station-body{margin-bottom:12px}.station-top{position:relative;min-height:118px}.station-title{display:block;margin-bottom:12px;color:#404040;font-size:14px}
.craft-area{display:flex;align-items:center;gap:18px;padding-left:12px}.craft-input{display:grid;grid-template-columns:repeat(3,var(--slot))}.craft-arrow{font-size:34px;color:#555}.craft-result{margin-left:5px}
.craft-input.craft-2x2{grid-template-columns:repeat(2,var(--slot))}.inventory-craft{min-height:108px;padding-left:70px}
.recipe-hint{position:absolute;right:0;top:0;width:175px;color:#555;font-size:10px;line-height:1.5}.recipe-hint strong{display:block;font-size:12px}
.chest-grid{display:grid;grid-template-columns:repeat(9,var(--slot))}
.furnace-layout{position:relative;height:128px}.furnace-layout .input{position:absolute;left:90px;top:4px}.furnace-layout .fuel{position:absolute;left:90px;top:78px}.furnace-layout .output{position:absolute;right:68px;top:38px}
.furnace-fire{position:absolute;left:101px;top:52px;width:22px;height:28px;background:url("assets/faithful/container/burn_progress.png") bottom/22px 28px no-repeat;clip-path:inset(calc((1 - var(--burn))*100%) 0 0)}
.furnace-arrow{position:absolute;left:165px;top:40px;width:48px;height:34px;background:url("assets/faithful/container/lit_progress.png") left center/48px 34px no-repeat;clip-path:inset(0 calc((1 - var(--progress))*100%) 0 0)}
#cursor-stack{position:fixed;z-index:100;display:none;width:40px;height:40px;pointer-events:none;transform:translate(-17px,-17px)}
#cursor-stack.active{display:block}#cursor-stack .item-icon{width:38px;height:38px}
.tooltip{position:fixed;z-index:101;padding:6px 9px;color:#fff;background:#100010ee;border:2px solid #28005c;font-size:12px;pointer-events:none;text-shadow:1px 1px #222}
@media(max-width:620px){:root{--slot:34px}.station-card{min-width:340px;padding:16px 12px}.station-card.crafting-ui{width:390px}.gui-slot{width:var(--slot);height:var(--slot)}.gui-slot .item-icon{width:28px;height:28px}.recipe-hint{display:none}.craft-area{padding-left:0;gap:10px}.furnace-layout .output{right:48px}.furnace-layout .input,.furnace-layout .fuel{left:68px}.furnace-fire{left:76px}.furnace-arrow{left:130px}}

/* 原版 176×166 坐标系，以 2× 尺寸显示 Faithful container 原图。 */
#station{--gui:2;--slot:36px}
.station-card,.station-card.crafting-ui,.station-card.chest-ui,.station-card.furnace-ui{
  width:352px;height:332px;min-width:352px;max-height:none;padding:0;overflow:visible;
  border:0;box-shadow:0 0 0 4px #111;background-color:transparent;background-repeat:no-repeat;
  background-size:512px 512px;image-rendering:pixelated
}
.station-card.inventory-ui{background-image:url("assets/faithful/container/inventory.png")}
.station-card.crafting-ui{background-image:url("assets/faithful/container/crafting_table.png")}
.station-card.furnace-ui{background-image:url("assets/faithful/container/furnace.png")}
.station-card.chest-ui{height:336px;background-image:url("assets/faithful/container/generic_27.png");background-size:352px 336px;background-color:#c6c6c6}
.station-card.creative-ui{width:390px;height:272px;padding:0;border:0;box-shadow:0 0 0 4px #111;background:url("assets/faithful/container/creative_tab_items.png") 0 0/512px 512px no-repeat}
.creative-ui #inventory-panel{display:none}
.creative-tabs{position:absolute;left:4px;top:-34px;display:grid;grid-template-columns:repeat(5,74px);gap:2px}
.creative-tab{width:74px;height:30px;margin:0;padding:0;color:#333;background:#aaa;border:3px solid;border-color:#eee #555 #555 #eee;font-size:11px;text-shadow:none}
.creative-tab:hover,.creative-tab.active{color:#fff;background:#777;border-bottom-color:#c6c6c6}
.creative-head{position:absolute;left:18px;top:4px;width:324px;height:28px;color:#404040;font-size:13px;line-height:28px}
.creative-pager{position:absolute;right:0;top:0;display:flex;align-items:center;gap:4px;height:28px;text-shadow:none}.creative-pager button{width:25px;height:22px;margin:3px 0;padding:0;color:#fff;background:#777;border:2px solid;border-color:#aaa #333 #333 #aaa;font:700 17px/16px Rajdhani}.creative-pager button:disabled{color:#777;background:#aaa;border-color:#888;cursor:default}.creative-pager b{min-width:34px;color:#333;font:700 11px/28px Rajdhani;text-align:center}
#creative-search{width:324px;height:28px;padding:2px 7px;color:#fff;background:#111;border:2px solid #a0a0a0;outline:0;font:13px "Noto Sans SC";caret-color:#fff}
.creative-grid{position:absolute;left:18px;top:36px;display:grid;grid-template-columns:repeat(9,36px);grid-template-rows:repeat(5,36px);width:324px;height:180px;overflow:hidden;align-content:start}
.creative-bottom{position:absolute;left:18px;top:224px;width:364px;height:36px}.creative-hotbar{display:grid;grid-template-columns:repeat(9,36px);width:324px}
.destroy-slot{position:absolute;left:328px;top:0;color:#b22!important;background:transparent!important;font-size:24px!important;line-height:28px!important}
.pixel-close{right:-34px;top:0;z-index:8}
#station-body,#inventory-panel,.station-note{position:absolute;z-index:2}
#station-body{inset:0;margin:0}
#inventory-panel{left:16px;top:168px;width:324px}
#inventory-panel .gui-label,.station-title,.craft-arrow,.recipe-hint{display:none}
.chest-ui .station-title{display:block;position:absolute;left:16px;top:10px;margin:0;color:#404040;font-size:14px;line-height:18px}
.chest-ui #inventory-panel .gui-label{display:block;position:absolute;left:0;top:-22px;height:18px;color:#404040;font-size:14px;line-height:18px}
.station-note{left:50%;top:342px;width:580px;margin:0;transform:translateX(-50%);color:#eee;text-shadow:2px 2px #111}
.slot-grid,.craft-input,.chest-grid{gap:0}
.gui-slot{
  width:36px;height:36px;border:0;background:transparent;padding:0;isolation:isolate;image-rendering:pixelated
}
.gui-slot .slot-backdrop{inset:2px}
.gui-slot:hover:after{inset:2px;z-index:2;background:#fff7}
.gui-slot .item-icon,#cursor-stack .item-icon{
  position:relative;z-index:1;width:32px;height:32px;margin:2px;background-size:32px 32px!important;
  image-rendering:pixelated;filter:drop-shadow(2px 2px 0 #2228)
}
.block-item{position:relative;display:block;background:none!important;overflow:visible;filter:drop-shadow(2px 3px 0 #2228)!important}
.block-face{position:absolute;display:block;background-repeat:no-repeat;background-position:center;background-size:100% 100%;image-rendering:pixelated}
.block-face.top{left:2px;top:1px;width:28px;height:16px;background-image:var(--item-top);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);z-index:3}
.block-face.left{left:2px;top:9px;width:14px;height:22px;background-image:var(--item-side);clip-path:polygon(0 0,100% 36%,100% 100%,0 64%);filter:brightness(.82);z-index:2}
.block-face.right{left:16px;top:9px;width:14px;height:22px;background-image:var(--item-front,var(--item-side));clip-path:polygon(0 36%,100% 0,100% 64%,0 100%);filter:brightness(.98);z-index:2}
.gui-slot b,#cursor-stack b{right:1px;bottom:0;font-size:15px}
.player-inventory{padding:0;grid-template-columns:repeat(9,36px)}
.player-inventory .gui-slot:nth-child(n+28){margin-top:8px}
.station-top{position:absolute;inset:0;min-height:0}
.craft-area{position:absolute;inset:0;display:block;padding:0}
.craft-input{position:absolute;display:grid}
.crafting-ui .craft-input{left:58px;top:34px;grid-template-columns:repeat(3,36px)}
.crafting-ui .craft-result{position:absolute;left:248px;top:70px}
.inventory-ui .craft-input{left:196px;top:36px;grid-template-columns:repeat(2,36px)}
.inventory-ui .craft-result{position:absolute;left:308px;top:56px}
.armor-grid{position:absolute;left:16px;top:16px;display:grid;grid-template-columns:36px;grid-template-rows:repeat(4,36px)}
.armor-grid .gui-slot:empty:before{content:"";position:absolute;inset:8px;border:1px dashed #5558}
.armor-value{position:absolute;left:88px;top:142px;z-index:5;color:#404040;font:700 10px "Noto Sans SC";white-space:nowrap}
.player-model{position:absolute;left:52px;top:16px;width:102px;height:144px;overflow:hidden;perspective:260px}
.steve{position:absolute;left:50%;top:5px;width:64px;height:132px;transform:translateX(-50%) rotateY(-14deg);transform-style:preserve-3d;animation:steve-idle 3s ease-in-out infinite}
.steve i{position:absolute;display:block;background-image:url("assets/faithful/entity/steve.png");background-repeat:no-repeat;background-size:256px 256px;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 #0005)}
.steve-head{left:16px;top:0;width:32px;height:32px;background-position:-32px -32px}
.steve-body{left:16px;top:32px;width:32px;height:48px;background-position:-80px -80px}
.steve-arm{top:32px;width:16px;height:48px}.steve-arm.right{left:0;background-position:-176px -80px;transform-origin:8px 4px;transform:rotate(4deg)}.steve-arm.left{right:0;background-position:-144px -208px;transform-origin:8px 4px;transform:rotate(-4deg)}
.steve-leg{top:80px;width:16px;height:48px}.steve-leg.right{left:16px;background-position:-16px -80px}.steve-leg.left{right:16px;background-position:-80px -208px}
.steve .armor-piece{z-index:3;background-image:var(--armor-texture);background-size:256px 128px;filter:drop-shadow(2px 3px 0 #0006)}
.steve .armor-helmet{left:14px;top:-2px;width:36px;height:36px;background-position:-30px -30px}
.steve .armor-chest{left:14px;top:30px;width:36px;height:52px;background-position:-78px -78px}
.steve .armor-arm{top:30px;width:18px;height:52px}.steve .armor-arm.right{left:-1px;background-position:-175px -78px;transform:rotate(4deg)}.steve .armor-arm.left{right:-1px;background-position:-175px -78px;transform:scaleX(-1) rotate(4deg)}
.steve .armor-leg{top:78px;width:18px;height:51px;background-position:-15px -79px}.steve .armor-leg.right{left:15px}.steve .armor-leg.left{right:15px;transform:scaleX(-1)}
.steve .armor-boots{top:108px;height:24px;background-position:-15px -103px}
@keyframes steve-idle{50%{transform:translateX(-50%) rotateY(14deg) translateY(1px)}}
.chest-grid{position:absolute;left:16px;top:36px;display:grid;grid-template-columns:repeat(9,36px)}
.furnace-layout{position:absolute;inset:0;height:auto}
.furnace-layout .input{left:112px;top:34px}.furnace-layout .fuel{left:112px;top:106px}.furnace-layout .output{left:232px;right:auto;top:70px}
.furnace-fire{left:114px;top:72px;width:28px;height:28px;background-size:48px 32px}
.furnace-arrow{left:158px;top:68px;width:48px;height:34px;background-size:48px 34px}
#cursor-stack{width:36px;height:36px}
@media(max-width:430px){
  #station{transform:scale(.88)}
  #held-item{right:2vw;bottom:1vh;transform:scale(.76);transform-origin:right bottom}
  .station-note{display:none}
}

/* Java 版菜单：石质背景、像素化控件与分级设置页。 */
#pause,#settings{background:rgba(0,0,0,.58)}
.settings-card{position:relative;width:min(720px,94vw);height:min(520px,90vh);padding:32px 46px 28px;background:#c6c6c6 url("assets/faithful/block/stone.png") center/128px;box-shadow:inset 0 0 0 5px #ffffff55,0 0 0 4px #111}
.settings-card:before{content:"";position:absolute;inset:0;background:#c6c6c6e8;pointer-events:none}.settings-card>*{position:relative}
.settings-card h2{margin:0 0 28px;font-size:24px;text-shadow:2px 2px #fff;color:#333}
.settings-page{display:none;height:338px;overflow:auto}.settings-page.active{display:block}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.settings-card .mc-button,.language-entry{height:40px;margin:5px 0;padding:0;color:#fff;background:linear-gradient(#777,#555);border:2px solid #000;outline:2px solid #aaa;box-shadow:inset 2px 2px #aaa,inset -2px -2px #333;text-shadow:2px 2px #222}
.settings-card .mc-button:hover,.language-entry:hover,.language-entry.active{color:#ffffa0;background:linear-gradient(#7185b5,#526799);outline-color:#aab8e3}
#settings-back{position:absolute;left:25%;bottom:24px;width:50%}.settings-card label{margin:18px 4px;font-size:14px}.settings-card label>span{margin-bottom:10px}.settings-card input[type=range]{appearance:none;height:20px;background:#777;border:2px solid;border-color:#333 #fff #fff #333;accent-color:#7e7e7e}.settings-card input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:26px;background:#bbb;border:2px solid;border-color:#fff #444 #444 #fff}
.settings-card select{height:38px;padding:4px 10px}.key-help{margin:26px 4px;padding:14px;color:#333;background:#aaa;border:2px solid;border-color:#555 #eee #eee #555;font-size:13px;line-height:2;text-align:center}.language-entry{width:100%}
body.reduce-motion *{animation:none!important;transition:none!important}
@media(max-width:620px){.settings-card{height:min(500px,92vh);padding:25px 18px}.settings-grid{grid-template-columns:1fr}.settings-page{height:340px}}
