/* Worth the Pitch — shared design system (tokens, type, components). */

@font-face{font-family:"Fraunces";font-style:normal;font-weight:300 800;font-display:swap;src:url(/assets/fonts/fraunces.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:300 800;font-display:swap;src:url(/assets/fonts/fraunces-italic.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:300 800;font-display:swap;src:url(/assets/fonts/inter.woff2) format("woff2")}

:root{
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --paper:#f6f2ea;
  --paper-2:#efe9dd;
  --surface:#ffffff;
  --surface-2:#faf8f4;
  --line:#e4ddd0;
  --line-strong:#d3cab9;
  --text:#15161a;
  --text-2:#3b3e46;
  --muted:#4d4a44;
  --ink:#101114;
  --ink-2:#1b1d22;
  --on-ink:#f4efe6;
  --on-ink-muted:#b3afa7;

  --accent:#ff5a2c;
  --accent-2:#ffb23e;
  --accent-ink:#ffffff;
  --accent-soft:#ffe8df;
  --accent-text:#8c2a0d;
  --spotlight:linear-gradient(120deg,#ff5a2c 0%,#ff8a3a 45%,#ffb23e 100%);
  /* Text-safe variants (WCAG AAA): ink text on a lighter orange-gold, and a deeper gradient for clipped headline text on paper. */
  --spotlight-btn:linear-gradient(120deg,#ff7a45 0%,#ff9a45 45%,#ffb23e 100%);
  --on-spotlight:#101114;
  --spotlight-text:linear-gradient(120deg,#c23a12 0%,#b3450b 50%,#9c5200 100%);
  --focus:#c23a12;
  --focus-halo:#ffffff;

  --good:#085639;--good-soft:#e1f5ec;
  --warn:#6f4200;--warn-soft:#fff1d6;
  --bad:#90241e;--bad-soft:#fde6e3;
  --info:#253eb8;--info-soft:#e6eaff;

  --radius-sm:8px;--radius:14px;--radius-lg:22px;--radius-xl:32px;
  --shadow-sm:0 1px 2px rgba(20,16,10,.06);
  --shadow:0 1px 2px rgba(20,16,10,.05),0 8px 24px -8px rgba(20,16,10,.12);
  --shadow-lg:0 2px 6px rgba(20,16,10,.06),0 30px 60px -20px rgba(20,16,10,.28);
  --ring:0 0 0 3px rgba(255,90,44,.35);
  --target:44px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#0e0f12;--paper-2:#131519;--surface:#17191e;--surface-2:#1c1f25;
    --line:#2a2d35;--line-strong:#3a3e48;--text:#f1ede6;--text-2:#d5d0c7;--muted:#c4c6cc;
    --ink:#08090b;--ink-2:#121418;
    --accent-soft:rgba(255,90,44,.16);--accent-text:#ffb59d;
    --spotlight-text:var(--spotlight);--focus:#ffb23e;--focus-halo:#0e0f12;
    --good:#6adbac;--good-soft:rgba(63,207,147,.14);
    --warn:#f6bd59;--warn-soft:rgba(245,181,69,.14);
    --bad:#ffb3ac;--bad-soft:rgba(255,122,110,.14);
    --info:#b7c3ff;--info-soft:rgba(142,160,255,.14);
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -8px rgba(0,0,0,.6);
    --shadow-lg:0 2px 6px rgba(0,0,0,.4),0 30px 60px -20px rgba(0,0,0,.8);
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.55 var(--font-body);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0 0 .4em;line-height:1.12;letter-spacing:-.015em;color:var(--text)}
/* Only h1 is always large enough for Fraunces' display cut (opsz 144); smaller headings let the optical size follow the font size so thin strokes stay readable. */
h1,h2,.display{font-family:var(--font-display);font-weight:500;font-variation-settings:"SOFT" 30;font-optical-sizing:auto}
h1{font-variation-settings:"opsz" 144,"SOFT" 30}
h2{letter-spacing:-.005em}
h1{font-size:clamp(2rem,3.2vw,2.6rem)}
h2{font-size:clamp(1.4rem,2vw,1.75rem)}
h3{font-size:1.06rem;font-weight:650;letter-spacing:-.01em}
p{margin:0 0 1em}
em.accent,.accent-word{font-style:italic;color:var(--accent-text)}
.eyebrow{display:inline-flex;align-items:center;gap:.5em;font-size:.75rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text)}
.eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor}
.muted{color:var(--muted)}
small{font-size:.82rem;color:var(--muted);font-weight:400}
hr{border:0;border-top:1px solid var(--line);margin:28px 0}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 5px var(--focus-halo)}
summary:focus-visible{border-radius:6px}
.hidden{display:none!important}
.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}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--on-ink);padding:10px 14px;border-radius:10px;text-decoration:none;font-weight:600;transition:top .2s}
.skip-link:focus{top:12px;outline:3px solid var(--accent-2);outline-offset:2px}

