/* 与既有场景共用矮屏四行布局，不增加常驻面板高度。 */
.game-toolbar>div{gap:0;flex-shrink:0}.game-toolbar button{min-width:40px;min-height:40px;white-space:nowrap;padding:0 6px}
.game-toolbar #save-indicator{min-width:0;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-toolbar button[aria-pressed=true]{background:#dde4cf;color:#304d3c;box-shadow:inset 0 -2px #57725b}
.title-footer button{min-height:40px;white-space:nowrap}
.setting-row{display:flex;align-items:center;gap:12px;min-height:46px;font-size:14px}
.setting-row>span:first-child{min-width:76px}.setting-row input[type=range]{flex:1;min-width:90px;min-height:40px;accent-color:#536f56}
.setting-row output{min-width:55px;text-align:right}.setting-row select{min-height:40px;padding:5px 10px;min-width:120px;background:#f7f3e9;color:#354b3c;border:1px solid #b9b398}
.setting-row input[type=checkbox]{width:24px;height:24px;accent-color:#536f56;margin:8px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px}
.route-values{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.route-value{padding:10px 8px;border-bottom:1px solid #b4b49566;display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;font-size:13px}
.route-value b{font-weight:500;color:#3a6347}.route-value p{width:100%;font-size:12px;line-height:1.6;margin:5px 0;color:#71755f}
.route-result{font-size:13px;line-height:1.7;color:#405f47}
.chapter-button{display:block;width:100%;min-height:48px;text-align:left;padding:12px 16px;margin:8px 0;border:1px solid #b4b495;background:#f8f4e9}
.slot-pages{display:flex;gap:8px;margin-bottom:12px}.slot-pages button{min-height:40px}.slot-pages .selected{background:#385044;color:#f5eddb}
.ui-restore{position:absolute;inset:0;width:100%;height:100%;z-index:20;background:transparent;border:0;min-height:40px}
.ui-restore span{position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));padding:10px 14px;min-height:40px;font-size:12px;background:#f3efdfd9;border:1px solid #a4ae91;color:#4e654e}
.ui-hidden>.game-header,.ui-hidden>.dialogue-wrap,.ui-hidden>.game-toolbar{visibility:hidden;pointer-events:none}
.ui-hidden .chapter-label,.ui-hidden .placeholder-label,.ui-hidden .actor-tag,.ui-hidden #choices,.ui-hidden #court-hotspots,.ui-hidden #explore-scene,.ui-hidden #end-actions{visibility:hidden;pointer-events:none}
.ending-screen{position:absolute;inset:0;z-index:15;background:#080b0a;color:#f0e9d5;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.ending-card{position:absolute;left:0;right:0;top:43%;transform:translateY(-50%);text-align:center;animation:ending-fade 1.2s ease both}
.ending-card .tiny{color:#888f7e;letter-spacing:.5em;font-size:10px}
.ending-card h1{font:400 64px/1.25 var(--serif);letter-spacing:.3em;text-indent:.3em;margin:18px 0 14px}
.ending-card p{font:14px/1.8 var(--serif);letter-spacing:.35em;margin:0;color:#d2cbb7}
.ending-rule{display:block;width:48px;height:1px;background:#6c715b;margin:22px auto 0}
.ending-menu{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);left:calc(env(safe-area-inset-left,0px) + 16px);right:calc(env(safe-area-inset-right,0px) + 16px);display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.ending-menu button{background:transparent;border:0;color:#b4b9a5;min-height:40px;min-width:60px;padding:4px 10px;font-size:12px}
.ending-menu button:hover{color:#f3eddd}.ending-menu button:focus-visible{outline-color:#d7ddba}
@keyframes ending-fade{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.settings-grid{grid-template-columns:1fr}.route-values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(orientation:landscape) and (max-height:500px){
  .game-toolbar button{height:40px;min-height:40px;font-size:12px}.game-toolbar{gap:3px}
  .setting-row{min-height:42px}.settings-grid{gap:0 22px}.ending-card h1{font-size:56px;margin:12px 0}.ending-rule{margin-top:16px}
}
@media(prefers-reduced-motion:reduce){.ending-card{animation:none}}

.title-top,.title-footer{left:max(5%,env(safe-area-inset-left));right:max(5%,env(safe-area-inset-right))}
.title-menu button{min-height:40px}
@media(orientation:landscape) and (max-height:500px){
  .title-copy{top:45px}.title-copy h1{font-size:clamp(50px,15dvh,64px);line-height:1.08}
  .title-copy .tagline{margin:8px 0}
}
