.langsw[data-astro-cid-3s4v7zxg]{position:relative}summary[data-astro-cid-3s4v7zxg]{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;padding:.45rem .7rem;font-weight:600;list-style:none;display:inline-flex}summary[data-astro-cid-3s4v7zxg]::-webkit-details-marker{display:none}summary[data-astro-cid-3s4v7zxg]:hover{border-color:var(--brand);color:var(--ink)}ul[data-astro-cid-3s4v7zxg]{z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:10rem;box-shadow:var(--sh-3);padding:.35rem;position:absolute;top:calc(100% + .5rem);right:0}ul[data-astro-cid-3s4v7zxg] a[data-astro-cid-3s4v7zxg]{border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink-2);padding:.5rem .7rem;display:block}ul[data-astro-cid-3s4v7zxg] a[data-astro-cid-3s4v7zxg]:hover{background:var(--surface-2);color:var(--ink)}ul[data-astro-cid-3s4v7zxg] a[data-astro-cid-3s4v7zxg][aria-current=true]{color:var(--brand-deep);background:var(--brand-tint);font-weight:700}@media (width<=520px){summary[data-astro-cid-3s4v7zxg] span[data-astro-cid-3s4v7zxg]{display:none}}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--sp-4);min-height:4.1rem;display:flex}.brand[data-astro-cid-nen7h5rs]{color:var(--brand);align-items:center;gap:.55rem;min-width:0;display:inline-flex}.brand-name[data-astro-cid-nen7h5rs]{letter-spacing:-.03em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:1.08rem;font-weight:800;overflow:hidden}.tools[data-astro-cid-nen7h5rs]{flex:none;align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}.home-link[data-astro-cid-nen7h5rs]{font-size:var(--fs-sm);color:var(--ink-2);border-bottom:2px solid #0000;padding:.4rem .2rem;font-weight:600}.home-link[data-astro-cid-nen7h5rs]:hover{color:var(--ink);border-bottom-color:var(--brand)}.icon-btn[data-astro-cid-nen7h5rs]{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);width:2.2rem;height:2.2rem;color:var(--ink-2);cursor:pointer;place-items:center;display:inline-grid}.icon-btn[data-astro-cid-nen7h5rs]:hover{border-color:var(--brand);color:var(--ink)}.i-moon[data-astro-cid-nen7h5rs]{display:block}.i-sun[data-astro-cid-nen7h5rs],:root[data-theme=dark] .i-moon[data-astro-cid-nen7h5rs]{display:none}:root[data-theme=dark] .i-sun[data-astro-cid-nen7h5rs]{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .i-moon[data-astro-cid-nen7h5rs]{display:none}:root:not([data-theme=light]) .i-sun[data-astro-cid-nen7h5rs]{display:block}}@media (width<=520px){.home-link[data-astro-cid-nen7h5rs]{display:none}}.site-footer[data-astro-cid-jo6i4kqk]{background:var(--surface);border-top:1px solid var(--line);padding-block:var(--sp-7) var(--sp-6);margin-top:var(--sp-8)}.brand[data-astro-cid-jo6i4kqk]{color:var(--brand);letter-spacing:-.03em;align-items:center;gap:.5rem;font-weight:800;display:inline-flex}.brand[data-astro-cid-jo6i4kqk] span[data-astro-cid-jo6i4kqk]{color:var(--ink)}.desc[data-astro-cid-jo6i4kqk]{margin-top:var(--sp-3);max-width:40rem;color:var(--ink-2);font-size:var(--fs-sm)}.links[data-astro-cid-jo6i4kqk]{gap:var(--sp-5);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{font-size:var(--fs-sm);color:var(--ink-2)}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--brand-deep)}.copy[data-astro-cid-jo6i4kqk]{margin-top:var(--sp-5);font-size:var(--fs-xs);color:var(--ink-3)}.page{max-width:44rem;padding:var(--sp-7) var(--gutter) 0;margin-inline:auto}.post-hero{background:radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--accent) 22%, transparent) 0 6rem, transparent 6.1rem), radial-gradient(circle at 92% 88%, color-mix(in srgb, var(--brand) 14%, transparent) 0 8rem, transparent 8.1rem), var(--brand-tint);border-bottom:1px solid var(--brand-tint-2)}.post-hero__inner{max-width:56rem;padding:var(--sp-7) var(--gutter);margin-inline:auto}.post-hero--cover .post-hero__inner{gap:var(--sp-6);grid-template-columns:1fr 17rem;align-items:center;display:grid}.post-hero__title{font-size:var(--fs-2xl);line-height:var(--lh-tight)}.post-hero__lead{margin-top:var(--sp-4);font-size:var(--fs-md);color:var(--ink-2)}.post-hero__meta{margin-top:var(--sp-4);gap:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-3);flex-wrap:wrap;font-weight:600;display:flex}.post-hero__cover{aspect-ratio:4/5;border-radius:var(--r-xl);border:4px solid var(--surface);box-shadow:var(--sh-3);background:var(--surface-2);overflow:hidden;transform:rotate(2deg)}.post-hero__cover img{object-fit:cover;width:100%;height:100%}@media (width<=760px){.post-hero--cover .post-hero__inner{grid-template-columns:1fr}.post-hero__cover{aspect-ratio:16/10;order:-1;transform:none}}@media (prefers-reduced-motion:reduce){.post-hero__cover{transform:none}}.page-title{font-size:var(--fs-2xl)}.page-lead{margin-top:var(--sp-4);color:var(--ink-2);font-size:var(--fs-md)}.meta{margin-top:var(--sp-4);gap:var(--sp-2) var(--sp-5);font-size:var(--fs-sm);color:var(--ink-3);flex-wrap:wrap;display:flex}.prose{margin-top:var(--sp-6);font-size:1.06rem;line-height:1.85}:lang(ja) .prose{word-break:normal;line-break:strict;line-height:1.95}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--fs-xl);margin-top:2.2em}.prose h3{font-size:var(--fs-lg);margin-top:1.8em}.prose ul,.prose ol{padding-inline-start:1.4em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.35em}.prose a{color:var(--brand-deep);text-underline-offset:.18em;text-decoration:underline}.prose img{border-radius:var(--r-md);border:1px solid var(--line);width:auto;max-height:min(70vh,40rem);margin-inline:auto}.prose blockquote{padding:var(--sp-3) var(--sp-4);border-inline-start:4px solid var(--brand);background:var(--brand-tint);border-radius:0 var(--r-sm) var(--r-sm) 0;margin-inline:0}.prose code{background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.92em}.prose pre{padding:var(--sp-4);border-radius:var(--r-md);background:var(--surface-sunken);overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:.5em .8em}.other-langs,.back{margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2)}.other-langs ul{gap:var(--sp-4);margin-top:var(--sp-2);display:flex}.other-langs a,.back a{color:var(--brand-deep);font-weight:600}.draft-banner{margin-bottom:var(--sp-4)}:root{--hl:#ffe27a;--callout-tip:#fff6d6;--callout-note:#e7f1ff;--callout-grownups:#f1ebff;--callout-steps:#e8f6ee}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--hl:#7a5d00;--callout-tip:#3a3014;--callout-note:#16283d;--callout-grownups:#2a2240;--callout-steps:#16291e}}:root[data-theme=dark]{--hl:#7a5d00;--callout-tip:#3a3014;--callout-note:#16283d;--callout-grownups:#2a2240;--callout-steps:#16291e}.prose strong{background:linear-gradient(transparent 58%, var(--hl) 58%, var(--hl) 92%, transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-inline:.08em;font-weight:800}.prose h2{padding-bottom:.35em;position:relative}.prose h2:after{content:"";border-radius:var(--r-pill);background:var(--accent);width:2.6rem;height:.32rem;position:absolute;bottom:0;left:0}.prose img{border-radius:var(--r-lg);box-shadow:var(--sh-1)}.prose img+em,.prose p:has(>img)+p>em:only-child{text-align:center;font-size:var(--fs-sm);color:var(--ink-3);margin-top:-.4em;display:block}.prose .callout{padding:var(--sp-4) var(--sp-5) var(--sp-4) calc(var(--sp-5) + 2.2rem);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--callout-note);margin-block:1.6em;position:relative}.prose .callout:before{content:attr(data-icon);left:var(--sp-4);top:var(--sp-4);font-size:1.35rem;line-height:1.4;position:absolute}.prose .callout>*+*{margin-top:.6em}.prose .callout__title{letter-spacing:-.01em;font-weight:800}.prose .callout--tip{background:var(--callout-tip)}.prose .callout--grownups{background:var(--callout-grownups)}.prose .callout--steps{background:var(--callout-steps)}.prose .callout--steps ol{counter-reset:step;padding-inline-start:0;list-style:none}.prose .callout--steps ol>li{counter-increment:step;padding-inline-start:2.2rem;position:relative}.prose .callout--steps ol>li:before{content:counter(step);background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:1.55rem;height:1.55rem;font-size:.85rem;font-weight:800;display:grid;position:absolute;top:.15em;left:0}.toc{margin-top:var(--sp-6);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-lg);background:var(--brand-tint);border:1px solid var(--brand-tint-2)}.toc__title{margin-bottom:var(--sp-2);font-weight:800}.toc ol{gap:.3rem;padding-inline-start:1.3em;list-style:decimal;display:grid}.toc a{color:var(--brand-deep);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--brand) 40%, transparent);text-underline-offset:.18em}.faq{margin-top:var(--sp-7)}.faq h2{font-size:var(--fs-xl);margin-bottom:var(--sp-4)}.faq details{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:var(--sp-3) var(--sp-4)}.faq details+details{margin-top:var(--sp-3)}.faq summary{cursor:pointer;font-weight:700}.faq details p{margin-top:var(--sp-2);color:var(--ink-2)}.prose .app-card{padding:var(--sp-4) var(--sp-5);border-radius:var(--r-lg);border:2px solid color-mix(in srgb, var(--app) 55%, var(--line));background:color-mix(in srgb, var(--app) 7%, var(--surface));color:var(--ink);box-shadow:var(--sh-1);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-inline-start-width:.5rem;gap:.15rem;margin-block:1.6em;text-decoration:none;display:grid}.prose .app-card:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}.app-card__eyebrow{font-size:var(--fs-xs);letter-spacing:.04em;color:var(--ink-3);font-weight:700}.app-card__name{font-size:var(--fs-lg);letter-spacing:-.02em;color:var(--app);font-weight:800}:root[data-theme=dark] .app-card__name{color:color-mix(in srgb, var(--app) 60%, #fff)}.app-card__kicker{color:var(--ink-2)}.app-card__meta{font-size:var(--fs-sm);color:var(--brand-deep);margin-top:.35rem;font-weight:700}
