@charset "UTF-8";
@font-face{font-family:Fredoka;src:url("assets/fredoka-medium.ttf") format("truetype");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:Fredoka;src:url("assets/fredoka-bold.ttf") format("truetype");font-weight:700 900;font-style:normal;font-display:swap}
@font-face{font-family:Nunito;src:url("assets/nunito-regular.ttf") format("truetype");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:Nunito;src:url("assets/nunito-bold.ttf") format("truetype");font-weight:600 900;font-style:normal;font-display:swap}

:root{
  --ink:#244847;--deep:#1d5555;--muted:#57756b;--paper:#f2f8ec;--light:#fffdf4;
  --line:#c9dace;--teal:#47bab4;--sea:#258987;--yellow:#ffda79;--coral:#f39c72;
  --lime:#d4e795;--blue:#c9e9f1;--display:Fredoka,"Cooper Black",cursive;
  --body:Nunito,"Trebuchet MS",sans-serif;--rim:2px solid var(--ink);
  --shadow:0 6px 0 #c3d5c6;--radius:26px;
  --crew-art:url("assets/crew-adventurers-v3.png");
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font:16px/1.55 var(--body);background:var(--paper);background-image:radial-gradient(ellipse at 0% 10%,#bcece255 0,transparent 44%),radial-gradient(ellipse at 100% 25%,#fff3ba70 0,transparent 45%)}
button,input,select{font:inherit;color:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}
button:disabled{cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #de7250;outline-offset:4px}
button:hover:not(:disabled){transform:translateY(-2px)}
button:active:not(:disabled){transform:translateY(2px)}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.svg-library{position:absolute;width:0;height:0;overflow:hidden}
[hidden]{display:none!important}
/* Hide the removed badge if an older page still includes it. */
.map-stamp{display:none!important}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--display);line-height:1.08;font-weight:600}
h1{font-size:clamp(42px,4.8vw,72px);font-weight:700;letter-spacing:-1.8px}
h2{font-size:34px;letter-spacing:-.6px}
h3{font-size:25px}
small{font-size:12px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.5px;color:var(--sea)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Un univers de jeu lumineux, sans sacrifier le contraste des commandes. */
.prototype-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:30px;background:#dfecdb;color:#5a7566;padding:6px 3.5%;font-size:11px}
.prototype-bar>span:first-child{font-weight:800;letter-spacing:1.1px}
.prototype-bar button{padding:0;background:none;border:0;border-bottom:1px solid #90a593;font-size:11px}
.masthead{max-width:1512px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 3.5% 22px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);transform:rotate(-2deg)}
.brand>svg{width:49px;height:49px;background:var(--yellow);border:var(--rim);border-radius:18px;padding:7px;box-shadow:0 4px 0 #bb943d;transform:rotate(8deg)}
.brand>span{font:700 39px/.95 var(--display);letter-spacing:-1px}
.brand small{display:block;font:800 8px var(--body);letter-spacing:1px;margin-top:8px;white-space:nowrap}
.scene-nav{display:flex;gap:6px;padding:6px;background:#fffdf5;border:var(--rim);border-radius:22px;box-shadow:0 4px 0 #c4d4c6}
.scene-nav button{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:0;border-radius:15px;padding:11px 16px;font-size:14px;font-weight:800;white-space:nowrap}
.scene-nav button svg{width:18px;height:18px}
.scene-nav button.active{background:var(--yellow);box-shadow:inset 0 -3px 0 #eac064}
.scene-nav button:hover:not(.active){background:#eaf4e6}
.rules-link{background:#fffdf5;border:2px solid #c3d3c2;border-radius:17px;display:flex;align-items:center;gap:9px;padding:12px 15px;font-size:13px;font-weight:800;white-space:nowrap}
.rules-link svg{width:20px;height:20px}

main{max-width:1512px;margin:0 auto;padding:15px 3.5% 0}
.scene{animation:arrive .4s ease-out}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:8px 0 25px}
.page-heading>.edition{flex-shrink:0}
.page-heading .eyebrow{display:inline-flex;align-items:center;background:#e2efd4;padding:5px 12px;border-radius:20px;letter-spacing:.6px;font-size:12px;color:#456b53}
.page-heading h1{margin:10px 0 8px}
.page-heading h1>span{color:#d27442;display:inline-block;transform:rotate(-3deg)}
.page-heading p{color:var(--muted);font-size:16px}
.edition{display:flex;align-items:center;gap:13px;font-size:13px;background:#fff4c9;border:2px dashed #ccb86b;border-radius:20px;padding:15px 20px;transform:rotate(3deg);max-width:275px}
.edition svg{width:43px;height:43px;color:#a38440}
.edition b{font-weight:800}
.lobby-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(360px,1fr);gap:27px;align-items:stretch}
.island-panel{position:relative;overflow:hidden;border:var(--rim);border-radius:32px;background:#73d6d2;min-height:630px;box-shadow:var(--shadow)}
.island-art{display:block;width:100%;height:100%;object-fit:cover}
.island-panel>.island-art{position:absolute;inset:0;object-position:51% 50%;height:100%;transition:transform .8s ease}
.island-panel:hover>.island-art{transform:scale(1.025)}
.island-panel:after{content:"";position:absolute;inset:65% 0 0;pointer-events:none;background:linear-gradient(transparent,#207b6c33)}
.map-caption{position:absolute;bottom:74px;left:26px;z-index:1;background:#fff9e9f5;border:var(--rim);border-radius:23px;padding:17px 22px 19px;transform:rotate(-3deg);box-shadow:5px 6px 0 #26696142}
.destination-tag{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:1.5px;font-weight:800;color:var(--sea)}
.destination-tag svg{width:19px;height:19px}
.map-caption h2{font-size:clamp(31px,3.1vw,48px);line-height:1;margin:10px 0 12px;letter-spacing:-.8px}
.map-caption p{font-size:14px;line-height:1.5;color:#486b5b}
.map-foot{position:absolute;z-index:1;bottom:0;left:0;right:0;background:#fff9e9ed;border-top:2px solid var(--ink);display:flex;justify-content:space-between;gap:12px;padding:15px 22px;font-size:12px;font-weight:700}
.map-foot span:first-child{font-size:10px;letter-spacing:1px}
.lobby-card{padding:23px;background:var(--light);border:var(--rim);border-radius:30px;box-shadow:var(--shadow)}
.card-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:19px}
.card-heading .eyebrow{font-size:10px;letter-spacing:1.3px;color:#859568}
.card-heading h2{margin-top:5px;font-size:33px}
.count-badge{background:var(--lime);border:var(--rim);border-radius:16px;min-width:62px;text-align:center;padding:8px;font:500 20px var(--display);transform:rotate(5deg)}
.invite-line{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 15px;border:2px dashed #a5beae;border-radius:16px;background:#ecf5e8}
.invite-line>div{display:flex;flex-direction:column}
.invite-line span{font-size:12px;color:var(--muted)}
.invite-line small{font-size:10px}
.invite-line strong{font-family:var(--display);font-size:26px;font-weight:500;letter-spacing:5px}
.icon-button{width:42px;height:42px;border:2px solid var(--ink);border-radius:13px;background:var(--light);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.icon-button svg{width:20px;height:20px}
.invite-line .icon-button{background:var(--yellow);border-color:#c5ab6b;box-shadow:0 3px 0 #c5ab6b}
.crew-preview{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:19px 0}
.preview-player{display:flex;align-items:center;gap:9px;min-width:0;padding:7px 6px;background:#f1f5e9;border:1px solid #d5dfcc;border-radius:15px}
.preview-player:first-child{background:#e1f1e4;border-color:#acd1b8}
.avatar,.mini-avatar,.voice-avatar{display:inline-block;width:45px;height:45px;border-radius:50%;flex-shrink:0;background-image:var(--crew-art);background-size:400% 200%;background-position:var(--portrait-x,0%) var(--portrait-y,0%);background-color:#fffaf0;color:transparent;overflow:hidden;border:2px solid #fffaf0;box-shadow:0 2px 0 #24484725}
.preview-player strong{display:block;font-size:14px;font-weight:800;line-height:1.2}
.preview-player small{display:block;font-size:10px;line-height:1.3;color:var(--muted);margin-top:4px}
.preview-player .ready-mark{width:13px;height:13px;margin-left:auto;color:#558353;flex-shrink:0;stroke-width:3}
.format-picker{padding:0;margin:0 0 15px;border:0;min-width:0}
.format-picker legend{font-size:14px;font-weight:800;margin-bottom:9px}
.format-picker>div{display:flex;gap:10px}
.format-picker button{flex:1;min-width:0;padding:10px;border:2px solid #c9d5bc;border-radius:17px;background:#f3f5e8;text-align:left;font-size:12px;font-weight:700}
.format-picker button b{font:500 29px var(--display);display:block;line-height:1;margin-bottom:5px}
.format-picker small{display:block;font-size:10px;font-weight:400;margin-top:5px;color:#617565}
.format-picker button.selected{border-color:var(--ink);background:#fff1bc;box-shadow:0 3px 0 #bd994b}
.setting-note{display:flex;gap:8px;font-size:12px;line-height:1.4;color:var(--muted);align-items:center}
.setting-note svg{width:17px;height:17px;background:#d9edcb;border-radius:50%;padding:2px;color:#376e46;stroke-width:3}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:var(--rim);border-radius:16px;min-height:46px;padding:11px 16px;font:500 18px var(--display)}
.primary{background:var(--yellow);box-shadow:0 5px 0 #b48b3e;color:var(--ink)}
.primary:hover:not(:disabled){background:#ffe6a1;box-shadow:0 7px 0 #b48b3e}
.primary:active:not(:disabled){box-shadow:0 2px 0 #b48b3e;transform:translateY(3px)}
.primary:disabled{background:#e3e8d8;border-color:#b8c8b4;box-shadow:0 3px 0 #c3cdbb;color:#70826e}
.button svg{width:21px;height:21px}
.embark{width:100%;margin-top:17px;justify-content:space-between;min-height:55px;padding:12px 19px;font-size:22px}
.embark svg{width:28px;height:28px}
.fine-print{font-size:11px;text-align:center;color:#78907a;line-height:1.5;margin-top:16px}
.lobby-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:29px 0 33px}
.lobby-bottom>div{display:flex;align-items:center;gap:13px}
.small-index{width:37px;height:40px;display:grid;place-items:center;background:var(--yellow);border:var(--rim);border-radius:13px;font:500 24px var(--display);transform:rotate(-7deg);box-shadow:0 3px 0 #c5a468}
.lobby-bottom>div:nth-child(2) .small-index{background:#bae5de;transform:rotate(6deg);box-shadow:0 3px 0 #8aaea1}
.lobby-bottom>div:nth-child(3) .small-index{background:#ffcaa9;transform:rotate(-4deg);box-shadow:0 3px 0 #ca9e82}
.lobby-bottom p{font-size:12px;line-height:1.5;color:var(--muted)}
.lobby-bottom strong{font-weight:800;color:var(--ink)}
.text-button{border:2px dashed #97b19e;border-radius:16px;background:transparent;padding:12px 16px;font-size:13px;font-weight:700}

/* La table garde les memes actions, avec des panneaux et jetons de jeu. */
.game-heading{margin-top:6px;margin-bottom:24px}
.game-heading h1{font-size:clamp(32px,3.6vw,52px);letter-spacing:-1px}
.phase-clock{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 17px;padding:13px 21px;background:#fff0ba;border:var(--rim);border-radius:22px;box-shadow:0 4px 0 #d6be83;transform:rotate(2deg);flex-shrink:0}
.phase-clock>span{font-size:11px;font-weight:800;letter-spacing:1px}
.phase-clock strong{font:500 36px/1 var(--display);grid-row:span 2;font-variant-numeric:tabular-nums}
.phase-clock small{font-size:10px;color:#938152}
.game-layout{display:grid;grid-template-columns:210px minmax(350px,1fr) 310px;gap:20px;align-items:start}
.crew-panel{background:#fffdf5;border:2px solid #c2d4bf;border-radius:24px;padding:17px 11px;box-shadow:0 4px 0 #d4e1cc;min-width:0}
.section-label{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:11px;font-weight:800;letter-spacing:.7px}
.section-label>span+span{font-size:11px;font-weight:400;letter-spacing:0;color:var(--muted);white-space:nowrap}
.section-label svg{width:18px;height:18px}
.game-crew{display:flex;flex-direction:column;gap:5px;margin:14px 0 17px}
.crew-button{display:flex;align-items:center;gap:8px;width:100%;min-width:0;border:2px solid transparent;border-radius:15px;background:none;padding:5px;text-align:left;min-height:49px}
.crew-button.selected{background:#e0f1d4;border-color:#8fbb8b;box-shadow:0 2px 0 #b6d6a7}
.crew-button.self{background:#f0f2e5}
.crew-button>span:nth-child(2){font-size:14px;flex:1;font-weight:800;line-height:1.2}
.crew-button small{display:block;font-weight:400;font-size:10px;color:var(--muted);margin-top:3px}
.crew-button>svg{width:14px;height:14px;color:#688873}
.crew-button .avatar{width:36px;height:36px}
.crew-button.dead{opacity:.58;filter:saturate(.5)}
.personal-card{background:#fff1c7;border:1px solid #e4d296;padding:12px;border-radius:18px;transform:rotate(-1deg)}
.personal-card .eyebrow{font-size:9px;letter-spacing:1px;color:#9b7a37}
.personal-card h3{font-size:23px;margin:6px 0}
.personal-card p{font-size:12px;color:#7a7e52;line-height:1.5}
.hidden-bearing{margin-top:10px;display:flex;align-items:center;gap:9px;background:#fffae6;border:1px dashed #d3c588;border-radius:12px;padding:9px}
.hidden-bearing svg{width:21px;height:21px;color:#9a8550}
.hidden-bearing span{display:flex;flex-direction:column;font-size:11px;line-height:1.3}
.hidden-bearing b{font-family:var(--display);font-size:17px;font-weight:500}
.notebook{padding:16px 2px 0}
.notebook .section-label{font-size:10px;color:#678265}
.empty-note{font-size:12px;color:var(--muted);line-height:1.5;margin-top:9px}
.note{font-size:14px;padding:10px;background:#e9f3df;border-radius:12px;margin-top:9px}
.note b{color:var(--sea);font-weight:800}.note small{display:block;font-size:10px;color:var(--muted)}
.table-panel{border:var(--rim);border-radius:28px;overflow:hidden;background:var(--light);box-shadow:var(--shadow);min-width:0}
.table-map{position:relative;height:355px;overflow:hidden;background:#65d0d0}
.table-map>.island-art{object-position:center 47%}
.map-coordinate{position:absolute;top:15px;left:15px;right:15px;display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.5px;font-weight:800;background:#ffffeef2;border:1.5px solid var(--ink);border-radius:16px;padding:8px 12px;box-shadow:0 3px 0 #1d555526}
.map-coordinate svg{width:16px;height:16px;color:var(--sea)}
.map-coordinate>span{margin-left:auto;font-size:9px;font-weight:700;background:#d9edac;border-radius:8px;padding:3px 5px}
.map-pin{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;border:0;background:transparent;padding:0;animation:bob 4s ease-in-out infinite}
.map-pin>span{display:block;width:49px;height:49px;background-size:400% 200%;background-position:var(--portrait-x) var(--portrait-y);background-image:var(--crew-art);color:transparent;border:3px solid #fffbea;border-radius:50%;box-shadow:0 0 0 2px var(--ink),0 5px 0 #194b4555}
.map-pin small{margin-top:6px;background:#fffbea;border:1.5px solid var(--ink);border-radius:9px;padding:1px 10px;font-size:12px;font-weight:800;box-shadow:0 2px 0 #254a4233}
.map-pin.selected>span{box-shadow:0 0 0 3px #fbcc68,0 0 0 5px #244847,0 6px 0 #194b4555}
.pin-one{left:24%;top:32%;--portrait-x:33.3333%;--portrait-y:0%}
.pin-two{right:21%;top:38%;animation-delay:-1s;--portrait-x:66.6667%;--portrait-y:0%}
.pin-three{left:48%;top:62%;animation-delay:-2s;--portrait-x:100%;--portrait-y:0%}
.map-quote{position:absolute;left:14px;bottom:15px;max-width:62%;background:#fff6d4f5;border:1.5px solid #5d8168;border-radius:16px;padding:9px 12px;font-family:var(--display);font-size:15px;line-height:1.2;transform:rotate(-2deg);box-shadow:0 3px 0 #24484726}
.map-quote em{font-family:var(--body);font-style:normal;font-size:11px}
.action-deck{display:grid;grid-template-columns:minmax(0,1fr) 186px;gap:17px;padding:24px;align-items:center;min-height:247px;border-top:var(--rim);background:linear-gradient(110deg,#fffdf4,#f4f7e6)}
.action-deck .eyebrow{font-size:9px;letter-spacing:.8px}
.action-deck h2{font-size:31px;margin:7px 0 11px;line-height:1.1}
.action-deck p{font-size:14px;color:var(--muted);line-height:1.5;max-width:330px}
.action-line{display:flex;flex-direction:column;gap:9px;align-items:flex-start;margin-top:16px}
.action-line .button{font-size:16px;padding:10px 13px}
.action-line span{font-size:11px;color:var(--muted);font-weight:700}
.compass{position:relative;width:186px;height:186px;background:#e5f2df;border:2px solid #a5c8b3;border-radius:50%;box-shadow:inset 0 0 0 9px #f4f8e7,0 4px 0 #c8dfc1}
.compass-rose{position:absolute;inset:0;width:100%;height:100%;stroke:#8eb7a0;stroke-width:1}
.rose-light{fill:#ffda79;stroke:#395e52;stroke-width:1.5}.rose-dark{fill:#50b5a6;stroke:#395e52;stroke-width:1.5}.rose-lines{stroke:#9ab99f;stroke-width:1}
.compass-rose circle:last-child{fill:#fff8d9;stroke:#355e51;stroke-width:2}
.bearing{position:absolute;border:2px solid #7a9a86;border-radius:12px;padding:7px;background:#fffaf0;min-width:42px;min-height:38px;font:500 13px var(--display);box-shadow:0 3px 0 #98b3a0}
.north{top:-9px;left:50%;transform:translateX(-50%)}.south{bottom:-9px;left:50%;transform:translateX(-50%)}.east{right:-9px;top:50%;transform:translateY(-50%)}.west{left:-13px;top:50%;transform:translateY(-50%)}
.bearing:disabled{color:#6c8e7c;background:#eff4e5;border-color:#bdcebb;box-shadow:0 2px 0 #c4d6bd}
.bearing:not(:disabled){background:var(--yellow);border-color:var(--ink);box-shadow:0 4px 0 #b1904e}
.bearing.selected{color:#fffdf1;background:var(--sea);box-shadow:0 4px 0 #245d54}
.bearing.north:hover:not(:disabled),.bearing.south:hover:not(:disabled){transform:translateX(-50%) scale(1.07)}
.bearing.east:hover:not(:disabled),.bearing.west:hover:not(:disabled){transform:translateY(-50%) scale(1.07)}
.bearing.north:active:not(:disabled),.bearing.south:active:not(:disabled){transform:translate(-50%,2px)}
.bearing.east:active:not(:disabled),.bearing.west:active:not(:disabled){transform:translateY(-45%)}
#confirm-bearing{margin-top:18px;font-size:16px}
.scenario-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 17px;border-top:1px dashed #b6cdb2;background:#eaf2df}
.scenario-line>span{font-size:9px;letter-spacing:.7px;color:#73836b;font-weight:800}
.scenario-line button{border:1px solid #bacdb4;border-radius:12px;background:#fffff2;padding:7px 10px;font-size:12px;font-weight:800}

.comms-panel{background:var(--light);border:var(--rim);border-radius:25px;overflow:hidden;box-shadow:var(--shadow);min-width:0}
.comms-heading{display:flex;align-items:center;gap:11px;padding:20px 17px 13px}
.comms-heading>svg{background:#c4e9dc;width:38px;height:38px;padding:8px;border-radius:13px;stroke:var(--sea);transform:rotate(-7deg)}
.comms-heading h2{font-size:28px;white-space:nowrap}
.comms-heading p{font-size:11px;color:var(--muted);margin-top:6px}
.chat-tabs{display:flex;gap:5px;margin:0 14px;padding:4px;border:1px solid #cfdbc1;background:#ecf2e2;border-radius:14px}
.chat-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;border:0;border-radius:10px;background:transparent;font-size:12px;font-weight:800;padding:9px 5px;color:var(--muted)}
.chat-tabs button svg{width:13px;height:13px}
.chat-tabs button[aria-selected="true"]{background:var(--light);color:var(--ink);box-shadow:0 2px 0 #cdd7c5}
.dm-recipient{display:flex;align-items:center;gap:8px;padding:11px 17px;font-size:12px;background:#f3f5e4;border-bottom:1px solid #d2dfc5;margin-top:9px}
.dm-recipient select{min-width:0;flex:1;border:0;background:transparent;font-weight:700;font-size:13px;padding:4px}
.dm-recipient>span{font-size:10px;padding:3px 7px;background:#d9edcb;border-radius:8px}
.messages{height:286px;overflow-y:auto;display:flex;flex-direction:column;gap:15px;padding:16px 14px;scrollbar-width:thin;scrollbar-color:#b0c9b7 transparent}
.message{font-size:13px;line-height:1.45;animation:arrive .2s ease-out}
.message-meta{display:flex;align-items:center;gap:6px;margin-bottom:5px}
.message-meta strong{font-size:12px;font-weight:800}.message-meta small{font-size:10px;color:#88987e;margin-left:auto}
.message .mini-avatar{width:28px;height:28px;border:0}
.message p{margin-left:33px;padding:8px 10px;background:#eff3e5;border-radius:0 13px 13px 13px;overflow-wrap:anywhere}
.message.mine p{background:#def0e1;border-radius:13px 0 13px 13px;border:1px solid #c0dfc1}
.message.system{padding:9px 11px;border:1px dashed #c1d1b2;border-radius:12px;text-align:center;font-size:11px;color:#7a8c70;background:#f6f6e9}
.empty-chat{font-size:14px;color:var(--muted);text-align:center;margin:auto;line-height:1.6}
#chat-form{margin:7px 13px 0;display:flex;align-items:center;border:2px solid #baccb8;border-radius:14px;background:#fffef6;padding:4px}
#chat-input{font-size:12px;min-width:0;width:100%;border:0;background:transparent;padding:8px;color:var(--ink)}
#chat-input::placeholder{color:#8a9a82}
#chat-form button{display:grid;place-items:center;background:var(--teal);border:1.5px solid var(--ink);border-radius:10px;min-width:35px;height:35px;flex-shrink:0;padding:7px;box-shadow:0 2px 0 #638f7f}
#chat-form button svg{width:18px;height:18px}
.chat-notice{text-align:center;font-size:9px;color:#8a9b81;margin:8px 0 12px}
.voice-panel{margin:0 10px 11px;border:1.5px solid #b2cdb6;border-radius:19px;background:#def0dc;padding:13px}
.voice-title{display:flex;align-items:center;gap:8px}.voice-title>svg{width:18px;height:18px;color:var(--sea)}
.voice-title strong{font-size:13px;font-weight:800}.voice-title>span{margin-left:auto;font-size:9px;letter-spacing:1px;font-weight:800;color:#679473}
.voice-people{display:flex;align-items:center;gap:7px;margin:13px 0}
.voice-avatar{width:34px;height:34px;--portrait-x:33.3333%;--portrait-y:0%}
.voice-people p{font-size:11px;font-weight:700}.voice-people small{display:block;font-size:9px;font-weight:400;color:#85957e;margin-top:2px}
.voice-wave{display:flex;align-items:center;gap:2px;height:22px;margin-right:2px}
.voice-wave i{width:3px;height:12px;background:#4c9c76;border-radius:2px;animation:speaking 1s ease-in-out infinite alternate}
.voice-wave i:nth-child(2){height:18px;animation-delay:-.2s}.voice-wave i:nth-child(3){height:8px;animation-delay:-.6s}.voice-wave i:nth-child(4){height:18px;animation-delay:-.4s}
.voice-controls{display:flex;gap:7px}
.voice-controls>button:first-child{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;background:#fff9e9;border:1.5px solid #79987b;border-radius:12px;padding:8px 5px;font-size:12px;font-weight:800;box-shadow:0 3px 0 #a6bda0}
.voice-controls>button[aria-pressed="true"]{background:var(--yellow);border-color:var(--ink)}
.voice-controls .icon-button{width:38px;height:38px;border-width:1.5px;border-color:#79987b;border-radius:12px;box-shadow:0 3px 0 #a6bda0}
.voice-controls svg{width:17px;height:17px}.voice-note{display:block;font-size:9px;text-align:center;margin-top:10px;color:#6a896b}
.sound-off .voice-wave i{animation:none;height:3px}.sound-off .voice-avatar{opacity:.5}

.ghost-mode .table-map>.island-art{filter:saturate(.65) hue-rotate(12deg);opacity:.8}
.ghost-mode .map-pin{display:none}
.ghost-mode .map-quote{left:9%;right:9%;bottom:24%;max-width:none;text-align:center;background:#f0f9eefa;border:2px solid var(--ink);border-radius:25px;padding:26px 20px;font-family:var(--display);font-size:28px;transform:rotate(-3deg);box-shadow:0 6px 0 #57998b66}
.ghost-mode .map-quote em{display:block;font-size:14px;margin-top:8px}
.ghost-mode #ghost-action small{display:block;font-size:11px;color:var(--muted);margin-top:12px}
.ghost-mode #ghost-vote{font-size:16px;margin-top:14px}
.ghost-mode .personal-card{background:#d8edec;border-color:#b4d3d1}.ghost-mode .hidden-bearing{background:#edf7f0;border-color:#b5d2c8}
.ghost-mode .hidden-bearing b{font-size:13px}.ghost-mode .voice-panel{background:#d7e9e9}
.ghost-mode .voice-avatar{--portrait-x:33.3333%;--portrait-y:100%}

footer{max-width:1512px;margin:29px auto 0;padding:19px 3.5% 26px;display:flex;justify-content:space-between;gap:18px;color:#90a388;font-size:11px}
footer b{font-weight:400;margin:0 7px;color:#acbca0}footer>span+span{font-size:10px;letter-spacing:1px}
.toast{position:fixed;z-index:20;left:50%;bottom:25px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 30px);background:var(--yellow);color:var(--ink);border:var(--rim);border-radius:17px;padding:13px 20px;font-size:14px;font-weight:700;box-shadow:0 5px 0 #24484733}
dialog{border:var(--rim);border-radius:29px;background:var(--light);color:var(--ink);padding:34px;max-width:590px;width:calc(100% - 30px);max-height:85dvh;overflow:auto;box-shadow:0 10px 0 #173f3940,0 30px 90px #12383740}
dialog::backdrop{background:#204b497d;backdrop-filter:blur(5px)}
.dialog-close{position:absolute;right:15px;top:14px;width:34px;height:34px;border-width:1px;background:#ffefc3}
dialog h2{font-size:36px;margin:12px 0 20px;padding-right:18px}
#dialog-body{font-size:15px;line-height:1.7;color:var(--muted)}
#dialog-body p{margin-bottom:12px}#dialog-body ol{padding-left:20px}#dialog-body li{padding-bottom:8px}#dialog-body strong{color:var(--ink)}
#dialog-ok{margin-top:14px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:16px;background:#e6f2db;border-radius:20px;margin-bottom:20px}
.result-grid span{display:block;font-size:12px}.result-grid strong{font:500 28px var(--display)}
@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes speaking{to{transform:scaleY(.35)}}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -4px}}

@media(min-width:1500px){.table-map{height:400px}.messages{height:331px}.game-layout{grid-template-columns:225px minmax(350px,1fr) 330px}.island-panel{min-height:650px}}
@media(max-width:1220px){
  .masthead{gap:18px}.brand>span{font-size:34px}.brand>svg{width:43px;height:43px}.brand small{font-size:7px}.scene-nav button{padding:10px 12px;font-size:13px}.rules-link span{display:none}.rules-link{padding:12px}.page-heading h1{font-size:59px}.edition{padding:13px;font-size:12px;max-width:240px}.lobby-layout{grid-template-columns:minmax(0,1.3fr) minmax(340px,1fr);gap:21px}.lobby-card{padding:21px}.map-caption h2{font-size:40px}.map-foot span+span{display:none}.game-layout{grid-template-columns:183px minmax(300px,1fr) 281px;gap:13px}.crew-panel{padding:15px 9px}.crew-button{gap:6px;padding:5px 3px}.crew-button .avatar{width:32px;height:32px}.crew-button>span:nth-child(2){font-size:12px}.crew-button small{font-size:9px}.personal-card{padding:11px}.personal-card h3{font-size:21px}.table-map{height:324px}.action-deck{grid-template-columns:minmax(0,1fr) 142px;padding:22px 17px;gap:14px;min-height:254px}.compass{width:142px;height:142px}.bearing{font-size:12px;min-width:39px;min-height:34px;padding:5px}.action-deck h2{font-size:28px}.action-deck p{font-size:13px}.action-line .button{font-size:14px;padding:10px}.messages{height:252px}.comms-heading{padding:19px 14px 13px;gap:9px}.comms-heading h2{font-size:25px}.comms-heading p{font-size:10px}.game-heading h1{font-size:43px}.voice-panel{margin:0 9px 10px;padding:11px}.voice-people{gap:5px}.voice-people p{font-size:10px}.voice-people small{font-size:8px}.voice-title strong{font-size:12px}}
@media(max-width:1000px){
  .masthead{flex-wrap:wrap;padding-top:22px;gap:19px}.brand{order:0}.rules-link{order:1;margin-left:auto}.rules-link span{display:inline}.scene-nav{order:2;width:100%;justify-content:center}.scene-nav button{flex:1;font-size:15px;padding:11px}.page-heading h1{font-size:55px}.edition{display:none}.lobby-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.95fr);gap:20px}.lobby-card{padding:19px}.card-heading h2{font-size:28px}.count-badge{min-width:53px;font-size:18px}.avatar{width:38px;height:38px}.preview-player{gap:7px;padding:7px 5px}.preview-player small{font-size:9px}.preview-player strong{font-size:13px}.preview-player .ready-mark{display:none}.map-caption{left:16px;right:16px;bottom:67px;padding:16px}.map-caption h2{font-size:36px}.map-foot{padding:16px;font-size:10px}.island-panel>.island-art{object-position:53% 50%}.lobby-bottom{flex-wrap:wrap;gap:20px}.lobby-bottom .text-button{margin-left:auto}.game-layout{grid-template-columns:190px minmax(0,1fr);gap:17px}.crew-panel{padding:16px 10px}.crew-button>span:nth-child(2){font-size:14px}.crew-button small{font-size:10px}.crew-button .avatar{width:34px;height:34px}.table-map{height:360px}.action-deck{grid-template-columns:minmax(0,1fr) 170px;min-height:256px;padding:24px;gap:19px}.compass{width:170px;height:170px}.comms-panel{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:auto auto auto 1fr}.comms-heading{grid-column:1}.chat-tabs{grid-column:1}.dm-recipient{grid-column:1}.comms-panel #chat-panel{grid-column:1;grid-row:4}.comms-panel .voice-panel{grid-column:2;grid-row:1/5;margin:17px 17px 17px 7px;padding:22px;display:flex;flex-direction:column;justify-content:center}.comms-panel .messages{height:225px}.comms-heading h2{font-size:29px}.comms-heading p{font-size:12px}.voice-title strong{font-size:16px}.voice-people p{font-size:13px}.voice-people small{font-size:10px}.voice-people{margin:20px 0}.voice-controls>button:first-child{font-size:14px;min-height:44px}.voice-controls .icon-button{height:44px;width:44px}.voice-note{font-size:11px}.game-heading h1{font-size:40px}.phase-clock{padding:11px 14px}.phase-clock strong{font-size:32px}}
@media(max-width:740px){
  .prototype-bar{padding:6px 5%;font-size:10px;gap:8px}.prototype-bar>span:first-child{display:none}.prototype-bar>span:nth-child(2){max-width:76%;line-height:1.5}.prototype-bar button{font-size:10px}.masthead{padding:24px 5% 15px;gap:18px}.brand{gap:9px}.brand>svg{width:40px;height:40px;border-radius:15px;padding:6px}.brand>span{font-size:32px}.brand small{font-size:6px;letter-spacing:.9px}.rules-link{padding:10px;border-radius:13px}.rules-link span{display:none}.scene-nav{padding:5px;gap:3px;border-radius:19px}.scene-nav button{font-size:12px;gap:5px;border-radius:13px;padding:11px 6px}.scene-nav button svg{width:16px;height:16px}main{padding:14px 5% 0}.page-heading{margin:8px 0 23px}.page-heading .eyebrow{font-size:10px;letter-spacing:0;padding:6px 10px}.page-heading h1{font-size:48px;margin:12px 0 10px;letter-spacing:-1.2px}.page-heading p{font-size:14px;max-width:95%}.lobby-layout{grid-template-columns:1fr;gap:23px}.island-panel{min-height:430px;border-radius:26px}.island-panel>.island-art{object-position:50% 36%;height:100%}.map-caption{left:18px;right:auto;bottom:59px;padding:14px 18px;max-width:79%}.map-caption h2{font-size:33px;margin:8px 0 9px}.map-caption p{font-size:12px}.destination-tag{font-size:9px}.map-foot{padding:13px 18px}.map-foot span:first-child{font-size:9px}.lobby-card{padding:21px;border-radius:27px}.card-heading h2{font-size:32px}.avatar{width:43px;height:43px}.preview-player{padding:9px 6px;gap:7px}.preview-player strong{font-size:14px}.preview-player small{font-size:10px}.crew-preview{gap:9px;padding:20px 0}.format-picker button{padding:12px 11px}.format-picker small{font-size:10px}.embark{font-size:22px;min-height:57px}.setting-note{font-size:12px}.fine-print{font-size:11px}.lobby-bottom{display:grid;grid-template-columns:1fr;gap:19px;margin:26px 0}.lobby-bottom p{font-size:14px}.lobby-bottom .text-button{margin:3px 0 0;justify-self:start}.text-button{font-size:14px}.game-heading{gap:12px;align-items:center}.game-heading .eyebrow{font-size:9px;padding:4px 9px}.game-heading h1{font-size:33px;letter-spacing:-.5px;line-height:1.05}.phase-clock{grid-template-columns:1fr;gap:4px;padding:10px 12px;border-radius:17px;text-align:center;max-width:104px}.phase-clock>span{font-size:8px;letter-spacing:.5px}.phase-clock strong{grid-row:2;font-size:28px}.phase-clock small{font-size:8px}.game-layout{display:flex;flex-direction:column;gap:20px}.crew-panel,.table-panel,.comms-panel{width:100%}.crew-panel{display:grid;grid-template-columns:1fr;padding:15px 13px;border-radius:23px}.game-crew{display:flex;flex-direction:row;gap:7px;overflow:auto;padding:5px 2px 10px;margin:7px 0 7px;scrollbar-width:thin;scrollbar-color:#acc49f transparent}.crew-button{width:78px;min-width:78px;flex-direction:column;text-align:center;gap:5px;padding:9px 5px;position:relative}.crew-button>span:nth-child(2){font-size:12px}.crew-button small{font-size:9px;white-space:nowrap}.crew-button>svg{position:absolute;top:9px;right:6px;width:10px;height:10px}.crew-button .avatar{width:39px;height:39px}.personal-card{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:12px 10px;transform:none;border-radius:14px}.personal-card .eyebrow{font-size:8px;letter-spacing:.6px}.personal-card h3{font-size:19px;margin:0}.personal-card p{display:none}.hidden-bearing{margin:0 0 0 auto;padding:6px;gap:6px}.hidden-bearing svg{width:16px;height:16px}.hidden-bearing span{font-size:9px}.hidden-bearing b{font-size:12px}.notebook{padding:12px 2px 0}.notebook .section-label{font-size:9px}.empty-note{font-size:12px;margin-top:5px}.note{font-size:13px;margin-top:7px;padding:8px}.table-panel{border-radius:24px}.table-map{height:295px}.map-coordinate{top:11px;left:11px;right:11px;gap:5px;font-size:8px;padding:7px 9px;border-radius:11px}.map-coordinate svg{width:14px;height:14px}.map-coordinate>span{font-size:7px;padding:2px 4px}.map-pin>span{width:43px;height:43px}.map-pin small{font-size:11px;padding:1px 8px}.pin-one{top:30%;left:22%}.pin-two{right:18%;top:37%}.pin-three{top:62%;left:51%}.map-quote{font-size:13px;bottom:12px;left:12px;padding:9px;max-width:61%;border-radius:12px}.map-quote em{font-size:10px}.action-deck{grid-template-columns:minmax(0,1fr) 133px;gap:12px;min-height:254px;padding:22px 17px}.action-deck .eyebrow{font-size:8px;line-height:1.5;letter-spacing:.5px}.action-deck h2{font-size:28px;margin:8px 0}.action-deck p{font-size:13px}.action-line{margin-top:14px}.action-line .button{font-size:13px;padding:9px 10px;min-height:44px;gap:5px}.action-line .button svg{width:17px;height:17px}.action-line span{font-size:10px}.compass{width:133px;height:133px}.bearing{font-size:11px;min-width:38px;min-height:35px;padding:6px}.west{left:-10px}.east{right:-8px}.north{top:-8px}.south{bottom:-8px}#confirm-bearing{font-size:14px;min-height:45px;padding:10px}.scenario-line{padding:10px 12px;gap:9px}.scenario-line>span{font-size:8px;max-width:90px;line-height:1.5}.scenario-line button{font-size:11px;padding:9px}.comms-panel{display:block;border-radius:24px}.comms-heading{padding:20px 17px 15px}.comms-heading h2{font-size:30px}.comms-heading p{font-size:12px}.chat-tabs button{font-size:14px;padding:11px 7px}.comms-panel .messages{height:290px;padding:17px}.message{font-size:14px}.message-meta strong{font-size:12px}.message-meta small{font-size:10px}.message.system{font-size:12px}.dm-recipient select{font-size:14px;min-height:30px}#chat-input{font-size:16px;padding:9px 8px}.chat-notice{font-size:10px}.comms-panel .voice-panel{display:block;margin:6px 12px 13px;padding:17px}.voice-title strong{font-size:14px}.voice-title>span{font-size:10px}.voice-people p{font-size:13px}.voice-people small{font-size:10px}.voice-people{margin:16px 0}.voice-controls>button:first-child{font-size:13px}.voice-note{font-size:10px}.ghost-mode .map-quote{font-size:24px;max-width:none;left:7%;right:7%;bottom:20%;padding:22px 15px}.ghost-mode .map-quote em{font-size:13px}.ghost-mode .hidden-bearing b{font-size:10px}.ghost-mode #ghost-vote{font-size:14px}.ghost-mode #ghost-action small{font-size:10px}footer{margin-top:23px;padding:18px 5% 23px;flex-direction:column;gap:5px;font-size:11px}footer>span+span{font-size:9px}dialog{padding:29px 23px;border-radius:24px}dialog h2{font-size:31px}#dialog-body{font-size:14px}.toast{font-size:12px;padding:12px 15px;bottom:15px}}
@media(max-width:360px){.brand>span{font-size:27px}.brand small{font-size:5px}.brand>svg{width:36px;height:36px}.scene-nav button{font-size:11px;gap:4px}.scene-nav button svg{width:14px}.page-heading h1{font-size:42px}.game-heading h1{font-size:29px}.action-deck{grid-template-columns:1fr;gap:25px}.compass{justify-self:center;margin:4px 0;width:165px;height:165px}.lobby-card{padding:18px}.preview-player .avatar{width:35px;height:35px}.preview-player small{font-size:9px}.preview-player strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.island-panel:hover>.island-art{transform:none}}
