/* AMKA building blocks — the blocks themselves.
   Each rule set is prefixed with the block id and the screenshot it replicates. */

.block{margin:0 0 74px}
.block-label{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:0 0 12px;
  border-bottom:1px solid var(--line);margin-bottom:22px}
.block-label .bid{font:700 11px/1 var(--mono);letter-spacing:.08em;background:var(--indigo);
  color:var(--white);padding:6px 8px;border-radius:5px}
.block-label h3{font-size:19px}
.block-label .src{font:11px/1.5 var(--mono);color:var(--muted);margin-left:auto}
.stage{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--white)}

/* B01 announcement + nav — s015 (3-message strip), s032 (outlined pill on the live item) */
.b-ann{background:var(--indigo);color:var(--white);display:flex;justify-content:space-between;
  padding:6px 22px;font:600 11px/1 var(--body);letter-spacing:.04em}
.b-ann span:nth-child(n+2){opacity:.72}
.b-nav{display:flex;align-items:center;gap:26px;padding:16px var(--pad);background:var(--cream)}
.b-nav .mark{font-family:var(--display);font-size:24px;letter-spacing:-.02em;line-height:.9;
  text-align:center;margin-right:auto}
.b-nav .mark b{display:block;font-size:11px;letter-spacing:.34em;font-weight:600;font-family:var(--body)}
.b-nav a{font:600 13.5px/1 var(--body);text-decoration:none;letter-spacing:.02em;padding:9px 2px;
  position:relative}
.b-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1.5px;
  background:currentColor;transition:right var(--base) var(--ease)}
.b-nav a:hover::after{right:0}
.b-nav a.live{border:1.5px solid var(--gold-deep);border-radius:999px;padding:8px 14px}
.b-nav a.live::after{display:none}
.b-nav .icons{display:flex;gap:14px;font-size:15px;margin-left:8px}

/* B02 hero — s009 flat-lay left copy, plus M12 entry pop (v03) */
.b-hero{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:var(--gap);
  background:var(--sand);padding:clamp(32px,5vw,72px) var(--pad);min-height:430px}
.b-hero h1{font-size:var(--t-hero);margin:14px 0 18px}
.b-hero .sub{max-width:36ch;color:var(--muted);margin-bottom:26px}
.b-hero figure{margin:0;position:relative}
.b-hero .pack{animation:popIn var(--slow) var(--ease) both}
.b-hero .pack:nth-child(2){animation-delay:90ms}
@keyframes popIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

/* B03 wavy colour band — s042 PERC */
.b-wave{background:var(--gold);padding:64px var(--pad) 78px;position:relative;text-align:center}
/* a SMOOTH rolling wave (PERC s042), not scallops — no white bites between crests */
.b-wave::before,.b-wave::after{content:"";position:absolute;left:0;right:0;height:48px;
  background:var(--cream);
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 48"><path d="M0 24 Q30 2 60 24 T120 24 V48 H0 Z" fill="black"/></svg>') 0 0/120px 48px repeat-x;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 48"><path d="M0 24 Q30 2 60 24 T120 24 V48 H0 Z" fill="black"/></svg>') 0 0/120px 48px repeat-x}
.b-wave::before{top:0;transform:scaleY(-1)}
.b-wave::after{bottom:0}
.b-wave h2{font-size:var(--t-h2);max-width:18ch;margin:0 auto 18px}
.b-wave .spark{font-size:22px;display:block;margin-bottom:8px}

/* B04 value bar — s008 Kazi Yetu. RATIO-LOCKED to the source: a ~6.4:1 slim band,
   four items in ONE row at every width. A thin bar must never become a big bar. */
.b-value{background:var(--indigo);color:var(--white);display:grid;
  grid-template-columns:repeat(4,1fr);gap:12px;align-content:center;
  aspect-ratio:6.4/1;min-height:88px;padding:14px var(--pad);text-align:center}
.b-value .ic{font-size:clamp(14px,1.6vw,22px);margin-bottom:6px}
.b-value b{display:block;font:700 clamp(8.5px,.85vw,12.5px)/1.4 var(--body);
  letter-spacing:.11em;text-transform:uppercase}

/* B05 product card, blob hover — M1 Kahawa v10 + M2 Yolele v06 + M6 quick add */
.b-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);
  padding:var(--pad);background:var(--cream)}
