.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:transparent;pointer-events:none}.reading-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,hsl(var(--secondary)),hsl(var(--primary)) 60%,hsl(var(--accent)));box-shadow:0 0 10px hsl(var(--primary) / .5);transition:width .08s linear}.blog-article{position:relative}html[data-page=blog] body{background:linear-gradient(180deg,hsl(var(--primary) / .14),hsl(var(--primary) / .05) 240px,hsl(var(--background)) 480px);background-repeat:no-repeat}.blog-container{max-width:1140px;margin:0 auto;padding:2.75rem 1.25rem 4.5rem}.blog-cat{display:inline-block;font-size:.74rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border:1px solid hsl(var(--primary) / .22);padding:.32rem .72rem;border-radius:var(--radius-pill)}.blog-hero-img{margin:0 0 2rem;border-radius:var(--radius-lg);overflow:hidden;border:1px solid hsl(var(--border));aspect-ratio:4 / 1;background:hsl(var(--muted));box-shadow:var(--shadow-sm)}.blog-hero-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;display:block}@media(max-width:640px){.blog-hero-img{aspect-ratio:5 / 2}}.blog-hero{max-width:760px;margin-bottom:2.5rem}.blog-hero h1{font-size:clamp(1.9rem,4.6vw,2.85rem);line-height:1.12;letter-spacing:-.022em;margin:1rem 0 0;color:hsl(var(--foreground))}.blog-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-top:1.15rem;font-size:.88rem;color:hsl(var(--muted-foreground))}.blog-meta-item{display:inline-flex;align-items:center;gap:.4rem}.blog-meta-item .icon{width:15px;height:15px;color:hsl(var(--primary))}.blog-meta-sep{width:4px;height:4px;border-radius:50%;background:hsl(var(--muted-foreground) / .5)}.blog-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem}.blog-main{min-width:0}.blog-toc{display:none}@media(min-width:1040px){.blog-layout:has(.blog-toc){grid-template-columns:232px minmax(0,1fr);gap:3.5rem;align-items:start}.blog-layout:has(.blog-toc) .blog-toc{display:block;grid-column:1;grid-row:1;position:sticky;top:92px;align-self:start;max-height:calc(100vh - 112px);overflow-y:auto}.blog-layout:has(.blog-toc) .blog-main{grid-column:2;grid-row:1}}.blog-toc-sticky{padding-right:1.5rem;border-right:1px solid hsl(var(--border))}.blog-toc-title{font-size:.72rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:hsl(var(--muted-foreground));margin:0 0 .9rem;padding-left:.9rem}.blog-toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}.blog-toc a{display:block;font-size:.86rem;line-height:1.35;color:hsl(var(--muted-foreground));padding:.35rem 0 .35rem .9rem;border-left:2px solid transparent;transition:color .15s ease,border-color .15s ease}.blog-toc a:hover{color:hsl(var(--foreground))}.blog-toc a.active{color:hsl(var(--primary));font-weight:600;border-left-color:hsl(var(--primary))}.blog-toc-mobile{margin-bottom:2rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--muted) / .5)}@media(min-width:1040px){.blog-toc-mobile{display:none}}.blog-toc-mobile summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;padding:.85rem 1rem;font-weight:600;font-size:.92rem;color:hsl(var(--foreground));list-style:none}.blog-toc-mobile summary::-webkit-details-marker{display:none}.blog-toc-mobile summary .icon{width:18px;height:18px;color:hsl(var(--muted-foreground));transition:transform .2s ease}.blog-toc-mobile[open] summary .icon{transform:rotate(180deg)}.blog-toc-mobile ul{list-style:none;margin:0;padding:0 1rem .9rem;display:flex;flex-direction:column;gap:.55rem}.blog-toc-mobile a{font-size:.9rem;color:hsl(var(--primary))}.blog-prose{max-width:760px;color:hsl(var(--foreground));font-size:1.075rem;line-height:1.78}.blog-prose>:first-child{margin-top:0}.blog-prose h2,.blog-prose h3{scroll-margin-top:100px;color:hsl(var(--foreground));letter-spacing:-.015em}.blog-prose h2{font-size:clamp(1.6rem,3.2vw,2.05rem);font-weight:800;line-height:1.2;margin:3.4rem 0 1rem;padding-top:2.1rem;border-top:1px solid hsl(var(--border))}.blog-prose h2:before{content:"";display:block;width:42px;height:4px;border-radius:999px;background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--secondary)));margin-bottom:1.05rem}.blog-prose>h2:first-child{margin-top:0;padding-top:0;border-top:0}.blog-prose h3{font-size:1.16rem;font-weight:700;line-height:1.3;margin:2.2rem 0 .6rem;padding-left:.85rem;border-left:3px solid hsl(var(--primary))}.blog-prose p{margin:0 0 1.2rem}.blog-prose ul,.blog-prose ol{margin:0 0 1.35rem;padding-left:1.5rem}.blog-prose li{margin:0 0 .55rem;padding-left:.25rem}.blog-prose li::marker{color:hsl(var(--primary));font-weight:600}.blog-prose strong{font-weight:650;color:hsl(var(--foreground))}.blog-prose a:not(.btn){color:hsl(var(--primary));text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:hsl(var(--primary) / .4);font-weight:500;transition:text-decoration-color .15s ease}.blog-prose a:not(.btn):hover{text-decoration-color:hsl(var(--primary))}.blog-prose blockquote{margin:1.6rem 0;padding:.6rem 0 .6rem 1.25rem;border-left:3px solid hsl(var(--primary));background:hsl(var(--primary) / .04);border-radius:0 var(--radius) var(--radius) 0;color:hsl(var(--muted-foreground));font-style:italic}.blog-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:hsl(var(--muted));padding:.14em .42em;border-radius:var(--radius-sm)}.blog-prose table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;margin:1.6rem 0;font-size:.95rem;border:1px solid hsl(var(--border));border-radius:var(--radius)}.blog-prose th,.blog-prose td{border-bottom:1px solid hsl(var(--border));border-right:1px solid hsl(var(--border));padding:.65rem .85rem;text-align:left;vertical-align:top}.blog-prose thead th{background:hsl(var(--muted));font-weight:600;color:hsl(var(--foreground))}.blog-faq{margin-top:3.25rem;padding-top:2.25rem;border-top:1px solid hsl(var(--border));max-width:760px}.blog-faq>h2{font-size:1.6rem;margin:0 0 1.25rem;color:hsl(var(--foreground))}.blog-faq-list{display:flex;flex-direction:column;gap:.75rem}.blog-faq-item{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));transition:border-color .15s ease,box-shadow .15s ease}.blog-faq-item[open]{border-color:hsl(var(--primary) / .4);box-shadow:var(--shadow-sm)}.blog-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;padding:1.05rem 1.2rem;font-weight:600;font-size:1.02rem;color:hsl(var(--foreground));list-style:none}.blog-faq-item summary::-webkit-details-marker{display:none}.blog-faq-item summary .icon{flex:none;width:19px;height:19px;color:hsl(var(--primary));transition:transform .2s ease}.blog-faq-item[open] summary .icon{transform:rotate(180deg)}.blog-faq-a{padding:0 1.2rem 1.15rem;color:hsl(var(--muted-foreground));line-height:1.7}.blog-faq-a a{color:hsl(var(--primary));text-decoration:underline}.blog-cta{margin-top:3rem;max-width:760px}.blog-cta-inner{padding:2.5rem 2rem;border-radius:var(--radius-lg);border:1px solid hsl(var(--primary) / .25);background:radial-gradient(120% 140% at 100% 0%,hsl(var(--accent) / .16),transparent 60%),linear-gradient(135deg,hsl(var(--hero-from)),hsl(var(--hero-to)));text-align:center}.blog-cta h2{font-size:1.5rem;margin:0 0 .65rem;color:hsl(var(--foreground))}.blog-cta p{margin:0 auto 1.5rem;max-width:52ch;color:hsl(var(--foreground));opacity:.82;line-height:1.65}.blog-cta .btn{display:inline-flex;align-items:center;gap:.45rem}.blog-cta .btn .icon{width:18px;height:18px}.blog-back{display:inline-flex;align-items:center;gap:.4rem;margin-top:2.5rem;font-size:.92rem;font-weight:600;color:hsl(var(--muted-foreground));transition:color .15s ease}.blog-back:hover{color:hsl(var(--primary))}.blog-back .icon{width:16px;height:16px}.blog-index .blog-container{padding-top:3.25rem}.blog-index-head{max-width:720px;margin-bottom:2.75rem}.blog-index-head h1{font-size:clamp(1.9rem,4.6vw,2.85rem);line-height:1.13;letter-spacing:-.022em;margin:1rem 0 .85rem;color:hsl(var(--foreground))}.blog-index-sub{font-size:1.1rem;line-height:1.6;color:hsl(var(--muted-foreground));margin:0;max-width:62ch}.blog-empty{color:hsl(var(--muted-foreground))}.blog-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:1.5rem}.blog-card{height:100%}.blog-card a{display:flex;flex-direction:column;height:100%;border:1px solid hsl(var(--border));border-radius:var(--radius-lg);overflow:hidden;background:hsl(var(--card));box-shadow:var(--shadow-xs);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.blog-card a:hover{border-color:hsl(var(--primary) / .5);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.blog-card-img{overflow:hidden;aspect-ratio:4 / 1;background:hsl(var(--primary) / .06);border-bottom:1px solid hsl(var(--border))}.blog-card-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transition:transform .5s cubic-bezier(.22,1,.36,1)}.blog-card a:hover .blog-card-img img{transform:scale(1.05)}.blog-card-body{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.5rem 1.5rem}.blog-card-top{display:flex;align-items:center;gap:.7rem;margin-bottom:.85rem}.blog-card-cat{font-size:.7rem;font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:hsl(var(--primary));background:hsl(var(--primary) / .1);padding:.26rem .6rem;border-radius:var(--radius-pill)}.blog-card-date{font-size:.8rem;color:hsl(var(--muted-foreground))}.blog-card-body h2{font-size:1.2rem;line-height:1.32;margin:0 0 .55rem;color:hsl(var(--foreground));letter-spacing:-.01em}.blog-card-body p{margin:0 0 1.2rem;color:hsl(var(--muted-foreground));line-height:1.58;font-size:.95rem}.blog-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:auto}.blog-card-read{display:inline-flex;align-items:center;gap:.34rem;font-size:.82rem;color:hsl(var(--muted-foreground))}.blog-card-read .icon{width:14px;height:14px;opacity:.75}.blog-card-more{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;color:hsl(var(--primary))}.blog-card-more .icon{width:16px;height:16px;transition:transform .15s ease}.blog-feat:hover .blog-card-more .icon,.blog-card a:hover .blog-card-more .icon{transform:translate(3px)}@media(max-width:560px){.blog-feat-body{padding:1.5rem 1.4rem 1.6rem}.blog-feat-img,.blog-card-img{aspect-ratio:3 / 1}}html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .55s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}html.js .reveal.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html.js .reveal{opacity:1;transform:none;transition:none}.reading-progress span,.blog-faq-item summary .icon,.blog-toc-mobile summary .icon,.blog-card a,.blog-card-more .icon,.blog-toc a{transition:none}.blog-card a:hover{transform:none}}
