:root { --green: #2f7d34; --green-dark: #22521e; --appbar: #3a8434; --canvas: #e7f1e0; --container: #d3e8c8; --on-container: #2f6d2a; --title: #1b2416; --muted: #5c6b52; --field: #f3f7ee; --outline: #c3cbb6; --white: #fff; --maxw: 1060px; --radius: 18px; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; color: var(--title); background: var(--canvas); line-height: 1.55; -webkit-font-smoothing: antialiased; } img { max-width: 100%; display: block; } a { color: var(--green); } .skip-link { position: absolute; inset-inline-start: -999px; background: var(--green); color: #fff; padding: .6rem 1rem; border-radius: 0 0 8px 0; z-index: 10; } .skip-link:focus { inset-inline-start: 0; } /* Header */ .site-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .4rem 1.2rem; padding: .7rem clamp(1rem, 4vw, 2rem); background: var(--appbar); color: #fff; position: sticky; top: 0; z-index: 5; } .brand { display: inline-flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; font-weight: 700; font-size: 1.25rem; flex-shrink: 0; } .brand img { height: 36px; width: auto; object-fit: contain; } .site-nav { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.1rem; } .site-nav a { color: #fff; text-decoration: none; opacity: .95; white-space: nowrap; } .site-nav a:hover { text-decoration: underline; } .lang-switch { display: inline-flex; gap: .6rem; font-size: .92rem; white-space: nowrap; } .lang-switch .current { opacity: .7; } .lang-switch a.lang { color: #fff; } /* Narrow phones: brand on its own row, nav wraps beneath it, left-aligned. */ @media (max-width: 560px) { .site-header { gap: .5rem; } .brand { font-size: 1.15rem; } .site-nav { width: 100%; gap: .4rem 1rem; font-size: .95rem; } } main { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2rem); } /* Hero */ .hero { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; padding: clamp(2rem, 6vw, 4rem) 0 2rem; } .hero h1 { font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.1; margin: 0 0 .6rem; color: var(--green-dark); } .hero .tagline { font-size: 1.25rem; font-weight: 600; color: var(--on-container); margin: 0 0 1rem; } .hero .lead { font-size: 1.05rem; margin: 0 0 1rem; } .hero-shot { display: flex; justify-content: center; } /* Phone frame */ .phone { background: #12261a; padding: 8px; border-radius: 28px; box-shadow: 0 18px 40px rgba(20, 50, 25, .22); width: 232px; max-width: 62vw; } .phone img { border-radius: 20px; } /* Sections */ section { margin: 2.5rem 0; } h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--green-dark); } .pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; } .pillar { background: var(--white); border: 1px solid var(--outline); border-radius: var(--radius); padding: 1.4rem; } .pillar-icon { font-size: 1.8rem; } .pillar h2 { font-size: 1.2rem; margin: .5rem 0; } .pillar p { margin: 0; color: #2c3826; } .features { margin: 2.6rem 0; } .features-intro { color: var(--muted); max-width: 48ch; } .feature-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin-top: 1.4rem; } .feature-group { background: var(--white); border: 1px solid var(--outline); border-radius: var(--radius); padding: 1.4rem 1.5rem; } .feature-group .feature-icon { font-size: 1.7rem; } .feature-group h3 { color: var(--green-dark); margin: .4rem 0 .6rem; font-size: 1.15rem; } .feature-group ul { margin: 0; padding-inline-start: 1.1rem; } .feature-group li { margin: .35rem 0; } @media (max-width: 820px) { .feature-groups { grid-template-columns: 1fr; } } .shots .shot-row { display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap; } .shots h2 { text-align: center; } .values { background: var(--container); border-radius: var(--radius); padding: 1.6rem clamp(1.2rem, 4vw, 2.2rem); } .values ul { margin: .5rem 0 0; padding-inline-start: 1.2rem; } .values li { margin: .45rem 0; } .get-it { text-align: center; } .store-badges { margin-top: 1.2rem; } .coming-soon { color: var(--muted); font-style: italic; } .badge { display: inline-block; background: var(--green); color: #fff; text-decoration: none; padding: .7rem 1.4rem; border-radius: 999px; margin: .3rem; font-weight: 600; } /* Legal docs */ .doc { padding: 2rem 0 3rem; max-width: 760px; } .doc h1 { color: var(--green-dark); } .doc-body h2 { font-size: 1.3rem; margin-top: 1.8rem; } .doc-body { font-size: 1.02rem; } .crumb { color: var(--muted); } .legal-index { list-style: none; padding: 0; } .legal-index li { padding: 1rem 1.2rem; background: var(--white); border: 1px solid var(--outline); border-radius: 12px; margin: .7rem 0; } .legal-index a { font-weight: 600; font-size: 1.1rem; text-decoration: none; } .legal-index .desc { display: block; color: var(--muted); font-size: .95rem; margin-top: .2rem; } /* Footer */ .site-footer { background: var(--green-dark); color: #dfeeda; margin-top: 3rem; } .foot-inner { max-width: var(--maxw); margin: 0 auto; padding: 2rem clamp(1rem, 4vw, 2rem); } .foot-legal { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; } .foot-legal a { color: #fff; } .foot-note { margin: .3rem 0; font-size: .92rem; } .site-footer a { color: #cfe7c3; } @media (max-width: 820px) { .hero { grid-template-columns: 1fr; } .hero-shot { order: -1; } .pillars { grid-template-columns: 1fr; } } /* --- About link + text links --- */ .text-link { font-weight: 600; text-decoration: none; } .text-link:hover { text-decoration: underline; } /* --- Status / beta --- */ .status { display: flex; gap: 1rem; align-items: flex-start; background: var(--white); border: 1px solid var(--outline); border-inline-start: 4px solid var(--green); border-radius: var(--radius); padding: 1.2rem 1.4rem; } .status h2 { font-size: 1.2rem; margin: 0 0 .3rem; } .status p { margin: 0; color: #2c3826; } .badge-beta { background: var(--green); color: #fff; font-weight: 700; font-size: .8rem; padding: .25rem .7rem; border-radius: 999px; flex-shrink: 0; margin-top: .15rem; } /* --- Screenshot captions + RTL note --- */ .phone-fig { margin: 0; text-align: center; max-width: 232px; } .phone-fig figcaption { margin-top: .7rem; font-size: .9rem; color: var(--muted); } .rtl-note { display: flex; gap: 1.4rem; align-items: center; justify-content: center; margin-top: 2rem; background: var(--container); border-radius: var(--radius); padding: 1.4rem clamp(1rem, 4vw, 2rem); } .phone-sm { width: 150px; max-width: 40vw; flex-shrink: 0; } .rtl-note h3 { margin: 0 0 .3rem; color: var(--green-dark); } .rtl-note p { margin: 0; } /* --- FAQ --- */ .faq dl { margin: 0; } .faq dt { font-weight: 700; margin-top: 1rem; color: var(--title); } .faq dd { margin: .2rem 0 0; color: #2c3826; } /* --- Get involved --- */ .collab-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin: 1rem 0 1.4rem; } .collab-grid article { background: var(--white); border: 1px solid var(--outline); border-radius: var(--radius); padding: 1.2rem; } .collab-grid h3 { margin: 0 0 .4rem; font-size: 1.1rem; color: var(--green-dark); } .collab-grid p { margin: 0; color: #2c3826; } .collab-grid a { text-decoration: none; } @media (max-width: 640px) { .collab-grid { grid-template-columns: 1fr; } .rtl-note { flex-direction: column; text-align: center; } } /* Anchor targets clear the sticky header */ main > section[id], .doc :is(h2, h3)[id] { scroll-margin-top: 5.5rem; } /* Discreet, hover-revealed heading permalinks (landing sections + About/Legal) */ .heading-anchor { margin-inline-start: .35em; color: var(--green); text-decoration: none; font-weight: 400; opacity: 0; transition: opacity .15s; } :is(h2, h3):hover .heading-anchor, .heading-anchor:focus { opacity: .6; }