/* composeDay — shared design system for the marketing site.
   Calm, paper-and-ink, serif display + system sans. Light/dark aware.
   No external assets (fonts are system stacks). */

:root {
  --paper:   #ECEFEA;
  --paper-2: #E3E7E1;
  --paper-3: #D8DDD5;
  --ink:     #222B28;
  --ink-soft:#57635E;
  --accent:  #43897A;
  --accent-2:#78ABA0;
  --warm:    #B4794A;         /* rare secondary — used sparingly for "old way" contrast */
  --line:    rgba(34,43,40,0.16);
  --line-soft: rgba(34,43,40,0.09);
  --serif: "Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  --maxw: 64rem;
  --radius: 16px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper:   #151C1A;
    --paper-2: #1C2422;
    --paper-3: #232D2A;
    --ink:     #E7ECE7;
    --ink-soft:#9AA8A2;
    --accent:  #74B7A6;
    --accent-2:#498C7C;
    --warm:    #CD9A6E;
    --line:    rgba(231,236,231,0.16);
    --line-soft: rgba(231,236,231,0.08);
  }
}
:root[data-theme="light"] {
  --paper:#ECEFEA; --paper-2:#E3E7E1; --paper-3:#D8DDD5; --ink:#222B28; --ink-soft:#57635E;
  --accent:#43897A; --accent-2:#78ABA0; --warm:#B4794A; --line:rgba(34,43,40,0.16); --line-soft:rgba(34,43,40,0.09);
}
:root[data-theme="dark"] {
  --paper:#151C1A; --paper-2:#1C2422; --paper-3:#232D2A; --ink:#E7ECE7; --ink-soft:#9AA8A2;
  --accent:#74B7A6; --accent-2:#498C7C; --warm:#CD9A6E; --line:rgba(231,236,231,0.16); --line-soft:rgba(231,236,231,0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  transition: background .4s ease, color .4s ease;
}
a { color: inherit; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 1.6rem; }

/* ---- top nav ---- */
.nav {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: saturate(1.4) blur(10px);
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  border-bottom: 1px solid var(--line-soft);
}
.nav-in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.85rem 0; }
.mark { font-family: var(--serif); font-size: 1.3rem; letter-spacing: -0.01em; text-decoration: none; white-space: nowrap; }
.mark .d { color: var(--accent); }
.nav-links { display: flex; align-items: center; gap: 1.4rem; }
.nav-links a { font-size: 0.9rem; color: var(--ink-soft); text-decoration: none; transition: color .2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--ink); }
.themebtn {
  background: transparent; border: 1px solid var(--line); color: var(--ink-soft);
  font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0.4rem 0.75rem; border-radius: 999px; cursor: pointer; transition: border-color .2s, color .2s;
}
.themebtn:hover { color: var(--ink); border-color: var(--accent); }
.themebtn:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 640px) { .nav-links a:not(.nav-cta) { display: none; } }

/* ---- generic type ---- */
.eyebrow { font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin: 0; }
.sec-title { font-family: var(--serif); font-size: clamp(1.7rem,4vw,2.5rem); font-weight: 400; margin: 0 0 0.6rem; text-wrap: balance; letter-spacing: -0.015em; }
.sec-intro { color: var(--ink-soft); max-width: 48ch; margin: 0 0 2.4rem; font-size: 1.05rem; }
section { padding: clamp(2rem,5vw,3.4rem) 0; }
.lead-serif { font-family: var(--serif); font-weight: 400; }

/* ---- hero ---- */
.hero { padding: clamp(3rem, 8vw, 6rem) 0 clamp(2rem,5vw,3.5rem); }
.hero .eyebrow { margin-bottom: 1.3rem; }
.logo { font-family: var(--serif); font-size: clamp(3rem, 11vw, 6.2rem); line-height: 0.95; letter-spacing: -0.03em; margin: 0 0 1.4rem; text-wrap: balance; }
.logo .d { color: var(--accent); }
.tagline { font-family: var(--serif); font-size: clamp(1.5rem, 3.6vw, 2.4rem); line-height: 1.2; font-weight: 400; margin: 0 0 1.4rem; max-width: 22ch; text-wrap: balance; }
.lede { font-size: 1.14rem; color: var(--ink-soft); max-width: 44ch; margin: 0 0 2rem; }
.status { display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.82rem; letter-spacing: 0.04em; color: var(--ink-soft); border: 1px solid var(--line); padding: 0.55rem 1rem; border-radius: 999px; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex: none; }
@media (prefers-reduced-motion: no-preference) { .dot { animation: breathe 3.4s ease-in-out infinite; } }
@keyframes breathe { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .45; transform: scale(.82); } }

