.public-page{min-height:100vh;background:var(--bg);background-image:var(--hero-glow),var(--pattern-royal);color:var(--text)}.land-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px clamp(16px,5vw,64px);position:sticky;top:0;z-index:50;background:var(--glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid var(--border)}.land-brand{display:inline-flex;align-items:center;gap:9px;font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.land-brand::before{content:"";width:30px;height:30px;flex-shrink:0;background:url(/static/logo.png) center / contain no-repeat;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}.land-nav-links{display:flex;align-items:center;gap:16px}.land-nav-links a{color:var(--text-muted);font-weight:500;font-size:14px}.land-nav-links a.btn{color:inherit}.land-nav-links a.btn-primary{color:#fff}.land-hero{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:clamp(52px,9vw,120px) clamp(16px,5vw,64px);flex-wrap:wrap;max-width:var(--content-max);margin:0 auto}.land-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;margin-bottom:18px;border-radius:99px;background:var(--accent-weak);color:var(--accent);font-weight:600;font-size:13px;letter-spacing:-.01em}.land-title{font-size:clamp(36px,6vw,62px);line-height:1.08;font-weight:800;letter-spacing:-.035em;margin-bottom:18px;color:var(--text)}.land-sub{font-size:clamp(15px,2.2vw,19px);color:var(--text-muted);max-width:560px;margin-bottom:32px;line-height:1.65}.land-cta{display:flex;gap:12px;flex-wrap:wrap}.land-hero-art{filter:drop-shadow(0 16px 40px var(--accent-glow))}.land-hero-art svg{display:block}.land-section{padding:clamp(36px,6vw,80px) clamp(16px,5vw,64px);max-width:var(--content-max);margin:0 auto}.land-h2{font-size:clamp(24px,4vw,34px);font-weight:700;letter-spacing:-.03em;margin-bottom:30px;color:var(--text)}.land-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.land-feature,.land-price{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm);transition:transform .18s cubic-bezier(.25,.1,.25,1),box-shadow .18s cubic-bezier(.25,.1,.25,1),border-color .18s cubic-bezier(.25,.1,.25,1)}.land-feature:hover,.land-price:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.land-feature-t,.land-price-t{font-size:16px;font-weight:700;color:var(--text);margin-bottom:10px;letter-spacing:-.015em}.land-feature-d{color:var(--text-muted);font-size:13.5px;line-height:1.65}.land-price-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text-muted)}.land-price-row:last-child{border-bottom:none}.land-price-row b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.land-foot-note{margin-top:20px;color:var(--text-dim);font-size:12.5px}.land-footer{text-align:center;padding:36px 16px calc(36px + env(safe-area-inset-bottom));color:var(--text-dim);font-size:13px;border-top:1px solid var(--border)}.guide-wrap{max-width:720px;margin:0 auto}.guide-steps{display:flex;flex-direction:column;gap:14px;margin:30px 0}.guide-step{display:flex;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}.guide-step-no{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;border-radius:11px;background:var(--accent-weak);color:var(--accent)}.guide-step-t{font-weight:700;font-size:16px;margin-bottom:4px;color:var(--text);letter-spacing:-.015em}.guide-step-d{color:var(--text-muted);font-size:13.5px;line-height:1.65}.cf-turnstile-box{display:flex;justify-content:center;min-height:65px}.theme-fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:60;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--glass);color:var(--text);cursor:pointer;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:transform .15s cubic-bezier(.25,.1,.25,1),background-color .18s cubic-bezier(.25,.1,.25,1);-webkit-tap-highlight-color:transparent}.theme-fab:hover{transform:scale(1.06)}.theme-fab:active{transform:scale(.94)}.theme-fab svg{width:20px;height:20px}@media(max-width:600px){.land-hero{flex-direction:column-reverse;text-align:center;justify-content:center}.land-cta{justify-content:center}.land-hero-art svg{width:140px;height:140px}.land-nav-links{gap:10px}.land-nav-links a:not(.btn){display:none}}.landing-min{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden}.landing-center{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;padding:24px}.landing-brand{font-size:clamp(34px,7vw,58px);font-weight:800;letter-spacing:-.02em;background:linear-gradient(92deg,#ff4d6d,#ff9a3d,#ffd93d,#4dd965,#4db8ff,#9a6bff,#ff5dc8,#ff4d6d);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 2px 7px rgba(0,0,0,.45));animation:brandHue 6s linear infinite}@keyframes brandHue{to{background-position:200% center}}@media(prefers-reduced-motion:reduce){.landing-brand{animation:none}}.landing-enter{min-width:220px}.land-qq-badge{position:fixed;top:18px;left:18px;z-index:60;padding:9px 30px 9px 18px;line-height:1.25;color:#1a1400;background:linear-gradient(135deg,#ffdb3d 0%,#ffb300 100%);clip-path:polygon(0 0,100% 0,calc(100% - 18px) 100%,0 100%);box-shadow:0 6px 22px rgba(0,0,0,.30);user-select:text}.land-qq-t{font-size:12px;font-weight:700;opacity:.88}.land-qq-n{font-size:19px;font-weight:900;letter-spacing:.6px}.land-modes{position:fixed;top:16px;right:16px;z-index:60;display:inline-flex;gap:3px;padding:4px;border-radius:999px;background:rgba(18,18,24,.44);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:0 8px 26px rgba(0,0,0,.28)}.land-mode-btn{padding:7px 15px;border-radius:999px;font-size:13px;font-weight:600;border:none;background:transparent;color:rgba(255,255,255,.74);cursor:pointer;white-space:nowrap;transition:color .18s,background .18s}.land-mode-btn:hover{color:#fff;background:rgba(255,255,255,.10)}.land-mode-btn.is-on{background:#fff;color:#17181c;box-shadow:0 2px 8px rgba(0,0,0,.20)}:root[data-theme=light]:not([data-fancy=on]) .land-modes{background:rgba(255,255,255,.70);border-color:rgba(0,0,0,.08)}:root[data-theme=light]:not([data-fancy=on]) .land-mode-btn{color:#575d6e}:root[data-theme=light]:not([data-fancy=on]) .land-mode-btn:hover{color:#16181d;background:rgba(0,0,0,.05)}:root[data-theme=light]:not([data-fancy=on]) .land-mode-btn.is-on{background:var(--accent);color:#fff}:root[data-fancy=on] .public-page{background:transparent;background-image:none}@media(max-width:600px){.land-modes{top:auto;bottom:18px;right:50%;transform:translateX(50%)}.land-qq-badge{top:14px;left:14px}}

.skeleton-wrap { display: flex; flex-direction: column; gap: 10px; padding: 4px 0; }
.skeleton-row, .skeleton-card {
  position: relative; overflow: hidden; border-radius: 10px;
  background: var(--surface-2, rgba(128,128,128,.12));
  animation: skeleton-pulse 1.4s ease-in-out infinite;
}
.skeleton-row { height: 52px; }
.skeleton-card { height: 116px; }
.skeleton-row::after, .skeleton-card::after {
  content: ""; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent);
  animation: skeleton-sweep 1.4s ease-in-out infinite;
}
@keyframes skeleton-pulse { 0%,100% { opacity: .65 } 50% { opacity: 1 } }
@keyframes skeleton-sweep { 100% { transform: translateX(100%) } }
@media (prefers-reduced-motion: reduce) {
  .skeleton-row, .skeleton-card, .skeleton-row::after, .skeleton-card::after { animation: none }
}
.page-enter { animation: page-fade .18s ease-out both; }
@keyframes page-fade { from { opacity: 0; transform: translateY(4px) } to { opacity: 1; transform: none } }
.is-busy { opacity: .55; pointer-events: none; transition: opacity .12s ease; }
