/* free.luriart.com, after theme.css and template.css (borrowed from luriart.com).
   Tokens only, no colour literals (DESIGN.md). */
.fr-navlink { box-shadow: none; }

.fr-hero { position: relative; overflow: hidden; padding: 72px 0 120px;
  background:
    radial-gradient(60% 50% at 20% 10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%),
    radial-gradient(50% 40% at 85% 20%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%),
    radial-gradient(70% 60% at 50% 100%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%),
    radial-gradient(40% 30% at 10% 80%, color-mix(in srgb, var(--surface-2) 60%, transparent), transparent 70%); }
.fr-orb { position: absolute; left: 8%; top: 12%; width: min(56vw, 660px); aspect-ratio: 1; border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 26%, transparent); filter: blur(46px); opacity: .55; z-index: 0;
  animation: fr-drift 26s cubic-bezier(.22,.61,.36,1) infinite alternate; }
@keyframes fr-drift { to { translate: 6vw 4vh; } }
.fr-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: start; }

.fr-title { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-display); line-height: 1.05; letter-spacing: -0.03em; margin: 48px 0 20px; }
.fr-box { position: relative; display: inline-block; outline: 1px solid var(--accent-line); outline-offset: 6px; }
.fr-box::after { content: attr(data-label); position: absolute; left: -6px; top: -30px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--accent-text); white-space: nowrap; }
.fr-sub { color: var(--text-2); font-size: var(--fs-body-lg); max-width: 34em; margin: 0 0 28px; }
.fr-points { display: grid; gap: 12px; }
.fr-points li { color: var(--text-2); }
.fr-mono, .fr-opt { font-family: var(--font-mono); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--text-3); margin-right: 10px; }
.fr-opt { letter-spacing: .08em; text-transform: none; margin: 0; }

.fr-card { background: var(--surface-1); border: 1px solid var(--line); border-radius: 24px; padding: 32px; }
.fr-card form { display: grid; gap: 10px; }
.fr-card label:not(.fr-check) { font-weight: 600; font-size: 15px; color: var(--text); }
.fr-card input[type="url"], .fr-card input[type="email"] { height: 52px; border-radius: 12px; padding: 0 16px; font-size: 16px;
  background: var(--surface-1); color: var(--text); border: 1px solid var(--line-strong); margin-bottom: 8px; }
.fr-card input::placeholder { color: var(--text-3); }
.fr-card input:focus { border-color: var(--accent); outline: none; }
.fr-card input:focus-visible, .fr-go:focus-visible, a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.fr-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--text-2); }
.fr-check input { margin-top: 4px; accent-color: var(--accent); }
.fr-check a, .fr-next a, .fr-how a { color: var(--accent-text); text-decoration: underline; }
.fr-go { width: 100%; border: 0; border-radius: 999px; cursor: pointer; margin-top: 8px; }
.fr-go[disabled] { opacity: .6; cursor: progress; }
.fr-note { color: var(--text-3); font-size: 14px; margin: 4px 0 0; }
.fr-error { color: var(--text); font-weight: 600; margin: 0; min-height: 1em; }

.fr-result, .fr-forget, .fr-how { padding-top: 80px; padding-bottom: 80px; }
.fr-scorecard { display: grid; gap: 4px; margin-bottom: 32px; }
.fr-score { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-display); line-height: 1; margin: 0; color: var(--display-ink); }
.fr-of { font-family: var(--font-mono); font-size: 14px; letter-spacing: .18em; color: var(--text-3); margin-left: 12px; }
.fr-scoreline, .fr-url { color: var(--text-2); margin: 0; overflow-wrap: anywhere; }
.fr-problems { display: grid; gap: 16px; padding: 0; margin: 0 0 32px; list-style: none; counter-reset: fr; }
.fr-problems li { counter-increment: fr; background: var(--surface-1); border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
.fr-problems li::before { content: counter(fr, decimal-leading-zero) " · " attr(data-points) " points"; font-family: var(--font-mono); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--text-3); }
.fr-problems h3 { font-size: var(--fs-h3); margin: 8px 0 10px; }
.fr-problems p { margin: 6px 0 0; color: var(--text-2); }
.fr-problems b { color: var(--text); }
.fr-read { display: grid; gap: 6px; margin-bottom: 24px; color: var(--text-2); }
.fr-read p { margin: 0; }
.fr-idea { background: var(--surface-1); border: 1px solid var(--line); border-radius: 16px; padding: 20px 24px; color: var(--text); }
.fr-next { font-size: var(--fs-body-lg); color: var(--text); }
.fr-mailed { color: var(--text-2); }
.fr-h2 { font-family: var(--font-book); font-weight: 400; font-size: var(--fs-h2); margin: 0 0 16px; }
.fr-how p { color: var(--text-2); max-width: 46em; }

.fr-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.fr-foot-links { display: flex; gap: 20px; }
.fr-foot-links a { color: var(--text-2); }
.fr-small { color: var(--text-3); font-size: 14px; margin: 0; }

@media (max-width: 900px) {
  .fr-hero { padding: 32px 0 80px; }
  .fr-grid { grid-template-columns: 1fr; gap: 32px; }
  .fr-card { order: -1; padding: 24px; }
  .fr-box::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .fr-orb { animation: none; } }
