const BREWS = [ { id: 'v60', index: '01', name: 'V60', subtitle: 'Pour Over', ratio: '1 : 15', temp: '93°C', grind: 'Medium-Fine', time: '3:00', yield: '225ml', bean: 'WANOJA', beanSub: 'Jasmine notes unfurl under a gentle spiral pour.', steps: [ { time: '0:00', act: 'Rinse filter, preheat dripper and vessel. Discard rinse water.' }, { time: '0:00', act: 'Dose 15g of freshly ground coffee. Level the bed.' }, { time: '0:30', act: 'Bloom — pour 45ml in a slow centre spiral. Wait 30 seconds for outgassing.' }, { time: '1:00', act: 'First pour — bring total to 150ml in a steady outward spiral over 20 seconds.' }, { time: '1:45', act: 'Second pour — bring total to 225ml. Do not agitate.' }, { time: '3:00', act: 'Full drawdown. Remove dripper. Serve immediately.' }, ], }, { id: 'frenchpress', index: '02', name: 'French Press', subtitle: 'Full Immersion', ratio: '1 : 12', temp: '96°C', grind: 'Coarse', time: '4:30', yield: '300ml', bean: 'GOWA', beanSub: 'The natural process rewards immersion — dark chocolate amplified, texture thick.', steps: [ { time: '0:00', act: 'Dose 25g of coarsely ground coffee into a preheated press.' }, { time: '0:00', act: 'Bloom — pour 50ml, stir once to saturate all grounds.' }, { time: '0:30', act: 'Pour remaining water to 300ml. Place lid, plunger up. Do not press.' }, { time: '4:00', act: 'After 4 minutes, skim the surface crust with a spoon. Do not press yet.' }, { time: '4:15', act: 'Press the plunger slowly and deliberately over 15 seconds.' }, { time: '4:30', act: 'Pour immediately. Never let it sit — bitterness compounds fast.' }, ], }, { id: 'aeropress', index: '03', name: 'AeroPress', subtitle: 'Inverted Method', ratio: '1 : 13', temp: '88°C', grind: 'Medium', time: '2:00', yield: '220ml', bean: 'KENYA AA', beanSub: 'Lower temperature tames acidity. Blackcurrant arrives clean and precise.', steps: [ { time: '0:00', act: 'Assemble inverted. Rinse paper filter. Dose 17g of coffee.' }, { time: '0:15', act: 'Pour to 220ml in one steady fill. Ensure all grounds are saturated.' }, { time: '0:30', act: 'Stir 10 times with paddle. Replace filter cap — do not flip yet.' }, { time: '1:00', act: 'Flip carefully onto your cup. Begin pressing slowly.' }, { time: '1:30', act: 'Stop pressing when you hear the first hiss of air. Do not force.' }, { time: '2:00', act: 'Dilute to taste if desired. Serve immediately.' }, ], }, { id: 'coldbrew', index: '04', name: 'Cold Brew', subtitle: '12–18 Hour Steep', ratio: '1 : 8', temp: '4°C', grind: 'Extra Coarse', time: '15h', yield: '400ml', bean: 'PANAMA GEISHA', beanSub: 'Time replaces heat. Elderflower and white peach emerge unhurried over fifteen hours.', steps: [ { time: '0:00', act: 'Dose 50g of extra-coarse ground coffee into a clean jar or pitcher.' }, { time: '0:00', act: 'Pour 400ml of cold, filtered water. Stir thoroughly to saturate all grounds.' }, { time: '0:05', act: 'Cover tightly. Place in refrigerator.' }, { time: '12h+', act: 'Steep for 12–18 hours. Longer steep = heavier body, less brightness.' }, { time: 'After', act: 'Strain through a fine-mesh sieve, then once more through a paper filter.' }, { time: 'Ready', act: 'Serve over ice. Dilute 1:1 with cold water if drinking straight. Keeps 10 days.' }, ], }, ]; function BrewCard({ brew, index, coffees }) { const [open, setOpen] = React.useState(false); const recBean = coffees.find(c => c.name === brew.bean); return (
Brewing is not a convenience. It is a conversation between water, heat, and the memory of altitude. Below are four methods — each one tuned to a specific origin in our catalog. Follow them precisely once, then adapt them to your own silence.
It is better to consume our roasted coffee 10–28 days after the roast date. This allows CO₂ to dissipate and the flavour to settle into itself. Grinding immediately before brewing is not optional — it is the whole point.