:root{--paper: #F4EFE4;--ink-burnt: #14110E;--ink-thick: #2B2722;--ink-mid: #4A453E;--ink-light: #837C70;--ink-clear: #B0A892;--ink-hair: #DAD2C0;--cinnabar: #9E2B22;--mono: "Menlo", "Meslo LG", "SF Mono", "Cascadia Code", monospace;--cn: "Noto Serif SC", serif;--measure: 60rem}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{background-color:var(--paper);color:var(--ink-mid);font-family:var(--mono);line-height:1.7;min-height:100vh;overflow-x:hidden;position:relative;display:flex;flex-direction:column;align-items:center}.atmosphere{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.atmosphere .wash{position:absolute;border-radius:50%;filter:blur(64px);opacity:.5;animation:drift 28s ease-in-out infinite alternate}.wash.w1{width:58vw;height:58vw;left:-16vw;top:-20vw;background:radial-gradient(circle at 40% 40%,rgba(20,17,14,.1),rgba(20,17,14,.03) 46%,transparent 68%)}.wash.w2{width:46vw;height:46vw;right:-12vw;top:34vh;background:radial-gradient(circle at 55% 45%,rgba(20,17,14,.08),transparent 70%);animation-delay:-9s}.wash.w3{width:38vw;height:38vw;left:24vw;bottom:-16vw;background:radial-gradient(circle at 50% 50%,rgba(20,17,14,.055),transparent 65%);animation-delay:-16s}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(3vw,2vw) scale(1.05)}}.atmosphere:after{content:"";position:absolute;inset:0;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E")}.wrap{width:100%;max-width:var(--measure);margin:0 auto;padding:0 2.4rem;position:relative;z-index:2;flex:1 0 auto}@keyframes inkBleed{0%{opacity:0;filter:blur(12px);letter-spacing:.45em}55%{opacity:1;filter:blur(2.5px)}to{opacity:1;filter:blur(0);letter-spacing:normal}}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes caretBlink{0%,to{opacity:1}50%{opacity:0}}header.masthead{padding:5.5rem 0 2.5rem;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:flex-start;gap:1rem}.brand .logo{width:8.2rem;height:8.2rem;object-fit:contain;animation:inkBleed 1.2s cubic-bezier(.2,.7,.2,1) both}.brand-text{display:flex;flex-direction:column;gap:.55rem;padding-top:3.4rem}.brand .latin{font-size:.92rem;color:var(--ink-light);letter-spacing:.02em;max-width:30rem;line-height:1.5}.brand .latin:after{content:"";display:inline-block;width:2px;height:1.05em;background:var(--cinnabar);margin-left:3px;vertical-align:-.15em;animation:caretBlink 1s step-end infinite}.socials{display:flex;gap:.9rem;animation:riseIn .9s ease 1.1s both}.socials a{color:var(--ink-light);transition:color .3s,transform .3s;display:inline-flex}.socials a:hover{color:var(--cinnabar);transform:translateY(-2px)}.socials svg{width:19px;height:19px;display:block}.masthead nav{display:flex;gap:1.5rem;font-size:.9rem;color:var(--ink-light);animation:riseIn .9s ease .55s both}.masthead nav a{color:inherit;text-decoration:none;transition:color .3s}.masthead nav a:hover{color:var(--ink-burnt)}.masthead nav a.active{color:var(--cinnabar)}.view-head{font-family:var(--cn);font-size:1.5rem;font-weight:500;color:var(--ink-burnt);margin-bottom:.4rem;animation:riseIn .7s ease both}.view-sub{font-family:var(--mono);font-size:.8rem;color:var(--ink-light);letter-spacing:.06em;margin-bottom:2.2rem}.search{display:flex;align-items:center;gap:.9rem;margin-bottom:2.4rem;animation:riseIn 1s ease .6s both}.search .label{font-family:var(--mono);font-size:.78rem;color:var(--ink-light);letter-spacing:.14em;text-transform:uppercase}.search input{flex:1;background:transparent;border:none;border-bottom:1px solid var(--ink-hair);font-family:var(--cn);font-size:1rem;color:var(--ink-thick);padding:.4rem .2rem;outline:none;transition:border-color .3s}.search input::placeholder{color:var(--ink-clear);font-family:var(--cn)}.search input:focus{border-bottom-color:var(--cinnabar)}.list{padding-bottom:4rem;animation:riseIn .9s ease .7s both}.post-row{display:flex;align-items:baseline;gap:1.3rem;padding:.7rem 0;text-decoration:none}.post-row .date{font-family:var(--mono);font-size:.82rem;color:var(--ink-clear);white-space:nowrap;flex-shrink:0;letter-spacing:.02em;min-width:6.6rem}.post-row .t{font-family:var(--cn);font-size:1.05rem;font-weight:400;color:var(--ink-thick);line-height:1.6;transition:color .25s;position:relative}.post-row .t:after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:5px;background:var(--cinnabar);opacity:.7;border-radius:60% 40% 55% 45%/100% 100% 0 0;transition:right .4s cubic-bezier(.2,.8,.2,1)}.post-row:hover .t{color:var(--ink-burnt)}.post-row:hover .t:after{right:0}.list .empty{font-family:var(--cn);color:var(--ink-light);padding:1.4rem 0;font-size:.95rem}.year-group{margin-bottom:2.4rem}.year-label{font-family:var(--mono);font-size:1.4rem;color:var(--ink-clear);font-weight:400;margin-bottom:.4rem;letter-spacing:.04em}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1.6rem;padding-bottom:4rem;animation:riseIn .9s ease .6s both}.cat-card{border:1px solid var(--ink-hair);padding:1.5rem 1.6rem 1.2rem;background:#ffffff2e;transition:border-color .3s}.cat-card:hover{border-color:var(--ink-clear)}.cat-card .cat-hd{display:flex;align-items:baseline;gap:.7rem;padding-bottom:.9rem;margin-bottom:.6rem;border-bottom:1px solid var(--ink-hair);text-decoration:none}.cat-card .cat-hd .name{font-family:var(--cn);font-size:1.25rem;color:var(--ink-burnt);font-weight:500;transition:color .25s}.cat-card .cat-hd:hover .name{color:var(--cinnabar)}.cat-card .cat-hd .count{font-family:var(--mono);font-size:.78rem;color:var(--ink-light)}.cat-card .prev-row{display:flex;align-items:baseline;gap:.8rem;padding:.3rem 0;text-decoration:none}.cat-card .prev-row .d{font-family:var(--mono);font-size:.74rem;color:var(--ink-clear);white-space:nowrap;flex-shrink:0;min-width:5.4rem}.cat-card .prev-row .tt{font-family:var(--cn);font-size:.96rem;color:var(--ink-thick);line-height:1.5;transition:color .25s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-card .prev-row:hover .tt{color:var(--cinnabar)}.cat-card .more{display:inline-block;margin-top:.8rem;font-family:var(--mono);font-size:.76rem;color:var(--ink-light);text-decoration:none;transition:color .3s}.cat-card .more:hover{color:var(--cinnabar)}.article{max-width:54rem;margin:0 auto;padding-bottom:6rem;animation:riseIn .8s ease both}.article .a-meta{font-family:var(--mono);font-size:.85rem;color:var(--ink-light);letter-spacing:.04em;margin-bottom:1rem}.article h1.title{font-family:var(--cn);font-size:2.6rem;font-weight:500;color:var(--ink-burnt);line-height:1.45;margin-bottom:2.4rem;animation:inkBleed 1.2s cubic-bezier(.2,.7,.2,1) both}.prose{font-family:var(--cn)}.prose p{margin-bottom:1.6rem;font-weight:300;font-size:1.1rem;line-height:1.95;color:var(--ink-thick)}.prose>p:first-of-type:first-letter{font-size:3.2rem;font-weight:600;color:var(--ink-burnt);float:left;line-height:1;padding:.4rem .55rem 0 0}.prose h2{font-family:var(--cn);font-size:1.7rem;font-weight:500;color:var(--ink-burnt);margin:2.6rem 0 1.1rem}.prose h3{font-family:var(--cn);font-size:1.3rem;font-weight:500;color:var(--ink-thick);margin:2rem 0 .9rem}.prose a{color:var(--cinnabar);text-decoration:none;border-bottom:1px solid rgba(158,43,34,.35);transition:border-color .3s}.prose a:hover{border-bottom-color:var(--cinnabar)}.prose ul,.prose ol{margin:0 0 1.6rem 1.4rem}.prose li{margin-bottom:.5rem;font-weight:300;font-size:1.08rem;color:var(--ink-thick)}.prose blockquote{border-left:3px solid var(--cinnabar);padding:.3rem 0 .3rem 1.2rem;margin:1.8rem 0;color:var(--ink-mid);font-style:italic}.prose strong{font-weight:600;color:var(--ink-burnt)}.prose hr{border:none;text-align:center;margin:3rem 0 2.2rem}.prose hr:after{content:"· · ·";color:var(--ink-light);letter-spacing:.6rem}.prose img{display:block;max-width:100%;height:auto;margin:2.4rem auto .6rem;border:1px solid var(--ink-hair);padding:.5rem;background:#ffffff4d;cursor:zoom-in}.prose img+em{display:block;text-align:center;font-family:var(--mono);font-size:.76rem;color:var(--ink-light);font-style:normal;margin-bottom:1.6rem;letter-spacing:.04em}.prose :not(pre)>code{font-family:var(--mono);font-size:.9em;background:#14110e0f;border:1px solid var(--ink-hair);border-radius:2px;padding:.08em .4em;color:var(--cinnabar)}.prose pre{font-family:var(--mono);font-size:.86rem;line-height:1.75;border:1px solid var(--ink-hair);border-left:3px solid var(--cinnabar);border-radius:3px;padding:1.1rem 1.3rem;margin:2rem 0;overflow-x:auto}.prose pre code{font-family:var(--mono);background:none;border:none;padding:0}.tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--ink-hair)}.tags .tag{font-family:var(--mono);font-size:.78rem;color:var(--cinnabar);border:1px solid rgba(158,43,34,.4);border-radius:2px;padding:.15rem .6rem;letter-spacing:.02em;text-decoration:none;transition:background .3s}.tags .tag:hover{background:#9e2b2214}.back{display:inline-block;background:none;border:none;cursor:pointer;font-family:var(--mono);font-size:.85rem;color:var(--ink-light);padding:0 0 2.5rem;transition:color .3s;text-decoration:none}.back:hover{color:var(--cinnabar)}.back:before{content:"← "}.about{max-width:48rem;font-family:var(--cn);animation:riseIn .7s ease both}.about p{font-size:1.08rem;font-weight:300;line-height:2;color:var(--ink-thick);margin-bottom:1.4rem}.about .placeholder{color:var(--ink-light);font-style:italic}footer{flex-shrink:0;width:100%;text-align:center;color:var(--ink-light);font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;padding:2rem 0;position:relative;z-index:2}.lightbox{position:fixed;inset:0;z-index:50;background:#14110edb;display:none;align-items:center;justify-content:center;cursor:zoom-out;padding:4vw}.lightbox.show{display:flex}.lightbox img{max-width:92vw;max-height:92vh;box-shadow:0 10px 60px #00000080}@media(max-width:680px){.brand .logo{width:6rem;height:6rem}.brand{align-items:flex-start}.brand-text{padding-top:1.4rem}.masthead nav{gap:1rem;font-size:.82rem}header.masthead{padding:3.5rem 0 2rem;flex-direction:column;align-items:flex-start;gap:1rem}.article h1.title{font-size:2rem}}
