:root{color-scheme:light;--bg:#fffaf8;--surface:#fffefd;--surface-soft:#fff0f3;--ink:#30242d;--muted:#695962;--faint:#806d77;--line:#ead9df;--accent:#9b315b;--accent-deep:#782343;--accent-soft:#fbe8ee;--accent-on:#fff;--pink:#e989a7;--shadow:0 18px 50px #5b244015;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--serif:"Noto Serif SC","Songti SC","STSong",serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#1c1820;--surface:#28202a;--surface-soft:#33232e;--ink:#fff6f8;--muted:#d2bcc6;--faint:#b499a7;--line:#533d4a;--accent:#ffabc5;--accent-deep:#ffd2df;--accent-soft:#442b3a;--accent-on:#241621;--pink:#f58eac;--shadow:0 18px 50px #08050b66}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{max-width:100%}[hidden]{display:none!important}::selection{background:#9edbc4a8;color:#102927}.container{width:min(100% - 64px,1180px);margin-inline:auto}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.skip-link{position:absolute;top:-60px;left:12px;z-index:200;background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:7px}.skip-link:focus{top:12px}
.preview-banner{position:relative;z-index:30;text-align:center;background:#d98d39;color:#231500;font-size:12px;font-weight:700;padding:5px}.site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(16px)}.header-inner{height:78px;display:flex;align-items:center;gap:46px}.brand{display:flex;align-items:center;gap:13px;flex:none}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--ink);color:var(--bg);font-size:20px;font-weight:800;letter-spacing:-.13em;padding-right:4px}.brand-mark span{color:var(--accent)}.brand-name{display:grid;font-size:17px;font-weight:750;line-height:1.18;letter-spacing:.02em}.brand-name small{margin-top:4px;color:var(--faint);font-size:9px;font-weight:500;letter-spacing:.11em;text-transform:uppercase}.site-nav{display:flex;align-items:center;gap:34px;margin-left:auto}.site-nav a{font-size:13px;color:var(--muted);padding:28px 0;position:relative}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink)}.site-nav a[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:17px;height:2px;background:var(--accent)}.header-tools{display:flex;align-items:center;gap:15px;margin-left:18px}.icon-button{border:1px solid var(--line);width:35px;height:35px;border-radius:9px;background:var(--surface);color:var(--ink);display:grid;place-items:center}.icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6}.icon-button:hover{border-color:var(--accent)}.header-write{border:1px solid var(--ink);border-radius:8px;padding:8px 13px;font-size:11px;font-weight:650;white-space:nowrap}.header-write:hover{background:var(--ink);color:var(--bg)}.header-write span{margin-left:12px}
.eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.16em;line-height:1.5;text-transform:uppercase}.eyebrow-dot{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--accent);vertical-align:2px}.accent{color:var(--accent)}.hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:70px;align-items:center;min-height:585px;padding-top:58px;padding-bottom:75px}.hero-copy{padding-top:8px}.hero h1{font:700 clamp(42px,4.7vw,65px)/1.43 var(--serif);letter-spacing:-.07em;margin:28px 0 23px}.hero h1 em{font-style:normal;color:var(--accent)}.hero-lead{max-width:520px;color:var(--muted);font-size:16px;line-height:2.05;margin:0}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:32px}.button-primary{display:inline-flex;align-items:center;gap:32px;background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:8px;font-size:13px;font-weight:650;white-space:nowrap}.button-primary:hover{background:var(--accent-deep);color:#fff}.text-link{font-size:13px;font-weight:600;color:var(--ink)}.text-link span{margin-left:8px;color:var(--accent)}.text-link:hover{color:var(--accent)}.hero-rule{display:flex;gap:16px;align-items:center;margin-top:76px;color:var(--faint);font-size:10px;font-weight:650;letter-spacing:.15em}.rule-line{height:1px;background:var(--line);flex:1}.hero-panel{height:433px;position:relative;overflow:hidden;border-radius:13px;border:1px solid var(--line);background:var(--surface-soft);box-shadow:var(--shadow);padding:25px 28px;display:flex;flex-direction:column;justify-content:space-between}.panel-top,.panel-bottom{display:flex;justify-content:space-between;align-items:center;color:var(--accent-deep);font-size:10px;font-weight:750;letter-spacing:.14em;z-index:2}.small-dot{font-size:6px;margin:0 6px;vertical-align:2px}.panel-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);opacity:.45}.panel-grid:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid var(--line)}.panel-grid:after{content:"";position:absolute;top:50%;left:0;right:0;border-top:1px solid var(--line)}.panel-cross{padding:17px;color:var(--accent);font-size:15px;font-weight:200}.panel-cross:nth-child(even){text-align:right}.panel-cross:nth-child(n+3){align-self:end}.panel-main{position:relative;z-index:2;padding:0 18px 2px}.panel-number{color:var(--accent);font-size:10px;font-weight:750;letter-spacing:.17em}.panel-symbol{font:350 87px/1 var(--sans);letter-spacing:-.23em;color:var(--accent);margin:15px 0 19px}.panel-symbol span{color:var(--pink)}.panel-main h2{font:600 27px/1.65 var(--serif);letter-spacing:-.05em;margin:0}.panel-main p{font-size:11px;letter-spacing:.08em;color:var(--muted);margin:14px 0 0}.panel-arrow{font-size:23px;line-height:1}
.topic-strip{border-block:1px solid var(--line);background:var(--surface)}.topic-inner{display:flex;align-items:center;gap:35px;min-height:76px}.topic-label{font-size:11px;color:var(--faint);letter-spacing:.09em;font-weight:650;white-space:nowrap}.topic-inner>a,.topic-inner>span:not(.topic-label){color:var(--ink);font-size:13px;font-weight:600;white-space:nowrap}.topic-inner a:hover{color:var(--accent)}.topic-inner a span{color:var(--accent);margin-left:8px}.topic-inner .topic-all{margin-left:auto;color:var(--accent);font-size:12px}
.home-content{padding-top:105px;padding-bottom:128px}.section-intro{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:31px}.section-intro h2{font:650 36px/1.35 var(--serif);letter-spacing:-.05em;margin:8px 0}.section-intro p:last-child{color:var(--muted);font-size:13px;margin:0}.section-more{font-size:12px;font-weight:700;color:var(--accent);padding-bottom:5px;white-space:nowrap}.section-more span{margin-left:13px}.section-more:hover{text-decoration:underline}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:62px}.post-stack{border-top:1px solid var(--line)}.post-row{display:grid;grid-template-columns:42px minmax(0,1fr) 20px;gap:17px;padding:30px 4px 30px 0;border-bottom:1px solid var(--line);transition:background .2s}.post-row:hover{background:var(--surface-soft)}.post-row-num{color:var(--accent);font-size:12px;font-weight:700;padding-top:2px}.post-row-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--faint)}.post-row-meta span:first-child{color:var(--accent);font-weight:700}.post-row h3{font:600 21px/1.45 var(--serif);letter-spacing:-.035em;margin:10px 0}.post-row p{font-size:12px;line-height:1.8;color:var(--muted);margin:0;max-width:620px}.post-tags{display:flex;gap:9px;margin-top:14px;color:var(--faint);font-size:10px}.post-row-arrow{font-size:20px;color:var(--accent);opacity:0;transition:opacity .2s}.post-row:hover .post-row-arrow{opacity:1}.empty-notes{padding:55px 10px;border-bottom:1px solid var(--line)}.empty-notes span{font-size:11px;color:var(--accent)}.empty-notes h3{font:600 23px var(--serif);margin:12px 0}.empty-notes p{color:var(--muted);font-size:13px}.home-aside{display:grid;gap:20px;align-content:start}.aside-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:27px;box-shadow:var(--shadow)}.aside-card .eyebrow{font-size:10px;margin:0}.aside-monogram{font:700 74px/1 var(--serif);letter-spacing:-.1em;margin:19px 0 23px}.aside-monogram span{color:var(--pink)}.aside-card h3{font:600 18px/1.55 var(--serif);margin:0 0 13px}.aside-card>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.95;margin:0 0 22px}.aside-card a{font-size:12px;color:var(--accent);font-weight:700}.aside-card a span{margin-left:10px}.aside-note{background:var(--accent-soft);border-radius:10px;padding:23px 25px;color:var(--accent-deep)}.note-symbol{font-size:23px}.aside-note p{font:650 17px/1.4 var(--serif);margin:10px 0}.aside-note small{font-size:11px;color:var(--muted)}.home-bottom{background:var(--surface-soft);border-top:1px solid var(--line)}.bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:67px;padding-bottom:69px}.bottom-inner h2{font:600 28px/1.6 var(--serif);letter-spacing:-.035em;margin:11px 0 0}.button-outline{border:1px solid var(--accent);border-radius:8px;padding:11px 17px;color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap}.button-outline span{margin-left:28px}.button-outline:hover{background:var(--accent);color:var(--bg)}
.site-footer{border-top:1px solid var(--line);background:var(--surface)}.footer-inner{display:flex;align-items:center;gap:40px;min-height:155px}.footer-brand{font-size:16px;font-weight:800}.footer-brand span{color:var(--accent)}.footer-inner p{margin:5px 0 0;color:var(--muted);font-size:11px}.footer-links{display:flex;gap:22px;margin-left:auto}.footer-links a{font-size:11px;color:var(--muted)}.footer-links a:hover{color:var(--accent)}.footer-inner>small{font-size:10px;color:var(--faint);white-space:nowrap}
.page-header{padding-top:83px;padding-bottom:53px;border-bottom:1px solid var(--line)}.page-header h1{font:650 clamp(38px,4vw,52px)/1.35 var(--serif);letter-spacing:-.06em;margin:14px 0}.page-header>p:last-child{color:var(--muted);font-size:14px;margin:0}.archive-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:70px;padding-top:51px;padding-bottom:120px}.archive-sidebar{align-self:start;position:sticky;top:116px}.sidebar-heading{color:var(--faint);font-size:11px;font-weight:700;letter-spacing:.13em;margin:0 0 13px}.archive-sidebar>a{display:flex;justify-content:space-between;border-radius:7px;padding:10px 12px;margin-left:-12px;color:var(--muted);font-size:12px}.archive-sidebar>a span{opacity:0;color:var(--accent)}.archive-sidebar>a:hover,.archive-sidebar>a.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:700}.archive-sidebar>a:hover span,.archive-sidebar>a.active span{opacity:1}.sidebar-foot{border-top:1px solid var(--line);margin-top:35px;padding-top:24px}.sidebar-foot span{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.1em}.sidebar-foot p{color:var(--muted);font-size:12px;line-height:1.9}.archive-search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0 5px 0 14px;height:47px}.archive-search svg{width:17px;height:17px;fill:none;stroke:var(--faint);stroke-width:1.6;flex:none}.archive-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.archive-search input::placeholder{color:var(--faint)}.archive-search button{border:0;background:var(--accent);color:#fff;border-radius:6px;padding:7px 17px;font-size:11px;font-weight:700}.archive-count{display:flex;justify-content:space-between;margin:35px 0 14px;color:var(--ink);font-size:12px;font-weight:700}.archive-count span{color:var(--faint);font-weight:500}.archive-card{display:block;padding:26px 28px;margin-bottom:13px;background:var(--surface);border:1px solid var(--line);border-radius:9px;transition:transform .2s,border-color .2s,box-shadow .2s}.archive-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow)}.archive-card-top,.archive-card-bottom{display:flex;justify-content:space-between;align-items:center}.category-pill{display:inline-flex;padding:4px 9px;border-radius:4px;background:var(--accent-soft);color:var(--accent-deep);font-size:10px;font-weight:750}.archive-card time{color:var(--faint);font-size:11px}.archive-card h2{font:650 21px/1.5 var(--serif);margin:17px 0 8px}.archive-card p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 23px}.archive-card-bottom{border-top:1px solid var(--line);padding-top:13px;color:var(--faint);font-size:11px}.archive-card-bottom span:last-child{color:var(--accent);font-weight:700}.archive-empty{text-align:center;padding:75px 15px;border:1px dashed var(--line);border-radius:8px}.archive-empty>span{font-size:45px;color:var(--accent)}.archive-empty h2{font:600 21px var(--serif)}.archive-empty p{color:var(--muted)}.archive-empty a{font-size:12px;color:var(--accent)}
.article-shell{display:grid;grid-template-columns:minmax(0,760px) minmax(175px,1fr);gap:76px;align-items:start;padding-top:42px;padding-bottom:100px}.breadcrumb{display:flex;gap:11px;color:var(--faint);font-size:11px;margin:0 0 45px}.breadcrumb a:hover{color:var(--accent)}.article-header{padding-bottom:31px;border-bottom:1px solid var(--line)}.article-kicker{display:flex;gap:8px}.preview-pill{font-size:10px;background:#fff1d9;color:#855200;padding:4px 9px;border-radius:4px}.article-header h1{font:650 clamp(34px,3.6vw,49px)/1.38 var(--serif);letter-spacing:-.055em;margin:19px 0 17px}.article-summary{font-size:15px;line-height:1.9;color:var(--muted);margin:0 0 25px}.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--faint)}.article-meta span:first-child{color:var(--accent);font-weight:750}.meta-separator{color:var(--line)}.article-sidebar{position:sticky;top:121px;padding-top:46px}.toc-box{border-left:1px solid var(--line);padding-left:20px}.toc-box>p{font-size:11px;font-weight:750;margin:0 0 18px}.toc-box nav{display:grid;gap:13px}.toc-box a,.toc-box nav span{font-size:11px;color:var(--muted);line-height:1.6}.toc-box a:hover{color:var(--accent)}.toc-level-3{padding-left:12px}.sidebar-loopy{background:var(--accent-soft);border-radius:9px;padding:19px;margin-top:29px}.sidebar-loopy>span{font-size:19px;color:var(--accent)}.sidebar-loopy p{font:600 15px/1.65 var(--serif);margin:7px 0}.sidebar-loopy small{font-size:10px;color:var(--muted)}.prose{font-size:15px;line-height:2.06;color:var(--ink);padding-top:18px;overflow-wrap:anywhere}.prose>p{margin:24px 0}.prose h2,.prose h3,.prose h4{font-family:var(--serif);letter-spacing:-.025em;scroll-margin-top:110px}.prose h2{font-size:25px;line-height:1.5;margin:53px 0 19px;padding-bottom:11px;border-bottom:1px solid var(--line)}.prose h3{font-size:19px;line-height:1.5;margin:37px 0 15px}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.prose blockquote{border-left:3px solid var(--accent);padding:2px 20px;margin:28px 0;background:var(--accent-soft);color:var(--muted)}.prose ul,.prose ol{padding-left:1.5em}.prose li{margin:7px 0}.prose img{display:block;height:auto;max-width:100%;border-radius:7px;margin:26px auto}.prose table{border-collapse:collapse;width:100%;font-size:13px;display:block;overflow:auto}.prose th,.prose td{border:1px solid var(--line);padding:9px 12px}.prose th{background:var(--surface-soft)}.prose code:not(pre code){font-size:.91em;background:var(--accent-soft);color:var(--accent-deep);padding:2px 5px;border-radius:4px}.code-block{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface);margin:27px 0;line-height:1.6}.code-toolbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--surface-soft);padding:7px 13px;font:11px var(--sans);color:var(--muted)}.copy-code{border:0;background:transparent;color:var(--accent);font-size:10px;padding:3px 5px}.code-block pre{overflow:auto;margin:0;padding:17px 19px;font:12px/1.75 "Cascadia Code",Consolas,monospace;color:var(--ink);tab-size:2}.code-block .k,.code-block .kn,.code-block .kd{color:#8b4db2}.code-block .s,.code-block .s1,.code-block .s2{color:#bf6b48}.code-block .c,.code-block .c1{color:var(--faint)}.code-block .nf,.code-block .nc{color:#217f8b}.article-end{display:flex;align-items:center;gap:16px;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.16em;margin-top:53px}.article-end:before,.article-end:after{content:"";height:1px;background:var(--line);flex:1}.article-end span:last-child{color:var(--accent);font-size:18px}.article-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.article-tags a{border:1px solid var(--line);padding:4px 10px;border-radius:5px;color:var(--muted);font-size:11px}.article-tags a:hover{color:var(--accent);border-color:var(--accent)}.article-actions{display:flex;justify-content:space-between;align-items:center;margin-top:39px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--accent);font-weight:700}.share-copy{border:0;background:none;color:var(--accent);font-size:12px}.related{margin-top:77px}.related h2{font:600 25px var(--serif);margin:5px 0 19px}.related>a{display:grid;grid-template-columns:80px 1fr 20px;align-items:center;gap:16px;border-top:1px solid var(--line);padding:17px 0;font-size:12px}.related>a span:first-child{color:var(--accent)}.related>a strong{font:600 15px var(--serif)}.related>a span:last-child{text-align:right;color:var(--accent)}.about-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:80px;padding-top:67px;padding-bottom:120px}.about-lead{font:600 26px/1.6 var(--serif)}.about-letter .prose{max-width:680px}.about-letter .button-primary{margin-top:30px}.about-side{background:var(--surface-soft);border:1px solid var(--line);border-radius:9px;padding:28px;height:310px;display:flex;flex-direction:column;justify-content:space-between}.about-side span{font-size:10px;letter-spacing:.13em;color:var(--accent);font-weight:750}.about-symbol{font:700 58px var(--sans);color:var(--accent);letter-spacing:-.09em}.about-side p{font:600 17px var(--serif);margin:0}
.pet{position:fixed;right:17px;bottom:14px;z-index:40;display:flex;align-items:center;flex-direction:column;width:124px;filter:drop-shadow(0 5px 10px #162a2a26)}.pet-figure{border:0;background:transparent;padding:0;width:115px;height:145px;display:grid;place-items:end center;transform-origin:bottom center;animation:pet-bob 4s ease-in-out infinite}.pet-figure img{width:100%;height:100%;object-fit:contain}.pet-figure:hover{transform:rotate(-3deg)}.pet-bar{background:var(--surface);border:1px solid var(--line);border-radius:20px;display:flex;align-items:center;gap:5px;padding:2px 6px 2px 8px;font-size:9px;color:var(--muted);white-space:nowrap;margin-top:-5px}.pet-status{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:3px;vertical-align:1px}.pet-bar button{border:0;background:transparent;color:var(--faint);font-size:15px;line-height:1;padding:0 1px}.pet-bar button:hover{color:var(--ink)}.pet-dialog{position:absolute;right:6px;bottom:163px;width:182px;background:var(--surface);border:1px solid var(--line);border-radius:12px 12px 3px 12px;box-shadow:var(--shadow);padding:10px 12px;font-size:11px;line-height:1.6;color:var(--ink)}.pet-summon{position:fixed;right:18px;bottom:18px;z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:18px;color:var(--accent);padding:7px 12px;font-size:11px;box-shadow:var(--shadow)}@keyframes pet-bob{50%{transform:translateY(-4px)}}
@media(max-width:1000px){.hero{gap:38px;grid-template-columns:minmax(0,1fr) minmax(330px,.8fr)}.content-grid{gap:35px;grid-template-columns:minmax(0,1fr) 270px}.archive-layout{gap:40px}.article-shell{gap:40px}.about-layout{gap:45px}}
@media(max-width:760px){.container{width:min(100% - 36px,1180px)}.header-inner{height:67px;gap:15px}.brand-mark{width:36px;height:36px;font-size:18px}.brand-name{font-size:14px}.brand-name small{font-size:7px}.site-nav{gap:18px}.site-nav a{font-size:11px;padding:20px 0}.site-nav a[aria-current=page]::after{bottom:13px}.header-tools{margin-left:0;gap:0}.header-write{display:none}.hero{grid-template-columns:1fr;min-height:0;padding-top:68px;padding-bottom:68px;gap:42px}.hero h1{font-size:clamp(38px,8vw,54px)}.hero-rule{margin-top:48px}.hero-panel{height:345px;max-width:550px;width:100%}.panel-symbol{font-size:65px;margin:8px 0}.panel-main h2{font-size:22px}.topic-inner{overflow:auto;gap:24px;min-height:65px}.topic-inner .topic-all{margin-left:0}.home-content{padding-top:70px;padding-bottom:85px}.content-grid{grid-template-columns:1fr}.home-aside{grid-template-columns:1fr 1fr}.bottom-inner{padding-block:52px}.archive-layout{grid-template-columns:1fr;gap:25px;padding-top:35px}.archive-sidebar{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.sidebar-heading{width:100%;margin-bottom:4px}.archive-sidebar>a{margin:0;padding:7px 10px}.archive-sidebar>a span,.sidebar-foot{display:none}.article-shell{grid-template-columns:1fr;padding-top:30px}.article-sidebar{display:none}.article-main{min-width:0}.about-layout{grid-template-columns:1fr}.about-side{height:220px}.footer-inner{flex-wrap:wrap;padding-block:34px;gap:15px}.footer-links{margin-left:auto}.footer-inner>small{width:100%}.pet{width:96px;right:8px;bottom:9px}.pet-figure{width:88px;height:112px}.pet-dialog{bottom:130px;width:160px}}
@media(max-width:520px){.site-nav{margin-left:auto;gap:13px}.site-nav a{font-size:10px}.brand-name small{display:none}.brand{gap:7px}.header-tools{gap:0}.icon-button{width:30px;height:30px}.hero h1{font-size:39px}.hero-lead{font-size:14px}.hero-actions{gap:20px}.button-primary{font-size:12px;gap:14px}.hero-panel{height:310px;padding:18px}.panel-main{padding:0 8px}.panel-main h2{font-size:19px}.hero-rule{gap:10px;font-size:8px}.section-intro{align-items:start}.section-intro h2{font-size:29px}.section-more{font-size:10px}.post-row{grid-template-columns:27px 1fr 0;gap:10px}.post-row h3{font-size:18px}.post-row-arrow{display:none}.home-aside{grid-template-columns:1fr}.bottom-inner{display:block}.bottom-inner h2{font-size:23px;margin-bottom:28px}.page-header{padding-top:56px;padding-bottom:37px}.page-header h1{font-size:38px}.archive-layout{padding-bottom:80px}.archive-card{padding:20px}.archive-card h2{font-size:19px}.article-header h1{font-size:34px}.prose{font-size:14px}.prose h2{font-size:22px}.footer-inner{display:block}.footer-links{margin:20px 0}.site-footer{padding-bottom:95px}.pet{right:5px;bottom:5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pet-figure{animation:none}.post-row,.archive-card{transition:none}}
.brand-mark{display:flex;align-items:center;justify-content:center}
.pet-bar{position:relative;z-index:2}

/* Loopy palette: warm paper, coral blush and berry accents. */
::selection{background:#f6bfd0;color:#30242d}
.hero{background:radial-gradient(circle at 82% 42%,color-mix(in srgb,var(--pink) 11%,transparent),transparent 43%)}
.hero-panel{background:linear-gradient(145deg,var(--accent-soft),var(--surface-soft) 70%,var(--surface));box-shadow:inset 0 3px 0 var(--pink),var(--shadow)}
.brand-mark,.button-primary{background:var(--accent-deep);color:var(--accent-on)}
.button-primary:hover{background:var(--accent);color:var(--accent-on)}
.archive-search button{color:var(--accent-on)}
.aside-note{background:linear-gradient(145deg,var(--accent-soft),var(--surface-soft))}
.pet{filter:drop-shadow(0 6px 12px #51233a30)}
.pet-bar,.pet-dialog,.pet-summon{border-color:color-mix(in srgb,var(--pink) 45%,var(--line))}
:root[data-theme=dark] .brand-mark span{color:#8d2852}
:root[data-theme=dark] .code-block .k,:root[data-theme=dark] .code-block .kn,:root[data-theme=dark] .code-block .kd{color:#d2a3ff}
:root[data-theme=dark] .code-block .s,:root[data-theme=dark] .code-block .s1,:root[data-theme=dark] .code-block .s2{color:#f5aa94}
:root[data-theme=dark] .code-block .nf,:root[data-theme=dark] .code-block .nc{color:#94cbe0}

.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}
.pet-chat{position:absolute;right:0;bottom:166px;width:min(340px,calc(100vw - 24px));max-height:min(480px,calc(100vh - 205px));display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 20px 55px #3b193833;filter:none}
.pet-chat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--accent-soft)}
.pet-chat-head strong{display:block;color:var(--ink);font-size:13px}.pet-chat-head small{display:block;color:var(--muted);font-size:10px}.pet-chat-head button{border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1}
.pet-chat-messages{display:flex;flex-direction:column;gap:9px;min-height:110px;max-height:255px;overflow-y:auto;padding:15px}
.pet-chat-message{max-width:90%;margin:0;padding:8px 11px;border-radius:11px;background:var(--surface-soft);color:var(--ink);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.pet-chat-user{align-self:flex-end;background:var(--accent-soft)}.pet-chat-assistant{align-self:flex-start}
.pet-chat-compose{display:flex;align-items:flex-end;gap:7px;padding:10px;border-top:1px solid var(--line)}
.pet-chat-compose textarea{min-width:0;flex:1;resize:none;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);padding:7px 9px;font:12px/1.5 var(--sans)}
.pet-chat-compose button{border:0;border-radius:9px;background:var(--accent-deep);color:var(--accent-on);font-size:11px;font-weight:700;padding:9px 11px}.pet-chat-compose button:disabled{opacity:.55;cursor:wait}
.pet-chat-note{padding:0 14px 11px;margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.pet-bar #pet-chat-toggle{color:var(--accent);font-size:10px;font-weight:700;border-left:1px solid var(--line);padding:1px 4px 1px 8px}
@media(max-width:760px){.pet-chat{bottom:128px;max-height:min(450px,calc(100vh - 150px))}}

/* Home weather: a quiet daily note beside the writing-focused introduction. */
.weather-card{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:433px;padding:27px 28px 22px;overflow:hidden;border:1px solid #efd2bd;border-top:3px solid #eaa38f;border-radius:16px;background:linear-gradient(145deg,#fff2d8 0%,#fff7ec 55%,#fff0ee 100%);box-shadow:var(--shadow)}
.weather-card::before{content:"";position:absolute;z-index:-1;width:235px;height:235px;right:-98px;top:-106px;border-radius:50%;background:#ffd4a457;filter:blur(4px)}
.weather-top{display:flex;justify-content:space-between;gap:12px;color:#a25b46;font-size:10px;font-weight:800;letter-spacing:.13em;line-height:1.5}
.weather-city{color:#8f6570;white-space:nowrap}
.weather-intro{display:grid;grid-template-columns:75px minmax(0,1fr);align-items:center;gap:19px;margin-top:36px}
.weather-icon{display:grid;place-items:center;width:75px;height:75px;border-radius:22px;background:linear-gradient(145deg,#ffe1a6,#ffd8c9);box-shadow:inset 0 1px 0 #fff8,0 10px 24px #b8754424;font-size:42px;line-height:1}
.weather-icon-moon,.weather-icon-cloud,.weather-icon-fog,.weather-icon-rain,.weather-icon-snow,.weather-icon-storm{background:linear-gradient(145deg,#f4e5ea,#e9d8e4)}
.weather-greeting{margin:0 0 7px;color:#96516a;font-size:12px;font-weight:700}
.weather-intro h2,.weather-offline h2{margin:0;color:#47303a;font:650 clamp(17px,1.55vw,21px)/1.58 var(--serif);letter-spacing:-.025em}
.weather-temperature{display:flex;align-items:end;gap:18px;margin-top:28px;padding-bottom:16px;border-bottom:1px solid #cc9b7c55}
.weather-temperature>strong{color:#5a3541;font:700 65px/.95 var(--sans);letter-spacing:-.09em;white-space:nowrap}
.weather-temperature>strong small{font-size:23px;letter-spacing:-.04em;margin-left:4px}
.weather-temperature>div{display:grid;gap:3px;padding-bottom:5px;color:#794d55;font-size:13px;font-weight:650}
.weather-temperature>div small{color:#95777b;font-size:11px;font-weight:500}
.weather-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.weather-facts span{padding:5px 9px;border:1px solid #e8c6bb;border-radius:100px;background:#fffaf477;color:#805e62;font-size:10px;white-space:nowrap}
.weather-facts strong{color:#563842;font-weight:750}
.weather-foot{display:flex;justify-content:space-between;gap:8px;margin-top:auto;padding-top:15px;color:#9a7676;font-size:9px}
.weather-source{display:flex;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid #cc9b7c55;color:#9a5369;font-size:10px;font-weight:650}
.weather-source a:hover{text-decoration:underline;text-underline-offset:3px}
.weather-source a:last-child{color:#9a7676;font-weight:500}
.weather-offline{margin:auto 0;display:grid;justify-items:start;gap:15px}.weather-offline p{margin:0;color:#805e62;font-size:12px;line-height:1.7}
:root[data-theme=dark] .weather-card{border-color:#795663;border-top-color:#d7899b;background:linear-gradient(145deg,#413039,#352932 58%,#30242f)}
:root[data-theme=dark] .weather-card::before{background:#be73532b}
:root[data-theme=dark] .weather-top,:root[data-theme=dark] .weather-city,:root[data-theme=dark] .weather-greeting,:root[data-theme=dark] .weather-source{color:#f5b5c7}
:root[data-theme=dark] .weather-intro h2,:root[data-theme=dark] .weather-offline h2,:root[data-theme=dark] .weather-temperature>strong,:root[data-theme=dark] .weather-facts strong{color:#fff2ef}
:root[data-theme=dark] .weather-temperature>div,:root[data-theme=dark] .weather-temperature>div small,:root[data-theme=dark] .weather-facts span,:root[data-theme=dark] .weather-foot,:root[data-theme=dark] .weather-offline p,:root[data-theme=dark] .weather-source a:last-child{color:#dbc5cb}
:root[data-theme=dark] .weather-temperature,:root[data-theme=dark] .weather-source{border-color:#805c63}
:root[data-theme=dark] .weather-facts span{border-color:#795965;background:#ffffff0d}
@media(max-width:760px){.weather-card{width:100%;max-width:550px;min-height:390px}.weather-intro{margin-top:26px}}
@media(max-width:520px){.weather-card{padding:21px 19px;min-height:410px}.weather-top{font-size:9px}.weather-intro{grid-template-columns:58px minmax(0,1fr);gap:12px}.weather-icon{width:58px;height:58px;border-radius:17px;font-size:33px}.weather-intro h2{font-size:17px}.weather-greeting{font-size:11px}.weather-temperature>strong{font-size:55px}.weather-facts{gap:5px}.weather-facts span{font-size:9px}.weather-foot{font-size:8px}}
