/* Sagavell · landing (/) · Galería — same foundation as /auth/callback (tokens: design/tokens.json) */
@font-face{font-family:"Sagavell Fraunces";src:url(/fonts/Fraunces-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Sagavell Sans";src:url(/fonts/InstrumentSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Sagavell Sans";src:url(/fonts/InstrumentSans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Sagavell Sans";src:url(/fonts/InstrumentSans-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  color-scheme:light dark;
  --bg:#FAF9F7;          /* warm paper */
  --ink:#161616;         /* textPrimary        17.3:1 */
  --ink-2:#6A6660;       /* textSecondary       5.5:1 */
  --ink-3:#73706A;       /* textTertiary        4.7:1 */
  --rule:#E8E6DE;        /* decorative outline */
  --btn-bg:#161616;      /* primary */
  --btn-fg:#FFFFFF;      /* onPrimary */
  --outline-btn:#949088; /* outlineButton 1pt   3.0:1 */
  --frame:#161616;       /* iPhone frame */
  --frame-rim:#2E2C29;
  --cover-shadow:0 8px 24px rgba(0,0,0,.10); /* coverShadow, light only */
  --serif:"Sagavell Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Sagavell Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#141312;--ink:#F5F2EB;--ink-2:#B0AAA0;--ink-3:#8F8A83;--rule:#2E2C28;
    --btn-bg:#F5F2EB;--btn-fg:#161616;--outline-btn:#66625B;--frame:#2A2825;--frame-rim:#3B3934;--cover-shadow:none;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
img{display:block;max-width:100%;height:auto}
p,h1,h2,h3,figure,ul{margin:0}

/* ---------- header ---------- */
.top{max-width:1200px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 24px 0}
.wordmark{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}

/* ---------- hero ---------- */
.hero{max-width:1200px;margin:0 auto;padding:20px 24px 0}
.plate img{
  width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:50% 55%;
  border-radius:4px;box-shadow:var(--cover-shadow);background:#2a3640;
  animation:plate-in .8s cubic-bezier(.2,.7,.2,1) both;
}
.plate figcaption{margin-top:10px;font-size:12px;line-height:1.4;letter-spacing:.02em;color:var(--ink-3)}
@keyframes plate-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.hero-copy{padding-top:24px}
.eyebrow{margin:0 0 10px;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
h1{
  margin:0 0 14px;font-family:var(--serif);font-weight:500;font-size:44px;line-height:1.02;letter-spacing:-.025em;text-wrap:balance;
}
.lead{margin:0 0 24px;font-size:17px;line-height:1.55;color:var(--ink-2);text-wrap:pretty;max-width:34em}

/* ---------- button (same as /auth/callback) ---------- */
.cta{display:flex;flex-direction:column;gap:12px}
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:14px 24px;
  border-radius:999px;font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:.01em;line-height:1.2;
  text-decoration:none;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:opacity .15s ease,transform .15s ease;
}
.btn:hover{opacity:.9}
.btn:active{transform:scale(.985);opacity:.85}
.btn-primary{background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-bg)}
.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--outline-btn)}
.btn svg{width:18px;height:18px;flex:none;margin-top:-2px}
.cta-meta{font-size:13px;line-height:1.4;color:var(--ink-3);text-align:center}

/* ---------- features ---------- */
.traits{max-width:1200px;margin:0 auto;padding:88px 24px 24px}
.traits-head{margin-bottom:48px}
h2{font-family:var(--serif);font-weight:500;font-size:32px;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
.trait{display:flex;flex-direction:column;align-items:center;gap:32px;margin:0 0 80px}
.trait-copy{width:100%;max-width:440px}
.num{font-family:var(--serif);font-weight:500;font-size:15px;color:var(--ink-3);letter-spacing:.04em;margin-bottom:10px;
  font-variant-numeric:lining-nums}
h3{font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.1;letter-spacing:-.02em;margin-bottom:10px}
.trait-copy p:last-child{font-size:17px;line-height:1.55;color:var(--ink-2);text-wrap:pretty}

/* CSS iPhone frame (no Apple assets). --w = outer width */
.phone{
  --w:248px;position:relative;width:var(--w);flex:none;
  padding:calc(var(--w) * .03);border-radius:calc(var(--w) * .165);
  background:var(--frame);box-shadow:inset 0 0 0 1px var(--frame-rim),var(--cover-shadow);
}
.phone img{width:100%;aspect-ratio:390/844;border-radius:calc(var(--w) * .136);background:var(--rule)}
.phone::after{ /* Dynamic Island (aligned with the screenshots) */
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  top:calc(var(--w) * .0565);width:calc(var(--w) * .2989);height:calc(var(--w) * .0868);
  border-radius:999px;background:#000;
}

/* ---------- closing section ---------- */
.close{max-width:1200px;margin:0 auto;padding:40px 24px 88px;text-align:center}
.close h2{font-size:34px;margin:0 auto 28px;max-width:12em}
.close .cta{max-width:400px;margin:0 auto}

/* ---------- footer ---------- */
.foot{
  max-width:1200px;margin:0 auto;padding:28px 24px calc(28px + env(safe-area-inset-bottom));
  border-top:1px solid var(--rule);display:flex;flex-direction:column;align-items:center;gap:8px;
}
.foot-brand{display:flex;flex-direction:column;align-items:center;gap:6px}
.foot .copy{font-size:13px;color:var(--ink-3)}
.foot ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:0 8px}
.foot a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:14px;font-weight:500;color:var(--ink-2);
  text-decoration:none;border-radius:6px}
.foot a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}

/* ---------- focus ---------- */
:focus{outline:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:999px}
.foot a:focus-visible{border-radius:6px}

@media (prefers-reduced-motion:reduce){
  .plate img{animation:none}
  .btn{transition:none}.btn:active{transform:none}
}

