/* Vacant / identity system. Keep motion and layout from the local reference. */
:root {
  --vacant-violet: #7950ed;
  --vacant-lilac: #cdb9fa;
  --vacant-ivory: #f7f3ec;
  --vacant-ink: #221c30;
  --vacant-rose: #e5b9c8;
  --bg-page: var(--vacant-ivory);
  --bg-under: #e6dcf0;
  --surface: #ece4f1;
  --surface-hover: #ded0ed;
  --surface-inverse: var(--vacant-violet);
  --text: var(--vacant-ink);
  --text-ui: var(--vacant-ink);
  --text-on-dark: #fffaf5;
  --text-50: #221c30a8;
  --text-40: #221c309c;
  --text-30: #221c308c;
  --divider: #221c3026;
  --focus-ring: 0 0 0 2px var(--vacant-violet);
  --hero-gradient: radial-gradient(ellipse at 66% 5%, #cdb9fa9e, transparent 58%), linear-gradient(165deg, #e5daed 0%, #f7f3ec 72%);
  --btn-halo: 0 0 5px #cdb9fa, 1px 3px 9px #7950ed55, 1px 6px 18px #e5b9c880;
}
html body .logo {align-items:center;gap:10px;font-size:29px;letter-spacing:-.07em;line-height:1}
html body .logo__mark {width:30px;height:30px;margin:0;color:var(--vacant-violet)}
html body .logo__word {transform:translateY(-1px)}
html body .header__left:before,html body .header__right {background:#f7f3eceb;backdrop-filter:blur(18px);box-shadow:0 5px 28px #221c3006}
html body .header.is-over-footer .header__left:before,html body .header.is-over-footer .header__right {background:#f7f3ec}
html body .hero__content {padding-bottom:85px;gap:26px}
html body .hero__title {white-space:normal;text-align:center;font-size:clamp(48px,7.4vw,116px);max-width:15ch;letter-spacing:-.055em;line-height:.98}
html body .hero__lead {color:#514560;max-width:36ch;letter-spacing:-.018em;line-height:1.35;margin-top:0}
html body .hero__note {font-size:12px;letter-spacing:.045em;opacity:1;color:#675975}
html body .btn--light .btn__content:after {background:#ffffff80;border:1px solid #7950ed25}
html body .btn:hover .btn__content:before {animation:none;opacity:1;transform:scale(1.025)}
html body .btn__content {letter-spacing:-.005em}
html body .loader {background:var(--vacant-ink);color:var(--vacant-ivory)}
html body .loader__text {letter-spacing:-.03em;font-size:clamp(28px,4vw,50px)}
html body .cursor__pill {background:var(--vacant-violet);color:var(--vacant-ivory);box-shadow:0 4px 22px #7950ed29}
html body .lp-build {background:linear-gradient(180deg,#f7f3ec 0%,#ebe2f3 35%,#d4c2f1 100%)}
html body .loop__logo {width:44%;color:var(--vacant-lilac);filter:drop-shadow(0 0 18px #7950ed59)}
html body .lp-eq__coin {background:var(--vacant-violet);color:var(--vacant-ivory)}
html body .footer {background:#e6dcf0}
html body .footer__mark {padding-inline:4vw}
html body .footer__mark svg {width:100%;margin:0}
html body .app-tab.is-active,html body .app-bar__tab.is-active {color:var(--vacant-violet)}
html body .app-preview {background:#e7dcfa;color:#514068}
html body .app-preview__tag {color:var(--vacant-violet)}
html body .lp-btn:not(.lp-btn--ghost) {background:var(--vacant-violet);color:#fffaf5}
html body .preview__launch {background:var(--vacant-lilac);color:var(--vacant-ink)}
.vacant-dialog {position:fixed;margin:auto;max-width:460px;width:calc(100% - 40px);border:1px solid #7950ed24;border-radius:28px;padding:36px;background:var(--vacant-ivory);color:var(--vacant-ink);box-shadow:0 30px 120px #221c3040}
.vacant-dialog::backdrop {background:#221c3066;backdrop-filter:blur(8px)}
.vacant-dialog img {width:45px;margin-bottom:28px}
.vacant-dialog h2 {font-size:32px;font-weight:400;letter-spacing:-.04em;line-height:1.1;margin:0 0 18px}
.vacant-dialog p {font-size:16px;line-height:1.6;color:#675975;margin:0 0 26px}
.vacant-dialog button {background:var(--vacant-violet);color:#fffaf5;border-radius:12px;padding:12px 20px;font-size:15px}
@media(max-width:600px){
  html body .logo {font-size:26px}
  html body .logo__mark {width:27px;height:27px}
  html body .hero__title {font-size:clamp(46px,12.5vw,70px);max-width:11ch}
  html body .hero__lead {font-size:18px;max-width:29ch}
  html body .hero__content {gap:24px;padding-bottom:55px}
  html body .hero__note {max-width:30ch;margin-inline:auto;line-height:1.55}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.vacant-dialog::backdrop{backdrop-filter:none}}
