/* Cison — landing + auth (public) surfaces · s/public_v100.css  (Phase 5.7)
   ─────────────────────────────────────────────────────────────────────────
   Loaded ONLY by the lean `public` skeleton (no app chrome, no jQuery, no
   Font Awesome), AFTER global_v100.css — so it reads the brand tokens defined
   there (--ruby/--ink/--font-sans/--font-mono/jewels …) and owns the full-page
   layout for the logged-out landing / sign-up / invite surfaces. The in-app
   component layer (components_v100.css) is NOT present here.

   Visual language is the locked Journey (invite/s/preview_v100.css): dark hero
   on the near-black substrate, jewel-tone glow, Geist sans + Geist Mono
   eyebrows, generous type — but simpler (single-screen, one card). Sign-up /
   invite forms sit on a calm cream surface in a white card.

   Font-size floor (project rule + font_floor audit): nothing below 0.875rem
   except mono/eyebrow/label/footnote classes, which may sit at 0.75rem. Always
   rem, never px for font-size. */

:root { --mk-cream: #FAF7F0; --mk-substrate: #0C0B0A; }


/* ══ Shared bits ══════════════════════════════════════════════════════════ */
.mk-eyebrow { font-family: var(--font-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; margin: 0; }
.mk-footnote { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.04em; color: var(--ink-3); margin: 0; }
.mk-error { color: var(--ruby-facet); }

/* Buttons — pill, Journey-weight. Primary = ink fill, ghost = outline. */
.mk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; font-family: var(--font-sans); font-weight: 600; font-size: 1rem; letter-spacing: -0.01em; padding: 0.8rem 1.7rem; border-radius: var(--radius-pill); border: 1px solid transparent; text-decoration: none; cursor: pointer; transition: transform 120ms ease, background 120ms ease, border-color 120ms ease; }
.mk-btn:hover { text-decoration: none; transform: translateY(-1px); }
.mk-btn-primary { background: var(--ink); color: var(--mk-cream); box-shadow: var(--shadow-pop); }
.mk-btn-primary:hover { background: #000; }
.mk-btn-ghost { background: transparent; border-color: var(--rule); color: var(--ink); }
.mk-btn-ghost:hover { background: var(--surface-soft); }
.mk-btn-block { width: 100%; }
.mk-btn img { display: block; }

/* ══ Top brand bar (shared across public pages) ════════════════════════ */
.mk-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; max-width: 64rem; margin: 0 auto; padding: 1.6rem clamp(1.25rem, 4vw, 2.5rem) 0; }
.mk-brand { display: inline-flex; align-items: center; gap: 0.6rem; color: inherit; font-size: 1.25rem; font-weight: 600; letter-spacing: -0.02em; text-decoration: none; }
.mk-brand:hover { text-decoration: none; }
.mk-brand img { width: 1.6rem; height: 1.6rem; display: block; }
.mk-pill { font-family: var(--font-mono); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; padding: 0.4rem 0.85rem; border-radius: var(--radius-pill); border: 1px solid var(--rule); color: var(--ink-3); }

/* ══ Landing (/) — dark single-screen hero ═══════════════════════════════ */
.mk-landing { min-height: 100vh; display: flex; flex-direction: column; background: var(--mk-substrate); color: var(--mk-cream); font-family: var(--font-sans); }
.mk-landing .mk-top { color: var(--mk-cream); }
.mk-landing .mk-pill { color: rgba(255,255,255,0.55); border-color: rgba(255,255,255,0.16); }
.mk-landing .mk-brand { color: var(--mk-cream); }
.mk-brand .mk-logo { height: 1.85rem; width: auto; display: block; }
.mk-landing .mk-signin { display: inline-flex; align-items: center; gap: 0.45rem; font-family: var(--font-sans); font-size: 0.95rem; font-weight: 600; color: rgba(255,255,255,0.66); text-decoration: none; transition: color 120ms ease; }
.mk-landing .mk-signin:hover { color: var(--mk-cream); text-decoration: none; }

.mk-hero { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 4rem 2rem 5rem; overflow: hidden; }
.mk-hero-glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(58% 48% at 50% 36%, rgba(46,139,87,0.18), transparent 62%), radial-gradient(48% 50% at 28% 72%, rgba(123,91,181,0.14), transparent 60%), radial-gradient(46% 48% at 76% 70%, rgba(42,86,168,0.13), transparent 60%); }
.mk-hero-inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; max-width: 52rem; }
.mk-hero-mark { width: clamp(112px, 18vw, 160px); height: auto; }
.mk-hero-invite { margin-top: 0.25rem; }
.mk-hero-title { margin: 0; font-size: clamp(2.8rem, 7.5vw, 5.6rem); line-height: 0.96; font-weight: 700; letter-spacing: -0.045em; }
.mk-hero-lede { margin: 0; font-size: clamp(1.05rem, 1.7vw, 1.3rem); line-height: 1.55; color: rgba(255,255,255,0.84); max-width: 36rem; }
.mk-hero-cta { display: flex; flex-direction: column; align-items: center; gap: 0.85rem; margin-top: 0.6rem; }
.mk-hero .mk-btn-ghost { border-color: rgba(255,255,255,0.22); color: var(--mk-cream); }
.mk-hero .mk-btn-ghost:hover { background: rgba(255,255,255,0.08); }
.mk-hero-note { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.05em; color: rgba(255,255,255,0.5); }
.mk-hero-note a { color: rgba(255,255,255,0.82); }

