:root{
  --bg:#FBE1C9;
  --bg-soft:#F6D8BD;
  --paper:#FFF6EC;
  --ink:#21150E;
  --muted:#746257;
  --line:rgba(69,39,22,.12);
  --line-strong:rgba(69,39,22,.20);
  --accent:#D66A21;
  --accent-dark:#A94F18;
  --accent-soft:#F0B98E;
  --cream:#FBE1C9;
  --dark:#1B120D;
  --white:#FFF;
  --radius:26px;
  --radius-sm:16px;
  --shadow:0 24px 70px rgba(51,35,24,.12);
  --shell:1180px;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
  --display:"Iowan Old Style","Baskerville","Times New Roman",serif;
}

*{box-sizing:border-box}

html{
  scroll-behavior:smooth;
  background:var(--bg);
}

body{
  margin:0;
  color:var(--ink);
  background:var(--bg);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,svg{display:block;max-width:100%}

a{color:inherit}

button,input,textarea,select{font:inherit}

::selection{
  color:#fff;
  background:var(--accent);
}

.skip-link{
  position:fixed;
  z-index:999;
  left:16px;
  top:16px;
  transform:translateY(-150%);
  padding:10px 14px;
  border-radius:10px;
  color:#fff;
  background:var(--dark);
}

.skip-link:focus{transform:none}

.shell,
.nav-shell{
  width:min(calc(100% - 40px),var(--shell));
  margin-inline:auto;
}

.section{
  padding:112px 0;
}

.eyebrow{
  margin:0 0 18px;
  color:var(--accent-dark);
  font-size:.77rem;
  line-height:1.2;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}

h1,h2,h3,p{margin-top:0}

h1,h2{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.035em;
}

h1{
  max-width:760px;
  margin-bottom:25px;
  font-size:clamp(3.35rem,7vw,6.6rem);
  line-height:.91;
}

h2{
  margin-bottom:22px;
  font-size:clamp(2.55rem,4.5vw,4.5rem);
  line-height:1;
}

h3{
  margin-bottom:12px;
  font-size:1.2rem;
  line-height:1.3;
}

p{
  color:var(--muted);
}

.site-header{
  position:sticky;
  z-index:100;
  top:0;
  border-bottom:1px solid transparent;
  background:rgba(251,225,201,.82);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}

.site-header.is-scrolled{
  border-bottom-color:var(--line);
}

.nav-shell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:74px;
  gap:24px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-size:1.12rem;
  font-weight:750;
  text-decoration:none;
  letter-spacing:-.025em;
}

.brand-app-icon{
  width:34px;
  height:34px;
  display:block;
  object-fit:cover;
  border-radius:9px;
  box-shadow:0 5px 16px rgba(112,61,28,.12);
}

.desktop-nav{
  display:flex;
  align-items:center;
  gap:30px;
}

.desktop-nav a,
.footer-links a{
  color:var(--muted);
  font-size:.9rem;
  text-decoration:none;
  transition:color .2s ease;
}

.desktop-nav a:hover,
.footer-links a:hover{
  color:var(--ink);
}

.nav-actions{
  display:flex;
  align-items:center;
  gap:12px;
}

.lang-link{
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border-radius:50%;
  color:var(--muted);
  font-size:.82rem;
  font-weight:700;
  text-decoration:none;
}

.lang-link:hover{
  color:var(--ink);
  background:rgba(23,19,15,.05);
}

.button{
  display:inline-flex;
  min-height:52px;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 22px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:.93rem;
  line-height:1;
  font-weight:750;
  text-decoration:none;
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background .2s ease,
    opacity .2s ease;
}

.button:hover{
  transform:translateY(-2px);
}

.button:focus-visible,
.text-link:focus-visible,
.lang-link:focus-visible,
summary:focus-visible{
  outline:3px solid rgba(185,102,58,.25);
  outline-offset:4px;
}

.button-small{
  min-height:40px;
  padding-inline:17px;
  font-size:.84rem;
}

.button-primary{
  color:#fff;
  background:var(--accent);
  box-shadow:0 13px 28px rgba(185,102,58,.23);
}

.button-primary:hover{
  background:var(--accent-dark);
  box-shadow:0 16px 34px rgba(185,102,58,.28);
}

.button-dark{
  color:#fff;
  background:var(--dark);
}

.button-light{
  color:var(--dark);
  background:#fff;
}

.appstore-link.is-disabled{
  cursor:default;
  opacity:.63;
  transform:none;
  box-shadow:none;
}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  font-weight:700;
  text-decoration:none;
}

.text-link span{
  transition:transform .2s ease;
}

.text-link:hover span{
  transform:translateY(2px);
}

.hero{
  min-height:calc(100vh - 74px);
  display:flex;
  align-items:center;
  padding-top:70px;
  overflow:hidden;
}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.78fr);
  align-items:center;
  gap:80px;
}

.hero-lede{
  max-width:680px;
  margin-bottom:32px;
  font-size:clamp(1.08rem,1.5vw,1.28rem);
  line-height:1.65;
}

.hero-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:24px;
}

.microcopy{
  margin-top:18px;
  font-size:.78rem;
}

.hero-product{
  position:relative;
  display:grid;
  min-height:610px;
  place-items:center;
}

.ambient-orbit{
  position:absolute;
  border:1px solid rgba(185,102,58,.14);
  border-radius:50%;
}

.orbit-one{
  width:540px;
  height:540px;
}

.orbit-two{
  width:410px;
  height:410px;
}

