body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-background:#d5dff9;--color-card-background:#eaf0ff;--color-header-footer:#2b313f;--color-text-primary:#2b313f;--color-accent-dark:#5f6a60;--color-accent-medium:#9bad9d;--color-white:#fff;--color-error:var(--color-accent-dark);--color-hover:var(--color-accent-medium);--color-count:var(--color-accent-medium)}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#d5dff9;background-color:var(--color-background);color:#2b313f;color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}header{background-color:#2b313f;background-color:var(--color-header-footer);color:#fff;color:var(--color-white);padding:1rem 0}nav{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}nav h1{font-size:1.8rem;font-weight:700}nav ul{display:flex;gap:2rem;list-style:none}nav a{color:#fff;color:var(--color-white);text-decoration:none;transition:color .3s}nav a:hover{color:#9bad9d;color:var(--color-hover)}main{flex:1 1;margin:0 auto;max-width:1200px;padding:2rem;width:100%}#hero{background:linear-gradient(135deg,#5f6a60,#9bad9d);background:linear-gradient(135deg,var(--color-accent-dark) 0,var(--color-accent-medium) 100%);border-radius:10px;color:#fff;color:var(--color-white);margin-bottom:3rem;padding:3rem 0}.hero-content{align-items:center;display:flex;gap:3rem;margin:0 auto;max-width:1000px;padding:0 2rem}.hero-text{flex:1 1}.hero-text h2{font-size:2.5rem;margin-bottom:1rem}.hero-text p{font-size:1.2rem;line-height:1.6}.hero-image{flex:0 0 250px}.profile-photo{border:4px solid #fff3;border-radius:50%;box-shadow:0 8px 32px #0003;height:250px;object-fit:cover;width:250px}#content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.card{background:#eaf0ff;background:var(--color-card-background);border:1px solid #e1e8ed;border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:2rem}.card h3{color:#5f6a60;color:var(--color-accent-dark);font-size:1.4rem}.card h3,.card p{margin-bottom:1rem}.card ul{padding-left:1.5rem}.card li{margin-bottom:.5rem}footer{background-color:#2b313f;background-color:var(--color-header-footer);color:#fff;color:var(--color-white);margin-top:3rem;padding:1.5rem;text-align:center}.photos-page{margin:0 auto;max-width:800px}.photos-tabs{align-items:center;border-bottom:1px solid #2b313f26;display:flex;gap:.5rem;margin:.75rem 0 1.25rem}.photos-tabs-label{color:#2b313f;color:var(--color-text-primary);padding:.6rem .25rem .6rem 0}.photos-tab{background:none;border:none;border-bottom:2px solid #0000;color:#5f6a60;color:var(--color-accent-dark);cursor:pointer;font:inherit;padding:.6rem 1.1rem;transition:color .15s,border-color .15s}.photos-tab.active,.photos-tab:hover{color:#2b313f;color:var(--color-text-primary)}.photos-tab.active{border-bottom-color:#5f6a60;border-bottom-color:var(--color-accent-dark);font-weight:600}.taxonomy-hierarchy{background:#eaf0ff;background:var(--color-card-background);border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:2rem}.taxonomy-tree{--h-class:3.1rem;--h-order:2.6rem;--h-family:2.6rem;--h-year:3.1rem;--h-month:2.6rem;--tree-indent:1.35rem;--guide-color:#2b313f2e}.taxonomy-children{border-left:1.5px solid var(--guide-color);margin-left:.55rem;padding-left:var(--tree-indent)}.taxonomy-row{align-items:center;background:#eaf0ff;background:var(--color-card-background);border-radius:4px;color:inherit;cursor:pointer;display:flex;gap:.55rem;padding:.35rem .6rem;position:relative;text-decoration:none;transition:background-color .15s}.taxonomy-row:hover{background-color:#2b313f0f}.rank-day:before,.rank-family:before,.rank-month:before,.rank-order:before,.rank-species:before{background:var(--guide-color);content:"";height:1.5px;left:calc(var(--tree-indent)*-1);position:absolute;top:50%;width:var(--tree-indent)}.rank-class{height:var(--h-class);position:sticky;top:0;z-index:30}.rank-order{height:var(--h-order);position:sticky;top:var(--h-class);z-index:20}.rank-family{height:var(--h-family);position:sticky;top:calc(var(--h-class) + var(--h-order));z-index:10}.rank-species{min-height:3.4rem}.rank-year{height:var(--h-year);position:sticky;top:0;z-index:30}.rank-month{height:var(--h-month);position:sticky;top:var(--h-year);z-index:20}.rank-day{min-height:3.4rem}.taxonomy-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-class .taxonomy-name{color:#2b313f;color:var(--color-text-primary);font-size:1.2rem;font-weight:700}.rank-order .taxonomy-name{color:#5f6a60;color:var(--color-accent-dark);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.rank-family .taxonomy-name{color:#2b313f;color:var(--color-text-primary);font-size:1rem;font-weight:700}.rank-species .taxonomy-name{color:#2b313f;color:var(--color-text-primary);font-size:.92rem;font-style:italic}.rank-year .taxonomy-name{color:#2b313f;color:var(--color-text-primary);font-size:1.2rem;font-weight:700}.rank-month .taxonomy-name{color:#5f6a60;color:var(--color-accent-dark);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.rank-day .taxonomy-name{color:#2b313f;color:var(--color-text-primary);font-size:.92rem}.thumb-stack{flex:0 0 auto;height:2.6rem;margin-right:.3rem;position:relative;width:2.6rem}.thumb-stack-img{border:2px solid #fff;border:2px solid var(--color-white);border-radius:3px;box-shadow:0 1px 4px #00000059;height:2rem;left:50%;object-fit:cover;position:absolute;top:50%;width:2rem}.thumb-stack-img:first-child{transform:translate(-50%,-50%) rotate(0deg);z-index:3}.thumb-stack-img:nth-child(2){transform:translate(-65%,-42%) rotate(-10deg);z-index:2}.thumb-stack-img:nth-child(3){transform:translate(-38%,-58%) rotate(9deg);z-index:1}.taxonomy-count{font-feature-settings:"tnum";color:#9bad9d;color:var(--color-count);flex:0 0 auto;font-size:.85rem;font-variant-numeric:tabular-nums;margin-left:auto;padding-left:.75rem}.error{background-color:#5f6a601a;border-radius:5px;color:#5f6a60;color:var(--color-error);margin:1rem 0;padding:1rem}.gallery-page{margin:0 auto;max-width:1100px}.gallery-header{margin-bottom:2rem}.back-link{color:#5f6a60;color:var(--color-accent-dark);display:inline-block;font-size:.95rem;margin-bottom:1rem;text-decoration:none}.back-link:hover{color:#9bad9d;color:var(--color-hover)}.filter-info{color:#5f6a60;color:var(--color-accent-dark);margin-top:.25rem}.photo-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.photo-item{background:#eaf0ff;background:var(--color-card-background);border-radius:8px;box-shadow:0 2px 6px #0000001a;overflow:hidden}.photo-thumbnail{background:#d5dff9;background:var(--color-background);box-sizing:border-box;padding:8px}.photo-thumbnail img{aspect-ratio:1;display:block;object-fit:contain;width:100%}.photo-info{padding:.75rem}.photo-info h4{color:#2b313f;color:var(--color-text-primary);font-size:.95rem;margin-bottom:.25rem}.taxonomy-info{font-size:.8rem;margin:0}.no-photos,.taxonomy-info{color:#5f6a60;color:var(--color-accent-dark)}.no-photos{padding:3rem;text-align:center}.no-photos a{color:#5f6a60;color:var(--color-accent-dark);display:inline-block;margin-top:1rem}.photo-item{cursor:pointer}.photo-item:hover .photo-thumbnail img{opacity:.85;transition:opacity .2s}.lightbox-overlay{align-items:center;background:#000000d9;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.lightbox-content{background:#eaf0ff;background:var(--color-card-background);border-radius:10px;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;overflow:hidden;position:relative}.lightbox-close{align-items:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:2rem;justify-content:center;position:absolute;right:.75rem;top:.6rem;width:2rem;z-index:1}.lightbox-close:hover{background:#000000bf}.lightbox-nav{align-items:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.75rem;height:2.75rem;justify-content:center;line-height:1;position:absolute;top:50%;transform:translateY(-50%);width:2.75rem;z-index:1001}.lightbox-nav:hover{background:#000000bf}.lightbox-prev{left:.75rem}.lightbox-next{right:.75rem}@media (max-width:600px){.lightbox-nav{font-size:1.4rem;height:2.25rem;width:2.25rem}.lightbox-prev{left:.25rem}.lightbox-next{right:.25rem}}.lightbox-image{display:block;max-height:75vh;max-width:90vw;object-fit:contain}.lightbox-error,.lightbox-loading{color:#5f6a60;color:var(--color-accent-dark);font-size:1rem;padding:4rem 6rem;text-align:center}.lightbox-caption{align-items:center;border-top:1px solid #0000001a;display:flex;gap:.75rem;justify-content:space-between;padding:.75rem 1rem}.lightbox-caption h3{color:#2b313f;color:var(--color-text-primary);font-size:1rem;margin-bottom:.2rem}.lightbox-caption p{font-size:.85rem;margin:0}.lightbox-caption p,.lightbox-open-new-tab{color:#5f6a60;color:var(--color-accent-dark)}.lightbox-open-new-tab{align-items:center;border-radius:4px;display:flex;flex-shrink:0;height:1.75rem;justify-content:center;width:1.75rem}.lightbox-open-new-tab:hover{background:#00000014;color:#2b313f;color:var(--color-text-primary)}.thumbnail-list{list-style:none}.thumbnail-list-item{margin-bottom:1.25rem}.thumbnail-list-item a{align-items:flex-start;background:#eaf0ff;background:var(--color-card-background);border-radius:10px;box-shadow:0 2px 6px #0000001a;color:inherit;display:flex;gap:1.25rem;padding:1.5rem 2rem;text-decoration:none;transition:box-shadow .2s}.thumbnail-list-item a:hover{box-shadow:0 4px 12px #00000026}.thumbnail-list-thumb{background:#9bad9d;background:var(--color-accent-medium);border-radius:4px;box-shadow:0 1px 4px #00000040;object-fit:cover}.thumbnail-list-thumb--portrait{flex:0 0 56px;height:84px;width:56px}.thumbnail-list-thumb--landscape{flex:0 0 120px;height:80px;width:120px}.thumbnail-list-thumb--landscape:not(.thumbnail-list-thumb--placeholder){background:#d5dff9;background:var(--color-background);object-fit:contain}.thumbnail-list-thumb--placeholder{box-sizing:border-box;object-fit:contain;padding:6px}.thumbnail-list-text{flex:1 1;min-width:0}.thumbnail-list-item h3{color:#5f6a60;color:var(--color-accent-dark);margin-bottom:.3rem}.thumbnail-list-item time{color:#9bad9d;color:var(--color-accent-medium);font-size:.9rem}.blog-page{width:100%}.blog-page h2{color:#2b313f;color:var(--color-text-primary);margin-bottom:2rem}.post-preview{color:#5f6a60;color:var(--color-accent-dark);font-size:.95rem;line-height:1.5;margin-top:.6rem;opacity:.85}.blog-post-page{margin:0 auto;max-width:800px}.blog-post{background:#fff;border-radius:10px;box-shadow:0 4px 16px #0000001f;margin-top:1rem;overflow:hidden}.post-header{background:linear-gradient(135deg,#5f6a60,#9bad9d);background:linear-gradient(135deg,var(--color-accent-dark) 0,var(--color-accent-medium) 100%);color:#fff;padding:2.5rem 3rem}.post-header h1{color:#fff;font-size:2.2rem;font-weight:700;line-height:1.2;margin-bottom:.6rem}.post-date{color:#fffc;font-size:.9rem;letter-spacing:.02em}.post-content{color:#2b313f;color:var(--color-text-primary);font-size:1.05rem;line-height:1.85;padding:2.5rem 3rem}.post-content h2,.post-content h3{color:#5f6a60;color:var(--color-accent-dark);line-height:1.3;margin:2rem 0 .75rem}.post-content h2{font-size:1.4rem}.post-content h3{font-size:1.15rem}.post-content p{margin-bottom:1.25rem}.post-content ol,.post-content ul{margin-bottom:1.25rem;padding-left:1.5rem}.post-content li{margin-bottom:.4rem}.post-content code{background:#0000000f;border-radius:3px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.88em;padding:.15em .45em}.post-content pre{background:#f4f4f4;border:1px solid #00000012;border-radius:6px;margin-bottom:1.25rem;overflow-x:auto;padding:1.1rem 1.5rem}.post-content pre code{background:none;font-size:.9em;padding:0}.post-content blockquote{border-left:4px solid #9bad9d;border-left:4px solid var(--color-accent-medium);font-style:italic;margin:1.5rem 0;padding:.5rem 0 .5rem 1.25rem}.post-content a,.post-content blockquote{color:#5f6a60;color:var(--color-accent-dark)}.post-content a{text-decoration:underline;text-underline-offset:2px}.post-content a:hover{color:#9bad9d;color:var(--color-hover)}.post-content img{border-radius:8px;margin:.5rem 0;max-width:100%}.blog-photo-embed{cursor:pointer;display:block;margin:1rem 0;width:fit-content}.blog-photo-embed img{border-radius:8px;display:block;max-width:100%;transition:opacity .2s}.blog-photo-embed:hover img{opacity:.85}.post-content hr{border:none;border-top:1px solid #0000001a;margin:2rem 0}.sort-bar{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.sort-bar-label{font-size:.9rem;margin-right:.25rem;opacity:.8}.sort-bar-button,.sort-bar-label{color:#2b313f;color:var(--color-text-primary)}.sort-bar-button{align-items:center;background:#eaf0ff;background:var(--color-card-background);border:1px solid #0000;border-radius:999px;cursor:pointer;display:inline-flex;font:inherit;font-size:.9rem;gap:.3rem;padding:.35rem .9rem;transition:background-color .2s,border-color .2s}.sort-bar-button:hover{border-color:#9bad9d;border-color:var(--color-accent-medium)}.sort-bar-button--active{background:#5f6a60;background:var(--color-accent-dark);color:#fff;color:var(--color-white)}.sort-bar-arrow{font-size:.8rem}.books-page{width:100%}.books-page h2{margin-bottom:2rem}.book-author,.books-page h2{color:#2b313f;color:var(--color-text-primary)}.book-author{font-size:.95rem;margin-bottom:.3rem;opacity:.8}.books-page .thumbnail-list .star-rating{display:flex;font-size:.95rem;margin-top:.35rem}.reading-shelf{background:#eaf0ff;background:var(--color-card-background);border-radius:10px;box-shadow:0 2px 6px #0000001a;margin-bottom:1.5rem;overflow-x:auto;overflow-y:hidden}.reading-shelf-track{position:relative}.reading-shelf-axis{background:#2b313f40;height:2px;left:0;position:absolute;right:0}.reading-shelf-tick{background:#2b313f4d;height:6px;position:absolute;width:1px}.reading-shelf-tick span{color:#5f6a60;color:var(--color-accent-dark);font-size:.7rem;left:0;opacity:.7;position:absolute;top:8px;white-space:nowrap}.reading-shelf-tick--major{background:#2b313f8c;height:10px}.reading-shelf-tick--major span{font-weight:600;opacity:1}.reading-shelf-today{background:#9bad9d;background:var(--color-accent-medium);border-radius:50%;height:8px;margin:-3px 0 0 -4px;position:absolute;width:8px}.reading-shelf-stem{background:#2b313f33;position:absolute;transition:background .15s;width:1px}.reading-shelf-stem--active{background:#5f6a60;background:var(--color-accent-dark)}.reading-shelf-mark{background:#2b313f59;border-radius:50%;height:5px;margin:-2px 0 0 -2.5px;position:absolute;transition:transform .15s,background .15s;width:5px}.reading-shelf-mark--active{background:#5f6a60;background:var(--color-accent-dark);transform:scale(1.8)}.reading-shelf-book{border-radius:3px;box-shadow:0 1px 3px #0000004d;display:block;position:absolute;transform:rotate(0deg);transform:rotate(var(--tilt,0deg));transition:transform .15s,opacity .15s;z-index:1}.reading-shelf-book img{background:#9bad9d;background:var(--color-accent-medium);border-radius:inherit;display:block;height:100%;object-fit:cover;width:100%}.reading-shelf-book--dud{opacity:.6}.reading-shelf-book--standout{box-shadow:0 0 6px 2px #ffd666f2,0 0 16px 6px #ffc43d73}.reading-shelf-book:focus-visible,.reading-shelf-book:hover{opacity:1;outline:none;transform:rotate(0deg) scale(1.15);z-index:2}.reading-shelf-book:focus-visible{box-shadow:0 0 0 2px #5f6a60;box-shadow:0 0 0 2px var(--color-accent-dark)}.reading-shelf-tooltip{background:#2b313f;background:var(--color-header-footer);border-radius:5px;color:#fff;color:var(--color-white);display:none;flex-direction:column;font-size:.75rem;left:50%;line-height:1.3;padding:.3rem .55rem;pointer-events:none;position:absolute;top:calc(100% + 4px);transform:translateX(-50%) scale(.87);transform-origin:top center;white-space:nowrap;z-index:1}.reading-shelf-book--below .reading-shelf-tooltip{bottom:calc(100% + 4px);top:auto;transform-origin:bottom center}.reading-shelf-tooltip span{opacity:.8}.reading-shelf-book:focus-visible .reading-shelf-tooltip,.reading-shelf-book:hover .reading-shelf-tooltip{display:flex}.star-rating{--star-color-filled:var(--color-accent-dark);--star-color-empty:#2b313f33;align-items:center;display:inline-flex;gap:.5em}.star-rating-stars{display:inline-flex;gap:.05em}.star-rating-star{height:1em;position:relative;width:1em}.star-rating-star svg{display:block;height:1em;inset:0;position:absolute;width:1em}.star-rating-star-bg path{fill:var(--star-color-empty)}.star-rating-star-fill{inset:0;overflow:hidden;position:absolute}.star-rating-star-fill path{fill:var(--star-color-filled)}.star-rating-value{color:var(--star-color-filled);font-size:.85em;opacity:.85}.book-review-page{margin:0 auto;max-width:800px}.book-review{background:#fff;border-radius:10px;box-shadow:0 4px 16px #0000001f;margin-top:1rem;overflow:hidden}.book-review-header{background:linear-gradient(135deg,#5f6a60,#9bad9d);background:linear-gradient(135deg,var(--color-accent-dark) 0,var(--color-accent-medium) 100%);color:#fff;padding:2.5rem 3rem}.book-review-header-content{align-items:flex-start;display:flex;gap:2rem}.book-review-cover{aspect-ratio:2/3;background:#ffffff26;border-radius:8px;box-shadow:0 8px 24px #00000059;flex:0 0 140px;object-fit:cover;width:140px}.book-review-cover--placeholder{box-sizing:border-box;object-fit:contain;padding:16px}.book-review-header-text{flex:1 1;min-width:0}.book-review-header h1{color:#fff;font-size:2.2rem;font-weight:700;line-height:1.2;margin-bottom:.4rem}.book-review-author{color:#ffffffe6;font-size:1.05rem;margin-bottom:.4rem}.book-review-date{color:#fffc;font-size:.9rem;letter-spacing:.02em}.book-review-header .star-rating{--star-color-filled:#fff;--star-color-empty:#ffffff59;display:flex;font-size:1.05rem;margin-bottom:.4rem}.book-review-body{padding:2.5rem 3rem}.book-review-genres{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin-bottom:2.5rem}.book-review-genre-tag{background:#eaf0ff;background:var(--color-card-background);border:1px solid #9bad9d;border:1px solid var(--color-accent-medium);border-radius:999px;color:#5f6a60;color:var(--color-accent-dark);font-size:.85rem;padding:.3rem .9rem}.book-review-synopsis{line-height:1.7}.book-review-section{margin-bottom:2.5rem}.book-review-section:last-child{margin-bottom:0}.book-review-section h2{color:#5f6a60;color:var(--color-accent-dark);font-size:1.4rem;margin-bottom:1.25rem}.rating-chart{align-items:center;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;justify-content:center}.rating-chart-svg{flex:1 1 360px;height:auto;max-width:460px}.rating-chart-ring{fill:none;stroke:#2b313f1f;stroke-width:1}.rating-chart-track{fill:color-mix(in oklab,var(--wedge-color) 15%,#fff);stroke:#fff;stroke-width:2;stroke-linejoin:round;outline:none}@media (hover:hover){.rating-chart-track{cursor:pointer}}.rating-chart-wedge{stroke:#fff;stroke-width:2;stroke-linejoin:round;transition:filter .15s}.rating-chart-wedge.active{filter:brightness(1.12)}.rating-chart-label-name{fill:#2b313f;fill:var(--color-text-primary);font-size:15px;font-weight:600;transition:opacity .15s}.rating-chart-label-rating{fill:#5f6a60;fill:var(--color-accent-dark);font-size:12px}.rating-chart-label{opacity:.82;transition:opacity .15s}.rating-chart-label.active{opacity:1}.rating-chart-caption{align-items:center;display:flex;flex-basis:100%;font-size:.95rem;gap:.5rem;justify-content:center;min-height:1.5rem;text-align:center}.rating-chart-caption-swatch{border-radius:3px;flex:0 0 0.75rem;height:.75rem;width:.75rem}.rating-chart-caption-name{color:#2b313f;color:var(--color-text-primary);font-weight:600}.rating-chart-caption-rating{color:#5f6a60;color:var(--color-accent-dark)}.rating-chart-caption-hint{color:#2b313f;color:var(--color-text-primary);opacity:.6}.rating-chart-notes{display:flex;flex:1 1 200px;flex-direction:column;gap:.15rem;list-style:none;max-width:560px}.rating-chart-note{align-items:flex-start;border-radius:6px;display:flex;gap:.6rem;padding:.3rem .4rem;transition:background-color .15s}.rating-chart-note.active{background-color:#2b313f0f}.rating-chart-swatch{border-radius:3px;flex:0 0 0.9rem;height:.9rem;margin-top:.25rem;width:.9rem}.rating-chart-note-text{flex:1 1}.rating-chart-note-name{color:#2b313f;color:var(--color-text-primary);display:block;font-weight:600}.rating-chart-note-rating{color:#5f6a60;color:var(--color-accent-dark);font-size:.9rem;font-weight:400;margin-left:.5rem}.rating-chart-note-elaboration{color:#2b313f;color:var(--color-text-primary);font-size:.9rem;line-height:1.5;margin-top:.2rem;opacity:.85}.commentary-timeline{list-style:none;position:relative}.commentary-timeline:before{background:#2b313f26;bottom:.85rem;content:"";left:2.25rem;position:absolute;top:.85rem;width:2px}.commentary-timeline-item{display:flex;gap:1.5rem;padding-bottom:2rem;position:relative}.commentary-timeline-item:last-child{padding-bottom:0}.commentary-timeline-badge{align-items:center;background:#eaf0ff;background:var(--color-card-background);border:2px solid #5f6a60;border:2px solid var(--color-accent-dark);border-radius:999px;color:#5f6a60;color:var(--color-accent-dark);display:flex;flex:0 0 4.5rem;font-size:.8rem;font-weight:600;height:1.75rem;justify-content:center;position:relative}.commentary-timeline-text{flex:1 1;line-height:1.7;padding-top:.2rem}.commentary-overall p,.commentary-timeline-text p{margin-bottom:1.25rem}.commentary-overall p:last-child,.commentary-timeline-text p:last-child{margin-bottom:0}.commentary-overall{border-top:1px solid #2b313f1f;line-height:1.7;margin-top:1.5rem;padding-top:1.5rem}@media (max-width:768px){nav{flex-direction:column}nav,nav ul{gap:1rem}.hero-content{flex-direction:column;gap:2rem;text-align:center}.hero-text h2{font-size:2rem}.hero-image{flex:none}.profile-photo{height:200px;width:200px}.book-review-header-content{align-items:center;flex-direction:column;text-align:center}.book-review-cover{width:120px}main{padding:1rem}.book-review-body{padding:1.75rem 1.25rem}.taxonomy-hierarchy{padding:1.25rem}.taxonomy-tree{--tree-indent:0.9rem}.taxonomy-count{padding-left:.4rem}.thumbnail-list-item a{gap:1rem;padding:1.25rem}.thumbnail-list-thumb--landscape{flex-basis:84px;height:56px;width:84px}.thumb-stack{height:2.1rem;width:2.1rem}.thumb-stack-img{height:1.6rem;width:1.6rem}.taxonomy-name{overflow:visible;overflow-wrap:break-word;text-overflow:clip;white-space:normal}.taxonomy-row{align-items:flex-start}.rank-class,.rank-family,.rank-month,.rank-order,.rank-year{height:auto;position:static}.taxonomy-count{padding-top:.35rem}}.admin-page{margin:0 auto;max-width:700px}.admin-form,.admin-login-form{background:#eaf0ff;background:var(--color-card-background);border:1px solid #e1e8ed;border-radius:10px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;gap:1.25rem;padding:2rem}.admin-login-form h2{margin-bottom:.25rem}.admin-page label{display:flex;flex-direction:column;font-weight:600;gap:.4rem}.admin-page input[type=date],.admin-page input[type=number],.admin-page input[type=password],.admin-page input[type=text],.admin-page textarea{background:#fff;background:var(--color-white);border:1px solid #c7d0e0;border-radius:6px;color:#2b313f;color:var(--color-text-primary);font:inherit;padding:.6rem .75rem}.admin-page textarea{font-family:inherit;resize:vertical}.admin-page button{cursor:pointer;font:inherit}.admin-login-form button,.admin-submit-button{align-self:flex-start;background:#5f6a60;background:var(--color-accent-dark);border:none;border-radius:6px;color:#fff;color:var(--color-white);padding:.7rem 1.5rem;transition:background-color .2s}.admin-login-form button:hover:not(:disabled),.admin-submit-button:hover:not(:disabled){background:#2b313f;background:var(--color-header-footer)}.admin-login-form button:disabled,.admin-submit-button:disabled{cursor:not-allowed;opacity:.6}.admin-success{background-color:#5f6a601a;border-radius:5px;color:#5f6a60;color:var(--color-accent-dark);margin:1rem 0;padding:1rem}.admin-dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.admin-logout-button{background:none;border:1px solid #5f6a60;border:1px solid var(--color-accent-dark);border-radius:6px;color:#5f6a60;color:var(--color-accent-dark);padding:.5rem 1rem}.admin-logout-button:hover{background:#5f6a60;background:var(--color-accent-dark);color:#fff;color:var(--color-white)}.admin-action-list{display:flex;flex-direction:column;gap:.75rem}.admin-action-button{background:#eaf0ff;background:var(--color-card-background);border:1px solid #e1e8ed;border-radius:10px;box-shadow:0 4px 6px #0000001a;color:#2b313f;color:var(--color-text-primary);display:block;font-weight:600;padding:1.25rem 1.5rem;text-decoration:none;transition:box-shadow .2s}.admin-action-button:hover{box-shadow:0 4px 12px #00000026}.admin-book-review-page .back-link,.admin-photo-upload-page .back-link{color:#2b313f;color:var(--color-text-primary);display:inline-block;margin-bottom:1rem}.admin-form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:2fr 2fr 1fr}.admin-form-section{border-top:1px solid #2b313f1f;display:flex;flex-direction:column;gap:.75rem;padding-top:1.25rem}.admin-form-section h3{margin:0}.admin-form-hint{color:#5f6a60;color:var(--color-accent-dark);font-size:.85rem;font-weight:400}.admin-facet-list{display:flex;flex-direction:column;gap:.5rem}.admin-facet-row{grid-gap:.6rem;align-items:center;display:grid;gap:.6rem;grid-template-columns:1fr auto}.admin-slider-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.admin-slider-row{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:8rem 1fr 3ch}.admin-slider-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-slider-row input[type=range]{width:100%}.admin-slider-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.admin-form-actions{align-items:center;display:flex;justify-content:space-between}.admin-back-button{background:none;border:1px solid #5f6a60;border:1px solid var(--color-accent-dark);border-radius:6px;color:#5f6a60;color:var(--color-accent-dark);padding:.7rem 1.5rem}.admin-back-button:hover{background:#5f6a601a}.admin-checkbox-label{align-items:center;flex-direction:row!important;gap:.5rem!important}.admin-timeline-list{display:flex;flex-direction:column;gap:.75rem}.admin-timeline-row{grid-gap:.6rem;align-items:start;display:grid;gap:.6rem;grid-template-columns:auto 1fr auto}.admin-timeline-point{align-items:center;flex-direction:row!important;gap:.3rem!important}.admin-timeline-point input{width:4.5rem}.admin-add-button{align-self:flex-start;background:none;border:1px dashed #5f6a60;border:1px dashed var(--color-accent-dark);border-radius:6px;color:#5f6a60;color:var(--color-accent-dark);padding:.5rem 1rem}.admin-add-button:hover{background:#5f6a601a}.admin-remove-button{background:none;border:1px solid #2b313f40;border-radius:6px;color:#2b313f;color:var(--color-text-primary);padding:.4rem .8rem}.admin-remove-button:hover{background:#2b313f14}.admin-photo-upload-page>.admin-form-hint{margin-bottom:1rem}.admin-photo-breadcrumb{align-items:center;display:flex;flex-wrap:wrap;font-size:1.1rem;font-weight:600}.admin-photo-breadcrumb button{background:none;border:none;color:#5f6a60;color:var(--color-accent-dark);font-weight:600;padding:0;text-decoration:underline}.admin-photo-breadcrumb button:disabled{cursor:not-allowed;text-decoration:none}.admin-photo-breadcrumb-separator{color:#9bad9d;color:var(--color-accent-medium);margin:0 .5rem}.admin-photo-folders{grid-gap:.6rem;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr))}.admin-photo-folder{background:#fff;background:var(--color-white);border:1px solid #c7d0e0;border-radius:6px;color:#2b313f;color:var(--color-text-primary);font-weight:600;padding:.75rem 1rem;text-align:left;transition:border-color .2s,box-shadow .2s}.admin-photo-folder:before{content:"📁";margin-right:.5rem}.admin-photo-folder:hover:not(:disabled){border-color:#5f6a60;border-color:var(--color-accent-dark);box-shadow:0 2px 6px #0000001a}.admin-photo-folder:disabled{cursor:not-allowed;opacity:.6}.admin-photo-new-folder{align-items:flex-end;display:flex;gap:.6rem}.admin-photo-new-folder label{flex:1 1;max-width:14rem}.admin-photo-new-folder .admin-add-button{padding:.6rem 1rem}.admin-photo-existing,.admin-photo-queue{display:flex;flex-direction:column;gap:.5rem;list-style:none}.admin-photo-existing li{align-items:center;display:flex;gap:.75rem;overflow-wrap:anywhere}.admin-photo-existing img{border-radius:4px;flex-shrink:0;height:3rem;object-fit:cover;width:3rem}.admin-photo-picker{align-self:flex-start;border:1px dashed #5f6a60;border:1px dashed var(--color-accent-dark);border-radius:6px;color:#5f6a60;color:var(--color-accent-dark);cursor:pointer;padding:.6rem 1.2rem}.admin-photo-picker:hover:not(.is-disabled){background:#5f6a601a}.admin-photo-picker.is-disabled{cursor:not-allowed;opacity:.6}.admin-photo-picker input{display:none}.admin-photo-queue-item{background:#fff;background:var(--color-white);border:1px solid #e1e8ed;border-radius:6px;padding:.6rem .75rem}.admin-photo-queue-item.is-done{opacity:.7}.admin-photo-queue-row{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:1fr auto 5rem auto}.admin-photo-queue-name{overflow-wrap:anywhere}.admin-photo-queue-size,.admin-photo-queue-status{font-feature-settings:"tnum";font-size:.85rem;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-photo-queue-status{font-weight:600}.admin-photo-queue-item.is-done .admin-photo-queue-status{color:#5f6a60;color:var(--color-accent-dark)}.admin-photo-queue-error,.admin-photo-queue-item.is-error .admin-photo-queue-status{color:#b3261e}.admin-photo-queue-item progress{accent-color:#5f6a60;accent-color:var(--color-accent-dark);margin-top:.4rem;width:100%}.admin-photo-queue-error,.admin-photo-queue-warning{font-size:.85rem;margin-top:.3rem}.admin-photo-queue-warning{color:#8a5a00}@media (max-width:640px){.admin-photo-queue-row{grid-template-columns:1fr auto}.admin-photo-queue-name{grid-column:1/-1}.admin-photo-queue-size{display:none}.admin-form-row,.admin-slider-row{grid-template-columns:1fr}.admin-slider-row{gap:.35rem}.admin-slider-value{text-align:left}}
/*# sourceMappingURL=main.cbddec29.css.map*/