/* =====================================================================
   WALLZY: the homepage (index.html), 2026-10-20
   Direction B from the redesign: deck-box dark, foil gold, Bebas Neue for
   headings, with a files table and a plan comparison.
   Loaded after public.css, which brings the shared pieces (.btn, the
   sign-in dialog, the account menu, the plan cards). The page is dark in
   both themes, so it sets the --ui-* roles to their dark values here:
   everything drawn from them (plan cards, dialogs, menus) matches it.
   Spacing on a 4/8 grid: --s1 4px … --s10 128px.
   ===================================================================== */
/* Bebas Neue (OFL, vendor/fonts/bebasneue-400.woff2) inline, 14 KB: the headline is the
   largest thing on the first screen, and a font that arrives later repaints it
   (a slow LCP on phones). Inline it is there for the first paint, from the disk too. */
@font-face { font-family: "Bebas Neue"; src: url("data:font/woff2;base64,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") format("woff2"); font-weight: 400; font-display: swap; }

/* The colour roles, tokens, header, footer and buttons are in brand.css (UX-08),
   shared with the other public pages: this page's <body> is "landing site-dark". */
body.landing {
  --t1: clamp(52px, 6.4vw, 96px); --t2: clamp(40px, 5.2vw, 72px); --t3: clamp(24px, 2.2vw, 30px);
  margin: 0;
  font: 17px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; -webkit-font-smoothing: antialiased;
  overflow-x: hidden; overflow-y: auto;
}
body.landing.has-overlay { overflow: hidden; }
html:has(body.landing) { scroll-padding-top: 80px; background: #0b0d14; }
.landing img { max-width: 100%; height: auto; display: block; }
.landing h1, .landing h2, .landing h3 { font-family: var(--display); font-weight: 400; line-height: .98; letter-spacing: .01em; margin: 0; color: var(--paper); }
.landing .foil { background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; }
.skip-link { position: absolute; left: -999px; top: 8px; z-index: 60; background: var(--gold); color: #14110a; padding: 10px 14px; border-radius: 6px; font-weight: 700; }
.skip-link:focus { left: 8px; }

/* Buttons: one gold, one outline. */
.landing .btn { min-height: 44px; border-radius: var(--r-btn); font-weight: 700; text-decoration: none; }
/* The fan and the glow reach past the content: clip them at the screen, not the column. */
.landing main { overflow-x: clip; }
.landing .btn-lg { min-height: 52px; padding: 14px 26px; font-size: 16px; }
.landing .hero .btn-primary, .landing .cta .btn-primary { box-shadow: 0 10px 30px -10px rgba(233, 185, 92, .6); }

/* ---------- Header ---------- */
.landing .home-menu { display: flex; align-items: center; gap: var(--s5); margin-left: auto; }
.landing .menu-btn { display: none; width: 44px; height: 44px; border: 1px solid var(--edge); border-radius: var(--r-btn); background: transparent; cursor: pointer; padding: 0; }
.landing .menu-btn span, .landing .menu-btn span::before, .landing .menu-btn span::after { display: block; width: 18px; height: 2px; background: var(--paper); margin: auto; position: relative; content: ""; }
.landing .menu-btn span::before { position: absolute; top: -6px; }
.landing .menu-btn span::after { position: absolute; top: 6px; }

/* The gallery challenge, when one runs. */
.landing .home-challenge { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px; width: var(--wrap); margin: var(--s5) auto 0;
  padding: 12px 18px; border-radius: var(--r-panel); background: var(--ink-2); border: 1px solid var(--edge); font-size: 15px; }
.landing .home-challenge a { color: var(--gold); font-weight: 700; }
.landing .home-challenge .hc-kind { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }
.landing .home-challenge .hc-meta { color: var(--mute); }
.landing .home-challenge .hc-sep { width: 1px; height: 16px; background: var(--edge-2); margin: 0 4px; }

/* ---------- Hero: the words beside a fan of cards, the live one in front ---------- */
.landing .hero { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s6); align-items: center;
  width: var(--wrap); margin: 0 auto; padding: var(--s8) 0 var(--s7); }
.landing .hero::before { content: ""; position: absolute; inset: -10% -30% -10%; z-index: -1; pointer-events: none;
  background: radial-gradient(40% 45% at 72% 42%, rgba(143, 123, 255, .26), transparent 70%), radial-gradient(30% 32% at 22% 18%, rgba(56, 225, 255, .12), transparent 70%); }
.landing .eyebrow { display: inline-flex; gap: 8px; align-items: center; margin: 0 0 var(--s5); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.landing .eyebrow::before { content: ""; width: 24px; height: 2px; background: var(--foil); }
.landing .hero h1 { font-size: var(--t1); }
.landing .lede { font-size: 19px; color: var(--mute); max-width: 32em; margin: var(--s5) 0 var(--s6); }
.landing .hero-cta { display: flex; flex-wrap: wrap; gap: var(--s3); }
.landing .hero-note { margin: var(--s4) 0 0; font-size: 14px; color: var(--mute-2); }
.landing .hero-art { position: relative; min-height: 620px; padding-bottom: 88px; display: grid; place-items: center; --holo-w: min(340px, 64vw); }
.landing .fan-card { position: absolute; width: min(250px, 44vw); border-radius: 14px; box-shadow: 0 30px 50px -20px rgba(0, 0, 0, .7); transition: transform .6s var(--ease); pointer-events: none; }
.landing .fan-1 { transform: translate(-62%, -4%) rotate(-14deg); opacity: .85; }
.landing .fan-2 { transform: translate(62%, -4%) rotate(14deg); opacity: .85; }
.landing .fan-3 { transform: translate(-108%, 6%) rotate(-24deg); opacity: .45; }
.landing .fan-4 { transform: translate(108%, 6%) rotate(24deg); opacity: .45; }
.landing .hero-art:hover .fan-1 { transform: translate(-72%, -6%) rotate(-17deg); }
.landing .hero-art:hover .fan-2 { transform: translate(72%, -6%) rotate(17deg); }
.landing .hero-art .holo-stage { position: relative; z-index: 2; }
.landing .holo-ui { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; text-align: center; }
.landing .holo-hint { margin: 10px 0 0; font-size: 13px; color: var(--mute-2); }

/* The live card. Its shine is masked by the card's own picture. */
.holo-stage { perspective: 1200px; display: grid; place-items: center; touch-action: pan-y; }
.holo {
  --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%; --flip: 0deg;
  position: relative; width: var(--holo-w, min(340px, 64vw)); aspect-ratio: 520 / 728; padding: 0; border: 0; background: none; color: inherit;
  transform-style: preserve-3d; transform: rotateX(var(--rx)) rotateY(calc(var(--ry) + var(--flip)));
  transition: transform .12s ease-out; cursor: pointer; border-radius: 4%;
}
.holo.is-turning { transition: transform .7s cubic-bezier(.2, .8, .2, 1); }
.holo.is-back { --flip: 180deg; }
.holo.no-back { cursor: default; }
.holo:focus-visible { outline-offset: 10px; }
.holo-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; filter: drop-shadow(0 28px 36px rgba(0, 0, 0, .45)); }
.holo-back { transform: rotateY(180deg); }
.holo-face img { width: 100%; height: 100%; display: block; pointer-events: none; user-select: none; object-fit: cover; }
.holo-shine, .holo-glare { position: absolute; inset: 0; pointer-events: none; -webkit-mask: var(--pic) center / 100% 100% no-repeat; mask: var(--pic) center / 100% 100% no-repeat; }
.holo-back .holo-shine, .holo-back .holo-glare { -webkit-mask-image: var(--picb); mask-image: var(--picb); }
.holo-shine { background: linear-gradient(115deg, transparent 20%, #ff4fd8 32%, #ffe14f 40%, #4fffb0 48%, #4fc3ff 56%, #b04fff 64%, transparent 76%);
  background-size: 260% 260%; background-position: var(--mx) var(--my); mix-blend-mode: color-dodge; opacity: .22; }
.holo-glare { background: radial-gradient(circle at var(--mx) var(--my), rgba(255, 255, 255, .5), rgba(255, 255, 255, .06) 32%, transparent 60%); mix-blend-mode: overlay; }
.holo-picks { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.holo-picks button { font: inherit; font-size: 14px; min-height: 36px; padding: 6px 14px; border-radius: 999px; cursor: pointer; border: 1px solid var(--edge-2); background: rgba(11, 13, 20, .6); color: var(--paper); }
.holo-picks button:hover { border-color: var(--paper); }
.holo-picks button[aria-pressed="true"] { background: var(--gold); color: #14110a; border-color: transparent; }

/* ---------- At a glance ---------- */
.landing .proof { border-block: 1px solid var(--edge); background: var(--ink-2); }
.landing .proof ul { list-style: none; margin: 0 auto; padding: 0; width: var(--wrap); display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.landing .proof li { padding: var(--s5); border-left: 1px solid var(--edge); }
.landing .proof li:first-child { border-left: 0; padding-left: 0; }
.landing .proof strong { display: block; font: 400 36px/1.05 var(--display); letter-spacing: .02em; color: var(--paper); }
.landing .proof span { font-size: 14px; color: var(--mute); }

/* ---------- Sections ---------- */
.landing .section { width: var(--wrap); max-width: none; margin: 0 auto; padding: var(--s9) 0 0; }
.landing .section-head { display: flex; flex-wrap: wrap; gap: var(--s4) var(--s6); align-items: end; justify-content: space-between; margin: 0 0 var(--s7); text-align: left; max-width: none; }
.landing .section-head h2 { font-size: var(--t2); max-width: 14em; }
.landing .section-head p { color: var(--mute); max-width: 32em; margin: 0; font-size: 17px; }
.landing .section-head p a { color: var(--gold); }
.landing .section-narrow { width: min(860px, calc(100% - 32px)); }

/* Templates: a rail to swipe or scroll, with buttons for a mouse. */
.landing .tpl-strip { list-style: none; margin: 0; padding: 0 0 var(--s5); display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 250px);
  grid-template-columns: none; gap: var(--s5); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
  scrollbar-width: thin; scrollbar-color: var(--edge-2) transparent; }
.landing .tpl-strip li { scroll-snap-align: start; background: none; border: 0; padding: 0; text-align: left; }
.landing .tpl-strip img { width: 100%; border-radius: 12px; box-shadow: 0 20px 40px -24px #000; transition: transform .4s var(--ease), box-shadow .4s; }
.landing .tpl-strip li:hover img { transform: translateY(-6px) rotate(-1.2deg); box-shadow: 0 30px 50px -20px rgba(143, 123, 255, .45); }
.landing .tpl-strip h3 { font-size: 28px; margin-top: var(--s4); }
.landing .tpl-strip h3 a { color: var(--paper); text-decoration: none; }
.landing .tpl-strip h3 a::after { content: ""; position: absolute; inset: 0; }
.landing .tpl-strip li { position: relative; }
.landing .tpl-strip p { margin: 4px 0 0; font-size: 14px; color: var(--mute); }
.landing .tier { display: inline-block; font: 700 11px/1 system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 5px 7px; border-radius: 4px; margin-left: 6px; vertical-align: 7px; background: var(--ink-3); color: var(--mute); }
.landing .tier.pg-tier-pro { background: var(--gold); color: #14110a; }
.landing .tier.pg-tier-studio { background: #6b5cff; color: #fff; }
.landing .rail-foot { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); margin-top: var(--s3); }
.landing .more { margin: 0; }
.landing .more a { color: var(--gold); font-weight: 700; text-underline-offset: 4px; }
.landing .rail-btns { display: flex; gap: var(--s2); }
.landing .rail-btns button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--edge-2); background: transparent; color: var(--paper); font-size: 18px; cursor: pointer; }
.landing .rail-btns button:hover { border-color: var(--paper); }

/* How it works */
.landing .steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); counter-reset: step; }
.landing .steps li { counter-increment: step; position: relative; overflow: hidden; background: var(--ink-2); border: 1px solid var(--edge); border-radius: var(--r-card); padding: var(--s6); }
.landing .steps li::before { content: counter(step, decimal-leading-zero); position: absolute; right: 16px; top: 8px; font: 400 96px/1 var(--display); color: transparent; -webkit-text-stroke: 1px var(--edge-2); }
.landing .steps h3 { font-size: var(--t3); position: relative; }
.landing .steps p { color: var(--mute); margin: var(--s3) 0 var(--s5); position: relative; }
.landing .steps img { border-radius: 8px; aspect-ratio: 16 / 10; object-fit: cover; object-position: top left; border: 1px solid var(--edge); }

/* What it does: tiles of different sizes, then the files table. */
.landing .feat-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(200px, auto); gap: var(--s5); }
.landing .feat-grid li { display: flex; flex-direction: column; overflow: hidden; background: var(--ink-2); border: 1px solid var(--edge); border-radius: var(--r-card); padding: var(--s6); }
.landing .feat-grid h3 { font-size: var(--t3); }
.landing .feat-grid p { color: var(--mute); margin: var(--s3) 0 0; font-size: 15px; }
.landing .feat-grid img { margin-top: auto; padding-top: var(--s5); border-radius: 8px; aspect-ratio: 16 / 10; object-fit: cover; object-position: top left; }
.landing .feat-grid .tile-big { grid-column: span 2; grid-row: span 2; background: linear-gradient(160deg, #1d1b33, var(--ink-2) 60%); }
.landing .feat-grid .tile-big h3 { font-size: clamp(36px, 4vw, 56px); }
.landing .feat-grid .tile-big p { font-size: 18px; max-width: 26em; }
.landing .feat-grid .tile-wide { grid-column: span 2; }
.landing .feat-grid .tile-wide img { aspect-ratio: 21 / 9; }
.landing .specs-wrap { margin-top: var(--s7); overflow-x: auto; position: relative; }
.landing .specs { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--ink-2); border: 1px solid var(--edge); border-radius: var(--r-panel); overflow: hidden; }
.landing .specs caption { text-align: left; font: 400 var(--t3)/1 var(--display); padding-bottom: var(--s4); color: var(--paper); }
.landing .specs th, .landing .specs td { text-align: left; padding: 14px var(--s5); border-top: 1px solid var(--edge); vertical-align: top; }
.landing .specs thead th { border-top: 0; background: var(--ink-3); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--mute); }
.landing .specs tbody th { font-weight: 700; color: var(--paper); white-space: nowrap; }
.landing .specs td { color: var(--mute); }

/* New this week (G7) as the community band. */
.landing .fresh { width: auto; padding: var(--s9) max(16px, calc((100% - 1240px) / 2)); margin-top: var(--s9); background: var(--ink-2); border-block: 1px solid var(--edge); }
.landing .fresh-strip { grid-auto-columns: minmax(170px, 210px); }
.landing .fresh-strip h3 { font-size: 22px; }

/* Pricing: the plan cards (pricing.js), on these roles, and the comparison. */
.landing #pricing .pricing-top { justify-content: flex-start; }
.landing .plan-card { background: var(--ink-2); border-radius: var(--r-card); padding: var(--s6); }
.landing .plan-card h3 { font: 400 34px/1 var(--display); color: var(--paper); }
.landing .plan-card.is-highlight { background: linear-gradient(180deg, #221f3c, var(--ink-2)); border-color: #6b5cff; box-shadow: 0 0 0 1px rgba(107, 92, 255, .4) inset, 0 24px 50px -24px rgba(107, 92, 255, .6); }
.landing .plan-price strong { font: 400 56px/1 var(--display); letter-spacing: .01em; }
.landing .plan-card li { font-size: 14.5px; color: var(--mute); }
.landing .plan-card .btn { min-height: 48px; }
.landing .plan-compare-wrap { margin-top: var(--s7); overflow-x: auto; position: relative; }
.landing .plan-compare { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; background: var(--ink-2); border: 1px solid var(--edge); border-radius: var(--r-panel); overflow: hidden; }
.landing .plan-compare caption { text-align: left; font: 400 var(--t3)/1 var(--display); padding-bottom: var(--s4); color: var(--paper); }
.landing .plan-compare th, .landing .plan-compare td { padding: 13px var(--s5); border-top: 1px solid var(--edge); text-align: center; }
.landing .plan-compare thead th { border-top: 0; background: var(--ink-3); font: 400 22px/1 var(--display); letter-spacing: .04em; color: var(--paper); }
.landing .plan-compare th[scope="row"] { text-align: left; font-weight: 500; color: var(--paper); }
.landing .plan-compare td { color: var(--mute); }
.landing .plan-compare .is-hl { background: rgba(107, 92, 255, .08); }
.landing .plan-compare .pc-yes { color: var(--gold); font-weight: 800; }
.landing .plan-compare .pc-no { color: var(--mute-2); }

/* Questions */
.landing .home-faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s7); align-items: start; }
.landing .home-faq .section-head { margin: 0; display: block; }
.landing .faq-list { max-width: none; margin: 0; }
.landing .faq-list details { border: 0; border-bottom: 1px solid var(--edge); border-radius: 0; background: none; padding: 0; margin: 0; }
.landing .faq-list summary { cursor: pointer; list-style: none; position: relative; padding: var(--s5) var(--s7) var(--s5) 0; font-weight: 600; font-size: 18px; color: var(--paper); }
.landing .faq-list summary::-webkit-details-marker { display: none; }
.landing .faq-list summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 28px; font-weight: 400; color: var(--gold); transition: transform .2s; }
.landing .faq-list details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.landing .faq-list details p, .landing .faq-list details .plain { margin: 0 0 var(--s5); color: var(--mute); }