.pcard{text-align:center;text-decoration:none}
.pcard .art{position:relative;display:grid;place-items:center;aspect-ratio:1;margin-bottom:14px}
.pcard .blob{position:absolute;width:78%;aspect-ratio:1;background:var(--c,var(--gold));
  border-radius:56% 44% 50% 50%/48% 52% 48% 52%;opacity:0;transform:scale(.62) rotate(-8deg);
  transition:opacity var(--base) var(--ease),transform var(--base) var(--ease)}
.pcard:hover .blob{opacity:1;transform:scale(1) rotate(0)}
.pcard .bag{position:relative;width:64%;transition:transform var(--base) var(--ease)}
.pcard:hover .bag{transform:translateY(-8px) rotate(-2.5deg)}
.pcard .quick{position:absolute;display:grid;place-items:center;width:104px;height:104px;
  border-radius:50%;background:var(--indigo);color:var(--white);font:700 12px/1.2 var(--body);
  letter-spacing:.1em;opacity:0;transform:scale(.9);transition:all var(--base) var(--ease)}
.pcard:hover .quick{opacity:1;transform:scale(1)}
.pcard h4{font-size:17px}
.pcard .notes{font:italic 13px/1.5 var(--display);color:var(--muted);margin:4px 0 6px}
.pcard .price{font:700 14px/1 var(--body)}

/* B06 fact-table card — s023 Workshop, ONE reference. Card = one pale panel,
   tag top-left semi-transparent, bag centred, BIG centred serif name, then
   centred inline fact rows split by SOLID hairlines. Nothing right-aligned. */
.fcard{background:#FDFCF9;border:1px solid var(--line);border-radius:6px;position:relative;
  padding:44px 26px 8px;text-align:center}
.fcard .tab{position:absolute;top:13px;left:13px;background:rgba(201,162,39,.78);color:#fff;
  font:700 9.5px/1 var(--body);letter-spacing:.14em;padding:6px 10px;border-radius:3px}
.fcard .shot-in{display:grid;place-items:center;margin-bottom:22px}
.fcard h4{font-family:var(--display);font-weight:600;font-size:clamp(24px,2.4vw,31px);margin-bottom:16px}
.fcard dl{margin:0}
.fcard dl div{display:block;padding:13px 6px;border-top:1px solid var(--line);font-size:13.5px}
.fcard dt{display:inline;font-weight:700;margin-right:9px}
.fcard dd{display:inline;margin:0;color:var(--body)}

/* B07 colour-field collection row — s041 PERC */
.b-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  padding:var(--pad);background:var(--cream)}
.field{border-radius:var(--radius);padding:26px 18px;text-align:center;
  transition:transform var(--base) var(--ease)}
.field:hover{transform:translateY(-6px)}
.field img{width:70%;margin:0 auto 14px}
.field b{display:block;font-family:var(--display);font-size:17px}
.field span{font:700 12px/1 var(--body);opacity:.72}

