@font-face{font-family:DeckSans;src:url('assets/body.ttf')}@font-face{font-family:DeckMono;src:url('assets/mono.ttf')}@font-face{font-family:DeckDisplay;src:url('assets/display.ttf')}
:root{color-scheme:dark;--bg:#050c16;--panel:#0c1723;--line:#24303b;--gold:#edcd91;--cream:#f4ede0;--muted:#8a97a6;--mono:DeckMono,monospace;--sans:DeckSans,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--sans);font-size:14px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;transition:background .2s,color .2s,transform .2s}button:disabled{cursor:default;opacity:.25}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}a{color:inherit;text-decoration:none}button:hover:not(:disabled){filter:brightness(1.14)}.site-header{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;border-bottom:1px solid var(--line);gap:20px;background:#050c16}.wordmark{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:20px;font-weight:800;letter-spacing:-1.2px;white-space:nowrap}.wordmark i{color:#87929b;font-size:.55em;font-style:normal;vertical-align:middle}.brand-period{color:var(--gold)}.brand-icon{color:var(--gold);font-size:29px;line-height:1}.site-header nav{display:flex;gap:29px;align-items:center}.nav-link{background:transparent;color:var(--muted);padding:13px 0;font-size:12px}.nav-link.active{color:var(--cream)}.nav-link span{margin-left:5px;color:var(--gold)}.gold-button{background:var(--gold);color:#171812;padding:14px 19px;border:1px solid #f4dbaa;display:flex;justify-content:space-between;align-items:center;gap:29px;font-weight:700;border-radius:3px;font-size:12px}.gold-button span{font-size:18px}.intro{text-align:center;padding:40px 20px 0;position:relative;z-index:2}.eyebrow,.tiny-label,.sample-label,.demo-badge,.intro-meta,.scene-corner,.boat-coordinate,.weather small,.passenger-info small,.boat-counter,.summary-number,.fleet-summary>div>span:last-child,footer{font-family:var(--mono)}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:500;color:var(--gold)}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin:0 7px 2px 0;box-shadow:0 0 9px #ecc77a88;animation:beacon 3s infinite}h1{font-family:DeckDisplay,var(--sans);font-size:clamp(40px,5.3vw,76px);font-weight:600;line-height:1.1;letter-spacing:-3px;margin:17px 0 12px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--gold)}.intro>p{color:#a4afbb;font-size:13px;margin:0}.intro-meta{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:22px;font-size:8px;letter-spacing:1px;color:#6f7e8e}.demo-badge{border:1px solid #344235;background:#16231c;color:#9bb98c;font-size:7px;padding:4px 6px;letter-spacing:.7px}.mobile-break{display:none}.voyage{max-width:1380px;margin:0 auto;position:relative}.scene-topbar{position:absolute;top:36px;left:5%;right:5%;display:flex;justify-content:space-between;pointer-events:none;z-index:3}.tiny-label{font-size:8px;letter-spacing:1.4px;color:var(--muted)}.boat-id h2{font-family:Georgia,serif;font-size:23px;letter-spacing:-.5px;font-weight:400;margin:8px 0;color:#ded5c2}.boat-coordinate{font-size:8px;color:#66798d}.weather{display:flex;gap:10px;align-items:flex-start;color:#c1c8d0;font-size:11px;padding-top:7px}.weather>span{font-size:24px;color:var(--gold);line-height:1}.weather small{display:block;font-size:7px;color:#6c7e92;letter-spacing:.7px;margin-top:6px}.ocean-scene{position:relative;isolation:isolate;margin-top:6px;overflow:hidden;aspect-ratio:1.5}.ship-rock{position:absolute;inset:0;transform-origin:50% 85%;animation:sway 8s ease-in-out infinite}.ship-art{width:100%;height:100%;display:block;object-fit:contain}.ocean-scene:before{content:'';pointer-events:none;position:absolute;inset:0;z-index:2;background:linear-gradient(var(--bg),transparent 11%,transparent 85%,var(--bg)),linear-gradient(90deg,var(--bg),transparent 10%,transparent 90%,var(--bg))}.crew-layer{position:absolute;inset:0}.crew-member{position:absolute;width:5.15%;aspect-ratio:48/56;transform:translateX(-50%);padding:0;background:none;z-index:2;filter:drop-shadow(0 3px 2px #000a);transition:filter .2s,scale .2s;animation:pirate-idle 3s ease-in-out infinite;animation-delay:var(--delay)}.crew-member canvas{width:100%;height:100%;display:block;image-rendering:pixelated;pointer-events:none}.crew-member:hover,.crew-member:focus-visible{z-index:5;scale:1.22;filter:drop-shadow(0 0 7px #efc58188)}.crew-member.selected{filter:drop-shadow(0 0 8px #f7da9f);z-index:4}.crew-member.is-own:after{content:'YOU';font-family:var(--mono);font-size:7px;position:absolute;left:20%;right:20%;bottom:-4px;background:var(--gold);color:#15202b;padding:2px}.empty-spot{position:absolute;background:#e5cb8a12;border:1px dashed #e5cb8a44;color:#e5cb8a88;border-radius:50%;width:2%;aspect-ratio:1;font-size:10px;padding:0;transform:translateX(-50%);z-index:1}.crew-tooltip{position:absolute;z-index:8;pointer-events:none;background:#0b1626f5;border:1px solid #b99a60;padding:9px 12px;box-shadow:0 5px 15px #0007;border-radius:3px;font-size:11px;transform:translate(-50%,-110%);white-space:nowrap}.crew-tooltip span{font-family:var(--mono);font-size:9px;color:var(--gold);display:block;margin-top:4px}#sea-particles{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.sea-glow{position:absolute;inset:87% 0 0;background:linear-gradient(transparent,#103c4c22,transparent);z-index:2;animation:sea 5s infinite;pointer-events:none}.scene-corner{position:absolute;bottom:21px;left:5%;z-index:4;font-size:7px;letter-spacing:1.2px;color:#718293;display:flex;align-items:center;gap:10px}.scene-corner>span:last-child{color:var(--gold)}.wind-icon{font-size:20px}.scene-tools{position:absolute;bottom:16px;right:5%;display:flex;gap:6px;z-index:4}.scene-tools button{position:relative;width:30px;height:30px;border:1px solid #354353;background:#091522b3;border-radius:3px;color:#a5b4c3;font-size:13px}.sound-strike{position:absolute;left:7px;top:6px;color:#c8996a}.scene-tools button[aria-pressed=true]{background:#edcd9122;color:var(--gold)}body.paused .ship-rock,body.paused .crew-member,body.paused .sea-glow,body.paused .status-dot{animation-play-state:paused}.fleet-controls{margin:0 5%;padding:18px 0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:20px}.boat-pagination{display:flex;align-items:center;gap:20px}.arrow-button{border:1px solid #35414c;background:#101a24;width:34px;height:34px;border-radius:50%;font-size:15px}.boat-pagination .tiny-label{font-size:7px}.boat-counter{display:block;font-size:10px;margin-top:6px;letter-spacing:2px}.boat-counter b{color:var(--gold);font-weight:400}.boat-counter i{font-style:normal;color:#495767;margin:0 10px}.passenger-info{display:flex;align-items:center;gap:20px}.passenger-info>div:first-child>span{font-family:var(--mono);font-size:12px;color:var(--gold)}.passenger-info small{display:block;font-size:6px;letter-spacing:.7px;color:#788696;margin-top:5px}.capacity-bar{display:grid;grid-template-columns:repeat(20,3px);grid-template-rows:repeat(3,4px);gap:2px}.capacity-bar i{background:#78653f}.capacity-bar i.empty{background:#202a34}.text-button{background:transparent;font-size:10px;color:var(--gold)}.text-button span{margin-left:14px}.below-deck{max-width:1242px;padding:31px 0 38px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:50px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:10px}.section-heading .eyebrow{font-size:8px}.sample-label{font-size:6px;letter-spacing:.5px;color:#667887}.log-entry{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #1c2733}.log-avatar{width:32px;height:35px;image-rendering:pixelated;background:#152333;border:1px solid #283645;border-radius:3px}.log-entry>div{flex:1}.log-entry strong{font-size:10px;font-weight:500;display:block}.log-entry small{font-size:9px;color:#798896;display:block;margin-top:4px}.log-entry>b{font-family:var(--mono);font-size:10px;font-weight:400;color:var(--gold)}.log-entry>span{font-family:var(--mono);font-size:7px;color:#617181}.boarding-card{position:relative;display:flex;align-items:flex-start;padding:23px;background:radial-gradient(ellipse at top right,#50422a33,transparent 70%),#0b1420;border:1px solid #3c3b31;border-radius:4px;gap:16px;flex-wrap:wrap}.boarding-icon{font-size:31px;color:var(--gold);padding-top:3px}.boarding-card h3{font-family:Georgia,serif;font-weight:400;font-size:27px;line-height:1.15;margin:10px 0}.boarding-card p{font-size:10px;color:#8d9ba9;margin:0}.boarding-card .gold-button{margin:0 0 0 auto;align-self:flex-end;padding:11px 15px;min-width:170px}.fleet-summary{max-width:1242px;margin:0 auto;padding:31px 0 39px;display:flex;align-items:center;justify-content:center;gap:65px;border-top:1px solid var(--line)}.fleet-summary>div{display:flex;flex-direction:column;gap:8px}.summary-number{font-size:27px;font-weight:300;letter-spacing:-2px}.fleet-summary>div>span:last-child{font-size:7px;letter-spacing:1px;color:#81909d}.summary-cross{color:#5d523c;font-size:21px}.fleet-summary p{font-family:Georgia,serif;font-size:20px;line-height:1.3;margin:0}.fleet-summary em{color:var(--gold)}footer{max-width:1242px;margin:0 auto;padding:22px 0 30px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:8px;color:#728291}.wordmark.small{font-size:12px;color:#c7c7be;gap:6px}footer button{font-size:8px;background:none;color:#7e8d99}footer p{margin:0}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:13px 20px;border:1px solid #a98c52;background:#162331;box-shadow:0 8px 24px #0009;color:var(--gold);font-size:12px;z-index:30;border-radius:4px;max-width:90%;text-align:center}
dialog{border:1px solid #46505b;border-radius:7px;color:var(--cream);background:#0c1724;width:650px;max-width:calc(100% - 28px);padding:32px;max-height:90svh;overflow:auto;box-shadow:0 30px 140px #000c}dialog::backdrop{background:#010711c9;backdrop-filter:blur(8px)}.close-dialog{position:absolute;right:15px;top:12px;background:transparent;color:#8d9aa6;font-size:26px;z-index:3}.modal-title{font-family:Georgia,serif;font-weight:400;font-size:34px;margin:12px 0 10px}.modal-intro{font-size:12px;line-height:1.65;color:#9eacb9;margin:0 0 23px}.boarding-form{display:grid;grid-template-columns:170px 1fr;gap:25px}.avatar-preview{background:radial-gradient(ellipse at 50% 75%,#d2a75b33,transparent 60%),#07111c;border:1px solid #354351;border-radius:4px;text-align:center;align-self:start;padding:15px 8px}.avatar-preview canvas{width:125px;height:146px;image-rendering:pixelated;display:block;margin:auto}.avatar-preview b{display:block;font-family:var(--mono);font-size:10px;color:var(--gold);margin:5px 0}.avatar-preview small{font-size:8px;color:#7c8d9c}.reroll{margin-top:12px;background:#172434;border:1px solid #314152;border-radius:3px;padding:7px 10px;color:#bac4ca;font-size:10px}.form-label{display:block;font-family:var(--mono);font-size:8px;letter-spacing:1px;color:#a7b4bf;margin-bottom:8px}.field{margin-bottom:17px}.field input{width:100%;padding:12px;background:#08121e;border:1px solid #354553;border-radius:3px;color:var(--cream);font-size:13px}.field small,.privacy-note{font-size:9px;color:#8493a3;line-height:1.5;display:block;margin-top:7px}.color-options{display:flex;gap:8px}.color-option{width:25px;height:25px;border:3px solid #0c1724;border-radius:50%;outline:1px solid transparent}.color-option[aria-pressed=true]{outline-color:var(--gold)}.hat-options{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.hat-options button,.amount-presets button,.roster-filter button{background:#152333;border:1px solid #344353;padding:7px 9px;border-radius:3px;font-size:9px;color:#9cabba}.hat-options button[aria-pressed=true],.amount-presets button.active,.roster-filter button.active{border-color:var(--gold);color:var(--gold);background:#e8c88911}.amount-field{display:flex;align-items:center;border:1px solid #354553;border-radius:3px;background:#08121e}.amount-field>span{padding-left:13px;color:var(--gold);font-family:var(--mono)}.amount-field input{border:0;background:none;font-family:var(--mono);font-size:21px;padding:10px}.amount-field>small{padding-right:12px;font-family:var(--mono);font-size:8px}.amount-presets{display:flex;gap:6px;margin-top:8px}.amount-presets button{flex:1}.purchase-summary{display:flex;justify-content:space-between;font-size:10px;color:#abb8c3;margin:17px 0;padding:12px 0;border-top:1px solid #2b3947;border-bottom:1px solid #2b3947}.purchase-summary b{color:var(--gold);font-weight:400}.form-submit{width:100%}.form-error{font-size:11px;color:#efac9c;margin:10px 0;line-height:1.4}.local-notice{font-family:var(--mono);font-size:8px;color:#8e9caa;line-height:1.7;margin-top:14px;padding:10px;background:#07121e;border:1px dashed #34434f}.join-check{font-size:10px;line-height:1.6;color:#a7b3c0;display:flex;gap:8px;margin:14px 0}.join-check input{accent-color:var(--gold);margin:4px 0 0}.success-content{text-align:center}.success-content canvas{width:140px;height:164px;image-rendering:pixelated}.success-content .gold-button{margin:22px auto 0;min-width:190px}.member-profile{text-align:center}.member-profile canvas{width:150px;height:175px;image-rendering:pixelated;filter:drop-shadow(0 10px 22px #e6ba6440)}.member-tags{display:flex;justify-content:center;gap:7px}.member-tags span{font-family:var(--mono);font-size:8px;padding:5px 7px;border:1px solid #3c4b59;color:#aab5bf}.member-stats{display:flex;justify-content:center;gap:45px;border-top:1px solid #2b3947;border-bottom:1px solid #2b3947;padding:20px 0;margin:22px 0}.member-stats strong{display:block;font-family:var(--mono);font-size:20px;color:var(--gold);font-weight:400}.member-stats small{font-size:8px;color:#8596a6;display:block;margin-top:7px}.member-profile .gold-button{margin:auto;min-width:180px}.roster-search{width:100%;padding:12px;border:1px solid #354553;background:#07121e;color:var(--cream);border-radius:3px}.roster-filter{display:flex;gap:8px;margin:12px 0 16px}.roster-list{max-height:430px;overflow:auto}.roster-row{display:flex;align-items:center;width:100%;background:none;padding:9px 5px;border-bottom:1px solid #263441;text-align:left;gap:12px}.roster-row canvas{width:36px;height:42px;image-rendering:pixelated}.roster-row>span{flex:1;font-size:12px}.roster-row small{font-size:9px;color:#7e91a3;display:block;margin-top:5px}.roster-row>b{font-family:var(--mono);font-size:10px;color:var(--gold);font-weight:400}.empty-results{text-align:center;color:#a2b1be;font-size:12px;padding:30px}.how-step{display:flex;gap:18px;padding:17px 0;border-top:1px solid #2b3947}.how-step>span{font-family:var(--mono);color:var(--gold);font-size:12px;padding-top:2px}.how-step h3{font-size:14px;margin:0 0 7px}.how-step p{font-size:12px;color:#9cadbc;line-height:1.65;margin:0}.how-cta{width:100%;margin-top:20px}
@keyframes sway{0%,100%{transform:translateY(0) rotate(-.18deg)}50%{transform:translateY(3px) rotate(.18deg)}}@keyframes pirate-idle{0%,100%{translate:0 0}50%{translate:0 -1.5px}}@keyframes beacon{50%{opacity:.4}}@keyframes sea{50%{opacity:.3}}
@media(min-width:1450px){.voyage{max-width:1250px}.intro{padding-top:44px}.ocean-scene{margin-top:-8px}}@media(max-width:1380px){.below-deck,.fleet-summary,footer{margin-left:5%;margin-right:5%}.below-deck{gap:35px}.ocean-scene{margin-top:0}.scene-topbar{top:22px}}@media(max-width:1000px){.site-header{height:72px}.site-header nav{gap:20px}.wordmark{font-size:17px}.brand-icon{font-size:25px}.header-join{padding:10px 13px;gap:18px;font-size:10px}.intro{padding-top:32px}h1{font-size:51px}.scene-topbar{top:24px}.boat-id h2{font-size:20px}.boat-coordinate{font-size:7px}.weather small{font-size:6px}.boarding-card{padding:20px}.below-deck{gap:26px}.fleet-summary{gap:45px}.crew-member{width:5.3%}}@media(max-width:700px){.site-header{padding:0 5%;height:67px}.site-header nav{display:none}.wordmark{font-size:15px}.brand-icon{font-size:22px}.header-join{font-size:9px;padding:9px 11px;gap:11px}.intro{padding:29px 20px 0}.intro .eyebrow{font-size:7px;letter-spacing:1.1px}h1{font-size:43px;letter-spacing:-2px;line-height:1.08;margin:16px 0 13px}.mobile-break{display:block}.intro>p{font-size:10px}.intro-meta{font-size:6px;gap:8px;letter-spacing:.4px;margin-top:18px}.demo-badge{font-size:6px}.voyage{margin-top:16px}.scene-topbar{position:relative;top:auto;left:auto;right:auto;padding:0 5%;margin-bottom:8px}.tiny-label{font-size:7px}.boat-id h2{font-size:18px;margin:5px 0}.boat-coordinate{display:none}.weather{font-size:9px;gap:7px}.weather small{font-size:5px}.weather>span{font-size:20px}.ocean-scene{aspect-ratio:1.28;overflow-x:auto;scrollbar-width:none}.ship-rock{inset:auto;width:620px;height:413.33px;left:50%;top:50%;margin-left:-310px;margin-top:-206.66px;animation:sway 8s ease-in-out infinite}.ocean-scene:before{background:linear-gradient(var(--bg),transparent 10%,transparent 87%,var(--bg));z-index:3;pointer-events:none}.crew-member{width:5.2%}.scene-corner{font-size:5px;bottom:10px;gap:6px}.scene-tools{bottom:8px}.scene-tools button{width:25px;height:25px;font-size:10px}.sound-strike{top:5px;left:6px}.fleet-controls{gap:10px;padding:15px 0}.boat-pagination{gap:12px}.arrow-button{width:29px;height:29px}.boat-pagination .tiny-label{font-size:5px;letter-spacing:.8px}.boat-counter{font-size:8px;letter-spacing:1px}.boat-counter i{margin:0 7px}.passenger-info{gap:8px}.passenger-info>div:first-child>span{font-size:9px}.passenger-info small{font-size:5px}.capacity-bar{grid-template-columns:repeat(20,2px);grid-template-rows:repeat(3,3px);gap:1px}.fleet-controls>.text-button{display:none}.below-deck{grid-template-columns:1fr;gap:24px;padding-top:26px}.boarding-card{gap:17px;padding:22px}.boarding-card h3{font-size:26px}.boarding-card .gold-button{min-width:150px}.fleet-summary{gap:22px;justify-content:space-between;padding:23px 0}.summary-number{font-size:23px}.fleet-summary>div>span:last-child{font-size:5px;letter-spacing:.3px}.summary-cross{font-size:11px}.fleet-summary p{font-size:15px}footer{font-size:6px;flex-wrap:wrap;gap:15px;padding:20px 0}.wordmark.small{font-size:10px}footer button{font-size:6px}footer p{order:3;width:100%}dialog{padding:26px 20px}.modal-title{font-size:30px}.boarding-form{grid-template-columns:1fr;gap:18px}.avatar-preview{display:grid;grid-template-columns:95px 1fr;align-items:center;text-align:left;padding:10px 15px}.avatar-preview canvas{width:82px;height:96px;grid-row:span 3}.avatar-preview b{font-size:10px;margin:0}.avatar-preview small{font-size:8px}.reroll{margin:0;justify-self:start}.modal-intro{font-size:11px;margin-bottom:17px}.form-label{font-size:8px}.field{margin-bottom:15px}.crew-tooltip{font-size:9px}.crew-tooltip span{font-size:8px}.ocean-scene .ship-art{max-width:none}.sample-label{font-size:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

@media(max-width:700px){.ocean-scene{height:414px;aspect-ratio:auto;overflow-y:hidden}.ship-rock{left:0;top:0;margin:0}.scene-corner{position:sticky;left:20px;top:383px;width:160px}.scene-tools{position:sticky;left:calc(100% - 107px);top:381px;width:87px;margin-top:-25px}.ocean-scene:before{position:sticky;display:block;top:0;height:0}.ocean-scene #sea-particles{position:sticky;display:block;top:0;left:0;pointer-events:none}}
h1{font-family:var(--sans);font-weight:500;letter-spacing:-2.5px}.weather{background:#05101b8c;padding:9px 12px;border-radius:3px;backdrop-filter:blur(8px)}
@media(max-width:700px){.ocean-scene #sea-particles{position:absolute;inset:0}.scene-corner,.scene-tools{position:absolute;top:auto;margin:0}.scene-corner{left:20px;bottom:12px}.scene-tools{left:auto;right:20px;bottom:10px}.ocean-scene:before{position:absolute;height:auto;display:block;inset:0}h1{font-size:41px;letter-spacing:-1.8px}.weather{padding:5px 7px}}

.swipe-hint{display:none}@media(max-width:700px){.swipe-hint{display:block;font:5px var(--mono);letter-spacing:.8px;color:#8a98a7;margin-top:9px}.scene-tools{width:118px;right:20px}}

@media(max-width:700px){.scene-tools{right:calc(20px - var(--scene-pan,0px))}.scene-corner{left:calc(20px + var(--scene-pan,0px))}.ocean-scene #sea-particles{left:var(--scene-pan,0px)}}

.footer-links{display:flex;align-items:center;gap:16px}.footer-links a{color:#9cabb8}.join-check{flex-wrap:wrap;column-gap:5px}.join-check a{text-decoration:underline;color:var(--gold)}.form-submit:disabled{opacity:.6;cursor:wait}

.connection-status{max-width:1280px;margin:0 auto 16px;padding:0 4%;display:flex;gap:18px;align-items:center;font:10px var(--mono);color:#91b9ad}.connection-status.is-error{color:#edb992}.connection-status button{color:var(--gold);text-decoration:underline;background:transparent;border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}