/* Where cards are kept (short, the whole story behind a click), custom text sections. */
.landing #privacy .section-head { display: block; }
.landing #privacy .section-head h2 { font-size: var(--t3); }
.landing #privacy .section-head p { margin-top: var(--s3); max-width: none; }
.landing .privacy-more { border: 1px solid var(--edge); border-radius: var(--r-panel); padding: 0 var(--s5); background: var(--ink-2); }
.landing .privacy-more summary { cursor: pointer; padding: var(--s4) 0; font-weight: 700; color: var(--gold); }
.landing .plain { color: var(--mute); }
.landing .plain p, .landing .plain ul { margin: 0 0 var(--s4); }
.landing .plain li { margin: 6px 0; }
.landing .plain strong { color: var(--paper); }
.landing .plain a { color: var(--gold); }

/* The closing call */
.landing .cta { position: relative; isolation: isolate; overflow: hidden; text-align: center; width: auto; max-width: none; margin: var(--s9) 0 0; padding: var(--s10) 16px; border: 0; border-radius: 0; background: none; }
.landing .cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(50% 60% at 50% 100%, rgba(233, 185, 92, .22), transparent 70%); }
.landing .cta h2 { font-size: var(--t1); }
.landing .cta p { color: var(--mute); margin: var(--s4) auto var(--s6); max-width: 30em; font-size: 18px; }

