.travel-subtitles{position:absolute;pointer-events:none;z-index:1;overflow:hidden}
.travel-subtitle-card{position:absolute;top:8px;left:5%;width:90%;padding:11px 15px 9px;border:1px solid #c8cbb0;border-radius:16px;background:#fffcf2ef;box-shadow:0 4px 14px #5b735215;color:#736e54}
.travel-subtitle-meta{display:flex;justify-content:space-between;gap:10px;font:10px/1.3 "Segoe UI","Microsoft YaHei",sans-serif;color:#969a78;margin-bottom:7px}
.travel-subtitle-meta b{font-weight:500;color:#799268;white-space:nowrap}
.travel-subtitle-text{font-family:Georgia,"Times New Roman",serif;font-size:32px;line-height:1.35;font-weight:600;white-space:pre-wrap;overflow-wrap:break-word;text-align:center;color:#8d856d;text-shadow:0 1px 2px #fff,0 0 5px #fff}
.travel-subtitle-text .done{color:#44694b}
.travel-subtitle-text .current{color:#385f41;background:#e6edc9;border-bottom:3px solid #8fa86a;border-radius:2px}
.travel-subtitle-hint{font:10px/1.4 "Segoe UI","Microsoft YaHei",sans-serif;text-align:center;color:#8a9874;margin-top:7px;white-space:nowrap}
.travel-subtitle-card.sentence-complete{border-color:#a4b78b;background:#f9fcedf2}
.travel-subtitle-card[data-compact=true]{padding:7px 10px;border-radius:12px}
.travel-subtitle-card[data-compact=true] .travel-subtitle-meta{font-size:8px;margin-bottom:4px}
.travel-subtitle-card[data-compact=true] .travel-subtitle-hint{font-size:9px;margin-top:4px}
.travel-subtitle-card[data-tiny=true] .travel-subtitle-meta,.travel-subtitle-card[data-tiny=true] .travel-subtitle-hint{display:none}
.course-game-panel>.game-start-card{z-index:3}
.trail-scene:has(.travel-subtitles) .trail-scene-label{top:auto;bottom:12px;left:12px}
.trail-scene:has(.travel-subtitles) .trail-scene-postmark{display:none}
.travel-layout .course-game-panel{display:block}
.travel-layout .course-game-canvas{width:100%;height:100%;min-width:0;min-height:0}
.travel-input-hint{font:10px/1.5 "Segoe UI","Microsoft YaHei",sans-serif;color:#7b8b68}
.travel-layout .input-row{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center}
.travel-layout .input-row .travel-input-hint{text-align:right}
.travel-layout .course-capture{grid-column:1/-1;height:60px;min-height:60px;font:19px/1.45 Georgia,serif;padding:8px 11px;background:#fcfdf5;border-color:#bac8a4;overflow-y:auto}
.travel-layout .course-capture::placeholder{font:12px/1.8 "Segoe UI","Microsoft YaHei",sans-serif;color:#a0a48b}
.travel-layout .typing-panel-head .book-title{font-size:16px}
.trail-input-line textarea{width:100%;height:60px;min-height:60px;resize:none;border:1px solid #c0caa8;background:#fcfdf5;border-radius:10px;padding:9px 11px;font:19px/1.45 Georgia,serif;color:#506c4d;outline:none;box-sizing:border-box}
.trail-input-line textarea:focus{border-color:#a4b58a;box-shadow:0 0 0 3px #bdc9a530}
.trail-input-line textarea::placeholder{font:11px/1.6 "Segoe UI","Microsoft YaHei",sans-serif;color:#a5a88f}
.trail-dialog{display:flex;flex-direction:column;overflow:hidden}
.trail-dialog:not([open]){display:none}
.trail-dialog .cat-game-top{flex:none;height:52px;min-height:52px}
.trail-dialog .trail-game-main{width:100%;flex:1;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:9px}
.trail-dialog .trail-hud{margin:0}
.trail-dialog .trail-play-layout{position:relative;min-height:0}
.trail-dialog .trail-travel-pane{min-height:0}
.trail-dialog .trail-scene{flex:1;min-height:0;height:auto}
.trail-dialog .trail-book{position:static;min-height:0;display:flex;flex-direction:column}
.trail-dialog .trail-book:has(textarea:focus){border-color:#a9ba8f}
.trail-dialog .trail-book-head{flex:none;padding:12px 17px}
.trail-dialog .trail-reading{flex:1;min-height:0;height:auto;overflow:hidden;padding-bottom:18px}
.trail-dialog .trail-input-line{flex:none;display:grid;grid-template-columns:1fr;gap:5px;padding:8px 14px}
.trail-dialog .trail-input-line>span{line-height:1.4}
.trail-dialog .trail-under{margin:0}
.trail-dialog .trail-foot{margin:0}
@media(max-width:600px){
  .travel-subtitle-card{top:6px;padding:8px 11px;left:4%;width:92%;border-radius:13px}
  .travel-subtitle-meta{font-size:9px;margin-bottom:5px}
  .travel-subtitle-hint{font-size:9px;margin-top:5px}
  .travel-layout .input-row{gap:4px}.travel-input-hint{font-size:9px}
  .travel-layout .course-capture{height:52px;min-height:52px;font-size:17px;padding:6px 9px}
  .travel-layout .typing-panel-head .book-title{font-size:13px}
  .learn-stage[data-mode=travel] #stageBody>div:last-child{grid-template-rows:minmax(0,1.2fr) minmax(0,1fr)}
}
@media(max-width:700px){
  .trail-dialog .trail-game-main{padding:9px;gap:7px}
  .trail-dialog .trail-play-layout{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1.05fr);grid-template-columns:minmax(0,1fr);gap:8px}
  .trail-dialog .trail-stop-list{margin-top:5px}
  .trail-dialog .trail-map-progress{margin-top:5px}
  .trail-dialog .trail-book-head{padding:7px 12px}
  .trail-dialog .trail-book-head h2{font-size:17px;margin-top:3px}
  .trail-dialog .trail-book-number{display:none}
  .trail-dialog .trail-reading{padding:9px 13px;font-size:17px;line-height:1.75}
  .trail-dialog .trail-input-line{padding:6px 11px}
  .trail-dialog .trail-input-line textarea{height:49px;min-height:49px;font-size:17px;padding:5px 9px}
  .trail-dialog .trail-under{gap:3px}
  .trail-dialog .trail-feedback{font-size:9px;line-height:1.5;min-height:0}
  .trail-dialog .trail-foot{font-size:7px;line-height:1.5}
  .trail-dialog .trail-sheet-card{padding:16px;max-width:345px}
  .trail-dialog .trail-sheet-symbol{display:none}
  .trail-dialog .trail-sheet-card h2{font-size:19px;margin-bottom:8px}
  .trail-dialog .trail-sheet-card p{line-height:1.6;margin-bottom:8px}
  .trail-dialog .trail-sheet-card .trail-primary{margin-top:11px}
}
@media(max-width:600px),(max-height:550px){
  .travel-layout .game-typing:has(.game-keyboard:not([hidden])) .lesson-text{display:none}
  .travel-layout .game-typing:has(.game-keyboard:not([hidden])) .typing-panel{padding:6px 9px}
  .travel-layout .game-typing:has(.game-keyboard:not([hidden])) .input-row{margin-top:3px;padding-top:3px;gap:3px}
  .travel-layout .game-typing:has(.game-keyboard:not([hidden])) .input-row label{display:none}
  .travel-layout .game-typing:has(.game-keyboard:not([hidden])) .travel-input-hint{grid-column:1/-1;font-size:8px;line-height:12px}
  .travel-layout .game-typing:has(.game-keyboard:not([hidden])) .course-capture{height:32px;min-height:32px;padding:4px 7px;font-size:16px}
  .travel-layout .game-keyboard{min-height:70px}
}