/* B08 roast meter — s095 Blue Bottle + MILD/WILD dots s043 PERC */
.meter{max-width:420px}
.meter .row{display:flex;justify-content:space-between;font:700 10.5px/1 var(--body);
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.meter .bars{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.meter .bars i{height:5px;border-radius:3px;background:var(--line)}
.meter .bars i.on{background:var(--indigo)}
.dots{display:flex;align-items:center;gap:7px;font:700 10px/1 var(--body);letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}
.dots u{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--indigo);display:block}
.dots u.on{background:var(--indigo)}

/* B09 buy box — s093 Sightglass + s075 Chamberlain */
.b-buy{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);padding:var(--pad);background:var(--white)}
.b-buy .shot{background:var(--sand);border-radius:var(--radius);display:grid;place-items:center;padding:40px}
.b-buy h2{font-size:34px;margin-bottom:6px}
.b-buy .notes{font:italic 16px/1.5 var(--display);color:var(--muted);margin-bottom:16px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.chips span{border:1px solid var(--line);border-radius:999px;padding:8px 13px;
  font:700 10px/1 var(--body);letter-spacing:.1em;text-transform:uppercase}
.sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}
.sizes button{background:var(--white);border:1.5px solid var(--line);border-radius:11px;padding:13px 8px;
  cursor:pointer;font:var(--body);text-align:center;transition:border-color var(--fast)}
.sizes button.on{border-color:var(--indigo)}
.sizes b{display:block;font:700 13px/1.3 var(--body)}
.sizes small{color:var(--muted);font-size:11px}
.plan{border:1.5px solid var(--indigo);border-radius:14px;padding:16px 18px;margin:16px 0 10px}
.plan.alt{border-color:var(--line)}
.plan .hd{display:flex;justify-content:space-between;align-items:center;font:700 14px/1 var(--body)}
.plan .save{background:var(--gold);color:var(--black);font:700 10px/1 var(--body);letter-spacing:.09em;
  padding:5px 8px;border-radius:5px;margin-left:8px}
.plan ul{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:7px;font-size:13.5px}
.plan li::before{content:"✓";color:var(--indigo);font-weight:700;margin-right:8px}

/* B10 bundle builder — s081 Kahawa + M9 La Colombe v05 */
.b-bundle{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--gap);padding:var(--pad);
  background:var(--sand)}
.rail{background:var(--white);border-radius:var(--radius);padding:22px 22px 26px}
.rail .track{position:relative;height:4px;background:var(--line);border-radius:3px;margin:56px 22px 30px}
.rail .fill{position:absolute;inset:0 auto 0 0;width:40%;background:var(--indigo);border-radius:3px;
  transition:width var(--slow) var(--ease)}
.rail .node{position:absolute;top:50%;translate:-50% -50%;width:38px;height:38px;border-radius:50%;
  background:var(--white);border:2px solid var(--line);display:grid;place-items:center;
  font:700 11px/1 var(--body);transition:all var(--base) var(--ease)}
.rail .node.on{background:var(--indigo);border-color:var(--indigo);color:var(--white);
  animation:pulse var(--slow) var(--ease)}
@keyframes pulse{40%{transform:translate(-50%,-50%) scale(1.18)}}
.rail .node em{position:absolute;top:-27px;font:700 9px/1 var(--body);letter-spacing:.1em;
  color:var(--muted);font-style:normal;white-space:nowrap}
.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.slots div{aspect-ratio:1;border-radius:14px;border:2px dashed var(--line);display:grid;place-items:center;
  color:var(--muted);font-size:22px}
.slots div.full{border-style:solid;border-color:var(--indigo);background:var(--sand)}

/* B11 education blob diagram — s044, s047 PERC */
.b-edu{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);align-items:center;
  padding:var(--pad);background:var(--cream)}
.blobshot{aspect-ratio:1;background:var(--clay);
  border-radius:58% 42% 46% 54%/46% 52% 48% 54%;position:relative;display:grid;place-items:center;
  overflow:hidden}
.blobshot img{width:100%;height:100%;object-fit:cover}
.pin{position:absolute;background:var(--white);border:1.5px solid var(--ink);border-radius:999px;
  padding:7px 12px;font:700 11px/1 var(--body);letter-spacing:.06em;white-space:nowrap}
.edu-list{list-style:none;margin:0;padding:0}
.edu-list li{border-bottom:1px solid var(--line);padding:15px 0;display:flex;gap:16px}
.edu-list b{font-family:var(--display);font-size:17px;min-width:120px}

