/* header actions + theme button */
.header-actions{display:flex;gap:7px}
.boat-page>header .header-actions{flex:0 0 auto}
.theme-dot{display:block;width:18px;height:18px;border-radius:50%;background:conic-gradient(#2db9d0 0 50%,#ff6b8b 50% 100%);box-shadow:0 0 0 2px #ffffff2a,0 0 12px #2db9d066}
:root[data-theme=sunset] .theme-dot{background:conic-gradient(#ff6b8b 0 50%,#ffc35c 50% 100%);box-shadow:0 0 0 2px #ffffff2a,0 0 12px #ff6b8b88}

/* letter picker */
.letter-picker{margin:9px 18px 0;border:1px solid #f5c56530;border-radius:16px;background:linear-gradient(90deg,#f5c5650d,#ffffff05);overflow:hidden}
.letter-head{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;padding:10px 12px;background:none;color:#fff;text-align:right;cursor:pointer}
.letter-head span,.letter-head small{display:block}
.letter-head span{font-size:10px;font-weight:900}
.letter-head small{margin-top:3px;color:#7f9fa9;font-size:7px;line-height:1.5}
.letter-head strong{display:grid;min-width:44px;height:38px;flex:0 0 auto;place-items:center;border-radius:11px;padding:0 9px;background:linear-gradient(135deg,#f6cf73,#bc8129);color:#1c1204;font-size:21px;box-shadow:0 6px 16px #c28b3033}
.letter-head strong.none{font-size:10px}
.letter-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:4px 12px 12px}
.letter-grid[hidden]{display:none}
.letter-grid button{height:40px;border:1px solid #ffffff14;border-radius:11px;background:#ffffff08;color:#fff;font-size:18px;font-weight:900;cursor:pointer}
.letter-grid button.any{grid-column:span 6;height:34px;font-size:10px}
.letter-grid button.picked{border-color:transparent;background:linear-gradient(135deg,#f6cf73,#bc8129);color:#1c1204}
.letter-grid button:active{transform:scale(.94)}

/* round letter badge on the banner */
.letter-badge{position:absolute;z-index:3;top:10px;left:10px;display:grid;width:52px;height:56px;place-items:center;align-content:center;gap:1px;border:1px solid #f5c56566;border-radius:14px;background:#03101bd0;box-shadow:0 8px 22px #0008}
.letter-badge{padding:0;color:inherit;cursor:pointer;transition:transform .15s}
.letter-badge:active{transform:scale(.92)}
.letter-badge b.none{font-size:15px}
.letter-badge em{margin-top:1px;border-radius:99px;padding:1px 6px;background:#f5c56526;color:#ecd18f;font-size:6px;font-style:normal;font-weight:900}
.letter-badge small{color:#ecd18f;font-size:7px;font-weight:900}
.letter-badge b{color:#fff4d0;font-size:25px;line-height:1.1}

/* add player mid-game */
.add-player{display:grid;grid-template-columns:1fr 36px;gap:5px;margin-bottom:9px}
.add-player input{min-width:0;height:38px;border:1px dashed #72d9e240;border-radius:11px;outline:0;padding:0 10px;background:#04121b99;color:#fff;font-size:10px}
.add-player input:focus{border-style:solid;border-color:#42c9dc88}
.add-player button{border:0;border-radius:11px;background:linear-gradient(135deg,#55d5df,#208ca8);color:#031119;font-size:17px;font-weight:900}

/* words as square tiles */
.words{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));align-content:start;gap:6px;flex-direction:initial}
.words.empty{display:block}
.word{position:relative;display:flex;aspect-ratio:1;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #2db9d033;border-radius:13px;padding:16px 4px 7px;background:linear-gradient(160deg,#2db9d01f,#ffffff05);text-align:center;animation:tile-in .3s ease}
.word i{position:absolute;top:4px;right:4px;width:17px;height:17px;border-radius:6px;font-size:7px}
.word b{max-width:100%;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.word.long b{font-size:11px}
.word small{display:block;max-width:100%;overflow:hidden;color:#8fb2bd;font-size:7px;text-overflow:ellipsis;white-space:nowrap}
@keyframes tile-in{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}
@media(max-width:480px){.words{grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:5px}.word{padding:14px 3px 5px;border-radius:11px}.word i{width:15px;height:15px;font-size:6px}.word{grid-template-columns:none}.word b{font-size:12px}.word.long b{font-size:10px}.word small{display:block;font-size:6px}}
@media(max-width:360px){.letter-picker{margin-inline:11px}.letter-grid{grid-template-columns:repeat(5,1fr)}.letter-grid button.any{grid-column:span 5}}
@media(prefers-reduced-motion:reduce){.word{animation:none}}

/* ===== second theme: sunset (purple + coral + gold) ===== */
:root[data-theme=sunset] body{background:radial-gradient(circle at 15% 10%,#ff6b8b33,transparent 30%),radial-gradient(circle at 90% 35%,#ffb34726,transparent 28%),radial-gradient(circle at 50% 100%,#7b3fe433,transparent 45%),linear-gradient(160deg,#1b0b33,#2c1052 52%,#3a0f3e)}
:root[data-theme=sunset] body::before{background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 18px,#ff8fa922 19px 21px,transparent 22px 38px)}
:root[data-theme=sunset] .panel{border-color:#ff8fb030;background:linear-gradient(145deg,#33155add,#1d0b36ee)}
:root[data-theme=sunset] .boat-page>header button,:root[data-theme=sunset] .back{border-color:#ffffff1f;background:#ffffff0d}
:root[data-theme=sunset] .boat-page>header p,:root[data-theme=sunset] .eyebrow{color:#ff9db4}
:root[data-theme=sunset] .site-brand p{color:#ffc35c!important}
:root[data-theme=sunset] .ship-hero::after{background:linear-gradient(180deg,transparent 18%,#24104a 94%)}
:root[data-theme=sunset] .ship-hero p,:root[data-theme=sunset] .setup>p,:root[data-theme=sunset] .setup>small,:root[data-theme=sunset] .mode small,:root[data-theme=sunset] .panel-head small,:root[data-theme=sunset] .letter-head small,:root[data-theme=sunset] .hearts-picker>div:first-child small{color:#c4a8dc}
:root[data-theme=sunset] .mode{border-color:#ff8fb024;background:#ffffff08}
:root[data-theme=sunset] .mode:active{border-color:#ff6b8b88}
:root[data-theme=sunset] .letter-picker{border-color:#ffc35c38;background:linear-gradient(90deg,#ffc35c12,#ff6b8b0a)}
:root[data-theme=sunset] .letter-head strong,:root[data-theme=sunset] .letter-grid button.picked,:root[data-theme=sunset] .primary{background:linear-gradient(135deg,#ffcf6b,#ff6b8b);color:#2a0a1c;box-shadow:0 10px 28px #ff6b8b3a}
:root[data-theme=sunset] .letter-grid button{border-color:#ffffff17;background:#ffffff0a}
:root[data-theme=sunset] .setup input,:root[data-theme=sunset] .words-panel input,:root[data-theme=sunset] .add-player input,:root[data-theme=sunset] .room-bar{border-color:#ffffff1c;background:#14072acc}
:root[data-theme=sunset] .setup input:focus,:root[data-theme=sunset] .words-panel input:focus,:root[data-theme=sunset] .add-player input:focus{border-color:#ff8fb099;box-shadow:0 0 0 3px #ff6b8b1c}
:root[data-theme=sunset] .setup form button,:root[data-theme=sunset] .words-panel form button,:root[data-theme=sunset] .add-player button{background:linear-gradient(135deg,#ff8fa9,#c2417f);color:#fff}
:root[data-theme=sunset] .share-actions button{border-color:#ff8fb040;background:#ff6b8b14;color:#ffb3c4}
:root[data-theme=sunset] .player>span,:root[data-theme=sunset] .room-players img,:root[data-theme=sunset] .room-players i{background:#4a2177;color:#ffb3c4}
:root[data-theme=sunset] .player.active{border-color:#ffc35c88;background:#ffc35c17;box-shadow:0 0 0 2px #ffc35c14}
:root[data-theme=sunset] .player.active>span{background:linear-gradient(135deg,#ffcf6b,#ff8a5c);color:#2a0a1c}
:root[data-theme=sunset] .panel-head strong{background:#ff6b8b22;color:#ffb3c4}
:root[data-theme=sunset] .words-panel form>label{color:#ffc35c}
:root[data-theme=sunset] .word{border-color:#ff8fb040;background:linear-gradient(160deg,#ff6b8b26,#7b3fe41f)}
:root[data-theme=sunset] .word:nth-child(3n+2){border-color:#ffc35c40;background:linear-gradient(160deg,#ffc35c22,#ff6b8b12)}
:root[data-theme=sunset] .word:nth-child(3n){border-color:#a77bff45;background:linear-gradient(160deg,#a77bff26,#ff6b8b0f)}
:root[data-theme=sunset] .word i{background:#ffffff14;color:#ffd7e0}
:root[data-theme=sunset] .word small{color:#d9bfe9}
:root[data-theme=sunset] .voyage-banner{border-color:#ffc35c40;background:radial-gradient(ellipse at 50% 108%,#ffb347 0,#ff6b8b 22%,#7b3fe4 36%,transparent 37%),linear-gradient(180deg,#2a0f52 0%,#a8407a 56%,#4b1a6a 57%,#1f0b3a 100%)}
:root[data-theme=sunset] .voyage-banner::after{background:linear-gradient(90deg,#1b0b33a8 0%,#1b0b3318 48%,#1b0b338c 100%)}
:root[data-theme=sunset] .voyage-copy input{background:#1b0b33b5}
:root[data-theme=sunset] .letter-badge{border-color:#ffc35c88;background:#1b0b33d6}
:root[data-theme=sunset] .notice{border-color:#ff8fb045;background:#2a1048f2}
:root[data-theme=sunset] .notice small{color:#cdb3e0}
:root[data-theme=sunset] .notice.duplicate{border-color:#ff607b66;background:#3c0f2af2}
:root[data-theme=sunset] .finish{background:#140726ef}
:root[data-theme=sunset] .finish>div{border-color:#ffc35c55;background:radial-gradient(circle at 50% 0,#ff6b8b33,transparent 50%),#24104a}
.voyage-banner .voyage-copy{padding-left:70px;padding-right:20px}

/* change the round letter mid-game */
.letter-sheet{position:fixed;z-index:25;inset:0;display:grid;align-items:end;justify-items:center;padding:16px;background:#020b12b8;backdrop-filter:blur(8px)}
.letter-sheet[hidden]{display:none}
.letter-sheet>div{width:min(100%,420px);border:1px solid #f5c56540;border-radius:24px;padding:18px 6px 12px;background:linear-gradient(160deg,#102d3d,#071923);box-shadow:0 -10px 50px #000a;text-align:center;animation:notice-in .25s ease}
.letter-sheet h3{margin:6px 0 4px;font-size:17px}
.letter-sheet p{margin:0 0 10px;color:#8daebb;font-size:9px}
.letter-sheet .sheet-close{width:calc(100% - 24px);height:38px;margin-top:2px;border:1px solid #ffffff1a;border-radius:12px;background:#ffffff08;color:#fff;font-size:10px;font-weight:900}
:root[data-theme=sunset] .letter-sheet{background:#12062299}
:root[data-theme=sunset] .letter-sheet>div{border-color:#ffc35c55;background:linear-gradient(160deg,#33155a,#1d0b36)}
:root[data-theme=sunset] .letter-sheet p{color:#c4a8dc}
:root[data-theme=sunset] .letter-badge em{background:#ffc35c2b;color:#ffd98a}

/* edit / remove a player mid-game */
.player-row{position:relative}
.edit-player{position:absolute;top:5px;left:5px;display:grid;width:22px;height:22px;place-items:center;border:1px solid #ffffff17;border-radius:7px;padding:0;background:#ffffff0d;color:#cfe9ef;font-size:11px;cursor:pointer}
.edit-player:active{transform:scale(.9)}
.player-row .player{padding-left:28px}
.player-sheet form{display:grid;grid-template-columns:1fr 84px;gap:6px;margin:4px 12px 8px}
.player-sheet input{min-width:0;height:44px;border:1px solid #ffffff1c;border-radius:12px;outline:0;padding:0 12px;background:#04121bcc;color:#fff;font-size:12px}
.player-sheet input:focus{border-color:#42c9dc88}
.player-sheet form button{border:0;border-radius:12px;background:linear-gradient(135deg,#55d5df,#208ca8);color:#031119;font-size:10px;font-weight:900}
.remove-player{width:calc(100% - 24px);height:40px;margin-bottom:6px;border:1px solid #ff607b55;border-radius:12px;background:#ff607b1a;color:#ff8da0;font-size:10px;font-weight:900}
.remove-player:disabled{opacity:.45}
:root[data-theme=sunset] .edit-player{border-color:#ffffff1f;background:#ffffff12;color:#ffd7e0}
:root[data-theme=sunset] .player-sheet input{border-color:#ffffff1c;background:#14072acc}
:root[data-theme=sunset] .player-sheet form button{background:linear-gradient(135deg,#ff8fa9,#c2417f);color:#fff}

/* game presenter card (opposite the letter badge) */
.voyage-banner .voyage-copy{padding-right:112px;padding-left:72px}
.host-card{position:absolute;z-index:3;top:10px;right:10px;width:94px;height:56px}
.host-card form{display:none;height:100%;flex-direction:column;justify-content:center;gap:3px;border:1px dashed #f5c56577;border-radius:14px;padding:5px 6px;background:#03101bd6;box-shadow:0 8px 22px #0008}
.host-card.editing form{display:flex}
.host-card.editing .host-show{display:none}
.host-card form small{color:#ecd18f;font-size:7px;font-weight:900;text-align:center}
.host-card form input{width:100%;min-width:0;height:22px;border:1px solid #ffffff22;border-radius:8px;outline:0;padding:0 4px 0 22px;background:#ffffff0d;color:#fff7db;font-size:10px;font-weight:800;text-align:center;unicode-bidi:plaintext}
.host-card form input::placeholder{color:#ffffff66;font-size:8px;text-align:right}
.host-card form input:focus{border-color:#f5c565aa}
.host-card form button{position:absolute;bottom:9px;left:9px;display:grid;width:18px;height:18px;place-items:center;border:0;border-radius:6px;padding:0;background:linear-gradient(135deg,#f6cf73,#bc8129);color:#1c1204;font-size:10px;font-weight:900}
.host-show{position:relative;display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:3px;overflow:hidden;border:0;border-radius:14px;padding:2px;background:conic-gradient(from var(--host-a,0deg),#f6cf73,#2db9d0,#ff6b8b,#f6cf73);color:inherit;cursor:pointer;box-shadow:0 8px 22px #0008,0 0 16px #f5c56544;animation:host-spin 3.5s linear infinite,host-float 3s ease-in-out infinite}
.host-show::before{content:"";position:absolute;inset:2px;border-radius:12px;background:radial-gradient(circle at 50% 0,#f5c56530,transparent 65%),#03101bf0}
.host-show::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#ffffff2e,transparent);transform:skewX(-18deg);animation:host-shine 2.8s ease-in-out infinite}
.host-show>*{position:relative;z-index:1}
.host-show small{color:#ecd18f;font-size:7px;font-weight:900}
.host-track{display:flex;width:calc(100% - 10px);justify-content:center;overflow:hidden;white-space:nowrap}
.host-track b{flex:0 0 auto;color:#fff4d0;font-size:13px;line-height:1.35;text-shadow:0 0 10px #f5c56588;unicode-bidi:plaintext}
.host-card.scroll .host-track{justify-content:flex-start;-webkit-mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.host-card.scroll .host-track b{padding-inline-end:22px;animation:host-marquee var(--dur,6s) linear infinite}
.host-card.pop .host-show{animation:host-spin 3.5s linear infinite,host-pop .55s cubic-bezier(.3,1.6,.5,1),host-float 3s ease-in-out .55s infinite}
@property --host-a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes host-spin{to{--host-a:360deg}}
@keyframes host-float{50%{transform:translateY(-2px)}}
@keyframes host-shine{0%,55%{left:-60%}100%{left:130%}}
@keyframes host-pop{0%{transform:scale(.4) rotate(-8deg);opacity:0}100%{transform:none;opacity:1}}
@keyframes host-marquee{from{transform:translateX(0)}to{transform:translateX(100%)}}
:root[data-theme=sunset] .host-card form{border-color:#ffc35c88;background:#1b0b33d6}
:root[data-theme=sunset] .host-card form button{background:linear-gradient(135deg,#ffcf6b,#ff6b8b);color:#2a0a1c}
:root[data-theme=sunset] .host-show{background:conic-gradient(from var(--host-a,0deg),#ffcf6b,#ff6b8b,#a77bff,#ffcf6b)}
:root[data-theme=sunset] .host-show::before{background:radial-gradient(circle at 50% 0,#ff6b8b33,transparent 65%),#1b0b33f0}
@media(max-width:480px){.voyage-banner .voyage-copy{padding-right:100px;padding-left:66px}.host-card{width:84px}.host-track b{font-size:12px}}
@media(prefers-reduced-motion:reduce){.host-show,.host-show::after,.host-card.scroll .host-track b{animation:none}}

/* pro banner: game name on top, presenter + letter equal boxes at the bottom corners */
.voyage-banner .voyage-copy{justify-content:flex-start;padding:12px 12px 0}
.voyage-copy input{margin-top:0}
.voyage-banner .letter-badge,.host-card{top:auto;bottom:10px;width:84px;height:60px}
.voyage-banner .letter-badge{left:10px}
.host-card{right:10px}
@media(max-width:480px){.voyage-banner{height:136px}.voyage-banner .voyage-copy{padding:10px 10px 0}.voyage-banner .letter-badge,.host-card{width:78px;height:56px}}

/* ship horn button */
.horn-icon{display:block;font-size:19px;font-style:normal;line-height:1;filter:drop-shadow(0 0 6px #2db9d066)}
#hornBtn.honk .horn-icon{animation:horn-shake .9s ease}
#hornBtn.honk{animation:horn-glow 2.2s ease-out}
@keyframes horn-shake{0%,100%{transform:none}15%{transform:translateY(-2px) rotate(-8deg) scale(1.15)}30%{transform:rotate(7deg) scale(1.15)}45%{transform:rotate(-5deg) scale(1.1)}60%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}}
@keyframes horn-glow{0%{box-shadow:0 0 0 0 #2db9d088}25%{box-shadow:0 0 0 8px #2db9d000,0 0 18px #2db9d066}100%{box-shadow:none}}
:root[data-theme=sunset] #hornBtn.honk{animation-name:horn-glow-sunset}
@keyframes horn-glow-sunset{0%{box-shadow:0 0 0 0 #ff6b8b88}25%{box-shadow:0 0 0 8px #ff6b8b00,0 0 18px #ff6b8b66}100%{box-shadow:none}}
@media(prefers-reduced-motion:reduce){#hornBtn.honk,#hornBtn.honk .horn-icon{animation:none}}
.sheet-hearts{margin:0 12px 8px}
