.game-shell{--aspect: 480 / 320;--shell-max: 860px;--chrome-h: 330px}.thud{display:flex;align-items:center;gap:8px}.thud .ttitle{flex:1;min-width:0;font-weight:900;color:var(--accent-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thud .tturn{font-size:13px;color:var(--muted);white-space:nowrap}.thud [aria-pressed=true]{background:#d6403f40;border-color:#d6403f;color:#fff}.stage canvas{touch-action:none;cursor:pointer}.overlay{overflow-y:auto;justify-content:safe center;background:#140e089e}.overlay .chap{margin:0;color:var(--accent-2);font-weight:900;font-size:13px;letter-spacing:.1em}.overlay .logo{font-family:"Noto Serif TC",Noto Sans TC,serif;letter-spacing:.08em}.overlay .title.win{color:#ffd166}.overlay .title.lose{color:#ff8a80}.battles{list-style:none;margin:0;padding:0;display:grid;gap:4px;width:min(100%,320px);font-size:13px}.battles li{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:8px;background:#ffffff0d;color:var(--muted)}.battles li span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#ffffff1a;font-size:11px;font-weight:900}.battles li.ok{color:var(--text)}.battles li.ok span{background:#3d7bd9;color:#fff}.battles li.now{color:#fff;outline:1px solid var(--accent-2)}.battles li em{margin-left:auto;font-style:normal;font-size:11px;color:#8fe39a}.rules{margin:0;display:grid;gap:6px;width:min(100%,420px);text-align:left;font-size:14px}.rules div{display:grid;grid-template-columns:auto 1fr;gap:10px}.rules dt{color:var(--accent-2);font-weight:900}.rules dd{margin:0}.lvups{display:grid;gap:2px;font-size:13px;text-align:center}.lvups b{color:#ffd166}.overlay.story{justify-content:flex-end;background:linear-gradient(180deg,#0a060226,#0a06028c);padding:12px}.dialog{width:100%;min-height:92px;display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:12px;border:2px solid #c9a24a;background:#1c120aeb;box-shadow:0 8px 24px #00000080;cursor:pointer;text-align:left}.dialog .face{flex:none;width:64px;height:64px;border-radius:10px;background:#e8d9b5;border:2px solid #c9a24a}.dialog .words b{color:#ffd166;font-size:15px}.dialog .words p{margin:4px 0 0;font-size:16px;line-height:1.55;color:#f4ead6}.dialog .narration{width:100%;text-align:center}.dialog .narration p{font-family:"Noto Serif TC",Noto Sans TC,serif;color:#e8dcc0}.overlay .skip{position:absolute;top:10px;right:10px}.panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:10px;border-radius:12px;background:var(--panel);border:1px solid var(--line);min-height:104px}.panel[hidden]{display:none}.panel .card{display:flex;gap:10px;align-items:flex-start}.panel .card .face{flex:none;width:56px;height:56px;border-radius:10px;background:#e8d9b5;border:2px solid #3d7bd9}.panel .card.enemy .face{border-color:#d6403f}.panel .info{min-width:0;flex:1;display:grid;gap:3px;font-size:12px}.panel .nm{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.panel .nm b{font-size:15px}.panel .cls,.panel .lv{color:var(--muted)}.panel .tag{color:#ffd166}.panel .row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:6px}.panel .row span:first-child{color:var(--muted)}.panel .row em{font-style:normal;font-variant-numeric:tabular-nums}.panel .bar{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.panel .bar i{display:block;height:100%}.panel .bar.hp i{background:#7fd36b}.panel .bar.mp i{background:#6ba5ff}.panel .bar.xp i{background:#ffd166}.panel .stats{color:var(--muted)}.panel .ter{display:block;margin-top:2px}.panel .goal{margin:0;font-size:13px}.panel .goal b{display:block;color:var(--accent-2)}.panel .right{display:grid;align-content:start;gap:8px}.panel .hint{font-size:12px;color:var(--muted);min-height:16px}.panel .acts{display:flex;flex-wrap:wrap;gap:6px}.panel .acts .btn{padding:8px 14px;font-size:14px}.panel .acts .btn small{color:var(--muted);font-size:11px}.panel .acts .end{margin-left:auto}.panel .fc{display:grid;gap:2px;font-size:13px;color:var(--text)}.panel .fc b{font-size:16px}.panel .good{color:#8fe39a}.panel .bad{color:#ff8a80}@media (max-width: 560px){.panel{grid-template-columns:1fr}.thud #danger-btn,.thud #speed-btn{padding:4px 8px;font-size:12px}.dialog .face{width:48px;height:48px}.dialog .words p{font-size:14px}.battles,.overlay .tagline,.overlay .hint{font-size:12px}}.overlay.story{backdrop-filter:none;-webkit-backdrop-filter:none}.game-shell>*{min-width:0}@media (max-width: 560px){.thud{flex-wrap:wrap;row-gap:6px}.thud .ttitle{flex-basis:100%}.thud .tturn{flex-basis:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.thud #goal-btn,.thud #menu-btn{padding:4px 8px;font-size:12px}}.code-box{display:grid;gap:8px;width:min(100%,440px);text-align:left;font-size:13px}.code-box label{display:grid;gap:4px;color:var(--muted)}.code-box textarea{width:100%;resize:none;padding:8px;border-radius:8px;border:1px solid var(--line);background:#0000004d;color:var(--text);font:12px/1.4 ui-monospace,monospace;word-break:break-all}.code-box .btn{justify-self:start}.code-msg{margin:0;color:#ffd166;font-weight:700}@media (max-width: 560px){.overlay.menu .tagline,.overlay.menu .hint,.overlay.intro .hint{display:none}.overlay.menu{gap:8px;padding:14px}.battles{grid-template-columns:repeat(5,auto);justify-content:center;gap:8px;width:auto}.battles li{padding:0;background:none;font-size:0}.battles li span{width:26px;height:26px;font-size:12px}.battles li.now span{outline:2px solid var(--accent-2)}.battles li.now{outline:none}.battles li em{display:none}}.overlay .gold-gain{margin:0;color:#ffd166;font-weight:900}.panel.camp .gold{font-size:14px}.panel.camp .gold b{color:var(--accent-2);margin-right:4px}.panel.camp.tab-prep,.panel.camp.tab-shop{grid-template-columns:1fr}.panel.camp .acts{align-items:center}.members{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.members .mem{flex:none;display:grid;justify-items:center;gap:2px;padding:4px 6px;border-radius:10px;border:1px solid var(--line);background:#ffffff0a;color:var(--text);font:inherit;font-size:11px;cursor:pointer}.members .mem img{width:40px;height:40px;border-radius:8px;background:#e8d9b5}.members .mem.on{border-color:var(--accent-2);background:#ffd1661f}.prep-body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px}.stat-grid{display:grid;grid-template-columns:repeat(5,auto);gap:2px 12px;margin:2px 0;justify-content:start}.stat-grid dt{color:var(--muted);font-size:11px}.stat-grid dd{margin:0;font-weight:900;font-size:14px}.slots{display:grid;gap:6px;align-content:start}.slot{display:grid;gap:2px;font-size:12px;color:var(--muted)}.slot select{padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;font-size:13px}.shop-col h3{margin:0 0 6px;font-size:13px;color:var(--accent-2)}.shop{list-style:none;margin:0;padding:0;display:grid;gap:4px}.shop li{display:grid;grid-template-columns:70px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;background:#ffffff0a;font-size:12px}.shop li span{color:var(--muted)}.shop li em{font-style:normal;color:var(--muted);font-size:11px;white-space:nowrap}.shop .btn.small{padding:4px 10px;font-size:12px;white-space:nowrap}@media (max-width: 560px){.prep-body{grid-template-columns:1fr}.shop li{grid-template-columns:1fr auto}.shop li span{grid-column:1 / -1;grid-row:2}.shop li em{display:none}}.overlay .chapter-title{font-family:"Noto Serif TC",Noto Sans TC,serif;font-size:clamp(24px,6vw,34px);letter-spacing:.12em;color:#ffd166}.panel.camp.tab-save{grid-template-columns:1fr}.save-col{width:100%;text-align:left}.save-col h3{margin:0 0 4px;font-size:14px;color:var(--accent-2)}.save-col .hint{margin:0 0 6px}.slots-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.slots-list li{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:4px 10px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:#ffffff0a;font-size:13px}.slots-list li b{color:var(--accent-2);white-space:nowrap}.slots-list li.empty span{color:var(--muted)}.slots-list li em{font-style:normal;font-size:12px;color:var(--muted);white-space:nowrap}.slots-list .slot-btns{display:flex;gap:6px}@media (max-width: 600px){.slots-list li{grid-template-columns:auto 1fr}.slots-list li em{justify-self:end}.slots-list .slot-btns{grid-column:1 / -1;justify-content:flex-end}}.camp-codes{width:100%;grid-template-columns:1fr auto;align-items:end}.camp-codes .btn{justify-self:stretch}@media (max-width: 600px){.camp-codes{grid-template-columns:1fr}.camp-codes .btn{justify-self:start}}.camp-codes textarea{font-size:11px}.panel.camp.tab-save .save-col+.save-col{margin-top:4px}
