/* Pebble Beach Golf Links — 248 Anthems
 * Palette: bone paper, basalt ink, Pacific blue, cypress green, cliff sand.
 * Brand lime stays the single accent, as across the series. */

@font-face { font-family:'Barlow Condensed'; src:url('../fonts/barlow-condensed-latin-600-normal.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Barlow Condensed'; src:url('../fonts/barlow-condensed-latin-500-normal.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Inter Variable'; src:url('../fonts/inter-latin-wght-normal.woff2') format('woff2'); font-weight:100 900; font-display:swap; }
@font-face { font-family:'Plex Mono'; src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Plex Mono'; src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Libre Caslon'; src:url('../fonts/libre-caslon-text-latin-400-normal.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Libre Caslon'; src:url('../fonts/libre-caslon-text-latin-400-italic.woff2') format('woff2'); font-weight:400; font-style:italic; font-display:swap; }

:root {
  --bone:#F3F1EC; --bone-tint:#EAE7E0; --basalt:#1C262B; --ink:#1C262B;
  --pacific:#2F5D78; --cypress:#31493C; --sand:#C9B48C; --kelp:#6E7F73;
  --lime:#CCFF00; --ash:#D6D2CA;
  --ink-dim:rgba(28,38,43,.64); --ink-faint:rgba(28,38,43,.38);
  --display:'Barlow Condensed','Arial Narrow',sans-serif;
  --text:'Inter Variable','Helvetica Neue',Arial,sans-serif;
  --monoface:'Plex Mono',ui-monospace,'SF Mono',monospace;
  --serifface:'Libre Caslon',Georgia,serif;
  --gutter:clamp(1.25rem,4.5vw,4.5rem); --maxw:1240px;
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--text);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%}
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.mono{font-family:var(--monoface);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;background:var(--lime);color:#111;padding:.6rem 1rem;z-index:99}
a{color:inherit}

/* masthead */
.masthead{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;padding:1.1rem var(--gutter);border-bottom:1px solid var(--ash);position:sticky;top:0;background:rgba(243,241,236,.93);backdrop-filter:blur(8px);z-index:20}
.masthead-mark{text-decoration:none;display:flex;align-items:baseline;gap:.35rem;font-family:var(--display);font-weight:600}
.mark-num{font-size:1.3rem;letter-spacing:-.02em}
.mark-word{font-size:.72rem;letter-spacing:.2em}
.masthead-nav{display:flex;gap:1.1rem;margin-left:auto;font-family:var(--monoface);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase}
.masthead-nav a{text-decoration:none;color:var(--ink-dim)}
.masthead-nav a:hover{color:var(--ink)}
.masthead-meta{margin:0;color:var(--ink-dim);display:flex;align-items:center;gap:.5rem}
.key-dot{width:7px;height:7px;background:var(--lime);display:inline-block}
body.is-playing .key-dot{animation:pulse 1.07s steps(2,end) infinite}
@keyframes pulse{0%,50%{opacity:1}51%,100%{opacity:.25}}

/* hero */
.hero{max-width:var(--maxw);margin:0 auto;padding:clamp(2.5rem,7vw,5rem) var(--gutter) 2.5rem}
.crumb{color:var(--ink-faint);margin:0 0 1.6rem}
.crumb a{color:var(--ink-dim);text-decoration:none}
.hero-kicker{color:var(--pacific);margin:0 0 .9rem}
.hero h1{font-family:var(--display);font-weight:600;font-size:clamp(3.6rem,13vw,9rem);line-height:.86;letter-spacing:-.025em;margin:0 0 1.4rem}
.hero-sub{font-size:clamp(1rem,1.9vw,1.2rem);max-width:60ch;color:var(--ink-dim);margin:0 0 2.4rem}
.hero-sub em{font-family:var(--serifface);font-style:italic;color:var(--ink)}

.claim{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.6rem;margin:0 0 2.6rem;padding-top:1.6rem;border-top:1px solid var(--ash)}
.claim span{display:block;color:var(--ink-faint);margin-bottom:.5rem}
.claim b{display:block;font-family:var(--display);font-weight:600;font-size:1.7rem;line-height:1.05;margin-bottom:.5rem}
.claim p{margin:0;font-size:.86rem;color:var(--ink-dim)}

/* ratio stripes */
.stripe{display:grid;grid-template-columns:repeat(32,1fr);gap:2px;height:12px}
.stripe span{background:var(--ash);transition:background .2s}
.stripe span.lit{background:var(--basalt)}
.stripe span.u-down.lit{background:var(--lime)}
.stripe-dark span{background:rgba(243,241,236,.16)}
.stripe-dark span.lit{background:var(--bone)}
.stripe-dark span.u-down.lit{background:var(--lime)}
.stripe-caption{display:flex;justify-content:space-between;color:var(--ink-faint);margin:.5rem 0 0}

/* sections */
section{padding:clamp(3rem,7vw,5.5rem) 0}
.sec-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.6rem}
.sec-no{font-family:var(--monoface);color:var(--lime);-webkit-text-stroke:.4px var(--ink-faint)}
.sec-rule{flex:1;height:1px;background:var(--ash)}
.sec-kicker{margin:0;color:var(--ink-dim)}
.sec-intro{max-width:70ch;margin-bottom:2.4rem}
.sec-intro h2{font-family:var(--display);font-weight:600;font-size:clamp(2rem,5vw,3.2rem);line-height:1.02;letter-spacing:-.02em;margin:0 0 .8rem}
.sec-sub{margin:0;color:var(--ink-dim)}

/* 01 anthem */
.anthems{background:var(--bone-tint)}
.player-shell{position:relative;background:var(--basalt);color:var(--bone);padding:1.2rem;margin-bottom:1rem}
#spectrum{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rs-progress-wrap{margin-top:1rem}
.stage-note{color:var(--ink-faint);margin:0}

/* 02 system */
.system-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2.4rem;align-items:start}
.frames-ribbon .frames{display:grid;gap:2px;margin-bottom:4px}
.frames.back{grid-template-columns:repeat(24,1fr)}
.frames.down{grid-template-columns:repeat(8,1fr);width:33.33%}
.frames span{height:10px;background:var(--ash)}
.frames.back span.lit{background:var(--basalt)}
.frames.down span.lit{background:var(--lime)}
.frames-caption{display:flex;justify-content:space-between;font-family:var(--monoface);font-size:.58rem;letter-spacing:.12em;color:var(--ink-faint);margin-top:.5rem}
.pulse-block{margin-top:2rem;text-align:center}
.pulse-ring{width:180px;height:180px}
.pulse-ring line{stroke:var(--ash);stroke-width:1.5}
.pulse-ring line.q{stroke:var(--basalt)}
.pr-outer{stroke:var(--ash)}.pr-inner{stroke:var(--lime);stroke-width:2}
.pr-num{font-family:var(--display);font-weight:600;font-size:2.1rem;fill:var(--ink)}
.pr-unit{font-family:var(--monoface);font-size:.55rem;letter-spacing:.2em;fill:var(--ink-faint)}
.pulse-caption{color:var(--ink-faint);margin:.6rem 0 0;font-family:var(--monoface);font-size:.58rem;letter-spacing:.12em}
.method-card{border-top:1px solid var(--ash);padding-top:1.1rem;margin-bottom:1.6rem}
.method-card h3{font-family:var(--display);font-weight:600;font-size:1.35rem;margin:0 0 .6rem;display:flex;gap:.7rem;align-items:baseline}
.card-no{color:var(--ink-faint)}
.method-card p{margin:0 0 .7rem;font-size:.92rem;color:var(--ink-dim)}
.method-card.is-key{border-top-color:var(--lime);border-top-width:2px}
.footnote{font-family:var(--monoface);font-size:.58rem;letter-spacing:.06em;line-height:1.6;color:var(--ink-faint);text-transform:none}

/* 03 uses */
.uses-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.6rem}
.use{border-top:1px solid var(--ash);padding-top:.9rem}
.use-no{font-family:var(--monoface);font-size:.58rem;letter-spacing:.14em;color:var(--ink-faint)}
.use h3{font-family:var(--display);font-weight:600;font-size:1.15rem;margin:.4rem 0 .4rem}
.use p{margin:0;font-size:.86rem;color:var(--ink-dim)}

