/* Shared ship/shore entrance. Self-contained: no fonts, images or calls from a CDN. */
:root{color-scheme:dark;--bg:#071421;--ink:#f3f6fa;--ink-2:#b9c8d7;--ink-3:#a1b1c4;--accent:#8ec5ff;--accent-2:#75e1ce;--line:#d2e6ff1c;--line-strong:#d2e6ff30;--glass:#142739b8;--input:#0c1b2b99;--bad:#ffb0b9;--button:#e9f3ff;--button-ink:#132e4f;--shadow:0 40px 100px -35px #0009,0 1px 0 #ffffff20 inset;--on-accent:#071421;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
:root[data-theme=light]{color-scheme:light;--bg:#eff4fa;--ink:#172c44;--ink-2:#51677e;--ink-3:#5a6f84;--accent:#006acb;--accent-2:#187e86;--line:#4b69821a;--line-strong:#4b698235;--glass:#ffffffb8;--input:#ffffffb3;--bad:#ac243a;--button:#1266cc;--button-ink:#fff;--shadow:0 35px 90px -35px #24456340,0 1px 0 #fff inset;--on-accent:#fff}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100svh;display:flex;flex-direction:column;isolation:isolate;overflow-x:hidden;-webkit-font-smoothing:antialiased;background:radial-gradient(ellipse at 12% 45%,#126bac12,transparent 65%)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:#5aafff40}
.ambient{position:fixed;z-index:-3;pointer-events:none;filter:blur(70px);border-radius:50%;opacity:.5}.ambient-one{width:55vw;height:55vw;top:-30vw;left:-2vw;background:radial-gradient(circle,#85c5ff6b,transparent 70%);animation:ambient 24s ease-in-out infinite alternate}.ambient-two{width:50vw;height:50vw;bottom:-30vw;right:-8vw;background:radial-gradient(circle,#91e5d488,transparent 70%)}.horizon{position:fixed;inset:56% -20% -50%;z-index:-2;pointer-events:none;border-radius:50%;border-top:1px solid var(--line);background:linear-gradient(180deg,#6baded08,transparent);transform:rotate(-12deg)}.horizon:after{content:"";position:absolute;inset:20px 0 0;border-radius:inherit;border-top:1px solid var(--line);opacity:.45}
.masthead{display:flex;align-items:center;justify-content:space-between;max-width:1360px;width:100%;margin:0 auto;padding:36px 64px}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);text-decoration:none;font-size:17px;font-weight:650;letter-spacing:-.45px}.brand small{display:block;color:var(--ink-3);letter-spacing:2.4px;font-size:8px;margin-top:5px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:linear-gradient(145deg,#fff,#dce7f2);color:#17375a;font-size:16px;font-weight:800;box-shadow:0 5px 18px #081e3420,0 0 0 1px #ffffff50 inset}.icon-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-strong);border-radius:50%;background:var(--glass);color:var(--ink-2);backdrop-filter:blur(14px)}.icon-button svg{width:18px;height:18px}
.signin{width:min(1120px,calc(100% - 128px));margin:auto;display:grid;grid-template-columns:1.15fr 1fr;gap:110px;align-items:center;padding:30px 0 66px}.welcome{min-width:0;animation:arrive .7s ease-out both}.eyebrow{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:2px;font-weight:650;color:var(--ink-3)}.eyebrow span{width:5px;height:5px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #70c0ff50}h1{font-size:clamp(44px,4.7vw,68px);line-height:1.065;letter-spacing:-3.2px;font-weight:620;margin:30px 0 24px}h1 em{font-style:normal;background:linear-gradient(110deg,var(--accent),var(--accent-2));background-clip:text;-webkit-background-clip:text;color:transparent}.welcome>p{font-size:17px;line-height:1.7;color:var(--ink-2);font-weight:400;letter-spacing:-.2px}.sea-art{width:116%;margin:2px 0 8px -10%;color:var(--accent);transform:perspective(800px) rotateX(3deg)}.sea-art svg{width:100%;display:block;filter:drop-shadow(0 8px 15px #347bc620)}.orbit{stroke:var(--accent);opacity:.16;stroke-width:1}.orbit-one{stroke-dasharray:3 9;animation:orbit-flow 35s linear infinite}.ship-body{stroke:var(--accent);fill:color-mix(in srgb,var(--accent) 9%,transparent);stroke-width:1.8}.ship-deck{stroke:var(--ink-2)}.ship-windows{stroke:var(--accent);stroke-width:3}.signal{stroke:var(--accent-2);animation:signal 5s ease-in-out infinite}.sea-line{stroke:var(--accent);opacity:.25}.beacon{fill:var(--accent);stroke:none;animation:signal 5s ease-in-out infinite}.beacon-two{fill:var(--accent-2);animation-delay:2s}.welcome-foot{display:flex;align-items:center;gap:9px;color:var(--ink-3);font-size:11px;line-height:1.6}.welcome-foot svg{width:17px;height:17px;flex:none;color:var(--accent-2)}
.login-card{border:1px solid var(--line-strong);border-radius:30px;background:var(--glass);padding:38px 40px 28px;box-shadow:var(--shadow);backdrop-filter:blur(30px) saturate(120%);position:relative;animation:arrive .8s .08s ease-out both}.login-card:before{content:"";height:1px;position:absolute;top:-1px;left:32px;right:32px;background:linear-gradient(90deg,transparent,#ffffffa0,transparent)}.card-kicker{font-size:9px;letter-spacing:2px;font-weight:650;color:var(--ink-3);margin:2px 0 24px}.card-symbol{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:15px;background:linear-gradient(150deg,#ffffff18,#ffffff03);color:var(--accent);margin-bottom:20px;box-shadow:0 3px 8px #00000004}.card-symbol svg{width:23px;height:23px}h2{font-size:30px;font-weight:620;letter-spacing:-1.2px;margin:0 0 9px}.card-subtitle{font-size:13px;color:var(--ink-2);margin:0 0 29px;line-height:1.6}label{font-size:12px;font-weight:550;display:block;margin-bottom:9px;color:var(--ink-2)}input{width:100%;height:50px;border:1px solid var(--line-strong);border-radius:12px;background:var(--input);color:var(--ink);padding:0 15px;transition:border-color .15s,box-shadow .15s;margin-bottom:21px;outline:none;font-size:14px}input::placeholder{color:var(--ink-3);opacity:.85}input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}.label-row{display:flex;align-items:baseline;justify-content:space-between}.label-row button{background:none;border:0;padding:3px 0 6px 12px;color:var(--accent);font-size:11px;font-weight:600;min-height:30px}#otp{font-size:18px;letter-spacing:7px;margin-bottom:9px;font-variant-numeric:tabular-nums}#otp::placeholder{letter-spacing:5px}.field-help{font-size:11px;color:var(--ink-3);line-height:1.6;margin:0 0 23px}.primary{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:50px;border:0;border-radius:12px;color:var(--button-ink);background:var(--button);font-weight:650;font-size:13px;transition:filter .2s,transform .2s,box-shadow .2s;box-shadow:0 5px 15px #0a3e7515}.primary:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 9px 24px #0a3e7528}.primary:active{transform:translateY(0)}.primary svg{width:18px;height:18px}.primary:disabled{opacity:.75;transform:none}.primary[aria-busy=true] svg{display:none}.spinner{display:none;width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.primary[aria-busy=true] .spinner{display:block}#notice{padding:12px 14px;border:1px solid color-mix(in srgb,var(--bad) 30%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bad) 8%,transparent);color:var(--bad);font-size:12px;line-height:1.6;margin-bottom:18px}.card-footer{border-top:1px solid var(--line);padding-top:21px;margin-top:27px;color:var(--ink-3);display:flex;justify-content:center;gap:8px;align-items:center;font-size:10px;line-height:1.6}.status-dot{width:5px;height:5px;flex:none;border-radius:50%;background:var(--accent-2)}.page-footer{display:flex;justify-content:space-between;max-width:1360px;width:100%;margin:0 auto;padding:24px 64px 30px;color:var(--ink-3);font-size:10px;letter-spacing:.1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes orbit-flow{to{stroke-dashoffset:-240}}@keyframes signal{0%,100%{opacity:.4}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes ambient{to{transform:translate(12vw,3vw)}}
@media(max-width:1100px){.signin{gap:65px;width:calc(100% - 96px)}.masthead,.page-footer{padding-left:48px;padding-right:48px}.login-card{padding:32px}h1{font-size:51px;letter-spacing:-2.5px}}
@media(max-width:820px){.signin{gap:35px;width:calc(100% - 64px);grid-template-columns:1fr 1fr}.login-card{padding:28px 24px}h1{font-size:43px}.welcome>p{font-size:15px}.eyebrow{letter-spacing:1px;font-size:8px}.masthead,.page-footer{padding-left:32px;padding-right:32px}}
@media(max-width:680px){.masthead{padding:24px}.signin{display:block;width:min(430px,calc(100% - 40px));padding:16px 0 35px}.welcome{display:none}.login-card{padding:30px 26px;border-radius:26px}.card-kicker{margin-bottom:22px}.page-footer{gap:15px;padding:20px 24px;font-size:9px}.brand{font-size:16px}input{font-size:16px}.ambient-one{width:110vw;height:110vw;top:-45vw}.horizon{inset:45% -80% -40%;transform:rotate(-30deg)}h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(prefers-reduced-transparency:reduce){.login-card,.icon-button{backdrop-filter:none;background:var(--bg)}input{background:var(--bg)}.ambient{display:none}}
@media(forced-colors:active){h1 em{background:none;color:CanvasText}.primary{border:1px solid ButtonText}.login-card{border:1px solid CanvasText}}

@media(min-width:681px) and (max-height:820px){.masthead{padding-top:22px;padding-bottom:18px}.signin{padding:8px 0 22px}.login-card{padding-top:28px;padding-bottom:23px}.card-symbol{position:absolute;right:30px;top:22px;width:38px;height:38px;margin:0}.card-kicker{margin-bottom:26px}.card-subtitle{margin-bottom:22px}input{height:46px;margin-bottom:17px}.primary{height:46px}.card-footer{margin-top:22px;padding-top:17px}.page-footer{padding-top:15px;padding-bottom:18px}.sea-art{max-width:490px}.field-help{margin-bottom:19px}}