/* Brand */
.brand{display:inline-flex;align-items:center;gap:10px;min-height:var(--target);text-decoration:none;color:inherit}
.brand-mark{width:34px;height:34px;flex:none}
.brand-name{font-family:var(--font-display);font-size:1.22rem;font-weight:560;letter-spacing:-.02em;white-space:nowrap}
.brand-name i{font-weight:400;color:var(--accent-text)}

/* Buttons */
.btn,.primary,.ghost,.danger,.tab{appearance:none;border:1px solid transparent;border-radius:999px;padding:10px 18px;font:600 .92rem/1.1 var(--font-body);letter-spacing:-.005em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--target);transition:transform .15s var(--ease),background-color .15s,border-color .15s,box-shadow .2s,color .15s;white-space:nowrap}
.primary,.btn-primary{background:var(--ink);color:var(--on-ink);box-shadow:var(--shadow-sm)}
.primary:hover,.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
@media (prefers-color-scheme:dark){.primary,.btn-primary{background:var(--on-ink);color:var(--ink)}}
.btn-accent{background:var(--spotlight-btn);color:var(--on-spotlight);box-shadow:0 8px 24px -8px rgba(255,90,44,.6)}
.btn-accent:hover{transform:translateY(-1px);box-shadow:0 12px 30px -8px rgba(255,90,44,.7)}
.ghost{background:var(--surface);color:var(--text);border-color:var(--line)}
.ghost:hover{border-color:var(--line-strong);background:var(--surface-2)}
.danger{background:var(--bad-soft);color:var(--bad)}
.danger:hover{border-color:var(--bad)}
.btn-lg{padding:14px 24px;font-size:1rem}
.btn-sm,.btn.small{padding:7px 12px;font-size:.84rem}
button:disabled,.primary:disabled,.ghost:disabled{opacity:.55;cursor:progress;transform:none}
.primary.is-loading::before,.ghost.is-loading::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Forms */
label{display:flex;flex-direction:column;gap:7px;font-size:.88rem;font-weight:600;color:var(--text-2);margin:14px 0}
input,textarea,select{font:inherit;font-size:.95rem;font-weight:400;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;padding:11px 13px;transition:border-color .15s,box-shadow .15s;width:100%}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input:hover,textarea:hover,select:hover{border-color:var(--muted)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 5px var(--focus-halo)}
textarea{resize:vertical;line-height:1.55}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);padding:0;margin:0}
.checks{display:flex;gap:10px;flex-wrap:wrap;padding:6px 0}
.checks label{flex-direction:row;align-items:center;gap:10px;margin:0;min-height:var(--target);padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}
.checks label:hover{border-color:var(--line-strong)}
.checks label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--text)}
.field-hint{font-size:.8rem;color:var(--muted);font-weight:400}
.message{min-height:1.3em;font-size:.9rem;color:var(--text-2);margin:.4em 0}
.message:empty{min-height:0;margin:0}
.message.error{color:var(--bad)}
.message.success{color:var(--good)}

