/* clipBoar — landing styles. Built on the app's "Bone" palette (warm off-white,
   near-black ink, near-monochrome) with a warm coral→amber CTA accent for pop.
   Product visuals are real app screenshots (`make shots`); the dark windows pop
   on the light page. One small CSS mock remains: the feedback HUD. No deps. */

:root{
  /* Bone — light (the page) */
  --ink:#1a1a1a; --muted:#5a5a5a; --faint:#8c8c8c;
  --bg:#f8f6f2; --bg-soft:#f0ede7; --surface:#fffefc; --surface-2:#ffffff;
  --line:rgba(0,0,0,.085); --line-soft:rgba(0,0,0,.05);

  /* CTA — the colorful tones injected into the monochrome Bone */
  --cta1:#e0543a;  /* coral / terracotta */
  --cta2:#d98128;  /* warm amber  */
  --cta:linear-gradient(120deg,#e0543a 0%,#dc6a30 58%,#d98128 100%);
  --cta-shadow:rgba(216,90,45,.30);
  --accent:#bb4423; /* deep coral — eyebrows, links, ticks (≥4.5:1 on both bone surfaces) */
  --ink-btn:#1e1e1e; /* Bone's own action color (used sparingly) */

  /* Bone — dark (product mockups) */
  --app:#101010; --app-soft:#1a1a1a; --app-raise:#242424; --app-line:rgba(255,255,255,.10);
  --app-ink:#f0eeea; --app-muted:#a0a0a0;

  --maxw:1080px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font:17px/1.6 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
a{color:var(--accent);text-decoration:none}
section{padding:104px 0}
section.alt{background:var(--bg-soft)}
/* shared big section title (pricing, download) */
.sec-title{font-size:clamp(30px,4vw,46px);letter-spacing:-.03em;font-weight:800;margin-top:10px}
.eyebrow{font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
code{font:13.5px ui-monospace,SFMono-Regular,Menlo,monospace;background:rgba(0,0,0,.05);
  padding:2px 6px;border-radius:5px;color:#3a3a3a}

/* ---- nav ---- */
nav{position:sticky;top:0;z-index:50;background:rgba(248,246,242,.72);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--ink)}
.brand b{font-weight:800}
nav .links{display:flex;align-items:center;gap:26px}
nav .links a{color:var(--ink);font-size:15px;font-weight:500;opacity:.78}
nav .links a:hover{opacity:1}
@media(max-width:680px){nav .links a:not(.btn){display:none}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;
  padding:11px 22px;border-radius:980px;border:1px solid transparent;cursor:pointer;transition:.18s ease}
.btn.primary{background:var(--cta);color:#fff;box-shadow:0 8px 24px var(--cta-shadow)}
.btn.primary:hover{transform:translateY(-1px);box-shadow:0 12px 30px var(--cta-shadow)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 1px 2px rgba(0,0,0,.03)}
.btn.ghost:hover{border-color:rgba(0,0,0,.18)}
.btn.lg{padding:14px 30px;font-size:17px}

/* ---- hero ---- */
.hero{padding:88px 0 64px;text-align:center;background:
  radial-gradient(1100px 460px at 50% -10%, #fbe9df 0%, rgba(248,246,242,0) 62%)}
.hero h1{font-size:clamp(40px,6vw,68px);line-height:1.04;letter-spacing:-.03em;font-weight:800;
  max-width:14ch;margin:14px auto 0;color:var(--ink)}
.hero p.sub{font-size:clamp(18px,2.2vw,22px);color:var(--muted);max-width:42ch;margin:20px auto 0}
.hero .cta{display:flex;gap:14px;justify-content:center;margin:34px 0 12px;flex-wrap:wrap}
.fine{font-size:14px;color:var(--muted)}

/* ---- product screenshots (real captures; see `make shots`) ---- */
/* The PNGs already carry the macOS window chrome + a transparent drop shadow,
   so no border/radius (which would clip the shadow) — just size them. A soft
   extra drop-shadow follows the window's alpha to lift it off the light page. */
.shot{display:block;width:100%;height:auto;
  filter:drop-shadow(0 30px 60px rgba(60,30,15,.18))}

/* hero carousel — one horizontal, scroll-snapping line of shots across themes.
   Full-bleed (outside .wrap) so cards scroll across the viewport; the inline
   padding centers the first card and lets the last one center too. */
.carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:54px 0 30px;scroll-padding-inline:24px;cursor:grab;
  padding-inline:max(20px,calc((100% - 880px) / 2));
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent}
.carousel::-webkit-scrollbar{height:8px}
.carousel::-webkit-scrollbar-track{background:transparent}
.carousel::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18);border-radius:8px}
.carousel.dragging{cursor:grabbing;scroll-snap-type:none}
.carousel .shot{flex:0 0 auto;width:min(92vw,880px);scroll-snap-align:center;
  user-select:none;-webkit-user-drag:none}

/* ---- feature rows ---- */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.feat.rev .copy{order:2}
.feat h2{font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.025em;font-weight:800;margin:10px 0 14px;color:var(--ink)}
.feat p{font-size:18px;color:var(--muted);max-width:46ch}
.feat p b{color:var(--ink);font-weight:700;white-space:nowrap}
@media(max-width:760px){.feat{grid-template-columns:1fr;gap:28px}.feat.rev .copy{order:0}}

/* ---- Slots copy→paste flow demo (Bone-dark mock, the section's product visual) ---- */
.flow{display:flex;flex-direction:column;gap:14px;max-width:430px;margin:0 auto;width:100%}
.fcard{background:var(--app);border:1px solid var(--app-line);border-radius:14px;padding:16px 18px;
  box-shadow:0 26px 64px -34px rgba(60,30,15,.4)}
.fstep{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#e0876a;margin-bottom:11px}
.ftext{color:var(--app-ink);font-size:15px;line-height:1.5}
.ftext mark{background:rgba(224,84,58,.32);color:#fff;border-radius:5px;padding:1px 5px}
/* keycaps — shortcuts as words, never glyphs (matches the app's design rule) */
.fkeys{display:flex;align-items:center;gap:7px;margin-top:15px}
.fkeys i{color:#9a9a9a;font-style:normal;font-weight:600}
kbd{font:600 12.5px -apple-system,BlinkMacSystemFont,"SF Pro Text",sans-serif}
.fkeys kbd{background:#2b2b2b;color:#ececec;border:1px solid #3d3d3d;border-bottom-width:2px;
  border-radius:7px;padding:5px 10px}
/* the email being pasted into */
.email{margin-top:4px;border:1px solid var(--app-line);border-radius:10px;background:#161616;overflow:hidden}
.email-h{color:#9a9a9a;font-size:13px;padding:9px 12px;border-bottom:1px solid var(--app-line)}
.email-b{color:var(--app-ink);font-size:14.5px;line-height:1.5;padding:11px 12px;min-height:46px}
.caret{display:inline-block;width:2px;height:15px;background:#e0876a;margin-left:1px;vertical-align:text-bottom;
  animation:blink 1.1s step-end infinite}
@keyframes blink{50%{opacity:0}}
/* feedback HUD mock (Bone dark) — the "Copied to slot" confirmation */
.hud{display:inline-flex;align-items:center;gap:10px;padding:10px 17px;border-radius:980px;
  background:rgba(20,20,20,.96);border:1px solid #3a3a3a;color:var(--app-ink);font-weight:600;font-size:14.5px;
  box-shadow:0 22px 54px -20px rgba(40,18,8,.6)}
.hud .b{width:23px;height:23px;border-radius:50%;background:var(--cta);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.fhud{align-self:center}
@media(prefers-reduced-motion:reduce){.caret{animation:none}}

/* ---- privacy band (Bone dark) ---- */
.band{background:var(--app);color:var(--app-ink);text-align:center;position:relative;overflow:hidden}
/* big line-art mascot popping off the right of the privacy band (white on dark) */
.mascot-pop{position:absolute;right:-70px;top:50%;transform:translateY(-50%);
  width:min(40vw,420px);height:auto;filter:invert(1);opacity:.85;pointer-events:none;z-index:0}
.band .wrap{position:relative;z-index:1}
@media(max-width:820px){.mascot-pop{width:62vw;right:-90px;opacity:.45}}
/* mirror of the band mascot, popping from the LEFT of the pricing section.
   .price uses a theme-adaptive bg, so invert to white only on dark. */
.mascot-pop-left{position:absolute;left:-70px;top:50%;transform:translateY(-50%) scaleX(-1);
  width:min(40vw,420px);height:auto;opacity:.85;pointer-events:none;z-index:0}
[data-theme="dark"] .mascot-pop-left{filter:invert(1)}
.price .wrap{position:relative;z-index:1}
@media(max-width:820px){.mascot-pop-left{width:62vw;left:-90px;opacity:.4}}
.band .eyebrow{color:#f0a78a}
.band h2{font-size:clamp(30px,4.4vw,52px);letter-spacing:-.03em;font-weight:800;line-height:1.08;margin:12px auto 16px;max-width:16ch;color:var(--app-ink)}
.band p{color:#aaa;font-size:19px;max-width:48ch;margin:0 auto}
.band b{color:#fff}
.band .pills{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.band .pills span{border:1px solid #333;border-radius:980px;padding:8px 16px;font-size:14px;font-weight:600;color:#d6d2cc}

/* ---- pricing ---- */
.price{text-align:center;background:var(--bg-soft);position:relative;overflow:hidden}
.price .card{max-width:460px;margin:36px auto 0;background:var(--surface);border:1px solid var(--line);
  border-radius:22px;padding:40px;box-shadow:0 34px 80px -44px rgba(60,30,15,.28)}
.price .amt{font-size:56px;font-weight:800;letter-spacing:-.03em}
.price .amt span{font-size:20px;color:var(--muted);font-weight:600}
.price ul{list-style:none;margin:22px 0;text-align:left;display:inline-block}
.price li{padding:7px 0 7px 28px;position:relative;color:#2a2f3b}
.price li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:800}
.price .cta{display:flex;gap:12px;justify-content:center;margin-top:8px;flex-wrap:wrap}

/* ---- download (closing CTA) ---- */
.download{text-align:center}
.download p{color:var(--muted);font-size:19px;max-width:46ch;margin:14px auto 0}
.download .cta{display:flex;gap:14px;justify-content:center;margin:30px 0 12px;flex-wrap:wrap}

/* ---- footer ---- */
footer{border-top:1px solid var(--line);padding:40px 0;color:var(--muted);font-size:14px}
footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
footer a{color:var(--muted)}footer a:hover{color:var(--ink)}

/* ---- scroll reveal ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---- dark theme (toggle in nav; defaults to system, persisted in localStorage) ----
   The product-mock sections (.band, .flow/.fcard, .hud, .email) are intentionally
   dark in BOTH themes — they depict app windows — so only the page chrome flips. */
[data-theme="dark"]{
  --ink:#f0eeea; --muted:#a8a39c; --faint:#6e6e6e;
  --bg:#121214; --bg-soft:#1a1a1d; --surface:#1c1c1f; --surface-2:#242428;
  --line:rgba(255,255,255,.10); --line-soft:rgba(255,255,255,.06);
  --accent:#f0795a;                 /* brighter coral — legible on dark */
  --cta-shadow:rgba(224,84,58,.42);
}
[data-theme="dark"] nav{background:rgba(18,18,20,.72);border-bottom-color:var(--line)}
[data-theme="dark"] .hero{background:
  radial-gradient(1100px 460px at 50% -10%, rgba(224,84,58,.16) 0%, rgba(18,18,20,0) 62%)}
[data-theme="dark"] code{background:rgba(255,255,255,.08);color:#d6d2cc}
[data-theme="dark"] .btn.ghost:hover{border-color:rgba(255,255,255,.22)}
[data-theme="dark"] .price li{color:#cfcac3}
[data-theme="dark"] .band{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
[data-theme="dark"] .carousel{scrollbar-color:rgba(255,255,255,.22) transparent}
[data-theme="dark"] .carousel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22)}

/* theme toggle button in the nav */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:980px;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  font-size:15px;line-height:1;cursor:pointer;opacity:.85;padding:0;transition:.18s ease}
.theme-toggle:hover{opacity:1;transform:translateY(-1px)}
/* monochrome SVG icons (currentColor = black on light, white on dark; no emoji) */
.theme-toggle svg{width:18px;height:18px;display:block}
.theme-toggle .i-sun{display:none}
[data-theme="dark"] .theme-toggle .i-moon{display:none}
[data-theme="dark"] .theme-toggle .i-sun{display:block}
body,nav,.btn.ghost,.theme-toggle,.price .card,.band{
  transition:background-color .25s ease,color .25s ease,border-color .25s ease}

/* ---- screenshot hover zoom-in (magnify + lift) ---- */
.shot{transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .45s ease}
.feat .shot:hover,.carousel .shot:hover{transform:scale(1.035);
  filter:drop-shadow(0 44px 84px rgba(60,30,15,.28))}
[data-theme="dark"] .feat .shot:hover,[data-theme="dark"] .carousel .shot:hover{
  filter:drop-shadow(0 44px 84px rgba(0,0,0,.55))}

@media(prefers-reduced-motion:reduce){.shot{transition:none}}

/* ---- app icon (hero mark + brand wordmark) ---- */
.app-icon{display:block;width:129px;height:129px;margin:0 auto 20px;
  filter:drop-shadow(0 14px 30px rgba(60,30,15,.24))}
/* B&W line-art mascot beside the wordmark; invert it to white on dark. */
.brand-mascot{display:block;width:37px;height:37px;object-fit:contain}
[data-theme="dark"] .brand-mascot{filter:invert(1)}

/* visible keyboard-focus ring (a11y) */
a:focus-visible,.btn:focus-visible,.theme-toggle:focus-visible,.brand:focus-visible,
.carousel:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}