.phone{
  position:relative;
  z-index:2;
  width:min(330px,80vw);
  padding:10px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:48px;
  background:#171411;
  box-shadow:
    0 50px 90px rgba(49,34,24,.25),
    inset 0 0 0 1px rgba(255,255,255,.08);
  transform:rotate(2.2deg);
}

.phone-top{
  position:absolute;
  z-index:4;
  top:17px;
  left:0;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 28px;
  color:#31281F;
  font-size:.59rem;
  font-weight:700;
}

.phone-island{
  width:76px;
  height:21px;
  border-radius:20px;
  background:#171411;
}

.map-ui{
  position:relative;
  height:590px;
  overflow:hidden;
  border-radius:39px;
  background:
    linear-gradient(rgba(255,255,255,.2),rgba(255,255,255,.2)),
    #E8DFD3;
}

.map-ui::before{
  content:"";
  position:absolute;
  inset:-20%;
  background:
    linear-gradient(33deg,transparent 44%,rgba(255,255,255,.82) 45% 48%,transparent 49%),
    linear-gradient(116deg,transparent 42%,rgba(255,255,255,.78) 43% 47%,transparent 48%),
    linear-gradient(8deg,transparent 58%,rgba(211,195,176,.55) 59% 61%,transparent 62%);
}

.street{
  position:absolute;
  z-index:1;
  height:6px;
  border-radius:10px;
  background:rgba(255,255,255,.92);
  box-shadow:0 0 0 1px rgba(120,103,86,.06);
}

.street-one{
  width:340px;
  top:180px;
  left:-30px;
  transform:rotate(21deg);
}

.street-two{
  width:380px;
  top:370px;
  left:-15px;
  transform:rotate(-18deg);
}

.street-three{
  width:330px;
  top:300px;
  left:84px;
  transform:rotate(83deg);
}

.street-four{
  width:260px;
  top:110px;
  left:90px;
  transform:rotate(-54deg);
}

.map-label{
  position:absolute;
  z-index:2;
  color:rgba(65,55,45,.46);
  font-size:.56rem;
  font-weight:650;
  letter-spacing:.02em;
}

.label-one{top:133px;left:46px;transform:rotate(19deg)}
.label-two{top:426px;right:54px}

.map-pin{
  position:absolute;
  z-index:4;
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border:5px solid rgba(255,255,255,.9);
  border-radius:50% 50% 50% 0;
  background:var(--accent);
  box-shadow:0 8px 20px rgba(94,56,34,.18);
  transform:rotate(-45deg);
}

.map-pin i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#fff;
}

.pin-one{top:183px;left:138px}
.pin-two{top:100px;right:50px}
.pin-three{top:365px;left:50px}

.map-pin.muted{
  width:28px;
  height:28px;
  border-width:4px;
  opacity:.5;
}

.location-pulse{
  position:absolute;
  z-index:3;
  top:258px;
  left:142px;
  display:grid;
  width:45px;
  height:45px;
  place-items:center;
  border-radius:50%;
  background:rgba(60,124,219,.16);
}

.location-pulse span{
  width:13px;
  height:13px;
  border:3px solid white;
  border-radius:50%;
  background:#397DD3;
  box-shadow:0 3px 10px rgba(44,94,158,.35);
}

.memory-card{
  position:absolute;
  z-index:6;
  right:16px;
  bottom:25px;
  left:16px;
  padding:20px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:25px;
  background:rgba(255,253,249,.92);
  box-shadow:0 20px 50px rgba(60,43,31,.18);
  backdrop-filter:blur(18px);
}

.memory-kicker{
  margin:0 0 2px;
  color:var(--ink);
  font-size:.92rem;
  font-weight:750;
}

.memory-from{
  margin-bottom:18px;
  font-size:.72rem;
}

.audio-row{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--muted);
  font-size:.65rem;
}

.play-demo{
  display:grid;
  flex:0 0 35px;
  width:35px;
  height:35px;
  place-items:center;
  padding:0 0 0 2px;
  border:0;
  border-radius:50%;
  color:#fff;
  background:var(--accent);
}

.waveform{
  flex:1;
  height:27px;
  display:flex;
  align-items:center;
  gap:3px;
}

.waveform i{
  width:3px;
  border-radius:4px;
  background:rgba(185,102,58,.55);
}

.waveform i:nth-child(1){height:8px}
.waveform i:nth-child(2){height:16px}
.waveform i:nth-child(3){height:24px}
.waveform i:nth-child(4){height:13px}
.waveform i:nth-child(5){height:19px}
.waveform i:nth-child(6){height:10px}
.waveform i:nth-child(7){height:22px}
.waveform i:nth-child(8){height:14px}
.waveform i:nth-child(9){height:7px}

.phone-home{
  position:absolute;
  z-index:8;
  bottom:15px;
  left:50%;
  width:105px;
  height:4px;
  border-radius:10px;
  background:rgba(30,25,21,.5);
  transform:translateX(-50%);
}

.floating-note{
  position:absolute;
  z-index:4;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 13px;
  border:1px solid rgba(255,255,255,.85);
  border-radius:999px;
  color:var(--ink);
  background:rgba(255,253,249,.82);
  box-shadow:0 12px 34px rgba(57,39,28,.1);
  backdrop-filter:blur(14px);
  font-size:.72rem;
  font-weight:700;
}

.floating-note-top{top:115px;right:0}
.floating-note-bottom{bottom:105px;left:-10px}

.note-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
}

