:root{--ink:#15202D;--ink-soft:#4A5666;--paper:#F2EEE4;--line:#DDD6C7;--mist:#EAE4D6;--accent:#CF6A4F;--accent-ink:#B0543C;--accent-soft:#F3E1D8;--surface:#FCFBF7;--line-soft:#E8E2D6;--display:"Space Grotesk","Noto Sans JP",sans-serif;--jp:"Noto Sans JP",sans-serif;--mono:"JetBrains Mono","Noto Sans JP",monospace;--wrap:1080px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-20:80px;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px rgba(21,32,45,.04), 0 1px 3px rgba(21,32,45,.05);--shadow-md:0 2px 4px rgba(21,32,45,.05), 0 4px 16px rgba(21,32,45,.06);--text-sm:.82rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.5rem;--text-xl:1.95rem;--text-2xl:2.4rem;--leading-base:1.8;--leading-tight:1.3}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--jp);background:var(--paper);color:var(--ink);line-height:var(--leading-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}img{max-width:100%}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);font-weight:500}nav.site{position:sticky;top:0;z-index:20;background:#f2eee4db;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.nav-in{display:flex;align-items:center;justify-content:space-between;height:62px}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;letter-spacing:-.01em;font-size:1.08rem;text-decoration:none;color:var(--ink);white-space:nowrap;margin-right:auto}.brand b{color:var(--accent)}.brand-mark{width:26px;height:26px;flex:0 0 auto;display:block}@media (max-width:420px){.brand-mark{width:22px;height:22px}.brand{gap:8px;font-size:1rem}}.nav-links{display:flex;align-items:center;gap:8px;font-size:.9rem}.nav-links>a,.nav-dd-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;color:var(--ink-soft);background:transparent;border:0;font:inherit;cursor:pointer;transition:color .15s,background .15s}.nav-links>a:hover,.nav-dd-btn:hover{color:var(--accent-ink)}.nav-links>a.is-active,.nav-dd-btn.is-active{color:var(--ink);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}.nav-links a:focus-visible,.nav-dd-btn:focus-visible,.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.caret{font-size:.7em;opacity:.7}.nav-dd{position:relative}.nav-dd-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:210px;display:none;flex-direction:column;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:6px;z-index:30}.nav-dd-panel:before{content:"";position:absolute;top:-6px;left:0;right:0;height:6px}.nav-dd-panel a{padding:9px 12px;border-radius:var(--radius-sm);text-decoration:none;color:var(--ink);white-space:nowrap}.nav-dd-panel a:hover{background:var(--accent-soft);color:var(--accent-ink)}.nav-dd-all{border-top:1px solid var(--line-soft);margin-top:4px;padding-top:11px;font-weight:600}.nav-dd-soon{padding:9px 12px;border-radius:var(--radius-sm);color:var(--ink-soft);white-space:nowrap;cursor:default}.nav-dd-soon:hover{background:transparent;color:var(--ink-soft)}.nav-dd:hover .nav-dd-panel,.nav-dd:focus-within .nav-dd-panel,.nav-dd-btn[aria-expanded=true]+.nav-dd-panel{display:flex}.nav-toggle{display:none;flex-direction:column;gap:4px;width:40px;height:40px;align-items:center;justify-content:center;background:transparent;border:0;border-radius:var(--radius-sm);cursor:pointer}.nav-toggle-bar{width:20px;height:2px;background:var(--ink);border-radius:2px}@media (max-width:760px){.nav-toggle{display:flex}.nav-links{display:none;position:absolute;top:62px;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;background:var(--surface);box-shadow:var(--shadow-md);padding:10px 16px 16px;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.nav-links.open{display:flex}.nav-dd{position:static}.nav-dd-panel{position:static;display:none;min-width:0;box-shadow:none;background:transparent;padding:0 0 0 12px}.nav-dd:hover .nav-dd-panel,.nav-dd:focus-within .nav-dd-panel{display:none}.nav-dd-btn[aria-expanded=true]+.nav-dd-panel{display:flex}.nav-links>a,.nav-dd-btn{width:100%;justify-content:space-between;padding:11px 6px}}.hero{padding:88px 0 56px}.hero h1{font-family:var(--jp);font-weight:900;font-size:clamp(2.1rem,6vw,3.7rem);line-height:1.16;letter-spacing:-.01em;margin:18px 0 0}.hero .sub{font-size:clamp(1.02rem,2.2vw,1.22rem);color:var(--ink-soft);margin-top:20px;max-width:30em}.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--jp);font-weight:700;font-size:.96rem;padding:13px 22px;border-radius:9px;text-decoration:none;border:1.5px solid transparent;transition:transform .12s ease,background .15s,color .15s;cursor:pointer}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#0d1925;color:#fff}.btn-primary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-ghost{border-color:var(--ink-soft);color:var(--ink);background:transparent}.btn-ghost:hover{border-color:var(--accent-ink);color:var(--ink);background:var(--accent-soft)}.prose .btn{text-decoration:none}.prose .btn-primary,.prose .btn-primary:hover{color:#fff}.prose .btn-ghost,.prose .btn-ghost:hover{color:var(--ink)}section{padding:var(--space-20) 0}.s-head{display:flex;align-items:baseline;gap:14px;margin-bottom:var(--space-8);flex-wrap:wrap}.s-head h2{font-family:var(--jp);font-weight:700;font-size:clamp(1.4rem,3vw,var(--text-xl));line-height:var(--leading-tight);letter-spacing:-.01em}.art-head h1{font-family:var(--jp);font-weight:800;font-size:clamp(1.55rem,4vw,var(--text-2xl));line-height:var(--leading-tight);letter-spacing:-.01em}.thesis{background:var(--ink);color:#ece5d7;border:none}.thesis .eyebrow{color:#e2a28c}.thesis p{font-size:clamp(1.05rem,2.4vw,1.35rem);line-height:1.9;max-width:34em;margin-top:14px}.thesis .em{color:#fff;font-weight:700;border-bottom:2px solid var(--accent);padding-bottom:1px}.book-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start}@media (max-width:760px){.book-grid{grid-template-columns:1fr;gap:30px}}.book-title{font-family:var(--jp);font-weight:900;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.3}.book-pitch{color:var(--ink-soft);margin-top:14px;max-width:30em}.cover-wrap{position:relative}.cover{width:100%;max-width:340px;display:block;margin:0 auto;border-radius:8px;box-shadow:0 26px 56px -26px #15202d80;border:1px solid var(--line)}.note-soft{font-size:.86rem;color:var(--ink-soft);margin-top:22px}.lane{background:var(--surface);border:0;border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:30px;height:100%}.lane h2,.lane h3{font-family:var(--jp);font-weight:800;font-size:1.25rem;margin-bottom:6px}.lane .lane-for{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}.steps{list-style:none;margin:18px 0 0;counter-reset:step}.steps li{position:relative;padding:13px 0 13px 38px;border-top:1px solid var(--line-soft)}.steps li:before{counter-increment:step;content:counter(step);position:absolute;left:0;top:12px;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--mono);font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}.steps li a{color:var(--accent-ink);font-weight:600;text-decoration:none}.steps li a:hover{text-decoration:underline}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width:760px){.two-col{grid-template-columns:1fr}}.art-list{list-style:none;display:grid;gap:2px}.art-list li{border-top:1px solid var(--line-soft)}.art-list li:last-child{border-bottom:1px solid var(--line-soft)}.art-list a{display:flex;gap:18px;align-items:baseline;padding:18px 4px;text-decoration:none;flex-wrap:wrap}.art-list a:hover .at{color:var(--accent-ink)}.art-list .ad{font-family:var(--mono);font-size:.76rem;color:var(--ink-soft);white-space:nowrap}.art-list .at{font-weight:700;font-size:1.05rem}.art-list .asum{flex-basis:100%;color:var(--ink-soft);font-size:.9rem;line-height:1.55;margin-top:2px}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;list-style:none}@media (max-width:860px){.cat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.cat-grid{grid-template-columns:1fr}}.cat-card{display:flex;flex-direction:column;gap:6px;padding:var(--space-6);background:var(--surface);border:0;border-radius:var(--radius);box-shadow:var(--shadow-sm);text-decoration:none;transition:box-shadow .18s,transform .18s}.cat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.cat-card .cat-name{font-family:var(--jp);font-weight:800;font-size:1.02rem;color:var(--ink)}.cat-card .cat-desc{color:var(--ink-soft);font-size:.84rem;line-height:1.5;flex:1}.cat-card .cat-go{font-family:var(--mono);font-size:.74rem;color:var(--accent-ink);font-weight:700}.list-h{font-family:var(--jp);font-weight:800;font-size:1.15rem}.is-hidden{display:none}.crumbs{font-size:.82rem;color:var(--ink-soft);margin-bottom:6px}.crumbs a{color:var(--accent-ink);text-decoration:none;font-weight:600}.crumbs a:hover{text-decoration:underline}.crumbs span[aria-hidden]{margin:0 6px;color:var(--line)}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.tag-pill{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--accent-ink);background:var(--accent-soft);border-radius:5px;padding:3px 8px}.prose{max-width:40em;overflow-wrap:anywhere;word-break:normal;line-break:strict}.reading{max-width:40em}.profile-head{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.author-avatar{width:104px;height:104px;border-radius:50%;object-fit:cover;display:block;background:var(--surface);box-shadow:var(--shadow-sm);flex:0 0 auto}.profile-meta{font-family:var(--mono);font-size:.85rem;color:var(--accent-ink);margin-top:4px}@media (max-width:520px){.profile-head{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.author-avatar{width:88px;height:88px}}.prose h2{font-size:clamp(1.3rem,3vw,var(--text-xl));line-height:var(--leading-tight);margin:var(--space-12) 0 var(--space-4);font-weight:800;letter-spacing:-.01em}.prose h3{font-size:var(--text-lg);line-height:var(--leading-tight);margin:var(--space-8) 0 var(--space-3);font-weight:700}.prose p{margin:16px 0;word-break:auto-phrase}.prose ul,.prose ol{margin:16px 0 16px 1.4em}.prose li{margin:8px 0;line-height:1.8}.prose blockquote{border-left:3px solid var(--accent);padding:4px 0 4px 18px;margin:20px 0;color:var(--ink-soft)}.prose a{color:var(--accent-ink);font-weight:600}.prose code{font-family:var(--mono);font-size:.9em;background:var(--mist);padding:.1em .35em;border-radius:4px}.art-head{padding:64px 0 0}.art-meta{font-family:var(--mono);font-size:.78rem;color:var(--ink-soft);margin-top:14px}.updated-note{font-family:var(--mono);font-size:.78rem;color:var(--ink-soft);margin-top:40px}.track-nav{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:16px 0}.track-nav-head{font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);margin:0 0 10px}.track-nav-head a{color:var(--accent-ink);font-weight:600;text-decoration:none}.track-nav-links{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap}.track-nav-links a{color:var(--accent-ink);font-weight:600;text-decoration:none;font-size:.9rem;max-width:48%}.track-next{text-align:right;margin-left:auto}.track-spacer{flex:1}.track-toc{display:inline-block;margin-top:10px;color:var(--ink-soft);font-size:.82rem}.track-num{color:var(--accent-ink);font-weight:700}.art-cta{margin-top:var(--space-12);padding:30px;border:0;border-radius:var(--radius);box-shadow:var(--shadow-sm);background:var(--surface)}footer.site{border-top:1px solid var(--line);padding:40px 0 56px}.foot{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.foot .fb{font-family:var(--display);font-weight:700}.foot .fb b{color:var(--accent)}.foot nav a{color:var(--ink-soft);text-decoration:none;margin-left:20px;font-size:.9rem}.foot nav a:hover{color:var(--accent-ink)}.foot .copy{font-family:var(--mono);font-size:.76rem;color:var(--ink-soft);width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
