/*
 * 小八日历 · 精致简约
 * 大留白、柔和阴影、克制的字重；特色来自日历本身：
 * 天空色（Logo）、若隐若现的日历网格、App 的日程色、页脚的时钟树线稿。
 */
:root {
  color-scheme: light dark;
  interpolate-size: allow-keywords;
  --paper: #fbfcfd;
  --card: #ffffff;
  --ink: #3b4450;
  --strong: #18212b;
  --muted: #687380;
  --line: #e7ebf0;
  --soft: #f2f5f8;
  --faint: #d7dde4;
  --sky: #c6e8fb;
  --sky-2: #e8f5fd;
  --accent: #1a73d9;
  --accent-ink: #ffffff;
  --ev-red: #d9483b;
  --ev-orange: #e58a1f;
  --ev-green: #3f8a5a;
  --ev-blue: #2f80d0;
  --ev-purple: #7a5cc4;
  --ring: 0 0 0 1px rgba(24, 33, 43, .06);
  --shadow: 0 1px 2px rgba(24, 33, 43, .05), 0 8px 20px -8px rgba(24, 33, 43, .1), 0 32px 64px -24px rgba(24, 33, 43, .22);
  --shadow-sm: 0 1px 2px rgba(24, 33, 43, .05), 0 10px 24px -12px rgba(24, 33, 43, .18);
  --out: cubic-bezier(.16, 1, .3, 1);
  --spring: cubic-bezier(.34, 1.56, .64, 1);
  --w: clamp(1060px, 62vw, 1320px);
  --side: clamp(190px, 15.3vw, 260px);
  --cell: clamp(92px, 7vw, 116px);
  --font: ui-rounded, "SF Pro Rounded", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans", "Microsoft YaHei", "Yu Gothic UI", "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper: #11161c;
    --card: #1a2028;
    --ink: #cdd5dd;
    --strong: #f1f5f9;
    --muted: #94a0ac;
    --line: #29313b;
    --soft: #181e25;
    --faint: #343e49;
    --sky: #12324a;
    --sky-2: #13212e;
    --accent: #62b3f5;
    --accent-ink: #07121c;
    --ring: 0 0 0 1px rgba(255, 255, 255, .07);
    --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 32px 64px -24px rgba(0, 0, 0, .75);
    --shadow-sm: 0 10px 24px -12px rgba(0, 0, 0, .7);
  }
}
/* 每个功能用 App 的一种日程色，浅底和网格都由它推导，深色模式自动适配 */
.c-blue { --accent: var(--ev-blue); }
.c-purple { --accent: var(--ev-purple); }
.c-green { --accent: var(--ev-green); }
.c-yellow { --accent: var(--ev-orange); }
.stage, .card { --tint: color-mix(in srgb, var(--accent) 8%, var(--paper)); --grid: color-mix(in srgb, var(--accent) 10%, transparent); }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: clip; }
:lang(ja) body, body:lang(ja) { font-family: ui-rounded, "Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic UI", Meiryo, -apple-system, BlinkMacSystemFont, sans-serif; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
h1, h2 { word-break: auto-phrase; text-wrap: balance; font-weight: 700; color: var(--strong); }
:lang(zh) h1, :lang(zh) h2, .lede:lang(zh) { word-break: keep-all; overflow-wrap: anywhere; }
h2 { font-size: clamp(30px, 1.1rem + 1.9vw, 52px); line-height: 1.16; letter-spacing: -.025em; }
/* 分区标题：主题色小标签 + 大标题 */
.kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 5px 13px 5px 11px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 11%, transparent); color: var(--accent); font-size: 13.5px; font-weight: 650; line-height: 1.4; letter-spacing: .02em; white-space: nowrap; }
.kicker::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 22%, transparent); }
.kicker + h2 { margin-top: 0; }
.sec-head { text-align: center; }
.intro .kicker, .sec-head .kicker { margin-inline: auto; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
.wrap { width: min(var(--w), 100% - 32px); margin-inline: auto; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ico { width: 1.15em; height: 1.15em; fill: currentColor; flex: none; }
main { overflow-x: clip; isolation: isolate; }

/* 滚动出现：只有 JS 运行时才隐藏，脚本失败时内容仍然可见 */
.js .reveal { opacity: 0; transform: translateY(24px); }
.js .reveal.in { opacity: 1; transform: none; transition: opacity .8s var(--out) var(--d, 0s), transform .9s var(--out) var(--d, 0s); }
.js [data-live]:not(.live) *, .js [data-live]:not(.live) *::before, .js [data-live]:not(.live) *::after { animation-play-state: paused !important; }

/* Nav：首屏用浅半透明底色和细底边，滚动后加强磨砂 */
.nav { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--paper) 40%, transparent); backdrop-filter: saturate(140%) blur(8px); -webkit-backdrop-filter: saturate(140%) blur(8px); box-shadow: 0 1px 0 color-mix(in srgb, var(--strong) 8%, transparent); transition: background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease, -webkit-backdrop-filter .3s ease; }
.nav.scrolled { background: color-mix(in srgb, var(--paper) 84%, transparent); backdrop-filter: saturate(160%) blur(20px); -webkit-backdrop-filter: saturate(160%) blur(20px); box-shadow: 0 1px 0 var(--line); }
.nav-in { display: flex; align-items: center; gap: 14px; height: 64px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; color: var(--strong); text-decoration: none; white-space: nowrap; }
.brand img { border-radius: 8px; transition: transform .4s var(--spring); }
.brand:hover img { transform: rotate(-8deg) scale(1.08); }
.nav-links { display: flex; gap: 8px; margin: 0 14px 0 auto; font-size: 16px; font-weight: 500; }
.nav-links > a, .contact summary { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 12px; border-radius: 10px; text-decoration: none; white-space: nowrap; color: color-mix(in srgb, var(--strong) 84%, transparent); transition: color .2s ease, background .2s ease; }
.nav-links > a:hover, .nav-links > a:focus-visible, .contact summary:hover, .contact[open] summary { color: var(--strong); background: color-mix(in srgb, var(--strong) 6%, transparent); }
/* 联系我们：与语言菜单同款的下拉卡片 */
.contact { position: relative; }
.contact summary { gap: 6px; cursor: pointer; list-style: none; }
.contact summary::-webkit-details-marker { display: none; }
.contact summary::after { content: ""; width: 6px; height: 6px; margin: -3px 0 0 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .6; transform: rotate(45deg); transition: transform .25s var(--out); }
.contact[open] summary::after { margin-top: 3px; transform: rotate(-135deg); }
.contact ul { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; display: grid; gap: 2px; width: 280px; padding: 8px; background: var(--card); border-radius: 18px; box-shadow: var(--ring), var(--shadow); animation: menu-in .18s var(--out); }
.contact ul a, .contact ul button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border: 0; border-radius: 12px; background: none; color: var(--strong); font: inherit; text-align: left; text-decoration: none; cursor: pointer; transition: background .15s ease; }
.contact ul a:hover, .contact ul a:focus-visible, .contact ul button:hover, .contact ul button:focus-visible { background: var(--soft); }
.contact i { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--sky-2); color: #1a73d9; }
.contact .is-x i { background: color-mix(in srgb, var(--strong) 8%, var(--card)); color: var(--strong); }
.contact .ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.contact .ico-fill { width: 17px; height: 17px; fill: currentColor; stroke: none; }
.contact span { min-width: 0; display: grid; line-height: 1.35; }
.contact b { font-size: 15px; font-weight: 600; }
.contact small { font-size: 12.5px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; }
@media (prefers-color-scheme: dark) { .contact i { color: var(--accent); } }
.lang { position: relative; font-size: 15px; }
.lang summary { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 12px; border-radius: 999px; color: var(--strong); cursor: pointer; list-style: none; white-space: nowrap; transition: background .2s ease; }
.lang summary::-webkit-details-marker { display: none; }
.lang .ico { fill: none; opacity: .8; }
.lang summary::after { content: ""; width: 6px; height: 6px; margin: -3px 2px 0 2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; opacity: .6; transform: rotate(45deg); transition: transform .25s var(--out); }
.lang[open] summary::after { margin-top: 3px; transform: rotate(-135deg); }
.lang summary:hover, .lang[open] summary { background: color-mix(in srgb, var(--strong) 7%, transparent); }
.lang ul { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; display: grid; gap: 2px; width: 220px; padding: 8px; background: var(--card); border-radius: 18px; box-shadow: var(--ring), var(--shadow); animation: menu-in .18s var(--out); }
@keyframes menu-in { from { opacity: 0; transform: translateY(-6px) scale(.98); } }
.lang a { display: flex; align-items: center; justify-content: space-between; min-height: 50px; padding: 0 16px; border-radius: 12px; font-size: 17px; color: var(--strong); text-decoration: none; transition: background .15s ease; }
.lang a:hover, .lang a:focus-visible { background: var(--soft); }
.lang a[aria-current] { font-weight: 600; color: #1a73d9; }
.lang a[aria-current]::after { content: ""; width: 14px; height: 7px; margin-top: -4px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
@media (prefers-color-scheme: dark) { .lang a[aria-current] { color: var(--accent); } }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 22px; border-radius: 14px; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; border: 0; transition: transform .25s var(--spring), box-shadow .25s ease, background .2s ease, opacity .2s ease; }
.btn:active { transform: scale(.97); }
.btn-main { background: var(--strong); color: var(--paper); font-size: 17px; min-height: 56px; padding: 0 30px; border-radius: 999px; box-shadow: 0 10px 24px -10px rgba(24, 33, 43, .5); }
.btn-store { background: var(--strong); color: var(--paper); min-width: 140px; }
@media (hover: hover) {
  .btn-main:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(24, 33, 43, .55); }
  .btn-store:not(.is-soon):hover { transform: translateY(-2px); }
}
.btn-store span { display: inline-flex; flex-direction: column; line-height: 1.2; text-align: left; }
.btn-store small { font-size: 11px; font-weight: 500; opacity: .75; }
.btn-store small:empty { display: none; }
.is-soon { cursor: default; }
.is-soon:hover, .is-soon:active { transform: none; }
.btn-store.is-soon { background: color-mix(in srgb, var(--strong) 5%, transparent); color: var(--muted); }