.note-dot-photo{background:#63835C}

.quiet-strip{
  border-block:1px solid var(--line);
}

.quiet-strip-inner{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  color:var(--muted);
  font-size:.79rem;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.quiet-strip-inner i{
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--accent);
}

.section-heading{
  max-width:760px;
  margin-bottom:58px;
}

.section-heading>p:last-child{
  max-width:640px;
  font-size:1.08rem;
}

.section-heading-wide{
  max-width:920px;
}

.steps-grid{
  border-top:1px solid var(--line-strong);
}

.step-card{
  display:grid;
  grid-template-columns:110px minmax(0,700px);
  gap:35px;
  padding:37px 0;
  border-bottom:1px solid var(--line);
}

.step-number{
  color:var(--accent);
  font-family:var(--display);
  font-size:1.55rem;
}

.step-card h3{
  font-family:var(--display);
  font-size:clamp(1.65rem,2.3vw,2.35rem);
  font-weight:500;
  letter-spacing:-.025em;
}

.step-card p{
  max-width:630px;
  margin-bottom:0;
}

.section-soft{
  background:var(--bg-soft);
}

.usecases-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line-strong);
  border-left:1px solid var(--line-strong);
}

.usecase-card{
  min-height:360px;
  padding:42px;
  border-right:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
  transition:background .25s ease,transform .25s ease;
}

.usecase-card:hover{
  background:rgba(255,255,255,.34);
}

.usecase-meta{
  display:flex;
  justify-content:space-between;
  margin-bottom:70px;
  color:var(--accent-dark);
  font-size:.73rem;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.usecase-card h3{
  max-width:520px;
  font-family:var(--display);
  font-size:clamp(1.7rem,2.8vw,2.75rem);
  font-weight:500;
  line-height:1.05;
  letter-spacing:-.03em;
}

.usecase-card p{
  max-width:540px;
}

.usecase-example{
  display:block;
  max-width:500px;
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid var(--line);
  color:var(--ink);
  font-family:var(--display);
  font-size:1.1rem;
  font-style:italic;
}

.story-section{
  overflow:hidden;
}

.story-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(350px,.78fr);
  align-items:center;
  gap:100px;
}

.story-copy p{
  max-width:650px;
  font-size:1.05rem;
}

.quote-object{
  position:relative;
  min-height:440px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:55px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  box-shadow:var(--shadow);
  transform:rotate(2deg);
}

.quote-location{
  position:absolute;
  top:25px;
  right:28px;
  color:var(--muted);
  font-size:.62rem;
  letter-spacing:.08em;
}

.quote-object p{
  max-width:390px;
  margin:28px 0;
  color:var(--ink);
  font-family:var(--display);
  font-size:clamp(2rem,3vw,3.15rem);
  line-height:1.05;
  letter-spacing:-.03em;
}

.privacy-section{
  color:#fff;
  background:var(--dark);
}

.privacy-section .eyebrow{
  color:#D69A78;
}

.privacy-section h2{
  color:#fff;
}

.privacy-section p{
  color:rgba(255,255,255,.66);
}

.privacy-section .text-link{
  color:#fff;
}

.privacy-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
}

.privacy-copy>p{
  max-width:620px;
}

.privacy-points{
  border-top:1px solid rgba(255,255,255,.18);
}

.privacy-points>div{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:20px;
  padding:25px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.privacy-points p{
  margin:0;
}

.privacy-index{
  color:#D69A78;
  font-family:var(--display);
}

.pricing-shell{
  display:grid;
  grid-template-columns:1fr 390px;
  align-items:center;
  gap:100px;
}

.pricing-shell>div:first-child{
  max-width:700px;
}

.pricing-intro{
  max-width:560px;
  font-size:1.08rem;
}

.pricing-label{
  margin-bottom:22px;
  color:var(--ink);
  font-weight:750;
}

.price-row{
  display:flex;
  align-items:baseline;
  gap:8px;
}

.price-row strong{
  color:var(--ink);
  font-family:var(--display);
  font-size:3.2rem;
  line-height:1;
  font-weight:500;
  letter-spacing:-.04em;
}

.price-row span,
.annual-price{
  color:var(--muted);
}

.annual-price{
  margin-top:8px;
}

.faq-shell{
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1fr);
  gap:90px;
}

.faq-list{
  border-top:1px solid var(--line-strong);
}

.faq-list details{
  border-bottom:1px solid var(--line);
}

.faq-list summary{
  position:relative;
  padding:25px 46px 25px 0;
  cursor:pointer;
  color:var(--ink);
  font-weight:700;
  list-style:none;
}

.faq-list summary::-webkit-details-marker{display:none}

.faq-list summary::after{
  content:"+";
  position:absolute;
  top:20px;
  right:5px;
  color:var(--accent);
  font-family:var(--display);
  font-size:1.9rem;
  font-weight:400;
}

.faq-list details[open] summary::after{
  content:"−";
}

.faq-list details>div{
  padding:0 50px 23px 0;
}

.faq-list details p{
  margin:0;
}

.final-cta{
  padding:120px 0;
  color:#fff;
  text-align:center;
  background:var(--accent);
}

.final-cta .eyebrow{
  color:rgba(255,255,255,.65);
}

.final-cta h2{
  max-width:780px;
  margin-inline:auto;
  color:#fff;
}

.final-cta p:not(.eyebrow){
  max-width:600px;
  margin:0 auto 32px;
  color:rgba(255,255,255,.77);
  font-size:1.08rem;
}

