:root {
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#292329;
  background:#faf6ef;
  line-height:1.6;
  color-scheme:light;
  --paper:#faf6ef;
  --ink:#292329;
  --accent:#a13f32;
  --accent-fill:#b84f3f;
  --line:#ded9ce;
  --muted:#68655e;
  --sage:#7a887b;
  --sage-light:#e7ebe2;
  --surface:#fffcf7;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
}
button,input,textarea,select {
  font:inherit;
}
a {
  color:var(--accent);
  text-underline-offset:4px;
}
img {
  display:block;
  max-width:100%;
}
h1,h2,h3,p {
  margin-top:0;
}
h1,h2,h3,button,summary {
  overflow-wrap:anywhere;
}
p {
  overflow-wrap:break-word;
}
h1,h2 {
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  letter-spacing:-.045em;
  line-height:1.12;
}
h1 {
  font-size:clamp(2.5rem,5vw,3.6rem);
  margin-bottom:1rem;
}
h2 {
  font-size:clamp(1.8rem,3.5vw,2.7rem);
}
h3 {
  font-size:1.05rem;
  line-height:1.35;
  font-weight:600;
  margin-bottom:.55rem;
}
a,button,input,textarea,select,summary {
  -webkit-tap-highlight-color:transparent;
}
button,a,input,textarea,select,summary {
  touch-action:manipulation;
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #30768b;
  outline-offset:4px;
}
.site-header,.site-footer {
  max-width:1240px;
  margin:auto;
  padding:1.05rem 3rem;
  display:flex;
  align-items:center;
  gap:2rem;
}
.site-header {
  min-height:98px;
  border-bottom:1px solid var(--line);
}
.brand {
  flex:none;
  display:block;
  margin-left:-9px;
}
.brand img {
  width:175px;
  height:60px;
  object-fit:contain;
}
.site-nav {
  display:flex;
  gap:2.2rem;
  margin-left:auto;
  align-items:center;
  font-size:.9rem;
}
.site-nav a {
  color:var(--ink);
  text-decoration:none;
}
.site-nav a:hover {
  color:var(--accent);
}
#language {
  margin-left:auto;
  background:transparent;
  border:1px solid var(--line);
  border-radius:999px;
  padding:.55rem .9rem;
  min-height:44px;
  color:var(--ink);
  font-size:.85rem;
  cursor:pointer;
}
.site-nav+#language {
  margin-left:0;
}
body:not([data-page=landing]) .site-nav {
  display:none;
}
.site-footer {
  border-top:1px solid var(--line);
  padding-top:1.6rem;
  padding-bottom:1.8rem;
  justify-content:space-between;
  font-size:.8rem;
  color:var(--muted);
}
.site-footer p {
  margin:0;
}
.site-footer nav {
  display:flex;
  gap:1.5rem;
  flex-wrap:wrap;
}
.site-footer a {
  color:var(--muted);
}
.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  padding:.7rem 1rem;
  background:var(--surface);
  z-index:20;
  transform:translateY(-150%);
}
.skip-link:focus {
  transform:translateY(0);
}
.no-script {
  max-width:50rem;
  margin:2rem auto;
  padding:1rem;
}
.hidden,[hidden] {
  display:none!important;
}
.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
}
button,.button {
  border:1px solid var(--line);
  border-radius:999px;
  padding:.75rem 1.2rem;
  min-height:46px;
  font:inherit;
  font-size:.9rem;
  font-weight:600;
  background:var(--surface);
  color:var(--ink);
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.4;
}
button:hover,.button:hover {
  background:#f1ece2;
  border-color:#c8bead;
}
button.primary,.button.primary {
  background:var(--accent-fill);
  color:#fff;
  border-color:var(--accent-fill);
}
button.primary:hover,.button.primary:hover {
  background:var(--accent);
  border-color:var(--accent);
}
button.danger {
  color:#9e2929;
}
button:disabled {
  opacity:.5;
  cursor:wait;
}
.actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.65rem;
  margin:1.1rem 0;
}
.text-link {
  display:inline-block;
  font-size:.9rem;
  font-weight:600;
  padding:.6rem 0;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}
