/* ===== SwampRealms: Delve (Stage 1) =====
   Loaded after styles.css and ui.css. Scoped to body.sbx-app / #sbx / .sbx-*.
   Layout: the canvas fills the stage; HUD, hotbar, touch pad and the bag panel float on top. */
body.sbx-app{background:#030706;overscroll-behavior:none}
body.sbx-app::before{background:radial-gradient(700px 420px at 50% -80px,#0f3a2f 0,transparent 70%),repeating-linear-gradient(90deg,#4ee6b406 0 1px,transparent 1px 46px),repeating-linear-gradient(0deg,#4ee6b406 0 1px,transparent 1px 46px)}
body.sbx-app .tabbar,body.sbx-app .betabadge{display:none}
@media(max-width:639px){body.sbx-app{padding-bottom:0}}
body.sbx-app footer{margin-top:28px}
#sbx{display:block;max-width:none;padding:0;margin:0;text-align:left}

/* ---- the game frame ---- */
.sbx-stage{position:relative;width:100%;height:calc(100dvh - 64px);min-height:440px;overflow:hidden;background:#06100d;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;--bc:#4ee6b4}
#sbxCv{display:block;position:absolute;inset:0;touch-action:none;outline:none;cursor:crosshair}
@media(min-width:900px){.sbx-stage{max-width:1180px;margin:14px auto 0;height:min(calc(100dvh - 110px),720px);border-radius:20px;border:1px solid #4ee6b455;box-shadow:0 30px 70px -30px #000,0 0 40px -18px #4ee6b4}}
#sbxStage.fs{position:fixed;inset:0;z-index:2147483000;width:auto;max-width:none;height:100dvh;min-height:0;margin:0;border:0;border-radius:0}
#sbxStage:not(.fs) #fsb .ex,#sbxStage.fs #fsb .en{display:none}

/* ---- HUD ---- */
.sbx-hud{position:absolute;left:8px;right:8px;top:max(8px,env(safe-area-inset-top));display:flex;align-items:flex-start;justify-content:space-between;gap:8px;pointer-events:none}
.sbx-hud>*{pointer-events:auto}
.sbx-ibtns{display:flex;gap:6px}
.sbx-ibtn{display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:14px;background:linear-gradient(160deg,#07120fe6,#030806d9);border:1px solid #4ee6b455;color:#c8fff4;cursor:pointer;text-decoration:none;box-shadow:0 6px 16px -8px #000}
.sbx-ibtn svg{width:22px;height:22px}
.sbx-ibtn:focus-visible,.sbx-slot:focus-visible,.sbx-pad button:focus-visible{outline:2px solid #f2c14e;outline-offset:2px}
.sbx-loc{display:flex;align-items:center;gap:9px;padding:7px 14px 7px 11px;border-radius:14px;background:linear-gradient(160deg,#07120fe6,#030806d9);border:1px solid color-mix(in srgb,var(--bc) 45%,transparent);box-shadow:0 6px 16px -8px #000;min-width:0}
.sbx-loc i{flex:none;width:11px;height:11px;border-radius:50%;background:var(--bc);box-shadow:0 0 10px var(--bc)}
.sbx-loc div{display:grid;line-height:1.15;min-width:0}
.sbx-loc b{font-size:.92rem;color:#f6eedb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbx-loc span{font-size:.74rem;color:#f6eedbb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbx-hint{position:absolute;left:50%;top:62px;transform:translate(-50%,-6px);max-width:min(92%,460px);padding:9px 14px;border-radius:12px;background:#07120fe6;border:1px solid #f2c14e66;color:#f6eedb;font-size:.84rem;font-weight:800;text-align:center;opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}
.sbx-hint.on{opacity:1;transform:translate(-50%,0)}
.sbx-toast{position:absolute;left:50%;top:64px;transform:translate(-50%,-8px);padding:8px 16px;border-radius:999px;background:#07120ff0;border:1px solid var(--tc,#4ee6b4);color:#f6eedb;font-weight:800;font-size:.86rem;opacity:0;pointer-events:none;white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis;box-shadow:0 0 22px -8px var(--tc,#4ee6b4)}
.sbx-toast.on{animation:sbxToast 2.4s ease forwards}
@keyframes sbxToast{0%{opacity:0;transform:translate(-50%,-8px)}10%,80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-4px)}}
.sbx-banner{position:absolute;left:50%;top:22%;transform:translate(-50%,10px) scale(.94);display:grid;gap:2px;justify-items:center;text-align:center;padding:14px 26px;border-radius:18px;background:linear-gradient(160deg,#0b1f19f2,#05100dee);border:1px solid #f2c14e;box-shadow:0 0 40px -10px #f2c14e,0 18px 40px -16px #000;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s;max-width:90%}
.sbx-banner.on{opacity:1;transform:translate(-50%,0) scale(1)}
.sbx-banner small{color:#f2c14e;font-weight:800;font-size:.74rem}
.sbx-banner b{font-family:"Bagel Fat One",Nunito,sans-serif;font-size:1.5rem;font-weight:400;color:#fff4d0;letter-spacing:.01em}
.sbx-banner span{color:#f6eedbcc;font-size:.88rem}

/* ---- hotbar ---- */
.sbx-bar{position:absolute;left:50%;transform:translateX(-50%);bottom:max(10px,env(safe-area-inset-bottom));display:flex;gap:5px;padding:6px;border-radius:16px;background:linear-gradient(160deg,#07120fe6,#030806d9);border:1px solid #4ee6b444;box-shadow:0 8px 22px -10px #000;max-width:calc(100% - 12px)}
.sbx-slot{position:relative;display:grid;place-items:center;width:46px;height:46px;padding:0;border-radius:11px;background:#0a1914;border:1px solid #4ee6b422;color:#f6eedb;cursor:pointer}
.sbx-slot img{width:30px;height:30px;image-rendering:pixelated}
.sbx-slot i{position:absolute;left:4px;top:2px;font-style:normal;font-size:.62rem;font-weight:800;color:#f6eedb88}
.sbx-slot b{position:absolute;right:4px;bottom:1px;font-size:.7rem;font-weight:800;text-shadow:0 1px 2px #000}
.sbx-slot.on{border-color:#f2c14e;background:#1b2a14;box-shadow:0 0 14px -4px #f2c14e}
@media(max-width:420px){.sbx-slot{width:43px;height:43px}.sbx-slot img{width:27px;height:27px}}

/* ---- touch pad (phones and tablets only) ---- */
.sbx-pad{display:none;position:absolute;left:10px;right:10px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 64px);justify-content:space-between;align-items:flex-end;pointer-events:none}
@media(pointer:coarse),(max-width:760px){.sbx-pad{display:flex}}
.sbx-pad .lr{display:flex;gap:10px}
.sbx-pad button{pointer-events:auto;display:grid;place-items:center;width:68px;height:68px;padding:0;border-radius:50%;background:#07120fb8;border:2px solid #4ee6b466;color:#c8fff4;touch-action:none;-webkit-tap-highlight-color:transparent}
.sbx-pad button svg{width:30px;height:30px}
.sbx-pad .jump{width:78px;height:78px;border-color:#f2c14e88;color:#ffe9a8}
.sbx-pad button.on{background:#4ee6b440;border-color:#4ee6b4;transform:scale(.95)}
.sbx-pad .jump.on{background:#f2c14e40;border-color:#f2c14e}

/* ---- bag / craft / map / goals panel ---- */
.sbx-panel{position:absolute;left:0;right:0;bottom:0;max-height:82%;padding:0;margin:0;max-width:none;text-align:left;display:flex;flex-direction:column;border-radius:20px 20px 0 0;background:linear-gradient(180deg,#0a1a15f7,#050e0bfb);border:1px solid #4ee6b455;border-bottom:0;box-shadow:0 -18px 50px -16px #000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);touch-action:pan-y}
.sbx-panel[hidden]{display:none}
@media(min-width:900px){.sbx-panel{left:auto;width:470px;top:64px;max-height:none;bottom:12px;right:12px;border-radius:18px;border-bottom:1px solid #4ee6b455}}
.sbx-phead{flex:none;display:flex;align-items:center;gap:6px;padding:10px 10px 8px 12px;border-bottom:1px solid #4ee6b422}
.sbx-tabs{display:flex;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}
.sbx-tabs::-webkit-scrollbar{display:none}
.sbx-tabs button{flex:none;padding:9px 11px;border-radius:11px;border:1px solid transparent;background:transparent;color:#f6eedbb3;font:800 .88rem Nunito,system-ui,sans-serif;cursor:pointer}
.sbx-tabs button[aria-selected=true]{background:#4ee6b422;border-color:#4ee6b466;color:#c8fff4}
.sbx-x{flex:none;width:40px;height:40px;border-radius:12px;border:1px solid #4ee6b444;background:#07120f;color:#f6eedb;font-size:1.5rem;line-height:1;cursor:pointer}
.sbx-body{flex:1 1 auto;min-height:0;padding:12px 12px max(16px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;display:grid;gap:10px;align-content:start}
.sbx-body h3{margin:6px 0 0;font-size:.95rem;color:#c8fff4}
.sbx-note{margin:0;color:#f6eedbb3;font-size:.86rem;line-height:1.4}
.sbx-note b{color:#f6eedb}
.sbx-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:#0b1a15;border:1px solid #4ee6b426}
.sbx-card.done{opacity:.6}
.sbx-card .big{width:44px;height:44px;image-rendering:pixelated}
.sbx-card b{display:block;color:#f6eedb;font-size:.95rem}
.sbx-card small{display:block;color:#f6eedb99;font-size:.78rem;line-height:1.3;margin-top:1px}
.sbx-card .cost{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px}
.sbx-card .cost span{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;font-weight:800}
.sbx-card .cost img{width:16px;height:16px;image-rendering:pixelated}
.sbx-card .cost .ok{color:#7dffd0}.sbx-card .cost .no{color:#ff9d8a}
.sbx-card .btn{padding:9px 14px;font-size:.86rem;white-space:nowrap}
.sbx-bag{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.sbx-it{position:relative;display:grid;justify-items:center;gap:2px;padding:10px 4px 8px;border-radius:13px;background:#0b1a15;border:1px solid #4ee6b426;color:#f6eedb;cursor:pointer}
.sbx-it[disabled]{cursor:default;opacity:.85}
.sbx-it img{width:34px;height:34px;image-rendering:pixelated}
.sbx-it b{font-size:.92rem}
.sbx-it small{font-size:.7rem;color:#f6eedb99;text-align:center}
.sbx-it.on{border-color:#f2c14e;box-shadow:0 0 14px -6px #f2c14e}
#sbxMap{width:100%;height:auto;aspect-ratio:1080/260;border-radius:12px;border:1px solid #4ee6b444;background:#050807;image-rendering:pixelated}
.sbx-goals{display:grid;gap:6px}
.sbx-goal{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:12px;background:#0b1a15;border:1px solid #4ee6b41c}
.sbx-goal i{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:2px solid #4ee6b455;font-style:normal;font-weight:800;color:#07120f}
.sbx-goal.ok{border-color:#f2c14e66}
.sbx-goal.ok i{background:#f2c14e;border-color:#f2c14e}
.sbx-goal b{display:block;font-size:.9rem}
.sbx-goal small{color:#f6eedb99;font-size:.76rem}
.sbx-an{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.sbx-an button{display:grid;justify-items:center;gap:2px;padding:6px 2px;border-radius:12px;background:#0b1a15;border:1px solid #4ee6b426;color:#f6eedb;cursor:pointer;font:800 .7rem Nunito,system-ui,sans-serif}
.sbx-an button svg{width:100%;max-width:54px;height:auto}
.sbx-an button img{width:100%;max-width:40px;height:auto;image-rendering:pixelated}
.sbx-an button[aria-pressed=true]{border-color:#f2c14e;box-shadow:0 0 14px -6px #f2c14e}
.sbx-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.sbx-row .btn{padding:9px 14px;font-size:.86rem}
.sbx-row .warn{border-color:#ff7a5a;color:#ffb3a0}
@media(prefers-reduced-motion:reduce){.sbx-toast.on{animation:none;opacity:1;transform:translate(-50%,0)}.sbx-banner,.sbx-hint{transition:none}}
@media(max-width:430px){.sbx-tabs{gap:1px}.sbx-tabs button{padding:9px 8px;font-size:.82rem}}

/* ===== visual polish pass ===== */
.sbx-ibtn,.sbx-loc,.sbx-bar{background:linear-gradient(160deg,rgba(14,34,28,.78),rgba(4,10,8,.7));-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 22px -10px #000}
.sbx-ibtn:active{transform:scale(.94)}
.sbx-loc{border-color:color-mix(in srgb,var(--bc) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 22px -10px #000,0 0 22px -10px var(--bc)}
.sbx-loc i{animation:sbxPulse 2.6s ease-in-out infinite}
@keyframes sbxPulse{50%{box-shadow:0 0 18px var(--bc);transform:scale(1.15)}}
.sbx-loc b{font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;letter-spacing:.01em;font-size:.98rem}
.sbx-bcard{position:absolute;left:50%;top:26%;transform:translate(-50%,8px);display:grid;justify-items:center;gap:4px;text-align:center;pointer-events:none;opacity:0;width:max-content;max-width:92%}
.sbx-bcard b{font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:clamp(1.9rem,6.5vw,3rem);line-height:1.05;color:#fff;text-shadow:0 0 28px var(--bc),0 3px 0 rgba(0,0,0,.45)}
.sbx-bcard small{font-weight:800;font-size:.9rem;color:color-mix(in srgb,var(--bc) 60%,#fff);text-shadow:0 2px 8px #000}
.sbx-bcard::after{content:"";width:min(220px,60%);height:2px;margin-top:4px;background:linear-gradient(90deg,transparent,var(--bc),transparent);box-shadow:0 0 14px var(--bc)}
.sbx-bcard.on{animation:sbxCard 4s ease forwards}
@keyframes sbxCard{0%{opacity:0;transform:translate(-50%,10px) scale(.96);letter-spacing:.06em}14%{opacity:1;transform:translate(-50%,0) scale(1);letter-spacing:0}78%{opacity:1}100%{opacity:0;transform:translate(-50%,-6px)}}
.sbx-hint{top:auto;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 76px)}
@media(pointer:coarse),(max-width:760px){.sbx-hint{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 162px)}}
.sbx-banner{top:36%;background:linear-gradient(160deg,rgba(40,32,10,.94),rgba(8,14,10,.94));border:1px solid #f2c14e;overflow:hidden}
.sbx-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,230,150,.22) 50%,transparent 65%);transform:translateX(-120%)}
.sbx-banner.on::before{animation:sbxShine 1.4s .3s ease forwards}
@keyframes sbxShine{to{transform:translateX(120%)}}
.sbx-banner b{text-shadow:0 0 18px rgba(242,193,78,.55)}
.sbx-slot{background:linear-gradient(180deg,#14281f,#09130f);border-color:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);transition:transform .12s}
.sbx-slot.on{transform:translateY(-4px);background:linear-gradient(180deg,#2f3a16,#141c0b);border-color:#f2c14e;box-shadow:0 0 16px -2px rgba(242,193,78,.7),inset 0 1px 0 rgba(255,255,255,.2)}
.sbx-slot img{filter:drop-shadow(0 2px 2px rgba(0,0,0,.6))}
.sbx-pad button{background:radial-gradient(circle at 35% 30%,rgba(78,230,180,.28),rgba(7,18,15,.62));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 18px -8px #000}
.sbx-pad .jump{background:radial-gradient(circle at 35% 30%,rgba(242,193,78,.32),rgba(20,16,6,.62))}
.sbx-panel{background:linear-gradient(180deg,rgba(11,28,23,.95),rgba(4,10,8,.97));border-color:rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 -18px 50px -16px #000}
.sbx-card,.sbx-it,.sbx-goal{background:linear-gradient(160deg,rgba(18,42,34,.85),rgba(8,18,14,.85));border-color:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.sbx-card:not(.done) .btn:not(.ghost){box-shadow:0 0 16px -4px #f2c14e}
.sbx-goal.ok{background:linear-gradient(160deg,rgba(60,48,12,.7),rgba(10,16,12,.85))}
@media(prefers-reduced-motion:reduce){.sbx-loc i,.sbx-banner.on::before{animation:none}.sbx-bcard.on{animation:none;opacity:1}}

/* ---- Stage 1: the First Day Trail ---- */
.sbx-trail{position:absolute;left:8px;top:calc(max(8px,env(safe-area-inset-top)) + 52px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;width:138px;padding:5px 9px 6px;text-align:left;border-radius:10px;background:linear-gradient(160deg,rgba(44,34,10,.86),rgba(6,12,9,.82));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #f2c14e99;box-shadow:0 8px 20px -10px #000,0 0 18px -10px #f2c14e;color:#f6eedb;cursor:pointer;font-family:Nunito,system-ui,sans-serif;z-index:2}
.sbx-trail[hidden]{display:none}
.sbx-trail small{font-size:.66rem;font-weight:800;color:#f2c14e;letter-spacing:.04em;text-transform:uppercase}
.sbx-trail b{font-size:.76rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbx-trail .bar{grid-column:1/-1;height:3px!important;margin:0!important}
.sbx-trail em{font-style:normal;font-size:.66rem;font-weight:800;color:#f6eedbcc}
.bar{display:block;height:7px;border-radius:99px;background:#00000066;overflow:hidden;margin-top:3px}
.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#f2c14e,#ffe9a0);transition:width .3s}
.sbx-goal.cur{border-color:#f2c14e;background:linear-gradient(160deg,rgba(60,48,12,.55),rgba(10,16,12,.85))}
.sbx-goal.cur i{border-color:#f2c14e;color:#f2c14e}
.sbx-goal em{font-style:normal;font-size:.74rem;font-weight:800;color:#f6eedbcc}
.sbx-goal .rw{color:#f2c14e;margin-top:3px}
.sbx-goal>div{min-width:0;flex:1}
@media(prefers-reduced-motion:reduce){.bar>i{transition:none}}
.sbx-stage.panel .sbx-trail{display:none}

/* ---- short landscape phones: use the whole screen, smaller controls ---- */
@media(max-height:520px) and (orientation:landscape){
 body.sbx-app>header{display:none}
 .sbx-stage{height:100dvh;min-height:0;margin:0;border-radius:0;border:0}
 .sbx-ibtn{width:38px;height:38px}
 .sbx-slot{width:40px;height:40px}.sbx-slot img{width:25px;height:25px}
 .sbx-bar{padding:4px;gap:4px}
 .sbx-pad{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(6px,env(safe-area-inset-bottom))}
 .sbx-pad button{width:56px;height:56px}.sbx-pad .jump{width:64px;height:64px}
 .sbx-pad button svg{width:26px;height:26px}
 .sbx-hint{bottom:calc(max(6px,env(safe-area-inset-bottom)) + 58px)}
 .sbx-trail{width:120px;padding:4px 8px 5px;top:calc(max(8px,env(safe-area-inset-top)) + 46px)}
 .sbx-trail b{font-size:.7rem}
}

/* ---- health bar (top right) ---- */
.sbx-hp{--hc:#4ee6b4;--hc2:#16a06a;position:relative;flex:none;display:flex;align-items:center;gap:7px;width:152px;height:38px;padding:0 10px 0 0;border-radius:19px;background:linear-gradient(160deg,rgba(14,34,28,.8),rgba(4,10,8,.72));-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);border:1px solid color-mix(in srgb,var(--hc) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 22px -10px #000,0 0 20px -9px var(--hc);transition:border-color .3s,box-shadow .3s}
.sbx-hp .hrt{flex:none;display:grid;place-items:center;width:38px;height:38px;margin:-1px 0 -1px -1px;border-radius:50%;color:#ff6a80;background:radial-gradient(circle at 35% 28%,#3a1620,#12060a 70%);border:2px solid var(--hc);box-shadow:0 0 14px -2px var(--hc),inset 0 1px 0 rgba(255,255,255,.25);transition:border-color .3s,box-shadow .3s}
.sbx-hp .hrt svg{width:19px;height:19px;filter:drop-shadow(0 0 5px rgba(255,80,110,.85));animation:sbxBeat 1.5s ease-in-out infinite;transform-origin:50% 55%}
.sbx-hp .trk{position:relative;flex:1;min-width:0;height:18px;border-radius:9px;background:rgba(0,0,0,.62);box-shadow:inset 0 2px 4px #000,0 0 0 1px rgba(255,255,255,.09);overflow:hidden}
.sbx-hp .trk i{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:9px;overflow:hidden}
.sbx-hp .trk .gh{background:linear-gradient(90deg,#ffd9b0,#ff7a4d);transition:width .8s ease .35s}
.sbx-hp .trk .fl{background:linear-gradient(180deg,rgba(255,255,255,.5) 0,rgba(255,255,255,.08) 46%,rgba(0,0,0,.14) 100%),linear-gradient(90deg,var(--hc2),var(--hc));box-shadow:0 0 12px var(--hc);transition:width .2s}
.sbx-hp .trk .fl::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.17) 0 5px,transparent 5px 11px);background-size:22px 100%;animation:sbxFlow 1.4s linear infinite}
.sbx-hp .trk::after{content:"";position:absolute;inset:0;border-radius:9px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(0,0,0,.5) calc(25% - 1px),rgba(0,0,0,.5) 25%);pointer-events:none}
.sbx-hp .trk b{position:absolute;inset:0;z-index:2;display:grid;place-items:center;font:800 .74rem Nunito,system-ui,sans-serif;letter-spacing:.03em;color:#fff;text-shadow:0 1px 2px #000,0 0 5px #000}
.sbx-hp.mid{--hc:#f2c14e;--hc2:#d9861c}
.sbx-hp.low{--hc:#ff5a4a;--hc2:#b81d18;animation:sbxLow 1.1s ease-in-out infinite}
.sbx-hp.low .hrt svg{animation-duration:.6s}
.sbx-hp.hit .hrt{animation:sbxHit .4s ease-out}
@keyframes sbxBeat{0%,100%{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}36%{transform:scale(1.1)}48%{transform:scale(1)}}
@keyframes sbxFlow{to{background-position:22px 0}}
@keyframes sbxHit{0%{box-shadow:0 0 0 0 #ff4a4a,inset 0 1px 0 rgba(255,255,255,.25);transform:scale(1.18)}100%{box-shadow:0 0 14px -2px var(--hc),inset 0 1px 0 rgba(255,255,255,.25);transform:scale(1)}}
@keyframes sbxLow{50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 20px -1px #ff4a4a}}
@media(max-width:480px),(max-height:520px) and (orientation:landscape){.sbx-hp{width:118px;height:34px;gap:5px;padding-right:8px}.sbx-hp .hrt{width:34px;height:34px}.sbx-hp .hrt svg{width:17px;height:17px}.sbx-hp .trk{height:16px}.sbx-hp .trk b{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.sbx-hp .trk i,.sbx-hp .trk .gh{transition:none}.sbx-hp.low,.sbx-hp .hrt svg,.sbx-hp .fl::after,.sbx-hp.hit .hrt{animation:none}}

/* ---- hotbar + bag button dock (bottom centre) ---- */
.sbx-dock{position:absolute;left:50%;transform:translateX(-50%);bottom:max(10px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:7px;max-width:calc(100% - 12px)}
.sbx-dock .sbx-bar{position:static;transform:none;max-width:none;min-width:0}
.sbx-dock .sbx-slot{flex:0 1 auto;min-width:32px}
.sbx-packbtn,.sbx-menubtn{flex:none;width:58px;height:58px;border-radius:16px;border-color:rgba(242,193,78,.5);color:#ffe9a8;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 22px -10px #000,0 0 18px -10px #f2c14e}
.sbx-menubtn{border-color:rgba(78,230,180,.5);color:#c8fff4;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 22px -10px #000,0 0 18px -10px #4ee6b4}
.sbx-packbtn svg,.sbx-menubtn svg{width:26px;height:26px}
@media(max-width:480px){.sbx-packbtn,.sbx-menubtn{width:46px;height:46px}.sbx-dock{gap:5px}}
@media(max-height:520px) and (orientation:landscape){.sbx-dock{bottom:max(6px,env(safe-area-inset-bottom))}.sbx-packbtn,.sbx-menubtn{width:44px;height:44px}}
.sbx-toast,.sbx-banner{z-index:3}

/* ---- Worlds screen: pick, create, rename, delete saves ---- */
.sbx-worlds{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(3,8,6,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);overflow:auto;touch-action:pan-y}
.sbx-worlds[hidden]{display:none}
.sbx-wbox{width:min(540px,100%);max-height:100%;overflow:auto;padding:18px;border-radius:18px;text-align:left;background:linear-gradient(180deg,rgba(11,28,23,.97),rgba(4,10,8,.98));border:1px solid #4ee6b455;box-shadow:0 20px 60px -20px #000}
.sbx-wbox h2{margin:0 0 4px;font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.6rem;color:#fff}
.sbx-wlist{display:grid;gap:8px;margin:12px 0}
.sbx-w{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:#ffffff0d;border:1px solid #ffffff1f}
.sbx-w.cur{border-color:#4ee6b4;box-shadow:0 0 16px -6px #4ee6b4}
.sbx-w b{display:block;color:#f6eedb}
.sbx-w small{color:#b8c9c0}
.sbx-w .acts{display:flex;gap:6px;flex-wrap:wrap}
.sbx-w .btn{padding:8px 12px;font-size:.82rem}
.sbx-w .warn{border-color:#ff7a5a;color:#ffb3a0}
.sbx-wnew{display:flex;gap:8px;margin:10px 0}
.sbx-wnew input{flex:1;min-width:0;padding:10px 12px;border-radius:12px;border:1px solid #ffffff33;background:#0009;color:#f6eedb;font:inherit}
.sbx-wbox .sbx-row .btn{text-decoration:none}

/* tool durability */
.sbx-slot u.dur{position:absolute;left:6px;right:6px;bottom:3px;height:3px;border-radius:2px;background:rgba(0,0,0,.55);overflow:hidden;text-decoration:none}
.sbx-slot u.dur::after{content:"";display:block;height:100%;width:var(--d,100%);background:#4ee6b4}
.sbx-slot u.dur.low::after,.bar.dur.low i{background:#f2c14e}
.sbx-slot u.dur.bad::after,.bar.dur.bad i{background:#ff6b82}
.sbx-slot.hasdur b{bottom:6px}
.sbx-slot.brk img{filter:grayscale(1) brightness(.7)}
.sbx-slot.brk b{color:#ff6b82}
.bar.dur i{background:linear-gradient(90deg,#2fbf93,#4ee6b4)}.bar.dur.low i{background:#f2c14e}.bar.dur.bad i{background:#ff6b82}

/* Caves: top-down mode. On touch / small screens the buttons are replaced by an analog stick. */
.sbx-joy{display:none;position:absolute;left:max(18px,env(safe-area-inset-left));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 74px);width:132px;height:132px;border-radius:50%;touch-action:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(circle,rgba(78,230,180,.12),rgba(7,18,15,.5));border:2px solid #4ee6b466;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 18px -8px #000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sbx-joy i{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(120,255,214,.75),rgba(30,140,110,.7));border:2px solid #4ee6b4;box-shadow:0 4px 10px #0008;pointer-events:none}
.sbx-joy.on{border-color:#4ee6b4}
@media(pointer:coarse),(max-width:760px){.sbx-stage.cave .sbx-joy{display:block}.sbx-stage.cave .sbx-pad{display:none}}
@media(max-height:520px){.sbx-joy{width:108px;height:108px;bottom:max(6px,env(safe-area-inset-bottom))}.sbx-joy i{width:48px;height:48px;margin:-24px 0 0 -24px}}

/* ---- Inventory (Minecraft-style slot grid) ---- */
.sbx-inv{display:grid;gap:4px}
.sbx-inv h3{margin:10px 0 2px}
.sbx-igrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.sbx-is{position:relative;aspect-ratio:1;min-width:0;display:grid;place-items:center;padding:0;border-radius:10px;cursor:pointer;color:#f6eedb;background:linear-gradient(180deg,rgba(20,40,32,.95),rgba(8,17,13,.95));border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 2px 5px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.05)}
.sbx-is.empty{background:rgba(4,10,8,.7);box-shadow:inset 0 2px 6px rgba(0,0,0,.7)}
.sbx-is img{width:62%;height:62%;image-rendering:pixelated;filter:drop-shadow(0 2px 2px rgba(0,0,0,.6));pointer-events:none}
.sbx-is b{position:absolute;right:5px;bottom:2px;font-size:.74rem;font-weight:800;text-shadow:0 1px 2px #000,0 0 3px #000;pointer-events:none}
.sbx-is i{position:absolute;left:5px;top:2px;font-style:normal;font-size:.62rem;font-weight:800;color:#f6eedb88;pointer-events:none}
.sbx-igrid.hot .sbx-is{border-color:rgba(242,193,78,.28)}
.sbx-igrid.pack .sbx-is{border-color:rgba(201,160,106,.4)}
.sbx-is.on{border-color:#f2c14e;box-shadow:0 0 0 2px rgba(242,193,78,.55),0 0 14px -2px rgba(242,193,78,.7)}
.sbx-is.held:not(.on){border-color:#4ee6b4}
.sbx-is:focus-visible{outline:2px solid #f2c14e;outline-offset:2px}
.sbx-iinfo{margin-top:12px;display:grid;gap:8px;padding:10px;border-radius:12px;background:rgba(4,10,8,.55);border:1px solid rgba(255,255,255,.08)}
.sbx-iinfo>div:first-child{display:flex;align-items:center;gap:10px;min-height:38px}
.sbx-iinfo img{width:34px;height:34px;image-rendering:pixelated}
.sbx-iinfo small{display:block;color:#f6eedb99;font-size:.74rem}
.sbx-iinfo .acts{display:flex;flex-wrap:wrap;gap:6px}
.sbx-iinfo .btn{padding:7px 11px;font-size:.78rem;min-height:36px}
.sbx-iinfo .btn.warn{background:#7a1f2c;border-color:#ff6b82;color:#fff}
.invfull{color:#ff6b82;font-weight:800}
.sbx-slot.empty{cursor:default;background:rgba(4,10,8,.55);box-shadow:inset 0 2px 6px rgba(0,0,0,.6);opacity:.8}
.sbx-packbtn,.sbx-menubtn{position:relative}
.sbx-packbtn.full::after{content:"FULL";position:absolute;right:-4px;top:-6px;padding:1px 5px;border-radius:8px;background:#ff6b82;color:#210008;font:800 .58rem/1.3 Nunito,sans-serif;letter-spacing:.04em}
@media(max-width:420px){.sbx-igrid{gap:4px}}


/* ===== pixel tools pass: smaller, crisper hotbar and tool cards ===== */
.sbx-bar{gap:4px;padding:5px;border-radius:12px}
.sbx-slot{width:40px;height:40px;border-radius:7px;border:2px solid rgba(255,255,255,.09);background:linear-gradient(180deg,#12261e,#0a1511);box-shadow:inset 0 -2px 0 rgba(0,0,0,.35)}
.sbx-slot img{width:32px;height:32px;image-rendering:pixelated;filter:drop-shadow(0 1px 0 rgba(0,0,0,.55))}
.sbx-slot.on{transform:translateY(-3px);border-color:#f2c14e;background:linear-gradient(180deg,#2b3414,#161d0c);box-shadow:inset 0 -2px 0 rgba(0,0,0,.3),0 3px 0 -1px rgba(242,193,78,.55)}
.sbx-slot i{left:3px;top:1px;font-size:.58rem}
.sbx-slot b{right:3px;bottom:0;font-size:.64rem}
.sbx-slot u.dur{left:5px;right:5px;bottom:2px;height:3px;border-radius:0;background:#000a}
.sbx-slot u.dur::before{content:"";position:absolute;inset:0;z-index:1;background:repeating-linear-gradient(90deg,transparent 0 3px,#000b 3px 4px)}
.sbx-slot.hasdur b{bottom:5px}
.sbx-slot.brk img{filter:grayscale(1) brightness(.65)}
@media(max-width:420px){.sbx-slot{width:38px;height:38px}.sbx-slot img{width:32px;height:32px}.sbx-bar{padding:4px;gap:3px}}
@media(max-height:520px) and (orientation:landscape){.sbx-slot{width:36px;height:36px}.sbx-slot img{width:32px;height:32px}.sbx-slot.on{transform:translateY(-2px)}}
.sbx-card .big{box-sizing:border-box;width:48px;height:48px;padding:6px;border-radius:8px;background:linear-gradient(180deg,#12261e,#0a1511);border:2px solid rgba(255,255,255,.09);image-rendering:pixelated;flex:none}

/* armor badge under the health bar */
.sbx-hp .hrt{position:relative}
.sbx-hp .shd{position:absolute;inset:-6px;pointer-events:none;--ac:#7fd6ff}
.sbx-hp .shd[hidden]{display:none}
.sbx-hp .shd .rg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);transform-origin:50% 50%;filter:none;animation:none;overflow:visible}
.sbx-hp .shd circle{fill:none;stroke-width:3.2}
.sbx-hp .shd .bk{stroke:rgba(0,0,0,.55)}
.sbx-hp .shd .v{stroke:var(--ac);stroke-linecap:round;stroke-dasharray:var(--ap,100) 100;filter:drop-shadow(0 0 3px var(--ac));transition:stroke-dasharray .4s,stroke .3s}
.sbx-hp .shd .ai{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#1c3a46,#06121a 75%);border:1.5px solid var(--ac);box-shadow:0 1px 3px #000}
.sbx-hp .shd .ai img{width:12px;height:12px;image-rendering:pixelated}
.sbx-hp .shd.low{--ac:#f2c14e}
.sbx-hp .shd.bad{--ac:#ff6b82}
.sbx-hp .shd.brk{--ac:#ff6b82}.sbx-hp .shd.brk .v{opacity:0}.sbx-hp .shd.brk .bk{stroke:rgba(255,107,130,.35);stroke-dasharray:4 3.2}.sbx-hp .shd.brk .ai img{filter:grayscale(1) brightness(.7)}.sbx-hp .shd.brk .ai{animation:sbxArmBrk 1.2s ease-in-out infinite}
@keyframes sbxArmBrk{50%{box-shadow:0 0 6px #ff6b82}}
@media(prefers-reduced-motion:reduce){.sbx-hp .shd .v{transition:none}.sbx-hp .shd.brk .ai{animation:none}}

/* small corner pop-ups: goal completed / enemy defeated (stack up to 3, bottom-right) */
.sbx-pops{position:absolute;right:max(10px,env(safe-area-inset-right));bottom:calc(max(10px,env(safe-area-inset-bottom)) + 76px);display:flex;flex-direction:column-reverse;gap:6px;align-items:flex-end;pointer-events:none;z-index:3;max-width:min(300px,72vw)}
@media(pointer:coarse),(max-width:760px){.sbx-pops{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 162px)}}
@media(max-height:520px){.sbx-pops{bottom:max(6px,env(safe-area-inset-bottom))}}
.sbx-pop{display:grid;grid-template-columns:auto 1fr;gap:1px 8px;align-items:center;padding:7px 12px 7px 9px;border-radius:12px;background:#07120ff2;border:1px solid var(--pc,#f2c14e);box-shadow:0 0 18px -8px var(--pc,#f2c14e);color:#f6eedb;animation:sbxPop 3.2s ease forwards}
.sbx-pop i{grid-row:1/3;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--pc,#f2c14e) 22%,#07120f);color:var(--pc,#f2c14e);font-style:normal;font-weight:900;font-size:.8rem}
.sbx-pop small{font-weight:800;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:var(--pc,#f2c14e);line-height:1.1}
.sbx-pop b{font-weight:800;font-size:.8rem;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@keyframes sbxPop{0%{opacity:0;transform:translateX(18px)}9%,84%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(10px)}}
@media(prefers-reduced-motion:reduce){.sbx-pop{animation:sbxPopR 3.2s linear forwards}@keyframes sbxPopR{0%,85%{opacity:1}100%{opacity:0}}}

/* ===== Craft browser: category tabs + sub-category chips (sticky at the top of the Craft list) ===== */
.sbx-cbar{position:sticky;top:-12px;z-index:3;margin:-12px -12px 0;padding:10px 12px 8px;display:grid;gap:7px;background:linear-gradient(180deg,#0a1a15,#0a1a15f4);border-bottom:1px solid #4ee6b426;box-shadow:0 8px 14px -10px #000}
.sbx-cats,.sbx-subs{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.sbx-cats::-webkit-scrollbar,.sbx-subs::-webkit-scrollbar{display:none}
.sbx-cats button,.sbx-subs button{flex:none;position:relative;display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-family:Nunito,system-ui,sans-serif;white-space:nowrap}
.sbx-cats button{padding:8px 13px;border-radius:999px;border:1px solid #4ee6b433;background:#0b1a15;color:#f6eedbc7;font-weight:900;font-size:.86rem}
.sbx-cats button.on{background:linear-gradient(180deg,#4ee6b42e,#4ee6b418);border-color:#4ee6b4aa;color:#d4fff6;box-shadow:0 0 14px -6px #4ee6b4}
.sbx-subs button{padding:5px 11px;border-radius:9px;border:1px solid #ffffff14;background:transparent;color:#f6eedb99;font-weight:800;font-size:.78rem}
.sbx-subs button.on{background:#ffffff14;border-color:#ffffff40;color:#f6eedb}
.sbx-subs button.rdy{border-color:#f2c14e55;color:#f2c14ecc}
.sbx-subs button.rdy.on{background:#f2c14e26;border-color:#f2c14e;color:#ffe08a}
.sbx-cats button i,.sbx-subs button i{font-style:normal;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#4ee6b4;color:#06231c;font:900 .68rem/17px Nunito,system-ui,sans-serif;text-align:center}
.sbx-subs button i{background:#4ee6b4cc}

/* ---- keyboard hint badge on the dock buttons ---- */
.sbx-kb{position:absolute;left:4px;bottom:2px;font:800 .6rem/1 Nunito,system-ui,sans-serif;color:#f6eedbaa;pointer-events:none}
@media(pointer:coarse){.sbx-kb{display:none}}

/* ---- Backpack pop-up (centred, opens from the dock button or B) ---- */
.sbx-pack{position:absolute;inset:0;z-index:2;max-width:none;width:auto;margin:0;display:grid;place-items:center;padding:10px;background:rgba(2,6,5,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.sbx-pack[hidden]{display:none}
.sbx-pbox{width:min(480px,100%);max-height:100%;display:flex;flex-direction:column;border-radius:18px;background:linear-gradient(180deg,#171109f7,#0a0805fb);border:1px solid rgba(242,193,78,.5);box-shadow:0 20px 60px -12px #000,0 0 30px -14px #f2c14e;overflow:hidden}
.sbx-pbox .sbx-phead{justify-content:space-between;border-bottom-color:rgba(242,193,78,.2)}
.sbx-pbox h2{margin:0;font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.35rem;color:#ffe9a8}
.sbx-pbox h2 small{font:800 .8rem Nunito,sans-serif;color:#f6eedb99;margin-left:8px}

/* ---- Full-screen map: zoom, pan and waypoints ---- */
.sbx-mapv{position:absolute;inset:0;z-index:2;max-width:none;width:auto;margin:0;padding:0;background:#03080a;touch-action:none}
.sbx-mapv[hidden]{display:none}
.sbx-mapv canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}
.sbx-mtop{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top)) 12px 10px;background:linear-gradient(180deg,rgba(3,8,10,.92),rgba(3,8,10,0));pointer-events:none}
.sbx-mtop b{font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.35rem;color:#c8fff4}
.sbx-mtop span{flex:1;color:#f6eedb99;font:800 .8rem Nunito,system-ui,sans-serif}
.sbx-mtop .sbx-x{pointer-events:auto}
.sbx-mctl{position:absolute;right:max(10px,env(safe-area-inset-right));top:calc(max(10px,env(safe-area-inset-top)) + 54px);display:grid;gap:6px}
.sbx-mctl button{width:42px;height:42px;display:grid;place-items:center;padding:0;border-radius:12px;border:1px solid #4ee6b455;background:linear-gradient(160deg,rgba(14,34,28,.88),rgba(4,10,8,.85));color:#c8fff4;font:800 1.4rem/1 Nunito,system-ui,sans-serif;cursor:pointer}
.sbx-mctl button svg{width:20px;height:20px}
.sbx-mctl button:active{transform:scale(.94)}
.sbx-mhint{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);padding:7px 12px;border-radius:12px;background:rgba(4,10,8,.78);border:1px solid #4ee6b433;color:#f6eedbbb;font:700 .76rem/1.3 Nunito,system-ui,sans-serif;text-align:center;pointer-events:none}
.sbx-mcard{position:absolute;left:50%;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 46px);transform:translateX(-50%);width:min(440px,calc(100% - 24px));display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,#0b1a15f2,#050e0bf5);border:1px solid #4ee6b455;box-shadow:0 12px 30px -10px #000}
.sbx-mcard[hidden]{display:none}
.sbx-mcard i{flex:none;width:16px;height:16px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #06100d}
.sbx-mcard div{flex:1;min-width:0}
.sbx-mcard b{display:block;color:#f6eedb;font-size:.95rem}
.sbx-mcard small{display:block;color:#f6eedb99;font-size:.76rem}
.sbx-mcard .btn{padding:8px 12px;font-size:.8rem;min-height:38px;white-space:nowrap}
.sbx-mcard .btn.warn{background:#7a1f2c;border-color:#ff6b82;color:#fff}

/* ---- Phone performance. The canvas redraws every frame, and every translucent blurred panel on top of it had to be re-blurred every frame too. On touch screens the HUD uses solid-ish glass instead, and the endless CSS animations are off. ---- */
@media (pointer:coarse),(max-width:820px){
 .sbx-ibtn,.sbx-loc,.sbx-bar,.sbx-hp,.sbx-food,.sbx-trail,.sbx-pad button,.sbx-joy,.sbx-panel,.sbx-pack,.sbx-worlds{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
 .sbx-ibtn,.sbx-loc,.sbx-bar,.sbx-hp{background:linear-gradient(160deg,rgba(14,34,28,.93),rgba(4,10,8,.9))}
 .sbx-trail{background:linear-gradient(160deg,rgba(44,34,10,.94),rgba(6,12,9,.92))}
 .sbx-pad button{background:radial-gradient(circle at 35% 30%,rgba(78,230,180,.36),rgba(7,18,15,.78))}
 .sbx-joy{background:radial-gradient(circle,rgba(78,230,180,.16),rgba(7,18,15,.7))}
 .sbx-worlds{background:rgba(3,8,6,.96)}
 .sbx-loc i,.sbx-hp .hrt svg,.sbx-hp .trk .fl::after{animation:none!important}
 .sbx-hp .hrt svg{filter:none}
 .sbx-hp.low{animation:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 14px -2px #ff4a4a}
}

/* ---- Control size option (Options > Touch controls). --cs is set on the stage from the saved setting. ---- */
.sbx-pad .lr{transform:scale(var(--cs,1));transform-origin:left bottom}
.sbx-pad .jump{transform:scale(var(--cs,1));transform-origin:right bottom}
.sbx-pad .jump.on{transform:scale(calc(var(--cs,1) * .95))}
.sbx-joy{transform:scale(var(--cs,1));transform-origin:left bottom}
.sbx-dock{transform:translateX(-50%) scale(var(--ds,var(--cs,1)));transform-origin:50% 100%}
/* Crafting station window (tap a Workbench / Furnace / Loom / Mason's Table). --stn = the station's colour */
.sbx-sbox{--stn:#4ee6b4;width:min(520px,100%);height:min(640px,100%);background:linear-gradient(180deg,#0b1a15f8,#050e0bfc);border-color:color-mix(in srgb,var(--stn) 60%,transparent);box-shadow:0 20px 60px -12px #000,0 0 34px -14px var(--stn)}
.sbx-sbox .sbx-phead{border-bottom-color:color-mix(in srgb,var(--stn) 25%,transparent)}
.sbx-sbox h2{display:flex;align-items:center;gap:10px;min-width:0;color:var(--stn)}
.sbx-sbox h2 img{flex:none;width:40px;height:40px;image-rendering:pixelated;padding:3px;border-radius:10px;background:#ffffff0d;border:1px solid color-mix(in srgb,var(--stn) 35%,transparent)}
.sbx-sbox h2 span{text-align:left;letter-spacing:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-sbox h2 small{display:block;margin:2px 0 0;font:800 .78rem Nunito,sans-serif;color:#f6eedb99}
.sbx-sbox .sbx-cbar{background:linear-gradient(180deg,#0b1a15,#0b1a15f4)}
.sbx-sbox .sbx-cats button.on{background:color-mix(in srgb,var(--stn) 20%,transparent);border-color:var(--stn);color:#fff;box-shadow:0 0 14px -6px var(--stn)}
.sbx-cats button.rdy{border-color:#f2c14e66;color:#f2c14ecc}
.sbx-cats button.rdy.on{background:#f2c14e26;border-color:#f2c14e;color:#ffe08a;box-shadow:none}
.sbx-cats button.rdy i{background:#f2c14e;color:#2a1c00}
@media(max-width:480px){.sbx-stn{padding:6px}.sbx-sbox{height:100%}.sbx-sbox h2{font-size:1.15rem}}
/* Hunger bar, under the health bar */
.sbx-vit{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}
.sbx-food{--fc:#f2a14e;--fc2:#b8641c;display:flex;align-items:center;gap:6px;width:118px;height:24px;padding:0 8px 0 0;border-radius:12px;background:linear-gradient(160deg,rgba(34,24,10,.82),rgba(10,6,2,.74));border:1px solid color-mix(in srgb,var(--fc) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 6px 16px -8px #000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sbx-food[hidden]{display:none}
.sbx-food .ic{flex:none;display:grid;place-items:center;width:24px;height:24px;margin:-1px 0 -1px -1px;border-radius:50%;color:#c9763e;background:radial-gradient(circle at 35% 28%,#4a2a10,#160a02 70%);border:1.5px solid var(--fc)}
.sbx-food .ic svg{width:14px;height:14px}
.sbx-food .trk{position:relative;flex:1;height:11px;border-radius:6px;background:rgba(0,0,0,.6);box-shadow:inset 0 1px 3px #000;overflow:hidden}
.sbx-food .trk .fl{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.05) 50%,rgba(0,0,0,.12)),linear-gradient(90deg,var(--fc2),var(--fc));transition:width .3s}
.sbx-food .trk b{position:absolute;inset:0;display:grid;place-items:center;font:800 .62rem Nunito,system-ui,sans-serif;color:#fff;text-shadow:0 1px 2px #000}
.sbx-food.full{--fc:#7dd65a;--fc2:#3a9a2a}
.sbx-food.mid{--fc:#f2c14e;--fc2:#c08a1c}
.sbx-food.low{--fc:#ff5a4a;--fc2:#b81d18;animation:sbxLow 1.1s ease-in-out infinite}
@media(max-width:480px){.sbx-food{width:96px}}
/* waypoint editor card on the map */
.sbx-mcard{flex-direction:column;align-items:stretch;gap:8px}
.sbx-mcard .wp-top{display:flex;align-items:center;gap:10px}
.sbx-mcard .wp-pin{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #06100d;box-shadow:0 0 0 1px #ffffff33}
.sbx-mcard .wp-pin img{width:20px;height:20px;transform:rotate(45deg)}
.sbx-mcard .wp-meta{flex:1;min-width:0}
.sbx-mcard input{width:100%;box-sizing:border-box;padding:6px 9px;border-radius:9px;border:1px solid #4ee6b455;background:#04100c;color:#f6eedb;font:800 .95rem Nunito,system-ui,sans-serif;outline:none}
.sbx-mcard input:focus{border-color:#4ee6b4;box-shadow:0 0 0 2px #4ee6b433}
.sbx-mcard .wp-row{display:flex;flex-wrap:wrap;gap:6px}
.sbx-mcard .wp-sw{width:26px;height:26px;padding:0;border-radius:50%;border:2px solid #06100d;cursor:pointer;box-shadow:0 0 0 1px #ffffff22}
.sbx-mcard .wp-sw.on{box-shadow:0 0 0 2px #fff}
.sbx-mcard .wp-ic{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:9px;border:1px solid #ffffff22;background:#0b1a15;cursor:pointer}
.sbx-mcard .wp-ic img{width:20px;height:20px}
.sbx-mcard .wp-ic.on{background:#4ee6b4;border-color:#4ee6b4}
@media(max-width:480px){.sbx-mcard .wp-sw{width:24px;height:24px}.sbx-mcard .wp-ic{width:29px;height:29px}.sbx-mcard .wp-top .btn{padding:8px 9px}}
.sbx-mcard .wp-meta small{text-align:left;margin-top:3px}
.sbx-mcard .wp-row{gap:5px}
.sbx-mcard .wp-ic{width:30px;height:30px}
.sbx-mcard .wp-ic img{width:18px;height:18px}
@media(max-width:480px){.sbx-mcard .wp-ic{width:26px;height:26px}.sbx-mcard .wp-ic img{width:16px;height:16px}.sbx-mcard .wp-sw{width:22px;height:22px}}
.sbx-mapv:has(.sbx-mcard:not([hidden])) .sbx-mhint{display:none}
@media(max-width:480px){.sbx-mcard{padding:9px 9px}.sbx-mcard .wp-row{gap:3px}.sbx-mcard .wp-ic{width:24px;height:24px;border-radius:7px}.sbx-mcard .wp-ic img{width:15px;height:15px}.sbx-mcard .wp-sw{width:22px;height:22px}}
/* inventory drag and drop */
.sbx-is:not(.empty){touch-action:none;-webkit-user-select:none;user-select:none}
.sbx-is.lift{opacity:.35}
.sbx-is.drop{border-color:#4ee6b4;box-shadow:0 0 0 2px rgba(78,230,180,.6),0 0 16px -2px rgba(78,230,180,.8)}
.sbx-drag{position:fixed;left:0;top:0;z-index:9999;width:52px;height:52px;display:grid;place-items:center;border-radius:12px;pointer-events:none;background:linear-gradient(180deg,rgba(30,56,44,.96),rgba(10,22,16,.96));border:1px solid #f2c14e;box-shadow:0 10px 24px -6px #000,0 0 18px -4px rgba(242,193,78,.7)}
.sbx-drag img{width:66%;height:66%;image-rendering:pixelated}
.sbx-drag b{position:absolute;right:5px;bottom:2px;font:800 .74rem Nunito,sans-serif;color:#f6eedb;text-shadow:0 1px 2px #000}
/* ---- quests: story card, chapter header, quest lists, tracker ---- */
.sbx-story{z-index:4}
.sbx-sbox2{--qc:#4ee6b4;position:relative;width:min(460px,100%);max-height:100%;overflow:auto;padding:22px 22px 20px;border-radius:20px;text-align:left;color:#f6eedb;
  background:radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--qc) 22%,transparent),transparent 70%),linear-gradient(180deg,#0d1d17f8,#050e0bfc);
  border:1px solid color-mix(in srgb,var(--qc) 65%,transparent);box-shadow:0 24px 70px -14px #000,0 0 40px -16px var(--qc);animation:stIn .35s ease-out}
@keyframes stIn{from{transform:translateY(14px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.sbx-sbox2 .st-croak{width:76px;height:76px;margin:-6px auto 6px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.sbx-sbox2 .st-croak svg{width:100%;height:100%}
.sbx-sbox2 small{display:block;text-align:center;font:900 .72rem Nunito,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--qc)}
.sbx-sbox2 h2{margin:4px 0 12px;text-align:center;font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.55rem;line-height:1.1;color:#fff}
.sbx-sbox2 p{margin:0 0 14px;font-size:.95rem;line-height:1.5;color:#f6eedbdd}
.sbx-sbox2 .st-next{display:grid;gap:2px;margin:0 0 16px;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid color-mix(in srgb,var(--qc) 35%,transparent)}
.sbx-sbox2 .st-next span{font:900 .66rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--qc)}
.sbx-sbox2 .st-next b{font-size:.95rem}
.sbx-sbox2 .st-next em{font-style:normal;font-size:.8rem;color:#f6eedb99;line-height:1.35}
.sbx-sbox2 .btn{display:block;width:100%;min-height:46px;font-size:1rem}
.sbx-sbox2 h2.st-hi{font-size:1.25rem}
.sbx-sbox2 .st-tip{font-size:.85rem;padding:9px 12px;border-radius:12px;background:#ffffff08;color:#f6eedbcc}
.sbx-sbox2 .st-tip b{color:var(--qc)}
.sbx-sbox2 .st-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sbx-sbox2 .st-row .btn{font-size:.9rem;min-height:42px}
.sbx-sbox2 .st-row .btn:last-child{grid-column:1/-1}
.sbx-sbox2 .st-gift{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 16px}
.sbx-sbox2 .st-gift span{display:flex;align-items:center;gap:6px;padding:6px 10px 6px 6px;border-radius:999px;background:#ffffff0d;border:1px solid color-mix(in srgb,var(--qc) 40%,transparent);font:800 .82rem Nunito,sans-serif}
.sbx-sbox2 .st-gift img{width:22px;height:22px;image-rendering:pixelated}
.sbx-qch{--qc:#4ee6b4;padding:12px 14px;border-radius:16px;background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--qc) 24%,transparent),transparent 65%),linear-gradient(160deg,rgba(18,42,34,.9),rgba(6,14,11,.92));border:1px solid color-mix(in srgb,var(--qc) 55%,transparent);box-shadow:0 0 22px -12px var(--qc)}
.sbx-qch .qc-top{display:flex;align-items:center;gap:10px}
.sbx-qch .qc-frog{flex:none;width:44px;height:44px}
.sbx-qch .qc-frog svg{width:100%;height:100%}
.sbx-qch small{display:block;font:900 .68rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--qc)}
.sbx-qch b{display:block;font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.2rem;color:#fff;line-height:1.15}
.sbx-qch p{margin:8px 0 10px;font-size:.84rem;line-height:1.45;color:#f6eedbbb}
.sbx-qch .qc-row{display:flex;align-items:center;gap:10px}
.sbx-qch .qc-row .btn{padding:7px 12px;min-height:34px;font-size:.78rem;flex:none}
.sbx-qch .qc-row .bar{flex:1;margin:0}
.sbx-qch .qc-row .bar i{background:var(--qc)}
.sbx-qch .qc-row em{font-style:normal;font:800 .76rem Nunito,sans-serif;color:#f6eedbcc}
.sbx-goal.later{opacity:.5;padding-top:6px;padding-bottom:6px}
.sbx-goal.later i{border-style:dashed}
.sbx-goal.side{border-color:rgba(199,139,255,.18)}
.sbx-goal.side .bar i{background:#c78bff}
.sbx-goal.side.ok{border-color:#f2c14e44}
.sbx-qcat{margin:10px 2px 2px;font:900 .7rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#c78bffcc}
.sbx-qpast{border-radius:12px;background:#0b1a15;border:1px solid #ffffff12;padding:2px 12px}
.sbx-qpast summary{cursor:pointer;padding:9px 0;font-weight:800;font-size:.86rem;color:#f6eedbcc}
.sbx-qpast .qp{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:.86rem}
.sbx-qpast .qp i{font-style:normal;color:#f2c14e;font-weight:900}
.sbx-qpast .qp span{flex:1}
.sbx-qpast .qp .btn{padding:5px 10px;min-height:30px;font-size:.74rem}
.sbx-qpast .sbx-goals{padding-bottom:10px}
.sbx-trail{--qc:#f2c14e;border-color:color-mix(in srgb,var(--qc) 70%,transparent);box-shadow:0 8px 20px -10px #000,0 0 18px -10px var(--qc)}
.sbx-trail small{grid-column:1/-1;color:var(--qc)}
.sbx-trail .bar i{background:var(--qc)}
.sbx-goal .rw{display:block;margin-top:2px}
.sbx-goal em{display:inline-block;margin-top:1px}
.sbx-goal.side{padding:7px 11px}
.sbx-goal.side b{font-size:.84rem}
.sbx-goal.side small{font-size:.72rem}
.sbx-goal.side i{width:20px;height:20px}

/* boss health bar (top centre of the stage) */
.sbx-boss{--bc:#ff6b82;position:absolute;left:50%;top:58px;transform:translateX(-50%);z-index:3;width:min(440px,calc(100% - 140px));padding:6px 12px 8px;border-radius:14px;background:rgba(6,12,10,.82);border:1px solid color-mix(in srgb,var(--bc) 60%,transparent);box-shadow:0 0 24px -10px var(--bc);pointer-events:none;text-align:center;animation:stIn .4s ease-out}
.sbx-boss[hidden]{display:none}
.sbx-boss b{display:block;font:900 .8rem Nunito,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--bc)}
.sbx-boss .bt{position:relative;display:block;height:10px;margin-top:4px;border-radius:99px;background:#ffffff14;overflow:hidden}
.sbx-boss .bt i{position:relative;display:block;height:100%;width:100%;border-radius:99px;background:linear-gradient(90deg,var(--bc),color-mix(in srgb,var(--bc) 60%,#fff));transition:width .12s ease-out;box-shadow:0 0 10px -2px var(--bc)}
.sbx-boss em{display:block;margin-top:2px;font:800 .66rem Nunito,sans-serif;font-style:normal;color:#f6eedb99}
.sbx-boss.rage{animation:bossRage 1s ease-in-out infinite}
@keyframes bossRage{50%{box-shadow:0 0 30px -4px var(--bc)}}
@media (max-width:600px){.sbx-boss{top:52px;width:calc(100% - 110px);padding:4px 10px 6px}.sbx-boss em{display:none}}
.bossfight .sbx-toast{top:124px}
@media (max-width:600px){.bossfight .sbx-toast{top:108px}}

/* Croaker's bounties and Swap Shop */
.sbx-sbox2 .st-bbtn{margin:0 0 10px}
.sbx-sbox2 .st-bbtn.ready{animation:bossRage 1.2s ease-in-out infinite;--bc:#f2c14e}
.sbx-sbox2 .st-tok{display:flex;align-items:center;justify-content:center;gap:6px;margin:-4px 0 10px;font-weight:800}
.sbx-sbox2 .st-tok img{width:22px;height:22px;image-rendering:pixelated}
.sbx-sbox2 .st-tok b{color:#f2c14e;font-size:1.1rem}
.sbx-sbox2 .st-bhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:8px 0 6px;font:900 .7rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--qc)}
.sbx-sbox2 .st-bhead em{font-style:normal;letter-spacing:0;text-transform:none;font-weight:700;color:#f6eedb88;text-align:right}
.st-bty{padding:9px 11px;margin:0 0 7px;border-radius:12px;background:#ffffff09;border:1px solid #ffffff14}
.st-bty.ready{border-color:#f2c14e;box-shadow:0 0 16px -8px #f2c14e}
.st-bty.done{opacity:.55}
.st-bty.wk{background:linear-gradient(160deg,#f2c14e14,#ffffff06)}
.st-bty .bt-top{display:flex;justify-content:space-between;gap:8px;font-size:.88rem}
.st-bty .bt-top em{font-style:normal;font-weight:800;color:#f6eedb99;white-space:nowrap}
.st-bty .bar{display:block;height:6px;margin:6px 0;border-radius:99px;background:#ffffff14;overflow:hidden}
.st-bty .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#4ee6b4,#f2c14e)}
.st-bty .bt-rw{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.st-bty .bt-rw span{display:flex;align-items:center;gap:3px;font:800 .75rem Nunito,sans-serif;color:#f6eedbcc}
.st-bty .bt-rw img{width:18px;height:18px;image-rendering:pixelated}
.sbx-sbox2 .st-bty .btn{display:inline-block;width:auto;min-height:30px;margin-left:auto;padding:4px 14px;font-size:.8rem}
.st-shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;margin:0 0 12px}
.st-shop .sh-it{display:grid;justify-items:center;gap:2px;padding:8px 6px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff1a;color:#f6eedb;font:inherit;cursor:pointer;text-align:center}
.st-shop .sh-it:not([disabled]):hover{border-color:#f2c14e}
.st-shop .sh-it[disabled]{opacity:.5;cursor:default}
.st-shop .sh-it img{width:28px;height:28px;image-rendering:pixelated}
.st-shop .sh-it b{font-size:.76rem;line-height:1.15}
.st-shop .sh-it em{font-style:normal;font:800 .7rem Nunito,sans-serif;color:#f2c14e}
.st-shop .sh-it.lock em{color:#f6eedb88}
.sbx-btycard{display:flex;align-items:center;gap:10px;margin:10px 0 0;padding:9px 12px;border-radius:14px;background:linear-gradient(160deg,#f2c14e1a,#ffffff06);border:1px solid #f2c14e55}
.sbx-btycard img{width:28px;height:28px;image-rendering:pixelated;flex:none}
.sbx-btycard b{display:block;font-size:.88rem}
.sbx-btycard span{display:block;font-size:.76rem;color:#f6eedbaa;line-height:1.35}

/* mini-map */
.sbx-mini{display:block;width:150px;height:94px;margin-top:6px;margin-left:auto;border-radius:12px;border:1px solid #4ee6b455;background:#03080a;box-shadow:0 6px 16px -8px #000;pointer-events:auto;cursor:pointer;image-rendering:pixelated}
.sbx-mini[hidden]{display:none}
.sbx-mini:focus-visible{outline:2px solid #f2c14e;outline-offset:2px}
@media (max-width:600px){.sbx-mini{width:104px;height:66px;border-radius:10px}}
/* hotbar drag */
.sbx-slot.lift{opacity:.4}
.sbx-slot.drop{outline:2px dashed #f2c14e;outline-offset:-3px}

/* cloud saves (Worlds menu) */
.sbx-cloud{display:grid;gap:4px;margin:0 0 12px;padding:10px 12px;border-radius:14px;background:linear-gradient(160deg,#4ee6b414,#ffffff05);border:1px solid #4ee6b444}
.sbx-cloud>b{font-size:.9rem}
.sbx-cloud>span{font-size:.8rem;color:#f6eedbaa;line-height:1.4}
.sbx-cloud .cl-err{color:#ffb07a}
.sbx-cloud>.btn{justify-self:start;min-height:34px;padding:4px 14px;font-size:.82rem}
.sbx-cloud .cl-only{display:grid;gap:6px;margin-top:6px}
.sbx-cloud .cl-only>small{font:900 .66rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#4ee6b4}
.sbx-w .cl-b{display:block;margin-top:2px;font:800 .7rem Nunito,sans-serif;font-style:normal;color:#4ee6b4}
.sbx-w .cl-b.wait{color:#f2c14e}
.sbx-w .cl-cf{display:grid;gap:5px;margin-top:6px;padding:7px 9px;border-radius:10px;background:#f2c14e14;border:1px solid #f2c14e66}
.sbx-w .cl-cf span{font-size:.76rem;color:#ffe9a8}
.sbx-w .cl-cf .btn{min-height:32px;font-size:.78rem;padding:4px 10px}

/* charms (top of the backpack) */
.sbx-charms{margin:0 0 12px;padding:10px 12px;border-radius:14px;background:linear-gradient(160deg,#c06aff14,#ffffff05);border:1px solid #c06aff44}
.sbx-charms .ch-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;cursor:pointer;list-style:none}
.sbx-charms .ch-head::-webkit-details-marker{display:none}
.sbx-charms .ch-head b::before{content:"\25B8  ";color:#c06aff}
.sbx-charms[open] .ch-head b::before{content:"\25BE  "}
.sbx-charms[open] .ch-head{margin-bottom:6px}
.sbx-charms .ch-head em{text-align:right}
.sbx-charms .ch-head b{font-size:.9rem}
.sbx-charms .ch-head em{font-style:normal;font:800 .74rem Nunito,sans-serif;color:#f6eedb99}
.sbx-charms .ch-list{display:grid;gap:6px}
.sbx-charms .ch-it{--cc:#c06aff;display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff1a;color:#f6eedb;font:inherit;text-align:left;cursor:pointer}
.sbx-charms .ch-it.on{border-color:var(--cc);background:color-mix(in srgb,var(--cc) 14%,transparent);box-shadow:0 0 14px -8px var(--cc)}
.sbx-charms .ch-it img{width:30px;height:30px;image-rendering:pixelated;flex:none}
.sbx-charms .ch-it span{display:grid;flex:1;min-width:0}
.sbx-charms .ch-it b{font-size:.84rem}
.sbx-charms .ch-it small{font-size:.74rem;color:#f6eedbaa;line-height:1.3}
.sbx-charms .ch-it i{font-style:normal;font:900 .7rem Nunito,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--cc)}

/* Journal > Log */
.lg-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border-radius:14px;background:linear-gradient(160deg,#f2c14e18,#ffffff05);border:1px solid #f2c14e55}
.lg-top b{font-size:.95rem}
.lg-top .bar{display:block;height:8px;border-radius:99px;background:#ffffff14;overflow:hidden}
.lg-top .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#4ee6b4,#f2c14e)}
.lg-top em{font-style:normal;font:800 .76rem Nunito,sans-serif;color:#f6eedbaa}
.lg-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;margin:0 0 6px}
.lg-stats div{display:grid;padding:7px 8px;border-radius:10px;background:#ffffff09;border:1px solid #ffffff12;text-align:center}
.lg-stats b{font-size:1rem;color:#f2c14e}
.lg-stats span{font:800 .66rem Nunito,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#f6eedb99}
.lg-n{font:800 .72rem Nunito,sans-serif;color:#f6eedb88;letter-spacing:0;text-transform:none}
.lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.lg-it{--lc:#4ee6b4;display:grid;justify-items:center;align-content:start;gap:2px;padding:8px 6px;border-radius:12px;background:color-mix(in srgb,var(--lc) 10%,#ffffff05);border:1px solid color-mix(in srgb,var(--lc) 40%,transparent);text-align:center}
.lg-it img{width:30px;height:30px;image-rendering:pixelated}
.lg-it b{font-size:.74rem;line-height:1.15}
.lg-it em{font-style:normal;font:700 .66rem Nunito,sans-serif;color:#f6eedb99}
.lg-it.no{--lc:#ffffff;opacity:.45;border-style:dashed}
.lg-it .q{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#ffffff10;font:900 1rem Nunito,sans-serif;color:#f6eedb88}

/* multiplayer: Play Together window, room chip, chat */
.sbx-mpv{z-index:5}
.sbx-mpv .mp-body h3{display:flex;align-items:center;gap:8px}
.sbx-mpv .mp-ref{margin-left:auto;min-height:30px;padding:3px 12px;font-size:.76rem}
.sbx-mpv .mp-err{margin:0 0 10px;padding:8px 12px;border-radius:12px;background:#ff8a5a1a;border:1px solid #ff8a5a66;color:#ffd0b8;font-size:.86rem}
.sbx-mpv .mp-wait{margin:20px 0;text-align:center;font-weight:800;color:#bff4e4}
.sbx-mpv .mp-opts{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 10px;font-size:.88rem}
.sbx-mpv .mp-opts input{accent-color:#4ee6b4;width:16px;height:16px;vertical-align:-3px;margin-right:4px}
.sbx-mpv .mp-join{display:flex;flex-wrap:wrap;gap:8px}
.sbx-mpv .mp-join input{flex:1;min-width:120px;min-height:44px;padding:0 12px;border-radius:12px;border:1px solid #ffffff2a;background:#03080a;color:#f6eedb;font:800 1rem Nunito,sans-serif;letter-spacing:.06em}
.sbx-mpv #mpCode{text-transform:uppercase;letter-spacing:.2em}
.sbx-mpv .mp-list{display:grid;gap:6px}
.sbx-mpv .mp-code{display:grid;justify-items:center;gap:4px;margin:0 0 12px;padding:12px;border-radius:14px;background:linear-gradient(160deg,#4ee6b41a,#ffffff05);border:1px solid #4ee6b455}
.sbx-mpv .mp-code small{font:900 .7rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#4ee6b4}
.sbx-mpv .mp-code b{font:900 2rem Nunito,sans-serif;letter-spacing:.24em;color:#fff}
.sbx-mpv .mp-code .btn{min-height:32px;padding:3px 14px;font-size:.8rem}
.sbx-mpv .mp-pl{display:grid;gap:6px;margin:0 0 12px}
.sbx-mpv .mp-pl>div{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff14}
.sbx-mpv .mp-pl .dot,.sbx-mpchip .dot{width:9px;height:9px;border-radius:50%;background:#4ee6b4;box-shadow:0 0 8px #4ee6b4;flex:none}
.sbx-mpv .mp-pl .dot.host{background:#f2c14e;box-shadow:0 0 8px #f2c14e}
.sbx-mpv .mp-pl em{font-style:normal;font:800 .7rem Nunito,sans-serif;color:#f2c14e}
.sbx-mpv .mp-pl .btn{margin-left:auto;min-height:28px;padding:2px 12px;font-size:.74rem}
.sbx-mpchip{position:absolute;left:50%;top:58px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:4px 6px 4px 11px;border-radius:999px;background:rgba(6,12,10,.86);border:1px solid #4ee6b466;color:#f6eedb;font:800 .76rem Nunito,sans-serif;letter-spacing:.06em;pointer-events:auto;cursor:pointer;z-index:2}
.sbx-mpchip[hidden]{display:none}
.sbx-mpchip button{border:0;border-radius:999px;padding:3px 10px;background:#4ee6b4;color:#062018;font:900 .72rem Nunito,sans-serif;cursor:pointer}
.bossfight .sbx-mpchip{top:118px}
.sbx-chatlog{position:absolute;left:12px;bottom:96px;z-index:3;display:grid;gap:3px;max-width:min(360px,70%);pointer-events:none}
.sbx-chatlog[hidden]{display:none}
.sbx-chatlog div{padding:4px 9px;border-radius:9px;background:rgba(6,12,10,.72);color:#f6eedb;font-size:.82rem;line-height:1.3;text-shadow:0 1px 2px #000}
.sbx-chatlog b{color:#bff4e4}
.sbx-chatlog i{color:#f6eedb99}
.sbx-chat{position:absolute;left:12px;right:12px;bottom:58px;z-index:6;display:flex;gap:6px;max-width:460px}
.sbx-chat[hidden]{display:none}
.sbx-chat input{flex:1;min-height:42px;padding:0 12px;border-radius:12px;border:1px solid #4ee6b488;background:#03080af0;color:#f6eedb;font:700 .95rem Nunito,sans-serif}
.sbx-chat .btn{min-height:42px}
@media (max-width:600px){.sbx-mpchip{top:112px;left:0;transform:none}.bossfight .sbx-mpchip{top:150px}.sbx-chatlog{bottom:150px}.sbx-chat{bottom:120px}}

/* ingredients pulled from nearby chests */
.fromchest .chs{display:inline-block;width:9px;height:7px;margin-left:4px;border-radius:2px;background:#b8864e;box-shadow:inset 0 -2px 0 #7a5228,inset 0 2px 0 #e8c08a;vertical-align:1px}
.stn-ch{color:#e8d9a8}

/* health and hunger sit right above the hotbar */
.sbx-dock{align-items:flex-end}
.sbx-dcol{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0}
.sbx-vrow{display:flex;align-items:center;gap:8px;pointer-events:none}
.sbx-vrow .sbx-hp{flex:1 1 58%;width:auto;min-width:0;height:30px}
.sbx-vrow .sbx-hp .hrt{width:30px;height:30px}
.sbx-vrow .sbx-food{flex:1 1 42%;width:auto;min-width:0;height:22px}
.sbx-vrow .sbx-food[hidden]{display:none}
.sbx-slot.empty{cursor:pointer}
.sbx-slot.empty.on{outline:2px solid #f2c14e;outline-offset:-2px}
.sbx-chatlog{bottom:132px}
@media (max-width:600px){.sbx-chatlog{bottom:176px}}
/* the dock is taller now (health and hunger above the hotbar): lift the touch controls, the walk stick and the hint over it */
.sbx-pad{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 104px)}
.sbx-joy{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 112px)}
.sbx-hint{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 112px)}
@media(pointer:coarse),(max-width:760px){.sbx-hint{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 200px)}}
@media(max-height:520px) and (orientation:landscape){.sbx-pad{bottom:max(6px,env(safe-area-inset-bottom))}.sbx-joy{bottom:max(6px,env(safe-area-inset-bottom))}.sbx-hint{bottom:calc(max(6px,env(safe-area-inset-bottom)) + 96px)}}

/* 9-slot hotbar: the backpack shows it as one row of 9, and the 21 bag slots as 3 rows of 7 */
.sbx-igrid{grid-template-columns:repeat(7,minmax(0,1fr))}
.sbx-igrid.hot{grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}
.sbx-igrid.hot .sbx-is b{font-size:.62rem}

/* armor stand window */
.sbx-sbox2 .st-stand{display:grid;place-items:center;margin:-6px 0 4px}
.sbx-sbox2 .st-stand img{width:96px;height:120px;image-rendering:pixelated;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.sbx-sbox2 .st-pick{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0 0 10px}
.sbx-sbox2 .st-pick button{display:grid;justify-items:center;align-content:start;gap:3px;min-height:64px;padding:6px 4px;border-radius:12px;background:#ffffff09;border:1px solid #ffffff1a;color:#f6eedb;font:800 .66rem Nunito,sans-serif;line-height:1.15;cursor:pointer}
.sbx-sbox2 .st-pick button.on{border-color:var(--qc);background:color-mix(in srgb,var(--qc) 18%,transparent);box-shadow:0 0 14px -6px var(--qc)}
.sbx-sbox2 .st-pick button[disabled]{opacity:.4;cursor:default}
.sbx-sbox2 .st-pick img{width:30px;height:30px;image-rendering:pixelated}

/* Realm Gate window */
.sbx-sbox2 .st-gate{display:grid;gap:6px;margin:0 0 10px}
.sbx-sbox2 .gt-it{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:6px 10px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff10}
.sbx-sbox2 .gt-it img{width:30px;height:30px;image-rendering:pixelated}
.sbx-sbox2 .gt-it span{display:grid;line-height:1.2;min-width:0}
.sbx-sbox2 .gt-it b{font-size:.9rem}
.sbx-sbox2 .gt-it em{font-style:normal;font-size:.75rem;color:#f6eedb99}
.sbx-sbox2 .gt-it .btn{min-height:34px;padding:4px 14px;font-size:.85rem}
.sbx-sbox2 .gt-it .btn[disabled]{opacity:.45}
.sbx-sbox2 .gt-it.on{border-color:var(--gc);box-shadow:inset 0 0 18px -8px var(--gc)}
.sbx-sbox2 .gt-it i{font-style:normal;color:var(--gc);font-weight:900;padding:0 8px}
.sbx-sbox2 .st-row .btn[disabled]{opacity:.45}
.sbx-gatefx{position:absolute;inset:0;z-index:60;pointer-events:none;opacity:0;transition:opacity .9s ease;background:radial-gradient(circle at 50% 50%,#ffffff 0%,#8affe0 35%,#c06aff 70%,#2a1438 100%)}
.sbx-gatefx.on{opacity:1}
@media (prefers-reduced-motion:reduce){.sbx-gatefx{transition:opacity .2s}}
.sbx-sbox2 .st-row2 .btn:last-child{grid-column:auto}
.sbx-sbox2 .st-gate .gt-it{padding:4px 10px}

/* active potion effects, above the health bar */
.sbx-vrow{position:relative}
.sbx-fx{position:absolute;left:0;bottom:calc(100% + 6px);display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}
.sbx-fx[hidden]{display:none}
.sbx-fx .fx-chip{display:flex;align-items:center;gap:4px;padding:2px 8px 2px 3px;border-radius:999px;background:rgba(10,16,14,.78);border:1px solid var(--fc);box-shadow:0 0 10px -4px var(--fc)}
.sbx-fx .fx-chip img{width:20px;height:20px;image-rendering:pixelated}
.sbx-fx .fx-chip b{font:800 .72rem Nunito,sans-serif;color:#f6eedb;font-variant-numeric:tabular-nums}

/* Jeweler's Table */
.sbx-sbox2 .st-gems{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:0 0 8px}
.sbx-sbox2 .st-gems button{display:grid;justify-items:center;gap:2px;padding:6px 3px 5px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff14;color:#f6eedb;font:700 .62rem/1.15 Nunito,sans-serif;text-align:center;cursor:pointer}
.sbx-sbox2 .st-gems button img{width:24px;height:24px;image-rendering:pixelated}
.sbx-sbox2 .st-gems button i{font-style:normal;font-weight:900;color:#f6eedb88}
.sbx-sbox2 .st-gems button.on{border-color:var(--qc);box-shadow:inset 0 0 14px -6px var(--qc)}
.sbx-sbox2 .st-gems button.on i{color:var(--qc)}
.sbx-sbox2 .st-gems button[disabled]:not(.on){opacity:.4;cursor:default}

/* quest helper tips */
.sbx-tip{position:absolute;left:50%;top:calc(max(8px,env(safe-area-inset-top)) + 104px);transform:translateX(-50%);z-index:12;display:flex;align-items:center;gap:10px;width:min(92%,440px);padding:10px 34px 10px 14px;border-radius:14px;background:rgba(7,18,15,.94);border:1px solid var(--tc,#f2c14e);box-shadow:0 10px 28px -12px #000,0 0 22px -12px var(--tc,#f2c14e);color:#f6eedb;animation:tipIn .35s ease}
.sbx-tip[hidden]{display:none}
.sbx-tip p{margin:0;flex:1;font:700 .86rem/1.35 Nunito,sans-serif}
.sbx-tip .btn{flex:none;min-height:34px;padding:4px 14px;font-size:.82rem}
.sbx-tip .tip-x{position:absolute;top:4px;right:6px;width:26px;height:26px;border:0;border-radius:8px;background:transparent;color:#f6eedb99;font-size:1.1rem;cursor:pointer}
.sbx-tip .tip-x:hover{color:#fff;background:#ffffff12}
.sbx-stage.panel .sbx-tip{display:none}
@keyframes tipIn{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}
.sbx-menubtn.pulse{animation:jpulse 1.4s ease-in-out infinite;border-color:#4ee6b4}
@keyframes jpulse{0%,100%{box-shadow:0 0 0 0 rgba(78,230,180,.55)}50%{box-shadow:0 0 0 9px rgba(78,230,180,0)}}
.sbx-card.flash{animation:cflash 2.4s ease}
@keyframes cflash{0%,60%{box-shadow:0 0 0 2px #4ee6b4,0 0 22px -4px #4ee6b4}100%{box-shadow:none}}
@media (prefers-reduced-motion:reduce){.sbx-tip{animation:none}.sbx-menubtn.pulse{animation:none;box-shadow:0 0 0 3px rgba(78,230,180,.5)}.sbx-card.flash{animation:none;box-shadow:0 0 0 2px #4ee6b4}}
/* phones: the backpack and Journal buttons sit beside the health bar, so all 9 hotbar slots fit across the full width */
@media(max-width:480px){
 .sbx-dock{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;width:calc(100% - 12px)}
 .sbx-dcol{display:contents}
 .sbx-dock .sbx-vrow{grid-column:1;grid-row:1;min-width:0}
 .sbx-dock .sbx-packbtn{grid-column:2;grid-row:1}
 .sbx-dock .sbx-menubtn{grid-column:3;grid-row:1}
 .sbx-dock .sbx-bar{grid-column:1/-1;grid-row:2;justify-content:space-between}
 .sbx-dock .sbx-slot{flex:1 1 0;min-width:0;width:auto;height:auto;max-width:46px;aspect-ratio:1/1}
 .sbx-dock .sbx-slot img{width:72%;height:auto}
}

/* difficulty pickers */
.sbx-diff{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sbx-diff > span{font:800 .78rem Nunito,sans-serif;color:#f6eedbaa;margin-right:2px}
.sbx-diff .btn{flex:1 1 0;min-width:72px}
.sbx-diff .btn[aria-pressed="true"]{background:var(--dc);border-color:var(--dc);color:#10140f}

/* ---------- UI polish pass ---------- */
/* toasts: below the top bar on phones (clear of the quest tracker), and at the bottom while a window is open so they never cover its title or close button */
@media (max-width:600px){.sbx-toast{top:104px;max-width:calc(100% - 24px);white-space:normal;text-align:center;border-radius:14px}.sbx-tip{top:calc(max(8px,env(safe-area-inset-top)) + 150px)}}
.sbx-stage.panel .sbx-toast{top:auto;bottom:calc(max(14px,env(safe-area-inset-bottom)) + 8px);z-index:40}
.sbx-toast{max-width:min(560px,calc(100% - 24px));white-space:normal;text-align:center;line-height:1.3;border-radius:16px}

/* Options: grouped cards with one row per setting */
.op-card{margin:0 0 12px;padding:10px 12px 4px;border-radius:16px;background:#ffffff07;border:1px solid #ffffff12}
.op-card h3{margin:0 0 4px;font:900 .72rem Nunito,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#4ee6b4}
.op-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid #ffffff0d}
.op-card h3 + .op-row{border-top:0}
.op-row > div{min-width:0;display:grid;gap:2px}
.op-row b{font-size:.95rem;color:#f6eedb}
.op-row small{font-size:.78rem;line-height:1.3;color:#f6eedb99}
.op-btns{display:flex;align-items:center;gap:8px;flex:none}
.op-btns .btn{min-height:36px;padding:4px 12px;font-size:.84rem}
.op-mini{min-width:0}
.op-stp{display:inline-flex;align-items:center;gap:4px;flex:none}
.op-stp .btn{width:34px;min-width:34px;height:34px;min-height:34px;padding:0;font-size:1.05rem;border-radius:10px}
.op-stp b{min-width:44px;text-align:center;font-size:.86rem;font-variant-numeric:tabular-nums}
.op-seg{flex:none;gap:4px}
.op-seg .btn{min-width:0;flex:none;min-height:34px;padding:4px 10px;font-size:.8rem}
.op-sw{position:relative;flex:none;width:52px;height:30px;border-radius:999px;border:1px solid #ffffff2a;background:#ffffff14;cursor:pointer;transition:background .18s}
.op-sw i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#f6eedbcc;box-shadow:0 2px 6px #0006;transition:transform .2s cubic-bezier(.3,1.4,.5,1)}
.op-sw.on{background:#4ee6b4;border-color:#4ee6b4}
.op-sw.on i{transform:translateX(22px);background:#fff}
.op-sw:focus-visible{outline:2px solid #f2c14e;outline-offset:2px}
.op-foot{margin:6px 0 8px;font-size:.78rem}
.op-seed{text-align:center;font-size:.72rem;opacity:.55;margin-top:-2px}
@media (max-width:420px){.op-row{flex-wrap:wrap}.op-row > div{flex:1 1 100%}.op-row > .op-btns,.op-row > .op-seg,.op-row > .op-stp{margin-left:auto}}
@media (prefers-reduced-motion:reduce){.op-sw,.op-sw i{transition:none}}
.op-row:has(> .op-sw){flex-wrap:nowrap}.op-row:has(> .op-sw) > div{flex:1 1 auto}

/* backpack: a capacity meter and actions for the picked item only */
.pk-cap{display:grid;grid-template-columns:1fr auto;grid-template-areas:"bar n" "sub sub";gap:3px 10px;align-items:center;margin:0 0 4px}
.pk-cap .bar{grid-area:bar;height:8px;border-radius:999px;background:#ffffff12;overflow:hidden}
.pk-cap .bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4ee6b4,#9be35a);transition:width .25s}
.pk-cap.near .bar i{background:linear-gradient(90deg,#f2c14e,#ff9a4a)}.pk-cap.full .bar i{background:#ff6b82}
.pk-cap b{grid-area:n;font-size:.86rem;font-variant-numeric:tabular-nums}
.pk-cap small{grid-area:sub;font-size:.74rem;color:#f6eedb88}
.pk-tip{font-size:.78rem;margin:0 0 8px}
.sbx-iinfo .acts{flex-wrap:wrap}
.sbx-iinfo .acts .btn{text-transform:none;letter-spacing:0}
.sbx-iinfo .pk-sort{margin-left:auto}
.sbx-iinfo.sel{border-color:#4ee6b455}

/* world menu footer */
.wl-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #ffffff12}
.wl-foot .btn{min-height:42px;font-size:.86rem;text-align:center;justify-content:center}
.wl-diff{margin:-2px 0 4px}.wl-diff > span{flex:1 1 100%}
@media (max-width:420px){.wl-foot{grid-template-columns:1fr 1fr}.wl-foot .btn:first-child{grid-column:1/-1}}

/* chip rows show a fade where more chips are hidden off the edge */
.sbx-cats,.sbx-subs{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent);padding-right:24px}
/* windows ease in instead of popping */
.sbx-panel:not([hidden]),.sbx-pack:not([hidden]),.sbx-worlds:not([hidden]){animation:uiIn .2s cubic-bezier(.2,.9,.3,1.2)}
@keyframes uiIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sbx-panel:not([hidden]),.sbx-pack:not([hidden]),.sbx-worlds:not([hidden]){animation:none}}
/* buttons: a little press feedback everywhere */
.sbx-panel .btn:active,.sbx-pack .btn:active,.sbx-worlds .btn:active,.op-sw:active{transform:translateY(1px) scale(.98)}
.op-card,.op-row,.op-row > div{text-align:left}
.op-card h3{text-align:left}
/* pop-ups and the controls hint step aside while a window is open */
.sbx-stage.panel .sbx-pops,.sbx-stage.panel .sbx-hint{opacity:0;visibility:hidden;transition:opacity .15s}

/* ---- main menu (title screen): the logo over your own world, camera drifting along the surface ---- */
.sbx-stage.title .sbx-hud,.sbx-stage.title .sbx-dock,.sbx-stage.title .sbx-pad,.sbx-stage.title .sbx-joy,.sbx-stage.title .sbx-hint,.sbx-stage.title .sbx-tip,.sbx-stage.title .sbx-toast,.sbx-stage.title .sbx-pops,.sbx-stage.title .sbx-banner,.sbx-stage.title .sbx-trail,.sbx-stage.title .sbx-bcard,.sbx-stage.title .sbx-mpchip,.sbx-stage.title .sbx-chatlog,.sbx-stage.title .sbx-boss{display:none!important}
.sbx-title{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:max(28px,env(safe-area-inset-top)) clamp(20px,6vw,88px) calc(max(16px,env(safe-area-inset-bottom)) + 44px);overflow:auto;color:#f6eedb;font-family:Nunito,system-ui,sans-serif;touch-action:manipulation;-webkit-user-select:none;user-select:none;
 background:linear-gradient(90deg,rgba(3,9,7,.86) 0,rgba(3,9,7,.6) 32%,rgba(3,9,7,0) 60%),linear-gradient(0deg,rgba(3,9,7,.65),rgba(3,9,7,0) 26%)}
.sbx-title[hidden]{display:none}
.sbx-title .tt-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:min(430px,100%)}
.sbx-title .tt-col:has(.tt-how){width:min(640px,100%)}
.sbx-title .tt-h{margin:0 0 0 calc(var(--lb,13px) * -2);line-height:0}
.sbx-title .tt-logo{display:block;max-width:calc(100vw - 8px);filter:drop-shadow(0 12px 26px rgba(0,0,0,.45))}
.sbx-title .tt-tag{margin:-8px 0 10px;font-weight:700;font-size:1.05rem;line-height:1.4;color:#d4ecdf;text-shadow:0 1px 3px #000,0 0 12px rgba(0,0,0,.6)}
.sbx-title .tt-btns{display:flex;flex-direction:column;gap:12px;width:100%}
.sbx-title .tt-play{display:flex;align-items:center;gap:14px;width:100%;min-height:74px;padding:12px 20px 12px 13px;border:0;border-radius:18px;text-align:left;cursor:pointer;color:#1a1405;font-family:inherit;
 background:linear-gradient(180deg,#ffdc78 0,#f2c14e 52%,#dc9e2a 100%);box-shadow:0 0 0 2px #08110c,inset 0 2px 0 rgba(255,255,255,.5),inset 0 -4px 0 rgba(130,76,0,.35),0 14px 30px -12px rgba(242,193,78,.75);transition:transform .12s,filter .15s}
.sbx-title .tt-play:hover{filter:brightness(1.06)}
.sbx-title .tt-play:active{transform:translateY(2px)}
.sbx-title .tt-play:focus-visible{outline:3px solid #fff;outline-offset:3px}
.sbx-title .tt-pi{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#1f1806;color:#f2c14e;box-shadow:inset 0 -3px 0 rgba(0,0,0,.4)}
.sbx-title .tt-pi svg{width:22px;height:22px;margin-left:3px}
.sbx-title .tt-pt{min-width:0}
.sbx-title .tt-pt b{display:block;font-weight:800;font-size:1.4rem;line-height:1.1}
.sbx-title .tt-pt small{display:block;margin-top:3px;font-weight:700;font-size:.82rem;line-height:1.3;color:#4d3808;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-title .tt-list{display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:16px;background:rgba(6,16,12,.74);border:1px solid rgba(78,230,180,.22);box-shadow:0 14px 30px -18px #000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sbx-title .tt-list button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:9px 12px;border:0;border-radius:11px;background:none;color:#e6f5ec;font:800 1rem/1.2 Nunito,system-ui,sans-serif;text-align:left;cursor:pointer;transition:background .15s,box-shadow .15s}
.sbx-title .tt-list svg{flex:none;width:20px;height:20px;color:#4ee6b4}
.sbx-title .tt-list em{margin-left:auto;padding:2px 9px;border-radius:99px;background:rgba(78,230,180,.15);color:#9ff3d4;font-style:normal;font-size:.75rem;font-weight:800}
.sbx-title .tt-list button:hover,.sbx-title .tt-list button:focus-visible{outline:none;background:rgba(78,230,180,.14);box-shadow:inset 3px 0 0 #4ee6b4}
.sbx-title .tt-foot{position:absolute;left:clamp(20px,6vw,88px);right:clamp(14px,3vw,30px);bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:20px}
.sbx-title .tt-link{display:inline-flex;align-items:center;gap:5px;min-height:36px;color:#a9cbbb;font-weight:700;font-size:.86rem;text-decoration:none;text-shadow:0 1px 2px #000}
.sbx-title .tt-link svg{width:16px;height:16px}
.sbx-title .tt-link:hover,.sbx-title .tt-link:focus-visible{color:#fff}
.sbx-title .tt-fs{margin-left:auto;display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(6,16,12,.7);color:#e6f5ec;cursor:pointer}
.sbx-title .tt-fs svg{width:20px;height:20px}.sbx-title .tt-fs .ex,.sbx-title .tt-fs[aria-pressed="true"] .en{display:none}.sbx-title .tt-fs[aria-pressed="true"] .ex{display:block}
/* how to play */
.sbx-title .tt-how{width:100%;padding:18px 18px 16px;border-radius:16px;background:rgba(6,16,12,.9);border:1px solid rgba(78,230,180,.25);box-shadow:0 18px 40px -20px #000}
.sbx-title .tt-how h2{margin:0 0 12px;font:800 1.3rem/1.2 Nunito,system-ui,sans-serif;color:#f6eedb}
.sbx-title .tt-hcols{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.sbx-title .tt-how h3{margin:0 0 8px;font:800 .9rem Nunito,system-ui,sans-serif;color:#4ee6b4}
.sbx-title .tt-how dl{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;margin:0;align-items:center}
.sbx-title .tt-how dt{justify-self:start;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.08);box-shadow:inset 0 -2px 0 rgba(0,0,0,.35);font-weight:800;font-size:.78rem;color:#f6eedb;white-space:nowrap}
.sbx-title .tt-how dd{margin:0;font-weight:600;font-size:.86rem;color:#c3dccf}
.sbx-title .tt-hnote{margin:14px 0 12px;font-weight:600;font-size:.88rem;line-height:1.45;color:#d4ecdf}
.sbx-title .tt-back{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:8px 18px 8px 12px;border:0;border-radius:99px;background:#f2c14e;color:#1a1405;font:800 .95rem Nunito,system-ui,sans-serif;cursor:pointer}
.sbx-title .tt-back svg{width:18px;height:18px}
.sbx-title .tt-back:focus-visible{outline:3px solid #fff;outline-offset:2px}
/* the one entrance: the logo drops in as the loading screen fades, then the menu rises under it */
.sbx-title.in .tt-h{animation:ttDrop .7s cubic-bezier(.34,1.45,.64,1) both}
.sbx-title.in .tt-tag{animation:ttRise .5s cubic-bezier(.22,1,.36,1) .18s both}
.sbx-title.in .tt-btns{animation:ttRise .55s cubic-bezier(.22,1,.36,1) .28s both}
@keyframes ttDrop{0%{opacity:0;transform:translateY(-26px)}100%{opacity:1;transform:none}}
@keyframes ttRise{0%{opacity:0;transform:translateY(14px)}100%{opacity:1;transform:none}}
/* phones: logo on top, the buttons down where thumbs are */
@media(max-width:560px){
 .sbx-title{justify-content:flex-start;padding:max(22px,env(safe-area-inset-top)) 16px calc(max(12px,env(safe-area-inset-bottom)) + 48px);background:linear-gradient(180deg,rgba(3,9,7,.72) 0,rgba(3,9,7,.1) 30%,rgba(3,9,7,.2) 46%,rgba(3,9,7,.9) 74%)}
 .sbx-title .tt-col{flex:1;align-items:center;width:100%;max-width:440px;margin:0 auto}
 .sbx-title .tt-h{margin:0}
 .sbx-title .tt-tag{text-align:center;font-size:.95rem}
 .sbx-title .tt-btns{margin-top:auto}
 .sbx-title .tt-play{min-height:68px}
 .sbx-title .tt-foot{left:16px;right:16px;justify-content:center;gap:16px}
 .sbx-title .tt-fs{margin-left:0}
 .sbx-title .tt-hcols{grid-template-columns:1fr}
 .sbx-title .tt-col:has(.tt-how) .tt-btns{margin-top:0}
}
/* short landscape screens: tighter, menu in two columns */
@media(max-height:560px) and (min-width:561px){
 .sbx-title{padding-top:max(14px,env(safe-area-inset-top))}
 .sbx-title .tt-col{gap:8px}
 .sbx-title .tt-tag{margin:-6px 0 4px;font-size:.92rem}
 .sbx-title .tt-play{min-height:60px}
 .sbx-title .tt-list{display:grid;grid-template-columns:1fr 1fr}
 .sbx-title .tt-list button{min-height:40px;padding:7px 10px}
}
@media(prefers-reduced-motion:reduce){.sbx-title.in .tt-h,.sbx-title.in .tt-tag,.sbx-title.in .tt-btns{animation:none}}
.sbx-title.how .tt-h,.sbx-title.how .tt-tag{display:none}
.sbx-title.how{justify-content:center}
.sbx-title .tt-how{text-align:left}
.sbx-title .tt-how h2{text-transform:none;letter-spacing:0;text-align:left}
.sbx-title .tt-how h3{text-transform:none;letter-spacing:0}
@media(max-width:560px){.sbx-title.how .tt-col{flex:none}.sbx-title.how{justify-content:flex-start}.sbx-title.how .tt-btns{margin-top:0}.sbx-title .tt-how dl{gap:5px 8px}}
.sbx-title .tt-fs.gfs{position:static;transform:none;z-index:auto;width:40px;height:40px;border-radius:12px;line-height:0}
.sbx-title .tt-fs.gfs .ex{display:none}.sbx-title .tt-fs.gfs[aria-pressed="true"] .ex{display:block}.sbx-title .tt-fs.gfs[aria-pressed="true"] .en{display:none}
@media(max-width:560px){.sbx-title .tt-foot{justify-content:space-between}}
.sbx-title{max-width:none;width:auto;margin:0;text-align:left}
/* WAYSTONES window */
.sbx-sbox2 .st-ways{display:grid;gap:6px;margin:0 0 14px;max-height:46vh;overflow:auto}
.sbx-sbox2 .st-ways button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--qc) 30%,transparent);background:#ffffff0a;color:#fff;font:800 .92rem Nunito,sans-serif;text-align:left;cursor:pointer}
.sbx-sbox2 .st-ways button:hover,.sbx-sbox2 .st-ways button:focus-visible{background:color-mix(in srgb,var(--qc) 18%,transparent);outline:none}
.sbx-sbox2 .st-ways i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--wc);box-shadow:0 0 8px var(--wc)}
.sbx-sbox2 .st-ways b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-sbox2 .st-ways em{flex:none;font-style:normal;font-size:.78rem;color:#f6eedb99}
.sbx-sbox2 .st-name{display:flex;gap:8px;margin:0 0 12px}
.sbx-sbox2 .st-name input{flex:1;min-width:0;padding:9px 12px;border-radius:12px;border:1px solid #ffffff26;background:#0006;color:#fff;font:800 .95rem Nunito,sans-serif}
.sbx-sbox2 .st-name input:focus{outline:2px solid var(--qc);outline-offset:1px}
.sbx-sbox2 .st-name .btn{width:auto;min-height:40px;padding:0 14px;font-size:.85rem}
/* ===== QUEST BOOK: lily pads on swamp water, joined by vines ===== */
.sbx-body.qb-on{padding:0;overflow:hidden;display:flex}
.sbx-panel.qbook{max-height:92%;height:92%}
@media(min-width:900px){.sbx-panel.qbook{width:min(960px,calc(100% - 24px));height:auto}}
.qb{--qc:#4ee6b4;flex:1;min-height:0;display:grid;grid-template-columns:196px 1fr;width:100%}
.qb-side{display:flex;flex-direction:column;gap:3px;padding:10px 8px;overflow-y:auto;background:linear-gradient(180deg,#071812,#040c09);border-right:1px solid #4ee6b426}
.qb-side small{font:900 .64rem Nunito,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#4ee6b4aa;margin:8px 6px 2px}
.qb-ch{display:flex;align-items:center;gap:9px;padding:6px 8px 6px 6px;border-radius:14px;border:1px solid transparent;background:none;color:#f6eedb;text-align:left;cursor:pointer;position:relative}
.qb-ch:hover{background:#ffffff08}
.qb-ch.on{background:linear-gradient(90deg,color-mix(in srgb,var(--cc) 22%,transparent),transparent);border-color:color-mix(in srgb,var(--cc) 45%,transparent)}
.qb-ch.on::before{content:"";position:absolute;left:-8px;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--cc);box-shadow:0 0 10px var(--cc)}
.qb-ch.lock{opacity:.5}
.qb-chi{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#2f6a3c,#163222 72%);box-shadow:0 0 0 2.5px #0a1a12,0 0 0 4.5px color-mix(in srgb,var(--cc) 55%,#0000);background-clip:padding-box;position:relative}
.qb-chi::after{content:"";position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(var(--cc) calc(var(--pc)*1%),#ffffff12 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px))}
.qb-chi img{width:24px;height:24px;image-rendering:pixelated}
.qb-cht{min-width:0;display:grid}
.qb-cht b{font:800 .82rem/1.15 Nunito,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qb-cht em{font-style:normal;font:700 .7rem Nunito,sans-serif;color:#f6eedb88}
.qb-ch.full .qb-cht em{color:#ff9ad0}
.qb-main{min-width:0;min-height:0;display:flex;flex-direction:column;position:relative}
.qb-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #ffffff10;background:linear-gradient(180deg,color-mix(in srgb,var(--qc) 14%,#08140f),#08140f00)}
.qb-head>div:first-child{flex:1;min-width:0}
.qb-head small{display:block;font:900 .64rem Nunito,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--qc)}
.qb-head h3{margin:0;font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.25rem;line-height:1.1;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qb-hp{display:flex;align-items:center;gap:6px;width:120px}
.qb-hp .bar{flex:1;margin:0}.qb-hp .bar i{background:var(--qc)}
.qb-hp em{font-style:normal;font:800 .75rem Nunito,sans-serif;color:#f6eedbcc}
.qb-story{width:auto;min-height:32px;padding:5px 12px;font-size:.78rem}
.qb-bty{display:flex;align-items:center;gap:8px;margin:8px 14px 0;padding:6px 10px;border-radius:12px;background:#f2c14e14;border:1px solid #f2c14e33;font:700 .78rem Nunito,sans-serif;color:#f6eedbcc}
.qb-bty img{width:20px;height:20px;image-rendering:pixelated}.qb-bty b{color:#f2c14e}
.qb-mapwrap{flex:1;min-height:0;position:relative}
.qb-map{position:absolute;inset:0;overflow:auto;cursor:grab;touch-action:pan-x pan-y;overscroll-behavior:contain;outline:none;
 background:repeating-radial-gradient(circle at 22% 30%,#ffffff06 0 2px,transparent 2px 46px),repeating-radial-gradient(circle at 78% 72%,#ffffff05 0 2px,transparent 2px 58px),radial-gradient(ellipse at 30% 15%,#12392c,transparent 60%),radial-gradient(ellipse at 85% 95%,#0d2c34,transparent 55%),#061410}
.qb-map.drag{cursor:grabbing}
.qb-world{position:relative;margin:0 auto;min-width:100%}
.qb-vines{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.qb-vines path{fill:none;stroke-linecap:round}
.qb-vines .v0{stroke:#03100a;stroke-width:9}
.qb-vines .v1{stroke:#5fae46;stroke-width:5}
.qb-vines .v2{stroke:#24452c;stroke-width:4;stroke-dasharray:2 9}
.qb-vines .lf1{fill:#7fd06a}.qb-vines .lf0{fill:#24452c}
/* a pad */
.qb-n{position:absolute;width:62px;height:62px;margin:-31px 0 0 -31px;padding:0;border:0;background:none;cursor:pointer;--pr:0;--rot:0deg;-webkit-tap-highlight-color:transparent}
.qb-n.big{width:80px;height:80px;margin:-40px 0 0 -40px}
.qb-n .pad{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;
 background:radial-gradient(circle at 36% 30%,#4a9a52,#24572f 58%,#163a20 80%);box-shadow:inset 0 -5px 0 #0f2a17,inset 0 3px 0 #6ac06455,0 6px 0 -1px #03100a,0 0 0 2px #0a1d12;
 -webkit-mask:conic-gradient(from calc(var(--rot) - 18deg),transparent 0 36deg,#000 0);mask:conic-gradient(from calc(var(--rot) - 18deg),transparent 0 36deg,#000 0);transition:transform .15s}
.qb-n::before{content:"";position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(var(--qc) calc(var(--pr)*1%),#ffffff10 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3.5px))}
.qb-n img{width:34px;height:34px;image-rendering:pixelated;filter:drop-shadow(0 2px 0 #0008)}
.qb-n.big img{width:44px;height:44px}
.qb-n .qg,.qb-chi .qg,.qb-ci .qg{font:900 1.35rem Nunito,sans-serif;color:#d4fff0;text-shadow:0 2px 0 #0008}
.qb-n:hover .pad,.qb-n:focus-visible .pad{transform:scale(1.08)}
.qb-n:focus-visible{outline:none}.qb-n:focus-visible::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid #fff}
.qb-n.big .pad{box-shadow:inset 0 -6px 0 #0f2a17,inset 0 3px 0 #6ac06455,0 7px 0 -1px #03100a,0 0 0 3px #f2c14e}
.qb-n.big::before{inset:-8px}
.qb-n.done .pad{background:radial-gradient(circle at 36% 30%,#6ad06a,#2f7a3c 58%,#1d4a26 82%)}
.qb-n.done::before{background:conic-gradient(#ff9ad0 100%,#0000 0)}
.qb-n .fl{position:absolute;right:-4px;top:-6px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,#ffe27a 0 22%,transparent 24%),conic-gradient(from 0deg,#ff9ad0 0 12%,#ffc8e6 12% 20%,#ff9ad0 20% 32%,#ffc8e6 32% 40%,#ff9ad0 40% 52%,#ffc8e6 52% 60%,#ff9ad0 60% 72%,#ffc8e6 72% 80%,#ff9ad0 80% 92%,#ffc8e6 92%);-webkit-mask:radial-gradient(circle,#000 62%,transparent 64%);mask:radial-gradient(circle,#000 62%,transparent 64%);filter:drop-shadow(0 2px 0 #0009)}
.qb-n.next .pad{filter:saturate(.45) brightness(.8)}.qb-n.next img{opacity:.75}
.qb-n.lock .pad{background:radial-gradient(circle at 36% 30%,#2a3a32,#151f1a 70%);filter:none}.qb-n.lock::before{opacity:.25}
.qb-n .lk{position:absolute;right:-2px;bottom:-4px;font-style:normal;font-size:14px;filter:drop-shadow(0 1px 0 #000)}
.qb-n.cur{z-index:2}
.qb-n.cur .pad{box-shadow:inset 0 -5px 0 #0f2a17,inset 0 3px 0 #6ac06455,0 6px 0 -1px #03100a,0 0 0 2px #0a1d12,0 0 22px 6px color-mix(in srgb,var(--qc) 55%,transparent);animation:qbGlow 2.2s ease-in-out infinite}
.qb-n .ff{position:absolute;width:7px;height:7px;border-radius:50%;background:#efffb0;box-shadow:0 0 8px 3px #d8ff6a;left:50%;top:50%;animation:qbFly 4s linear infinite;pointer-events:none}
.qb-n .nm{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);white-space:nowrap;font:800 .72rem Nunito,sans-serif;font-style:normal;color:#fff;padding:3px 9px;border-radius:999px;background:#040c09e6;border:1px solid color-mix(in srgb,var(--qc) 55%,transparent);pointer-events:none}
.qb-n.sel .pad{transform:scale(1.1)}.qb-n.sel::after{content:"";position:absolute;inset:-11px;border-radius:50%;border:2px dashed #fff9;animation:qbSpin 8s linear infinite}
@keyframes qbGlow{50%{box-shadow:inset 0 -5px 0 #0f2a17,inset 0 3px 0 #6ac06455,0 6px 0 -1px #03100a,0 0 0 2px #0a1d12,0 0 30px 10px color-mix(in srgb,var(--qc) 35%,transparent)}}
@keyframes qbFly{0%{transform:rotate(0) translate(40px) rotate(0)}100%{transform:rotate(360deg) translate(40px) rotate(-360deg)}}
@keyframes qbSpin{to{transform:rotate(360deg)}}
/* the quest card */
.qb-card{position:absolute;left:12px;right:12px;bottom:12px;max-width:420px;margin:0 auto;padding:12px 14px 14px;border-radius:18px;z-index:5;background:linear-gradient(170deg,#12301f,#071510);border:1px solid color-mix(in srgb,var(--qc) 45%,transparent);box-shadow:0 18px 40px -10px #000,inset 0 1px 0 #ffffff14;animation:uiIn .18s cubic-bezier(.2,.9,.3,1.2)}
.qb-card.done{border-color:#ff9ad066}
.qb-x{position:absolute;right:8px;top:6px;width:32px;height:32px;border:0;border-radius:50%;background:#ffffff0d;color:#fff;font-size:1.2rem;cursor:pointer}
.qb-ct{display:flex;align-items:center;gap:12px;padding-right:30px}
.qb-ci{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 36% 30%,#4a9a52,#24572f 70%);box-shadow:0 0 0 2px #0a1d12,0 0 0 4px color-mix(in srgb,var(--qc) 50%,transparent)}
.qb-ci img{width:34px;height:34px;image-rendering:pixelated}
.qb-ct small{display:block;font:900 .64rem Nunito,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--qc)}
.qb-card.done .qb-ct small{color:#ff9ad0}
.qb-ct b{display:block;font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.12rem;line-height:1.15;color:#fff}
.qb-card p{margin:9px 0 0;font-size:.84rem;line-height:1.45;color:#f6eedbcc}
.qb-pr{display:flex;align-items:center;gap:8px;margin-top:10px}.qb-pr .bar{flex:1;margin:0}.qb-pr .bar i{background:var(--qc)}.qb-pr em{font-style:normal;font:800 .78rem Nunito,sans-serif}
.qb-rw{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.qb-rw span{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#f2c14e12;border:1px solid #f2c14e40}
.qb-rw img{width:26px;height:26px;image-rendering:pixelated}
.qb-rw b{position:absolute;right:2px;bottom:0;font:900 .7rem Nunito,sans-serif;color:#fff;text-shadow:0 1px 0 #000,0 0 3px #000}
.qb-card .btn{margin-top:10px;min-height:38px;font-size:.88rem}
/* phones: the chapter list becomes a strip of round icons along the top */
@media(max-width:640px){
 .qb{grid-template-columns:1fr;grid-template-rows:auto 1fr}
 .qb-side{flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:8px 10px;gap:6px;border-right:0;border-bottom:1px solid #4ee6b426;scrollbar-width:none}
 .qb-side small{display:none}
 .qb-ch{flex:none;padding:3px}.qb-ch .qb-cht{display:none}
 .qb-ch.on::before{left:12px;right:12px;top:auto;bottom:-6px;width:auto;height:3px;border-radius:3px}
 .qb-head{padding:8px 12px;gap:8px}.qb-head h3{font-size:1.05rem}.qb-hp{width:84px}
}
@media(prefers-reduced-motion:reduce){.qb-n.cur .pad,.qb-n .ff,.qb-n.sel::after,.qb-card{animation:none}}
.qb-in{position:relative;margin:0 auto}
.qb-n.lock .pad{background:radial-gradient(circle at 36% 30%,#2a3a32,#151f1a 70%)}.qb-n.lock img{filter:grayscale(1) brightness(.7);opacity:.55}
.qb-card.lock .qb-ci img{filter:grayscale(1);opacity:.6}
/* NEXUS: Zaruk's portrait in his dialogue */
.sbx-sbox2 .st-zaruk{width:150px;height:150px;margin:-6px auto 2px;border-radius:50%;background:radial-gradient(circle at 50% 45%,#4ee6d033,#1a143000 70%);display:grid;place-items:center}
.sbx-sbox2 .st-zaruk img{width:150px;height:150px}
.sbx-sbox2 .st-row .btn.ghost{grid-column:auto}
/* DEVELOPER MODE: the Dev tab */
.dev-btns{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.dev-btns .btn{padding:6px 10px;font-size:13px}
.dev-q{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:10px;border:1px solid rgba(127,252,255,.35);background:rgba(6,14,12,.7);color:#f6eedb;font:700 14px Nunito,system-ui,sans-serif}
.dev-q:focus{outline:2px solid #7ffcff;outline-offset:1px}
.dev-code{width:120px}
.dev-it{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.dev-it img{width:24px;height:24px;image-rendering:pixelated}
.dev-it span{flex:1;font-weight:700;font-size:13px}
.dev-it .btn{padding:4px 8px;font-size:12px}
#devList{margin-top:6px;max-height:300px;overflow:auto}
/* POLISH: the title menu on short windows: tighter rows so the menu never runs into the footer links (and it scrolls rather than overlap) */
.sbx-title{justify-content:safe center}
@media (max-height:720px),(min-width:900px) and (max-height:830px){
 .sbx-title .tt-col{gap:8px}
 .sbx-title .tt-tag{margin:-6px 0 4px;font-size:.98rem}
 .sbx-title .tt-play{min-height:62px;padding:9px 18px 9px 11px}
 .sbx-title .tt-pi{width:42px;height:42px}
 .sbx-title .tt-list{padding:4px;gap:0}
 .sbx-title .tt-list button{min-height:38px;padding:7px 12px}
}
@media (max-height:600px),(min-width:900px) and (max-height:700px){ .sbx-title .tt-logo{max-height:96px;width:auto!important} .sbx-title .tt-list button{min-height:34px;padding:5px 12px;font-size:.94rem} }
/* CRAFTING MINI-GAMES: the forge, the cauldron and the experiment window */
.cg{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:10px;background:rgba(2,6,5,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-family:Nunito,system-ui,sans-serif;color:#f6eedb}
.cg[hidden]{display:none}
.cg-box{--cgc:#f2c14e;width:min(460px,100%);max-height:100%;display:flex;flex-direction:column;border-radius:18px;border:1px solid color-mix(in srgb,var(--cgc) 60%,transparent);background:linear-gradient(180deg,#0b1a15f8,#050e0bfc);box-shadow:0 20px 60px -12px #000,0 0 34px -14px var(--cgc);overflow:hidden}
.cg-top{display:flex;align-items:center;gap:10px;padding:12px 12px 8px 14px}
.cg-top img{width:36px;height:36px;image-rendering:pixelated}
.cg-top span{flex:1;min-width:0}
.cg-top b{display:block;font-weight:800;font-size:1.05rem;color:var(--cgc)}
.cg-top small{display:block;font-weight:600;font-size:.82rem;color:#c3dccf;line-height:1.3}
#cgBody{overflow:auto;padding:0 14px 14px}
.cg-play{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}
.cg-play canvas{display:block;width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges}
.cg-hint{margin:10px 2px 8px;min-height:2.6em;font-weight:700;font-size:.92rem;line-height:1.35;color:#e6f5ec;text-align:center}
.cg-row{display:flex;justify-content:center;gap:8px}
.cg-exp h3{margin:14px 0 8px;font:800 .9rem Nunito,system-ui,sans-serif;color:var(--cgc)}
.cg-slots{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:8px;align-items:stretch}
.cg-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:76px;padding:6px 4px;border-radius:12px;border:1px dashed rgba(255,255,255,.22);background:rgba(255,255,255,.04);color:#c3dccf;font:inherit;cursor:pointer}
.cg-slot.on{border-style:solid;border-color:color-mix(in srgb,var(--cgc) 70%,transparent);background:rgba(255,255,255,.07)}
.cg-slot img{width:32px;height:32px;image-rendering:pixelated}
.cg-slot small{font-weight:700;font-size:.7rem;line-height:1.15;text-align:center}
.cg-slot i{font-style:normal;font-size:1.5rem;opacity:.5}
.cg-slot:disabled{cursor:default}
.cg-mix{align-self:center;padding:12px 16px}
.cg-msg{margin:10px 0 0;padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.05);font-weight:600;font-size:.86rem;line-height:1.4;color:#d4ecdf}
.cg-msg b{color:#f6eedb}
.cg-inv{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px;max-height:168px;overflow:auto;padding:2px}
.cg-it{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);cursor:pointer;padding:0}
.cg-it img{width:30px;height:30px;image-rendering:pixelated}
.cg-it b{position:absolute;right:3px;bottom:1px;font-size:.66rem;font-weight:800;color:#f6eedb;text-shadow:0 1px 2px #000}
.cg-it:hover,.cg-it:focus-visible{border-color:var(--cgc);outline:none}
.cg-it:disabled{opacity:.4;cursor:default}
.cg-rum{display:flex;gap:10px;align-items:flex-start;margin:6px 0;padding:9px 10px;border-radius:10px;background:rgba(255,210,63,.06);border:1px solid rgba(255,210,63,.18)}
.cg-rum span{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(255,210,63,.18);color:#ffd23f;font-weight:900}
.cg-rum p{margin:0;font-weight:600;font-size:.86rem;line-height:1.4;font-style:italic;color:#e6f5ec}
.cg-card .btn{white-space:nowrap}
@media(max-width:480px){.cg{padding:6px}.cg-slots{grid-template-columns:repeat(3,1fr)}.cg-mix{grid-column:1 / -1}}
/* BACKPACK SCREEN: the 3D character with gear slots round it, then the inventory and hotbar */
.sbx-pbox{width:min(520px,100%)}
.pk-show{display:grid;grid-template-columns:62px 1fr 62px;gap:8px;align-items:center;margin:2px 0 6px}
.pk-eq{display:flex;flex-direction:column;gap:7px}
.pk-slot{position:relative;display:grid;justify-items:center;align-content:center;gap:2px;width:62px;height:62px;padding:4px 2px 3px;border-radius:13px;cursor:pointer;color:#f6eedb;font:inherit;background:linear-gradient(180deg,rgba(40,30,14,.95),rgba(14,10,5,.95));border:1px solid rgba(242,193,78,.35);box-shadow:inset 0 -3px 0 rgba(0,0,0,.35)}
.pk-slot img{width:32px;height:32px;image-rendering:pixelated}
.pk-slot i{font-style:normal;font-size:1.25rem;line-height:32px;height:32px;opacity:.35;filter:grayscale(1)}
.pk-slot small{font-weight:800;font-size:.62rem;letter-spacing:.02em;color:#d8c49a;line-height:1}
.pk-slot.empty{border-style:dashed;background:rgba(14,10,5,.6)}
.pk-slot.on{border-color:#f2c14e;box-shadow:0 0 0 2px rgba(242,193,78,.35),inset 0 -3px 0 rgba(0,0,0,.35)}
.pk-slot:hover,.pk-slot:focus-visible{border-color:#ffe9a8;outline:none}
.pk-st{position:absolute;top:2px;right:3px;font-style:normal;font-size:.56rem;letter-spacing:-1px;color:#cfe0ea;text-shadow:0 1px 2px #000}
.pk-st.mw{color:#ffd23f}
.pk-stage{position:relative;height:250px;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse at 50% 62%,rgba(242,193,78,.2),rgba(242,193,78,0) 62%),linear-gradient(180deg,rgba(30,22,10,.6),rgba(8,6,3,.7));border:1px solid rgba(242,193,78,.18)}
.pk-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.pk-stage canvas:active{cursor:grabbing}
.pk-who{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 2px}
.pk-who b{font-family:"Bagel Fat One",Nunito,sans-serif;font-weight:400;font-size:1.02rem;color:#ffe9a8}
.pk-stats{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pk-stats i{font-style:normal;padding:2px 8px;border-radius:99px;background:rgba(255,255,255,.07);font-weight:800;font-size:.76rem;color:#f6eedb}
.pk-focus{min-height:38px;margin:6px 0 4px;padding:7px 10px;border-radius:10px;background:rgba(4,10,8,.45);border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;justify-content:center;gap:1px}
.pk-focus b{font-weight:800;font-size:.9rem;color:#ffe9a8}
.pk-focus span{font-weight:600;font-size:.8rem;color:#c3dccf}
.pk-focus .pk-hint{color:#9fb8ab;font-size:.8rem}
.pk-sec{display:flex;align-items:center;gap:10px;margin:8px 0 6px}
.pk-sec h3{margin:0;flex:none}
.pk-sec .pk-cap{flex:1;margin:0;grid-template-areas:"bar n"}
/* the pop-up pages (your backpack's own slots, and the charm picker) sit over the figure, so the inventory stays in view for dragging */
.pk-pop{position:absolute;inset:6px;z-index:2;overflow:auto;padding:10px;border-radius:12px;background:linear-gradient(180deg,#1e160af8,#0d0904fb);border:1px solid rgba(242,193,78,.45);box-shadow:0 10px 30px -10px #000;animation:pkPop .16s ease-out}
.pk-pop[hidden]{display:none}
@keyframes pkPop{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}
.pk-pophead{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.pk-pophead img{width:30px;height:30px;image-rendering:pixelated}
.pk-pophead b{flex:1;font-weight:800;font-size:.95rem;color:#ffe9a8;line-height:1.2}
.pk-pophead b small{display:block;font-weight:600;font-size:.74rem;color:#c3dccf}
.pk-pophead .sbx-x{width:32px;height:32px;font-size:1.2rem}
.pk-pop .sbx-igrid{grid-template-columns:repeat(6,minmax(0,1fr))}
.pk-pop .ch-list{display:grid;gap:6px}
@media(max-width:480px){.pk-show{grid-template-columns:54px 1fr 54px;gap:6px}.pk-slot{width:54px;height:56px}.pk-slot img{width:28px;height:28px}.pk-stage{height:236px}}
@media (prefers-reduced-motion:reduce){.pk-pop{animation:none}}
.pk-chwrap{margin:0;padding:0;border:0;background:none;box-shadow:none}
.pk-pophead b{text-align:left}
@media(max-width:480px){.pk-long{display:none}.pk-pop{padding:8px;inset:4px}.pk-pop .sbx-igrid{gap:4px}}
/* DESKTOP: the Journal (quests, log, crafting, options) is a pop-up in the middle of the screen, like the backpack and the stations */
@media(min-width:900px){
 .sbx-panel{left:50%;right:auto;top:50%;bottom:auto;transform:translate(-50%,-50%);width:min(620px,calc(100% - 48px));height:min(660px,calc(100% - 48px));max-height:none;border-radius:18px;border-bottom:1px solid #4ee6b455;box-shadow:0 0 0 100vmax rgba(2,6,5,.5),0 24px 70px -16px #000}
 .sbx-panel.qbook{width:min(960px,calc(100% - 48px));height:min(700px,calc(100% - 48px))}
 .sbx-panel:not([hidden]){animation:uiInC .2s cubic-bezier(.2,.9,.3,1.2)}
}
@keyframes uiInC{from{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%)}}
@media (min-width:900px) and (prefers-reduced-motion:reduce){.sbx-panel:not([hidden]){animation:none}}
.pk-stage canvas{cursor:default;touch-action:auto}

/* SKY VILLAGE: villager talk window */
.sbx-sbox2 .vil-pic{width:96px;height:96px}
.sbx-sbox2 .vil-pic img{width:100%;height:100%}
.sbx-sbox2 .vil-say{margin:0 0 6px;font-style:italic;color:#e8f4ff}
.sbx-sbox2 .vil-hearts{margin:0 0 12px;color:#ff7aa8;font:800 .9rem Nunito,sans-serif;letter-spacing:1px}
.sbx-sbox2 .vil-hearts span{color:#ffffff30}
.vil-trades{display:grid;gap:6px;margin:0 0 12px}
.vil-trades button{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff1a;color:#f6eedb;font:inherit;cursor:pointer;text-align:left}
.vil-trades button:not([disabled]):hover{border-color:#8fd6ff;background:#8fd6ff14}
.vil-trades button[disabled]{opacity:.45;cursor:default}
.vil-trades button > b{color:#8fd6ff;font-size:1.1rem}
.vil-trades em{display:block;font-style:normal;font:800 .62rem Nunito,sans-serif;color:#ffffff80;margin-bottom:2px}
.vil-trades span{display:inline-flex;align-items:center;gap:4px;margin:1px 6px 1px 0;font:700 .78rem Nunito,sans-serif}
.vil-trades img{width:20px;height:20px;image-rendering:pixelated}

/* LORE: the page reader and the Lore tab */
.sbx-sbox2 .lore-at{display:block;margin:0 0 8px;color:var(--qc);font:800 .72rem Nunito,sans-serif;text-align:center}
.sbx-sbox2 .lore-page{--ink:#3a2410;position:relative;margin:4px 2px 14px;padding:22px 24px 18px;color:var(--ink);text-align:left;max-height:56vh;overflow:auto;transform:rotate(var(--rot));scrollbar-width:thin}
.sbx-sbox2 .lore-page h2{color:var(--ink);text-align:center;margin:0 0 2px;font:inherit;font-size:1.45em;line-height:1.15;letter-spacing:0;text-transform:none}
.sbx-sbox2 .lore-page p{margin:0 0 .7em;color:var(--ink);font:inherit;line-height:1.45}
.sbx-sbox2 .lore-page p.lore-by{text-align:center;opacity:.72;font-size:.82em;margin:0 0 1em}
/* old paper: yellowed, darker at the edges, foxed, a tea stain and a fold */
.lore-page.lp-paper{background:radial-gradient(circle var(--sr) at var(--sx) var(--sy),rgba(150,96,30,.16),rgba(150,96,30,.08) 70%,transparent 72%),radial-gradient(circle at 82% 88%,rgba(120,70,20,.12) 0 6px,transparent 7px),radial-gradient(circle at 12% 74%,rgba(120,70,20,.1) 0 4px,transparent 5px),linear-gradient(90deg,transparent 49.6%,rgba(90,60,20,.12) 50%,rgba(255,255,240,.2) 50.4%,transparent 51%),radial-gradient(ellipse at 50% 45%,#f3e4bc 0,#e9d39e 62%,#c9a868 100%);box-shadow:inset 0 0 40px rgba(110,70,20,.35)}
/* a page from the Order's printed book: cleaner, with a ruled border */
.lore-page.lp-book{background:radial-gradient(ellipse at 50% 40%,#f6ead0 0,#ecdab0 70%,#d4b880 100%);box-shadow:inset 0 0 0 7px transparent,inset 0 0 0 8px rgba(90,50,20,.35),inset 0 0 30px rgba(110,70,20,.3)}
.lore-page.lp-book h2::after{content:"\2766";display:block;font-size:.6em;opacity:.55;margin-top:2px}
/* carved stone, wood, clay and gold: no paper edge; the letters are cut in */
.lore-page.lp-stone{--ink:#2a2e34;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.12) 0 2px,transparent 3px),radial-gradient(circle at 70% 60%,rgba(0,0,0,.1) 0 3px,transparent 4px),linear-gradient(160deg,#a8aeb2,#8a9096 55%,#747a80);border-radius:6px 9px 7px 10px;box-shadow:inset 0 2px 0 rgba(255,255,255,.25),inset 0 -6px 18px rgba(0,0,0,.35);text-shadow:0 1px 0 rgba(255,255,255,.35)}
.lore-page.lp-wood{--ink:#2a1608;background:repeating-linear-gradient(178deg,#b88a52 0 9px,#a8784a 9px 14px,#c49660 14px 22px);border-radius:4px;box-shadow:inset 0 0 22px rgba(60,30,10,.45);text-shadow:0 1px 0 rgba(255,220,170,.3)}
.lore-page.lp-clay{--ink:#4a2414;background:radial-gradient(ellipse at 40% 35%,#d89a6a,#b8744a 75%,#8a5232);border-radius:14px 10px 16px 9px;box-shadow:inset 0 0 26px rgba(70,30,10,.45);text-shadow:0 1px 0 rgba(255,210,170,.3)}
.lore-page.lp-gold{--ink:#5a3a08;background:linear-gradient(135deg,#ffe8a0,#e8b84a 40%,#ffe08a 60%,#c8902a);border-radius:50% 50% 46% 46%/12% 12% 10% 10%;box-shadow:inset 0 0 24px rgba(120,70,0,.45);text-shadow:0 1px 0 rgba(255,255,220,.5)}
/* the handwriting: each author's own font (fonts/lore, OFL / Apache licensed), sized so they all read about the same */
@font-face{font-family:LH-caveat;src:url(fonts/lore/caveat.woff) format("woff");font-display:swap}
@font-face{font-family:LH-reenie;src:url(fonts/lore/reenie.woff) format("woff");font-display:swap}
@font-face{font-family:LH-rocksalt;src:url(fonts/lore/rocksalt.woff) format("woff");font-display:swap}
@font-face{font-family:LH-kalam;src:url(fonts/lore/kalam.woff) format("woff");font-display:swap}
@font-face{font-family:LH-dancing;src:url(fonts/lore/dancing.woff) format("woff");font-display:swap}
@font-face{font-family:LH-marker;src:url(fonts/lore/marker.woff) format("woff");font-display:swap}
@font-face{font-family:LH-gloria;src:url(fonts/lore/gloria.woff) format("woff");font-display:swap}
@font-face{font-family:LH-aurore;src:url(fonts/lore/aurore.woff) format("woff");font-display:swap}
@font-face{font-family:LH-apple;src:url(fonts/lore/apple.woff) format("woff");font-display:swap}
@font-face{font-family:LH-nothing;src:url(fonts/lore/nothing.woff) format("woff");font-display:swap}
@font-face{font-family:LH-fell;src:url(fonts/lore/fell.woff) format("woff");font-display:swap}
@font-face{font-family:LH-grace;src:url(fonts/lore/grace.woff) format("woff");font-display:swap}
@font-face{font-family:LH-shadows;src:url(fonts/lore/shadows.woff) format("woff");font-display:swap}
@font-face{font-family:LH-indie;src:url(fonts/lore/indie.woff) format("woff");font-display:swap}
@font-face{font-family:LH-patrick;src:url(fonts/lore/patrick.woff) format("woff");font-display:swap}
@font-face{font-family:LH-sueellen;src:url(fonts/lore/sueellen.woff) format("woff");font-display:swap}
@font-face{font-family:LH-architect;src:url(fonts/lore/architect.woff) format("woff");font-display:swap}
@font-face{font-family:LH-another;src:url(fonts/lore/another.woff) format("woff");font-display:swap}
@font-face{font-family:LH-gochi;src:url(fonts/lore/gochi.woff) format("woff");font-display:swap}
@font-face{font-family:LH-cinzel;src:url(fonts/lore/cinzel.woff) format("woff");font-display:swap}
.lore-page[data-f]{font-size:1rem;font-weight:400}
.sbx-sbox2 .lore-page[data-f=caveat]{font-family:LH-caveat,cursive;font-size:1.32rem;}
.sbx-sbox2 .lore-page[data-f=reenie]{font-family:LH-reenie,cursive;font-size:1.5rem;line-height:1.2;}
.sbx-sbox2 .lore-page[data-f=rocksalt]{font-family:LH-rocksalt,cursive;font-size:.84rem;}
.sbx-sbox2 .lore-page[data-f=kalam]{font-family:LH-kalam,cursive;font-size:1.02rem;}
.sbx-sbox2 .lore-page[data-f=dancing]{font-family:LH-dancing,cursive;font-size:1.22rem;}
.sbx-sbox2 .lore-page[data-f=marker]{font-family:LH-marker,cursive;font-size:.98rem;}
.sbx-sbox2 .lore-page[data-f=gloria]{font-family:LH-gloria,cursive;font-size:.95rem;}
.sbx-sbox2 .lore-page[data-f=aurore]{font-family:LH-aurore,cursive;font-size:1.3rem;}
.sbx-sbox2 .lore-page[data-f=apple]{font-family:LH-apple,cursive;font-size:.86rem;line-height:1.7;}
.sbx-sbox2 .lore-page[data-f=nothing]{font-family:LH-nothing,cursive;font-size:1.08rem;}
.sbx-sbox2 .lore-page[data-f=fell]{font-family:LH-fell,Georgia,serif;font-size:1.08rem;}
.sbx-sbox2 .lore-page[data-f=grace]{font-family:LH-grace,cursive;font-size:1.3rem;}
.sbx-sbox2 .lore-page[data-f=shadows]{font-family:LH-shadows,cursive;font-size:1.18rem;}
.sbx-sbox2 .lore-page[data-f=indie]{font-family:LH-indie,cursive;font-size:1.08rem;}
.sbx-sbox2 .lore-page[data-f=patrick]{font-family:LH-patrick,cursive;font-size:1.22rem;}
.sbx-sbox2 .lore-page[data-f=sueellen]{font-family:LH-sueellen,cursive;font-size:1.5rem;line-height:1.25;}
.sbx-sbox2 .lore-page[data-f=architect]{font-family:LH-architect,cursive;font-size:1.02rem;}
.sbx-sbox2 .lore-page[data-f=another]{font-family:LH-another,cursive;font-size:1.55rem;line-height:1.15;}
.sbx-sbox2 .lore-page[data-f=gochi]{font-family:LH-gochi,cursive;font-size:1.14rem;}
.sbx-sbox2 .lore-page[data-f=cinzel]{font-family:LH-cinzel,Georgia,serif;font-size:.98rem;}
.lore-head{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff14}
.lore-head b{display:block;color:#f2c14e}
.lore-head small{display:block;color:#ffffffaa;margin:2px 0 8px;line-height:1.35}
.lore-head i{display:block;height:6px;border-radius:9px;background:linear-gradient(90deg,#f2c14e var(--p),#ffffff14 var(--p))}
.lore-th{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid color-mix(in srgb,var(--lc) 35%,transparent)}
.lore-th h3{display:flex;justify-content:space-between;margin:0 0 2px;color:var(--lc)}
.lore-th h3 span{color:#ffffff99;font-size:.8rem}
.lore-th p{margin:0 0 8px;color:#ffffffb0;font-size:.82rem;line-height:1.35}
.lore-th p em{display:block;font-style:normal;color:var(--lc);font-size:.76rem;margin-top:2px}
.lore-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px}
.lore-pages button{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:9px;background:#f4e8c8;border:1px solid #c8b080;color:#3a2a14;font:700 .76rem Nunito,sans-serif;text-align:left;cursor:pointer}
.lore-pages button b{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--lc);color:#1a1208;font-size:.66rem}
.lore-pages button.new{box-shadow:0 0 0 2px var(--lc)}
.lore-pages button[disabled]{background:#ffffff08;border-color:#ffffff14;color:#ffffff50;cursor:default}

/* CHARACTERS: the picker and the main-menu button */
.tt-list .tt-char img{width:22px;height:34px;object-fit:contain;image-rendering:pixelated;margin:-6px 0}
.sbx-sbox2 .ch-hero{display:flex;align-items:center;gap:16px;margin:4px 0 12px;text-align:left}
.sbx-sbox2 .ch-hero img{width:88px;height:136px;object-fit:contain;image-rendering:pixelated;flex:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.5))}
.sbx-sbox2 .ch-hero h2{margin:0 0 4px;text-align:left}
.sbx-sbox2 .ch-hero p{margin:0;color:#ffffffc0;font-size:.9rem}
.sbx-sbox2 .ch-hero p.ch-now{margin-top:6px;color:#4ee6b4;font:800 .75rem Nunito,sans-serif}
.sbx-sbox2 .ch-h{margin:8px 0 6px;color:#ffffff90;font:800 .72rem Nunito,sans-serif;text-align:left}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;margin:0 0 6px}
.ch-grid button{display:grid;justify-items:center;gap:2px;padding:6px 2px 4px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff1a;color:#f6eedb;cursor:pointer;font:inherit}
.ch-grid button[aria-pressed=true]{border-color:#4ee6b4;background:#4ee6b41a;box-shadow:0 0 0 1px #4ee6b4}
.ch-grid button:hover{border-color:#4ee6b480}
.ch-grid img{width:33px;height:51px;object-fit:contain;image-rendering:pixelated}
.ch-grid small{font:800 .66rem Nunito,sans-serif}
/* item info pop-up (hover on desktop, press and hold on phones) */
.sbx-itip{position:fixed;left:0;top:0;z-index:10000;width:max-content;max-width:min(260px,calc(100vw - 16px));padding:9px 11px 9px;border-radius:12px;pointer-events:none;color:#f6eedb;font-family:Nunito,system-ui,sans-serif;font-size:.8rem;line-height:1.35;text-align:left;background:linear-gradient(170deg,rgba(28,52,41,.97),rgba(8,18,13,.97));border:1px solid color-mix(in srgb,var(--ic,#4ee6b4) 55%,transparent);box-shadow:0 14px 30px -10px #000,0 0 22px -12px var(--ic,#4ee6b4);opacity:0;transform:translateY(4px) scale(.97);transform-origin:var(--ax,50%) 100%;transition:opacity .14s ease,transform .14s ease}
.sbx-itip.below{transform-origin:var(--ax,50%) 0;transform:translateY(-4px) scale(.97)}
.sbx-itip.on{opacity:1;transform:none}
.sbx-itip::after{content:"";position:absolute;left:var(--ax,50%);bottom:-6px;width:10px;height:10px;margin-left:-5px;background:rgba(8,18,13,.97);border:solid color-mix(in srgb,var(--ic,#4ee6b4) 55%,transparent);border-width:0 1px 1px 0;transform:rotate(45deg)}
.sbx-itip.below::after{bottom:auto;top:-6px;border-width:1px 0 0 1px}
.sbx-itip .it-h{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.sbx-itip .it-h img{width:30px;height:30px;flex:none;image-rendering:pixelated;padding:3px;border-radius:8px;background:rgba(255,255,255,.06)}
.sbx-itip .it-h span{display:grid;gap:1px;min-width:0}
.sbx-itip .it-h b{font-weight:800;font-size:.92rem;color:#fff;line-height:1.15}
.sbx-itip .it-h em{font-style:normal;font-weight:800;font-size:.68rem;letter-spacing:.02em}
.sbx-itip p{margin:0;color:#e4dccb}
.sbx-itip small{display:block;margin-top:5px;font-size:.7rem;color:#a9c7b8}
.sbx-itip .it-n{color:#f2c14e;font-weight:700}
.sbx-is,.sbx-slot{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
@media (prefers-reduced-motion:reduce){.sbx-itip{transition:none}}

/* BOSS BAR: a pale trail drains after each hit, a notch marks where it becomes enraged, the bar jolts when you land a hit, and it slides in */
.sbx-boss .bt s{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:99px;background:#fff6dccc;transition:width .55s cubic-bezier(.3,.7,.3,1) .35s}
.sbx-boss .bt u{position:absolute;left:40%;top:-1px;bottom:-1px;width:2px;margin-left:-1px;background:#0a1410;box-shadow:0 0 0 1px #ffffff33;text-decoration:none}
.sbx-boss.rage .bt u{opacity:.25}
.sbx-boss:not([hidden]){animation:sbxBossIn .45s cubic-bezier(.2,.9,.3,1.2) both}
.sbx-boss.hit{animation:sbxBossHit .18s ease-out}
.sbx-boss.rage{border-color:var(--bc);box-shadow:0 0 28px -6px var(--bc)}
.sbx-boss.rage .bt i{animation:sbxBossRage 1s ease-in-out infinite alternate}
@keyframes sbxBossIn{from{opacity:0;transform:translate(-50%,-14px) scale(.96)}to{opacity:1;transform:translateX(-50%)}}
@keyframes sbxBossHit{0%{transform:translate(-50%,0)}30%{transform:translate(calc(-50% + 3px),1px)}60%{transform:translate(calc(-50% - 2px),0)}100%{transform:translateX(-50%)}}
@keyframes sbxBossRage{from{filter:brightness(1)}to{filter:brightness(1.35)}}
@media (prefers-reduced-motion:reduce){.sbx-boss:not([hidden]),.sbx-boss.hit,.sbx-boss.rage .bt i{animation:none}.sbx-boss .bt s{transition:none}}
/* LOOT PACK: the container / chest window */
.ct-box{text-align:left}
.ct-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.ct-head img{width:44px;height:44px;image-rendering:pixelated;padding:4px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid color-mix(in srgb,var(--qc,#c9a46a) 45%,transparent)}
.ct-head small{display:block;font:800 .7rem Nunito,sans-serif;color:var(--qc,#c9a46a)}
.ct-head h2{margin:0;font-size:1.25rem}
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin:4px 0 12px}
.ct-it{position:relative;display:grid;justify-items:center;gap:3px;padding:9px 6px 7px;border-radius:12px;background:linear-gradient(180deg,#14281f,#09130f);border:1px solid rgba(255,255,255,.1);color:#f6eedb;cursor:pointer;font-family:Nunito,system-ui,sans-serif}
.ct-it:hover,.ct-it:focus-visible{border-color:var(--qc,#c9a46a);transform:translateY(-1px)}
.ct-it img{width:34px;height:34px;image-rendering:pixelated}
.ct-it b{position:absolute;top:5px;right:7px;font-size:.78rem;font-weight:900;color:#fff;text-shadow:0 1px 2px #000}
.ct-it em{font-style:normal;font-size:.68rem;font-weight:700;line-height:1.15;text-align:center;color:#d8d0bc}
.ct-empty{margin:6px 0 14px;color:#cfc6b0}
.st-sellh{margin:14px 0 6px;font:900 .82rem Nunito,sans-serif;color:#f2c14e}
/* ---------- PAUSE MENU ---------- */
.sbx-pause{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 45%,rgba(4,14,10,.5),rgba(2,6,5,.82));-webkit-backdrop-filter:blur(7px) saturate(.75);backdrop-filter:blur(7px) saturate(.75);font-family:Nunito,system-ui,sans-serif;color:#f6eedb;overflow:auto}
.sbx-pause[hidden]{display:none}
.sbx-pause.in{animation:pzFade .18s ease-out}
.sbx-pause.in .pz-card{animation:pzRise .26s cubic-bezier(.2,.9,.3,1.15)}
@keyframes pzFade{from{opacity:0}to{opacity:1}}
@keyframes pzRise{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.sbx-pause .pz-card{width:min(380px,100%);padding:20px 18px 14px;border-radius:22px;background:linear-gradient(180deg,rgba(14,34,26,.96),rgba(7,18,13,.96));border:1px solid rgba(78,230,180,.24);box-shadow:0 30px 60px -24px #000,inset 0 1px 0 rgba(255,255,255,.06)}
.sbx-pause.wide .pz-card{width:min(600px,100%)}
.sbx-pause .pz-sub{margin:0;font-weight:700;font-size:.82rem;color:#9fc9b6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbx-pause .pz-h{margin:2px 0 14px;font:900 1.9rem/1.1 Nunito,system-ui,sans-serif;color:#f6eedb;text-shadow:0 2px 0 rgba(0,0,0,.35)}
.sbx-pause .pz-resume{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:8px 16px 8px 9px;border:0;border-radius:16px;cursor:pointer;color:#1a1405;font:800 1.25rem/1 Nunito,system-ui,sans-serif;text-align:left;background:linear-gradient(180deg,#ffdc78 0,#f2c14e 52%,#dc9e2a 100%);box-shadow:0 0 0 2px #08110c,inset 0 2px 0 rgba(255,255,255,.5),inset 0 -4px 0 rgba(130,76,0,.35),0 12px 26px -12px rgba(242,193,78,.7);transition:transform .12s,filter .15s}
.sbx-pause .pz-resume:hover{filter:brightness(1.06)}.sbx-pause .pz-resume:active{transform:translateY(2px)}
.sbx-pause .pz-resume:focus-visible,.sbx-pause button:focus-visible{outline:3px solid #fff;outline-offset:2px}
.sbx-pause .pz-ri{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#1f1806;color:#f2c14e;box-shadow:inset 0 -3px 0 rgba(0,0,0,.4)}
.sbx-pause .pz-ri svg{width:20px;height:20px;margin-left:3px}
.sbx-pause kbd{margin-left:auto;padding:2px 8px;border-radius:7px;font:800 .72rem Nunito,system-ui,sans-serif;background:rgba(0,0,0,.16);box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.sbx-pause .pz-list{display:flex;flex-direction:column;gap:2px;margin-top:12px;padding:5px;border-radius:15px;background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.06)}
.sbx-pause .pz-list button{display:flex;align-items:center;gap:12px;min-height:46px;padding:8px 12px;border:0;border-radius:11px;background:none;color:#e6f5ec;font:800 1rem/1.2 Nunito,system-ui,sans-serif;text-align:left;cursor:pointer;transition:background .15s,box-shadow .15s}
.sbx-pause .pz-list svg{flex:none;width:20px;height:20px;color:#4ee6b4}
.sbx-pause .pz-list kbd{background:rgba(255,255,255,.08);color:#cfe7da}
.sbx-pause .pz-list em{margin-left:auto;font-style:normal;font-weight:700;font-size:.75rem;color:#8fb3a2}
.sbx-pause .pz-list button:hover,.sbx-pause .pz-list button:focus-visible{outline:none;background:rgba(78,230,180,.13);box-shadow:inset 3px 0 0 #4ee6b4}
.sbx-pause .pz-saved{margin:12px 0 0;text-align:center;font-weight:700;font-size:.78rem;color:#7fa896}
.sbx-pause .pz-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.sbx-pause .pz-back{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:6px 16px 6px 10px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.05);color:#f6eedb;font:800 .95rem Nunito,system-ui,sans-serif;cursor:pointer}
.sbx-pause .pz-back svg{width:18px;height:18px}
.sbx-pause .pz-link{min-height:42px;padding:6px 6px;border:0;background:none;color:#9ff3d4;font:800 .9rem Nunito,system-ui,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
/* settings rows (pause menu and Journal > Options) */
.pz-rows{display:flex;flex-direction:column}
.pz-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #ffffff0d}
.pz-row:first-child{border-top:0}
.pz-row > div{min-width:0;display:grid;gap:2px}
.pz-row b{font-size:.95rem;color:#f6eedb}
.pz-row small{font-size:.78rem;line-height:1.3;color:#f6eedb99}
.pz-seg{flex:none;display:inline-flex;padding:3px;border-radius:11px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08)}
.pz-seg button{min-width:46px;min-height:34px;padding:4px 10px;border:0;border-radius:8px;background:none;color:#cfe7da;font:800 .82rem Nunito,system-ui,sans-serif;cursor:pointer;transition:background .15s,color .15s}
.pz-seg button.on{background:#4ee6b4;color:#062016;box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.pz-seg button:not(.on):hover{background:rgba(255,255,255,.07)}
.pz-vol{flex:none;display:inline-flex;align-items:center;gap:7px}
.pz-vol button{width:34px;height:34px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.05);color:#f6eedb;font:900 1.05rem/1 Nunito,system-ui,sans-serif;cursor:pointer}
.pz-vol button:disabled{opacity:.35;cursor:default}
.pz-vol .pz-meter{position:relative;width:64px;height:8px;border-radius:99px;background:rgba(0,0,0,.4);overflow:hidden}
.pz-vol .pz-meter i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#2fb58e,#4ee6b4);transition:width .15s}
.pz-vol b{min-width:36px;text-align:right;font-size:.82rem;color:#f6eedb}
.op-pz .pz-row:first-child{border-top:1px solid #ffffff0d}
.sbx-pause .pz-keys{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}
.sbx-pause .pz-keys h3{margin:0 0 8px;font:800 .9rem Nunito,system-ui,sans-serif;color:#4ee6b4}
.sbx-pause .pz-keys dl{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;margin:0;align-items:center}
.sbx-pause .pz-keys dt{justify-self:start;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.08);box-shadow:inset 0 -2px 0 rgba(0,0,0,.35);font-weight:800;font-size:.78rem;white-space:nowrap}
.sbx-pause .pz-keys dd{margin:0;font-weight:600;font-size:.86rem;color:#c3dccf}
.sbx-stage.paused .sbx-pops,.sbx-stage.paused .sbx-hint,.sbx-stage.paused .sbx-toast{opacity:0;visibility:hidden}
@media (max-width:560px){
 .sbx-pause .pz-keys{grid-template-columns:1fr}
 .pz-row{flex-wrap:wrap}
 .pz-row > div{flex:1 1 100%}
 .sbx-pause .pz-h{font-size:1.6rem}
}
@media (prefers-reduced-motion:reduce){.sbx-pause.in,.sbx-pause.in .pz-card{animation:none}}
.sbx-pause{max-width:none;width:auto;margin:0;z-index:60}
.sbx-pause .pz-h{text-transform:none;letter-spacing:0}
.sbx-stage.paused .sbx-hud,.sbx-stage.paused .sbx-dock,.sbx-stage.paused .sbx-packbtn,.sbx-stage.paused .sbx-menubtn{visibility:hidden}
.pz-rows,.sbx-pause .pz-keys{text-align:left}
@media (pointer:coarse){.sbx-pause kbd{display:none}}
/* drag an item out over the world to drop it */
.sbx-drag i{position:absolute;left:50%;top:-22px;transform:translateX(-50%);padding:2px 8px;border-radius:99px;background:#f2c14e;color:#2a1a04;font:800 .7rem Nunito,sans-serif;font-style:normal;white-space:nowrap;opacity:0;transition:opacity .12s}
.sbx-drag.toss{border-color:#ffd36a;box-shadow:0 0 0 3px rgba(242,193,78,.35),0 10px 22px -8px #000}
.sbx-drag.toss i{opacity:1}
/* GARAGE: the motorcycle workbench window */
.mo-box{text-align:left}
.mo-head{display:grid;grid-template-columns:minmax(0,180px) 1fr;gap:14px;align-items:center;margin-bottom:10px}
.mo-cv{width:100%;height:auto;aspect-ratio:9/5;border-radius:14px;background:radial-gradient(ellipse at 50% 80%,#3a3f46,#1a1c20 70%);border:1px solid rgba(242,193,78,.3)}
.mo-head small{display:block;font:800 .7rem Nunito,sans-serif;color:#f2c14e}
.mo-head h2{margin:2px 0 4px;font:900 1.35rem/1.1 Nunito,sans-serif;color:#f6eedb}
.mo-sub{margin:0 0 8px;font-weight:600;font-size:.84rem;line-height:1.4;color:#c3dccf}
.mo-bar{height:9px;border-radius:99px;background:rgba(0,0,0,.4);overflow:hidden}
.mo-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#c8902a,#f2c14e);transition:width .25s}
.mo-msg{margin:0 0 8px;padding:8px 12px;border-radius:10px;background:rgba(242,193,78,.12);color:#ffe7a8;font-weight:700;font-size:.86rem}
.mo-list{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:min(46vh,380px);overflow:auto}
.mo-list li{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:11px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07)}
.mo-list li.on{background:rgba(78,230,180,.08);border-color:rgba(78,230,180,.25)}
.mo-list li.have{border-color:rgba(242,193,78,.45)}
.mo-list img{flex:none;width:32px;height:32px;image-rendering:pixelated}
.mo-list li:not(.on):not(.have) img{opacity:.4;filter:grayscale(1)}
.mo-list div{min-width:0;flex:1}
.mo-list b{display:block;font-size:.86rem;color:#f6eedb}
.mo-list small{display:block;font-size:.72rem;line-height:1.3;color:#f6eedb99}
.mo-on{font:800 .72rem Nunito,sans-serif;color:#4ee6b4}
.mo-miss{font:800 .72rem Nunito,sans-serif;color:#8f9a94}
.mo-wait{font:800 .72rem Nunito,sans-serif;color:#c9a46a}
.mo-list .mo-fit{min-height:32px;padding:3px 10px;font-size:.78rem}
.mo-start{background:linear-gradient(180deg,#ffdc78,#dc9e2a);color:#1a1405}
@media (max-width:560px){.mo-head{grid-template-columns:1fr}.mo-list{grid-template-columns:1fr}}
.mo-list{grid-template-columns:1fr}
.mo-list small,.mo-head small.mo-k{text-transform:none;letter-spacing:0;font-weight:600}
.mo-list b{text-transform:none;letter-spacing:0}
.mo-head h2{text-transform:none;letter-spacing:0}
.mo-list .mo-fit{flex:none}
.mo-list div,.mo-list small,.mo-head > div{text-align:left}
/* GARAGE storage: your bag, under what is stored */
.ct-sub{margin:12px 0 6px;font:800 .82rem Nunito,sans-serif;color:#f6eedb;text-align:left}
.ct-sub em{margin-left:6px;font-style:normal;font-weight:700;font-size:.72rem;color:#f6eedb88}
.ct-bag{max-height:min(30vh,220px);overflow:auto}
/* ---------- EMOTES ---------- */
.sbx-emo{position:absolute;left:50%;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 92px);transform:translateX(-50%);z-index:30;display:flex;gap:6px;padding:7px;border-radius:18px;background:rgba(8,20,15,.9);border:1px solid rgba(78,230,180,.3);box-shadow:0 14px 30px -14px #000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:Nunito,system-ui,sans-serif}
.sbx-emo[hidden]{display:none}
.sbx-emo.in{animation:emoIn .2s cubic-bezier(.2,.9,.3,1.3)}
@keyframes emoIn{from{opacity:0;transform:translateX(-50%) translateY(10px) scale(.92)}to{opacity:1;transform:translateX(-50%)}}
.sbx-emo button{position:relative;display:grid;justify-items:center;gap:2px;width:62px;padding:8px 4px 6px;border:0;border-radius:13px;background:rgba(255,255,255,.05);color:#f6eedb;cursor:pointer;font:800 .72rem Nunito,system-ui,sans-serif;transition:background .15s,transform .12s}
.sbx-emo button:hover,.sbx-emo button:focus-visible{outline:none;background:rgba(78,230,180,.16)}
.sbx-emo button:active{transform:scale(.94)}
.sbx-emo i{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ffe48a,#f2c14e 60%,#c8902a);color:#3a2408;font:900 1.05rem/1 Nunito,system-ui,sans-serif;font-style:normal;box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.sbx-emo kbd{position:absolute;top:3px;right:5px;font:800 .6rem Nunito,sans-serif;color:#8fb3a2}
.sbx-emobtn svg{width:20px;height:20px}
@media (max-width:520px){.sbx-emo{gap:4px;padding:5px}.sbx-emo button{width:50px;font-size:.64rem}.sbx-emo i{width:28px;height:28px}}
@media (prefers-reduced-motion:reduce){.sbx-emo.in{animation:none}}
/* ---------- PHOTO MODE ---------- */
.sbx-photo{position:absolute;inset:0;z-index:55;cursor:grab;touch-action:none;font-family:Nunito,system-ui,sans-serif}
.sbx-photo:active{cursor:grabbing}
.sbx-photo[hidden]{display:none}
.sbx-stage.photo .sbx-hud,.sbx-stage.photo .sbx-dock,.sbx-stage.photo .sbx-pops,.sbx-stage.photo .sbx-toast,.sbx-stage.photo .sbx-hint,.sbx-stage.photo .sbx-joy,.sbx-stage.photo .sbx-pad,.sbx-stage.photo .sbx-trail,.sbx-stage.photo .sbx-bcard,.sbx-stage.photo .sbx-banner,.sbx-stage.photo .sbx-emo{visibility:hidden!important}
.sbx-photo .ph-bar{position:absolute;left:50%;top:max(12px,env(safe-area-inset-top));transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:8px;border-radius:18px;background:rgba(8,14,12,.82);border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 30px -14px #000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:default}
.sbx-photo .ph-f,.sbx-photo .ph-c,.sbx-photo .ph-a{display:flex;gap:4px;align-items:center}
.sbx-photo button{min-height:36px;padding:4px 11px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.06);color:#f6eedb;font:800 .8rem Nunito,system-ui,sans-serif;cursor:pointer}
.sbx-photo button.on,.sbx-photo button[aria-pressed="false"][data-ph="me"]{background:#4ee6b4;border-color:#4ee6b4;color:#062016}
.sbx-photo .ph-shot{background:linear-gradient(180deg,#ffdc78,#dc9e2a);border-color:#8a5a10;color:#1a1405}
.sbx-photo .ph-tip{position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;padding:6px 14px;border-radius:99px;background:rgba(0,0,0,.45);color:#f6eedbcc;font-weight:700;font-size:.8rem;white-space:nowrap;pointer-events:none}
.ph-flash{position:absolute;inset:0;z-index:70;background:#fff;pointer-events:none;animation:phFlash .5s ease-out forwards}
@keyframes phFlash{from{opacity:.85}to{opacity:0}}

/* LIGHT & COLOUR: a gentle grade on the game picture (Photo mode filters replace it) */
#sbxCv.grade { filter: saturate(1.1) contrast(1.04); }
