/* Scoped to Sign Up. Shared header, footer, logo and theme remain authoritative. */
.signup-layout{--signup-accent:var(--brand,#3155D9);--wm-dot:#7397cc;--signup-light:#3155D9;width:min(1440px,100%);margin:0 auto;padding:clamp(24px,4vh,60px) clamp(20px,4vw,64px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:clamp(28px,5vw,84px);align-items:center;box-sizing:border-box}
:root[data-theme='dark'] .signup-layout{--wm-dot:#355a89;--signup-light:#89b2ff}
.signup-layout *{box-sizing:border-box}
.signup-story{min-width:0;display:flex;flex-direction:column;align-self:center}
.signup-eyebrow{color:var(--app-muted);font-size:.65rem;font-weight:600;letter-spacing:.16em}
.signup-story h1{font-size:clamp(38px,4.2vw,68px);line-height:1.06;letter-spacing:-.05em;margin:20px 0 18px;font-weight:800}
.signup-story h1 span{color:var(--signup-accent)}
:root[data-theme='dark'] .signup-story h1 span{color:#7197ff}
.signup-story-copy>p{font-size:clamp(14px,1.3vw,18px);color:var(--app-muted);margin:0 0 28px}
.signup-visual{width:100%;padding-top:14px;position:relative;isolation:isolate}
.signup-visual:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 58% 42%,color-mix(in srgb,var(--signup-accent) 9%,transparent),transparent 68%)}
.signup-world{position:relative;width:100%;margin:0 auto}
.signup-world .wm-map-svg{display:block;width:100%;height:auto;overflow:visible}
.signup-world .wm-network path{fill:none;stroke:var(--signup-light);stroke-width:1;opacity:.3}
.signup-world .wm-network circle{fill:var(--signup-light);stroke:var(--panel);stroke-width:1}
.signup-world .wm-travellers path{fill:none;stroke:var(--signup-light);stroke-width:2.3;stroke-linecap:round;stroke-dasharray:5 95;filter:drop-shadow(0 0 2px var(--signup-light));animation:signup-stream var(--wm-duration,8s) linear var(--wm-delay,0s) infinite}
.signup-locations{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.signup-locations text{font:500 14px Inter,Arial,sans-serif;fill:var(--app-ink);paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}
.signup-city-core{fill:var(--signup-light)}
.signup-city-halo{fill:var(--signup-accent);opacity:.18;transform-box:fill-box;transform-origin:center;animation:signup-beacon 4s ease-in-out infinite}
.signup-cubes{display:block;width:min(480px,78%);height:auto;margin:8px auto 0;color:var(--signup-light);overflow:visible}
.signup-cubes path{stroke:currentColor;stroke-width:1.1;fill:none;stroke-linejoin:round}
.signup-cubes .signup-floor{stroke-width:.6;opacity:.18}
.signup-cubes .signup-chain{opacity:.4}
.signup-cubes .signup-cube-face{fill:url(#signupCubeFill)}
.signup-cube{animation:signup-float 8s ease-in-out var(--cube-delay,0s) infinite}
.signup-cubes .signup-chain-light,.signup-cubes .signup-edge{stroke-width:2;stroke-dasharray:12 88;filter:drop-shadow(0 0 3px currentColor);animation:signup-stream 5s linear infinite}
.signup-cubes .signup-chain-light--second{animation-delay:-2.5s}
.signup-cubes .signup-edge{stroke-width:1.8;stroke-dasharray:18 82;animation-duration:7s;animation-delay:var(--cube-delay,0s)}
.signup-story-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;margin-top:14px;color:var(--app-muted);font-size:.73rem}
.signup-story-bottom button{font:inherit;color:inherit;background:transparent;border:1px solid var(--border);border-radius:4px;padding:5px 10px;cursor:pointer}
.signup-panel{min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:clamp(22px,2.5vw,40px)}
.signup-panel h2{font-size:clamp(24px,2.3vw,34px);font-weight:700;line-height:1.18;letter-spacing:-.035em;margin:0 0 10px}
.signup-subtitle{font-size:.85rem;color:var(--app-muted);line-height:1.6;margin:0 0 23px}
.signup-social{display:grid;gap:9px}
.signup-social button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:var(--panel-subtle);color:var(--app-muted);font:500 .8rem Inter,Arial,sans-serif;cursor:not-allowed}
.signup-social svg{width:20px;height:20px;flex-shrink:0;opacity:.8}
.signup-social button span{font-size:.62rem;font-weight:400;margin-left:auto}
.signup-methods-note{margin:9px 0 0;color:var(--app-muted);font-size:.66rem;line-height:1.5}
.signup-divider{display:flex;align-items:center;gap:12px;color:var(--app-muted);font-size:.72rem;margin:18px 0 10px}
.signup-divider:before,.signup-divider:after{content:'';height:1px;background:var(--border);flex:1}
.signup-methods{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border);margin:0 0 18px;text-align:center;font-size:.83rem}
.signup-methods>span{padding:8px 6px;color:var(--app-muted)}
.signup-methods .is-active{border-bottom:2px solid var(--signup-accent);color:var(--app-ink);font-weight:600}
.signup-methods small{display:inline-block;font-size:.6rem;margin-left:4px}
.signup-field{margin-bottom:14px;min-width:0}
.signup-field>label{display:block;font-size:.75rem;margin:0 0 6px;color:var(--app-ink)}
.signup-field input{display:block;width:100%;min-height:44px;border:1px solid var(--border);border-radius:4px;background:var(--panel-subtle);color:var(--app-ink);padding:10px 12px;font:400 .85rem Inter,Arial,sans-serif;outline:none}
.signup-field input::placeholder{color:var(--app-muted);opacity:.9}
.signup-field input:focus{border-color:var(--signup-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--signup-accent) 15%,transparent)}
.signup-field input[aria-invalid='true']{border-color:var(--down,#d32f4a)}
.signup-field small{font-size:.65rem;color:var(--app-muted);display:block;margin-top:6px}
.signup-password{position:relative}
.signup-password input{padding-right:65px}
.signup-reveal{position:absolute;right:1px;top:1px;bottom:1px;padding:0 12px;background:transparent;border:0;font:500 .68rem Inter,Arial,sans-serif;color:var(--signup-light);cursor:pointer;border-radius:4px}
.signup-name{font-size:.72rem;margin:4px 0 14px}
.signup-name summary{cursor:pointer;width:fit-content;color:var(--app-ink);padding:3px 0}
.signup-name summary span{color:var(--app-muted)}
.signup-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.signup-submit{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;min-height:46px;background:var(--signup-accent);border:1px solid var(--signup-accent);border-radius:4px;color:white;font:600 .85rem Inter,Arial,sans-serif;cursor:pointer;padding:12px 16px}
.signup-submit:hover{filter:brightness(1.1)}
.signup-submit:disabled{cursor:wait;opacity:.7}
.signup-submit span{font-size:1.1rem;line-height:1}
.signup-login{border-top:1px solid var(--border);margin:22px 0 0;padding-top:18px;text-align:center;color:var(--app-muted);font-size:.77rem}
.signup-login a{font-weight:500;color:var(--signup-light)}
.signup-error-summary{font-size:.78rem;line-height:1.5;margin-bottom:18px;border:1px solid var(--down,#d32f4a);background:color-mix(in srgb,var(--down,#d32f4a) 7%,var(--panel));padding:12px;border-radius:4px}
.signup-error-summary ul{margin:6px 0 0;padding-left:18px}.signup-error-summary a{color:inherit;text-decoration:underline}
.signup-client-error{font-size:.73rem;color:var(--down,#d32f4a);margin:0 0 10px}.signup-client-error:empty{display:none}
.signup-layout :focus-visible{outline:2px solid var(--signup-light);outline-offset:3px}
.signup-layout [hidden]{display:none!important}
.signup-layout.is-paused *, .signup-layout.is-background *{animation-play-state:paused!important}
@keyframes signup-stream{to{stroke-dashoffset:-100}}
@keyframes signup-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes signup-beacon{0%,100%{transform:scale(.85);opacity:.14}50%{transform:scale(1.2);opacity:.26}}
@media(prefers-reduced-motion:reduce){.signup-cube,.signup-city-halo{animation:none}.signup-world .wm-travellers path{animation-duration:24s;stroke-dasharray:2 98;filter:none}.signup-cubes .signup-chain-light,.signup-cubes .signup-edge{animation-duration:20s;filter:none}}
@media(min-width:1600px){.signup-layout{width:min(1600px,94%);gap:90px}.signup-story h1{font-size:76px}.signup-panel{max-width:580px;width:100%;justify-self:end}}
@media(max-width:980px){.signup-layout{gap:24px;padding:24px;grid-template-columns:minmax(0,1fr) minmax(350px,1fr)}.signup-eyebrow{font-size:.56rem}.signup-story h1{font-size:42px}.signup-cubes{width:90%}.signup-panel{padding:24px}}
@media(max-width:760px){.signup-layout{display:flex;flex-direction:column;gap:24px;padding:24px 16px;width:100%}.signup-story{width:min(480px,100%)}.signup-eyebrow{font-size:.58rem}.signup-story h1{font-size:36px;margin:12px 0}.signup-story h1 br{display:none}.signup-story h1 span{margin-left:.2em}.signup-story-copy>p{font-size:.83rem;margin-bottom:0}.signup-visual{display:none}.signup-story-bottom{display:none}.signup-panel{width:min(480px,100%);padding:24px}.signup-field input{font-size:16px}.signup-panel h2{font-size:27px}.signup-social button{font-size:.76rem}}
@media(max-width:380px){.signup-panel{padding:18px}.signup-story h1{font-size:31px}.signup-name-grid{grid-template-columns:1fr}.signup-social button{gap:7px}.signup-social button span{font-size:.56rem}}

/* Unified email authentication screen. */
.signup-story h1{font-size:clamp(36px,3.5vw,60px)}
.signup-story h1 span{display:inline-block;max-width:11ch}
.signup-layout [hidden]{display:none!important}
@media(min-width:1600px){.signup-story h1{font-size:64px}}
@media(max-width:760px){.signup-story h1{font-size:32px}.signup-story h1 br{display:block}.signup-story h1 span{margin-left:0;max-width:none}.signup-story-copy>p{margin-bottom:0}}
