/* Snap landing page. Tokens mirror the extension DSL (ui/dsl): #6103FC purple, #17173A ink,
   #F9F9FF canvas, #E3E3EA hairlines, pill buttons and Inter. Dark values mirror ui/dsl/dark.css. */
@font-face{font-family:SnapInter;src:url(assets/fonts/Inter-Regular.ttf) format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:SnapInter;src:url(assets/fonts/Inter-Medium.ttf) format('truetype');font-weight:500;font-display:swap}

:root{
  --purple:#6103fc;--purple-edge:#4d00cb;--purple-soft:#f3f1ff;--ink:#17173a;--text:#141419;--muted:#6d6d80;
  --canvas:#f9f9ff;--surface:#fff;--edge:#e3e3ea;--edge-strong:#d2d2da;--tint:#f4f4f5;--band:#160471;--band-text:#f3f1ff;--band-muted:#c9bdf5;
  --shadow:0 1px 2px #0000000a,0 12px 32px #17173a14;--radius:16px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --purple:#7a2cff;--purple-edge:#b999ff66;--purple-soft:#b999ff1f;--ink:#f0f0f3;--text:#f0f0f3;--muted:#b5b5bf;
  --canvas:#141416;--surface:#222225;--edge:#3c3c43;--edge-strong:#4a4a52;--tint:#19191c;--band:#1d1238;--band-text:#f0f0f3;--band-muted:#b5b5bf;
  --shadow:0 1px 2px #0000004d,0 16px 40px #00000066;color-scheme:dark;
}}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--canvas);color:var(--text);font:400 16px/1.6 SnapInter,Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;color:var(--ink);font-weight:500;letter-spacing:-.02em}
p{margin:0}
kbd{display:inline-block;min-width:1.5em;margin:0 .1em;padding:0 .35em;border-radius:6px;background:var(--tint);box-shadow:inset 0 0 0 .5px var(--edge-strong);font:500 .85em/1.6 SnapInter,Inter,sans-serif;text-align:center}
code{padding:.05em .35em;border-radius:6px;background:#ffffff1f;font:500 .9em ui-monospace,SFMono-Regular,Menlo,monospace}
.icon{flex:none}
.keys{white-space:nowrap}
.wrap{width:min(1120px,100% - 32px);margin-inline:auto}
.wrap--narrow{width:min(760px,100% - 32px)}
.skip{position:absolute;left:16px;top:-48px;z-index:10;padding:8px 14px;border-radius:30px;background:var(--surface);box-shadow:var(--shadow)}
.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--purple);outline-offset:3px;border-radius:6px}

