.ship-brand{float:left;width:46px;height:46px;object-fit:contain;margin-right:10px}.brand b{margin-left:56px}.brand{min-width:175px}#menu-home{color:#f3e2b7;font-size:12px;border:1px solid #746448;border-radius:8px;padding:7px 12px}.start-screen{position:fixed;inset:0;z-index:40;display:flex;justify-content:flex-end;align-items:center;background:#132b2b;color:#f7e7b8;overflow:hidden}.start-screen[hidden]{display:none}.start-art{position:absolute;inset:0;background-image:linear-gradient(90deg,transparent 25%,#14292880 53%,#142928f5 70%,#142928 100%),linear-gradient(0deg,#10272595,transparent 35%),url('assets/numeranci-friendly-banner.png');background-size:cover;background-position:42% center;animation:start-reveal .7s ease-out}.start-menu{position:relative;width:40%;max-width:620px;padding:24px 5vw 24px 20px;display:flex;flex-direction:column;align-items:flex-start;animation:menu-reveal .5s ease-out}.start-logo{width:125px;height:110px;object-fit:contain;margin-bottom:12px;filter:drop-shadow(0 0 20px #7ed8c729)}.start-kicker{font-size:9px;letter-spacing:2px;color:#bea46a;font-weight:700}.start-menu h1{font-family:Georgia,serif;font-size:clamp(38px,4.5vw,72px);line-height:1.02;font-weight:700;letter-spacing:-2px;margin:15px 0;color:#fae6b0;text-shadow:0 3px 14px #0005}.start-menu h1 span{color:#d7af61}.start-description{font-size:14px;line-height:1.65;color:#d1c5a5;margin:3px 0 23px}.start-actions{display:flex;flex-direction:column;width:100%;max-width:350px;gap:10px}.start-actions button{border:1px solid #bda56a66;border-radius:6px;padding:13px 18px;text-align:left;color:#e9dbb5;font-size:13px;font-weight:600;background:#123130a0;transition:transform .18s,background .18s}.start-actions button:hover{background:#29453d;transform:translateX(4px)}.start-actions #home-play{background:#c0653e;color:#fff3d1;border:1px solid #d49b55;box-shadow:0 3px 0 #512d2070;font-size:16px;padding:16px 20px}.start-actions #home-play:hover{background:#d2754c}.start-actions #home-resume{background:#466646;border-color:#91a77b;color:#fff3d1}.start-actions button[hidden]{display:none}.start-details{display:flex;gap:20px;font-size:10px;color:#c7b990;margin-top:24px}.start-grade{font-size:8px;letter-spacing:1.8px;color:#998b66;margin-top:12px}.start-corner{position:absolute;bottom:24px;left:28px;font-family:Georgia,serif;font-style:italic;color:#f9e9bd;font-size:12px;text-shadow:0 2px 8px #000}.at-home>header,.at-home>main{visibility:hidden;pointer-events:none}@keyframes start-reveal{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes menu-reveal{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@media(max-width:1050px){.start-menu{width:46%;padding-right:4vw}.start-menu h1{font-size:47px}.start-art{background-position:35% center}.start-details{gap:12px}.header-actions{gap:8px}}@media(max-width:760px) and (orientation:portrait){.ship-brand{width:32px;height:32px;margin-right:5px}.brand b{margin-left:37px}.brand{min-width:130px}#menu-home{padding:7px;font-size:15px}#menu-home span{display:none}.start-art{background-image:linear-gradient(0deg,#132b2b 0%,#132b2b 48%,#132b2b40 77%,transparent),url('assets/numeranci-friendly-banner.png');background-position:center top;background-size:auto 44%,auto 44%;background-repeat:no-repeat}.start-screen{align-items:flex-end;justify-content:center}.start-menu{width:100%;max-width:480px;padding:0 28px 24px;align-items:center;text-align:center}.start-logo{width:105px;height:90px;margin-bottom:8px}.start-menu h1{font-size:47px;margin:10px 0;letter-spacing:-1.5px}.start-kicker{font-size:7px;letter-spacing:1.6px}.start-description{font-size:12px;margin:4px 0 17px}.start-actions{gap:8px}.start-actions button{padding:11px 16px;text-align:center;font-size:12px}.start-actions #home-play{padding:13px 18px;font-size:15px}.start-details{font-size:9px;margin-top:17px;gap:18px}.start-grade{font-size:7px;margin-top:10px}.start-corner{display:none}}
@media(orientation:portrait) and (max-height:700px){.start-menu{padding-bottom:16px}.start-logo{width:75px;height:60px;margin-bottom:5px}.start-menu h1{font-size:38px;margin:8px 0}.start-description{font-size:11px;margin-bottom:12px}.start-actions button{padding:9px 14px}.start-actions #home-play{padding:11px 16px}.start-details{margin-top:12px}.start-grade{margin-top:7px}}
@media(orientation:landscape) and (max-height:600px){.ship-brand{width:30px;height:30px}.brand b{margin-left:40px}.brand{min-width:140px}#menu-home{padding:5px;font-size:10px}.start-menu{width:44%;padding:10px 25px 10px 10px}.start-logo{width:65px;height:55px;margin-bottom:4px}.start-kicker{font-size:6px;letter-spacing:1px}.start-menu h1{font-size:33px;letter-spacing:-1px;margin:7px 0}.start-description{font-size:10px;line-height:1.4;margin:0 0 10px}.start-actions{gap:6px}.start-actions button{padding:7px 12px;font-size:10px}.start-actions #home-play{padding:9px 12px;font-size:13px}.start-details{font-size:8px;margin-top:10px;gap:10px}.start-grade{font-size:6px;margin-top:7px}.start-corner{font-size:9px;bottom:13px;left:16px}.start-art{background-position:35% center}}
@media(prefers-reduced-motion:reduce){.start-art,.start-menu{animation:none}}
.pirate-banner.title-banner{height:clamp(46px,8dvh,76px);padding:8px 12px;margin-bottom:8px;background:#302a22;display:flex;justify-content:center;align-items:center;border-color:#a88b51}.pirate-banner.title-banner h1{margin:0;color:#f4dda1;font-family:Georgia,serif;font-size:clamp(18px,3.3vw,44px);line-height:1.1;letter-spacing:0;text-align:center;white-space:nowrap;text-shadow:0 2px 3px #0005}@media(max-width:760px) and (orientation:portrait){.pirate-banner.title-banner{height:46px;margin-bottom:6px}.pirate-banner.title-banner h1{font-size:clamp(17px,6vw,30px)}}@media(orientation:landscape) and (max-height:600px){.pirate-banner.title-banner{height:34px;padding:4px 8px;margin-bottom:5px}.pirate-banner.title-banner h1{font-size:22px}}
.setup-settings label[hidden]{display:none}.opponent-help{font-size:10px!important;line-height:1.4!important;margin-top:7px}#map-picker .opponent-settings{margin-top:10px}#map-picker .setup-settings{padding:8px}#map-picker .map-option svg{height:55px}#map-picker .map-option b{margin-top:6px}#map-picker .map-options{gap:8px;margin:9px 0}#map-picker .map-option{padding:6px}#map-picker #map-selection{padding:8px 0}
.map{background:#e5d29b;border-color:#937744}.map-label,.map-footer{color:#6c593a}.compass{display:none}.map-label{font-family:Georgia,serif;letter-spacing:1.5px}.map-label span{font-family:'DM Sans',sans-serif}.map-footer .neutral{background:#dcc996;border:1px solid #927c49}
/* Readable instructions and status text, with space taken from the map rather than clipping controls. */
.player strong{font-size:15px}.player small{font-size:12px}.round>small{font-size:10px}.match-info b,.match-info strong{font-size:14px}.match-info span{font-size:12px;line-height:1.4}.timer small{font-size:10px}.target-heading span,.target>span{font-size:12px}.resources{font-size:13px}.section-title h3{font-size:14px}.section-title>span,.section-title button{font-size:12px}.expression{font-size:14px}.equation-status{font-size:13px;min-height:35px;line-height:1.4}.cost{font-size:12px}.bridge{font-size:12px}.map-label{font-size:12px}.map-label span{font-size:10px}.map-footer{font-size:11px}.bottom-note{font-size:11px}.tip p{font-size:12px}.eyebrow{font-size:11px}#rules p,#rules li,#rules label{font-size:15px}#rules .muted{font-size:13px}#map-picker>p{font-size:14px}.setup-settings label{font-size:13px}.setup-settings select{font-size:14px}#map-picker .map-option span{font-size:12px;line-height:1.4}#map-picker .map-option b{font-size:17px}.opponent-help{font-size:12px!important}.notification p{font-size:14px}.start-description{font-size:16px}.start-details{font-size:12px}.start-grade{font-size:10px}.start-actions button{font-size:15px}
@media(max-width:760px) and (orientation:portrait){.player strong{font-size:12px}.player small{font-size:10px}.match-info b,.match-info strong{font-size:12px}.match-info span{font-size:11px}.timer small{font-size:8px}.resources{font-size:11px}.target-heading h2{font-size:15px}.target small{font-size:9px}.target>span{font-size:10px}.expression{font-size:12px}.equation-status{font-size:12px;min-height:29px}.claim{font-size:12px}.bridge{font-size:11px}.pass{font-size:13px}.start-description{font-size:14px}.start-details{font-size:11px}.start-actions button{font-size:14px}.start-grade{font-size:9px}}
@media(orientation:landscape) and (max-height:600px){.player strong{font-size:12px}.player small{font-size:10px}.match-info b,.match-info strong{font-size:11px}.match-info span{font-size:10px}.timer small{font-size:8px}.resources{font-size:11px}.target-heading h2{font-size:15px}.target-heading span{font-size:10px}.target small{font-size:9px}.expression{font-size:12px}.equation-status{font-size:11px;min-height:25px}.claim,.bridge{font-size:11px}.pass{font-size:12px}.start-description{font-size:12px}.start-details{font-size:10px}.start-grade{font-size:8px}.start-actions button{font-size:12px}.setup-settings label{font-size:12px}.setup-settings select{font-size:12px}}
.match-info .timer b{font-size:28px}@media(max-width:760px){.match-info .timer b{font-size:24px}}@media(orientation:landscape) and (max-height:600px){.match-info span{display:none}.match-info .timer b{font-size:22px}}
.map::before{content:'';position:absolute;inset:-20px;background:url('assets/numeranci-friendly-map.png') center/cover;filter:blur(18px);opacity:.35;pointer-events:none}.map canvas{position:relative;z-index:1}.map-label,.map-footer{z-index:2}.map-label{background:#f3e5c8df;padding:7px 10px;border-radius:4px}.map-footer{background:#f3e5c8df;padding:6px 9px;border-radius:4px}
.avatar{width:46px;height:46px;flex-shrink:0;overflow:visible;background:transparent;position:relative}.avatar img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #45362538)}.avatar::after{content:'';position:absolute;right:0;bottom:2px;width:9px;height:9px;border-radius:50%;border:1px solid #fff0cf;background:#b55236}.avatar.blue::after{background:#397b96}.player.active .avatar img{animation:pirate-rock 4s ease-in-out infinite}#turn-icon img{width:160px;height:140px;object-fit:contain;filter:drop-shadow(0 4px 10px #25494335);animation:pirate-rock 5s ease-in-out infinite}#turn-icon{line-height:0;margin:0 0 12px}@keyframes pirate-rock{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}@media(max-width:760px) and (orientation:portrait){.avatar{width:34px;height:34px}.avatar::after{width:7px;height:7px}#turn-icon img{width:125px;height:110px}}@media(orientation:landscape) and (max-height:600px){.avatar{width:30px;height:30px}.avatar::after{width:6px;height:6px}#turn-icon img{width:80px;height:65px}#turn-icon{margin:0 0 5px}}@media(prefers-reduced-motion:reduce){.player.active .avatar img,#turn-icon img{animation:none}}
.avatar.blue img{filter:drop-shadow(0 2px 4px #27898a55) saturate(1.5)}#player0{border-left:4px solid #963e37}#player1{border-left:4px solid #287e86}.player.active#player1{background:#d7e3ce;border-color:#287e86}.player>div{min-width:0}.player strong{display:block;line-height:1.15}.map-footer{flex-wrap:wrap}@media(max-width:760px){.player strong{font-size:11px}.player{gap:4px}.avatar{width:28px;height:28px}.score{font-size:17px}}@media(orientation:landscape) and (max-height:600px){.player strong{font-size:11px}}
/* Illustrated destination cards with readable expedition settings. */
.map::before{background-image:var(--map-art,url('assets/numeranci-friendly-map.png'))}
#map-picker{width:min(1000px,calc(100% - 24px));max-width:1000px;max-height:calc(100dvh - 24px);padding:24px 28px;background:linear-gradient(135deg,#fbefd1,#e9d5a9);border:2px solid #a48348;box-shadow:0 20px 80px #102e3290;overflow:auto}
#map-picker h2{font-size:32px;color:#49371d}
#map-picker>p{font-size:16px;line-height:1.5;color:#614e31}
#map-picker .eyebrow{font-size:13px;color:#8a452b}
#map-picker .setup-settings{padding:10px 14px;gap:20px;background:#f9efdaa8;border:1px solid #c4ac7f;margin-top:12px}
#map-picker .setup-settings label{font-size:16px;gap:7px;color:#49371d;font-weight:600}
#map-picker .setup-settings select{font-size:17px;padding:9px;min-height:42px;background:#fff7e4}
#map-picker .opponent-help{font-size:15px!important}
#map-picker .map-options{gap:12px;margin:16px 0;grid-template-columns:repeat(4,minmax(0,1fr))}
#map-picker .map-option{padding:0;overflow:hidden;border:2px solid #ae9569;border-radius:10px;background:#fff4d9;box-shadow:0 4px 0 #7b623525;position:relative}
#map-picker .map-option:hover{border-color:#966731}
#map-picker .map-option.selected{border:3px solid #326c68;background:#e9efe1;box-shadow:0 0 0 3px #326c6828}
#map-picker .map-option:focus-visible{outline:3px solid #ad5934;outline-offset:3px}
.map-picture{height:120px;position:relative;overflow:hidden;background:#dbc799}
.map-picture img{width:100%;height:100%;object-fit:cover;display:block}
#map-picker .map-picture svg{position:absolute;inset:8px 18%;width:64%;height:85px;background:transparent!important;filter:drop-shadow(0 2px 3px #402d2855)}
#map-picker .map-badge{position:absolute;bottom:0;left:0;right:0;background:#473820dc;color:#fff5d6;padding:5px 8px;font-size:13px;text-align:center}
#map-picker .selected .map-badge{background:#326c68}
#map-picker .map-option b{font-size:23px;margin:12px 12px 6px;color:#49371d}
#map-picker .map-option span{font-size:15px;line-height:1.45;margin:0 12px 14px;color:#5d4c32}
#map-picker .random-map{font-size:17px;padding:12px;color:#49371d;background:#f8e8c4}
#map-picker #map-selection{font-size:17px;padding:10px 0;color:#326c68}
#map-picker #start-map{font-size:19px;padding:15px}
#map-picker #setup-back{font-size:16px;padding:7px 10px;border:1px solid #bda374;border-radius:6px}
@media(max-width:760px){#map-picker{padding:18px}#map-picker .map-options{grid-template-columns:repeat(2,minmax(0,1fr))}#map-picker .map-option b{font-size:22px}#map-picker .setup-settings{gap:10px;padding:10px}.map-picture{height:110px}}
@media(max-width:420px){#map-picker .setup-settings{flex-direction:column}#map-picker .map-option span{font-size:15px;margin:0 10px 12px}#map-picker .map-option b{margin:10px;font-size:21px}}
@media(max-height:500px) and (min-width:600px){#map-picker .map-options{grid-template-columns:repeat(4,minmax(0,1fr))}.map-picture{height:85px}#map-picker .map-picture svg{height:60px}#map-picker .setup-settings label{flex-direction:column;align-items:stretch;white-space:normal;font-size:16px}#map-picker .map-option b{font-size:20px}}
@media(min-width:1000px) and (min-height:650px){
 #map-picker{padding:18px 24px}
 #map-picker h2{margin:8px 0;font-size:30px}
 #map-picker .setup-settings{padding:8px 12px;margin-top:8px}
 #map-picker .setup-settings label{flex-direction:row;align-items:center;gap:12px;white-space:nowrap}
 #map-picker .setup-settings select{flex:1;min-width:0;width:auto}
 #map-picker .map-options{margin:12px 0}
 #map-picker .map-picture{height:100px}
 #map-picker .map-picture svg{height:70px}
 #map-picker .map-option b{margin-top:9px}
 #map-picker .map-option span{margin-bottom:10px}
 #map-picker .random-map{padding:9px}
 #map-picker #map-selection{padding:7px 0}
}

/* Readable chart labels. */
.match-info b,.match-info strong{font-size:16px}.match-info span{font-size:14px;color:#493921}.player strong{font-size:17px}.player small{font-size:14px;color:#51412b}.target-heading h2{font-size:22px}.target-heading span,.target>span{font-size:15px;color:#493921}.resources{font-size:16px}.resources b{font-size:17px}.section-title h3{font-size:17px}.section-title>span,.section-title button{font-size:14px}.equation-status{font-size:16px;color:#493921;line-height:1.4}.cost,.bridge{font-size:14px;color:#493921}.claim,.pass{font-size:16px}.map-label{font-size:16px;color:#302719}.map-label span{font-size:13px;opacity:1}.map-footer{font-size:14px;color:#302719}.bottom-note{font-size:13px;color:#493921}
@media(max-width:760px) and (orientation:portrait){.player strong{font-size:13px}.player small{font-size:12px}.match-info b,.match-info strong{font-size:13px}.match-info span{font-size:12px}.target-heading h2{font-size:16px}.resources{font-size:13px}.target small{font-size:11px}.equation-status{font-size:14px;min-height:20px}.claim,.pass{font-size:14px}.bridge{font-size:12px}}
@media(orientation:landscape) and (max-height:600px){.player strong{font-size:12px}.player small{font-size:10px}.match-info b,.match-info strong{font-size:12px}.match-info span{font-size:11px}.target-heading h2{font-size:16px}.equation-status{font-size:12px;min-height:17px}.claim,.pass{font-size:13px}.bridge{font-size:12px}.resources{font-size:12px}}
