/* Home page sections. Shared tokens, buttons, cards and motion live in site.css. */

/* Hero */
.cp-hero-section{padding:clamp(48px,7vw,96px) 0 clamp(72px,9vw,120px)}
.cp-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.cp-hero-copy{display:flex;flex-direction:column;gap:30px}
.cp-hero-kicker{display:flex;align-items:center;gap:14px;font-family:var(--cp-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--cp-text-soft)}
.cp-hero-kicker span{display:block;width:32px;height:1px;background:var(--cp-accent)}
.cp-h1{font-family:var(--cp-serif);font-size:clamp(54px,6.8vw,104px);line-height:.95;letter-spacing:-.025em;animation-delay:.08s}
.cp-hero-lead{max-width:520px;font-size:18px;color:var(--cp-text-soft);animation-delay:.16s}
.cp-hero-stores{animation-delay:.24s}
.cp-hero-stats{display:flex;flex-wrap:wrap;gap:20px 40px;margin-top:6px;padding-top:28px;border-top:1px solid var(--cp-line);animation-delay:.32s}
.cp-hero-stat{display:flex;flex-direction:column;gap:6px;font-family:var(--cp-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cp-text-muted)}
.cp-hero-stat-value{font-family:var(--cp-serif);font-size:38px;line-height:1;letter-spacing:0;text-transform:none;color:var(--cp-text)}

.cp-hero-art{position:relative;padding-bottom:170px}
.cp-hero-photo{position:relative;width:100%;aspect-ratio:4/3.3;margin:0;border-radius:22px;overflow:hidden;background:var(--cp-raised)}
.cp-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:42% 50%;display:block}
.cp-hero-photo figcaption{position:absolute;top:18px;left:18px;padding:8px 13px;border-radius:999px;background:var(--cp-glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--cp-glass-line);font-family:var(--cp-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cp-text)}

.cp-match{position:absolute;right:0;bottom:0;width:280px;display:flex;flex-direction:column;gap:16px;padding:22px;border-radius:18px;background:var(--cp-glass-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--cp-line-strong);box-shadow:0 30px 60px var(--cp-shadow)}
.cp-match-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--cp-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--cp-text-soft)}
.cp-match-top span:last-child{font-size:10px;letter-spacing:.12em;color:var(--cp-text-muted)}
.cp-match-score{display:flex;align-items:baseline;gap:8px}
.cp-match-value{font-family:var(--cp-serif);font-size:76px;line-height:.82;color:var(--cp-accent-text)}
.cp-match-max{font-family:var(--cp-mono);font-size:13px;color:var(--cp-text-muted)}
.cp-match-name{font-family:var(--cp-serif);font-size:25px;line-height:1.1}
.cp-match-meta{margin-top:6px;font-family:var(--cp-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--cp-text-muted)}
.cp-match-bars{display:grid;gap:9px;padding-top:14px;border-top:1px solid var(--cp-line)}
.cp-match-row{display:grid;grid-template-columns:62px minmax(0,1fr) 14px;align-items:center;gap:10px;font-family:var(--cp-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--cp-text-soft)}
.cp-match-row span:last-child{font-size:11px;letter-spacing:0;text-align:right}
.cp-match-track{display:block;height:4px;border-radius:4px;background:var(--cp-line-strong);overflow:hidden}
.cp-match-track .cp-bar{display:block;height:100%;border-radius:4px;background:var(--cp-accent)}

/* Marquee */
.cp-marquee{overflow:hidden;white-space:nowrap;padding:18px 0;border-top:1px solid var(--cp-line);border-bottom:1px solid var(--cp-line);font-family:var(--cp-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--cp-text-muted)}
.cp-marquee-track{display:inline-flex;gap:48px;padding-left:48px;animation:cp-marquee 70s linear infinite}
.cp-marquee-item{display:inline-flex;align-items:center;gap:48px}
.cp-marquee-dash{color:var(--cp-line-bold)}
.cp-marquee-dot{display:inline-block;width:5px;height:5px;border-radius:999px;background:var(--cp-accent)}
@keyframes cp-marquee{to{transform:translateX(-50%)}}

