:root {
  color-scheme:dark;
  --bg:#141315;
  --ink:#ece7e0;
  --muted:#b2aba4;
  --warm:#c5aa96;
  --line:#393536;
  --paper:#e8e2d9;
  --dark:#292627;
  --pad:clamp(22px,5.5vw,88px);
  --sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:85px
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:16px/1.75 var(--sans);
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-underline-offset:5px
}
button,input {
  font:inherit
}
button,a,input,summary {
  -webkit-tap-highlight-color:transparent
}
img {
  display:block;
  max-width:100%
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  font-weight:400
}
h2 {
  font-size:clamp(30px,3.8vw,52px);
  line-height:1.4;
  letter-spacing:.015em;
  text-wrap:balance
}
h3 {
  font-size:19px;
  line-height:1.5
}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible {
  outline:2px solid currentColor;
  outline-offset:6px
}
::selection {
  background:var(--warm);
  color:var(--bg)
}
.wrap {
  max-width:1440px;
  margin-inline:auto;
  padding-inline:var(--pad)
}
.eyebrow {
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--warm)
}
.muted {
  color:var(--muted)
}
.sr-only,.honeypot {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
.skip {
  position:fixed;
  top:10px;
  left:16px;
  padding:10px 16px;
  background:var(--ink);
  color:var(--bg);
  z-index:100;
  transform:translateY(-160%);
  opacity:0;
  pointer-events:none
}
.skip:focus {
  transform:none;
  opacity:1;
  pointer-events:auto
}
.header {
  position:absolute;
  inset:0 0 auto;
  z-index:5;
  border-bottom:1px solid #ece7e021
}
.header-inner {
  height:84px;
  display:flex;
  align-items:center;
  gap:35px
}
.brand {
  display:flex;
  align-items:baseline;
  gap:14px;
  text-decoration:none;
  font-size:19px;
  letter-spacing:.12em;
  white-space:nowrap
}
.brand span {
  font-size:10px;
  letter-spacing:.16em;
  color:var(--muted)
}
.header nav {
  display:flex;
  gap:30px;
  margin-left:auto
}
.header nav a,.language {
  font-size:12px;
  text-decoration:none;
  min-height:44px;
  display:flex;
  align-items:center
}
.language {
  margin-left:16px
}
.nav-cta {
  font-size:12px;
  text-decoration:none;
  border:1px solid #ece7e055;
  padding:8px 17px;
  min-height:44px;
  display:flex;
  align-items:center;
  gap:16px
}
.header a:hover {
  color:var(--warm)
}
.hero {
  position:relative;
  isolation:isolate;
  min-height:780px;
  min-height:min(900px,100svh);
  display:flex;
  align-items:center;
  padding:135px 0 100px;
  overflow:hidden
}
.hero-media {
  position:absolute;
  inset:0 0 0 27%;
  z-index:-2
}
.hero-media img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:53% 31%
}
.hero:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#141315 3%,#141315f2 24%,#1413157d 48%,#14131500 74%),linear-gradient(0deg,#141315 0%,#14131500 29%),linear-gradient(180deg,#14131566 0%,transparent 20%)
}
.hero-inner {
  width:100%
}
.hero-copy {
  max-width:600px
}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:12px
}
.hero .eyebrow:before {
  content:"";
  width:20px;
  height:1px;
  background:var(--warm)
}
.hero h1 {
  font-size:clamp(68px,7.6vw,112px);
  font-weight:300;
  line-height:1.2;
  margin-top:28px;
  letter-spacing:.08em
}
.name-en {
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:10px
}
.hero-line {
  font-size:clamp(27px,3.1vw,43px);
  font-weight:300;
  line-height:1.55;
  margin-top:32px;
  letter-spacing:.04em
}
.hero-description {
  font-size:14px;
  color:#d1c9c1;
  line-height:1.95;
  margin-top:22px;
  max-width:32em
}
.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:22px;
  margin-top:31px
}
.button {
  min-height:50px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:12px 23px;
  text-decoration:none;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--bg);
  font-size:13px;
  cursor:pointer;
  transition:background .2s,border-color .2s
}
.button:hover {
  background:var(--warm);
  border-color:var(--warm)
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:18px;
  min-height:44px;
  font-size:12px;
  text-decoration:none;
  border-bottom:1px solid #ece7e055
}
.hero-bottom {
  position:absolute;
  bottom:28px;
  inset-inline:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  letter-spacing:.08em;
  color:var(--muted)
}
.hero-bottom a {
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:20px;
  min-height:44px
}
.moments {
  padding-block:95px 105px
}
.section-top {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:36px;
  margin-bottom:40px
}
.section-top h2 {
  margin-top:15px
}
.section-description {
  font-size:13px;
  color:var(--muted);
  max-width:26em
}
.moment-layout {
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:clamp(35px,6vw,92px);
  align-items:start
}
.opening-art {
  position:relative
}
.opening-art picture {
  display:block;
  height:590px;
  overflow:hidden
}
.opening-art img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 38%
}
.opening-art figcaption {
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin-top:14px;
  font-size:11px;
  color:var(--muted)
}
.moment-content {
  padding-top:4px;
  min-width:0
}
.moment-options {
  padding:0;
  margin:0;
  border:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-bottom:1px solid var(--line)
}
.moment-options label {
  position:relative;
  cursor:pointer;
  min-width:0
}
.moment-options input {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer
}
.moment-options span {
  display:block;
  font-size:13px;
  padding:10px 0 18px;
  color:var(--muted);
  border-bottom:2px solid transparent
}
.moment-options small {
  font-size:10px;
  margin-right:10px;
  opacity:.7
}
.moment-options input:checked+span {
  color:var(--ink);
  border-color:var(--warm)
}
.moment-options input:focus-visible+span {
  outline:2px solid var(--ink);
  outline-offset:4px
}
.moment-panel {
  display:none;
  padding-top:29px
}
.moments:has(#moment-first:checked) [data-panel=first],.moments:has(#moment-return:checked) [data-panel=return],.moments:has(#moment-self:checked) [data-panel=self] {
  display:block
}
.moment-context {
  font-size:12px;
  color:var(--muted);
  margin-bottom:25px
}
.chat {
  display:flex;
  flex-direction:column;
  gap:12px;
  list-style:none;
  padding:0;
  margin:0
}
.chat li {
  max-width:88%;
  font-size:15px;
  line-height:1.65;
  padding:11px 17px;
  border-radius:2px 13px 13px 13px;
  background:#e4e9ee;
  color:#242327;
  align-self:flex-start
}
.chat li.you {
  align-self:flex-end;
  background:#2c292c;
  color:var(--ink);
  border-radius:13px 2px 13px 13px
}
.chat .speaker {
  display:block;
  font-size:10px;
  margin-bottom:3px;
  opacity:.7
}
.moment-note {
  margin-top:27px;
  padding-top:22px;
  border-top:1px solid var(--line);
  font-size:14px;
  line-height:1.9;
  color:#d3c9c0
}
.sample-note {
  font-size:11px;
  color:var(--muted);
  margin-top:24px;
  line-height:1.8
}
.continuity {
  background:var(--paper);
  color:var(--dark);
  padding-block:90px 65px
}
.continuity .eyebrow {
  color:#685044
}
.continuity-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(40px,9vw,135px)
}
.continuity h2 {
  margin-top:20px
}
.continuity-intro {
  max-width:28em;
  margin-top:24px;
  color:#5e5550;
  font-size:14px
}
.principles {
  list-style:none;
  padding:0;
  margin:0;
  counter-reset:principle
}
.principles li {
  padding:23px 0;
  border-top:1px solid #29262730;
  display:grid;
  grid-template-columns:32px 1fr;
  gap:14px;
  counter-increment:principle
}
.principles li:before {
  content:"0" counter(principle);
  font-size:10px;
  color:#74665d;
  padding-top:5px
}
.principles li:last-child {
  border-bottom:1px solid #29262730
}
.principles p {
  font-size:13px;
  color:#645a54;
  margin-top:8px;
  line-height:1.9
}
.life {
  margin-top:65px;
  border-top:1px solid #29262730;
  padding-top:28px
}
.life-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:baseline
}
.life-heading h3 {
  font-size:14px
}
.life-heading p {
  font-size:10px;
  letter-spacing:.05em;
  color:#6a5e56
}
.life-notes {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:38px;
  margin-top:25px
}
.life-notes p {
  font-size:13px;
  line-height:1.9
}
.life-notes span {
  display:block;
  font-size:10px;
  color:#6a5e56;
  margin-bottom:9px;
  letter-spacing:.1em
}
.meet {
  padding-block:95px 85px
}
.meet-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(38px,8vw,125px)
}
.meet h2 {
  margin-top:18px
}
.meet-description {
  font-size:14px;
  max-width:29em;
  margin-top:24px;
  color:var(--muted)
}
.contact {
  font-size:12px;
  color:var(--muted);
  margin-top:24px
}
.waitlist {
  border:1px solid var(--line);
  padding:30px 32px 20px;
  align-self:start
}
.form-label {
  font-size:14px;
  display:block;
  margin-bottom:10px
}
.waitlist input[type=email] {
  width:100%;
  height:51px;
  padding:10px 12px;
  background:#1c1a1c;
  color:var(--ink);
  border:1px solid #60575b;
  border-radius:0;
  font-size:16px
}
.waitlist input::placeholder {
  color:#a99f98
}
.waitlist .button {
  width:100%;
  margin-top:15px
}
.waitlist button:disabled {
  opacity:.6;
  cursor:wait
}
.privacy-note {
  font-size:11px;
  color:var(--muted);
  line-height:1.85;
  margin-top:17px
}
.form-status {
  min-height:3.6em;
  font-size:12px;
  color:var(--ink);
  margin-top:14px;
  line-height:1.8
}
.faq {
  margin-top:50px;
  border-top:1px solid var(--line)
}
.faq details {
  border-bottom:1px solid var(--line);
  padding:18px 0
}
.faq summary {
  cursor:pointer;
  font-size:13px;
  padding-right:20px
}
.faq details p {
  font-size:13px;
  color:var(--muted);
  max-width:65em;
  margin-top:13px;
  line-height:1.9
}
.footer {
  border-top:1px solid var(--line);
  padding-block:25px 30px
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  font-size:11px;
  color:var(--muted)
}
.footer-links {
  display:flex;
  gap:25px
}
.footer a {
  text-decoration:none
}
.footer .credit {
  color:var(--ink)
}
.privacy-page {
  max-width:790px;
  padding:55px var(--pad) 90px;
  margin:auto
}
.privacy-page header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:45px
}
.privacy-page h1 {
  font-size:42px;
  margin-bottom:22px
}
.privacy-page h2 {
  font-size:21px;
  margin:32px 0 12px
}
.privacy-page p,.privacy-page li {
  font-size:15px;
  color:var(--muted)
}
.privacy-page .back {
  display:inline-block;
  margin-top:36px;
  min-height:44px
}
@media(min-width:1600px) {
  .hero-media {
    inset-inline-start:33%
  }
}
@media(max-width:1000px) {
  .header nav {
    gap:20px
  }
  .hero-media {
    inset-inline-start:15%
  }
  .hero-copy {
    max-width:530px
  }
  .moment-layout {
    gap:35px
  }
  .opening-art picture {
    height:570px
  }
  .continuity-grid,.meet-grid {
    gap:45px
  }
  .brand span {
    display:none
  }
  .hero {
    min-height:800px
  }
}
@media(max-width:700px) {
  html {
    scroll-padding-top:25px
  }
  .header-inner {
    height:70px;
    gap:16px
  }
  .header nav {
    display:none
  }
  .brand {
    font-size:18px
  }
  .language {
    margin-left:auto
  }
  .nav-cta {
    font-size:11px;
    padding:6px 10px;
    gap:10px
  }
  .hero {
    min-height:850px;
    min-height:max(800px,100svh);
    padding:390px 0 100px;
    align-items:flex-end
  }
  .hero-media {
    inset:0 0 18% 0
  }
  .hero-media img {
    object-position:56% 15%
  }
  .hero:after {
    background:linear-gradient(0deg,#141315 0%,#141315 17%,#141315e6 32%,#14131545 58%,transparent 75%),linear-gradient(180deg,#14131577 0%,transparent 20%)
  }
  .hero-copy {
    max-width:none
  }
  .hero h1 {
    font-size:63px;
    margin-top:15px
  }
  .hero .eyebrow {
    font-size:10px
  }
  .name-en {
    margin-top:5px;
    font-size:10px
  }
  .hero-line {
    font-size:28px;
    line-height:1.5;
    margin-top:18px
  }
  .hero-description {
    font-size:13px;
    margin-top:15px;
    max-width:27em
  }
  .hero-actions {
    gap:13px 20px;
    margin-top:23px
  }
  .hero-actions .button {
    font-size:12px;
    padding-inline:17px;
    gap:18px
  }
  .hero-actions .text-link {
    font-size:11px;
    gap:9px
  }
  .hero-bottom {
    bottom:16px;
    font-size:10px;
    gap:20px
  }
  .hero-bottom a {
    font-size:10px
  }
  .moments,.meet {
    padding-block:60px
  }
  .section-top {
    display:block;
    margin-bottom:28px
  }
  .section-description {
    margin-top:18px
  }
  .moment-layout {
    grid-template-columns:1fr;
    gap:25px
  }
  .opening-art picture {
    height:320px
  }
  .opening-art img {
    object-position:50% 43%
  }
  .opening-art figcaption {
    font-size:10px;
    margin-top:10px
  }
  .moment-options span {
    font-size:12px;
    padding-bottom:13px
  }
  .moment-options small {
    margin-right:6px
  }
  .moment-panel {
    padding-top:22px
  }
  .moment-context {
    font-size:11px;
    margin-bottom:19px
  }
  .chat {
    gap:10px
  }
  .chat li {
    font-size:14px;
    padding:10px 15px
  }
  .moment-note {
    font-size:13px;
    margin-top:22px;
    padding-top:18px
  }
  .sample-note {
    font-size:10px;
    margin-top:19px
  }
  .continuity {
    padding-block:60px 45px
  }
  .continuity-grid,.meet-grid {
    grid-template-columns:1fr;
    gap:32px
  }
  .continuity h2,.meet h2 {
    font-size:34px
  }
  .continuity-intro {
    margin-top:18px;
    font-size:13px
  }
  .principles li {
    padding:21px 0
  }
  .life {
    margin-top:40px;
    padding-top:22px
  }
  .life-heading {
    display:block
  }
  .life-heading p {
    margin-top:7px
  }
  .life-notes {
    grid-template-columns:1fr;
    gap:20px;
    margin-top:24px
  }
  .life-notes p {
    padding-left:14px;
    border-left:1px solid #29262740
  }
  .life-notes span {
    margin-bottom:4px
  }
  .waitlist {
    padding:24px 22px 15px
  }
  .meet-description {
    font-size:13px;
    margin-top:17px
  }
  .contact {
    margin-top:16px
  }
  .faq {
    margin-top:35px
  }
  .footer-inner {
    flex-wrap:wrap;
    gap:15px
  }
  .footer .credit {
    flex-basis:100%
  }
  .footer-links {
    gap:20px
  }
  .privacy-page {
    padding-top:30px
  }
}
@media(max-width:360px) {
  .hero {
    padding-top:360px;
    min-height:820px
  }
  .hero-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:6px
  }
  .hero-line {
    font-size:26px
  }
  .hero-bottom {
    font-size:9px
  }
  .hero-bottom a {
    gap:10px
  }
  .moment-options small {
    display:none
  }
  .nav-cta {
    font-size:10px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  * {
    transition:none!important;
    animation:none!important
  }
}