/* B12 process four-up — s048 PERC */
.b-process{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);
  padding:var(--pad);background:var(--sand)}
.b-process figure{margin:0}
.b-process img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;margin-bottom:12px}
.b-process b{display:block;font-family:var(--display);font-size:18px}
.b-process span{font:700 11px/1 var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

/* B13 origin map + specs — s064 Boon Boona, s079 Kahawa watermark */
.b-origin{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);align-items:center;
  padding:var(--pad);background:var(--indigo);color:var(--white);position:relative;overflow:hidden}
.b-origin .map{width:100%;max-width:360px;opacity:.9}
.b-origin dl{margin:0;display:grid;gap:0}
.b-origin div{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.22)}
.b-origin dt{font:700 10.5px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;opacity:.72}
.b-origin dd{margin:6px 0 0;font-family:var(--display);font-size:19px}

/* B14 producer spotlight — s089 Onyx signature heading */
.b-producer{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);align-items:center;
  padding:var(--pad);background:var(--cream)}
.sig{font-family:var(--display);font-size:clamp(38px,5vw,64px);font-style:italic;
  transform:rotate(-2deg);transform-origin:left;margin-bottom:6px}
.b-producer img{border-radius:var(--radius);filter:grayscale(1)}

/* B15 arch band — s060, s065 Boon Boona */
.b-arch{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);align-items:center;
  padding:var(--pad);background:var(--gold)}
.arch{position:relative}
.arch img{border-radius:999px 999px 18px 18px;position:relative;z-index:1;aspect-ratio:3/4;object-fit:cover}
.arch::after{content:"";position:absolute;inset:0;border-radius:999px 999px 18px 18px;
  border:2px solid var(--black);transform:translate(14px,14px)}
.outline-type{font-family:var(--display);font-size:var(--t-h2);
  -webkit-text-stroke:1.5px var(--black);color:transparent}

/* B16 wall of people — Dion's idea, carousel anatomy from s084 Kahawa */
.b-wall{padding:var(--pad);background:var(--cream)}
.wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:22px}
.wall figure{margin:0;position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:3/4;background:var(--clay)}
.wall img{width:100%;height:100%;object-fit:cover;transition:transform var(--slow) var(--ease)}
.wall figure:hover img{transform:scale(1.05)}
.wall figcaption{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.94);
  border-radius:999px;padding:6px 11px;font:700 11px/1 var(--body)}
.wall figure:nth-child(3n){grid-row:span 1;margin-top:22px}

/* B17 the AMKA club — Dion's idea, anatomy from s039 Stumptown + s094 Blue Bottle */
.b-club{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);padding:var(--pad);
  background:var(--indigo);color:var(--white)}
.tier{background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.25);
  border-radius:var(--radius);padding:26px}
.tier.paid{background:var(--gold);color:var(--black);border-color:var(--gold)}
.tier h3{font-size:26px;margin-bottom:4px}
.tier .price{font:700 13px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;opacity:.72;
  margin-bottom:18px;display:block}
.tier ul{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px;font-size:14px}
.tier li::before{content:"✓";font-weight:700;margin-right:9px}

/* B18 newsletter that asks a question first — s024 Workshop */
.b-news{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);padding:var(--pad);background:var(--sand)}
.b-news .q{display:grid;gap:9px;margin:18px 0 22px}
.b-news label{display:flex;gap:11px;align-items:center;border:0;background:none;
  padding:7px 0;cursor:pointer;font-size:15px}
.b-news label:hover{color:var(--indigo)}
.b-news label.pill{border:1.5px solid var(--ink);border-radius:999px;padding:10px 18px;width:max-content}
.b-news .field{display:flex;gap:0;border-bottom:1.5px solid var(--ink);padding-bottom:9px}
.b-news input[type=email]{flex:1;border:0;background:none;font:15px var(--body);outline:none}

/* B19 press strip — s004 Kazi Yetu: eyebrow LEFT in its own column, mastheads
   left-packed, oversized, muted, each in its own cut. Nothing centred. */
