/* Firebird's responsive local play layout, for desktop and touch players. */
:root{color-scheme:dark;font:16px/1.4 system-ui,sans-serif;color:#fff2da;background:#20171c}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#542b30,#20171c 75%)}
main{width:min(1120px,100%);margin:auto;padding:22px 24px 14px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
h1{font-family:Georgia,serif;font-weight:normal;font-size:clamp(23px,3.1vw,38px);margin:5px 0 0;line-height:1.1}
.eyebrow{font-size:11px;letter-spacing:.16em;color:#f6bb86}.tag{font-size:9px;letter-spacing:.1em;margin-left:12px;padding:3px 7px;border:1px solid #98534b;border-radius:4px}
button{font:inherit;font-weight:650;color:#fff0d9;background:#50333b;border:1px solid #a27263;border-radius:12px;min-height:48px;padding:10px 16px;cursor:pointer}
button:hover{background:#6b4347}button:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid #ffe7a0;outline-offset:3px}button:disabled{cursor:default;opacity:.65}
.tools{display:flex;gap:8px}.tools button{font-size:13px;padding:8px 12px}#play{height:min(66vw,620px);min-height:440px;position:relative;isolation:isolate;border:1px solid #aa5a48;border-radius:22px;overflow:hidden;box-shadow:0 20px 65px #100d1290}
canvas{display:block;width:100%;height:100%}.sky-label{position:absolute;top:22px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.3em;color:#ffc9a3;opacity:.8}
.goal{position:absolute;top:18px;left:18px;background:#261b25ed;border:1px solid #a16c52;border-radius:13px;padding:12px 16px;display:grid;gap:3px;max-width:65%}.goal strong{font-size:18px}.goal #status{font-size:12px;color:#e6c3a8}
[hidden]{display:none!important}.landmarks{flex-wrap:wrap;position:absolute;top:110px;left:20px;display:flex;gap:8px;font-size:12px}.landmarks span{background:#281c23df;border:1px solid #9b6757;border-radius:20px;padding:5px 9px}
#notice{position:absolute;bottom:146px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);text-align:center;background:#2a1e27f2;border:1px solid #a27159;padding:9px 16px;border-radius:30px;font-size:15px;box-shadow:0 4px 20px #1b101780}
.controls{position:absolute;bottom:16px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:end;pointer-events:none;gap:12px}.controls button{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.pad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,49px);gap:5px}.pad button{font-size:23px;padding:0;background:#2b202ae8}.pad button:first-child{grid-column:2}.pad button:nth-child(2){grid-column:1;grid-row:2}.pad button:nth-child(3){grid-column:2;grid-row:2}.pad button:nth-child(4){grid-column:3;grid-row:2}.pad button.active{background:#945341;border-color:#ffe4ac}
.action-wrap{display:grid;gap:7px;text-align:center}.action-wrap span{background:#281c23df;border-radius:8px;padding:5px 8px;font-size:12px}.action-wrap button{background:#f9bd72;color:#34202a;border-color:#ffe0a1;min-width:155px;min-height:56px}.action-wrap button:disabled{background:#51333a;color:#ecd1bc;border-color:#9c6756}
footer{display:flex;justify-content:space-between;font-size:12px;color:#cfaa99;gap:10px;margin:14px 2px}details{font-size:13px;color:#d9b5a4;margin-top:14px}summary{cursor:pointer;min-height:30px}details p{max-width:680px}details button{font-size:13px}
dialog{width:min(530px,calc(100% - 28px));max-height:calc(100% - 24px);overflow:auto;background:#30222c;color:#fff1db;border:1px solid #dd9e68;border-radius:20px;padding:26px;box-shadow:0 20px 80px #0c0810b0}dialog::backdrop{background:#1d101bbc}dialog h2{font:normal 30px/1.15 Georgia,serif;margin:6px 0 14px}dialog p{font-size:16px}dialog .small{font-size:13px;color:#daba9f}.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.primary{background:#f5bb73;color:#382128;border-color:#ffdb98}.blankets{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.blanket{border:1px solid #946156;border-radius:12px;padding:12px;text-align:center;font-size:14px}.cloth{width:86px;height:65px;margin:4px auto 12px;background:repeating-linear-gradient(90deg,#79526e 0 16px,#b48b91 16px 19px);border:4px solid #cdb8ae;border-radius:9px 9px 18px 18px;transform:rotate(-5deg)}.other .cloth{background:repeating-linear-gradient(0deg,#be3549 0 13px,#ed8b55 13px 16px);border-color:#ffd398}.blanket p{font-size:14px;margin:7px 0}.blanket span{font-size:12px;color:#d3b39d}
@media(max-width:600px){main{padding:14px 10px}header{gap:8px;align-items:start;margin-bottom:14px}h1{max-width:220px;font-size:25px}.eyebrow{font-size:10px}.tag{display:none}.tools{gap:5px;flex-direction:column}.tools button{min-height:38px;padding:5px 9px;font-size:11px}#play{height:610px;min-height:420px;max-height:calc(100svh - 164px);border-radius:17px}.goal{top:12px;left:12px;padding:10px 12px;max-width:90%}.goal strong{font-size:16px}.sky-label{display:none}.landmarks{top:104px;left:12px;font-size:11px}.controls{left:10px;right:10px;bottom:12px;gap:7px}.pad{grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:4px}.action-wrap button{min-width:135px;font-size:14px;padding:8px 10px}.action-wrap span{font-size:10px;max-width:145px}#notice{font-size:13px;bottom:137px;padding:8px 12px}footer{font-size:10px}.desktop-help{display:none}dialog{padding:20px}dialog h2{font-size:26px}.blanket{padding:8px}.cloth{width:67px;height:55px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.power-card{display:grid;justify-items:center;gap:10px;padding:20px;background:#211a26;border:1px solid #ae8856;border-radius:14px;text-align:center}.power-card strong{font-size:24px;color:#ffde8c}.power-card span{font-size:13px}.power-symbol{position:relative;width:80px;height:60px}.wings:before,.wings:after{content:"";position:absolute;top:12px;width:34px;height:32px;background:#ffdc8b;border-radius:4px 26px 4px 26px;transform:rotate(25deg)}.wings:before{left:3px}.wings:after{right:3px;transform:scaleX(-1) rotate(25deg)}.portal:before{content:"";position:absolute;inset:2px 17px;border:7px solid #ffdc8b;border-radius:50%;box-shadow:inset 0 0 0 4px #9669ad}.blocks:before,.blocks:after{content:"";position:absolute;width:26px;height:26px;border:3px solid #ffdc8b;background:#8c5c47}.blocks:before{left:10px;bottom:0;box-shadow:30px 0 0 -3px #8c5c47,30px 0 0 0 #ffdc8b}.blocks:after{left:25px;bottom:30px}.rainbow-mark{height:46px;border-radius:20px;background:linear-gradient(#f99d8a 0 20%,#ffd779 20% 40%,#99dca9 40% 60%,#9bc7fa 60% 80%,#d5a1ee 80%)}

@media(max-width:360px){.action-wrap{min-width:0;flex:1}.action-wrap button{min-width:0;width:100%;font-size:12px;padding:8px 4px}.action-wrap span{padding:5px 3px}}

#lava-status{font-size:12px;color:#ffda96;font-weight:650}.lava-route .landmarks{top:134px}.volcano-room{display:grid;justify-items:center;gap:5px;padding:16px;background:radial-gradient(ellipse at bottom,#623c39,#211a26 80%);border:1px solid #956358;border-radius:14px}.volcano-room span{font-size:12px;color:#ebc2a1}.lava-machine{position:relative;width:110px;height:100px;background:#674550;border:4px solid #c08b69;border-radius:18px 18px 10px 10px;margin-top:9px}.machine-window{position:absolute;inset:16px 15px 22px;border:3px solid #e5b78b;border-radius:12px;background:#201b27}.filled .machine-window{background:linear-gradient(#3d2632 35%,#ffbb69 36% 48%,#dd7041 49%)}.machine-pipe{position:absolute;right:-17px;top:-18px;width:35px;height:30px;border:7px solid #c08b69;border-bottom:0;border-radius:12px 12px 0 0}.machine-foot{position:absolute;bottom:-13px;left:7px;width:22px;height:10px;background:#c08b69;box-shadow:65px 0 #c08b69}.lava-route .goal{max-width:90%}
@media(max-width:600px){.lava-route .landmarks{top:126px;right:12px;gap:5px}.lava-route .landmarks span{padding:4px 7px}.volcano-room{padding:12px}#lava-status{font-size:11px}}

.abilities{position:absolute;right:12px;top:18px;display:flex;gap:6px}.abilities button{font-size:13px;padding:8px 12px}#basket{font-size:12px;color:#ffe1a0}.landmarks{top:142px}.lava-route .landmarks{top:158px}.power-actions{display:flex;flex-wrap:wrap;gap:8px}#building-form{display:grid;gap:10px;margin-top:18px}#building-form label{font-size:20px}input{font:inherit;width:100%;min-height:48px;padding:10px;border-radius:8px;border:2px solid #d8ab91;color:#fff4db;background:#211b28}input:focus-visible{outline:3px solid #ffe7a0}.diamond .power-symbol{background:linear-gradient(135deg,#e3fbff,#98c1e6,#e8bdff);clip-path:polygon(20% 0,80% 0,100% 35%,50% 100%,0 35%)}
@media(max-width:600px){.abilities{top:148px;left:12px;right:auto}.abilities button{min-height:48px}.landmarks,.lava-route .landmarks{top:205px;right:12px;font-size:10px}.goal{max-width:94%}.goal strong{font-size:15px}}

.abilities button{min-width:48px}

#winter-status{font-size:12px;color:#cee5ff;font-weight:650}.winter{border-color:#bad3e6!important}.winter .goal,.winter .landmarks span{background:#21334aeb;border-color:#91b3d0}.winter #notice{background:#22364ded;border-color:#b0cce3}.rescue-mark{margin:auto;width:96px;height:96px;display:grid;place-items:center;border:4px solid #c8e3f3;background:#496f80;border-radius:50%;font-size:56px;color:#f0fcff}.winter .abilities{flex-wrap:wrap}.winter .goal{max-width:94%}
@media(max-width:600px){.winter .abilities{top:156px}.winter .landmarks{top:213px}.winter .abilities button{font-size:12px}.winter #notice{font-size:12px}#winter-status{font-size:11px}}

#route-guide{position:absolute;right:18px;top:84px;display:flex;align-items:center;gap:14px;padding:10px 18px;border:3px solid #fff0ab;border-radius:16px;background:#243b50f5;color:#fff6cd;pointer-events:none;box-shadow:0 4px 18px #14203080}
#route-arrow{font:700 48px/1 system-ui;min-width:48px;text-align:center}#route-guide div{display:grid;gap:2px}#route-guide strong{font-size:21px}#route-words{font-size:14px}.race .landmarks{display:none}.race .abilities{top:18px}
@media(max-width:600px){#route-guide{top:146px;left:12px;right:12px;gap:14px;padding:8px 14px}#route-arrow{font-size:40px}#route-guide strong{font-size:18px}#route-words{font-size:12px}.race .abilities{top:226px}.abilities{flex-wrap:wrap;right:12px}.abilities button{font-size:12px;padding:8px 10px}}

button{-webkit-tap-highlight-color:transparent}.summer{border-color:#c6d9aa!important}.summer .goal,.summer .landmarks span{background:#304a49ed;border-color:#acc3a3}.summer #notice{background:#344a44f2;border-color:#c0cf9f}#summer-place{font-size:12px;color:#e0e9be}.summer .landmarks{top:182px;right:18px}.summer .goal{max-width:94%}
@media(max-width:600px){.summer .abilities{top:174px}.summer .landmarks{top:238px;right:12px;gap:5px}.summer .landmarks span{padding:4px 7px}.summer #notice{font-size:12px}.summer .goal{padding:8px 10px}.summer .goal strong{font-size:14px}#summer-place{font-size:11px}}

@media(max-width:600px){.summer .abilities button{font-size:11px;padding:8px 6px}}

.primary:hover{background:#ffca86}

.story-art{display:block;width:100%;height:auto;max-height:180px;margin:12px 0;border-radius:14px}#story-words{line-height:1.5}
