.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{color-scheme:dark;--paper:#16130f;--paper-raised:#1d1913;--paper-sunken:#100e0b;--ink:#e9e2d3;--ink-soft:#a89e8c;--ink-faint:#6f6656;--rule:#332c22;--rule-strong:#4a4032;--accent:#e08a68;--accent-soft:#e08a6824;--font-serif:"Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", ui-monospace, "Cascadia Code", Menlo, monospace;--content-width:42rem;--page-gutter:clamp(1.5rem, 5vw, 5rem);--chrome-top:4.25rem;--chrome-bottom:4.25rem;--page-width:100vw;--ease:cubic-bezier(.22, 1, .36, 1);--shadow:0 1px 2px #0006, 0 16px 40px -24px #000c}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(circle at 15% 12%,#e08a680f,#0000 45%),radial-gradient(circle at 85% 0,#ffffff08,#0000 40%);background-attachment:fixed;margin:0;font-size:clamp(1.02rem,.55vw + .9rem,1.18rem);line-height:1.75;overflow:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}::selection{background:var(--accent);color:var(--paper)}.book{z-index:1;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;position:fixed;inset:0;overflow:auto hidden}.book::-webkit-scrollbar{display:none}.book-track{height:100%;padding-block:var(--chrome-top) var(--chrome-bottom);column-width:var(--page-width);column-fill:auto;column-gap:0}.panel{break-before:column;padding-inline:var(--page-gutter)}.book-track>:first-child{break-before:auto}.panel-inner{width:100%;max-width:var(--content-width);margin-inline:auto}.panel-cover{min-height:calc(100dvh - var(--chrome-top) - var(--chrome-bottom));flex-direction:column;justify-content:center;display:flex}.skip-link{z-index:100;background:var(--ink);color:var(--paper);font-family:var(--font-sans);transition:top .3s var(--ease);border-radius:4px;padding:.5rem .9rem;font-size:.8rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.wrap{width:100%;max-width:var(--content-width);margin-inline:auto}.site-header{height:var(--chrome-top);z-index:40;padding-inline:var(--page-gutter);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--paper) 72%, transparent);transition:border-color .4s var(--ease);border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.site-header[data-scrolled=true]{border-bottom-color:var(--rule)}.site-header .wrap{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.brand{font-family:var(--font-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);transition:color .3s var(--ease);align-items:baseline;gap:.55rem;font-size:.82rem;display:inline-flex}.brand:hover{color:var(--ink)}.nav{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:clamp(.85rem,2.5vw,1.75rem);font-size:.78rem;display:flex}.nav a{color:var(--ink-soft);transition:color .3s var(--ease);padding-block:.25rem;position:relative}.nav a:after{content:"";background:var(--accent);transform-origin:100%;width:100%;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.nav a:hover:after,.nav a[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.spine{z-index:30;pointer-events:none;user-select:none;flex-direction:column;align-items:center;gap:.75rem;display:flex;position:fixed;top:50%;right:clamp(.6rem,1.8vw,1.6rem);transform:translateY(-50%)}.spine-text{writing-mode:vertical-rl;text-orientation:mixed;font-family:var(--font-sans);letter-spacing:.62em;text-transform:uppercase;color:var(--ink-faint);pointer-events:auto;transition:color .5s var(--ease), letter-spacing .6s var(--ease);font-size:clamp(.72rem,.55vw + .5rem,.95rem);font-weight:500}.spine-text:hover{color:var(--accent);letter-spacing:.78em}.spine-line{background:linear-gradient(to bottom, transparent, var(--rule-strong), transparent);width:1px;height:clamp(2rem,6vw,4rem)}.spine-char{opacity:0;animation:spine-in .9s var(--ease) forwards;display:inline-block}@keyframes spine-in{0%{opacity:0;transform:translateY(.6em)}to{opacity:1;transform:translateY(0)}}@media (width<=60rem){.spine{display:none}}.book-bar{height:var(--chrome-bottom);z-index:40;padding-inline:var(--page-gutter);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--paper) 72%, transparent);border-top:1px solid var(--rule);font-family:var(--font-sans);letter-spacing:.1em;color:var(--ink-faint);justify-content:space-between;align-items:center;gap:1rem;font-size:.74rem;display:flex;position:fixed;bottom:0;left:0;right:0}.book-bar-left,.book-bar-right{align-items:center;gap:.85rem;display:flex}.book-bar-center{position:absolute;left:50%;transform:translate(-50%)}.book-count{font-variant-numeric:tabular-nums;letter-spacing:.22em;color:var(--ink-soft);white-space:nowrap}.book-turn{border:1px solid var(--rule);width:2.35rem;height:2.35rem;color:var(--ink-soft);cursor:pointer;transition:color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);background:0 0;border-radius:999px;place-items:center;display:inline-grid}.book-turn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.book-turn:active:not(:disabled){transform:scale(.94)}.book-turn:disabled{opacity:.3;cursor:default}.book-turn svg{width:1rem;height:1rem}.book-links{align-items:center;gap:1rem;display:flex}.book-links a{color:var(--ink-soft);transition:color .3s var(--ease);align-items:center;gap:.35rem;display:inline-flex}.book-links a:hover{color:var(--accent)}.progress{background:var(--accent);z-index:60;width:0;height:2px;transition:width .15s linear;position:fixed;top:0;left:0}.hero{flex-direction:column;gap:1.35rem;display:flex}.hero-portrait-link{transition:transform .6s var(--ease);border-radius:999px;align-self:flex-start;display:inline-flex}.hero-portrait-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hero-portrait{object-fit:cover;filter:grayscale()contrast(1.05);border:1px solid var(--rule-strong);background:var(--paper-raised);width:5.5rem;height:5.5rem;box-shadow:var(--shadow);transition:filter .6s var(--ease), transform .6s var(--ease);border-radius:999px;padding:.25rem}.hero-portrait:hover{filter:grayscale(0);transform:scale(1.04)rotate(-2deg)}.hero h1{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(4rem,13vw,8rem);font-weight:500;line-height:.95}.hero .kicker{font-family:var(--font-sans);letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.76rem}.hero .jp{font-family:var(--font-serif);color:var(--ink-soft);max-width:34rem;margin:0;font-size:.98rem;line-height:1.9}.hero .intro{max-width:34rem;color:var(--ink);margin:0}.cover-meta{font-family:var(--font-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:.5rem 0 0;font-size:.68rem}.socials{gap:.75rem;margin-top:.25rem;display:flex}.socials a{border:1px solid var(--rule);width:2.2rem;height:2.2rem;color:var(--ink-soft);transition:color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);border-radius:999px;place-items:center;display:inline-grid}.socials a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.socials svg{width:1rem;height:1rem}.section-writing .panel-inner{padding:8px}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.section-head h2{font-family:var(--font-sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.78rem;font-weight:600}.section-head a{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);transition:color .3s var(--ease);font-size:.76rem}.section-head a:hover{color:var(--accent)}.toc{margin:0;padding:0;list-style:none}.toc-year{font-family:var(--font-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--rule);break-after:avoid;margin:2.5rem 0 .75rem;padding-bottom:.4rem;font-size:.72rem}.toc-year:first-child{margin-top:0}.toc-item{break-inside:avoid;position:relative}.toc-item a{transition:color .3s var(--ease);align-items:baseline;gap:.6rem;padding:.55rem 0;display:flex}.toc-title{color:var(--ink);transition:transform .4s var(--ease), color .3s var(--ease);font-size:1.08rem;line-height:1.4}.toc-leader{border-bottom:1px dotted var(--rule-strong);flex:1;min-width:1.5rem;height:.6em;transform:translateY(-.2em)}.toc-date{font-family:var(--font-sans);letter-spacing:.08em;color:var(--ink-faint);white-space:nowrap;font-size:.74rem}.toc-item a:hover .toc-title{color:var(--accent);transform:translate(.35rem)}.toc-item a:hover .toc-date{color:var(--ink-soft)}.toc-item.is-draft .toc-title:after{content:"draft";font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--rule);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.05rem .4rem;font-size:.6rem}.article-header{break-inside:avoid;break-after:avoid;margin-bottom:2.25rem;padding-top:1.75rem}.article-meta{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:1rem;font-size:.74rem;display:flex}.article-meta .dot{background:var(--rule-strong);border-radius:999px;width:3px;height:3px}.article-title{letter-spacing:-.015em;margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:500;line-height:1.12}.article-tags{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.tag{font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);transition:color .3s var(--ease), border-color .3s var(--ease), background-color .3s var(--ease);border-radius:999px;padding:.2rem .7rem;font-size:.68rem}.tag:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.prose{overflow-wrap:break-word;font-size:1.08em;line-height:1.85}.prose>*+*{margin-top:1.35em}.prose p{text-align:justify;hyphens:auto;orphans:2;widows:2;margin:0}.prose>p:first-of-type:first-letter{float:left;color:var(--accent);padding:.06em .12em 0 0;font-size:3.5em;font-weight:500;line-height:.78}.prose h2,.prose h3,.prose h4{letter-spacing:-.01em;break-after:avoid;margin-top:2.2em;margin-bottom:-.4em;font-weight:600;line-height:1.25}.prose h2{font-size:1.5em}.prose h3{font-size:1.25em}.prose a{color:var(--accent);text-underline-offset:.18em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);transition:text-decoration-color .3s var(--ease)}.prose a:hover{text-decoration-color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin-inline:0;padding-left:1.25rem;font-style:italic}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose hr{background:var(--rule-strong);border:0;width:4rem;height:1px;margin:2.5rem auto}.prose img{border:1px solid var(--rule);box-shadow:var(--shadow);max-height:calc(100dvh - var(--chrome-top) - var(--chrome-bottom) - 4rem);border-radius:2px;width:auto;margin-inline:auto}.prose code{font-family:var(--font-mono);background:var(--paper-sunken);border:1px solid var(--rule);border-radius:3px;padding:.1em .35em;font-size:.86em}.prose pre{border:1px solid var(--rule);border-radius:4px;max-width:100%;padding:1.1rem 1.25rem;font-size:.9rem;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:.95em}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;padding:.5rem .75rem}.prose img,.prose pre,.prose blockquote,.prose table,.prose figure{break-inside:avoid}.article-footer{border-top:1px solid var(--rule);font-family:var(--font-sans);break-inside:avoid;justify-content:space-between;gap:1.5rem;margin-top:3.25rem;padding-top:1.75rem;font-size:.78rem;display:flex}.article-footer a{max-width:45%;color:var(--ink-soft);transition:color .3s var(--ease);flex-direction:column;gap:.25rem;display:flex}.article-footer a:hover{color:var(--accent)}.article-footer .dir{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);font-size:.66rem}.article-footer .next{text-align:right;align-items:flex-end;margin-left:auto}.page-title{letter-spacing:-.015em;margin:0 0 .5rem;font-size:clamp(1.9rem,4.5vw,2.75rem);font-weight:500}.page-lede{color:var(--ink-soft);max-width:34rem;margin:.7rem 0 0}.tag-cloud{flex-wrap:wrap;gap:.6rem;display:flex}.tag-cloud .tag{padding:.35rem .9rem;font-size:.74rem}.tag-cloud .count{color:var(--ink-faint);margin-left:.4rem}.search-field{width:100%;font-family:var(--font-serif);color:var(--ink);background:var(--paper-raised);border:1px solid var(--rule);transition:border-color .3s var(--ease), box-shadow .3s var(--ease);border-radius:4px;margin-top:.5rem;padding:.85rem 1rem;font-size:1.15rem}.search-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.search-empty{color:var(--ink-faint);margin-top:1.5rem;font-style:italic}[data-reveal]{transition:opacity .8s var(--ease), transform .8s var(--ease)}.has-js [data-reveal]{opacity:0;transform:translateY(1rem)}.has-js [data-reveal].is-visible{opacity:1;transform:none}.rise{animation:rise .9s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}@media (width<=40rem){:root{--chrome-top:3.75rem;--chrome-bottom:3.75rem;--page-gutter:1.25rem}.article-header{padding-top:1.25rem}.site-header .wrap{gap:1rem}.brand{letter-spacing:.14em;font-size:.7rem}.nav{letter-spacing:.1em;gap:.75rem;font-size:.66rem}.book-bar{gap:.5rem;font-size:.68rem}.book-bar-center{position:static;transform:none}.book-links{gap:.75rem}.book-turn{width:2.1rem;height:2.1rem}.hero-portrait{width:4.5rem;height:4.5rem}.hero h1{font-size:clamp(3.5rem,22vw,5rem)}}