/* 04 the card */
.cardsec{background:var(--basalt);color:var(--bone)}
.cardsec .sec-rule{background:rgba(243,241,236,.2)}
.cardsec .sec-kicker,.cardsec .sec-sub{color:rgba(243,241,236,.66)}
.cardsec .sec-intro h2{color:var(--bone)}
.cd-frame{margin:0;overflow-x:auto}
.cd-frame svg{width:100%;min-width:900px;height:auto;display:block}
.cd-sea{fill:rgba(47,93,120,.28)}
.cd-seatag{font-family:var(--monoface);font-size:9px;letter-spacing:.16em;fill:rgba(243,241,236,.7)}
.cd-bar{opacity:0}
.cd-frame.in .cd-bar{animation:rise .5s ease-out forwards}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cd-champ{fill:rgba(243,241,236,.16);stroke:var(--bone);stroke-width:1}
.cd-resort{fill:var(--sand)}
.cd-forward{fill:var(--lime)}
.cd-axis{stroke:rgba(243,241,236,.5);stroke-width:1}
.cd-turn{stroke:var(--lime);stroke-width:1.5;stroke-dasharray:3 4}
.cd-half{font-family:var(--monoface);font-size:10px;letter-spacing:.18em;fill:var(--lime)}
.cd-num{font-family:var(--display);font-weight:600;font-size:15px;fill:var(--bone)}
.cd-par{font-family:var(--monoface);font-size:8px;letter-spacing:.1em;fill:rgba(243,241,236,.5)}
.cd-par.p3{fill:var(--sand)}.cd-par.p5{fill:var(--lime)}
.cd-yd{font-family:var(--monoface);font-size:9px;letter-spacing:.06em;fill:rgba(243,241,236,.78)}
.cd-mark{fill:none;stroke:var(--lime);stroke-width:2}
.cd-marklabel{font-family:var(--monoface);font-size:9px;letter-spacing:.16em;fill:var(--lime)}
.cd-foot{font-family:var(--monoface);font-size:9px;letter-spacing:.11em;fill:rgba(243,241,236,.6)}
.cd-err{font-family:var(--display);font-weight:600;font-size:22px;fill:#FF6A00}
.cd-errline{font-family:var(--monoface);font-size:10px;letter-spacing:.08em;fill:#FF6A00}
.cd-legend{display:flex;flex-wrap:wrap;gap:1.1rem;font-family:var(--monoface);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(243,241,236,.68);margin-top:1rem}
.cd-legend i{width:12px;height:12px;display:inline-block;margin-right:.45rem;vertical-align:-2px}
.lg-champ{background:rgba(243,241,236,.16);border:1px solid var(--bone)}
.lg-resort{background:var(--sand)}.lg-forward{background:var(--lime)}
.lg-sea{background:rgba(47,93,120,.55)}

/* excluded-tee callout */
.excluded{margin-top:2.6rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}
.excluded .x-flag{border-left:2px solid #FF6A00;padding-left:1.1rem}
.excluded span{display:block;font-family:var(--monoface);font-size:.58rem;letter-spacing:.14em;color:#FF6A00;margin-bottom:.5rem}
.excluded h3{font-family:var(--display);font-weight:600;font-size:1.35rem;margin:0 0 .6rem;color:var(--bone)}
.excluded p{margin:0 0 .7rem;font-size:.9rem;color:rgba(243,241,236,.72)}
.excluded code{font-family:var(--monoface);font-size:.82em;background:rgba(243,241,236,.1);padding:.1em .35em}

/* 05 record */
.rec-grid{margin:0}
.rec-row{display:grid;grid-template-columns:minmax(120px,170px) 1fr;gap:1.2rem;padding:.75rem 0;border-top:1px solid var(--ash)}
.rec-row dt{color:var(--ink-faint)}
.rec-row dd{margin:0;font-size:.92rem}
.caveat{margin-top:2rem;border-left:2px solid var(--lime);padding:.2rem 0 .2rem 1.1rem}
.caveat p{margin:0;font-size:.88rem;color:var(--ink-dim)}
.record{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.6rem;align-items:start}
.rec-note{border-top:1px solid var(--ash);padding-top:1rem;margin-bottom:1.6rem}
.rec-note span{display:block;font-family:var(--monoface);font-size:.58rem;letter-spacing:.14em;color:var(--ink-faint);margin-bottom:.4rem}
.rec-note h4{font-family:var(--display);font-weight:600;font-size:1.2rem;margin:0 0 .5rem}
.rec-note p{margin:0 0 .6rem;font-size:.88rem;color:var(--ink-dim)}

/* 06 related */
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}
.rel-card{position:relative;text-decoration:none;border:1px solid var(--ash);padding:1.2rem;display:block;transition:border-color .2s,transform .2s}
.rel-card:hover{border-color:var(--basalt);transform:translateY(-2px)}
.rel-no{font-family:var(--monoface);font-size:.58rem;letter-spacing:.14em;color:var(--ink-faint)}
.rel-card h3{font-family:var(--display);font-weight:600;font-size:1.3rem;margin:.5rem 0 .3rem}
.rel-card p{margin:0;color:var(--ink-faint)}
.rel-arrow{position:absolute;right:1.2rem;bottom:1.1rem;color:var(--lime);-webkit-text-stroke:.4px var(--ink-faint)}

/* footer */
.footer{background:var(--basalt);color:var(--bone);padding:3rem 0 2.4rem;margin-top:2rem}
.footer .stripe span{background:rgba(243,241,236,.16)}
.footer .stripe span.lit{background:var(--bone)}
.footer .stripe span.u-down.lit{background:var(--lime)}
.footer-cols{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;margin-top:1.8rem}
.footer-line{margin:.8rem 0 .3rem;font-size:.95rem}
.footer-sub{color:rgba(243,241,236,.5);margin:0}
.footer-links{display:flex;flex-direction:column;gap:.6rem}
.footer-links a{color:rgba(243,241,236,.8);text-decoration:none}
.footer-links a:hover{color:var(--lime)}

/* reveals */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease-out,transform .6s ease-out}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .cd-bar{opacity:1}
  .cd-frame.in .cd-bar{animation:none}
}