/* Section heads */
.cp-head--wide{max-width:760px}
.cp-method-lead{max-width:400px}
.cp-measure{max-width:520px}

/* How it works */
.cp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:20px;margin-top:72px}
.cp-step{display:flex;flex-direction:column;gap:28px;padding:32px;border-radius:20px;background:var(--cp-card);border:1px solid var(--cp-line)}
.cp-step-num{font-family:var(--cp-mono);font-size:12px;letter-spacing:.16em;color:var(--cp-accent-text)}
.cp-step-visual{min-height:196px;padding:20px;border-radius:14px;background:var(--cp-bg);border:1px solid var(--cp-line)}
.cp-step-visual--learn{display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.cp-chips{display:flex;flex-wrap:wrap;gap:8px}
.cp-chip{padding:6px 10px;border-radius:999px;border:1px solid var(--cp-line-strong);font-family:var(--cp-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--cp-text)}
.cp-chip--muted{color:var(--cp-text-muted)}
.cp-eq-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end;height:92px}
.cp-eq-col{display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--cp-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--cp-text-muted)}
.cp-eq{display:block;width:100%;border-radius:6px;background:var(--cp-line-strong);transform-origin:50% 100%;animation:cp-eq 2.4s ease-in-out infinite alternate}
.cp-eq--on{background:var(--cp-accent)}
@keyframes cp-eq{from{transform:scaleY(.5)}to{transform:scaleY(1)}}
.cp-step-visual--score{display:flex;align-items:center;gap:24px;padding:20px 24px}
.cp-ring{position:relative;width:124px;height:124px;flex:none;color:var(--cp-accent-text)}
.cp-ring svg{display:block}
.cp-ring span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--cp-serif);font-size:48px;line-height:1;color:var(--cp-text)}
.cp-ring-arc{animation:cp-ring 2.2s var(--cp-ease) both}
@keyframes cp-ring{from{stroke-dasharray:0 339.3}}
@supports (animation-timeline: view()){
  .cp-ring-arc{animation:cp-ring linear both;animation-timeline:view();animation-range:entry 20% cover 50%}
}
.cp-ring-copy{display:flex;flex-direction:column;gap:8px}
.cp-ring-copy span:first-child{font-family:var(--cp-serif);font-size:22px;line-height:1.1}
.cp-ring-copy span:last-child{font-size:13px;line-height:1.5;color:var(--cp-text-soft)}
.cp-step-visual--pair{display:flex;flex-direction:column;justify-content:center;padding:8px 20px}
.cp-pair-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--cp-line)}
.cp-pair-row:last-child{border-bottom:0}
.cp-pair-row span:first-child{font-family:var(--cp-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cp-text-muted)}
.cp-pair-row span:last-child{font-family:var(--cp-serif);font-size:20px;text-align:right}
.cp-step-copy{display:flex;flex-direction:column;gap:12px}
.cp-step-copy h3{font-family:var(--cp-serif);font-size:34px;line-height:1.05}
.cp-step-copy p{font-size:15px;color:var(--cp-text-soft)}