/* Footer */

/* ---------- Narrower screens ---------- */
@media (max-width: 1100px) {
  .landing .home-nav { gap: var(--s4); }
}
@media (max-width: 1023px) {
  .landing .menu-btn { display: block; }
  .landing .home-menu { display: none; }
  .landing .home-actions { margin-left: auto; }
  body.landing.menu-open .home-menu {
    display: flex; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0;
    padding: var(--s3) 16px var(--s5); background: var(--ink); border-bottom: 1px solid var(--edge); box-shadow: 0 20px 40px -20px #000;
  }
  body.landing.menu-open .home-nav { flex-direction: column; gap: 0; }
  body.landing.menu-open .home-nav a { padding: 14px 0; font-size: 17px; color: var(--paper); border-bottom: 1px solid var(--edge); }
  body.landing.menu-open [data-auth-slot] { padding-top: var(--s4); }
  body.landing.menu-open [data-auth-slot] > .btn { flex: 1; min-height: 44px; }
  .landing .hero { grid-template-columns: minmax(0, 1fr); padding-top: var(--s7); }
  .landing .steps { grid-template-columns: minmax(0, 1fr); }
  .landing .feat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing .home-faq { grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
  .landing .proof ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing .proof li:nth-child(odd) { border-left: 0; padding-left: 0; }
  .landing .proof li:nth-child(n+3) { border-top: 1px solid var(--edge); }
}
@media (max-width: 640px) {
  body.landing { font-size: 16px; }
  .landing .hero { padding: var(--s6) 0 var(--s6); }
  .landing .hero-cta .btn { flex: 1 1 100%; }
  .landing .hero-art { min-height: 520px; padding-bottom: 96px; --holo-w: min(270px, 68vw); }
  .landing .fan-3, .landing .fan-4 { display: none; }
  .landing .fan-card { width: min(190px, 46vw); }
  .landing .section { padding-top: var(--s8); }
  .landing .feat-grid { grid-template-columns: minmax(0, 1fr); }
  .landing .feat-grid .tile-big, .landing .feat-grid .tile-wide { grid-column: auto; grid-row: auto; }
  .landing .proof strong { font-size: 28px; }
  .landing .proof li { padding: var(--s4) var(--s3); }
  .landing .specs th, .landing .specs td { padding: 12px; }
  .landing .plan-compare-wrap { display: none; }       /* the plan cards say it on a phone */
  .landing .fresh { padding-top: var(--s8); padding-bottom: var(--s8); margin-top: var(--s8); }
  .landing .cta { padding: var(--s9) 16px; margin-top: var(--s8); }
  .landing .cta .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .landing .fan-card, .landing .tpl-strip img, .holo, .holo.is-turning { transition: none; }
}
.landing .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* A questions section an admin added (api/home.php) is one column. */
.landing .section-narrow.home-faq { display: block; }
.landing .section-narrow.home-faq .section-head { margin-bottom: var(--s5); }
/* The page is dark in both themes: beat the light theme's own rules. */

