.campaign-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.campaign-toolbar button{font-size:12px}.renown-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.renown-grid>div{background:#152d33;padding:14px;border:1px solid var(--line)}.renown-grid small{display:block;color:var(--muted)}.renown-grid strong{display:block;font:24px Georgia;color:var(--gold);margin-top:8px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hero-grid article{padding:18px;border:1px solid var(--line);border-top:3px solid var(--hero);background:#183137}.hero-grid h3{margin:12px 0}.hero-grid p{font-size:12px;color:var(--muted)}.hero-grid button{font-size:12px;width:100%}.combat-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px}.battle-board{position:relative;aspect-ratio:1.35;background:repeating-linear-gradient(0deg,transparent 0 35px,#5a9c9c12 36px 37px),radial-gradient(ellipse at 20% 30%,#347a88,#163f56);border:1px solid #6b8a86;overflow:hidden;box-shadow:inset 0 0 30px #09172299}.hex{position:absolute;width:6.2%;height:9.7%;padding:0;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);border:0;border-radius:0;background:#396b7c99;color:#93b5b4;opacity:1!important;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;line-height:1.1;transition:transform .15s,background .2s;cursor:pointer}.hex:hover:not(:disabled){transform:scale(1.08);z-index:2}.hex.reachable{background:#8da79480;color:#fff;box-shadow:0 0 8px #a4ddb288;animation:pulseCell 2s infinite ease-in-out}.hex.reachable:hover{background:#cfbb83;color:#183137}.hex.player{background:#457568;color:#fff}.hex.enemy{background:#8c514b;color:#fff}.hex.flag{background:#cfb170;color:#142d33;box-shadow:0 0 10px #e8c97e}.hex.targetable{box-shadow:0 0 12px #e35a50;animation:targetBlink 1.5s infinite}.hex span{font-size:20px;display:flex;align-items:center;justify-content:center}.hex small{font-size:9px;font-weight:bold}.hex .bearing{position:absolute;right:4px;top:3px;font-size:11px;filter:drop-shadow(1px 1px 0 #000)}.battle-legend{font-size:11px;display:flex;justify-content:space-between;gap:12px;padding:12px 0;color:var(--muted)}.battle-controls{display:flex;gap:6px;flex-wrap:wrap;padding:12px 0;border-block:1px solid var(--line);background:#13282e55;border-radius:4px}.battle-controls button{font-size:12px;padding:8px 12px;font-weight:bold}.battle-controls label{font-size:11px;display:flex;align-items:center;gap:8px;margin-left:auto}.target-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.target-list .section-row{font-size:12px;background:#172e35;padding:8px 12px;border:1px solid var(--line);border-radius:4px}.target-list button{padding:7px 12px;font-size:11px;margin-left:5px;font-weight:bold}.battle-status{padding:18px;align-self:start;background:#14292f;border:1px solid var(--line)}.battle-status h3{font-size:15px;color:var(--gold);margin-top:0}.battle-status p{font-size:12px;line-height:1.9}.battle-log{border-top:1px solid var(--line);max-height:370px;overflow-y:auto;padding-right:4px}.battle-log p{border-bottom:1px solid #3a505055;padding:8px 0;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.battle-log p:first-child{color:var(--paper);font-weight:bold;background:#1f3d4544}.duel-arena{min-height:350px;display:flex;align-items:center;justify-content:space-around;padding:25px 15px;background:radial-gradient(ellipse at 50% 20%,#35596e,#14242f 60%,#283227 61%,#171c14 100%);border:1px solid #7e8c7c;box-shadow:inset 0 0 50px #000000aa;position:relative;overflow:hidden}.duelist{text-align:center;width:35%;position:relative}.duelist.player .fighter{animation:idleBreath 3s infinite ease-in-out}.duelist.enemy .fighter{animation:idleBreath 3s infinite ease-in-out .5s}.duelist h3{font-size:16px;color:var(--paper);margin:6px 0 10px}.duelist p{font-size:12px;color:var(--gold);font-weight:bold}.duelist meter{width:100%;height:18px;accent-color:#65b381;background:#201a18;border:1px solid #485c54;border-radius:3px}.duel-round{color:var(--gold);text-align:center;font:25px Georgia;background:#10222bee;padding:12px 18px;border:1px solid #6b8a86;border-radius:8px;box-shadow:0 4px 15px #00000088}.duel-round small{font:12px 'Malgun Gothic';line-height:2.3;color:#e7d6b5;display:block}.duel-controls{display:flex;flex-wrap:wrap;gap:12px;padding:20px 0;background:#152b31;padding:15px;border:1px solid var(--line);border-radius:6px;margin-top:10px}.duel-controls label{font-size:12px;display:flex;align-items:center;gap:8px;color:var(--paper)}.duel-controls select{background:#1a373f;color:#fff;border:1px solid #52757c;padding:6px 10px;border-radius:4px}details{margin-top:20px}summary{cursor:pointer;color:var(--gold)}

/* Story Cutscene UI */
.story-cutscene{margin:15px 0 20px;background:#152c33;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:4px;padding:14px 18px;box-shadow:0 3px 10px #00000044}.cutscene-dialogue .speaker-tag{font-weight:bold;color:var(--gold);font-size:13px;margin-bottom:6px}.cutscene-dialogue .dialogue-text{font-size:14px;color:#f3ebd9;line-height:1.7;margin:0;font-style:italic}.event-meta-card{background:#18323a;padding:12px 16px;border:1px solid #3d6069;border-radius:4px;margin:12px 0}.reward-preview{margin-top:6px;font-size:13px;color:#c9e3b3}.requirements-box{background:#2a1e1b;border:1px solid #7c443b;padding:12px 16px;border-radius:4px;margin:14px 0;color:#ecc6b5}.ready-badge{background:#1b392b;border:1px solid #3c7d5c;padding:10px 14px;border-radius:4px;margin:14px 0;color:#aae3c0;font-size:13px;font-weight:bold}.story-subpanel{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.story-subpanel h3{font-size:13px;color:var(--muted);margin:8px 0}.tag-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.story-tag{font-size:12px;padding:4px 10px;border-radius:12px;background:#1b363d;border:1px solid #4a6c75;color:#e0ecea}.story-tag.mate{background:#234237;border-color:#48816c;color:#c7eedf}.story-tag.item{background:#423623;border-color:#816c48;color:#eedfc7}

@keyframes pulseCell{0%,100%{box-shadow:0 0 4px #a4ddb266}50%{box-shadow:0 0 12px #a4ddb2cc}}@keyframes targetBlink{0%,100%{opacity:1}50%{opacity:0.6}}@keyframes idleBreath{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

@media(max-width:900px){.combat-layout{grid-template-columns:1fr}.battle-status{display:block}.battle-log{max-height:200px}.hex span{font-size:16px}.hex .bearing{font-size:9px;right:2px}.battle-legend{flex-direction:column;gap:5px}}@media(max-width:500px){.hero-grid{grid-template-columns:1fr}.campaign-toolbar{gap:5px}.campaign-toolbar button{padding:8px;font-size:11px}.hex small{font-size:8px}.hex span{font-size:14px}.duelist>span{font-size:60px}.duel-arena{min-height:290px}.duelist h3{font-size:13px}.target-list .section-row{flex-direction:column;align-items:flex-start}.renown-grid{gap:5px}.renown-grid>div{padding:9px}.renown-grid strong{font-size:20px}}
.fighter{height:180px;width:150px;max-width:100%;filter:drop-shadow(3px 4px 0 #172d3d55)}.vessel{width:25px;height:25px;display:block}.hex span{height:25px}.story-excerpt{border-left:3px solid var(--gold);padding:14px 18px;background:#294347;line-height:2;font-size:14px}.duelist h3{margin:6px 0 14px}@media(max-width:500px){.fighter{height:140px}.vessel{width:18px;height:18px}.hex span{height:18px}}

.original-duelist{display:block;width:128px;height:128px;margin:0 auto;background-repeat:no-repeat;image-rendering:pixelated;animation:original-idle 1.2s steps(2) infinite;transform:scale(-1.35,1.35);transform-origin:bottom center;margin-bottom:12px}.enemy-sprite{transform:scale(-1.35,1.35)}
@keyframes original-idle{to{background-position:-256px 0}}
.original-vessel{display:block;width:32px;height:32px;background-image:url('/assets/original/ships-sailing.png');image-rendering:pixelated}
.battle-log p:first-child{animation:combat-feedback .6s ease-out}@keyframes combat-feedback{from{background:#99733a;color:#fff}to{background:#1f3d4544}}
.office-card{padding:16px 0;border-bottom:1px solid var(--line)}.office-card button{margin:4px}.story-cutscene{max-height:440px;overflow:auto}
@media(prefers-reduced-motion:reduce){.original-duelist,.battle-log p:first-child,.fighter{animation:none!important}}
@media(max-width:500px){.original-duelist{transform:scale(-.9,.9);margin-left:-10px}.enemy-sprite{transform:scale(-.9,.9)}.duel-round{font-size:17px;padding:8px}.original-vessel{transform:scale(.75);transform-origin:top left}}

.duel-atlas{width:192px;animation-name:original-atlas-idle}
@keyframes original-atlas-idle{to{background-position:-384px 0}}

.escort-tactics{display:flex;gap:12px;flex-wrap:wrap}.escort-tactics label{font-size:12px;padding:8px 0}

.battle-map-controls{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.battle-map-controls button{font-size:12px;padding:7px 10px}

/* Keep the round notice away from both fighters and their gauges. */
.duel-arena{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,28%) minmax(0,1fr);gap:16px}
.duelist{width:100%;min-width:0}.duel-round{font-size:21px}.duel-round p{font:14px/1.7 'Malgun Gothic',sans-serif;word-break:keep-all;margin-bottom:0}
.duel-atlas{position:relative;left:50%;margin-left:-96px;margin-right:0}
@media(max-width:600px){.duel-arena{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:16px 12px}.duel-round{grid-column:1/-1;grid-row:1;font-size:17px;padding:10px}.duel-round p{margin:4px 0 0;font-size:12px}.duelist{grid-row:2}.duel-atlas{transform:scale(-.9,.9);margin-left:-96px}.duelist h3{font-size:13px}}