/* Buttons: DSL primary (gradient over #6103FC with #4D00CB edge) and secondary (white pill). */
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:30px;font:400 15px/20px SnapInter,Inter,sans-serif;text-decoration:none;white-space:nowrap;transition:filter .16s ease,background-color .16s ease,scale .12s ease}
.button:active{scale:.97}
.button--primary{color:#fff;background:linear-gradient(180deg,#fff0,#ffffff3d),var(--purple);box-shadow:inset 0 0 0 .75px var(--purple-edge),0 1px 0 #00000005,inset 0 1px 1px #ffffff40}
.button--primary:hover{filter:brightness(1.08)}
.button--secondary{color:var(--text);background:linear-gradient(180deg,#fff0,#0000000a),var(--surface);box-shadow:inset 0 0 0 .75px var(--edge-strong),0 1px 0 #00000005,inset 0 -1px 2px #0000000d}
.button--secondary:hover{background:linear-gradient(180deg,#fff0,#0000000f),var(--tint)}
.button--small{min-height:36px;padding:6px 16px;font-size:14px}

/* Navigation: a white capsule, like the editor navbar. */
.nav{position:sticky;top:0;z-index:5;padding:12px 0;background:color-mix(in srgb,var(--canvas) 82%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px)}
.nav-inner{display:flex;align-items:center;gap:24px;padding:8px 8px 8px 16px;border-radius:40px;background:var(--surface);box-shadow:inset 0 0 0 .5px var(--edge)}
.brand{display:flex;align-items:center;gap:3px;text-decoration:none}
.brand img:first-child{margin-top:-3px}
.nav nav{display:flex;gap:4px;margin-left:auto}
.nav nav a{padding:6px 12px;border-radius:30px;color:var(--muted);font-size:14px;text-decoration:none;transition:color .16s,background-color .16s}
.nav nav a:hover{color:var(--text);background:var(--tint)}
@media (prefers-color-scheme:dark){.wordmark{filter:brightness(0) invert(.94)}}

/* Hero */
.hero{padding:72px 0 40px;overflow:hidden}
.hero-copy{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:30px;background:var(--purple-soft);color:var(--purple);font-size:13px;font-weight:500}
@media (prefers-color-scheme:dark){.eyebrow{color:#cdb8ff}}
.hero h1{margin:24px auto 0;font-size:clamp(40px,7vw,76px);line-height:1.02;letter-spacing:-.035em}
.lede{max-width:640px;margin:24px auto 0;color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.55}
.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px}
.ph-badge{display:block;width:fit-content;margin:0 auto 20px;border-radius:10px;line-height:0}
.ph-badge img{display:block;width:250px;height:54px}
.stage{position:relative;margin:64px 0 56px}
.stage-shot{width:100%;border-radius:20px;box-shadow:inset 0 0 0 .5px var(--edge),var(--shadow);outline:.5px solid var(--edge);outline-offset:-.5px}
.stage-toolbar{position:absolute;right:4%;bottom:-44px;width:min(56%,600px)}

/* Sections */
.section{padding:96px 0}
.section--tint{background:var(--surface);box-shadow:inset 0 .5px 0 var(--edge),inset 0 -.5px 0 var(--edge)}
.kicker{margin-bottom:12px;color:var(--purple);font-size:14px;font-weight:500;letter-spacing:.02em}
@media (prefers-color-scheme:dark){.kicker{color:#b999ff}}
.section h2{max-width:640px;font-size:clamp(30px,4vw,44px);line-height:1.1}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:48px 0 0;padding:0;list-style:none}
.step{display:flex;flex-direction:column;padding:16px 16px 28px;border-radius:24px;background:var(--surface);box-shadow:inset 0 0 0 .5px var(--edge)}
.step-media{display:grid;place-items:center;height:240px;margin-bottom:24px;overflow:hidden;border-radius:14px;background:var(--canvas);box-shadow:inset 0 0 0 .5px var(--edge)}
.step-media img{max-height:100%;width:auto}
.step-media--popup img{height:108%;max-height:none;margin-top:6%;border-radius:10px;box-shadow:var(--shadow)}
.step-media--toolbar img{width:92%;max-height:none}
.step-media--annotate{place-items:stretch}
.step-media--annotate img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center}
.step-number{color:var(--muted);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.step h3{margin:4px 0 8px;font-size:20px}
.step p{color:var(--muted);font-size:15px}

.features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:48px 0 0;padding:0;list-style:none}
.feature{padding:24px;border-radius:var(--radius);background:var(--canvas);box-shadow:inset 0 0 0 .5px var(--edge)}
.feature-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:16px;border-radius:12px;background:var(--purple-soft);color:var(--purple)}
@media (prefers-color-scheme:dark){.feature-icon{color:#b999ff}}
.feature h3{margin-bottom:6px;font-size:17px}
.feature p{color:var(--muted);font-size:15px}
.formats{display:flex;flex-wrap:wrap;gap:8px;margin:32px 0 0;padding:0;list-style:none}
.formats li{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:30px;background:var(--canvas);box-shadow:inset 0 0 0 .5px var(--edge);color:var(--muted);font-size:14px;font-weight:500}

/* Privacy band */
.privacy{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;padding:56px;border-radius:28px;background:radial-gradient(120% 140% at 0% 0%,#6103fc59 0%,transparent 55%),var(--band);color:var(--band-text)}
.privacy h2{color:var(--band-text)}
.kicker--light{color:var(--band-muted)!important}
.privacy-copy p{margin-top:16px;color:var(--band-muted);font-size:17px}
.privacy-link{display:inline-flex;align-items:center;gap:6px;margin-top:24px;color:var(--band-text);font-weight:500;text-underline-offset:4px}
.privacy-points{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.privacy-points li{display:flex;gap:14px;padding:16px;border-radius:var(--radius);background:#ffffff0f;box-shadow:inset 0 0 0 .5px #ffffff26}
.privacy-points .icon{margin-top:2px;color:#cdb8ff}
.privacy-points span{color:var(--band-muted);font-size:15px}
.privacy-points strong{display:block;color:var(--band-text);font-weight:500}

/* FAQ: native disclosure, so it works without scripts and with the keyboard. */
.faq{margin-top:40px;border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 .5px var(--edge)}
.faq details+details{box-shadow:inset 0 .5px 0 var(--edge)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;color:var(--ink);font-size:17px;font-weight:500;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'';flex:none;width:9px;height:9px;margin-right:4px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-3px) rotate(45deg);transition:transform .25s cubic-bezier(.22,1,.36,1)}
.faq details[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.faq details p{padding:0 24px 22px;color:var(--muted)}

.cta{text-align:center}
.cta-inner{display:flex;flex-direction:column;align-items:center}
.cta img{margin-bottom:24px}
.cta h2{margin-inline:auto}
.cta p{margin-top:12px;color:var(--muted);font-size:18px}

.footer{padding:32px 0 40px;color:var(--muted);font-size:14px}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:24px;box-shadow:inset 0 .5px 0 var(--edge)}
.footer a{text-decoration:none}
.footer a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.footer nav{display:flex;gap:20px}

/* Entrance: a short staggered rise (transitions.dev "Texts reveal"), skipped for reduced motion. */
@media (prefers-reduced-motion:no-preference){
  .hero-copy>*,.stage{animation:rise .7s cubic-bezier(.22,1,.36,1) both}
  .hero-copy>:nth-child(2){animation-delay:.06s}.hero-copy>:nth-child(3){animation-delay:.12s}.hero-copy>:nth-child(4){animation-delay:.18s}.hero-copy>:nth-child(5){animation-delay:.22s}.stage{animation-delay:.26s;animation-duration:.9s}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.faq summary::after,.nav nav a{transition:none}}

@media (max-width:900px){
  .steps,.features{grid-template-columns:1fr 1fr}
  .privacy{grid-template-columns:1fr;padding:40px 32px}
}
@media (max-width:640px){
  .nav nav{display:none}
  .nav-inner{justify-content:space-between}
  .hero{padding-top:48px}
  .stage{margin:40px 0 32px}
  .stage-toolbar{position:static;width:100%;margin-top:16px}
  .section{padding:72px 0}
  .steps,.features{grid-template-columns:1fr}
  .privacy{padding:32px 20px;border-radius:24px}
  .button{width:100%}
  .actions{flex-direction:column}
  .nav .button{width:auto}
}
