:root{
  font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body{overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
.auth-page{
  --accent:#a98ac4;
  --accent-soft:#d9c8e8;
  --accent-ink:#16111b;
  --page-bg:#0d0b10;
  --panel-bg:#f4f1f6;
  --panel-ink:#18141c;
  --panel-muted:#716b76;
  --panel-line:rgba(24,20,28,.16);
  min-height:100vh;
  color:#fff;
  background:var(--page-bg);
}
.auth-header{
  position:fixed;
  z-index:30;
  inset:0 0 auto;
  height:74px;
  padding:0 clamp(22px,4vw,64px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.1);
  background:rgba(12,10,15,.68);
  backdrop-filter:blur(18px);
}
.auth-brand{display:flex;align-items:center;gap:10px;white-space:nowrap}
.auth-brand-mark{width:18px;height:18px;background:#f52b5d;clip-path:polygon(0 0,100% 0,100% 38%,38% 38%,38% 100%,0 100%)}
.auth-brand strong{font-size:16px;letter-spacing:.06em}
.auth-brand i{width:1px;height:18px;margin:0 2px;background:rgba(255,255,255,.3)}
.auth-brand span:last-child{color:rgba(255,255,255,.56);font-size:12px;letter-spacing:.04em}
.auth-back{display:inline-flex;align-items:center;gap:11px;color:rgba(255,255,255,.68);font-size:12px;font-weight:650}
.auth-back:hover{color:#fff}
.auth-back b{font-size:17px;font-weight:400}
.auth-stage{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(430px,.72fr);padding-top:74px}
.auth-story{position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:clamp(48px,8vw,120px)}
.auth-story-copy{position:relative;z-index:4;max-width:710px}
.auth-kicker{display:flex;align-items:center;gap:12px;margin:0 0 22px;color:var(--accent-soft);font:800 10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em}
.auth-kicker:before{content:"";width:28px;height:2px;background:var(--accent)}
.auth-story h1{max-width:760px;margin:0;font-size:clamp(52px,5.6vw,86px);font-weight:450;line-height:1.03;letter-spacing:-.065em}
.auth-story h1 em{color:var(--accent-soft);font-style:normal;font-weight:650}
.auth-story-copy>p:not(.auth-kicker){max-width:610px;margin:28px 0 0;color:rgba(255,255,255,.63);font-size:15px;line-height:1.85}
.auth-proof{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:32px;color:rgba(255,255,255,.48);font-size:11px}
.auth-proof span{display:flex;align-items:center;gap:8px}
.auth-proof span:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}
.auth-panel-wrap{position:relative;z-index:5;display:grid;place-items:center;padding:44px clamp(28px,4vw,66px);background:rgba(9,8,12,.34);border-left:1px solid rgba(255,255,255,.1)}
.auth-card{width:min(100%,480px);padding:40px;background:var(--panel-bg);color:var(--panel-ink);border:1px solid rgba(255,255,255,.14);box-shadow:0 34px 95px rgba(0,0,0,.32)}
.auth-card-head small{display:block;color:var(--accent);font:800 9px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}
.auth-card-head h2{margin:10px 0 8px;font-size:31px;font-weight:620;letter-spacing:-.045em}
.auth-card-head p{margin:0;color:var(--panel-muted);font-size:12px;line-height:1.7}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-top:28px;border-bottom:1px solid var(--panel-line)}
.auth-tabs button{position:relative;padding:13px 4px;border:0;color:var(--panel-muted);background:transparent;font-size:12px;font-weight:700}
.auth-tabs button:after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:2px;background:var(--accent);transition:right .2s ease}
.auth-tabs button.is-active{color:var(--panel-ink)}
.auth-tabs button.is-active:after{right:0}
.auth-view{padding-top:25px}
.auth-view[hidden]{display:none}
.auth-field{display:block;margin-bottom:18px}
.auth-field>span{display:block;margin-bottom:8px;color:var(--panel-muted);font-size:11px;font-weight:650}
.auth-field input{width:100%;height:48px;padding:0 14px;border:1px solid var(--panel-line);border-radius:2px;outline:0;color:var(--panel-ink);background:rgba(255,255,255,.54);font-size:13px;transition:border-color .2s,box-shadow .2s}
.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}
.auth-password{position:relative}
.auth-password input{padding-right:60px}
.auth-password button{position:absolute;right:12px;bottom:14px;padding:0;border:0;color:var(--panel-muted);background:transparent;font-size:10px;font-weight:700}
.auth-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:-2px 0 22px;color:var(--panel-muted);font-size:10px}
.auth-remember{display:flex;align-items:center;gap:7px}
.auth-remember input{accent-color:var(--accent)}
.auth-text-link{padding:0;border:0;color:var(--panel-ink);background:transparent;font-size:10px;font-weight:750;text-decoration:underline;text-underline-offset:4px}
.auth-submit{width:100%;height:50px;border:1px solid var(--accent);color:var(--accent-ink);background:var(--accent);font-size:13px;font-weight:800;letter-spacing:.02em;transition:transform .2s,filter .2s}
.auth-submit:hover{transform:translateY(-2px);filter:brightness(1.06)}
.auth-status{min-height:18px;margin:10px 0 0;color:var(--panel-muted);font-size:10px;line-height:1.5;text-align:center}
.auth-register{display:flex;align-items:center;justify-content:center;gap:8px;margin:20px 0 0;color:var(--panel-muted);font-size:11px}
.auth-register a{color:var(--panel-ink);font-weight:800;text-decoration:underline;text-underline-offset:4px}
.auth-divider{display:flex;align-items:center;gap:12px;margin:25px 0;color:var(--panel-muted);font-size:9px;letter-spacing:.08em}
.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--panel-line)}
.auth-security{display:flex;justify-content:center;gap:16px;color:var(--panel-muted);font-size:9px}
.qr-view{text-align:center}
.qr-frame{position:relative;width:210px;height:210px;margin:2px auto 20px;padding:14px;border:1px solid var(--panel-line);background:#fff;box-shadow:0 14px 35px rgba(0,0,0,.08)}
.qr-frame svg{display:block;width:100%;height:100%}
.qr-badge{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:42px;height:42px;border:5px solid #fff;border-radius:10px;color:#fff;background:#07c160;font-size:11px;font-weight:900;transform:translate(-50%,-50%)}
.qr-view h3{margin:0;font-size:17px}
.qr-view p{max-width:290px;margin:10px auto 0;color:var(--panel-muted);font-size:11px;line-height:1.7}
.qr-refresh{margin-top:18px;padding:9px 15px;border:1px solid var(--panel-line);color:var(--panel-ink);background:transparent;font-size:10px;font-weight:750}

/* Pointcosm: deep purple space and luminous Gaussian points. */
.auth-pointcosm{--accent:#a884c6;--accent-soft:#d9c6e9;--accent-ink:#160f1c;--page-bg:#0d0911;--panel-bg:#f5f2f8;--panel-ink:#1a1420;--panel-muted:#746b7a;--panel-line:rgba(40,24,50,.15)}
.auth-pointcosm .auth-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 57% 42%,rgba(149,125,173,.42),transparent 32%),linear-gradient(105deg,#100d15 0%,#292130 37%,#554562 58%,#766287 68%,#241d2b 82%,#09080c 100%)}
.auth-pointcosm .auth-story{overflow:visible;background:transparent}
.auth-pointcosm .auth-story:before{display:none}
.auth-pointcosm .auth-story:after{content:"";position:absolute;z-index:2;inset:0 auto 0 0;width:calc(100% + clamp(260px,30vw,520px));pointer-events:none;background:linear-gradient(180deg,rgba(8,7,11,.18),transparent 24%,transparent 72%,rgba(8,7,11,.28)),radial-gradient(circle at 42% 48%,transparent 48%,rgba(8,7,11,.23) 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 77%,rgba(0,0,0,.72) 88%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 77%,rgba(0,0,0,.72) 88%,transparent 100%)}
.auth-pointcosm .pointcosm-particle-canvas{position:absolute;z-index:1;inset:0 auto 0 0;width:calc(100% + clamp(260px,30vw,520px));height:100%;pointer-events:none;opacity:0;filter:saturate(1.02);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 77%,rgba(0,0,0,.72) 88%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 77%,rgba(0,0,0,.72) 88%,transparent 100%);transition:opacity .72s cubic-bezier(.22,.61,.36,1)}
.auth-pointcosm .pointcosm-particle-canvas.is-ready{opacity:.94}
.auth-pointcosm .pointcosm-bg-logo{position:absolute;z-index:1;left:clamp(-70px,-2vw,-20px);bottom:1.5%;width:clamp(350px,38vw,620px);aspect-ratio:1348/1538;pointer-events:none;opacity:.032;background:#957dad;-webkit-mask:url('/pointcosm/assets/images/pointcosm-symbol.png') center/contain no-repeat;mask:url('/pointcosm/assets/images/pointcosm-symbol.png') center/contain no-repeat}
.auth-pointcosm .auth-panel-wrap{border-left:0;background:linear-gradient(90deg,rgba(9,8,12,0) 0%,rgba(9,8,13,.08) 38%,rgba(9,8,13,.64) 69%,#09080c 94%);box-shadow:none}
.auth-pointcosm .auth-story{padding-inline:clamp(48px,6vw,104px)}
.auth-pointcosm .pointcosm-login-title{max-width:none;font-size:0;line-height:1;letter-spacing:0}
.auth-pointcosm .pointcosm-login-title .title-line{display:block;white-space:nowrap}
.auth-pointcosm .pointcosm-login-title .title-line-main{font-size:clamp(36px,3.15vw,56px);font-weight:480;line-height:1.08;letter-spacing:-.045em}
.auth-pointcosm .pointcosm-login-title .title-line-detail{margin-top:14px;color:rgba(255,255,255,.84);font-size:clamp(27px,2.3vw,38px);font-weight:480;line-height:1.14;letter-spacing:-.03em}
.auth-pointcosm .pointcosm-login-title .title-line-detail em{color:var(--accent-soft);font-weight:580}
.auth-pointcosm .auth-card{border-radius:18px}
.auth-pointcosm .auth-submit{border-radius:8px}
.auth-pointcosm .auth-field input{border-radius:8px}

/* Space Studio: dark venue-planning surface with warm yellow accents. */
.auth-space{--accent:#a88abe;--accent-soft:#d8c7aa;--accent-ink:#120d17;--page-bg:#0e0913;--panel-bg:#201725;--panel-ink:#f5f0f7;--panel-muted:#a097a6;--panel-line:rgba(230,220,235,.13);--orb-top:-18%;--orb-size:min(620px,60vw)}
.auth-space .auth-header{background:rgba(24,19,29,.82)}
.auth-space .auth-story{background:radial-gradient(circle at 42% 44%,#33283a 0,#211b29 38%,#17131b 72%)}
.auth-space .auth-story:before{content:"";position:absolute;inset:0;opacity:.3;background-image:linear-gradient(rgba(216,199,170,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(216,199,170,.1) 1px,transparent 1px);background-size:86px 86px;mask-image:radial-gradient(circle at 60% 45%,#000,transparent 73%)}
.auth-space .auth-story-stage{position:relative;z-index:2;width:min(760px,100%);padding-top:132px}
.auth-space .brand-lockup{position:absolute;z-index:2;left:clamp(28px,3.6vw,64px);top:clamp(44px,7.2vh,76px);display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.auth-space .brand-lockup-row{display:flex;align-items:center;gap:12px}
.auth-space .brand-lockup-logo{width:auto;height:clamp(28px,2.9vw,46px);opacity:0;transform:translateX(-10px);animation:space-logo-in 1.1s cubic-bezier(.22,.61,.36,1) 1.25s forwards}
.auth-space .brand-desc{margin:0;color:rgba(245,240,234,.56);font-size:11px;line-height:1.45;letter-spacing:.02em;opacity:0;transform:translateY(6px);animation:space-copy-in .55s cubic-bezier(.22,.61,.36,1) 1.55s forwards}
.auth-space .auth-story-copy{position:relative;z-index:2;max-width:720px}
.auth-space .auth-story h1{max-width:none;font-size:clamp(52px,5.4vw,88px);font-weight:480;line-height:1.08;letter-spacing:-.045em}
.auth-space .auth-story h1 .title-line{display:block;white-space:nowrap}
.auth-space .auth-story-copy>p:not(.auth-kicker){max-width:36em;word-break:keep-all}
.auth-space .auth-story-copy h1,
.auth-space .auth-story-copy>p,
.auth-space .auth-story-copy .auth-proof{opacity:0;transform:translateY(16px);animation:space-copy-in .55s cubic-bezier(.22,.61,.36,1) forwards}
.auth-space .auth-story-copy h1{animation-delay:2.72s}
.auth-space .auth-story-copy>p{animation-delay:2.92s}
.auth-space .auth-story-copy .auth-proof{animation-delay:3.08s}
.auth-space .auth-story-orb{position:absolute;z-index:1;right:-20%;top:var(--orb-top);width:var(--orb-size);aspect-ratio:1;overflow:hidden;border:1px solid rgba(216,199,170,.2);border-radius:50%;box-shadow:0 0 0 64px rgba(216,199,170,.028),0 0 0 128px rgba(216,199,170,.014),0 36px 90px rgba(0,0,0,.28);pointer-events:none}
.auth-space .auth-story-orb-video,.auth-space .auth-story-orb-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:18% 20%;filter:brightness(.58) saturate(.7) contrast(1.06)}
.auth-space .brand-wordmark{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.auth-space .brand-intro{display:flex;align-items:center;gap:.06em;color:#f5f0ea;font-size:clamp(34px,3.5vw,54px);font-weight:450;letter-spacing:.12em;line-height:1}
.auth-space .brand-subtitle{margin:3px 0 0;margin-right:-.04em;color:rgba(245,240,234,.52);font-size:10px;font-weight:600;letter-spacing:.38em;text-transform:uppercase;line-height:1;white-space:nowrap;opacity:0;transform:translate(calc(100% + 8px),6px);animation:space-studio-in .55s cubic-bezier(.22,.61,.36,1) 1.45s forwards}
@keyframes space-studio-in{to{opacity:1;transform:translateX(calc(100% + 8px))}}
.auth-space .brand-intro span{display:inline-block;opacity:0;transform:translateY(18px);filter:blur(12px);animation:space-intro-char .52s cubic-bezier(.22,.61,.36,1) forwards}
.auth-space .brand-intro span:nth-child(1){animation-delay:.28s}
.auth-space .brand-intro span:nth-child(2){animation-delay:.4s}
.auth-space .brand-intro span:nth-child(3){animation-delay:.52s}
.auth-space .brand-intro span:nth-child(4){animation-delay:.64s}
@keyframes space-intro-char{to{opacity:1;transform:none;filter:blur(0)}}
@keyframes space-logo-in{to{opacity:1;transform:none}}
@keyframes space-copy-in{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .auth-space .brand-intro span,
  .auth-space .brand-lockup-logo,
  .auth-space .brand-desc{animation:none;opacity:1;filter:none;transform:none}
  .auth-space .brand-subtitle{animation:none;opacity:1;filter:none;transform:translateX(calc(100% + 8px))}
  .auth-space .auth-story-copy h1,
  .auth-space .auth-story-copy>p,
  .auth-space .auth-story-copy .auth-proof{animation:none;opacity:1;transform:none}
}
.auth-space .auth-stage{grid-template-columns:minmax(0,1.1fr) minmax(430px,.72fr)}
.auth-space .auth-panel-wrap{place-items:center;padding:44px clamp(28px,4vw,66px)}
.auth-space .auth-card{width:min(100%,480px);border-radius:18px;background:linear-gradient(145deg,#251f2d,#1d1823);box-shadow:0 34px 95px rgba(0,0,0,.48)}
.auth-space .auth-field input{color:#f5f0e8;background:#18141d;border-radius:9px}
.auth-space .auth-field input::placeholder{color:#716a74}
.auth-space .auth-submit{border-radius:9px}
.auth-space .qr-frame{border-color:rgba(216,199,170,.28)}
.auth-code-row{display:flex;gap:10px}
.auth-code-row input{flex:1;min-width:0}
.auth-code-send{flex:0 0 116px;height:48px;border:1px solid var(--panel-line);border-radius:9px;color:var(--panel-ink);background:rgba(255,255,255,.04);font-size:12px;font-weight:700}
.auth-code-send:hover:not(:disabled){border-color:var(--accent);color:#fff}
.auth-code-send:disabled{opacity:.5;cursor:not-allowed}
.auth-agree-wrap{display:flex;flex-direction:column;align-items:center;margin:22px 0 0;text-align:center}
.auth-agree{display:inline-flex;align-items:flex-start;gap:10px;width:fit-content;max-width:100%;margin:0;color:var(--panel-muted);font-size:12px;line-height:1.7;text-align:left;cursor:pointer}
.auth-agree input{margin-top:3px;flex:0 0 auto;accent-color:var(--accent)}
.auth-agree a{color:var(--panel-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.auth-agree-error{margin:8px 0 0;color:#ff8d8d;font-size:12px}

/* API console: precise dark grid, monospace labels and square geometry. */
.auth-api{--accent:#a991bb;--accent-soft:#cdbbda;--accent-ink:#100d13;--page-bg:#0d0c10;--panel-bg:#151219;--panel-ink:#f0ecf2;--panel-muted:#8e8793;--panel-line:rgba(255,255,255,.13)}
.auth-api .auth-header{background:rgba(12,11,15,.88)}
.auth-api .auth-story{background:radial-gradient(circle at 78% 34%,rgba(149,125,173,.22),transparent 28%),linear-gradient(135deg,#0d0c10,#17131b 62%,#211827)}
.auth-api .auth-story:before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(184,161,203,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(184,161,203,.075) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,transparent,#000 38%,#000)}
.auth-api .auth-story:after{content:"AUTH / TOKEN / SESSION / CONSOLE";position:absolute;right:-58px;top:48%;color:rgba(203,184,218,.2);font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.32em;transform:rotate(90deg)}
.auth-api .auth-story h1{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;font-size:clamp(50px,5vw,78px)}
.auth-api .auth-panel-wrap{background:rgba(8,7,10,.56)}
.auth-api .auth-card{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));backdrop-filter:blur(14px)}
.auth-api .auth-card-head small,.auth-api .auth-kicker,.auth-api .auth-security{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.auth-api .auth-field input{color:#f0ecf2;background:rgba(6,5,8,.52)}
.auth-api .auth-field input::placeholder{color:#69636d}
.auth-api .qr-frame{border-radius:0}

@media(max-width:1000px){
  .auth-stage{grid-template-columns:1fr;padding-top:68px}
  .auth-header{height:68px}
  .auth-story{min-height:460px;padding:72px 42px 54px}
  .auth-space{--orb-top:-18%;--orb-size:min(280px,58vw)}
  .auth-space .auth-story{flex-direction:column;align-items:stretch;justify-content:flex-start}
  .auth-space .auth-story-orb{right:-18%}
  .auth-space .brand-lockup{position:relative;left:auto;top:auto;margin:0 0 28px}
  .auth-space .auth-story-stage{padding-top:0;margin-top:auto}
  .auth-space .auth-story h1{font-size:clamp(34px,8vw,48px)}
  .auth-space .auth-stage{grid-template-columns:1fr}
  .auth-space .auth-panel-wrap{padding:55px 24px 70px;justify-items:center}
  .auth-story h1{font-size:clamp(47px,8vw,70px)}
  .auth-panel-wrap{padding:55px 24px 70px;border-left:0;border-top:1px solid rgba(255,255,255,.1)}
  .auth-pointcosm .auth-story{overflow:hidden}
  .auth-pointcosm .auth-story:after,.auth-pointcosm .pointcosm-particle-canvas{width:100%}
  .auth-pointcosm .auth-panel-wrap{background:#0b0910}
  .auth-pointcosm .pointcosm-bg-logo{left:-4%;bottom:0;width:min(48vw,360px);opacity:.026}
}
@media(max-width:560px){
  .auth-header{padding:0 18px}
  .auth-brand strong,.auth-brand i{display:none}
  .auth-brand span:last-child{color:#fff;font-size:13px;font-weight:700}
  .auth-back span{display:none}
  .auth-story{min-height:390px;padding:60px 22px 42px}
  .auth-pointcosm .auth-story{padding:60px 18px 42px}
  .auth-pointcosm .pointcosm-login-title .title-line-main{font-size:6vw}
  .auth-pointcosm .pointcosm-login-title .title-line-detail{margin-top:9px;font-size:4.2vw}
  .auth-story h1,.auth-api .auth-story h1{font-size:43px}
  .auth-story-copy>p:not(.auth-kicker){font-size:13px}
  .auth-proof{display:grid;gap:8px}
  .auth-panel-wrap{padding:38px 16px 55px}
  .auth-card{padding:28px 22px}
  .auth-card-head h2{font-size:27px}
  .qr-frame{width:190px;height:190px}
}

/* API developer console: full-screen code input with a quiet API monogram. */
.auth-api{--accent:#a884c6;--accent-soft:#d9c6e9;--accent-ink:#160f1c;--page-bg:#0d0911;--panel-bg:#f5f2f8;--panel-ink:#1a1420;--panel-muted:#746b7a;--panel-line:rgba(40,24,50,.15)}
.auth-api .auth-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 54% 38%,rgba(149,125,173,.34),transparent 32%),linear-gradient(108deg,#100d15 0%,#292130 45%,#554562 63%,#241d2b 78%,#09080c 100%)}
.auth-api .auth-story{z-index:2;overflow:visible;padding-inline:clamp(48px,6vw,104px);background:transparent}
.auth-api .auth-story:before{content:"";position:absolute;z-index:2;inset:0 auto 0 0;width:100vw;opacity:1;pointer-events:none;background:linear-gradient(180deg,rgba(8,7,11,.12),transparent 24%,transparent 70%,rgba(8,7,11,.3)),radial-gradient(circle at 42% 46%,transparent 38%,rgba(8,7,11,.26) 100%);mask-image:none}
.auth-api .auth-story:after{content:"";position:absolute;z-index:3;inset:0 auto 0 0;width:100vw;pointer-events:none;color:transparent;background:linear-gradient(90deg,rgba(9,8,12,0) 0%,rgba(9,8,13,.025) 46%,rgba(9,8,13,.18) 60%,rgba(9,8,13,.52) 76%,#09080c 94%,#09080c 100%);font-size:0;letter-spacing:0;transform:none}
.api-code-wall{position:absolute;z-index:0;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(34px,5vw,88px);padding:104px 42px 54px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .7s ease;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 73%,rgba(0,0,0,.52) 87%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 73%,rgba(0,0,0,.52) 87%,transparent 100%)}
.api-code-wall.is-ready{opacity:.42}
.api-code-column{display:flex;min-width:0;flex-direction:column;gap:17px;transform:translateY(calc((var(--column-index) - 1) * 42px))}
.api-code-line{display:flex;min-width:0;gap:13px;color:rgba(218,203,231,.42);font:500 10px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}
.api-code-number{width:22px;flex:0 0 22px;color:rgba(255,255,255,.15);text-align:right}
.api-code-text{display:block;overflow:hidden;text-overflow:clip}
.api-code-line.is-code{color:rgba(217,198,233,.52)}
.api-code-line.is-endpoint{color:rgba(184,161,203,.68);font-weight:750;letter-spacing:.04em}
.api-code-line.is-typing{color:rgba(255,255,255,.82);opacity:1}
.api-code-line.is-typing .api-code-text:after{content:"";display:inline-block;width:6px;height:1.15em;margin-left:4px;vertical-align:-.18em;background:var(--accent-soft);animation:api-cursor .78s steps(1,end) infinite}
.api-code-line.is-complete{animation:api-line-complete 1.4s ease both}
@keyframes api-cursor{50%{opacity:0}}
@keyframes api-line-complete{0%{color:#fff}100%{color:rgba(217,198,233,.52)}}
.api-bg-mark{position:absolute;z-index:1;top:8%;left:clamp(-24px,-1vw,-8px);pointer-events:none;color:rgba(184,161,203,.055);font:900 clamp(240px,27vw,500px)/.8 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.16em;user-select:none}
.auth-api .auth-story-copy{max-width:780px}
.auth-api .api-login-title{max-width:none;font-size:0;line-height:1;letter-spacing:0}
.auth-api .api-login-title .title-line{display:block;white-space:nowrap}
.auth-api .api-login-title .title-line-main{font-size:clamp(36px,3.15vw,56px);font-weight:480;line-height:1.08;letter-spacing:-.045em}
.auth-api .api-login-title .title-line-detail{margin-top:14px;color:rgba(255,255,255,.84);font-size:clamp(28px,2.45vw,42px);font-weight:480;line-height:1.14;letter-spacing:-.035em}
.auth-api .api-login-title .title-line-detail em{color:var(--accent-soft);font-weight:620}
.auth-api .auth-story-copy>p:not(.auth-kicker){max-width:650px}
.auth-api .auth-panel-wrap{z-index:5;border-left:0;background:linear-gradient(90deg,rgba(9,8,12,0) 0%,rgba(9,8,13,.025) 22%,rgba(9,8,13,.24) 48%,rgba(9,8,13,.68) 76%,#09080c 100%);box-shadow:none}
.auth-api .auth-card{border-radius:18px;color:var(--panel-ink);background:var(--panel-bg);box-shadow:0 34px 95px rgba(0,0,0,.38);backdrop-filter:none}
.auth-api .auth-field input{border-radius:8px;color:var(--panel-ink);background:rgba(255,255,255,.54)}
.auth-api .auth-field input::placeholder{color:#8a818f}
.auth-api .auth-submit{border-radius:8px}
.auth-api .qr-frame{border-radius:8px}
@media(prefers-reduced-motion:reduce){.api-code-wall{transition:none}.api-code-line.is-typing .api-code-text:after,.api-code-line.is-complete{animation:none}}
@media(max-width:1000px){.auth-api .auth-story{overflow:hidden}.auth-api .auth-story:after{width:100%;background:linear-gradient(180deg,rgba(9,8,12,0),rgba(9,8,13,.2) 72%,#09080c 100%)}.api-code-wall{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:88px;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 86%);mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 86%)}.api-code-column:nth-child(3){display:none}.api-bg-mark{top:3%;font-size:min(45vw,380px)}.auth-api .auth-panel-wrap{background:#0b0910}}
@media(max-width:560px){.auth-api .auth-story{padding:60px 18px 44px}.api-code-wall{grid-template-columns:1fr;padding:78px 18px 24px;opacity:.3}.api-code-column:nth-child(2){display:none}.api-code-line{font-size:8px}.api-bg-mark{top:6%;left:-18px;font-size:52vw}.auth-api .api-login-title .title-line-main{font-size:7.7vw}.auth-api .api-login-title .title-line-detail{margin-top:10px;font-size:6.1vw}.auth-api .auth-story-copy>p:not(.auth-kicker){font-size:13px}}

/* Space Studio login: a reconstructed venue becomes an editable, reviewable plan. */
.auth-space{--accent:#b99acb;--accent-soft:#dec9b2;--accent-ink:#140e18;position:relative;isolation:isolate;overflow:hidden;background:#0a0810}
.auth-space:before{content:"";position:fixed;z-index:0;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(5,4,7,.04),rgba(5,4,7,.3))}
.auth-space .auth-header{background:rgba(10,8,13,.74)}
.auth-space .auth-stage{position:relative;z-index:1;background:linear-gradient(90deg,transparent 0%,transparent 56%,rgba(8,6,10,.45) 75%,#08070a 100%)}
.auth-space .auth-story{isolation:isolate;overflow:visible;padding-inline:clamp(48px,6vw,104px);background:#120e18}
.auth-space .auth-story:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(9,7,11,.08) 0%,transparent 36%,rgba(7,6,9,.36) 68%,rgba(7,6,9,.86) 100%),linear-gradient(90deg,rgba(10,8,13,.44) 0%,rgba(10,8,13,.12) 50%,rgba(8,7,10,.48) 84%,rgba(7,6,9,.96) 100%)}
.auth-space .auth-story:after{content:"";position:absolute;z-index:3;inset:0 -1px 0 auto;width:30%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(8,7,10,.6) 62%,#08070a 100%)}
.auth-space .auth-panel-wrap{border-left:0;background:linear-gradient(90deg,rgba(8,7,10,.52),#08070a 30%);box-shadow:none}
.auth-space .auth-card{border-color:rgba(222,201,178,.18);background:linear-gradient(145deg,rgba(38,27,45,.98),rgba(17,12,21,.99));box-shadow:0 36px 100px rgba(0,0,0,.54),0 0 0 1px rgba(168,138,190,.04)}
.auth-space .auth-card-head small{color:var(--accent-soft)}
.auth-space .auth-submit{color:#130e18;background:var(--accent);border-color:var(--accent)}
.auth-space .auth-tabs button:after{background:var(--accent-soft)}
.auth-space .auth-proof span:before{background:var(--accent-soft)}
.auth-space .auth-code-send:hover:not(:disabled){border-color:var(--accent-soft);color:var(--accent-soft)}
.auth-space .auth-story-stage{z-index:5;width:min(820px,100%);padding-top:0;margin-bottom:clamp(24px,4vh,58px)}
.auth-space .auth-story-copy{z-index:5;max-width:780px}
.auth-space .auth-story-copy h1,.auth-space .auth-story-copy>p,.auth-space .auth-story-copy .auth-proof{animation:none;opacity:1;transform:none;text-shadow:0 2px 28px rgba(0,0,0,.56)}
.auth-space .auth-kicker{margin-bottom:20px;color:rgba(222,201,178,.86)}
.auth-space .auth-kicker:before{background:linear-gradient(90deg,var(--accent),var(--accent-soft))}
.auth-space .space-login-title{max-width:none;font-size:0;line-height:1;letter-spacing:0}
.auth-space .space-login-title .title-line{display:block;white-space:nowrap}
.auth-space .space-login-title .title-line-main{font-size:clamp(38px,3.45vw,60px);font-weight:480;line-height:1.08;letter-spacing:-.045em}
.auth-space .space-login-title .title-line-detail{margin-top:14px;color:rgba(255,255,255,.86);font-size:clamp(29px,2.55vw,44px);font-weight:480;line-height:1.14;letter-spacing:-.035em}
.auth-space .space-login-title .title-line-detail em{color:var(--accent-soft);font-style:normal;font-weight:650}
.auth-space .space-login-support{max-width:620px;margin-top:26px}
.auth-space .space-login-support span{display:block}
.auth-space .space-login-support span+span{margin-top:5px;color:rgba(255,255,255,.78)}
.space-workbench{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.space-workbench-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:.9;filter:saturate(.76) brightness(.62) contrast(1.18)}
.space-workbench:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(8,7,11,.8) 0%,rgba(13,10,17,.4) 44%,rgba(10,8,13,.1) 72%,rgba(8,7,10,.3) 100%)}
.space-workbench:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(140deg,rgba(93,65,108,.14),transparent 50%),radial-gradient(ellipse at 52% 78%,rgba(225,196,145,.12),transparent 25%);mix-blend-mode:screen}
.space-asset-dock{position:absolute;z-index:3;top:34px;right:42px;display:flex;align-items:center;gap:10px;width:132px;height:56px;padding:8px 11px;border:1px solid rgba(255,255,255,.18);border-radius:12px;color:#f5eef7;background:rgba(13,10,16,.64);box-shadow:0 14px 34px rgba(0,0,0,.24);backdrop-filter:blur(10px);will-change:transform,opacity}
.space-asset-dock-icon{position:relative;width:38px;height:38px;flex:0 0 38px;border:1px solid rgba(232,205,157,.32);border-radius:9px;background:rgba(232,205,157,.06)}
.space-asset-dock-icon:before,.space-asset-dock-icon:after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1px;background:rgba(238,216,179,.68);transform:translate(-50%,-50%)}
.space-asset-dock-icon:after{transform:translate(-50%,-50%) rotate(90deg)}
.space-asset-dock-copy{display:flex;min-width:0;flex-direction:column;gap:2px}
.space-asset-dock-copy small{color:rgba(222,201,178,.58);font-size:8px;letter-spacing:.05em}
.space-asset-dock-copy strong{font-size:11px;font-weight:700;white-space:nowrap}
.space-placement-target{position:absolute;z-index:2;left:72%;top:75.5%;width:126px;height:60px;border:1px dashed rgba(236,210,167,.56);border-radius:50%;opacity:0;transform:rotate(-4deg);will-change:transform,opacity}
.space-placement-target:before{content:"";position:absolute;inset:10px;border-radius:50%;background:rgba(226,191,132,.08)}
.space-placement-target span{position:absolute;left:50%;top:50%;width:7px;height:7px;border:1px solid rgba(247,225,188,.84);border-radius:50%;background:#2a202d;transform:translate(-50%,-50%)}
.space-placeable-chair{position:absolute;z-index:4;left:0;top:0;width:clamp(84px,7.2vw,116px);height:auto;opacity:0;filter:drop-shadow(0 18px 20px rgba(0,0,0,.4));transform-origin:50% 92%;will-change:transform,opacity}
.space-motion-pointer{position:absolute;z-index:5;left:0;top:0;width:28px;height:28px;opacity:0;will-change:transform,opacity}
.space-placement-status{position:absolute;z-index:5;left:0;top:0;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(236,214,178,.28);border-radius:999px;color:#f8f0e5;background:rgba(18,13,21,.78);box-shadow:0 12px 28px rgba(0,0,0,.26);backdrop-filter:blur(8px);font-size:9px;font-weight:700;white-space:nowrap;opacity:0;will-change:transform,opacity}
.space-placement-status b{width:7px;height:7px;border-radius:50%;background:#d9b976}
@media(max-width:1000px){
  .auth-space{background:linear-gradient(180deg,#0a0810,#15101b 48%,#09070c)}
  .auth-space .auth-stage{background:linear-gradient(180deg,transparent 0%,rgba(8,7,10,.26) 48%,#08070a 100%)}
  .auth-space .auth-story{overflow:hidden;padding-inline:42px}
  .auth-space .auth-story:before{background:linear-gradient(180deg,rgba(8,6,10,.05),rgba(8,6,10,.2) 48%,rgba(8,6,10,.9) 100%)}
  .auth-space .auth-story:after{display:none}
  .auth-space .auth-panel-wrap{background:#0b0910}
  .auth-space .space-login-title .title-line-main{font-size:clamp(34px,7vw,48px)}
  .auth-space .space-login-title .title-line-detail{font-size:clamp(25px,5.2vw,36px)}
  .space-workbench-scene{object-position:52% 50%;opacity:.7}
  .space-asset-dock{right:24px;top:24px}
  .space-placement-target{left:55%;top:58%;width:104px;height:52px}
}
@media(max-width:560px){
  .auth-space .auth-story{padding-inline:18px}
  .auth-space .auth-story-stage{margin-bottom:18px}
  .auth-space .space-login-title .title-line-main{font-size:7.7vw}
  .auth-space .space-login-title .title-line-detail{margin-top:10px;font-size:6.15vw}
  .auth-space .space-login-support{margin-top:22px}
  .space-workbench-scene{object-position:53% 50%;opacity:.56}
  .space-asset-dock{top:16px;right:16px;width:106px;height:48px;padding:6px 8px}
  .space-asset-dock-icon{width:32px;height:32px;flex-basis:32px}
  .space-asset-dock-copy small{display:none}
  .space-placeable-chair{width:58px}
  .space-placement-target{left:69%;top:28%;width:68px;height:34px}
  .space-placement-status{display:none}
}
@media(prefers-reduced-motion:reduce){.space-asset-dock,.space-placement-target,.space-placeable-chair,.space-motion-pointer,.space-placement-status{will-change:auto}}