.marketing-footer{
  padding:65px 0 45px;
  background:#110E0C;
}

.footer-inner{
  display:grid;
  grid-template-columns:1.3fr 1fr auto;
  align-items:end;
  gap:50px;
}

.brand-footer{
  color:#fff;
}

.footer-inner>div>p{
  max-width:340px;
  margin:18px 0 0;
  color:rgba(255,255,255,.48);
  font-size:.85rem;
}

.footer-links{
  display:grid;
  grid-template-columns:repeat(2,max-content);
  gap:10px 28px;
}

.footer-links a{
  color:rgba(255,255,255,.58);
}

.copyright{
  margin:0;
  color:rgba(255,255,255,.35);
  font-size:.73rem;
  white-space:nowrap;
}

@media(max-width:980px){
  .desktop-nav{display:none}

  .hero{
    min-height:auto;
    padding-top:65px;
  }

  .hero-grid,
  .story-grid,
  .privacy-grid,
  .pricing-shell,
  .faq-shell{
    grid-template-columns:1fr;
    gap:60px;
  }

  .hero-copy{text-align:center}

  .hero-copy h1,
  .hero-lede{
    margin-inline:auto;
  }

  .hero-actions{
    justify-content:center;
  }

  .hero-product{
    min-height:570px;
  }

  .privacy-grid,
  .pricing-shell{
    gap:55px;
  }

  .footer-inner{
    grid-template-columns:1fr 1fr;
  }

  .copyright{
    grid-column:1/-1;
  }
}

@media(max-width:700px){
  .shell,
  .nav-shell{
    width:min(calc(100% - 28px),var(--shell));
  }

  .section{
    padding:78px 0;
  }

  h1{
    font-size:clamp(3.2rem,15vw,4.8rem);
  }

  h2{
    font-size:clamp(2.5rem,11vw,3.55rem);
  }

  .site-header{
    backdrop-filter:blur(12px);
  }

  .nav-shell{
    min-height:66px;
  }

  .nav-actions{
    gap:5px;
  }

  .button-small{
    display:none;
  }

  .hero{
    padding-top:48px;
  }

  .hero-grid{
    gap:38px;
  }

  .hero-lede{
    font-size:1.02rem;
  }

  .hero-actions{
    flex-direction:column;
    gap:18px;
  }

  .hero-actions .button{
    width:100%;
    max-width:320px;
  }

  .hero-product{
    min-height:510px;
  }

  .phone{
    width:280px;
    border-radius:42px;
  }

  .map-ui{
    height:490px;
    border-radius:34px;
  }

  .floating-note-top{
    right:-4px;
    top:80px;
  }

  .floating-note-bottom{
    left:-2px;
    bottom:70px;
  }

  .orbit-one{
    width:390px;
    height:390px;
  }

  .orbit-two{
    width:305px;
    height:305px;
  }

  .quiet-strip-inner{
    min-height:70px;
    gap:10px;
    font-size:.63rem;
    letter-spacing:.04em;
  }

  .step-card{
    grid-template-columns:50px 1fr;
    gap:17px;
    padding:30px 0;
  }

  .usecases-grid{
    grid-template-columns:1fr;
  }

  .usecase-card{
    min-height:auto;
    padding:30px 25px 35px;
  }

  .usecase-meta{
    margin-bottom:45px;
  }

  .quote-object{
    min-height:350px;
    padding:38px 28px;
  }

  .quote-location{
    right:20px;
  }

  .privacy-points>div{
    grid-template-columns:45px 1fr;
  }

  .faq-shell{
    gap:20px;
  }

  .footer-inner{
    grid-template-columns:1fr;
    align-items:start;
  }

  .copyright{
    grid-column:auto;
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}

  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}

/* Editorial motion and Souvnir motifs */
.hero-product{isolation:isolate}

.hero-flight{
  position:absolute;
  z-index:5;
  inset:30px 6px 60px;
  pointer-events:none;
}

.hero-flight::before{
  content:"";
  position:absolute;
  top:90px;
  right:70px;
  width:250px;
  height:210px;
  border:1.5px dashed rgba(214,106,33,.45);
  border-left-color:transparent;
  border-bottom-color:transparent;
  border-radius:50%;
  transform:rotate(27deg);
}

.hero-envelope{
  position:absolute;
  top:130px;
  left:34px;
  width:34px;
  height:25px;
  border:2px solid var(--accent);
  border-radius:5px;
  background:var(--paper);
  transform:rotate(-10deg);
  animation:envelope-to-plane 8s ease-in-out infinite;
}

.hero-envelope::after,
.hero-envelope::before{
  content:"";
  position:absolute;
  top:3px;
  width:20px;
  height:2px;
  background:var(--accent);
}

.hero-envelope::before{left:0;transform:rotate(31deg);transform-origin:left center}
.hero-envelope::after{right:0;transform:rotate(-31deg);transform-origin:right center}

.paper-plane{
  width:48px;
  height:auto;
  fill:rgba(214,106,33,.12);
  stroke:var(--accent);
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:2.5;
  transform:rotate(-8deg);
  animation:plane-flight 8s ease-in-out infinite;
}

.hero-flight>.paper-plane{position:absolute;top:170px;left:160px}

.hero-flight-pin,
.final-pin{
  position:absolute;
  width:24px;
  height:24px;
  border:4px solid var(--paper);
  border-radius:50% 50% 50% 0;
  background:var(--accent);
  box-shadow:0 8px 20px rgba(112,61,28,.18);
  transform:rotate(-45deg);
}