/* Hero：很淡的天空，叠一层向下消散的日历网格 */
.hero { position: relative; margin-top: -64px; padding-top: 64px; background: linear-gradient(180deg, var(--sky) 0, var(--sky-2) 42%, var(--paper) 88%); }
.hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .55) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .55) 1px, transparent 1px); background-size: 72px 72px; background-position: center -1px; -webkit-mask-image: linear-gradient(180deg, #000 0, transparent 62%); mask-image: linear-gradient(180deg, #000 0, transparent 62%); pointer-events: none; }
@media (prefers-color-scheme: dark) { .hero::before { background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); } }
.hero-copy { position: relative; padding-top: clamp(48px, 9vh, 104px); text-align: center; }
h1 { font-size: clamp(36px, 1.3rem + 2.6vw, 72px); line-height: 1.14; letter-spacing: -.028em; }
h1 span { display: block; }
.lede { max-width: 34em; margin: 22px auto 0; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; color: var(--muted); word-break: auto-phrase; text-wrap: balance; }
.hero-cta { margin-top: 32px; }
.plats { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; margin-top: 14px; }
.plats a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; font-size: 14.5px; text-decoration: none; color: var(--strong); }
.plats a:not(.is-soon) { font-weight: 600; }
.plats a:not(.is-soon):hover { color: var(--accent); }
.plats small { font-size: 12px; color: var(--muted); }
.plats .is-soon { color: var(--muted); }

