:root{--bg:#fcfbf9;--surface:#fff;--fg:#2b2a33;--muted:#8b8894;--line:#efece7;--accent:#7c6fd6;--soft:#f4f1ff;--pink:#ffd9e2;--lav:#e3dcff;--sky:#d8e8ff;--mint:#d9f2e6;--grad:linear-gradient(135deg, #ffd3df 0%, #e2d9ff 55%, #d3e6ff 100%);--shadow:0 1px 2px #2b2a3308, 0 6px 20px #2b2a330d;--shadow-hover:0 2px 4px #2b2a330a, 0 16px 36px #7c6fd624;--radius:22px;--font:"Plus Jakarta Sans", "Noto Sans JP", "Noto Sans KR", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#16151b;--surface:#1e1d26;--fg:#f1eff6;--muted:#9d9aaa;--line:#2a2933;--accent:#b9aeff;--soft:#26243a;--pink:#5a3a46;--lav:#3b3560;--sky:#2f4260;--mint:#2f4a3f;--grad:linear-gradient(135deg, #5a3a46 0%, #3b3560 55%, #2f4260 100%);--shadow:0 1px 2px #00000040, 0 6px 20px #0000004d;--shadow-hover:0 2px 4px #0000004d, 0 16px 36px #00000073}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font:17px/1.75 var(--font);-webkit-font-smoothing:antialiased;background-image:radial-gradient(800px 380px at 90% -80px, color-mix(in srgb, var(--pink) 70%, transparent), transparent 70%), radial-gradient(700px 340px at 0% -60px, color-mix(in srgb, var(--sky) 70%, transparent), transparent 70%);background-repeat:no-repeat;margin:0}a{color:var(--accent);text-decoration:none}img{max-width:100%;height:auto;display:block}.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.narrow{max-width:740px;margin:0 auto;padding:0 20px}.site-header{z-index:20;background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header .wrap{justify-content:space-between;align-items:center;height:66px;display:flex}.brand{color:var(--fg);letter-spacing:-.02em;align-items:center;gap:10px;font-size:19px;font-weight:700;display:flex}.brand i{background:linear-gradient(135deg,#ffb3c7 0%,#c9b8ff 55%,#a9cdff 100%);border-radius:50%;width:26px;height:26px;display:inline-block;box-shadow:inset 0 0 0 2px #ffffff8c,0 4px 12px #7c6fd64d}.brand span{font-weight:800}.nav{align-items:center;gap:24px;font-size:15px;font-weight:500;display:flex}.nav>a:not(.btn){color:var(--muted)}.nav>a:not(.btn):hover{color:var(--fg)}.btn{white-space:nowrap;background:var(--fg);border-radius:999px;padding:10px 20px;font-size:14.5px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:inline-block;color:var(--bg)!important}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #2b2a332e}main{min-height:60vh;padding-bottom:72px}.hero{text-align:center;padding:68px 20px 28px}.eyebrow{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:6px 15px;font-size:13px;font-weight:600;display:inline-flex}.hero h1{letter-spacing:-.035em;max-width:780px;margin:20px auto 14px;font-size:clamp(32px,5.6vw,54px);font-weight:700;line-height:1.15}.hero h1 em{background:linear-gradient(transparent 62%, var(--pink) 62%, var(--pink) 92%, transparent 92%);padding:0 4px;font-style:normal}.hero p{color:var(--muted);max-width:520px;margin:0 auto;font-size:18px}.pills{flex-wrap:wrap;justify-content:center;gap:10px;margin:28px 0 40px;display:flex}.pill{background:var(--surface);border:1px solid var(--line);color:var(--fg);border-radius:999px;padding:8px 18px;font-size:14px;font-weight:500;transition:all .2s}.pill:hover{background:var(--lav);border-color:#0000;transform:translateY(-1px)}.pill.on{background:var(--fg);color:var(--bg);border-color:#0000}.grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow);flex-direction:column;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;display:flex;overflow:hidden}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-5px)}.thumb{aspect-ratio:16/10;background:var(--soft);border-radius:calc(var(--radius) - 8px);margin:10px 10px 0;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.card:hover .thumb img{transform:scale(1.05)}.ph{color:#2b2a3373;place-items:center;font-size:52px;font-weight:700;display:grid;position:absolute;inset:0}.card .body{flex-direction:column;flex:1;gap:10px;padding:20px 22px 24px;display:flex}.chip{color:#6b5fc4;background:var(--lav);border-radius:999px;align-self:flex-start;padding:4px 12px;font-size:12px;font-weight:600}@media (prefers-color-scheme:dark){.chip{color:#d9d3ff}}.card h2,.card h3{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700;line-height:1.35}.card p.ex{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:15.5px;line-height:1.65;display:-webkit-box;overflow:hidden}.meta{color:var(--muted);margin-top:auto;padding-top:6px;font-size:13.5px;font-weight:500}.card.feature{flex-direction:row;margin-bottom:34px}.card.feature .thumb{aspect-ratio:auto;flex:1.25;min-height:330px;margin:12px}.card.feature .body{flex:1;justify-content:center;gap:14px;padding:36px 40px 36px 28px}.card.feature h2{letter-spacing:-.03em;font-size:clamp(25px,3vw,34px)}.card.feature p.ex{-webkit-line-clamp:4;font-size:17px}@media (width<=820px){.card.feature{flex-direction:column}.card.feature .thumb{aspect-ratio:16/10;min-height:0;margin:10px 10px 0}.card.feature .body{padding:20px 22px 24px}.nav>a:not(.btn){display:none}.hero{padding-top:46px}}.post-head{text-align:center;padding:56px 0 8px}.crumbs{color:var(--muted);margin-bottom:18px;font-size:14px;font-weight:500}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}.post-head h1{letter-spacing:-.035em;margin:14px 0 18px;font-size:clamp(30px,5vw,48px);font-weight:700;line-height:1.18}.post-head .lead{color:var(--muted);max-width:620px;margin:0 auto 18px;font-size:19px;line-height:1.65}.post-cover{max-width:960px;margin:28px auto 8px;padding:0 20px}.post-cover img{width:100%;box-shadow:var(--shadow-hover);aspect-ratio:1200/630;object-fit:cover;border-radius:26px}.prose{padding-top:28px;font-size:18px;line-height:1.9}.prose>*+*{margin-top:1.3em}.prose h2{letter-spacing:-.025em;margin-top:2em;font-size:28px;font-weight:700;line-height:1.3}.prose h3{letter-spacing:-.02em;margin-top:1.7em;font-size:22px;font-weight:700;line-height:1.35}.prose a{text-underline-offset:3px;text-decoration:underline 2px;text-decoration-color:var(--lav)}.prose a:hover{text-decoration-color:var(--accent)}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--accent)}.prose figure{margin:2em -40px}.prose figure img{border-radius:20px;width:100%}.prose figcaption{color:var(--muted);text-align:center;margin-top:10px;font-size:14px}.prose blockquote{background:var(--soft);border-left:4px solid var(--lav);border-radius:18px;margin:1.8em 0;padding:20px 26px;font-size:19px;font-weight:500}.prose code{background:var(--soft);color:var(--accent);border-radius:7px;padding:2px 7px;font-size:.88em}.prose pre{color:#f1eff6;background:#2b2a33;border-radius:16px;padding:20px;overflow-x:auto}.prose pre code{color:inherit;background:0 0;padding:0}@media (width<=860px){.prose figure{margin:2em 0}}.cta{text-align:center;background:var(--grad);border-radius:28px;margin:56px 0 8px;padding:44px 32px;position:relative;overflow:hidden}.cta:after{content:"";background:#ffffff73;border-radius:50%;width:280px;height:280px;position:absolute;top:-110px;right:-80px}.cta h3{letter-spacing:-.025em;margin:0 0 8px;font-size:26px;font-weight:700;position:relative}.cta p{color:color-mix(in srgb, var(--fg) 75%, transparent);margin:0 0 22px;position:relative}.cta .btn{position:relative}.section-title{letter-spacing:-.025em;margin:64px 0 24px;font-size:24px;font-weight:700}.empty{text-align:center;color:var(--muted);border:1.5px dashed var(--line);border-radius:var(--radius);background:var(--surface);padding:56px 20px}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding:32px 0 44px;font-size:14.5px}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:14px;display:flex}.site-footer a{color:var(--muted);font-weight:500}.site-footer a:hover{color:var(--accent)}.site-footer nav{gap:18px;display:flex}@media (width<=520px){.hide-sm{display:none}.brand{gap:8px;font-size:17px}.brand i{width:22px;height:22px}.btn{padding:8px 14px;font-size:14px}.hero h1{font-size:30px}.hero p{font-size:17px}.post-head h1{font-size:28px}.post-head .lead,.prose{font-size:17px}.cta{padding:32px 20px}}.show-sm{display:none}@media (width<=520px){.show-sm{display:inline}}.lang{position:relative}.lang summary{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--muted);user-select:none;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;list-style:none}.lang summary::-webkit-details-marker{display:none}.lang[open] summary,.lang summary:hover{color:var(--fg)}.lang ul{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-hover);z-index:30;border-radius:16px;min-width:168px;max-height:70vh;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.lang li a{color:var(--fg);border-radius:10px;padding:8px 12px;font-size:14px;font-weight:500;display:block}.lang li a:hover{background:var(--soft)}.lang li a.cur{color:var(--accent);font-weight:700}