.hero-flight-pin{top:250px;right:62px;animation:pin-arrival 8s ease-in-out infinite}
.hero-flight-card{
  position:absolute;
  right:0;
  bottom:94px;
  padding:9px 12px;
  border:1px solid rgba(214,106,33,.18);
  border-radius:12px;
  color:var(--ink);
  background:rgba(255,246,236,.92);
  box-shadow:0 12px 30px rgba(112,61,28,.1);
  font-size:.7rem;
  font-weight:750;
  opacity:0;
  animation:card-arrival 8s ease-in-out infinite;
}

@keyframes envelope-to-plane{0%,12%{opacity:1;transform:translate(0,0) rotate(-10deg)}25%,100%{opacity:0;transform:translate(110px,35px) rotate(10deg)}}
@keyframes plane-flight{0%,22%{opacity:0;transform:translate(0,38px) rotate(-8deg)}35%{opacity:1}72%,100%{opacity:1;transform:translate(130px,68px) rotate(8deg)}}
@keyframes pin-arrival{0%,68%{opacity:0;transform:rotate(-45deg) scale(.7)}78%,100%{opacity:1;transform:rotate(-45deg) scale(1)}}
@keyframes card-arrival{0%,70%{opacity:0;transform:translateY(8px)}82%,100%{opacity:1;transform:translateY(0)}}

.step-card{position:relative;transition:transform .5s ease,opacity .5s ease}
.step-visual{height:28px;margin-bottom:14px;color:var(--accent)}
.step-wave{display:flex;align-items:center;gap:5px}
.step-wave i{width:4px;height:8px;border-radius:5px;background:var(--accent);transform:scaleY(.35);transform-origin:center;opacity:.35}
.step-wave i:nth-child(2),.step-wave i:nth-child(6){height:18px}
.step-wave i:nth-child(3),.step-wave i:nth-child(5){height:25px}
.step-wave i:nth-child(4){height:13px}
.step-card.is-visible .step-wave i{animation:wave-in .8s ease forwards}
.step-card.is-visible .step-wave i:nth-child(2){animation-delay:.08s}
.step-card.is-visible .step-wave i:nth-child(3){animation-delay:.16s}
.step-card.is-visible .step-wave i:nth-child(4){animation-delay:.24s}
.step-card.is-visible .step-wave i:nth-child(5){animation-delay:.32s}
.step-card.is-visible .step-wave i:nth-child(6){animation-delay:.4s}
.step-card.is-visible .step-wave i:nth-child(7){animation-delay:.48s}
@keyframes wave-in{to{opacity:1;transform:scaleY(1)}}
.step-route{position:relative;width:250px;border-top:1.5px dashed var(--accent-soft);transform:rotate(-7deg);margin-top:13px}
.step-route span,.step-route i{position:absolute;top:-7px;width:13px;height:13px;border-radius:50% 50% 50% 0;background:var(--accent);transform:rotate(-45deg)}
.step-route span{left:0}.step-route i{right:0;transform:rotate(-45deg) scale(.65);opacity:.45}
.step-card.is-visible .step-route i{animation:route-pin 1.2s ease forwards}
@keyframes route-pin{to{opacity:1;transform:rotate(-45deg) scale(1)}}
.step-discover{display:flex;align-items:center;gap:10px;color:var(--accent)}
.step-discover span{width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--accent);transform:rotate(-45deg);box-shadow:0 0 0 0 rgba(214,106,33,.35)}
.step-card.is-visible .step-discover span{animation:discover-pulse 1.4s ease-out forwards}
.step-discover strong{font-size:.76rem;font-weight:750;letter-spacing:.04em}
@keyframes discover-pulse{70%{box-shadow:0 0 0 12px rgba(214,106,33,0)}100%{box-shadow:0 0 0 0 rgba(214,106,33,0)}}

.usecases-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"couple couple friends" "couple couple personal" "travel travel travel";gap:18px;border:0}
.usecase-card{min-height:250px;border:1px solid var(--line);border-radius:var(--radius-sm);background:rgba(255,246,236,.38);padding:34px;transition:background .25s ease,transform .25s ease,box-shadow .25s ease}
.usecase-card:hover{background:rgba(255,246,236,.78);box-shadow:0 18px 40px rgba(112,61,28,.08)}
.usecase-card[data-usecase="couple"]{grid-area:couple;min-height:540px}
.usecase-card[data-usecase="friends"]{grid-area:friends}
.usecase-card[data-usecase="personal"]{grid-area:personal}
.usecase-card[data-usecase="travel"]{grid-area:travel;min-height:220px}
.usecase-meta{margin-bottom:35px}
.usecase-illustration{height:50px;margin-bottom:18px;position:relative;color:var(--accent)}
.illustration-couple span{font-size:2rem}.illustration-couple i,.illustration-friends i,.illustration-personal i{position:absolute;width:14px;height:14px;border-radius:50% 50% 50% 0;background:var(--accent);transform:rotate(-45deg)}
.illustration-couple i{left:36px;top:20px}.illustration-friends i:nth-child(1){left:8px;top:21px}.illustration-friends i:nth-child(2){left:30px;top:8px}.illustration-friends i:nth-child(3){left:52px;top:23px}.illustration-travel span{position:absolute;left:4px;top:25px;width:110px;border-top:1.5px dashed var(--accent)}.illustration-travel b{position:absolute;left:48px;top:5px;width:34px;height:25px;border-top:2px solid var(--accent);border-right:2px solid var(--accent);transform:rotate(-25deg);clip-path:polygon(0 0,100% 0,50% 100%)}.illustration-personal i{left:7px;top:12px}.illustration-personal b{position:absolute;left:37px;top:20px;width:72px;border-top:2px solid var(--accent);transform:rotate(8deg)}

