/* A compact ship's chart: game controls stay on one screen. */
:root{--ink:#382b20;--muted:#7a6953;--coral:#a64c35;--paper:#eee2c8;--line:#cdbc99}body{background:#eee2c8;background-image:radial-gradient(#8d704c12 .8px,transparent .8px);background-size:5px 5px;height:100dvh;overflow:hidden;font-family:'DM Sans',sans-serif}header{height:64px;padding:0 24px;background:#302a22;color:#f3e2b7;border-bottom:3px solid #b59a61}.brand{color:#f3e2b7;font-size:12px}.brand-icon{color:#cfad66;font-size:31px}.brand b{margin-left:38px}.header-actions{gap:18px}.class-label{color:#c5b28d}#help{border-color:#746448;color:#f3e2b7;padding:7px 12px}#fullscreen{color:#f3e2b7}main{height:calc(100dvh - 64px);max-width:none;grid-template-columns:minmax(0,1fr) clamp(260px,26vw,360px);gap:22px;padding:18px 24px}.game{min-height:0;display:flex;flex-direction:column}.heading{flex:none}.heading h1{font-family:Georgia,serif;font-size:30px;margin:5px 0}.heading p{font-size:11px}.eyebrow{font-size:9px;letter-spacing:1.6px}.players{margin:14px 0 10px;gap:15px;flex:none}.player{background:#f8eed7;border-color:#cdbb94;padding:8px 12px}.player.active{background:#f4d5af;border:2px solid #a64c35}.avatar{width:32px;height:32px;font-size:20px}.round strong{font-size:17px}.match-info{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:9px 13px;margin-bottom:10px;background:#dfcea9;border-radius:7px;flex:none}.match-info>div:first-child{display:flex;flex-direction:column;gap:3px}.match-info b{font-size:11px}.match-info span{font-size:10px;color:#66553f}.match-info strong{font-size:11px;color:#8b422f}.timer{width:90px;flex-shrink:0;text-align:center}.timer small{font-size:8px;letter-spacing:1px;display:block}.timer b{font-size:25px;display:block;font-variant-numeric:tabular-nums}.timer progress{width:100%;height:6px;accent-color:#78623b}.timer.urgent{color:#b02d24;animation:timer-pulse .8s infinite}.timer.urgent progress{accent-color:#b02d24}.map{flex:1;min-height:0;background:#a9ccc5;border:2px solid #957d50;border-radius:10px;box-shadow:0 3px 0 #705b3328}.map canvas{height:100%;width:100%;object-fit:contain;aspect-ratio:auto}.map-label{top:13px;left:13px;color:#365f57;font-weight:700;font-size:9px}.map-footer{bottom:10px;left:13px;right:13px;color:#365b50}.compass{top:15px;color:#44675c}.bottom-note{margin-top:8px;font-size:9px;flex:none}aside{min-height:0;padding-left:22px;display:flex;flex-direction:column;gap:0;border-color:#bca880}.target-heading{margin:6px 0 10px}.target-heading h2{font-family:Georgia,serif;font-size:19px}.target{padding:8px;background:#e4d1a6;border-color:#bfa66e;border-radius:8px}.target strong{font-family:Georgia,serif;font-size:47px;line-height:1.15}.target small{font-size:8px;color:#76603c}.target>span{font-size:10px;color:#6a583d}.resources{padding:10px 0}.section-title{margin:12px 0 7px}.expression{min-height:48px;padding:5px;border-color:#ad9770;background:#f7ecd4;color:#807255}.expression button{font-size:21px}.equation-status{margin-top:5px;min-height:27px;line-height:1.35}.cards{gap:7px}.cards button{background:#fbf1d9;border-color:#c0a879;height:43px;font-family:Georgia,serif;font-size:24px}.operators{gap:5px;margin:9px 0 13px}.operators button{background:#ddcca7;height:32px}.claim{background:#a64c35;border-radius:6px;padding:12px;font-size:12px}.cost{margin:6px 0 9px;font-size:9px}.bridge{border-color:#b9a178;background:#e7d7b5;padding:9px;font-size:10px}.pass{margin-top:9px;padding:13px;border-radius:6px;background:#3d5140;border:2px solid #3d5140;color:#fff2d1;font-size:13px;font-weight:700;box-shadow:0 3px 0 #1c2b2030}.pass.ready{background:#786126;border-color:#b79542}.pass:hover{filter:brightness(1.12)}button:disabled{cursor:default;opacity:.45}.tip{margin-top:auto;padding-top:10px}.tip p{font-size:9px}.notification{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:20;width:min(540px,calc(100% - 24px));display:flex;align-items:center;gap:14px;padding:18px;background:#fff3d7;border:2px solid #987242;border-radius:12px;box-shadow:0 10px 35px #251b2850;animation:event-in .25s ease-out}.notification[hidden]{display:none}.notification>span{font-size:25px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:#e2b78c}.notification.success{border-color:#4d7955}.notification.success>span{background:#d5e4bf;color:#426345}.notification.error{border-color:#b14e37}.notification.error>span{background:#f0c3a9;color:#a42f22}.notification b{font-size:18px;font-family:Georgia,serif}.notification p{color:#68553e;font-size:12px;line-height:1.5;margin-top:5px}.notification>button{margin-left:auto;align-self:start}.event-dialog{text-align:center;width:min(480px,calc(100% - 24px));background:#f4e5c4;border:3px solid #a99058;padding:28px}.event-dialog .event-icon{font-size:54px;margin-bottom:13px}.event-dialog h2{font-family:Georgia,serif;font-size:29px}.event-dialog p{color:#68553e;margin:12px 0 24px;font-size:14px}.event-dialog[data-team="1"]{border-color:#4d798e}.event-dialog[data-team="1"] .claim{background:#49748a}.result-scores{display:grid;gap:9px;margin-bottom:20px}.result-scores>div{padding:14px;background:#e1cfa6;border-radius:6px;font-weight:700}.result-scores .winner{background:#cebf82;border:2px solid #8c7137}#view-map{margin-top:10px}.time-setting{display:block;margin-top:14px}dialog{max-height:calc(100dvh - 24px);overflow:auto;background:#f5e7ca}dialog::backdrop{background:#231c19b0;backdrop-filter:blur(4px)}@keyframes event-in{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}@keyframes timer-pulse{50%{background:#f2c09c;border-radius:6px}}
@media(max-height:820px) and (min-width:761px){main{padding:12px 20px;gap:18px}.heading h1{font-size:25px}.players{margin:10px 0 8px}.player{padding:6px 10px}.target strong{font-size:38px}.target-heading{margin-bottom:7px}.resources{padding:7px 0}.section-title{margin:9px 0 5px}.cards button{height:35px;font-size:22px}.expression{min-height:40px}.operators{margin:7px 0 9px}.operators button{height:28px}.claim{padding:10px}.pass{padding:10px}.tip{display:none}.match-info{padding:7px 10px}.heading p{display:none}}
@media(max-width:760px) and (orientation:portrait){header{height:48px;padding:0 14px}.brand{font-size:9px}.brand-icon{font-size:25px;margin-right:8px}.brand b{margin-left:31px}.header-actions{gap:9px}main{height:calc(100dvh - 48px);display:flex;flex-direction:column;padding:8px 12px;gap:8px}.game{flex:1;min-height:0}.heading{display:none}.players{margin:0 0 6px;gap:9px}.player{padding:5px 7px;gap:5px}.player strong{font-size:10px}.player small{font-size:8px;margin-top:2px}.avatar{width:25px;height:25px;font-size:17px}.score{font-size:19px}.round>small{font-size:7px}.round strong{font-size:14px}.match-info{padding:5px 8px;margin-bottom:6px;gap:8px}.match-info b{font-size:10px}.match-info span{font-size:8px;line-height:1.3}.match-info strong{font-size:9px}.timer{width:57px}.timer small{font-size:6px}.timer b{font-size:20px}.map-label,.map-footer,.compass,.bottom-note{display:none}aside{flex:none;margin:0;padding:0;border:0;display:grid;grid-template-columns:1fr 1fr;column-gap:10px;row-gap:5px}aside>.eyebrow{display:none}.target-heading{grid-column:1;margin:0;align-self:center}.target-heading h2{font-size:13px}.target-heading span{display:none}.target{grid-column:2;grid-row:1 / 3;display:flex;align-items:center;justify-content:space-between;padding:5px 8px;gap:6px}.target strong{font-size:31px}.target small{font-size:7px;max-width:40px}.target>span{font-size:7px;max-width:55px}.resources{grid-column:1;padding:2px 0;border:0;gap:10px;font-size:9px}.resources b{font-size:12px}.section-title{display:none}.expression{grid-column:1 / 3;min-height:32px;font-size:10px}.expression button{font-size:19px;padding:0 3px}.equation-status{grid-column:1 / 3;min-height:14px;font-size:9px;margin:0;line-height:1.25}.cards{grid-column:1 / 3;grid-template-columns:repeat(8,1fr);gap:4px}.cards button{height:34px;font-size:19px}.operators{grid-column:1 / 3;margin:0;gap:5px}.operators button{height:28px}.claim{grid-column:1;padding:10px 6px;font-size:10px}.cost{display:none}.bridge{grid-column:2;padding:8px 3px;font-size:9px}.pass{grid-column:1 / 3;margin:0;padding:10px;font-size:12px}.tip{display:none}.notification{top:58px;padding:12px}.notification b{font-size:16px}.notification p{font-size:11px}#clear{display:none}}
@media(orientation:landscape) and (max-height:600px){header{height:40px;padding:0 15px}.brand{font-size:9px}.brand b{margin-left:31px}.brand-icon{font-size:25px}.class-label{display:none}main{height:calc(100dvh - 40px);display:grid;grid-template-columns:minmax(0,1fr) 260px;padding:7px 12px;gap:12px}.heading,.bottom-note,.tip,aside>.eyebrow{display:none}.players{margin:0 0 5px;gap:7px}.player{padding:3px 6px;gap:5px}.avatar{width:23px;height:23px;font-size:16px}.player strong{font-size:10px}.player small{font-size:7px;margin-top:1px}.score{font-size:18px}.match-info{padding:4px 7px;margin-bottom:5px}.match-info span{font-size:8px}.match-info b,.match-info strong{font-size:9px}.timer{width:60px}.timer b{font-size:20px}.timer small{font-size:6px}.map-label,.map-footer,.compass{display:none}aside{margin:0;border-left:1px solid #bca880;border-top:0;padding:0 0 0 12px;display:grid;grid-template-columns:1fr 1fr;gap:4px;align-content:start}.target-heading{grid-column:1 / 3;margin:0}.target-heading h2{font-size:13px}.target-heading span{font-size:8px}.target{grid-column:1;display:flex;align-items:center;justify-content:space-around;padding:3px}.target strong{font-size:30px}.target small{font-size:7px;max-width:40px}.target>span{display:none}.resources{grid-column:2;border:0;padding:4px;font-size:9px;flex-wrap:wrap;gap:5px}.resources>span{width:100%}.resources b{font-size:12px}.section-title{display:none}.expression{grid-column:1 / 3;min-height:31px;padding:2px;font-size:10px}.expression button{font-size:18px}.equation-status{grid-column:1 / 3;font-size:8px;min-height:13px;margin:0}.cards{grid-column:1 / 3;grid-template-columns:repeat(8,1fr);gap:3px}.cards button{height:30px;font-size:15px}.operators{grid-column:1 / 3;margin:0;gap:4px}.operators button{height:24px;font-size:17px}.claim{grid-column:1 / 3;padding:8px;font-size:10px}.cost{display:none}.bridge{grid-column:1 / 3;padding:6px;font-size:9px}.pass{grid-column:1 / 3;margin:0;padding:8px;font-size:11px}.notification{top:47px;padding:10px}.event-dialog{padding:18px}.event-dialog .event-icon{font-size:30px;margin:0}.event-dialog h2{font-size:23px;margin:8px 0}.event-dialog p{font-size:12px;margin:8px 0 14px}}
@media(max-height:690px) and (orientation:portrait){.players .avatar{display:none}.match-info span{display:none}.cards button{height:28px}.operators button{height:25px}.pass{padding:8px}.target strong{font-size:25px}.target>span{display:none}.expression{min-height:28px}.claim{padding:8px}.match-info{padding:4px 7px}}
@media(prefers-reduced-motion:reduce){.timer.urgent,.notification{animation:none}}
#choose-map{border:1px solid #746448;border-radius:8px;padding:7px 12px;color:#f3e2b7;font-size:12px;white-space:nowrap}.current-map{display:block;margin-top:13px;color:#786448;font-size:11px}#map-picker{width:min(690px,calc(100% - 24px));max-width:690px;padding:25px}#map-picker h2{font-family:Georgia,serif;margin:10px 0;font-size:27px}#map-picker>p{font-size:12px;line-height:1.5}.map-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.map-option{text-align:left;padding:8px;border:2px solid #cfbb93;background:#efe0c1;border-radius:9px;transition:border-color .15s,transform .15s}.map-option:hover{border-color:#987446;transform:translateY(-2px)}.map-option.selected{border-color:#a64c35;background:#f7dbb5;box-shadow:0 0 0 2px #a64c3520}.map-option svg{display:block;width:100%;height:100px;border-radius:5px}.map-option b{display:block;font-family:Georgia,serif;font-size:16px;margin:9px 3px 5px}.map-option span{display:block;font-size:10px;line-height:1.45;color:#6c583f;margin:0 3px}.random-map{width:100%;padding:12px;border:2px dashed #a48a5a;border-radius:7px;font-size:13px;background:#e9d6af}.random-map.selected{border:2px solid #a64c35;background:#f7dbb5;font-weight:700}#map-selection{padding:12px 0;color:#8b422f;font-weight:700}@media(max-width:760px){#choose-map{padding:7px;font-size:16px}#choose-map span{display:none}#map-picker{padding:18px}.map-options{gap:8px;margin:12px 0}.map-option svg{height:80px}.map-option b{font-size:13px}.map-option span{font-size:9px}}@media(max-height:500px){#map-picker{padding:16px}.map-options{grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.map-option svg{height:70px}.map-option b{font-size:12px}.map-option span{font-size:8px}.random-map{padding:8px}#map-picker>p{font-size:10px}#map-selection{padding:7px 0}.current-map{margin-top:6px}.event-dialog p{margin-bottom:10px}}
.setup-settings{display:flex;gap:18px;margin-top:16px;padding:12px;background:#e8d7b3;border-radius:7px}.setup-settings label{flex:1;font-size:11px;display:flex;flex-direction:column;gap:6px;margin:0}.setup-settings select{margin:0;width:100%;background:#fbf0d8;border-color:#bca176;font-size:12px;padding:7px}#map-picker .map-option svg{height:75px}#map-picker .map-options{margin:12px 0}@media(max-height:500px){.setup-settings{padding:7px;margin-top:8px;gap:12px}.setup-settings label{flex-direction:row;align-items:center;white-space:nowrap;gap:8px;font-size:10px}.setup-settings select{padding:4px;font-size:10px}#map-picker .map-option svg{height:55px}#map-picker h2{margin:6px 0;font-size:23px}}
.pirate-banner{margin:0 0 10px;height:clamp(70px,12dvh,130px);flex:none;border:2px solid #957d50;border-radius:9px;overflow:hidden;background:#a8b9a0;box-shadow:0 3px 0 #705b3328}.pirate-banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 44%}@media(max-width:760px) and (orientation:portrait){.pirate-banner{height:76px;margin-bottom:6px}.pirate-banner img{object-fit:cover;object-position:center}}@media(max-height:690px) and (orientation:portrait){.pirate-banner{height:52px}}@media(orientation:landscape) and (max-height:600px){.pirate-banner{height:48px;margin-bottom:5px}}
.game>.heading{display:none}.pirate-banner{display:flex;align-items:center;height:clamp(100px,18dvh,165px);background:#302a22}.pirate-banner img{width:52%;object-fit:contain}.pirate-banner figcaption{flex:1;padding:12px 20px;color:#f3e2b7}.pirate-banner figcaption>span{font-size:8px;letter-spacing:1.5px;color:#cfad66}.pirate-banner h1{font-family:Georgia,serif;font-size:clamp(19px,2.2vw,30px);margin:9px 0}.pirate-banner p{font-size:11px;color:#c5b28d}@media(max-width:760px) and (orientation:portrait){.pirate-banner{height:76px}.pirate-banner img{width:100%;object-fit:cover}.pirate-banner figcaption{display:none}}@media(max-height:690px) and (orientation:portrait){.pirate-banner{height:52px}}@media(orientation:landscape) and (max-height:600px){.pirate-banner{height:48px}.pirate-banner img{width:100%;object-fit:contain}.pirate-banner figcaption{display:none}}
.pirate-banner img{width:100%;object-fit:contain;object-position:center}.pirate-banner{justify-content:center}.pirate-banner img{aspect-ratio:21/7}@media(max-width:760px) and (orientation:portrait){.pirate-banner img{object-fit:contain}}
