@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap");
.highlight .err { color: #e3d2d2; background-color: #a61717; }

.highlight .c { color: #9c9996; }

.highlight .cm { color: #9c9996; }

.highlight .cp { color: #9c9996; }

.highlight .c1 { color: #9c9996; }

.highlight .cs { color: #9c9996; font-style: italic; }

.highlight .gd { color: #e25050; }

.highlight .gd .x { color: #e25050; }

.highlight .ge { font-style: italic; }

.highlight .gh { color: #999999; }

.highlight .gi { color: #3f993f; }

.highlight .gi .x { color: #3f993f; }

.highlight .go { color: #888888; }

.highlight .gp { color: #555555; }

.highlight .gr { color: #aa0000; }

.highlight .gs { font-weight: bold; }

.highlight .gt { color: #aa0000; }

.highlight .gu { color: #aaaaaa; }

.highlight .k { color: #cf222e; }

.highlight .kc { color: #cf222e; }

.highlight .kd { color: #cf222e; }

.highlight .kp { color: #cf222e; }

.highlight .kr { color: #cf222e; }

.highlight .kt { color: #445588; }

.highlight .n { color: #111111; }

.highlight .na { color: #097e39; }

.highlight .nb { color: #cf222e; }

.highlight .bp { color: #999999; }

.highlight .nc { color: #097e39; }

.highlight .ne { color: #990000; }

.highlight .nf { color: #2c7d74; }

.highlight .ni { color: #097e39; }

.highlight .nn { color: #097e39; }

.highlight .no { color: #a61154; }

.highlight .nt { color: #b81e63; }

.highlight .nv { color: #752a75; }

.highlight .vc { color: #752a75; }

.highlight .vg { color: #752a75; }

.highlight .vi { color: #752a75; }

.highlight .o { color: #0842a0; }

.highlight .ow { color: #0842a0; }

.highlight .m { color: #005a99; }

.highlight .mf { color: #005a99; }

.highlight .mh { color: #005a99; }

.highlight .mi { color: #005a99; }

.highlight .il { color: #005a99; }

.highlight .mo { color: #005a99; }

.highlight .s { color: #914d08; }

.highlight .s1 { color: #914d08; }

.highlight .s2 { color: #914d08; }

.highlight .sb { color: #914d08; }

.highlight .sc { color: #914d08; }

.highlight .sd { color: #914d08; }

.highlight .se { color: #914d08; }

.highlight .sh { color: #914d08; }

.highlight .si { color: #914d08; }

.highlight .sr { color: #009926; }

.highlight .ss { color: #0842a0; }

.highlight .sx { color: #914d08; }

.highlight .w { color: #bbbbbb; }

.highlight .lineno, .highlight .gl { color: #9c9996; }

.highlight .hll { background-color: #ffffcc; }

html { font-size: 16px; }

/** Reset some basic elements */
body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; }

/** Basic styling */
body { font: 400 16px/1.5 -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Segoe UI Emoji", "Segoe UI Symbol", "Apple Color Emoji", Roboto, Helvetica, Arial, sans-serif; color: #414141; background-color: #fdfdfd; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; overflow-wrap: break-word; }

/** Set `margin-bottom` to maintain vertical rhythm */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, div.highlight, figure.highlight { margin-bottom: 15px; }

hr { margin-top: 30px; margin-bottom: 30px; }

/** `main` element */
main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ }

/** Images */
img { max-width: 100%; vertical-align: middle; }

/** Figures */
figure > img { display: block; }

figcaption { font-size: 14px; }

/** Lists */
ul, ol { margin-left: 30px; }

li > ul, li > ol { margin-bottom: 0; }

/** Headings */
h1, h2, h3, h4, h5, h6 { color: #111111; font-weight: 500; }

/** Links */
a { color: #1e69d8; text-decoration: none; }

a:visited { color: #154895; }

a:hover { color: #414141; text-decoration: underline #818181; text-underline-offset: 3px; }

.social-media-list a:hover { text-decoration: none; }

.social-media-list a:hover .username { text-decoration: underline; }

/** Blockquotes */
blockquote { color: #818181; border-left: 4px solid #e7e7e7; padding-left: 15px; font-size: 1.05rem; font-style: italic; }

blockquote > :last-child { margin-bottom: 0; }

blockquote i, blockquote em { font-style: normal; }

/** Code formatting */
pre, code { font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono", "Ubuntu Mono", "Liberation Mono", "Courier New", monospace; background-color: #f6f8fa; }

@media screen and (max-width: 600px) { pre, code { font-family: monospace; } }

pre { padding: 8px 12px; font-size: 15px; line-height: 1.4; color: #111111; overflow-x: auto; }

pre > code { display: inline-block; width: 100%; }

div.highlight, figure.highlight { border: 1px solid #e7e7e7; border-radius: 3px; }

div.highlight pre, figure.highlight pre { margin: 0; }

div.highlight table, div.highlight tbody, div.highlight th, div.highlight tr, div.highlight td, figure.highlight table, figure.highlight tbody, figure.highlight th, figure.highlight tr, figure.highlight td { margin: 0; padding: 0; border: 0; }

div.highlight .lineno, div.highlight .gl, figure.highlight .lineno, figure.highlight .gl { text-align: right; }

figure.highlight table { margin: -8px -12px -14px; }

figure.highlight td.gutter { border-right: 1px solid #e7e7e7; }

figure.highlight td.code { width: 100%; }

code.highlighter-rouge { padding: 1px 5px; font-size: 14px; border: 1px solid #e7e7e7; border-radius: 3px; }

/** Wrapper */
.wrapper { max-width: 800px; margin: 0 auto; padding: 0 30px; }

@media screen and (max-width: 600px) { .wrapper { padding-right: 18px; padding-left: 18px; } }

/** Clearfix */
.wrapper:after { content: ""; display: table; clear: both; }

/** Icons */
.orange { color: #f66a0a; }

.grey { color: #828282; }

.svg-icon { width: 1.25em; height: 1.25em; display: inline-block; fill: currentColor; vertical-align: text-bottom; overflow: visible; }

/** Tables */
table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e7e7e7; }

table tr:nth-child(even) { background-color: #f6f6f6; }

table th, table td { padding: 10px 15px; }

table th { background-color: #efefef; border: 1px solid #dfdfdf; }

table td { border: 1px solid #e7e7e7; }

@media screen and (max-width: 800px) { table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; -ms-overflow-style: -ms-autohiding-scrollbar; } }

/** Site header */
.site-header { position: relative; width: 100%; min-height: 55.95px; line-height: 54px; background-color: #fdfdfd; border-top: 5px solid #414141; border-bottom: 1px solid #e7e7e7; }

.site-title { font-size: 1.625rem; font-weight: 300; letter-spacing: -1px; margin-bottom: 0; float: left; }

@media screen and (max-width: 600px) { .site-title { padding-right: 45px; } }

.site-title, .site-title:visited { color: #414141; }

.site-nav { float: right; border: none; background-color: inherit; }

.site-nav label[for="nav-trigger"], .site-nav #nav-trigger { display: none; }

.site-nav .nav-item { color: #414141; }

.site-nav .nav-item:not(:last-child) { margin-right: 15px; }

@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 18px; background-color: #fdfdfd; border: 1px solid #e7e7e7; border-radius: 5px; text-align: right; } .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; cursor: pointer; } .site-nav .menu-icon { float: right; width: 36px; height: 26px; line-height: 0; padding-top: 18px; text-align: center; } .site-nav .menu-icon::before { font-family: "Font Awesome 7 Free"; font-weight: 900; } .site-nav .menu-icon > svg path { fill: #414141; } .site-nav #nav-trigger ~ label[for=nav-trigger] .menu-icon::before { content: "\f0c9"; font-size: 1.25em; } .site-nav #nav-trigger ~ .nav-items { clear: both; display: none; } .site-nav #nav-trigger:checked ~ label[for=nav-trigger] .menu-icon::before { content: "\f00d"; font-size: 1.5em; } .site-nav #nav-trigger:checked ~ .nav-items { display: block; padding-bottom: 5px; } .site-nav #nav-trigger:checked ~ .nav-items .nav-item { margin-left: 20px; padding: 5px 10px; } .site-nav .nav-item { display: block; margin-right: 15px; padding: 5px 0; color: #414141; line-height: 1.5; } }

/** Site footer */
.site-footer { border-top: 1px solid #e7e7e7; padding: 30px 0; }

.footer-heading { font-size: 1.125rem; margin-bottom: 15px; }

.feed-subscribe .svg-icon { padding: 5px 5px 2px 0; }

.contact-list, .social-media-list { list-style: none; margin-left: 0; }

.footer-col-wrapper, .social-links { font-size: 0.9375rem; color: #656565; }

.footer-col { margin-bottom: 15px; }

.footer-col-1, .footer-col-2 { width: calc(50% - (30px / 2)); }

.footer-col-3 { width: calc(100% - (30px / 2)); }

@media screen and (min-width: 800px) { .footer-col-1 { width: calc(35% - (30px / 2)); } .footer-col-2 { width: calc(20% - (30px / 2)); } .footer-col-3 { width: calc(45% - (30px / 2)); } }

@media screen and (min-width: 600px) { .footer-col-wrapper { display: flex; } .footer-col { width: calc(100% - (30px / 2)); padding: 0 15px; } .footer-col:first-child { padding-right: 15px; padding-left: 0; } .footer-col:last-child { padding-right: 0; padding-left: 15px; } }

/** Page content */
.page-content { padding: 30px 0; flex: 1 0 auto; }

.page-heading { font-size: 2rem; }

.post-list-heading { font-size: 1.75rem; }

.post-list { margin-left: 0; list-style: none; }

.post-list > li { margin-bottom: 30px; }

.post-meta { font-size: 14px; color: #656565; }

.post-link { display: block; font-size: 1.5rem; }

/** Posts */
.post-header { margin-bottom: 30px; padding-bottom: 18px; text-align: center; border-bottom: 1px solid #e7e7e7; }

.post-meta .bullet-divider { padding-inline: 15px; }

.post-meta .meta-label { font-weight: 600; }

.post-meta .force-inline { display: inline; }

.post-meta .force-inline::before { content: "•"; padding-inline: 5px; }

.post-meta .post-authors { margin-top: 3px; }

.post-title, .post-content h1 { margin-bottom: 10px; font-size: 2.625rem; font-weight: 400; letter-spacing: -1px; line-height: 1.15; }

@media screen and (min-width: 800px) { .post-title, .post-content h1 { font-size: 2.625rem; } }

.post-content { margin-bottom: 30px; }

.post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5, .post-content h6 { margin-top: 30px; }

.post-content h2 { font-size: 1.75rem; }

@media screen and (min-width: 800px) { .post-content h2 { font-size: 2rem; } }

.post-content h3 { font-size: 1.375rem; }

@media screen and (min-width: 800px) { .post-content h3 { font-size: 1.625rem; } }

.post-content h4 { font-size: 1.25rem; }

.post-content h5 { font-size: 1.125rem; }

.post-content h6 { font-size: 1.0625rem; }

.comments-disabled-message { text-align: center; font-weight: 300; }

.social-media-list { display: table; margin: 0 auto; }

.social-media-list li { float: left; min-width: 45px; min-height: 45px; text-align: center; margin: 5px 10px 5px 0; }

.social-media-list li:last-of-type { margin-right: 0; }

.social-media-list li a { display: block; padding: 10px 12px; border: 1px solid #e7e7e7; }

.social-media-list li a:hover { border-color: #dadada; }

/** Pagination navbar */
.pagination { display: table; margin: 0 auto; list-style-type: none; }

.pagination li { float: left; margin: 0 3px; min-width: 45px; min-height: 45px; text-align: center; }

.pagination li a { display: block; text-decoration: none; border: 1px solid #e7e7e7; }

.pagination li a:hover { border-color: #dadada; }

.pagination li a, .pagination li div { min-width: 41px; padding: 10px 12px; text-align: center; box-sizing: border-box; }

.pagination li div { border: 1px solid transparent; }

.pagination li div.pager-edge { color: #e7e7e7; border: 1px dashed; }

.pagination li div.current-page { font-weight: bold; }

/** Task-lists */
.task-list { margin-left: 0; padding-left: 18px; }

.task-list-item { list-style-type: none; }

.task-list-item-checkbox { position: relative; margin-right: 9px; margin-left: -15px; appearance: none; border: 8px solid #e7e7e7; vertical-align: text-top; z-index: -1; }

.task-list-item-checkbox::after { position: absolute; top: -8px; left: -3px; width: 4px; height: 10px; content: ""; border: solid transparent; border-width: 0 2px 2px 0; transform: rotate(45deg); }

.task-list-item-checkbox:checked::after { border-color: #414141; }

/** Grid helpers */
@media screen and (min-width: 800px) { .one-half { width: calc(50% - (30px / 2)); } }

:root { --paper: #FBF4EE; --paper-2: #F3E9DE; --paper-3: #E8D9C8; --ink: #002500; --ink-2: #7C3238; --muted: #9DB36B; --rule: #D8C9B8; --accent: #B7245C; --link: #7C3238; }

html { background: var(--paper); }

body { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; font-size: 20px; line-height: 1.65; letter-spacing: 0.01em; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; max-width: 760px; margin: 0 auto; padding: 0 20px; }

body.lightbox-open { overflow: hidden; }

a { font-family: "Cormorant Garamond", Georgia, serif; color: var(--link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

a:hover { color: var(--accent); }

em, i { font-family: "Cormorant Garamond", Georgia, serif; color: var(--ink-2); font-style: italic; }

strong { font-weight: 600; color: var(--ink); }

.post-title, h1 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; font-size: clamp(34px, 5vw, 46px); line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); }

.page-heading { text-align: center; margin-bottom: 30px; padding-bottom: 18px; border-bottom: 1px solid var(--rule); }

h2 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; font-size: 28px; line-height: 1.2; margin-top: 56px; color: var(--ink); }

h3, h4, h5, h6 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; color: var(--ink); }

h3 { font-size: 22px; }

h4 { font-size: 19px; }

.post-meta { font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--muted); letter-spacing: 0.04em; }

.wrapper { background: transparent; }

.site-header { border-top: 1px solid var(--rule); background: var(--paper); border-bottom-color: var(--rule); }

.site-title { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 22px; color: var(--ink) !important; }

.site-nav { text-transform: uppercase; }

.site-nav .page-link, .site-nav .nav-item { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: 0.08em; color: var(--ink-2); text-decoration: none; }

.site-nav .page-link:hover, .site-nav .nav-item:hover { color: var(--accent); }

.feed-subscribe a { font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--muted); }

blockquote { border-left: 3px solid var(--accent); padding-left: 20px; color: var(--ink-2); font-style: italic; font-weight: 300; }

.post-list h3 { font-weight: 500; }

.post-list .post-meta { font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--muted); }

.post-list a { text-decoration: none; }

.post-list a:hover { color: var(--accent); }

.site-footer { border-top-color: var(--rule); color: var(--muted); font-family: "IBM Plex Mono", monospace; font-size: 12px; }

.social-media-list .svg-icon { fill: var(--muted); }

/* ——— About ——— */
.about-header { display: flex; gap: 32px; align-items: flex-start; margin-bottom: 48px; padding-bottom: 36px; border-bottom: 1px solid var(--rule); }

.about-photo { flex-shrink: 0; }

.about-photo img { display: block; width: 190px; height: auto; border-radius: 2px; border: 1px solid var(--rule); }

.about-intro { flex: 1; }

.about-name { font-family: "Cormorant Garamond", Georgia, serif; font-size: 30px; font-weight: 500; color: var(--ink); margin-bottom: 4px !important; line-height: 1.2; }

.about-location { font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--muted); letter-spacing: 0.04em; margin-bottom: 12px !important; }

.about-bio { font-family: "Cormorant Garamond", Georgia, serif; font-size: 18px; color: var(--ink-2); line-height: 1.55; margin-bottom: 0 !important; }

.about-section { margin-bottom: 44px; }

.about-section-header { display: flex; align-items: baseline; gap: 16px; margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--rule); }

.about-section-header h2 { margin: 0; font-size: 26px; }

.section-num { font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--accent); letter-spacing: 0.08em; font-weight: 500; }

.about-links { display: flex; flex-direction: column; gap: 12px; }

.about-link { display: block; padding: 16px 20px; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; text-decoration: none; transition: background 0.15s; }

.about-link:hover { background: var(--paper-2); text-decoration: none; }

.about-link-label { display: block; font-family: "IBM Plex Mono", monospace; font-size: 10px; color: var(--muted); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 4px; }

.about-link-name { font-family: "Cormorant Garamond", Georgia, serif; font-size: 18px; color: var(--ink); }

.about-stories { display: flex; flex-direction: column; gap: 0; }

.about-story { display: flex; gap: 20px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--paper-3); }

.about-story:last-child { border-bottom: none; }

.about-story p { margin: 0; font-size: 17px; color: var(--ink-2); line-height: 1.5; }

.about-story-year { flex-shrink: 0; font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--accent); letter-spacing: 0.06em; font-weight: 500; text-transform: uppercase; width: 64px; text-align: right; }

/* ——— Paint ——— */
.page-intro { font-family: "Cormorant Garamond", Georgia, serif; font-size: 20px; font-style: italic; font-weight: 300; color: var(--ink-2); margin-bottom: 40px; line-height: 1.5; }

.paint-layout { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 18px; align-items: start; }

.paint-layout--solo { grid-template-columns: minmax(0, 1fr); }

.paint-stage { margin: 0; min-width: 0; }

.paint-stage.is-updated { opacity: 0.82; transition: opacity 0.18s ease; }

.paint-stage-image-wrap { display: flex; align-items: center; justify-content: center; min-height: 280px; padding: 8px; background: var(--paper-2); border: 1px solid var(--rule); margin-bottom: 22px; }

.paint-stage-image { display: block; max-width: 100%; max-height: 60vh; }

.paint-stage-caption { padding-top: 0; }

.paint-stage-nav { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }

.paint-arrow { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; border: 1px solid var(--rule); background: transparent; color: var(--ink-2); font-family: "Cormorant Garamond", Georgia, serif; font-size: 20px; line-height: 1; cursor: pointer; transition: border-color 0.15s ease, color 0.15s ease; -webkit-appearance: none; appearance: none; }

.paint-arrow:hover, .paint-arrow:focus-visible { border-color: var(--ink); color: var(--ink); }

.paint-stage-count { font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: 0.08em; color: var(--muted); margin: 0; }

.paint-stage-title { font-family: "Cormorant Garamond", Georgia, serif; font-size: 28px; font-weight: 400; margin: 0 0 8px; line-height: 1.15; }

.paint-index { display: flex; flex-direction: column; gap: 8px; position: sticky; top: 16px; max-height: calc(100vh - 120px); overflow-y: auto; padding: 0 2px 0 0; scrollbar-width: thin; scrollbar-color: var(--rule) transparent; }

.paint-index-item { display: block; flex: 0 0 auto; width: 100%; padding: 4px; margin: 0; border: 1px solid var(--rule); background: var(--paper-2); text-align: left; cursor: pointer; transition: border-color 0.15s ease, box-shadow 0.15s ease; -webkit-appearance: none; appearance: none; }

.paint-index-item:hover { border-color: var(--ink-2); }

.paint-index-item.is-active { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }

.paint-index-thumb { display: block; width: 100%; aspect-ratio: 1; background: var(--paper); }

.paint-index-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }

.paint-index-meta { display: block; padding: 5px 1px 1px; min-width: 0; }

.paint-index-title, .paint-index-medium { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

.paint-index-title { font-family: "Cormorant Garamond", Georgia, serif; font-size: 13px; line-height: 1.25; color: var(--ink); }

.paint-index-medium { font-family: "IBM Plex Mono", monospace; font-size: 9px; letter-spacing: 0.03em; text-transform: uppercase; color: var(--muted); margin-top: 2px; }

.paint-stage-medium { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin: 0 0 12px; }

.paint-stage-description { font-size: 18px; color: var(--ink-2); line-height: 1.55; margin: 0; max-width: 42em; }

.paint-empty { font-family: "Cormorant Garamond", Georgia, serif; font-size: 18px; font-style: italic; color: var(--muted); margin: 0; }

.paint-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.paint-item { display: block; background: var(--paper); border: 1px solid var(--rule); border-radius: 4px; overflow: hidden; text-decoration: none; transition: all 0.15s ease; }

.paint-item:hover { background: var(--paper-2); transform: translateY(-1px); text-decoration: none; }

.paint-item img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }

.paint-caption { padding: 14px 16px; }

.paint-caption span { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 17px; color: var(--ink); margin-bottom: 2px; }

.paint-caption p { margin: 0; font-family: "Cormorant Garamond", Georgia, serif; font-size: 14px; color: var(--muted); line-height: 1.4; }

/* ——— Gallery ——— */
.image-gallery { overflow: auto; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

.image-gallery li { margin: 0; }

.gallery-thumb { display: block; width: 100%; padding: 0; border: 1px solid var(--rule); border-radius: 4px; overflow: hidden; background: transparent; cursor: pointer; text-align: left; position: relative; transition: transform 0.15s ease, box-shadow 0.15s ease; }

.gallery-thumb:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 37, 0, 0.1); }

.gallery-thumb:hover .gallery-thumb-label { opacity: 1; }

.gallery-thumb:hover img { transform: scale(1.04); }

.gallery-thumb img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; transition: transform 0.2s ease; }

.gallery-thumb-label { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 10px 10px; background: linear-gradient(transparent, rgba(0, 0, 0, 0.55)); color: #fff; font-family: "Cormorant Garamond", Georgia, serif; font-size: 14px; line-height: 1.2; opacity: 0; transition: opacity 0.15s ease; pointer-events: none; }

/* ——— Lightbox ——— */
.lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; }

.lightbox[hidden] { display: none; }

.lightbox-backdrop { position: absolute; inset: 0; border: none; background: rgba(0, 37, 0, 0.88); cursor: pointer; }

.lightbox-figure { position: relative; z-index: 1; max-width: min(920px, 92vw); max-height: 92vh; margin: 0; }

.lightbox-image { display: block; max-width: 100%; max-height: calc(92vh - 80px); margin: 0 auto; object-fit: contain; border-radius: 2px; }

.lightbox-close { position: absolute; top: -40px; right: 0; border: none; background: transparent; color: #fff; font-size: 32px; line-height: 1; cursor: pointer; padding: 0 4px; }

.lightbox-caption { margin-top: 14px; text-align: center; color: #fff; }

.lightbox-title { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 22px; margin-bottom: 4px; }

.lightbox-medium { display: block; font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); }

.writing-empty { display: none; }

/* ——— Landing ——— */
.landing-page h2 { margin-top: 0; font-size: 22px; }

.landing-lede { font-family: "Cormorant Garamond", Georgia, serif; font-size: 22px; font-weight: 300; font-style: italic; color: var(--ink-2); line-height: 1.5; margin-bottom: 48px; }

.landing-section { margin-bottom: 48px; }

.landing-section-header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--rule); }

.landing-section-header a { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; color: var(--muted); }

.landing-section-header a:hover { color: var(--ink); }

.landing-grid { display: grid; gap: 12px; }

.landing-grid--work { grid-template-columns: repeat(2, 1fr); }

.landing-grid--gallery { grid-template-columns: repeat(4, 1fr); }

.landing-feature { display: block; width: 100%; padding: 0; border: 1px solid var(--rule); border-radius: 4px; overflow: hidden; background: transparent; cursor: pointer; text-align: left; font: inherit; color: inherit; transition: transform 0.15s ease; }

.landing-feature:hover { transform: translateY(-2px); }

.landing-feature img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; transition: transform 0.2s ease; }

.landing-feature:hover img { transform: scale(1.03); }

.landing-grid--work .landing-feature { display: flex; align-items: center; justify-content: center; height: 260px; padding: 10px; background: var(--paper-2); }

.landing-grid--work .landing-feature img { width: auto; max-width: 100%; max-height: 100%; aspect-ratio: auto; object-fit: contain; }

.landing-note { font-family: "Cormorant Garamond", Georgia, serif; font-size: 17px; font-style: italic; color: var(--muted); margin: 0; }

.landing-posts { list-style: none; margin: 0; padding: 0; }

.landing-posts li { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--paper-3); }

.landing-posts li:last-child { border-bottom: none; }

.landing-posts a { font-family: "Cormorant Garamond", Georgia, serif; font-size: 18px; text-decoration: none; color: var(--ink); }

.landing-posts a:hover { color: var(--ink-2); text-decoration: underline; }

.landing-post-date { font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--muted); letter-spacing: 0.04em; flex-shrink: 0; }

.landing-section--about p { font-size: 17px; color: var(--ink-2); margin: 0; }

/* ——— Writing index ——— */
.writing-list { list-style: none; margin: 0; padding: 0; }

.writing-item { border-bottom: 1px solid var(--rule); }

.writing-item:last-child { border-bottom: none; }

.writing-link { display: block; padding: 22px 0; text-decoration: none; color: var(--ink); }

.writing-link:hover .writing-title { text-decoration: underline; text-underline-offset: 4px; }

.writing-date { display: block; font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }

.writing-title { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 26px; font-weight: 400; line-height: 1.2; color: var(--ink); }

.writing-summary { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 17px; font-style: italic; font-weight: 300; color: var(--ink-2); margin-top: 6px; }

/* ——— Post ——— */
.post-header { margin-bottom: 40px; }

.post-subtitle { font-family: "Cormorant Garamond", Georgia, serif; font-size: 21px; font-style: italic; font-weight: 300; color: var(--ink-2); margin: 10px 0 0; line-height: 1.4; }

.writing-post .post-content img { display: block; max-width: 100%; height: auto; margin: 0 auto; }

.writing-post .post-content p > img { margin-top: 8px; }

.writing-post .post-content blockquote { font-style: italic; color: var(--ink-2); border-left: 2px solid var(--rule); padding-left: 22px; margin-left: 0; }

.writing-post .post-content hr { border: none; border-top: 1px solid var(--rule); margin: 40px auto; width: 120px; }

/* Poems keep their original line breaks, which Markdown leaves as plain newlines in the rendered paragraph. */
.post-verse .post-content { text-align: center; }

.post-verse .post-content p { white-space: pre-line; margin-bottom: 36px; }

.post-footer { margin-top: 64px; padding-top: 26px; border-top: 1px solid var(--rule); }

.post-source { font-family: "IBM Plex Mono", monospace; font-size: 12px; letter-spacing: 0.03em; color: var(--muted); margin: 0 0 26px; }

.post-source a { color: var(--ink-2); }

.post-nav { display: flex; gap: 20px; justify-content: space-between; }

.post-nav-link { flex: 1 1 0; max-width: 48%; text-decoration: none; color: var(--ink); }

.post-nav-link:hover .post-nav-title { text-decoration: underline; text-underline-offset: 3px; }

.post-nav-older { margin-left: auto; text-align: right; }

.post-nav-label { display: block; font-family: "IBM Plex Mono", monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }

.post-nav-title { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 17px; line-height: 1.3; color: var(--ink); }

.post-back { margin: 30px 0 0; text-align: center; }

.post-back a { font-family: "IBM Plex Mono", monospace; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); text-decoration: none; }

.post-back a:hover { color: var(--ink); }

@media (max-width: 640px) { body { font-size: 18px; } h2 { font-size: 24px; margin-top: 40px; } .about-header { flex-direction: column; align-items: center; text-align: center; gap: 20px; } .about-story { flex-direction: column; gap: 4px; } .about-story-year { text-align: left; width: auto; } .paint-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; } .paint-stage { order: 1; } .paint-index { order: 2; position: static; max-height: none; flex-direction: row; overflow-x: auto; overflow-y: hidden; gap: 6px; padding: 0 0 4px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; } .paint-index-item { width: 68px; scroll-snap-align: center; } .paint-index-meta { display: none; } .paint-stage-image-wrap { min-height: 240px; margin-bottom: 16px; } .paint-stage-image { max-height: 58vh; } .paint-stage-title { font-size: 24px; } .paint-grid { grid-template-columns: 1fr; } .landing-grid--work { grid-template-columns: 1fr 1fr; } .landing-grid--gallery { grid-template-columns: 1fr 1fr; } .image-gallery { grid-template-columns: 1fr 1fr; } .gallery-thumb-label { opacity: 1; } .writing-title { font-size: 22px; } .post-subtitle { font-size: 19px; } .post-nav { flex-direction: column; gap: 24px; } .post-nav-link { max-width: 100%; } .post-nav-older { text-align: left; margin-left: 0; } }

/*# sourceMappingURL=style.css.map */