@font-face{font-family:'Cormorant SC';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/cormorant-sc-semibold.ttf') format('truetype')}
@font-face{font-family:'Alegreya';font-style:normal;font-weight:400 900;font-display:swap;src:url('assets/fonts/alegreya-variable.ttf') format('truetype')}
:root{--font-display:'Cormorant SC',serif;--font-body:'Alegreya',serif}
.shipLabel:has(.world-forecast:not([hidden])){padding-bottom:18px}
html,body,button,dialog,.shipLabel{font-family:var(--font-body)}
h1,h2,h3,.chapter,.prep-location,.prep-heading>span,.post-name,.officer-name,.ship-title,.fleet-card h2,.battle-launch,.queue-caption{font-family:var(--font-display)!important;font-weight:600!important}
#hud .ability .slot-cost,#hud .cooldown-counter,#hud #resources,#hud #resources b,#hud #navCommands #moveMode small,#hud #batteryPanel .weapon b,#hud #batteryPanel .weapon small,#hud #ammoStatus,#hud #coreHull,#hud #coreCrew .part-meter span,#hud #coreCrew .part-meter b,#hud #coreMasts small,#hud #coreMasts b,#hud #coreMasts b em,#hud #turnStat,#hud #boardingAction,#hud #boardingAction small,#hud #endTurn,#hud #endTurn kbd,#sailChoices b,#sailChoices small,.shipLabel .resource-label,.shipLabel .resource-value,.shipLabel .resource-value em,.shipLabel .world-status,.ability-tags,.prep-officer span,.officer-candidate small{font-family:var(--font-body)!important}
.chapter{font-size:24px;letter-spacing:1.8px}.chapter span{font-family:var(--font-body);letter-spacing:1.5px}#mission b{font-family:var(--font-display);font-size:25px}#mission span{font-size:16px}
#hud .post-name{font-size:17px;letter-spacing:1px;line-height:22px}#hud .officer-name{font-size:21px;line-height:22px}
.tooltip-head h3,#inspect .tooltip-head h2{font-size:25px!important}.tooltip-head small{font-size:15px}#hover{font-size:18px;padding:14px 20px;width:430px;line-height:1.35}#hover p{font-size:18px;line-height:1.35}.tooltip-stats{font-size:18px}.tooltip-footer{font-size:14px}.tooltip-warning{font-size:17px}
/* The preparation lists keep intrinsic row sizes. Short viewports scroll their paper panels rather than crushing text and portraits. */
#preparation{grid-template-rows:110px minmax(0,1fr) 164px;padding:16px 28px 18px;gap:12px}
.prep-main{grid-template-columns:minmax(282px,20%) minmax(0,1fr) minmax(325px,22%);gap:20px}
.prep-heading h1{font-size:48px;line-height:1;letter-spacing:1.8px;margin:4px 0 9px}.prep-heading>span{font-size:20px}.prep-location{font-size:21px;letter-spacing:1.4px}.prep-heading button,#prepResume{font-size:17px;min-height:40px}
.prep-equipment h2,.prep-posts h2{font-size:26px;line-height:1.05;margin-bottom:8px;padding-bottom:7px;letter-spacing:.4px}.prep-posts h2 small{font-size:19px}
#prepEquipment{grid-template-rows:repeat(8,minmax(62px,1fr));overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#98734a #d7bd8a;overscroll-behavior:contain;touch-action:pan-y}
#prepOfficers{grid-template-rows:repeat(6,minmax(83px,1fr));overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#98734a #d7bd8a;overscroll-behavior:contain;touch-action:pan-y}
.equipment-slot,.prep-officer{padding:5px 2px;gap:9px;overflow:hidden}
.equipment-slot>img{height:54px;width:54px}.equipment-slot small,.prep-officer small{font-size:14px;line-height:17px;margin-bottom:2px;letter-spacing:.3px}.equipment-slot b{font-size:21px;line-height:24px}.equipment-slot .equipment-count{display:inline;font-size:14px;white-space:nowrap;line-height:20px;color:#735131;margin:0}
.prep-officer .officer-mini{width:61px;height:73px}.prep-officer b{font-size:25px;line-height:26px;font-family:var(--font-display);font-weight:600;white-space:nowrap}.prep-officer small .officer-level{display:inline;font-size:12px;letter-spacing:0;margin:0;color:#80603b;white-space:nowrap}.prep-officer em{font-size:15px;line-height:18px;overflow-wrap:normal}.panel-hint{font-size:14px;line-height:18px;padding-top:7px}.swap-cue{font-size:26px}
.preview-controls{font:14px var(--font-body);letter-spacing:.25px}.preview-controls span{display:block}.prep-bottom{gap:16px;padding:8px 20px;grid-template-columns:.62fr 1.1fr 1.8fr 1fr .35fr 1fr}
#prepVital span,.prep-orders,.speed-stat>span,.maneuver-stat>span{font-size:15px;line-height:18px;letter-spacing:.3px}#prepVital b{font-size:31px}.speed-stat>b,.maneuver-stat>b{font-size:29px}.speed-stat b small,.maneuver-stat b small{font-size:15px}.battle-launch{font-size:26px;min-height:75px}.battle-launch span{font:16px var(--font-body)}
#prepHull .hull-facet small{font-size:14px}#prepHull .hull-facet span{font-size:18px}#prepHull .hull-facet i{font-size:14px}#prepHull figcaption{font-size:12px}#prepMasts .mast-condition small{font-size:13px}#prepMasts .mast-condition b{font-size:21px}#prepMasts .mast-condition em{font-size:14px}#prepMasts figcaption{font-size:13px}
.officer-candidate b,.equipment-candidate b{font-family:var(--font-display);font-size:26px;font-weight:600}.officer-candidate small{font-size:14px}.officer-candidate strong{font-size:17px}.officer-candidate span,.equipment-candidate span{font-size:17px;line-height:1.35}.officer-candidate em,.equipment-candidate em{font-size:15px}#prepPopover h3{font-size:23px}
/* Specificity is deliberate: the old #fleetChoices .fleet-card dark background defeated the parchment skin. */
#start{background:radial-gradient(ellipse at 50% 15%,#efdfbd,#d6ba87);color:#30251c;padding:22px 3vw}
#fleetChoices .fleet-card{background:#eedab1 var(--paper-image);color:#30251c;border:2px solid #89623a;box-shadow:inset 0 0 0 3px #f7e7c3,0 5px 12px #5f3b2425}
#fleetChoices .fleet-card.active{background:#f8eaca var(--paper-image);border:3px solid #9b4732;box-shadow:inset 0 0 0 3px #eed6a4,0 5px 15px #813d2b33}
#fleetChoices .fleet-model{background:radial-gradient(ellipse,#f9efd6,#d6b782);border-bottom:1px solid #99714455}
#fleetChoices .fleet-card h2{font-size:35px;line-height:1.1;color:#3b2a1e}#fleetChoices .fleet-card p{font-size:17px;line-height:23px;height:auto;min-height:46px;color:#68482e}
#fleetChoices .fleet-values{border-color:#926f424d;gap:16px}#fleetChoices .fleet-values span{font-size:14px;color:#755035}#fleetChoices .fleet-values b{font-size:29px;color:#3c2b20}
#fleetChoices .fleet-select{font-size:15px;letter-spacing:1px;color:#775032}#fleetChoices .active .fleet-select{color:#922f26;font-weight:700}
.fleet-heading h1{font-size:49px;line-height:1.1;color:#34271d}.fleet-heading p{font-size:20px;color:#765239}.fleet-heading .eyebrow{font:18px var(--font-display);color:#86582e}#fleetStats{font-size:17px;color:#694b34}#fleetStats b{font-size:25px;color:#30251c}.fleet-actions #sail,.fleet-actions #continue{background:linear-gradient(#a8583a,#813c2b);color:#fff0ce;font:600 20px var(--font-display);letter-spacing:1px;min-height:52px}
/* A single hover plaque, above all mastheads. Its right column carries the hovered part, so no second window covers the ship. */
.shipLabel{width:390px;min-width:390px;max-width:390px;padding:10px 14px 9px;pointer-events:auto;font-family:var(--font-body)}
.ship-label-heading{grid-template-columns:22px 1fr 28px;gap:7px;min-height:28px;margin-bottom:6px;padding-bottom:5px!important}
.shipLabel .ship-title{font:600 23px/26px var(--font-display);max-height:52px;letter-spacing:.1px}.shipLabel .inspect-world{height:28px;width:28px}.shipLabel .ship-resource{width:48%;height:24px;grid-template-columns:15px 1fr auto;gap:4px}.shipLabel .resource-label{font-size:14px;letter-spacing:.2px}.shipLabel .resource-value{font-size:18px;line-height:24px}.shipLabel .resource-value em{font-size:14px}
.shipLabel .world-hp,.shipLabel .world-crew{width:48%;height:5px;margin:2px 0 5px}.shipLabel .world-hp span{background:linear-gradient(#bd5746,#933e32)}.shipLabel .world-crew span{background:linear-gradient(#4c93b4,#286f96)}
.shipLabel .world-status{font-size:14px;line-height:17px;letter-spacing:0;text-align:left;width:48%;min-height:17px}
.world-part-state{position:absolute;top:49px;right:14px;width:43%;border-left:1px solid #a1794b55;padding-left:11px;color:#5b3d26}.world-part-state>b{font:600 20px/24px var(--font-display);display:block;margin-bottom:4px}.world-part-state dl{display:grid;grid-template-columns:1fr auto;gap:5px;margin:0;font-size:16px;line-height:20px}.world-part-state dt,.world-part-state dd{margin:0}.world-part-state dd{font-weight:700;color:#34251d;text-align:right;white-space:nowrap}.world-part-state[hidden]{display:none}
.shipLabel:after{bottom:-5px!important;top:auto!important}.shipLabel.derelict .world-status{font-size:12px}
.world-forecast{border-top:1px solid #9c754956;margin-top:6px;padding-top:5px;padding-bottom:4px;font-size:16px;line-height:20px;color:#82402d}.world-forecast>b{font:600 19px/22px var(--font-display);display:block}.world-forecast span,.world-forecast small{display:block;font-size:16px;line-height:20px}.world-forecast[hidden]{display:none!important}
/* Low mastheads use a wide card with fewer stacked rows. It remains above the ship, with readable font sizes. */
.shipLabel.compact-world-card{width:min(700px,calc(100vw - 32px));min-width:0;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:1px 20px;padding:8px 14px}
.compact-world-card .ship-label-heading{grid-column:1/-1;margin-bottom:2px;padding-bottom:3px!important}.compact-world-card .resource-hull{grid-column:1;grid-row:2}.compact-world-card .resource-crew{grid-column:2;grid-row:2}.compact-world-card .ship-resource{width:100%}.compact-world-card .world-hp{grid-column:1;grid-row:3;width:100%;margin-bottom:2px}.compact-world-card .world-crew{grid-column:2;grid-row:3;width:100%;margin-bottom:2px}.compact-world-card .world-status{display:none}
.shipLabel.compact-world-card .world-part-state{position:relative;inset:auto;grid-column:1/-1;width:100%;border-left:0;border-top:1px solid #a1794b55;padding:2px 0 0;display:flex;gap:15px;align-items:baseline}.compact-world-card .world-part-state>b{margin:0;font-size:19px;line-height:22px;white-space:nowrap}.compact-world-card .world-part-state dl{grid-template-columns:repeat(4,auto);gap:3px 9px;align-items:baseline;line-height:20px}.compact-world-card .world-part-state[hidden]{display:none!important}.compact-world-card .world-forecast{grid-column:1/-1;margin-top:2px;padding-top:3px}.compact-world-card .world-forecast>b{display:inline;margin-right:8px}.compact-world-card .world-forecast>span{display:inline}.compact-world-card .world-forecast br{display:none}
@media(max-width:1500px){#preparation{grid-template-rows:94px minmax(0,1fr) 154px;padding:12px 16px;gap:10px}.prep-main{grid-template-columns:252px minmax(0,1fr) 288px;gap:12px}.prep-heading h1{font-size:39px}.prep-heading>span{font-size:16px}.prep-heading button,#prepResume{font-size:14px;min-height:36px}.prep-location{font-size:16px}.prep-equipment,.prep-posts{padding:8px 10px}.prep-equipment h2,.prep-posts h2{font-size:23px}.prep-posts h2 small{font-size:17px}.equipment-slot>img{height:45px;width:45px}.equipment-slot small,.prep-officer small{font-size:12px;line-height:15px}.equipment-slot b{font-size:18px;line-height:21px}.equipment-slot .equipment-count{font-size:12px}.prep-officer .officer-mini{width:52px;height:67px}.prep-officer b{font-size:21px;line-height:23px}.prep-officer em{font-size:14px;line-height:17px}.prep-officer small .officer-level{font-size:11px}.panel-hint{font-size:12px}.prep-bottom{grid-template-columns:.65fr 1.05fr 1.7fr 1fr .35fr 1.1fr;padding:7px 12px;gap:9px}#prepVital span,.prep-orders,.speed-stat>span,.maneuver-stat>span{font-size:12px}#prepVital b{font-size:27px}.speed-stat>b,.maneuver-stat>b{font-size:24px}.speed-stat b small,.maneuver-stat b small{font-size:12px}.battle-launch{font-size:23px;min-height:70px}.battle-launch span{font-size:13px}#prepHull .hull-facet small{font-size:12px}#prepHull .hull-facet span{font-size:16px}#prepHull figcaption{font-size:11px}.preview-controls span{display:none}.shipLabel{width:390px;min-width:390px;max-width:390px}.shipLabel .ship-title{font-size:21px}.fleet-card p{min-height:46px}.fleet-heading h1{font-size:41px}.fleet-heading p{font-size:17px}#fleetChoices{gap:10px}#fleetChoices .fleet-card h2{font-size:29px}#fleetChoices .fleet-card p{font-size:15px;line-height:20px}#fleetChoices .fleet-values{gap:10px}#fleetChoices .fleet-values span{font-size:12px}#fleetChoices .fleet-values b{font-size:26px}#fleetStats{font-size:15px;gap:16px}}
@media(max-width:1500px) and (min-height:761px){#preparation{grid-template-rows:90px minmax(0,1fr) 148px}.prep-main{grid-template-columns:272px minmax(0,1fr) 288px}.prep-equipment,.prep-posts{padding:6px 10px}.prep-equipment h2,.prep-posts h2{margin-bottom:4px;padding-bottom:4px;line-height:22px}.panel-hint{padding-top:3px;line-height:16px}.prep-posts h2{font-size:20px;line-height:22px;white-space:nowrap}.equipment-slot small{white-space:nowrap;letter-spacing:0}.prep-officer .officer-mini{height:62px;width:50px}.prep-officer em{font-size:14px;line-height:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#prepEquipment{grid-template-rows:repeat(8,minmax(56px,1fr))}#prepOfficers{grid-template-rows:repeat(6,minmax(74px,1fr))}}
@media(max-height:760px){#preparation{grid-template-rows:86px minmax(0,1fr) 144px;padding-top:8px;padding-bottom:8px}.prep-heading h1{font-size:35px}.prep-location{font-size:17px}.panel-hint{font-size:12px}#prepEquipment{grid-template-rows:repeat(8,minmax(62px,1fr))}#prepOfficers{grid-template-rows:repeat(6,minmax(83px,1fr))}}
