/* Quiet RPG: readable parchment, forest greens, and deliberate, slow motion. */
.sound-adventure-card{display:grid;grid-template-columns:minmax(150px,.7fr) 1.3fr;gap:24px;align-items:center;margin:0 0 24px;padding:30px;border:1px solid #c4b37c;border-radius:20px;background:radial-gradient(ellipse at 20% 50%,#456b59 0,transparent 55%),#243f35;color:#f6efdb;overflow:hidden;position:relative}
.sound-adventure-card:after{content:"";position:absolute;inset:8px;border:1px solid #c4b37c55;border-radius:13px;pointer-events:none}
.sound-adventure-card .adventure-kicker{color:#d6c391;letter-spacing:1px;font-size:11px}
.sound-adventure-card h2{font-size:29px!important;line-height:1.45;letter-spacing:-1px;margin:10px 0!important}
.sound-adventure-card p{color:#d1dfcb!important;font-size:13px!important;margin:10px 0 16px}
.sound-adventure-card .btn{width:auto;background:#dfc48e;color:#233f32;border:1px solid #edd7ab;min-width:215px;text-align:left}
.sound-adventure-card .btn span{float:right;margin-left:24px}
.sound-adventure-card small{display:block;margin-top:12px;color:#c6d3bf;font-size:11px;line-height:1.6}
.adventure-card-art{position:relative;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#92aa7155,transparent 69%);max-width:240px}
.adventure-card-art svg{width:100%;filter:drop-shadow(0 12px 15px #11291f55)}
.adventure-card-art>span{position:absolute;right:0;top:5%;font-size:48px;color:#dfc48e}
#sound-dialog{width:min(1120px,calc(100% - 28px));padding:24px;background:#f6f2e6;border-radius:18px;max-height:96dvh}
#sound-dialog .sound-heading h2{font-size:25px;letter-spacing:-.8px}
#sound-dialog .sound-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;overscroll-behavior:contain;scrollbar-gutter:stable}
#sound-dialog .sound-body[hidden]{display:none}
#sound-config-panel{min-width:0;padding-right:3px}
#sound-config-panel #sound-options{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}
#sound-dialog .sound-console{margin:15px 0 0;padding:14px 20px;gap:20px;border-width:1px;border-radius:12px;box-shadow:0 2px 0 #ccb785}
#sound-dialog #sound-clock{font-size:33px}
#sound-dialog>.sound-heading .adventure-kicker{font-size:10px;letter-spacing:1.3px}
#sound-dialog>p{font-size:13px;margin:6px 0}
#sound-dialog #sound-status{font-size:12px;min-height:20px;margin:7px 0 0}
#sound-dialog #sound-storage-note{font-size:11px;margin-bottom:14px}
.sound-battle{min-width:0;align-self:start;border:1px solid #c9c9ad;border-radius:15px;background:#fffdf5;overflow:hidden;color:#2d483c;position:relative}
.battle-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #dcddc8}
.battle-heading .adventure-kicker{font-size:9px;letter-spacing:2px;color:#6e805d}
.battle-heading h3{font-size:21px;letter-spacing:-.6px;margin:5px 0 0}
#battle-level{font-size:11px;color:#49644d;border:1px solid #bdc9a6;background:#f1f3e5;padding:6px 10px;border-radius:999px;white-space:nowrap}
.battle-stage{aspect-ratio:1.65;position:relative;overflow:hidden;background:#d4dfc6;isolation:isolate}
#battle-scenery{position:absolute;inset:0;overflow:hidden}
.battle-landscape{width:100%;height:100%;display:block}
#battle-hero{position:absolute;width:25%;left:18%;bottom:16%;transform-origin:50% 90%;filter:drop-shadow(0 5px 3px #2b49352b)}
#battle-hero svg{width:100%;height:auto;display:block}
#battle-monster{position:absolute;width:27%;right:14%;bottom:17%;transform-origin:50% 90%}
#battle-monster svg{width:100%;display:block}
#battle-defeated{position:absolute;width:27%;right:14%;bottom:17%;opacity:0;pointer-events:none;transform-origin:center bottom}
#battle-defeated svg{width:100%;display:block}
.victory #battle-defeated{animation:monster-dissolve 1.5s ease-out 1}
.battle-enemy-title{position:absolute;right:11%;top:8%;text-align:center;color:#314b40;background:#fcf8e5e8;padding:7px 13px;border:1px solid #e8e2be;border-radius:9px;max-width:48%;box-shadow:0 3px 10px #4563420a}
.battle-enemy-title span{display:block;font-size:9px;margin-bottom:4px;color:#617364}
.battle-enemy-title b{display:block;font-size:14px;font-weight:700;word-break:keep-all}
.boss-encounter .battle-enemy-title{border-color:#b69a6e;background:#fff2d0ee}
.boss-encounter #battle-monster{width:30%;right:12%;bottom:15%}
.battle-kills{position:absolute;bottom:12px;right:13px;background:#294b3eea;color:#f7efcd;border:1px solid #c6c79980;border-radius:6px;padding:6px 10px;font-size:11px;letter-spacing:.3px}
#battle-tool{display:none}
#battle-charm{position:absolute;left:36%;bottom:30%;width:7%;filter:drop-shadow(0 0 6px #d8d8a066)}
.battle-spell{position:absolute;left:39%;bottom:39%;font-size:25px;color:#f9e7a7;opacity:0;text-shadow:0 0 15px #dce9b3;pointer-events:none}
.battle-spell[data-kind="twig"]{color:#e1edb0;font-size:31px}
.battle-spell[data-kind="book"]{color:#ecce99;font-size:35px;letter-spacing:-5px}
.battle-spell[data-kind="moonstaff"]{color:#e0d7f1;font-size:30px;text-shadow:0 0 16px #cbc1f0}
.battle-health{display:flex;gap:10px;align-items:center;padding:13px 17px 6px;font-size:11px}
#sound-dialog .battle-health label{font-size:11px;margin:0;white-space:nowrap;font-weight:400;color:#61705c}
.battle-health progress{width:100%;height:7px;flex:1;border:0;appearance:none;border-radius:8px;overflow:hidden;accent-color:#719372;background:#e5eadb}
.battle-health progress::-webkit-progress-bar{background:#e5eadb;border-radius:8px}
.battle-health progress::-webkit-progress-value{background:linear-gradient(90deg,#a1b991,#648b75);border-radius:8px;transition:width .8s linear}
.battle-health progress::-moz-progress-bar{background:#719372;border-radius:8px}
#battle-health-label{min-width:32px;text-align:right;font-variant-numeric:tabular-nums}
.battle-playback{font-size:12px!important;line-height:1.6;margin:8px 17px 0;color:#4f6953!important}
.battle-next-reward{font-size:11px!important;line-height:1.7;margin:4px 17px 0;color:#6f785c!important}
.battle-announcement{font-size:12px!important;font-weight:600;color:#8b6639!important;min-height:23px;margin:6px 17px 0;line-height:1.65}
.battle-tools{display:flex;flex-wrap:wrap;gap:8px;padding:4px 15px 14px}
.battle-tools button{background:#f2f4e8;border:1px solid #d6ddc4;border-radius:7px;padding:8px 11px;color:#536b53;font:inherit;font-size:11px;cursor:pointer;min-height:36px}
.battle-tools button[aria-pressed="true"]{background:#e0ebd6;border-color:#819f76}
.battle-collection,.battle-rules{border-top:1px solid #dfdfcd;padding:13px 16px;font-size:12px;line-height:1.7}
.battle-collection summary,.battle-rules summary{cursor:pointer;min-height:24px;color:#405942;font-weight:600}
#battle-collection-count{font-size:10px;font-weight:400;float:right;color:#748366}
.battle-collection h4{font-size:13px;margin:18px 0 9px}
.battle-collection p,.battle-rules p{font-size:11px;line-height:1.75;margin:12px 0;color:#62715f}
.battle-region-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}
.waypoint{display:grid;grid-template-columns:20px 1fr;align-items:center;column-gap:5px;text-align:left;border:1px solid #c9d2ba;border-radius:9px;background:#fafbef;color:#476247;padding:9px;font:inherit;cursor:pointer;min-width:0}
.waypoint>span{grid-row:1/3;color:#a2894e;font-size:21px}
.waypoint b{font-size:11px}
.waypoint small{font-size:9px;line-height:1.6;color:#687961}
.waypoint[aria-pressed="true"]{background:#e9f0dc;border-color:#849b6c;box-shadow:inset 0 0 0 1px #849b6c}
.waypoint:disabled{color:#727968;background:#f1f0e7;border-color:#dfdfcf;cursor:default}
.battle-equipment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.equipped-slot{display:flex;flex-direction:column;align-items:center;text-align:center;padding:9px 5px;background:#eef1e2;border:1px solid #cbd1b7;border-radius:10px;min-width:0}
.equipped-slot>span:first-child{font-size:9px;color:#6e795f}
.equipped-slot .relic-art{width:47px;height:47px;margin:7px 0}
.equipped-slot b{font-size:10px;word-break:keep-all}
.empty-slot{font-size:25px;color:#b5bda4;display:grid;place-items:center;height:61px}
.unequip{border:0;background:transparent;color:#6c795d;font:inherit;font-size:10px;padding:7px;cursor:pointer;text-decoration:underline}
.battle-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.relic{display:flex;align-items:center;gap:8px;padding:10px 7px;text-align:left;min-width:0;border:1px solid #d2d3bb;background:#fffcef;border-radius:10px;color:#405840;cursor:pointer;font:inherit}
.relic .relic-art{width:42px;flex:0 0 42px}
.relic>span{min-width:0;display:flex;flex-direction:column;gap:3px}
.relic small{color:#85754b;font-size:8px}
.relic b{font-size:11px;word-break:keep-all}
.relic span span{font-size:9px;line-height:1.6;color:#728064;overflow-wrap:anywhere;word-break:keep-all}
.relic em{font-style:normal;font-size:9px;color:#49704c;font-weight:600}
.relic[aria-pressed="true"]{border-color:#769264;background:#f0f5e2;box-shadow:inset 0 0 0 1px #769264}
.relic.undiscovered{background:#f0f0e7;border-color:#dddfcf;cursor:default}
.relic.undiscovered .relic-art{filter:grayscale(.9);opacity:.5}
.relic.undiscovered em{color:#798273;font-weight:400}
.relic-art{display:block;max-width:100%}
.battle-victory-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.battle-victory-particles span{position:absolute;color:#fff2af;font-size:28px;right:27%;bottom:30%;opacity:0}
.battle-victory-particles span:nth-child(2){right:18%;bottom:41%;font-size:21px}
.battle-victory-particles span:nth-child(3){right:32%;bottom:52%;font-size:17px}
[data-playback="playing"] #battle-monster{animation:monster-breathe 4s ease-in-out infinite}
[data-playback="playing"] .camp-flame{animation:camp-breathe 3s ease-in-out infinite;transform-origin:451px 317px}
.casting[data-playback="playing"] .battle-spell{animation:quiet-spell 1.6s ease-out 1}
.casting[data-playback="playing"] #battle-hero{animation:hero-cast 1.5s ease-in-out 1}
.victory .battle-victory-particles span{animation:quiet-discovery 2.4s ease-out 1}
.victory .battle-victory-particles span:nth-child(2){animation-delay:.15s}
.victory .battle-victory-particles span:nth-child(3){animation-delay:.3s}
.still *,[data-playback="paused"] *,[data-playback="muted"] *,[data-playback="ready"] *{animation:none!important}
.still .battle-health progress::-webkit-progress-value{transition:none}
@keyframes monster-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes camp-breathe{0%,100%{transform:scale(1)}50%{transform:scale(.93,1.06)}}
@keyframes quiet-spell{0%{opacity:0;transform:translateX(0) scale(.5)}25%{opacity:.9}80%{opacity:.75}100%{opacity:0;transform:translateX(115px) scale(.7)}}
@keyframes hero-cast{0%,100%{transform:rotate(0)}35%{transform:rotate(3deg)}}
@keyframes quiet-discovery{0%{opacity:0;transform:translateY(0) scale(.7)}20%{opacity:1}100%{opacity:0;transform:translateY(-45px) scale(1.1)}}
@keyframes monster-dissolve{0%{opacity:.8;transform:scale(1)}45%{opacity:.45}100%{opacity:0;transform:translateY(-14px) scale(.35)}}
.sound-battle button:focus-visible,.sound-adventure-card button:focus-visible{outline:3px solid #ac7f32;outline-offset:3px}
@media(min-width:901px){#battle-open-settings{display:none}}
@media(max-width:900px){
  #sound-dialog{width:min(660px,calc(100% - 20px));padding:18px;max-height:96dvh}
  #sound-dialog .sound-body{display:block;padding-right:4px}
  .sound-battle{position:relative;margin-bottom:20px}
  .battle-stage{aspect-ratio:1.85}
  .battle-heading{padding:13px 16px}
  .battle-heading h3{font-size:19px}
  .battle-health{padding-top:10px}
  .battle-tools{padding-bottom:10px}
  .battle-collection,.battle-rules{padding:10px 15px}
  #sound-dialog .sound-console{flex-direction:row;flex-wrap:wrap;gap:10px;padding:12px}
  #sound-dialog .sound-console>div{width:auto;min-width:0}
  #sound-dialog #sound-clock{min-width:90px;font-size:30px}
}
@media(max-width:600px){
  .sound-adventure-card{grid-template-columns:90px minmax(0,1fr);gap:12px;padding:22px 15px}
  .sound-adventure-card h2{font-size:22px!important;letter-spacing:-.8px}
  .sound-adventure-card .adventure-kicker{font-size:9px;letter-spacing:0}
  .sound-adventure-card .btn{min-width:0;width:100%;font-size:13px;padding:12px}
  .sound-adventure-card .btn span{margin-left:5px}
  .sound-adventure-card p{font-size:11px!important}
  .sound-adventure-card small{font-size:9px}
  .adventure-card-art>span{font-size:30px}
  #sound-dialog{padding:13px;border-radius:14px;max-height:96dvh}
  #sound-dialog .sound-heading h2{font-size:21px}
  #sound-dialog .sound-heading{flex-wrap:nowrap;gap:6px}
  #sound-dialog .sound-heading .btn{font-size:10px;padding:9px 7px;min-width:0}
  #sound-dialog>.sound-heading .adventure-kicker{font-size:8px;letter-spacing:.8px}
  #sound-dialog>p{font-size:11px;line-height:1.5}
  #sound-dialog #sound-storage-note{font-size:10px;margin:3px 0 10px}
  #sound-dialog .sound-console{gap:6px;margin-top:10px;padding:9px}
  #sound-dialog .sound-console>div{gap:5px;flex-basis:100%}
  #sound-dialog .sound-console .btn{font-size:12px;padding:9px 5px;min-height:38px}
  #sound-dialog #sound-clock{font-size:24px;min-width:0;line-height:1.1}
  #sound-dialog #sound-status{font-size:10px;line-height:1.5;margin-top:6px;min-height:16px}
  .battle-heading{padding:11px 13px}
  .battle-heading h3{font-size:17px}
  .battle-stage{aspect-ratio:1.55}
  #battle-hero{width:27%;left:16%;bottom:17%}
  #battle-monster{width:29%;right:13%}
  .battle-enemy-title b{font-size:12px}
  .battle-enemy-title span{font-size:8px}
  .battle-enemy-title{padding:6px 9px;right:8%;top:8%}
  .battle-health{padding:10px 12px 3px;gap:7px}
  .battle-playback{font-size:11px!important;margin:7px 12px 0}
  .battle-next-reward{font-size:10px!important;margin:4px 12px 0}
  .battle-announcement{font-size:11px!important;margin:4px 12px 0;min-height:20px}
  .battle-tools{padding:4px 10px 10px;gap:6px}
  .battle-tools button{font-size:10px;padding:7px 9px}
  .battle-collection,.battle-rules{padding:10px 12px;font-size:11px}
  .relic{padding:8px 5px;gap:5px}
  .relic .relic-art{width:32px;flex-basis:32px}
  .relic b{font-size:10px}
}
@media(max-width:350px){.sound-adventure-card{grid-template-columns:65px minmax(0,1fr);padding:20px 12px}.sound-adventure-card h2{font-size:19px!important}.battle-items{grid-template-columns:1fr}.battle-heading .adventure-kicker{font-size:8px;letter-spacing:1px}#battle-level{font-size:9px;padding:5px 7px}.battle-health label{font-size:10px!important}}
@media(prefers-reduced-motion:reduce){.sound-battle *{animation:none!important;scroll-behavior:auto!important}.battle-health progress::-webkit-progress-value{transition:none}.sound-adventure-card *{transition:none}}

/* Feedback is a conversation with choices, never a success/failure rating. */
.mission-approaches{border:0;margin:14px 0;padding:0}
.mission-approaches legend{font-size:14px;line-height:1.6;margin-bottom:10px}
#mission-record .mission-approaches label{display:flex;gap:9px;align-items:flex-start;background:#f7f7ed;border:1px solid #ccd8c0;border-radius:10px;padding:12px;margin:8px 0;cursor:pointer}
.mission-approaches input{flex:0 0 auto;margin-top:4px;width:17px;height:17px;accent-color:#4f775e}
.mission-approaches label:has(input:checked){border-color:#6d905f;background:#eef4e3;box-shadow:inset 0 0 0 1px #6d905f}
.mission-approaches b{font-size:14px;line-height:1.5}
.mission-approaches small{display:block;font-size:12px;font-weight:400;color:#60735a;line-height:1.7;margin-top:4px}
.mission-action-preview{background:#edf3e2;border-left:3px solid #8ca570;padding:12px;margin:12px 0;font-size:14px!important}
#mission-barrier-wrap{margin:15px 0}
#mission-barrier-wrap[hidden]{display:none}
#mission-barrier-wrap select{width:100%;font:inherit;font-size:14px;background:#fffdf3;border:1px solid #bfceb1;border-radius:10px;padding:12px;min-height:44px}
.coach-feedback-card{background:#faf5e7;border:1px solid #d7c49b;border-radius:13px;padding:20px;margin-top:20px;line-height:1.7}
.coach-feedback-card .adventure-kicker{font-size:10px;letter-spacing:.8px;color:#7d7756}
.coach-feedback-card h4{font-size:18px;margin:7px 0 10px;color:#34543e;letter-spacing:-.4px}
.coach-feedback-card p{margin:9px 0}
.coach-feedback-card blockquote{font-size:15px;line-height:1.8;color:#355738;border-left:3px solid #a3ac7b;background:#eef0df;padding:13px 15px;margin:14px 0;border-radius:0 8px 8px 0}
.coach-feedback-card .small{font-size:12px;color:#6e785e}
.coach-reactions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.coach-reactions button{flex:1 1 42%;background:#fffdf4;border:1px solid #b7c2a4;border-radius:9px;color:#42603f;padding:12px 8px;font:inherit;font-size:13px;min-height:44px;cursor:pointer}
.coach-reactions button[aria-pressed="true"]{background:#e2ebd2;border-color:#749262;box-shadow:inset 0 0 0 1px #749262}
.coach-reactions button:disabled{opacity:.6;cursor:default}
.coach-reactions button:focus-visible{outline:3px solid #ac7f32;outline-offset:3px}
.coach-feedback-card.crisis{background:#fff8ef;border-color:#c39678}
.coach-feedback-card.crisis a{display:inline-block;padding:8px;color:#7a4634;font-weight:700}
@media(max-width:600px){.coach-feedback-card{padding:16px}.coach-feedback-card h4{font-size:17px}.coach-feedback-card blockquote{font-size:14px;padding:12px}.coach-reactions button{font-size:12px}}
.sound-feedback{padding:17px;border-top:1px solid #ddd0ab;background:#fbf4e3;font-size:13px;line-height:1.7}
.sound-feedback[hidden]{display:none}
.sound-feedback h4{font-size:18px;margin:6px 0 9px;letter-spacing:-.4px}
.sound-feedback .adventure-kicker{font-size:10px;color:#8b7a53;letter-spacing:.5px}
.sound-feedback .small{font-size:12px;line-height:1.7;color:#727a60}
.sound-recap-stats{font-size:13px;color:#446546;margin:7px 0}
.sound-feelings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.sound-feelings button{font:inherit;font-size:12px;line-height:1.6;min-height:44px;border:1px solid #bbc8a6;border-radius:9px;padding:9px 7px;background:#fffdf1;color:#456040;cursor:pointer;word-break:keep-all}
.sound-feelings button[aria-pressed="true"]{border-color:#769563;box-shadow:inset 0 0 0 1px #769563;background:#e8f0da}
.sound-feedback button:disabled{opacity:.5;cursor:default}
.sound-feedback button:focus-visible{outline:3px solid #ac7f32;outline-offset:3px}
.sound-feedback-answer{border-top:1px dashed #cfc7a6;padding-top:10px}
.sound-feedback-answer>p{font-size:13px;line-height:1.8;margin:9px 0}
.sound-feedback-answer blockquote{border-left:3px solid #b1af7d;padding:10px 13px;margin:12px 0;background:#f0eed8;font-size:13px;line-height:1.8}
.sound-feedback-answer .coach-reactions{gap:7px;margin:12px 0}
.sound-feedback-answer .coach-reactions button{font-size:11px;padding:10px 5px}
.sound-feedback-note{border-top:1px solid #e3d9be;padding-top:10px;font-size:12px}
.sound-feedback-note summary{cursor:pointer;padding:5px 0}
#sound-dialog .sound-feedback-note label{font-size:12px;font-weight:400}
.sound-feedback-note textarea{width:100%;min-height:76px;border:1px solid #c9cdb2;background:#fffef7;border-radius:8px;padding:10px;color:#344d39;font:inherit;line-height:1.6;resize:vertical}
#sound-feedback-save-note{font:inherit;font-size:12px;background:#eef1dd;border:1px solid #b3c1a0;border-radius:8px;padding:9px 14px;color:#496044;margin:8px 0;min-height:40px;cursor:pointer}
#sound-feedback-status{font-size:12px;line-height:1.7;min-height:22px;margin-top:8px;color:#6c744f}
.sound-feedback-answer.crisis a{display:inline-block;min-height:44px;padding:10px;color:#774b36}
@media(max-width:600px){.sound-feedback{padding:15px 12px}.sound-feedback h4{font-size:16px}}
.adventure-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px 0 16px;margin-bottom:5px}
.adventure-shortcuts button{display:flex;justify-content:center;align-items:center;gap:8px;min-width:0;border:1px solid #cdd7bd;border-radius:10px;padding:12px 7px;min-height:46px;background:#f4f5e9;color:#486244;font:inherit;font-size:13px;cursor:pointer}
.adventure-shortcuts button span{font-size:21px;color:#8a8b55;line-height:1}
.adventure-shortcuts button:hover{background:#e9efdc;border-color:#a5b68e}
.adventure-shortcuts button:focus-visible{outline:3px solid #af8537;outline-offset:3px}
.mission-heading,.campaign-book{scroll-margin-top:20px}
@media(max-width:600px){.adventure-shortcuts{gap:5px;padding-top:4px}.adventure-shortcuts button{flex-direction:column;gap:5px;font-size:11px;padding:9px 3px}.adventure-shortcuts button span{font-size:20px}}

/* Keep useful instructions readable on a phone; ornamental labels stay quiet. */
#battle-level{font-size:12px}
.battle-kills{font-size:12px}
.battle-playback{font-size:13px!important}
.battle-next-reward{font-size:12px!important;color:#5d694b!important}
.battle-tools button{font-size:12px;min-height:44px}
.battle-collection,.battle-rules{font-size:13px}
.battle-collection summary,.battle-rules summary{min-height:30px;line-height:30px}
.battle-collection p,.battle-rules p{font-size:13px;color:#52634e}
#battle-collection-count{font-size:11px}
.waypoint b{font-size:13px}
.waypoint small{font-size:11px}
.equipped-slot>span:first-child,.equipped-slot b{font-size:12px}
.unequip{font-size:12px;min-height:40px}
.relic small{font-size:10px}
.relic b{font-size:13px}
.relic span span,.relic em{font-size:11px}
.sound-feedback-answer .coach-reactions button{font-size:12px}
#sound-feedback-history[hidden]{display:none}
#sound-feedback-history blockquote{margin:12px 0;padding:10px 13px;border-left:3px solid #a9ae86;background:#f3f1df;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
@media(max-width:600px){
  #sound-dialog .sound-heading .btn{font-size:12px;min-height:44px}
  #sound-dialog #sound-status{font-size:12px}
  .battle-enemy-title b{font-size:14px}
  .battle-enemy-title span{font-size:10px}
  .battle-health,#sound-dialog .battle-health label{font-size:12px!important}
  .battle-items{grid-template-columns:1fr}
  .relic .relic-art{width:45px;flex-basis:45px}
  .sound-adventure-card small{font-size:11px}
}

/* Playback, volume and stopping remain visible while scenery or notes scroll. */
#sound-dialog .sound-console{display:grid;grid-template-columns:110px minmax(180px,240px) minmax(0,1fr);gap:18px}
#sound-dialog .sound-volume-control{display:block;width:auto;min-width:0}
#sound-dialog .sound-volume-control label{font-size:12px;color:#f1e6c8;margin:0;font-weight:400;line-height:1.4}
#sound-dialog #sound-volume{display:block;height:30px;min-height:30px;margin:2px 0 0;accent-color:#aed0ab}
#sound-dialog .sound-playback-controls{display:flex;flex-wrap:nowrap;gap:8px;min-width:0}
@media(max-width:900px){#sound-dialog .sound-console{grid-template-columns:80px minmax(0,1fr)}#sound-dialog .sound-playback-controls{grid-column:1/-1;width:100%}#sound-dialog #sound-clock{font-size:27px}}
@media(max-width:600px){#sound-dialog .sound-console{gap:5px 12px}#sound-dialog .sound-playback-controls{gap:5px}#sound-dialog .sound-volume-control label{font-size:11px}#sound-dialog #sound-clock{font-size:24px}}

/* A quiet discovery route: existing travel controls, no extra game rules. */
#battle-map-count{font-size:12px;font-weight:400;color:#61725b;margin-left:8px}
.battle-region-list{grid-template-columns:1fr;gap:13px;position:relative}
.battle-region-list::before{content:"";position:absolute;left:40px;top:25px;bottom:25px;border-left:2px dashed #b4bd9e}
.waypoint{position:relative;grid-template-columns:68px 1fr;column-gap:12px;min-height:68px;padding:7px 10px;z-index:0}
.waypoint b{font-size:13px}.waypoint small{font-size:11px}
.waypoint>.waypoint-view{grid-row:1/3;position:relative;width:68px;height:50px;overflow:hidden;border-radius:8px;background:#e0e3d4}
.waypoint-view .battle-landscape{width:100%;height:100%;position:static;display:block}
.waypoint-view .camp-flame,.waypoint-view .camp-flame-core{animation:none}
.waypoint-mist{display:grid;place-items:center;height:100%;color:#89957d;background:radial-gradient(ellipse,#f5f3e5,#d9dfce)}
.mission-learning{padding:12px 14px;margin:12px 0;border-radius:10px;background:#f1f4e9;font-size:13px;line-height:1.8}
.mission-learning summary{cursor:pointer;min-height:32px;color:#405942}
.mission-learning p{margin:5px 0}

/* Field movement uses visual coordinates only, independent of audio progress. */
#battle-field{touch-action:pan-y;--hero-x:32%;--hero-y:78%;--enemy-x:72%;--enemy-y:73%}
#battle-field.can-walk{cursor:crosshair}
#battle-field:focus-visible{outline:3px solid #ac7f32;outline-offset:-4px}
#battle-field #battle-hero{width:22%;left:var(--hero-x);bottom:calc(100% - var(--hero-y));transform:translate(-50%,10%);animation:none;will-change:left,bottom}
#battle-field #battle-monster{width:23%;left:var(--enemy-x);right:auto;bottom:calc(100% - var(--enemy-y));transform:translate(-50%,10%);animation:none;will-change:left,bottom}
.boss-encounter #battle-field #battle-monster{width:26%}
#battle-field #battle-defeated{left:var(--defeated-x,72%);right:auto;bottom:calc(100% - var(--defeated-y,73%));width:23%;translate:-50% 10%;z-index:80}
#battle-field #battle-charm{left:calc(var(--hero-x) + 7%);bottom:calc(100% - var(--hero-y) + 10%);width:5%;z-index:89}
#battle-field .battle-spell{left:var(--hero-x);bottom:calc(100% - var(--hero-y) + 16%);z-index:95}
#battle-field .battle-enemy-title,#battle-field .battle-kills{z-index:110;pointer-events:none}
#battle-field .battle-victory-particles{z-index:100;pointer-events:none}
#battle-field svg,#battle-field #battle-charm{pointer-events:none}
#battle-hero.facing-left>svg{scale:-1 1}
#battle-hero.walking>svg{animation:field-walk-bob .7s ease-in-out infinite}
#battle-hero.walking .hero-leg-left{transform-origin:87px 188px;animation:field-step .7s ease-in-out infinite}
#battle-hero.walking .hero-leg-right{transform-origin:127px 188px;animation:field-step .7s ease-in-out -.35s infinite}
[data-playback="playing"] #battle-monster>svg{animation:monster-breathe 3s ease-in-out infinite}
#battle-destination{position:absolute;width:28px;height:13px;transform:translate(-50%,-50%);border:2px solid #fff5c4;border-radius:50%;background:#e8d79755;box-shadow:0 0 0 4px #58755944;pointer-events:none;z-index:10}
.battle-walk-hint{margin:0;padding:9px 13px;background:#eef1e2;color:#50664e;font-size:12px;line-height:1.6;border-bottom:1px solid #dce0c9}
@keyframes field-walk-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}
@keyframes field-step{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}
@keyframes quiet-spell{0%{opacity:0;transform:translate(0,0) scale(.5)}25%{opacity:.9}80%{opacity:.75}100%{opacity:0;transform:translate(var(--spell-dx,115px),var(--spell-dy,0px)) scale(.7)}}
