:root{--paper:#f8f5ed;--paper-deep:#efe9da;--ink:#262019;--ink-soft:#7d7466;--line:#e0d7c4;--line-strong:color-mix(in srgb, var(--ink) 34%, var(--line));--accent:#c13f21;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}.site{grid-template-rows:auto minmax(0,1fr);gap:clamp(.9rem,2.2vmin,1.8rem);max-width:calc(100svh + 26rem);min-height:100svh;margin-inline:auto;padding:clamp(1rem,2.8vmin,2.5rem);display:grid}.masthead{justify-content:space-between;align-items:center;display:flex}.masthead h1{letter-spacing:.14em;align-items:center;gap:.5em;margin:0;font-size:clamp(.78rem,1.4vw,.96rem);font-weight:600;display:flex}.masthead h1 a{color:inherit;text-decoration:none}.masthead h1 a:hover{color:var(--accent)}.masthead .seal{background:var(--accent);width:.62em;height:.62em}.masthead-actions{align-items:baseline;gap:1.1rem;display:flex}.masthead-actions form{margin:0}.workspace{--gap:clamp(1.4rem, 3vmin, 2.4rem);gap:var(--gap);grid-template-rows:minmax(0,auto) minmax(4.5rem,1fr);align-content:start;min-width:0;min-height:0;display:grid;container-type:inline-size}.grid-region{place-self:start;width:min(100%,100svh - 13rem);min-width:0;min-height:0;display:block}.grid-wrap{position:relative}.age-grid{border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);aspect-ratio:1;grid-template-columns:repeat(10,minmax(0,1fr));width:100%;margin:0;padding:0;list-style:none;display:grid}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);aspect-ratio:1;min-width:0}.cell:nth-child(10n){border-right-color:var(--line-strong)}.cell:nth-child(n+91){border-bottom-color:var(--line-strong)}.cell-link,.cell-static{width:100%;height:100%;color:inherit;font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:flex-end;padding:clamp(.15rem,.55vmin,.4rem);font-size:clamp(.5rem,1.3vmin,.78rem);line-height:1;text-decoration:none;transition:background-color .16s;display:flex}.cell-static{color:color-mix(in srgb, var(--ink) 42%, transparent)}.cell.past .cell-link:hover{background:var(--paper-deep)}.cell.current .cell-link{color:var(--paper);background:var(--accent);font-weight:600}.cell.selected .cell-link{background:var(--paper-deep);box-shadow:inset 0 0 0 1.5px var(--ink);font-weight:600}.cell.future{border-bottom-style:dashed;border-right-style:dashed}.cell.future:nth-child(10n){border-right-style:solid}.cell.future:nth-child(n+91){border-bottom-style:solid}.cell.future .cell-static{color:color-mix(in srgb, var(--ink) 22%, transparent)}.cell:last-child .cell-link,.cell:last-child .cell-static{font-size:clamp(.72rem,1.9vmin,1.1rem)}.ink{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ink line,.ink .run-node{vector-effect:non-scaling-stroke}.ink .staff{stroke:var(--ink);stroke-width:1px;opacity:.09}.ink .span-line{stroke:var(--ink);stroke-width:1.3px;opacity:.9}.ink .run-end{fill:var(--ink);opacity:.9}.ink .run-node{fill:var(--paper);stroke:var(--ink);stroke-width:1px;opacity:.9}.ink .evt-dot,.ink .evt-more{fill:var(--ink);opacity:.85}.ink line.on-current{stroke:var(--paper)}.ink circle.on-current,.ink path.on-current{fill:var(--paper)}.ink .run-node.on-current{fill:var(--accent);stroke:var(--paper)}.information{scrollbar-width:thin;min-width:0;min-height:4.5rem;overflow-y:auto}.pane{flex-direction:column;gap:clamp(1.4rem,3vmin,2.2rem);width:min(100%,100svh - 13rem);padding-top:clamp(1.1rem,3vmin,2rem);padding-bottom:2rem;padding-right:.85rem;display:flex}.pane-head{flex-direction:column;gap:.35rem;display:flex}.pane-kicker{letter-spacing:.3em;color:var(--ink-soft);margin:0;font-size:.72rem;font-weight:600}.pane-head h2{color:var(--ink-soft);margin:0;font-size:1rem;font-weight:400}.pane-head h2 strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:2.7rem;font-weight:650;line-height:1}.hint{color:var(--ink-soft);margin:0;font-size:.72rem;line-height:1.6}.pane-section{flex-direction:column;gap:.8rem;display:flex}.pane-section h3{border-top:1px solid var(--line);letter-spacing:.08em;margin:0;padding-top:1.1rem;font-size:.8rem;font-weight:600}.back{color:var(--ink-soft);align-self:flex-start;margin:0 0 .4rem;font-size:.78rem;text-decoration:none}.back:hover{color:var(--ink)}.to-road{border-top:1px solid var(--line);letter-spacing:.08em;color:var(--ink-soft);padding-top:1.1rem;font-size:.8rem;font-weight:600;text-decoration:none;display:block}.to-road:hover{color:var(--ink)}.landing .dedication{color:var(--ink-soft);margin:0;font-size:.85rem;line-height:1.7}.landing .dedication span{opacity:.75;font-size:.72rem;display:block}.landing h2{letter-spacing:.02em;margin:0;font-size:1.9rem;font-weight:650}.landing .lede{margin:0;font-size:.95rem}.teasers{color:var(--ink-soft);flex-direction:column;gap:.55rem;margin:0;padding:0;font-size:.88rem;line-height:1.7;list-style:none;display:flex}.teasers li:before{content:"·";color:var(--accent);margin-right:.5em}.landing .primary{margin-top:.4rem}.birthday-fields{align-items:baseline;gap:.9rem;display:flex}.birthday-fields label{align-items:baseline;gap:.3rem;font-size:.9rem;display:flex}.birthday-fields select{border:0;border-bottom:1px solid color-mix(in srgb, var(--ink) 38%, transparent);font-variant-numeric:tabular-nums;background:0 0;border-radius:0;padding:.35rem .2rem}.birthday-fields select:focus{border-bottom-color:var(--ink);outline:none}.entry-form input[type=text],.entry-form textarea{border:0;border-bottom:1px solid color-mix(in srgb, var(--ink) 38%, transparent);background:0 0;border-radius:0;width:100%;padding:.6rem 0;font-size:.9rem}.entry-form input[type=text]:focus,.entry-form textarea:focus{border-bottom-color:var(--ink);outline:none}.entry-form{flex-direction:column;align-items:stretch;gap:.7rem;display:flex}.type-row{gap:.5rem;display:flex}.type-row label{border:1px solid color-mix(in srgb, var(--ink) 30%, transparent);cursor:pointer;border-radius:999px;padding:.32rem .8rem;font-size:.76rem;transition:background-color .14s,color .14s;position:relative}.type-row label.checked{border-color:var(--ink);color:var(--paper);background:var(--ink)}.type-row input{opacity:0;pointer-events:none;position:absolute}.type-row label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.line-row{gap:.4rem;display:flex}.line-row label{border:1px solid color-mix(in srgb, var(--ink) 30%, transparent);cursor:pointer;border-radius:.4rem;padding:.28rem .4rem;transition:background-color .14s,border-color .14s;display:flex;position:relative}.line-row input{opacity:0;pointer-events:none;position:absolute}.line-row svg{width:1.55rem;height:auto;display:block}.line-row svg line{stroke:var(--ink);stroke-width:1px;opacity:.22;vector-effect:non-scaling-stroke}.line-row svg line.active{stroke-width:1.6px;opacity:.95}.line-row label.checked{border-color:var(--ink);background:var(--ink)}.line-row label.checked svg line{stroke:var(--paper)}.line-row label:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:2px}.when{align-items:baseline;gap:.45rem;margin:0;font-size:.9rem;display:flex}.when strong{font-variant-numeric:tabular-nums;font-size:1.1rem}.when .dash{color:var(--ink-soft)}.when select{border:0;border-bottom:1px solid color-mix(in srgb, var(--ink) 38%, transparent);font-variant-numeric:tabular-nums;background:0 0;border-radius:0;padding:.15rem .2rem;font-size:.9rem}.when small{font-variant-numeric:tabular-nums;color:var(--ink-soft);margin-left:auto;font-size:.72rem}.entry-form textarea{resize:vertical;min-height:2.4rem}::placeholder{color:color-mix(in srgb, var(--ink) 34%, transparent)}.primary{border:1px solid var(--ink);min-height:2.5rem;color:var(--paper);background:var(--ink);cursor:pointer;border-radius:0;justify-content:center;align-self:flex-start;align-items:center;padding:.6rem 1.2rem;font-size:.82rem;line-height:1;text-decoration:none;transition:background-color .14s,color .14s;display:inline-flex}.primary:hover,.primary:focus-visible{color:var(--ink);background:0 0}.quiet{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:0;font-size:.76rem;text-decoration:none}.quiet:hover,.quiet:focus-visible{color:var(--ink)}.danger{color:var(--accent);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:.76rem}.error{color:var(--accent);margin:0;font-size:.76rem}.empty{color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.7}.entry-list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.entry-list li{border-bottom:1px dashed var(--line);flex-direction:column;gap:.2rem;padding:.65rem 0;display:flex}.entry-head{align-items:baseline;gap:.5rem;display:flex}.entry-head strong{font-variant-numeric:tabular-nums;font-size:.85rem}.entry-head small{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.7rem}.entry-title{margin:0;font-size:.92rem;line-height:1.6}.entry-note{color:var(--ink-soft);white-space:pre-wrap;margin:0;font-size:.8rem;line-height:1.7}.entry-actions{align-items:baseline;gap:.9rem;margin-top:.15rem;display:flex}.entry-list .delete{opacity:0;transition:opacity .14s}.entry-list li:hover .delete,.entry-list .delete:focus-visible{opacity:1}.delete-row{gap:.9rem;margin-top:.15rem;display:flex}.form-actions{align-items:center;gap:.9rem;display:flex}.ahead-intro{color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.7}.starter-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.starter{border-bottom:1px dashed var(--line);grid-template-columns:3.4rem minmax(0,1fr);gap:.8rem;padding:1rem 0;display:grid}.starter-age{align-items:baseline;gap:.15rem;padding-top:.1rem;display:flex}.starter-age strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:650;line-height:1}.starter-age span{color:var(--ink-soft);font-size:.68rem}.starter-body p{margin:0;font-size:.85rem;line-height:1.75}.starter-meta{flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:.8rem;display:flex}.starter-meta a{color:var(--ink);border-bottom:1px solid color-mix(in srgb, var(--ink) 35%, transparent);font-size:.9rem;font-weight:600;text-decoration:none}.starter-meta a:hover{border-bottom-color:var(--ink)}.starter-meta .field{color:var(--ink-soft)}.starter-meta .lifespan{font-variant-numeric:tabular-nums;color:var(--ink-soft);opacity:.8;font-size:.68rem}.starter-story{margin-top:.3rem!important}.starter-later{color:var(--ink-soft);margin-top:.25rem!important}.starter-later:before{content:"后来 —— ";color:var(--accent)}.empty-ahead{color:var(--ink-soft);margin:0;font-size:.85rem;line-height:1.8}.cell-tip{color:var(--paper);background:var(--ink);border-radius:2px;flex-direction:column;align-items:center;gap:.05rem;padding:.4rem .6rem;font-size:.72rem;line-height:1.35;display:flex;box-shadow:0 4px 14px #26201938}.cell-tip strong{font-variant-numeric:tabular-nums;font-size:.82rem}.cell-tip span{font-variant-numeric:tabular-nums;opacity:.72;font-size:.66rem}@media (aspect-ratio>=1){body{overflow:hidden}.site{height:100svh}.workspace{--information-width:clamp(20rem, 30vw, 25rem);grid-template-columns:auto var(--information-width);grid-template-rows:minmax(0,1fr);justify-content:start}.grid-region{width:min(calc(100svh - 7rem), calc(100cqw - var(--information-width) - var(--gap)))}.information{min-height:0}.pane{width:100%;padding-top:0}}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}::selection{color:var(--paper);background:var(--accent)}@media (prefers-reduced-motion:reduce){.cell-link,.primary,.type-row label,.line-row label{transition:none}}
