:root {
  --night: #071626;
  --night-2: #0d2237;
  --ivory: #f5f0e7;
  --paper: #fbf9f4;
  --champagne: #c9ad7b;
  --champagne-light: #e2cfaa;
  --ink: #0b1b2b;
  --muted: #65707a;
  --line: rgba(11, 27, 43, .14);
  --danger: #a33d43;
  --success: #247253;
  --shadow: 0 24px 70px rgba(7, 22, 38, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #b98d42; outline-offset: 4px; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; background: white; color: var(--ink); padding: 12px 16px; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.site-header { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 0 clamp(22px, 5vw, 80px); background: var(--night); color: var(--ivory); border-bottom: 1px solid rgba(255,255,255,.12); }
.wordmark { font-size: 25px; font-weight: 650; letter-spacing: -1px; white-space: nowrap; }
.wordmark span { color: var(--champagne-light); }
.wordmark small { margin-left: 7px; color: rgba(245,240,231,.64); font-size: 10px; text-transform: uppercase; letter-spacing: .16em; }
.site-header nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(14px, 2.5vw, 34px); }
.site-header nav > a, .nav-link { color: rgba(245,240,231,.76); font-size: 13px; letter-spacing: .03em; }
.site-header nav > a:hover, .nav-link:hover { color: white; }
.nav-form { margin: 0; }
.nav-link { border: 0; padding: 0; background: transparent; cursor: pointer; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; border: 0; border-radius: 2px; background: var(--champagne-light); color: var(--night); padding: 15px 24px; font-size: 13px; font-weight: 700; letter-spacing: .03em; cursor: pointer; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-1px); background: #efdfbd; }
.button-small { min-height: 40px; padding: 11px 17px; border: 1px solid rgba(226,207,170,.55); background: transparent; color: var(--ivory) !important; }
.button-wide { width: 100%; }
.text-link { padding-bottom: 7px; border-bottom: 1px solid rgba(226,207,170,.35); font-size: 14px; }
.eyebrow, .section-number { margin: 0 0 28px; font-size: 11px; line-height: 1.3; text-transform: uppercase; letter-spacing: .19em; font-weight: 700; color: var(--champagne-light); }
.eyebrow { display: flex; align-items: center; gap: 12px; }
.eyebrow span { display: block; width: 32px; height: 1px; background: var(--champagne); }
.eyebrow.dark, .section-number { color: #8d7142; }
h1, h2, h3, p { margin-top: 0; }
.hero { min-height: 760px; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: 60px; padding: 90px clamp(24px, 7vw, 116px); overflow: hidden; background: var(--night); color: var(--ivory); }
.hero-copy { max-width: 730px; }
.hero h1, .page-hero h1, .auth-intro h1, .message-shell h1, .legal-page h1, .qr-shell h1 { margin: 0 0 34px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(54px, 7vw, 104px); line-height: .94; letter-spacing: -.052em; font-weight: 400; }
.hero h1 em, .page-hero h1 em, .trust h2 em { color: var(--champagne-light); font-weight: 400; }
.lead { max-width: 630px; color: rgba(245,240,231,.72); font-size: 19px; line-height: 1.68; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 40px; }
.card-stage { position: relative; display: flex; align-items: center; justify-content: center; width: min(43vw, 560px); aspect-ratio: 1; margin-left: auto; border: 1px solid rgba(226,207,170,.22); }
.card-stage::before, .card-stage::after { content: ""; position: absolute; inset: 11%; border: 1px solid rgba(226,207,170,.16); border-radius: 50%; }
.card-stage::after { inset: 25%; }
.sample-card { position: relative; z-index: 2; width: min(320px, 72%); min-height: 430px; padding: 34px; background: var(--paper); color: var(--ink); box-shadow: 25px 30px 0 rgba(226,207,170,.08), var(--shadow); transform: rotate(-3deg); }
.sample-brand, .card-brand { color: #88704a; font-size: 10px; text-transform: uppercase; letter-spacing: .15em; }
.avatar, .profile-photo { display: grid; place-items: center; width: 98px; height: 98px; margin: 54px 0 28px; border-radius: 50%; object-fit: cover; background: var(--night-2); color: var(--champagne-light); font-family: Georgia, serif; font-size: 38px; }
.sample-card h2 { margin-bottom: 8px; font-family: Georgia, serif; font-size: 32px; font-weight: 400; }
.sample-card > p:not(.sample-brand) { color: var(--muted); }
.sample-actions { display: flex; gap: 10px; margin-top: 38px; }
.sample-actions span { padding: 10px 12px; border: 1px solid var(--line); font-size: 11px; }
.manifesto { display: grid; grid-template-columns: 1fr 3fr; gap: 60px; padding: 120px clamp(24px, 7vw, 116px); border-bottom: 1px solid var(--line); }
.manifesto h2, .steps h2, .trust h2, .closing h2 { max-width: 960px; margin-bottom: 32px; font-family: Georgia, serif; font-size: clamp(42px, 5vw, 72px); font-weight: 400; line-height: 1.06; letter-spacing: -.04em; }
.manifesto h2 em { color: #8d7142; font-weight: 400; }
.manifesto > div > p { max-width: 710px; color: var(--muted); font-size: 18px; line-height: 1.75; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.feature-grid article { min-height: 330px; padding: 62px clamp(28px, 4vw, 58px); border-right: 1px solid var(--line); }
.feature-grid article:last-child { border-right: 0; }
.feature-grid article > span, .security-list article > span { color: #8d7142; font-size: 10px; letter-spacing: .17em; }
.feature-grid h3 { margin: 62px 0 18px; font-family: Georgia, serif; font-size: 30px; font-weight: 400; }
.feature-grid p { color: var(--muted); line-height: 1.7; }
.steps { padding: 120px clamp(24px, 8vw, 140px); background: var(--ivory); }
.steps ol { max-width: 850px; margin: 70px 0 0 auto; padding: 0; list-style: none; }
.steps li { display: grid; grid-template-columns: 60px 1fr; gap: 24px; padding: 28px 0; border-top: 1px solid var(--line); }
.steps li:last-child { border-bottom: 1px solid var(--line); }
.steps li > b { color: #8d7142; font-size: 12px; }
.steps strong { display: block; margin-bottom: 7px; font-family: Georgia, serif; font-size: 24px; font-weight: 400; }
.steps span { color: var(--muted); line-height: 1.6; }
.trust { padding: 120px clamp(24px, 7vw, 116px); background: var(--night); color: var(--ivory); }
.trust > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; margin-top: 65px; padding-top: 35px; border-top: 1px solid rgba(255,255,255,.14); }
.trust p { color: rgba(245,240,231,.62); line-height: 1.7; }
.trust strong { display: block; margin-bottom: 8px; color: var(--ivory); }
.closing { padding: 110px 24px; text-align: center; background: var(--paper); }
.closing h2 { margin-right: auto; margin-left: auto; }
.closing p { max-width: 600px; margin: 0 auto 35px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.site-footer { display: grid; grid-template-columns: 1fr auto; gap: 45px; padding: 70px clamp(24px, 7vw, 116px) 30px; background: #06111d; color: var(--ivory); }
.site-footer > div p { max-width: 350px; margin: 18px 0 0; color: rgba(245,240,231,.5); }
.site-footer nav { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: 25px; color: rgba(245,240,231,.68); font-size: 13px; }
.legal-line { grid-column: 1 / -1; margin: 30px 0 0; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(245,240,231,.38); font-size: 10px; letter-spacing: .07em; }

/* Authentication */
.auth-shell { min-height: calc(100vh - 84px); display: grid; grid-template-columns: 1fr 1fr; background: var(--night); color: var(--ivory); }
.auth-intro { display: flex; flex-direction: column; justify-content: center; padding: 90px clamp(30px, 8vw, 130px); }
.auth-intro h1 { font-size: clamp(52px, 6vw, 86px); }
.auth-intro > p:last-child { max-width: 520px; color: rgba(245,240,231,.66); font-size: 18px; line-height: 1.7; }
.form-card { align-self: center; width: min(540px, calc(100% - 48px)); margin: 50px auto; padding: clamp(30px, 5vw, 58px); background: var(--paper); color: var(--ink); box-shadow: var(--shadow); }
.form-card form, .profile-form { display: grid; gap: 23px; }
label { display: grid; gap: 8px; color: #364351; font-size: 12px; font-weight: 700; letter-spacing: .025em; }
input, select { width: 100%; min-height: 49px; padding: 12px 13px; border: 1px solid #c9c7c1; border-radius: 1px; background: white; color: var(--ink); }
input:focus, select:focus { border-color: #8d7142; outline: 2px solid rgba(201,173,123,.25); }
.form-switch, .fine-print { margin: 24px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.form-switch a, .fine-print a, .legal-page a { color: #725a34; text-decoration: underline; text-underline-offset: 3px; }
.alert { max-width: 1050px; margin: 26px auto; padding: 16px 18px; border-left: 3px solid; line-height: 1.5; }
.alert-error { border-color: var(--danger); background: #f8e8e8; color: #71292d; }
.alert-success { border-color: var(--success); background: #e5f2eb; color: #19533d; }

/* Dashboard */
.dashboard-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; padding: 75px clamp(24px, 7vw, 116px) 55px; background: var(--night); color: var(--ivory); }
.dashboard-head h1 { margin: 0 0 15px; font-family: Georgia, serif; font-size: clamp(42px, 5vw, 70px); font-weight: 400; letter-spacing: -.04em; }
.status { display: inline-flex; align-items: center; gap: 9px; margin: 0; color: rgba(245,240,231,.68); font-size: 12px; }
.status i { width: 8px; height: 8px; border-radius: 50%; background: #caa24f; }
.status-published i { background: #58bb88; }
.status-hidden i { background: #da7569; }
.dashboard-share { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(340px, .7fr); gap: clamp(30px, 6vw, 90px); padding: 75px clamp(24px, 7vw, 116px); }
.profile-form fieldset { display: grid; gap: 20px; margin: 0; padding: 0 0 32px; border: 0; border-bottom: 1px solid var(--line); }
.profile-form legend { margin-bottom: 25px; font-family: Georgia, serif; font-size: 28px; }
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.input-prefix { display: flex; align-items: center; min-height: 49px; border: 1px solid #c9c7c1; background: white; }
.input-prefix b { padding-left: 12px; color: var(--muted); font-size: 12px; font-weight: 400; white-space: nowrap; }
.input-prefix input { border: 0; }
.field-error { color: var(--danger); font-size: 12px; font-weight: 500; }
.field-help { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.preview-panel { position: sticky; top: 25px; align-self: start; }
.identity-card { --accent: var(--champagne); position: relative; min-height: 600px; padding: clamp(28px, 5vw, 48px); overflow: hidden; background: var(--night); color: var(--ivory); box-shadow: var(--shadow); }
.identity-card::before { content: ""; position: absolute; right: -20%; top: -12%; width: 68%; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--accent) 44%, transparent); border-radius: 50%; }
.identity-card.accent-navy { --accent: #7ea5c4; }
.identity-card.accent-forest { --accent: #93ad89; }
.identity-card.accent-burgundy { --accent: #c18c92; }
.card-brand { position: relative; color: var(--accent); }
.company-logo { position: absolute; top: 35px; right: 35px; width: 74px; height: 42px; object-fit: contain; filter: grayscale(1) brightness(2); }
.identity-card .profile-photo { position: relative; margin-top: 82px; background: var(--night-2); border: 1px solid var(--accent); }
.identity-card h2 { position: relative; margin: 0 0 9px; font-family: Georgia, serif; font-size: clamp(34px, 4vw, 48px); font-weight: 400; letter-spacing: -.03em; }
.identity-card .role { position: relative; min-height: 44px; color: rgba(245,240,231,.62); line-height: 1.5; }
.card-actions { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 34px 0; }
.card-actions a { padding: 12px 8px; border: 1px solid rgba(226,207,170,.3); color: var(--ivory); text-align: center; font-size: 12px; }
.save-contact { position: relative; display: flex; justify-content: center; margin: 32px 0 20px; padding: 15px 20px; background: var(--accent); color: var(--night); font-size: 13px; font-weight: 700; }
.card-links { position: relative; display: grid; margin-top: 30px; border-top: 1px solid rgba(255,255,255,.14); }
.card-links a { display: flex; justify-content: space-between; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.14); color: rgba(245,240,231,.78); font-size: 13px; }
.publish-actions { display: grid; gap: 15px; margin-top: 22px; }
.button-link { border: 0; background: transparent; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.danger { color: var(--danger); }
.account-panel { display: flex; justify-content: space-between; gap: 50px; margin: 0 clamp(24px, 7vw, 116px) 80px; padding: 35px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.account-panel h2 { margin: 0; font-family: Georgia, serif; font-size: 28px; font-weight: 400; }
.account-panel > div { display: flex; align-items: center; gap: 25px; font-size: 13px; }

/* Public card */
.public-card-shell { min-height: calc(100vh - 84px); padding: 60px 24px; background: var(--ivory); }
.public-card-wrap { width: min(510px, 100%); margin: 0 auto; }
.public-card-wrap .identity-card { min-height: 650px; }
.public-tools { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 14px; border: 1px solid var(--line); background: var(--paper); }
.public-tools a, .public-tools button { display: grid; place-items: center; min-height: 56px; padding: 8px; border: 0; border-right: 1px solid var(--line); background: transparent; color: var(--ink); font-size: 11px; cursor: pointer; }
.public-tools > :last-child { border-right: 0; }
.report-link { display: block; margin-top: 24px; color: var(--muted); text-align: center; font-size: 11px; text-decoration: underline; }
.qr-shell { min-height: calc(100vh - 84px); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 24px; background: var(--night); color: var(--ivory); text-align: center; }
.qr-shell h1 { max-width: 760px; margin-top: 45px; font-size: clamp(44px, 6vw, 76px); }
.qr-shell img { width: min(340px, 86vw); padding: 22px; background: white; }
.qr-shell > p { margin: 22px 0 32px; color: rgba(245,240,231,.6); }

/* Information pages */
.page-hero { min-height: 610px; padding: 130px clamp(24px, 9vw, 150px); background: var(--night); color: var(--ivory); }
.page-hero h1 { max-width: 950px; }
.security-list { padding: 50px clamp(24px, 9vw, 150px) 110px; }
.security-list article { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 35px; padding: 42px 0; border-bottom: 1px solid var(--line); }
.security-list h2 { margin: 0; font-family: Georgia, serif; font-size: 30px; font-weight: 400; }
.security-list p { max-width: 520px; margin: 0; color: var(--muted); line-height: 1.7; }
.legal-page { max-width: 900px; min-height: 70vh; margin: 0 auto; padding: 100px 24px; }
.legal-page h1 { color: var(--ink); font-size: clamp(48px, 7vw, 78px); }
.updated { margin-bottom: 70px; color: var(--muted); }
.legal-page h2 { margin: 46px 0 14px; font-family: Georgia, serif; font-size: 29px; font-weight: 400; }
.legal-page > p:not(.updated,.eyebrow) { color: var(--muted); font-size: 17px; line-height: 1.8; }
.message-shell { min-height: 70vh; padding: 120px clamp(24px, 12vw, 190px); }
.message-shell h1 { max-width: 900px; color: var(--ink); }
.lead-dark { max-width: 720px; margin-bottom: 35px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.recovery-code { display: inline-block; margin: 0 0 38px; padding: 22px 26px; border: 1px solid var(--line); background: var(--ivory); color: var(--ink); font-size: clamp(18px, 3vw, 27px); letter-spacing: .08em; }
textarea { width: 100%; padding: 12px 13px; border: 1px solid #c9c7c1; background: white; color: var(--ink); font: inherit; resize: vertical; }

@media (max-width: 980px) {
  .site-header nav > a:not(.button-small), .nav-form { display: none; }
  .hero, .auth-shell { grid-template-columns: 1fr; }
  .hero { padding-top: 100px; }
  .card-stage { width: min(80vw, 540px); margin: 25px auto 0; }
  .manifesto { grid-template-columns: 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .preview-panel { position: static; width: min(580px, 100%); margin: 0 auto; }
  .security-list article { grid-template-columns: 50px 1fr; }
  .security-list p { grid-column: 2; }
}

@media (max-width: 680px) {
  .site-header { min-height: 74px; }
  .site-header .button-small { padding: 10px 12px; font-size: 11px; }
  .wordmark { font-size: 21px; }
  .hero { min-height: auto; padding: 80px 22px; }
  .hero h1 { font-size: clamp(52px, 16vw, 72px); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .sample-card { width: 78%; min-height: 385px; padding: 26px; }
  .manifesto, .steps, .trust { padding-top: 80px; padding-bottom: 80px; }
  .feature-grid { grid-template-columns: 1fr; }
  .feature-grid article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .feature-grid h3 { margin-top: 40px; }
  .trust > div { grid-template-columns: 1fr; gap: 15px; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer nav { justify-content: flex-start; }
  .auth-intro { padding: 70px 24px 35px; }
  .form-card { margin-top: 10px; }
  .dashboard-head { align-items: flex-start; flex-direction: column; }
  .dashboard-grid { padding-right: 20px; padding-left: 20px; }
  .two-cols { grid-template-columns: 1fr; }
  .input-prefix { align-items: stretch; flex-direction: column; }
  .input-prefix b { padding-top: 10px; }
  .account-panel { align-items: flex-start; flex-direction: column; }
  .account-panel > div { align-items: flex-start; flex-direction: column; }
  .public-card-shell { padding: 24px 12px; }
  .public-card-wrap .identity-card { min-height: 600px; }
  .security-list article { gap: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
