/* global React */ /* Jungle / tropical botanical decorations — silhouette SVGs. Scattered behind content for a "tiki pub" feel. All shapes use currentColor + opacity so they tint with the theme. */ function Monstera({ size = 240, rot = 0, color = "#1f4a36" }) { return ( {/* leaf outer silhouette with even-odd to cut notches */} ); } function PalmFrond({ size = 280, rot = 0, color = "#1d4030" }) { // long banana/palm leaf with central vein and side notches const pinnae = []; for (let i = -7; i <= 7; i++) { const x = i * 10; const len = 40 - Math.abs(i) * 3.5; if (len < 5) continue; pinnae.push(); } return ( {/* stem */} {/* pinnae top */} {pinnae} {pinnae} {pinnae} ); } function BananaLeaf({ size = 260, rot = 0, color = "#23533a" }) { // elongated leaf with diagonal veins return ( {/* veins */} ); } function Strelitzia({ size = 220, rot = 0 }) { // Bird-of-paradise — green "boat" bract + orange flame petals + a blue vertical petal return ( {/* Long stem */} {/* Boat-shaped green bract (the horizontal "beak") */} {/* Orange flame petals (the "feathers") fanning upward */} {[-55, -35, -15, 5].map((a, i) => ( ))} {/* One blue vertical petal jutting forward */} {/* Yellow accent at base of petals */} ); } function Hibiscus({ size = 160, rot = 0, color = "#d94a2e" }) { // 5-petal hibiscus silhouette + stamen const petals = []; for (let i = 0; i < 5; i++) { const a = (i / 5) * 360 - 90; petals.push( ); } return ( {petals} {/* dark center */} {/* stamen */} ); } /* ───────────────────────────────────────────────────────────────── JungleBackdrop — scatters botanicals across the full page height. Positioned absolute behind all content via z-index: 0. Page content needs position:relative & z-index >= 1. ───────────────────────────────────────────────────────────────── */ function JungleBackdrop() { // pre-positioned arrangement so layout is deliberate, not random const items = [ // hero corners { c: , style: { top: -40, left: -160, opacity: 0.35 } }, { c: , style: { top: 80, right: -180, opacity: 0.30 } }, { c: , style: { top: 540, left: -120, opacity: 0.28 } }, { c: , style: { top: 360, right: 60, opacity: 0.55 } }, // about / menu transition { c: , style: { top: 1500, right: -100, opacity: 0.25 } }, { c: , style: { top: 1900, left: -120, opacity: 0.28 } }, // menu beer area { c: , style: { top: 2700, right: -180, opacity: 0.22 } }, { c: , style: { top: 3000, left: -40, opacity: 0.50 } }, // events { c: , style: { top: 4400, left: -160, opacity: 0.25 } }, { c: , style: { top: 4500, right: 120, opacity: 0.85 } }, // gallery / info { c: , style: { top: 5600, right: -180, opacity: 0.25 } }, { c: , style: { top: 6800, right: -30, opacity: 0.5 } }, { c: , style: { top: 7400, left: -200, opacity: 0.22 } }, // footer { c: , style: { top: 8700, left: -100, opacity: 0.28 } }, { c: , style: { top: 8800, right: 80, opacity: 0.7 } }, ]; return ( ); } window.JungleBackdrop = JungleBackdrop; window.Strelitzia = Strelitzia; window.Hibiscus = Hibiscus; window.Monstera = Monstera; window.PalmFrond = PalmFrond; window.BananaLeaf = BananaLeaf;