:root{--bg:#eef2ef;--paper:#f8faf8;--fg:#24302c;--muted:#66756f;--line:#d3ddd8;--celadon:#5c8b7d;--celadon-deep:#3f6c60;--tint:#dfe7e3;--sans:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;--ko:"Gowun Batang","Apple SD Gothic Neo",serif}@media(prefers-color-scheme:dark){:root{--bg:#16201d;--paper:#1c2724;--fg:#e3ebe7;--muted:#9db0a8;--line:#2f3d38;--celadon:#8fbfb0;--celadon-deep:#a9d3c6;--tint:#24322e;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.9;font-size:16px}a{color:var(--celadon-deep)}img{max-width:100%;height:auto}.wide{max-width:1080px;margin:0 auto;padding-inline:20px}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.head-row{display:flex;justify-content:space-between;align-items:center;gap:12px 28px;flex-wrap:wrap;padding-block:20px}.logo{display:flex;flex-direction:column;text-decoration:none;color:var(--fg);line-height:1.35}.logo-ja{font-weight:700;font-size:1.3rem;letter-spacing:.04em}.logo-ko{font-family:var(--ko);font-size:.9rem;color:var(--celadon);letter-spacing:.04em}nav{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:.86rem}nav a{color:var(--fg);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent}nav a:hover,nav a:focus-visible{border-bottom-color:var(--celadon)}main{padding-block:28px 8px}.site-footer{margin-top:64px;border-top:1px solid var(--line);background:var(--paper);color:var(--muted);font-size:.8rem}.foot-row{display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;padding-block:22px}.foot-row a{color:var(--muted)}.cover{position:relative;display:block;aspect-ratio:16/7;border-radius:8px;overflow:hidden;background:var(--tint);color:#fff;text-decoration:none;margin-bottom:28px}.cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.cover:hover img{transform:scale(1.02)}.cover .cap{position:absolute;inset:auto 0 0;padding:56px 26px 22px;background:linear-gradient(transparent,#14221ed1);display:flex;flex-direction:column;gap:4px}.cover .meta{font-size:.76rem;letter-spacing:.1em;opacity:.88;color:#fff}.cover .cap-title{font-size:1.6rem;font-weight:700;line-height:1.4;text-wrap:balance}.cover-blank{display:grid;place-items:center;height:100%;font-size:2rem;color:var(--celadon)}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px 22px}.card a{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--fg)}.card .ph{display:block;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:var(--tint)}.card .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.card a:hover .ph img{transform:scale(1.03)}.card .noimg{display:grid;place-items:center;height:100%;font-family:var(--ko);font-size:1.25rem;color:var(--celadon);letter-spacing:.06em;background:linear-gradient(135deg,var(--tint),var(--paper))}.card .meta{display:flex;gap:10px;font-size:.74rem;color:var(--muted);letter-spacing:.06em}.card .meta b{color:var(--celadon-deep);font-weight:500}.card-title{font-weight:700;font-size:1rem;line-height:1.55;text-wrap:balance}.card a:hover .card-title{color:var(--celadon-deep)}.list-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:1.5rem;margin:4px 0 24px}.list-head span{font-size:.75rem;font-weight:500;letter-spacing:.14em;color:var(--celadon)}.list-head small{font-size:.8rem;font-weight:400;color:var(--muted)}.pager{display:flex;justify-content:space-between;gap:16px;margin:36px 0 0;font-size:.9rem}.pager a{text-decoration:none}.meta{color:var(--muted);font-size:.82rem}.meta a{margin-right:8px;text-decoration:none}article{max-width:720px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:40px clamp(18px,5vw,56px) 48px}article h1{font-size:1.75rem;line-height:1.45;margin:0 0 10px;text-wrap:balance}article>.meta{display:flex;flex-wrap:wrap;gap:4px 12px}article>.meta a{color:var(--celadon-deep)}.post-nav{max-width:720px;margin-inline:auto}.content{margin-top:28px;overflow-wrap:anywhere;font-size:1.02rem;line-height:2}.content p{margin:0 0 1.3em}.content h2{font-size:1.3rem;margin:2em 0 .8em;padding-left:12px;border-left:4px solid var(--celadon);line-height:1.5}.content h3{font-size:1.1rem;margin:1.8em 0 .6em}.content img{border-radius:4px}.content iframe{max-width:100%}.content figure{margin:1.6em 0}.content figcaption{color:var(--muted);font-size:.85rem}.content blockquote{margin:1.4em 0;padding:.6em 1.2em;background:var(--tint);border-left:3px solid var(--celadon);color:var(--fg)}.content table{border-collapse:collapse;display:block;overflow-x:auto}.content th,.content td{border:1px solid var(--line);padding:4px 10px}.content pre{overflow-x:auto;background:var(--tint);padding:12px}.content .blogcard-wrap,.content .hatena-asin-detail{display:block;border:1px solid var(--line);border-radius:6px;padding:12px;margin:1em 0;font-size:.88rem;line-height:1.6;text-decoration:none;color:var(--fg);overflow:hidden;background:var(--bg)}.content .blogcard-thumbnail,.content .hatena-asin-detail-image{float:left;margin-right:12px;max-width:120px}.content .blogcard-title,.content .hatena-asin-detail-title{font-weight:700;margin:0 0 4px}.content .blogcard-footer,.content .blogcard-snippet{color:var(--muted);font-size:.8rem}.content .hatena-asin-detail ul{list-style:none;padding:0;margin:0;color:var(--muted)}.content .fa{display:none}.plain{max-width:720px;margin:0 auto}.plain h1{font-size:1.5rem;margin:0 0 12px}.terms{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0 0 32px}.terms li a{display:inline-block;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);text-decoration:none;font-size:.88rem}.terms li span{color:var(--muted);font-size:.75rem;margin-left:4px}.year{font-size:1.1rem;margin:32px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line);color:var(--celadon-deep)}.plain ul.yearly{list-style:none;padding:0;margin:0}.plain ul.yearly li{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px dashed var(--line)}.plain ul.yearly .meta{white-space:nowrap;font-variant-numeric:tabular-nums}@media(max-width:760px){.cards{grid-template-columns:repeat(2,1fr);gap:24px 14px}.cover{aspect-ratio:4/3}.cover .cap-title{font-size:1.2rem}.card-title{font-size:.92rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