/* 首屏入场：文字只做位移不做透明，抓取和截图的任何时刻都读得到 */
@keyframes rise { from { transform: translateY(14px); } }
@keyframes demo-in { from { opacity: 0; transform: translateY(40px); } }
h1 span, .lede, .hero-cta, .plats { animation: rise .9s var(--out) both; }
h1 span:nth-child(2) { animation-delay: .07s; }
.lede { animation-delay: .16s; }
.hero-cta { animation-delay: .24s; }
.plats { animation-delay: .3s; }
.demo { animation: demo-in 1.1s var(--out) .4s both; }

/* Demo */
.demo-wrap { position: relative; padding: clamp(12px, 2vw, 28px) 0 64px; }
.demo { position: relative; padding-right: 40px; }
.win { position: relative; z-index: 1; background: var(--card); border-radius: 20px; box-shadow: var(--ring), var(--shadow); overflow: hidden; }
.win-bar { display: flex; align-items: center; gap: 7px; height: 48px; padding: 0 18px; border-bottom: 1px solid var(--line); }
.win-bar i { width: 11px; height: 11px; border-radius: 50%; background: #ff5f57; }
.win-bar i:nth-child(2) { background: #febc2e; }
.win-bar i:nth-child(3) { background: #28c840; }
.win-bar strong { margin-left: 14px; font-size: 15px; font-weight: 600; color: var(--strong); }
.hint { margin-left: auto; font-size: 13px; color: var(--muted); }
.win-body { display: grid; grid-template-columns: minmax(0, 1fr) var(--side); }
.win-side { padding: 18px 20px; background: var(--soft); border-left: 1px solid var(--line); }
.win-side b { display: block; font-size: 52px; line-height: 1; font-weight: 700; letter-spacing: -.03em; color: var(--strong); }
.win-side span { font-size: 14px; color: var(--muted); }
.dow, .grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.dow span { padding: 7px 10px; font-size: 12px; color: var(--muted); }
.cell { height: var(--cell); padding: 5px 6px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); overflow: hidden; transition: background .18s ease, box-shadow .18s ease; }
.cell:nth-child(7n+1) { border-left: 0; }
.cell.over { background: color-mix(in srgb, var(--accent) 12%, transparent); box-shadow: inset 0 0 0 2px var(--accent); }
.cell .num { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 4px; font-size: 13px; color: var(--muted); transition: transform .25s var(--spring); }
.cell.over .num { transform: scale(1.18); }
.cell.today .num { background: var(--accent); color: var(--accent-ink); border-radius: 999px; font-weight: 700; }
.chip { display: block; width: 100%; margin-top: 3px; padding: 2px 7px 2px 9px; border: 0; border-radius: 5px; color: color-mix(in srgb, var(--c) 55%, var(--strong)); background: color-mix(in srgb, var(--c) 17%, var(--card)); box-shadow: inset 3px 0 0 var(--c); font: inherit; font-size: 12.5px; font-weight: 600; line-height: 1.5; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; transition: transform .2s var(--spring), box-shadow .2s ease, opacity .15s ease; }
.chip:hover { transform: translateY(-1px); box-shadow: inset 3px 0 0 var(--c), 0 5px 10px -4px rgba(24, 33, 43, .35); }
.chip.lifted { opacity: .28; }
@keyframes lift { from { transform: none; } }
.ghost { position: fixed; z-index: 50; margin: 0; pointer-events: none; cursor: grabbing; transform: rotate(-2deg) scale(1.05); box-shadow: inset 3px 0 0 var(--c), 0 14px 26px -8px rgba(24, 33, 43, .5); animation: lift .16s ease-out; transition: none; }
.ghost.in-demo { position: absolute; }
.packet { position: absolute; left: 0; top: 0; z-index: 40; width: 12px; height: 12px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent), 0 0 20px 4px color-mix(in srgb, var(--accent) 55%, transparent); pointer-events: none; }
.shock { position: absolute; left: 0; top: 0; z-index: 5; width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 50%; border: 1.5px solid var(--accent); pointer-events: none; }
.cursor-demo { position: absolute; z-index: 60; width: 26px; height: 26px; pointer-events: none; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .35)); transition: transform .14s var(--out); transform-origin: 20% 15%; }
.cursor-demo.press { transform: scale(.8); }

