/* Signup page: one centred column on every screen. Phone first. Reuses the hero mark from the full site. */
.launch{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:radial-gradient(ellipse 900px 640px at 50% -8%,#181b1d,var(--ink) 72%) var(--ink)}
.launch-header{padding:30px 24px 0;display:flex;justify-content:center;width:100%}
.launch-header .brand-wordmark{width:104px;height:53px}
.launch main{width:100%;flex:1;display:flex;justify-content:center}
.launch .hero{min-height:0;overflow:visible;padding:0 24px 56px;width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;text-align:center}
.launch .hero:before{display:none}
.launch .hero-art{height:230px;width:min(100%,300px);margin:18px auto 22px}
.launch .hero-art:after{bottom:6%}
.launch .orbit-label,.launch .mark-invitation{display:none}
.launch-date{font-size:10px;font-weight:500;letter-spacing:.24em;color:#8f969a;margin:0}
.launch h1{font-size:clamp(42px,12vw,72px);line-height:.96;letter-spacing:-.06em;white-space:normal;margin:18px 0 0}
.launch h1 span{color:#8d9194}
.launch-sub{font-size:16px;color:#aab0b3;line-height:1.65;margin:22px auto 0;max-width:400px}
.launch-form{display:flex;flex-direction:column;gap:12px;width:100%;text-align:left}
#join-form{margin-top:40px}
.launch-form .stage-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.launch-form .stage-options label{display:block}
.launch-form .stage-options input{position:absolute;opacity:0}
.launch-form .stage-options span{display:flex;align-items:center;justify-content:center;min-height:50px;text-align:center;padding:10px 8px;border:1px solid var(--line);border-radius:var(--radius-control);font-size:13px;line-height:1.3;color:#c8ccce;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.launch-form .stage-options span:hover{border-color:#4a5054}
.launch-form .stage-options input:checked+span{background:var(--white);color:var(--ink);border-color:var(--white)}
.launch-form .stage-options input:focus-visible+span{outline:2px solid #fff;outline-offset:2px}
.launch-form .row{display:grid;grid-template-columns:1fr;gap:10px}
.launch-form input:not([type=radio]){width:100%;padding:15px 16px;background:#101213;border:1px solid var(--line);border-radius:var(--radius-control);color:var(--white);font:inherit;font-size:16px;transition:border-color .2s}
.launch-form input:not([type=radio]):focus{outline:none;border-color:#8c8d8f}
.launch-form input::placeholder{color:#6d7477}
.launch-form .button{width:100%;justify-content:space-between;margin-top:4px}
.launch-note{font-size:12px;color:#7a8185;margin:4px 0 0;line-height:1.7;text-align:center}
.launch-note button{color:#a9b0b5}
.seats{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:40px}
.seats-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#9aa0a3}
.seats-head #seats-count{color:#d5d5d3}
.seats-head:has(#seats-count:empty){justify-content:center}
.seats[hidden]{display:none}
.seats-bar{height:16px;padding:3px;border-radius:999px;border:1px solid #d5d5d380;background:#050606;box-shadow:0 0 16px #ffffff1c,inset 0 0 10px #ffffff0d;overflow:hidden;position:relative}
/* A soft light sweeping along the track, like a loader. It is a moving glint, not a fill level, so it claims no seats. */
.seats-bar:after{content:"";position:absolute;top:3px;bottom:3px;left:0;width:22%;border-radius:999px;background:linear-gradient(90deg,transparent,#ffffff40 42%,#ffffff80 50%,#ffffff40 58%,transparent);filter:blur(1px);transform:translateX(-110%);animation:seats-sweep 3.2s cubic-bezier(.45,0,.25,1) infinite;pointer-events:none}
@keyframes seats-sweep{0%{transform:translateX(-110%);opacity:0}12%{opacity:1}70%{opacity:1}82%,100%{transform:translateX(480%);opacity:0}}
.seats-bar span{display:block;height:100%;width:0;border-radius:999px;background:repeating-linear-gradient(-45deg,#f2f2ef 0 4px,#7d8083 4px 8px);background-size:22.63px 100%;box-shadow:0 0 10px #ffffff59;transition:width .9s ease;animation:seats-stripes 1.4s linear infinite}
@keyframes seats-stripes{to{background-position:22.63px 0}}
.seats-note{margin:0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#f2f2ef;text-align:center}
.launch-rooms{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin:36px 0 0;padding-top:28px;border-top:1px solid #ffffff12;width:100%;font-size:12px;color:#7f868a;line-height:1.6}
.launch-rooms b{color:#d5d5d3;font-weight:600;margin-right:6px}
.launch-footer{width:100%;max-width:560px;padding:22px 24px 30px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#62686b;border-top:1px solid #ffffff12}
.launch-footer span+span:before{content:"·";margin-right:8px}
@media(max-width:400px){.launch-form .stage-options span{font-size:12px;padding:8px 6px}}
@media(min-width:700px){
  .launch-header{padding-top:40px}
  .launch-header .brand-wordmark{width:118px;height:60px}
  .launch .hero-art{height:280px;width:340px;margin:26px auto 30px}
  .launch-sub{font-size:17px}
  .launch-form .row{grid-template-columns:1fr 1fr}
}
.profile-form{margin-top:18px;gap:14px}
.profile-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#c8ccce}
.profile-form textarea{width:100%;padding:12px 14px;background:#111314;border:1px solid var(--line);border-radius:var(--radius-control);color:var(--white);font:inherit;font-size:16px;resize:vertical}
.profile-form textarea::placeholder{color:#6d7477}
.profile-form .button{margin-top:4px}
.profile-intro{margin:0!important}
.profile-intro b{color:var(--white);font-weight:600}
.profile-skip{align-self:center;font-size:13px;color:#9aa0a3;padding:6px}
dialog:not(.show-close) .join-close{display:none}
dialog.show-close .join-close{display:inline-flex}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}
/* First-visit loading screen. Shown only when the inline head script adds .is-loading; the CSS fail-safe clears it if JavaScript stops. */
.loader{display:none}
.is-loading .loader{display:grid;place-items:center;position:fixed;inset:0;z-index:1000;background:#000;transition:opacity .45s ease,visibility .45s;animation:loader-failsafe .45s ease 2.4s forwards}
.is-loading .loader.is-done{opacity:0;visibility:hidden}
.loader-lockup{display:flex;flex-direction:column;align-items:center;gap:22px}
.loader-mark{width:72px;height:72px;overflow:visible}
.loader-lockup img{width:104px;height:53px;mix-blend-mode:lighten}
.loader-line{width:132px;height:1px;background:#ffffff1a;overflow:hidden}
.loader-line span{display:block;height:100%;background:linear-gradient(90deg,#8c8d8f,#f6f6f4);transform:scaleX(.2);transform-origin:left;transition:transform .35s ease}
@keyframes loader-failsafe{to{opacity:0;visibility:hidden}}
/* Desktop: the same centred column, tightened so the whole form fits on the first screen.
   Sizes follow the screen height, so shorter laptops get a smaller symbol and headline. */
@media(min-width:1100px){
  .launch-header{padding-top:26px}
  .launch .hero-art{height:clamp(150px,21vh,240px);width:clamp(180px,25vh,280px);margin:34px auto 14px}
  .launch h1{font-size:clamp(54px,7.2vh,76px);margin-top:12px}
  .launch-sub{margin-top:16px}
  #join-form{margin-top:28px}
}