.text-link:hover {
  color:var(--ink);
}
.muted,small {
  color:var(--muted);
}
/* Public introduction. Product examples are explicitly illustrative. */
main.landing {
  max-width:1240px;
  margin:0 auto;
  padding:0 3rem;
}
.eyebrow {
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:650;
  color:var(--muted);
  line-height:1.6;
}
.hero {
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:4rem;
  align-items:center;
  min-height:690px;
  padding:3.5rem 0 5rem;
}
.hero-copy {
  padding-bottom:1rem;
}
.hero h1 {
  white-space:pre-line;
  font-size:clamp(3.4rem,5.6vw,5.3rem);
  line-height:1.04;
  margin:1.35rem 0 1.7rem;
  max-width:11ch;
}
.hero-intro {
  font-size:1.08rem;
  max-width:31rem;
  line-height:1.75;
  color:var(--muted);
}
.hero-actions {
  gap:1.3rem;
  margin-top:2rem;
}
.hero-actions .button {
  padding:.95rem 1.4rem;
}
.hero-actions .text-link {
  font-size:.85rem;
}
.release-label {
  display:flex;
  align-items:center;
  gap:.5rem;
  color:var(--muted);
  font-size:.72rem;
  margin:1.4rem 0 0;
}
.release-label::before {
  content:"";
  height:6px;
  width:6px;
  background:var(--sage);
  border-radius:50%;
  flex:none;
}
.hero-visual {
  min-height:560px;
  position:relative;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  padding:6rem .6rem 0 2.8rem;
}
.hero-art {
  position:absolute;
  left:0;
  top:0;
  width:89%;
  height:91%;
  object-fit:cover;
  object-position:center;
  border-radius:160px 160px 12px 12px;
}
.example-list {
  position:relative;
  max-width:390px;
  width:100%;
  padding:1.7rem 1.6rem 1rem;
  border-radius:10px;
  background:var(--surface);
  box-shadow:0 16px 45px #452a1c17;
  border:1px solid #e9dfd3;
}
.example-list>.eyebrow {
  font-size:.6rem;
  margin-bottom:.8rem;
  color:var(--accent);
}
.example-list h2 {
  font-size:2.15rem;
  margin-bottom:.35rem;
}
.example-subtitle {
  font-size:.75rem;
  color:var(--muted);
  margin-bottom:1.2rem;
}
.example-item {
  display:flex;
  gap:.8rem;
  border-top:1px solid var(--line);
  padding:.9rem 0;
}
.example-number {
  font-family:Georgia,serif;
  font-size:.9rem;
  color:var(--sage);
  padding-top:.1rem;
}
.example-item h3 {
  font-size:.84rem;
  margin:0 0 .3rem;
  font-weight:600;
}
.example-item p {
  font-size:.7rem;
  margin:0 0 .4rem;
  color:var(--muted);
  line-height:1.55;
}
.example-state {
  font-size:.58rem;
  letter-spacing:.025em;
  color:#4b6250;
  display:inline-flex;
  align-items:center;
  gap:.3rem;
}
.example-state::before {
  content:"";
  width:5px;
  height:5px;
  border:1px solid currentColor;
  border-radius:50%;
}
.example-state.chosen {
  color:var(--accent);
}
.example-state.chosen::before {
  background:currentColor;
}
.demo-label {
  font-size:.57rem;
  margin:.3rem 0 0;
  color:var(--muted);
  text-align:center;
}
.how-section {
  padding:4.5rem 0 5rem;
  border-top:1px solid var(--line);
}
.section-heading {
  max-width:39rem;
}
.section-heading h2 {
  white-space:pre-line;
  font-size:clamp(2.8rem,4vw,3.8rem);
  margin:1rem 0 1.3rem;
}
.section-intro {
  color:var(--muted);
  max-width:35rem;
  font-size:1rem;
}
.steps {
  padding:0;
  margin:3rem 0 0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3rem;
}
.steps li {
  border-top:1px solid var(--line);
  padding-top:1.2rem;
}
.step-number {
  color:var(--accent);
  font-size:.7rem;
  letter-spacing:.1em;
  display:block;
  margin-bottom:1.6rem;
}
.steps h3 {
  font-family:Georgia,serif;
  font-size:1.45rem;
  font-weight:400;
  line-height:1.25;
  letter-spacing:-.02em;
}
.steps p {
  font-size:.88rem;
  color:var(--muted);
  line-height:1.75;
  margin:0;
}
.quiet-section {
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:5rem;
  background:var(--sage-light);
  padding:3.4rem;
  margin:0 -1.1rem 5rem;
  border-radius:4px;
}
.quiet-section h2 {
  white-space:pre-line;
  font-size:clamp(2.2rem,3.3vw,3.1rem);
  margin-bottom:1.3rem;
}
.quiet-section>div>p {
  color:#50594e;
  font-size:.95rem;
  max-width:29rem;
}
.quiet-details {
  list-style:none;
  padding:0;
  margin:1.6rem 0 0;
  font-size:.8rem;
}
.quiet-details li {
  padding:.45rem 0;
  display:flex;
  align-items:center;
  gap:.7rem;
}
.quiet-details li::before {
  content:"✓";
  color:#465d48;
  font-size:.9rem;
}
.privacy-aside {
  border-left:1px solid #c8d0c3;
  padding-left:3rem;
  align-self:center;
}
.privacy-mark {
  width:52px;
  height:52px;
  object-fit:contain;
  margin-bottom:1.3rem;
}
.privacy-aside p {
  font-size:.9rem;
  color:#50594e;
  line-height:1.85;
}
.privacy-aside .text-link {
  color:#465d48;
  font-size:.8rem;
}
.dates-section {
  display:grid;
  grid-template-columns:.85fr 1fr;
  gap:5rem;
  align-items:center;
  padding:1rem 3rem 5rem;
}
.dates-art {
  width:100%;
  max-height:420px;
  object-fit:cover;
  border-radius:140px 140px 4px 4px;
}
.dates-section h2 {
  font-size:clamp(2.4rem,3.5vw,3.3rem);
  margin:1rem 0 1.4rem;
  max-width:15ch;
}
.dates-section p:not(.eyebrow) {
  color:var(--muted);
  font-size:.95rem;
  line-height:1.8;
}
.faq-section {
  border-top:1px solid var(--line);
  padding:4.4rem 0;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  column-gap:4rem;
}
.faq-section h2 {
  grid-row:1/6;
  max-width:12ch;
  font-size:2.6rem;
}
.faq-section details {
  border-bottom:1px solid var(--line);
  padding:.15rem 0;
}
.faq-section summary {
  padding:1rem 1.5rem 1rem 0;
  color:var(--ink);
  font-size:.9rem;
  list-style:none;
  position:relative;
  line-height:1.5;
}
.faq-section summary::-webkit-details-marker {
  display:none;
}
.faq-section summary::after {
  content:"+";
  position:absolute;
  right:0;
  top:.9rem;
  font-size:1.1rem;
  font-weight:400;
  color:var(--accent);
}
.faq-section details[open] summary::after {
  content:"−";
}
.faq-section details p {
  font-size:.86rem;
  color:var(--muted);
  line-height:1.8;
  padding-right:1rem;
  margin-bottom:1.25rem;
}
.closing-section {
  text-align:center;
  border-top:1px solid var(--line);
  padding:4.5rem 1rem 5rem;
}
.closing-section h2 {
  white-space:pre-line;
  font-size:clamp(2.7rem,4.5vw,4.1rem);
  margin:0 0 1.8rem;
}
.closing-section .button {
  padding:.9rem 1.5rem;
}
.closing-section p {
  max-width:32rem;
  margin:1.1rem auto 0;
  font-size:.77rem;
}
.availability-note {
  color:var(--muted);
  line-height:1.8;
}
.closing-section p:last-child {
  font-size:.72rem;
}
/* Shared-link screens remain focused, with readable controls and private state. */
main:not(.landing) {
  max-width:49rem;
  min-height:72vh;
  margin:0 auto;
  padding:3rem 2rem 4rem;
}
.loading {
  color:var(--muted);
  padding-top:2rem;
}
.private-page>h1 {
  max-width:20ch;
}
.private-page>h1+.muted {
  font-size:.93rem;
  margin-bottom:1.7rem;
}
.card,form {
  border:1px solid var(--line);
  border-radius:14px;
  padding:1.4rem;
  background:var(--surface);
  margin:1rem 0;
}
.card h2 {
  font-size:1.5rem;
}
.card h3 {
  font-size:1.15rem;
}
.card p {
  font-size:.95rem;
}
.card .actions {
  margin-bottom:0;
}
.card .badge {
  margin-top:.5rem;
}
.gift-card {
  position:relative;
}
.gift-card .badge {
  display:block;
  width:fit-content;
}
.gift-card[data-availability=taken] {
  background:#f2eee7;
}
.gift-card[data-availability=taken] .badge {
  background:#e9dfd6;
  color:#6a4e42;
}
.wishlist-section {
  padding-top:1.5rem;
  margin-top:1.8rem;
  border-top:1px solid var(--line);
}
.wishlist-section>h2 {
  font-size:1.8rem;
}
.private-page>h2 {
  font-size:1.8rem;
  margin-top:2.3rem;
}
.private-page>button.danger {
  margin-top:2rem;
}
.private-page>.actions:last-child {
  border-top:1px solid var(--line);
  padding-top:1.5rem;
  margin-top:2rem;
}
.private-page>.actions:last-child button {
  font-size:.8rem;
  background:transparent;
}
.private-page>.actions:last-child button:last-child {
  color:var(--muted);
}
label {
  display:block;
  font-weight:600;
  font-size:.9rem;
  margin:.85rem 0 .35rem;
}
input,textarea,select {
  max-width:100%;
  border:1px solid #c9c1b5;
  border-radius:9px;
  padding:.75rem;
  background:#fffefb;
  color:inherit;
}
input,textarea {
  width:100%;
  min-height:46px;
  font-size:1rem;
}
textarea {
  min-height:6rem;
  resize:vertical;
}
input[type=checkbox] {
  width:20px;
  height:20px;
  min-height:20px;
  vertical-align:middle;
  margin:0 .6rem 0 0;
  accent-color:var(--accent);
}
.note {
  border-left:3px solid var(--sage);
  padding:.85rem 1rem;
  background:#eeeee5;
  font-size:.88rem;
  line-height:1.7;
  border-radius:0 6px 6px 0;
  margin:1.2rem 0;
}
.error {
  color:#922f26;
}
.error.note {
  border-color:var(--accent);
  background:#f7e9e3;
}
.badge {
  font-size:.75rem;
  background:var(--sage-light);
  color:#465d48;
  border-radius:999px;
  padding:.25rem .7rem;
  display:inline-block;
}
.link-secret {
  font-size:.85rem;
  min-height:6rem;
  word-break:break-all;
}
dialog {
  border:1px solid var(--line);
  border-radius:18px;
  width:min(calc(100vw - 2rem),38rem);
  max-height:calc(100dvh - 2rem);
  overflow-y:auto;
  padding:1.8rem;
  background:var(--surface);
  color:inherit;
  box-shadow:0 25px 90px #241e2426;
}
dialog::backdrop {
  background:#24272588;
  backdrop-filter:blur(4px);
}
dialog h2 {
  font-size:2rem;
}
dialog .actions button {
  font-size:.8rem;
}
dialog>label {
  font-weight:400;
  line-height:1.6;
  margin:1.3rem 0;
}
fieldset {
  border:0;
  padding:0;
  margin:0;
}
legend {
  font-weight:700;
}
summary {
  cursor:pointer;
  min-height:44px;
  padding:.65rem 0;
  font-weight:600;
  color:var(--accent);
  font-size:.88rem;
}
#session-cover {
  max-width:44rem;
  margin:2rem auto;
}
@media(prefers-reduced-motion:no-preference) {
  button,.button,a {
    transition:color .15s,background .15s,border-color .15s;
  }
  .hero-copy,.hero-visual {
    animation:arrive .5s ease-out both;
  }
  .hero-visual {
    animation-delay:.1s;
  }
  @keyframes arrive {
    from {
      opacity:0;
      transform:translateY(8px);
    }
    to {
      opacity:1;
      transform:translateY(0);
    }
  }
}
@media(min-width:1440px) {
  .hero {
    gap:5rem;
  }
  .hero-visual {
    min-height:600px;
  }
  .example-list {
    max-width:410px;
    padding:2rem;
  }
  .example-item {
    padding:1rem 0;
  }
}
@media(max-width:1000px) {
  .site-header,.site-footer {
    padding-inline:2rem;
  }
  main.landing {
    padding-inline:2rem;
  }
  .hero {
    gap:2rem;
    min-height:620px;
  }
  .hero h1 {
    font-size:4rem;
  }
  .hero-visual {
    padding-left:1rem;
    min-height:530px;
  }
  .hero-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:.7rem;
  }
  .steps {
    gap:2rem;
  }
  .quiet-section {
    gap:2.5rem;
    padding:2.5rem;
  }
  .privacy-aside {
    padding-left:2rem;
  }
  .dates-section {
    padding-inline:0;
    gap:3rem;
  }
  .faq-section {
    gap:2rem;
  }
  .site-nav {
    gap:1.5rem;
  }
}
@media(max-width:720px) {
  .site-header {
    min-height:78px;
    padding:.6rem 1.25rem;
    gap:1rem;
  }
  .brand img {
    width:148px;
    height:51px;
  }
  .site-nav {
    display:none;
  }
  #language {
    font-size:.78rem;
    padding:.5rem .7rem;
  }
  .site-nav+#language {
    margin-left:auto;
  }
  .site-footer {
    padding:1.6rem 1.25rem;
    display:block;
  }
  .site-footer nav {
    margin-top:1rem;
    gap:1.2rem;
  }
  .site-footer p {
    font-size:.8rem;
  }
  main.landing {
    padding:0 1.25rem;
  }
  .hero {
    grid-template-columns:1fr;
    gap:2.5rem;
    padding:2.6rem 0 3.6rem;
    min-height:0;
  }
  .hero-copy {
    padding:0;
    max-width:34rem;
  }
  .hero h1 {
    font-size:clamp(3rem,10.5vw,4.5rem);
    max-width:14ch;
    margin:1.1rem 0 1.3rem;
  }
  .hero-intro {
    font-size:1rem;
    max-width:31rem;
  }
  .hero-actions {
    flex-direction:row;
    align-items:center;
    gap:1rem;
    margin-top:1.5rem;
  }
  .hero-actions .button {
    font-size:.83rem;
    padding:.8rem 1.1rem;
  }
  .hero-actions .text-link {
    font-size:.78rem;
  }
  .release-label {
    font-size:.68rem;
    margin-top:1.2rem;
  }
  .hero-visual {
    width:min(100%,470px);
    justify-self:center;
    min-height:490px;
    padding:4.4rem .2rem 0 2.2rem;
  }
  .hero-art {
    height:91%;
    width:87%;
    border-radius:150px 150px 6px 6px;
  }
  .example-list {
    max-width:350px;
    padding:1.4rem 1.3rem .9rem;
  }
  .example-list h2 {
    font-size:2rem;
  }
  .example-item {
    padding:.85rem 0;
  }
  .how-section {
    padding:3rem 0;
  }
  .section-heading h2 {
    font-size:2.8rem;
  }
  .section-intro {
    font-size:.95rem;
  }
  .steps {
    grid-template-columns:1fr;
    gap:1.7rem;
    margin-top:2rem;
  }
  .steps li {
    display:grid;
    grid-template-columns:2.5rem 1fr;
    column-gap:.6rem;
    padding-top:1.3rem;
  }
  .step-number {
    grid-row:1/3;
    padding-top:.2rem;
    margin:0;
  }
  .steps h3 {
    font-size:1.4rem;
  }
  .steps p {
    font-size:.86rem;
  }
  .quiet-section {
    grid-template-columns:1fr;
    gap:2rem;
    margin:0 -.15rem 3.2rem;
    padding:1.9rem 1.55rem;
  }
  .quiet-section h2 {
    font-size:2.35rem;
  }
  .quiet-section>div>p {
    font-size:.9rem;
  }
  .privacy-aside {
    padding:1.7rem 0 0;
    border-left:0;
    border-top:1px solid #c8d0c3;
  }
  .privacy-mark {
    width:44px;
    height:44px;
    margin-bottom:.8rem;
  }
  .privacy-aside p {
    font-size:.84rem;
  }
  .dates-section {
    grid-template-columns:1fr;
    gap:1.8rem;
    padding:0 0 3rem;
  }
  .dates-art {
    max-height:330px;
    width:70%;
    margin:auto;
    object-position:center 60%;
  }
  .dates-section h2 {
    font-size:2.6rem;
    max-width:19ch;
  }
  .dates-section p:not(.eyebrow) {
    font-size:.9rem;
  }
  .faq-section {
    display:block;
    padding:2.8rem 0;
  }
  .faq-section h2 {
    font-size:2.4rem;
    max-width:none;
    margin-bottom:1.5rem;
  }
  .faq-section summary {
    font-size:.87rem;
  }
  .closing-section {
    padding:3rem 0 3.5rem;
  }
  .closing-section h2 {
    font-size:2.75rem;
  }
  .closing-section p {
    font-size:.72rem;
  }
  .closing-section p:last-child {
    font-size:.7rem;
  }
  main:not(.landing) {
    padding:2rem 1.25rem 3rem;
  }
  h1 {
    font-size:2.5rem;
  }
  .card,form {
    padding:1.15rem;
  }
  .card h3 {
    font-size:1.05rem;
  }
  .note {
    font-size:.84rem;
  }
  dialog {
    padding:1.4rem;
  }
  .private-page .actions button {
    font-size:.83rem;
  }
  .private-page>.actions:last-child {
    align-items:stretch;
    flex-direction:column;
  }
  #session-cover {
    margin:1.5rem 1rem;
  }
}
@media(max-width:380px) {
  .hero h1 {
    font-size:2.8rem;
  }
  .hero-actions {
    flex-direction:column;
    align-items:flex-start;
  }
  .hero-visual {
    min-height:470px;
    padding-left:1.2rem;
  }
  .example-list {
    padding:1.2rem;
  }
  .example-item h3 {
    font-size:.78rem;
  }
  .example-item p {
    font-size:.66rem;
  }
  .example-state {
    font-size:.56rem;
  }
  .quiet-section {
    padding:1.6rem 1.2rem;
  }
  .quiet-section h2 {
    font-size:2.05rem;
  }
  .actions button {
    flex:1 1 auto;
  }
  .site-footer nav {
    gap:1rem;
  }
}
