:root{--night:#12293d;--night2:#0c1e2e;--paper:#f5f7f8;--ink:#22394c;--silver:#8aa0b0;--line:#d8e0e6;--amber:#d98a12;--amber-soft:#f6ead2;--mono:"IBM Plex Mono", ui-monospace, monospace;--sans:"Noto Sans JP", -apple-system, "Hiragino Kaku Gothic ProN", sans-serif;--serif:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", var(--sans)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.9;-webkit-font-smoothing:antialiased}.wrap{max-width:760px;margin:0 auto;padding:0 1.25rem}a{color:var(--amber);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.site-header{background:radial-gradient(1.5px 1.5px at 12% 30%,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 28% 65%,rgba(255,255,255,.4),transparent),radial-gradient(1.5px 1.5px at 46% 22%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 63% 55%,rgba(255,255,255,.35),transparent),radial-gradient(1.5px 1.5px at 81% 35%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 93% 68%,rgba(255,255,255,.4),transparent),linear-gradient(180deg,var(--night2),var(--night))}.site-header .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;padding-top:1.6rem;padding-bottom:1.3rem}.site-brand{display:flex;flex-direction:column;text-decoration:none}.site-brand:hover{text-decoration:none}.site-name{font-family:var(--serif);font-weight:700;font-size:1.55rem;color:#f2f6f9;letter-spacing:.06em}.site-tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--silver)}.site-nav{display:flex;gap:1.4rem}.site-nav a{color:#cfdbe4;font-size:.92rem}.site-nav a[aria-current=page]{color:#fff;border-bottom:2px solid var(--amber)}.tideline{display:block;width:100%;height:14px;background:var(--night)}.hero{padding:3rem 0 1.5rem}.hero-eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--amber);margin:0 0 .4rem}.hero h1{font-family:var(--serif);font-size:clamp(1.6rem,4.5vw,2.3rem);line-height:1.5;margin:0 0 .6rem;color:var(--night)}.hero-lead{color:var(--silver);margin:0;font-size:.98rem}.post-list{padding:1.5rem 0 3rem}.list-title{font-family:var(--serif);font-size:1.25rem;color:var(--night);border-bottom:1px solid var(--line);padding-bottom:.5rem}.card{padding:1.4rem 0;border-bottom:1px solid var(--line)}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.74rem;color:var(--silver)}.section-chip,.tide-chip,.field-chip{padding:.05rem .55rem;border-radius:99px;font-size:.7rem}.section-chip{background:var(--night);color:#e8eef3}.tide-chip{background:var(--amber-soft);color:var(--amber)}.field-chip{border:1px solid var(--line);color:var(--silver)}.card-title{margin:.45rem 0 .3rem;font-size:1.12rem;line-height:1.6}.card-title a{color:var(--ink)}.card-title a:hover{color:var(--amber)}.card-summary{margin:0;font-size:.9rem;color:#5b7183}.post{padding:2.5rem 0 3rem}.post-header h1{font-family:var(--serif);font-size:clamp(1.5rem,4vw,2rem);line-height:1.6;color:var(--night);margin:.5rem 0}.post-lead{color:var(--silver);border-left:3px solid var(--amber);padding-left:.9rem}.post-body h2{font-family:var(--serif);font-size:1.3rem;color:var(--night);margin-top:2.6rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}.post-body h3{font-size:1.05rem;margin-top:2rem}.post-body img{max-width:100%;height:auto;border-radius:6px}.post-body table{border-collapse:collapse;width:100%;font-size:.9rem}.post-body th,.post-body td{border:1px solid var(--line);padding:.45rem .7rem}.post-body th{background:#eaeff2;font-weight:500}.post-body code{font-family:var(--mono);font-size:.85em;background:#e9edf0;padding:.1em .35em;border-radius:4px}.post-body pre{background:var(--night2);border-radius:8px;padding:1rem 1.2rem;overflow-x:auto;line-height:1.6}.post-body pre code{background:0 0;padding:0;color:#e8eef3}.post-body blockquote{margin:1.5rem 0;padding:.2rem 1rem;border-left:3px solid var(--silver);color:#5b7183}.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin-top:2.5rem}.tag-list a{font-family:var(--mono);font-size:.78rem}.site-footer{background:var(--night);color:var(--silver);margin-top:2rem}.site-footer .wrap{padding:1.4rem 1.25rem;font-size:.8rem}@media(prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}@media(max-width:560px){.site-nav{gap:1rem;font-size:.85rem}}