.phone { position: absolute; z-index: 2; right: 0; bottom: -36px; width: calc(var(--side) + 48px); height: 462px; padding: 34px 12px 12px; background: var(--card); border: 7px solid #1f262e; border-radius: 42px; box-shadow: var(--shadow); overflow: hidden; }
.phone-notch { position: absolute; top: 8px; left: 50%; width: 76px; height: 20px; margin-left: -38px; background: #1f262e; border-radius: 12px; }
.phone-h { padding: 0 6px 6px; font-size: 21px; font-weight: 700; color: var(--strong); }
.sync { display: flex; align-items: center; gap: 7px; padding: 4px 6px 8px; font-size: 12.5px; color: var(--muted); }
.sync b { width: 8px; height: 8px; border-radius: 50%; background: var(--ev-green); transition: background .2s ease; }
.sync.busy b { background: var(--ev-orange); animation: pulse .55s ease-in-out infinite alternate; }
@keyframes pulse { to { opacity: .3; transform: scale(.75); } }
.agenda li { position: relative; display: grid; grid-template-columns: 38px 4px 1fr; align-items: center; gap: 9px; padding: 12px 6px; border-radius: 10px; }
.agenda li.fresh { z-index: 1; animation: fresh 1.6s ease-out; }
@keyframes fresh { 0%, 40% { background: color-mix(in srgb, var(--accent) 20%, var(--card)); } 100% { background: transparent; } }
.agenda .d { text-align: center; line-height: 1.15; font-size: 18px; font-weight: 700; color: var(--strong); }
.agenda .d small { display: block; font-size: 10.5px; font-weight: 500; color: var(--muted); }
.agenda .bar { height: 32px; border-radius: 2px; background: var(--c); }
.agenda .t { min-width: 0; font-size: 14px; font-weight: 600; line-height: 1.3; }
.agenda .t small { display: block; font-size: 12px; font-weight: 400; color: var(--muted); }

/* Readable intake, three quick sorting beats, then a smooth exit and landing. */
.toon { --batch-cycle: 5.2s; --factory-card-scale: 1.55; --factory-column-step: 128px;
  --ol: #1f2a36;
  --m-body: #2f80d0; --m-roof: #5ea6ea; --roller: #556476;
  position: relative; z-index: 3; margin: 0 -40px -14px 0; pointer-events: none;
  clip-path: inset(0 0 -1000px); }
@media (prefers-color-scheme: dark) {
  .toon { --ol: #0c1218; --m-body: #2a6fb5; --m-roof: #3f86cc; --roller: #445262; }
}
.toon svg { display: block; width: 100%; max-width: 680px; height: auto; margin-inline: auto; overflow: visible; }
.toon * { transform-box: view-box; }

/* Keep the scene labels apart until the papers gather at the intake. */
.factory-input:nth-child(1) { --feed-x: -270px; }
.factory-input:nth-child(2) { --feed-x: -180px; }
.factory-input:nth-child(3) { --feed-x: -90px; }
.factory-input:nth-child(4) { --feed-x: 90px; }
.factory-input:nth-child(5) { --feed-x: 180px; }
.factory-input:nth-child(6) { --feed-x: 270px; }
.factory-input:nth-child(7) { --feed-x: 0px; }
.note { opacity: 1; transform: translate(var(--feed-x), calc(var(--start-y) * .6 + 78px)) rotate(var(--tilt));
  animation: factory-feed var(--batch-cycle) linear var(--input-delay) infinite; }
.note-wob { transform-origin: 0 0; transform: scale(calc(var(--size) * 1.12)); }
.factory-note-icon { color: #25374b; }
.factory-note-label { width: 100%; height: 18px; color: #25374b; font-size: 14px; font-weight: 650; line-height: 18px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@keyframes factory-feed {
  0% { transform: translate(var(--feed-x), calc(var(--start-y) * .6 + 78px)) rotate(var(--tilt)); opacity: 0; animation-timing-function: linear; }
  2% { opacity: 1; }
  24% { transform: translate(calc(var(--feed-x) * .96), calc(var(--start-y) * .6 + 90px)) rotate(calc(var(--tilt) * .75)); opacity: 1; animation-timing-function: cubic-bezier(.45, .03, .75, .6); }
  30% { transform: translate(calc(var(--feed-x) * .15), 206px) rotate(0deg); opacity: 1; }
  32%, 100% { transform: translate(calc(var(--feed-x) * .15), 210px) rotate(0deg); opacity: 0; }
}
.note-p { filter: drop-shadow(0 2px 2px #18212b1f); }
.note-fold { fill: #0000001a; }
.scrib { fill: none; stroke: #1f2a366b; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Once processing is complete, the whole row glides out without stops. */
.factory-output { transform: translateX(var(--output-x, calc(var(--column, var(--desktop-column)) * var(--factory-column-step)))); }
.chip-card { transform-box: fill-box; transform-origin: center bottom; transform: scale(var(--factory-card-scale)); }
.output-batch { transform: translateY(96px); opacity: 1; animation: factory-output var(--batch-cycle) linear infinite; }
@keyframes factory-output {
  0%, 45% { transform: translateY(0); animation-timing-function: cubic-bezier(.32, 0, .52, 1); }
  62%, 100% { transform: translateY(96px); }
}
.factory-flight { transform-origin: 0 0; animation: factory-land var(--batch-cycle) linear infinite; }
.js .toon:not(.live) .factory-flight, .factory-flight-invalid .factory-flight { visibility: hidden; }
@keyframes factory-land {
  0%, 62% { transform: translate(0, 0) scale(1); opacity: 1; animation-timing-function: ease-in; }
  74% { transform: translate(calc(var(--landing-x, 0px) * .35), calc(var(--landing-y, 0px) * .28)) scale(.92); opacity: 1; animation-timing-function: ease-out; }
  93% { transform: translate(var(--landing-x, 0px), var(--landing-y, 0px)) scale(var(--landing-scale, 1)); opacity: 1; }
  98%, 100% { transform: translate(var(--landing-x, 0px), var(--landing-y, 0px)) scale(var(--landing-scale, 1)); opacity: 0; }
}

.machine { transform-origin: 0 0; animation: factory-press var(--batch-cycle) linear infinite; }
/* Compact machine body; the output tray keeps full width for the event row. */
.machine-core { transform-origin: 0 0; transform: scale(.78); }
@keyframes factory-press {
  0%, 34% { transform: translateY(0) scale(1); }
  35.5% { transform: translateY(3px) scale(1.025, .96); }
  36.5%, 37% { transform: translateY(0) scale(1); }
  38.5% { transform: translateY(3px) scale(1.025, .96); }
  39.5%, 40% { transform: translateY(0) scale(1); }
  41.5% { transform: translateY(4px) scale(1.03, .95); }
  43%, 100% { transform: translateY(0) scale(1); }
}
.m-body { fill: var(--m-body); }
.m-roof { fill: var(--m-roof); }
.m-rivet { fill: #ffffff59; }
.m-mouth { fill: var(--ol); }
.m-dial { fill: #fff; stroke: var(--ol); stroke-width: 4; }
.m-ticks { stroke: var(--ol); stroke-width: 3; stroke-linecap: round; }
.m-hand { stroke: var(--ol); stroke-linecap: round; transform-origin: 0 0; }
.m-hand-h { stroke-width: 4; }
.m-hand-m { stroke-width: 3; animation: factory-tick var(--batch-cycle) linear infinite; }
@keyframes factory-tick {
  0%, 34% { transform: rotate(0); }
  35.5%, 37% { transform: rotate(120deg); }
  38.5%, 40% { transform: rotate(240deg); }
  41.5%, 100% { transform: rotate(360deg); }
}
.m-hub { fill: var(--ol); }
.m-bulb { fill: #bfe6c9; animation: factory-light var(--batch-cycle) linear infinite; }
.m-bulb-base { fill: var(--roller); }
@keyframes factory-light { 0%, 34%, 45%, 100% { opacity: .55; } 35.5%, 43% { opacity: 1; } }
.factory-vents { fill: none; stroke: #ffffff66; stroke-width: 3; stroke-linecap: round; }
.factory-tray-line { fill: none; stroke: #ffffff40; stroke-width: 2; stroke-linecap: round; }

/* 数据：细线分隔的三组数字 */
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 820px; padding: 56px 0 8px; text-align: center; }
.stats li { display: flex; flex-direction: column; gap: 4px; padding: 6px 16px; }
.stats li + li { border-left: 1px solid var(--line); }
.stats strong { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -.025em; color: var(--strong); white-space: nowrap; font-variant-numeric: tabular-nums; }
.stats li > span { font-size: 14px; color: var(--muted); }

/* 居中导语 + 天空色展台 */
.intro { position: relative; padding: clamp(80px, 10vw, 140px) 0 clamp(40px, 6vw, 72px); text-align: center; }
.intro p { max-width: 30em; margin: 16px auto 0; font-size: clamp(17px, 1.6vw, 21px); line-height: 1.55; color: var(--muted); text-wrap: pretty; }
.showcase { position: relative; max-width: 880px; margin: 48px auto 0; padding: clamp(36px, 5vw, 64px) 16px 0; border-radius: 32px; background: linear-gradient(180deg, var(--sky-2), var(--sky)); overflow: hidden; }
.showcase::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .6) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .6) 1px, transparent 1px); background-size: 56px 56px; background-position: center center; -webkit-mask-image: radial-gradient(ellipse 70% 80% at 50% 100%, #000, transparent); mask-image: radial-gradient(ellipse 70% 80% at 50% 100%, #000, transparent); }
@media (prefers-color-scheme: dark) { .showcase::before { opacity: .08; } }
.shot { position: relative; margin: 0 auto; width: min(clamp(300px, 26vw, 380px), 86%); aspect-ratio: 17 / 24; overflow: hidden; border-radius: 26px; background: var(--card); box-shadow: var(--ring), var(--shadow); }
.showcase .shot { aspect-ratio: 17 / 20; border-radius: 28px 28px 0 0; box-shadow: var(--ring), 0 -8px 40px -16px rgba(24, 33, 43, .25); }
.shot img { width: 118%; max-width: none; margin: -59% 0 0 -9%; }

/* Feature rows */
.feat { position: relative; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: center; gap: clamp(32px, 6vw, 88px); padding: clamp(64px, 8vw, 112px) 0; }
.feat.rev { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.feat.rev .feat-copy { order: 2; }
.feat-copy p { margin-top: 18px; font-size: clamp(17px, .9rem + .2vw, 19px); color: var(--muted); text-wrap: pretty; }
.ticks { margin-top: 24px; display: grid; gap: 12px; font-size: 16px; color: var(--ink); }
.ticks li { position: relative; padding-left: 30px; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 14%, var(--paper)); }
.ticks li::after { content: ""; position: absolute; left: 5px; top: calc(.32em + 6px); width: 8px; height: 4px; border-left: 1.8px solid var(--accent); border-bottom: 1.8px solid var(--accent); transform: rotate(-45deg); }
.steps { margin-top: 26px; display: grid; gap: 16px; counter-reset: s; }
.steps li { position: relative; padding-left: 46px; counter-increment: s; }
.steps li::before { content: counter(s); position: absolute; left: 0; top: 2px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--soft); color: var(--accent); font-weight: 700; font-size: 14px; animation: s1 7s linear infinite; }
.steps li:nth-child(2)::before { animation-name: s2; }
.steps li:nth-child(3)::before { animation-name: s3; }
@keyframes s1 { 0%, 12% { background: var(--accent); color: #fff; } 16%, 100% { background: var(--soft); color: var(--accent); } }
@keyframes s2 { 0%, 12% { background: var(--soft); color: var(--accent); } 16%, 47% { background: var(--accent); color: #fff; } 51%, 100% { background: var(--soft); color: var(--accent); } }
@keyframes s3 { 0%, 47% { background: var(--soft); color: var(--accent); } 51%, 84% { background: var(--accent); color: #fff; } 88%, 100% { background: var(--soft); color: var(--accent); } }
.steps b { display: block; font-size: 16.5px; font-weight: 600; color: var(--strong); }
.steps span { color: var(--muted); font-size: 14.5px; }

/* 舞台：浅日程色圆角面板，边缘透出淡淡的日历网格 */
.stage { position: relative; padding: clamp(18px, 3vw, 36px); border-radius: 28px; background: radial-gradient(ellipse 75% 70% at 50% 50%, var(--tint) 35%, transparent 100%), linear-gradient(var(--grid) 1px, transparent 1px) center / 32px 32px, linear-gradient(90deg, var(--grid) 1px, transparent 1px) center / 32px 32px, var(--tint); }
.stage .shot { width: min(clamp(280px, 24vw, 360px), 100%); }

/* 同步示意：时间在四台设备上依次更新 */
.devices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dev { padding: 20px 20px 22px; background: var(--card); box-shadow: var(--ring), var(--shadow-sm); border-radius: 18px; --delay: 0s; }
.dev:nth-child(2) { --delay: .22s; }
.dev:nth-child(4) { --delay: .44s; }
.dev:nth-child(3) { --delay: .66s; }
.dev-head { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--strong); }
.dev-head .ico { font-size: 18px; }
.dev p { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 9px 11px; border-radius: 10px; background: var(--soft); animation: wave 6s ease-in-out var(--delay) infinite; }
.dev p i { flex: none; width: 4px; height: 34px; border-radius: 2px; background: var(--ev-red); }
.dev p b { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; }
.swap { display: block; height: 1.5em; overflow: hidden; font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.swap-in { display: block; animation: swap 6s var(--out) var(--delay) infinite; }
.swap-in span { display: block; height: 1.5em; }
@keyframes swap { 0%, 34% { transform: none; } 42%, 84% { transform: translateY(-1.5em); } 92%, 100% { transform: none; } }
@keyframes wave { 0%, 30%, 52%, 78%, 100% { background: var(--soft); } 40%, 90% { background: color-mix(in srgb, var(--accent) 22%, var(--soft)); } }
.hub { position: absolute; left: 50%; top: 50%; z-index: 1; width: 60px; height: 60px; margin: -30px 0 0 -30px; padding: 5px; border-radius: 50%; background: var(--card); box-shadow: var(--ring), 0 8px 22px -8px rgba(24, 33, 43, .45); }
.hub img { border-radius: 50%; }
.hub::before, .hub::after { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 50%; border: 2px solid var(--accent); opacity: 0; animation: ring 6s ease-out infinite; }
.hub::after { animation-delay: .25s; }
@keyframes ring { 0%, 31% { opacity: 0; transform: scale(1); } 34% { opacity: .6; transform: scale(1); } 52% { opacity: 0; transform: scale(2.3); } 53%, 81% { opacity: 0; transform: scale(1); } 84% { opacity: .6; transform: scale(1); } 100% { opacity: 0; transform: scale(2.3); } }

/* 周视图循环：拿起、拖动、放下 */
.week { position: relative; height: 360px; background: var(--card); box-shadow: var(--ring), var(--shadow-sm); border-radius: 18px; overflow: hidden; }
.week-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(7, 1fr); background-image: repeating-linear-gradient(180deg, var(--line) 0 1px, transparent 1px 56px); }
.week-grid span + span { border-left: 1px solid var(--line); }
.week-ev, .week-fixed, .week-slot { position: absolute; width: calc(100% / 7 - 8px); border-radius: 7px; }
.week-ev { z-index: 2; left: calc(100% / 7 + 4px); top: 62px; height: 104px; padding: 6px 5px; background: var(--ev-purple); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.3; animation: week-move 7s ease-in-out infinite; }
.week-ev::after { content: ""; position: absolute; right: 8px; bottom: 8px; width: 26px; height: 26px; border-radius: 50%; background: rgba(255, 255, 255, .5); border: 2px solid #fff; animation: finger 7s ease-in-out infinite; }
.week-slot { left: calc(100% / 7 * 4 + 4px); top: 174px; height: 104px; border: 2px dashed var(--ev-purple); animation: slot 7s ease-in-out infinite; }
@keyframes week-move {
  0%, 6% { transform: none; box-shadow: none; opacity: 1; }
  12% { transform: scale(1.06); box-shadow: 0 16px 28px -8px rgba(0, 0, 0, .45); }
  47% { transform: translate(calc((100% + 8px) * 3), 112px) scale(1.06); box-shadow: 0 16px 28px -8px rgba(0, 0, 0, .45); }
  53%, 84% { transform: translate(calc((100% + 8px) * 3), 112px); box-shadow: none; opacity: 1; }
  90% { transform: translate(calc((100% + 8px) * 3), 112px); opacity: 0; }
  91% { transform: none; opacity: 0; }
  100% { transform: none; opacity: 1; }
}
@keyframes finger { 0%, 4% { opacity: 0; transform: scale(1.5); } 12%, 47% { opacity: 1; transform: scale(.9); } 54%, 100% { opacity: 0; transform: scale(1.5); } }
@keyframes slot { 0%, 12% { opacity: 0; } 22%, 47% { opacity: 1; } 53%, 100% { opacity: 0; } }
.week-fixed { box-shadow: inset 3px 0 0 var(--c); background: color-mix(in srgb, var(--c) 20%, var(--card)); }
.week-fixed.a { --c: var(--ev-blue); left: calc(100% / 7 * 3 + 4px); top: 6px; height: 104px; }
.week-fixed.b { --c: var(--ev-orange); left: calc(100% / 7 * 5 + 4px); top: 118px; height: 160px; }
.week-fixed.c { --c: var(--ev-red); left: calc(100% / 7 * 2 + 4px); top: 230px; height: 90px; }

/* 速记转日程 */
.memo { display: grid; grid-template-columns: 1.2fr 1fr; gap: 14px; height: 480px; }
.memo-col { min-width: 0; padding: 18px 16px; background: var(--card); box-shadow: var(--ring), var(--shadow-sm); border-radius: 18px; overflow: hidden; }
.memo-col h3 { font-size: 18px; font-weight: 700; color: var(--strong); margin-bottom: 12px; }
.memo-form { display: flex; gap: 8px; margin-bottom: 12px; }
.memo-form input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); font: inherit; font-size: 16px; transition: border-color .2s ease; }
.memo-form input:focus { outline: 0; border-color: var(--accent); }
.memo-form button { flex: none; width: 44px; height: 44px; border: 0; border-radius: 10px; background: var(--accent); color: #fff; font: inherit; font-size: 24px; line-height: 1; cursor: pointer; transition: transform .25s var(--spring); }
.memo-form button:hover { transform: scale(1.06); }
.memo-list { display: grid; gap: 8px; }
.memo-row { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 9px 11px; background: #fdf3cf; color: #3d3210; border-radius: 10px; overflow: hidden; }
.memo-row p { font-size: 14.5px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.memo-row button { min-height: 28px; padding: 0; border: 0; background: none; color: #1c5c9e; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; transition: transform .2s var(--spring); }
.memo-row button:hover { transform: translateX(3px); }
.memo-row button.pressing { transform: scale(.92); color: #18212b; }
.memo-events { display: grid; gap: 8px; }
.memo-event { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: var(--soft); overflow: hidden; }
.memo-event.fresh { animation: fresh 1.6s ease-out; }
.memo-event i { flex: none; width: 4px; height: 34px; border-radius: 2px; background: var(--c); }
.memo-event div { min-width: 0; }
.memo-event b { display: block; font-size: 14.5px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.memo-event small { font-size: 12.5px; color: var(--muted); }
.memo-fly { position: absolute; left: 0; top: 0; z-index: 3; padding: 10px 12px; border-radius: 10px; background: var(--c); color: #fff; font-size: 14.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; box-shadow: 0 14px 26px -8px rgba(0, 0, 0, .45); pointer-events: none; }

/* Download */
.dl { padding: clamp(56px, 7vw, 96px) 0 clamp(24px, 4vw, 48px); scroll-margin-top: 40px; }
.dl h2 { text-align: center; }
.dl-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 44px; }
.card { --accent: var(--ev-blue); display: flex; flex-direction: column; align-items: center; text-align: center; padding: clamp(28px, 3.6vw, 44px) clamp(22px, 3.4vw, 42px); background: var(--tint); border-radius: 28px; overflow: hidden; }
.card:nth-child(2) { --accent: var(--ev-green); }
.card h3 { font-size: 26px; line-height: 1.25; font-weight: 700; letter-spacing: -.015em; color: var(--strong); }
.card p { margin-top: 6px; color: var(--muted); }
.btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; width: 100%; margin-top: 22px; }
.btns .btn-store { min-width: min(150px, calc(50% - 5px)); }
.mini { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; margin-top: auto; padding: 1px 1px 0; background: var(--line); border-radius: 14px 14px 0 0; box-shadow: var(--shadow-sm); overflow: hidden; }
.mini div { height: 56px; padding: 18px 4px 0; background: var(--card); }
.mini i { display: block; height: 7px; margin-top: 2px; border-radius: 2px; background: var(--c); }
.crop { margin: auto auto 0; width: min(280px, 80%); height: 250px; overflow: hidden; border-radius: 22px 22px 0 0; box-shadow: var(--shadow-sm); }
.crop img { width: 100%; margin-top: -50%; }

/* FAQ */
.faq { max-width: 760px; padding: clamp(56px, 8vw, 104px) 0 clamp(24px, 4vw, 48px); }
.faq .sec-head { margin-bottom: 30px; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 14px 0; font-size: 17px; font-weight: 600; color: var(--strong); cursor: pointer; list-style: none; transition: color .2s ease; }
.faq summary:hover { color: #1a73d9; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--soft); font-size: 19px; font-weight: 400; line-height: 1; color: var(--strong); transition: transform .3s var(--spring); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details::details-content { block-size: 0; overflow: clip; transition: block-size .34s var(--out), content-visibility .34s allow-discrete; }
.faq details[open]::details-content { block-size: auto; }
.faq details p { padding: 0 44px 22px 0; color: var(--muted); white-space: pre-line; }
.faq details a { color: #1a73d9; }
@media (prefers-color-scheme: dark) { .faq summary:hover, .faq details a { color: var(--accent); } }

/* 页脚线稿：时钟树下的小山坡 */
.scene { display: block; width: 100%; height: clamp(150px, 20vw, 240px); margin-top: 40px; color: var(--faint); }

/* Footer */
/* 浏览器语言与页面语言不同时的切换提示（由 data-auto-lang 脚本插入） */
.lang-tip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 14px; padding: 8px 48px 8px 16px; position: relative; background: color-mix(in srgb, var(--accent) 10%, var(--paper)); color: var(--strong); font-size: 14px; line-height: 1.5; text-align: center; }
.lang-tip a { color: var(--accent); font-weight: 650; text-decoration: none; }
.lang-tip a:hover { text-decoration: underline; }
.lang-tip button { position: absolute; top: 50%; right: 8px; transform: translateY(-50%); width: 32px; height: 32px; border: 0; border-radius: 50%; background: none; color: var(--muted); font-size: 20px; line-height: 1; cursor: pointer; }
.lang-tip button:hover { background: color-mix(in srgb, var(--strong) 6%, transparent); color: var(--strong); }

/* 隐私政策、服务条款等文字页 */
.doc { max-width: 760px; padding: clamp(48px, 7vw, 96px) 0 clamp(40px, 6vw, 72px); }
.doc h1 { font-size: clamp(32px, 1.1rem + 2vw, 52px); }
.doc .meta { margin-top: 12px; color: var(--muted); font-size: 15px; }
.doc h2 { margin-top: 40px; font-size: 21px; letter-spacing: -.01em; }
.doc h3 { margin-top: 22px; font-size: 17px; color: var(--strong); }
.doc p, .doc ul { margin-top: 12px; }
.doc ul { padding-left: 1.3em; }
.doc li + li { margin-top: 4px; }
.doc a { color: var(--accent); }

.foot { padding: 28px 0 36px; }
.foot-in { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.foot nav { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-left: auto; font-size: 14px; }
.foot nav a, .foot nav button { color: var(--muted); background: none; border: 0; padding: 4px 0; font: inherit; text-decoration: none; cursor: pointer; transition: color .2s ease; }
.foot nav a:hover, .foot nav button:hover { color: var(--strong); }
.foot small { color: var(--muted); }
.dlg { max-width: min(340px, 100vw - 32px); padding: 24px; border: 0; border-radius: 22px; background: var(--card); color: var(--ink); text-align: center; box-shadow: var(--shadow); }
.dlg[open] { animation: rise .4s var(--out); }
.dlg::backdrop { background: rgba(17, 22, 28, .5); }
.dlg img { margin: 0 auto 14px; border-radius: 8px; }
.dlg h3 { font-size: 20px; }
.dlg p { margin: 8px 0 16px; color: var(--muted); }

@media (max-width: 760px), (max-width: 1024px) and (max-height: 500px) {
  .foot nav a, .foot nav button { display: inline-flex; align-items: center; min-height: 44px; }
  .demo { padding-right: 0; }
  .demo-wrap { padding-bottom: 20px; }
  .toon { margin-right: 0; }
  .win-body { grid-template-columns: minmax(0, 1fr); }
  .win-side { display: none; }
  .phone { position: relative; bottom: auto; right: auto; width: min(300px, 100%); height: auto; min-height: 330px; margin: -36px auto 0; }
  .feat, .feat.rev { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .feat.rev .feat-copy { order: 0; }
  .hero + .stats { padding-top: 28px; padding-bottom: 0; }
  .stats + #sync { padding-top: 48px; }
}
@media (max-width: 640px) {
  .nav-links { display: none; }
  .nav-in { gap: 10px; }
  .lang { margin-left: auto; }
  .lang summary { min-height: 44px; }
  .hero::before { background-size: 48px 48px; }
  .toon { margin-bottom: -8px; }
  .plats { gap: 0 14px; }
  .plats a { font-size: 14px; }
  .win-bar { padding: 0 12px; }
  .win-bar i { display: none; }
  .win-bar strong { margin-left: 0; }
  .dow span { padding: 6px 3px; font-size: 11px; text-align: center; }
  .cell { height: 88px; padding: 3px 2px; }
  .cell .num { min-width: 20px; height: 20px; font-size: 12px; }
  .chip { padding: 1px 3px 1px 5px; font-size: 11px; border-radius: 4px; box-shadow: inset 2px 0 0 var(--c); }
  .stats { padding-top: 44px; }
  .stats li { padding: 4px 6px; }
  .stats strong { font-size: 24px; }
  .stats li > span { font-size: 12px; }
  .showcase { border-radius: 24px; padding-top: 28px; }
  .stage { border-radius: 22px; padding: 12px; }
  .devices { gap: 10px; }
  .dev { padding: 16px 14px 18px; }
  .dl-cards { grid-template-columns: minmax(0, 1fr); }
  .card { border-radius: 24px; }
  .btn-store { flex: 1; }
  .week { height: 300px; }
  .memo { grid-template-columns: minmax(0, 1fr); height: auto; }
  .memo-col:first-child { min-height: 330px; }
  .memo-cal { min-height: 280px; }
  .faq details p { padding-right: 0; }
  .foot nav { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}
