:root{--parchment-1: #f4e3c1;--parchment-2: #e6d0a3;--parchment-3: #d2b785;--parchment-4: #b89a6b;--ink: #2b1d10;--ink-soft: #4a3520;--blood: #a83232;--brass: #c69b3c;--brass-bright: #f0c75a;--kraken: #1c4e54;--sea: #2a3a4a;--sea-dark: #14202d;--shadow: rgba(34, 22, 10, .35);--suit-color: var(--ink);font-family:Georgia,Times New Roman,serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100vh;background:radial-gradient(ellipse at 20% 10%,rgba(255,255,255,.18),transparent 60%),radial-gradient(ellipse at 80% 90%,rgba(0,0,0,.18),transparent 60%),linear-gradient(180deg,var(--sea-dark) 0%,var(--sea) 100%);color:var(--parchment-1);font-size:16px;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;inset:-20px;pointer-events:none;z-index:0;background-image:radial-gradient(circle at 13% 22%,#f0c75a47 0,#f0c75a00 1px),radial-gradient(circle at 27% 71%,#ffffff38 0,#fff0 1px),radial-gradient(circle at 41% 18%,#ffffff29 0,#fff0 1px),radial-gradient(circle at 55% 84%,#f0c75a33 0,#f0c75a00 1px),radial-gradient(circle at 68% 36%,#ffffff2e 0,#fff0 1px),radial-gradient(circle at 82% 58%,#ffffff24 0,#fff0 1px),radial-gradient(circle at 91% 12%,#f0c75a3d 0,#f0c75a00 1px);background-size:360px 360px,480px 480px,320px 320px,540px 540px,400px 400px,260px 260px,580px 580px;animation:stars-drift 200s linear infinite;opacity:.7}@keyframes stars-drift{0%{background-position:0 0,0 0,0 0,0 0,0 0,0 0,0 0}to{background-position:1000px -700px,-800px 600px,700px 900px,-600px -800px,900px 700px,-700px 800px,800px -900px}}#app{position:relative;z-index:1}#app{padding:16px;max-width:1200px;margin:0 auto}button.btn{font-family:inherit;font-weight:600;font-size:14px;padding:10px 16px;border-radius:6px;border:1px solid var(--brass);background:linear-gradient(180deg,var(--brass-bright) 0%,var(--brass) 100%);color:var(--ink);cursor:pointer;box-shadow:0 2px #0006;transition:transform 60ms ease}button.btn:hover:not(:disabled){transform:translateY(-1px)}button.btn:disabled{opacity:.45;cursor:not-allowed}button.btn--primary{background:linear-gradient(180deg,#f0c75a,#b97f1f)}button.btn--ghost{background:transparent;color:var(--parchment-1);border-color:var(--parchment-3)}button.btn--danger{background:linear-gradient(180deg,#c44a4a,#7a1f1f);border-color:#5a1212;color:var(--parchment-1)}button.btn--small{padding:6px 10px;font-size:12px}button.btn--disabled{filter:grayscale(.6)}.pcard{position:relative;width:72px;height:100px;border-radius:6px;background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.45),transparent 60%),linear-gradient(140deg,var(--parchment-1) 0%,var(--parchment-2) 60%,var(--parchment-3) 100%);border:1px solid var(--parchment-4);box-shadow:0 2px 4px var(--shadow),inset 0 0 12px #78552840;cursor:pointer;user-select:none;flex:0 0 auto;color:var(--suit-color);font-family:Georgia,serif;transition:transform 80ms ease,box-shadow 80ms ease}.pcard:hover{transform:translateY(-3px);box-shadow:0 6px 8px var(--shadow)}.pcard--selected{transform:translateY(-12px);box-shadow:0 0 0 2px var(--brass-bright),0 8px 12px var(--shadow)}.pcard--wild{background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.6),transparent 60%),linear-gradient(140deg,#fff5d8,#f0c75a 60%,#b97f1f);border-color:var(--brass-bright);box-shadow:0 0 8px #f0c75a99,0 2px 4px var(--shadow),inset 0 0 12px #f0c75a66}.pcard--wild .pcard-rank,.pcard--wild .pcard-suit{color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.5)}.pcard--wild.pcard--selected{box-shadow:0 0 0 2px #fff5d8,0 0 16px #f0c75acc,0 8px 12px var(--shadow)}.pcard--tiny{width:50px;height:70px}.pcard-corner{position:absolute;display:flex;flex-direction:column;align-items:center;font-weight:700;font-size:12px;line-height:1}.pcard-corner--tl{top:4px;left:6px}.pcard-corner--br{bottom:4px;right:6px;transform:rotate(180deg)}.pcard-rank,.pcard-suit{font-size:14px}.pcard-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:36px;opacity:.85}.pcard--back{background:repeating-linear-gradient(45deg,var(--kraken),var(--kraken) 6px,#163b40 6px,#163b40 12px);border-color:var(--kraken);color:var(--brass-bright)}.pcard-back-pattern{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--brass-bright);text-shadow:0 1px 2px rgba(0,0,0,.5)}.crew{width:160px;padding:10px 10px 8px;border-radius:8px;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.3),transparent 60%),linear-gradient(160deg,var(--parchment-1),var(--parchment-3));border:1px solid var(--parchment-4);box-shadow:0 3px 6px var(--shadow);color:var(--ink);font-size:12px;position:relative;flex:0 0 auto}.crew--compact{width:110px;padding:6px;font-size:10px}.crew:before{content:"";position:absolute;inset:4px;border:1px solid hsl(var(--crew-hue, 38),35%,30%);border-radius:5px;pointer-events:none;opacity:.4}.crew-portrait{text-align:center;background:radial-gradient(ellipse at 35% 25%,hsl(var(--crew-hue, 38),35%,82%),hsl(var(--crew-hue, 38),30%,60%) 80%);border-radius:50%;width:56px;height:56px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;border:2px solid hsl(var(--crew-hue, 38),55%,30%);overflow:hidden;box-shadow:inset 0 -4px 8px #00000040}.crew-portrait svg{width:100%;height:100%;display:block}.crew--compact .crew-portrait{width:36px;height:36px}.crew-name{font-weight:700;text-align:center;font-size:13px}.crew--compact .crew-name{font-size:11px}.crew-archetype{text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:hsl(var(--crew-hue, 38),50%,25%);margin:2px 0 6px}.crew-desc{font-style:normal;min-height:2.4em}.crew-flavor{font-style:italic;color:var(--ink-soft);margin-top:6px;font-size:11px}.crew--compact .crew-flavor{display:none}.crew-cost{margin-top:8px;text-align:center;font-weight:700;color:var(--brass);background:var(--ink);border-radius:4px;padding:4px}.crew-cost--cant{color:var(--blood)}.crew-sell{display:block;width:100%;margin-top:6px;font-family:inherit;font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;background:#a832322e;color:var(--blood);border:1px solid var(--blood);border-radius:4px;padding:3px 6px;cursor:pointer;transition:background 60ms ease}.crew-sell:hover{background:#a8323266;color:var(--parchment-1)}.crew--compact .crew-sell{font-size:9px;padding:2px 4px;letter-spacing:.5px}.ante-panel{background:linear-gradient(135deg,#1c4e5473,#14202d73);border:1px solid var(--brass);border-radius:8px;padding:14px 16px;text-align:center}.ante-title{font-size:24px;font-weight:700;color:var(--brass-bright);letter-spacing:1px}.ante-title .muted{font-size:14px}.ante-target{font-size:18px;color:var(--parchment-1);margin-top:6px}.ante-progress{font-size:12px;color:var(--parchment-3);margin-top:4px}.ante-thresholds{margin-top:10px;font-size:12px;color:var(--parchment-4)}.ante-thresholds .cleared{color:var(--brass);text-decoration:line-through;opacity:.5}.ante-thresholds .current{color:var(--brass-bright);font-weight:700}.ante-thresholds.endless{color:var(--brass-bright);font-weight:700;letter-spacing:1px}.ante-panel--endless{background:linear-gradient(135deg,#a832324d,#14202d99);border-color:var(--blood);animation:endless-pulse 3s ease-in-out infinite}@keyframes endless-pulse{0%,to{box-shadow:0 0 #a8323200}50%{box-shadow:0 0 16px 4px #a8323299}}.endless-tag{display:inline-block;background:var(--blood);color:var(--parchment-1);font-size:11px;font-weight:700;letter-spacing:2px;padding:2px 8px;border-radius:4px;margin-left:6px;vertical-align:middle}.ante-progress-bar{position:relative;height:22px;background:#00000080;border:1px solid var(--parchment-4);border-radius:6px;overflow:hidden;margin-top:10px}.ante-progress-fill{height:100%;background:linear-gradient(90deg,var(--brass),var(--brass-bright));transition:width .6s cubic-bezier(.2,.8,.25,1);box-shadow:0 0 8px #f0c75a80}.ante-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--parchment-1);text-shadow:0 1px 2px rgba(0,0,0,.8);letter-spacing:1px}.ante-ok{color:#6dd6c8;font-size:12px;margin-left:6px}.badge--pve{background:var(--kraken);color:var(--brass-bright)}.stats-divider{height:1px;background:var(--parchment-4);margin:6px 0;opacity:.4}.shop-section-label{font-variant:small-caps;letter-spacing:2px;font-size:11px;color:var(--parchment-3);margin:14px 0 6px}.shop-crew-area{margin-top:16px}.port-view{background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.06),transparent 60%),linear-gradient(180deg,#1c4e5440,#00000073);border:2px solid var(--brass);border-radius:14px;padding:18px 22px;box-shadow:0 12px 32px #00000073;position:relative;overflow:hidden}.port-view:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(110deg,transparent 0,transparent 4px,rgba(255,255,255,.012) 4px,rgba(255,255,255,.012) 5px);border-radius:14px}.port-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px;position:relative}.port-header-title{display:flex;gap:14px;align-items:center}.port-icon{font-size:38px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.port-header h2{margin:0;font-size:28px;color:var(--brass-bright);letter-spacing:3px;text-shadow:0 2px 0 var(--ink),0 4px 12px rgba(0,0,0,.5)}.port-subtitle{font-size:12px;color:var(--parchment-3);font-style:italic;margin-top:2px}.port-header-stats{text-align:right}.port-pick-info{font-variant:small-caps;letter-spacing:2px;font-size:11px;color:var(--parchment-3);margin-bottom:6px}.port-doubloons{display:flex;flex-direction:column;gap:4px;background:#0006;border:1px solid var(--parchment-4);border-radius:8px;padding:8px 12px;min-width:220px}.port-captain-row{display:flex;justify-content:space-between;gap:14px;font-size:13px;color:var(--parchment-2)}.port-captain-row--me{color:var(--brass-bright);font-weight:700;border-bottom:1px solid rgba(240,199,90,.2);padding-bottom:4px}.port-captain-name{letter-spacing:.5px}.port-captain-coin{font-weight:700}.port-tabs--mobile{display:none}.port-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;position:relative}.port-section-title{font-variant:small-caps;letter-spacing:2px;font-size:11px;color:var(--parchment-3);margin-bottom:10px;border-bottom:1px solid var(--parchment-4);padding-bottom:4px}.port-section-title .muted{color:var(--parchment-4)}.port-offers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.port-offer{position:relative;background:linear-gradient(165deg,#f4e8d40f,#0000004d);border:2px solid rgba(184,154,107,.4);border-radius:10px;padding:10px 10px 14px;display:flex;flex-direction:column;gap:10px;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;animation:port-offer-in .38s cubic-bezier(.34,1.4,.64,1) both}@keyframes port-offer-in{0%{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.port-offer--ok{border-color:var(--brass);box-shadow:0 4px 14px #0006}.port-offer--ok:hover{transform:translateY(-3px);border-color:var(--brass-bright);box-shadow:0 8px 20px #00000080,0 0 12px #f0c75a40}.port-offer--no{border-color:#a8323266;opacity:.62;filter:grayscale(.5)}.port-offer--no:hover{transform:none}.port-offer--purchased{animation:offer-purchased .7s ease forwards}@keyframes offer-purchased{0%{transform:scale(1)}30%{transform:scale(1.08);box-shadow:0 0 30px #f0c75ae6}to{transform:scale(.7) translateY(-30px);opacity:0}}.port-offer-tag{position:absolute;top:-10px;left:12px;background:var(--ink);color:var(--brass-bright);font-size:10px;font-weight:700;letter-spacing:2px;padding:3px 10px;border:1px solid var(--brass);border-radius:12px;z-index:2}.port-offer-content{display:flex;justify-content:center;flex:1}.port-offer-content .crew{width:100%;max-width:200px}.port-card{width:100%;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.3),transparent 60%),linear-gradient(160deg,var(--parchment-1),var(--parchment-3));color:var(--ink);padding:14px 12px;border-radius:8px;border:1px solid var(--parchment-4);text-align:center;display:flex;flex-direction:column;gap:8px;min-height:140px;box-shadow:inset 0 -4px 8px #78552833}.port-card--edict{border-left:4px solid var(--blood)}.port-card--mod{border-left:4px solid var(--kraken)}.port-card-icon{font-size:32px;line-height:1}.port-card-name{font-weight:700;font-size:14px;letter-spacing:.5px}.port-card-desc{font-size:12px;line-height:1.4;color:var(--ink-soft);flex:1}.port-buy{display:flex;justify-content:space-between;align-items:center;gap:8px;font-family:inherit;font-weight:700;font-size:13px;letter-spacing:1px;padding:8px 12px;background:linear-gradient(180deg,var(--brass-bright),var(--brass));color:var(--ink);border:1px solid var(--ink);border-radius:6px;cursor:pointer;box-shadow:0 2px #0006;transition:transform 60ms ease,box-shadow 80ms ease}.port-buy:hover:not(.port-buy--disabled){transform:translateY(-1px);box-shadow:0 3px #0006,0 0 12px #f0c75a4d}.port-buy:active:not(.port-buy--disabled){transform:translateY(0)}.port-buy-cost{background:var(--ink);color:var(--brass-bright);padding:3px 8px;border-radius:4px;font-size:13px}.port-buy--disabled{background:linear-gradient(180deg,#785a324d,#3c281480);color:#ffffff80;cursor:not-allowed;border-color:var(--parchment-4);box-shadow:none}.port-buy--disabled .port-buy-cost{background:#0006;color:#a83232b3;text-decoration:line-through}.port-empty{color:var(--parchment-3);font-style:italic;padding:30px;text-align:center;grid-column:1 / -1}.port-empty-mini{color:var(--parchment-4);font-style:italic;padding:12px}.port-sell{background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px 14px}.port-sell-grid{display:flex;gap:10px;flex-wrap:wrap}.crew--sold{animation:crew-sold .6s ease forwards}@keyframes crew-sold{0%{transform:scale(1)}30%{transform:scale(1.08);filter:brightness(1.4)}to{transform:scale(.7) translateY(20px);opacity:0}}.port-footer{display:flex;justify-content:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px dashed var(--parchment-4)}.port-refresh-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:10px 14px;background:#1c4e5440;border:1px solid var(--kraken);border-radius:8px;flex-wrap:wrap}.port-refresh-info{color:var(--parchment-2);font-size:13px}.port-refresh-info strong{color:#6dd6c8;letter-spacing:1px;text-transform:uppercase;font-size:12px}.port-offers-grid--reroll{animation:reroll-flash .5s ease}@keyframes reroll-flash{0%{filter:brightness(1);transform:scale(1)}40%{filter:brightness(1.4) hue-rotate(-10deg);transform:scale(1.02)}to{filter:brightness(1);transform:scale(1)}}@media (max-width: 768px){.port-tabs--mobile{display:flex;gap:8px;margin-bottom:12px}.port-tab{flex:1;background:transparent;color:var(--parchment-2);border:1px solid var(--parchment-4);padding:10px;border-radius:6px;font-family:inherit;font-weight:600;cursor:pointer;font-size:13px;letter-spacing:1px}.port-tab--active{background:var(--brass);color:var(--ink);border-color:var(--brass)}.port-body{grid-template-columns:1fr}.port-pane--hidden-mobile{display:none}.port-header h2{font-size:22px}.port-doubloons{min-width:0;width:100%}}.end-screen-stats{display:flex;gap:24px;justify-content:center;margin:20px 0;font-size:18px;color:var(--parchment-2)}.match-view{display:flex;flex-direction:column;gap:14px}.match-header{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start}.captain{background:#00000040;border:1px solid var(--parchment-4);border-radius:8px;padding:10px 12px}.captain--me{border-color:var(--brass)}.captain-name{font-size:18px;font-weight:700;color:var(--brass-bright)}.captain-name em{color:var(--parchment-2);font-weight:400}.captain-meta{font-size:11px;color:var(--parchment-3);margin-top:4px}.hull{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;margin-top:4px}.hull-bar{flex:1;height:8px;background:#0006;border:1px solid var(--parchment-4);border-radius:4px;overflow:hidden}.hull-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--brass),var(--brass-bright));transition:width .2s ease}.turn-indicator{align-self:center;font-size:14px;background:var(--ink);color:var(--brass-bright);padding:8px 14px;border-radius:20px;border:1px solid var(--brass);text-align:center;white-space:nowrap}.crew-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.crew-row--small .crew{width:90px;padding:4px;font-size:9px}.crew-empty{font-size:11px;color:var(--parchment-3);font-style:italic}.plank-area{background:#28190a80;border:2px dashed var(--parchment-4);border-radius:10px;padding:14px;min-height:130px}.plank-label,.hand-label,.preview-title{font-variant:small-caps;letter-spacing:2px;font-size:12px;color:var(--parchment-3);margin-bottom:8px}.plank{display:flex;gap:8px;flex-wrap:wrap;min-height:100px;align-items:flex-start}.plank-empty{color:var(--parchment-3);font-style:italic;padding:30px 0}.plank-preview{margin-top:10px;font-size:12px;color:var(--parchment-2)}.plank-preview ul{list-style:none;padding:0;margin:0;display:flex;gap:16px;flex-wrap:wrap}.plank-preview li{background:#0000004d;padding:4px 8px;border-radius:4px}.plank-preview .muted{color:var(--parchment-4);font-style:italic}.plank-preview .crew-trigger{background:#f0c75a26;border-left:3px solid var(--brass-bright);color:var(--brass-bright);font-style:italic}.preview-tag{display:inline-block;background:#00000080;color:var(--parchment-2);font-size:11px;padding:2px 6px;border-radius:3px;margin-left:6px;font-style:italic}.preview-total{margin-top:10px;padding:8px 12px;background:#0006;border-radius:6px;font-weight:600;font-size:14px;color:var(--parchment-1)}.preview-total .pos{color:var(--brass-bright)}.preview-total .neg{color:var(--blood)}.preview-total.muted{background:transparent;border:1px dashed var(--parchment-4);color:var(--parchment-3);font-weight:400;font-style:italic}.mark-notice{margin-top:8px;padding:6px 12px;background:linear-gradient(90deg,#f0c75a33,#f0c75a0d);border-left:3px solid var(--brass-bright);color:var(--brass-bright);font-size:12px;border-radius:4px}.mark-tag{display:inline-block;background:var(--brass-bright);color:var(--ink);font-weight:700;padding:1px 6px;border-radius:3px;font-size:10px;margin-left:6px;letter-spacing:.5px}.hand-area{background:#00000040;border-radius:10px;padding:12px}.hand{display:flex;gap:8px;flex-wrap:wrap}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.last-result{flex:1 1 100%;font-size:13px;color:var(--brass-bright);background:#0006;padding:8px 12px;border-radius:6px;border-left:3px solid var(--brass)}.toss-banner{flex:1 1 100%;font-size:13px;color:var(--parchment-1);background:linear-gradient(90deg,#1c4e5480,#1c4e5433);padding:10px 14px;border-radius:6px;border-left:3px solid var(--kraken)}.toss-banner strong{color:#6dd6c8}.log{background:#00000059;padding:10px 14px;border-radius:8px;font-size:12px;color:var(--parchment-2);max-height:320px;overflow-y:auto}.log-header{position:sticky;top:-10px;background:#000000f2;margin:-10px -14px 6px;padding:8px 14px;font-variant:small-caps;letter-spacing:2px;font-size:11px;color:var(--brass-bright);border-bottom:1px solid var(--parchment-4);z-index:1}.log-header .muted{font-size:10px;letter-spacing:1px;color:var(--parchment-3)}.log-entry{padding:5px 0;border-bottom:1px dashed rgba(255,255,255,.07);line-height:1.4}.log-entry:last-child{border-bottom:none}.log-entry:first-of-type{background:#f0c75a14;border-left:2px solid var(--brass-bright);padding-left:6px;margin-left:-6px;animation:log-entry-arrive .6s ease}@keyframes log-entry-arrive{0%{background:#f0c75a66;transform:translate(-6px)}to{background:#f0c75a14;transform:translate(0)}}.handoff{text-align:center;padding:60px 20px;background:#0006;border-radius:12px;border:1px solid var(--parchment-4)}.handoff h2{color:var(--brass-bright);font-size:28px}.handoff p{color:var(--parchment-2)}.shop-view{background:#00000059;padding:18px;border-radius:10px;border:1px solid var(--brass)}.shop-view h2{color:var(--brass-bright);margin-top:0}.shop-view .muted{color:var(--parchment-3);font-style:italic}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:14px 0}.shop-slot{display:flex;flex-direction:column;gap:8px;align-items:center}.shop-card{width:160px;padding:12px;background:linear-gradient(160deg,var(--parchment-1),var(--parchment-3));color:var(--ink);border-radius:8px;border:1px solid var(--parchment-4);box-shadow:0 3px 6px var(--shadow)}.shop-card--edict{border-left:4px solid var(--blood)}.shop-card--mod{border-left:4px solid var(--kraken)}.shop-name{font-weight:700;font-size:14px}.shop-desc{font-size:12px;margin:6px 0}.shop-cost{font-weight:700;background:var(--ink);color:var(--brass-bright);border-radius:4px;padding:4px 6px;text-align:center;margin-top:8px}.end-screen{text-align:center;padding:60px 20px;background:#00000080;border-radius:12px;border:2px solid var(--brass)}.end-screen h1{color:var(--brass-bright);font-size:36px;margin:0 0 10px}.end-stats{display:flex;gap:24px;justify-content:center;margin:20px 0;font-size:18px;color:var(--parchment-2)}.wordmark-block{display:flex;flex-direction:column;align-items:center;gap:8px}.wordmark{font-size:56px;margin:0;color:var(--brass-bright);text-shadow:0 1px 0 var(--ink),0 2px 0 var(--ink),0 3px 0 var(--ink),0 4px 8px rgba(0,0,0,.6);letter-spacing:6px;font-weight:700;font-family:Georgia,serif}.plunder-logo{filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}.plunder-logo:hover{animation:logo-spin 1.6s ease}@keyframes logo-spin{0%{transform:rotate(0)}60%{transform:rotate(380deg)}to{transform:rotate(360deg)}}.lobby-brand{display:flex;align-items:center;gap:14px}.auth-screen{max-width:460px;margin:60px auto;text-align:center}.brand{font-size:32px;margin:0;color:var(--brass-bright);text-shadow:0 2px 0 var(--ink),0 4px 8px rgba(0,0,0,.6);letter-spacing:4px}.brand-sub{color:var(--parchment-3);font-style:italic;margin-top:4px;margin-bottom:30px}.auth-card{background:#0006;border:1px solid var(--brass);border-radius:12px;padding:24px;text-align:left}.auth-tabs{display:flex;gap:6px;margin-bottom:18px}.tab-btn{flex:1;background:transparent;border:1px solid var(--parchment-4);color:var(--parchment-2);padding:10px;border-radius:6px;font-family:inherit;font-weight:600;cursor:pointer}.tab-btn--active{background:var(--brass);color:var(--ink);border-color:var(--brass)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label{display:flex;flex-direction:column;font-size:12px;color:var(--parchment-3);gap:4px}.auth-form input{font-family:inherit;font-size:16px;padding:10px 12px;background:var(--parchment-1);color:var(--ink);border:1px solid var(--parchment-4);border-radius:6px}.auth-form input:focus{outline:2px solid var(--brass)}.auth-error{color:var(--blood);font-size:13px;min-height:18px}.auth-submit{margin-top:6px}.lobby{max-width:900px;margin:0 auto}.lobby-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.lobby-header .brand{font-size:32px;letter-spacing:2px}.captain-greeting{color:var(--parchment-2);font-size:14px;margin-top:4px}.stats-pill{background:#0006;border:1px solid var(--brass);padding:10px 16px;border-radius:8px;text-align:center;color:var(--brass-bright)}.stats-pill strong{font-size:18px}.stats-total{font-size:11px;color:var(--parchment-3)}.lobby-actions{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.accept-form{display:flex;gap:8px}.accept-form input{font-family:inherit;font-size:14px;padding:8px 12px;background:var(--parchment-1);border:1px solid var(--parchment-4);border-radius:6px;text-transform:uppercase;letter-spacing:2px}.match-list{margin:18px 0}.match-list h2{font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--parchment-3);border-bottom:1px solid var(--parchment-4);padding-bottom:6px}.match-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#0000004d;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin:8px 0;cursor:pointer;transition:background 80ms ease}.match-row:hover{background:#00000080}.match-row-vs{font-weight:600;font-size:16px;color:var(--parchment-1)}.match-row-meta{font-size:11px;color:var(--parchment-3)}.empty{color:var(--parchment-3);font-style:italic;padding:12px}.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-left:12px}.badge--turn{background:var(--brass);color:var(--ink)}.badge--wait{background:#ffffff1a;color:var(--parchment-3)}.badge--waiting{background:var(--kraken);color:var(--brass-bright)}.badge--win{background:var(--brass);color:var(--ink)}.badge--loss{background:#a832324d;color:var(--parchment-2)}.waiting-screen{text-align:center;padding:40px 20px;background:#00000059;border-radius:12px;border:1px solid var(--parchment-4)}.waiting-screen h2{color:var(--brass-bright)}.waiting-screen .log{max-width:600px;margin:16px auto;text-align:left}.waiting-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.poll-meta{margin-top:16px;color:var(--parchment-4);font-size:11px;font-family:monospace}.match-id{font-family:monospace;font-size:13px}.error{background:#a8323240;border:1px solid var(--blood);color:var(--parchment-1);padding:12px;border-radius:6px;margin:20px 0}.lobby-loading{padding:40px;text-align:center;color:var(--parchment-3)}.muted{color:var(--parchment-3);font-style:italic}.pattern-banner{position:fixed;top:30%;left:50%;transform:translate(-50%) scale(.85);padding:16px 32px;background:radial-gradient(ellipse at center,#f0c75af2,#78501ef2);border:2px solid var(--brass-bright);border-radius:8px;font-size:22px;font-weight:700;letter-spacing:2px;color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.4);box-shadow:0 8px 24px #0009;opacity:0;pointer-events:none;z-index:1000;transition:opacity .24s ease,transform .32s cubic-bezier(.2,.9,.3,1.4)}.pattern-banner--in{opacity:1;transform:translate(-50%) scale(1)}.pattern-banner--out{opacity:0;transform:translate(-50%,-20px) scale(.95);transition:opacity .38s ease,transform .38s ease}.pattern-banner--stack{top:calc(28% + (var(--banner-stack-i, 0) * 64px))}.coin-spark{position:fixed;width:8px;height:8px;border-radius:50%;pointer-events:none;z-index:999;animation:coin-pop .8s ease-out forwards;box-shadow:0 0 6px currentColor}@keyframes coin-pop{0%{transform:translate(0) scale(.5);opacity:1}60%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(1.2);opacity:0}}.hull-num{display:inline-block;min-width:1.6em;text-align:right;font-variant-numeric:tabular-nums;transition:color .12s ease}.flying-coin{position:fixed;font-size:22px;pointer-events:none;z-index:998;filter:drop-shadow(0 0 6px rgba(240,199,90,.8))}.floating-delta{position:fixed;pointer-events:none;z-index:997;font-weight:700;font-size:22px;letter-spacing:1px;text-shadow:0 2px 0 var(--ink),0 0 8px rgba(0,0,0,.6);font-family:Georgia,serif}.hull--pulse-danger{animation:hull-danger-pulse 1.4s ease-in-out infinite}.hull--pulse-glory{animation:hull-glory-pulse 1.6s ease-in-out infinite}@keyframes hull-danger-pulse{0%,to{box-shadow:0 0 #a8323200,inset 0 0 #a8323200}50%{box-shadow:0 0 12px 4px #a83232b3,inset 0 0 8px #a8323266}}@keyframes hull-glory-pulse{0%,to{box-shadow:0 0 #f0c75a00;inset 0 0 0 0 rgba(240,199,90,0)}50%{box-shadow:0 0 14px 5px #f0c75ad9}}.ante-burst{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1300;animation:ante-burst-fade .6s ease both}.ante-burst--out{animation:ante-burst-fade-out .6s ease forwards}.ante-burst-glow{position:absolute;width:600px;height:600px;background:radial-gradient(circle,#f0c75a99,#f0c75a00 65%);animation:ante-burst-pulse 1.8s ease-out}.ante-burst-text{position:relative;font-size:56px;font-weight:800;letter-spacing:8px;color:var(--brass-bright);text-shadow:0 2px 0 var(--ink),0 4px 0 var(--ink),0 6px 24px rgba(0,0,0,.8);animation:ante-burst-text 1.8s ease both;text-transform:uppercase}@keyframes ante-burst-fade{0%{opacity:0}to{opacity:1}}@keyframes ante-burst-fade-out{to{opacity:0}}@keyframes ante-burst-pulse{0%{transform:scale(.3);opacity:0}40%{transform:scale(1.1);opacity:1}to{transform:scale(1.6);opacity:0}}@keyframes ante-burst-text{0%{transform:scale(.5) translateY(20px);opacity:0;letter-spacing:0}35%{transform:scale(1.15) translateY(0);opacity:1;letter-spacing:12px}60%{transform:scale(1) translateY(0);opacity:1;letter-spacing:8px}to{transform:scale(1) translateY(-10px);opacity:0;letter-spacing:8px}}.end-ceremony{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1500;overflow:hidden}.ceremony-bg{position:absolute;inset:0;background:radial-gradient(ellipse at center,#0000004d,#000000f2);animation:ceremony-bg-fade .6s ease}@keyframes ceremony-bg-fade{0%{opacity:0}to{opacity:1}}.ceremony-title{position:relative;font-size:76px;font-weight:800;letter-spacing:10px;margin:12px 0 4px;font-family:Georgia,serif;animation:ceremony-title-in 1.2s cubic-bezier(.34,1.5,.64,1) both}.ceremony-title--dark{color:var(--parchment-1);text-shadow:0 0 20px rgba(168,50,50,.5),0 4px 0 var(--ink)}.end-ceremony--win .ceremony-title{color:var(--brass-bright);text-shadow:0 0 30px rgba(240,199,90,.9),0 2px 0 var(--ink),0 4px 0 var(--ink),0 6px 0 var(--ink),0 8px 24px rgba(0,0,0,.9)}@keyframes ceremony-title-in{0%{transform:scale(.4) rotate(-3deg);opacity:0;letter-spacing:0}60%{transform:scale(1.1) rotate(0);opacity:1;letter-spacing:14px}to{transform:scale(1) rotate(0);opacity:1;letter-spacing:10px}}.ceremony-sub{position:relative;font-size:28px;color:var(--parchment-1);margin:0 0 12px;animation:ceremony-fade 1.5s ease .6s both}.ceremony-reason{position:relative;font-size:16px;color:var(--parchment-3);font-style:italic;animation:ceremony-fade 1.5s ease .9s both}@keyframes ceremony-fade{0%{opacity:0}to{opacity:1}}.ceremony-rays{position:absolute;width:200vmax;height:200vmax;background:conic-gradient(from 0deg,transparent 0deg,rgba(240,199,90,.18) 14deg,transparent 28deg,transparent 30deg,rgba(240,199,90,.18) 44deg,transparent 58deg,transparent 60deg,rgba(240,199,90,.18) 74deg,transparent 88deg,transparent 90deg,rgba(240,199,90,.18) 104deg,transparent 118deg,transparent 120deg,rgba(240,199,90,.18) 134deg,transparent 148deg,transparent 150deg,rgba(240,199,90,.18) 164deg,transparent 178deg,transparent 180deg,rgba(240,199,90,.18) 194deg,transparent 208deg,transparent 210deg,rgba(240,199,90,.18) 224deg,transparent 238deg,transparent 240deg,rgba(240,199,90,.18) 254deg,transparent 268deg,transparent 270deg,rgba(240,199,90,.18) 284deg,transparent 298deg,transparent 300deg,rgba(240,199,90,.18) 314deg,transparent 328deg,transparent 330deg,rgba(240,199,90,.18) 344deg,transparent 358deg);animation:ray-rotate 30s linear infinite;opacity:0;animation-name:ray-rotate,ray-fade;animation-duration:30s,1.5s;animation-timing-function:linear,ease;animation-iteration-count:infinite,1;animation-fill-mode:none,forwards}@keyframes ray-rotate{to{transform:rotate(360deg)}}@keyframes ray-fade{to{opacity:1}}.ceremony-chest{position:relative;width:220px;height:160px;margin-bottom:12px;animation:chest-bounce 2s ease .4s both}@keyframes chest-bounce{0%{transform:translateY(50px) scale(.5);opacity:0}60%{transform:translateY(0) scale(1.1);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.ceremony-chest-body{position:absolute;bottom:0;left:0;right:0;height:110px;background:linear-gradient(180deg,#6b431f,#3a2412);border:4px solid #1a1208;border-radius:0 0 10px 10px;box-shadow:inset 0 -10px 20px #00000080,0 12px 24px #0009}.ceremony-chest-body:before,.ceremony-chest-body:after{content:"";position:absolute;background:var(--brass);border:2px solid var(--ink)}.ceremony-chest-body:before{left:16px;right:16px;top:36px;height:6px}.ceremony-chest-body:after{left:calc(50% - 14px);top:16px;width:28px;height:36px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--brass-bright) 0%,var(--brass) 100%)}.ceremony-chest-lid{position:absolute;bottom:105px;left:-6px;right:-6px;height:70px;background:radial-gradient(ellipse at top,#8b6432,#5a3a1a);border:4px solid #1a1208;border-radius:50% 50% 6px 6px/80px 80px 6px 6px;transform-origin:bottom center;animation:chest-open 1.5s ease 1.5s both;box-shadow:0 -4px 12px #0009}@keyframes chest-open{0%{transform:rotateX(0)}to{transform:rotateX(-110deg)}}.ceremony-chest-glow{position:absolute;bottom:30px;left:0;right:0;height:100px;background:radial-gradient(ellipse at center,rgba(240,199,90,.7) 0%,transparent 70%);animation:chest-glow 2s ease 1.6s both;pointer-events:none}@keyframes chest-glow{0%{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:scaleY(1)}}.ceremony-coins{position:absolute;inset:0;pointer-events:none}.rain-coin{position:absolute;top:-50px;animation:rain-fall linear infinite;filter:drop-shadow(0 0 6px rgba(240,199,90,.6))}@keyframes rain-fall{0%{transform:translateY(-100px) rotate(0)}to{transform:translateY(110vh) rotate(720deg)}}.end-ceremony--lose .ceremony-bg{background:radial-gradient(ellipse at center,#1c4e5466,#000000f2)}.sea-wave{position:absolute;bottom:0;left:0;right:0;height:35vh;background:linear-gradient(180deg,#1c4e5499,#14202df2 60%,#0a1018)}.sea-wave:before,.sea-wave:after{content:"";position:absolute;left:-50%;width:200%;height:30px;top:-15px;background:var(--kraken);border-radius:50% 50% 0 0/100% 100% 0 0;opacity:.6;animation:wave-bob 4s ease-in-out infinite}.sea-wave:after{top:0;left:-30%;height:20px;opacity:.4;animation-duration:5s;animation-direction:reverse}@keyframes wave-bob{0%,to{transform:translate(0)}50%{transform:translate(2%)}}.sinking-ship{position:relative;width:220px;height:200px;margin-bottom:24px;animation:ship-sink 4s cubic-bezier(.55,.1,.85,.9) .4s both}@keyframes ship-sink{0%{transform:translateY(-100px) rotate(2deg);opacity:0}20%{transform:translateY(0) rotate(-3deg);opacity:1}60%{transform:translateY(50px) rotate(8deg);opacity:1}to{transform:translateY(180px) rotate(20deg);opacity:.4}}.ship-hull{position:absolute;bottom:30px;left:30px;width:160px;height:70px;background:linear-gradient(180deg,#8b6432,#3a2412);border:3px solid #1a1208;border-radius:8px 8px 80px 80px/8px 8px 50px 50px;box-shadow:inset 0 -8px 12px #0009}.ship-mast{position:absolute;bottom:90px;left:105px;width:8px;height:100px;background:#3a2412;border-radius:2px}.ship-sail{position:absolute;bottom:100px;left:50px;width:70px;height:80px;background:linear-gradient(180deg,#f4e8d4,#d2b785);border:2px solid #5a3a1a;border-radius:4px;transform:skewY(-3deg);box-shadow:inset 0 0 12px #78552866}.ship-flag{position:absolute;bottom:175px;left:110px;font-size:24px;color:var(--ink);background:var(--parchment-1);width:36px;height:28px;display:flex;align-items:center;justify-content:center;border:2px solid #1a1208;border-radius:0 6px 6px 0}.bubbles{position:absolute;bottom:0;left:0;right:0;height:35vh;pointer-events:none}.bubble{position:absolute;bottom:0;width:10px;height:10px;background:#fff6;border:1px solid rgba(255,255,255,.6);border-radius:50%;animation:bubble-rise 3.5s ease-in infinite}@keyframes bubble-rise{0%{transform:translateY(0) scale(.5);opacity:0}10%{opacity:1}to{transform:translateY(-50vh) scale(1.5);opacity:0}}.route-fade-in{animation:route-fade .32s ease}@keyframes route-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}button.btn:active:not(:disabled){transform:scale(.97) translateY(0);transition:transform 60ms ease}#help-fab{position:fixed;bottom:18px;right:18px;width:44px;height:44px;border-radius:50%;font-size:20px;font-weight:700;font-family:inherit;background:linear-gradient(180deg,var(--brass-bright) 0%,var(--brass) 100%);color:var(--ink);border:2px solid var(--ink);box-shadow:0 4px 8px #0006;cursor:pointer;z-index:900;transition:transform 80ms ease}#help-fab:hover{transform:scale(1.08) rotate(-8deg)}.help-overlay{position:fixed;inset:0;background:#080e16d9;z-index:1500;display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto;overflow-x:hidden;animation:help-fade .2s ease}@keyframes help-fade{0%{opacity:0}to{opacity:1}}.help-panel{background:radial-gradient(ellipse at 30% 10%,rgba(255,255,255,.06),transparent 60%),linear-gradient(180deg,#1a2030,#0a1018);border:2px solid var(--brass);border-radius:12px;padding:24px 28px;max-width:720px;width:100%;margin:40px 0;position:relative;color:var(--parchment-1);box-shadow:0 12px 40px #000000b3;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}.help-panel h2{margin:0 0 18px;color:var(--brass-bright);font-size:26px}.help-panel h2 .muted{font-size:16px;font-weight:400}.help-panel h3{color:var(--brass-bright);font-size:15px;letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--parchment-4);padding-bottom:4px;margin-bottom:10px}.help-section{margin-bottom:20px}.help-section p{line-height:1.5;color:var(--parchment-2);margin:8px 0}.help-close{position:absolute;top:12px;right:14px;background:transparent;border:1px solid var(--parchment-4);color:var(--parchment-1);width:32px;height:32px;border-radius:50%;font-size:16px;cursor:pointer}.help-close:hover{background:#ffffff1a}.patterns-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.patterns-table th,.patterns-table td{padding:8px 10px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.08);overflow-wrap:break-word;word-break:break-word}.patterns-table th{color:var(--parchment-3);font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:600}.patterns-table tr:hover td{background:#ffffff0a}.patterns-table th:nth-child(1),.patterns-table td:nth-child(1){width:18%}.patterns-table th:nth-child(2),.patterns-table td:nth-child(2){width:22%}.patterns-table th:nth-child(3),.patterns-table td:nth-child(3){width:36%}.patterns-table th:nth-child(4),.patterns-table td:nth-child(4),.patterns-table th:nth-child(5),.patterns-table td:nth-child(5){width:12%}.glyph-cell{font-family:Georgia,serif;font-size:14px;background:linear-gradient(160deg,var(--parchment-1),var(--parchment-3));color:var(--ink);padding:4px 8px;border-radius:4px;display:inline-block;letter-spacing:1px;border:1px solid var(--parchment-4);white-space:nowrap}@media (max-width: 600px){.patterns-table,.patterns-table thead,.patterns-table tbody,.patterns-table tr,.patterns-table th,.patterns-table td{display:block;width:100%!important}.patterns-table thead{display:none}.patterns-table tr{background:#ffffff0a;border-radius:6px;margin-bottom:10px;padding:8px 12px}.patterns-table td{border:none;padding:4px 0}.patterns-table td:nth-child(1){color:var(--brass-bright);font-size:14px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:6px;margin-bottom:4px}.patterns-table td:nth-child(4):before{content:"Earn: ";color:var(--parchment-3);font-size:11px}.patterns-table td:nth-child(5):before{content:"Steal: ";color:var(--parchment-3);font-size:11px}.help-panel{padding:16px 14px;margin:12px 0}.help-panel h2{font-size:20px}}@media (max-width: 768px){.match-header{grid-template-columns:1fr}.turn-indicator{order:-1}.pcard{width:56px;height:78px}.pcard-rank,.pcard-suit{font-size:11px}.pcard-center{font-size:24px}.crew{width:120px}#app{padding:8px}}
