:root{--bg: #f6f7f9;--bg-elev: #ffffff;--ink: #182230;--text: #1b2430;--text-muted: #5c6673;--border: #e5e8ec;--border-strong: #d2d7de;--accent: #3f5bd6;--accent-2: #16a394;--accent-soft: #eceffc;--chip: #eef1f5;--chip-text: #46505c;--grid-dot: rgba(24, 34, 48, .06);--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 10px 30px rgba(16, 24, 40, .07);--radius: 14px;--maxw: 1120px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, system-ui, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}html.dark{--bg: #0c1016;--bg-elev: #141a22;--ink: #e7edf5;--text: #e6edf3;--text-muted: #97a2af;--border: #222b36;--border-strong: #2f3a47;--accent: #7c93ff;--accent-2: #3fd0bd;--accent-soft: #16203a;--chip: #1a222d;--chip-text: #b7c1cd;--grid-dot: rgba(255, 255, 255, .05);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 30px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:62px}.brand{display:flex;align-items:center;gap:10px}.logo-mark{display:block;flex:none}.brand .logo-mark{width:30px;height:30px}.brand .names{display:flex;flex-direction:column;line-height:1.15}.brand .name{font-weight:800;letter-spacing:-.01em;font-size:1.02rem}.brand .tag{font-family:var(--mono);font-size:.68rem;color:var(--text-muted);letter-spacing:.02em}.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-elev);color:var(--text);cursor:pointer;transition:border-color .15s,transform .15s}.icon-btn:hover{border-color:var(--accent);transform:translateY(-1px)}.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--border)}.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--grid-dot) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(180deg,#000,transparent);-webkit-mask-image:linear-gradient(180deg,#000,transparent)}.hero .container{position:relative;padding:62px 20px 52px}.hero-copy{max-width:62ch}.hero .eyebrow{font-family:var(--mono);font-size:.78rem;color:var(--accent);font-weight:600;display:inline-flex;align-items:center;gap:8px;margin-bottom:14px}.hero .eyebrow:before{content:"";width:22px;height:1px;background:var(--accent)}.hero h1{font-size:clamp(2.1rem,4.6vw,3.1rem);line-height:1.16;margin:0 0 14px;letter-spacing:-.025em;font-weight:800}.hero p{margin:0;color:var(--text-muted);font-size:1.06rem}.hero p .count{font-family:var(--mono);color:var(--text);font-weight:700}.section-head{display:flex;align-items:baseline;gap:12px;padding:34px 0 6px}.section-head h2{font-size:1.15rem;margin:0;letter-spacing:-.01em;font-weight:800}.section-head .rule{flex:1;height:1px;background:var(--border)}.filters{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0 22px}.chip{font-size:.82rem;font-weight:600;padding:7px 13px;border-radius:999px;background:var(--chip);color:var(--chip-text);border:1px solid transparent;cursor:pointer;transition:all .15s;white-space:nowrap}.chip .n{opacity:.55;margin-left:5px;font-family:var(--mono);font-size:.74rem}.chip:hover{border-color:var(--border-strong)}.chip[aria-pressed=true]{background:var(--accent);color:#fff}.chip[aria-pressed=true] .n{opacity:.82}.featured{display:block;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:24px;transition:box-shadow .16s,border-color .16s,transform .16s}.featured:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-2px)}.featured .fhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.featured .badge{font-family:var(--mono);font-size:.67rem;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 9px;border-radius:6px;letter-spacing:.05em}.featured .meta{display:flex;gap:10px;align-items:center;font-size:.77rem;color:var(--text-muted)}.featured .meta time{font-family:var(--mono)}.featured .cat{color:var(--accent);font-weight:700}.featured h3{margin:0 0 5px;font-size:clamp(1.05rem,1.6vw,1.24rem);line-height:1.45;letter-spacing:-.01em}.featured p{margin:0;color:var(--text-muted);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding-bottom:64px}.card{display:flex;flex-direction:column;gap:10px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:transform .16s,box-shadow .16s,border-color .16s}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--border-strong)}.card .meta{display:flex;align-items:center;gap:10px;font-size:.78rem;color:var(--text-muted)}.card .meta time{font-family:var(--mono)}.card .cat{font-weight:700;color:var(--accent)}.card h2{margin:0;font-size:1.06rem;line-height:1.45;letter-spacing:-.01em;font-weight:700}.card p{margin:0;font-size:.89rem;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .tags{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px;padding-top:4px}.card .tag{font-size:.72rem;font-family:var(--mono);color:var(--chip-text);background:var(--chip);padding:2px 8px;border-radius:6px}.card.hidden{display:none}.empty{color:var(--text-muted);padding:40px 0 64px;text-align:center}.site-footer{border-top:1px solid var(--border);padding:30px 0;color:var(--text-muted);font-size:.85rem}.site-footer .container{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.site-footer .fb{display:flex;align-items:center;gap:9px}.site-footer .fb .logo-mark{width:20px;height:20px}.site-footer a:hover{color:var(--accent)}@media (max-width: 640px){.hero .container{padding:44px 20px 34px}.grid{grid-template-columns:1fr}}.article{padding:8px 0 40px}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:44px;align-items:start}.article-main{max-width:780px;min-width:0}.crumbs{font-size:.8rem;color:var(--text-muted);padding:18px 0 22px;display:flex;gap:8px}.crumbs a{color:var(--accent)}.crumbs span{color:var(--text-muted)}.article-head{padding-bottom:22px;border-bottom:1px solid var(--border);margin-bottom:30px}.article-head .ah-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px;font-size:.8rem;color:var(--text-muted)}.article-head .ah-meta time{font-family:var(--mono)}.cat-chip{font-size:.74rem;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 10px;border-radius:999px}.article-head h1{margin:0;font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.35;letter-spacing:-.02em;font-weight:800}.prose{font-size:1.02rem;line-height:1.9;color:var(--text)}.prose>*+*{margin-top:1.35em}.prose h2{font-size:1.5rem;margin-top:2.2em;padding-bottom:.3em;border-bottom:1px solid var(--border);letter-spacing:-.015em;line-height:1.4;scroll-margin-top:80px}.prose h3{font-size:1.22rem;margin-top:1.9em;letter-spacing:-.01em;line-height:1.45;scroll-margin-top:80px}.prose h4{font-size:1.06rem;margin-top:1.6em;scroll-margin-top:80px}.prose p{margin-top:1.1em}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent)}.prose a:hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin-top:.4em}.prose li::marker{color:var(--text-muted)}.prose img{display:block;max-width:100%;height:auto;margin:1.5em 0;border-radius:10px;border:1px solid var(--border)}.prose blockquote{margin-left:0;padding:.4em 1.1em;color:var(--text-muted);border-left:3px solid var(--border-strong);background:var(--bg-elev);border-radius:0 8px 8px 0}.prose strong{font-weight:700}.prose hr{border:none;border-top:1px solid var(--border);margin:2.4em 0}.prose table{width:100%;border-collapse:collapse;font-size:.92rem}.prose th,.prose td{border:1px solid var(--border);padding:8px 12px;text-align:left}.prose th{background:var(--bg-elev);font-weight:700}.prose :not(pre)>code{font-family:var(--mono);font-size:.86em;background:var(--chip);color:var(--text);padding:.15em .42em;border-radius:5px;border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.prose pre.astro-code{padding:16px 18px;border-radius:12px;border:1px solid var(--border);overflow-x:auto;font-size:.85rem;line-height:1.65;margin-top:1.35em}.prose pre.astro-code code{font-family:var(--mono)}html.dark .prose .astro-code,html.dark .prose .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.toc{position:sticky;top:78px}.toc-inner{border:1px solid var(--border);border-radius:12px;padding:16px 16px 18px;background:var(--bg-elev)}.toc-title{margin:0 0 10px;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--text-muted);font-family:var(--mono)}.toc ul{list-style:none;margin:0;padding:0}.toc li{margin:0}.toc a{display:block;font-size:.84rem;color:var(--text-muted);line-height:1.4;border-left:2px solid transparent;padding:5px 0 5px 10px;transition:color .12s,border-color .12s}.toc a:hover{color:var(--accent);border-color:var(--accent)}.toc-d3 a{padding-left:22px;font-size:.8rem}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:44px;padding-top:28px;border-top:1px solid var(--border)}.pn{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elev);transition:border-color .15s,transform .15s}.pn:hover{border-color:var(--accent);transform:translateY(-2px)}.pn.next{text-align:right}.pn-label{font-size:.74rem;font-family:var(--mono);color:var(--accent)}.pn-title{font-size:.9rem;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.back-home{margin-top:26px}.back-home a{color:var(--accent);font-size:.9rem}@media (max-width: 900px){.article-grid{grid-template-columns:1fr;gap:0}.toc{display:none}}@media (max-width: 560px){.post-nav{grid-template-columns:1fr}.pn.next{text-align:left}}.prose #appreach-box{border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--bg-elev);overflow:hidden;margin-top:1.35em}.prose #appreach-box:after{content:"";display:block;clear:both}.prose #appreach-box img{border:none!important;border-radius:8px;margin:0}.prose #appreach-box .appreach-info{margin-left:138px}.prose #appreach-box .appreach-info>div{display:block!important;margin:0 0 3px}.prose #appreach-box #appreach-appname{font-weight:700;font-size:.98rem}.prose #appreach-box #appreach-developer,.prose #appreach-box #appreach-price,.prose #appreach-box .appreach-powered{font-size:.82rem!important;color:var(--text-muted)}.prose #appreach-box .appreach-links{float:none!important;clear:none;margin:10px 0 0 138px;display:flex;gap:8px}.prose #appreach-box .appreach-links>div{display:inline-block}.prose #appreach-box .appreach-links img{height:40px!important;width:auto!important;border-radius:6px}.notfound{padding:72px 0 96px;text-align:center}.notfound .nf-code{font-size:4.5rem;font-weight:800;line-height:1;margin:0 0 8px;color:var(--accent);letter-spacing:.02em}.notfound h1{font-size:1.5rem;margin:0 0 12px}.notfound .nf-lead{color:var(--text-muted);margin:0 0 28px}.notfound .nf-actions{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:center;align-items:center}.notfound .nf-btn{display:inline-block;padding:11px 22px;border-radius:10px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none}.notfound .nf-btn:hover{opacity:.9}.notfound .nf-link{color:var(--accent);font-weight:600}.product-recommend{margin:2.4rem 0 1rem}.product-recommend__title{font-size:.82rem;font-weight:700;letter-spacing:.02em;color:var(--text-muted);margin:0 0 12px}.product-card{border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin:26px 0;background:var(--bg-elev)}.product-card__head{font-size:.74rem;font-weight:700;color:var(--accent);margin:0 0 10px;letter-spacing:.02em}.product-card__body{display:flex;gap:15px;align-items:flex-start}.product-card__img{width:96px;height:96px;flex-shrink:0;object-fit:contain;border-radius:8px;background:#fff;border:1px solid var(--border)}.product-card__info{min-width:0;flex:1}.product-card__name{font-weight:700;color:var(--ink);font-size:.95rem;line-height:1.45;margin:0 0 5px}.product-card__meta{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:.8rem;color:var(--text-muted);margin:0 0 7px}.product-card__price{font-weight:700;color:var(--text)}.product-card__note{font-size:.84rem;color:var(--text-muted);line-height:1.65;margin:0 0 12px}.product-card__links{display:flex;flex-wrap:wrap;gap:8px}.product-card__btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:8px;font-size:.84rem;font-weight:700;line-height:1.2}.prose .product-card__btn,.prose .product-card__btn:hover{text-decoration:none}.prose .product-card__btn--rakuten,.prose .product-card__btn--rakuten:hover{background:#bf0000;color:#fff}.prose .product-card__btn--rakuten:hover{background:#a30000}.prose .product-card__btn--amazon,.prose .product-card__btn--amazon:hover{background:#f90;color:#1a1a1a}.prose .product-card__btn--amazon:hover{background:#ec8b00}.product-recommend__disclosure{font-size:.72rem;color:var(--text-muted);line-height:1.5;margin:12px 0 0;opacity:.85}.product-card__disclosure{font-size:.7rem;color:var(--text-muted);line-height:1.5;margin:11px 0 0;opacity:.8}@media (max-width: 480px){.product-card__body{gap:12px}.product-card__img{width:76px;height:76px}}.ad-unit{margin:28px auto;text-align:center;min-height:110px;overflow:hidden}.ad-unit .adsbygoogle{display:block}.ad-unit--mid{min-height:260px;margin:32px auto}.ad-unit--bottom{margin-top:34px}.prose #appreach-box a{text-decoration:none;color:var(--accent)}@media (max-width: 560px){.prose #appreach-box .appreach-info,.prose #appreach-box .appreach-links{margin-left:0}.prose #appreach-box .appreach-links{flex-wrap:wrap}}
