@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#0b2026;--panel:#10292d;--line:#d7b77935;--muted:#b0bcb7;--gold:#edc77e;--text:#f4ecda;--serif:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:#0b2026;color:var(--text);font:16px 'DM Sans',sans-serif;min-height:100vh}body:before{content:'';position:fixed;inset:0;background:linear-gradient(#081c28b3,#081a20ee),url('assets/ocean.webp') center/cover;z-index:-1}button,select{font:inherit}button{cursor:pointer;border:1px solid #bda27150;background:linear-gradient(#32403980,#192e2bc4);color:var(--text);border-radius:7px;padding:11px 16px;transition:background .2s,transform .2s,box-shadow .2s}button:hover:not(:disabled){background:#405449;box-shadow:0 3px 16px #0003;transform:translateY(-1px)}button:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.43;cursor:not-allowed}.primary{background:linear-gradient(135deg,#f0d494,#cea45c);border-color:#f4dba4;color:#263228;font-weight:700;box-shadow:inset 0 1px #fff6,0 4px 12px #0003}.primary:hover:not(:disabled){background:linear-gradient(135deg,#ffe3a3,#ddb470)}.full{width:100%}header{min-height:90px;padding:15px 3.2%;display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(#0a1d22ef,#0a1d22b0);border-bottom:1px solid #c7ad7438;box-shadow:0 8px 40px #0002}.brand{display:flex;align-items:center;gap:13px}.brandmark{font-size:52px;color:var(--gold);line-height:1;text-shadow:0 1px 12px #efc77b33}.brand h1{font:700 29px var(--serif);letter-spacing:5px;margin:0}.brand div>span{font-size:11px;color:var(--gold);letter-spacing:5px;display:block;margin-top:2px}.topcenter{font-size:13px;color:var(--muted);display:flex;gap:15px;align-items:center}.tag{font-size:11px;letter-spacing:2px;border-left:1px solid var(--line);padding-left:20px}nav{display:flex;gap:9px}nav button{font-size:14px}main{max-width:1630px;margin:auto;padding:23px 30px 40px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px}.panel{border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#183638f5,#102729f7);padding:20px;box-shadow:0 8px 28px #0002,inset 0 1px #ffffff08}.sectiontitle{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.sectiontitle h2{font:600 24px var(--serif);margin:0}.sectiontitle>span{font-size:11px;letter-spacing:1.2px;color:#baa87f}.standings{grid-column:1/-1;padding:0;border:0;background:none;box-shadow:none}.standings .sectiontitle{margin:0 3px 10px}.standings .sectiontitle h2{font-size:22px}.standings .sectiontitle>span{font-size:11px}#players{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.player{min-height:112px;border:1px solid #c3a87138;background:linear-gradient(110deg,#203b3ef5,#10272df5);border-radius:10px;display:flex;position:relative;overflow:hidden;align-items:center;gap:16px;box-shadow:0 5px 20px #0003}.player.active{border-color:var(--c);box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 15%,transparent),0 4px 20px #0003}.portrait{height:112px;width:110px;flex-shrink:0;align-self:stretch;background-image:url('assets/portraits.webp');background-size:300% 100%;background-position:var(--portrait) 50%;mask-image:linear-gradient(to right,#000 65%,transparent);-webkit-mask-image:linear-gradient(to right,#000 65%,transparent)}.playername{flex:1;min-width:0;padding:9px 0}.playerrole{display:block;font-size:10px;letter-spacing:1.8px;color:var(--c);margin-bottom:5px}.playername strong{display:block;font:600 25px var(--serif)}.playername small{display:block;font-size:11px;color:#b6c3bd;margin-top:8px;line-height:1.5}.playername small span{color:#6c817a;margin:0 3px}.score{min-width:50px;margin-right:17px;text-align:center;color:var(--c);font:600 37px var(--serif)}.score small{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:1px;color:#b7b7a3}.playerprogress{position:absolute;height:3px;background:var(--c);bottom:0;left:0;box-shadow:0 0 9px var(--c)}.world{min-height:630px;position:relative;overflow:hidden;border-radius:13px;border:1px solid #c2a76a6b;background:linear-gradient(#143e4833,#0b354533),url('assets/ocean.webp') center/cover;box-shadow:0 14px 35px #0005,inset 0 0 70px #00121966;isolation:isolate}.world:after{content:'';position:absolute;inset:6px;border:1px solid #e9cb831e;border-radius:9px;pointer-events:none}.worldtop{position:absolute;top:24px;left:26px;right:26px;display:flex;justify-content:space-between;gap:15px;align-items:start;z-index:2;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:2.3px;color:#d2c49f}.world h2{font:600 33px var(--serif);margin:4px 0;text-shadow:0 2px 10px #000b}.round{font-size:12px;padding:9px 13px;border:1px solid #e7c9854a;border-radius:6px;background:#102d34d9;color:#e9d7ac;box-shadow:0 3px 10px #0003}#viewport{position:absolute;inset:42px 0 63px;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}#loading{position:absolute;top:40%;left:0;width:100%;text-align:center;color:var(--gold)}#tileInfo{position:absolute;top:113px;left:25px;font-size:13px;text-shadow:0 2px 5px #000;pointer-events:none;color:#e5e6d4;max-width:85%;z-index:2}.viewcontrols{position:absolute;bottom:118px;left:20px;display:flex;gap:5px}.viewcontrols button{background:#0d2932e6;border-color:#d0b67545;padding:8px 11px;font-size:14px}.boardhint{position:absolute;left:22px;right:22px;bottom:50px;display:flex;gap:11px;justify-content:center;align-items:center;padding:13px 17px;border:1px solid #d1ac6573;border-radius:7px;background:linear-gradient(90deg,#132e31f2,#1c3c3be8,#132e31f2);font-size:14px;text-align:center;color:#f5e1b1;box-shadow:0 5px 18px #0004}.hintdot{height:6px;width:6px;transform:rotate(45deg);background:var(--gold);flex-shrink:0}.legend{position:absolute;bottom:19px;left:10px;right:10px;display:flex;justify-content:center;gap:15px;font-size:11px;color:#d0d7c8;text-shadow:0 1px 3px #000}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;transform:rotate(45deg);background:var(--c);border:1px solid #ffffff40}aside{display:flex;flex-direction:column;gap:16px;min-width:0}.turn{background:linear-gradient(155deg,#273e38f7,#112c2ef7)}.turn .sectiontitle h2{font-size:26px}.turn .sectiontitle>span{font-size:10px;letter-spacing:1px}.dicezone{display:flex;gap:13px;align-items:center;justify-content:center;margin:23px 0}.die{width:53px;height:53px;flex-shrink:0;background:linear-gradient(135deg,#fff9df,#dacb9c);border:1px solid #eddeb5;border-radius:10px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:9px;gap:4px;box-shadow:inset 1px 2px 2px #fff,0 4px 0 #968569,0 7px 9px #0003;transform:rotate(-7deg)}.die:nth-child(2){transform:rotate(8deg)}.die i{border-radius:50%;min-width:0;min-height:0}.die .pip{background:#263a32;box-shadow:inset 0 1px 2px #0007}#sum{font-size:10px;letter-spacing:1px;color:#b0bdb0;margin-left:4px}#sum>span{font-size:12px;letter-spacing:0;line-height:1.5}#sum strong{display:block;font:600 30px var(--serif);color:#f6dfaa;margin-top:3px}#roll{padding:13px}.buildheader{margin:22px 0 11px;font-size:10px;color:#b4bca4;letter-spacing:1.6px}.builds{display:flex;flex-direction:column;gap:8px}.builds button{display:flex;gap:12px;align-items:center;text-align:left;padding:11px 10px;background:#071d1c40;border-color:#c9b57e27}.builds button.selected{border-color:#e9c074;background:#b69d4b29;box-shadow:inset 3px 0 #e8c17a;opacity:1}.buildicon{font:32px var(--serif);width:26px;color:var(--gold);text-align:center}.builds b{font-size:15px;font-weight:500}.builds small{display:block;font-size:10px;color:#b0beb2;line-height:1.5;margin-top:3px}.buildplus{margin-left:auto;color:#c1ae81;font-size:21px}.turnactions{display:flex;gap:8px;margin-top:15px}.turnactions button{flex:1;font-size:12px;padding:12px 7px}#end{color:#f0d299;border-color:#d5b7736e}.journal{flex:1;padding:18px 20px;min-height:125px}.journal .sectiontitle{margin-bottom:10px}.journal .sectiontitle h2{font-size:22px}.journal .sectiontitle>span{display:none}#logs{list-style:none;padding:0;margin:0;max-height:107px;overflow:auto;scrollbar-width:thin}#logs li{font-size:12px;line-height:1.6;color:#a6b8ad;padding:5px 0;border-bottom:1px solid #ffffff09}#logs li:first-child{color:#e8d8b5}.inventory{grid-column:1/-1;display:grid;grid-template-columns:145px 1fr 120px;gap:24px;align-items:center;padding:21px 24px;background:linear-gradient(110deg,#1d322deb,#172b29ed);border:1px solid var(--line);border-radius:12px;box-shadow:0 5px 20px #0003}.inventorytitle strong{display:block;font:600 27px var(--serif);margin-top:7px}.inventorytitle .eyebrow{color:#b9aa80;font-size:10px;letter-spacing:1.7px}#resources{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:stretch}.resource{position:relative;overflow:hidden;border:1px solid #baa16888;border-radius:9px;box-shadow:0 7px 15px #0005;background:#132922;transition:transform .2s,box-shadow .2s;min-height:152px}.resource:hover{transform:translateY(-5px);box-shadow:0 13px 20px #0006}.resource:after{content:'';position:absolute;inset:4px;border:1px solid #f2d59b35;border-radius:5px;pointer-events:none}.card-art{background-image:url('assets/cards.webp');background-size:500% 200%;background-position:var(--art-x) var(--art-y);background-repeat:no-repeat}.resource-art{position:absolute;inset:0}.resource-caption{position:absolute;bottom:0;left:0;right:0;padding:25px 10px 11px;background:linear-gradient(transparent,#081a13eb 38%);text-align:center}.resource-caption strong{display:block;font:600 22px var(--serif);color:#f8e9c6}.resource-caption small{display:block;font-size:10px;color:#c4cabb;margin-top:2px}.resource-count{position:absolute;top:7px;right:7px;width:33px;height:35px;display:grid;place-items:center;background:linear-gradient(#f4da9f,#d1ad68);color:#273929;font:700 25px var(--serif);border:1px solid #fff1c0;border-radius:5px;box-shadow:0 3px 8px #0005;z-index:1}.inventoryfoot{font-size:13px;color:#a8b8ac;line-height:2.1}.inventoryfoot b{float:right;color:#edd39d;font-weight:500;margin-left:10px}.development{grid-column:1/-1;padding:23px 25px;background:linear-gradient(130deg,#172f2ff5,#142b27f5)}.development .sectiontitle{margin-bottom:7px}.development .sectiontitle h2{font-size:29px}.devtop{display:flex;align-items:center;justify-content:space-between;gap:15px}.devtop p{font-size:14px;color:#b4c0b3;margin:0;line-height:1.6}.devtop button{font-size:14px;flex-shrink:0}#cardStatus{font-size:12px;color:#b5ad92;margin-top:16px}#cards{display:flex;gap:17px;flex-wrap:wrap;margin:14px 0 24px}.devcard{flex:1 1 155px;max-width:235px;position:relative;border:1px solid #bd9e60a3;border-radius:11px;background:linear-gradient(#24403c,#0e2524);box-shadow:0 7px 20px #0005;overflow:hidden;transition:transform .2s,box-shadow .2s}.devcard:hover{transform:translateY(-4px);box-shadow:0 12px 22px #0006}.dev-art{width:100%;aspect-ratio:1.48}.card-kind{display:block;text-align:center;font-size:9px;letter-spacing:1.5px;color:#263a2e;background:linear-gradient(90deg,#b89d64,#e9d6a3,#b89d64);padding:5px 4px;position:relative;margin-top:-4px;border-top:1px solid #f5e4b466;border-bottom:1px solid #bd9b64}.card-copy{padding:13px 14px 14px}.card-copy b{display:block;font:600 24px var(--serif);color:#eed6a2;line-height:1.1}.card-copy p{font-size:13px;line-height:1.5;color:#bac8b8;min-height:39px;margin:9px 0 13px}.card-copy button{font-size:13px;padding:9px 7px;width:100%;border-color:#c7af775e}.preview-card{max-width:none}.preview-card .card-copy p{margin-bottom:0}.preview-card .card-kind{background:#1a3330;color:#c1b086}.preview-card .dev-art{aspect-ratio:1.8}.preview-card .card-copy b{font-size:22px}#awards{display:grid;grid-template-columns:1fr 1fr;gap:17px;border-top:1px solid var(--line);padding-top:19px}.award{display:flex;gap:15px;align-items:center;background:#ffffff03;border:1px solid #c8b16f25;border-radius:8px;padding:13px 17px}.award-icon{font-size:36px;color:#d4b571;line-height:1}.award b{font-size:14px;color:#e2c788;font-weight:500}.award div>span{display:block;font-size:12px;margin-top:5px;color:#aebfb2}dialog{width:min(550px,calc(100% - 28px));max-height:85vh;overflow:auto;background:linear-gradient(140deg,#25443e,#102829);border:1px solid #c2a365;border-radius:13px;color:var(--text);padding:32px;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#04181bce;backdrop-filter:blur(7px)}dialog h2{font:600 34px var(--serif);margin:0 20px 14px 0}dialog p,dialog li{font-size:15px;line-height:1.75;color:#c4d1c1}dialog ul{padding-left:20px}dialog b{color:#eddaad}.close{position:absolute;top:12px;right:12px;border:0;background:transparent;font-size:24px;padding:0 9px}.tradeform{display:grid;gap:14px}.tradeform label,dialog label{font-size:14px;color:#c0c8b4;display:block}select{width:100%;background:#0c2728;color:var(--text);border:1px solid #8f926b;border-radius:6px;padding:12px;margin-top:5px}#tradeResult{min-height:22px;font-size:14px;color:var(--gold)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(160px);transition:.2s;background:linear-gradient(#f2d899,#d4b06b);color:#1b3025;border:1px solid #ffe8ac;padding:14px 25px;border-radius:9px;z-index:10;box-shadow:0 8px 30px #0007;text-align:center;max-width:90%;font-size:14px}#toast.show{transform:translateX(-50%) translateY(0)}
@media(min-width:1450px){.world{min-height:650px}.resource{min-height:175px}.portrait{width:123px}.player{min-height:120px}.portrait{height:120px}}
@media(max-width:1150px){main{padding:20px;grid-template-columns:minmax(0,1fr) 305px;gap:16px}.topcenter{display:none}.portrait{width:80px;height:104px}.player{min-height:104px;gap:8px}.playername strong{font-size:22px}.playername small{font-size:10px}.playerrole{font-size:9px;letter-spacing:1px}.score{font-size:32px;margin-right:10px;min-width:38px}.inventory{grid-template-columns:110px 1fr;gap:15px;padding:18px}.inventoryfoot{display:none}.inventorytitle strong{font-size:25px}#resources{gap:10px}.resource{min-height:143px}.resource-caption small{display:none}.panel{padding:17px}.worldtop{left:20px;right:20px}.world h2{font-size:29px}.sectiontitle>span{font-size:10px}.playername small span{margin:0}.builds small{font-size:10px}}
@media(max-width:850px){main{grid-template-columns:minmax(0,1fr) 275px;padding:15px;gap:13px}.playername small{font-size:10px;max-width:120px}.portrait{width:62px;height:99px}.playername strong{font-size:21px}.score{font-size:28px;min-width:30px}.score small{font-size:8px}.playerrole{font-size:8px}.player{gap:4px;min-height:99px}.worldtop{top:20px;left:16px;right:16px}.world h2{font-size:27px}.round{font-size:10px;padding:7px 8px}.eyebrow{font-size:9px}.world{min-height:650px}.legend{gap:8px;font-size:10px}.boardhint{font-size:12px;left:13px;right:13px}.builds b{font-size:14px}.builds small{font-size:9px}.inventory{grid-template-columns:1fr}.inventorytitle{display:flex;align-items:center;gap:12px}.inventorytitle strong{margin:0;font-size:25px}.resource{min-height:155px}.turn .sectiontitle h2{font-size:23px}.turnactions button{font-size:11px}.preview-card{flex-basis:125px}#cards{gap:10px}.card-copy{padding:12px}.preview-card .card-copy b{font-size:20px}.card-copy p{font-size:12px}}
@media(max-width:700px){header{min-height:75px;padding:12px 15px;gap:10px}.brand{gap:9px}.brand h1{font-size:24px;letter-spacing:3px}.brand div>span{font-size:9px;letter-spacing:4px}.brandmark{font-size:38px}nav{gap:5px}nav button{font-size:11px;padding:9px 8px}main{display:flex;flex-direction:column;padding:12px 10px 25px;gap:13px}.standings{order:0}.standings .sectiontitle h2{font-size:23px}.standings .sectiontitle>span{font-size:8px;letter-spacing:.5px}#players{gap:7px}.player{flex-direction:column;align-items:center;gap:0;min-height:0;background:#112d2ce8;border-radius:9px}.portrait{height:auto;aspect-ratio:1.15;width:100%;mask-image:linear-gradient(#000 70%,transparent);-webkit-mask-image:linear-gradient(#000 70%,transparent);align-self:auto}.playername{width:100%;text-align:center;padding:0 5px 7px;margin-top:-4px;z-index:1}.playerrole{font-size:8px;letter-spacing:.5px;margin:0 0 3px}.playername strong{font-size:20px;line-height:1.1}.playername small{display:none}.score{position:absolute;right:5px;top:5px;min-width:29px;margin:0;padding:2px 5px;background:#112926e6;border:1px solid #d5b97866;border-radius:5px;font-size:23px}.score small{font-size:7px;letter-spacing:0}.world{order:1;height:490px;min-height:490px;flex:none;border-radius:10px}.worldtop{top:16px;left:16px;right:16px}.world h2{font-size:29px}.world .eyebrow{font-size:9px;letter-spacing:1.5px}#viewport{inset:47px 0 66px}#tileInfo{top:91px;left:16px;font-size:11px;max-width:90%}.round{font-size:10px}.viewcontrols{left:13px;bottom:112px;gap:4px}.viewcontrols button{font-size:12px;padding:8px 10px}.boardhint{font-size:12px;padding:11px;bottom:47px;left:11px;right:11px}.legend{font-size:9px;gap:8px;bottom:18px}.legend i{width:6px;height:6px}.inventory{order:2;display:block;padding:13px 10px}.inventorytitle{display:flex;margin-bottom:12px;padding:0 4px;justify-content:space-between;flex-direction:row-reverse}.inventorytitle strong{font-size:25px}.inventorytitle .eyebrow{font-size:9px}#resources{gap:6px}.resource{min-height:115px;border-radius:7px}.resource-caption{padding:19px 3px 8px}.resource-caption strong{font-size:17px}.resource-count{height:27px;width:25px;top:5px;right:5px;font-size:21px}.resource:after{inset:3px}.resource-art{background-size:500% 200%}aside{order:3;display:grid;grid-template-columns:1fr}.turn{padding:18px}.turn .sectiontitle h2{font-size:28px}.turn .sectiontitle>span{font-size:11px}.dicezone{margin:15px 0 20px}.die{width:57px;height:57px;padding:10px}#roll{font-size:16px;padding:13px}.buildheader{font-size:11px;margin-top:21px}.builds button{padding:11px}.builds b{font-size:16px}.builds small{font-size:12px}.turnactions button{font-size:14px;padding:13px 6px}.journal{min-height:0}.journal .sectiontitle h2{font-size:25px}#logs{max-height:97px}#logs li{font-size:13px}.development{order:4;padding:18px 13px}.development .sectiontitle h2{font-size:29px}.devtop{align-items:stretch;flex-direction:column;gap:11px}.devtop p{font-size:13px}.devtop button{padding:13px}#cards{flex-wrap:nowrap;overflow:auto;padding:3px 1px 13px;scroll-snap-type:x proximity;margin-bottom:12px;gap:12px}.devcard,.preview-card{flex:0 0 170px;max-width:170px;scroll-snap-align:start}.dev-art,.preview-card .dev-art{aspect-ratio:1.3}.card-copy b,.preview-card .card-copy b{font-size:24px}.card-copy p{font-size:13px;min-height:59px}.card-kind{font-size:9px}.card-copy button{font-size:14px}#awards{grid-template-columns:1fr;gap:10px}.award{padding:13px}.award b{font-size:14px}.award div>span{font-size:12px}dialog{padding:25px}dialog h2{font-size:31px}.sectiontitle>span{font-size:10px}}
@media(max-width:370px){.brand h1{font-size:21px;letter-spacing:2px}.brandmark{font-size:31px}.brand div>span{font-size:8px}nav button{padding:8px 6px;font-size:10px}.playername strong{font-size:18px}.resource-caption strong{font-size:15px}.resource{min-height:103px}.legend{font-size:8px;gap:6px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Readable game metadata on every screen. */
.playerrole,.playername small,.score small,.sectiontitle>span,.card-kind,.buildheader,.builds small,.legend,.resource-caption small,.eyebrow,.round,.turn .sectiontitle>span,.inventorytitle .eyebrow{font-size:12px}.builds small{line-height:1.45}.card-kind{letter-spacing:.7px}.score small{letter-spacing:0}.playerrole{letter-spacing:.7px}.playername small{line-height:1.55}.topcenter{font-size:14px}.builds b,.turnactions button{font-size:14px}#sum{font-size:12px}.card-copy p{font-size:14px}.card-copy button{font-size:14px}.devtop p{font-size:14px}.playername{overflow-wrap:anywhere}.sectiontitle{flex-wrap:wrap}.round{flex-shrink:0}
@media(max-width:850px) and (min-width:701px){.playerrole{display:none}.playername small{font-size:12px}.portrait{width:57px}.playername strong{font-size:20px}.playername small span{display:none}.score small{font-size:12px}.playername small{max-width:95px}.standings .sectiontitle>span{font-size:12px}}
@media(max-width:700px){.standings .sectiontitle>span{font-size:12px;letter-spacing:0}.playerrole{display:none}.score small{font-size:12px}.playername strong{font-size:20px}.legend{font-size:12px;gap:7px;flex-wrap:wrap}.legend i{display:none}.world .eyebrow{font-size:12px}.round{font-size:12px}.worldtop{gap:8px}.world h2{font-size:27px}.brand div>span{font-size:12px;letter-spacing:2px}nav button{font-size:12px}.viewcontrols button{min-height:36px}.card-copy p{min-height:63px}.card-copy button{min-height:42px}.world{height:510px;min-height:510px}.resource-caption small{display:none}}
#syncOverlay{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:#09232be8;backdrop-filter:blur(6px)}#syncOverlay[hidden]{display:none}#syncOverlay strong{font:600 30px var(--serif);max-width:440px;color:#f3d9a1}#syncOverlay p{max-width:400px;font-size:15px;line-height:1.7;color:#c1cfc2}#syncOverlay button{margin-top:8px;min-height:44px}#saveStatus{font-size:12px;min-width:110px;background:transparent;border-color:#b8aa7840}#saveStatus:disabled{opacity:.85;cursor:default}#saveStatus[data-status="error"],#saveStatus[data-status="conflict"]{color:#ffe2a4;border-color:#f0bc6e}#productionNotice{position:absolute;top:100px;left:50%;transform:translate(-50%,-8px);padding:12px 20px;border:1px solid #e3be7370;background:#0f302fe8;box-shadow:0 8px 25px #0004;color:#f5ddaa;border-radius:8px;font-size:14px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:3;max-width:85%;width:max-content}#productionNotice.show{opacity:1;transform:translate(-50%,0)}.dicezone.rolling .die{animation:dice-roll .14s ease-in-out infinite alternate}.dicezone.rolling .die:nth-child(2){animation-direction:alternate-reverse}#quality{min-width:96px;font-size:12px}.viewcontrols{flex-wrap:wrap;max-width:calc(100% - 30px)}@keyframes dice-roll{from{transform:translateY(-5px) rotate(-18deg)}to{transform:translateY(2px) rotate(18deg)}}@media(max-width:700px){header{flex-wrap:wrap}.brand{flex:1}nav{flex-wrap:wrap;justify-content:flex-end;gap:5px}#saveStatus{min-width:90px;font-size:12px;padding:8px}.topcenter{display:none}#productionNotice{top:100px;font-size:13px;padding:10px 13px}#tileInfo{background:#0a2a3199;border-radius:5px;padding:3px 6px;font-size:12px}.viewcontrols{bottom:116px}#quality{min-width:85px}#syncOverlay strong{font-size:27px}}@media(max-width:460px){header nav{width:100%;justify-content:space-between}header nav button{min-height:37px}#saveStatus{margin-right:auto}}@media(prefers-reduced-motion:reduce){.dicezone.rolling .die{animation:none}#productionNotice{transition:none}}
#motion{font-size:12px;min-width:76px}.viewcontrols{gap:5px}@media(max-width:700px){.viewcontrols{left:11px;bottom:119px;max-width:calc(100% - 22px)}.viewcontrols button{padding:8px 9px}#quality{min-width:83px}#motion{min-width:72px}#tileInfo{max-width:calc(100% - 28px)}}

#syncOverlay [hidden]{display:none}#syncOverlay #playUnsaved{margin-top:10px;background:#dcb86c;color:#182c2c}#syncOverlay #signIn{color:#ffe2a4;margin-top:14px;text-decoration:underline}#saveStatus[data-status="offline"]{color:#ffe2a4}

/* The painted ocean moves independently of the board and controls. */
.world{background:#123942}.world:before{content:'';position:absolute;inset:-3%;z-index:-1;pointer-events:none;background:linear-gradient(#143e4833,#0b354533),url('assets/ocean.webp') center/cover;animation:ocean-drift 28s ease-in-out infinite alternate;will-change:transform}body:before{inset:-2%;animation:sky-drift 42s ease-in-out infinite alternate}.motion-paused:before,.motion-paused .world:before{animation-play-state:paused}
@keyframes ocean-drift{from{transform:translate3d(-.6%,-.35%,0) scale(1.01)}to{transform:translate3d(.6%,.35%,0) scale(1.035)}}@keyframes sky-drift{from{transform:scale(1)}to{transform:translate3d(.35%,.2%,0) scale(1.025)}}
#fieldCard{position:absolute;right:17px;top:103px;width:185px;z-index:4;border:1px solid #e0bd78b0;border-radius:11px;background:linear-gradient(145deg,#233e36f5,#0b2427fa);box-shadow:0 12px 35px #0007;overflow:hidden;pointer-events:none;animation:field-appear .18s ease-out}#fieldCard[hidden]{display:none}#fieldArt{height:95px;background-size:500% 200%;box-shadow:inset 0 -25px 22px -14px #152f2b}.field-copy{padding:10px 13px 13px}.field-kicker{font-size:12px;letter-spacing:1.5px;color:#c3af82}#fieldName{font:600 27px var(--serif);margin:3px 0;color:#ffe5b1}#fieldResource{font-size:14px;color:#d0d9c7;margin:0 0 10px}.field-roll{display:flex;align-items:center;gap:9px}.field-roll b{display:grid;place-items:center;width:37px;height:37px;flex-shrink:0;border-radius:50%;color:#324334;background:#f2dfaf;border:2px solid #c5a369;font:700 23px var(--serif)}.field-roll b[data-hot="true"]{color:#a12f23}#fieldChance{font-size:12px;line-height:1.5;color:#d2d9c7}#fieldYield{font-size:13px;line-height:1.5;margin:11px 0;color:#e1e5d6}#fieldState{display:block;border-top:1px solid #d5b66b35;padding-top:8px;font-size:12px;line-height:1.45;color:#b8d2b7}#fieldState[data-blocked="true"]{color:#ffc093}#closeFieldCard{position:absolute;right:5px;top:5px;padding:0;width:30px;height:30px;font-size:22px;background:#102a2ae8;pointer-events:auto}#fieldCard[data-terrain="desert"] #fieldArt{background-image:linear-gradient(135deg,#d4b777,#947548)}
@keyframes field-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){#fieldCard{top:auto;bottom:161px;right:10px;width:230px;display:grid;grid-template-columns:61px 1fr}#fieldArt{height:100%;min-height:118px;background-size:500% 200%}.field-copy{padding:8px 10px}.field-kicker{display:none}#fieldName{font-size:24px;margin:0}#fieldResource{margin:0 0 5px;font-size:13px}.field-roll b{width:28px;height:28px;font-size:20px}#fieldYield{margin:5px 0;font-size:12px}#fieldState{padding-top:4px}#closeFieldCard{top:3px;right:3px;width:25px;height:25px}}
@media(prefers-reduced-motion:reduce){body:before,.world:before,#fieldCard{animation:none}}
/* Game dialogs share the illustrated cards and island scenery. */
dialog[data-kind]{width:min(690px,calc(100% - 24px))}dialog[data-kind=""]{width:min(550px,calc(100% - 24px))}dialog .close{z-index:3;background:#102726cc;border-radius:50%;width:34px;height:34px}dialog[data-kind="trade"] h2,dialog[data-kind="help"] h2{font-size:40px}.resource-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:10px 0 17px}.picker-label{font-size:12px;letter-spacing:2px;color:#d8c294;margin-top:18px}.resource-option{min-width:0;display:flex;flex-direction:column;padding:0 0 9px;overflow:hidden;background:#0e2826;border:2px solid #c6b07630;position:relative;box-shadow:0 4px 12px #0003}.resource-option.chosen{border-color:#f5d180;box-shadow:0 0 0 2px #f5d18022,0 5px 16px #0005;transform:translateY(-3px)}.resource-option.chosen:after{content:'✓';position:absolute;right:5px;top:5px;background:#f5d180;color:#19392d;border-radius:50%;width:23px;height:23px}.option-art{display:block;width:100%;aspect-ratio:1.05;margin-bottom:8px}.resource-option strong{font-size:14px;color:#f5e6c4}.resource-option small{font-size:12px;color:#c0cebb;margin-top:4px}.trade-equation{display:flex;align-items:center;justify-content:space-evenly;gap:10px;background:#071d1ea8;padding:15px 10px;border:1px solid #caaa6b50;border-radius:9px;color:#f4d7a0}.trade-equation span{font-size:28px;color:#dbbd80}.trade-equation strong{font-size:17px}.port-badges{display:flex;gap:8px;flex-wrap:wrap}.port-badges span{font-size:13px;padding:7px 13px;border:1px solid #a5b7a53b;border-radius:20px;color:#abbbae}.port-badges .active{color:#ffe2a1;background:#b4974236;border-color:#dfbd73}.event-card-art{width:180px;height:225px;border:2px solid #e9c783;border-radius:12px;margin:8px auto 20px;box-shadow:0 14px 35px #0007,0 0 40px #e4bc5120;animation:card-reveal .45s ease-out}.event-copy{text-align:center}.event-copy h2{margin:8px 0;font-size:42px}.event-copy p{margin:8px auto;max-width:490px}.event-note{color:#abbeb1!important;font-size:14px!important}.event-actions{margin-top:22px}.timing-badge{display:block;padding:10px;margin-bottom:14px;text-align:center;border:1px solid #d5b57845;color:#f1d18e;border-radius:7px;font-size:14px}.island-banner{margin:-32px -32px 0;padding:55px 32px 35px;background:linear-gradient(0deg,#15302eed,#12324135),url('assets/ocean.webp') center/cover;min-height:235px}.island-banner h2{font-size:45px;margin-top:9px;max-width:390px}.island-banner p{color:#e8e4cb;margin:0;max-width:360px}.expedition-facts{display:flex;justify-content:space-around;gap:14px;border-bottom:1px solid #c2a96c40;padding:22px 0}.expedition-facts span{text-align:center;color:#bfc8b7;font-size:13px}.expedition-facts b{display:block;font:600 35px var(--serif);color:#f0d18f}.secondary-action{margin-top:10px;background:transparent}.help-nav{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #d2b57735}.help-nav button{font-size:14px;padding:9px 13px}.help-nav .selected{background:#e2bd75;color:#18352f;border-color:#ffe1a5}.help-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.help-steps article{border:1px solid #c1a86c38;padding:17px 13px;border-radius:9px;background:#091f224d}.help-steps article>b{font:600 30px var(--serif);color:#edc77e}.help-steps h3{font:600 23px var(--serif);color:#f3dca8;margin:9px 0}.help-steps p{font-size:14px;line-height:1.6;margin:0}.help-goal{font:600 38px var(--serif);padding:15px;background:#d9b46017;border:1px solid #d9b46045;text-align:center;border-radius:8px;color:#f1cd87;margin:18px 0}.help-goal span{display:block;font:14px 'DM Sans',sans-serif;color:#c4cfbd;margin-top:4px}.help-card-strip{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px}.help-card-strip article{flex:0 0 150px;border:1px solid #c4a26355;border-radius:9px;overflow:hidden;background:#112c28}.help-card-strip .card-art{height:110px}.help-card-strip h3{font:600 22px var(--serif);margin:12px;color:#f0d39a}.help-card-strip p{font-size:13px;margin:12px;line-height:1.5}.number-demo{display:flex;justify-content:center;align-items:center;gap:18px;padding:25px 0}.number-demo b{display:grid;place-items:center;background:#f1dfb3;color:#a93325;font:700 38px var(--serif);border-radius:50%;width:62px;height:62px;border:3px solid #bea268}.number-demo span{font-size:14px;max-width:115px;text-align:center;color:#d0d9c6}.victory-header{text-align:center;background:radial-gradient(ellipse at 50% 25%,color-mix(in srgb,var(--winner) 25%,transparent),transparent 65%);padding:10px 0 0}.victory-portrait.portrait{width:120px;height:132px;border:3px solid var(--winner);border-radius:60px;margin:0 auto 22px;mask-image:none;-webkit-mask-image:none;box-shadow:0 0 50px color-mix(in srgb,var(--winner) 30%,transparent);animation:card-reveal .6s ease-out}.victory-header h2{font-size:43px;margin:10px 0}.victory-score{font:700 72px var(--serif);color:#f6d68e;line-height:1;margin:20px 0}.victory-score small{display:block;font:14px 'DM Sans',sans-serif;color:#c4cdb9;margin-top:9px}.results-list{display:grid;gap:9px;margin:23px 0 12px}.results-list article{display:flex;align-items:center;gap:15px;padding:13px 17px;background:#081e2399;border-left:5px solid var(--c);border-radius:6px}.results-list article>b{font:600 28px var(--serif);color:var(--c)}.results-list article>span{flex:1;font-size:17px}.results-list small{display:block;font-size:12px;color:#b9c4b3;margin-top:4px}.results-list strong{color:#f0d39b;font-size:18px}.result-round{text-align:center;font-size:14px!important}.site-footer{max-width:1600px;margin:8px auto 0;padding:28px 3.2%;border-top:1px solid #d6b87530;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;color:#b0beb1;background:#0b2027b0}.site-footer strong{font:600 24px var(--serif);letter-spacing:2px;color:#efd499}.site-footer strong span{font-size:15px}.site-footer p{font-size:13px;margin:7px 0 0}.site-footer small{font-size:12px;width:100%;color:#93aaa4}.site-footer button{font-size:14px}.player{border-color:var(--c)}.playername strong{color:var(--c)}.playerprogress{background:var(--c)!important}.builds button.selected{border-color:#ff5260;box-shadow:inset 3px 0 #ff5260;background:#ed334c20}.builds button.selected b{text-decoration:underline;text-decoration-color:#ff5260;text-underline-offset:5px}.hintdot{background:#ff5260}
@keyframes card-reveal{from{opacity:0;transform:translateY(14px) scale(.94) rotate(-3deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@media(max-width:700px){dialog[data-kind]{padding:23px 17px}.resource-picker{gap:5px}.resource-option strong{font-size:12px}.resource-option small{font-size:11px}.option-art{aspect-ratio:.85}.trade-equation strong{font-size:14px}.event-card-art{width:145px;height:180px}.event-copy h2{font-size:35px}.help-steps{grid-template-columns:1fr}.help-steps article{padding:13px}.help-nav{gap:5px}.help-nav button{font-size:13px;padding:9px}.island-banner{margin:-23px -17px 0;padding:45px 22px 28px}.island-banner h2{font-size:37px}.victory-header h2{font-size:34px}.expedition-facts{gap:8px}.expedition-facts span{font-size:12px}.site-footer{padding:23px 17px}.number-demo{gap:10px}}
@media(prefers-reduced-motion:reduce){.event-card-art,.victory-portrait.portrait{animation:none}}
/* Consistent game HUD, framed miniatures and quiet feedback. */
header{border-bottom:1px solid #e6c48155;background:linear-gradient(180deg,#081b24f5,#122c30f2);box-shadow:0 8px 30px #0004}header nav button{min-height:42px;border-color:#dac38a50}.brand h1{text-shadow:0 2px 0 #000,0 0 24px #dab66b20}.brandmark{filter:drop-shadow(0 3px 6px #0007)}.panel{box-shadow:inset 0 1px 0 #fff1,0 10px 25px #0003}.standings{background:linear-gradient(115deg,#16302ff2,#0d252df2)}.player{border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:linear-gradient(110deg,color-mix(in srgb,var(--c) 10%,#102729),#0f272bea);transition:border-color .25s,box-shadow .25s}.player.active{border-color:var(--c);box-shadow:inset 0 0 24px color-mix(in srgb,var(--c) 10%,transparent),0 0 0 2px color-mix(in srgb,var(--c) 18%,transparent)}.player.active .playerrole:after{content:' · GRA';color:var(--c);font-weight:700}.score{font-variant-numeric:tabular-nums;text-shadow:0 2px 4px #0007}.playerprogress{height:4px;box-shadow:0 0 10px var(--c)}.world{min-height:700px;border:1px solid #dac1848a;box-shadow:0 18px 45px #0006,inset 0 0 70px #00121966}.world:after{inset:7px;border-color:#eedca339}.worldtop{top:22px}.turn-track{position:absolute;left:25px;top:105px;display:flex;gap:12px;z-index:2;pointer-events:none}.turn-track span{display:flex;align-items:center;gap:6px;color:#bdc9c1;font-size:12px;text-shadow:0 2px 3px #000;background:#0b2731b8;border:1px solid #c8b8852a;border-radius:20px;padding:6px 10px}.turn-track b{display:grid;place-items:center;border-radius:50%;width:21px;height:21px;background:#d5dfd11a;font-size:11px}.turn-track .current{color:#fff2cb;border-color:var(--turn-color);background:#0d2932ed;box-shadow:0 0 14px color-mix(in srgb,var(--turn-color) 15%,transparent)}.turn-track .current b{background:var(--turn-color);color:#071b27;text-shadow:none}.turn-track .complete{color:#bfe0c0}#viewport{inset:80px 0 82px}#tileInfo{top:152px;font-size:13px}#fieldCard{top:150px}.turn-banner{position:absolute;left:50%;top:42%;z-index:4;transform:translate(-50%,-40%);display:flex;gap:17px;align-items:center;min-width:290px;max-width:85%;padding:12px 25px 12px 12px;border:1px solid var(--turn-color);border-radius:12px;background:linear-gradient(110deg,#10272ff5,#183935f5);box-shadow:0 15px 45px #0007,0 0 30px color-mix(in srgb,var(--turn-color) 15%,transparent);opacity:0;pointer-events:none;transition:opacity .22s,transform .25s}.turn-banner.show{opacity:1;transform:translate(-50%,-50%)}.banner-portrait.portrait{width:57px;height:65px;flex-shrink:0;border-radius:7px;border:1px solid var(--turn-color);mask-image:none;-webkit-mask-image:none}.turn-banner small{display:block;font-size:11px;letter-spacing:1.5px;color:#d0c299}.turn-banner strong{display:block;font:600 26px var(--serif);color:#ffe6b0;margin-top:4px}.map-owners{position:absolute;bottom:103px;right:20px;display:flex;gap:11px;pointer-events:none;border:1px solid #d0bc8933;border-radius:7px;background:#0d2831cf;padding:7px 10px}.map-owners span{font-size:12px;color:#e4e6d6;display:flex;gap:6px;align-items:center}.map-owners span:before{content:'';width:8px;height:8px;background:var(--owner);border:1px solid #fff7;box-shadow:0 0 7px color-mix(in srgb,var(--owner) 45%,transparent);border-radius:2px}.viewcontrols{bottom:143px}.boardhint{background:linear-gradient(90deg,#102c32f7,#22443af2,#102c32f7);border-color:#edd09280;font-size:14px;min-height:47px}.builds{gap:9px}.builds button{position:relative;overflow:hidden;min-height:82px;padding:6px 13px 6px 4px;gap:7px;background:linear-gradient(115deg,#234039b0,#10292cf0);border-color:#d1b16b55;box-shadow:inset 0 1px #fff1,0 4px 9px #0002}.builds button:disabled{opacity:.56}.builds .buildicon{display:flex;align-items:center;justify-content:center;flex:0 0 78px;width:78px;height:68px;font-size:40px;background:radial-gradient(ellipse,#e0bf6c15,transparent 70%)}.buildicon img{width:100px;height:88px;max-width:none;object-fit:contain;filter:drop-shadow(0 4px 3px #0005)}.builds b{font-size:17px;color:#f3ddb0}.builds small{font-size:12px;line-height:1.55}.buildplus{font-size:25px}.builds button:not(:disabled):hover{border-color:#edcd82;background:linear-gradient(115deg,#385548b0,#193435f0)}#roll{font-size:17px;padding:15px;box-shadow:inset 0 1px #fff8,0 4px 0 #806334,0 8px 18px #0005}#roll:not(:disabled):active{transform:translateY(2px);box-shadow:inset 0 1px #fff8,0 2px 0 #806334}#end:not(:disabled){background:#d4b97918;border-color:#e7c98c}.inventory{border-color:#dcc38360;background:linear-gradient(110deg,#1c3531f5,#10282df5)}.resource{border-color:#d5b47590;box-shadow:0 7px 0 -4px #0b2025,0 9px 0 -5px #b39358,0 12px 22px #0005}.resource.has-resource{border-color:#e2ca87}.resource-change{position:absolute;top:43%;left:50%;z-index:3;transform:translate(-50%,-50%);font:700 40px var(--serif);color:#efffd9;text-shadow:0 2px 5px #071812,0 0 20px #8cfa783f;background:#153c29e0;border:1px solid #bceca17a;border-radius:9px;padding:1px 12px;animation:resource-delta 1.5s ease-out forwards;pointer-events:none}.resource-change.spend{color:#ffdfca;background:#552a26e8;border-color:#ecb79e7a}.resource-count{font-variant-numeric:tabular-nums}.development{border-color:#e2c68050}.devcard{box-shadow:0 3px 0 #5a5032,0 8px 20px #0006}.journal{background:linear-gradient(130deg,#172f30,#10292b)}#logs li:first-child{border-left:2px solid #d7b26c;padding-left:10px;background:linear-gradient(90deg,#dbb86a10,transparent)}#toast{box-shadow:0 8px 35px #0008,inset 0 1px #fff7;border-color:#ffedb4}#productionNotice{top:191px;font-size:15px;border-color:#f0d49390;box-shadow:0 8px 35px #0007}.site-footer{background:linear-gradient(180deg,#0c252acc,#071a22f2)}
@keyframes resource-delta{0%{opacity:0;transform:translate(-50%,-25%) scale(.8)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}65%{opacity:1;transform:translate(-50%,-60%) scale(1)}100%{opacity:0;transform:translate(-50%,-100%)}}
@media(max-width:1100px){.map-owners{bottom:101px}.turn-track{gap:6px}.turn-track span{padding:5px 8px}}@media(max-width:700px){.world{height:570px;min-height:570px}.worldtop{top:16px}.turn-track{left:14px;top:87px;right:12px;gap:5px}.turn-track span{font-size:11px;padding:5px 7px;gap:4px}.turn-track b{width:18px;height:18px;font-size:10px}#viewport{inset:95px 0 88px}#tileInfo{top:130px;font-size:12px}#fieldCard{top:auto;bottom:196px}.viewcontrols{bottom:145px}.map-owners{right:12px;bottom:106px}.turn-banner{padding:9px 15px 9px 9px;gap:12px;min-width:250px}.turn-banner strong{font-size:23px}.turn-banner small{font-size:10px}.banner-portrait.portrait{width:48px;height:58px}.builds .buildicon{flex-basis:76px;width:76px}.builds button{min-height:82px}.resource-change{font-size:30px;padding:1px 9px}#productionNotice{top:164px;font-size:13px}.player.active{box-shadow:0 0 0 1px var(--c)}.player.active .playerrole:after{content:' · GRA'}}
.motion-paused .resource-change{animation:none}@media(prefers-reduced-motion:reduce){.resource-change{animation:none}.turn-banner{transition:none}}
.action-instruction{flex:1;min-width:0}.action-instruction strong{display:block;color:#ffe0a0;font-size:15px;margin-bottom:4px}.action-instruction #instruction{display:block;font-size:14px;line-height:1.45}.boardhint{padding:11px 14px;text-align:left;gap:10px}.boardhint .hintdot{flex-shrink:0}#cancelBuild{flex-shrink:0;padding:9px 11px;font-size:13px;border-color:#f1c17a80;background:#132e30}#cancelBuild[hidden]{display:none}.build-availability{display:block;color:#e8c49f;font-size:12px;line-height:1.45;margin-top:5px;font-weight:500}.build-availability[data-available="true"]{color:#c9e5b8}.builds button:disabled{opacity:.76}.builds button:disabled .buildicon{opacity:.55}.builds button>span:nth-child(2){flex:1;min-width:0}.builds small{color:#c9d3c2}.dev-availability{font-size:14px;color:#e6c795;margin-top:12px;line-height:1.5}.resource-needed{position:absolute;top:8px;left:7px;z-index:2;background:#103930ed;border:1px solid #cfe0ac88;color:#edffd3;padding:5px 7px;border-radius:5px;font-size:12px}.resource-needed.missing{background:#60332eeb;color:#ffe0c2;border-color:#f0b59b}.footer-credit{font-size:15px;color:#d1d9c9}.footer-credit strong{font:600 20px var(--serif);letter-spacing:.3px;color:#f4d69a}.site-footer small{font-size:13px}.playername small{font-size:12px}.legend{font-size:12px}#tileInfo{line-height:1.5}.boardhint{bottom:46px}.map-owners{bottom:137px}.viewcontrols{bottom:178px}#viewport{bottom:119px}
@media(max-width:700px){.boardhint{bottom:44px;left:10px;right:10px;flex-wrap:wrap;min-height:76px}.action-instruction strong{font-size:14px}.action-instruction #instruction{font-size:13px}#cancelBuild{margin-left:16px;padding:7px 10px}.build-availability{font-size:13px}.legend{font-size:10px;gap:8px;bottom:17px}.viewcontrols{bottom:188px}.map-owners{bottom:149px}#viewport{bottom:127px}#fieldCard{bottom:229px}.resource-needed{top:36px;left:5px;padding:3px 5px;font-size:11px}.footer-credit{width:100%}.footer-credit strong{display:block;margin-top:4px}.builds button{min-height:104px}}
#islandReport{border-color:#b9cda66b;background:#28463a80}.island-summary{border:1px solid #d6b67766;border-radius:12px;padding:18px 22px;background:linear-gradient(120deg,#39514666,#0b252e);margin-bottom:15px}.island-summary>div:first-child{display:flex;align-items:baseline;gap:12px}.island-summary strong{font:700 57px var(--serif);color:#ffe0a2;line-height:1}.island-summary span{font-size:16px;color:#c9d4c0}.island-summary p{font-size:14px;margin:8px 0 14px}.point-track{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.point-track i{height:9px;border:1px solid #d4ba7b45;background:#102929;border-radius:3px}.point-track i.earned{background:linear-gradient(90deg,#b78e4e,#f1d093);border-color:#f3d798;box-shadow:0 0 8px #e7bd4d26}.island-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.island-totals span{padding:12px 5px;text-align:center;border:1px solid #c4b17c30;background:#10282c80;border-radius:8px;font-size:12px;color:#c9d5c0}.island-totals b{display:block;font:600 28px var(--serif);color:#ecd19a;margin-bottom:3px}.report-heading{font:600 27px var(--serif);color:#f6dcaa;margin:25px 0 12px}.score-breakdown{display:grid;gap:0}.score-breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #c3b48623;font-size:14px;color:#d0d9ca}.score-breakdown b{color:#f2d697;white-space:nowrap}.report-explain{font-size:14px!important;line-height:1.6!important}.production-report{display:grid;gap:9px}.production-report article{display:flex;gap:12px;align-items:center;padding:8px;border:1px solid #ceb47140;border-radius:9px;background:#0a242ab5}.report-resource-art{width:64px;height:75px;flex-shrink:0;border-radius:6px;border:1px solid #bba36b65}.report-resource-copy{flex:1;min-width:0}.report-resource-copy>strong{font:600 23px var(--serif);color:#f0d9a8}.production-rolls{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}.production-rolls>span{display:flex;align-items:center;gap:4px;font-size:14px;color:#dce9d0}.production-rolls b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#f3e2bc;color:#263c34;font:700 18px var(--serif);border:1px solid #c2a56e}.production-rolls b.hot{color:#ad3527}.production-rolls .no-production{font-size:13px;color:#b1c0b3}.blocked-production{display:block;font-size:12px;color:#ffbb99;margin-top:6px;line-height:1.5}.report-rate{padding:0 8px;text-align:center;flex-shrink:0}.report-rate b{font:600 27px var(--serif);color:#f0d69a}.report-rate span{display:block;font-size:11px;color:#b7c5b1;margin-top:3px}.report-advice{font-size:13px;color:#c5d1bd;line-height:1.6;padding:14px 0;margin:7px 0}header nav{flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.report-resource-art{width:46px;height:65px}.production-report article{gap:8px}.report-resource-copy>strong{font-size:21px}.report-rate{padding:0 3px}.report-rate b{font-size:24px}.island-totals{grid-template-columns:repeat(2,1fr)}.island-totals span{font-size:13px}.report-heading{font-size:25px}.production-rolls{gap:5px}header nav button{font-size:12px}}
.trade-quantity{display:flex;align-items:center;gap:9px;padding:14px 0;border-top:1px solid #d6bb783b;border-bottom:1px solid #d6bb783b}.trade-quantity>span{flex:1;font-size:14px;color:#e5d6b0}.trade-quantity small{display:block;font-size:12px;color:#b9c7b5;margin-top:4px}.trade-quantity button{min-width:40px;min-height:40px;padding:7px 10px}.trade-quantity output{font:700 25px var(--serif);min-width:30px;text-align:center;color:#ffe0a1}.port-hero{margin:-32px -32px 0;padding:45px 32px 25px;background:linear-gradient(0deg,#183632,#102d3340),url('assets/ocean.webp') center/cover}.port-hero h2{font-size:39px;margin:10px 0}.port-ratio{font:700 67px var(--serif);color:#f5d58e;text-shadow:0 3px 10px #0008}.port-ratio span{font-size:43px;color:#dfd7b6}.port-cargo{display:flex;gap:10px;justify-content:center;margin:20px 0}.port-cargo .card-art{flex:1;height:100px;max-width:95px;border:1px solid #dbba7580;border-radius:8px;box-shadow:0 6px 14px #0004}.port-cargo .featured-cargo{max-width:145px;height:160px}.port-access{padding:12px 15px;border:1px solid #d7b77555;border-radius:8px;background:#0e292aaa;color:#e3ce9f;font-size:14px}.port-access.owned{border-color:#7dc2a788;background:#19504155;color:#d1efd4}.victim-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:20px 0}.victim-choice{padding:0 0 17px;overflow:hidden;border:2px solid var(--c);background:#10272d}.victim-choice .portrait{display:block;width:100%;height:150px;margin:0 0 7px;mask-image:linear-gradient(#000 75%,transparent);-webkit-mask-image:linear-gradient(#000 75%,transparent)}.victim-choice strong{display:block;color:var(--c);font:600 29px var(--serif)}.victim-choice small{display:block;font-size:13px;color:#d2ddc8;margin:7px 10px 0}.victim-choice:hover{box-shadow:0 0 22px color-mix(in srgb,var(--c) 25%,transparent)}@media(max-width:700px){.port-hero{margin:-23px -17px 0;padding:40px 20px 20px}.port-hero h2{font-size:34px}.port-cargo{gap:5px}.port-cargo .card-art{height:78px}.port-cargo .featured-cargo{height:150px}.trade-quantity{gap:5px}.trade-quantity button{min-width:34px;padding:7px}.trade-quantity>span{font-size:13px}.victim-choice .portrait{height:125px}.victim-choice small{font-size:12px}}
#playerName{display:block;width:100%;margin:10px 0 0;padding:14px 15px;border:1px solid #d3b374;border-radius:8px;background:#0b242a;color:#fff0ce;font:18px 'DM Sans',sans-serif}#playerName:focus{outline:2px solid #ebcc87;outline-offset:3px}#nameHint{font-size:14px;line-height:1.6}#nameError{font-size:14px;color:#ffd0b5}#nameError:empty{display:none}.playername{min-width:0}.playername strong{overflow-wrap:anywhere}#mapPlayerName{max-width:130px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#mapPlayerName:before{flex-shrink:0}.playername strong{line-height:1.15}@media(max-width:700px){#mapPlayerName{max-width:90px}.playername strong{font-size:18px}#editName{font-size:12px}}
