.blog-shell{--color-elevated:#fff;--color-muted-soft:#77718a;--color-brand-light:#c084fc;--color-brand-soft:#efe7ff;--color-brand-mist:#f6f1ff;--color-brand-indigo:#818cf8;--color-brand-cyan:#22d3ee;--color-brand-pink:#e879f9;--color-hairline:#19141f14;--font-display:var(--font-inter), "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-sans:var(--font-inter), "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--font-editorial:var(--font-editorial-serif), ui-serif, Georgia, "Times New Roman", serif;--ease-ink:cubic-bezier(.22, .61, .36, 1);--ease-snap:cubic-bezier(.16, 1, .3, 1);--radius-card:10px;--radius-card-lg:16px;--shadow-blog-card:0 10px 30px #1f114514;background:var(--color-canvas);min-height:100dvh;color:var(--color-ink);font-family:var(--font-sans);font-feature-settings:"kern", "ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;position:relative}.blog-shell ::selection{background:var(--color-brand);color:#fff}.blog-shell .ambient{pointer-events:none;z-index:0;background:radial-gradient(ellipse 60% 50% at 12% 0%, #a855f71a 0%, #a855f700 60%), radial-gradient(ellipse 50% 40% at 100% 6%, #e879f914 0%, #e879f900 60%), var(--color-canvas);position:fixed;inset:0;overflow:hidden}.blog-shell .mesh-bg{pointer-events:none;background:radial-gradient(at 18% 22%, color-mix(in srgb, var(--color-brand) 22%, transparent) 0%, transparent 42%), radial-gradient(at 82% 18%, color-mix(in srgb, var(--color-brand-indigo) 20%, transparent) 0%, transparent 50%), radial-gradient(at 70% 92%, color-mix(in srgb, var(--color-brand-cyan) 16%, transparent) 0%, transparent 55%), radial-gradient(at 14% 88%, color-mix(in srgb, var(--color-brand-pink) 14%, transparent) 0%, transparent 55%);filter:blur(24px)saturate(120%);position:absolute;inset:0}.blog-shell .grid-lines{pointer-events:none;background-image:linear-gradient(to right, var(--color-hairline) 1px, transparent 1px), linear-gradient(to bottom, var(--color-hairline) 1px, transparent 1px);opacity:.6;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 28%,#0000 72%);mask-image:radial-gradient(#000 28%,#0000 72%)}.blog-shell .font-display{font-family:var(--font-display);font-feature-settings:"ss01", "ss02";letter-spacing:-.022em}.blog-shell .font-mono{font-family:var(--font-mono)}.blog-shell .editorial,.blog-shell .editorial-italic{font-family:var(--font-editorial);letter-spacing:-.015em;font-weight:400}.blog-shell .editorial-italic{font-style:italic}.blog-shell:lang(ja) .editorial,.blog-shell:lang(ja) .editorial-italic{letter-spacing:0;font-family:Hiragino Maru Gothic ProN,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;font-style:normal}.blog-shell:lang(ko) .editorial,.blog-shell:lang(ko) .editorial-italic{letter-spacing:0;font-family:Apple SD Gothic Neo,Malgun Gothic,Nanum Gothic,sans-serif;font-style:normal}.blog-shell:lang(zh) .editorial,.blog-shell:lang(zh) .editorial-italic{letter-spacing:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-style:normal}.blog-shell .eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-muted);font-size:.72rem}.blog-shell .tag{background:var(--color-brand-soft);color:var(--color-brand-darker);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid color-mix(in srgb, var(--color-brand) 18%, transparent);border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .7rem;font-size:.68rem;font-weight:500;display:inline-flex}.blog-shell .tag:before{content:"";background:var(--color-brand);width:5px;height:5px;box-shadow:0 0 0 3px color-mix(in srgb, var(--color-brand) 22%, transparent);border-radius:50%}.blog-shell .btn{font-family:var(--font-sans);letter-spacing:-.005em;transition:transform .25s var(--ease-snap), box-shadow .25s var(--ease-snap), background .25s var(--ease-snap), color .25s var(--ease-snap);white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;gap:.5rem;padding:.72rem 1.2rem;font-size:.92rem;font-weight:500;text-decoration:none;display:inline-flex}.blog-shell .btn-brand{background:linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-indigo) 100%);color:#fff;box-shadow:inset 0 1px #fff3,0 10px 30px -8px #a855f766}.blog-shell .btn-brand:hover{opacity:.96;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff3d,0 14px 34px -8px #a855f780}.blog-shell .btn-ghost{color:var(--color-ink);border-color:var(--color-line-strong);background:0 0}.blog-shell .btn-ghost:hover{background:var(--color-surface);border-color:var(--color-ink);transform:translateY(-1px)}.blog-shell .btn-sm{padding:.5rem .9rem;font-size:.82rem}.blog-shell .surface{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-card-lg);box-shadow:0 1px 0 #fff9 inset, var(--shadow-blog-card)}.blog-shell .hairline{background:linear-gradient(90deg, transparent 0%, var(--color-line) 12%, var(--color-line) 88%, transparent 100%);border:0;height:1px}.blog-shell .grain{isolation:isolate;position:relative}.blog-shell .grain:after{content:"";pointer-events:none;z-index:0;opacity:.28;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:absolute;inset:0}.blog-shell .rise-in{opacity:0;animation:blog-rise-in .8s var(--delay,0s) var(--ease-ink) forwards;transform:translateY(14px)}@keyframes blog-rise-in{to{opacity:1;transform:translateY(0)}}.blog-shell .hover-lift{transition:transform .35s var(--ease-snap), box-shadow .35s ease, border-color .35s ease}.blog-shell .hover-lift:hover{transform:translateY(-3px)}.blog-shell :where(a,button,[role=button],input,textarea):focus-visible{box-shadow:0 0 0 2px var(--color-canvas), 0 0 0 4px var(--color-brand);border-radius:8px;outline:none}@media (prefers-reduced-motion:reduce){.blog-shell .rise-in{opacity:1;transform:none}.blog-shell .hover-lift:hover{transform:none}}.blog-shell .prose{--tw-prose-body:var(--color-ink-soft);--tw-prose-headings:var(--color-ink);--tw-prose-links:var(--color-brand-darker);--tw-prose-bold:var(--color-ink);--tw-prose-counters:var(--color-ink-muted);--tw-prose-bullets:var(--color-line-strong);--tw-prose-quotes:var(--color-ink-soft);--tw-prose-code:var(--color-ink);--tw-prose-pre-code:#f5f4f2;--tw-prose-pre-bg:var(--color-ink);--tw-prose-hr:var(--color-line);--tw-prose-th-borders:var(--color-line-strong);--tw-prose-td-borders:var(--color-line);font-family:var(--font-sans)}.blog-shell .prose :where(h1,h2,h3,h4):not(:where([class~=not-prose] *)){font-family:var(--font-display)}.blog-shell .prose :where(a):not(:where([class~=not-prose] *)){border-bottom:1px solid color-mix(in srgb, var(--color-brand) 35%, transparent);text-decoration:none;transition:border-color .2s,color .2s}.blog-shell .prose :where(a):not(:where([class~=not-prose] *)):hover{border-bottom-color:var(--color-brand)}.blog-shell .prose :where(pre):not(:where([class~=not-prose] *)){background:var(--color-ink);border-radius:var(--radius-card);border:1px solid var(--color-line-strong)}.blog-shell .prose :where(:not(pre)>code):not(:where([class~=not-prose] *)){background:var(--color-subtle);border:1px solid var(--color-line);border-radius:8px;padding:.15em .4em;font-weight:500}.blog-shell .prose :where(:not(pre)>code):not(:where([class~=not-prose] *)):before,.blog-shell .prose :where(:not(pre)>code):not(:where([class~=not-prose] *)):after{content:none}.blog-shell .prose :where(blockquote):not(:where([class~=not-prose] *)){border-left-width:3px;border-left-color:var(--color-brand);background:var(--color-brand-mist);border-radius:0 var(--radius-card) var(--radius-card) 0;padding:.6rem 1.25rem;font-style:normal}.blog-shell .prose :where(img):not(:where([class~=not-prose] *)){border-radius:var(--radius-card-lg);border:1px solid var(--color-line)}.blog-shell .bn-container,.blog-shell .bn-editor{background-color:#0000!important}