/* the jewel row — the logo's five facets, a quiet brand signature */
.mk-jewels { display: flex; gap: 0.5rem; margin-top: 0.4rem; }
.mk-jewels span { width: 0.7rem; height: 0.7rem; border-radius: 50%; }
.mk-jewels .j-ruby { background: var(--ruby); }
.mk-jewels .j-amethyst { background: var(--amethyst); }
.mk-jewels .j-emerald { background: var(--emerald); }
.mk-jewels .j-sapphire { background: var(--sapphire); }
.mk-jewels .j-citrine { background: var(--citrine); }

/* ══ Auth surfaces (signup / invite / guardian) — calm cream, one card ════ */
.mk-page { min-height: 100vh; display: flex; flex-direction: column; background: var(--surface); color: var(--ink); font-family: var(--font-sans); }
.mk-shell { flex: 1 1 auto; width: 100%; max-width: 34rem; margin: 0 auto; padding: 2.5rem clamp(1.25rem, 5vw, 2rem) 4rem; display: flex; flex-direction: column; }

.mk-card { background: var(--panel); border: 1px solid var(--rule); border-radius: var(--radius-card); padding: clamp(1.5rem, 4vw, 2.25rem); }
.mk-card-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.5rem; margin-bottom: 1.5rem; }
.mk-card-head .mk-mark { width: 56px; height: 56px; }
.mk-card-head .mk-mark-home { display: inline-flex; line-height: 0; border-radius: 50%; }   /* the C mark is the way home when the page opens on the card */
.mk-page.mk-solo .mk-shell { padding-top: clamp(2.5rem, 9vh, 5.5rem); }                    /* no top bar (sign-in): the card is the first thing, given room to breathe */
.mk-title { margin: 0.25rem 0 0; font-size: clamp(1.6rem, 4vw, 2.1rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; }
.mk-lede { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-2); }
.mk-lede strong { color: var(--ink); }
.mk-body { font-size: 1rem; line-height: 1.55; color: var(--ink-2); margin: 0 0 0.75rem; }

/* The "X invited you / and is vouching for you" chip (§2.1) */
.mk-vouch { display: inline-flex; align-items: center; gap: 0.7rem; padding: 0.5rem 1rem 0.5rem 0.5rem; border-radius: var(--radius-pill); background: var(--surface-soft); border: 1px solid var(--rule); }
.mk-vouch .mk-avatar { width: 2.25rem; height: 2.25rem; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 600; color: var(--mk-cream); background: linear-gradient(135deg, var(--ruby), var(--amethyst)); }
.mk-vouch .mk-vouch-txt { display: flex; flex-direction: column; text-align: left; line-height: 1.3; }
.mk-vouch .mk-vouch-name { font-size: 0.9375rem; font-weight: 600; }
.mk-vouch .mk-vouch-sub { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); margin-top: 0.1rem; }

/* Inline error banner (bad / expired invite link). */
.mk-error-box { background: var(--ruby-soft); border: 1px solid var(--ruby); border-radius: 0.625rem; padding: 0.75rem 1rem; color: var(--ruby-facet); font-size: 0.9375rem; line-height: 1.45; }
.mk-error-box a { color: inherit; font-weight: 600; text-decoration: underline; }

/* Forms — self-contained (components_v100 is not loaded here). */
.mk-form { display: flex; flex-direction: column; gap: 1rem; }
.mk-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.mk-field { display: flex; flex-direction: column; gap: 0.35rem; }
.mk-field > span { font-weight: 600; font-size: 0.9375rem; }
.mk-field .mk-opt { font-weight: 400; color: var(--ink-3); }
.mk-field input, .mk-field select { width: 100%; padding: 0.55rem 0.75rem; font-family: var(--font-sans); font-size: 1rem; color: var(--ink); background: var(--panel); border: 1px solid var(--rule); border-radius: 0.5rem; }
.mk-field input:focus, .mk-field select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.mk-field-hint { font-size: 0.875rem; color: var(--ink-3); line-height: 1.45; }

/* The minor-guardian heads-up note (left-rule callout). */
.mk-note { padding: 0.6rem 0.85rem; border-radius: 0.625rem; background: var(--surface-soft); border-left: 3px solid var(--sapphire); color: var(--ink-2); font-size: 0.875rem; line-height: 1.5; margin: 0; }

.mk-actions { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.25rem; }
.mk-foot { text-align: center; margin-top: 1.5rem; }

/* "or" divider between the primary flow and an alternate (passkey) one. */
.mk-or { display: flex; align-items: center; gap: 0.75rem; font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); margin: 1rem 0; }
.mk-or::before, .mk-or::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--rule); }

@media (max-width: 480px) {
	.mk-form-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.mk-btn:hover { transform: none; }
}

/* ══ Share panel — the "almost there" guardian link (views/signup/submit.php) ═══
   The minor hands the sign-off link to their guardian themselves (S13). Same
   shape as the app's invite share panel (components_v100.css), in mk dress. */
.mk-share-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: 1rem; padding: 0.75rem 0.875rem; border: 1px solid var(--rule); border-radius: 0.625rem; background: var(--surface-soft); }
.mk-share-link { font-family: var(--font-mono); font-size: 0.95rem; letter-spacing: 0.01em; color: var(--ink); overflow-wrap: anywhere; }
.mk-share-copybtn { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--rule); border-radius: 0.5rem; background: transparent; color: var(--ink-2); font-size: 1rem; cursor: pointer; }
.mk-share-copybtn:hover { background: var(--surface-soft); color: var(--ink); }
.mk-share-label { display: block; margin: 1rem 0 0.375rem; font-weight: 600; font-size: 0.9375rem; }
.mk-share-label .mk-field-hint { font-weight: 400; }
.mk-share-copy { width: 100%; resize: vertical; padding: 0.625rem 0.75rem; border: 1px solid var(--rule); border-radius: 0.625rem; font: inherit; line-height: 1.5; color: var(--ink); background: var(--panel); }
.mk-share-actions { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.875rem; flex-wrap: wrap; }
