.edge-icons[data-astro-cid-ygvq3yn3]{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity 1.2s ease}.edge-icons[data-astro-cid-ygvq3yn3].on{opacity:1}.edge-icon[data-astro-cid-ygvq3yn3]{position:absolute;color:#2a160d38;animation-name:edge-bob;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;will-change:transform}.edge-icon[data-astro-cid-ygvq3yn3] svg[data-astro-cid-ygvq3yn3]{display:block;width:100%;height:100%}.c-lav[data-astro-cid-ygvq3yn3]{color:#8b78b480}.c-mint[data-astro-cid-ygvq3yn3]{color:#68a47e7a}.c-blue[data-astro-cid-ygvq3yn3]{color:#92b0d48c}.c-gold[data-astro-cid-ygvq3yn3]{color:#c49c426b}.c-orange[data-astro-cid-ygvq3yn3]{color:#dea6567a}body.night .edge-icon[data-astro-cid-ygvq3yn3]{color:#f2ead93d}body.night .c-lav[data-astro-cid-ygvq3yn3]{color:#a394c273}body.night .c-mint[data-astro-cid-ygvq3yn3]{color:#7cb59066}body.night .c-blue[data-astro-cid-ygvq3yn3]{color:#a9c0dc73}body.night .c-gold[data-astro-cid-ygvq3yn3]{color:#f0d78c61}body.night .c-orange[data-astro-cid-ygvq3yn3]{color:#eebe7a66}@keyframes edge-bob{0%{transform:translateY(-5px) rotate(-3deg)}to{transform:translateY(6px) rotate(4deg)}}@media(prefers-reduced-motion:reduce){.edge-icon[data-astro-cid-ygvq3yn3]{animation:none}}@media(max-width:900px){.edge-icons[data-astro-cid-ygvq3yn3]{display:none}}#aipet{position:fixed;right:clamp(.9rem,3vw,2.2rem);bottom:clamp(.9rem,3vw,2.2rem);z-index:60}#aipet .aipet-face{display:block;width:86px;height:86px;padding:0;background:none;border:0;cursor:pointer;position:relative;filter:drop-shadow(0 6px 18px rgba(42,22,13,.18));transition:transform .35s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent}#aipet .aipet-face:hover{transform:scale(1.07)}#aipet .aipet-face svg{width:100%;height:100%;overflow:visible;display:block}#aipet .aipet-body-g{animation:aipet-bob 4.6s ease-in-out infinite;transform-origin:60px 66px}@keyframes aipet-bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2.4deg)}}#aipet .aipet-body-shadow{fill:var(--ink);opacity:.12;transform:translate(2.5px,4px)}#aipet .aipet-body{fill:var(--paper);stroke:var(--ink);stroke-width:3.4;stroke-linejoin:round}#aipet .aipet-hair{stroke:var(--ink);stroke-width:3.2}#aipet .eye-white{fill:var(--paper);stroke:var(--ink);stroke-width:3}#aipet .eye-pupil circle:first-child{fill:var(--ink)}#aipet .eye-glint{fill:var(--paper)}#aipet .aipet-eyes{transform-origin:60px 55px;transform-box:view-box}#aipet.blinking .aipet-eyes{animation:aipet-blink .22s ease-in-out}@keyframes aipet-blink{50%{transform:scaleY(.08)}}#aipet .aipet-eyes,#aipet .eye-pupil{transition:transform .12s ease-out}#aipet .aipet-mouth{stroke:var(--ink);stroke-width:3;fill:var(--ink)}#aipet .mouth-talk{stroke:none}#aipet.talking .mouth-idle{opacity:0}#aipet.talking .mouth-talk{opacity:1!important;animation:aipet-chatter .32s ease-in-out infinite}@keyframes aipet-chatter{50%{transform:scaleY(.45)}}#aipet .aipet-orbits .aipet-star{fill:var(--marker, #eebe7a);transform-origin:center;transform-box:fill-box}#aipet .s1{animation:aipet-twinkle 2.8s ease-in-out infinite}#aipet .s2{animation:aipet-twinkle 3.6s ease-in-out .8s infinite}#aipet .s3{animation:aipet-twinkle 3.1s ease-in-out 1.5s infinite}@keyframes aipet-twinkle{50%{transform:scale(.4) rotate(40deg);opacity:.35}}#aipet .aipet-tag{position:absolute;top:-4px;right:-6px;background:var(--ink);color:var(--paper);font-size:.62rem;letter-spacing:.14em;padding:.15em .55em;border-radius:99px;transform:rotate(6deg)}#aipet .aipet-mood{position:absolute;right:6px;bottom:96px;z-index:61;width:max-content;max-width:230px;padding:.32em .7em;border-radius:12px;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink-20);box-shadow:0 8px 22px #2a160d2e;font-size:.72rem;line-height:1.4;white-space:normal;text-align:left;animation:aipet-mood-in .35s cubic-bezier(.34,1.56,.64,1)}@keyframes aipet-mood-in{0%{opacity:0;transform:translateY(6px) scale(.85)}}#aipet .aipet-mood:after{content:"";position:absolute;right:18px;bottom:-5.5px;width:9px;height:9px;background:var(--paper);border-right:1.5px solid var(--ink-20);border-bottom:1.5px solid var(--ink-20);transform:rotate(45deg)}body.night #aipet .aipet-mood{background:#332216;color:#f7ead9;border-color:#eebe7a59}body.night #aipet .aipet-mood:after{background:#332216;border-color:#eebe7a59}#aipet.aipet-egg .aipet-face{animation:aipet-egg-jump .5s cubic-bezier(.34,1.56,.64,1) 4}@keyframes aipet-egg-jump{0%,to{transform:translateY(0) rotate(0)}40%{transform:translateY(-20px) rotate(-8deg)}70%{transform:translateY(0) scale(1.06,.92)}}#aipet .aipet-panel{position:absolute;right:0;bottom:100px;width:min(348px,calc(100vw - 2rem));height:min(500px,calc(100dvh - 9rem));display:flex;flex-direction:column;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink-20);border-radius:20px;box-shadow:0 18px 50px #2a160d38;overflow:hidden;transform-origin:bottom right;transition:width .35s cubic-bezier(.23,1,.32,1),height .35s cubic-bezier(.23,1,.32,1),transform .4s cubic-bezier(.23,1,.32,1),opacity .3s ease}#aipet .aipet-panel.expanded{position:fixed;inset:0;width:auto;height:auto;border-radius:0;transform-origin:center}#aipet .aipet-panel.expanded .aipet-msgs,#aipet .aipet-panel.expanded .aipet-chips,#aipet .aipet-panel.expanded .aipet-privacy,#aipet .aipet-panel.expanded .aipet-attach,#aipet .aipet-panel.expanded .aipet-form{max-width:880px;width:100%;margin-left:auto;margin-right:auto}#aipet .aipet-panel.expanded .aipet-form{padding-left:1rem;padding-right:1rem;box-sizing:border-box}#aipet .aipet-panel[hidden]{display:flex;transform:scale(.6) translateY(24px);opacity:0;pointer-events:none}#aipet .aipet-head{display:flex;align-items:center;gap:.6rem;padding:.65rem .8rem;border-bottom:1.5px solid var(--ink-10);background:var(--paper-sunken)}#aipet .aipet-mini{width:34px;height:34px;flex:none}#aipet .aipet-mini svg{width:100%;height:100%;overflow:visible;display:block}#aipet .aipet-mini .aipet-body{stroke-width:6}#aipet .mini-pupil{fill:var(--ink)}#aipet .mini-mouth{stroke:var(--ink);stroke-width:5}#aipet .aipet-eyes-mini{transform-origin:60px 56px;transform-box:view-box;animation:aipet-blink-mini 4.2s infinite}@keyframes aipet-blink-mini{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}#aipet .aipet-title{flex:1;line-height:1.25;display:flex;flex-direction:column}#aipet .aipet-title strong{font-size:.95rem}#aipet .aipet-title em{font-style:normal;color:var(--ink-60);font-size:.62rem;letter-spacing:.1em}#aipet .aipet-close{flex:none;width:32px;height:32px;display:grid;place-items:center;background:none;border:0;color:var(--ink-60);cursor:pointer;border-radius:10px}#aipet .aipet-close:hover{background:var(--ink-10);color:var(--ink)}#aipet .aipet-clear{flex:none;width:32px;height:32px;display:grid;place-items:center;background:none;border:0;color:var(--ink-60);cursor:pointer;border-radius:8px}#aipet .aipet-clear:hover{background:var(--ink-10);color:var(--ink)}#aipet .aipet-expand{flex:none;width:32px;height:32px;display:grid;place-items:center;background:none;border:0;color:var(--ink-60);cursor:pointer;border-radius:8px}#aipet .aipet-expand:hover{background:var(--ink-10);color:var(--ink)}#aipet .aipet-expand[aria-pressed=true]{color:var(--ink);background:var(--ink-10)}#aipet .aipet-scope{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.35rem .85rem;background:var(--paper-sunken);border-bottom:1px solid var(--ink-10);color:var(--ink-80);font-size:.72rem}#aipet .aipet-scope[hidden]{display:none}#aipet .aipet-scope span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#aipet .aipet-scope button{flex:none;border:0;background:none;color:var(--ink-60);font:inherit;text-decoration:underline;cursor:pointer}#aipet .aipet-msgs{flex:1;overflow-y:auto;padding:.95rem .9rem;display:flex;flex-direction:column;gap:.7rem;scroll-behavior:smooth}#aipet .msg-row{display:flex;align-items:flex-end;gap:.45rem;max-width:100%;animation:msg-pop .32s cubic-bezier(.34,1.56,.64,1)}#aipet .msg-row.user{flex-direction:row-reverse}@keyframes msg-pop{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}#aipet .msg-avatar{width:26px;height:26px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:.66rem;user-select:none}#aipet .msg-row.bot .msg-avatar{background:var(--paper-sunken);border:1px solid var(--ink-10);color:var(--ink);padding:2.5px}#aipet .msg-row.bot .msg-avatar svg{width:100%;height:100%;display:block}#aipet .msg-row.user .msg-avatar{background:var(--ink);color:var(--paper);font-weight:600}#aipet .msg{max-width:76%;padding:.55rem .8rem;border-radius:16px;font-size:.88rem;line-height:1.65;white-space:pre-wrap;word-break:break-word}#aipet .msg.bot{background:var(--paper-sunken);color:var(--ink);border:1px solid var(--ink-10);border-bottom-left-radius:5px;box-shadow:0 1px 3px #2a160d0f}#aipet .msg.user{background:var(--ink);color:var(--paper);border-bottom-right-radius:5px;box-shadow:0 2px 7px #2a160d33}#aipet .msg-img{display:block;max-width:200px;max-height:140px;border-radius:10px;margin-top:.4rem;border:1px solid var(--ink-10);object-fit:cover}#aipet .msg.user .msg-img{border-color:#fcfcf840}#aipet .aipet-sources{display:flex;flex-wrap:wrap;gap:.35rem;padding-left:2.2rem}#aipet .aipet-sources a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.18rem .4rem;border:1px solid var(--ink-20);border-radius:4px;color:var(--ink-80);font-size:.7rem;text-decoration:none}#aipet .aipet-sources a:hover{border-color:var(--ink-60)}#aipet .msg.typing{display:inline-flex;gap:4px;align-items:center;padding:.75rem .85rem}#aipet .msg.typing i{width:6px;height:6px;border-radius:50%;background:var(--ink-60);animation:aipet-dot 1s ease-in-out infinite}#aipet .msg.typing i:nth-child(2){animation-delay:.15s}#aipet .msg.typing i:nth-child(3){animation-delay:.3s}@keyframes aipet-dot{40%{transform:translateY(-4px);opacity:1}0%,to{opacity:.4}}#aipet .aipet-chips{display:flex;gap:.4rem;padding:0 .8rem .55rem;flex-wrap:wrap}#aipet .aipet-chips:empty{display:none}#aipet .aipet-attach{display:flex;gap:.4rem;padding:0 .8rem .55rem;flex-wrap:wrap}#aipet .aipet-attach[hidden]{display:none}#aipet .attach-item{position:relative;width:52px;height:52px}#aipet .attach-item img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--ink-20)}#aipet .attach-item.attach-file{width:auto;max-width:180px;height:30px;align-self:center}#aipet .attach-file-name{display:inline-block;padding:.28em .6em;font-size:.72rem;line-height:1.3;background:var(--paper-sunken);border:1px solid var(--ink-20);border-radius:8px;color:var(--ink-80);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}#aipet .attach-file .attach-rm{top:-7px;right:-7px}#aipet .attach-rm{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;border:0;background:var(--ink);color:var(--paper);font-size:12px;line-height:1;cursor:pointer;display:grid;place-items:center}#aipet .chip{font-size:.74rem;padding:.28em .75em;border-radius:99px;cursor:pointer;background:none;border:1px solid var(--ink-20);color:var(--ink-60);font-family:inherit;transition:color .2s,border-color .2s}#aipet .chip:hover{color:var(--ink);border-color:var(--ink-60)}#aipet .aipet-privacy{padding:.4rem .8rem;border-top:1px solid var(--ink-10);color:var(--ink-60);font-size:.66rem;line-height:1.35}#aipet .aipet-form{display:flex;gap:.5rem;padding:.65rem .8rem;border-top:1.5px solid var(--ink-10)}#aipet .aipet-input{flex:1;min-width:0;padding:.5rem .75rem;font:inherit;font-size:.88rem;background:var(--paper-sunken);color:var(--ink);border:1px solid var(--ink-10);border-radius:12px;outline:none}#aipet .aipet-input:focus{border-color:var(--ink-40)}#aipet .aipet-attach-btn{flex:none;width:40px;height:40px;display:grid;place-items:center;background:var(--paper-sunken);color:var(--ink-60);border:1px solid var(--ink-10);border-radius:12px;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),color .2s ease}#aipet .aipet-attach-btn:hover{color:var(--ink);transform:translateY(-2px) rotate(90deg)}#aipet .aipet-send{flex:none;width:40px;height:40px;display:grid;place-items:center;background:var(--ink);color:var(--paper);border:0;border-radius:12px;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}#aipet .aipet-send:hover{transform:translateY(-2px) rotate(-8deg)}body.night #aipet .aipet-face{filter:drop-shadow(0 0 16px rgba(238,190,122,.5)) drop-shadow(0 6px 18px rgba(0,0,0,.4))}body.night #aipet .aipet-body,body.night #aipet .eye-white{fill:#332216}body.night #aipet .aipet-panel{border-color:#eebe7a40;box-shadow:0 18px 50px #0000008c}@media(max-width:560px){#aipet .aipet-face{width:56px;height:56px}#aipet .aipet-panel{right:-.2rem;bottom:72px}#aipet .aipet-tag{font-size:.55rem}#aipet .aipet-mood{bottom:64px;right:-.2rem;font-size:.7rem;max-width:min(78vw,330px)}}:root{--paper: #fcfcf8;--paper-sunken: #f4f0e6;--ink: #2a160d;--ink-80: rgba(42, 22, 13, .8);--ink-60: rgba(42, 22, 13, .6);--ink-40: rgba(42, 22, 13, .4);--ink-20: rgba(42, 22, 13, .2);--ink-10: rgba(42, 22, 13, .1);--marker: rgba(238, 190, 122, .85);--serif: Georgia, "Times New Roman", "Songti SC", "Noto Serif SC", "SimSun", serif;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--fs-display: clamp(2.6rem, 6.5vw, 5.2rem);--fs-section: clamp(1.9rem, 3.4vw, 2.8rem);--fs-lead: clamp(1.05rem, 1.6vw, 1.25rem);--fs-body: 1rem;--fs-meta: .75rem;--maxw: 68rem;--gutter: clamp(1.25rem, 5vw, 4rem);--ease-out: cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);line-height:1.75;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:var(--ink);color:var(--paper)}.uline{text-decoration:none;color:inherit;background-image:linear-gradient(90deg,var(--marker) 0,var(--marker) 50%,var(--ink-40) 0,var(--ink-40));background-position:100% 100%;background-repeat:no-repeat;background-size:200% 1.5px;transition:background-position .45s var(--ease-out)}.uline:hover{background-position:0 100%}.on-dark .uline,.uline--dark{background-image:linear-gradient(90deg,var(--marker) 0,var(--marker) 50%,rgba(252,252,248,.35) 0,rgba(252,252,248,.35))}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.mono-meta{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}.on-dark .mono-meta{color:#fcfcf88c}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--ink-20);margin-bottom:0;position:relative}.section-head:after{content:"";position:absolute;left:0;bottom:-1px;width:3.25rem;height:2px;background:var(--ink)}.section-head :is(h1,h2){font-family:var(--serif);font-weight:400;font-size:var(--fs-section);letter-spacing:-.01em;line-height:1.15}.index-row{display:grid;grid-template-columns:3.5rem 1fr auto;align-items:baseline;gap:1rem 2rem;padding:1.4rem .5rem;border-bottom:1px solid var(--ink-10);text-decoration:none;color:inherit;transition:background-color .3s var(--ease-out)}.index-row:hover{background:var(--paper-sunken)}.index-row .row-no{font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-40)}.index-row .row-title{font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,1.9rem);font-weight:400;line-height:1.25}.index-row .row-sub{color:var(--ink-60);font-size:.9rem;margin-top:.15rem}.index-row .row-meta{font-family:var(--mono);font-size:var(--fs-meta);color:var(--ink-60);text-align:right;white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--ink-20);border-radius:999px;padding:.3rem .9rem;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.08em;color:var(--ink-80)}.pill .dot{width:6px;height:6px;border-radius:50%;background:#7a9a4e;animation:breathe 2.6s ease-in-out infinite}@keyframes breathe{0%,to{opacity:1}50%{opacity:.35}}.site-header{position:sticky;top:0;z-index:10;background:#f7f5fb8c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:3.9rem}.brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--serif);font-size:1.15rem;text-decoration:none;color:inherit;letter-spacing:.01em}.brand-icon{width:1.3em;height:1.3em;color:var(--ink-60);transition:transform .6s var(--ease-out),color .3s var(--ease-out)}.brand:hover .brand-icon{transform:rotate(24deg);color:var(--ink)}.site-nav{display:flex;gap:.45rem}.menu-toggle{display:none}.nav-pill{display:inline-flex;align-items:center;gap:.4em;padding:.34rem .85rem;border-radius:999px;border:1px solid transparent;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.1em;text-decoration:none;color:var(--ink-60);transition:background-color .3s var(--ease-out),border-color .3s var(--ease-out),color .3s var(--ease-out)}.nav-icon{width:1.05em;height:1.05em;flex:none;opacity:.75;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.nav-pill:hover{background:#2a160d0d;border-color:#2a160d1a;color:var(--ink)}.nav-pill:hover .nav-icon{opacity:1;transform:translateY(-1px)}.nav-pill.active{background:#2a160d0f;border-color:#2a160d24;color:var(--ink)}.nav-pill.active .nav-icon{opacity:1}.site-footer{background:#f7f5fb;padding:2rem 0 2.5rem}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.08em;color:var(--ink-60)}.site-footer a{color:inherit;text-decoration:none;transition:opacity .3s var(--ease-out)}.site-footer a:hover{opacity:.65}.tag-link{color:var(--ink-60);text-decoration:none;transition:color .3s var(--ease-out)}.tag-link:hover{color:var(--ink)}.topic-block{margin:1.5rem 0 0;position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--ink-10);border-radius:16px;padding:1.2rem 1.4rem .6rem}.topic-block:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--topic-color, var(--ink-20))}.topic-block:nth-child(5n+1){--topic-color: #a394c2}.topic-block:nth-child(5n+2){--topic-color: #7cb590}.topic-block:nth-child(5n+3){--topic-color: #a9c0dc}.topic-block:nth-child(5n+4){--topic-color: #e0c26a}.topic-block:nth-child(5n+5){--topic-color: #eebe7a}.topic-block .index-row:last-of-type{border-bottom:none}.topic-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.topic-tag{font-family:var(--serif);font-size:1.5rem;color:var(--ink);text-decoration:none}.topic-tag:hover{color:var(--topic-color, var(--ink))}.topic-title{font-family:var(--serif);background:var(--paper-sunken);border:1px solid var(--ink-10);padding:.12em .55em;border-radius:10px}body.night .topic-block{background:#241812}.on-dark{background:var(--ink);color:var(--paper)}.on-dark ::selection{background:var(--paper);color:var(--ink)}.prose{max-width:44rem}.prose h1{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.25;letter-spacing:-.01em;margin:1rem 0 .75rem}.prose h2{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin:2.5rem 0 .75rem}.prose h3{font-family:var(--serif);font-weight:400;font-size:1.2rem;margin:2rem 0 .5rem}.prose p{margin:1rem 0;color:var(--ink-80)}.prose ul,.prose ol{margin:1rem 0;padding-left:1.4rem;color:var(--ink-80)}.prose li{margin:.35rem 0}.prose a{color:inherit}.prose blockquote{margin:1.5rem 0;padding-left:1.2rem;border-left:2px solid var(--ink-20);font-family:var(--serif);color:var(--ink-60)}.prose code{font-family:var(--mono);font-size:.875em;background:var(--paper-sunken);padding:.15em .4em;border-radius:3px}.prose pre{background:var(--ink);color:var(--paper);padding:1.1rem 1.25rem;border-radius:4px;overflow-x:auto;margin:1.5rem 0;font-size:.875rem;line-height:1.7}.prose pre code{background:none;padding:0}.prose img{max-width:100%;border-radius:4px}.prose hr{border:none;border-top:1px solid var(--ink-10);margin:2.5rem 0}@media(max-width:720px){.index-row{grid-template-columns:2.5rem 1fr}.index-row .row-meta{grid-column:2;text-align:left}.site-nav{gap:.25rem}.nav-pill{padding:.28rem .55rem;letter-spacing:.04em}.section-head{flex-direction:column;gap:.35rem}}@media(max-width:560px){.menu-toggle{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--ink-20);border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}.site-nav{display:none;position:absolute;top:3.9rem;right:var(--gutter);left:var(--gutter);padding:.7rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem;border:1px solid var(--ink-20);border-radius:4px;background:var(--paper);box-shadow:0 12px 28px #2a160d26}.site-nav.open{display:grid}.nav-pill{padding:.55rem .7rem;min-width:44px;min-height:44px;justify-content:flex-start}.night-btn{justify-content:center}.footer-right{flex-wrap:wrap;gap:.6rem 1.25rem}.back-top span{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.uline,.site-nav a,.site-footer a,.index-row{transition:none}.pill .dot{animation:none}}body:before{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:0}.project-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.65rem;background:var(--paper);border:1px solid var(--ink-10);border-radius:14px;padding:1.5rem 1.4rem 1.25rem;text-decoration:none;color:inherit;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}.project-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px #2a160d24}.project-card:hover:before{transform:scaleX(1)}.card-top{display:flex;justify-content:space-between;align-items:baseline}.card-lang{display:inline-flex;align-items:center;gap:.4em;padding:.2rem .65rem;border-radius:999px;border:1px solid var(--ink-10);background:var(--paper);font-size:.72rem}.lang-icon{width:.95em;height:.95em;flex:none;opacity:.65;transform:translateY(.08em);transition:opacity .3s var(--ease-out)}.project-card:hover .lang-icon{opacity:1}.dust-zone{position:relative;background:#f7f5fb}.dust-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:0}.dust-zone>section{position:relative;z-index:1}.card-name{font-family:var(--serif);font-size:1.35rem;line-height:1.25;font-weight:400;display:inline-block;align-self:flex-start}.card-desc{color:var(--ink-60);font-size:.92rem;line-height:1.7;flex:1}.card-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--ink-10)}.card-arrow{color:var(--ink-40);transition:transform .35s var(--ease-out),color .35s var(--ease-out)}.project-card:hover .card-arrow{transform:translate(3px,-3px);color:var(--ink)}.stats-row{display:flex;flex-wrap:wrap;gap:2.5rem 4rem;margin-top:3rem;padding-top:1.75rem;border-top:1px solid rgba(252,252,248,.15)}.stat .stat-num{font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.1;display:block}.stat .stat-label{margin-top:.3rem}@media(max-width:900px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.card-grid{grid-template-columns:1fr}.stats-row{gap:1.5rem 2.5rem}}.hero{position:relative;min-height:calc(100vh - 3.75rem);display:flex;align-items:center;overflow:hidden;background:#f7f5fb}#hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}@media(max-width:720px){#hero-canvas{display:none}}.hero-inner{position:relative;z-index:1;width:100%;padding-top:3rem;padding-bottom:4.5rem}.hero-copy{max-width:27rem}.hero-copy h1 em{color:var(--ink-80)}.entry-list{margin-top:2.75rem;border-top:1px solid var(--ink-20)}.entry{display:flex;align-items:baseline;gap:1.1rem;padding:.95rem .4rem;border-bottom:1px solid var(--ink-10);text-decoration:none;color:inherit;transition:background-color .35s var(--ease-out)}.entry:hover{background:#fcfcf8bf}.entry-no{color:var(--ink-40)}.entry-title{font-family:var(--serif);font-size:1.3rem;line-height:1.2}.entry-sub{color:var(--ink-60);font-size:.88rem;flex:1}.entry .card-arrow{align-self:center}.entry:hover .card-arrow{transform:translate(3px,-3px);color:var(--ink)}@media(max-width:720px){.hero{min-height:calc(100svh - 3.75rem)}.hero-inner{padding-top:2.5rem}.entry-sub{display:none}}.about-hero{background:#f7f5fb;border-bottom:1px solid var(--ink-10);padding-top:clamp(3rem,8vw,5rem);padding-bottom:clamp(2.5rem,6vw,4rem)}.about-body{padding-top:clamp(2.5rem,6vw,4rem);padding-bottom:clamp(3rem,8vw,6rem)}.about-grid{display:grid;grid-template-columns:13rem 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}.avatar-slot{position:relative;width:13rem;height:13rem;border-radius:50%;border:1px solid var(--ink-20);background:var(--paper-sunken);overflow:hidden;display:flex;align-items:center;justify-content:center}.avatar-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.avatar-hint{color:var(--ink-40);text-align:center;line-height:1.9}.about-lead{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.6;margin-bottom:1.25rem}.about-main>p:not(.about-lead):not(.mono-meta){color:var(--ink-80);max-width:38em;margin-bottom:1rem}.stats-row--light{border-top-color:var(--ink-15, rgba(42, 22, 13, .15));margin-top:2.5rem}.about-contact{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--ink-10)}@media(max-width:720px){.about-grid{grid-template-columns:1fr}.about-side{display:flex;align-items:center;gap:1.5rem}.avatar-slot{width:6.5rem;height:6.5rem;flex-shrink:0}.about-side .mono-meta{text-align:left;margin-top:0}}.footer-right{display:inline-flex;gap:1.5rem}.footer-icon-link{display:inline-flex;align-items:center;gap:.45em}.footer-icon{width:1.05em;height:1.05em;flex:none;opacity:.75;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.footer-icon-link:hover .footer-icon{opacity:1;transform:translateY(-1px)}.back-top{display:inline-flex;align-items:center;gap:.4em;padding:.28rem .8rem;border:1px solid var(--ink-20);border-radius:999px;color:var(--ink-60);text-decoration:none;transition:background-color .3s var(--ease-out),border-color .3s var(--ease-out),color .3s var(--ease-out)}.back-top:hover{background:#2a160d0d;border-color:var(--ink-40);color:var(--ink)}.back-top:hover .footer-icon{opacity:1;transform:translateY(-2px)}.scroll-cue{position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%);z-index:1;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;color:var(--ink-40);animation:cue-fade 2.6s ease-in-out infinite;transition:color .3s var(--ease-out)}.scroll-cue:hover{color:var(--ink);animation-play-state:paused;opacity:1}.scroll-cue svg{animation:cue-drift 2.6s ease-in-out infinite}@keyframes cue-fade{0%,to{opacity:.25}50%{opacity:.9}}@keyframes cue-drift{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media(prefers-reduced-motion:reduce){.scroll-cue,.scroll-cue svg{animation:none;opacity:.6}}.notes-layout{display:grid;grid-template-columns:15rem minmax(0,1fr) 11rem;gap:clamp(2rem,4.5vw,4rem);max-width:82rem;padding-top:clamp(2.5rem,6vw,4rem);padding-bottom:clamp(3rem,8vw,6rem);align-items:start}.notes-side{position:sticky;top:5rem;max-height:calc(100vh - 7rem);overflow-y:auto;scrollbar-width:thin}.side-group{margin-bottom:1.4rem}.side-year{color:var(--ink-40);padding-bottom:.35rem;border-bottom:1px solid var(--ink-10);margin-bottom:.35rem}.side-link{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.45rem .5rem;text-decoration:none;color:var(--ink-60);border-radius:2px;transition:background-color .3s var(--ease-out),color .3s var(--ease-out)}.side-link:hover,.side-link.active{background:var(--paper-sunken);color:var(--ink)}.side-link.active .side-title{background-image:linear-gradient(90deg,var(--marker) 0,var(--marker) 100%);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1.5px}.side-title{font-family:var(--serif);font-size:.95rem;line-height:1.45}.side-date{color:var(--ink-40);white-space:nowrap}.notes-toc{position:sticky;top:5rem;display:flex;flex-direction:column;gap:.15rem;border-left:1px solid var(--ink-10);padding-left:1.1rem}.toc-link{font-size:.82rem;line-height:1.5;color:var(--ink-60);text-decoration:none;padding:.15rem 0;transition:color .3s var(--ease-out)}.toc-link:hover{color:var(--ink)}.toc-h3{padding-left:.9rem;font-size:.78rem}.notes-article{max-width:100%;min-width:0;overflow-wrap:anywhere}.notes-tools{display:flex;flex-wrap:wrap;gap:1.5rem;padding:1.1rem 0 .35rem;font-size:.88rem}.note-ask,.project-ask{margin-top:.7rem;padding:.5rem .85rem;border:1px solid var(--ink-20);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer}.note-ask:hover,.project-ask:hover{background:var(--paper-sunken)}.search-page{padding-top:clamp(3rem,8vw,5.5rem);padding-bottom:6rem;min-height:60vh}.site-search-form{display:flex;max-width:42rem;gap:.6rem;margin:2rem 0 .65rem}.site-search-form input{flex:1;min-width:0;padding:.7rem .9rem;border:1px solid var(--ink-20);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit}.site-search-form button{padding:.7rem 1.2rem;border:0;border-radius:4px;background:var(--ink);color:var(--paper);font:inherit;cursor:pointer}.search-status{color:var(--ink-60);font-size:.88rem}.search-results{max-width:48rem;margin-top:1.3rem;border-top:1px solid var(--ink-20)}.search-result{display:flex;flex-direction:column;gap:.15rem;padding:1rem 0;border-bottom:1px solid var(--ink-10);text-decoration:none;color:var(--ink)}.search-result strong{font-family:var(--serif);font-size:1.15rem;font-weight:400}.search-result>span:last-child{color:var(--ink-60);font-size:.88rem}.search-result:hover strong{text-decoration:underline;text-decoration-color:var(--marker)}.project-detail{max-width:52rem;min-height:65vh;padding-top:clamp(3rem,8vw,5.5rem);padding-bottom:6rem}.project-detail-kicker{margin-top:2rem}.project-detail h1{margin-top:.5rem;font:400 clamp(2rem,4vw,3.2rem)/1.15 var(--serif);overflow-wrap:anywhere}.project-detail-lead{margin-top:1rem;color:var(--ink-80);font-size:1.1rem}.project-detail-meta{display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;margin:1.3rem 0 2rem;color:var(--ink-60);font-size:.82rem}.project-detail-meta span{display:inline-flex;align-items:center;gap:.35rem}.project-detail-meta svg{width:1rem;height:1rem}.project-detail-section{padding:1.3rem 0;border-top:1px solid var(--ink-20)}.project-detail-section h2{margin-bottom:.6rem;font:400 1.35rem var(--serif)}.project-detail-section ul{padding-left:1.3rem}.project-detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.9rem;margin-top:1.6rem}.project-link{display:inline-flex;padding:.55rem .9rem;border-radius:4px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:.88rem}.project-doc{background:transparent;color:var(--ink);border:1.5px solid var(--ink);font-weight:600}.project-doc:hover{background:var(--ink);color:var(--paper)}.project-ask{margin-top:0}.prev-next{display:flex;justify-content:space-between;gap:1.5rem;margin-top:2rem}.pn-link{display:flex;flex-direction:column;gap:.3rem;text-decoration:none;color:var(--ink-60);transition:color .3s var(--ease-out);max-width:48%}.pn-link:hover{color:var(--ink)}.pn-right{text-align:right;margin-left:auto}.pn-title{font-family:var(--serif);font-size:1.05rem;align-self:flex-start}.pn-right .pn-title{align-self:flex-end}.notes-mobile-nav{display:none}@media(max-width:1100px){.notes-layout{grid-template-columns:14rem minmax(0,1fr)}.notes-toc{display:none}}@media(max-width:820px){.notes-layout{grid-template-columns:minmax(0,1fr)}.notes-side{display:none}.notes-mobile-nav{display:block;padding-top:1.5rem;border-bottom:1px solid var(--ink-10);padding-bottom:1.25rem}.notes-mobile-nav summary{cursor:pointer;color:var(--ink-60);list-style:none}.notes-mobile-nav summary::-webkit-details-marker{display:none}.notes-mobile-nav[open] summary{margin-bottom:1rem}.notes-mobile-nav summary:before{content:"▸ "}.notes-mobile-nav[open] summary:before{content:"▾ "}.notes-mobile-nav .side-link,.notes-mobile-nav .toc-link{padding:.45rem .25rem}}#read-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:linear-gradient(90deg,#a394c2,#7cb590 55%,#f0d78c);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}.click-star{position:fixed;z-index:70;pointer-events:none;line-height:1;transform:translate(-50%,-50%);animation:star-pop .8s var(--ease-out) forwards;text-shadow:0 0 8px currentColor}@keyframes star-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}25%{opacity:1}to{opacity:0;transform:translate(-50%,calc(-50% - 52px)) scale(1.15) rotate(160deg)}}.star-shower{position:fixed;inset:0;z-index:65;pointer-events:none;overflow:hidden}.star-shower span{position:absolute;top:-6vh;line-height:1;animation:star-fall linear forwards;text-shadow:0 0 10px currentColor}@keyframes star-fall{0%{transform:translateY(0) rotate(0);opacity:0}8%{opacity:1}to{transform:translateY(115vh) rotate(300deg);opacity:.85}}.footer-clock{font-variant-numeric:tabular-nums}body.night{--paper: #1f150e;--paper-sunken: #2a1d14;--ink: #f2ead9;--ink-80: rgba(242, 234, 217, .8);--ink-60: rgba(242, 234, 217, .6);--ink-40: rgba(242, 234, 217, .4);--ink-20: rgba(242, 234, 217, .2);--ink-10: rgba(242, 234, 217, .12);--marker: rgba(238, 190, 122, .9)}body.night .hero,body.night .about-hero,body.night .dust-zone,body.night .site-footer{background:#241812}body.night .site-header{background:#24181299}body.night .entry:hover{background:#f2ead90f}body.night .notes-mobile-nav{background:#24181280}.night-btn{cursor:pointer;background:none;font:inherit;color:var(--ink-60);margin-left:.35rem}.night-btn:hover{color:var(--ink)}.night-btn[aria-pressed=true]{background:#2a160d14;border-color:#2a160d29;color:var(--ink)}body.night .night-btn[aria-pressed=true]{background:#f2ead91a;border-color:#f2ead938}.comet-dot{position:fixed;z-index:68;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);animation:comet-fade .7s ease-out forwards}@keyframes comet-fade{0%{opacity:.75}to{opacity:0;transform:translate(-50%,-50%) scale(.15)}}.about-card{position:relative;background:var(--paper);border:1px solid var(--ink-10);border-radius:16px;padding:clamp(1.5rem,3.5vw,2.4rem)}.about-card:before,.about-card:after{content:"";position:absolute;inset:0;border-radius:16px;z-index:-1;border:1px solid var(--ink-10)}.about-card:before{background:#efecf5;transform:rotate(1.1deg) translate(7px,9px)}.about-card:after{background:#e7f0ea;transform:rotate(-1.5deg) translate(-8px,13px)}.about-card>p{margin-bottom:.9rem;color:var(--ink-80)}.edu-badges{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.1rem 0 1.35rem}.edu-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.32rem .85rem .32rem .55rem;border-radius:999px;border:1px solid var(--ink-10);background:var(--paper);font-size:.85rem}.edu-badge .dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0}.edu-badge--whu .dot{background:#7cb590;box-shadow:0 0 0 3px #7cb59033}.edu-badge--nju .dot{background:#a394c2;box-shadow:0 0 0 3px #a394c233}.edu-badge .en{font-family:var(--mono);font-size:.72rem;color:var(--ink-40);letter-spacing:.08em}.about-marker{font-family:var(--serif);background:linear-gradient(transparent 58%,var(--marker, rgba(240, 215, 140, .55)) 58%);padding:0 .14em}.shelf-title .about-marker{background:linear-gradient(transparent 58%,var(--marker, rgba(240, 215, 140, .55)) 58%) no-repeat;background-size:0% 100%;background-position:0 0;animation:marker-sweep .9s cubic-bezier(.6,.05,.2,1) both;animation-delay:var(--mdelay, 0s)}@keyframes marker-sweep{to{background-size:100% 100%}}body.night .shelf-title .about-marker{background-image:linear-gradient(transparent 58%,var(--marker, rgba(238, 190, 122, .28)) 58%)}@media(prefers-reduced-motion:reduce){.shelf-title .about-marker{animation:none;background-size:100% 100%}}.research-card{margin-top:2.4rem;background:var(--paper-sunken);border:1px solid var(--ink-10);border-radius:16px;padding:1.4rem clamp(1.25rem,3vw,1.9rem) 1.6rem}.chip-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.05rem;border-radius:12px;border:1px solid var(--ink-10);font-size:.92rem;transition:transform .25s ease,box-shadow .25s ease}.chip:hover{transform:translateY(-3px);box-shadow:0 10px 22px #2a160d21}.chip svg{width:1.05rem;height:1.05rem;flex-shrink:0}.chip--lav{background:#efecf5;color:#4b3d68}.chip--lav svg{color:#8d7cb0}.chip--blue{background:#e9eff6;color:#33475e}.chip--blue svg{color:#7d9cc4}.chip--orange{background:#fbeedd;color:#6b4a1c}.chip--orange svg{color:#d99b4e}.about-contact{background:var(--paper-sunken);border:1px solid var(--ink-10);border-radius:16px;padding:1.5rem clamp(1.25rem,3vw,1.9rem) 1.75rem}body.night .about-card{background:#241812}body.night .about-card:before{background:#a394c224}body.night .about-card:after{background:#7cb5901f}body.night .edu-badge{background:#241812}body.night .chip--lav{background:#a394c229;color:#d9d0ec}body.night .chip--lav svg{color:#b3a4d6}body.night .chip--blue{background:#a9c0dc24;color:#cfe0f2}body.night .chip--blue svg{color:#9db8d8}body.night .chip--orange{background:#eebe7a26;color:#f2dcba}body.night .chip--orange svg{color:#e2b877}body.night .about-marker{background:linear-gradient(transparent 58%,#eebe7a47 58%)}.project-card:nth-child(5n+1){background:#f5f2fa}.project-card:nth-child(5n+1):before{background:#a394c2}.project-card:nth-child(5n+2){background:#f0f6f1}.project-card:nth-child(5n+2):before{background:#7cb590}.project-card:nth-child(5n+3){background:#eff3f9}.project-card:nth-child(5n+3):before{background:#a9c0dc}.project-card:nth-child(5n+4){background:#faf5e6}.project-card:nth-child(5n+4):before{background:#e0c26a}.project-card:nth-child(5n+5){background:#fbf1e3}.project-card:nth-child(5n+5):before{background:#eebe7a}body.night .project-card{background:#241812}body.night .project-card:hover{box-shadow:0 16px 34px #00000080}body.night .card-lang{background:#241812}.shelf-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:.85rem}@media(max-width:900px){.shelf-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:520px){.shelf-stats{grid-template-columns:repeat(2,1fr)}}.shelf-stat-link{position:relative;display:flex;flex-direction:column;gap:.3rem;padding:.95rem 1.05rem .9rem;text-decoration:none;color:inherit;background:var(--paper);border:1px solid var(--ink-10);border-radius:14px;overflow:hidden;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .3s var(--ease-out)}.shelf-stat-link:before{content:"";position:absolute;top:0;left:0;height:3px;width:34%;border-radius:0 3px 3px 0;background:var(--stat, var(--ink-20));transition:width .4s var(--ease-out)}.shelf-stat-link:hover{transform:translateY(-3px);border-color:var(--ink-20);box-shadow:0 12px 26px #2a160d1f}.shelf-stat-link:hover:before{width:100%}.shelf-stat-link:hover .shelf-stats-num{color:var(--ink)}.shelf-stat-link:hover .shelf-stats-tag{color:var(--ink-80)}.shelf-anchor{scroll-margin-top:4.5rem}.shelf-stats-num{font-family:var(--serif);font-size:1.7rem;line-height:1.1;color:var(--ink-80);transition:color .3s var(--ease-out)}.shelf-stats-num small{font-size:.72rem;margin-left:.3rem;color:var(--ink-40);font-family:var(--sans)}.shelf-stats-tag{font-family:var(--serif);font-size:.88rem;letter-spacing:.12em;color:var(--ink-60);transition:color .3s var(--ease-out)}body.night .shelf-stat-link{background:#241812}body.night .shelf-stat-link:hover{box-shadow:0 12px 26px #00000073}body.night .shelf-stats-num{color:#f2e5d8d9}body.night .shelf-stats-tag{color:#f2e5d88c}.shelf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;margin-top:1.5rem}.shelf-card{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--ink-10);border-radius:16px;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}.shelf-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px #2a160d24}.shelf-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--kind-color, var(--ink-20));z-index:2}.shelf-card[data-kind=韩剧]{--kind-color: #a394c2}.shelf-card[data-kind=美剧]{--kind-color: #c45a4e}.shelf-card[data-kind=电影]{--kind-color: #a9c0dc}.shelf-card[data-kind=书]{--kind-color: #7cb590}.shelf-card[data-kind=音乐]{--kind-color: #e0c26a}.shelf-card[data-kind=游戏]{--kind-color: #eebe7a}.shelf-media{aspect-ratio:16 / 9;background:var(--paper-sunken);overflow:hidden}.shelf-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease-out)}.shelf-card:hover .shelf-media img{transform:scale(1.03)}.shelf-poster{position:relative;background-size:130%;background-position:center 20%}.shelf-poster:before{content:"";position:absolute;inset:-12%;background-image:inherit;background-size:130%;background-position:center 20%;filter:blur(22px) saturate(1.15) brightness(.92)}.shelf-poster img{position:relative;object-fit:contain;padding:.5rem 0;box-sizing:border-box;filter:drop-shadow(0 4px 14px rgba(42,22,13,.35))}body.night .shelf-poster img{filter:drop-shadow(0 4px 14px rgba(0,0,0,.6))}.shelf-play-btn{display:inline-flex;align-items:center;gap:.3em;padding:.18em .75em .22em;border-radius:99px;border:1px solid rgba(124,181,144,.55);background:#7cb59024;color:#4a7a5c;text-decoration:none;font-size:.85em;letter-spacing:.03em;transition:background-color .3s var(--ease-out),transform .3s var(--ease-out)}.shelf-play-btn:hover{background:#7cb59047;transform:translateY(-1px)}body.night .shelf-play-btn{color:#a9d8ba;border-color:#7cb59073;background:#7cb5901f}.shelf-body{padding:1.1rem 1.25rem 1.3rem}.shelf-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.shelf-head h3{font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.3}.shelf-alt{color:var(--ink-40);font-size:.85rem;margin-left:.2rem}.shelf-headmeta{flex-shrink:0}.shelf-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .65rem;border-radius:999px;border:1px solid var(--ink-10);background:var(--paper);font-size:.75rem;white-space:nowrap}.shelf-chip .dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--ink-40)}.shelf-chip.now .dot{background:#d99b4e;animation:shelf-pulse 1.6s ease-in-out infinite}@keyframes shelf-pulse{0%,to{box-shadow:0 0 #d99b4e73}50%{box-shadow:0 0 0 5px #d99b4e00}}.shelf-stars{color:#d9a83e;letter-spacing:.12em}.shelf-comment{margin-top:.85rem;padding-top:.8rem;border-top:1px dashed var(--ink-20)}.shelf-comment .prose p{font-size:.92rem;color:var(--ink-80);margin:.4rem 0}.shelf-comment .prose.shelf-quotes ol{margin:0;padding-left:1.2rem}.shelf-comment .prose.shelf-quotes li{font-size:.92rem;color:var(--ink-80);line-height:1.7;margin:.25rem 0}.shelf-empty{color:var(--ink-40);font-style:italic;font-size:.92rem}.shelf-book-grid{grid-template-columns:1fr}.shelf-book{display:grid;grid-template-columns:6.8rem 1fr;gap:1.7rem;align-items:center;padding:1.5rem 1.8rem}.shelf-book-cover{position:relative;align-self:center;perspective:600px}.shelf-book-cover img{display:block;width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:4px 10px 10px 4px;box-shadow:-2px 0 #2a160d1f inset,0 10px 22px #2a160d38,0 2px 6px #2a160d1f;transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out);transform-origin:left center}.shelf-book:hover .shelf-book-cover img{transform:rotateY(-9deg) translateY(-4px);box-shadow:-2px 0 #2a160d1f inset,14px 22px 40px #2a160d42,0 4px 10px #2a160d24}.shelf-book-info{min-width:0}.shelf-book-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem .7rem}.shelf-book-head h3{font-family:var(--serif);font-size:1.35rem;font-weight:400}.shelf-book-head .shelf-headmeta{margin-left:auto}.shelf-book-quote{position:relative;margin:.9rem 0 0;padding-left:1.4rem;border-left:none;font-family:var(--serif);font-size:1.06rem;line-height:1.85;color:var(--ink-60)}.shelf-book-quote:before{content:"“";position:absolute;left:-.35rem;top:-1.35rem;font-size:3.2rem;line-height:1;color:var(--marker, rgba(238, 190, 122, .55));font-family:var(--serif);pointer-events:none}.shelf-book-quote p{margin:0}body.night .shelf-book-cover img{box-shadow:-2px 0 #0000004d inset,0 10px 24px #0000008c,0 2px 6px #0006}@media(max-width:560px){.shelf-book{grid-template-columns:5.2rem 1fr;gap:1.1rem;padding:1.1rem 1.15rem}.shelf-book-head h3{font-size:1.15rem}}.shelf-song-grid{grid-template-columns:repeat(3,1fr)}.shelf-song{display:flex;flex-direction:column;padding:1.3rem 1.3rem 1.4rem}.song-disc{position:relative;width:100%;aspect-ratio:1 / .92;margin-bottom:1rem}.song-vinyl{position:absolute;top:4%;right:0;width:80%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle at center,#20140d 0 1.6px,#33231a 1.6px 3.2px);box-shadow:0 6px 16px #2a160d4d;animation:vinyl-spin 9s linear infinite}.song-vinyl:after{content:"";position:absolute;inset:31%;border-radius:50%;background:radial-gradient(circle,#eebe7af2 0 58%,#d8b25c 58% 100%)}.song-vinyl:before{content:"";position:absolute;inset:47.5%;border-radius:50%;background:var(--paper);z-index:1}.song-vinyl-label{display:none}.song-cover{position:absolute;top:0;left:0;width:80%;aspect-ratio:1;object-fit:cover;border-radius:8px;box-shadow:0 10px 24px #2a160d4d,0 2px 6px #2a160d26;transition:transform .5s var(--ease-out);z-index:1}.shelf-song:hover .song-cover{transform:translate(-9%) rotate(-4deg)}.song-info{min-width:0}.song-info .shelf-book-head h3{font-size:1.18rem}.shelf-song-quote{font-size:.98rem;line-height:1.75}@keyframes vinyl-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.song-vinyl{animation:none}}body.night .song-vinyl{background:repeating-radial-gradient(circle at center,#0d0805 0 1.6px,#241812 1.6px 3.2px);box-shadow:0 6px 16px #0000008c}@media(max-width:900px){.shelf-song-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.shelf-song-grid{grid-template-columns:1fr}}@media(max-width:720px){.shelf-grid{grid-template-columns:1fr}}body.night .shelf-card{background:#241812}body.night .shelf-card:hover{box-shadow:0 16px 34px #00000080}body.night .shelf-chip{background:#241812}.shelf-card[data-kind=旅行]{--kind-color: #8fbfb0}.travel-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:0 0 2rem}.travel-gallery img{width:100%;border-radius:14px;border:1px solid var(--ink-10);aspect-ratio:4 / 3;object-fit:cover;display:block}.travel-gallery img:first-child{grid-column:1 / -1;aspect-ratio:21 / 9}.travel-body{max-width:42em}.travel-body h2{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin-top:2rem;padding-bottom:.4rem;border-bottom:1px solid var(--ink-10)}@media(max-width:720px){.travel-gallery{grid-template-columns:1fr}.travel-gallery img:first-child{aspect-ratio:16 / 9}}.shelf-travel-cta{font-size:.92rem}.shelf-stars-wrap{position:relative;display:inline-block;line-height:1;letter-spacing:.12em;font-size:.85rem}.shelf-stars-base{color:var(--ink-20)}.shelf-stars-fill{position:absolute;inset:0;overflow:hidden;color:#d9a83e;white-space:nowrap;width:0;transition:width 1.2s var(--ease-out)}.shelf-stars-num{margin-left:.45rem;color:var(--ink-60)}.shelf-media.has-gallery{cursor:zoom-in}.shelf-media-badge{position:absolute;right:.7rem;bottom:.7rem;display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .7rem;border-radius:999px;font-size:.75rem;font-family:var(--mono);letter-spacing:.04em;color:#fdfaf3;background:#1e120a9e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transform:translateY(4px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out);pointer-events:none}.shelf-media-badge svg{width:.95rem;height:.95rem}.shelf-media.has-gallery:hover .shelf-media-badge,.shelf-media.has-gallery:focus-within .shelf-media-badge{opacity:1;transform:translateY(0)}@media(pointer:coarse){.shelf-media-badge{opacity:1;transform:none}}.shelf-lb{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#160d08e0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease-out),visibility .3s}.shelf-lb.open{opacity:1;visibility:visible}.shelf-lb-stage{margin:0;max-width:min(92vw,1200px);text-align:center}.shelf-lb-stage img{max-width:100%;max-height:80vh;border-radius:12px;box-shadow:0 24px 70px #00000080;transition:transform .25s var(--ease-out),opacity .25s var(--ease-out)}.shelf-lb-cap{margin-top:.9rem;color:#fdfaf3d9;font-family:var(--serif);font-size:.95rem;letter-spacing:.08em}.shelf-lb-count{position:absolute;bottom:1.4rem;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:.82rem;letter-spacing:.15em;color:#fdfaf3bf}.shelf-lb-close{position:absolute;top:1.1rem;right:1.3rem;width:44px;height:44px;border-radius:50%;border:1px solid rgba(253,250,243,.25);background:#fdfaf314;color:#fdfaf3;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .25s var(--ease-out)}.shelf-lb-close:hover{background:#fdfaf333}.shelf-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(253,250,243,.25);background:#fdfaf314;color:#fdfaf3;font-size:1.9rem;line-height:1;cursor:pointer;transition:background .25s var(--ease-out)}.shelf-lb-nav:hover{background:#fdfaf333}.shelf-lb-nav.prev{left:1.3rem}.shelf-lb-nav.next{right:1.3rem}.shelf-lb-nav[disabled]{display:none}@media(max-width:640px){.shelf-lb-nav.prev{left:.5rem}.shelf-lb-nav.next{right:.5rem}.shelf-lb-nav{width:44px;height:44px;font-size:1.5rem}.shelf-lb-stage img{max-height:68vh}}.shelf-media{position:relative}.shelf-media.has-gallery .shelf-media-badge{z-index:4}.shelf-stack{position:absolute;inset:0;pointer-events:none}.shelf-stack .stk{position:absolute;inset:3.5%;background-size:cover;background-position:center;border-radius:10px;box-shadow:0 0 0 5px #fdfaf3e6,0 6px 16px #2a160d29}.shelf-stack .stk-1{transform:rotate(-3.2deg)}.shelf-stack .stk-2{transform:rotate(2.4deg)}.stk-front{position:relative;z-index:2}.stk-front.in-stack{transform:scale(.92);border-radius:10px;box-shadow:0 0 0 6px #fdfaf3f5,0 14px 30px #2a160d42;transition:opacity .38s var(--ease-out),transform .45s var(--ease-out)}.stk-front.in-stack.swap{opacity:0}.shelf-card:hover .shelf-media .stk-front.in-stack{transform:scale(.95)}body.night .shelf-stack .stk,body.night .stk-front.in-stack{box-shadow:0 0 0 5px #2e2016f2,0 6px 16px #0006}body.night .stk-front.in-stack{box-shadow:0 0 0 6px #2e2016fa,0 14px 30px #00000080}.site-header{z-index:30}:root{--ink-60: rgba(42, 22, 13, .72)}[hidden]{display:none!important}:where(a,button,summary,input,select):focus-visible{outline:2px solid #80659e;outline-offset:5px}.home-hero{min-height:0}.home-hero .hero-inner{padding-top:clamp(2rem,5vh,3.2rem);padding-bottom:4rem}.home-hero .hero-copy{max-width:31rem}.home-hero .hero-copy>.mono-meta{margin-bottom:1rem!important}.home-hero .hero-copy>p:not(.mono-meta):not(.hero-context){font-size:1.02rem!important;margin-top:1.15rem!important;max-width:28em!important}.hero-context{margin-top:.85rem;font-size:.76rem;color:var(--ink-60)}.home-hero .entry-list{margin-top:1.5rem;display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}.home-hero .entry{flex-wrap:wrap;gap:.35rem .6rem;padding:.8rem 0}.home-hero .entry-title{font-size:1.12rem}.home-hero .entry-sub{flex-basis:100%;order:4;padding-left:1.8rem;font-size:.76rem}.home-hero .entry .card-arrow{margin-left:auto}.home-hero .scroll-cue{bottom:1rem;font-size:.7rem;animation:none;opacity:.85;color:var(--ink-60)}.home-section{padding-top:1.8rem;padding-bottom:2.6rem}#start{scroll-margin-top:5rem}.section-intro{color:var(--ink-60);margin:-1rem 0 1.3rem;font-size:.9rem}.start-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.start-card{border-top:2px solid #a394c2;padding:1.4rem;background:var(--paper);border-radius:0 0 12px 12px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:.85rem;transition:transform .2s ease,box-shadow .2s ease}.start-card:nth-child(2){border-color:#7cb590}.start-card:nth-child(3){border-color:#a9c0dc}.start-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px var(--ink-10)}.start-card-top{display:flex;justify-content:space-between;align-items:center}.start-card-top>span{font-size:1.5rem;color:var(--ink-60)}.start-card h3{font:400 1.45rem/1.4 var(--serif)}.start-card p{font-size:.88rem;color:var(--ink-60);flex:1}.start-card-link{font-size:.8rem;margin-top:.5rem}.start-card-link>span{float:right}.now-card{display:grid;grid-template-columns:13rem 1fr;padding:1.8rem;border:1px solid var(--ink-10);border-radius:16px;gap:2rem;background:var(--paper)}.now-heading h2{font:400 1.85rem/1.5 var(--serif);margin:.45rem 0}.now-heading>p:last-child{font-size:.82rem;color:var(--ink-60)}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#689178;margin-right:.4rem;vertical-align:middle}.now-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;align-items:center}.now-items a{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:.4rem}.now-items a:hover strong{text-decoration:underline;text-decoration-color:var(--marker);text-underline-offset:4px}.now-label{color:var(--ink-60);font-size:.75rem}.now-items strong{font-size:.94rem;font-weight:500}.now-items a>span:last-child{font-size:.75rem;color:var(--ink-60)}.content-kind{display:inline-block;padding:.05rem .45rem;border:1px solid var(--ink-20);border-radius:4px;font-size:.65rem;vertical-align:.15rem;margin-right:.65rem;color:var(--ink-60)}.lab-feature{display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden;position:relative;background:var(--paper);border:1px solid var(--ink-10);border-radius:20px}.lab-copy{padding:clamp(1.5rem,3.8vw,3rem)}.lab-kicker{font-size:.7rem}.lab-copy h2{font:400 clamp(2rem,3.5vw,3rem)/1.3 var(--serif);letter-spacing:-.03em;margin:1.25rem 0}.lab-name{font-size:1.2rem;font-weight:600}.lab-name span{display:block;color:var(--ink-60);font-weight:400;font-size:.78rem;margin-top:.2rem}.lab-description{color:var(--ink-60);font-size:.9rem;margin:1rem 0 1.5rem;max-width:31em}.lab-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;font-size:.85rem}.solid-link{display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;padding:.75rem 1rem;min-height:44px;border:1px solid var(--ink);border-radius:7px;color:var(--paper);background:var(--ink);text-decoration:none;font:inherit;cursor:pointer}.solid-link:hover{opacity:.85}.lab-footnote{font-size:.72rem;color:var(--ink-60);margin-top:1rem}.lab-art{position:relative;min-height:340px;background:radial-gradient(ellipse at 60% 38%,rgba(169,192,220,.46),transparent 65%),linear-gradient(140deg,#a394c221,#7cb59024);overflow:hidden;display:grid;place-items:center}.lab-orbit{position:absolute;width:300px;height:300px;border:1px solid var(--ink-10);border-radius:50%}.lab-orbit:after{content:"";position:absolute;inset:-40px;border:1px dashed var(--ink-10);border-radius:50%}.lab-symbol{font:italic 400 7rem/1 var(--serif);color:#547489;transform:translateY(15px)}.lab-symbol span{color:#809b82}.lab-art-label{position:absolute;top:2rem;font:.65rem var(--mono);letter-spacing:.24em;color:var(--ink-60)}.lab-bubble{position:absolute;font-size:.85rem;padding:.9rem 1.2rem;box-shadow:0 8px 25px #2a160d0d;z-index:1}.bubble-one{top:24%;left:11%;background:var(--paper);border:1px solid var(--ink-10);border-radius:14px 14px 14px 3px;transform:rotate(-5deg)}.bubble-two{bottom:22%;right:7%;background:#536d81;color:#fff;border-radius:14px 14px 3px;transform:rotate(4deg)}.bubble-two span{margin-left:1rem}.bubble-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:.6rem;background:#a394c2}.lab-channels{position:absolute;bottom:2rem;display:flex;gap:1.5rem;color:var(--ink-60);font-size:.7rem}.lab-page{padding-top:2.5rem;padding-bottom:5rem}.lab-page-title{font:400 clamp(2rem,4vw,3.2rem)/1.3 var(--serif);margin:1.5rem 0 2rem}.lab-page-title span{display:block;font:.8rem var(--sans);color:var(--ink-60);margin-top:.8rem}.lab-page .lab-feature .solid-link{display:none}.lab-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin:3rem 0}.lab-details h2{font:400 1.3rem/1.5 var(--serif);margin:.8rem 0}.lab-details p:not(.mono-meta),.lab-invite p{color:var(--ink-60);font-size:.9rem}.lab-invite{padding-top:2rem;border-top:1px solid var(--ink-20)}.lab-invite h2{font:400 1.6rem/1.5 var(--serif);margin-bottom:.8rem}.lab-invite .lab-actions{margin-top:1.4rem}.project-list-heading{font:400 1.8rem var(--serif);margin:3rem 0 1.5rem}.shelf-browser{position:sticky;top:3.9rem;z-index:5;background:var(--paper);border:1px solid var(--ink-10);border-radius:12px;padding:.65rem 1rem;box-shadow:0 5px 18px #2a160d0a}.shelf-categories{display:flex;overflow-x:auto;gap:.35rem;padding:.15rem 0 .45rem;scrollbar-width:thin}.shelf-categories a{display:inline-flex;flex:none;align-items:center;gap:.5rem;padding:.5rem .8rem;min-height:44px;color:var(--ink-60);text-decoration:none;font-size:.87rem;border-radius:7px}.shelf-categories a[aria-current]{background:var(--ink);color:var(--paper)}.shelf-categories small{font:.68rem var(--mono);opacity:.8}.shelf-filter-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;align-items:center;border-top:1px solid var(--ink-10);padding-top:.4rem}.shelf-views{display:flex;gap:.2rem;flex-wrap:wrap}.shelf-views button{font:.76rem var(--sans);border:1px solid transparent;background:none;color:var(--ink-60);cursor:pointer;padding:.55rem .65rem;min-height:44px;border-radius:6px}.shelf-views button[aria-pressed=true]{background:var(--paper-sunken);border-color:var(--ink-10);color:var(--ink)}#shelf-result-count{font-size:.73rem;color:var(--ink-60);white-space:nowrap}.shelf-anchor,#shelf-content{scroll-margin-top:14rem}.shelf-empty-state{padding:4rem 1rem;text-align:center}.shelf-empty-state h2{font:400 1.6rem var(--serif)}.shelf-empty-state p{margin:1rem 0 1.5rem;color:var(--ink-60)}.shelf-excerpt{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.shelf-excerpt>:first-child{margin-top:0}.reading-nav{display:none}.toc-link[aria-current=location]{color:var(--ink);background:var(--paper-sunken);border-radius:4px;box-shadow:inset 2px 0 #a394c2}.notes-article :is(h2,h3)[id]{scroll-margin-top:6rem}.related-notes{margin-top:3rem;border-top:1px solid var(--ink-20);padding-top:1rem}.related-notes a{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;padding:.75rem 0;text-decoration:none}.related-notes a strong{font-weight:500;grid-column:1}.related-notes a span:first-of-type{font-size:.85rem;color:var(--ink-60);grid-column:1}.related-notes a span:last-child{grid-column:2;grid-row:1 / 3;align-self:center}@media(max-width:1100px){.reading-nav{display:flex;gap:1rem;position:sticky;top:3.9rem;z-index:10;padding-top:.5rem;padding-bottom:.5rem;background:var(--paper);border-bottom:1px solid var(--ink-10)}.reading-nav details{flex:1;min-width:0}.reading-nav summary{cursor:pointer;font-size:.82rem;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.reading-nav summary:after{content:"+"}.reading-nav details[open] summary:after{content:"−"}.reading-nav summary span{color:var(--ink-60);font-size:.68rem}.reading-nav summary::-webkit-details-marker{display:none}.reading-nav-content{position:absolute;top:100%;left:0;right:0;padding:1rem var(--gutter);max-height:55vh;overflow-y:auto;background:var(--paper);border-bottom:1px solid var(--ink-20);box-shadow:0 12px 20px var(--ink-10)}.reading-nav-content a{padding:.7rem .5rem;min-height:44px}.notes-article :is(h2,h3)[id]{scroll-margin-top:9rem}.now-card{grid-template-columns:1fr;gap:1rem}}@media(max-width:720px){.home-hero{min-height:0}.home-hero .hero-inner{padding-top:2rem;padding-bottom:3.8rem}.home-hero .entry-sub{display:block}.home-hero .hero-copy{max-width:100%}.hero-context{max-width:26em}.start-grid{grid-template-columns:1fr}.start-card{padding:1.15rem 1.3rem;gap:.6rem}.start-card h3{font-size:1.35rem}.start-card-top>span{font-size:1.2rem}.now-card{padding:1.3rem}.now-items{grid-template-columns:1fr;gap:1rem}.now-items a{border-top:1px solid var(--ink-10);padding-top:.8rem}.lab-feature{grid-template-columns:1fr}.lab-art{min-height:250px}.lab-symbol{font-size:5rem}.lab-details{grid-template-columns:1fr;gap:1.5rem}.lab-details section{padding-bottom:1rem;border-bottom:1px solid var(--ink-10)}.shelf-browser{padding:.4rem .65rem}.shelf-filter-row{gap:.1rem}.shelf-views button{padding:.5rem .4rem;font-size:.72rem}#shelf-result-count{padding:.2rem .4rem}.reading-nav summary span{display:none}body.reading-page #aipet:not(.chat-open){right:0;bottom:max(1rem,env(safe-area-inset-bottom))}body.reading-page #aipet:not(.chat-open) .aipet-face{width:44px;height:44px;border-radius:12px 0 0 12px;background:var(--paper);border:1px solid var(--ink-20);border-right:0;padding:4px;filter:none}body.reading-page #aipet:not(.chat-open) :is(.aipet-tag,.aipet-mood,.aipet-orbits){display:none!important}body.reading-page #aipet:not(.chat-open) .aipet-body-g{animation:none}}@media(prefers-reduced-motion:reduce){.start-card{transition:none}.start-card:hover{transform:none}}
