/* ============================================================
   KEYNOTE — the personal brand
   Scoped to body.d-keynote. 1rem = 10px.
   ============================================================ */
body.d-keynote{
  --kn-green:#0f2a22;--kn-green2:#153a2f;--kn-ink:#0a1f19;--kn-cream:#f4efe4;--kn-paper:#faf7f0;--kn-gold:#d9a441;--kn-gold2:#f0c870;
  --kn-line:rgba(15,42,34,.14);--kn-soft:#3b4a44;
  --bg-primary:var(--kn-paper);--bg-secondary:var(--kn-cream);--bg-card:#fff;--bg-inset:#efe9dc;
  --fg-primary:var(--kn-ink);--fg-soft:var(--kn-soft);--fg-muted:#5c6862;
  --border-color:var(--kn-line);--border-strong:rgba(15,42,34,.3);
  background:var(--kn-paper);color:var(--kn-ink);font-family:'Inter Tight','Inter',system-ui,sans-serif
}
body.d-keynote em{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400}
body.d-keynote h1,body.d-keynote h2,body.d-keynote h3{font-family:'Instrument Serif',Georgia,serif;font-weight:400;letter-spacing:-.01em}
.kn-label{font-size:1.15rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--kn-gold);margin-bottom:1.6rem}

/* nav: transparent over the green, paper once scrolled */
body.d-keynote .bx-nav{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body.d-keynote .bx-nav .bx-brand-txt b,body.d-keynote .bx-nav-links a{color:#e9e4d6}
body.d-keynote .bx-nav .bx-brand-txt small{color:rgba(233,228,214,.6)}
body.d-keynote .bx-nav.scrolled{background:rgba(15,42,34,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:rgba(255,255,255,.06)}
body.d-keynote .bx-brand-mark{border-radius:50%;box-shadow:0 0 0 2px var(--kn-gold)}
body.d-keynote .bx-brand-mark img{object-fit:cover;padding:0}
body.d-keynote .bx-brand-txt b{font-family:'Instrument Serif',serif;font-weight:400;font-size:2rem;letter-spacing:0}
body.d-keynote .bx-nav-links a{font-weight:500;font-size:1.25rem}
body.d-keynote .bx-nav-links a:hover,body.d-keynote .bx-nav-links a.active{color:var(--kn-gold2)}
body.d-keynote .bx-nav-links a::after{background:var(--kn-gold);height:1px}
body.d-keynote .bx-nav-cta{background:var(--kn-gold);color:var(--kn-ink)}
body.d-keynote .burger span{background:#fff}

/* hero */
.kn-hero{position:relative;background:radial-gradient(900px 600px at 80% 20%,rgba(217,164,65,.16),transparent 60%),radial-gradient(700px 500px at 0% 100%,rgba(255,255,255,.05),transparent 60%),var(--kn-green);color:#f4efe4;padding:calc(var(--nav-h) + 7rem) 3rem 0;overflow:hidden}
.kn-hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 80%);mask-image:linear-gradient(180deg,#000,transparent 80%)}
.kn-hero-in{position:relative;max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.25fr .75fr;gap:5rem;align-items:end}
.kn-hero-copy{padding-bottom:8rem}
.kn-eyebrow{display:flex;align-items:center;gap:1.2rem;font-size:1.25rem;letter-spacing:.18em;text-transform:uppercase;color:var(--kn-gold2);margin-bottom:2.8rem}
.kn-eyebrow span{width:48px;height:1px;background:var(--kn-gold)}
.kn-hero h1{font-size:clamp(6rem,11vw,15rem);line-height:.86;letter-spacing:-.03em;color:#fbf7ee}
.kn-hero h1 em{color:var(--kn-gold2);padding-left:.12em}
.kn-tag{font-size:clamp(1.6rem,1.8vw,2rem);color:rgba(244,239,228,.78);margin-top:3rem;max-width:40ch;line-height:1.5}
.kn-actions{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:3.6rem}
.kn-btn{display:inline-flex;align-items:center;gap:1rem;padding:1.6rem 2.8rem;border-radius:999px;font-size:1.4rem;font-weight:600;transition:transform .25s var(--ease),background .25s,box-shadow .25s}
.kn-btn-gold{background:var(--kn-gold);color:var(--kn-ink)}
.kn-btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(217,164,65,.4)}
.kn-btn-line{border:1px solid rgba(244,239,228,.35);color:#f4efe4}
.kn-btn-line:hover{background:rgba(244,239,228,.1)}
.kn-hero-art{position:relative;align-self:end}
.kn-arch{position:relative;aspect-ratio:3/4;border-radius:999px 999px 0 0;overflow:hidden;background:linear-gradient(180deg,var(--kn-gold),#8a6420);border:1px solid rgba(240,200,112,.4);border-bottom:0}
.kn-arch img{width:100%;height:100%;object-fit:cover;object-position:top}
.kn-mono{display:flex;align-items:center;justify-content:center;height:100%;font-family:'Instrument Serif',serif;font-size:12rem;color:rgba(255,255,255,.6)}
.kn-badge{position:absolute;left:-4rem;bottom:6rem;background:var(--kn-paper);color:var(--kn-ink);border-radius:20px;padding:1.8rem 2.2rem;display:flex;align-items:center;gap:1.2rem;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.kn-badge b{font-family:'Instrument Serif',serif;font-weight:400;font-size:5.4rem;line-height:.8;color:var(--kn-green)}
.kn-badge span{font-size:1.2rem;font-weight:600;line-height:1.3;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted)}
.kn-ring{position:absolute;right:-3.5rem;top:-3rem;width:150px;height:150px;animation:kn-spin 28s linear infinite}
.kn-ring text{font-size:11px;fill:var(--kn-gold2);font-family:'Inter Tight',sans-serif;font-weight:600}
@keyframes kn-spin{to{transform:rotate(360deg)}}
.kn-strip{position:relative;max-width:var(--max-w);margin:0 auto;display:flex;flex-wrap:wrap;border-top:1px solid rgba(244,239,228,.14)}
.kn-strip li{flex:1 1 200px;display:flex;align-items:center;gap:1rem;padding:2.2rem 2rem 2.4rem 0;font-size:1.35rem;color:rgba(244,239,228,.85)}
.kn-strip i{color:var(--kn-gold)}

/* statement */
.kn-statement{padding:12rem 3rem 4rem;max-width:1100px;margin:0 auto;text-align:center}
.kn-quote{font-family:'Instrument Serif',serif;font-size:clamp(3rem,4.4vw,5.4rem);line-height:1.12;color:var(--kn-green)}
.kn-quote::before{content:'“';display:block;font-size:1.8em;line-height:.6;color:var(--kn-gold);margin-bottom:1rem}

/* sections */
.kn-sec{padding:10rem 3rem}
.kn-sec>*{max-width:var(--max-w);margin-left:auto;margin-right:auto}
.kn-sec-tight{padding-top:0}
.kn-head{margin-bottom:5rem}
.kn-sec h2{font-size:clamp(3.6rem,5.2vw,6.4rem);line-height:1;color:inherit}
.kn-sec h2 em{color:var(--kn-gold)}

.kn-about{display:grid;grid-template-columns:.8fr 1.2fr;gap:6rem;align-items:start}
.kn-about-side{position:sticky;top:calc(var(--nav-h) + 4rem)}
.kn-since{margin-top:3rem;font-size:1.4rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.14em}
.kn-since b{display:block;font-family:'Instrument Serif',serif;font-weight:400;font-size:9rem;letter-spacing:-.02em;color:var(--kn-green);line-height:1}
.kn-line{position:relative;padding-left:7rem;counter-reset:x}
.kn-line::before,.kn-line::after{content:'';position:absolute;left:2.2rem;top:.8rem;bottom:0;width:2px;background:var(--kn-line)}
.kn-line::after{background:var(--kn-gold);bottom:auto;height:calc(var(--p,1) * 100%);transition:height .1s linear}
.kn-line li{position:relative;padding-bottom:5rem}
.kn-line li:last-child{padding-bottom:0}
.kn-dot{position:absolute;left:-7rem;top:0;width:46px;height:46px;border-radius:50%;background:var(--kn-paper);border:1.5px solid var(--kn-gold);color:var(--kn-green);font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}
.kn-line p{font-size:1.8rem;line-height:1.7;color:var(--kn-soft)}
.kn-line li:first-child p{font-family:'Instrument Serif',serif;font-size:2.6rem;line-height:1.35;color:var(--kn-ink)}

.kn-hl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.6rem}
.kn-hl-item{background:#fff;border:1px solid var(--kn-line);border-radius:22px;padding:3rem;transition:transform .3s var(--ease),box-shadow .3s}
.kn-hl-item:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(15,42,34,.1)}
.kn-hl-item i{width:48px;height:48px;border-radius:50%;background:var(--kn-green);color:var(--kn-gold2);display:flex;align-items:center;justify-content:center;font-size:1.7rem;margin-bottom:2.4rem}
.kn-hl-item h3{font-size:2.6rem;line-height:1.1}
.kn-hl-item p{font-size:1.35rem;color:var(--fg-muted);margin-top:.8rem}

.kn-dark{background:var(--kn-green);color:#f4efe4}
.kn-dark .kn-label{color:var(--kn-gold2)}
.kn-dark h2 em{color:var(--kn-gold2)}
.kn-chapters{border-top:1px solid rgba(244,239,228,.16)}
.kn-ch{display:grid;grid-template-columns:120px 1fr 64px;gap:3rem;align-items:center;padding:3.6rem 0;border-bottom:1px solid rgba(244,239,228,.16);transition:padding .35s var(--ease),background .35s}
.kn-ch:hover{padding-left:2rem;background:linear-gradient(90deg,rgba(217,164,65,.08),transparent)}
.kn-ch-n{font-family:'Instrument Serif',serif;font-size:6rem;line-height:1;color:rgba(240,200,112,.5);transition:color .3s}
.kn-ch:hover .kn-ch-n{color:var(--kn-gold2)}
.kn-ch h3{font-size:clamp(2.8rem,3.4vw,4rem);line-height:1.05;color:#fbf7ee}
.kn-ch p{font-size:1.5rem;color:rgba(244,239,228,.7);margin-top:.8rem;max-width:60ch;line-height:1.6}
.kn-ch-go,.kn-ch-ico{width:58px;height:58px;border-radius:50%;border:1px solid rgba(244,239,228,.3);display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fbf7ee;transition:background .3s,color .3s,transform .3s var(--ease)}
.kn-ch:hover .kn-ch-go{background:var(--kn-gold);color:var(--kn-ink);border-color:var(--kn-gold);transform:rotate(-45deg)}

.kn-gal{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:120px;gap:1.4rem}
.kn-gal-item{border-radius:18px;overflow:hidden;padding:0;cursor:zoom-in;grid-column:span 4;grid-row:span 2}
.kn-gal-item:nth-child(6n+1){grid-column:span 7;grid-row:span 3}
.kn-gal-item:nth-child(6n+2){grid-column:span 5;grid-row:span 3}
.kn-gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.kn-gal-item:hover img{transform:scale(1.05)}

.kn-rev{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.6rem}
.kn-rev-card{background:#fff;border:1px solid var(--kn-line);border-radius:22px;padding:3rem}
.kn-rev-card blockquote{font-family:'Instrument Serif',serif;font-size:2.2rem;line-height:1.35}
.kn-rev-card figcaption{margin-top:2rem;font-size:1.3rem;color:var(--fg-muted);font-weight:600}

body.d-keynote .hours-card{max-width:none}
body.d-keynote .hours-row{border-radius:14px}

.kn-contact-wrap{border-radius:40px 40px 0 0}
.kn-contact{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
.kn-contact-lede{font-size:1.65rem;line-height:1.65;color:rgba(244,239,228,.75);margin:2.4rem 0 3.4rem;max-width:46ch}
body.d-keynote .kn-dark .ci{background:rgba(255,255,255,.04);border-color:rgba(244,239,228,.14);border-radius:16px}
body.d-keynote .kn-dark .ci-txt b{color:#fbf7ee}
body.d-keynote .kn-dark .ci-txt small{color:rgba(244,239,228,.65)}
body.d-keynote .kn-dark .ci-ico{background:rgba(217,164,65,.16);color:var(--kn-gold2)}
body.d-keynote .kn-dark .ci>i:last-child{color:rgba(244,239,228,.5)}
body.d-keynote .contact-form{border-radius:26px;border:0;box-shadow:0 40px 80px rgba(0,0,0,.3);color:var(--kn-ink)}
body.d-keynote .contact-form h3{font-family:'Instrument Serif',serif;font-size:3rem;margin-bottom:2rem}
body.d-keynote .cf-field input,body.d-keynote .cf-field textarea{border-radius:12px;background:var(--kn-paper)}
body.d-keynote .btn-onbiz{background:var(--kn-green);border-radius:999px;text-transform:none;letter-spacing:0;font-size:1.45rem}
body.d-keynote .kn-map{margin-top:4rem}
body.d-keynote .kn-map .biz-map-addr{color:rgba(244,239,228,.7)}
body.d-keynote .biz-map{border-radius:24px;border:0}
.kn-share{background:var(--kn-green);padding:0 3rem 2rem}
.kn-share .biz-share{max-width:var(--max-w);margin:0 auto;border-top-color:rgba(244,239,228,.14)}
.kn-share .biz-share>span{color:rgba(244,239,228,.6)}
.kn-share .biz-share-btn{border-color:rgba(244,239,228,.2);color:#f4efe4}

body.d-keynote .bx-foot{background:var(--kn-ink);color:#e9e4d6;border-top:0}
body.d-keynote .bx-foot p,body.d-keynote .bx-foot li,body.d-keynote .bx-foot a{color:rgba(233,228,214,.72)}
body.d-keynote .bx-foot-col h2{color:var(--kn-gold2)}
body.d-keynote .bx-foot .bx-brand-txt b{color:#fbf7ee}
body.d-keynote .bx-foot .btn-onbiz{background:var(--kn-gold);color:var(--kn-ink)}
body.d-keynote .bx-foot .btn-outline{border-color:rgba(233,228,214,.3);color:#fbf7ee}
body.d-keynote .bx-foot-bottom{border-top-color:rgba(233,228,214,.1)}

@media (max-width:980px){
  .kn-hero-in,.kn-about,.kn-contact{grid-template-columns:1fr}
  .kn-hero-copy{padding-bottom:2rem}
  .kn-hero-art{max-width:380px;margin:0 auto 0;width:100%}
  .kn-about-side{position:static}
  .kn-gal-item,.kn-gal-item:nth-child(6n+1),.kn-gal-item:nth-child(6n+2){grid-column:span 6;grid-row:span 2}
}
@media (max-width:640px){
  .kn-hero{padding:calc(var(--nav-h) + 4rem) 1.6rem 0}
  .kn-sec{padding:7rem 1.6rem}
  .kn-statement{padding:8rem 1.6rem 2rem}
  .kn-badge{left:-.5rem;bottom:3rem;padding:1.2rem 1.6rem}
  .kn-badge b{font-size:4rem}
  .kn-ring{right:-1rem;width:110px;height:110px}
  .kn-ch{grid-template-columns:56px 1fr;gap:1.6rem}
  .kn-ch-n{font-size:3.6rem}
  .kn-ch-go,.kn-ch-ico{display:none}
  .kn-line{padding-left:5.4rem}
  .kn-line::before,.kn-line::after{left:1.7rem}
  .kn-dot{left:-5.4rem;width:36px;height:36px}
  .kn-gal-item,.kn-gal-item:nth-child(6n+1),.kn-gal-item:nth-child(6n+2){grid-column:span 12}
  .kn-share{padding:0 1.6rem 2rem}
}
@media (prefers-reduced-motion:reduce){.kn-ring{animation:none}}
