/* R08 · Free-roam Terraria isle. The canvas fills the stage; chrome floats on top like a Cuphead overworld. */
.lunar-overworld{position:absolute;inset:0;z-index:24;color:#2c2318;background:#2e6ab0;font-family:CupMemphis,"Microsoft YaHei",serif;isolation:isolate;overflow:hidden;color-scheme:light}
.lunar-overworld[hidden],.lunar-overworld.hidden{display:none!important}
.lunar-overworld *{box-sizing:border-box}
.ow-shell{position:absolute;inset:0}
.ow-shell:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;
 background:radial-gradient(ellipse 75% 70% at 50% 52%,transparent 60%,#1d120a66 88%,#120a05bb 100%);box-shadow:inset 0 0 0 .35cqw #20160f,inset 0 0 0 .6cqw #e9d6aa}
.ow-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;cursor:crosshair;image-rendering:pixelated;touch-action:none}
.ow-canvas:focus-visible{box-shadow:inset 0 0 0 .3cqw #f2c14b}

/* header plaque + island tabs */
.ow-header{position:absolute;left:1.6%;right:1.6%;top:2.2%;display:flex;align-items:flex-start;gap:1.5cqw;z-index:5;pointer-events:none}
.ow-header>*{pointer-events:auto}
.ow-title{padding:.55cqw 1.6cqw .7cqw;background:linear-gradient(180deg,#f6e8c4,#e3cc96);border:.22cqw solid #20160f;border-radius:.5cqw;box-shadow:.25cqw .3cqw 0 #20160fcc;transform:rotate(-1.5deg)}
.ow-title>span{display:block;font:.75cqw/1.2 CupMemphis,Georgia,serif;letter-spacing:.18em;color:#7a5a2c}
.ow-title h2{font:2.2cqw/1.1 CupVogue,"Microsoft YaHei",sans-serif;margin:.1cqw 0 0;letter-spacing:.06em;color:#20160f}
.ow-chapters{display:flex;gap:.8cqw;margin:0 auto;padding:.35cqw .5cqw;background:#20160fcc;border-radius:.6cqw;box-shadow:0 .2cqw .6cqw #0006}
.lunar-overworld button{color:inherit;cursor:pointer;border:0;font-family:CupVogue,"Microsoft YaHei",sans-serif}
.lunar-overworld button:focus-visible{outline:.21cqw dashed #f2c14b;outline-offset:.2cqw}
.ow-chapter{display:flex;flex-direction:column;align-items:center;gap:.1cqw;padding:.45cqw 1.2cqw;background:transparent;color:#d7c49a!important;border-radius:.4cqw;white-space:nowrap}
.ow-chapter b{font:1.35cqw/1.1 CupVogue,Georgia,serif;font-weight:normal;letter-spacing:.05em}
.ow-chapter span{font:.72cqw/1.3 "Microsoft YaHei",sans-serif;opacity:.85}
.ow-chapter[aria-pressed=true]{background:#f1e2bd;color:#a33f29!important;box-shadow:inset 0 0 0 .14cqw #20160f}
.ow-back{padding:.55cqw 1.3cqw;font-size:1.25cqw;background:#a53b2a;color:#fff0cf!important;border:.2cqw solid #20160f!important;border-radius:.45cqw;box-shadow:.2cqw .25cqw 0 #20160f;transform:rotate(1.5deg)}
.ow-back:hover{background:#c24a35}

/* current zone tag, bottom-left */
.ow-region-tag{position:absolute;left:2%;bottom:8.5%;z-index:5;pointer-events:none;padding:.35cqw 1.4cqw .45cqw;font:1.25cqw/1.2 "Microsoft YaHei",sans-serif;font-weight:bold;letter-spacing:.12em;color:#f1e2bd;background:#20160fd0;border-left:.35cqw solid #f2c14b;transform:rotate(-1deg)}
.ow-region-tag:empty{display:none}

/* floating "J 挑战" prompt above the sign you stand at */
.ow-prompt{position:absolute;z-index:4;transform:translate(-50%,-100%);display:flex;align-items:center;gap:.6cqw;padding:.35cqw .9cqw .35cqw .4cqw;background:#f6e8c4;border:.2cqw solid #20160f;border-radius:2cqw;box-shadow:.18cqw .22cqw 0 #20160f;white-space:nowrap;pointer-events:none;animation:ow-pop .25s cubic-bezier(.2,.9,.3,1.4)}
.ow-prompt[hidden]{display:none}
.ow-prompt b{display:grid;place-items:center;width:1.9cqw;height:1.9cqw;border-radius:50%;background:#a53b2a;color:#fff0cf;font:1.1cqw CupVogue,Georgia,serif;border:.14cqw solid #20160f}
.ow-prompt span{font:1.05cqw "Microsoft YaHei",sans-serif;font-weight:bold;color:#20160f}
.ow-prompt:after{content:'';position:absolute;left:50%;bottom:-.75cqw;width:1.1cqw;height:.75cqw;background:#20160f;clip-path:polygon(0 0,100% 0,50% 100%);transform:translateX(-50%)}
@keyframes ow-pop{from{opacity:0;scale:.6}to{opacity:1;scale:1}}

/* level card */
.ow-stage-panel{position:absolute;z-index:6;right:4%;top:50%;width:30%;transform:translateY(-50%) rotate(1deg);display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.8cqw 2cqw 1.4cqw;
 background:#f1e2bd;background-image:radial-gradient(#7a5a2c18 .6px,transparent .8px);background-size:6px 6px;border:.28cqw solid #20160f;border-radius:.8cqw;box-shadow:0 0 0 .32cqw #e8b443,0 0 0 .5cqw #20160f,.8cqw 1cqw 0 .4cqw #0009;animation:ow-card .3s cubic-bezier(.2,.9,.3,1.25)}
.ow-stage-panel[hidden]{display:none}
.ow-stage-panel[data-side=left]{right:auto;left:4%;transform:translateY(-50%) rotate(-1deg)}
@keyframes ow-card{from{opacity:0;translate:4cqw 0;rotate:6deg}to{opacity:1;translate:0 0;rotate:0deg}}
.ow-region{font:1cqw/1.4 "Microsoft YaHei",sans-serif;color:#7a5a2c;letter-spacing:.1em;margin-bottom:.5cqw}
.ow-portraits{display:flex;align-items:center;justify-content:center;gap:.4cqw;width:6.5cqw;height:6.5cqw;margin-bottom:.6cqw;background:#e3cc96;border:.2cqw solid #20160f;border-radius:50%;box-shadow:inset 0 0 0 .3cqw #f6e8c4}
.ow-portraits img{max-width:4.2cqw;max-height:4.2cqw;image-rendering:pixelated;object-fit:contain}
.ow-portraits img+img{max-width:3cqw}
.ow-boss-cn{font:2cqw/1.3 CupVogue,"Microsoft YaHei",sans-serif;margin:0;color:#a33f29}
.ow-boss-en{font:1.2cqw/1.2 CupMemphis,Georgia,serif;margin:.1cqw 0 0;letter-spacing:.06em}
.ow-description{font:.98cqw/1.65 "Microsoft YaHei",sans-serif;margin:.7cqw 0;color:#4e4232}
.ow-medals{display:flex;justify-content:center;gap:.8cqw;width:100%;margin:.1cqw 0 .9cqw}
.ow-medal{display:flex;flex-direction:column;align-items:center;gap:.15cqw;flex:1;color:#8a7a5c}
.ow-medal b{display:grid;place-items:center;width:2.3cqw;height:2.3cqw;border:.12cqw dashed #a89f81;border-radius:50%;font:1.25cqw CupVogue,Georgia,serif;background:#e3d6b2;font-weight:normal}
.ow-medal span{font:.78cqw "Microsoft YaHei",sans-serif}
.ow-medal small{font:.55cqw/1.2 CupMemphis,"Microsoft YaHei",sans-serif!important;white-space:nowrap}
.ow-medal.is-earned{color:#7c3524}.ow-medal.is-earned b{background:#e8b443;color:#64351d;border:.16cqw double #885c31}
.ow-arena{display:flex;align-items:center;gap:.5cqw;width:100%;margin:0 0 .9cqw;padding:.35cqw .4cqw;background:#e3cc96;border:.18cqw solid #20160f;border-radius:.45cqw}
.ow-arena-step{flex:0 0 2.2cqw;height:2.2cqw;display:grid;place-items:center;font:1.5cqw/1 CupVogue,Georgia,serif!important;background:#20160f;color:#f6e8c4!important;border-radius:50%}
.ow-arena-step:hover{background:#a53b2a}
.ow-arena-label{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}
.ow-arena-label small{font:.62cqw/1.2 CupMemphis,"Microsoft YaHei",sans-serif;letter-spacing:.08em;color:#7a5a2c}
.ow-arena-label b{font:1.05cqw/1.35 "Microsoft YaHei",sans-serif;font-weight:bold;color:#20160f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ow-arena-label .ow-arena-hint{color:#a33f29}
.ow-arena.is-locked .ow-arena-step{opacity:.25;pointer-events:none}.ow-arena.is-locked .ow-arena-hint{display:none}
.ow-arena.is-bump b{animation:ow-bump .2s ease-out}
@keyframes ow-bump{from{transform:translateX(.4cqw);opacity:.4}to{transform:none;opacity:1}}
.ow-card-actions{display:flex;gap:.8cqw;width:100%}
.ow-confirm{flex:1.4;display:flex;justify-content:center;align-items:center;gap:.6cqw;padding:.55cqw .5cqw;background:#a53b2a;color:#fff0cf!important;border:.2cqw solid #20160f!important;border-radius:.4cqw;box-shadow:.2cqw .25cqw 0 #20160f;transform:rotate(-1deg)}
.ow-confirm>span{font:1.5cqw/1.2 "Microsoft YaHei",sans-serif;font-weight:bold}.ow-confirm>small{font:1.1cqw CupVogue,Georgia,serif!important}
.ow-confirm:hover,.ow-confirm:focus{background:#c24a35}
.ow-cancel{flex:1;padding:.55cqw .5cqw;font:1.1cqw "Microsoft YaHei",sans-serif!important;background:#e3cc96;border:.2cqw solid #20160f!important;border-radius:.4cqw;box-shadow:.2cqw .25cqw 0 #20160f}
.ow-cancel:hover,.ow-cancel:focus{background:#f2c14b}
.ow-selection-note{font:.72cqw/1.5 "Microsoft YaHei",sans-serif;color:#6e5f45;margin:.7cqw 0 .1cqw}
.ow-chapter-progress{font:.72cqw/1.5 "Microsoft YaHei",sans-serif;color:#504a3a;margin:.1cqw 0 0;padding-top:.5cqw;border-top:.08cqw solid #aa9b76;width:100%}

/* help strip */
.ow-help{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;justify-content:center;gap:2.2cqw;padding:.6cqw 1cqw .8cqw;font:.88cqw/1.3 "Microsoft YaHei",sans-serif;color:#f1e2bd;background:linear-gradient(0deg,#20160fe6,#20160f00);pointer-events:none}
.ow-help span{white-space:nowrap}

/* keyboard / screen-reader shortcut list: off-screen until focused */
.ow-sign-layer{position:absolute;left:2%;top:16%;z-index:7;display:flex;flex-direction:column;gap:.2cqw}
.ow-sign{position:absolute;left:-9999px;padding:.4cqw .9cqw;font:1cqw "Microsoft YaHei",sans-serif!important;background:#f6e8c4;border:.18cqw solid #20160f!important;border-radius:.3cqw;white-space:nowrap}
.ow-sign:focus{position:static;left:auto}
.ow-sign[hidden]{display:none!important}
.ow-node-medals{margin-left:.6cqw;color:#a33f29;font-family:CupVogue,Georgia,serif}.ow-node-medals:empty{display:none}
.ow-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

@container(max-width:800px){.ow-title h2{font-size:2.6cqw}.ow-chapter span{display:none}.ow-chapter b{font-size:1.7cqw}.ow-back{font-size:1.6cqw}.ow-stage-panel{width:40%}.ow-description{font-size:1.2cqw}.ow-help{font-size:1.1cqw}.ow-help span:nth-child(n+4){display:none}.ow-prompt span{font-size:1.4cqw}.ow-region-tag{font-size:1.5cqw}}
@media(prefers-reduced-motion:reduce){.lunar-overworld *{transition:none!important;animation:none!important}}

/* boss order: locked bosses stay visible but greyed out */
.ow-sign.is-locked{filter:grayscale(1) brightness(.75);opacity:.8}
.ow-sign.is-locked:after{content:'🔒';position:absolute;right:-.2em;top:-.2em;font-size:.9em}