.b-press{background:var(--sand);padding:clamp(34px,4vw,52px) var(--pad)}
.b-press .lede-line{font:700 15px/1 var(--body);color:var(--ink);margin-bottom:26px}
.b-press .lede-line i{display:none}
.b-press .logos{display:flex;justify-content:flex-start;align-items:baseline;
  gap:clamp(34px,5.7vw,84px);flex-wrap:wrap;color:var(--muted)}
.b-press .lg{line-height:1}
.b-press .lg-a{font:700 clamp(30px,3.4vw,50px)/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.b-press .lg-b{font:italic 400 clamp(24px,2.6vw,38px)/1 var(--body)}
.b-press .lg-c{font:600 clamp(15px,1.6vw,22px)/1 var(--body);text-transform:uppercase;letter-spacing:.34em}
.b-press .lg-d{font:800 clamp(26px,3vw,44px)/1 var(--display);text-transform:uppercase;letter-spacing:.1em}

/* B20 footer — s062 Boon Boona giant mark + s078 Kahawa columns */
.b-foot{background:var(--ink);color:var(--cream);padding:var(--pad) var(--pad) 26px;position:relative;
  overflow:hidden}
.b-foot .giant{font-family:var(--display);font-size:clamp(60px,13vw,190px);line-height:.86;
  -webkit-text-stroke:1.5px var(--gold);color:transparent;pointer-events:none;margin-bottom:-.1em}
.b-foot .giant b{color:var(--gold);-webkit-text-stroke:0}
.b-foot .cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--gap);
  border-top:1px solid rgba(255,255,255,.16);padding-top:30px;margin-top:26px}
.b-foot h4{font:700 11px/1 var(--body);letter-spacing:.15em;text-transform:uppercase;
  color:var(--gold);margin-bottom:13px}
.b-foot a{display:block;text-decoration:none;font-size:14px;opacity:.82;padding:4px 0}
.b-foot a:hover{opacity:1}

/* B21 sound toggle — Dion's idea */
.sound{display:inline-flex;align-items:center;gap:10px;background:var(--white);
  border:1.5px solid var(--line);border-radius:999px;padding:9px 16px 9px 11px;cursor:pointer;
  font:700 12px/1 var(--body);letter-spacing:.06em}
.sound .eq{display:flex;align-items:flex-end;gap:2.5px;height:15px}
.sound .eq i{width:2.5px;background:var(--indigo);border-radius:2px;height:5px}
.sound.on .eq i{animation:eq .9s ease-in-out infinite}
.sound.on .eq i:nth-child(2){animation-delay:.15s}
.sound.on .eq i:nth-child(3){animation-delay:.3s}
.sound.on .eq i:nth-child(4){animation-delay:.45s}
@keyframes eq{0%,100%{height:5px}50%{height:15px}}

/* scroll reveal — M7 / M8 Chamberlain */
.reveal{opacity:0;transform:translateY(16px) scale(.975);
  transition:opacity var(--slow) var(--ease),transform var(--slow) var(--ease)}
.reveal.in{opacity:1;transform:none}

/* rotating badge — M4 DAK / Onyx */
.spinner{width:96px;height:96px;animation:spin 14s linear infinite}
.spinner text{font:700 11px var(--body);letter-spacing:.22em;fill:var(--muted)}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:820px){
  .b-hero,.b-buy,.b-bundle,.b-edu,.b-origin,.b-producer,.b-arch,.b-club,.b-news{grid-template-columns:1fr}
  .b-foot .cols{grid-template-columns:1fr 1fr}
}

/* the awakening sun, behind club and footer — Dion: 'symbols in the back' */
.b-club,.b-foot{position:relative;overflow:hidden}
.sym{position:absolute;pointer-events:none}
.b-club .sym{right:-70px;top:-70px;width:320px;opacity:.14}
.b-foot .sym{right:-50px;bottom:-60px;width:360px;opacity:.10}