/* ---- buttons ---- */
.btn { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.98rem; font-weight: 500; text-decoration: none; border-radius: 999px; padding: 0.7rem 1.4rem; cursor: pointer; border: 1px solid transparent; transition: transform .15s, background .2s, border-color .2s; }
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--accent); color: #fff; }
:root[data-theme="dark"] .btn-primary, @media (prefers-color-scheme: dark){ .btn-primary { color: #0e1513; } }
.btn-primary:hover { background: color-mix(in srgb, var(--accent) 88%, #000); }
.btn-ghost { background: transparent; border-color: var(--line); color: var(--ink); }
.btn-ghost:hover { border-color: var(--accent); }
.btn-row { display: flex; flex-wrap: wrap; gap: 0.8rem; }

/* ---- staff divider (compose motif) ---- */
.staff { display: grid; gap: 6px; padding: clamp(1.8rem,4vw,3rem) 0; }
.staff span { height: 1px; background: var(--line-soft); }
.staff span:nth-child(3) { background: var(--line); }

/* ---- badges (V1 / Pro / V2 / Free) ---- */
.badge { display: inline-block; font-size: 0.6rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; padding: 0.14rem 0.5rem; border-radius: 999px; vertical-align: middle; }
.badge-v1  { background: color-mix(in srgb, var(--accent) 20%, transparent); color: var(--accent); }
.badge-free{ background: color-mix(in srgb, var(--accent) 20%, transparent); color: var(--accent); }
.badge-pro { background: color-mix(in srgb, var(--warm) 22%, transparent); color: var(--warm); }
.badge-v2  { border: 1px solid var(--line); color: var(--ink-soft); }

/* ---- pillar grid (hub) ---- */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.pillar-card { display: block; text-decoration: none; color: inherit; background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 1.5rem; transition: transform .18s, border-color .2s, background .2s; }
.pillar-card:hover { transform: translateY(-3px); border-color: var(--accent); }
.pillar-card .idx { font-family: var(--serif); font-size: 0.85rem; color: var(--accent); }
.pillar-card h3 { font-family: var(--serif); font-size: 1.28rem; font-weight: 400; margin: 0.5rem 0 0.5rem; line-height: 1.15; }
.pillar-card p { margin: 0; color: var(--ink-soft); font-size: 0.94rem; }
.pillar-card .more { display: inline-block; margin-top: 0.9rem; font-size: 0.8rem; color: var(--accent); font-weight: 600; }
@media (max-width: 820px) { .pillars { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .pillars { grid-template-columns: 1fr; } }

/* ---- engine tour (small 3-up) ---- */
.engines { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.engine { padding: 1.4rem 1.5rem; border: 1px solid var(--line-soft); border-radius: var(--radius); background: var(--paper-2); }
.engine h4 { font-family: var(--serif); font-size: 1.14rem; font-weight: 400; margin: 0 0 0.4rem; }
.engine p { margin: 0; color: var(--ink-soft); font-size: 0.94rem; }
@media (max-width: 820px) { .engines { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .engines { grid-template-columns: 1fr; } }

/* ---- feature lists (subpages) ---- */
.feature-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.1rem; }
.feature-list li { display: grid; grid-template-columns: 1.4rem 1fr; gap: 0.7rem; padding: 0.85rem 0; border-top: 1px solid var(--line-soft); align-items: start; }
.feature-list li:first-child { border-top: none; }
.feature-list .tick { color: var(--accent); font-size: 1rem; line-height: 1.5; }
.feature-list .ft { margin: 0; }
.feature-list .ft b { font-weight: 600; }
.feature-list .ft .badge { margin-left: 0.4rem; }
.signature { background: var(--paper-2); border: 1px solid var(--line-soft); border-left: 3px solid var(--accent); border-radius: 12px; padding: 1.1rem 1.3rem; margin-top: 1.4rem; }
.signature .k { font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); font-weight: 700; }
.signature p { margin: 0.35rem 0 0; font-family: var(--serif); font-size: 1.08rem; line-height: 1.4; }

/* ---- before / after contrast ---- */
.contrast { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: stretch; }
.contrast .side { border-radius: var(--radius); padding: 1.4rem 1.5rem; border: 1px solid var(--line-soft); }
.contrast .old { background: color-mix(in srgb, var(--warm) 7%, var(--paper-2)); }
.contrast .new { background: var(--paper-2); border-color: color-mix(in srgb, var(--accent) 30%, var(--line)); }
.contrast .tag { font-size: 0.66rem; letter-spacing: 0.13em; text-transform: uppercase; font-weight: 700; margin: 0 0 0.5rem; }
.contrast .old .tag { color: var(--warm); }
.contrast .new .tag { color: var(--accent); }
.contrast p.line { font-family: var(--serif); font-size: 1.12rem; line-height: 1.35; margin: 0; }
.contrast .old p.line { color: var(--ink-soft); }
@media (max-width: 560px) { .contrast { grid-template-columns: 1fr; } }

/* ---- two-column duo ---- */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.duo .card { background: var(--paper-2); border-radius: var(--radius); padding: 1.7rem; border: 1px solid var(--line-soft); }
.duo h3 { font-family: var(--serif); font-size: 1.45rem; margin: 0.3rem 0 0.5rem; font-weight: 400; }
.duo p { margin: 0; color: var(--ink-soft); }
.duo .k { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); font-weight: 600; }
@media (max-width: 560px) { .duo { grid-template-columns: 1fr; } }

/* ---- interactive demo shell ---- */
.demo { background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: 18px; padding: clamp(1.3rem,3vw,2rem); }
.demo-cap { font-size: 0.7rem; letter-spacing: 0.13em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin: 0 0 1rem; display: flex; align-items: center; gap: 0.5rem; }
.demo-cap::before { content: "▸"; }
.demo-hint { font-size: 0.82rem; color: var(--ink-soft); margin: 0.9rem 0 0; }
.taskrow { display: flex; align-items: center; gap: 0.8rem; background: var(--paper); border: 1px solid var(--line-soft); border-radius: 12px; padding: 0.85rem 1rem; transition: transform .5s cubic-bezier(.2,.7,.3,1), opacity .5s, background .3s; }
.taskrow + .taskrow { margin-top: 0.6rem; }
.taskrow .time { font-variant-numeric: tabular-nums; font-size: 0.86rem; color: var(--ink-soft); min-width: 3.4rem; }
.taskrow .name { flex: 1; }
.taskrow .state { font-size: 0.72rem; letter-spacing: 0.05em; color: var(--accent); font-weight: 600; }
.taskrow.moved { background: color-mix(in srgb, var(--accent) 8%, var(--paper)); }
.demo-btns { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.1rem; }

/* start-celebration demo */
.startbtn { font-size: 1.05rem; font-weight: 600; padding: 0.9rem 1.8rem; border-radius: 14px; border: none; background: var(--accent); color: #fff; cursor: pointer; position: relative; transition: transform .12s; }
:root[data-theme="dark"] .startbtn { color: #0e1513; }
.startbtn:active { transform: scale(0.96); }
.spark { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.spark i { position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-2); opacity: 0; }
.count-note { font-family: var(--serif); font-size: 1.2rem; margin-top: 1rem; min-height: 1.6rem; }

/* seconds timer demo */
.bigclock { font-family: var(--serif); font-variant-numeric: tabular-nums; font-size: clamp(3rem,12vw,5rem); line-height: 1; letter-spacing: -0.02em; }
.toggle-row { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin-top: 1.2rem; }
.toggle-row button { background: transparent; border: none; padding: 0.5rem 1.1rem; font-size: 0.85rem; color: var(--ink-soft); cursor: pointer; }
.toggle-row button[aria-pressed="true"] { background: var(--accent); color: #fff; }
:root[data-theme="dark"] .toggle-row button[aria-pressed="true"] { color: #0e1513; }

/* day-model flip demo */
.dayline { display: grid; gap: 0.5rem; }
.slot { display: grid; grid-template-columns: 4.5rem 1fr; gap: 0.8rem; align-items: center; font-size: 0.9rem; }
.slot .lbl { color: var(--ink-soft); font-variant-numeric: tabular-nums; font-size: 0.8rem; }
.slot .bar { background: var(--paper); border: 1px solid var(--line-soft); border-radius: 8px; padding: 0.5rem 0.8rem; }
.slot .bar.accent { background: color-mix(in srgb, var(--accent) 12%, var(--paper)); border-color: color-mix(in srgb, var(--accent) 30%, var(--line)); }

/* notification budget demo */
.budgetbar { height: 12px; border-radius: 999px; background: var(--paper-3); overflow: hidden; margin: 1rem 0 0.5rem; }
.budgetbar i { display: block; height: 100%; background: var(--accent); width: 30%; transition: width .5s ease; }

/* ---- persona day narratives ---- */
.persona { background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: 18px; padding: clamp(1.4rem,3vw,2rem); }
.persona + .persona { margin-top: 1rem; }
.persona-head { display: flex; align-items: baseline; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.persona-head strong { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; }
.persona-head .who { color: var(--ink-soft); font-size: 0.9rem; }
.persona-timeline { display: grid; gap: 0; }
.tl { display: grid; grid-template-columns: 4.5rem 1fr; gap: 1rem; padding: 0.7rem 0; border-top: 1px solid var(--line-soft); }
.tl:first-child { border-top: none; }
.tl .t { font-variant-numeric: tabular-nums; font-size: 0.8rem; color: var(--accent); font-weight: 600; padding-top: 0.1rem; }
.tl .e { margin: 0; font-size: 0.95rem; }
.tl .e .n { color: var(--ink-soft); }

/* ---- makers / quote ---- */
.makers { background: var(--paper-2); border-radius: 18px; padding: clamp(2rem,5vw,3.2rem); border: 1px solid var(--line-soft); }
.makers p.q { font-family: var(--serif); font-size: clamp(1.2rem,2.6vw,1.55rem); line-height: 1.45; margin: 0.6rem 0 0; max-width: 40ch; font-weight: 400; }
.makers .sig { color: var(--ink-soft); font-family: var(--sans); font-size: 0.9rem; }

/* ---- pricing promise ---- */
.promise { background: var(--paper-2); border: 1px solid var(--line-soft); border-radius: 18px; padding: clamp(1.8rem,4vw,2.8rem); }
.promise-line { font-family: var(--serif); font-size: clamp(1.32rem,3vw,1.85rem); line-height: 1.35; margin: 0 0 1rem; font-weight: 400; }
.promise-line strong { color: var(--accent); font-weight: 400; }
.promise-note { margin: 0; color: var(--ink-soft); max-width: 56ch; }
.promise-note em { color: var(--ink); font-style: italic; }
.tier-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.4rem; }
.tier { border: 1px solid var(--line-soft); border-radius: 14px; padding: 1.2rem 1.3rem; background: var(--paper); }
.tier h4 { margin: 0 0 0.5rem; font-family: var(--serif); font-weight: 400; font-size: 1.2rem; }
.tier ul { margin: 0; padding-left: 1.1rem; color: var(--ink-soft); font-size: 0.9rem; }
.tier li { margin: 0.25rem 0; }
@media (max-width: 560px) { .tier-row { grid-template-columns: 1fr; } }

/* ---- closing ---- */
.closing { text-align: center; padding: clamp(2.5rem,7vw,5rem) 0 clamp(0.5rem,2vw,1.5rem); }
.closing .eyebrow { margin: 0 0 1.4rem; }
.closing-line { font-family: var(--serif); font-size: clamp(2.3rem, 8vw, 4.6rem); line-height: 1.02; margin: 0; font-weight: 400; letter-spacing: -0.025em; text-wrap: balance; }
.closing-line .em { color: var(--accent); font-style: italic; }

/* ---- subpage header block ---- */
.page-head { padding: clamp(2.5rem,6vw,4.5rem) 0 clamp(1rem,3vw,2rem); }
.page-head .eyebrow { margin-bottom: 1rem; }
.page-head h1 { font-family: var(--serif); font-size: clamp(2.4rem,7vw,4rem); font-weight: 400; letter-spacing: -0.025em; margin: 0 0 1rem; line-height: 1.02; text-wrap: balance; }
.page-head .sub { font-size: 1.15rem; color: var(--ink-soft); max-width: 46ch; margin: 0; }
.crumbs { font-size: 0.82rem; color: var(--ink-soft); margin-bottom: 1.4rem; }
.crumbs a { color: var(--accent); text-decoration: none; }
.pagenav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 2.5rem 0 0; }
.pagenav a { text-decoration: none; color: var(--ink-soft); font-size: 0.92rem; }
.pagenav a:hover { color: var(--accent); }
.pagenav .lbl { display: block; font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin-bottom: 0.2rem; }

/* ---- footer ---- */
footer { padding: clamp(3rem,7vw,5rem) 0 3rem; }
.foot-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem; }
.foot-tag { color: var(--ink-soft); font-family: var(--serif); font-size: 1.05rem; }
.foot-links { display: flex; flex-wrap: wrap; gap: 1.1rem; margin-top: 1rem; }
.foot-links a { color: var(--ink-soft); font-size: 0.86rem; text-decoration: none; }
.foot-links a:hover { color: var(--accent); }
.foot-meta { color: var(--ink-soft); font-size: 0.82rem; letter-spacing: 0.03em; margin-top: 1.3rem; }

/* ---- scroll reveal ---- */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1); }
  .reveal.in { opacity: 1; transform: none; }
  .rise { opacity: 0; transform: translateY(14px); animation: rise .7s cubic-bezier(.2,.7,.3,1) forwards; }
  .d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.27s}.d4{animation-delay:.38s}.d5{animation-delay:.49s}
  @keyframes rise { to { opacity: 1; transform: none; } }
}

/* ================= i18n: language switcher + Arabic / RTL ================= */

/* language switcher in the nav */
.langsel { display: inline-flex; align-items: center; gap: 0; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }
.langsel a { padding: 0.32rem 0.62rem; font-size: 0.76rem; letter-spacing: 0.02em; color: var(--ink-soft); text-decoration: none; line-height: 1; transition: background .2s, color .2s; }
.langsel a + a { border-inline-start: 1px solid var(--line-soft); }
.langsel a:hover { color: var(--ink); }
.langsel a[aria-current="true"] { background: var(--accent); color: #fff; }
:root[data-theme="dark"] .langsel a[aria-current="true"] { color: #0e1513; }

/* Arabic type — Naskh for display, a clean Arabic sans for body.
   The Latin wordmark "composeDay" keeps the Latin serif. */
[lang="ar"] {
  --serif: "Noto Naskh Arabic", "Geeza Pro", "Al Bayan", "Damascus", "Traditional Arabic", serif;
  --sans:  "Noto Kufi Arabic", "Geeza Pro", "Segoe UI", Tahoma, system-ui, sans-serif;
}
[lang="ar"] .mark, [lang="ar"] .logo, [lang="ar"] .mark .d, [lang="ar"] .logo .d { font-family: "Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif; }
[lang="ar"] .logo { letter-spacing: -0.03em; }
/* Arabic reads a touch larger for the same optical size */
[lang="ar"] body { line-height: 1.75; }

/* RTL mirroring — the layout is mostly logical-property clean; these are the
   physical bits that need flipping. */
[dir="rtl"] .signature { border-left: none; border-right: 3px solid var(--accent); }
[dir="rtl"] .demo-cap::before { content: "◂"; }
[dir="rtl"] .feature-list .ft .badge { margin-left: 0; margin-right: 0.4rem; }
[dir="rtl"] .tier ul { padding-left: 0; padding-right: 1.1rem; }
[dir="rtl"] .crumbs { text-align: right; }
/* the .pagenav "next" side is set inline to text-align:right in LTR; in RTL
   the same visual balance wants the previous link right-aligned — handled per
   page by swapping the arrow glyphs and inline alignment in the RTL markup. */

