.post-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}.post-grid__more{margin-top:16px;text-align:center}.post-grid__more a>i,.post-grid__more button>i{margin-left:4px}.post-card{background:var(--palette-grayscale-50);border:1px solid var(--palette-sub-opacity);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}@media(any-hover:hover)and (any-pointer:fine){.post-card:hover{border-color:color-mix(in srgb,var(--palette-theme) 55%,transparent);box-shadow:0 10px 30px -12px rgba(0,0,0,.7);transform:translateY(-3px)}.post-card:hover .post-card__image img{transform:scale(1.06)}}.post-card__image-link{display:block}.post-card__image{border-bottom:1px solid var(--palette-sub-opacity);height:0;overflow:hidden;padding-bottom:52%;position:relative;width:100%}.post-card__image:before{backdrop-filter:blur(3px);background:var(--palette-navigation-background);border:1px solid var(--palette-sub-opacity);border-radius:3px;box-sizing:border-box;color:var(--palette-grayscale-700);content:"› " attr(data-filename);font-family:var(--font-mono);font-size:10px;left:10px;letter-spacing:.3px;max-width:calc(100% - 20px);overflow:hidden;padding:2px 7px;position:absolute;text-overflow:ellipsis;top:8px;white-space:nowrap;z-index:2}.post-card__image img{display:block;height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;transition:transform .18s ease;width:100%}.post-card__body{display:flex;flex:1;flex-direction:column;gap:10px;padding:16px}.post-card__tags{display:flex;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;gap:8px}.post-card__tags a{color:var(--palette-sub)}@media(any-hover:hover)and (any-pointer:fine){.post-card__tags a:hover{color:var(--palette-text)}}.post-card__hash{color:var(--palette-theme);opacity:.8}.post-card__title{color:var(--palette-grayscale-900);font-family:var(--font-heading);font-size:1.03rem;font-weight:700;letter-spacing:-.01em;line-height:1.35}.post-card__description,.post-card__title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-card__description{color:var(--palette-sub);font-size:.84rem;line-height:1.6}.post-card__footer{align-items:center;border-top:1px solid var(--palette-sub-opacity);color:var(--palette-comment-text);display:flex;font-family:var(--font-mono);font-size:11px;gap:8px;justify-content:space-between;margin-top:auto;padding-top:10px}.post-card__date{align-items:center;display:inline-flex;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-card__sep{opacity:.5}.post-card__read{color:var(--palette-theme);flex-shrink:0;opacity:.85}.related-posts{border-top:1px solid var(--palette-sub-opacity);margin-top:2em;padding-top:1.5em}.related-posts__title{font-size:1.5em;font-weight:700;margin:0 0 1.5em}.pagination{text-align:center}.pagination--gutter{margin-top:36px}.pagination__page--current{color:var(--palette-main)}.pagination__direction--invisible{visibility:hidden}.pagination>a{color:var(--palette-text);display:inline-block;font-family:var(--font-mono);margin:8px;text-decoration:none}.pagination>a[aria-current=true]{color:var(--palette-theme);font-weight:600;position:relative}.pagination>a[aria-current=true]:after{background-color:var(--palette-grayscale-100);border-radius:50%;content:"";height:1.6em;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:1.6em;z-index:-1}:root{--color-bg:#fff;--color-bg-secondary:#f5f5f5;--color-text:#1a1a1a;--color-text-secondary:#666;--color-primary:#06c;--color-primary-hover:#0052a3;--color-border:#e0e0e0;--color-text-muted:#999;--font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-mono:"JetBrains Mono","D2Coding","Fira Code",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--font-heading:"JetBrains Mono","Pretendard Variable",Pretendard,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--max-width:1200px;--content-width:768px;--transition-fast:150ms ease;--transition-normal:300ms ease;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgb(0 0 0/5%);--shadow-md:0 4px 6px rgba(0,0,0,.1);--shadow-lg:0 10px 15px rgba(0,0,0,.15)}@media(prefers-color-scheme:dark){:root{--color-bg:#1a1a1a;--color-bg-secondary:#2a2a2a;--color-text:#f0f0f0;--color-text-secondary:#a0a0a0;--color-primary:#66b3ff;--color-primary-hover:#9cf;--color-border:#404040;--color-text-muted:#777}}.blog-banner{padding-top:40px}.blog-banner__hero{display:grid;gap:18px;grid-template-columns:1fr;margin:0 auto;padding:52px 20px 22px;width:clamp(0px,1140px,100%)}@media screen and ((min-width:720px)){.blog-banner__hero{align-items:stretch;grid-template-columns:1.4fr 1fr}}.blog-banner__title{color:var(--palette-grayscale-900);font-family:var(--font-heading);font-size:clamp(1.6rem,4vw,1.95rem);font-weight:700;letter-spacing:-.04em;line-height:1.12;margin:0 0 12px}.blog-banner__description{color:var(--palette-sub);font-family:var(--font-sans);font-size:.95rem;line-height:1.6;margin:0;min-height:1.5em}.home-post-list{margin:6px auto 48px;padding:0 20px;width:clamp(0px,1140px,100%)}.home-post-list__toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px}.home-post-list__view-more{display:flex;justify-content:center;margin-top:16px}.home-post-list__view-more-button i{margin-left:4px;transition:transform .2s ease-in-out}.home-post-list__view-more-button:hover i{transform:translateX(4px)}.tabs{display:flex;justify-content:flex-start}.tabs__buttons{display:inline-flex;gap:6px}.tabs__buttons button{background:transparent;border:1px solid var(--palette-sub-opacity);border-radius:2px;color:var(--palette-sub);font-family:var(--font-mono);font-size:.79rem;letter-spacing:.02em;line-height:1.027rem;padding:6px 12px;transition:background-color .15s ease,color .15s ease,border-color .15s ease}@media(any-hover:hover)and (any-pointer:fine){.tabs__buttons button:hover{border-color:var(--palette-main-opacity);color:var(--palette-text)}}.tabs__buttons button[data-active=true]{background:var(--palette-main-opacity);border-color:var(--palette-theme);color:var(--palette-theme);font-weight:600}