@import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500&family=Noto+Serif+TC:wght@400;600&display=swap";:root{--bg: #f3eee6;--page: #e9e2d6;--card: #fbf8f2;--line: #ddd4c5;--line-strong: #8a8074;--ink: #2a2622;--muted: #6b6258;--primary: #8c5e4e;--on-primary: #fbf8f2;--primary-soft: #eadfd6;--olive: #5f6e55;--on-olive: #fbf8f2;--olive-soft: #e1e4d6;--amber: #7a5c2b;--amber-soft: #efe5cf;--line-brand: #06c755;--on-line-brand: #ffffff;--scrim: #2a262273;--focus: var(--ink)}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--radius-sm: 2px;--radius-md: 4px;--radius-full: 999px;--font-serif: "Noto Serif TC", "Songti TC", "PMingLiU", serif;--font-sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif}.numeral{font:400 44px/48px var(--font-serif);letter-spacing:.02em}.display{font:400 32px/44px var(--font-serif);letter-spacing:.08em}.title{font:400 24px/36px var(--font-serif);letter-spacing:.08em}.heading{font:600 18px/28px var(--font-serif);letter-spacing:.06em}.body{font:400 15px/27px var(--font-sans);letter-spacing:.02em}.body-sm{font:400 13px/22px var(--font-sans);letter-spacing:.02em}.label{font:500 12px/18px var(--font-sans);letter-spacing:.14em}.caption{font:400 11px/16px var(--font-sans);letter-spacing:.04em}.zx-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border:1px solid transparent;border-radius:var(--radius-sm);font:500 12px/18px var(--font-sans);letter-spacing:.14em;cursor:pointer;background:var(--primary);color:var(--on-primary)}.zx-btn--outline{background:transparent;color:var(--ink);border-color:var(--ink)}.zx-btn--line{background:var(--line-brand);color:var(--on-line-brand);font-weight:700;font-size:14px;letter-spacing:.06em}.zx-btn--sm{min-height:36px;padding:0 var(--space-4)}.zx-btn--full{display:flex;width:100%}.zx-btn:disabled{background:var(--line);color:var(--muted);border-color:transparent;cursor:not-allowed}.zx-btn:focus-visible,.zx-step:focus-visible,.zx-input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.zx-tag{display:inline-block;padding:0 var(--space-2);border:1px solid currentColor;border-radius:var(--radius-sm);font:500 11px/18px var(--font-sans);letter-spacing:.1em;color:var(--amber);white-space:nowrap}.zx-tag--done{color:var(--olive)}.zx-tag--neutral{color:var(--muted)}.zx-field{display:block}.zx-field__label{display:block;margin-bottom:var(--space-2);font:500 12px/18px var(--font-sans);letter-spacing:.14em;color:var(--muted)}.zx-input{display:block;width:100%;min-height:48px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font:400 16px/27px var(--font-sans);letter-spacing:.02em}.zx-input::placeholder{color:var(--muted)}.zx-field__hint{margin-top:var(--space-2);font:400 13px/22px var(--font-sans);color:var(--muted)}.zx-step{display:flex;align-items:flex-start;gap:var(--space-4);width:100%;padding:var(--space-4) 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer;font-family:var(--font-sans)}.zx-step[disabled]{cursor:default}.zx-node{flex:none;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line-strong);border-radius:var(--radius-full);font:400 12px/1 var(--font-sans);color:var(--muted);background:transparent}.zx-step--done .zx-node{background:var(--olive);border-color:var(--olive);color:var(--on-olive)}.zx-step--next .zx-node{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.zx-step--locked .zx-node{border-style:dashed}.zx-step__body{flex:1;min-width:0}.zx-step__title{font:400 15px/27px var(--font-sans);letter-spacing:.02em}.zx-step--locked .zx-step__title{color:var(--muted)}.zx-step__meta{display:block;font:400 13px/22px var(--font-sans);letter-spacing:.02em;color:var(--muted)}.zx-step .zx-tag{margin-left:var(--space-2);vertical-align:2px}.zx-trail{color:var(--ink);font-family:var(--font-sans)}.zx-trail__head{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-5)}.zx-trail__num{font:400 44px/48px var(--font-serif);letter-spacing:.02em}.zx-trail__of{font:400 18px/28px var(--font-serif);color:var(--muted)}.zx-trail__cap{margin-left:auto;font:500 12px/18px var(--font-sans);letter-spacing:.14em;color:var(--muted)}.zx-trail__track{display:flex;align-items:stretch;gap:var(--space-4)}.zx-grp{min-width:min-content}.zx-grp__label{margin-bottom:var(--space-2);font:500 12px/18px var(--font-sans);letter-spacing:.14em;color:var(--muted);white-space:nowrap}.zx-bars,.zx-ticks{display:flex;gap:var(--space-1)}.zx-bar{flex:1;height:4px;border-radius:var(--radius-sm);background:var(--line)}.zx-bar--done{background:var(--olive)}.zx-bar--next{background:var(--primary)}.zx-tick{flex:1;display:flex;justify-content:center;height:10px;padding-top:var(--space-2)}.zx-tick i{width:4px;height:4px;border-radius:var(--radius-full);background:var(--amber)}.zx-ms{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 var(--space-1) 0 var(--space-2);border-left:1px solid var(--line-strong);font:500 12px/16px var(--font-sans);color:var(--muted)}.zx-ms--done{border-left-color:var(--olive);color:var(--olive)}.zx-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-5);font:400 12px/18px var(--font-sans);letter-spacing:.04em;color:var(--muted)}.zx-legend span{display:inline-flex;align-items:center;gap:var(--space-2)}.zx-legend i{display:inline-block;width:16px;height:4px;border-radius:var(--radius-sm);background:var(--line)}.zx-legend .d{background:var(--olive)}.zx-legend .n{background:var(--primary)}.zx-legend .b{width:4px;border-radius:var(--radius-full);background:var(--amber)}.zx-milestone{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--ink)}.zx-milestone__mark{flex:none;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line-strong);border-radius:var(--radius-full);font:400 12px/1 var(--font-sans);color:var(--muted)}.zx-milestone--done .zx-milestone__mark{background:var(--olive);border-color:var(--olive);color:var(--on-olive)}.zx-milestone__body{flex:1;min-width:0}.zx-milestone__title{font:600 18px/28px var(--font-serif);letter-spacing:.06em}.zx-milestone__text{font:400 13px/22px var(--font-sans);letter-spacing:.02em;color:var(--muted)}.zx-icon{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.zx-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:var(--scrim)}.zx-scrim--inline{position:relative;inset:auto;min-height:340px}.zx-sheet{width:100%;max-width:480px;max-height:90vh;overflow:auto;padding:var(--space-3) var(--space-4) var(--space-5);background:var(--bg);color:var(--ink);border-radius:var(--radius-md) var(--radius-md) 0 0;font-family:var(--font-sans)}.zx-sheet__grab{width:36px;height:3px;margin:0 auto var(--space-3);border-radius:var(--radius-sm);background:var(--line-strong)}.zx-sheet__head{display:flex;align-items:center;justify-content:space-between;font:400 12px/18px var(--font-sans);letter-spacing:.14em;color:var(--muted)}.zx-sheet__x{min-width:44px;min-height:44px;margin-right:-12px;border:0;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer}.zx-work{margin:0 0 var(--space-2);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card)}.zx-work--mine{border-color:var(--primary)}.zx-work img{display:block;width:100%;height:auto}.zx-work__cap{padding:var(--space-2) var(--space-3) var(--space-3);font:400 13px/22px var(--font-sans);letter-spacing:.02em;color:var(--ink)}.zx-work__who{display:block;margin-top:var(--space-1);font-size:12px;color:var(--muted)}.zx-mk{display:grid;grid-template-columns:56px 1fr;gap:var(--space-4);padding:var(--space-5) 0;border-bottom:1px solid var(--line);color:var(--ink)}.zx-mk__date{align-self:start;padding:var(--space-2) var(--space-1);text-align:center;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--ink);font-family:var(--font-serif);line-height:1.3}.zx-mk__date b{display:block;font-size:22px;font-weight:400}.zx-mk__date small{font-size:12px}.zx-mk__title{margin:0;font:600 16px/26px var(--font-serif);letter-spacing:.06em}.zx-mk__place{margin:0 0 var(--space-3);font:400 13px/22px var(--font-sans);color:var(--muted)}.zx-mk__bar{height:4px;margin:var(--space-1) 0;border-radius:var(--radius-sm);background:var(--line);overflow:hidden}.zx-mk__bar i{display:block;height:100%;background:var(--ink)}.zx-mk__seats{margin:0 0 var(--space-3);font:400 12px/18px var(--font-sans);color:var(--muted)}.zx-tabbar{background:var(--card);border-top:1px solid var(--line)}.zx-tabbar__in{display:grid;max-width:480px;margin:0 auto}.zx-tab{position:relative;display:grid;justify-items:center;align-content:center;gap:2px;min-height:56px;padding:var(--space-2) 0;border:0;background:none;font:400 11px/16px var(--font-sans);letter-spacing:.08em;color:var(--muted);cursor:pointer}.zx-tab[aria-current=page]{color:var(--ink);font-weight:500}.zx-tab[aria-current=page]:before{content:"";position:absolute;top:-1px;left:50%;width:24px;height:2px;margin-left:-12px;background:var(--primary)}.zx-drop{position:relative;display:grid;place-items:center;align-content:center;gap:var(--space-1);min-height:140px;padding:var(--space-4);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--card);text-align:center;color:var(--muted);font:400 13px/22px var(--font-sans)}.zx-drop b{font:500 15px/24px var(--font-sans);color:var(--ink)}.zx-drop input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;cursor:pointer}.zx-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-top:var(--space-3)}.zx-thumb{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-sm);background:var(--line)}.zx-thumb img{display:block;width:100%;height:100%;object-fit:cover}.zx-thumb__size{position:absolute;left:0;right:0;bottom:0;padding:2px var(--space-2);background:#0009;color:#fff;font:400 11px/16px var(--font-sans)}.zx-video{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--amber);border-radius:var(--radius-sm);background:var(--amber-soft);color:var(--ink)}.zx-video--open{border-width:2px}.zx-video__ic{flex:none;color:var(--amber)}.zx-video__t{flex:1;font:400 13px/22px var(--font-sans)}.zx-video__t b{display:block;font:500 15px/24px var(--font-sans)}.zx-auth{display:grid;gap:var(--space-4);max-width:420px;padding:var(--space-5) var(--space-4);color:var(--ink)}.zx-auth__brand{font:600 15px/24px var(--font-serif);letter-spacing:.2em}.zx-auth__title{margin:var(--space-4) 0 0;font:400 26px/40px var(--font-serif);letter-spacing:.08em}.zx-auth__lede{margin:0;font:400 15px/27px var(--font-sans);color:var(--muted)}.zx-auth__err{margin:0;font:500 13px/22px var(--font-sans);color:var(--ink)}.zx-auth__cta{margin-top:var(--space-2)}.zx-btn,.zx-input,.zx-drop,.zx-sheet,.zx-auth,.zx-milestone,.zx-mk,.zx-video,*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--page);color:var(--ink);font:400 15px/27px var(--font-sans);letter-spacing:.02em;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit;letter-spacing:inherit}button,a{touch-action:manipulation}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-shell{width:100%;min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));background:var(--bg)}.app-shell--public{padding-bottom:var(--space-6)}.app-shell--embed{padding-bottom:var(--space-4);background:transparent}.app-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-4) 0}.app-brand{font:600 15px/24px var(--font-serif);letter-spacing:.2em}.app-account{min-height:36px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--muted);font:500 12px/18px var(--font-sans);letter-spacing:.14em;cursor:pointer}.app-screen{padding:0 var(--space-4) var(--space-6)}.app-title{margin:var(--space-5) 0 var(--space-1);font:400 26px/40px var(--font-serif);letter-spacing:.08em}.app-lede{margin:0 0 var(--space-5);color:var(--muted)}.app-phase{margin-top:var(--space-7)}.app-phase h2,.app-section-title{margin:0;font:600 18px/28px var(--font-serif);letter-spacing:.06em}.app-phase p{margin:0;color:var(--muted);font-size:13px;line-height:22px}.app-steps{margin:var(--space-3) 0 0;padding:0;border-bottom:1px solid var(--line);list-style:none}.app-next{width:100%;padding:var(--space-4);border:0;border-radius:var(--radius-sm);background:var(--primary);color:var(--on-primary);text-align:left;cursor:pointer}.app-next small{display:block;font:500 12px/18px var(--font-sans);letter-spacing:.14em}.app-next strong{display:block;font:600 18px/29px var(--font-serif);letter-spacing:.06em}.app-milestone{margin-top:var(--space-7)}.app-sheet-title{margin:var(--space-1) 0 var(--space-2);font:400 22px/36px var(--font-serif);letter-spacing:.08em}.app-sheet-copy{margin:0 0 var(--space-3)}.app-where,.app-note{margin:0 0 var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font-size:14px;line-height:24px}.app-where span{color:var(--muted)}.app-note{border:0;background:var(--primary-soft)}.app-note--done{background:var(--olive-soft)}.app-stack{display:grid;gap:var(--space-3);margin-top:var(--space-5)}.app-field-label{display:block;margin:var(--space-5) 0 var(--space-2);color:var(--muted);font:500 12px/18px var(--font-sans);letter-spacing:.14em}.app-textarea{display:block;width:100%;min-height:96px;padding:var(--space-3);resize:vertical;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font-size:16px;line-height:27px}.app-check{display:flex;gap:var(--space-3);align-items:flex-start;margin-top:var(--space-4);cursor:pointer;font-size:14px;line-height:24px}.app-check input{width:22px;height:22px;margin-top:2px;accent-color:var(--primary)}.app-hint,.app-count{margin:var(--space-2) 0;color:var(--muted);font-size:13px;line-height:22px}.app-chip-row{display:flex;gap:var(--space-2);overflow-x:auto;margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4) var(--space-1);scrollbar-width:none}.app-chip{flex:none;min-height:44px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap}.app-chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.app-chip:disabled{border-color:transparent;background:var(--line);color:var(--muted);cursor:not-allowed}.app-thumb-remove{position:absolute;top:var(--space-1);right:var(--space-1);width:32px;height:32px;border:0;border-radius:var(--radius-full);background:#0009;color:#fff;font-size:18px;cursor:pointer}.app-compressed{margin:var(--space-2) 0 0;color:var(--olive);font-size:13px}.app-history{margin-top:var(--space-7)}.app-history-row{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.app-history-row img{width:52px;height:52px;object-fit:cover;border-radius:var(--radius-sm);background:var(--line)}.app-history-copy{flex:1;min-width:0;font-size:14px;line-height:22px}.app-history-copy span{display:block;overflow:hidden;color:var(--muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}.app-pill{flex:none;padding:0 var(--space-2);border:1px solid currentColor;border-radius:var(--radius-sm);color:var(--olive);font:500 11px/18px var(--font-sans);letter-spacing:.1em}.app-pill--off{color:var(--muted)}.app-wall{columns:1;column-gap:var(--space-2);margin-top:var(--space-3)}.app-wall .zx-work{break-inside:avoid}.app-resource-group{margin-top:var(--space-6)}.app-resource{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:64px;padding:var(--space-3) 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.app-resource-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--radius-sm);background:var(--primary-soft);font:400 12px/18px var(--font-serif);letter-spacing:.06em}.app-resource-copy{flex:1;font-size:15px;line-height:24px}.app-resource-copy span{display:block;color:var(--muted);font-size:13px;line-height:22px}.app-resource-step{color:var(--muted);font-size:12px;white-space:nowrap}.app-resource--video .app-resource-icon{background:var(--amber-soft);color:var(--amber)}.app-resource--locked .app-resource-icon{background:var(--line);color:var(--muted)}.app-toast{position:fixed;z-index:60;bottom:calc(72px + env(safe-area-inset-bottom,0px));left:50%;width:max-content;max-width:calc(100% - 32px);padding:var(--space-3) var(--space-4);transform:translate(-50%);border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);font-size:14px;line-height:22px}.app-tabbar{position:fixed;right:0;bottom:0;left:0;z-index:30;padding-bottom:env(safe-area-inset-bottom,0px)}.app-tabbar .zx-tab{text-decoration:none}.app-tabbar .zx-tab.active{color:var(--ink);font-weight:500}.app-tabbar .zx-tab.active:before{content:"";position:absolute;top:-1px;left:50%;width:24px;height:2px;margin-left:-12px;background:var(--primary)}.app-loading{display:grid;min-height:100dvh;place-items:center;background:var(--bg);color:var(--muted)}.app-auth-page{min-height:100dvh;background:var(--bg)}.app-auth-wrap{max-width:420px;margin:0 auto}.app-auth-links{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2)}.app-link-button{min-height:44px;padding:0;border:0;background:transparent;color:var(--muted);text-decoration:underline;cursor:pointer}.app-public-nav{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4) 0}.app-public-nav a{text-decoration:none}.app-demo-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--ink);color:var(--bg);font:500 12px/18px var(--font-sans);letter-spacing:.08em}.app-demo-personas{display:flex;gap:var(--space-1)}.app-demo-personas button{min-height:30px;padding:0 var(--space-2);border:1px solid var(--bg);border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer;font-size:11px}.app-demo-personas button[aria-pressed=true]{background:var(--bg);color:var(--ink)}.app-success{text-align:center}.app-success-mark{display:grid;place-items:center;width:56px;height:56px;margin:var(--space-2) auto var(--space-3);border:1px solid var(--olive);border-radius:var(--radius-full);color:var(--olive);font-size:22px}.app-sync{display:grid;gap:var(--space-2);margin:var(--space-4) 0 0;padding:0;text-align:left;list-style:none}.app-sync li{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);font-size:14px;line-height:24px}.app-sync i{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:var(--radius-full);background:var(--olive);color:var(--on-olive);font-style:normal;font-size:12px}.app-sync i.off{background:var(--line);color:var(--muted)}.app-sync i.gold{background:var(--amber);color:var(--bg)}.app-sheet{max-height:90dvh;padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));animation:app-up .2s ease-out}@keyframes app-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:520px){.app-shell{max-width:480px;margin:0 auto;border-right:1px solid var(--line);border-left:1px solid var(--line)}.app-shell--embed{border:0}.app-tabbar .zx-tabbar__in{max-width:480px}}@media(min-width:900px){.app-shell,.app-tabbar .zx-tabbar__in,.zx-sheet{max-width:560px}.app-wall{columns:2}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.app-auth-preview{display:block;margin-top:var(--space-4);color:var(--muted);font:400 11px/16px var(--font-sans);letter-spacing:.04em;text-align:center;text-decoration:none}.app-auth-preview:hover{text-decoration:underline}@media(min-width:900px){html{zoom:1.3}}
