:root{font-family:ui-rounded,system-ui,-apple-system,sans-serif;color:#2d4539;background:#e9eee4}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;max-width:1180px;margin:auto;padding:22px 18px 14px}header small{letter-spacing:2px;color:#698678;font-weight:800;font-size:11px}h1{margin:2px 0;font-size:30px;letter-spacing:-1.3px}h1 span{color:#d3a45e}button{cursor:pointer;border:0;border-radius:13px;padding:11px 14px;font-weight:800;font-family:inherit;color:#345044;background:#e5eadf}button:active{transform:scale(.96)}#backup{background:#fff}main{max-width:1180px;margin:auto;padding:0 18px 20px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,1fr);gap:18px}.world,.side{background:#fffaf0;border-radius:23px;box-shadow:0 10px 35px #52634c18;overflow:hidden}.world-head{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.bar{height:9px;width:180px;background:#d9e2d4;border-radius:99px;margin-top:9px;overflow:hidden}.bar div{height:100%;background:#82aa79;width:0%;transition:width .3s}.stats{display:flex;gap:8px;flex-wrap:wrap}.stats span{background:#f1ebdf;border-radius:11px;padding:8px 10px;font-size:13px;font-weight:800}canvas{width:100%;display:block;image-rendering:pixelated;background:#b6d99a;touch-action:none}.world-foot{text-align:center;padding:12px 12px 16px}#hint{font-size:13px;color:#698071}.controls{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:12px}.controls>div{display:flex;gap:5px}.controls button{background:#668c75;color:white;min-width:53px;height:40px;touch-action:none}.controls #interact{background:#d7a95f}.keyboard{font-size:11px;color:#8b9c8a;margin-bottom:0}.side nav{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:13px;background:#f5f0e7}.tab{font-size:12px}.tab.active{background:#668c75;color:white}#panel{padding:20px;max-height:700px;overflow:auto}h2{font-size:21px;margin:0 0 5px}p.muted{color:#829083;font-size:13px;line-height:1.5;margin:4px 0 18px}.quest{border:1px solid #e4e9de;background:#fffef8;border-radius:14px;padding:13px;margin-bottom:9px;display:flex;align-items:center;justify-content:space-between;gap:9px}.quest strong{font-size:14px}.quest p{font-size:12px;color:#839083;margin:4px 0}.quest small{font-size:11px;color:#598a6c;font-weight:800}.quest button{background:#7a9e78;color:white;white-space:nowrap;font-size:12px}.quest button:disabled{background:#e3e7df;color:#92a090;cursor:default}.tag{display:inline-block;background:#f1e7d6;padding:5px 9px;border-radius:8px;font-size:11px;font-weight:800;margin-bottom:12px}.cat-face{font-size:54px;text-align:center;background:#f2eadb;border-radius:18px;padding:15px;margin:12px 0}.note{background:#e9f0e7;padding:13px;border-radius:13px;font-size:12px;line-height:1.6;color:#5d7765}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#2e5440;color:white;border-radius:14px;padding:12px 18px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10;max-width:90vw;text-align:center}#toast.show{opacity:1}footer{text-align:center;padding:10px 16px 26px;color:#8b9c8a;font-size:12px}@media(max-width:800px){main{grid-template-columns:1fr}.side{min-height:320px}header{padding-top:15px}h1{font-size:25px}.world-head{padding:13px}.keyboard{display:none}#panel{max-height:none}}

.edit-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:#526d5b;margin:10px 0}.edit-field input,.edit-field select{width:100%;border:1px solid #c9d9c8;border-radius:10px;padding:11px;font:inherit;background:white;color:#2d4539}.editor-action{display:block;width:100%;margin:10px 0;background:#668c75;color:white}.editor-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-bottom:1px solid #e4e9de;font-size:13px}.editor-row button{font-size:11px}.editor-shortcut{margin-left:auto;margin-right:8px;background:#dce8d9}#panel h3{margin:24px 0 10px}header{gap:8px}
/* Blubbertown v0.5: touch-first improvements */
html{-webkit-text-size-adjust:100%}body{overscroll-behavior-y:contain}button{-webkit-tap-highlight-color:transparent}canvas{max-width:100%;height:auto;aspect-ratio:832/576;user-select:none;-webkit-user-select:none}.controls button{min-width:62px;min-height:52px;font-size:19px;user-select:none;-webkit-user-select:none;touch-action:none}.controls #interact{min-width:74px}.controls{gap:6px}.controls>div{gap:8px}#toast{bottom:max(16px,env(safe-area-inset-bottom));z-index:50}@media(max-width:800px){main{padding:0 10px 20px;gap:12px}.world,.side{border-radius:17px}header{padding:12px 12px 10px;flex-wrap:wrap}header h1{font-size:25px}.world-head{gap:9px}.bar{width:135px}.stats span{font-size:11px;padding:7px}nav button,.tab{min-height:45px}#panel{padding:13px}.quest{align-items:flex-start}.quest button{min-height:42px}canvas{width:100%}.controls{margin-top:10px}.world-foot{padding-bottom:18px}}@media(max-width:390px){.editor-shortcut,#backup{font-size:11px;padding:10px 9px}.stats{gap:4px}.stats span{font-size:10px}}

[hidden]{display:none!important}.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(155deg,#d5e8cf,#f7ebdb)}.auth-card{background:#fffaf1;border:3px solid #597663;border-radius:24px;padding:32px;max-width:440px;width:100%;box-shadow:0 18px 45px #314d4230;color:#314d42;text-align:center}.auth-cat{font-size:52px}.auth-card h1{font-size:2.4rem;margin:8px 0}.auth-card p{margin:10px 0 20px}.auth-card form{text-align:left;display:grid;gap:10px}.auth-card label{font-weight:700}.auth-card input{padding:13px 14px;border:1px solid #9baea0;border-radius:10px;font-size:16px;background:white;color:#25382e;width:100%;box-sizing:border-box}.auth-card form button{padding:13px;background:#314d42;color:white;border:0;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;margin-top:8px}.auth-card #login-error{color:#a23d3d;min-height:1.5em;margin:10px 0}#logout{font-size:13px}
.quest-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.quest-actions button{white-space:nowrap;padding:9px 10px}.quest-actions button:disabled{opacity:.6}

/* Auto-update prompt: above the game, without obscuring login permanently. */
#bt-update-notice[hidden] { display: none !important; }
#bt-update-notice { position: fixed; z-index: 9999; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); display: flex; justify-content: center; pointer-events: none; }
.bt-update-card { box-sizing: border-box; width: min(100%, 430px); background: #fffdf6; color: #253b30; border: 2px solid #638a73; border-radius: 18px; padding: 16px; box-shadow: 0 8px 32px #0004; pointer-events: auto; font: 15px/1.4 system-ui, sans-serif; }
.bt-update-card strong { font-size: 17px; }
.bt-update-card p { margin: 8px 0 12px; }
.bt-update-actions { display: flex; gap: 10px; }
.bt-update-actions button { flex: 1; padding: 11px 8px; border-radius: 10px; border: 1px solid #638a73; background: #3d7056; color: white; font-weight: 700; cursor: pointer; }
.bt-update-actions button:last-child { background: white; color: #3d7056; }

/* v0.7.2 — Cozy mobile UI, no overlays over movement controls */
:root{--bt-forest:#294f3d;--bt-cream:#fffaf1;--bt-sage:#e8eee5}
body{background:linear-gradient(180deg,#e9f0e5 0%,#f5efe3 100%);color:#294636}
header{gap:14px;flex-wrap:wrap;padding-top:max(20px,env(safe-area-inset-top))}
header h1{font-size:clamp(27px,5vw,38px)}.header-tools{color:#688776;font-size:12px;font-weight:750;letter-spacing:.05em}
.world,.side{border:1px solid #dfe7d9;box-shadow:0 10px 30px #345a4220}
.world-head{background:#fffaf1}.world-head strong{font-size:20px}
.world-foot{background:#fffaf1;padding:14px 16px 20px}
.bt-dialogue{display:flex;gap:14px;align-items:center;margin:12px 0 0;padding:14px 17px;border-radius:18px;background:#f7e9c9;border:1px solid #e1cfa6;box-shadow:0 4px 12px #594b3220;min-height:100px}
.bt-dialogue-portrait{font-size:44px;flex-shrink:0;line-height:1}.bt-dialogue-copy{min-width:0}.bt-dialogue-copy strong{color:#285440;font-size:14px}.bt-dialogue-copy p{margin:6px 0 0;color:#355041;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.controls{position:relative;isolation:isolate;margin-top:16px;gap:5px}.controls button{background:#628e76;border-radius:16px;box-shadow:0 3px 0 #3e6a54;min-width:64px;min-height:54px}.controls #interact{background:#e6bd75;color:#344737}
#hint{display:block;font-size:12px}.side nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.tab{min-height:46px;padding:10px 5px;font-size:12px}.tab.active{background:var(--bt-forest);color:white}
.bt-settings{padding:16px;display:grid;gap:12px}.bt-settings button{padding:14px;background:#e5ede2;text-align:left}.bt-settings p{font-size:12px;color:#708374}
#toast{bottom:max(92px,calc(env(safe-area-inset-bottom) + 84px));z-index:55;max-width:min(90vw,450px);font-size:14px;box-shadow:0 6px 22px #0003}
@media(max-width:800px){
 main{display:flex;flex-direction:column;padding:0 12px 120px;gap:14px}
 header{padding:18px 18px 12px}.header-tools{display:none}
 .world,.side{border-radius:22px}.world-head{padding:18px 16px}.stats{gap:6px}.stats span{font-size:12px;padding:8px}
 .world-foot{padding:13px 14px 24px}.bt-dialogue{margin-top:14px;padding:12px;min-height:94px}.bt-dialogue-copy p{font-size:14px}
 .side{overflow:visible}.side nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;overflow-x:auto;gap:5px;padding:10px 10px max(12px,env(safe-area-inset-bottom));background:#294f3d;box-shadow:0 -4px 20px #203b2b36;scrollbar-width:none;border-radius:18px 18px 0 0}.side nav::-webkit-scrollbar{display:none}
 .side nav .tab{background:transparent;color:#f3f5ee;flex:0 0 auto;min-width:83px;min-height:48px;padding:10px 8px;font-size:12px;border-radius:12px}.side nav .tab.active{background:#f2d38e;color:#244b37}
 #panel{padding:18px}.controls button{min-width:66px;min-height:54px}
 footer{padding-bottom:120px}
 #bt-update-notice{bottom:max(86px,calc(env(safe-area-inset-bottom) + 78px))}
}
@media(min-width:801px){.bt-dialogue{margin:16px}.world-foot{padding-top:4px}.side nav{grid-template-columns:repeat(3,1fr)}}


/* v0.7.3 — visual world refresh: illustrated, warm, legible on iPhone */
:root{--bt-forest:#164b35;--bt-gold:#f3ce84;--bt-cream:#fff8e9}
body{background:linear-gradient(180deg,#c8e4b4 0%,#f9e8c7 48%,#f6ebd5 100%)}
header{max-width:1200px;min-height:190px;align-items:flex-start;justify-content:center;text-align:center;position:relative;background:linear-gradient(180deg,#d4f0ff66,#d6e6b455),url('header-landscape.jpg') center 54%/cover no-repeat;border-bottom:5px solid #7caa64;padding:32px 18px 22px;margin-bottom:14px;border-radius:0 0 24px 24px}
header small{font-size:12px;letter-spacing:3px;color:#214e38;text-shadow:0 1px 4px #fff}
header h1{font-size:clamp(36px,7vw,53px);color:#153f2c;text-shadow:2px 3px 0 #fff7dc,0 3px 14px #fff}
.header-tools{display:none}
.world,.side{background:#fff8e8;border:2px solid #c9a774;box-shadow:0 6px 0 #d3b98d,0 16px 35px #4b57312b}
.world-head{background:linear-gradient(125deg,#fff9ed,#f8e9ca);padding:20px!important}
.world-head strong{font-size:22px;color:#1b4932}
.bar{background:#d9d8ba;border:2px solid #6f8e62;height:13px}.bar div{background:linear-gradient(90deg,#9fd65c,#3c944e)}
.stats span{background:#f8e5c3;border:1px solid #e3c99e;border-radius:24px;color:#254e36}
#game{border-top:3px solid #8ea968;border-bottom:3px solid #8ea968}
.bt-dialogue{background:linear-gradient(130deg,#ffefc6,#fff8e7);border:2px solid #d4aa64;box-shadow:0 5px 0 #e0c391;position:relative}
.bt-dialogue-portrait{background:#fff6e7;border-radius:50%;padding:10px;font-size:48px}
.bt-dialogue-copy strong{font-size:17px;color:#185239}.bt-dialogue-copy p{font-size:16px;color:#253f31}
.world-foot{background:linear-gradient(#fff9ec,#fffdf6)}
.controls button{background:#49856b;box-shadow:0 5px 0 #286046;border:2px solid #326a51;border-radius:18px;font-size:23px}
.controls #interact{background:#f3cb7c;border-color:#b78e50;box-shadow:0 5px 0 #ba9150}
.side nav{background:#185039}.side nav .tab.active{background:#f3cb7c;color:#18452f}
.quest{background:#fffdf5;border-color:#e6d4af}.quest button{background:#357a58}
#panel{background:#fff9ed}.note{background:#e7f2df}
@media(max-width:800px){header{min-height:165px;margin-bottom:12px;padding-top:max(24px,env(safe-area-inset-top))}main{padding-left:10px;padding-right:10px}header h1{font-size:clamp(33px,9vw,46px)}.world-head{padding:15px!important}.bt-dialogue{margin:12px 9px 0}.bt-dialogue-copy p{font-size:14px}.side nav{border-top:2px solid #e5ca86}.side nav .tab{min-width:90px}}
