:root{--bg:#F4E8CA;--bg-alt:#E7D4AA;--bg-deep:#D9C295;--card:#FAF3DF;--ink:#332820;--ink-2:#574433;--line:#C6AE85;--link:#315C67;--land:#8B3F32;--sea:#315C67;--uncertain:#7A6A55;--gold:#8F6D31;--gold-fill:#B18A45;--warn:#7E5230;--focus:#315C67;--button-bg:#332820;--button-ink:#F4E8CA;--night:#15202B;--on-night:#F4E8CA;--on-night-2:#C8B48C;--phone:#2B221B;--shadow:0 1.2rem 2.5rem -1rem rgb(51 40 32 / 0.45);--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",Georgia,"Noto Serif",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif;--radius:0.9rem;--gutter:1rem;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#15202B;--bg-alt:#1B2835;--bg-deep:#0F1821;--card:#1E2C3A;--ink:#F4E8CA;--ink-2:#D2C19C;--line:#3E4E5E;--link:#9CCAD5;--land:#E7AE9A;--sea:#9CCAD5;--uncertain:#CDBB95;--gold:#DDB870;--warn:#E9C88A;--focus:#9CCAD5;--button-bg:#F4E8CA;--button-ink:#15202B;--night:#0E161F;--phone:#05090D;--shadow:0 1.2rem 2.5rem -1rem rgb(0 0 0 / 0.7)}}:lang(zh-Hans){--serif:"PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",sans-serif;--sans:"PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",system-ui,sans-serif}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background-color:var(--bg);background-image:radial-gradient(120% 60% at 50% 0%,var(--bg) 0%,transparent 70%),radial-gradient(90% 90% at 100% 100%,var(--bg-alt) 0%,transparent 60%);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.6;overflow-wrap:break-word;hyphens:auto}:lang(zh-Hans) body,body:lang(zh-Hans){line-height:1.75;hyphens:manual}img{max-width:100%;height:auto;display:block}picture{display:block}h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.2;color:var(--ink);margin:0 0 0.6em;text-wrap:balance}h1{font-size:clamp(2.1rem,1.4rem + 3.4vw,3.4rem);letter-spacing:-0.01em}h2{font-size:clamp(1.65rem,1.3rem + 1.6vw,2.35rem)}h3{font-size:clamp(1.3rem,1.15rem + 0.7vw,1.6rem)}h4{font-size:1.1rem}p{margin:0 0 1em}a{color:var(--link);text-underline-offset:0.18em;text-decoration-thickness:0.08em}a:hover{text-decoration-thickness:0.14em}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}main:focus{outline:none}.visually-hidden{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:var(--gutter);top:-4rem;z-index:10;padding:0.7rem 1rem;background:var(--button-bg);color:var(--button-ink);border-radius:0.5rem;font-weight:600}.skip:focus{top:0.75rem}.wrap{width:100%;max-width:72rem;margin-inline:auto;padding-inline:var(--gutter)}.narrow{max-width:46rem}.center{text-align:center}@media (min-width:48rem){:root{--gutter:2rem}}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,var(--bg-alt))}.header-inner{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 0.75rem;padding-block:0.7rem}.brand{display:inline-flex;align-items:center;gap:0.55rem;margin:0 auto 0 0;color:var(--ink);text-decoration:none;font-family:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;font-size:1.35rem;font-weight:600;min-height:44px}.brand--small{font-size:1.15rem}.mark{flex:none}.mark-paper{fill:var(--card)}.mark-roll{fill:var(--gold-fill)}.mark-rim{fill:none;stroke:var(--gold);stroke-width:2.5}.mark-inter{fill:var(--ink-2)}.mark-north{fill:var(--gold)}.mark-card,.mark-pin{fill:var(--ink)}@media (prefers-color-scheme:dark){.mark-paper{fill:#F4E8CA}.mark-inter{fill:#655242}.mark-north{fill:#8F6D31}.mark-card,.mark-pin{fill:#332820}}.main-nav{order:3;width:100%}.main-nav ul{display:flex;flex-wrap:wrap;gap:0.15rem 0.2rem;margin:0;padding:0;list-style:none}.main-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0.3rem 0.65rem;border-radius:0.5rem;color:var(--ink);text-decoration:none;font-weight:500}.main-nav a:hover{background:var(--bg-alt)}.main-nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:0.14em;text-underline-offset:0.35em}@media (min-width:52rem){.main-nav{order:0;width:auto}.brand{margin-right:auto}}.lang{position:relative}@media (max-width:25rem){.brand{font-size:1.15rem;gap:0.4rem}.brand .mark{width:28px;height:28px}.lang summary{padding-inline:0.6rem;gap:0.3rem}}.lang summary{display:inline-flex;align-items:center;gap:0.4rem;min-height:44px;padding:0.3rem 0.75rem;border:1px solid var(--line);border-radius:999px;cursor:pointer;list-style:none;font-weight:500;background:var(--card)}.lang summary::-webkit-details-marker{display:none}.lang summary::after{content:"";width:0.45em;height:0.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-0.15em) rotate(45deg);margin-left:0.15rem}.lang[open] summary::after{transform:translateY(0.1em) rotate(-135deg)}.lang ul{position:absolute;right:0;z-index:5;min-width:13.5rem;margin:0.4rem 0 0;padding:0.35rem;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:0.75rem;box-shadow:var(--shadow)}.lang li a{display:flex;align-items:center;min-height:44px;padding:0.35rem 0.75rem;border-radius:0.5rem;color:var(--ink);text-decoration:none}.lang li a:hover{background:var(--bg-alt)}.lang li a[aria-current="true"]{font-weight:700}.lang li a[aria-current="true"]::after{content:"✓";margin-left:auto;color:var(--gold)}.icon{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0.7rem 1.4rem;border-radius:999px;background:var(--button-bg);color:var(--button-ink);font-weight:600;text-decoration:none;border:2px solid var(--button-bg)}.button:hover{background:transparent;color:var(--ink)}.button--quiet{background:transparent;color:var(--ink)}.button--quiet:hover{background:var(--button-bg);color:var(--button-ink)}.text-link{font-weight:600;display:inline-flex;align-items:center;min-height:44px}.tag{display:inline-block;padding:0.05rem 0.6rem;border:1px solid var(--line);border-radius:999px;font-family:var(--sans);font-size:0.8rem;font-weight:600;line-height:1.6;color:var(--ink-2);background:var(--card);vertical-align:0.15em;white-space:nowrap}.tag--gold{border-color:var(--gold);color:var(--ink)}.tag--note{color:var(--warn);border-color:currentColor}.eyebrow{display:inline-block;margin-bottom:1rem;padding:0.25rem 0.8rem;border:1px solid var(--gold);border-radius:999px;color:var(--ink);font-size:0.9rem;font-weight:600;letter-spacing:0.02em}.lead{font-size:1.2rem;color:var(--ink-2)}.lead--serif{font-family:var(--serif);font-size:1.4rem;font-style:italic;color:var(--ink)}:lang(zh-Hans) .lead--serif{font-style:normal}.note{font-size:0.95rem;color:var(--ink-2)}.stores{display:flex;flex-wrap:wrap;gap:0.75rem;margin:1.5rem 0}.center .stores{justify-content:center}.store{display:inline-flex;align-items:center;gap:0.65rem;margin:0;padding:0.6rem 1.1rem 0.6rem 0.85rem;border-radius:0.8rem;border:2px solid var(--ink);color:var(--ink);background:var(--card);text-decoration:none;text-align:left;min-height:56px}a.store{background:var(--button-bg);color:var(--button-ink);border-color:var(--button-bg)}.store--soon{border-style:dashed;border-color:var(--ink-2)}.store>span{display:flex;flex-direction:column;line-height:1.25}.store-title{font-weight:700}.store-sub{font-size:0.85rem;color:var(--ink-2)}a.store .store-sub{color:inherit}.hero{padding:2.5rem 0 1.5rem;overflow:hidden}.hero-grid{display:grid;gap:2.5rem;align-items:center}@media (min-width:60rem){.hero{padding-top:4rem}.hero-grid{grid-template-columns:1.1fr 0.9fr;gap:3rem}}.hero-links{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 1.25rem}.hero-art{position:relative;display:grid;place-items:center;min-height:24rem;padding:1rem 0}.route-art{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.route-art--small{position:static;width:9rem;height:11rem;margin:0 auto 1rem}.route-art .grid path{stroke:var(--line);stroke-width:1;fill:none;opacity:0.55}.route-line{fill:none;stroke:var(--land);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:10 7}.route-mask{fill:none;stroke:#fff;stroke-width:12;stroke-dasharray:1;stroke-dashoffset:0;animation:ink 4.5s cubic-bezier(0.45,0.05,0.3,1) 0.3s both}.stop{fill:var(--card);stroke:var(--ink);stroke-width:2.5;animation:stop-in 0.5s ease-out both}.s1{animation-delay:0.2s}.s2{animation-delay:1.3s}.s3{animation-delay:2.3s}.s4{animation-delay:3.3s}.s5{animation-delay:4.4s}.rose circle{fill:none;stroke:var(--gold);stroke-width:1.5}.rose-needle{fill:var(--gold);opacity:0.85;transform-box:fill-box;transform-origin:center;animation:settle 3.5s ease-out 0.5s both}@keyframes ink{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes stop-in{from{opacity:0;transform:scale(0.4)}to{opacity:1;transform:scale(1)}}.stop{transform-box:fill-box;transform-origin:center}@keyframes settle{0%{transform:rotate(-38deg)}55%{transform:rotate(9deg)}80%{transform:rotate(-3deg)}100%{transform:rotate(0deg)}}.phone{position:relative;margin:0;width:min(15.5rem,70vw);border:7px solid var(--phone);border-radius:2.1rem;overflow:hidden;background:var(--phone);box-shadow:var(--shadow)}.phone img{width:100%}.hero-art .phone--front{z-index:2;transform:rotate(2.5deg)}.hero-art .phone--back{display:none}@media (min-width:40rem){.hero-art{min-height:34rem}.hero-art .phone--front{width:16.5rem;transform:translateX(3.5rem) rotate(3deg)}.hero-art .phone--back{display:block;position:absolute;z-index:1;width:14rem;transform:translateX(-5.5rem) translateY(1.5rem) rotate(-6deg);opacity:0.97}}.facts{display:flex;flex-wrap:wrap;justify-content:center;gap:0.6rem;margin:2rem 0 0;padding:1rem 0 0;list-style:none;border-top:1px solid var(--line)}.facts li{padding:0.35rem 1rem;border-radius:999px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:0.95rem}.section{padding:3.5rem 0}.section--alt{background:color-mix(in srgb,var(--bg-alt) 70%,var(--bg));border-block:1px solid var(--line)}.section h2{text-align:center}.section h2::after{content:"";display:block;width:6rem;height:0.75rem;margin:0.6rem auto 0;background:var(--gold);-webkit-mask:url("/ornament.svg") center / contain no-repeat;mask:url("/ornament.svg") center / contain no-repeat}.section-intro{max-width:42rem;margin:0 auto 2.5rem;text-align:center;color:var(--ink-2);font-size:1.1rem}.section--night{background:var(--night);color:var(--on-night);--ink:#F4E8CA;--ink-2:#C8B48C;--link:#9CCAD5;--focus:#9CCAD5;--gold:#DDB870;--card:#1E2C3A;--line:#3E4E5E}.section--night h2{color:var(--on-night)}.section--night p{color:var(--on-night)}.feature{display:grid;gap:1.75rem;align-items:center;justify-items:center;padding:1.5rem 0}.feature + .feature{border-top:1px dashed var(--line)}.feature-text{max-width:36rem;justify-self:stretch}.feature .feature-text h2{text-align:left}.feature .feature-text h2::after{margin-left:0}@media (min-width:52rem){.feature{grid-template-columns:1.2fr 0.8fr;gap:3rem;padding:2.5rem 0}.feature--flip .feature-text{order:2}.feature-text{justify-self:start}}.levels-heading{margin-top:1.5rem;font-family:var(--sans);font-size:1rem;text-transform:none}.levels{margin:0;display:grid;gap:0.5rem}.levels>div{padding:0.6rem 0.85rem;border-radius:0.6rem;background:var(--card);border:1px solid var(--line)}.levels dt{display:flex;align-items:center;gap:0.6rem;font-weight:700}.levels dd{margin:0.15rem 0 0;font-size:0.95rem;color:var(--ink-2)}.swatch{flex:none;overflow:visible}.swatch path{stroke:var(--land);stroke-width:3;stroke-linecap:round;fill:none}.swatch--dotted path{stroke:var(--uncertain);stroke-dasharray:0.5 5;stroke-width:3.5}.swatch--dotted circle{fill:var(--card);stroke:var(--uncertain);stroke-width:1.5}.collections{display:grid;gap:2rem}@media (min-width:52rem){.collections{grid-template-columns:1fr 1fr;gap:3rem}}.collection h3{display:flex;align-items:baseline;gap:0.6rem;border-bottom:2px solid var(--ink);padding-bottom:0.4rem}.count{font-family:var(--sans);font-size:0.9rem;font-weight:600;color:var(--ink-2)}.story-list{list-style:none;margin:0;padding:0}.story-list li{border-bottom:1px solid var(--line)}.story-list a{display:block;padding:0.7rem 0.25rem;color:var(--ink);text-decoration:none}.story-list a:hover .story-title{text-decoration:underline;text-decoration-color:var(--gold)}.story-title{font-family:var(--serif);font-size:1.15rem;font-weight:600}.story-sub{display:block;color:var(--ink-2);font-size:0.95rem}.more{text-align:center;margin-top:2rem}.lang-list{display:flex;flex-wrap:wrap;justify-content:center;gap:0.6rem;margin:1.5rem 0;padding:0;list-style:none}.lang-list li,.lang-list a{padding:0.45rem 1rem;border:1px solid var(--gold);border-radius:999px;background:var(--card);font-weight:600}.lang-list li:has(a){padding:0;border:0;background:none}.lang-list a{display:inline-flex;min-height:44px;align-items:center;color:var(--ink);text-decoration:none}#languages p{text-align:center}.checks{list-style:none;margin:1.25rem 0;padding:0;display:grid;gap:0.5rem}.checks li{display:flex;gap:0.6rem;align-items:flex-start}.checks .icon{color:var(--gold);margin-top:0.2rem;stroke-width:2.4}@media (min-width:40rem){.section--night .checks{grid-template-columns:1fr 1fr}}.page-head{padding:2.5rem 0 1rem}.jump ul{display:flex;flex-wrap:wrap;gap:0.5rem;list-style:none;padding:0;margin:1rem 0 0}.jump a{display:inline-flex;align-items:center;min-height:44px;padding:0.3rem 1rem;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);text-decoration:none;font-weight:600}.stories-wrap{padding-bottom:3rem}.collection-full{padding-top:1.5rem;scroll-margin-top:1rem}.collection-full h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.75rem;border-bottom:2px solid var(--ink);padding-bottom:0.5rem}.story-cards{list-style:none;margin:1.5rem 0 2rem;padding:0;display:grid;gap:1rem}@media (min-width:48rem){.story-cards{grid-template-columns:1fr 1fr}}@media (min-width:72rem){.story-cards{grid-template-columns:1fr 1fr 1fr}}.story-card{scroll-margin-top:1rem;padding:1.25rem 1.25rem 1rem;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);box-shadow:0 1px 0 var(--line)}.story-card:target{outline:3px solid var(--gold);outline-offset:2px}.story-card h3{margin-bottom:0.2rem}.story-card .story-sub{margin-bottom:0.75rem;font-style:italic}:lang(zh-Hans) .story-card .story-sub{font-style:normal}.story-card p{font-size:0.98rem}.story-meta{margin:0 0 0.75rem;font-size:0.9rem;display:grid;gap:0.35rem}.story-meta div{display:grid;grid-template-columns:minmax(6.5rem,auto) 1fr;gap:0.75rem}.story-meta dt{font-weight:700;color:var(--ink-2)}.story-meta dd{margin:0}.tags{margin:0;display:flex;flex-wrap:wrap;gap:0.4rem}.prose{padding-top:2.5rem;padding-bottom:3.5rem}.prose section{scroll-margin-top:1rem}.prose h2{margin-top:2.2rem;font-size:clamp(1.35rem,1.2rem + 0.8vw,1.7rem)}.prose ul,.prose ol{padding-left:1.3rem;margin:0 0 1em}.prose li{margin-bottom:0.4rem}.prose li::marker{color:var(--gold)}.updated{color:var(--ink-2);font-size:0.95rem}.toc{margin:1.5rem 0 1rem;padding:1rem 1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.toc .toc-heading{margin:0 0 0.5rem;font-family:var(--sans);font-size:1rem}.toc ol{margin:0}.toc li{padding:0.15rem 0}.site-footer{margin-top:0;padding:2.5rem 0 2rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg-deep) 45%,var(--bg));font-size:0.95rem}.footer-grid{display:grid;gap:1.5rem}@media (min-width:48rem){.footer-grid{grid-template-columns:1.4fr 1fr 1fr}}.footer-brand p:last-child{color:var(--ink-2)}.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:0.1rem}.footer-links a{display:inline-flex;align-items:center;min-height:40px;color:var(--ink)}.footer-notes{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line);color:var(--ink-2);font-size:0.88rem}.footer-notes p{margin-bottom:0.4rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none !important;transition:none !important}}@media print{.site-header,.site-footer,.hero-art,.skip{display:none}body{background:#fff;color:#000}}