/* Hallmark · macrostructure: inhabited courtyard / writing desk / letter ledger
 * theme: existing brand system · pre-emit critique: P4 H4 E4 S4 R4 V4
 * Visual validation is recorded separately; this stamp does not assert every gate passed. */
@font-face {
  font-family: "Yishi QingKai";
  src: url("./assets/fonts/LXGWWenKaiGBLite-Regular.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Yishi XingJian";
  src: url("./assets/fonts/ZhiMangXing-Regular.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Yishi GuZhuo";
  src: url("./assets/fonts/LongCang-Regular.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

:root {
  --v2-ink: #263129;
  --v2-ink-soft: #687168;
  --v2-paper: #f7f1e5;
  --v2-paper-deep: #eee2cf;
  --v2-pine: #314b3d;
  --v2-pine-deep: #17271f;
  --v2-cinnabar: #9d3f32;
  --v2-gold: #aa8752;
  --v2-letter-line: 1.95rem;
  --v2-safe-bottom: max(16px, env(safe-area-inset-bottom));
  --v2-compose-viewport-height: 100vh;
  --v2-compose-viewport-offset-top: 0px;
  --v2-compose-ime-occlusion: 0px;
  --v2-compose-action-height: 60px;
  --v2-shadow: 0 22px 58px rgba(32, 43, 34, .14);
}

#v2CoreRoot[hidden] { display: none !important; }

#v2CoreRoot {
  position: fixed;
  inset: 0;
  z-index: 90;
  overflow: hidden;
  color: var(--v2-ink);
  background:
    radial-gradient(circle at 14% 4%, rgba(255, 255, 255, .86), transparent 34%),
    linear-gradient(155deg, #f5eddf 0%, #edf0e6 58%, #dde6d9 100%);
  font-family: "Noto Serif SC", "Songti SC", "STSong", serif;
}

.v2-core-header {
  position: fixed;
  z-index: 3;
  top: 0;
  left: 50%;
  display: flex;
  width: min(100%, 768px);
  min-height: 72px;
  align-items: center;
  gap: 12px;
  padding: max(12px, env(safe-area-inset-top)) 20px 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(247, 241, 229, .96), rgba(247, 241, 229, .72) 76%, transparent);
  backdrop-filter: blur(12px);
}

.v2-core-header > span:last-child { display: grid; gap: 2px; }
.v2-core-header b { letter-spacing: .14em; }
.v2-core-header small { color: var(--v2-ink-soft); font-size: .72rem; }

.v2-core-mark {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(157, 63, 50, .34);
  border-radius: 14px 14px 10px 10px;
  color: #fff8ee;
  background: var(--v2-cinnabar);
  box-shadow: 0 8px 20px rgba(157, 63, 50, .18);
}

.v2-core-pages {
  position: relative;
  height: 100%;
  overflow: hidden;
}

.v2-core-page {
  position: absolute;
  inset: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 90px 18px calc(104px + var(--v2-safe-bottom));
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 240ms ease, transform 240ms ease;
}

.v2-core-page.is-active { opacity: 1; transform: none; }
.v2-core-page[hidden] { display: none; }

.v2-core-page > * { width: min(100%, 720px); margin-inline: auto; }

.v2-page-heading { padding: 16px 4px 22px; }
.v2-page-heading small,
.v2-mountains-gate small,
.v2-send-result > small {
  color: var(--v2-cinnabar);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .18em;
}

.v2-page-heading h1,
.v2-mountains-gate h1,
.v2-send-result h2 {
  margin: 10px 0 8px;
  font-size: clamp(1.8rem, 7vw, 2.9rem);
  font-weight: 560;
  line-height: 1.24;
  letter-spacing: .02em;
}

.v2-page-heading p,
.v2-mountains-gate p,
.v2-send-result p {
  margin: 0;
  color: var(--v2-ink-soft);
  line-height: 1.8;
}

button,
textarea,
input { font: inherit; }

#v2CoreRoot button {
  min-width: 44px;
  min-height: 44px;
  border: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.v2-primary,
.v2-secondary,
.v2-link-danger {
  display: inline-grid;
  min-height: 52px !important;
  place-items: center;
  padding: 12px 22px;
  border-radius: 16px;
  font-weight: 700;
  letter-spacing: .04em;
}

.v2-primary {
  color: #fffaf0;
  background: var(--v2-cinnabar);
  box-shadow: 0 12px 26px rgba(157, 63, 50, .18);
}

.v2-secondary {
  color: var(--v2-pine);
  border: 1px solid rgba(49, 75, 61, .18) !important;
  background: rgba(255, 255, 255, .56);
}

.v2-link-danger {
  color: #8e4639;
  background: transparent;
}

#v2CoreRoot button:focus-visible,
#v2CoreRoot textarea:focus-visible,
#v2CoreRoot input:focus-visible {
  outline: 3px solid rgba(157, 63, 50, .32);
  outline-offset: 3px;
}

#v2CoreRoot button:disabled { cursor: wait; opacity: .66; }

[data-v2-page="station"] {
  padding: 72px 0 calc(104px + var(--v2-safe-bottom));
}

[data-v2-page="station"] > .v2-station-live {
  width: min(100%, 920px);
  margin-inline: auto;
}

.v2-station-scope {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 36px), 720px) !important;
  margin: 12px auto 0 !important;
  color: var(--v2-ink-soft);
  font-size: .78rem;
  line-height: 1.65;
  text-align: center;
}

[data-v2-page="station"][data-v2-first-repair]
  [data-station-v2-primary-action] { display: none !important; }

.v2-station-growth {
  position: relative;
  z-index: 3;
  width: min(calc(100% - 36px), 720px);
  margin: -18px auto 0;
  padding: 18px;
  border: 1px solid rgba(118, 96, 66, .18);
  border-radius: 10px 26px 14px 24px;
  background: linear-gradient(135deg, rgba(255, 252, 242, .94), rgba(233, 238, 222, .9));
  box-shadow: 0 18px 42px rgba(42, 53, 43, .12);
}
.v2-station-growth[hidden] { display: none; }
.v2-station-growth header small { color: var(--v2-cinnabar); letter-spacing: .12em; }
.v2-station-growth header h2 { margin: 6px 0 14px; font-size: 1.12rem; line-height: 1.45; }
.v2-station-growth-resources { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.v2-station-growth-resources span {
  padding: 5px 9px;
  border-radius: 999px;
  color: var(--v2-ink-soft);
  background: rgba(255, 255, 255, .62);
  font-size: .7rem;
}
.v2-station-spaces { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.v2-station-spaces button {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 13px 10px;
  text-align: left;
  color: var(--v2-ink);
  border: 1px solid rgba(49, 75, 61, .15) !important;
  border-radius: 18px 10px 16px 12px;
  background: rgba(255, 255, 255, .55);
}
.v2-station-spaces button.is-selected {
  border-color: rgba(157, 63, 50, .62) !important;
  box-shadow: inset 0 0 0 2px rgba(157, 63, 50, .12);
}
.v2-station-spaces i { color: var(--v2-gold); font-size: .68rem; font-style: normal; }
.v2-station-spaces b { font-size: .9rem; }
.v2-station-spaces small { color: var(--v2-ink-soft); font-size: .67rem; line-height: 1.45; }
.v2-station-growth > .v2-primary,
.v2-station-growth > .v2-secondary { width: 100%; margin-top: 12px; }
.v2-station-growth-note { margin: 10px 0 0; color: var(--v2-ink-soft); font-size: .76rem; line-height: 1.65; }

@media (max-width: 560px) {
  .v2-station-spaces { grid-template-columns: 1fr; }
  .v2-station-spaces button { grid-template-columns: 36px 72px minmax(0, 1fr); align-items: center; }
}

.v2-mailbox-status { padding: 18px 4px; color: var(--v2-ink-soft); }
.v2-mailbox-status > span { display: block; margin-bottom: 10px; }
.v2-mailbox-list { display: grid; gap: 14px; }
[data-v2-mailbox-more][hidden] { display: none; }

.v2-letter-card {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border: 1px solid rgba(49, 75, 61, .12);
  border-radius: 22px;
  background: rgba(255, 252, 245, .76);
  box-shadow: 0 10px 30px rgba(38, 49, 41, .07);
}

.v2-letter-card[data-attention="reveal"] {
  border-color: rgba(157, 63, 50, .24);
  background: linear-gradient(120deg, rgba(255, 249, 239, .96), rgba(250, 233, 217, .82));
}

.v2-letter-courier {
  width: 76px;
  height: 76px;
  object-fit: contain;
  filter: drop-shadow(0 8px 10px rgba(38, 49, 41, .12));
}

.v2-letter-card-copy { min-width: 0; }
.v2-letter-card-copy small { color: var(--v2-cinnabar); letter-spacing: .12em; }
.v2-letter-card-copy h2 { margin: 3px 0 4px; font-size: 1.1rem; }
.v2-letter-card-copy p { margin: 0; color: var(--v2-ink-soft); line-height: 1.5; }
.v2-letter-card-copy em { display: block; margin-top: 7px; color: var(--v2-gold); font-size: .76rem; font-style: normal; }
.v2-letter-keepsake-state { display: flex; align-items: center; gap: 8px; margin-top: 7px; }
.v2-letter-card-copy .v2-letter-keepsake-state em { margin: 0; }
.v2-letter-keepsake-art { width: 36px; height: 36px; object-fit: contain; }
.v2-letter-keepsake-veiled {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  place-items: center;
  border: 1px solid rgb(180 147 89 / 34%);
  border-radius: 50%;
  color: var(--v2-gold);
  background: rgb(255 250 242 / 56%);
  font-family: var(--v2-font-display, "KaiTi", serif);
}
.v2-letter-card > button { white-space: nowrap; }

.v2-mailbox-empty {
  display: grid;
  min-height: 280px;
  place-items: center;
  align-content: center;
  padding: 30px;
  text-align: center;
  border: 1px dashed rgba(49, 75, 61, .2);
  border-radius: 26px;
  background: rgba(255, 255, 255, .38);
}
.v2-mailbox-empty h2 { margin: 14px 0 6px; font-size: 1.25rem; }
.v2-mailbox-empty p { margin: 0; color: var(--v2-ink-soft); line-height: 1.7; }
.v2-mailbox-empty .v2-primary { margin-top: 20px; }
.v2-empty-mark,
.v2-result-seal {
  display: grid;
  width: 58px; height: 58px;
  place-items: center;
  border-radius: 50%;
  color: #fff7e9;
  background: var(--v2-cinnabar);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .15);
}

.v2-compose-act,
.v2-send-result {
  padding: 18px;
  border: 1px solid rgba(49, 75, 61, .12);
  border-radius: 26px;
  background: rgba(255, 252, 245, .74);
  box-shadow: var(--v2-shadow);
}
.v2-compose-act[hidden], .v2-send-result[hidden] { display: none; }

.v2-prompt-row,
.v2-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.v2-prompt-row button,
.v2-choice-row button {
  padding: 9px 13px;
  border: 1px solid rgba(49, 75, 61, .15) !important;
  border-radius: 999px;
  color: var(--v2-ink);
  background: rgba(255, 255, 255, .58);
}
.v2-choice-row button.is-selected {
  color: #fffaf0;
  border-color: var(--v2-pine) !important;
  background: var(--v2-pine);
}

.v2-letter-paper {
  position: relative;
  display: grid;
  margin: 18px 0;
  padding: 20px 18px 12px;
  overflow: hidden;
  border: 1px solid rgba(118, 96, 66, .18);
  border-radius: 8px 22px 12px 20px;
  background:
    repeating-linear-gradient(180deg, transparent 0 calc(var(--v2-letter-line) - 1px), rgba(105, 91, 69, .16) calc(var(--v2-letter-line) - 1px) var(--v2-letter-line)),
    var(--v2-paper);
  box-shadow: 0 16px 36px rgba(71, 58, 41, .1);
}

.v2-letter-paper::before {
  position: absolute;
  inset: 0 auto 0 34px;
  width: 1px;
  content: "";
  background: rgba(157, 63, 50, .12);
}
.v2-letter-paper > span { color: var(--v2-cinnabar); font-size: .78rem; letter-spacing: .14em; }
.v2-letter-paper textarea {
  min-height: calc(var(--v2-letter-line) * 10);
  resize: vertical;
  border: 0;
  outline: 0;
  padding: 0 2px;
  color: var(--v2-ink);
  background: transparent;
  line-height: var(--v2-letter-line);
}
.v2-letter-paper > small { justify-self: end; color: var(--v2-ink-soft); }
.v2-draft-note { margin: -8px 0 18px; color: var(--v2-ink-soft); font-size: .76rem; line-height: 1.55; }

.v2-choice-row { margin: 0 0 18px; padding: 0; border: 0; }
.v2-choice-row legend { width: 100%; margin-bottom: 7px; color: var(--v2-ink-soft); font-size: .78rem; }
.v2-compose-act > .v2-primary { width: 100%; }

.v2-back {
  margin-bottom: 16px;
  color: var(--v2-pine);
  background: transparent;
}
.v2-sealing-group header h2 { margin: 6px 0; font-size: 1.25rem; }
.v2-sealing-group header p { margin: 0; color: var(--v2-ink-soft); }
.v2-courier-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 18px 0 22px; }
.v2-courier-grid button {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 10px;
  text-align: left;
  border: 1px solid rgba(49, 75, 61, .13) !important;
  border-radius: 18px;
  color: var(--v2-ink);
  background: rgba(255, 255, 255, .5);
}
.v2-courier-grid button.is-selected { border-color: rgba(157, 63, 50, .5) !important; box-shadow: inset 0 0 0 2px rgba(157, 63, 50, .12); }
.v2-courier-grid img { width: 58px; height: 58px; object-fit: contain; }
.v2-courier-grid span { display: grid; gap: 3px; }
.v2-courier-grid small { color: var(--v2-ink-soft); font-size: .68rem; line-height: 1.35; }
.v2-sealing-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.v2-seal-action { width: 100%; }
.v2-private-note { margin: 12px 0 0; text-align: center; color: var(--v2-ink-soft); font-size: .76rem; }

.v2-departure-flash {
  display: grid;
  min-height: min(58vh, 520px);
  place-content: center;
  justify-items: center;
  gap: 12px;
  padding: 28px 22px;
  text-align: center;
}
.v2-departure-flash[hidden] { display: none; }
.v2-departure-flash__seal {
  display: grid;
  width: 86px;
  height: 86px;
  place-items: center;
  border-radius: 50%;
  color: var(--v2-white-wash);
  background: var(--v2-cinnabar);
  box-shadow: 0 18px 44px rgb(173 83 97 / 24%);
  font-family: var(--v2-font-display);
  font-size: 2rem;
}
.v2-departure-flash[data-v2-departure-state="running"] .v2-departure-flash__seal {
  animation: v2DepartureRitual 2200ms cubic-bezier(.2, .8, .2, 1) both;
}
.v2-departure-flash h2 { margin: 4px 0 0; font-family: var(--v2-font-display); font-weight: 500; }
.v2-departure-flash p { max-width: 28rem; margin: 0; color: var(--v2-ink-soft); line-height: 1.75; }

