:root,[data-theme=light]{--bg-primary:#f2efe1;--bg-secondary:#e9e5d3;--bg-tertiary:#ddd8c2;--text-primary:#15120c;--text-secondary:#3a3428;--text-muted:#63604f;--border-color:#c9c3ac;--border-light:#dad5c0;--accent:#9d7b4e;--accent-hover:#7a5d3a;--font-body:Georgia, "Times New Roman", serif;--font-mono:"SF Mono", "Monaco", "Inconsolata", "Roboto Mono", monospace;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:5rem}[data-theme=dark]{--bg-primary:#262523;--bg-secondary:#2e2d2a;--bg-tertiary:#383632;--text-primary:#e9e7e2;--text-secondary:#b5b2aa;--text-muted:#97938a;--border-color:#403e39;--border-light:#4a4842;--accent:#d4b896;--accent-hover:#e5cbaa}:root{--bg-color:var(--bg-primary);--bg-slot:var(--bg-secondary);--bg-hover:var(--bg-tertiary);--border-solid:var(--border-color);--border-dashed:var(--border-light);--action-color:var(--accent);--font-serif:var(--font-body);--font-sans:var(--font-body)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);letter-spacing:.01em;min-height:100vh;padding:var(--space-xl) var(--space-lg);font-size:.9375rem;line-height:1.6;transition:background-color .3s,color .3s}.grid{gap:var(--space-2xl);grid-template-columns:380px 1fr;max-width:1200px;min-height:calc(100vh - 6rem);margin:0 auto;display:grid}.col{flex-direction:column;min-height:0;display:flex}.col-header{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);padding-bottom:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--border-color);gap:var(--space-md);font-size:.6875rem;display:flex}.col-num{color:var(--accent)}.scroll-area{padding-right:var(--space-md);scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex:1;overflow-y:auto}.scroll-area::-webkit-scrollbar{width:3px}.scroll-area::-webkit-scrollbar-track{background:0 0}.scroll-area::-webkit-scrollbar-thumb{background:var(--border-color)}h1{letter-spacing:-.02em;margin-bottom:var(--space-md);color:var(--text-primary);font-size:1.5rem;font-weight:400}.bio-text{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9375rem;line-height:1.7}.bio-text p{margin-bottom:var(--space-md)}.bio-text strong{color:var(--text-primary);font-weight:500}.visual-slot{width:100%;height:140px;margin-bottom:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.render-placeholder{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:.625rem}.nav-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-primary);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-light);font-size:.75rem;text-decoration:none;transition:color .2s,padding-left .2s;display:block}.nav-link:hover{color:var(--accent);padding-left:var(--space-sm)}.arrow{margin-left:var(--space-xs);opacity:.5;font-size:.625rem;transition:opacity .2s,transform .2s}.nav-link:hover .arrow{opacity:1;transform:translate(2px)}.status-dot{color:var(--accent);margin-right:var(--space-xs);font-size:.5rem}.section-group{padding-bottom:var(--space-xs);margin-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.section-group:last-child{border:none}.section-header-row{margin-bottom:var(--space-sm);justify-content:space-between;align-items:baseline;display:flex}.section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.25em;color:var(--text-primary);font-size:.625rem}.action-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.625rem;text-decoration:none;transition:color .2s}.action-link:hover{color:var(--text-primary)}.library-section{padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.library-section:last-child{border:none}.library-category{margin-bottom:var(--space-sm)}.library-category-header{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3em;color:var(--text-muted);margin-bottom:var(--space-xs);align-items:center;gap:var(--space-sm);font-size:.5625rem;display:flex}.library-category-header:after{content:"";background:var(--border-light);flex:1;height:1px}.compact-item{padding:var(--space-xs) 0;color:var(--text-primary);justify-content:space-between;align-items:baseline;font-size:.875rem;text-decoration:none;transition:color .2s,padding-left .2s;display:flex}.compact-item:hover{color:var(--accent);padding-left:var(--space-sm)}.compact-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-left:var(--space-md);flex-shrink:0;font-size:.5625rem}.star-rating{font-family:var(--font-mono);color:var(--accent);letter-spacing:1px;font-size:.5rem}.music-note{color:var(--text-secondary);margin-top:var(--space-xs);font-size:.8125rem;font-style:italic;line-height:1.5}.nav-inline-link{color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:none;position:relative}.nav-inline-link:after{content:"";background:var(--text-primary);width:0;height:1px;transition:width .25s;position:absolute;bottom:-1px;left:0}.nav-inline-link:hover{color:var(--text-primary)}.nav-inline-link:hover:after{width:100%}.col-section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-color);margin-bottom:var(--space-md);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);gap:var(--space-md);font-size:.6875rem;display:flex}.project-row{padding:var(--space-sm) 0;border-bottom:1px solid var(--border-light)}.project-row:last-of-type{border-bottom:none}.project-row-name{color:var(--text-primary);font-size:.9375rem;text-decoration:none;transition:color .2s;display:inline-block}.project-row-name:hover{color:var(--accent)}.project-row-desc{color:var(--text-secondary);margin-top:.2rem;font-size:.8125rem;line-height:1.5;display:block}.project-item{margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-light)}.project-item:last-child{border:none}.project-title{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:1rem;font-weight:400;text-decoration:none;transition:color .2s;display:inline-block}.project-title:hover{color:var(--accent)}.project-desc{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.875rem;line-height:1.6}.tag-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-color);background:0 0;font-size:.5625rem}.theme-selector{margin-top:auto;position:relative}.theme-toggle{width:100%;padding:var(--space-sm) 0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);border:none;border-top:1px solid var(--border-light);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;font-size:.625rem;transition:color .2s;display:flex}.theme-toggle:hover{color:var(--text-primary)}.theme-arrow{opacity:.5;font-size:.5rem}.theme-dropdown{background:var(--bg-primary);border:1px solid var(--border-color);margin-bottom:var(--space-xs);z-index:100;position:absolute;bottom:100%;left:0;right:0}.theme-option{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);border:none;border-bottom:1px solid var(--border-light);cursor:pointer;text-align:left;background:0 0;font-size:.625rem;transition:all .2s;display:flex}.theme-option:last-child{border-bottom:none}.theme-option:hover{background:var(--bg-secondary);color:var(--text-primary)}.theme-option.active{color:var(--accent)}.links-dropdown-container{position:relative}.links-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);border-top:none}.links-dropdown-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);border-bottom:1px solid var(--border-light);font-size:.6875rem;text-decoration:none;transition:all .2s;display:flex}.links-dropdown-item:last-child{border-bottom:none}.links-dropdown-item:hover{background:var(--bg-tertiary);color:var(--accent);padding-left:var(--space-lg)}.links-icon{text-align:center;opacity:.6;width:1rem;font-size:.75rem}.live-albums{gap:var(--space-md);margin-top:var(--space-md);display:flex}.live-album{align-items:center;gap:var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-light);flex:1;padding:.45rem;transition:all .2s;display:flex}.live-album:hover{border-color:var(--accent)}.live-album img{object-fit:cover;flex-shrink:0;width:40px;height:40px}.live-album-info{min-width:0}.live-album-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;overflow:hidden}.live-album-artist{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.5625rem;overflow:hidden}.live-album-plays{color:var(--accent);margin-top:1px;font-size:.8125rem}.weekly-carousel{margin-top:var(--space-xs)}.weekly-carousel .live-albums{margin-top:0}.weekly-carousel-header{justify-content:center;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);display:flex}.carousel-arrow{color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;padding:var(--space-xs);background:0 0;border:none;font-size:.75rem;transition:color .2s}.carousel-arrow:hover{color:var(--accent)}.weekly-carousel-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);font-size:.5rem}.explicit-cover-wrapper{display:inline-block;position:relative}.explicit-cover-wrapper img{filter:blur(12px);transition:filter .3s}.explicit-cover-wrapper.revealed img{filter:none}.explicit-cover-wrapper:before{content:"EXPLICIT";font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-primary);background:var(--bg-primary);padding:var(--space-xs) var(--space-sm);z-index:1;pointer-events:none;opacity:1;font-size:.5rem;transition:opacity .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.explicit-cover-wrapper.revealed:before{opacity:0}.explicit-cover-wrapper.clickable{cursor:pointer}.explicit-cover-wrapper.clickable:hover img{filter:blur(8px)}.explicit-cover-wrapper.clickable.revealed:hover img{filter:none}@media (max-width:1000px){body{padding:var(--space-lg) var(--space-md)}.grid{display:block}.col{margin-bottom:var(--space-2xl)}.scroll-area{padding-right:0}}.essay-page{max-width:680px;padding:var(--space-xl) var(--space-lg);min-height:100vh;margin:0 auto}body:has(.essay-page){overflow:auto}.essay-nav{padding-bottom:var(--space-md);margin-bottom:var(--space-2xl);border-bottom:1px solid var(--border-color);z-index:40;background:var(--bg-primary);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.essay-back{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:.625rem;text-decoration:none;transition:color .2s}.essay-back:hover{color:var(--accent)}.essay-date{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.625rem}.essay-header{margin-bottom:var(--space-xl)}.essay-header h1{letter-spacing:-.02em;font-size:2rem;font-weight:400;line-height:1.3}@media (min-width:768px){.essay-header h1{font-size:2.5rem}}.essay-content{color:var(--text-primary);font-size:1.0625rem;line-height:1.8}.essay-content p{margin-bottom:1.5em}.essay-content h2,.essay-content h3{letter-spacing:-.01em;margin-top:2.5em;margin-bottom:1em;font-weight:500}.essay-content h2{font-size:1.375rem}.essay-content h3{font-size:1.125rem}.essay-content strong{font-weight:600}.essay-content a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;transition:color .2s}.essay-content a:hover{color:var(--text-primary)}.essay-content blockquote{border-left:2px solid var(--accent);padding-left:var(--space-lg);margin:var(--space-lg) 0;color:var(--text-secondary);font-style:italic}.essay-content ul,.essay-content ol{margin:var(--space-md) 0 var(--space-lg) var(--space-lg)}.essay-content li{margin-bottom:var(--space-sm)}.essay-content code{font-family:var(--font-mono);background:var(--bg-secondary);padding:2px 6px;font-size:.875em}.essay-content pre{background:var(--bg-secondary);padding:var(--space-md);margin:var(--space-lg) 0;border:1px solid var(--border-light);overflow-x:auto}.essay-content pre code{background:0 0;padding:0}.essay-content hr{border:none;border-top:1px solid var(--border-color);margin:var(--space-xl) 0}.essay-footer{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--border-color);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.625rem}.subpage{max-width:760px;padding:var(--space-xl) var(--space-lg);min-height:100vh;margin:0 auto}:is(body:has(.subpage),body:has(.music-page)){overflow:auto}.subpage-nav{padding-bottom:var(--space-md);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-color);z-index:40;background:var(--bg-primary);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.back-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:.625rem;text-decoration:none;transition:color .2s}.back-link:hover{color:var(--accent)}.subpage-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);font-size:.625rem}.subpage-header{margin-bottom:var(--space-xl)}.subpage-intro{color:var(--text-secondary);font-size:1rem;line-height:1.7}.subpage-section{margin-bottom:var(--space-xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-color)}.subpage-section:last-of-type{border:none}.subpage-section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.25em;color:var(--text-muted);margin-bottom:var(--space-sm);font-size:.5625rem}.subpage-section-desc{color:var(--text-muted);margin-bottom:var(--space-md);font-size:.8125rem}.subpage-list{flex-direction:column;display:flex}.subpage-item{padding:var(--space-sm) 0;color:var(--text-primary);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:baseline;text-decoration:none;transition:all .2s;display:flex}.subpage-item:last-child{border-bottom:none}.subpage-item:hover{padding-left:var(--space-sm);color:var(--accent)}.subpage-item-main{align-items:baseline;gap:var(--space-sm);display:flex}.subpage-item-title{font-size:.9375rem}.subpage-item-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);flex-shrink:0;font-size:.5625rem}.status-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-size:.5rem}.subpage-footer{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.empty-state{color:var(--text-muted);font-size:.875rem;font-style:italic}.music-page{max-width:1400px;padding:var(--space-xl) var(--space-lg);min-height:100vh;margin:0 auto}.music-page-nav{padding-bottom:var(--space-md);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border-color);z-index:40;background:var(--bg-primary);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.music-page-header{margin-bottom:var(--space-xl)}.music-page-header h1{letter-spacing:-.02em;margin-bottom:var(--space-sm);font-size:1.5rem;font-weight:400}.music-page-header p{color:var(--text-secondary);margin-bottom:var(--space-sm)}.music-count{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:.625rem}.music-grid-container{width:100%}.music-controls{gap:var(--space-lg);padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.music-sort,.music-filter{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.control-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);font-size:.5625rem}.sort-select{font-family:var(--font-mono);padding:var(--space-xs) var(--space-sm);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;font-size:.6875rem;transition:border-color .2s}.sort-select:focus{border-color:var(--accent);outline:none}.filter-btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-xs) var(--space-sm);color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;font-size:.5625rem;transition:all .2s}.filter-btn:hover{border-color:var(--accent);color:var(--accent)}.filter-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.filter-btn.empty{opacity:.4}.music-results{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:var(--space-md);font-size:.5625rem}.no-albums{font-family:var(--font-mono);color:var(--text-muted);text-align:center;padding:var(--space-2xl);font-size:.75rem}.music-grid,.music-grid-full{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.music-card,.music-card-full{background:var(--bg-secondary);border:1px solid var(--border-light);flex-direction:column;transition:all .2s;display:flex}.music-card:hover,.music-card-full:hover{border-color:var(--accent)}.music-card-header{gap:var(--space-md);padding:var(--space-md);text-decoration:none;display:flex}.music-card-cover,.music-card-cover-full{aspect-ratio:1;object-fit:cover;width:100%;display:block}.music-card-cover-placeholder{aspect-ratio:1;background:var(--bg-tertiary);width:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.music-card-link{display:block}.music-card-content{padding:var(--space-md);gap:var(--space-xs);flex-direction:column;display:flex}.music-card-info{flex-direction:column;justify-content:center;min-width:0;display:flex}.music-card-title,.music-card-title-full{color:var(--text-primary);margin:0;font-size:.875rem;font-weight:400;line-height:1.4}.music-card-artist,.music-card-artist-full{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.5625rem}.music-card-title-link{text-decoration:none}.music-card-rating,.music-card-rating-full{font-family:var(--font-mono);color:var(--accent);align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);letter-spacing:1px;font-size:.5625rem;display:flex}.rating-number,.rating-number-full{opacity:.6;letter-spacing:0;font-size:.5rem}.music-card-thoughts,.music-card-thoughts-full{color:var(--text-secondary);padding-top:var(--space-sm);border-top:1px solid var(--border-light);margin:0;font-size:.8125rem;font-style:italic;line-height:1.5}.thoughts-toggle{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);padding:var(--space-xs) 0;cursor:pointer;text-align:left;background:0 0;border:none;font-size:.5625rem;transition:color .2s}.thoughts-toggle:hover{color:var(--text-primary)}.no-thoughts{font-family:var(--font-mono);color:var(--text-muted);font-size:.5rem;font-style:italic}.music-page-footer{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}@media (max-width:768px){.music-page{padding:var(--space-lg) var(--space-md)}.music-controls{gap:var(--space-md);flex-direction:column}.music-grid,.music-grid-full{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.bio-content{color:var(--text-primary);font-size:1rem;line-height:1.8}.bio-content p{margin-bottom:1.5em}.bio-content h2{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.25em;color:var(--text-muted);margin-top:var(--space-xl);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-color);font-size:.625rem;font-weight:500}.bio-content a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;transition:color .2s}.bio-content a:hover{color:var(--text-primary)}.bio-contact{margin-top:var(--space-xl);padding:var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border-light)}.resume-content{color:var(--text-primary)}.resume-section{margin-bottom:var(--space-xl)}.resume-section h2{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.25em;color:var(--text-muted);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-color);font-size:.625rem;font-weight:500}.resume-item{margin-bottom:var(--space-lg)}.resume-item-header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:baseline;display:flex}.resume-item h3{font-size:.9375rem;font-weight:400}.resume-date{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.5625rem}.resume-company{color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.875rem}.resume-list{margin-left:var(--space-lg);color:var(--text-secondary);font-size:.875rem}.resume-list li{margin-bottom:var(--space-xs)}.resume-skills{gap:var(--space-sm);flex-wrap:wrap;display:flex}.resume-link{font-family:var(--font-mono);color:var(--accent);font-size:.625rem;text-decoration:none;transition:color .2s}.resume-link:hover{color:var(--text-primary)}.resume-desc{color:var(--text-secondary);margin-top:var(--space-sm);font-size:.875rem}.library-preview-grid{gap:var(--space-md);margin-bottom:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.library-preview-card{padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light);transition:all .2s}.library-preview-card:hover{border-color:var(--accent)}.library-preview-header{gap:var(--space-md);margin-bottom:var(--space-md);text-decoration:none;display:flex}.library-preview-cover{object-fit:cover;flex-shrink:0;width:56px;height:56px}.library-preview-info{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.library-preview-title{color:var(--text-primary);align-items:center;gap:var(--space-sm);font-size:.875rem;display:flex}.library-preview-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.5625rem}.library-preview-rating{font-family:var(--font-mono);color:var(--accent);letter-spacing:1px;font-size:.5rem}.library-preview-thoughts{color:var(--text-secondary);padding-top:var(--space-sm);border-top:1px solid var(--border-light);margin:0;font-size:.8125rem;font-style:italic;line-height:1.5}.view-all-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-top:var(--space-sm);font-size:.625rem;text-decoration:none;transition:color .2s;display:inline-block}.view-all-link:hover{color:var(--text-primary)}.tools-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.tool-card{gap:var(--space-md);padding:var(--space-lg);background:var(--bg-secondary);border:1px solid var(--border-light);text-decoration:none;transition:all .2s;display:flex}.tool-card:hover{border-color:var(--accent)}.tool-icon{opacity:.7;flex-shrink:0;font-size:1.25rem}.tool-info{gap:var(--space-xs);flex-direction:column;display:flex}.tool-name{color:var(--text-primary);margin:0;font-size:.9375rem;font-weight:400}.tool-desc{color:var(--text-secondary);margin:0;font-size:.8125rem;line-height:1.5}.tool-page{max-width:860px;padding:var(--space-xl) var(--space-lg);min-height:100vh;margin:0 auto}body:has(.tool-page){overflow:auto}.tool-container{background:var(--bg-secondary);border:1px solid var(--border-light);padding:var(--space-lg);margin-bottom:var(--space-lg)}.tool-input{width:100%;padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);margin-bottom:var(--space-sm);resize:vertical;font-size:.8125rem;transition:border-color .2s}.tool-input:focus{border-color:var(--accent);outline:none}.tool-input::placeholder{color:var(--text-muted)}.tool-btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-sm) var(--space-md);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;margin-right:var(--space-sm);margin-bottom:var(--space-sm);background:0 0;font-size:.6875rem;transition:all .2s}.tool-btn:hover{border-color:var(--accent);color:var(--accent)}.tool-btn.primary{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.tool-btn.primary:hover{background:var(--accent-hover)}.tool-btn.danger{color:#b54a4a;border-color:#b54a4a}.tool-btn.danger:hover{color:#fff;background:#b54a4a}.tool-output{background:var(--bg-primary);border:1px solid var(--border-color);padding:var(--space-md);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:300px;font-size:.75rem;overflow-y:auto}.tool-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);margin-bottom:var(--space-sm);font-size:.5625rem;display:block}.tool-row{gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.tool-stat{font-family:var(--font-mono);color:var(--text-secondary);padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);font-size:.75rem}.tool-stat-value{color:var(--accent);font-weight:500}.color-display{border:1px solid var(--border-color);width:100%;height:100px;margin-bottom:var(--space-md);font-family:var(--font-mono);justify-content:center;align-items:center;font-size:.8125rem;display:flex}.color-values{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.color-value{padding:var(--space-sm);background:var(--bg-primary);border:1px solid var(--border-color);font-family:var(--font-mono);cursor:pointer;font-size:.6875rem;transition:all .2s}.color-value:hover{border-color:var(--accent)}.color-value-label{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin-bottom:var(--space-xs);font-size:.5rem;display:block}.pomodoro-display{text-align:center;padding:var(--space-xl)}.pomodoro-time{font-family:var(--font-mono);color:var(--text-primary);margin-bottom:var(--space-sm);letter-spacing:-.02em;font-size:4rem}.pomodoro-status{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);margin-bottom:var(--space-xl);font-size:.6875rem}.pomodoro-controls{justify-content:center;gap:var(--space-sm);display:flex}.gpa-course{gap:var(--space-sm);margin-bottom:var(--space-sm);grid-template-columns:2fr 1fr 1fr auto;align-items:center;display:grid}.gpa-result{text-align:center;padding:var(--space-xl);background:var(--bg-primary);border:1px solid var(--border-color);margin-top:var(--space-md)}.gpa-value{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.02em;font-size:3rem}.gpa-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);margin-top:var(--space-sm);font-size:.5625rem}.notes-sidebar{border-right:1px solid var(--border-color);padding-right:var(--space-md)}.notes-list{max-height:400px;overflow-y:auto}.note-item{padding:var(--space-sm);border-bottom:1px solid var(--border-light);cursor:pointer;transition:all .2s}.note-item:hover,.note-item.active{background:var(--bg-tertiary)}.note-title{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:.875rem}.note-date{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.5rem}.notes-editor{min-height:300px}.unit-group{margin-bottom:var(--space-lg)}.unit-group-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);margin-bottom:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-light);font-size:.625rem}.unit-row{gap:var(--space-sm);margin-bottom:var(--space-sm);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.unit-arrow{color:var(--text-muted);font-family:var(--font-mono)}@media (max-width:600px){.gpa-course,.unit-row{grid-template-columns:1fr}.unit-arrow{text-align:center}}.admin-tabs{padding-bottom:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-item-list{flex-direction:column;gap:.5rem;display:flex}.admin-item{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-light,var(--border-color));justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-item-title{color:var(--text-primary);font-size:.95rem}.admin-item-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:.15rem;font-size:.75rem}.admin-item-actions{flex-shrink:0;gap:.35rem;display:flex}.admin-form{flex-direction:column;gap:.75rem;display:flex}.admin-loading{color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-lg) 0;font-size:.85rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.grid,.subpage,.tool-page,.essay-page,.music-page{animation:.2s ease-out fadeIn}html{scroll-behavior:smooth}body:has(.washi){background:#f1e8cf;padding:0;overflow:auto}.washi{--bg-primary:#f1e8cf;--bg-secondary:#e6dbbb;--bg-tertiary:#d8cba3;--text-primary:#1b2a33;--text-secondary:#3b4a54;--text-muted:#6e7a80;--border-color:#cbc3a2;--border-light:#ddd4b4;--accent:#1e5c86;--accent-hover:#144863;--action-color:#1e5c86;--gold:#c0912f;--teal:#2c7c82;min-height:100vh;color:var(--text-primary);position:relative}.manuscript-frame{outline-offset:-5px;pointer-events:none;z-index:2;border:1px solid #1e5c8680;outline:1px solid #c0912f99;position:fixed;inset:10px}.garden-art{pointer-events:none;z-index:0;width:100%;height:clamp(160px,26vh,300px);position:fixed;bottom:0;left:0;right:0}.washi-col{z-index:1;max-width:700px;margin:0 auto;padding:5.5rem 1.5rem calc(clamp(160px,26vh,300px) + 4rem);position:relative}.washi-col:before{content:"";background:var(--bg-primary);filter:blur(24px);opacity:.9;z-index:-1;pointer-events:none;border-radius:40px;position:absolute;inset:30px -8px 0}.washi-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:3rem;display:flex}.washi-head h1{letter-spacing:-.01em;text-wrap:balance;align-items:center;gap:.7rem;margin:0;font-size:2.1rem;font-weight:600;display:flex}.washi-seal{background:radial-gradient(circle, var(--gold) 0 3px, var(--accent) 3.5px 100%);width:1.35rem;height:1.35rem;box-shadow:inset 0 0 0 2.5px var(--bg-primary), inset 0 0 0 4px var(--gold);border-radius:50%;display:inline-block;transform:translateY(2px)}.washi-links{gap:1.3rem;display:flex}.washi-links a{color:var(--accent);text-underline-offset:3px;font-size:1rem;text-decoration:underline;text-decoration-thickness:1px;transition:color .2s}.washi-links a:hover{color:var(--text-primary)}.washi-bio p{text-wrap:pretty;margin-bottom:.9rem;font-size:1.125rem;line-height:1.75}.washi-now{color:var(--text-secondary);font-size:1rem}.washi-now a{color:var(--accent);text-decoration:none}.washi-now a:hover{text-underline-offset:3px;text-decoration:underline}.washi-section{margin-top:3.2rem}.washi-section h2{border-bottom:1px solid var(--border-color);text-wrap:balance;margin-bottom:1.1rem;padding-bottom:.4rem;font-size:1.2rem;font-weight:600}.washi-section h2:before{content:"";background:var(--gold);width:7px;height:7px;margin-right:.65rem;display:inline-block;transform:rotate(45deg)translateY(-1px)}.washi-item{justify-content:space-between;align-items:baseline;gap:1.2rem;margin-bottom:.55rem;display:flex}.washi-title{color:var(--text-primary);border-bottom:1px solid #0000;font-size:1.08rem;text-decoration:none;transition:border-color .2s,color .2s}.washi-title:hover{color:var(--accent);border-bottom-color:var(--accent)}.washi-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.6875rem}.washi-stars{color:var(--gold);letter-spacing:.05em}.washi-note{color:var(--text-secondary);margin:-.2rem 0 .9rem;font-size:.98rem}.washi-now-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.6rem}.washi-more{color:var(--accent);margin-top:.7rem;margin-right:1.4rem;font-size:.98rem;font-style:italic;text-decoration:none;display:inline-block}.washi-more:after{content:"→";margin-left:.4em;font-style:normal;transition:transform .3s cubic-bezier(.2,.7,.2,1);display:inline-block}.washi-more:hover{text-underline-offset:3px;text-decoration:underline}.washi-more:hover:after{transform:translate(4px)}.washi-empty{color:var(--text-muted);font-style:italic}.washi-foot{border-top:1px solid var(--border-color);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--text-muted);margin-top:4.5rem;padding-top:1.2rem;font-size:.625rem}.washi-note{text-wrap:pretty}.washi-foot,.washi-now-tag{font-variant-numeric:tabular-nums}.washi a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.washi a:focus:not(:focus-visible){outline:none}@keyframes washi-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.washi-head,.washi-bio,.washi-section,.washi-foot{animation:.65s cubic-bezier(.2,.7,.2,1) both washi-rise}.washi-head{animation-delay:20ms}.washi-bio{animation-delay:.1s}.washi-section:first-of-type{animation-delay:.18s}.washi-section:nth-of-type(2){animation-delay:.26s}.washi-section:nth-of-type(3){animation-delay:.34s}.washi-section:nth-of-type(4){animation-delay:.42s}.washi-foot{animation-delay:.5s}@media (prefers-reduced-motion:reduce){.washi-head,.washi-bio,.washi-section,.washi-foot{animation:none}}@media (max-width:640px){.washi-col{padding-top:3.5rem}.washi-head{flex-direction:column;gap:.8rem}.washi-item{flex-direction:column;gap:.1rem;margin-bottom:.9rem}}body:has(.folio){background:#f6f5ec;transition:background-color .5s}html[data-mode=dark] body:has(.folio){background:#0f131b}.folio{--bg-primary:#f6f5ec;--bg-secondary:#eeede1;--bg-tertiary:#e3e2d4;--text-primary:#1a1a17;--text-secondary:#44443c;--text-muted:#65655a;--border-color:#dbdacc;--border-light:#e9e8dc;--accent:#1c6382;--accent-hover:#124a60;--gold:#b8862b;--water:#6da3a2;--water-soft:#6da3a21f}html[data-mode=dark] .folio{--bg-primary:#0f131b;--bg-secondary:#161c29;--bg-tertiary:#1e2634;--text-primary:#ece7d6;--text-secondary:#aeb4be;--text-muted:#969fab;--border-color:#ece7d624;--border-light:#ece7d614;--accent:#74b4ce;--accent-hover:#a2d0de;--gold:#c9a24e;--water:#82c2c2;--water-soft:#82c2c221}@supports (color:oklch(0.5 0.1 250)){.folio{--accent:oklch(49% .101 228);--accent-hover:oklch(37% .088 228);--gold:oklch(65.2% .117 78)}html[data-mode=dark] .folio{--accent:oklch(73% .094 228);--accent-hover:oklch(83% .066 228);--gold:oklch(73.6% .112 80)}}.folio,.folio a,.folio h1,.folio h2,.folio p,.folio span,.folio svg,.folio nav,.folio footer{transition:background-color .45s,color .45s,border-color .45s,fill .45s,stroke .45s}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-fade{animation:.42s cubic-bezier(.22,1,.36,1) page-fade-in}.folio ::selection,.folio::selection{background:color-mix(in srgb, var(--accent) 26%, transparent);color:var(--text-primary)}html:has(.folio){scrollbar-width:thin;scrollbar-color:#786e5a59 transparent}html[data-mode=dark]:has(.folio){scrollbar-color:#ece7d638 transparent}html:has(.folio)::-webkit-scrollbar{width:11px;height:11px}html:has(.folio)::-webkit-scrollbar-track{background:0 0}html:has(.folio)::-webkit-scrollbar-thumb{background:#786e5a59 padding-box content-box;border:3px solid #0000;border-radius:999px}html:has(.folio)::-webkit-scrollbar-thumb:hover{background:#786e5a8c padding-box content-box}html[data-mode=dark]:has(.folio)::-webkit-scrollbar-thumb{background:#ece7d638 padding-box content-box}html[data-mode=dark]:has(.folio)::-webkit-scrollbar-thumb:hover{background:#ece7d666 padding-box content-box}.now-pulse{background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:.55rem;display:inline-block;position:relative}.now-pulse:after{content:"";background:var(--accent);border-radius:50%;animation:1.9s cubic-bezier(0,0,.2,1) infinite now-ping;position:absolute;inset:0}@keyframes now-ping{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}.reading-progress{background:var(--accent);transform-origin:0;z-index:50;pointer-events:none;width:100%;height:2px;transition:transform .1s linear;position:fixed;top:0;left:0;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.page-fade,.now-pulse:after{animation:none}.reading-progress{transition:none}}.folio{accent-color:var(--gold);caret-color:var(--accent)}.folio h1,.folio h2,.folio h3,.folio-title,.washi-head h1,.essay-title,.shelf-caption-title,.folio-kicker,.washi-section h2{text-wrap:balance}.folio-prose p,.folio-lede,.washi-bio p,.libindex-empty,.shelf-hint,.essay-meta{text-wrap:pretty}.folio-lede,.essay-meta,.reader-time,.libindex-count,.washi-meta,.shelf-rating,.libindex-stars,.albumcar-stars{font-variant-numeric:tabular-nums}.folio a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.folio button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.folio input:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.folio select:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.folio [tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.folio .copy-link,.folio .listen-btn,.folio .libindex-chip,.folio .folio-navlink{transition:transform .12s,color .2s,border-color .2s,background-color .2s}@media (hover:hover) and (prefers-reduced-motion:no-preference){.folio .copy-link:active,.folio .listen-btn:active,.folio .libindex-chip:active,.folio .folio-navlink:active{transform:scale(.95)}}.folio-topbar{justify-content:space-between;align-items:center;margin-bottom:1.6rem;display:flex}.folio-topbar-actions{align-items:center;gap:.6rem;display:flex}.copy-link{border:1px solid var(--border-color);background:var(--bg-secondary);width:34px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.copy-link:hover{color:var(--text-primary);border-color:color-mix(in srgb, var(--accent) 55%, var(--border-color))}.copy-link.copied{color:var(--accent);border-color:var(--accent)}.copy-link svg{width:15px;height:15px;transition:transform .25s cubic-bezier(.2,.8,.2,1)}.copy-link.copied svg{transform:scale(1.1)}.copy-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.folio-back{font-family:var(--folio-sans);color:var(--text-muted);font-size:.8rem;text-decoration:none;transition:color .2s}.folio-back:before{content:"←";margin-right:.4em;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:inline-block}.folio-back:hover{color:var(--accent)}.folio-back:hover:before{transform:translate(-4px)}.folio-nav{font-family:var(--folio-sans);flex-wrap:wrap;align-items:center;gap:.15rem 1rem;font-size:.8rem;display:flex}.folio-navlink{color:var(--text-muted);text-decoration:none;transition:color .2s;position:relative}.folio-navlink:hover{color:var(--accent)}.folio-navlink.active{color:var(--text-primary)}.folio-navlink.active:after{content:"";background:var(--gold);border-radius:1px;height:1.5px;position:absolute;bottom:-.28em;left:0;right:0}.libindex{margin-top:1.5rem}.libindex-bar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem 1.5rem;margin-bottom:.6rem;padding-bottom:.9rem;display:flex}.libindex-chips{align-items:center;gap:1.1rem;display:flex}.libindex-chip{cursor:pointer;font-family:var(--folio-sans);color:var(--text-muted);background:0 0;border:0;padding:0;font-size:.84rem;transition:color .2s;position:relative}.libindex-chip:hover{color:var(--accent)}.libindex-chip.active{color:var(--text-primary)}.libindex-chip.active:after{content:"";background:var(--gold);border-radius:1px;height:1.5px;position:absolute;bottom:-.3em;left:0;right:0}.libindex-count{color:var(--text-muted);opacity:.75;margin-left:.1em;font-size:.68rem}.libindex-tools{align-items:center;gap:.9rem;display:flex}.libindex-search{font-family:var(--folio-sans);color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:999px;width:10rem;max-width:42vw;padding:.35rem .85rem;font-size:.82rem;transition:border-color .2s,width .25s}.libindex-search::placeholder{color:var(--text-muted)}.libindex-search:focus{border-color:var(--accent);outline:none}.libindex-sortwrap{align-items:center;gap:.35rem;display:flex}.libindex-sortlabel{font-family:var(--folio-sans);text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.66rem}.libindex-sort{font-family:var(--folio-sans);color:var(--text-primary);border:0;border-bottom:1px solid var(--border-color);cursor:pointer;background:0 0;padding:.1rem .2rem;font-size:.8rem}.libindex-sort:focus{border-bottom-color:var(--accent);outline:none}.libindex-list{margin:0;padding:0;list-style:none}.libindex-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 0;display:flex}.libindex-main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.libindex-title{font-family:var(--folio-serif);color:var(--text-primary);font-size:1.15rem;text-decoration:none;transition:color .2s}.libindex-title:hover{color:var(--accent)}.libindex-by{font-family:var(--folio-sans);color:var(--text-muted);font-size:.76rem}.libindex-badges{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.libindex-stars{color:var(--gold);letter-spacing:.02em;font-size:.8rem}.libindex-kind{font-family:var(--folio-sans);text-transform:uppercase;letter-spacing:.13em;color:var(--text-muted);font-size:.64rem}.libindex-status{font-family:var(--folio-sans);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:999px;padding:.14rem .5rem;font-size:.6rem}.libindex-status.is-reading{color:var(--gold);border-color:var(--gold)}.libindex-tag{font-family:var(--folio-sans);color:var(--text-muted);border:1px solid var(--border-light);border-radius:999px;padding:.12rem .5rem;font-size:.62rem}.libindex-empty{font-family:var(--folio-sans);color:var(--text-muted);text-align:center;padding:2rem 0;font-size:.85rem}@media (max-width:620px){.libindex-bar{align-items:stretch}.libindex-tools{justify-content:space-between}.libindex-search{flex:1;max-width:none}.libindex-row{flex-direction:column;gap:.4rem}.libindex-badges{justify-content:flex-start}}.folio-title{font-family:var(--folio-serif);letter-spacing:-.015em;color:var(--text-primary);text-wrap:balance;margin:0 0 .4rem;font-size:2.2rem;font-weight:400}.folio-kicker{font-family:var(--folio-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.6rem;font-size:.7rem;font-weight:500}.folio-lede{font-family:var(--folio-sans);color:var(--text-secondary);text-wrap:pretty;margin:.6rem 0 2.4rem;font-size:1.05rem;line-height:1.7}.folio-prose{font-family:var(--folio-sans);color:var(--text-primary);max-width:36rem;margin-inline:auto;font-size:1rem;line-height:1.75}.folio-prose p{text-wrap:pretty;margin:0 0 1.15rem}.folio-prose h2,.folio-prose h3{font-family:var(--folio-serif);letter-spacing:-.01em;color:var(--text-primary);margin:2.2rem 0 .7rem;font-weight:500}.folio-prose h2{font-size:1.5rem}.folio-prose h3{font-size:1.2rem}.folio-prose h2,.folio-prose h3{scroll-margin-top:2rem}.folio-prose a{color:var(--accent);background-image:linear-gradient(var(--gold), var(--gold)), linear-gradient(color-mix(in srgb, var(--accent) 28%, transparent), color-mix(in srgb, var(--accent) 28%, transparent));background-position:0 100%,0 100%;background-repeat:no-repeat;background-size:0% 1.5px,100% 1px;padding-bottom:1px;text-decoration:none;transition:background-size .32s cubic-bezier(.22,1,.36,1),color .2s}:is(.folio-prose a:hover,.folio-prose a:focus-visible){background-size:100% 1.5px,100% 1px}.folio-prose ul,.folio-prose ol{margin:0 0 1.15rem 1.2rem}.folio-prose li{margin-bottom:.4rem}.folio-prose blockquote{border-left:2px solid var(--gold);color:var(--text-secondary);margin:1.4rem 0;padding-left:1.1rem;font-style:italic}.folio-prose code{font-family:var(--font-mono);background:var(--bg-secondary);border-radius:4px;padding:.1em .35em;font-size:.85em}.folio-end{border-top:1px solid var(--border-color);margin-top:3.5rem;padding-top:1.2rem}.folio-end a{font-family:var(--folio-sans);color:var(--accent);font-size:.85rem;text-decoration:none}.folio-end a:before{content:"←";margin-right:.4em;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:inline-block}.folio-end a:hover:before{transform:translate(-4px)}.folio{overflow-x:clip}.shelf{width:100vw;margin:1.5rem 0 2.75rem;position:relative;left:50%;transform:translate(-50%)}.shelf-track{cursor:grab;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;align-items:flex-start;gap:1.15rem;padding:2.5rem clamp(1.5rem,8vw,8rem) .75rem;display:flex;overflow:auto hidden}.shelf-track:active{cursor:grabbing}.shelf-track::-webkit-scrollbar{display:none}.shelf-item{transform-origin:50% 60%;flex-direction:column;flex:none;align-items:center;gap:.7rem;width:clamp(120px,15vw,172px);margin-left:clamp(-3.75rem,-4.7vw,-3rem);text-decoration:none;animation:.6s both shelf-in;display:flex;transform:perspective(1200px)rotateY(-45deg)translateY(0)scale(1)}.shelf-item:first-child{margin-left:0}@keyframes shelf-in{0%{opacity:0}to{opacity:1}}:is(.shelf-item.active,.shelf-item:focus-visible){z-index:4;position:relative;transform:perspective(1100px)rotateY(0)translateY(-14px)scale(1.14)}.shelf-cover{aspect-ratio:1;background:var(--bg-secondary);border-radius:3px;width:100%;display:block;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000001f,0 0 0 1px #00000014}.shelf-item img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;opacity:0;filter:blur(12px);width:100%;height:100%;transition:opacity .5s,filter .7s;display:block}.shelf-item img.loaded{opacity:1;filter:blur()}@media (prefers-reduced-motion:reduce){.shelf-item img{filter:none;transition:opacity .4s}}.shelf-sheen{pointer-events:none;border-radius:inherit;opacity:var(--sheen,0);background:radial-gradient(circle at var(--mx,50%) var(--my,50%), #ffffff80 0%, #ffffff24 22%, #fff0 55%);mix-blend-mode:screen;transition:opacity .35s;position:absolute;inset:0}.shelf-rating{letter-spacing:.02em;color:var(--gold);opacity:.85;font-size:.82rem;line-height:1;transition:opacity .3s}.folio .shelf-track .shelf-item,.shelf-track a.shelf-item{will-change:transform;transition:transform .42s cubic-bezier(.22,1,.36,1)}:is(.shelf-item.active .shelf-cover,.shelf-item:focus-visible .shelf-cover){box-shadow:0 16px 30px #0000003d,0 0 0 1px #0000001a}.shelf-item.active .shelf-rating{opacity:1}.folio .shelf-item .shelf-cover,.shelf-track .shelf-cover{transition:box-shadow .35s}html[data-mode=dark] .shelf-cover{box-shadow:0 1px 2px #0006,0 0 0 1px #ffffff14}:is(html[data-mode=dark] .shelf-item.active .shelf-cover,html[data-mode=dark] .shelf-item:focus-visible .shelf-cover){box-shadow:0 18px 34px #0009,0 0 0 1px #ffffff1f}.shelf-caption{text-align:center;min-height:2.9rem;margin-top:.9rem;padding:0 1.5rem}.shelf-caption-title{font-family:var(--folio-serif);color:var(--text-primary);font-size:1.4rem}.shelf-caption-artist{font-family:var(--folio-sans);color:var(--text-muted);margin-top:.15rem;font-size:.82rem;display:block}.shelf-hint{font-family:var(--folio-sans);text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-size:.68rem}@media (prefers-reduced-motion:reduce){.shelf-item,.shelf-item.active{animation:none;transform:none}.shelf-item:focus-visible{animation:none;transform:none}.folio .shelf-item,.folio .shelf-track .shelf-item{transition:none}.shelf-sheen{display:none}}.listen-btn{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-family:var(--folio-sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;margin-top:1.2rem;padding:.4rem .9rem .4rem .75rem;font-size:.72rem;transition:color .2s,border-color .2s;display:inline-flex}.listen-btn:hover{color:var(--text-primary);border-color:color-mix(in srgb, var(--accent) 55%, var(--border-color))}.listen-btn svg{width:13px;height:13px}.read-highlight{background:color-mix(in srgb, var(--accent) 24%, transparent);pointer-events:none;opacity:0;z-index:30;border-radius:4px;width:0;height:0;transition:transform .16s cubic-bezier(.2,.8,.2,1),width .16s,height .16s,opacity .2s;position:fixed;top:0;left:0}.reader-bar{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);z-index:40;opacity:0;border-radius:16px;align-items:center;gap:1.2rem;width:min(620px,100vw - 2rem);padding:.85rem 1.1rem;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .35s;display:flex;position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%,160%);box-shadow:0 18px 44px #080c1447}.reader-bar.open{opacity:1;transform:translate(-50%)}.reader-info{flex-shrink:0;align-items:center;gap:.7rem;min-width:0;max-width:40%;display:flex}.reader-thumb{background:var(--bg-tertiary);width:40px;height:40px;color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.reader-thumb svg{width:18px;height:18px}.reader-titles{min-width:0}.reader-title{font-family:var(--folio-sans);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.reader-author{font-family:var(--folio-sans);color:var(--text-muted);font-size:.72rem}.reader-progress{flex:1;align-items:center;gap:.6rem;min-width:0;display:flex}.reader-time{font-family:var(--folio-sans);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.62rem}.reader-track{background:var(--border-color);cursor:pointer;border-radius:999px;flex:1;height:4px;overflow:hidden}.reader-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .15s linear}.reader-controls{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.reader-controls button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .2s,transform .15s;display:inline-flex}.reader-controls button:hover{color:var(--text-primary)}.reader-controls button:active{transform:scale(.9)}.reader-controls svg{width:17px;height:17px}.reader-play{border-radius:50%;width:34px;height:34px;background:var(--text-primary)!important;color:var(--bg-primary)!important}.reader-play svg{width:15px;height:15px}.reader-rate{font-family:var(--folio-sans);font-variant-numeric:tabular-nums;min-width:2.2em;font-size:.68rem}.reader-close{font-size:1.2rem;line-height:1}.reader-voice{display:inline-flex;position:relative}.reader-voice-list{border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 92%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);z-index:41;border-radius:12px;width:240px;max-height:260px;margin:0;padding:.35rem;list-style:none;position:absolute;bottom:calc(100% + .8rem);right:0;overflow-y:auto;box-shadow:0 16px 40px #080c144d}.reader-voice-list li{margin:0}.reader-voice-list button{cursor:pointer;text-align:left;width:100%;font-family:var(--folio-sans);color:var(--text-secondary);background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:baseline;gap:.6rem;padding:.4rem .55rem;transition:background .15s,color .15s;display:flex}.reader-voice-list button:hover{background:var(--bg-secondary);color:var(--text-primary)}.reader-voice-list button.sel{color:var(--accent)}.reader-voice-list .voice-name{white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}.reader-voice-list .voice-lang{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.6rem}@media (max-width:620px){.reader-info{display:none}}@media (prefers-reduced-motion:reduce){.read-highlight,.reader-bar{transition:opacity .2s}}.essay-head{text-align:center;margin:1rem 0 3rem}.essay-emblem{justify-content:center;margin-bottom:1.4rem;display:flex}.essay-emoji{font-size:3rem;line-height:1}.essay-lotus{width:46px;height:auto;color:var(--gold)}.essay-title{font-family:var(--folio-serif);letter-spacing:-.02em;color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(1.9rem,4.5vw,2.7rem);font-weight:500;line-height:1.14}.essay-meta{font-family:var(--folio-sans);letter-spacing:.04em;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:.85rem;font-size:.72rem}.essay-tags{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:1.1rem;display:flex}.toc{z-index:20;width:210px;font-family:var(--folio-sans);position:fixed;top:6.5rem;left:2.5rem}.toc-head{color:var(--text-secondary);margin-bottom:1rem;font-size:.8rem;font-weight:500}.toc-list{margin:0;padding:0;list-style:none}.toc-item{align-items:center;display:flex}.toc-item:before{content:"";background:var(--text-muted);opacity:.45;flex-shrink:0;width:14px;height:1px;margin-right:.85rem;transition:width .3s cubic-bezier(.2,.8,.2,1),background .3s,opacity .3s}.toc-item.toc-lvl-3:before{width:8px}.toc-item a{color:var(--text-muted);padding:.3rem 0;font-size:.78rem;line-height:1.35;text-decoration:none;transition:color .2s;display:block}.toc-item.toc-lvl-3 a{font-size:.74rem}.toc-item a:hover{color:var(--text-secondary)}.toc-item.active:before{background:var(--accent);opacity:1;width:26px}.toc-item.active a{color:var(--text-primary)}@media (max-width:1300px){.toc{display:none}}.folio-tag{font-family:var(--folio-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border-color);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:500}.mode-toggle{background:var(--bg-secondary);box-shadow:inset 0 0 0 1px var(--border-color);border-radius:999px;align-items:center;padding:3px;display:inline-flex;position:relative}.mode-thumb{background:var(--bg-primary);border-radius:999px;width:30px;height:26px;transition:transform .38s cubic-bezier(.2,.8,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 0 0 1px #0000000d,0 1px 2px -1px #0000002e,0 2px 6px #0000001f}.mode-toggle[data-mode=dark] .mode-thumb{transform:translate(30px)}.folio .mode-thumb,.mode-toggle .mode-thumb{transition:transform .42s cubic-bezier(.34,1.4,.5,1),background .3s,box-shadow .3s}@media (prefers-reduced-motion:reduce){.folio .mode-thumb,.mode-toggle .mode-thumb{transition:none}}html[data-mode=dark] .mode-thumb{background:var(--bg-tertiary);box-shadow:0 0 0 1px #ffffff14,0 2px 6px #00000073}.mode-btn{z-index:1;cursor:pointer;width:30px;height:26px;color:var(--text-muted);background:0 0;border:none;place-items:center;padding:0;transition:color .3s;display:grid;position:relative}.mode-btn:hover{color:var(--text-secondary)}.mode-btn[aria-pressed=true]{color:var(--text-primary)}.mode-btn svg{width:15px;height:15px;transition:transform .3s cubic-bezier(.2,.8,.2,1)}.mode-btn[aria-pressed=true] svg{transform:scale(1.08)}.mode-btn:active svg{transform:scale(.82)}.mode-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}@media (prefers-reduced-motion:reduce){.mode-thumb,.mode-btn svg{transition:none}body:has(.folio){transition:none}}.folio .washi-col{counter-reset:sec;padding:3.5rem 1.5rem 4rem}.folio .washi-col:before{display:none}.folio-mark{width:30px;height:auto;color:var(--gold);flex-shrink:0;transform:translateY(2px)}.folio .washi-head,.folio .washi-bio,.folio .washi-section,.folio .washi-foot{animation:none}.folio .washi-head h1{font-family:var(--folio-serif);letter-spacing:-.015em;font-size:2.5rem;font-weight:400}.folio .washi-links a,.folio .washi-bio p,.folio .washi-now,.folio .washi-title,.folio .washi-note,.folio .washi-more,.folio .washi-empty,.folio .washi-meta,.folio .washi-now-tag{font-family:var(--folio-sans)}.folio .washi-bio p{font-size:1.02rem;line-height:1.72}.folio-water{z-index:0;pointer-events:none;opacity:.95;height:min(38vh,390px);position:fixed;inset:auto 0 0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 16% 100%);mask-image:linear-gradient(#0000 0%,#000 16% 100%)}.folio-water-canvas{width:100%;height:100%;display:block}.folio-birds{z-index:0;pointer-events:none;width:112px;color:var(--accent);opacity:.5;animation:12s ease-in-out infinite alternate folio-birds-drift;position:fixed;top:clamp(5rem,10vh,8rem);right:clamp(2rem,7vw,8rem)}.folio-birds svg{width:100%;height:auto;display:block;overflow:visible}.folio-birds path{stroke:currentColor;stroke-width:1.7px;stroke-linecap:round}@keyframes folio-birds-drift{0%{transform:translate(-3px,2px)}to{transform:translate(4px,-3px)}}@media (max-width:760px){.folio-birds{opacity:.38;width:76px;top:5.5rem;right:1.2rem}}.scenery-toggle.active{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 55%, var(--border-color));background:color-mix(in srgb, var(--accent) 8%, var(--bg-secondary))}.scenery-toggle{text-decoration:none;position:relative}.scenery-wave{display:block;transform:translateY(-.25px);width:17px!important;height:17px!important}.scenery-toggle:not(.active) .scenery-wave{opacity:.56}.scenery-toggle:not(.active):after{content:"";opacity:.75;background:currentColor;width:18px;height:1px;position:absolute;transform:rotate(-45deg)}@media (prefers-reduced-motion:reduce){.folio-birds{animation:none}}.folio:has(.folio-water) .washi-col:before{background:radial-gradient(ellipse at 42% 28%, color-mix(in srgb, var(--bg-primary) 99%, transparent) 0%, color-mix(in srgb, var(--bg-primary) 95%, transparent) 58%, color-mix(in srgb, var(--bg-primary) 68%, transparent) 84%, transparent 100%);filter:blur(28px);opacity:.94;display:block;inset:1.8rem -3.5rem 0}html[data-mode=dark] .folio:has(.folio-water) .washi-col:before{background:radial-gradient(ellipse at 42% 28%, color-mix(in srgb, var(--bg-primary) 84%, transparent) 0%, color-mix(in srgb, var(--bg-primary) 72%, transparent) 58%, color-mix(in srgb, var(--bg-primary) 34%, transparent) 84%, transparent 100%);opacity:.9}@media (max-width:760px){.folio-water{height:min(34vh,300px)}.folio:has(.folio-water) .washi-col:before{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-primary) 99%, transparent) 0%, color-mix(in srgb, var(--bg-primary) 97%, transparent) 50%, color-mix(in srgb, var(--bg-primary) 80%, transparent) 70%, color-mix(in srgb, var(--bg-primary) 56%, transparent) 100%);filter:blur(20px);opacity:.92}html[data-mode=dark] .folio:has(.folio-water) .washi-col:before{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-primary) 92%, transparent) 0%, color-mix(in srgb, var(--bg-primary) 86%, transparent) 50%, color-mix(in srgb, var(--bg-primary) 64%, transparent) 70%, color-mix(in srgb, var(--bg-primary) 38%, transparent) 100%);opacity:.88}}.folio .washi-title{font-size:1rem}.folio .washi-section h2{font-family:var(--folio-sans);letter-spacing:-.005em;text-transform:none;color:var(--text-primary);align-items:baseline;gap:.85rem;font-size:.95rem;font-weight:600;display:flex}.folio .washi-section h2:before{counter-increment:sec;content:counter(sec, decimal-leading-zero);letter-spacing:.08em;width:auto;height:auto;color:var(--gold);font-variant-numeric:tabular-nums;background:0 0;margin:0;font-size:.7rem;font-weight:500;transform:none}.folio .washi-meta{letter-spacing:.06em;font-size:.7rem}.folio .washi-stars{color:var(--gold)}.folio .washi-links a{text-underline-offset:4px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);font-size:.9rem}.folio .washi-links a:hover{color:var(--accent-hover);-webkit-text-decoration-color:var(--accent-hover);text-decoration-color:var(--accent-hover)}.folio .washi-more{color:var(--accent);font-size:.85rem;font-style:normal}.folio .washi-more:hover{color:var(--accent-hover)}.folio-close{justify-content:center;margin-top:4.5rem;padding-bottom:3rem;display:flex}.folio-close svg{width:150px;height:auto;color:var(--gold);opacity:.38}.folio-foot{border-top:1px solid var(--border-color);font-family:var(--folio-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;margin-top:2rem;padding-top:1rem;font-size:.65rem;font-weight:500}
