:root{--canvas:#fdf8f0;--surface:#f6ecda;--ink:#8a4b16;--ink-soft:#a05a1c;--ink-mute:#96601f;--warm-900:#40372e;--warm-700:#5e5347;--warm-500:#7a6e5e;--warm-300:#dcc9a8;--warm-200:#eaddc6;--rule:#e7dac2;--shadow:0 1px 2px #7a542212, 0 10px 28px #7a542214;--glow:radial-gradient(120% 46% at 50% -8%, #ffcd7a52 0%, #ffd69624 42%, #ffd69600 72%);--measure:34rem;--gap:1.5rem;--font-body:"Noto Serif TC", "Songti TC", "Source Han Serif TC", Georgia, "Times New Roman", serif;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;color-scheme:light}:root[data-theme=dark]{--canvas:#211c17;--surface:#2c251d;--ink:#f0b562;--ink-soft:#e7a94f;--ink-mute:#dda75a;--warm-900:#f0e6d6;--warm-700:#c9bba4;--warm-500:#a89a84;--warm-300:#6d6250;--warm-200:#3a322a;--rule:#3d352c;--shadow:0 1px 2px #00000073, 0 10px 28px #00000052;--glow:radial-gradient(120% 46% at 50% -8%, #ffb05429 0%, #ffb05412 42%, #ffb05400 72%);color-scheme:dark}:root[data-theme=light]{--canvas:#fdf8f0;--surface:#f6ecda;--ink:#8a4b16;--ink-soft:#a05a1c;--ink-mute:#96601f;--warm-900:#40372e;--warm-700:#5e5347;--warm-500:#7a6e5e;--warm-300:#dcc9a8;--warm-200:#eaddc6;--rule:#e7dac2;--shadow:0 1px 2px #7a542212, 0 10px 28px #7a542214;--glow:radial-gradient(120% 46% at 50% -8%, #ffcd7a52 0%, #ffd69624 42%, #ffd69600 72%);color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--canvas);background-image:var(--glow);min-height:100vh;color:var(--warm-900);font-family:var(--font-body);letter-spacing:.01em;-webkit-font-smoothing:antialiased;background-repeat:no-repeat;background-size:100% 32rem;margin:0;font-size:1.0625rem;line-height:1.85}a{color:var(--ink);text-decoration-color:var(--warm-500);text-underline-offset:.25em}a:hover{color:var(--ink-soft);text-decoration-color:var(--ink)}img{max-width:100%;height:auto}.wrap{max-width:46rem;margin:0 auto;padding:0 1.25rem}.site-head{padding:2.5rem 0 1.25rem}.site-head__inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.site-title{letter-spacing:.06em;color:var(--ink);margin:0;font-size:1.5rem;font-weight:700}.site-title a{text-decoration:none}.site-nav{font-family:var(--font-ui);gap:1.1rem;font-size:.875rem;display:flex}.site-nav a{color:var(--warm-700);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink)}.site-tagline{font-family:var(--font-ui);color:var(--warm-700);flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0 0;font-size:.8125rem;display:flex}.site-tagline__note{color:var(--ink);letter-spacing:.04em;align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.site-tagline__note:before{content:"";background:var(--ink);opacity:.75;border-radius:50%;width:.42rem;height:.42rem}.rule{background:linear-gradient(90deg, var(--ink) 0%, var(--warm-300) 22%, var(--rule) 60%, transparent 100%);opacity:.55;border:0;height:2px;margin:1.25rem 0 0}.timeline{margin:2rem 0 0;padding:0;list-style:none}.year-mark{font-family:var(--font-ui);letter-spacing:.22em;color:var(--ink-mute);border-bottom:1px solid var(--rule);margin:2.75rem 0 .75rem;padding-bottom:.4rem;font-size:.75rem;font-weight:600}.year-mark:first-child{margin-top:.5rem}.entry{border-bottom:1px solid var(--rule);border-radius:8px;grid-template-columns:4.5rem 1fr;gap:1.25rem;margin:0 -.9rem;padding:1.4rem .9rem;transition:background-color .18s;display:grid}.entry:hover{background-color:var(--surface)}.entry__date{font-family:var(--font-ui);color:var(--warm-500);white-space:nowrap;padding-top:.35rem;font-size:.8125rem}.entry__title{margin:0 0 .3rem;font-size:1.25rem;font-weight:700;line-height:1.5}.entry__title a{color:var(--ink);text-decoration:none}.entry__title a:hover{text-decoration:underline}.entry__desc{color:var(--warm-700);margin:0;font-size:.9375rem;line-height:1.75}.entry__meta{font-family:var(--font-ui);color:var(--warm-500);margin:.4rem 0 0;font-size:.8125rem}.entry__thumb{box-shadow:var(--shadow);border-radius:8px;margin-top:.85rem;overflow:hidden}.entry__thumb img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}@media (width<=34rem){.entry{grid-template-columns:1fr;gap:.35rem}.entry__date{padding-top:0}}.memories{background:var(--surface);border-left:4px solid var(--ink);border-radius:8px;margin:2rem 0 0;padding:1.1rem 1.25rem}.memories__label{font-family:var(--font-ui);letter-spacing:.18em;color:var(--ink);margin:0 0 .6rem;font-size:.75rem}.memories ul{margin:0;padding:0;list-style:none}.memories li+li{margin-top:.4rem}.memories a{font-size:.9375rem}.memories__ago{font-family:var(--font-ui);color:var(--warm-500);margin-right:.5rem;font-size:.8125rem}.post{margin:2rem 0 0}.post__title{color:var(--ink);letter-spacing:.01em;margin:0 0 .5rem;font-size:1.9rem;line-height:1.4}.post__meta{font-family:var(--font-ui);color:var(--warm-500);margin:0 0 1.5rem;font-size:.8125rem}.post__hero{box-shadow:var(--shadow);border-radius:10px;margin:0 0 2rem;overflow:hidden}.post__hero img{width:100%;display:block}.post__hero figcaption{font-family:var(--font-ui);color:var(--warm-500);padding:.6rem .2rem 0;font-size:.8125rem}.prose>*+*{margin-top:1.35rem}.prose h2{color:var(--ink);border-left:4px solid var(--ink);border-radius:2px;margin-top:2.75rem;padding-left:.85rem;font-size:1.3rem;line-height:1.5}.prose h3{color:var(--ink-soft);margin-top:2rem;font-size:1.0625rem}.prose blockquote{background:var(--surface);border-left:3px solid var(--ink);color:var(--warm-700);border-radius:0 6px 6px 0;margin-left:0;margin-right:0;padding:.7rem 1.1rem;font-style:normal}.prose img{box-shadow:var(--shadow);border-radius:8px}.prose figure{margin:2rem 0}.prose figcaption{font-family:var(--font-ui);color:var(--warm-500);text-align:center;padding-top:.6rem;font-size:.8125rem}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.4rem}.prose code{background:var(--surface);border-radius:3px;padding:.1em .35em;font-size:.875em}.prose pre{background:var(--surface);border-radius:4px;padding:1rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;padding:.5rem .6rem}.table-scroll{overflow-x:auto}.post-nav{border-top:1px solid var(--rule);font-family:var(--font-ui);justify-content:space-between;gap:1rem;margin:3rem 0 0;padding-top:1.25rem;font-size:.875rem;display:flex}.post-nav span{color:var(--warm-300)}.site-foot{border-top:1px solid var(--rule);font-family:var(--font-ui);color:var(--warm-500);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.25rem;margin:4rem 0 0;padding:1.5rem 0 3rem;font-size:.8125rem;display:flex}.site-foot a{color:var(--warm-700)}.theme-toggle{font:inherit;font-family:var(--font-ui);border:1px solid var(--rule);background:0 0;background:var(--surface);color:var(--warm-700);cursor:pointer;border-radius:999px;padding:.2rem .75rem;font-size:.8125rem}.theme-toggle:hover{color:var(--ink);border-color:var(--warm-500)}.archive-year{margin:2.5rem 0 0}.archive-year__title{color:var(--ink);margin:0 0 .25rem;font-size:1.35rem}.archive-month{font-family:var(--font-ui);letter-spacing:.14em;color:var(--warm-500);margin:1.4rem 0 .4rem;font-size:.8125rem}.archive-list{margin:0;padding:0;list-style:none}.archive-list li{border-bottom:1px solid var(--rule);gap:.9rem;padding:.35rem 0;display:flex}.archive-list time{font-family:var(--font-ui);color:var(--warm-500);white-space:nowrap;padding-top:.15rem;font-size:.8125rem}.empty{color:var(--warm-500);font-family:var(--font-ui);font-size:.9375rem}.skip-link{position:absolute;left:-9999px}.skip-link:focus{background:var(--surface);z-index:10;border-radius:3px;padding:.5rem .75rem;top:1rem;left:1rem}.pin{vertical-align:-.08em;opacity:.75;width:.85em;height:.85em;margin-right:.15em}.cite{background:var(--surface);font-family:var(--font-ui);color:var(--warm-700);border-radius:8px;margin:3rem 0 0;padding:1.1rem 1.25rem;font-size:.875rem;line-height:1.7}.cite p{margin:0}.cite p+p{margin-top:.35rem}.cite__label{letter-spacing:.18em;color:var(--ink);font-size:.75rem}.cite__url{word-break:break-all}.cite__ai{border-top:1px solid var(--rule);color:var(--warm-700);padding-top:.7rem;font-size:.8125rem;margin-top:.7rem!important}:root{--track-0:#8a4b16;--track-1:#1f7a70;--track-2:#6d4aa8;--track-3:#b4436c;--track-4:#46762c;--track-5:#2b6cb0}:root[data-theme=dark]{--track-0:#f0b562;--track-1:#4fd1c5;--track-2:#b794f4;--track-3:#f687b3;--track-4:#9ae6b4;--track-5:#90cdf4}[data-color="0"]{--dot:var(--track-0)}[data-color="1"]{--dot:var(--track-1)}[data-color="2"]{--dot:var(--track-2)}[data-color="3"]{--dot:var(--track-3)}[data-color="4"]{--dot:var(--track-4)}[data-color="5"]{--dot:var(--track-5)}.branch-dot{background:var(--dot,var(--track-0));border-radius:50%;flex:none;width:.5rem;height:.5rem;display:inline-block}.branch-dot--big{vertical-align:.06em;width:.7rem;height:.7rem;margin-right:.15em}.branch-tag{font-family:var(--font-ui);color:var(--warm-700);background:var(--surface);border:1px solid var(--rule);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.05rem .55rem;font-size:.75rem;line-height:1.6;text-decoration:none;display:inline-flex}a.branch-tag:hover{color:var(--ink);border-color:var(--warm-500)}.branch-group{margin:2.5rem 0 0}.branch-group__title{font-family:var(--font-ui);letter-spacing:.18em;color:var(--ink-mute);border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:0 0 .75rem;padding-bottom:.4rem;font-size:.75rem;font-weight:600;display:flex}.branch-group__hint{letter-spacing:.02em;color:var(--warm-500);font-weight:400}.branch-cards{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.branch-card{background:var(--surface);border-left:4px solid var(--dot,var(--track-0));border-radius:8px;padding:.9rem 1.1rem}.branch-card__head{align-items:center;gap:.5rem;margin:0;font-size:1.0625rem;font-weight:700;display:flex}.branch-card__head a{color:var(--ink);text-decoration:none}.branch-card__head a:hover{text-decoration:underline}.branch-card__id{font-family:var(--font-ui);letter-spacing:.06em;color:var(--warm-700);background:0 0;padding:0;font-size:.6875rem}.branch-card__goal{color:var(--warm-700);margin:.4rem 0 0;font-size:.9375rem;line-height:1.7}.branch-card__result{color:var(--warm-900);border-left:2px solid var(--rule);margin:.4rem 0 0;padding-left:.7rem;font-size:.9375rem;line-height:1.7}.branch-card__meta{font-family:var(--font-ui);color:var(--warm-700);margin:.55rem 0 0;font-size:.8125rem}.branch-back{font-family:var(--font-ui);margin:2rem 0 .75rem;font-size:.8125rem}.branch-back a{color:var(--warm-700);text-decoration:none}.branch-back a:hover{color:var(--ink)}.branch-status{font-family:var(--font-ui);color:var(--ink);font-weight:600}.branch-goal{color:var(--warm-900);margin:0 0 1rem;font-size:1.0625rem;line-height:1.8}.branch-result{background:var(--surface);border-left:3px solid var(--ink);color:var(--warm-700);border-radius:0 6px 6px 0;margin:0 0 1.5rem;padding:.8rem 1.1rem;font-size:.9375rem;line-height:1.75}.branch-result__label{font-family:var(--font-ui);letter-spacing:.18em;color:var(--ink);margin-bottom:.3rem;font-size:.6875rem;display:block}.graph-section{margin:3rem 0 0}.graph{margin:.25rem 0 0;position:relative}.graph__rails{pointer-events:none;position:absolute;top:0;left:0}.rail{stroke:var(--dot,var(--track-0));stroke-width:2px;stroke-linecap:round;opacity:.85}.rail--main{stroke:var(--track-0);stroke-width:2.5px;opacity:.55}.rail--stub{stroke-dasharray:3 4;opacity:.5}.node{fill:var(--canvas);stroke:var(--dot,var(--track-0));stroke-width:2.5px}.node--commit{fill:var(--dot,var(--track-0))}.graph__rows{padding:var(--pad-top) 0 0 var(--gutter);margin:0;list-style:none}.graph-row{height:var(--row-h);font-family:var(--font-ui);border-radius:6px;align-items:center;gap:.6rem;padding-right:.4rem;display:flex}.graph-row:hover{background:var(--surface)}.graph-row__date{color:var(--warm-700);white-space:nowrap;font-size:.8125rem}.graph-row__year{color:var(--ink-mute);margin-right:.35rem;font-weight:600}.graph-row__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--warm-900);flex:1;font-size:.9375rem;text-decoration:none;overflow:hidden}.graph-row__title:hover{color:var(--ink);text-decoration:underline}.graph-row__title--event{color:var(--warm-700);font-size:.8125rem}.graph__legend{font-family:var(--font-ui);color:var(--warm-500);margin:1rem 0 0;font-size:.8125rem;line-height:1.8}@media (width<=34rem){.graph-row .branch-tag{display:none}}.now-open{background:var(--surface);border-left:4px solid var(--ink);font-family:var(--font-ui);border-radius:8px;margin:2rem 0 0;padding:.9rem 1.25rem}.now-open__label{letter-spacing:.18em;color:var(--ink);margin:0 0 .55rem;font-size:.75rem}.now-open__list{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.now-open__all{margin:.6rem 0 0;font-size:.8125rem}.now-open__all a{color:var(--warm-700)}.entry__meta--row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.post__meta--row .branch-tag{vertical-align:.08em;margin-right:.5rem}.branch-tag__count{color:var(--warm-700);padding-left:.15rem;font-size:.6875rem}.archive-list .branch-tag{vertical-align:.08em;margin-left:.5rem}