@keyframes v2DepartureRitual {
  0% { opacity: 0; transform: translateY(16px) scale(.82); }
  38% { opacity: 1; transform: translateY(0) scale(1.05); }
  72% { transform: translateY(-4px) scale(1); box-shadow: 0 20px 54px rgb(180 147 89 / 32%); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

.v2-send-result { display: grid; justify-items: center; gap: 12px; text-align: center; }
.v2-send-result input { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid rgba(49, 75, 61, .16); border-radius: 12px; color: var(--v2-ink-soft); background: rgba(255, 255, 255, .55); }
.v2-send-result .v2-primary,
.v2-send-result .v2-secondary,
.v2-send-result .v2-link-danger { width: 100%; }

.v2-mountains-gate {
  position: relative;
  min-height: min(68vh, 650px);
  overflow: hidden;
  padding: clamp(260px, 42vh, 390px) 24px 28px;
  border-radius: 34px;
  background:
    radial-gradient(ellipse at 70% 32%, rgba(255, 255, 255, .62), transparent 22%),
    linear-gradient(165deg, transparent 0 32%, rgba(92, 118, 96, .16) 32.3% 46%, transparent 46.3%),
    linear-gradient(195deg, transparent 0 38%, rgba(49, 75, 61, .18) 38.3% 58%, transparent 58.3%),
    linear-gradient(180deg, #dce6dc, #f3eddf 68%);
  box-shadow: var(--v2-shadow);
}
.v2-mountains-gate::before {
  position: absolute;
  top: 18%; left: -5%;
  width: 110%; height: 38%;
  content: "";
  background: linear-gradient(160deg, transparent 0 44%, rgba(36, 61, 47, .24) 44.5% 52%, transparent 52.5%);
}
.v2-mountains-gate > * { position: relative; }
.v2-mountains-gate .v2-primary { margin-top: 20px; }

.v2-mountains-scroll {
  position: relative;
  overflow: hidden;
  padding: 22px 22px 26px;
  border: 1px solid rgba(49, 75, 61, .12);
  border-radius: 34px 12px 32px 16px;
  background: rgba(247, 243, 230, .78);
  box-shadow: var(--v2-shadow);
}
.v2-mountains-heading { position: relative; z-index: 3; max-width: 620px; }
.v2-mountains-heading small { color: var(--v2-cinnabar); letter-spacing: .13em; }
.v2-mountains-heading h1 { margin: 7px 0 6px; font-size: clamp(1.55rem, 4vw, 2.5rem); }
.v2-mountains-heading p { margin: 0; color: var(--v2-ink-soft); line-height: 1.7; }
.v2-mountains-viewport {
  position: relative;
  min-height: clamp(430px, 62vh, 620px);
  margin: 18px -22px 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
  perspective: 900px;
  background: linear-gradient(180deg, #dbe7df 0 32%, #eee9d8 67%, #ced5b9 100%);
}
.v2-mountains-viewport::-webkit-scrollbar { display: none; }
.v2-mountains-landscape {
  position: relative;
  min-width: 300%;
  min-height: clamp(430px, 62vh, 620px);
  overflow: hidden;
  transform-style: preserve-3d;
  background:
    repeating-linear-gradient(98deg, transparent 0 52px, rgba(76, 83, 62, .025) 53px 54px),
    linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(121, 117, 76, .04));
}
.v2-mountains-landscape::after {
  position: absolute;
  z-index: 12;
  inset: 0;
  pointer-events: none;
  content: "";
  background:
    linear-gradient(90deg, rgba(244, 239, 222, .34), transparent 5% 95%, rgba(244, 239, 222, .32)),
    linear-gradient(180deg, transparent 74%, rgba(237, 233, 216, .72));
}
.v2-mountains-depth { position: absolute; inset: 0; pointer-events: none; transform-style: preserve-3d; }
.v2-mountains-depth i { position: absolute; display: block; }
.v2-mountains-depth--far { z-index: 1; transform: translateZ(-92px) scale(1.11); transform-origin: center bottom; }
.v2-mountains-depth--far i {
  bottom: 34%; width: 33%; height: 42%; opacity: .32;
  clip-path: polygon(0 100%, 19% 62%, 31% 74%, 52% 18%, 66% 61%, 80% 35%, 100% 100%);
  background: #456352;
}
.v2-mountains-depth--far i:nth-child(1) { left: -2%; }
.v2-mountains-depth--far i:nth-child(2) { left: 25%; height: 50%; opacity: .26; }
.v2-mountains-depth--far i:nth-child(3) { left: 51%; height: 46%; opacity: .3; }
.v2-mountains-depth--far i:nth-child(4) { right: -2%; height: 54%; opacity: .23; }
.v2-mountains-depth--mid { z-index: 3; transform: translateZ(5px); }
.v2-mountains-depth--mid i {
  bottom: 13%; width: 48%; height: 42%; opacity: .34;
  border-radius: 50% 62% 10% 0;
  background: linear-gradient(152deg, #76907a, #425f4e);
  clip-path: polygon(0 76%, 16% 38%, 31% 57%, 47% 20%, 61% 63%, 82% 34%, 100% 72%, 100% 100%, 0 100%);
}
.v2-mountains-depth--mid i:first-child { left: 5%; }
.v2-mountains-depth--mid i:last-child { right: 3%; transform: scaleX(-1); opacity: .28; }
.v2-mountains-depth--near { z-index: 7; transform: translateZ(72px) scale(.925); transform-origin: center bottom; }
.v2-mountains-depth--near i {
  bottom: -6%; width: 25%; height: 25%; opacity: .44;
  border-radius: 58% 48% 0 0;
  background: linear-gradient(150deg, #88947a, #4f6755);
}
.v2-mountains-depth--near i:nth-child(1) { left: -5%; }
.v2-mountains-depth--near i:nth-child(2) { left: 39%; bottom: -10%; opacity: .3; }
.v2-mountains-depth--near i:nth-child(3) { right: -5%; }
.v2-mountains-sun {
  position: absolute; z-index: 2; top: 10%; right: 8%; width: 58px; height: 58px;
  border-radius: 50%; background: rgba(186, 91, 65, .72);
  box-shadow: 0 0 48px rgba(207, 128, 82, .32);
}
.v2-mountains-river {
  position: absolute; z-index: 4; top: 42%; left: 18%; width: 88%; height: 48%;
  transform: rotate(-5deg) skewX(-17deg);
  border-radius: 50% 10% 60% 20%;
  background: linear-gradient(90deg, rgba(149, 180, 176, .12), rgba(107, 153, 158, .58), rgba(225, 234, 222, .5));
}
.v2-mountains-road {
  position: absolute; z-index: 5; bottom: -12%; width: 44%; height: 70%;
  border: 3px solid rgba(151, 112, 72, .42); border-color: transparent transparent rgba(151, 112, 72, .42) transparent;
  border-radius: 50%; transform: rotate(-22deg);
}
.v2-mountains-road.road-one { left: 4%; }
.v2-mountains-road.road-two { left: 43%; bottom: 1%; transform: rotate(-32deg) scale(.86); }
.v2-mountains-landmark {
  position: absolute; z-index: 10; display: flex; align-items: center; gap: 11px;
  min-width: min(260px, 76vw); max-width: 310px; padding: 12px 15px;
  color: var(--v2-ink); text-align: left;
  border: 1px solid rgba(93, 70, 42, .22) !important;
  border-radius: 8px 20px 10px 16px;
  background: rgba(255, 248, 229, .88);
  box-shadow: 0 18px 30px rgba(48, 55, 43, .16);
  scroll-snap-align: center;
  transform: rotateX(3deg) rotateY(4deg);
  backdrop-filter: blur(8px);
}
.v2-mountains-landmark[aria-current="true"] {
  border-color: rgba(157, 63, 50, .5) !important;
  box-shadow: 0 18px 34px rgba(48, 55, 43, .18), inset 0 0 0 2px rgba(157, 63, 50, .1);
}
.v2-mountains-landmark > i {
  display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center;
  color: #fff6df; font-style: normal; border-radius: 50%; background: var(--v2-pine);
}
.v2-mountains-landmark span { display: grid; min-width: 0; gap: 3px; }
.v2-mountains-landmark small { color: var(--v2-ink-soft); font-size: .68rem; letter-spacing: .06em; }
.v2-mountains-landmark b { font-size: .78rem; font-weight: 600; line-height: 1.45; }
.v2-mountains-station {
  left: 4%; bottom: 9%;
}
.v2-mountains-station > i { background: var(--v2-cinnabar); }
.v2-mountains-station[data-lamp="on"] > i { box-shadow: 0 0 32px rgba(224, 159, 68, .8); }
.v2-mountains-route-gate { left: 31%; top: 20%; }
.v2-mountains-journey { left: 62%; bottom: 15%; }
.v2-mountains-world { right: 3%; top: 12%; }
.v2-mountains-world > i { background: #9d633e; }
.v2-mountains-route-layer { position: absolute; z-index: 11; inset: 0; pointer-events: none; }
.v2-mountains-route {
  position: absolute; display: grid; grid-template-columns: 30px auto; align-items: center; gap: 7px;
  min-height: 44px; padding: 6px 10px 6px 7px; pointer-events: auto;
  color: var(--v2-ink); border: 1px solid rgba(49, 75, 61, .16) !important;
  border-radius: 999px; background: rgba(255, 253, 246, .9); box-shadow: 0 8px 18px rgba(48, 55, 43, .12);
}
.v2-mountains-route i { display: grid; width: 30px; height: 30px; place-items: center; color: #fff; font-style: normal; border-radius: 50%; background: var(--v2-pine); }
.v2-mountains-route span { font-size: .72rem; }
.v2-mountains-route.route-1 { left: 44%; top: 46%; }
.v2-mountains-route.route-2 { left: 51%; top: 28%; }
.v2-mountains-route.route-3 { left: 57%; top: 57%; }
.v2-mountains-route.route-4 { left: 66%; top: 36%; }
.v2-mountains-route.route-5 { left: 72%; top: 62%; }
.v2-mountains-route-empty { position: absolute; left: 43%; top: 48%; margin: 0; color: var(--v2-ink-soft); font-size: .74rem; }
.v2-mountains-story {
  position: relative; z-index: 14; display: grid; grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 14px; margin: -24px 0 0; padding: 18px;
  border: 1px solid rgba(49, 75, 61, .13); border-radius: 12px 24px 16px 20px;
  background: rgba(255, 252, 243, .96); box-shadow: 0 16px 34px rgba(42, 53, 43, .12);
}
.v2-mountains-story small { color: var(--v2-cinnabar); letter-spacing: .12em; }
.v2-mountains-story h2 { margin: 2px 0; font-size: 1.15rem; line-height: 1.45; }
.v2-mountains-story p { margin: 0; color: var(--v2-ink-soft); font-size: .8rem; line-height: 1.65; }
.v2-mountains-story .v2-primary { grid-column: 2; grid-row: 1 / 4; min-width: 170px; align-self: center; }
.v2-mountains-reset { grid-column: 1 / -1; justify-self: start; min-height: 44px; padding: 7px 2px; color: var(--v2-pine); background: transparent; }

@media (max-width: 560px) {
  .v2-mountains-scroll { padding-inline: 16px; }
  .v2-mountains-viewport { margin-inline: -16px; }
  .v2-mountains-landscape { min-width: 360%; }
  .v2-mountains-story { grid-template-columns: 1fr; }
  .v2-mountains-story .v2-primary { grid-column: 1; grid-row: auto; width: 100%; margin-top: 8px; }
  .v2-mountains-reset { grid-column: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  .v2-mountains-sun { animation: v2-mountain-breathe 5s ease-in-out infinite alternate; }
  @keyframes v2-mountain-breathe { to { box-shadow: 0 0 72px rgba(207, 128, 82, .48); } }
}

.v2-profile-card {
  padding: 24px;
  border: 1px solid rgba(49, 75, 61, .12);
  border-radius: 22px;
  background: rgba(255, 255, 255, .55);
}
.v2-profile-card p { margin: 8px 0 0; color: var(--v2-ink-soft); line-height: 1.7; }

.v2-letter-layer {
  position: fixed;
  z-index: 6;
  inset: 0;
  display: grid;
  overflow-y: auto;
  align-items: safe end;
  justify-items: center;
  padding: 70px 0 12px;
  background: rgba(18, 28, 22, .56);
  backdrop-filter: blur(10px);
}
.v2-letter-layer[hidden] { display: none; }
.v2-letter-layer > * { width: min(calc(100% - 24px), 720px); }
.v2-arrival-sheet,
.v2-reader-sheet {
  position: relative;
  min-height: min(78vh, 760px);
  padding: 54px 24px 30px;
  border-radius: 32px 32px 20px 20px;
  background: var(--v2-paper);
  box-shadow: 0 30px 80px rgba(10, 16, 12, .3);
}
.v2-arrival-sheet { display: grid; justify-items: center; align-content: center; text-align: center; }
.v2-arrival-sheet h1 { max-width: 15em; font-size: clamp(1.65rem, 7vw, 2.5rem); font-weight: 560; line-height: 1.3; }
.v2-arrival-courier { width: min(58vw, 260px); height: min(58vw, 260px); object-fit: contain; filter: drop-shadow(0 18px 22px rgba(45, 58, 47, .15)); }
.v2-arrival-action-zone {
  display: grid;
  width: min(100%, 360px);
  gap: 12px;
  margin-top: 12px;
  padding: 18px;
  border-radius: 20px;
  color: #fffaf2;
  background: var(--v2-pine-deep);
  box-shadow: 0 18px 32px rgba(10, 16, 12, .18);
}
.v2-arrival-action-copy {
  margin: 0;
  color: inherit;
  line-height: 1.7;
}
.v2-hold-seal { position: relative; width: min(100%, 360px); overflow: hidden; }
.v2-hold-seal::after { position: absolute; inset: 0; content: ""; transform: scaleX(0); transform-origin: left; background: rgba(255, 255, 255, .18); }
.v2-hold-seal.is-holding::after { transform: scaleX(1); transition: transform 500ms linear; }
.v2-layer-close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: grid;
  min-width: 44px;
  width: 44px;
  min-height: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  color: var(--v2-ink-soft);
  background: rgba(49, 75, 61, .08);
  font-size: 1.35rem;
  line-height: 1;
  white-space: nowrap;
}
.v2-reader-sheet header { padding-right: 54px; }
.v2-reader-sheet header small { color: var(--v2-cinnabar); }
.v2-reader-sheet header h1 { margin: 9px 0 24px; font-size: 1.8rem; }
.v2-reader-body { padding: 8px 3px 18px; transform-origin: top; background: repeating-linear-gradient(180deg, transparent 0 calc(var(--v2-letter-line) - 1px), rgba(105, 91, 69, .12) calc(var(--v2-letter-line) - 1px) var(--v2-letter-line)); }
.v2-reader-sheet.is-unfolding .v2-reader-body { animation: v2ReaderUnfold 720ms cubic-bezier(.22, .72, .2, 1) both; }
@keyframes v2ReaderUnfold {
  0% { clip-path: inset(0); opacity: 1; transform: translateY(-6px); }
  100% { clip-path: inset(0); opacity: 1; transform: none; }
}
.v2-reader-body p { min-height: var(--v2-letter-line); margin: 0 0 var(--v2-letter-line); white-space: pre-wrap; line-height: var(--v2-letter-line); }
.v2-reader-postscript,
.v2-reader-keepsake { margin: 20px 0; padding: 18px; border: 1px solid rgba(157, 63, 50, .18); border-radius: 16px; background: rgba(255, 255, 255, .42); }
.v2-reader-postscript small { color: var(--v2-cinnabar); }
.v2-reader-postscript p { margin: 7px 0 0; line-height: 1.75; }
.v2-reader-keepsake { display: flex; align-items: center; gap: 12px; transition: opacity 360ms ease, transform 360ms ease; }
.v2-reader-keepsake > .v2-reader-keepsake-mark { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; color: #fff8ed; background: var(--v2-cinnabar); }
.v2-reader-keepsake-art { width: 76px; height: 76px; flex: 0 0 76px; object-fit: contain; transition: opacity 360ms ease, transform 360ms ease; }
.v2-reader-keepsake > div { display: grid; gap: 4px; }
.v2-reader-keepsake small { color: var(--v2-ink-soft); }
.v2-reader-keepsake.is-veiled { opacity: .72; }
.v2-reader-keepsake.is-veiled .v2-reader-keepsake-art { opacity: .16; transform: translateY(4px) scale(.92); }
.v2-reader-keepsake.is-revealing { animation: v2KeepsakeReveal 2400ms ease both; }
.v2-reader-keepsake.is-reviewing { animation: v2KeepsakeReveal 800ms ease both; }
.v2-reader-keepsake.is-revealed { opacity: 1; }
.v2-reader-keepsake.is-revealed .v2-reader-keepsake-art { opacity: 1; transform: none; }
@keyframes v2KeepsakeReveal {
  0% { opacity: .55; transform: translateY(6px); }
  58% { opacity: .82; transform: translateY(-2px); }
  100% { opacity: 1; transform: none; }
}
.v2-safety-actions { margin-top: 26px; padding-top: 20px; border-top: 1px solid rgba(49, 75, 61, .14); }
.v2-safety-actions h2 { margin: 0 0 6px; font-size: 1rem; }
.v2-safety-actions > p { margin: 0 0 12px; color: var(--v2-ink-soft); font-size: .82rem; line-height: 1.6; }
.v2-safety-choices,
.v2-safety-confirm-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.v2-safety-link { padding: 8px 12px; border-radius: 12px; color: var(--v2-ink-soft); background: rgba(49, 75, 61, .07); }
.v2-safety-confirm { margin-top: 12px; padding: 14px; border: 1px solid rgba(157, 63, 50, .16); border-radius: 16px; background: rgba(255, 255, 255, .42); }
.v2-safety-confirm[hidden] { display: none; }
.v2-safety-confirm p { margin: 0 0 12px; line-height: 1.6; }
.v2-safety-confirm label { display: grid; gap: 7px; margin-bottom: 12px; color: var(--v2-ink-soft); }
.v2-safety-confirm select { min-height: 44px; padding: 8px 10px; border: 1px solid rgba(49, 75, 61, .18); border-radius: 10px; color: var(--v2-ink); background: #fffaf0; }
.v2-danger { min-height: 44px; padding: 9px 14px; border-radius: 12px; color: #fffaf0; background: #7f3029; }
.v2-safety-status { min-height: 1.5em; margin-top: 12px !important; }
.v2-reader-sheet > .v2-primary { width: 100%; margin-top: 16px; }
.v2-layer-loading, .v2-layer-error { align-self: center; padding: 24px; border-radius: 20px; text-align: center; background: var(--v2-paper); }

.v2-direct-reply-thread { display: grid; gap: 14px; margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(49, 75, 61, .16); }
.v2-direct-reply-thread > h2 { margin: 0; font-size: 1.15rem; }
.v2-direct-reply-card { display: grid; gap: 12px; padding: 18px; border: 1px solid rgba(157, 63, 50, .14); border-radius: 18px; background: rgba(255, 255, 255, .4); }
.v2-direct-reply-card > small { color: var(--v2-cinnabar); }
.v2-direct-reply-card > p { margin: 0; }
.v2-direct-reply-body { padding-bottom: 0; }
.v2-direct-reply-report { padding-top: 10px; border-top: 1px solid rgba(49, 75, 61, .12); }
.v2-direct-reply-report summary { cursor: pointer; color: var(--v2-ink-soft); font-size: .82rem; }
.v2-direct-reply-report select { width: 100%; min-height: 44px; margin: 12px 0 8px; padding: 8px 10px; border: 1px solid rgba(49, 75, 61, .18); border-radius: 10px; color: var(--v2-ink); background: #fffaf0; }

.v2-core-toast {
  position: fixed;
  z-index: 8;
  left: 50%;
  bottom: calc(92px + var(--v2-safe-bottom));
  max-width: calc(100vw - 36px);
  padding: 11px 16px;
  transform: translateX(-50%);
  border-radius: 999px;
  color: #fffaf2;
  text-align: center;
  background: rgba(23, 39, 31, .94);
  box-shadow: 0 12px 30px rgba(16, 26, 21, .2);
}
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-core-toast,
#v2CoreRoot[data-v2-layer-open="true"] .v2-core-toast {
  top: calc(var(--v2-safe-top) + 16px);
  bottom: auto;
}
#v2CoreRoot[data-v2-layer-open="true"] .v2-core-toast { top: calc(var(--v2-safe-top) + 16px); }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-core-toast { top: calc(var(--v2-safe-top) + 16px); }
#v2CoreRoot[data-v2-view="compose"] .v2-core-toast {
  top: calc(var(--v2-safe-top) + 16px);
  bottom: auto;
}

.v2-core-nav {
  position: fixed;
  z-index: 5;
  left: 50%;
  bottom: 0;
  display: grid;
  width: min(100%, 768px);
  grid-template-columns: repeat(5, 1fr);
  gap: 3px;
  padding: 8px 10px var(--v2-safe-bottom);
  transform: translateX(-50%);
  border-top: 1px solid rgba(49, 75, 61, .1);
  background: rgba(248, 243, 233, .94);
  box-shadow: 0 -10px 30px rgba(34, 49, 39, .06);
  backdrop-filter: blur(18px);
}
.v2-core-nav button { display: grid; min-width: 44px; gap: 2px; place-items: center; padding: 6px 2px; border-radius: 14px; color: var(--v2-ink-soft); background: transparent; }
.v2-core-nav button span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; font-size: .76rem; }
.v2-core-nav button b { font-size: .72rem; font-weight: 600; }
.v2-core-nav button.is-active { color: var(--v2-pine-deep); }
.v2-core-nav button.is-active span { color: #fffaf1; background: var(--v2-pine); }
.v2-core-nav button[data-v2-view="compose"] span { width: 42px; height: 42px; margin-top: -20px; color: #fff8ee; background: var(--v2-cinnabar); box-shadow: 0 8px 20px rgba(157, 63, 50, .22); }

@media (max-width: 768px) {
  .v2-core-header { width: 100%; }
  .v2-core-page { padding-inline: 16px; }
}

@media (max-width: 414px) {
  .v2-letter-card { grid-template-columns: 62px minmax(0, 1fr); }
  .v2-letter-courier { width: 62px; height: 62px; }
  .v2-letter-card > button { grid-column: 1 / -1; width: 100%; }
  .v2-courier-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 375px) {
  .v2-core-page { padding-inline: 12px; }
  .v2-compose-act { padding: 14px; }
  .v2-courier-grid button { grid-template-columns: 46px minmax(0, 1fr); padding: 8px; }
  .v2-courier-grid img { width: 46px; height: 46px; }
  .v2-courier-grid small { display: none; }
  .v2-sealing-pair { grid-template-columns: 1fr; }
}

@media (max-width: 320px) {
  .v2-core-header { padding-inline: 12px; }
  .v2-core-header small { display: none; }
  .v2-core-page { padding-inline: 8px; }
  .v2-core-nav { padding-inline: 4px; }
  .v2-core-nav button b { font-size: .66rem; }
}

@media (prefers-reduced-motion: reduce) {
  .v2-core-page,
  .v2-mountains-landscape,
  .v2-mountains-viewport,
  .v2-hold-seal::after,
  .v2-reader-body,
  .v2-reader-keepsake {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
  }
  .v2-reader-body {
    animation: none !important;
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  [data-v2-keepsake-effect] {
    animation: none !important;
    transform: none !important;
  }
  .v2-departure-flash,
  .v2-departure-flash__seal {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
  }
}

/* Authoritative V2 product language · 2026-08-19
   The application keeps the tested V2 state clients, while every visible core
   surface follows the confirmed high-fidelity paper, seal and landscape system. */
:root {
  --v2-paper: var(--color-paper);
  --v2-ink: var(--color-ink);
  --v2-cinnabar: var(--color-accent);
  --v2-mist: #b6a9bb;
  --v2-rain: #91a69c;
  --v2-gold: #b49359;
  --v2-white-wash: #fffaf2;
  --v2-ink-soft: var(--color-muted);
  --v2-paper-deep: #eee2cf;
  --v2-pine: #4f5d57;
  --v2-pine-deep: #26312e;
  --v2-font-reading: "Songti SC", "STSong", "SimSun", Georgia, serif;
  --v2-font-display: var(--font-display);
  --v2-font-ui: var(--font-ui);
  --v2-safe-top: env(safe-area-inset-top, 0px);
}

#v2CoreRoot {
  min-width: 280px;
  color: var(--v2-ink);
  background:
    linear-gradient(rgb(38 49 46 / 2.4%) 1px, transparent 1px) 0 0 / 100% 68px,
    radial-gradient(circle at 86% 3%, rgb(180 147 89 / 10%), transparent 24%),
    var(--v2-paper);
  font-family: var(--v2-font-ui);
}

.v2-product-shell {
  position: relative;
  width: min(100%, 768px);
  height: 100%;
  margin-inline: auto;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgb(38 49 46 / 1.8%), transparent 16% 84%, rgb(38 49 46 / 1.8%)),
    var(--v2-paper);
  box-shadow: 0 0 70px rgb(38 49 46 / 10%);
}

.v2-context-header {
  display: grid;
  width: min(100%, 768px);
  min-height: calc(var(--v2-safe-top) + 62px);
  grid-template-columns: minmax(0, 1fr);
  padding: calc(var(--v2-safe-top) + 8px) 18px 8px;
  border-bottom: 1px solid rgb(38 49 46 / 10%);
  background: rgb(245 239 228 / 94%);
  backdrop-filter: blur(16px);
}

.v2-context-title {
  display: grid !important;
  min-width: 0;
  gap: 0 !important;
  justify-items: center;
  text-align: center;
}

.v2-context-title b {
  max-width: 100%;
  overflow: hidden;
  font-family: var(--v2-font-display);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v2-context-title small {
  max-width: 100%;
  overflow: hidden;
  font-family: var(--v2-font-reading);
  font-size: .62rem;
  font-weight: 400;
  letter-spacing: .03em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v2-transition-notice {
  position: fixed;
  z-index: 9;
  top: calc(max(12px, env(safe-area-inset-top)) + 66px);
  left: 50%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  width: min(calc(100% - 32px), 720px);
  padding: 14px 16px;
  transform: translateX(-50%);
  border: 1px solid color-mix(in srgb, var(--v2-cinnabar) 28%, var(--v2-paper-deep));
  border-radius: 18px;
  background:
    linear-gradient(120deg, color-mix(in srgb, var(--v2-paper) 94%, transparent), color-mix(in srgb, var(--v2-gold) 10%, var(--v2-paper))),
    var(--v2-paper);
  box-shadow: 0 12px 30px rgba(70, 48, 28, .12);
}

.v2-transition-notice > div { display: grid; gap: 3px; min-width: 0; }
.v2-transition-notice small { color: var(--v2-cinnabar); font-size: .68rem; letter-spacing: .16em; }
.v2-transition-notice b { color: var(--v2-ink); font-family: var(--v2-font-display); font-size: 1rem; }
.v2-transition-notice p { margin: 0; color: var(--v2-ink-soft); font-family: var(--v2-font-reading); font-size: .78rem; line-height: 1.55; }
.v2-transition-notice .v2-secondary { min-width: 72px; margin: 0; }

.v2-core-page {
  padding: calc(var(--v2-safe-top) + 78px) 18px calc(96px + var(--v2-safe-bottom));
  background:
    radial-gradient(circle at 82% 4%, rgb(180 147 89 / 7%), transparent 28%),
    linear-gradient(90deg, transparent 0 13%, rgb(180 147 89 / 3%) 13.2% 13.5%, transparent 13.7% 86%, rgb(180 147 89 / 3%) 86.2% 86.5%, transparent 86.7%);
}

.v2-page-heading {
  position: relative;
  padding: 22px 3px 18px;
}

.v2-page-heading::after {
  display: block;
  width: 42px;
  height: 1px;
  margin-top: 14px;
  content: "";
  background: linear-gradient(90deg, var(--v2-cinnabar), transparent);
}

.v2-page-heading small,
.v2-mountains-heading small,
.v2-send-result > small {
  color: var(--v2-cinnabar);
  font-family: var(--v2-font-reading);
  font-weight: 600;
}

.v2-page-heading h1,
.v2-mountains-heading h1,
.v2-send-result h2 {
  font-family: var(--v2-font-display);
  font-weight: 500;
}

.v2-primary,
.v2-secondary,
.v2-link-danger {
  border-radius: 2px;
  font-family: var(--v2-font-ui);
}

.v2-primary {
  color: var(--v2-white-wash);
  background: var(--v2-cinnabar);
  box-shadow: 0 10px 24px rgb(173 83 97 / 22%);
}

.v2-secondary {
  color: var(--v2-ink);
  border-color: rgb(38 49 46 / 28%) !important;
  background: rgb(255 250 242 / 62%);
}

/* Private station */
[data-v2-page="station"].v2-station-stage {
  padding: calc(var(--v2-safe-top) + 62px) 0 calc(96px + var(--v2-safe-bottom));
  background:
    radial-gradient(circle at 50% 26%, rgb(255 250 242 / 42%), transparent 38%),
    linear-gradient(180deg, #dedfd5 0%, var(--v2-paper) 74%);
}

#v2CoreRoot[data-v2-authenticated="true"] [data-v2-identity-entry],
#v2CoreRoot[data-v2-authenticated="true"] [data-v2-profile-identity-card] { display: none !important; }
#v2CoreRoot[data-v2-authenticated="false"] [data-v2-profile-hub] { display: none !important; }

.v2-station-auth-entry {
  position: absolute;
  z-index: 7;
  top: calc(var(--v2-safe-top) + 76px);
  left: max(14px, calc((100% - 720px) / 2 + 14px));
  display: grid;
  width: auto !important;
  min-height: 44px;
  gap: 1px;
  margin: 0 !important;
  padding: 7px 12px;
  border: 1px solid rgb(173 83 97 / 28%);
  border-radius: 18px;
  color: var(--v2-ink);
  background: rgb(255 250 242 / 90%);
  box-shadow: 0 8px 22px rgb(38 49 46 / 12%);
  text-align: left;
}
.v2-station-auth-entry b { font-family: var(--v2-font-reading); font-size: .76rem; }
.v2-station-auth-entry small { color: var(--v2-ink-soft); font-family: var(--v2-font-ui); font-size: .62rem; }

.v2-station-stage .v2-station-live {
  min-height: min(60dvh, 560px);
}

.v2-station-progression {
  width: min(calc(100% - 32px), 690px);
  margin: -28px auto 0;
  padding: 18px;
  border: 1px solid rgb(38 49 46 / 13%);
  border-radius: 2px;
  background: rgb(255 250 242 / 93%);
  box-shadow: 0 20px 48px rgb(38 49 46 / 13%);
  backdrop-filter: blur(14px);
}

.v2-station-progression[hidden],
.v2-profile-progression[hidden] { display: none; }

.v2-progression-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 16px;
  align-items: end;
}

.v2-progression-heading small { grid-column: 1 / -1; color: var(--v2-cinnabar); letter-spacing: .12em; }
.v2-progression-heading h2 { margin: 0; font-family: var(--v2-font-display); font-size: 1.22rem; font-weight: 500; }
.v2-progression-points {
  margin: 0;
  color: var(--v2-cinnabar);
  font-family: var(--v2-font-reading);
  font-weight: 600;
  white-space: nowrap;
}

.v2-progression-materials {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 15px;
}

.v2-material-shelf {
  display: grid;
  grid-template-rows: 42px auto 1fr auto;
  gap: 5px;
  min-width: 0;
  padding: 10px 8px;
  border-bottom: 5px solid rgb(115 79 51 / 54%);
  background: linear-gradient(180deg, rgb(255 253 247 / 88%), rgb(229 216 193 / 32%));
  box-shadow: 0 8px 15px rgb(73 61 45 / 8%);
}

.v2-material-object {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  margin: 0 auto;
  border: 1px solid rgb(115 79 51 / 24%);
  border-radius: 45% 55% 48% 52%;
  color: rgb(70 60 48 / 80%);
  background: rgb(210 194 162 / 50%);
  font-family: var(--v2-font-display);
}

.v2-material-shelf[data-material-id="material_river_stone"] .v2-material-object { border-radius: 58% 42% 52% 48%; background: #ced2ca; }
.v2-material-shelf[data-material-id="material_lamp_glass"] .v2-material-object { background: rgb(226 205 139 / 44%); box-shadow: inset 0 0 12px rgb(255 246 185 / 75%); }
.v2-material-shelf[data-material-id="material_paper_fiber"] .v2-material-object { border-radius: 2px; background: #eee5d4; }
.v2-material-shelf[data-material-id="material_brass_fitting"] .v2-material-object { border-radius: 50%; background: #bba46e; }
.v2-material-copy { display: contents; }
.v2-material-copy b { text-align: center; font-family: var(--v2-font-reading); font-size: .82rem; }
.v2-material-copy small { color: var(--v2-ink-soft); font-size: .62rem; line-height: 1.45; }
.v2-material-quantity { color: var(--v2-cinnabar); text-align: right; font-family: var(--v2-font-reading); font-size: .78rem; }
.v2-progression-unavailable { margin: 0; color: var(--v2-ink-soft); font-family: var(--v2-font-reading); line-height: 1.7; }

.v2-station-growth {
  width: min(calc(100% - 32px), 690px) !important;
  margin-top: -28px !important;
  border: 1px solid rgb(38 49 46 / 13%);
  border-radius: 2px;
  background: rgb(255 250 242 / 91%);
  box-shadow: 0 20px 48px rgb(38 49 46 / 13%);
  backdrop-filter: blur(14px);
}

.v2-station-progression + .v2-station-growth { margin-top: 16px !important; }

.v2-station-scope {
  font-family: var(--v2-font-reading);
  letter-spacing: .03em;
}

/* Letter ledger */
.v2-mailbox-ledger {
  background:
    linear-gradient(90deg, transparent 0 12%, rgb(180 147 89 / 5%) 12.2% 12.5%, transparent 12.7% 87%, rgb(180 147 89 / 5%) 87.2% 87.5%, transparent 87.7%),
    var(--v2-paper);
}

.v2-ledger-heading h1 { letter-spacing: .16em; }

.v2-scroll-shelf {
  position: relative;
  padding: 4px 0 24px 18px;
}

.v2-scroll-shelf::before {
  position: absolute;
  top: 6px;
  bottom: 16px;
  left: 2px;
  width: 1px;
  content: "";
  background: linear-gradient(var(--v2-cinnabar), rgb(173 83 97 / 8%));
}

.v2-mailbox-list { gap: 14px; }

.v2-scroll-card {
  position: relative;
  border: 1px solid rgb(38 49 46 / 13%);
  border-radius: 2px;
  background:
    repeating-linear-gradient(to bottom, transparent 0 31px, rgb(145 166 156 / 12%) 31px 32px),
    rgb(255 250 242 / 90%);
  box-shadow: 0 14px 34px rgb(38 49 46 / 9%);
}

.v2-scroll-card::before {
  position: absolute;
  top: 24px;
  left: -22px;
  width: 8px;
  height: 8px;
  border: 2px solid var(--v2-paper);
  border-radius: 50%;
  content: "";
  background: var(--v2-cinnabar);
  box-shadow: 0 0 0 1px rgb(173 83 97 / 35%);
}

.v2-letter-card h2,
.v2-mailbox-empty h2 { font-family: var(--v2-font-display); font-weight: 500; }

/* Writing and sealing */
.v2-compose-page {
  padding-inline: 14px;
  padding-top: calc(var(--v2-safe-top) + 62px);
  padding-bottom: calc(94px + var(--v2-safe-bottom) + var(--v2-compose-action-height));
}
.v2-compose-heading { width: min(100%, 680px) !important; }
.v2-compose-heading { padding-block: 5px 6px; }
.v2-compose-heading::after,
.v2-compose-heading small { display: none; }
.v2-compose-heading h1 { margin-block: 0 2px; font-size: clamp(1.35rem, 6.1vw, 2rem); }
.v2-compose-heading p { font-size: .88rem; line-height: 1.45; }

.v2-writing-scene,
.v2-sealing-scene {
  width: min(100%, 680px) !important;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.v2-recipient-intent {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  align-items: end;
  margin-bottom: 4px;
}

.v2-recipient-name-field {
  display: grid;
  gap: 4px;
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-reading);
  font-size: .75rem;
  letter-spacing: .08em;
}
.v2-recipient-name-field > span { white-space: nowrap; }

.v2-recipient-name-field input {
  min-height: 44px;
  padding: 8px 4px 9px;
  color: var(--v2-ink);
  border: 0;
  border-bottom: 1px solid rgb(173 83 97 / 36%);
  border-radius: 0;
  outline: 0;
  background: transparent;
  font-family: var(--v2-font-display);
  font-size: 1.18rem;
}

.v2-recipient-name-field input:focus-visible {
  border-bottom-color: var(--v2-cinnabar);
  box-shadow: 0 2px 0 rgb(173 83 97 / 16%);
}

@media (max-width: 414px) {
  .v2-recipient-intent { gap: 6px; }
  .v2-recipient-name-field { grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 6px; }
  .v2-recipient-name-field input { min-width: 0; }
}

.v2-writing-desk {
  position: relative;
  width: 100%;
}

.v2-paper-stage {
  position: relative;
  width: 100%;
}

.v2-writing-toolbar {
  position: relative;
  z-index: 7;
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.v2-writing-toolbar__paper {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 8px;
  color: var(--v2-ink);
  font-family: var(--v2-font-reading);
}
.v2-writing-toolbar__paper b { font-size: .78rem; font-weight: 500; }
.v2-writing-toolbar__paper small {
  overflow: hidden;
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-ui);
  font-size: .62rem;
  letter-spacing: .04em;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.v2-font-control {
  position: relative;
  flex: 0 0 auto;
}

.v2-font-toggle {
  min-width: 88px !important;
  min-height: 44px !important;
  padding: 7px 10px !important;
  color: var(--v2-ink-soft);
  border: 1px solid rgb(73 92 84 / 16%) !important;
  border-radius: 999px;
  background: rgb(255 250 242 / 66%) !important;
  font-family: var(--v2-font-ui);
  font-size: .68rem;
  letter-spacing: .04em;
  white-space: nowrap;
}

.v2-font-toggle b {
  color: var(--v2-cinnabar);
  font-family: var(--v2-font-reading);
  font-size: .76rem;
  font-weight: 500;
  letter-spacing: .06em;
}

.v2-font-menu {
  position: absolute;
  z-index: 12;
  top: calc(100% + 5px);
  right: 0;
  display: grid;
  width: max-content;
  max-width: min(276px, calc(100vw - 32px));
  grid-template-columns: repeat(3, minmax(72px, 1fr));
  gap: 5px;
  padding: 6px;
  border: 1px solid rgb(128 96 54 / 20%);
  border-radius: 12px 3px 12px 5px;
  background: rgb(247 239 224 / 98%);
  box-shadow: 0 14px 34px rgb(69 57 42 / 16%);
}

.v2-font-menu[hidden] { display: none; }

.v2-font-menu [data-v2-font] {
  display: grid;
  min-width: 44px !important;
  min-height: 44px !important;
  gap: 1px;
  place-items: center;
  padding: 6px 7px !important;
  color: var(--v2-ink);
  border: 1px solid transparent !important;
  border-radius: 8px 2px 8px 3px;
  background: rgb(255 250 242 / 56%) !important;
}

.v2-font-menu [data-v2-font] span {
  font-family: var(--v2-letter-font, var(--v2-font-reading));
  font-size: .9rem;
  white-space: nowrap;
}

.v2-font-menu [data-v2-font] small {
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-ui);
  font-size: .58rem;
}

.v2-font-menu [data-v2-font].is-selected {
  color: var(--v2-cinnabar);
  border-color: rgb(157 63 50 / 34%) !important;
  background: rgb(255 250 242 / 96%) !important;
  box-shadow: inset 0 -2px 0 rgb(157 63 50 / 24%);
}

.v2-letter-paper {
  position: relative;
  display: block;
  padding: 0;
  border: 4px double var(--v2-cinnabar);
  border-radius: 2px;
  background: var(--v2-white-wash);
  box-shadow:
    0 18px 44px rgb(69 57 42 / 10%),
    inset 0 0 0 1px rgb(255 255 255 / 70%);
}

.v2-paper-caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.v2-letter-paper textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  height: clamp(120px, calc(var(--v2-compose-viewport-height) - 360px), 420px);
  min-height: max(120px, calc(var(--v2-compose-viewport-height) - 360px));
  max-height: 420px;
  overflow-y: auto;
  resize: none;
  padding: 41px 32px 46px;
  color: var(--v2-ink);
  border: 0;
  border-radius: 0;
  background-color: var(--v2-white-wash);
  background-image:
    repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--v2-letter-line) - 1px), rgb(73 92 84 / 15%) calc(var(--v2-letter-line) - 1px), rgb(73 92 84 / 15%) var(--v2-letter-line)),
    repeating-linear-gradient(93deg, transparent 0 24px, rgb(100 82 56 / 2%) 25px 26px, transparent 27px 61px),
    radial-gradient(ellipse at 25% 18%, rgb(255 255 255 / 70%), transparent 38%);
  background-position: 0 41px, 0 0, 0 0;
  background-size: 100% var(--v2-letter-line), 92px 100%, 100% 100%;
  font-family: var(--v2-font-reading);
  font-size: 18px;
  line-height: var(--v2-letter-line);
  letter-spacing: .025em;
  box-shadow: none;
}

.v2-letter-paper > small {
  position: absolute;
  right: 14px;
  bottom: 9px;
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-reading);
  font-size: .68rem;
}

.v2-prompt-rail {
  position: absolute;
  z-index: 8;
  top: 18px;
  right: 0;
  display: block;
  width: 44px;
  max-width: min(236px, calc(100vw - 24px));
  height: 56px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: translateX(calc(100% - 44px));
  pointer-events: none;
}

.v2-prompt-rail.is-open {
  display: flex;
  flex-direction: column;
  width: min(236px, calc(100vw - 24px));
  height: auto;
  padding-right: 50px;
  gap: 4px;
  box-sizing: border-box;
  align-items: stretch;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.v2-prompt-toggle {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  width: 44px;
  height: 56px;
  min-width: 44px !important;
  min-height: 44px !important;
  place-items: center;
  pointer-events: auto;
  margin: 0;
  padding: 8px 6px !important;
  color: var(--v2-cinnabar);
  border: 1px solid rgb(128 96 54 / 28%) !important;
  border-right: 0 !important;
  border-radius: 8px 0 0 8px;
  background: linear-gradient(145deg, rgb(242 229 204 / 98%), rgb(226 205 168 / 98%)) !important;
  box-shadow: -5px 8px 18px rgb(69 57 42 / 14%), inset 1px 0 rgb(255 255 255 / 54%);
  font-family: var(--v2-font-display);
  font-size: .78rem;
  letter-spacing: .12em;
  writing-mode: vertical-rl;
}

.v2-prompt-rail [data-v2-prompt] {
  position: static;
  display: none;
  width: 100%;
  min-height: 44px !important;
  padding: 10px 12px;
  color: var(--v2-ink);
  border: 1px solid rgb(128 96 54 / 18%) !important;
  border-radius: 8px;
  background: rgb(247 239 224 / 98%);
  box-shadow: -8px 10px 24px rgb(69 57 42 / 13%);
  font-family: var(--v2-font-reading);
  font-size: .875rem;
  text-align: left;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.v2-prompt-rail.is-open [data-v2-prompt] {
  display: block;
}
.v2-prompt-rail [data-v2-prompt][aria-pressed="true"] {
  color: var(--v2-cinnabar);
  background: rgb(255 250 242 / 52%);
  box-shadow: inset 2px 0 0 rgb(173 83 97 / 68%);
}

.v2-writing-actions {
  position: fixed;
  z-index: 6;
  left: 50%;
  bottom: calc(70px + var(--v2-safe-bottom) + 10px + var(--v2-compose-ime-occlusion));
  display: block;
  width: min(calc(100% - 24px), 680px);
  margin: 0;
  transform: translateX(-50%);
}

.v2-writing-actions .v2-primary {
  width: 100%;
  min-width: 0;
  min-height: 48px !important;
  padding-block: 10px;
}
.v2-writing-actions .v2-draft-note {
  position: absolute;
  right: 8px;
  bottom: calc(100% + 7px);
  display: none;
  max-width: min(82vw, 420px);
  margin: 0;
  padding: 5px 9px;
  border-radius: 999px;
  color: var(--v2-ink-soft);
  background: rgb(247 241 229 / 92%);
  box-shadow: 0 4px 14px rgb(38 49 46 / 10%);
  font-size: .68rem;
  line-height: 1.45;
}
.v2-writing-actions .v2-draft-note[data-v2-draft-state="volatile"] { display: block; }

#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-compose-heading { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-core-header { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-core-nav { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-recipient-intent,
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-writing-toolbar,
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-paper-picker { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-prompt-rail { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-font-menu { display: none; }
#v2CoreRoot:has([data-station-v2-theme-modal]) .v2-core-header,
#v2CoreRoot:has([data-station-v2-theme-modal]) .v2-core-nav { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-compose-page {
  padding-top: calc(var(--v2-safe-top) + var(--v2-compose-viewport-offset-top) + 62px);
  padding-bottom: calc(20px + var(--v2-compose-action-height));
}
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-writing-actions {
  bottom: calc(12px + var(--v2-safe-bottom) + var(--v2-compose-ime-occlusion));
}
#v2CoreRoot[data-v2-compose-ime-open="true"]:not([data-v2-compose-body-focus="true"]) .v2-writing-actions {
  display: none;
}
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-letter-paper textarea {
  height: max(180px, calc(var(--v2-compose-viewport-height) - 250px));
  min-height: max(180px, calc(var(--v2-compose-viewport-height) - 250px));
}

.v2-sealing-scene { padding-bottom: 24px; }
.v2-back { color: var(--v2-ink-soft); font-family: var(--v2-font-reading); }

.v2-envelope-stage {
  display: grid;
  min-height: 390px;
  place-items: center;
  align-content: center;
  gap: 10px;
  margin: 4px 0 22px;
  padding: 18px 14px 16px;
  border-block: 1px solid rgb(180 147 89 / 22%);
  background:
    radial-gradient(circle at 50% 48%, rgb(255 250 242 / 92%), transparent 56%),
    linear-gradient(150deg, rgb(182 169 187 / 15%), rgb(145 166 156 / 13%));
}

.v2-envelope-ritual {
  display: grid;
  width: min(84vw, 320px);
  justify-items: center;
  gap: 10px;
  filter: drop-shadow(0 18px 18px rgb(38 49 46 / 16%));
}

.v2-envelope-courier {
  position: relative;
  z-index: 2;
  width: clamp(108px, 31vw, 140px);
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 12px 12px rgb(38 49 46 / 15%));
}

.v2-envelope-mail {
  position: relative;
  width: 100%;
  aspect-ratio: 1.55;
}

.v2-envelope-sheet {
  position: absolute;
  inset: 10% 4% 5%;
  border: 1px solid rgb(94 77 55 / 22%);
  background:
    repeating-linear-gradient(to bottom, transparent 0 27px, rgb(145 166 156 / 12%) 27px 28px),
    var(--v2-white-wash);
}

.v2-envelope-flap {
  position: absolute;
  inset: 9% 4% 5%;
  background: linear-gradient(155deg, #eee4d3, #fff9ee);
  clip-path: polygon(0 0, 50% 62%, 100% 0, 100% 100%, 0 100%);
}

.v2-envelope-recipient {
  position: absolute;
  z-index: 2;
  top: 31%;
  right: 14%;
  max-width: 62%;
  overflow: hidden;
  color: rgb(66 57 46 / 78%);
  font-family: var(--v2-font-display);
  font-size: clamp(.74rem, 3.2vw, .92rem);
  letter-spacing: .12em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v2-envelope-keepsake {
  position: absolute;
  z-index: 3;
  bottom: -8%;
  left: -5%;
  width: 27%;
  height: 42%;
  object-fit: contain;
  filter: drop-shadow(0 9px 9px rgb(38 49 46 / 18%));
}

.v2-envelope-keepsake[hidden],
.v2-recipient-phone-field[hidden],
[data-v2-sealing-route-options][hidden] { display: none; }

.v2-wax-seal {
  position: absolute;
  top: 49%;
  left: 50%;
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  transform: translate(-50%, -50%);
  border-radius: 48% 52% 46% 54%;
  color: var(--v2-white-wash);
  background: var(--v2-cinnabar);
  box-shadow: inset 0 0 0 5px rgb(255 250 242 / 10%), 0 7px 14px rgb(87 39 46 / 22%);
  font-family: var(--v2-font-display);
}

.v2-envelope-stage figcaption {
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-reading);
  font-size: .78rem;
}

.v2-sealing-gallery,
.v2-sealing-pair {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.v2-sealing-gallery header h2 { font-family: var(--v2-font-display); font-weight: 500; }
.v2-courier-grid { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 12px; }
.v2-courier-grid button { flex: 0 0 min(76vw, 290px); min-width: 0; scroll-snap-align: center; border-radius: 2px; background: rgb(255 250 242 / 78%); }
.v2-courier-grid button.is-selected { border-color: var(--v2-cinnabar); box-shadow: 0 12px 28px rgb(173 83 97 / 15%); }
.v2-courier-tiers {
  display: grid;
  gap: 9px;
  padding: 13px 0 4px;
  border-top: 1px solid rgb(38 49 46 / 12%);
}
.v2-courier-tiers header { display: grid; gap: 3px; }
.v2-courier-tiers header small { color: var(--v2-cinnabar); letter-spacing: .1em; }
.v2-courier-tiers header p { margin: 0; color: var(--v2-ink-soft); font-family: var(--v2-font-reading); font-size: .76rem; line-height: 1.65; }
.v2-courier-tier-row { display: flex; flex-wrap: wrap; gap: 8px; }
.v2-courier-tier-row button {
  min-width: 72px !important;
  min-height: 44px !important;
  padding: 8px 14px;
  border: 1px solid rgb(73 92 84 / 20%);
  border-radius: 2px;
  color: var(--v2-ink);
  background: rgb(255 250 242 / 78%);
}
.v2-courier-tier-row button.is-selected { border-color: var(--v2-cinnabar); box-shadow: inset 0 0 0 1px rgb(173 83 97 / 24%); }
.v2-keepsake-chooser { margin-top: 18px; }
.v2-keepsake-chooser header h2 { font-family: var(--v2-font-display); font-weight: 500; }
.v2-keepsake-chooser header p,
.v2-keepsake-status { color: var(--v2-ink-soft); font-family: var(--v2-font-reading); font-size: .76rem; }

.v2-keepsake-grid {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  scroll-snap-type: x mandatory;
}

.v2-keepsake-grid button {
  display: grid;
  flex: 0 0 min(70vw, 250px);
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  min-height: 82px;
  padding: 9px 12px;
  border: 1px solid rgb(73 92 84 / 18%);
  border-radius: 2px;
  background: rgb(255 250 242 / 78%);
  scroll-snap-align: center;
  text-align: left;
}

.v2-keepsake-grid button.is-selected {
  border-color: var(--v2-cinnabar);
  box-shadow: 0 10px 24px rgb(173 83 97 / 13%);
}

.v2-keepsake-grid img { width: 54px; height: 62px; object-fit: contain; }
.v2-keepsake-login { min-height: 44px; margin-top: 8px; }
.v2-keepsake-none {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border: 1px solid rgb(73 92 84 / 22%);
  border-radius: 50%;
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-display);
}
.v2-keepsake-copy { display: grid; gap: 4px; }
.v2-keepsake-copy b { font-family: var(--v2-font-display); font-weight: 500; }
.v2-keepsake-copy small { color: var(--v2-ink-soft); font-size: .7rem; line-height: 1.45; }

.v2-route-privacy {
  display: grid;
  gap: 9px;
  margin: 18px 0;
  padding: 16px;
  border: 1px solid rgb(180 147 89 / 24%);
  border-radius: 2px;
  background: rgb(255 250 242 / 58%);
}

.v2-route-privacy legend {
  padding: 0 6px;
  color: var(--v2-ink);
  font-family: var(--v2-font-display);
  font-size: 1rem;
}

.v2-route-option {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  min-height: 58px;
  padding: 10px 8px;
  border-bottom: 1px solid rgb(73 92 84 / 10%);
}

.v2-route-option input { width: 20px; height: 20px; margin: 2px; accent-color: var(--v2-cinnabar); }
.v2-route-option span { display: grid; gap: 3px; }
.v2-route-option b { font-family: var(--v2-font-reading); font-size: .9rem; }
.v2-route-option small { color: var(--v2-ink-soft); font-size: .72rem; line-height: 1.5; }
.v2-route-option.is-selected { background: rgb(173 83 97 / 5%); }

.v2-recipient-phone-field {
  display: grid;
  gap: 7px;
  padding: 11px 8px 2px 33px;
  color: var(--v2-ink-soft);
  font-size: .76rem;
}

.v2-recipient-phone-field input {
  min-height: 46px;
  padding: 8px 10px;
  color: var(--v2-ink);
  border: 1px solid rgb(73 92 84 / 22%);
  border-radius: 2px;
  background: var(--v2-white-wash);
  font-size: 16px;
}
.v2-recipient-phone-field small { line-height: 1.5; }
.v2-seal-action { width: 100%; }

.v2-departure-ritual {
  border-radius: 2px;
  background:
    radial-gradient(circle at 50% 15%, rgb(180 147 89 / 20%), transparent 28%),
    repeating-linear-gradient(to bottom, transparent 0 31px, rgb(145 166 156 / 11%) 31px 32px),
    var(--v2-white-wash);
}

/* Arrival, unsealing and reading */
.v2-letter-layer {
  background:
    linear-gradient(90deg, transparent 0 14%, rgb(180 147 89 / 5%) 14.2% 14.5%, transparent 14.7% 85%, rgb(180 147 89 / 5%) 85.2% 85.5%, transparent 85.7%),
    linear-gradient(180deg, #373946 0 25%, var(--v2-paper) 48% 100%);
}

.v2-arrival-stage,
.v2-letter-sheet {
  width: min(calc(100% - 24px), 720px);
  min-height: calc(100dvh - 36px);
  border-radius: 0;
}

.v2-arrival-stage {
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  justify-items: center;
  padding: calc(var(--v2-safe-top) + 18px) 22px 34px;
  color: var(--v2-ink);
  background:
    radial-gradient(ellipse at 50% 25%, rgb(255 250 242 / 90%), transparent 38%),
    linear-gradient(180deg, rgb(255 250 242 / 70%), var(--v2-paper));
}

.v2-arrival-stage > small { margin-top: 42px; color: var(--v2-cinnabar); font-family: var(--v2-font-reading); }
.v2-arrival-stage > h1 { max-width: 440px; font-family: var(--v2-font-display); font-size: clamp(1.9rem, 8vw, 3rem); font-weight: 500; text-align: center; }
.v2-arrival-courier { width: min(46vw, 220px); filter: drop-shadow(0 18px 20px rgb(38 49 46 / 18%)); }

.v2-seal-control {
  position: relative;
  width: min(78vw, 330px);
  min-height: 190px !important;
  margin-top: 18px;
  border: 0 !important;
  border-radius: 2px;
  color: var(--v2-white-wash);
  background:
    radial-gradient(circle at 50% 50%, var(--v2-cinnabar) 0 25px, transparent 26px),
    linear-gradient(150deg, transparent 0 49%, rgb(111 81 69 / 14%) 50%, transparent 51%),
    linear-gradient(160deg, #f3eadc, #fff9ee) !important;
  box-shadow: 0 24px 48px rgb(38 31 32 / 22%) !important;
  font-size: .8rem;
  text-shadow: 0 1px 2px rgb(38 31 32 / 35%);
}

.v2-letter-sheet {
  padding: calc(var(--v2-safe-top) + 28px) 20px 42px;
  background:
    radial-gradient(circle at 50% 8%, rgb(255 250 242 / 95%), transparent 35%),
    var(--v2-paper);
}

.v2-letter-sheet > header { text-align: center; }
.v2-letter-sheet > header h1 { font-family: var(--v2-font-display); font-size: clamp(2rem, 8vw, 3.2rem); font-weight: 500; letter-spacing: .12em; }

.v2-letter-sheet .v2-reader-body {
  position: relative;
  padding: 38px 30px 70px;
  border: 1px solid rgb(94 77 55 / 17%);
  border-radius: 2px;
  background:
    linear-gradient(90deg, transparent 0 38px, rgb(173 83 97 / 13%) 38px 39px, transparent 39px),
    repeating-linear-gradient(to bottom, transparent 0 31px, rgb(145 166 156 / 16%) 31px 32px),
    var(--v2-white-wash);
  box-shadow: 0 24px 60px rgb(38 49 46 / 13%);
  font-family: var(--v2-font-reading);
  font-size: 18px;
  line-height: 32px;
}

/* Continuous Shanhe */
.v2-shanhe-page { padding-inline: 0; }
.v2-mountains-scroll { background: var(--v2-paper); }
.v2-mountains-heading { padding-inline: 18px; }

.v2-shanhe-scale-switcher {
  position: sticky;
  z-index: 4;
  top: 0;
  display: grid;
  width: fit-content;
  grid-template-columns: repeat(3, auto);
  gap: 2px;
  margin: 0 auto 12px;
  padding: 3px;
  border: 1px solid rgb(38 49 46 / 20%);
  border-radius: 999px;
  background: rgb(255 250 242 / 90%);
  box-shadow: 0 8px 20px rgb(38 49 46 / 14%);
}

.v2-shanhe-scale-switcher button {
  min-width: 76px !important;
  min-height: 42px !important;
  padding: 0 11px;
  border-radius: 999px;
  color: var(--v2-ink-soft);
  background: transparent;
  font-size: .72rem;
}

.v2-shanhe-scale-switcher button[aria-pressed="true"] {
  color: var(--v2-white-wash);
  background: var(--v2-ink);
}

.v2-mountains-viewport {
  border-block: 1px solid rgb(38 49 46 / 14%);
  background:
    linear-gradient(rgb(38 49 46 / 13%), rgb(38 49 46 / 5%)),
    url("assets/world/shanhe-map-atlas-v1.jpg") center / cover;
}

.v2-mountains-landscape { background: transparent; }
.v2-mountains-depth { opacity: .42; }
.v2-mountains-story { border-radius: 0; background: rgb(255 250 242 / 93%); }

/* Profile hub */
.v2-profile-page {
  background:
    radial-gradient(circle at 86% 5%, rgb(173 83 97 / 8%), transparent 22%),
    linear-gradient(90deg, transparent 0 7%, rgb(145 166 156 / 7%) 7% calc(7% + 1px), transparent calc(7% + 1px)),
    var(--v2-paper);
}

.v2-profile-hub {
  display: grid;
  gap: 14px;
  margin-bottom: 20px;
}

.v2-profile-identity-card {
  display: grid;
  gap: 8px;
  margin-bottom: 22px;
  padding: 20px;
  border: 1px solid rgb(173 83 97 / 22%);
  border-radius: 2px;
  background: linear-gradient(135deg, rgb(255 250 242 / 94%), rgb(238 226 207 / 72%));
  box-shadow: 0 16px 34px rgb(38 49 46 / 9%);
}
.v2-profile-identity-card small { color: var(--v2-cinnabar); font-family: var(--v2-font-reading); letter-spacing: .12em; }
.v2-profile-identity-card h2 { margin: 0; font-family: var(--v2-font-display); font-size: 1.42rem; font-weight: 500; }
.v2-profile-identity-card p { margin: 0; color: var(--v2-ink-soft); font-family: var(--v2-font-reading); line-height: 1.7; }
.v2-profile-identity-card .v2-primary { width: 100%; margin-top: 6px; }

.v2-profile-nameplate {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  padding: 17px 18px;
  border: 1px solid rgb(109 91 67 / 18%);
  border-radius: 18px 4px 18px 4px;
  background:
    linear-gradient(135deg, rgb(255 251 242 / 96%), rgb(229 219 197 / 74%)),
    var(--v2-paper);
  box-shadow: 0 15px 34px rgb(38 49 46 / 9%);
  overflow: hidden;
  position: relative;
}

.v2-profile-nameplate::after {
  content: "";
  position: absolute;
  width: 116px;
  aspect-ratio: 1;
  right: -54px;
  bottom: -72px;
  border: 1px solid rgb(173 83 97 / 13%);
  border-radius: 50%;
  box-shadow: 0 0 0 11px rgb(173 83 97 / 4%), 0 0 0 22px rgb(173 83 97 / 3%);
}

.v2-profile-nameplate__seal {
  display: grid;
  width: 56px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgb(173 83 97 / 42%);
  border-radius: 50% 48% 52% 46%;
  color: #fff9ed;
  background: linear-gradient(145deg, #b25c67, #8f3f49);
  box-shadow: inset 0 0 0 4px rgb(255 249 237 / 13%), 0 8px 18px rgb(143 63 73 / 20%);
  font-family: var(--v2-font-display);
  font-size: 1.42rem;
  transform: rotate(-3deg);
}

.v2-profile-nameplate small {
  color: var(--v2-cinnabar);
  font-family: var(--v2-font-reading);
  font-size: .72rem;
  letter-spacing: .12em;
}

.v2-profile-nameplate h2 {
  margin: 4px 0 3px;
  font-family: var(--v2-font-display);
  font-size: clamp(1.45rem, 6vw, 1.85rem);
  font-weight: 500;
  letter-spacing: .06em;
}

.v2-profile-nameplate p {
  margin: 0;
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-reading);
  font-size: .82rem;
  line-height: 1.6;
}

.v2-profile-destinations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid rgb(38 49 46 / 14%);
  border-radius: 16px;
  background: rgb(255 251 242 / 68%);
  overflow: hidden;
}

.v2-profile-destinations button {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 2px 9px;
  min-width: 0;
  min-height: 76px;
  align-items: center;
  padding: 13px 12px;
  border: 0;
  border-radius: 0;
  color: var(--v2-ink);
  background: transparent;
  text-align: left;
}

.v2-profile-destinations button:nth-child(odd) { border-right: 1px solid rgb(38 49 46 / 10%); }
.v2-profile-destinations button:nth-child(-n + 2) { border-bottom: 1px solid rgb(38 49 46 / 10%); }
.v2-profile-destinations button > span {
  grid-row: 1 / 3;
  display: grid;
  width: 32px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgb(173 83 97 / 25%);
  border-radius: 50%;
  color: var(--v2-cinnabar);
  background: rgb(255 250 242 / 72%);
  font-family: var(--v2-font-display);
}
.v2-profile-destinations button > b { font-family: var(--v2-font-reading); font-size: .9rem; }
.v2-profile-destinations button > small { grid-column: 2; color: var(--v2-ink-soft); font-size: .68rem; }
.v2-profile-destinations button:active { background: rgb(173 83 97 / 7%); }
.v2-profile-destinations button:focus-visible { outline: 2px solid var(--v2-cinnabar); outline-offset: -3px; }

.v2-profile-progression {
  display: grid;
  gap: 14px;
  margin-top: 22px;
  padding-block: 18px;
  border-block: 1px solid rgb(38 49 46 / 16%);
  scroll-margin-top: 86px;
  transition: background-color 220ms ease, box-shadow 220ms ease;
}
.v2-profile-progression[data-v2-profile-highlight="true"] {
  margin-inline: -10px;
  padding-inline: 10px;
  background: linear-gradient(90deg, rgb(173 83 97 / 8%), transparent 72%);
  box-shadow: inset 3px 0 0 rgb(173 83 97 / 46%);
}
.v2-achievement-heading { display: grid; gap: 4px; }
.v2-achievement-heading small { color: var(--v2-cinnabar); font-family: var(--v2-font-reading); letter-spacing: .12em; }
.v2-achievement-heading h2 { margin: 0; font-family: var(--v2-font-display); font-size: 1.28rem; font-weight: 500; }
.v2-achievement-traces { display: grid; gap: 0; }
.v2-achievement-trace {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 2px 10px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid rgb(38 49 46 / 10%);
}
.v2-achievement-trace:last-child { border-bottom: 0; }
.v2-achievement-mark {
  grid-row: 1 / 3;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgb(173 83 97 / 28%);
  border-radius: 50%;
  color: var(--v2-cinnabar);
  font-family: var(--v2-font-display);
}
.v2-achievement-trace b { font-family: var(--v2-font-reading); }
.v2-achievement-trace p { grid-column: 2; margin: 0; color: var(--v2-ink-soft); font-family: var(--v2-font-reading); font-size: .78rem; }
.v2-achievement-trace time { grid-column: 3; grid-row: 1 / 3; color: var(--v2-ink-soft); font-size: .68rem; }
.v2-achievement-empty { margin: 0; color: var(--v2-ink-soft); font-family: var(--v2-font-reading); line-height: 1.7; }

.v2-profile-actions {
  display: grid;
  margin-top: 22px;
  border-block: 1px solid rgb(38 49 46 / 16%);
}

.v2-profile-actions button {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 3px 12px;
  align-items: center;
  padding: 15px 8px;
  border: 0;
  border-bottom: 1px solid rgb(38 49 46 / 11%);
  border-radius: 0;
  color: var(--v2-ink);
  background: transparent;
  text-align: left;
}

.v2-profile-actions button:last-child { border-bottom: 0; }
.v2-profile-actions button > span {
  grid-row: 1 / 3;
  display: grid;
  width: 32px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgb(173 83 97 / 30%);
  border-radius: 50%;
  color: var(--v2-cinnabar);
  font-family: var(--v2-font-display);
}
.v2-profile-actions button > b { font-family: var(--v2-font-reading); font-size: .98rem; font-weight: 600; }
.v2-profile-actions button > small { grid-column: 2; color: var(--v2-ink-soft); font-family: var(--v2-font-ui); }
.v2-profile-actions button > em { grid-column: 3; grid-row: 1 / 3; color: var(--v2-ink-soft); font-style: normal; font-size: 1.3rem; }
.v2-profile-actions button.is-danger > span,
.v2-profile-actions button.is-danger > b { color: #8f3946; }
.v2-profile-actions button:focus-visible { outline: 2px solid var(--v2-cinnabar); outline-offset: -2px; }

.v2-profile-disclosure {
  margin-top: 16px;
  border-block: 1px solid rgb(38 49 46 / 13%);
  color: var(--v2-ink);
}
.v2-profile-disclosure summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 64px;
  padding: 10px 8px;
  cursor: pointer;
  list-style: none;
}
.v2-profile-disclosure summary::-webkit-details-marker { display: none; }
.v2-profile-disclosure summary > span { display: grid; gap: 3px; }
.v2-profile-disclosure summary b { font-family: var(--v2-font-reading); font-size: .9rem; }
.v2-profile-disclosure summary small { color: var(--v2-ink-soft); font-size: .7rem; }
.v2-profile-disclosure summary em {
  color: var(--v2-cinnabar);
  font-style: normal;
  font-size: 1.1rem;
  transition: transform 180ms ease;
}
.v2-profile-disclosure[open] summary em { transform: rotate(180deg); }
.v2-profile-disclosure > div {
  display: grid;
  gap: 0;
  padding: 0 8px 12px;
}
.v2-profile-disclosure p {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 10px;
  margin: 0;
  padding: 11px 0;
  border-top: 1px solid rgb(38 49 46 / 9%);
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-reading);
  font-size: .76rem;
  line-height: 1.65;
}
.v2-profile-disclosure p b { color: var(--v2-ink); font-weight: 600; }

.v2-profile-danger {
  margin-top: 16px;
  padding-top: 8px;
}
.v2-profile-danger button {
  display: grid;
  width: 100%;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 3px 12px;
  align-items: center;
  padding: 14px 8px;
  border: 1px solid rgb(143 57 70 / 17%);
  border-radius: 12px;
  color: #7f3540;
  background: rgb(143 57 70 / 4%);
  text-align: left;
}
.v2-profile-danger button > span {
  grid-row: 1 / 3;
  display: grid;
  width: 32px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgb(143 57 70 / 25%);
  border-radius: 50%;
  font-family: var(--v2-font-display);
}
.v2-profile-danger button > b { font-family: var(--v2-font-reading); font-size: .9rem; }
.v2-profile-danger button > small { grid-column: 2; color: rgb(98 70 72 / 78%); font-size: .7rem; }
.v2-profile-danger button > em { grid-column: 3; grid-row: 1 / 3; font-style: normal; font-size: 1.2rem; }
.v2-profile-danger button:focus-visible { outline: 2px solid #8f3946; outline-offset: 2px; }

.v2-profile-legal {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 22px 0 8px;
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-ui);
  font-size: .78rem;
}
.v2-profile-legal > span { display: inline-flex; align-items: center; gap: 10px; }
.v2-profile-legal a {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  color: inherit;
  text-underline-offset: 3px;
}
.v2-profile-legal i { font-style: normal; }
.v2-profile-filing { min-height: 44px !important; color: color-mix(in srgb, var(--v2-ink-soft) 82%, transparent) !important; font-size: .7rem; }

img[data-v2-keepsake-effect="peace-knot"] { animation: v2KeepsakePeaceKnot 3800ms ease-in-out infinite; transform-origin: 50% 18%; }
img[data-v2-keepsake-effect="mountain-token"] { animation: v2KeepsakeMountainToken 4200ms ease-in-out infinite; }
img[data-v2-keepsake-effect="wind-bell"] { animation: v2KeepsakeWindBell 3200ms ease-in-out infinite; transform-origin: 50% 12%; }

@keyframes v2KeepsakePeaceKnot {
  0%, 100% { transform: translateY(0) rotate(-.7deg); }
  50% { transform: translateY(-2px) rotate(.7deg); }
}

@keyframes v2KeepsakeMountainToken {
  0%, 100% { opacity: .88; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
}

@keyframes v2KeepsakeWindBell {
  0%, 100% { transform: rotate(-1.4deg); }
  50% { transform: rotate(1.4deg); }
}

#v2CoreRoot[data-v2-motion-paused="true"] [data-v2-keepsake-effect] {
  animation-play-state: paused !important;
}

@media (prefers-reduced-motion: reduce) {
  img[data-v2-keepsake-effect] {
    animation: none !important;
    transform: none !important;
  }
}

/* Trusted account sheets must sit above the fixed V2 product root. */
body:has(#v2CoreRoot[data-v2-ready="true"]) .sheet-backdrop { z-index: 100; }
body:has(#v2CoreRoot[data-v2-ready="true"]) .permission-panel,
body:has(#v2CoreRoot[data-v2-ready="true"]) .account-control-panel { z-index: 101; }

@media (max-width: 600px) {
  .v2-progression-heading { grid-template-columns: 1fr; }
  .v2-progression-points { justify-self: start; }
  .v2-progression-materials { grid-template-columns: 1fr; }
  .v2-material-shelf {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
  }
  .v2-material-object { grid-row: 1 / 3; }
  .v2-material-copy { display: grid; gap: 2px; }
  .v2-material-copy b { text-align: left; }
  .v2-material-quantity { grid-column: 3; grid-row: 1 / 3; }
  .v2-achievement-trace { grid-template-columns: 34px minmax(0, 1fr); }
  .v2-achievement-trace time { grid-column: 2; grid-row: 3; }
}

/* Persistent five-part navigation */
.v2-core-nav {
  min-height: calc(70px + var(--v2-safe-bottom));
  padding: 8px 8px var(--v2-safe-bottom);
  border-top: 1px solid rgb(38 49 46 / 12%);
  background: rgb(245 239 228 / 95%);
  box-shadow: 0 -12px 34px rgb(38 49 46 / 8%);
}

.v2-core-nav button { border-radius: 2px; font-family: var(--v2-font-ui); }
.v2-core-nav button span { font-family: var(--v2-font-display); }
.v2-core-nav button.is-active span { background: var(--v2-ink); }
.v2-core-nav button[data-v2-view="compose"] span { background: var(--v2-cinnabar); }

@media (max-width: 414px) {
  .v2-context-header { grid-template-columns: minmax(0, 1fr); padding-inline: 12px; }
  .v2-core-page { padding-inline: 14px; }
  .v2-compose-page { padding-inline: 12px; }
  .v2-recipient-intent { grid-template-columns: 1fr; gap: 9px; }
  .v2-letter-paper textarea { padding-inline: 28px; }
  .v2-sealing-pair { grid-template-columns: 1fr; }
  .v2-envelope-stage { min-height: 370px; padding-inline: 10px; }
  .v2-envelope-ritual { width: min(84vw, 320px); }
  .v2-route-privacy { padding-inline: 11px; }
  .v2-recipient-phone-field { padding-left: 8px; }
  .v2-letter-sheet .v2-reader-body { padding-inline: 28px 20px; }
}

@media (max-width: 320px) {
  .v2-page-heading { padding-top: 14px; }
  .v2-letter-paper textarea { padding: 35px 23px 44px; font-size: 17px; }
  .v2-prompt-rail.is-open { width: 174px; }
  .v2-envelope-stage { min-height: 350px; }
  .v2-keepsake-grid button { flex-basis: 238px; }
  .v2-shanhe-scale-switcher button { min-width: 68px !important; padding-inline: 7px; }
}

/* Ancient paper experience */
[data-v2-font-key="font_qingkai"],
[data-v2-font="font_qingkai"] {
  --v2-letter-font: "Yishi QingKai", "KaiTi", "STKaiti", "Kaiti SC", serif;
}

[data-v2-font-key="font_xingjian"],
[data-v2-font="font_xingjian"] {
  --v2-letter-font: "Yishi XingJian", "Yishi QingKai", "KaiTi", "STKaiti", serif;
}

[data-v2-font-key="font_guzhuo"],
[data-v2-font="font_guzhuo"] {
  --v2-letter-font: "Yishi GuZhuo", "Yishi QingKai", "KaiTi", "STKaiti", serif;
}

[data-v2-paper-key="paper_bamboo"],
[data-v2-paper-preview="paper_bamboo"] {
  --v2-ancient-paper-base: #ead9b8;
  --v2-ancient-paper-edge: rgb(110 82 43 / 56%);
  --v2-ancient-paper-ink: #2c352b;
  --v2-ancient-paper-texture:
    url("./assets/xuan-paper-fiber.svg"),
    radial-gradient(ellipse at 88% 15%, rgb(50 83 52 / 22%) 0 2.8%, transparent 3.4%),
    radial-gradient(ellipse at 80% 23%, rgb(50 83 52 / 15%) 0 2%, transparent 2.6%),
    linear-gradient(99deg, transparent 0 82%, rgb(50 83 52 / 17%) 82.2% 82.55%, transparent 82.8%),
    radial-gradient(ellipse at 14% 62%, rgb(104 78 42 / 7%) 0 5%, transparent 28%),
    radial-gradient(ellipse at 72% 76%, rgb(104 78 42 / 6%) 0 7%, transparent 32%),
    radial-gradient(circle at 22% 9%, rgb(255 250 224 / 78%), transparent 46%),
    radial-gradient(ellipse at 50% 110%, rgb(95 66 33 / 13%), transparent 58%);
}

[data-v2-paper-key="paper_peach"],
[data-v2-paper-preview="paper_peach"] {
  --v2-ancient-paper-base: #eedbd1;
  --v2-ancient-paper-edge: rgb(139 76 70 / 52%);
  --v2-ancient-paper-ink: #3f302d;
  --v2-ancient-paper-texture:
    url("./assets/xuan-paper-fiber.svg"),
    radial-gradient(ellipse at 88% 14%, rgb(163 69 79 / 22%) 0 2.3%, transparent 2.8%),
    radial-gradient(ellipse at 82% 20%, rgb(177 82 91 / 17%) 0 1.7%, transparent 2.2%),
    radial-gradient(ellipse at 93% 25%, rgb(147 63 72 / 15%) 0 1.4%, transparent 1.9%),
    linear-gradient(128deg, transparent 0 84%, rgb(102 65 49 / 17%) 84.15% 84.55%, transparent 84.9%),
    radial-gradient(ellipse at 13% 58%, rgb(112 69 62 / 7%) 0 5%, transparent 27%),
    radial-gradient(ellipse at 66% 78%, rgb(112 69 62 / 6%) 0 8%, transparent 34%),
    radial-gradient(circle at 17% 8%, rgb(255 245 233 / 82%), transparent 46%),
    radial-gradient(ellipse at 48% 112%, rgb(110 61 50 / 11%), transparent 60%);
}

[data-v2-paper-key="paper_cloud"],
[data-v2-paper-preview="paper_cloud"] {
  --v2-ancient-paper-base: #dce5df;
  --v2-ancient-paper-edge: rgb(58 91 86 / 52%);
  --v2-ancient-paper-ink: #263a37;
  --v2-ancient-paper-texture:
    url("./assets/xuan-paper-fiber.svg"),
    radial-gradient(ellipse at 88% 17%, transparent 0 8.5%, rgb(67 102 97 / 18%) 9% 10%, transparent 10.6%),
    radial-gradient(ellipse at 78% 24%, transparent 0 6.5%, rgb(67 102 97 / 14%) 7% 8%, transparent 8.7%),
    radial-gradient(ellipse at 68% 15%, transparent 0 4.8%, rgb(67 102 97 / 10%) 5.3% 6%, transparent 6.7%),
    radial-gradient(ellipse at 14% 64%, rgb(50 79 75 / 7%) 0 5%, transparent 29%),
    radial-gradient(ellipse at 64% 78%, rgb(50 79 75 / 6%) 0 8%, transparent 35%),
    radial-gradient(ellipse at 20% 88%, rgb(252 252 238 / 55%), transparent 38%),
    linear-gradient(158deg, rgb(255 255 244 / 50%), transparent 50%),
    radial-gradient(ellipse at 48% 112%, rgb(41 74 69 / 10%), transparent 60%);
}

.v2-paper-picker {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin: 0 0 7px;
  padding: 0;
  border: 0;
}

.v2-paper-picker legend {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.v2-paper-picker legend small {
  color: var(--v2-ink-soft);
  font-family: var(--v2-font-ui);
  font-size: .66rem;
  letter-spacing: .06em;
}

.v2-paper-choice {
  display: grid;
  box-sizing: border-box;
  min-width: 0 !important;
  height: 44px;
  min-height: 44px !important;
  max-height: 44px;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 5px;
  align-items: center;
  padding: 3px 5px !important;
  color: var(--v2-ink);
  border: 1px solid rgb(73 92 84 / 16%) !important;
  border-radius: 10px 2px 9px 3px;
  background: rgb(255 250 242 / 52%);
  box-shadow: 0 5px 12px rgb(69 57 42 / 5%);
  font-family: var(--v2-font-reading);
  text-align: left;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.v2-paper-choice__preview,
.v2-sealing-paper-swatch {
  display: block;
  overflow: hidden;
  border: 1px solid var(--v2-ancient-paper-edge);
  border-radius: 2px 7px 2px 6px;
  background-color: var(--v2-ancient-paper-base);
  background-image: var(--v2-ancient-paper-texture);
  box-shadow: inset 0 0 8px rgb(64 48 31 / 8%);
}

.v2-paper-choice__preview { width: 19px; height: 27px; }
.v2-paper-choice b { overflow: hidden; font-size: .7rem; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.v2-paper-choice.is-selected {
  color: var(--v2-ink);
  border-color: var(--v2-ancient-paper-edge) !important;
  background: rgb(255 250 242 / 88%);
  box-shadow: 0 7px 18px rgb(69 57 42 / 10%), inset 0 -2px 0 var(--v2-ancient-paper-edge);
  transform: translateY(-1px);
}
.v2-paper-choice:focus-visible { outline: 2px solid var(--v2-cinnabar); outline-offset: 2px; }

.v2-letter-paper {
  isolation: isolate;
  display: block;
  margin: 0;
  padding: 7px 7px 34px;
  overflow: hidden;
  border: 1px solid var(--v2-ancient-paper-edge);
  border-radius: 3px 14px 4px 11px;
  background-color: var(--v2-ancient-paper-base);
  box-shadow:
    0 18px 42px rgb(69 57 42 / 13%),
    inset 0 0 0 1px rgb(255 255 255 / 34%),
    inset 0 0 28px color-mix(in srgb, var(--v2-ancient-paper-edge) 18%, transparent);
  transition: background-color 160ms ease, border-color 160ms ease;
}

.v2-letter-paper::before {
  z-index: 0;
  inset: 0;
  width: auto;
  pointer-events: none;
  background-color: transparent;
  background-image: var(--v2-ancient-paper-texture);
  background-blend-mode: multiply;
  background-size: 256px 256px, auto, auto, auto, auto, auto, auto, auto;
  opacity: .9;
  content: "";
}

.v2-letter-paper::after {
  position: absolute;
  z-index: 0;
  inset: 7px;
  pointer-events: none;
  border: 1px solid color-mix(in srgb, var(--v2-ancient-paper-edge) 42%, transparent);
  border-radius: 2px 10px 2px 8px;
  content: "";
}

.v2-letter-paper textarea {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  box-sizing: border-box;
  height: var(--v2-compose-body-height, max(120px, calc(var(--v2-compose-viewport-height) - 515px)));
  min-height: 120px;
  max-height: var(--v2-compose-body-height, max(120px, calc(var(--v2-compose-viewport-height) - 515px)));
  overflow-y: auto;
  resize: none;
  padding: 36px 30px 40px;
  scroll-padding-block: 36px;
  color: var(--v2-ancient-paper-ink);
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
  caret-color: var(--v2-cinnabar);
  font-family: var(--v2-letter-font, var(--v2-font-reading));
  font-size: 18px;
  line-height: 1.875;
  letter-spacing: .025em;
}

.v2-letter-paper > small {
  z-index: 2;
  right: 15px;
  bottom: 7px;
  color: color-mix(in srgb, var(--v2-ancient-paper-ink) 68%, transparent);
}

#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-letter-paper textarea {
  height: max(120px, calc(var(--v2-compose-viewport-height) - var(--v2-safe-top) - var(--v2-safe-bottom) - var(--v2-compose-action-height) - 140px));
  min-height: max(120px, calc(var(--v2-compose-viewport-height) - var(--v2-safe-top) - var(--v2-safe-bottom) - var(--v2-compose-action-height) - 140px));
  max-height: max(120px, calc(var(--v2-compose-viewport-height) - var(--v2-safe-top) - var(--v2-safe-bottom) - var(--v2-compose-action-height) - 140px));
}

.v2-sealing-pair {
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  align-items: stretch;
}

.v2-sealing-paper-summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  min-height: 66px;
  padding: 10px 12px;
  border: 1px solid var(--v2-ancient-paper-edge);
  border-radius: 3px 12px 3px 10px;
  background-color: var(--v2-ancient-paper-base);
  background-image: var(--v2-ancient-paper-texture);
  box-shadow: 0 10px 24px rgb(69 57 42 / 8%);
}
.v2-sealing-paper-swatch { width: 42px; height: 48px; }
.v2-sealing-paper-summary > span:last-child { display: grid; gap: 1px; min-width: 0; }
.v2-sealing-paper-summary small { color: var(--v2-ink-soft); font-family: var(--v2-font-ui); font-size: .66rem; }
.v2-sealing-paper-summary b { color: var(--v2-ancient-paper-ink); font-family: var(--v2-font-reading); font-size: .94rem; font-weight: 600; }
.v2-sealing-paper-summary em { color: var(--v2-ink-soft); font-family: var(--v2-font-ui); font-size: .64rem; font-style: normal; }
.v2-sealing-paper-summary em span { color: var(--v2-cinnabar); font-family: var(--v2-letter-font, var(--v2-font-reading)); }

.v2-letter-sheet,
.v2-direct-reply-card {
  color: var(--v2-ancient-paper-ink);
  border-color: var(--v2-ancient-paper-edge);
  background-color: var(--v2-ancient-paper-base);
  background-image: var(--v2-ancient-paper-texture);
}

.v2-letter-sheet .v2-reader-body,
.v2-direct-reply-card .v2-reader-body,
.v2-direct-reply-body[data-v2-paper-key] {
  color: var(--v2-ancient-paper-ink);
  border: 1px solid color-mix(in srgb, var(--v2-ancient-paper-edge) 54%, transparent);
  border-radius: 2px 11px 2px 9px;
  background-color: color-mix(in srgb, var(--v2-ancient-paper-base) 92%, white);
  background-image: var(--v2-ancient-paper-texture);
  box-shadow: 0 18px 46px rgb(38 49 46 / 10%), inset 0 0 0 1px rgb(255 255 255 / 30%);
}

.v2-letter-sheet[data-v2-font-key] .v2-reader-body,
.v2-direct-reply-card[data-v2-font-key] .v2-reader-body,
.v2-direct-reply-body[data-v2-font-key] {
  font-family: var(--v2-letter-font, var(--v2-font-reading));
}

@media (max-width: 430px) {
  .v2-paper-picker { gap: 4px; margin-bottom: 6px; }
  .v2-paper-choice { grid-template-columns: 18px minmax(0, 1fr); gap: 4px; padding-inline: 4px !important; }
  .v2-paper-choice__preview { width: 18px; height: 25px; }
  .v2-letter-paper textarea { padding-inline: 25px; }
  .v2-sealing-pair { grid-template-columns: 1fr; }
}

@media (max-width: 320px) {
  .v2-paper-picker legend small { font-size: .6rem; letter-spacing: 0; }
  .v2-paper-choice { grid-template-columns: 18px minmax(0, 1fr); gap: 4px; padding-inline: 4px !important; }
  .v2-paper-choice__preview { width: 18px; height: 27px; }
  .v2-paper-choice b { font-size: .68rem; }
  .v2-letter-paper textarea { padding: 34px 21px 40px; font-size: 17px; }
}

@media (max-width: 360px) and (max-height: 600px) {
  .v2-compose-page { padding-top: calc(var(--v2-safe-top) + 62px); }
  .v2-compose-heading { display: none; }
  .v2-paper-picker { margin-bottom: 4px; }
  .v2-writing-actions {
    bottom: calc(70px + var(--v2-safe-bottom) + 8px + var(--v2-compose-ime-occlusion));
  }
}

@media (prefers-reduced-motion: reduce) {
  .v2-paper-choice,
  .v2-letter-paper { transition: none; }
}

/* Hallmark · macrostructure: courtyard / writing desk / letter ledger · theme: existing design.md
   Editorial Chinese stationery; parchment anchor 83°, pine ink, cinnabar actions. */
.v2-compose-focus-bar { display: none; }
#v2CoreRoot[data-v2-compose-body-focus="true"] .v2-compose-focus-bar {
  position: fixed;
  z-index: 7;
  top: calc(var(--v2-safe-top) + var(--v2-compose-viewport-offset-top));
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(calc(100% - 28px), 680px);
  height: 52px;
  transform: translateX(-50%);
  background: var(--v2-paper);
  border-bottom: 1px solid var(--color-rule);
}
.v2-compose-focus-bar button {
  padding: 0 10px;
  color: var(--v2-ink);
  background: transparent;
  font: 14px var(--v2-font-ui);
}
.v2-compose-focus-bar > span { color: var(--v2-ink-soft); font: 14px var(--v2-font-display); letter-spacing: .18em; }

@media (forced-colors: none) {
  .v2-context-header { background: var(--color-paper); backdrop-filter: none; border-bottom-color: var(--color-rule); }
  .v2-context-title b { font-size: 18px; letter-spacing: .13em; }
  .v2-context-title small { margin-top: 2px; font: 14px var(--v2-font-ui); color: var(--color-muted); letter-spacing: .04em; }
  .v2-product-shell { background: var(--v2-paper); }
  .v2-page-heading { padding: 8px 4px 22px; }
  .v2-page-heading h1 { font-family: var(--v2-font-display); font-weight: 400; }
  .v2-page-heading > small { font: 14px var(--v2-font-ui); letter-spacing: .2em; }
  .v2-page-heading p { font: 14px/1.75 var(--v2-font-ui); max-width: 32em; }
  .v2-primary { border-radius: 10px 10px 5px 10px; box-shadow: 0 5px 14px var(--color-shadow-soft); }
  .v2-secondary { border-radius: 9px; box-shadow: none; }
  #v2CoreRoot :is(.v2-primary,.v2-secondary,.v2-core-nav button,.v2-profile-destinations button,.v2-profile-actions button) { transition: background-color var(--dur-short) var(--ease-out), box-shadow var(--dur-short) var(--ease-out); }
  #v2CoreRoot :is(.v2-primary,.v2-secondary,.v2-profile-destinations button,.v2-profile-actions button):active:not(:disabled) { box-shadow: inset 0 0 0 100px var(--color-ink-wash); }
  #v2CoreRoot button:focus-visible { outline: 2px solid var(--v2-cinnabar); outline-offset: 3px; }
  #v2CoreRoot textarea:focus-visible { outline: none; }
  .v2-letter-paper:focus-within { border-color: var(--color-gold); box-shadow: 0 8px 24px var(--color-shadow-soft); }
  .v2-core-nav { background: var(--color-paper); box-shadow: 0 -4px 18px var(--color-shadow-soft); }
  .v2-core-nav button { gap: 4px; border-radius: 10px; }
  .v2-core-nav button span { font-size: 17px; }
  .v2-core-nav button b { font-size: 14px; font-weight: 500; letter-spacing: .06em; }
  .v2-core-nav button.is-active:not([data-v2-view="compose"]) { background: var(--color-ink-wash); }
  .v2-core-nav button.is-active:not([data-v2-view="compose"]) span { color: var(--v2-pine-deep); background: transparent; }
  .v2-core-nav button.is-active b { font-weight: 700; }
  .v2-core-nav button[data-v2-view="compose"] span { width: 42px; height: 42px; margin-top: -14px; border-radius: 13px 13px 5px 13px; box-shadow: 0 4px 10px var(--color-shadow-soft); }
  .v2-core-nav button[data-v2-view="compose"] span { background: var(--color-ink); color: var(--color-accent-ink); }
  #v2CoreRoot :is(.v2-primary,.v2-secondary,.v2-font-toggle,.v2-core-nav button b) { white-space: nowrap; }
  .v2-page-heading h1, .v2-letter-card-copy h2 { min-width: 0; overflow-wrap: anywhere; }

  .v2-compose-heading { padding: 10px 2px 8px; }
  .v2-compose-heading h1 { font-size: clamp(20px, 5.5vw, 28px); line-height: 1.35; }
  .v2-compose-heading p { font-size: 14px; }
  .v2-recipient-name-field { grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 8px; font: 14px var(--v2-font-ui); }
  .v2-recipient-name-field input { min-width: 0; font-size: 16px; border-bottom-color: var(--color-rule); }
  .v2-recipient-name-field input::placeholder { color: var(--color-muted); font-size: 14px; }
  .v2-writing-toolbar { margin-top: 5px; }
  .v2-writing-toolbar__paper b { font: 14px var(--v2-font-ui); }
  .v2-writing-toolbar__paper small { font: 14px var(--v2-font-ui); }
  .v2-font-toggle { min-height: 44px; padding-inline: 12px; border-radius: 7px; font: 14px var(--v2-font-ui); box-shadow: none; }
  .v2-paper-picker { gap: 7px; margin-bottom: 10px; }
  .v2-paper-choice { border-radius: 6px !important; box-shadow: none; }
  .v2-paper-choice[aria-pressed="true"] { box-shadow: inset 0 -2px 0 var(--color-gold); }
  .v2-paper-choice b { font-size: 14px; }
  .v2-letter-paper { box-shadow: 0 7px 23px var(--color-shadow-soft); border-radius: 3px 10px 3px 8px; }
  .v2-letter-paper::before { opacity: .48; }
  .v2-letter-paper textarea { padding: 36px 24px 36px; line-height: 1.85; }
  .v2-letter-paper > small { font: 14px var(--v2-font-ui); }
  .v2-prompt-rail { top: 12px; }
  #v2CoreRoot .v2-prompt-toggle { height: 58px; width: 44px; color: var(--color-ink-2); border-radius: 5px 0 0 5px; background: var(--color-paper-2) !important; box-shadow: -3px 3px 9px var(--color-shadow-soft); font-size: 14px; }
  .v2-prompt-rail [data-v2-prompt] { font: 14px/1.5 var(--v2-font-ui); }
  .v2-writing-actions .v2-primary { font-size: 15px; letter-spacing: .1em; }
  .v2-writing-actions .v2-draft-note { max-width: calc(100% - 16px); border-radius: 5px; font: 14px/1.55 var(--v2-font-ui); box-shadow: none; }
  .v2-envelope-stage { min-height: 280px; padding-block: 14px; border: 0; background: var(--color-paper-wash); border-radius: 10px; }
  .v2-sealing-group header h2 { font-family: var(--v2-font-display); font-size: 22px; line-height: 1.45; }
  .v2-sealing-group header p, .v2-envelope-stage figcaption { font: 14px/1.7 var(--v2-font-ui); }

  .v2-mailbox-ledger { background: var(--v2-paper); }
  .v2-scroll-shelf { padding-left: 0; }
  .v2-scroll-shelf::before, .v2-scroll-card::before { display: none; }
  .v2-scroll-card { padding: 16px; border-radius: 3px 10px 3px 10px; background: var(--color-surface); border-color: var(--color-rule); box-shadow: 0 3px 12px var(--color-shadow-soft); }
  .v2-scroll-card[data-attention="reveal"] { border-color: var(--color-gold-rule); background: var(--color-surface); }
  .v2-letter-card-copy small { font: 14px var(--v2-font-ui); letter-spacing: .12em; }
  .v2-letter-card-copy h2 { font-family: var(--v2-font-display); font-size: 21px; margin-block: 5px; }
  .v2-letter-card-copy p { font: 14px/1.65 var(--v2-font-ui); }
  .v2-letter-courier { width: 64px; height: 70px; }
  .v2-letter-card > button { min-height: 44px !important; padding: 10px 14px; font: 14px var(--v2-font-ui); }
  .v2-scroll-card[data-role="sender"] > button { color: var(--v2-pine); background: var(--color-paper-2); box-shadow: none; }
  .v2-mailbox-status { font: 14px/1.65 var(--v2-font-ui); }
  .v2-mailbox-status:empty { display: none; }
  .v2-mailbox-empty { border-style: solid; border-radius: 8px; padding: 30px 18px; }

  .v2-profile-page > .v2-page-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; padding-block: 0 16px; }
  .v2-profile-page > .v2-page-heading > small, .v2-profile-page > .v2-page-heading::after { display: none; }
  .v2-profile-page > .v2-page-heading h1 { margin: 0; font-size: 25px; }
  .v2-profile-page > .v2-page-heading p { font-size: 14px; }
  .v2-profile-nameplate { padding: 22px 18px; border-radius: 4px 14px 4px 14px; background: var(--color-paper-2); box-shadow: 0 5px 18px var(--color-shadow-soft); }
  .v2-profile-nameplate__seal { border-radius: 12px 12px 4px 12px; background: var(--color-accent); box-shadow: inset 0 0 0 4px var(--color-paper-wash-on-ink); }
  .v2-profile-nameplate small { font: 14px var(--v2-font-ui); letter-spacing: .16em; }
  .v2-profile-nameplate p { font: 14px/1.7 var(--v2-font-ui); }
  .v2-profile-destinations { border-radius: 10px; background: var(--color-surface); }
  .v2-profile-destinations button { min-height: 82px; }
  .v2-profile-destinations button b { font-family: var(--v2-font-ui); font-size: 14px; }
  .v2-profile-destinations button small { font: 14px var(--v2-font-ui); }
  .v2-profile-actions button { background: var(--color-surface); }
  .v2-profile-actions button > b { font: 14px var(--v2-font-ui); }
  .v2-profile-actions button > small { font-size: 14px; line-height: 1.65; }
  .v2-core-toast { max-width: min(calc(100% - 36px), 420px); border-radius: 10px; font: 14px/1.6 var(--v2-font-ui); overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  #v2CoreRoot :is(.v2-primary,.v2-secondary,.v2-core-nav button,.v2-profile-destinations button,.v2-profile-actions button) { transition: none; }
}

/* Hallmark · genre: editorial · macrostructure: inhabited courtyard / writing desk / ledger
 * design-system: design.md · designed-as-app · whole-frontstage redesign, September 2026.
 * Shared objects, not a collection of differently themed pages. */
html, body { overflow-x: clip; }
#v2CoreRoot { background: var(--color-paper); }
#v2CoreRoot .v2-product-shell { background: var(--color-paper); box-shadow: none; }
#v2CoreRoot .v2-context-header {
  min-height: calc(var(--v2-safe-top) + 60px);
  padding: calc(var(--v2-safe-top) + 12px) 24px 12px;
  border: 0;
  background: var(--color-paper);
}
#v2CoreRoot .v2-context-title { justify-items: start; text-align: left; }
#v2CoreRoot .v2-context-title b { font-size: 22px; letter-spacing: .08em; font-weight: 400; }
#v2CoreRoot .v2-context-title small { display: none; }
#v2CoreRoot[data-v2-view="station"] .v2-context-header {
  padding-top: calc(var(--v2-safe-top) + 24px);
  background: transparent;
  pointer-events: none;
}
#v2CoreRoot[data-v2-view="station"] .v2-context-title b { color: var(--color-accent-ink); font-size: 32px; text-shadow: 0 2px 12px var(--color-scene-veil); }
#v2CoreRoot[data-v2-view="station"] .v2-context-title small { display: block; color: var(--color-accent-ink); margin-top: 8px; font-size: 14px; text-shadow: 0 2px 8px var(--color-scene-veil); }
#v2CoreRoot [data-v2-page="station"].v2-station-stage { padding: 0 0 calc(70px + var(--v2-safe-bottom)); background: var(--color-ink); }
#v2CoreRoot .v2-station-stage .v2-station-live { height: 100%; min-height: 0; }
#v2CoreRoot .v2-station-auth-entry { top: auto; bottom: calc(100px + var(--v2-safe-bottom)); left: 24px; border-radius: var(--radius-input); background: var(--color-surface); }
#v2CoreRoot .v2-station-auth-entry b, #v2CoreRoot .v2-station-auth-entry small { font-size: 14px; }

/* Persistent navigation has the same optical weight on every destination. */
#v2CoreRoot .v2-core-nav {
  height: calc(70px + var(--v2-safe-bottom));
  min-height: calc(70px + var(--v2-safe-bottom));
  padding: 4px 12px var(--v2-safe-bottom);
  gap: 4px;
  border-top: 1px solid var(--color-rule);
  background: var(--color-paper);
  box-shadow: none;
  backdrop-filter: none;
}
#v2CoreRoot .v2-core-nav button { position: relative; grid-template-rows: 28px 20px; align-content: center; gap: 2px; padding: 4px; border-radius: 0; color: var(--color-muted); background: transparent; }
#v2CoreRoot .v2-core-nav button .v2-nav-symbol { width: 28px; height: 28px; margin: 0; border-radius: 0; color: inherit; background: transparent; box-shadow: none; }
.v2-nav-symbol svg { display: block; width: 24px; height: 24px; }
#v2CoreRoot .v2-core-nav button b { font: 14px/20px var(--font-ui); letter-spacing: .04em; }
#v2CoreRoot .v2-core-nav button.is-active { color: var(--color-accent); background: transparent; }
#v2CoreRoot .v2-core-nav button.is-active b { font-weight: 600; }
#v2CoreRoot .v2-core-nav button.is-active::after { content: ""; position: absolute; width: 16px; height: 2px; background: var(--color-accent); top: 0; left: calc(50% - 8px); }
#v2CoreRoot .v2-core-nav button:hover { color: var(--color-ink); }
#v2CoreRoot .v2-core-nav button:active { background: var(--color-ink-wash); }

/* Writing desk: tools are quiet, paper is the visual centre. */
#v2CoreRoot .v2-compose-page { padding-inline: 20px; background: var(--color-paper); }
#v2CoreRoot .v2-compose-heading { padding: 4px 0 12px; }
#v2CoreRoot .v2-compose-heading h1 { font-size: 24px; line-height: 1.4; letter-spacing: .02em; }
#v2CoreRoot .v2-compose-heading p { margin: 4px 0 0; font-size: 14px; color: var(--color-muted); }
#v2CoreRoot .v2-recipient-name-field { grid-template-columns: 44px minmax(0,1fr); gap: 12px; }
#v2CoreRoot .v2-recipient-name-field input { border-bottom-color: var(--color-rule); font-family: var(--font-display); font-size: 18px; padding: 8px 0; }
#v2CoreRoot .v2-recipient-name-field input::placeholder { font-size: 16px; }
#v2CoreRoot .v2-writing-toolbar { margin-top: 8px; gap: 12px; }
#v2CoreRoot .v2-writing-toolbar__paper { gap: 8px; }
#v2CoreRoot .v2-writing-toolbar__paper b { font-weight: 500; }
#v2CoreRoot .v2-writing-toolbar__paper small { display: none; }
#v2CoreRoot .v2-font-toggle { border: 0; padding: 8px 0 8px 12px; background: transparent; border-radius: 0; font-size: 14px; }
#v2CoreRoot .v2-font-toggle b { color: var(--color-accent); font-family: var(--font-display); font-size: 18px; font-weight: 400; }
#v2CoreRoot .v2-paper-picker { gap: 8px; margin-bottom: 12px; }
#v2CoreRoot .v2-paper-choice { min-height: 44px; padding: 8px !important; grid-template-columns: 16px minmax(0,1fr); gap: 8px; border: 1px solid var(--color-rule) !important; border-radius: 4px !important; background: transparent; }
#v2CoreRoot .v2-paper-choice__preview { width: 16px; height: 22px; border-radius: 1px; box-shadow: none; }
#v2CoreRoot .v2-paper-choice b { font: 14px var(--font-ui); }
#v2CoreRoot .v2-paper-choice[aria-pressed="true"] { border-color: var(--color-gold) !important; box-shadow: none; background: var(--color-surface); }
#v2CoreRoot .v2-letter-paper {
  border: 1px solid var(--color-gold-rule); border-radius: 2px;
  background-color: var(--color-letter-bamboo);
  background-image: repeating-linear-gradient(92deg, transparent 0 6px, var(--color-paper-fiber) 7px, transparent 8px 13px);
  box-shadow: 0 8px 24px var(--color-shadow-soft);
}
#v2CoreRoot .v2-letter-paper[data-v2-paper-key="paper_peach"] { background-color: var(--color-letter-peach); }
#v2CoreRoot .v2-letter-paper[data-v2-paper-key="paper_cloud"] { background-color: var(--color-letter-water); }
#v2CoreRoot .v2-letter-paper::before { opacity: .16; border-radius: 0; }
#v2CoreRoot .v2-letter-paper::after { opacity: .08; }
#v2CoreRoot .v2-letter-paper textarea { color: var(--color-ink); padding: 36px 24px; font-size: 20px; line-height: 1.6; }
#v2CoreRoot .v2-letter-paper > small { right: 16px; bottom: 12px; font: 12px var(--font-ui); color: var(--color-muted); }
#v2CoreRoot .v2-prompt-toggle { min-width: 44px; width: 44px; height: 64px; padding: 8px 12px; border: 1px solid var(--color-gold-rule); border-right: 0; border-radius: 2px 0 0 2px; background: var(--color-paper-2) !important; color: var(--color-ink-2); box-shadow: none; }
#v2CoreRoot .v2-prompt-rail { right: -1px; top: 16px; }
#v2CoreRoot .v2-writing-actions { width: min(calc(100% - 40px),680px); }
#v2CoreRoot .v2-writing-actions .v2-primary { border-radius: 4px; font: 16px/1.5 var(--font-ui); letter-spacing: .08em; box-shadow: none; }
#v2CoreRoot .v2-compose-focus-bar { width: min(calc(100% - 40px),680px); }
#v2CoreRoot .v2-compose-focus-bar button { min-height: 44px; padding-left: 0; }
#v2CoreRoot .v2-compose-focus-bar > span { font-size: 14px; }
#v2CoreRoot .v2-font-menu { padding: 8px; border: 1px solid var(--color-rule); border-radius: 8px; background: var(--color-surface); box-shadow: var(--shadow-raised); }
#v2CoreRoot .v2-font-menu button { min-height: 64px; border-radius: 4px; }

/* Letters read like correspondence; settings read like settings. */
#v2CoreRoot .v2-mailbox-ledger, #v2CoreRoot .v2-profile-page { padding-inline: 24px; background: var(--color-paper); }
#v2CoreRoot .v2-ledger-heading { padding: 0 0 24px; border-bottom: 1px solid var(--color-rule); margin-bottom: 8px; }
#v2CoreRoot .v2-ledger-heading > small { display: none; }
#v2CoreRoot .v2-ledger-heading h1 { font-size: 34px; margin: 0 0 8px; }
#v2CoreRoot .v2-ledger-heading p { font-size: 14px; margin: 0; }
#v2CoreRoot .v2-scroll-card { border: 0; border-bottom: 1px solid var(--color-rule); border-radius: 0; padding: 24px 0; background: transparent; box-shadow: none; }
#v2CoreRoot .v2-letter-card-copy h2 { font-size: 26px; font-weight: 400; }
#v2CoreRoot .v2-letter-card-copy small { font-size: 12px; color: var(--color-muted); }
#v2CoreRoot .v2-letter-card-copy p { font-size: 14px; }
#v2CoreRoot .v2-letter-card > button { border-radius: 4px; }
#v2CoreRoot .v2-profile-page > .v2-page-heading { padding-bottom: 24px; }
#v2CoreRoot .v2-profile-page > .v2-page-heading h1 { font-size: 34px; }
#v2CoreRoot .v2-profile-page > .v2-page-heading p { display: none; }
#v2CoreRoot .v2-profile-nameplate { padding: 24px 20px; border: 1px solid var(--color-gold-rule); border-radius: 2px; background: var(--color-ink); color: var(--color-accent-ink); box-shadow: none; }
#v2CoreRoot .v2-profile-nameplate__seal { width: 48px; height: 56px; background: transparent; color: var(--color-gold-on-ink); border: 1px solid var(--color-gold-rule-on-ink); border-radius: 3px; box-shadow: none; }
#v2CoreRoot .v2-profile-nameplate small, #v2CoreRoot .v2-profile-nameplate p { color: var(--color-muted-on-ink); font-size: 14px; }
#v2CoreRoot .v2-profile-nameplate h2 { color: var(--color-accent-ink); font: 28px/1.4 var(--font-display); }
#v2CoreRoot .v2-profile-destinations { gap: 0; border-radius: 0; background: transparent; border-bottom: 1px solid var(--color-rule); padding-block: 16px; }
#v2CoreRoot .v2-profile-destinations button { border: 0; background: transparent; border-radius: 0; padding: 12px 4px; }
#v2CoreRoot .v2-profile-destinations button span { border: 0; background: transparent; color: var(--color-gold); font-size: 22px; }
#v2CoreRoot .v2-profile-destinations button small { font-size: 14px; color: var(--color-muted); }
#v2CoreRoot .v2-profile-actions { gap: 0; }
#v2CoreRoot .v2-profile-actions button, #v2CoreRoot .v2-profile-danger button { padding: 20px 0; border: 0; border-bottom: 1px solid var(--color-rule); background: transparent; border-radius: 0; box-shadow: none; }
#v2CoreRoot .v2-profile-actions button > span { background: transparent; color: var(--color-gold); }
#v2CoreRoot .v2-profile-actions button > b { font-size: 16px; }
#v2CoreRoot .v2-profile-actions button > small { font-size: 14px; }
#v2CoreRoot .v2-profile-disclosure { border: 0; border-bottom: 1px solid var(--color-rule); border-radius: 0; background: transparent; }
#v2CoreRoot .v2-profile-disclosure summary { padding: 20px 0; }
#v2CoreRoot .v2-profile-legal { font-size: 14px; }
#v2CoreRoot .v2-letter-sheet {
  --reader-paper: var(--color-letter-bamboo);
  border-radius: 2px; padding-inline: 24px;
  background-color: var(--reader-paper);
  background-image: repeating-linear-gradient(92deg, transparent 0 6px, var(--color-paper-fiber) 7px, transparent 8px 13px);
}
#v2CoreRoot .v2-letter-sheet[data-v2-paper-key="paper_peach"] { --reader-paper: var(--color-letter-peach); }
#v2CoreRoot .v2-letter-sheet[data-v2-paper-key="paper_cloud"] { --reader-paper: var(--color-letter-water); }
#v2CoreRoot .v2-letter-sheet .v2-reader-body {
  min-height: 160px; padding: 24px 0 32px; border: 0; border-radius: 0;
  background: none; box-shadow: none; color: var(--color-ink);
}
#v2CoreRoot .v2-reader-body p { line-height: 1.8; margin-bottom: 24px; }
#v2CoreRoot :is(.v2-reader-postscript,.v2-reader-keepsake) {
  padding: 20px 0; border: 0; border-top: 1px solid var(--color-rule);
  border-radius: 0; background: none;
}
#v2CoreRoot .v2-reader-keepsake small { font: 14px/1.7 var(--font-ui); }
#v2CoreRoot .v2-letter-sheet > header h1 { font-size: 32px; }
#v2CoreRoot .v2-letter-sheet > header { padding-block: 20px; }
#v2CoreRoot .v2-reader-body { line-height: 1.9; }
#v2CoreRoot .v2-envelope-stage { border-radius: 2px; background: var(--color-paper-2); padding: 24px 0; }
#v2CoreRoot .v2-sealing-group { padding-block: 24px; border-bottom: 1px solid var(--color-rule); }
#v2CoreRoot .v2-sealing-group header small { font-size: 14px; color: var(--color-muted); }
#v2CoreRoot .v2-sealing-group header h2 { font-size: 26px; margin-block: 8px; }
#v2CoreRoot .v2-route-privacy { border: 0; padding: 0; }
#v2CoreRoot .v2-route-option { border: 1px solid var(--color-rule); border-radius: 4px; padding: 16px; margin-bottom: 12px; }
#v2CoreRoot .v2-route-option.is-selected { border-color: var(--color-gold); background: var(--color-surface); }
#v2CoreRoot .v2-route-option b { font-size: 16px; }
#v2CoreRoot .v2-route-option small { font-size: 14px; line-height: 1.7; }
#v2CoreRoot :is(.v2-primary,.v2-secondary) { min-height: 44px; border-radius: 4px; }
#v2CoreRoot .v2-primary { background: var(--color-accent); color: var(--color-accent-ink); box-shadow: none; }
#v2CoreRoot .v2-primary:hover:not(:disabled) { background: var(--color-accent-hover); }
#v2CoreRoot button:disabled { cursor: not-allowed; }
#v2CoreRoot button:focus-visible, #v2CoreRoot input:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
@media (forced-colors: none) {
  #v2CoreRoot :is(.station-v2-hotspot,.station-v2-build-overview,.station-v2-initial-choice-dismiss,.shanhe-v2-camera-controls button):focus-visible { outline-color: var(--color-focus-inverse); }
}
@media (max-width: 360px) {
  #v2CoreRoot .v2-context-header { padding-inline: 16px; }
  #v2CoreRoot .v2-compose-page, #v2CoreRoot .v2-mailbox-ledger, #v2CoreRoot .v2-profile-page { padding-inline: 16px; }
  #v2CoreRoot .v2-paper-choice { gap: 4px; }
  #v2CoreRoot .v2-letter-paper textarea { padding-inline: 20px; }
  #v2CoreRoot .v2-writing-actions { width: calc(100% - 32px); }
}
@media (max-width: 360px) and (max-height: 600px) {
  #v2CoreRoot:not([data-v2-compose-body-focus="true"]) .v2-writing-actions { bottom: calc(70px + var(--v2-safe-bottom) + 10px + var(--v2-compose-ime-occlusion)); }
}
@media (prefers-reduced-motion: reduce) {
  #v2CoreRoot .v2-core-page { transition: none; }
}