/* App feature explorer */
.cp-features{display:flex;flex-direction:column;gap:4px;margin-top:28px}
.cp-feature{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;width:100%;padding:20px 22px;border-radius:16px;border:1px solid transparent;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .3s ease,border-color .3s ease}
.cp-feature:hover{background:var(--cp-hover)}
.cp-feature[aria-pressed="true"]{background:var(--cp-raised);border-color:var(--cp-line-strong)}
.cp-feature-num{padding-top:10px;font-family:var(--cp-mono);font-size:12px;letter-spacing:.12em;color:var(--cp-text-muted)}
.cp-feature[aria-pressed="true"] .cp-feature-num{color:var(--cp-accent-text)}
.cp-feature-body{display:flex;flex-direction:column;gap:8px}
.cp-feature-title{font-family:var(--cp-serif);font-size:30px;line-height:1.1;color:var(--cp-text-muted);transition:color .3s ease}
.cp-feature[aria-pressed="true"] .cp-feature-title,.cp-feature:hover .cp-feature-title{color:var(--cp-text)}
.cp-feature-text{display:none;font-size:15px;line-height:1.55;color:var(--cp-text-soft)}
.cp-feature[aria-pressed="true"] .cp-feature-text{display:block}
.cp-feature-visual{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-height:760px}
.cp-feature-bignum{position:absolute;top:50%;left:50%;transform:translate(-50%,-56%);font-family:var(--cp-serif);font-size:clamp(240px,28vw,420px);line-height:1;letter-spacing:-.04em;color:var(--cp-raised);user-select:none;pointer-events:none}
.cp-phone{position:relative;width:min(312px,78vw);aspect-ratio:9/19.5;padding:10px;border-radius:46px;background:#0D0B0A;border:1px solid var(--cp-line-strong);box-shadow:0 60px 120px var(--cp-shadow-deep)}
.cp-phone-screen{position:relative;width:100%;height:100%;border-radius:36px;overflow:hidden;background:var(--cp-bg)}
.cp-phone-screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;display:block;opacity:0;transform:scale(1.05);transition:opacity .6s ease,transform .9s var(--cp-ease)}
.cp-phone-screen img.is-active{opacity:1;transform:none}
.cp-feature-caption{position:relative;font-family:var(--cp-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cp-text-muted);text-align:center}

/* Featured cheeses */
.cp-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:44px 22px;margin-top:64px}

/* Provenance */
.cp-stats{display:flex;flex-direction:column}
.cp-stat{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:24px;align-items:baseline;padding:28px 0;border-top:1px solid var(--cp-line-strong);font-size:16px;color:var(--cp-text-soft)}
.cp-stat:last-child{border-bottom:1px solid var(--cp-line-strong)}
.cp-stat-value{font-family:var(--cp-serif);font-size:clamp(60px,6vw,88px);line-height:.9;color:var(--cp-text)}
.cp-stat-value--accent{color:var(--cp-accent-text)}
.cp-registries{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:20px;margin-top:72px}
.cp-registry{display:flex;gap:18px;align-items:flex-start;padding:24px;border-radius:16px;border:1px solid var(--cp-line);background:var(--cp-bg);color:var(--cp-text);transition:border-color .3s ease,transform .4s var(--cp-ease)}
.cp-registry:hover{color:var(--cp-text);border-color:var(--cp-line-bold);transform:translateY(-3px)}
.cp-registry-code{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;border:1px solid var(--cp-line-strong);font-family:var(--cp-mono);font-size:12px;letter-spacing:.08em}
.cp-registry-copy{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--cp-text-soft)}
.cp-registry-title{font-size:16px;font-weight:500;color:var(--cp-text)}

