*,*::before,*::after{box-sizing:border-box}html{font-size:18px}body{font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-size:1rem;line-height:1.8;color:#4c4c4c;background:#fffffc;margin:0;padding:0}.container{max-width:750px;margin:0 auto;padding:3rem 1.5rem}.meta-container{max-width:960px;margin:0 auto;padding:3rem 2rem}@media (max-width:600px){.container,.meta-container{padding:2rem 1rem}}nav{display:flex;justify-content:center}.nav-menu{max-width:960px;width:100%;display:flex;align-items:center;border-bottom:1px solid #ddd;padding:0.75rem 1rem}.nav-brand{flex:1;font-size:1rem;color:#1a1a1a;font-weight:normal}.nav-brand a{text-decoration:none}.nav-slogan{font-size:0.8rem;font-style:italic}.nav-links{flex:0 0 auto;display:flex;list-style:none;margin:0;padding:0;gap:0.2rem}.nav-right{flex:1;display:flex;justify-content:flex-end}@media (max-width:600px){nav{position:fixed;top:0;left:0;right:0;z-index:100;background:#fffffc;transition:background 0.2s ease}nav.nav-scrolled{background:#f2efe9}.nav-menu{flex-wrap:wrap;align-items:flex-start;padding:0.25rem 0}.nav-brand{flex:1 1 100%;text-align:center;max-height:2.5rem;overflow:hidden;opacity:1;transition:max-height 0.25s ease,opacity 0.2s ease}nav.nav-scrolled .nav-brand{max-height:0;opacity:0}.nav-links{flex:1 1 100%;justify-content:center;gap:0}.nav-right{display:none}main{padding-top:4.5rem}}.nav-links li a{display:inline-block;font-size:0.88rem;color:#4c4c4c;text-decoration:none;padding:0rem 0.5rem;border-radius:3px;transition:background 0.15s}.nav-menu li a:hover{background:rgba(0,0,0,0.07)}h1,h2,h3,h4{font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-weight:normal;line-height:1.25;margin:1rem 0 0.6rem;color:#111}h1{font-size:2rem;margin-top:0;letter-spacing:-0.01em}h2{font-size:1.5rem;border-bottom:1px solid #e5e5e5}h3{font-size:1.15rem}h4{font-size:1rem;font-style:italic;font-weight:normal}.container h2,.container h3,.container h4{position:relative;padding-left:1.5rem;margin-left:-1.5rem;border-radius:3px;transition:background 0.15s}.container h2:hover,.container h3:hover,.container h4:hover,.container h2.anchor-copied,.container h3.anchor-copied,.container h4.anchor-copied{background:rgba(0,0,0,0.025)}.anchor-icon{position:absolute;left:0.15rem;top:50%;transform:translateY(-50%);width:1.2rem;text-align:center;font-size:0.75em;font-weight:normal;font-style:normal;color:#bbb;opacity:0;user-select:none;cursor:pointer;transition:opacity 0.15s,color 0.15s}.container h2:hover .anchor-icon,.container h3:hover .anchor-icon,.container h4:hover .anchor-icon,.container h2.anchor-copied .anchor-icon,.container h3.anchor-copied .anchor-icon,.container h4.anchor-copied .anchor-icon{opacity:1}.container h2.anchor-copied .anchor-icon,.container h3.anchor-copied .anchor-icon,.container h4.anchor-copied .anchor-icon{color:#5a8a5a}.container h2.anchor-fading .anchor-icon,.container h3.anchor-fading .anchor-icon,.container h4.anchor-fading .anchor-icon{opacity:0;transition:opacity 0.3s}.container h2.anchor-fading,.container h3.anchor-fading,.container h4.anchor-fading{background:transparent;transition:background 0.3s}p{margin:0 0 0.5em;hyphens:auto}h1+p,h2+p,h3+p{margin-top:0}a{color:#1a1a1a;text-decoration:underline;text-decoration-color:#aaa;text-underline-offset:3px}a:hover{text-decoration-color:#1a1a1a}strong{font-weight:bold}em{font-style:italic}blockquote{margin:1rem 0;padding:0 0 0 1.5rem;border-left:3px solid #ccc;color:#444;font-style:italic}blockquote p:last-child{margin-bottom:0}blockquote cite{display:block;margin-top:0.6rem;font-size:0.85rem;font-style:normal;color:#777;letter-spacing:0.03em}ul,ol{padding-left:1.5rem;margin:0 0 1.3em}hr{border:none;border-top:1px solid #ddd;margin:1.5rem 0}figure{margin:2rem 0}figcaption{font-size:0.82rem;color:#777;margin-top:0.5rem;font-style:italic;text-align:center}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:0.85em;background:#f0ede6;padding:0.1em 0.35em;border-radius:3px}pre{margin:1.5rem 0;overflow-x:auto}pre code{background:none;padding:0;font-size:0.88rem}.shiki{padding:1.2rem 1.4rem;border-radius:4px;border:1px solid #e5e0d8}.post-nav{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #e5e5e5;font-size:0.88rem}.post-nav a{color:#888;text-decoration:none}.post-nav a:hover{color:#1a1a1a}.form-field{display:flex;flex-direction:column;gap:0.3rem;margin-bottom:1rem}.form-field label{font-size:0.82rem;color:#666}.field-optional{font-style:italic;color:#aaa}.form-field input,.form-field textarea,.contact-form input,.contact-form textarea{font-family:inherit;font-size:0.95rem;color:#1a1a1a;background:#fff;border:1px solid #ddd;border-radius:3px;padding:0.4rem 0.6rem;line-height:1.5;width:100%;transition:border-color 0.15s}.form-field input:focus,.form-field textarea:focus,.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:#aaa}.form-field textarea,.contact-form textarea{resize:vertical;min-height:5rem}button[type=submit]{font-family:inherit;font-size:0.88rem;background:#be6f56;color:#fffffc;border:none;border-radius:3px;padding:0.5rem 1.2rem;cursor:pointer;transition:background 0.15s}button[type=submit]:hover{background:#af401d}button[type=submit]:disabled{opacity:0.5;cursor:default}.form-status{font-size:0.82rem;color:#777;margin-top:0.6rem;min-height:1.2em}.comments{margin-top:1rem;padding-top:1rem}.comments h2,.comments h3,.comments h4{position:static;padding-left:0;margin-left:0;border-radius:0;transition:none}.comments h2:hover,.comments h3:hover,.comments h4:hover{background:none}.comments>h2{font-size:1.1rem;border-bottom:none;margin-top:0;margin-bottom:1rem;color:#777;font-style:italic}.comment{margin-bottom:1.25rem}.comment-meta{display:flex;align-items:baseline;gap:0.75rem;margin-bottom:0.2rem}.comment-name{font-size:0.88rem;font-weight:bold;color:#1a1a1a}.comment-meta time{font-size:0.78rem;color:#bbb;font-family:system-ui,-apple-system,sans-serif}.reply-btn{font-family:inherit;font-size:0.75rem;color:#bbb;background:none;border:none;cursor:pointer;padding:0;margin-left:auto;transition:color 0.15s}.reply-btn:hover{color:#555}.comment>p{margin:0;font-size:0.95rem}.comment-replies{margin-top:0.75rem;margin-left:1.25rem;padding-left:1rem;border-left:2px solid #f0ede6}.comment-form-wrap{margin-top:1rem;padding-top:1rem;border-top:1px solid #f0ede6}.comment-form-wrap>h3{font-size:0.95rem;margin-top:0;margin-bottom:1rem;color:#555}.reply-notice{font-size:0.82rem;color:#666;margin-bottom:0.75rem;display:flex;align-items:center;gap:0.5rem}.cancel-reply{background:none;border:none;cursor:pointer;color:#aaa;font-size:0.82rem;line-height:1;padding:0 0.15rem;display:flex;align-items:center}.cancel-reply:hover{color:#333}.byline{font-size:0.82rem;color:#777;margin-bottom:0.75rem;border-bottom:1px solid #e5e5e5;padding-bottom:0.75rem}.toast{position:fixed;bottom:1.8rem;left:50%;transform:translateX(-50%) translateY(0.4rem);background:#1a1a1a;color:#f5f5f0;font-family:system-ui,-apple-system,sans-serif;font-size:0.78rem;letter-spacing:0.04em;padding:0.45rem 1rem;border-radius:4px;opacity:0;pointer-events:none;transition:opacity 0.2s,transform 0.2s}.toast.toast-show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.toast-hide{opacity:0;transform:translateX(-50%) translateY(0.4rem);transition:opacity 0.35s,transform 0.35s}sup.ref{font-family:system-ui,-apple-system,sans-serif;font-size:0.68em;vertical-align:super;line-height:0;cursor:pointer;color:#888;border-bottom:none;margin-left:0.05em}sup.ref:hover{color:#333}ol.references{margin-top:1rem;padding-left:1.5rem;font-size:0.88rem;color:#555;line-height:1.6}ol.references li{margin-bottom:0.5rem}ol.references li a{color:#555}.ref-popup{display:none;position:absolute;width:300px;background:#fffffd;border:1px solid #ddd;border-radius:5px;box-shadow:0 4px 20px rgba(0,0,0,0.1);font-size:0.85rem;line-height:1.55;color:#333;z-index:200;opacity:0;transition:opacity 0.15s}.ref-popup.ref-popup-visible{display:block;opacity:1}.ref-popup-body{padding:0.8rem 1rem 0.6rem}.ref-popup-footer{padding:0.45rem 1rem;border-top:1px solid #eee;text-align:right}.ref-popup-footer a{font-size:0.78rem;color:#888;text-decoration:none;letter-spacing:0.02em}.ref-popup-footer a:hover{color:#333}.tag-list,.post-list{list-style:none;padding:0;margin:1.5rem 0}.tag-list li,.post-list li{display:flex;align-items:baseline;gap:0.6rem;padding:0.3rem 0;border-bottom:1px solid #f0ede6}.tag-list li a,.post-list li a{text-decoration:none;color:#1a1a1a}.tag-list li a:hover,.post-list li a:hover{text-decoration:underline;text-decoration-color:#aaa}.tag-count{font-size:0.78rem;color:#aaa}.post-list time{font-size:0.78rem;color:#aaa;font-family:system-ui,-apple-system,sans-serif;margin-left:auto}.back-link{margin-top:2rem;font-size:0.88rem}.back-link a{color:#888;text-decoration:none}.back-link a:hover{color:#1a1a1a}.browse-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:200px;gap:1rem;margin-top:1.5rem}@media (max-width:600px){.browse-grid{grid-template-columns:1fr;grid-auto-rows:auto}}@media (min-width:601px) and (max-width:860px){.browse-grid{grid-template-columns:repeat(2,1fr)}}.card{border:1px solid #e5e5e5;border-radius:4px;overflow:hidden;transition:border-color 0.15s}.card:hover{border-color:#bbb}.card-link{display:flex;flex-direction:column;gap:0.35rem;padding:1.1rem 1.2rem;height:100%;text-decoration:none;color:inherit}.card h3{font-size:1rem;margin:0;line-height:1.3;color:#111}.card-meta{font-size:0.72rem;color:#aaa;margin:0;font-family:system-ui,-apple-system,sans-serif;letter-spacing:0.02em}.card-desc{font-size:0.83rem;color:#666;margin:0;line-height:1.5}