/* ---------- desktop / landscape iPad ---------- */
@media (min-width:860px){
  .top{padding:40px 48px 0}
  .hero{
    padding:40px 48px 0;display:grid;grid-template-columns:440px minmax(0,1fr);column-gap:clamp(56px,8vw,120px);align-items:center;
    min-height:min(760px,calc(100vh - 80px));
  }
  .plate img{height:auto;aspect-ratio:2/3;max-height:calc(100vh - 170px);object-position:50% 50%}
  .hero-copy{padding:0 0 40px}
  h1{font-size:clamp(64px,6.6vw,104px);line-height:.98;margin-bottom:24px;max-width:7em}
  .lead{font-size:20px;line-height:1.5;max-width:26em;margin-bottom:36px}
  .cta{max-width:340px}
  .hero .cta-meta{text-align:left;padding-left:2px}

  .traits{padding:160px 48px 40px}
  .traits-head{max-width:600px;margin:0 0 96px}
  h2{font-size:52px;line-height:1.04}
  .trait{display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:96px;margin:0 0 140px}
  .trait .phone{--w:300px;justify-self:center}
  .trait-copy{max-width:420px}
  .trait:nth-of-type(even) .phone{order:2}
  .trait:nth-of-type(even) .trait-copy{justify-self:end}
  .num{font-size:17px;margin-bottom:16px}
  h3{font-size:44px;margin-bottom:16px}
  .trait-copy p:last-child{font-size:19px}

  .close{padding:40px 48px 160px}
  .close h2{font-size:64px;max-width:11em;margin-bottom:40px}
  .close .cta{max-width:340px}

  .foot{flex-direction:row;justify-content:space-between;padding:24px 48px 32px}
  .foot-brand{flex-direction:row;align-items:baseline;gap:20px}
  .foot ul{justify-content:flex-end}
}

/* Draft legal pages reuse the landing typography, spacing and colors. */
.home-link{text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.legal{max-width:calc(32em + 48px);font-size:17px;margin:0 auto;padding:40px 24px 88px;min-height:65vh;line-height:1.6}
.legal h1{max-width:none;font-size:34px;line-height:1.1;margin:0 0 24px}
.legal h2{font-family:var(--serif);font-size:24px;line-height:1.2;margin:32px 0 12px}
.legal h3{font-family:var(--sans);font-size:17px;font-weight:600;line-height:1.4;margin:32px 0 12px}
.legal p{margin-bottom:24px;color:var(--ink-2);line-height:1.6;max-width:32em}
.legal p.eyebrow{margin-bottom:10px;color:var(--ink-3);font-size:12px;letter-spacing:.08em}
.legal .lead{font-size:17px}
.legal a{color:var(--ink);text-underline-offset:3px}
.legal .standalone-link{display:inline-flex;align-items:center;min-height:44px}
.legal-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.back-home{font-size:14px;color:var(--ink-2);text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}
.foot a.wordmark{font-size:12px;color:var(--ink)}
.foot a[aria-current="page"]{text-decoration:underline;text-underline-offset:3px}
@media(min-width:860px){.legal{padding-top:56px}.legal h1{font-size:52px}}
@media(min-width:568px) and (max-width:859px){.plate img{max-height:min(calc(100vw - 48px),60vh)}}
@media(max-width:567px) and (max-height:700px){
 .top{padding-top:16px}.hero{padding-top:16px}
 .hero-copy{padding-top:16px}.hero h1{font-size:36px;margin-bottom:12px}
 .hero .lead{font-size:16px;line-height:1.45;margin-bottom:16px}
 .hero .eyebrow{font-size:12px;letter-spacing:.08em;margin-bottom:8px}
}


/* Explicit appearance previews use the same tokens as the OS theme. */
:root[data-theme="light"]{
  color-scheme:light;

  --bg:#FAF9F7;          /* warm paper */
  --ink:#161616;         /* textPrimary        17.3:1 */
  --ink-2:#6A6660;       /* textSecondary       5.5:1 */
  --ink-3:#73706A;       /* textTertiary        4.7:1 */
  --rule:#E8E6DE;        /* decorative outline */
  --btn-bg:#161616;      /* primary */
  --btn-fg:#FFFFFF;      /* onPrimary */
  --outline-btn:#949088; /* outlineButton 1pt   3.0:1 */
  --frame:#161616;       /* iPhone frame */
  --frame-rim:#2E2C29;
  --cover-shadow:0 8px 24px rgba(0,0,0,.10); /* coverShadow, light only */
  --serif:"Sagavell Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Sagavell Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
:root[data-theme="dark"]{
    color-scheme:dark;
    --bg:#141312;--ink:#F5F2EB;--ink-2:#B0AAA0;--ink-3:#8F8A83;--rule:#2E2C28;
    --btn-bg:#F5F2EB;--btn-fg:#161616;--outline-btn:#66625B;--frame:#2A2825;--frame-rim:#3B3934;--cover-shadow:none;
  }

/* Informational release status, not a control. */
.coming-soon{align-self:flex-start;margin:0;padding:0;border:0;border-radius:0;color:var(--ink-2);font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.4;text-align:left}
.cta:has(.coming-soon){gap:8px}
.release-platform{align-self:flex-start;margin:0;font-size:13px;line-height:1.4;color:var(--ink-2);text-align:left}

@media(min-width:568px) and (max-width:859px) and (orientation:landscape){
 .hero{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1fr);gap:32px;align-items:center}
 .plate img{width:auto;height:60vh;max-height:60vh;aspect-ratio:2/3;margin:0 auto}
 .hero-copy{padding-top:0}.hero h1{font-size:38px}.hero .lead{font-size:16px;margin-bottom:16px}
}