/* Founders */
.cp-founders{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(480px,100%),1fr));gap:20px;margin-top:64px}
.cp-founder{display:flex;flex-wrap:wrap;gap:28px;padding:28px;border-radius:20px;background:var(--cp-card);border:1px solid var(--cp-line)}
.cp-founder-mark{flex:none;display:flex;align-items:center;justify-content:center;width:132px;aspect-ratio:4/5;border-radius:14px;background:radial-gradient(120% 90% at 30% 20%,var(--cp-mark-from),var(--cp-mark-to) 70%);border:1px solid var(--cp-line-strong);font-family:var(--cp-serif);font-size:72px;line-height:1;color:var(--cp-accent-text)}
.cp-founder-body{flex:1 1 220px;display:flex;flex-direction:column;gap:14px;padding-top:4px}
.cp-founder-head{display:flex;flex-direction:column;gap:6px}
.cp-founder-head h3{font-family:var(--cp-serif);font-size:34px;line-height:1.05}
.cp-founder-head span{font-family:var(--cp-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cp-accent-text)}
.cp-founder ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--cp-text-soft)}
.cp-founder li{display:flex;gap:12px}
.cp-founder li::before{content:"—";color:var(--cp-line-bold)}
.cp-founder-socials{display:flex;gap:8px;margin-top:4px}
.cp-founder-socials a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid var(--cp-line-strong);color:var(--cp-text-soft);transition:border-color .25s ease,color .25s ease}
.cp-founder-socials a:hover{border-color:var(--cp-text-muted);color:var(--cp-text)}
.cp-supporters{display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px;margin-top:56px;padding-top:40px;border-top:1px solid var(--cp-line)}
.cp-supporters img{display:block;width:auto;height:30px;opacity:.9;filter:var(--cp-logo-filter);transition:opacity .25s ease}
.cp-supporters a:hover img{opacity:1}

/* FAQ */
.cp-faq-intro{max-width:420px}
.cp-faq-intro a{color:var(--cp-text);text-decoration:underline;text-underline-offset:4px}
.cp-faq{display:flex;flex-direction:column;border-top:1px solid var(--cp-line-strong)}
.cp-faq details{border-bottom:1px solid var(--cp-line-strong)}
.cp-faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;list-style:none;cursor:pointer;font-family:var(--cp-serif);font-size:27px;line-height:1.15}
.cp-faq summary::-webkit-details-marker{display:none}
.cp-faq summary svg{flex:none;transition:transform .3s ease}
.cp-faq summary:hover{color:var(--cp-accent-text)}
.cp-faq details[open] summary svg{transform:rotate(45deg)}
.cp-faq details p{padding:0 40px 28px 0;font-size:16px;color:var(--cp-text-soft)}

/* Download */
.cp-download{position:relative;overflow:hidden;padding:clamp(110px,13vw,190px) 0;text-align:center;background:radial-gradient(56% 60% at 50% 100%,rgba(245,138,7,.1),rgba(245,138,7,0) 70%)}
.cp-download-inner{display:flex;flex-direction:column;align-items:center;gap:30px}
.cp-download-inner > img{width:76px;height:76px;border-radius:19px;display:block;box-shadow:0 24px 48px var(--cp-shadow-deep)}
.cp-download-title{font-family:var(--cp-serif);font-size:clamp(56px,7.4vw,120px);line-height:.95;letter-spacing:-.025em}
.cp-download-title em{color:var(--cp-text-soft)}
.cp-download .cp-lead{max-width:520px;font-size:18px}

@media (max-width:960px){
  .cp-hero{grid-template-columns:1fr;gap:48px}
  .cp-hero-art{padding-bottom:0}
  .cp-match{position:relative;right:auto;bottom:auto;width:min(320px,88%);margin:-110px 14px 0 auto}
  .cp-feature-visual{order:-1;min-height:0}
  .cp-feature-bignum{display:none}
  .cp-phone{width:min(250px,64vw)}
}
@media (max-width:600px){
  .cp-stat{grid-template-columns:1fr;gap:10px}
  .cp-faq summary{font-size:23px}
  .cp-founder-mark{width:96px;font-size:52px}
}
@media (prefers-reduced-motion:reduce){
  .cp-marquee-track{animation:none}
}

/* Links to every feature page, under the explorer */
.cp-feature-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px;padding-top:26px;border-top:1px solid var(--cp-line)}
.cp-feature-chips{display:flex;flex-wrap:wrap;gap:8px}
.cp-feature-chips a{padding:8px 14px;border-radius:999px;border:1px solid var(--cp-line-strong);font-size:13px;color:var(--cp-text-soft);transition:border-color .25s ease,color .25s ease}
.cp-feature-chips a:hover{border-color:var(--cp-text-muted);color:var(--cp-text)}