.reveal-section{transition:opacity .8s ease,transform .8s ease}
.js .reveal-section{opacity:0;transform:translateY(24px)}
.reveal-section.is-visible{opacity:1;transform:none}
.story-section{position:relative}
.envelope-object{position:absolute;right:calc(50% - 520px);top:82px;width:86px;height:58px;border:2px solid var(--accent);border-radius:8px;background:rgba(255,246,236,.72);opacity:0;transform:translateY(14px) rotate(7deg);transition:opacity .7s ease,transform .7s ease;box-shadow:0 10px 25px rgba(112,61,28,.08)}
.is-visible .envelope-object{opacity:1;transform:none}
.envelope-flap{position:absolute;inset:0 8px 18px;border-bottom:2px solid var(--accent);transform:skewY(-25deg);transform-origin:left bottom}
.envelope-paper{position:absolute;left:24px;top:-13px;width:38px;height:32px;border:1px solid var(--accent-soft);background:var(--paper);transform:rotate(-4deg);opacity:0;transition:opacity .7s ease .35s,transform .7s ease .35s}
.is-visible .envelope-paper{opacity:1;transform:translateY(-8px) rotate(-4deg)}
.quote-object{min-height:380px;padding:48px 45px;transform:rotate(1deg)}
.quote-date{margin-bottom:78px;color:var(--muted);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}
.quote-location{top:25px;left:28px;right:auto}
.quote-object>p:not(.quote-caption){max-width:430px;margin:0 0 30px;font-size:clamp(1.8rem,3vw,2.7rem)}
.quote-audio{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.68rem}
.quote-audio .waveform{max-width:190px}.quote-play{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;color:#fff;background:var(--accent);font-size:.58rem}
.quote-caption{margin:30px 0 0!important;color:var(--muted);font-size:.68rem!important;font-family:var(--sans)!important;letter-spacing:.02em}
.why-section{padding-top:75px;padding-bottom:130px}
.why-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.7fr);gap:100px;align-items:end}
.why-inner h2{max-width:690px;margin-bottom:0}
.why-benefits{border-top:1px solid var(--line-strong)}
.why-benefits p{margin:0;padding:18px 0;border-bottom:1px solid var(--line);font-size:.88rem}.why-benefits strong,.why-benefits span{display:block}.why-benefits strong{color:var(--ink);font-size:1rem}.why-benefits span{margin-top:5px}
.privacy-points{position:relative;padding-top:55px}.privacy-symbol{position:absolute;top:0;left:0;width:28px;height:28px;padding:0!important;border:1.5px solid #D69A78!important;border-bottom:1.5px solid #D69A78!important;border-radius:7px;display:block!important}.privacy-symbol::before{content:"";position:absolute;left:5px;right:5px;top:7px;height:10px;border-bottom:1px solid #D69A78;transform:skewY(-28deg)}.privacy-symbol span{position:absolute;right:-12px;bottom:-10px;width:11px;height:11px;border:2px solid var(--dark);border-radius:50% 50% 50% 0;background:#D69A78;transform:rotate(-45deg)}
.pricing-shell{align-items:start}.pricing-plans{display:grid;grid-template-columns:1fr 1.12fr;gap:16px}.pricing-plan{min-height:250px;padding:30px;border:1px solid var(--line);border-radius:var(--radius-sm);background:rgba(255,246,236,.45)}.pricing-premium{background:var(--paper);box-shadow:var(--shadow)}.pricing-plan h3{font-family:var(--display);font-size:1.7rem;font-weight:500}.pricing-plan p{font-size:.9rem}.pricing-plan .button{width:100%;margin-top:20px}.pricing-plan .price-row strong{font-size:2.7rem}
.final-cta{position:relative;overflow:hidden}.final-flight{position:relative;width:230px;height:70px;margin:0 auto 20px}.final-flight::before{content:"";position:absolute;left:10px;top:34px;width:205px;border-top:1.5px dashed rgba(255,255,255,.6);transform:rotate(-10deg)}.final-flight .paper-plane{position:absolute;right:0;top:0;stroke:#fff;fill:rgba(255,255,255,.14);animation:final-plane 4s ease-in-out infinite alternate}.final-pin{left:0;top:28px;border-color:var(--accent);background:#fff;transform:rotate(-45deg) scale(.75)}
@keyframes final-plane{to{transform:translate(-12px,4px) rotate(-18deg)}}

@media(max-width:980px){
  .why-inner{grid-template-columns:1fr;gap:45px}.pricing-plans{grid-template-columns:1fr 1fr}.envelope-object{right:8%;top:50px}.hero-flight{inset:20px 0 40px}
}
@media(max-width:700px){
  .hero-flight{inset:0 -12px 25px;transform:scale(.78);transform-origin:center}.hero-flight-card{right:-5px;bottom:52px}.hero-flight-pin{right:48px}.hero-flight>.paper-plane{left:125px}.hero-envelope{left:22px}
  .step-route{width:180px}.usecases-grid{grid-template-columns:1fr;grid-template-areas:"couple" "friends" "personal" "travel"}.usecase-card[data-usecase="couple"],.usecase-card[data-usecase="travel"]{min-height:auto}.why-section{padding-top:50px;padding-bottom:90px}.why-inner{gap:35px}.envelope-object{right:5%;top:22px;transform:scale(.7) translateY(14px) rotate(7deg)}.is-visible .envelope-object{transform:scale(.7) rotate(7deg)}.quote-object{min-height:350px;padding:38px 26px}.quote-date{margin-bottom:65px}.pricing-plans{grid-template-columns:1fr}.pricing-plan{min-height:auto}.final-flight{transform:scale(.86)}
}
@media(prefers-reduced-motion:reduce){
  .hero-envelope,.paper-plane,.hero-flight-pin,.hero-flight-card,.final-flight .paper-plane{animation:none}.hero-envelope{opacity:0}.hero-flight>.paper-plane{opacity:1;transform:translate(130px,68px) rotate(8deg)}.hero-flight-pin,.hero-flight-card{opacity:1}.reveal-section{opacity:1;transform:none}.envelope-object{opacity:1;transform:none}.envelope-paper{opacity:1;transform:translateY(-8px) rotate(-4deg)}
}

/* A continuous Souvnir journey: five quiet visual worlds linked by one route. */
main{position:relative;overflow:hidden}
main>section{position:relative;z-index:1}
main::before{content:"";position:absolute;z-index:2;top:330px;bottom:350px;left:max(22px,calc(50% - 555px));border-left:1px dashed rgba(169,79,24,.32);pointer-events:none}
main::after{content:"";position:absolute;z-index:2;top:335px;bottom:350px;left:max(17px,calc(50% - 560px));width:11px;background:radial-gradient(circle,var(--accent) 0 3px,transparent 4px) 0 0/11px 84px repeat-y;opacity:.5;pointer-events:none}
.hero{background:radial-gradient(circle at 78% 38%,rgba(240,185,142,.3),transparent 34%),var(--bg)}
.quiet-strip{background:rgba(246,216,189,.34)}
#fonctionnement,#how{background:var(--paper)}
.why-section{background:radial-gradient(circle at 15% 50%,rgba(255,255,255,.45),transparent 35%),#f7d7d0}
.section-soft{background:radial-gradient(circle at 80% 20%,rgba(214,106,33,.1),transparent 31%),var(--bg-soft)}
.story-section{color:#fff;background:radial-gradient(circle at 82% 25%,rgba(214,106,33,.28),transparent 34%),#291811}
.story-section .eyebrow{color:#f0b98e}.story-section h2{color:#fff}.story-section .story-copy p{color:rgba(255,246,236,.68)}
.privacy-section{background:radial-gradient(circle at 10% 20%,rgba(214,106,33,.25),transparent 30%),#542410}
.pricing-section{background:#fff6ec}.faq-section{background:var(--bg)}.final-cta{background:radial-gradient(circle at 50% 0,rgba(255,246,236,.15),transparent 35%),#a94f18}

.steps-grid{position:relative;border-top:0;padding:20px 0 20px}
.steps-grid::before{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:1px dashed var(--accent-soft);opacity:.9}
.step-card{width:calc(50% - 48px);grid-template-columns:64px minmax(0,1fr);gap:24px;padding:44px 0;border:0}
.step-card:nth-child(even){margin-left:auto}.step-card:nth-child(even) .step-number{order:2;text-align:right}.step-card:nth-child(even)>div{order:1;text-align:right}.step-card:nth-child(even) .step-visual{margin-left:auto}.step-card:nth-child(even) p{margin-left:auto}
.step-card h3{max-width:370px}.step-card p{max-width:370px;font-size:.92rem;line-height:1.55}
.step-visual{margin-bottom:16px}

.why-inner{grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:70px;align-items:center}.why-inner h2{font-size:clamp(2.4rem,4vw,4.2rem)}
.why-comparison{display:grid;grid-template-columns:1fr 1fr;gap:18px}.message-compare{position:relative;min-height:300px;padding:24px;border:1px solid rgba(169,79,24,.18);border-radius:22px;background:rgba(255,246,236,.58);overflow:hidden}.message-place{background:var(--paper);box-shadow:0 18px 45px rgba(112,61,28,.1)}.compare-label{color:var(--accent-dark);font-size:.7rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.compare-message{display:flex;align-items:center;gap:10px;margin-top:35px;color:var(--ink);font-family:var(--display);font-size:1.55rem}.compare-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-soft)}.compare-route{position:absolute;right:24px;bottom:92px;left:24px;height:60px}.compare-route-now{border-top:1px solid var(--muted);opacity:.55}.compare-route-now span{position:absolute;right:0;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--muted)}.compare-route-place{border-top:1px dashed var(--accent);border-radius:50%;transform:rotate(-10deg)}.compare-route-place .paper-plane{position:absolute;top:-25px;left:38%;width:38px;fill:rgba(214,106,33,.12);animation:compare-plane 3.8s ease-in-out 1 both}.compare-route-place i{position:absolute;right:4px;top:-7px;width:15px;height:15px;border-radius:50% 50% 50% 0;background:var(--accent);transform:rotate(-45deg);box-shadow:0 0 0 0 rgba(214,106,33,.3);animation:compare-pin 3.8s ease-in-out 1 both}.message-compare p{position:absolute;right:24px;bottom:22px;left:24px;margin:0;color:var(--muted);font-size:.83rem}.message-compare p strong{color:var(--ink);font-size:.95rem}@keyframes compare-plane{0%{transform:translateX(-38px) rotate(-12deg);opacity:0}35%,75%{opacity:1}100%{transform:translateX(40px) rotate(8deg);opacity:1}}@keyframes compare-pin{0%,70%{transform:rotate(-45deg) scale(.7);opacity:.3}100%{transform:rotate(-45deg) scale(1);opacity:1}}

.usecase-card[data-usecase="couple"]{background:radial-gradient(circle at 80% 25%,rgba(240,185,142,.3),transparent 35%),#fff0e4}.usecase-card[data-usecase="friends"]{background:#f5d0c5;transform:translateY(22px)}.usecase-card[data-usecase="personal"]{background:#f9e8dc;transform:translateY(-10px)}.usecase-card[data-usecase="travel"]{background:radial-gradient(circle at 85% 45%,rgba(255,255,255,.42),transparent 28%),#e9b28f}.usecase-card[data-usecase="friends"]:hover,.usecase-card[data-usecase="personal"]:hover{transform:translateY(16px)}.usecase-card[data-usecase="personal"]:hover{transform:translateY(-16px)}
.illustration-couple{height:100px}.illustration-couple span{font-size:4rem;line-height:1}.illustration-couple i{left:80px;top:35px;width:20px;height:20px}.illustration-couple::after{content:"";position:absolute;top:49px;left:35px;width:115px;border-top:1px dashed var(--accent);transform:rotate(-9deg)}.illustration-friends{height:70px}.illustration-friends::after{content:"";position:absolute;left:15px;top:28px;width:54px;border-top:1px dashed var(--accent);transform:rotate(-20deg)}.illustration-travel{height:70px}.illustration-travel::after{content:"";position:absolute;left:3px;top:48px;width:180px;border-top:1px dashed var(--accent);transform:rotate(-8deg)}.illustration-personal{height:70px}.illustration-personal::after{content:"";position:absolute;left:9px;top:34px;width:95px;height:22px;border-bottom:1px solid var(--accent);border-radius:50%}

.story-section .quote-object{background:#fff6ec;color:var(--ink);box-shadow:0 28px 70px rgba(0,0,0,.22)}.story-section .quote-object p:not(.quote-caption){color:var(--ink)}.story-section .quote-caption{color:var(--muted)!important}.story-section .envelope-object{border-color:#f0b98e;background:rgba(255,246,236,.08)}.story-section .envelope-flap{border-color:#f0b98e}.story-section .envelope-paper{border-color:#f0b98e;background:#fff6ec}

.hero-envelope,.hero-flight>.paper-plane,.hero-flight-pin,.hero-flight-card{animation-iteration-count:1;animation-fill-mode:both}.hero-envelope{animation-duration:3.8s}.hero-flight>.paper-plane{animation-duration:3.8s}.hero-flight-pin{animation-duration:3.8s}.hero-flight-card{animation-duration:3.8s}.location-pulse{animation:location-breathe 3.8s ease-in-out 1 both}.hero-product .waveform i{animation:hero-wave 3.8s ease-in-out 1 both}@keyframes hero-wave{0%,100%{opacity:.45;transform:scaleY(.7)}45%{opacity:1;transform:scaleY(1.12)}}@keyframes location-breathe{0%,70%{box-shadow:0 0 0 0 rgba(57,125,211,.2)}100%{box-shadow:0 0 0 14px rgba(57,125,211,0)}}

@media(max-width:980px){
  main::before,main::after{left:18px}.steps-grid::before{left:26px}.step-card,.step-card:nth-child(even){width:calc(100% - 50px);margin-left:50px}.step-card:nth-child(even) .step-number{order:initial;text-align:left}.step-card:nth-child(even)>div{order:initial;text-align:left}.step-card:nth-child(even) .step-visual{margin-left:0}.step-card:nth-child(even) p{margin-left:0}.why-inner{grid-template-columns:1fr;gap:45px}.usecase-card[data-usecase="friends"],.usecase-card[data-usecase="personal"]{transform:none}.usecase-card[data-usecase="friends"]:hover,.usecase-card[data-usecase="personal"]:hover{transform:none}
}
@media(max-width:700px){
  main::before,main::after{display:none}.steps-grid{padding-top:0}.step-card,.step-card:nth-child(even){width:100%;margin-left:0;padding:34px 0}.steps-grid::before{left:22px}.step-card{grid-template-columns:42px 1fr;gap:14px}.step-card h3{font-size:1.8rem}.step-card p{font-size:.9rem}.why-comparison{grid-template-columns:1fr;gap:12px}.message-compare{min-height:250px}.compare-message{margin-top:25px}.compare-route{bottom:80px}.usecase-card[data-usecase="couple"]{min-height:460px}.story-section{padding-top:105px}.story-section .envelope-object{top:24px;right:12%}.hero-flight-card,.floating-note-bottom{display:none}
}

@media(prefers-reduced-motion:reduce){
  .hero-envelope,.hero-flight>.paper-plane,.hero-flight-pin,.hero-flight-card,.location-pulse,.hero-product .waveform i,.compare-route-place .paper-plane,.compare-route-place i,.final-flight .paper-plane{animation:none!important}
  .hero-envelope{opacity:0}.hero-flight>.paper-plane{opacity:1;transform:translate(130px,68px) rotate(8deg)}.hero-flight-pin,.hero-flight-card{opacity:1}.compare-route-place .paper-plane{transform:translateX(40px) rotate(8deg);opacity:1}.compare-route-place i{transform:rotate(-45deg) scale(1);opacity:1}
}
