:root{color-scheme:dark;--ink:#dce6dc;--muted:#8ca3a8;--bg:#202d3c;--panel:#283b48;--line:#42545f;--gold:#e8c47a;--mint:#91d9a3;--blue:#72bfdd;--deep:#172532;font-family:'Yu Gothic','Meiryo',sans-serif;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}button,input,select{font:inherit}button{color:var(--ink);background:#304953;border:1px solid #567078;padding:10px 15px;cursor:pointer;border-radius:3px;box-shadow:0 2px 0 #172532;line-height:1.45}button:hover:not(:disabled){background:#3a5861;border-color:#91bdc2}button:active:not(:disabled){transform:translateY(1px);box-shadow:none}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.primary{background:#dcc077;color:#263b39;border-color:#f0d798;font-weight:700}.primary:hover:not(:disabled){background:#efd28a;border-color:#fff1c2}.text-button{background:transparent;border:0;box-shadow:none;color:#b7cbc7}kbd{font:11px Consolas,monospace;padding:2px 5px;border:1px solid #567078;border-radius:2px;color:#b7cbc7;white-space:nowrap}.primary kbd{color:#334841;border-color:#889b72;margin-left:12px}[hidden]{display:none!important}
.site-header{max-width:1120px;margin:0 auto;padding:22px 12px 17px;display:flex;justify-content:space-between;align-items:center;gap:16px}.wordmark{font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:.04em}.wordmark span{color:var(--gold);margin-left:10px;font-family:Consolas,monospace}.header-actions{display:flex;gap:8px;align-items:center}.header-actions button{font-size:12px;padding:7px 11px}.build{font:10px Consolas,monospace;letter-spacing:.05em;color:var(--muted);margin-right:12px}main{max-width:1120px;margin:0 auto;padding:0 12px}.title-screen{border:1px solid #50645a;box-shadow:0 8px 30px #101d2980}.title-art{height:570px;position:relative;overflow:hidden;background:#66877c}.title-art canvas{width:100%;height:100%;object-fit:cover;image-rendering:pixelated;position:absolute}.title-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#173b366b,transparent 80%),linear-gradient(0deg,#142d34a8,transparent 55%);pointer-events:none}.title-copy{position:absolute;top:75px;left:68px;z-index:1;text-shadow:2px 3px 0 #234b4e}.tiny{font:12px Consolas,monospace;letter-spacing:.15em;color:#f9edc6;margin:0 0 17px}h1{font-size:52px;letter-spacing:.08em;line-height:1.35;color:#fff8d9;margin:0;font-family:'Yu Mincho','MS Mincho',serif;font-weight:900}h1 span{display:block;font:700 82px/1.25 Georgia,serif;letter-spacing:.035em;margin-top:1px;color:#f2cd75}.intro{font-size:17px;line-height:1.8;margin-top:20px;color:#fff8d9}.title-actions{position:absolute;z-index:2;left:68px;bottom:65px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.title-actions button{min-width:145px}.title-footer{padding:17px 25px;display:flex;justify-content:space-between;align-items:center;gap:15px;background:#243a43}.title-footer p{margin:0}.title-footer span{font-size:12px;color:var(--muted)}
.game-layout{display:grid;grid-template-columns:minmax(0,768px) 264px;gap:20px;justify-content:center}.screen-frame{position:relative;border:3px solid #4e6670;box-shadow:0 5px 0 #142632;background:#142f37}.screen-heading,.screen-bottom{padding:9px 12px;display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#d2e3d4;line-height:1.35}.screen-heading{border-bottom:2px solid #4e6670;letter-spacing:.05em}.screen-heading span:last-child{color:var(--gold)}.screen-bottom{border-top:2px solid #4e6670;min-height:34px;font-size:11px}.screen-bottom span:last-child{white-space:nowrap;color:#90a6ad}#game{display:block;width:100%;height:auto;image-rendering:pixelated;touch-action:none;outline-offset:-3px}.announcement{position:absolute;left:12px;right:12px;top:50%;transform:translateY(-50%);padding:22px;background:#1d3344ef;border:2px solid var(--gold);text-align:center;color:#f3dda1;font-size:21px;pointer-events:none;box-shadow:0 3px 0 #0c1c29}.announcement small{display:block;font-size:13px;margin-top:7px;color:var(--ink)}
.field-controls{display:flex;gap:8px;margin:14px 0 8px;flex-wrap:wrap}.field-controls button:first-child{flex:1}.field-controls button{font-size:13px;padding:11px 13px}.keyboard-note{font-size:11px;color:var(--muted);margin:12px 0}.status-panel{border:1px solid var(--line);background:var(--panel);padding:22px 21px;align-self:start}.label{font:10px Consolas,monospace;letter-spacing:.16em;color:var(--muted)}.level-line{display:flex;align-items:baseline;gap:8px;margin:8px 0 0;font-family:Consolas,monospace}.level-line>span{font-size:20px;color:var(--gold)}.level-line strong{font-size:60px;line-height:1.15;color:#fff1c0;font-weight:400}.level-line small{font-size:15px;color:var(--muted)}.job-name{margin:5px 0 21px;color:#c6dfcb;font-weight:700;font-size:15px}.vitals>div:nth-child(odd),.exp-block>div:first-child{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:11px}.vitals strong{font:13px Consolas,monospace}.bar{height:7px;background:#172a35;overflow:hidden;border:1px solid #506267}.bar i{display:block;height:100%;width:0;background:var(--mint);transition:width .2s ease-out}.vitals .bar{margin:5px 0 12px}.mp i{background:var(--blue)}.exp i{background:var(--gold)}.exp-block{margin-top:17px}.exp-block strong{font:12px Consolas,monospace;color:var(--gold)}.exp-block .bar{margin-top:7px}.run-stats{margin:22px 0;border-top:1px solid var(--line);padding-top:11px;font-size:12px}.run-stats>div{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.run-stats dt{color:#a4babc}.run-stats dd{font:14px Consolas,monospace;margin:0;color:#eef3dd}.next-job{font-size:11px;line-height:1.7;color:var(--gold);min-height:38px}.menu-buttons{display:flex;flex-direction:column;gap:8px}.menu-buttons button{font-size:12px;text-align:left;padding:10px 13px}.save-status{font-size:10px;color:var(--muted);margin:14px 0 0;min-height:30px}.enemy-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:13px 0 0}.enemy-header h2{font-size:18px;margin:2px 0}.enemy-hp{min-width:155px;width:28%;text-align:right;font:12px Consolas,monospace;color:#c6dedc}.enemy-hp .bar{margin-top:5px}.enemy-hp .bar i{background:#a8d46b}.intent{font-size:12px;background:#30454e;color:#f4d995;border-left:3px solid var(--gold);padding:9px 12px;margin:10px 0}.commands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.commands button{text-align:left;font-size:12px;padding:9px 10px;min-height:53px}.commands button span{display:block;color:#a9c2c3;font-size:10px;margin-top:3px}.commands button kbd{float:right;margin-left:5px}.battle-log{margin:11px 0 0;padding:10px 12px;min-height:70px;max-height:115px;overflow:auto;border-left:2px solid #708578;background:#1c303b;font-size:12px;color:#b8cec4}.battle-log p{margin:3px 0}.battle-result{padding:15px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.battle-result button{flex:1;min-width:145px}.touch-controls{display:none;text-align:center;margin-top:15px;user-select:none;touch-action:none}.touch-controls button{min-width:55px;margin:2px}.site-footer{max-width:1120px;margin:22px auto 0;padding:15px 12px 20px;color:#718c95;font-size:10px;display:flex;justify-content:space-between;gap:12px;border-top:1px solid #364b55}
dialog{background:#243b48;color:var(--ink);width:min(850px,calc(100% - 32px));border:2px solid #718782;border-radius:4px;padding:0;max-height:85vh;box-shadow:0 15px 80px #0008}dialog::backdrop{background:#0b1c29c4}.modal-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;background:#294452;border-bottom:1px solid #567078;padding:15px 22px;z-index:2}.modal-header h2{font-size:18px;margin:0}.modal-header button{padding:3px 10px;font-size:21px}#modal-body{padding:18px 24px 25px;font-size:13px}#modal-body p{line-height:1.8}#modal-body h3{font-size:15px;margin:25px 0 10px;color:var(--gold)}.job-grid,.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.job-card,.collection-card{background:#1d3340;border:1px solid #4b6370;padding:14px;min-height:150px}.job-card.current{border-color:var(--gold)}.job-card h3,.collection-card h3{margin:3px 0 7px!important}.job-card p,.collection-card p{font-size:11px;color:#b2c8c6;line-height:1.7}.job-card button{width:100%;font-size:11px;padding:8px}.collection-card canvas{image-rendering:pixelated;display:block;margin:0 auto;width:96px;height:84px}.collection-card.unknown{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#708993}.collection-card.unknown strong{font:40px Consolas,monospace}.skill-row{border-bottom:1px solid var(--line);padding:10px 0;display:flex;justify-content:space-between;gap:12px}.skill-row small{color:var(--muted)}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.settings-row input{width:170px}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.danger{color:#ffd7b4;border-color:#b2786d;background:#634645}.map-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#b2c8c6}.clear-stats{font-family:Consolas,monospace;font-size:20px;text-align:center;padding:20px;color:var(--gold)}.help-list{padding-left:20px}.help-list li{margin:10px 0}.modal-note{font-size:12px;color:var(--muted)}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:20;background:#27484b;border:1px solid #97b9a3;color:#e8f0ce;padding:12px 22px;max-width:90vw;box-shadow:0 3px 20px #0005;font-size:12px}
@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 235px;gap:13px}.status-panel{padding:18px 16px}.title-art{height:520px}.build{display:none}.title-copy,.title-actions{left:45px}.title-copy{top:65px}h1{font-size:44px}.title-footer{display:block}.title-footer span{display:block;margin-top:5px}}
@media(max-width:760px){.site-header{padding:14px 12px}.wordmark{font-size:12px}.header-actions button{padding:6px 8px;font-size:10px}.wordmark span{margin-left:5px}.game-layout{display:flex;flex-direction:column}.status-panel{width:100%;display:grid;grid-template-columns:1fr 1.3fr;column-gap:20px;padding:16px}.level-block{grid-row:span 2}.level-line strong{font-size:46px}.job-name{margin-bottom:3px}.vitals .bar{margin-bottom:7px}.exp-block{margin-top:6px}.run-stats{grid-column:span 2;display:flex;flex-wrap:wrap;gap:10px 20px;margin:12px 0;padding-top:7px}.run-stats>div{gap:8px;margin-top:0}.menu-buttons{grid-column:span 2;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.next-job{grid-column:span 2;min-height:auto;margin-top:0}.save-status{grid-column:span 2;min-height:0;margin-top:9px}.title-art{height:520px}.title-copy{left:26px;top:55px}.tiny{font-size:10px}h1{font-size:36px}h1 span{font-size:70px}.intro{font-size:14px}.title-actions{left:26px;right:26px;bottom:30px;gap:8px}.title-actions button{min-width:120px;flex:1;font-size:12px}.title-actions .text-button{flex-basis:100%}.title-footer{padding:15px 19px;font-size:12px}.touch-controls{display:block}.keyboard-note{font-size:10px}.field-controls button{font-size:11px;padding:10px}.field-controls kbd{display:none}.commands button{font-size:11px;min-height:50px}.job-grid,.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#modal-body{padding:14px 16px}.screen-heading,.screen-bottom{font-size:10px;padding:7px 9px}.screen-bottom{min-height:30px}.screen-bottom span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.game-layout{grid-template-columns:minmax(0,774px) 264px}
@media(min-width:1051px){#game{width:768px;max-width:100%}}

.save-json{display:block;width:100%;margin-top:18px;padding:12px;color:#d9e8dc;background:#182a34;border:1px solid #597079;font:12px/1.5 Consolas,monospace;resize:vertical;}

/* Title identity: selected logo over the game's own animated meadow. */
.title-screen{border:2px solid #507c82;border-radius:8px;overflow:hidden;box-shadow:0 8px 30px #101d2980}
.title-art{height:auto;min-height:610px;background:#7dbfc0;display:grid;place-items:center}
.title-art:after{background:linear-gradient(180deg,#c4f4fa15 0%,#17444e12 54%,#102e48b8 100%)}
.title-content{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center;padding:24px 24px 30px;text-align:center}
.title-content .main-logo{width:min(100%,790px);aspect-ratio:1536/880;overflow:hidden;line-height:0;margin:0;text-shadow:none}
.title-logo{display:block;width:100%;height:auto;transform:translateY(-9%);image-rendering:pixelated}
.title-content .intro{margin:6px 0 21px;color:#fff8df;font-size:clamp(13px,1.8vw,18px);font-weight:700;line-height:1.7;text-shadow:0 2px 2px #102e48,0 0 8px #102e48}
.title-actions{position:static;display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,410px)}
.title-actions button{min-width:0;min-height:48px;padding:12px 18px;font-size:15px;font-weight:700;border-radius:6px;border-width:2px;box-shadow:0 4px 0 #102e48}
.title-actions .primary{background:#ffd34f;color:#102e48;border-color:#fff1bf}
.title-actions .primary:hover:not(:disabled){background:#ffe079;border-color:#fff8df}
.title-actions button:not(.primary):not(.text-button){background:#145578;border-color:#96d5e5;color:#fff8df}
.title-actions button:disabled{opacity:1;color:#b3c8ce!important;background:#284b5e!important;border-color:#627f8c!important}
.title-actions .text-button{grid-column:1/-1;min-height:44px;padding:9px 12px;box-shadow:none;color:#fff8df;font-size:12px;text-shadow:0 1px 2px #102e48;border:0;font-weight:400}
.title-actions .text-button:hover{background:#102e485c;text-decoration:underline}
.title-footer{background:#183743;padding:16px 24px;color:#cde4d8}
@media(max-width:1050px){.title-art{min-height:560px}.title-content .main-logo{width:min(100%,720px)}}
@media(max-width:760px){.site-header{gap:8px}.header-actions{gap:5px}.wordmark{letter-spacing:0}.title-art{min-height:500px}.title-content{padding:32px 14px 22px;gap:12px}.title-content .main-logo{width:min(100%,580px)}.title-content .intro{max-width:310px;margin:4px 0 10px;font-size:14px}.title-actions{width:min(100%,340px);gap:10px}.title-actions button{font-size:14px;padding:12px}.title-actions .text-button{font-size:12px}.title-footer{padding:14px 16px}.title-footer span{line-height:1.7}}
@media(max-width:380px){.wordmark{font-size:11px}.header-actions button{font-size:10px;padding:6px}.title-content .intro{font-size:13px}.title-art{min-height:470px}}

.field-controls{flex-wrap:wrap}:root .rest-status{display:block;flex-basis:100%;font-size:12px;color:var(--muted,#bac6af);line-height:1.5;text-align:center;padding:3px 8px}
.enemy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.enemy-card{text-align:left;min-width:0;padding:8px 10px;font-size:12px;line-height:1.5}.enemy-card strong,.enemy-card span,.enemy-card small{display:block;overflow-wrap:anywhere}.enemy-card span{color:#e8eccb;font:12px Consolas,monospace}.enemy-card small{color:#b8cbc8;font-size:10px}.enemy-card.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:#3a5057}.enemy-card:disabled{opacity:.48}.enemy-card.selected:disabled{opacity:.65}
@media(max-width:380px){.enemy-header{flex-wrap:wrap;gap:6px}.enemy-header>div:first-child{flex-basis:100%}.enemy-hp{width:100%}}
/* Game Studio: combat controls stay readable beside the playfield. */
.battle-vitals{display:none}.target-help{font-size:11px;color:#bdd1cf;margin:8px 0 0}.enemy-card.acted{background:#47666a;border-color:#9ebbb2}.enemy-card:focus-visible{outline:3px solid #f7d58d;outline-offset:2px}.outcome-summary{flex-basis:100%;border:1px solid #6f9694;background:#29434b;padding:13px 15px}.outcome-summary strong{font-size:20px;color:#f4d995}.outcome-summary p{margin:6px 0 0;color:#dce7cf}.outcome-summary small{display:block;margin-top:5px;color:#b9d9c8}.outcome-summary.won{border-color:#e0bd73;background:#34494b}.outcome-summary.lost strong{color:#ecae8a}#play-screen[data-mode="battle"] #game{cursor:pointer}#play-screen[data-mode="battle"] .touch-controls{display:none}
@media(max-width:760px){.battle-vitals{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;position:sticky;top:0;z-index:3;margin:10px 0 8px;padding:10px;background:#243e49;border:1px solid #718e89;box-shadow:0 3px 8px #14252c66}.battle-vitals>div{min-width:0}.battle-vitals span{font-size:10px;color:#c8d8ce}.battle-vitals strong{float:right;font:12px Consolas,monospace;color:#fff4c9}.battle-vitals .bar{clear:both;height:5px;margin-top:5px}.battle-vitals.critical .hp i{background:#ed9275}.battle-vitals.critical #battle-hp-text{color:#ffb298}.battle-herbs strong{display:block;float:none;margin-top:3px}.enemy-header{margin-top:5px}.enemy-header h2{font-size:17px}.enemy-hp{display:none}.target-help{font-size:10px;line-height:1.6}.enemy-list{margin-top:8px}.intent{font-size:11px;padding:7px 10px}.battle-panel .outcome-summary p{font-size:12px}.battle-panel .battle-log{font-size:11px;max-height:95px}}
@media(max-width:760px){.battle-panel .enemy-card{padding:6px 8px}.battle-panel .commands button{padding:8px}}

/* Compact combat: retain the entire canvas and make room for every learned skill. */
.commands .area-skill{border-color:#91b9a8}.commands .area-skill span{color:#bcead9}.enemy-card.hardened:not(.selected){border-color:#bba969}
body[data-mode="field"] .site-header,body[data-mode="battle"] .site-header{padding-top:11px;padding-bottom:11px}
body[data-mode="field"] .site-footer,body[data-mode="battle"] .site-footer{display:none}
.battle-panel{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:12px;margin-top:14px}
.battle-tactics,.battle-actions{min-width:0}.enemy-header{margin:0;gap:8px}.enemy-header h2{font-size:16px}.enemy-hp{min-width:112px;font-size:11px}.enemy-list{margin-top:8px;gap:6px}.enemy-card{min-height:60px;padding:6px 8px}.target-help{display:none}.intent{margin:8px 0 0;padding:8px 10px;line-height:1.6}.commands{gap:6px}.commands button{min-height:46px;padding:6px 8px}.commands button span{margin-top:1px}.commands button kbd{padding:1px 3px;font-size:10px}.battle-log{height:52px;min-height:0;max-height:52px;margin-top:8px;padding:5px 9px;line-height:1.5}.battle-result{padding:0;gap:8px}.outcome-summary{padding:10px 12px}.battle-result button{min-height:44px}
#play-screen[data-mode="battle"] .keyboard-note{display:none}
@media(min-width:761px){
  #play-screen[data-mode="battle"]{--battle-art-h:clamp(140px,calc(100dvh - 425px),336px)}
  #play-screen[data-mode="battle"] #game{width:min(100%,calc(var(--battle-art-h) * var(--canvas-ratio)));margin-inline:auto}
  .status-panel{padding:16px 20px}.level-line strong{font-size:50px}.job-name{margin-bottom:13px}.exp-block{margin-top:12px}.run-stats{margin:16px 0;padding-top:8px}.run-stats>div{margin-top:6px}.next-job{min-height:30px;margin-bottom:10px}.menu-buttons{gap:6px}.menu-buttons button{min-height:38px;padding:8px 11px}.save-status{min-height:15px;margin-top:10px}
}
@media(max-width:760px){
  body[data-mode="field"] .site-header,body[data-mode="battle"] .site-header{padding:6px 10px}
  main{padding:0 8px}.game-layout{gap:8px}.header-actions button{min-height:44px}.screen-heading{padding:6px 8px}
  #play-screen[data-mode="battle"] .screen-bottom{display:none}
  .battle-panel{display:block;margin-top:8px}.battle-vitals{position:static;grid-template-columns:1fr 1fr auto;gap:4px 10px;margin:0 0 6px;padding:6px 8px;box-shadow:none}
  .battle-progress{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px}.battle-progress strong{float:none;font:700 12px 'Yu Gothic','Meiryo',sans-serif;white-space:nowrap}.battle-progress span{font-size:10px;text-align:right}.battle-vitals .bar{margin-top:3px}.battle-herbs strong{margin-top:0}
  .enemy-header{flex-wrap:nowrap;gap:8px;align-items:baseline}.enemy-header>div:first-child{display:flex;align-items:baseline;gap:8px;flex-basis:auto;min-width:0}.enemy-header h2{font-size:12px;margin:0;overflow-wrap:anywhere}.enemy-header .label{font-size:9px;letter-spacing:0;white-space:nowrap}
  .enemy-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:5px}.battle-panel .enemy-card{min-height:56px;padding:5px 4px;font-size:10px;line-height:1.45}.enemy-card strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}.enemy-card span{font-size:10px;white-space:nowrap}.enemy-card small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .intent{font-size:10px;margin:6px 0;padding:5px 7px;line-height:1.5}.commands{gap:5px}.battle-panel .commands button{min-height:44px;padding:5px 6px;font-size:11px;line-height:1.35}.commands button span{font-size:9px}.commands button kbd{display:none}.battle-panel .battle-log{height:38px;max-height:38px;font-size:10px;margin-top:6px;padding:3px 7px}
  #play-screen[data-mode="battle"] .status-panel{display:block;border:0;background:transparent;padding:0}
  #play-screen[data-mode="battle"] .status-panel> :not(.menu-buttons){display:none}
  #play-screen[data-mode="battle"] .menu-buttons{display:flex;flex-direction:row;gap:5px}
  #play-screen[data-mode="battle"] .menu-buttons button{flex:1;min-width:44px;min-height:44px;padding:6px 4px;font-size:0;text-align:center}
  #play-screen[data-mode="battle"] .menu-buttons button:after{content:attr(data-mobile);font-size:11px}
  .battle-result{padding:0}.outcome-summary{padding:7px 9px}.outcome-summary strong{font-size:17px}.outcome-summary p{margin:3px 0}.battle-panel .outcome-summary p{font-size:11px}.battle-result button{font-size:12px}
  .status-panel{padding:10px 12px;column-gap:12px}.level-line{margin-top:1px}.level-line strong{font-size:34px}.level-line>span{font-size:15px}.job-name{font-size:12px}.run-stats{margin:7px 0;padding-top:5px;gap:5px 14px;font-size:10px}.run-stats dd{font-size:12px}.next-job{margin-bottom:7px}.save-status{margin-top:6px}.field-controls{margin-top:8px}.touch-controls{margin-top:6px}.touch-controls button{min-height:44px;padding:8px}.keyboard-note{display:none}
  .menu-buttons button{min-height:44px}.modal-header button{min-width:44px;min-height:44px}
}
@media(max-width:760px) and (max-height:680px){
  #play-screen[data-mode="battle"] #game{width:min(100%,calc(clamp(55px,calc(100dvh - 590px),100px) * var(--canvas-ratio)));margin-inline:auto}
  .battle-panel{margin-top:6px}.battle-vitals{padding:4px 7px}.battle-panel .enemy-card{min-height:52px}.intent{margin:4px 0}.game-layout{gap:6px}
}
@media(max-width:760px){
  .level-line{gap:4px;white-space:nowrap}.level-line strong{font-size:32px}.level-line small{font-size:11px}.level-line>span{font-size:14px}
  .status-panel .menu-buttons{display:flex;flex-direction:row;gap:5px}.status-panel .menu-buttons button{flex:1;min-width:44px;min-height:44px;padding:6px 4px;font-size:0;text-align:center}.status-panel .menu-buttons button:after{content:attr(data-mobile);font-size:11px}
  .run-stats{margin:4px 0}.next-job{font-size:10px;margin-bottom:5px}.save-status{font-size:9px;margin-top:4px}
  .status-panel{padding:8px 12px}.touch-controls button{margin:1px}.screen-bottom{padding:5px 9px}:root .field-controls .rest-status{padding:1px 8px}
}
@media(max-width:760px) and (max-height:680px){
  #play-screen[data-mode="field"] #game{width:min(100%,calc(100px * var(--canvas-ratio)));margin-inline:auto}
  #play-screen[data-mode="field"] .touch-controls{display:flex;justify-content:center;gap:4px}
  #play-screen[data-mode="field"] .touch-controls>div{display:contents}
}
/* Keep the battle artwork legible on short phones without reducing touch targets. */
.combat-menu{display:none}#battle-log{cursor:pointer}
@media(max-width:760px){
  body[data-mode="battle"] .site-header{padding:2px 10px;gap:8px}
  body[data-mode="battle"] .header-actions #help{display:none}
  body[data-mode="battle"] .combat-menu{display:block;min-width:44px;min-height:44px}
  #play-screen[data-mode="battle"] .screen-heading{padding:3px 8px}
  #play-screen[data-mode="battle"] #game{width:100%;margin-inline:0}
  #play-screen[data-mode="battle"] .status-panel{display:none}
  #play-screen[data-mode="battle"] .battle-vitals{gap:2px 8px;padding:4px 6px}
  #play-screen[data-mode="battle"] .battle-progress{line-height:1.25}
  #play-screen[data-mode="battle"] .battle-vitals>div:not(.battle-progress){display:grid;grid-template-columns:auto 1fr;column-gap:4px;align-items:baseline}
  #play-screen[data-mode="battle"] .battle-vitals strong{float:none;justify-self:end}
  #play-screen[data-mode="battle"] .battle-vitals .bar{grid-column:1/-1;margin-top:2px;width:100%}
  #play-screen[data-mode="battle"] .battle-herbs strong{margin:0}
  #play-screen[data-mode="battle"] .battle-log{height:22px;max-height:22px;margin-top:4px;padding:2px 7px;line-height:16px}
  #play-screen[data-mode="battle"] .battle-log p{margin:0}
}

/* Play controls: stable shortcuts, contextual commands, and a shared compact HUD. */
.site-footer{display:none}.scene-indicators{display:flex;align-items:center;gap:14px}#battle-turn{color:var(--gold);font-weight:700;font-size:11px}
.command-tools{display:flex;gap:6px;margin-bottom:6px}.command-switch{display:grid;grid-template-columns:1fr 1fr;flex:1;gap:4px}.command-tools button{min-height:38px;padding:6px 9px;font-size:12px}.command-switch button[aria-pressed="true"]{background:#d9bd77;color:#263b39;border-color:#f3d994;font-weight:700}.command-tools #escape-button{color:#c8d3cf;background:#233944}.commands[data-tab="basic"]{grid-template-columns:1fr 1fr}.commands [data-action="attack"]{background:#dac17f;color:#24373a;border-color:#f4dc9e;font-weight:700}.commands [data-action="attack"] span,.commands [data-action="attack"] kbd{color:#32454a}.commands [data-action="guard"]{border-color:#91b9c2}.command-hint{height:34px;overflow:auto;margin:6px 0;color:#c5d5d0;font-size:11px;line-height:1.5}.commands button:focus-visible{outline-offset:1px}.keyboard-note{line-height:1.65}#play-screen[data-mode="battle"] .keyboard-note{display:block;margin:7px 0 0;font-size:10px}.commands button kbd{float:right}
.controls-guide{display:grid;gap:7px}.controls-guide>div{display:grid;grid-template-columns:minmax(120px,.45fr) 1fr;align-items:center;gap:12px;padding:8px 10px;border-bottom:1px solid #47606a}.controls-guide kbd{text-align:center;padding:5px 6px;color:#f5d991;font-size:12px}.controls-guide span{font-size:13px}.help-details{margin-top:22px}.help-details summary{cursor:pointer;color:var(--gold);padding:10px 0}.settings-actions button{min-height:44px}dialog{max-height:calc(100dvh - 24px)}.modal-header{padding:10px 16px}.modal-header button{min-width:44px;min-height:44px}.modal-header h2{font-size:16px}
@media(min-width:761px){
 #play-screen[data-mode="battle"]{--battle-art-h:clamp(140px,calc(100dvh - 455px),336px)}
 #play-screen[data-mode="battle"][data-command-tab="skills"]{--battle-art-h:clamp(140px,calc(100dvh - 505px),336px)}
 #play-screen[data-mode="field"] #game{width:min(100%,calc(clamp(160px,calc(100dvh - 245px),448px) * 384 / 224));margin-inline:auto}
}
@media(max-width:760px){
 .site-header{padding:3px 10px;min-height:48px}.header-actions button{min-height:44px}body[data-mode="field"] .site-header{padding:2px 10px}body[data-mode="field"] .header-actions #help{display:none}body[data-mode="field"] .combat-menu{display:block}
 .battle-vitals{position:static;grid-template-columns:1fr 1fr auto;gap:2px 8px;padding:4px 6px;margin:6px 0;box-shadow:none}.battle-vitals>div:not(.battle-progress){display:grid;grid-template-columns:auto 1fr;column-gap:4px;align-items:baseline}.battle-vitals strong{float:none;justify-self:end}.battle-vitals .bar{grid-column:1/-1;margin-top:2px;width:100%}.battle-herbs strong{margin:0}.battle-progress{grid-column:1/-1}.battle-vitals .battle-progress{display:flex}
 #play-screen[data-mode="field"] #game{width:100%;margin-inline:0}#play-screen[data-mode="field"] .screen-heading{padding:3px 8px}#play-screen[data-mode="field"] .screen-bottom{min-height:0;padding:4px 7px}
 #play-screen[data-mode="field"] .status-panel{display:block;border:0;background:transparent;padding:0}#play-screen[data-mode="field"] .status-panel>:not(.menu-buttons){display:none}#play-screen[data-mode="field"] .menu-buttons{margin-top:0}
 #play-screen[data-mode="field"] .field-controls{margin:5px 0 0;gap:5px}#play-screen[data-mode="field"] .field-controls button{flex:1;min-height:44px;padding:6px;font-size:11px}#play-screen[data-mode="field"] .rest-status{font-size:10px;line-height:1.4;padding:0}
 #play-screen[data-mode="field"] .touch-controls{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:44px 44px;gap:4px;justify-content:center;margin-top:6px}#play-screen[data-mode="field"] .touch-controls>button{grid-column:2;grid-row:1}#play-screen[data-mode="field"] .touch-controls>div{display:contents}#play-screen[data-mode="field"] .touch-controls button{min-width:44px;min-height:44px;width:52px;margin:0;padding:4px;font-size:17px}#play-screen[data-mode="field"] .touch-controls [data-dir="left"]{grid-row:2;grid-column:1}#play-screen[data-mode="field"] .touch-controls [data-dir="down"]{grid-row:2;grid-column:2}#play-screen[data-mode="field"] .touch-controls [data-dir="right"]{grid-row:2;grid-column:3}
 #play-screen[data-mode="battle"] .keyboard-note{display:none}.command-tools button{min-height:44px;padding:5px 7px;font-size:11px}.command-tools kbd{display:none}.command-hint{height:30px;font-size:10px;margin:5px 0;line-height:15px}.battle-panel .commands button kbd{display:none}.commands[data-tab="basic"] button{min-height:48px}.command-tools{margin-bottom:5px}.battle-panel .enemy-card{min-height:52px}
 .controls-guide>div{grid-template-columns:1fr;padding:6px 0;gap:4px}.controls-guide kbd{text-align:left;border:0;padding:0}.controls-guide span{font-size:12px}#modal-body{padding:12px}.settings-actions{gap:6px}.settings-actions button{flex:1 1 42%;font-size:12px}dialog{width:calc(100% - 16px)}
}

/* Rewards stay inside the existing menus and transient overlay. */
.player-title{font-size:10px;color:#cde3b3}.milestone-hint{font-size:10px;color:#d5dcbe;margin:6px 0}.growth-tabs{display:flex;gap:8px;flex-wrap:wrap}.growth-tabs button,.growth-back{min-height:42px}.upgrade-card,.gear-card{border:1px solid #597784;background:#19303e;padding:12px;margin:10px 0}.upgrade-card h3,.gear-card h3{margin:0!important}.upgrade-card button,.gear-card button{margin-right:7px;min-height:42px}.gear-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.loot-summary,.reward-summary{color:#c3ed9e;font-size:11px;max-width:100%}.outcome-summary small{display:block}.announcement.level-celebration{background:linear-gradient(130deg,#183753ed,#434267ed);border:2px solid #ffe896;color:#fff1a5;box-shadow:0 0 20px #ffe99d5c;animation:reward-grow .4s ease-out}.announcement.level-celebration>div{font-size:clamp(22px,4vw,38px);font-weight:900;text-shadow:2px 2px #665229}.announcement.level-celebration:before,.announcement.level-celebration:after{content:'✦';position:absolute;color:#fff1bc;font-size:26px;top:8px}.announcement.level-celebration:before{left:10px}.announcement.level-celebration:after{right:10px}.announcement.jackpot{border:2px solid #fff0a0;background:#234063eb;color:#fff4bd}.announcement.wipe-celebration{border-color:#c5f2ba;color:#f2ffd9}.announcement.level-celebration small{display:block;font-size:12px;color:#fff8e3}.screen-heading .scene-indicators{white-space:nowrap}.growth-back{margin-bottom:8px}@keyframes reward-grow{from{transform:translateY(-50%) scale(.75);opacity:.2}to{transform:translateY(-50%) scale(1);opacity:1}}
@media(max-width:760px){.player-title,.milestone-hint{display:none}.gear-grid{grid-template-columns:1fr}.announcement.level-celebration{width:auto;padding:15px 10px}.announcement.level-celebration small{font-size:10px}.announcement.level-celebration:before,.announcement.level-celebration:after{font-size:15px}.growth-tabs{gap:5px}.growth-tabs button{padding:8px;font-size:11px}}
body[data-reduced="true"] .announcement{animation:none!important}
/* Chance rewards stay in one modal; normal battle controls keep their height. */
#wager-button{border-color:#b9a8ec;background:#3a3656;color:#eee1ff;white-space:nowrap}
#wager-button small{font-size:10px;color:#d2c4e8}#wager-button.armed{border-color:#f3d58d;background:#665237;color:#fff0bb}
.wager-summary{color:#f4d798;font-size:11px}
#play-screen[data-fever="true"] .screen-frame{border-color:#eecb72;box-shadow:0 3px 0 #443923,0 0 15px #eac67c40}
#play-screen[data-fever="true"] #clock{color:#fff0a5;font-weight:700}
.chance-modal{width:min(540px,calc(100% - 20px));overflow-x:hidden;border:2px solid #e7bf70;background:radial-gradient(ellipse at 50% 42%,#3e3860,#172d40 75%);box-shadow:0 0 40px #e5c67038,0 18px 80px #000a}
.chance-modal .modal-header{background:#192e41;border-bottom-color:#cda86a}
.chance-modal #modal-body{padding:8px 20px 20px}.roulette-board{text-align:center}
.roulette-eyebrow{margin:0;color:#d9c99b;letter-spacing:.08em;font-size:11px}
.chance-modal #modal-body .roulette-title{margin:5px 0 8px;font-size:clamp(22px,4vw,32px);color:#fff0b0;text-shadow:0 2px #81593b}
.roulette-stage{--wheel-size:min(280px,54vh,65vw);width:var(--wheel-size);height:var(--wheel-size);position:relative;margin:12px auto 14px}
.roulette-wheel{width:100%;height:100%;border-radius:50%;border:8px solid #edc878;background:repeating-conic-gradient(from -22.5deg,#efbf55 0deg 45deg,#203e59 45deg 90deg,#426076 90deg 135deg,#254b57 135deg 180deg);box-shadow:0 0 0 4px #7d5f4b,inset 0 0 18px #0b2437;position:relative;will-change:transform}
.roulette-symbol{position:absolute;left:calc(50% - 15px);top:calc(50% - 16px);width:30px;height:32px;line-height:32px;color:#fff7d0;font-size:27px;text-shadow:0 2px #536575;transform:rotate(calc(var(--slot)*45deg)) translateY(calc(var(--wheel-size)*-.32)) rotate(calc(var(--slot)*-45deg))}
.roulette-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#f2d184;border:4px solid #69496a;box-shadow:0 0 0 3px #fcf0b8;width:72px;height:72px;display:grid;place-items:center;color:#273b4e;font-size:13px;font-weight:800}
.roulette-pointer{position:absolute;left:calc(50% - 18px);top:-14px;width:36px;color:#fff3b2;font-size:35px;line-height:35px;text-shadow:0 3px #8d6042;z-index:1}
.chance-modal #modal-body .roulette-detail{margin:6px auto 12px;font-size:12px;color:#dce9e8;max-width:34em;min-height:42px;line-height:1.6}
.roulette-action{min-height:44px;min-width:210px;border-color:#f8da89;background:#e7c679;color:#243644;font-weight:700}.roulette-action kbd{margin-left:12px;color:#334a51}
.roulette-board[data-result="won"] .roulette-wheel{box-shadow:0 0 0 4px #a98049,0 0 28px #f7d47199,inset 0 0 12px #fff1a088}
.roulette-board[data-result="won"] .roulette-title{animation:chance-reveal .45s ease-out}.chance-current{color:#ffe49c;font-weight:700}
@keyframes chance-reveal{from{transform:scale(.86);opacity:.5}to{transform:scale(1);opacity:1}}
.roulette-board[data-phase="intro"]{position:relative}
.roulette-board[data-phase="intro"] .roulette-title{font-size:clamp(23px,3.7vw,38px)!important;color:#fff4a2!important;text-shadow:0 3px #861f35,0 0 18px #ffb749;animation:roulette-call .5s cubic-bezier(.2,.9,.2,1) both}
.roulette-intro{position:relative;isolation:isolate;overflow:hidden;width:var(--intro-size,280px);max-width:100%;height:var(--intro-size,280px);margin:12px auto 14px;border-radius:50%;border:4px solid #f8dc88;background:radial-gradient(circle,#f49c55,#9e304b 66%,#312b51);box-shadow:0 0 18px #e8ad4670,inset 0 0 18px #ffdc8170;display:flex;flex-direction:column;align-items:center;justify-content:center}
.roulette-intro:before{content:'';position:absolute;inset:-25%;z-index:-1;background:repeating-conic-gradient(#ffdd8955 0deg 13deg,transparent 13deg 30deg);animation:roulette-rays 2s linear both}
.roulette-intro-star{font-size:120px;line-height:1.15;color:#fff4a0;text-shadow:0 5px #9b5635,0 0 20px #ffdd80;animation:roulette-star .7s ease-out both}
.roulette-intro-call{font-size:26px;color:#fff6d4;text-shadow:0 3px #802d42;animation:roulette-call .55s .18s both}
.roulette-board[data-phase="intro"] .roulette-action:disabled,.roulette-board[data-phase="spinning"] .roulette-action:disabled{opacity:1;background:#503b50;color:#f4ddaa;border-color:#aa836c;box-shadow:none}
.roulette-board[data-phase="ready"] .roulette-action{box-shadow:0 0 0 3px #65486a,0 0 16px #ffd07870}
.roulette-board[data-phase="spinning"] .roulette-hub{background:#ffebb7;color:#8b3446;box-shadow:0 0 0 3px #fcf0b8,0 0 16px #ffc469}
@keyframes roulette-rays{from{transform:rotate(-25deg)}to{transform:rotate(55deg)}}
@keyframes roulette-call{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes roulette-star{from{transform:rotate(-28deg) scale(.4)}70%{transform:rotate(8deg) scale(1.12)}to{transform:rotate(0) scale(1)}}
@media(max-width:760px){.roulette-intro{--intro-size:min(230px,48dvh,66vw)}.roulette-intro-star{font-size:96px}.roulette-intro-call{font-size:22px}}
body[data-reduced="true"] .roulette-intro:before,body[data-reduced="true"] .roulette-intro-star,body[data-reduced="true"] .roulette-intro-call,body[data-reduced="true"] .roulette-board[data-phase="intro"] .roulette-title{animation:none}
body[data-reduced="true"] .roulette-board .roulette-title{animation:none}
@media(max-width:760px){#wager-button{padding:5px 6px;font-size:10px}#wager-button small{font-size:9px}.command-tools{gap:4px}.command-tools .command-switch{gap:3px}.command-tools .command-switch button{padding-inline:5px;font-size:10px}.chance-modal #modal-body{padding:6px 12px 14px}.roulette-stage{--wheel-size:min(230px,48dvh,66vw)}.roulette-hub{width:60px;height:60px;font-size:11px}.chance-modal #modal-body .roulette-detail{font-size:11px;min-height:36px}}
@media(min-width:761px){.status-panel{padding:12px 20px}.job-name{margin-bottom:7px}.run-stats{margin:10px 0}.next-job{min-height:0;margin-bottom:6px}.save-status{margin-top:6px}}

#toast{pointer-events:none;max-height:110px;overflow:hidden}
/* Keep title controls and its footer inside short desktop and phone viewports. */
.title-art{height:min(610px,calc(100dvh - 150px));min-height:0}
.title-content{padding:12px 18px 20px}
.title-content .main-logo{width:min(100%,790px,calc((100dvh - 350px)*1.745))}
#wager-button.armed:disabled{opacity:1;color:#fff0bb;border-color:#f3d58d}
@media(max-width:760px){.title-art{height:min(560px,calc(100dvh - 174px))}.title-content{padding:12px 14px 18px;gap:8px}.title-content .main-logo{width:min(100%,580px,calc((100dvh - 350px)*1.745))}.title-footer{padding:10px 14px}.title-actions{gap:8px}}
.announcement{z-index:5}.announcement.level-celebration{animation:reward-scale .4s ease-out}@keyframes reward-scale{from{transform:translateY(-50%) scale(.8)}to{transform:translateY(-50%) scale(1)}}

/* Canvas owns reward graphics; the DOM keeps their accessible announcement. */
.announcement.level-celebration,.announcement.jackpot,.announcement.wipe-celebration{clip-path:inset(100%)}

/* Adventure tools stay in the menu so the field and combat HUD retain their size. */
.adventure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.menu-entry{text-align:left;min-height:84px;padding:13px;border-color:#799ba0;background:#254954}.menu-entry strong,.menu-entry small{display:block}.menu-entry strong{color:var(--gold);font-size:16px}.menu-entry small{font-size:11px;line-height:1.6;color:var(--muted);margin-top:7px}.adventure-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.adventure-tools button,.menu-back,.quest-tabs button{min-height:44px}.menu-back{margin-bottom:10px}.quest-tabs{display:flex;gap:8px;margin:14px 0}.quest-tabs button[aria-pressed="true"]{border-color:var(--gold);color:var(--gold);background:#375159}.quest-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quest-card{background:#19303e;border:1px solid #597784;padding:12px}.quest-card h3{margin:7px 0 12px!important;font-size:14px!important}.quest-card>small{color:var(--muted);font-size:11px}.quest-card.complete{border-color:#8eae87}.quest-card progress{appearance:none;display:block;width:100%;height:8px;border:1px solid #6a8687;background:#142d39}.quest-card progress::-webkit-progress-bar{background:#142d39}.quest-card progress::-webkit-progress-value{background:#e8cf82}.quest-card progress::-moz-progress-bar{background:#e8cf82}.quest-progress{font-family:Consolas,monospace;font-size:12px;margin:7px 0!important}.quest-reward{font-size:11px;color:#c3ed9e;margin:4px 0 0!important}
@media(max-width:760px){.adventure-grid{grid-template-columns:1fr;gap:7px;margin:10px 0}.menu-entry{min-height:66px;padding:9px 12px}.menu-entry strong{font-size:14px}.menu-entry small{margin-top:3px}.adventure-tools{gap:6px;margin-top:10px}.adventure-tools button{font-size:12px;padding:8px}.quest-list{grid-template-columns:1fr}.quest-tabs button{flex:1;padding:8px;font-size:12px}.menu-back{font-size:12px;padding:8px}.adventure-summary{font-size:12px}}

/* The adventurer's folio: pixel emblems, metal fittings, and a parchment page. */
:root{--folio-navy:#162c3c;--folio-green:#1d3936;--folio-gold:#cba862;--folio-paper:#dfd0a5;--folio-ink:#302d24;--folio-line:#ad9665}
.rpg-modal{width:min(1000px,calc(100% - 24px));max-height:calc(100dvh - 44px);border:3px solid var(--folio-gold);border-radius:0;background:var(--folio-navy);box-shadow:0 0 0 2px #17231e,0 0 0 4px #735c39,0 14px 70px #000a;overflow:hidden}
.rpg-modal .modal-header{padding:12px 18px;background:var(--folio-green);border-bottom:2px solid #876c43;color:#f2ddb0}
.rpg-modal .modal-header h2{font-family:'Yu Mincho','YuMincho',serif;letter-spacing:.08em;font-size:21px}
.rpg-modal .modal-header button{background:#152c2e;border-color:#9c824d;color:#ecd39c;line-height:1.2}
.rpg-modal #modal-body{padding:12px 14px 9px}.rpg-shell{min-width:0}.rpg-adventurer{display:grid;grid-template-columns:76px 175px minmax(0,1fr) 173px;gap:12px;align-items:center;min-height:88px;padding:0 4px 9px;border-bottom:1px solid #6b674e}
.hero-portrait{width:74px;height:80px;object-fit:contain;image-rendering:pixelated;background:linear-gradient(#14322f 68%,#385441 68%);border:2px solid #826d43;box-shadow:inset 0 0 0 2px #0b2425}
.rpg-identity{display:flex;flex-direction:column;gap:7px}.rpg-identity strong{font-size:17px;color:#f3dfa7}.rpg-identity small{font-size:10px;color:#a6b9a5}.rpg-identity span{font:12px Consolas,'Yu Gothic',monospace;color:#d1e7d2;white-space:nowrap}
.rpg-equipped{min-width:0;display:flex;flex-direction:column;gap:10px;font-size:11px;color:#d4dec8}.rpg-equipped>div{display:flex;align-items:center;gap:7px}.rpg-equipped span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pixel-icon{width:24px;height:24px;image-rendering:pixelated;flex:none}.pixel-icon.large{width:42px;height:42px}
.rpg-resources{align-self:center;display:flex;flex-direction:column;gap:4px;text-align:right;color:#e9d08e;font-size:12px}.rpg-resources strong{font:700 17px Consolas,'Yu Gothic',monospace}.rpg-resources .menu-back{min-height:29px;margin:3px 0 0;padding:4px 7px;font-size:10px;background:#243b36;border-color:#8d7950;color:#dccea6}
.rpg-layout{display:grid;grid-template-columns:106px 224px minmax(0,1fr);gap:10px;height:min(438px,calc(100dvh - 245px));min-height:230px;padding-top:12px}
.rpg-tabs{display:flex;flex-direction:column;gap:7px}.rpg-tabs button{display:flex;align-items:center;gap:7px;min-height:50px;padding:10px 8px;text-align:left;border:1px solid #6f735c;border-right:3px solid #9d8754;border-radius:0;background:#1c3a38;color:#b9c6b1;font-size:12px;box-shadow:inset 1px 1px #446055,0 2px #0a2325}
.rpg-tabs button[aria-pressed="true"]{background:#385044;color:#ffe4a1;border-color:#ceb174;box-shadow:inset 3px 0 #ffe4a1,inset 1px 1px #67775a,0 2px #0a2325}
.rpg-list{overflow-y:auto;overflow-x:hidden;min-width:0;padding:4px;background:#10272e;border:2px solid #5b6352;box-shadow:inset 0 0 0 1px #061b24;scrollbar-color:#a38a53 #122a2f}
.rpg-list button{display:flex;align-items:center;gap:9px;width:100%;min-height:49px;margin:0 0 4px;padding:7px 8px;text-align:left;background:#203c3f;border:1px solid #49635c;border-radius:0;box-shadow:none;color:#d8dfc9}
.rpg-list button>span{min-width:0}.rpg-list strong,.rpg-list small{display:block}.rpg-list strong{font-size:12px;font-weight:600;white-space:nowrap}.rpg-list small{font-size:10px;color:#a6b9aa;line-height:1.5;margin-top:3px}.rpg-list button[aria-pressed="true"]{background:#425549;border-color:#d5b777;color:#fff0be;box-shadow:inset 3px 0 #dfc07d}.rpg-list button[aria-pressed="true"] small{color:#d2d6b3}
.rpg-detail{min-width:0;overflow:auto;overscroll-behavior:contain;padding:14px 17px 16px;background:repeating-linear-gradient(0deg,#fff0 0px,#fff0 3px,#9a764405 3px,#9a764405 4px),var(--folio-paper);color:var(--folio-ink);border:2px solid #94794e;box-shadow:inset 0 0 0 2px #f4e3ba;scrollbar-color:#9c8354 #d5c497}
.rpg-modal #modal-body .rpg-detail p{font-size:12px;line-height:1.65;margin:9px 0}.rpg-detail-heading{display:flex;align-items:center;gap:10px;border-bottom:1px solid #b39b6e;padding-bottom:10px}.rpg-detail-heading small{font-size:10px;color:#746345}.rpg-modal #modal-body .rpg-detail-heading h3{font-family:'Yu Mincho','YuMincho',serif;color:#3e3525;font-size:20px;margin:3px 0 0;line-height:1.3}.rpg-detail h4{font-size:12px;color:#57472c;margin:13px 0 6px;border-bottom:1px solid #b49b6a;padding-bottom:5px}
.rpg-detail button{min-height:37px;padding:8px 11px;font-size:12px;border:2px solid #8b7347;border-top-color:#bca475;background:#25453e;color:#f0dfae;border-radius:0;box-shadow:inset 1px 1px #4b6651,0 2px #70613e}
.rpg-detail button:hover:not(:disabled){background:#37584a;border-color:#826639;color:#fff0c0}.rpg-detail button:disabled{opacity:.65;box-shadow:none;background:#b4ad8c;color:#524d3c;border-color:#9d9676;cursor:default}.rpg-detail button[aria-pressed="true"]{opacity:1;background:#645b38;color:#fff0b2;border-color:#8f763f}
.rpg-modal button:focus-visible{outline:3px solid #fff6bd;outline-offset:2px}.rpg-detail button:focus-visible{outline-color:#146782;outline-offset:2px}
.rpg-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.rpg-rule{color:#6a5c42}.rpg-reset{border-top:1px solid #b39b6e;margin-top:23px;padding-top:9px}.rpg-reset p{color:#6a5c42}.rpg-reset button{background:#526055}
.rpg-comparison{width:100%;border-collapse:collapse;font-size:12px;margin:12px 0;text-align:right;font-family:Consolas,'Yu Gothic',monospace}.rpg-comparison th,.rpg-comparison td{padding:6px 5px;border-bottom:1px solid #bda97a;font-weight:400}.rpg-comparison th:first-child{text-align:left;font-family:'Yu Gothic',sans-serif}.rpg-comparison thead{font-size:10px;color:#67573b;background:#c7b88e}.rpg-comparison .increase{color:#216244;font-weight:700}.rpg-comparison .decrease{color:#903d31;font-weight:700}.rpg-comparison .same{color:#817455}
.rpg-alchemy>button,.rpg-branch-options>button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;margin-top:6px;padding:7px 9px}.rpg-alchemy strong,.rpg-alchemy small,.rpg-branch-options strong,.rpg-branch-options small{display:block}.rpg-alchemy strong,.rpg-branch-options strong{font-size:12px}.rpg-alchemy small,.rpg-branch-options small{font-size:10px;line-height:1.6;margin-top:3px}.rpg-branch-options>button{min-height:80px}.rpg-modal #modal-body .rpg-skill-costs{font:11px/1.8 Consolas,'Yu Gothic',monospace;color:#65593f}.rpg-job-skills{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.rpg-modal #modal-body .rpg-job-skills p{font-size:10px;margin:2px 0}.rpg-cosmetics{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.rpg-modal #modal-body .rpg-footer{font-size:10px;color:#c6c9ad;margin:8px 0 0;line-height:1.5;min-height:15px}.rpg-empty{padding:8px;color:#a6b9aa;line-height:1.7}
/* Adventure records share the metal frame and parchment pages of the build folio. */
.folio-summary{color:#c1ceba;font-size:12px;line-height:1.7;padding-right:10px}.folio-adventure-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;height:min(438px,calc(100dvh - 245px));min-height:230px;padding-top:12px}.folio-adventure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(75px,1fr);gap:8px;overflow:auto;align-content:start;scrollbar-color:#a38a53 #122a2f;padding:2px 4px 3px 1px}.folio-menu-entry{display:flex;align-items:center;gap:10px;min-height:75px;padding:9px 10px;text-align:left;background:#203c3f;border:1px solid #728063;border-right:3px solid #aa8d56;border-radius:0;box-shadow:inset 1px 1px #4a5f51,0 2px #0b2326;color:#efd9a4}.folio-menu-entry>span{min-width:0}.folio-menu-entry strong,.folio-menu-entry small{display:block}.folio-menu-entry strong{font-family:'Yu Mincho','YuMincho',serif;font-size:16px;line-height:1.4}.folio-menu-entry small{font-size:10px;color:#b7c9b1;line-height:1.6;margin-top:4px}.folio-menu-entry:hover:not(:disabled){background:#345247;border-color:#d3b579;color:#fff0be}.folio-menu-entry:disabled{opacity:.48;background:#1a3034;color:#9fb29f;box-shadow:none}.folio-menu-entry .pixel-icon.large{width:32px;height:32px}.folio-records{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:12px;margin:17px 0 22px;padding-bottom:16px;border-bottom:1px solid #b59e70}.folio-records dt{color:#655638}.folio-records dd{margin:0;font-family:Consolas,'Yu Gothic',monospace;font-weight:700;color:#30463a}.folio-adventure-detail .folio-return{width:100%;margin-top:15px}.rpg-modal #modal-body .folio-battle-note{padding:10px;border:1px solid #ad9871;background:#d5c499;color:#725638;font-size:11px}.folio-quest-tabs{display:flex;gap:8px;padding-top:10px}.folio-quest-tabs button{min-height:32px;min-width:130px;background:#203c3f;border:1px solid #758466;border-bottom:3px solid #9e854e;color:#c5d0ba;border-radius:0;font-size:11px;padding:6px 12px}.folio-quest-tabs button[aria-pressed="true"]{background:#495e49;color:#ffecb1;border-color:#d6b574}.folio-quest-layout{height:min(396px,calc(100dvh - 287px))}.folio-quest-layout .rpg-list strong{white-space:normal;font-size:11px;line-height:1.45}.folio-quest-layout .rpg-list button{min-height:62px}.folio-quest-page progress{appearance:none;display:block;width:100%;height:13px;border:2px solid #8e7749;background:#c6b58c;box-shadow:0 1px #f2e1bb}.folio-quest-page progress::-webkit-progress-bar{background:#c6b58c}.folio-quest-page progress::-webkit-progress-value{background:linear-gradient(#77a874 50%,#416a49 50%)}.folio-quest-page progress::-moz-progress-bar{background:#577e54}.folio-quest-progress{display:flex;align-items:baseline;gap:4px;margin:20px 0 8px;font-family:Consolas,'Yu Gothic',monospace;color:#5a5139}.folio-quest-progress strong{font-size:37px;color:#3a5b45}.folio-quest-progress span{font-size:14px}.folio-quest-reward,.folio-medal{display:flex;gap:12px;align-items:center;border:1px solid #b19861;background:#eadbb3;padding:11px;box-shadow:inset 0 0 0 2px #f4e6c8}.rpg-modal #modal-body .folio-quest-reward p{margin:0;font-size:13px;color:#4e442d}.folio-medal{margin-top:20px;font-size:11px;line-height:1.7;color:#5b4c31}.folio-specimen{float:right;width:170px;min-height:145px;margin:0 0 10px 16px;border:1px solid #b39d72;background:radial-gradient(ellipse at 50% 65%,#93ae7799,#d4c59b 70%);box-shadow:inset 0 0 0 2px #ede0b8;display:grid;place-items:center}.folio-slime-art{width:168px;height:119px;image-rendering:pixelated}.folio-unknown-art{font:700 88px 'Yu Mincho','YuMincho',serif;color:#a49266;text-shadow:1px 1px #fff4d2}.folio-book-page .rpg-detail-heading{min-height:60px}.folio-book-page h4{clear:both}.folio-cosmetic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.rpg-detail .folio-cosmetic-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 5px;min-width:0;min-height:157px;text-align:center;background:#e4d6b0;color:#403b2a;border-color:#a48d59;box-shadow:inset 0 0 0 1px #f8edcf,0 2px #aa9263}.rpg-detail .folio-cosmetic-card:hover:not(:disabled){background:#f0e2bd;color:#273e34}.rpg-detail .folio-cosmetic-card:disabled{opacity:.85;background:#d5c7a5;color:#655e4a;border-color:#ad9b72}.rpg-detail .folio-cosmetic-card[aria-pressed="true"]{opacity:1;background:#365445;border-color:#93743d;color:#ffe8af;box-shadow:inset 0 0 0 2px #c6a65f,0 2px #806a43}.folio-cosmetic-preview{width:65px;height:69px;flex:none}.folio-cosmetic-label strong,.folio-cosmetic-label small{display:block}.folio-cosmetic-label strong{font-size:11px;line-height:1.5}.folio-cosmetic-label small{font-size:9px;line-height:1.5;margin-top:4px;color:inherit}.folio-layout .rpg-empty{font-size:11px}
@media(max-width:760px){.folio-adventurer .folio-summary{display:none}.folio-adventure-layout{grid-template-columns:1fr;height:calc(100dvh - 226px);gap:8px}.folio-adventure-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(77px,auto)}.folio-adventure-detail{display:none}.folio-menu-entry{min-height:77px;gap:6px;padding:7px}.folio-menu-entry strong{font-size:12px}.folio-menu-entry small{font-size:9px}.folio-menu-entry .pixel-icon.large{width:24px;height:24px}.folio-quest-layout{height:calc(100dvh - 267px)}.folio-quest-tabs{gap:5px;padding-top:8px}.folio-quest-tabs button{min-width:0;flex:1;padding:6px}.folio-layout .rpg-tabs button{min-width:0}.folio-quest-layout .rpg-list strong{font-size:10px}.folio-quest-layout .rpg-list button{min-height:64px}.folio-specimen{float:none;width:100%;min-height:125px;margin:0 0 12px}.folio-book-page .rpg-detail-heading{min-height:0}.folio-quest-progress strong{font-size:28px}.folio-quest-progress span{font-size:11px}.folio-cosmetic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.rpg-detail .folio-cosmetic-card{padding:6px 4px;min-height:155px}.folio-cosmetic-label strong{font-size:10px}.folio-cosmetic-label small{font-size:8px}.folio-medal,.folio-quest-reward{gap:7px;padding:8px}.rpg-modal #modal-body .folio-quest-reward p{font-size:11px}}
.first-kill-summary{color:#ffe29c;font-size:11px}.collection-medal{display:block;border-top:1px solid #73806a;padding-top:8px;margin-top:10px;color:#efdaa0;font-size:10px}
/* A slow RGB glow marks the timed fever without flashing the playfield. */
#play-screen[data-fever="true"] .screen-frame{animation:fever-rgb 9s linear infinite;border-color:#77d8ef;box-shadow:0 3px #25445b,0 0 0 1px #9ff0fc,0 0 15px #39cfff66}
#play-screen[data-fever="true"] .screen-frame::after{content:"";position:absolute;inset:-3px;z-index:3;padding:3px;pointer-events:none;background:linear-gradient(110deg,#50e9ff,#b178ff,#ff5eaa,#ffd86b,#71f8ae,#50e9ff);background-size:300% 300%;animation:fever-spectrum 8s linear infinite;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor}
@keyframes fever-spectrum{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
#play-screen[data-fever="true"] #clock{display:inline-block;padding:2px 8px;background:#102631;border:1px solid #cbdc91;color:#fff0b6;font:700 14px Consolas,'Yu Gothic',monospace;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 5px #85cabe30}
@keyframes fever-rgb{0%,100%{border-color:#73daed;box-shadow:0 3px #22465c,0 0 0 1px #9becfc,0 0 17px #39cfff66}25%{border-color:#c692f2;box-shadow:0 3px #453261,0 0 0 1px #ddafff,0 0 17px #9c51f366}50%{border-color:#f3ab82;box-shadow:0 3px #5e4236,0 0 0 1px #ffe0a1,0 0 17px #ff9b5266}75%{border-color:#8cdda2;box-shadow:0 3px #294f39,0 0 0 1px #c7f3ac,0 0 17px #53e68466}}
body[data-reduced="true"] #play-screen[data-fever="true"] .screen-frame{animation:none;border-color:#83d8e4;box-shadow:0 3px #25445b,0 0 0 1px #bce4f2,0 0 12px #7ecad34d}
body[data-reduced="true"] #play-screen[data-fever="true"] .screen-frame::after{animation:none}
@media(prefers-reduced-motion:reduce){#play-screen[data-fever="true"] .screen-frame,#play-screen[data-fever="true"] .screen-frame::after{animation:none}}
@media(max-width:760px){.rpg-modal{width:calc(100% - 16px);max-height:calc(100dvh - 22px)}.rpg-modal .modal-header{padding:9px 12px}.rpg-modal .modal-header h2{font-size:17px}.rpg-modal #modal-body{padding:8px}.rpg-adventurer{grid-template-columns:52px minmax(0,1fr) 125px;gap:7px;min-height:68px;padding-bottom:8px}.hero-portrait{width:50px;height:60px}.rpg-identity{gap:4px}.rpg-identity strong{font-size:13px}.rpg-identity small{font-size:9px}.rpg-identity span{font-size:10px}.rpg-equipped{display:none}.rpg-resources{font-size:10px}.rpg-resources strong{font-size:14px}.rpg-layout{grid-template-columns:120px minmax(0,1fr);grid-template-rows:42px minmax(0,1fr);height:calc(100dvh - 227px);min-height:220px;gap:7px;padding-top:8px}.rpg-tabs{grid-column:1 / -1;flex-direction:row;gap:4px}.rpg-tabs button{flex:1;justify-content:center;min-height:36px;padding:5px 2px;font-size:10px;gap:3px;border-right-width:1px}.rpg-tabs .pixel-icon{width:16px;height:16px}.rpg-list{padding:3px}.rpg-list button{gap:4px;padding:6px 4px;min-height:52px}.rpg-list .pixel-icon{width:18px;height:18px}.rpg-list strong{font-size:10px;white-space:normal}.rpg-list small{font-size:9px}.rpg-detail{padding:10px 9px}.rpg-modal #modal-body .rpg-detail-heading h3{font-size:17px}.pixel-icon.large{width:30px;height:30px}.rpg-detail-heading{gap:6px}.rpg-modal #modal-body .rpg-detail p{font-size:11px}.rpg-detail button{font-size:11px;padding:7px}.rpg-comparison{font-size:10px}.rpg-comparison th,.rpg-comparison td{padding:5px 3px}.rpg-alchemy small,.rpg-branch-options small{font-size:9px}.rpg-actions{gap:7px}.rpg-job-skills{grid-template-columns:1fr}.rpg-modal #modal-body .rpg-footer{font-size:9px}#play-screen[data-fever="true"] #clock{font-size:11px;padding:2px 5px}}
/* 0.3.6: gilded roulette cabinet, lit lamps and a readable prize panel. */
.chance-modal{--neon-pink:#ff59cd;--neon-blue:#59eaff;--metal-light:#fff3ba;--metal-dark:#895023;width:min(580px,calc(100% - 24px));border:3px solid #f7d178;border-radius:14px;background:linear-gradient(135deg,#532248,#170e2c 52%,#342160);box-shadow:0 0 0 3px #8d5429,0 0 0 7px #f9df94,0 0 45px #ed5fac66,0 24px 90px #000b}
.chance-modal .modal-header{background:linear-gradient(90deg,#592240,#201437,#41204b);border-bottom:2px solid #d0a25b;padding:8px 16px}.chance-modal #modal-close{min-width:34px;min-height:32px;padding:2px 8px}
.chance-modal #modal-body{padding:8px 14px 14px;overflow-x:hidden}
.roulette-board{position:relative;isolation:isolate;padding:17px 25px 18px;border:3px solid #b87e3e;border-radius:13px;background:radial-gradient(ellipse at 50% 42%,#452c78 0%,#281236 60%,#160d26 100%);box-shadow:inset 0 0 0 2px #ffeeb0,inset 0 0 24px #080319,0 0 14px #ffe49233;overflow:hidden}
.roulette-board:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.6;background:repeating-conic-gradient(from 0deg at 50% 45%,#c9985f0a 0deg 5deg,transparent 5deg 15deg);pointer-events:none}
.roulette-lights{position:absolute;inset:5px;pointer-events:none;z-index:2}.roulette-lamp{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff3c2;box-shadow:inset 0 -1px 2px #d6a348,0 0 7px #ffc373;animation:roulette-lamp-glow 1.6s ease-in-out infinite;animation-delay:calc(var(--lamp)*-0.08s)}
.roulette-lamp:nth-child(-n+8){top:0;left:calc(6% + var(--lamp)*12.3%)}.roulette-lamp:nth-child(n+9):nth-child(-n+16){bottom:0;left:calc(6% + (var(--lamp) - 8)*12.3%)}.roulette-lamp:nth-child(n+17):nth-child(-n+20){left:0;top:calc(15% + (var(--lamp) - 16)*22%)}.roulette-lamp:nth-child(n+21){right:0;top:calc(15% + (var(--lamp) - 20)*22%)}
.roulette-eyebrow{color:#ffe3a2;font-size:11px;letter-spacing:.15em;text-shadow:0 0 8px #e19e3d}
.chance-modal #modal-body .roulette-title{font-size:clamp(24px,3.5vw,35px);font-weight:900;letter-spacing:.04em;line-height:1.25;margin:4px 0 8px;color:#fff7c4;text-shadow:0 2px #8d3d32,0 4px #5a163e,0 0 18px #ff63b17a}
.roulette-stage{--wheel-size:min(244px,35dvh,58vw);margin:12px auto 16px}
.roulette-stage:before{content:'';position:absolute;inset:-9px;border:3px double #ffeb9d;border-radius:50%;box-shadow:0 0 0 4px #7f4b28,0 0 0 7px #e3bd6a,0 0 22px #fe7dcb88}
.roulette-stage:after{content:'';position:absolute;inset:-20px;z-index:-1;border-radius:50%;background:conic-gradient(#ff8ab7,#8459ff,#65f5ff,#fdde71,#ff8ab7);filter:blur(12px);opacity:.32;animation:roulette-neon 6s linear infinite}
.roulette-wheel{border:7px solid #fff0b2;background:conic-gradient(from -22.5deg,#ffde6a 0deg 45deg,#9d2470 45deg 90deg,#242e69 90deg 135deg,#0a647c 135deg 180deg,#ffde6a 180deg 225deg,#9d2470 225deg 270deg,#242e69 270deg 315deg,#0a647c 315deg 360deg);box-shadow:inset 0 0 0 3px #a46728,inset 0 0 22px #03081e,0 0 8px #ffd486}
.roulette-symbol{font-size:20px;transform:rotate(calc(var(--slot)*45deg)) translateY(calc(var(--wheel-size)*-.33)) rotate(calc(var(--slot)*-45deg));color:#96efff;text-shadow:0 2px #1c2954,0 0 9px #22d8ff}.roulette-symbol.winning{font-size:32px;color:#fff7c0;text-shadow:0 2px #9d4827,1px 0 #b47c20,-1px 0 #b47c20,0 0 8px #fff}
.roulette-hub{width:70px;height:70px;color:#ffe2a0;font-size:17px;border:4px double #ffefa6;background:radial-gradient(circle at 40% 25%,#a84675,#471947);box-shadow:0 0 0 3px #895d37,0 0 16px #ff56af77;text-shadow:0 2px #481a43}
.roulette-pointer{color:#fff4b6;font-size:38px;top:-19px;text-shadow:0 2px #974b31,0 0 10px #fff2ae}
.roulette-prize{display:flex;justify-content:center;align-items:center;gap:12px;border:1px solid #dcac67;border-radius:5px;padding:4px 10px;background:linear-gradient(100deg,#623d22,#2b1836,#623d22);box-shadow:inset 0 1px #fff2bd33}.roulette-prize strong{font-size:22px;line-height:1.2;color:#ffe895;text-shadow:0 2px #894026}.roulette-prize span{font-size:11px;color:#fff2d7}
.chance-modal #modal-body .roulette-detail{min-height:36px;margin:7px auto 8px;font-size:12px;line-height:1.45;color:#ffebd9}
.roulette-action{width:min(100%,330px);min-height:49px;border:2px solid #ffe3a2;border-radius:9px;background:linear-gradient(#ff669d,#bd185d 52%,#810936);box-shadow:inset 0 2px #ffebd677,0 4px #541a39,0 0 20px #ff5db966;color:#fff6d3;font-size:17px;font-weight:800;text-shadow:0 2px #7e214d}.roulette-action:hover:not(:disabled){background:linear-gradient(#ff84b7,#dc236e 52%,#961342);border-color:#fff5d1}.roulette-action kbd{color:#fff2d8;background:#7a194a;border-color:#bd668a}.roulette-board[data-phase="ready"] .roulette-action{box-shadow:inset 0 2px #ffebd677,0 4px #541a39,0 0 20px #ff5db966}
.roulette-intro{--intro-size:min(244px,35dvh,58vw);border:6px double #ffe8a4;background:radial-gradient(circle,#e5a058,#ad265c 56%,#431844);box-shadow:0 0 0 4px #9c652f,0 0 26px #f466b7aa,inset 0 0 26px #ffed9666}.roulette-intro-star{font-size:104px}.roulette-intro-call{font-size:24px}.roulette-intro:before{background:repeating-conic-gradient(#ffe89f88 0deg 10deg,transparent 10deg 25deg);animation:roulette-rays 2s linear both}
.roulette-board[data-phase="spinning"] .roulette-stage:after{opacity:.65}.roulette-board[data-phase="spinning"] .roulette-hub{color:#fff0a6;background:radial-gradient(circle,#cc3e7f,#521756);box-shadow:0 0 0 3px #ebbd70,0 0 22px #ff5eb4}
.roulette-board[data-result="won"]{background:radial-gradient(ellipse at 50% 42%,#905477,#592138 60%,#291334);border-color:#ffe18e;box-shadow:inset 0 0 0 2px #fff8d6,inset 0 0 26px #fcc77766,0 0 28px #ffbb50aa}.roulette-board[data-result="won"] .roulette-title{font-size:40px!important;color:#fff9b9!important;text-shadow:0 3px #a34829,0 5px #6b2632,0 0 22px #ffe371;animation:chance-reveal .6s cubic-bezier(.2,.85,.2,1)}.roulette-board[data-result="won"] .roulette-prize strong{font-size:28px}.roulette-board[data-result="won"] .roulette-stage:after{opacity:.75}.roulette-board[data-result="won"] .roulette-lamp{box-shadow:0 0 10px #fff0a5,0 0 20px #ff865a}
@keyframes roulette-lamp-glow{0%,100%{filter:brightness(.7)}50%{filter:brightness(1.4)}}@keyframes roulette-neon{to{transform:rotate(360deg)}}
body[data-reduced="true"] .roulette-lamp,body[data-reduced="true"] .roulette-stage:after{animation:none}body[data-reduced="true"] .roulette-board[data-result="won"] .roulette-title{animation:none}
@media(max-height:650px){.roulette-stage{--wheel-size:min(194px,32dvh,58vw)}.roulette-intro{--intro-size:min(194px,32dvh,58vw)}.roulette-board{padding-block:10px}.roulette-prize strong{font-size:19px}.chance-modal #modal-body .roulette-title{font-size:24px!important}.roulette-intro-star{font-size:76px}.roulette-intro-call{font-size:21px}}
@media(max-width:460px){.roulette-board{padding-inline:18px}.roulette-prize{gap:7px}.roulette-prize strong{font-size:19px}.roulette-prize span{font-size:10px}.roulette-action{font-size:15px}}
/* A jackpot changes the entire cabinet, while the wheel still shows the true result. */
.roulette-board[data-result="won"]:before{inset:-25%;opacity:.85;background:repeating-conic-gradient(from 0deg at 50% 45%,#ffd46840 0deg 6deg,transparent 6deg 18deg);animation:roulette-neon 14s linear infinite}
.roulette-board[data-result="won"]:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 25%,#fff3b3 0 2px,transparent 3px),radial-gradient(circle at 88% 31%,#ffcf73 0 3px,transparent 4px),radial-gradient(circle at 20% 60%,#fff3b3 0 2px,transparent 3px),radial-gradient(circle at 84% 72%,#ffce72 0 2px,transparent 3px),radial-gradient(circle at 34% 8%,#fff3b3 0 2px,transparent 3px);filter:drop-shadow(0 0 7px #ffd267);animation:roulette-spark-rise 2.8s ease-in-out infinite}
.roulette-board[data-result="won"] .roulette-title{font-size:46px!important;font-weight:900;letter-spacing:.1em;-webkit-text-stroke:1px #ffea94;text-shadow:0 3px #bd5c20,0 5px #872451,0 7px #4a193c,0 0 18px #ffb356}
.roulette-board[data-result="won"] .roulette-prize{border:2px solid #fff0ac;background:linear-gradient(115deg,#a14826,#d09a46,#982b5c,#a14826);background-size:240% 100%;box-shadow:inset 0 0 0 1px #ae6b3a,0 0 18px #ffd98655;animation:roulette-prize-gleam 3s ease-in-out infinite}.roulette-board[data-result="won"] .roulette-prize strong{color:#fff7c4;text-shadow:0 2px #98302f}
.roulette-board[data-result="won"] .roulette-stage:before{box-shadow:0 0 0 4px #ad7239,0 0 0 7px #ffe991,0 0 25px #ff71dcaa,0 0 40px #ffda6688}
@keyframes roulette-spark-rise{0%,100%{transform:translateY(6px);opacity:.5}50%{transform:translateY(-9px);opacity:1}}@keyframes roulette-prize-gleam{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
body[data-reduced="true"] .roulette-board[data-result="won"]:before,body[data-reduced="true"] .roulette-board[data-result="won"]:after,body[data-reduced="true"] .roulette-board[data-result="won"] .roulette-prize{animation:none}
@media(max-height:650px),(max-width:460px){.roulette-board[data-result="won"] .roulette-title{font-size:32px!important}}

/* Reversible slime strength experiment: no extra HUD row. */
.growth-mode-badge { color:#ffdda0; border:1px solid #a8864e; padding:2px 5px; font-size:10px; white-space:nowrap; }
.growth-experiment { padding:14px; margin:16px 0; border:1px solid #937647; background:linear-gradient(130deg,#273d49,#1b2e3c); }
.growth-experiment-toggle { display:flex; align-items:center; gap:10px; cursor:pointer; }
.growth-experiment input { width:20px; height:20px; accent-color:#e9c57b; }
.growth-experiment p { line-height:1.65; margin:10px 0 0; }
.trial-hint { color:#ffe2a1; }
.loot-rewards{display:grid;grid-template-columns:1fr;gap:7px;margin-top:10px}
.loot-card{--loot-color:#78c9dc;display:flex;align-items:center;gap:10px;min-width:0;padding:9px 11px;border:2px solid var(--loot-color);background:#102d39;box-shadow:inset 0 0 0 2px #051e28}
.loot-card[data-tier="1"]{--loot-color:#9bddad}.loot-card[data-tier="2"]{--loot-color:#c5a1f1}.loot-card[data-tier="3"]{--loot-color:#ffe39a;background:#3b3325}
.outcome-summary .loot-card strong{display:block;font-size:14px;line-height:1.4;color:var(--loot-color)}.outcome-summary .loot-card small{margin:0;color:#d8e6d6;font-size:10px;line-height:1.5}.loot-card .pixel-icon.large{width:32px;height:32px}
.loot-copy{grid-column:1/-1;padding:3px 8px;border-left:2px solid #94b7ab;background:#19323a}.outcome-summary .loot-copy small{margin:0;font-size:11px}
.battle-result .loot-open{grid-column:1/-1;justify-self:start;min-height:32px;min-width:135px;flex:none;padding:5px 12px;border-color:#e6c480;background:#294d45;color:#ffdf94;font-size:12px}
.unlock-summary{padding:5px 8px;border-left:2px solid #e6c480;background:#203a3b;line-height:1.5}
.menu-unread{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;margin-left:5px;padding:0 4px;border:1px solid #ffe6ad;background:#9f4c2e;color:#fff2cd;font:700 10px Consolas,monospace;vertical-align:middle}
.rpg-notices{padding:7px 10px;border-left:3px solid #d1ae64;background:#29453d;color:#ffe3a1;font-size:11px;line-height:1.55}
.gear-fusion{margin:13px 0;padding:0 10px 1px;border:1px solid #a68c5a;background:#cbbd92}.gear-fusion h4{margin-top:9px}.fusion-status{font-weight:700;color:#514329;font-variant-numeric:tabular-nums}
.gear-effect{margin:12px 0 8px;padding:11px 13px;border:1px solid #6f7960;background:#29463b;box-shadow:inset 0 0 0 2px #3d5845;color:#f4e3b6}.gear-effect>small,.gear-effect>strong{display:block}.gear-effect>small{font-size:10px;color:#c4d0b5;line-height:1.5}.gear-effect>strong{font-size:18px;line-height:1.5;margin-top:3px;font-variant-numeric:tabular-nums}.rpg-modal #modal-body .gear-effect p{font-size:11px;line-height:1.6;margin:5px 0 0;color:#e1dfbd}.rpg-modal #modal-body .gear-effect .gear-effect-note{color:#ffe0a1}.rpg-modal #modal-body .gear-effect .gear-effect-trait{margin-top:8px;padding-top:7px;border-top:1px solid #70806a;color:#f5dda1}.gear-comparison{margin:8px 0 10px}.rpg-list small.gear-list-meta{font-size:9px;color:#b5c2a6}.rpg-detail .gear-tools-toggle{display:flex;align-items:center;gap:9px;width:100%;min-height:42px;margin:7px 0;text-align:left;background:#d4c69e;color:#57452c;border:1px solid #a28a5d;box-shadow:inset 0 1px #eee0bb}.gear-tools-toggle>span:first-child{font-size:11px;flex:none}.gear-tools-toggle>span:last-child{display:flex;align-items:center;justify-content:space-between;flex:1;gap:10px;min-width:0}.gear-tools-toggle strong{font-size:12px}.gear-tools-toggle small{font-size:10px;color:#68593c}.rpg-detail .gear-tools-toggle:hover:not(:disabled){background:#e1d3ad;color:#3e4934;border-color:#8a774b}.gear-tools-toggle[aria-expanded="true"]+.gear-fusion{margin-top:0}.gear-fusion[hidden]{display:none}
@media(min-width:761px){.outcome-summary{max-height:clamp(130px,calc(100dvh - 650px),235px);overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#d0b57b #233d40}.rpg-modal .rpg-notices{max-height:52px;overflow:auto;margin:7px 0 0}.rpg-modal:has(.rpg-notices) .rpg-layout{height:min(394px,calc(100dvh - 289px))}}
@media(max-width:760px){.loot-rewards{grid-template-columns:1fr}.loot-card{padding:7px}.outcome-summary .loot-card strong{font-size:12px}.menu-unread{margin-left:3px}}

/* Results stay inside the message window; rewards never move the return control. */
@media(min-width:761px){
 .battle-actions .battle-log{height:108px;max-height:108px;overscroll-behavior:contain;scrollbar-color:#bea772 #1c303b}
 #play-screen[data-mode="battle"]{--battle-art-h:clamp(140px,calc(100dvh - 511px),336px)}
 #play-screen[data-mode="battle"][data-command-tab="skills"]{--battle-art-h:clamp(140px,calc(100dvh - 561px),336px)}
}
.battle-log[data-outcome="won"]{border-left-color:#e6c480}
.battle-report{font-size:12px;line-height:1.6;color:#dce7cf}
.battle-report-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px}
.battle-report-heading>strong{color:#ffe09b;font-size:13px}
.battle-report-heading .loot-open{min-height:24px;padding:2px 9px;font-size:11px;line-height:1.5;flex:none;color:#ffe09b;border-color:#968667;background:#29434b}
.battle-report p{margin:3px 0}
.battle-report .battle-xp{color:#ffdf94;font-weight:700}
.battle-loot{display:flex;align-items:center;gap:6px;color:#b8e8dd}
.battle-loot .pixel-icon{width:16px;height:16px;flex:none}
.battle-loot[data-tier="2"]{color:#d5b8ff}.battle-loot[data-tier="3"]{color:#ffdf87}
.battle-log:focus-visible{outline:2px solid #f7d58d;outline-offset:2px}
.battle-result #back-field{width:100%;min-height:44px}
.battle-result #back-field kbd{float:right}

/* Finished battles show only the complete reward report, without a scroll box. */
.battle-actions .battle-log[data-outcome]:not([data-outcome=""]){height:auto;min-height:0;max-height:none;overflow:visible;cursor:default}

/* A landmark event interrupts the scene without changing the combat HUD layout. */
.event-cutin{--event-accent:#e7d28b;--event-light:#fff4c4;--event-shadow:#688d53;--event-dark:#10251f;position:fixed;inset:0;z-index:120;display:grid;place-items:center;overflow:hidden;isolation:isolate;outline:none;cursor:default;color:var(--event-light)}
.event-cutin[hidden]{display:none}
.event-cutin[data-species="prism"]{--event-accent:#d7b9ff;--event-light:#fff4fd;--event-shadow:#805ec9;--event-dark:#21143d}
.event-cutin[data-species="lunar"]{--event-accent:#b5d4f6;--event-light:#f1f7ff;--event-shadow:#5b79b2;--event-dark:#101d39}
.event-cutin[data-species="amber"]{--event-accent:#f3bd59;--event-light:#fff1c0;--event-shadow:#b96c30;--event-dark:#362215}
.event-cutin[data-species="wayfarer"]{--event-accent:#8cd8ce;--event-light:#e7fff2;--event-shadow:#3b8f92;--event-dark:#102e32}
.event-veil{position:absolute;inset:0;z-index:-4;background:var(--event-dark);opacity:.93;animation:event-darken .4s ease-out both}
.event-border{position:absolute;inset:18px;z-index:-2;border:1px solid var(--event-accent);box-shadow:inset 0 0 0 4px var(--event-dark),inset 0 0 0 5px var(--event-accent),0 0 25px var(--event-shadow);opacity:.7;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.event-border:before,.event-border:after{content:'';position:absolute;width:72px;height:72px;border:3px double var(--event-accent);transform:rotate(45deg);background:var(--event-dark)}
.event-border:before{left:-39px;top:-39px}.event-border:after{right:-39px;bottom:-39px}
.event-rays{position:absolute;inset:-45%;z-index:-3;opacity:.14;background:repeating-conic-gradient(from 15deg at 50% 50%,var(--event-accent) 0deg 3deg,transparent 3deg 22deg);animation:event-rays 3.2s ease-out both}
.event-cutin[data-species="prism"] .event-rays{background:repeating-conic-gradient(from 15deg,#ffa8b6 0deg 4deg,transparent 4deg 18deg,#ffe08d 18deg 22deg,transparent 22deg 36deg,#85edce 36deg 40deg,transparent 40deg 54deg,#9cceff 54deg 58deg,transparent 58deg 72deg,#d5aaff 72deg 76deg,transparent 76deg 90deg);opacity:.19}
.event-cutin-content{width:min(100% - 90px,970px);position:relative;text-align:center;opacity:0;transform:translateY(12px);transition:opacity .32s ease,transform .32s ease}
.event-cutin[data-phase="sigil"] .event-cutin-content,.event-cutin[data-phase="reveal"] .event-cutin-content,.event-cutin[data-phase="settle"] .event-cutin-content,.event-cutin[data-phase="ready"] .event-cutin-content{opacity:1;transform:none}
.event-cutin-caption{display:flex;align-items:center;justify-content:center;gap:22px;margin:0 auto 25px;color:var(--event-accent)}
.event-cutin-caption strong{font-size:16px;letter-spacing:.34em;text-indent:.34em;font-weight:700;white-space:nowrap;text-shadow:0 0 18px var(--event-shadow)}
.event-cutin-caption>span{height:1px;width:90px;background:linear-gradient(90deg,transparent,var(--event-accent))}.event-cutin-caption>span:last-child{transform:rotate(180deg)}
.event-cutin-stage{display:grid;grid-template-columns:42% 58%;align-items:center;position:relative;min-height:280px;border-block:1px solid var(--event-accent);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--event-shadow) 18%,transparent),transparent);box-shadow:0 1px 0 #ffffff18,inset 0 1px 0 #ffffff18}
.event-portrait{height:280px;position:relative;display:grid;place-items:center;overflow:visible}
.event-seal{position:absolute;left:50%;top:50%;width:213px;height:213px;border:3px double var(--event-accent);border-radius:50%;display:grid;place-items:center;transform:translate(-50%,-50%) scale(.8);opacity:.25;box-shadow:0 0 25px var(--event-shadow),inset 0 0 25px var(--event-shadow);transition:transform .7s ease-out,opacity .7s ease-out}
.event-seal:before,.event-seal:after{content:'';position:absolute;inset:14px;border:1px solid var(--event-accent);transform:rotate(45deg)}.event-seal:after{inset:26px;transform:rotate(15deg)}
.event-seal span{font-size:68px;font-family:serif;font-weight:700;opacity:.7;text-shadow:0 0 22px var(--event-accent)}
.event-cutin[data-species="lunar"] .event-seal:before{inset:9px;border-radius:50%;box-shadow:inset 18px 0 0 var(--event-accent);transform:rotate(-25deg)}
.event-cutin[data-species="lunar"] .event-seal:after{border-radius:50%;transform:none}
.event-cutin[data-species="amber"] .event-seal{border-radius:15px;transform:translate(-50%,-50%) rotate(45deg) scale(.65)}
.event-cutin[data-species="amber"] .event-seal span{transform:rotate(-45deg)}
.event-cutin[data-species="wayfarer"] .event-seal:after{border-width:3px;border-radius:50%;inset:32px}
.event-portrait canvas{width:400px;height:275px;max-width:none;position:relative;image-rendering:pixelated;image-rendering:crisp-edges;opacity:0;transform:translateX(-65px) scale(.9);transition:opacity .18s ease-out,transform .5s cubic-bezier(.16,.85,.2,1);filter:drop-shadow(0 0 22px var(--event-shadow))}
.event-cutin-copy{text-align:left;padding:25px 22px 25px 6px;opacity:0;transform:translateX(65px);transition:opacity .28s ease-out,transform .5s cubic-bezier(.16,.85,.2,1)}
.event-chapter{color:var(--event-accent);font-size:13px;letter-spacing:.22em;margin:0 0 12px}
.event-cutin-copy h2{font-family:serif;font-size:clamp(29px,3.2vw,47px);font-weight:800;line-height:1.3;letter-spacing:.06em;margin:0 0 16px;color:var(--event-light);text-shadow:0 3px var(--event-dark),0 0 24px var(--event-shadow)}
.event-story{font-size:14px;line-height:1.85;margin:0;color:var(--event-light);max-width:26em}
.event-input-state{font-size:11px;letter-spacing:.08em;color:var(--event-accent);margin:22px 0 0;min-height:20px}
.event-cutin[data-phase="sigil"] .event-seal{transform:translate(-50%,-50%) scale(1);opacity:.8}
.event-cutin[data-species="amber"][data-phase="sigil"] .event-seal{transform:translate(-50%,-50%) rotate(45deg) scale(.8)}
.event-cutin[data-phase="reveal"] .event-portrait canvas,.event-cutin[data-phase="settle"] .event-portrait canvas,.event-cutin[data-phase="ready"] .event-portrait canvas{opacity:1;transform:none}
.event-cutin[data-phase="reveal"] .event-cutin-copy,.event-cutin[data-phase="settle"] .event-cutin-copy,.event-cutin[data-phase="ready"] .event-cutin-copy{opacity:1;transform:none}
.event-cutin[data-phase="reveal"] .event-seal,.event-cutin[data-phase="settle"] .event-seal,.event-cutin[data-phase="ready"] .event-seal{opacity:.2;transform:translate(-50%,-50%) scale(1.15)}
.event-cutin[data-species="amber"][data-phase="reveal"] .event-seal,.event-cutin[data-species="amber"][data-phase="settle"] .event-seal,.event-cutin[data-species="amber"][data-phase="ready"] .event-seal{transform:translate(-50%,-50%) rotate(45deg) scale(.85)}
.event-cutin[data-phase="settle"] .event-cutin-stage{animation:event-arrival .45s ease-out both}
.event-motes{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.event-motes i{position:absolute;left:var(--mote-x);top:var(--mote-y);width:4px;height:4px;background:var(--event-accent);box-shadow:0 0 11px var(--event-accent);transform:rotate(45deg);animation:event-mote-rise 3.2s ease-out both;animation-delay:var(--mote-delay);opacity:0}
.event-motes i:nth-child(1){--mote-x:13%;--mote-y:70%;--mote-delay:.3s}.event-motes i:nth-child(2){--mote-x:21%;--mote-y:36%;--mote-delay:.9s}.event-motes i:nth-child(3){--mote-x:34%;--mote-y:79%;--mote-delay:.2s}.event-motes i:nth-child(4){--mote-x:42%;--mote-y:31%;--mote-delay:.6s}.event-motes i:nth-child(5){--mote-x:53%;--mote-y:65%;--mote-delay:.5s}.event-motes i:nth-child(6){--mote-x:63%;--mote-y:39%;--mote-delay:.8s}.event-motes i:nth-child(7){--mote-x:76%;--mote-y:77%;--mote-delay:.4s}.event-motes i:nth-child(8){--mote-x:86%;--mote-y:27%;--mote-delay:.7s}.event-motes i:nth-child(9){--mote-x:8%;--mote-y:31%;--mote-delay:.6s}.event-motes i:nth-child(10){--mote-x:92%;--mote-y:68%;--mote-delay:.1s}.event-motes i:nth-child(11){--mote-x:60%;--mote-y:84%;--mote-delay:.2s}.event-motes i:nth-child(12){--mote-x:31%;--mote-y:22%;--mote-delay:.8s}
@keyframes event-darken{from{opacity:0}to{opacity:.93}}
@keyframes event-rays{from{transform:rotate(-9deg) scale(.92);opacity:0}to{transform:rotate(8deg) scale(1);opacity:.16}}
@keyframes event-mote-rise{0%{transform:translateY(20px) rotate(45deg);opacity:0}30%{opacity:.8}100%{transform:translateY(-90px) rotate(100deg);opacity:0}}
@keyframes event-arrival{from{box-shadow:0 0 35px var(--event-shadow),inset 0 0 28px var(--event-shadow)}to{box-shadow:0 1px 0 #ffffff18,inset 0 1px 0 #ffffff18}}
body[data-reduced="true"] .event-veil,body[data-reduced="true"] .event-rays,body[data-reduced="true"] .event-motes i,body[data-reduced="true"] .event-cutin-stage{animation:none}
body[data-reduced="true"] .event-cutin-content,body[data-reduced="true"] .event-portrait canvas,body[data-reduced="true"] .event-cutin-copy,body[data-reduced="true"] .event-seal{transition:none;transform:none}
body[data-reduced="true"] .event-seal{transform:translate(-50%,-50%)!important}
body[data-reduced="true"] .event-rays{opacity:.12}body[data-reduced="true"] .event-motes i{opacity:.35}
@media(max-width:760px){.event-border{inset:10px}.event-cutin-content{width:calc(100% - 42px)}.event-cutin-caption{gap:12px;margin-bottom:14px}.event-cutin-caption>span{width:45px}.event-cutin-caption strong{font-size:14px}.event-cutin-stage{grid-template-columns:1fr;min-height:0}.event-portrait{height:195px}.event-portrait canvas{width:280px;height:193px}.event-seal{width:151px;height:151px}.event-seal span{font-size:48px}.event-cutin-copy{text-align:center;padding:0 15px 24px}.event-cutin-copy h2{font-size:31px;margin-bottom:10px}.event-chapter{font-size:11px;margin-bottom:7px}.event-story{font-size:12px;max-width:none}.event-input-state{margin-top:15px;font-size:10px}}
@media(max-height:560px) and (min-width:761px){.event-cutin-stage{min-height:210px}.event-portrait{height:210px}.event-portrait canvas{width:307px;height:211px}.event-cutin-copy h2{font-size:32px}.event-cutin-caption{margin-bottom:14px}.event-input-state{margin-top:14px}}
@media(max-height:600px) and (max-width:760px){.event-portrait{height:150px}.event-portrait canvas{width:218px;height:150px}.event-seal{width:116px;height:116px}.event-cutin-copy{padding-bottom:15px}.event-cutin-copy h2{font-size:26px}.event-cutin-content{width:calc(100% - 36px)}.event-cutin-caption{margin-bottom:10px}.event-input-state{margin-top:10px}}

/* Achievements stay at the screen edge and never intercept game controls. */
.quest-achievement{position:fixed;inset:auto;top:74px;left:max(14px,calc((100vw - 1080px)/2));z-index:30;display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;width:min(340px,calc(100vw - 28px));min-height:96px;margin:0;padding:13px 16px 12px 12px;border:2px solid #d6b968;color:#f9edbf;background:linear-gradient(105deg,#172d2e 0%,#29483c 66%,#1a3331 100%);box-shadow:0 4px 0 #0c191e,0 0 0 1px #7a653a,inset 0 0 0 2px #78907833,0 9px 25px #0005;pointer-events:none;overflow:hidden;isolation:isolate}
.quest-achievement-emblem{width:44px;height:50px;display:grid;place-items:center;align-self:center;background:linear-gradient(#f9dfa0,#ad8b46);border:2px solid #efdfa2;box-shadow:inset 0 0 0 3px #826d3d;color:#263c31;clip-path:polygon(8% 0,92% 0,100% 76%,50% 100%,0 76%)}
.quest-achievement-emblem span{font-size:25px;font-weight:900;line-height:1;text-shadow:0 1px #f8e7b6}
.quest-achievement-copy{display:grid;align-content:center;gap:4px;min-width:0;line-height:1.4}
.quest-achievement-label{font-size:10px;font-weight:700;letter-spacing:.1em;color:#dbc78f}
.quest-achievement-copy>strong{font-size:15px;font-weight:800;overflow-wrap:anywhere;text-shadow:0 1px #112b2b}
.quest-achievement-copy>span:last-of-type{font-size:11px;color:#d9e8c4}
.quest-achievement-copy>small{font-size:9px;color:#c4c49e}
.quest-achievement-glint{position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,#fff4be29 48%,transparent 66%);transform:translateX(-120%)}
.quest-achievement[data-phase="enter"]{animation:quest-notice-arrive .42s cubic-bezier(.16,1,.3,1) both}
.quest-achievement[data-phase="enter"] .quest-achievement-glint{animation:quest-notice-glint .8s .28s ease-out both}
.quest-achievement[data-phase="exit"]{animation:quest-notice-leave .28s ease-in both}
.quest-achievement[data-kind="chain"]{border-color:#e7ca79;background:linear-gradient(105deg,#2e2637,#454130 65%,#282e2f)}
@keyframes quest-notice-arrive{from{opacity:0;transform:translateX(calc(-100% - 24px))}to{opacity:1;transform:translateX(0)}}
@keyframes quest-notice-leave{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(calc(-100% - 24px))}}
@keyframes quest-notice-glint{from{transform:translateX(-120%)}to{transform:translateX(120%)}}
body[data-reduced="true"] .quest-achievement,body[data-reduced="true"] .quest-achievement .quest-achievement-glint{animation:none}
.quest-category-nav{overflow-y:auto;overscroll-behavior:contain;padding-right:3px}
.quest-category-nav button{min-height:35px;font-size:11px;padding:7px 8px}
.rpg-list .quest-list-progress{display:block;width:100%;height:4px;margin-top:5px;accent-color:#cfb56c}
.rpg-modal #modal-body .quest-condition{margin:12px 0;color:#503f27;line-height:1.7}
@media(max-width:760px){.quest-achievement{top:63px;left:10px;width:min(320px,calc(100vw - 20px));min-height:89px;padding:11px 12px;gap:9px;grid-template-columns:38px minmax(0,1fr)}.quest-achievement-emblem{width:37px;height:43px}.quest-achievement-copy>strong{font-size:13px}.quest-achievement-copy>span:last-of-type{font-size:10px}.quest-category-nav{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.quest-category-nav button{flex:0 0 auto;min-width:75px;white-space:nowrap;font-size:9px}}