/* Surfaces */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-sm)}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;background:var(--paper-2);color:var(--text-2);padding:4px 10px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.badge.accent{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}
.badge.good{background:var(--good-soft);color:var(--good);border-color:transparent}
.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.badge.info{background:var(--info-soft);color:var(--info);border-color:transparent}
.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}

/* Toasts */
.toast-stack{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 40px))}
.toast{display:flex;gap:12px;align-items:flex-start;line-height:1.5;background:var(--ink);color:var(--on-ink);padding:14px 16px;border-radius:14px;box-shadow:var(--shadow-lg);font-size:.92rem;animation:toast-in .35s var(--ease)}
.toast::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--accent-2)}
.toast.success::before{background:#3fcf93}
.toast.error::before{background:#ff7a6e}
.toast-text{flex:1}
.toast-close{flex:none;margin:-10px -8px -10px 0;width:var(--target);height:var(--target);border:0;border-radius:10px;background:transparent;color:var(--on-ink);font-size:1.3rem;line-height:1;cursor:pointer}
.toast-close:hover{background:rgba(255,255,255,.1)}
.toast-close:focus-visible{outline-color:var(--accent-2);box-shadow:none}
.toast.leaving{animation:toast-out .25s ease forwards}
@keyframes toast-in{from{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}

/* Dialogs */
dialog{border:0;padding:0;background:transparent;color:inherit}
.proposal-dialog{width:min(880px,94vw);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:32px;box-shadow:var(--shadow-lg)}
.proposal-dialog[open]{animation:dialog-in .3s var(--ease)}
.proposal-dialog::backdrop{background:rgba(10,10,12,.55);backdrop-filter:blur(4px)}
@keyframes dialog-in{from{opacity:0;transform:translateY(14px) scale(.985)}}
.dialog-close{float:right;width:var(--target);height:var(--target);border-radius:50%;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:22px;line-height:1;cursor:pointer}
.dialog-close:hover{border-color:var(--line-strong)}

/* Score ring (SVG) */
.ring{position:relative;display:inline-grid;place-items:center}
.ring svg{transform:rotate(-90deg)}
.ring .ring-track{stroke:var(--line)}
.ring .ring-value{stroke:url(#spot);stroke-linecap:round;transition:stroke-dashoffset 1s var(--ease)}
.ring .ring-label{position:absolute;inset:0;display:grid;place-items:center;align-content:center;text-align:center;font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1}
.ring .ring-label small{display:block;font-family:var(--font-body);font-size:.56rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;margin-top:3px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  /* No motion from interaction (WCAG 2.3.3): hover lifts and zooms stay still. */
  .primary:hover,.btn-primary:hover,.btn-accent:hover,.step:hover,.tile:hover,.call-card:hover,.speaker-card:hover,.sp-talk:hover,.res-card:hover,.post-card:hover,.feature-card:hover,.finder-card:hover,.match-card:hover,.check-step:hover,.video-card:hover img{transform:none!important}
}

/* reCAPTCHA v3: the badge is replaced by the required text notice beside each protected form. */
.grecaptcha-badge{visibility:hidden}
.recaptcha-note{margin:12px 0 0;font-size:.8rem;line-height:1.5;color:var(--muted)}
.recaptcha-note a{color:inherit}

/* Pitch-ball logo (2026-09-26): the ball replaces the "o" in Worth and follows the text colour. */
.brand-o{display:inline-block;width:.66em;height:.66em;margin:0 .02em;vertical-align:-.04em}
.brand-stand{display:inline-flex;flex-direction:column;align-items:center;width:64px;color:var(--text);margin-bottom:10px}
.brand-stand-ball{width:56px;height:56px}
.brand-stand-base{display:block;width:64px;height:40px;margin-top:2px}
.footer-brand .brand-stand+.brand{display:flex}

/* Sample Stage Report showcase and full-size viewer (app/Views/stage_coach_section.php, report-viewer.js) */
.srx{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center;margin:56px 0 0;padding:34px;border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.srx-copy h3{font-family:var(--font-display);font-size:clamp(1.6rem,2.8vw,2.2rem);font-weight:470;letter-spacing:-.02em;line-height:1.1;margin:12px 0}
.srx-copy>p{color:var(--text-2);margin:0}
.srx-list{list-style:none;padding:0;margin:20px 0 24px;display:grid;gap:10px}
.srx-list li{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:baseline;font-size:.95rem}
.srx-list b{font-family:var(--font-display);font-size:1.45rem;line-height:1;background:var(--spotlight);-webkit-background-clip:text;background-clip:text;color:transparent}
.srx-actions{display:flex;flex-wrap:wrap;gap:12px}
.srx-thumb{position:relative;display:block;height:440px;overflow:hidden;border-radius:18px;border:1px solid var(--line);background:#f6f1e8;box-shadow:var(--shadow);transform:rotate(-1deg);transition:transform .3s var(--ease),box-shadow .3s}
.srx-thumb img{display:block;width:100%;height:auto;transition:transform .5s var(--ease)}
.srx-thumb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(to bottom,rgba(246,241,232,0),rgba(246,241,232,.96) 78%);pointer-events:none}
.srx-zoom{position:absolute;z-index:1;left:50%;bottom:22px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:#101114;color:#fff;font-weight:650;font-size:.9rem;white-space:nowrap;box-shadow:0 10px 24px -10px rgba(0,0,0,.5)}
.srx-thumb:hover,.srx-thumb:focus-visible{transform:rotate(0) translateY(-3px);box-shadow:var(--shadow-lg)}
.srx-thumb:hover img{transform:translateY(-10px)}
.srx-thumb:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.scx-full{margin:16px 0 0;font-size:.92rem}
.scx-full a{font-weight:650;color:var(--accent-text)}
.srx-dialog{width:min(1240px,96vw);height:94vh;max-width:none;max-height:none;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.srx-dialog[open]{display:flex;flex-direction:column;animation:dialog-in .3s var(--ease)}
.srx-dialog::backdrop{background:rgba(10,10,12,.7);backdrop-filter:blur(4px)}
.srx-dialog-bar{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 20px;border-bottom:1px solid var(--line);background:var(--surface)}
.srx-dialog-title{flex:1;margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:560}
.srx-close{flex:none;width:var(--target);height:var(--target);border-radius:50%;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.srx-close:hover{border-color:var(--line-strong)}
.srx-dialog-body{flex:1;overflow:auto;overscroll-behavior:contain;background:#f6f1e8}
.srx-dialog-body picture{display:block}
.srx-dialog-body img{display:block;width:100%;max-width:1180px;height:auto;margin:0 auto}
.srx-dialog-body:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
html.srx-lock{overflow:hidden}
.prose .srx{grid-template-columns:1fr;gap:26px;margin:2.2em 0;padding:26px}
.prose .srx h3{margin:12px 0;font-size:clamp(1.5rem,2.6vw,1.9rem)}
.prose .srx p,.prose .srx li{margin:0;font-size:.98rem;line-height:1.55}
.prose .srx .srx-list{padding:0}
.prose .srx .srx-list li{margin:0}
.prose .srx .btn-primary{color:var(--on-ink)}
.prose .srx .ghost{color:var(--text)}
.prose .srx-thumb{height:380px}
@media (prefers-color-scheme:dark){.prose .srx .btn-primary{color:var(--ink)}}
@media (max-width:900px){.srx{grid-template-columns:1fr;gap:28px;padding:24px}.srx-thumb{height:360px;transform:none}}
@media (max-width:640px){
  .srx{margin-top:40px;padding:20px}
  .srx-actions .btn{flex:1 1 100%}
  .srx-dialog{width:100vw;height:100dvh;border-radius:0;border:0}
  .srx-dialog-title{font-size:1rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .srx-dialog-bar{padding:8px 8px 8px 14px;gap:8px}
}
@media (prefers-reduced-motion:reduce){.srx-thumb,.srx-thumb img{transition:none;transform:none}.srx-thumb:hover img{transform:none}.srx-dialog[open]{animation:none}}
