@font-face{font-family:FragmentsSongti;src:url('fonts/fragments-songti-regular.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
.poetry-page{max-width:1280px;margin:0 auto;padding:28px 6vw 52px;color:#20201e;animation:poetryFade .4s ease both}.poetry-page[hidden]{display:none!important}.poetry-page *{box-sizing:border-box}.poetry-page a{color:inherit;text-decoration:none}.poetry-page a:hover,.poetry-page button:hover{color:#99483f}.poetry-page button,.poetry-page input,.poetry-page textarea,.poetry-page select{font-family:inherit}.poetry-page button{background:none;color:inherit;border:0;cursor:pointer;min-height:44px;padding:8px 0;font-size:16px}.poetry-page button:disabled{opacity:.5;cursor:wait}.poetry-page :focus-visible{outline:2px solid #9c5c50;outline-offset:5px}.poetry-mast{display:flex;align-items:center;gap:24px;margin-bottom:28px;font-size:14px}.poetry-mast a:first-child{margin-right:auto}.poetry-mast img{width:160px;height:80px;object-fit:contain}.poetry-notice:empty{display:none}.poetry-notice{font-size:16px;line-height:1.8;color:#8a4037}.poetry-notice a{text-decoration:underline}.poetry-page h1{font-family:FragmentsSongti,'Songti TC',serif;font-weight:700;font-size:clamp(48px,5.7vw,76px);line-height:1.25;margin:24px 0 26px;letter-spacing:0}.poetry-eyebrow{font-family:WorksBodoni,serif;font-size:14px;line-height:1.7;letter-spacing:.11em;color:#605c57;overflow-wrap:anywhere}.poetry-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:7%;align-items:center;margin-bottom:32px}.poetry-intro-text{font:20px/1.9 FragmentsSongti,serif;white-space:pre-line}.poetry-art{margin:0;min-width:0}.poetry-art img{display:block;width:100%;height:auto;object-fit:cover}.poetry-intro .poetry-art img{max-height:390px}.poetry-art figcaption{font:12px/1.6 WorksBodoni,serif;color:#746f67;letter-spacing:.1em;margin-top:10px}.poetry-list{border-top:1px solid #d1cec5}.poetry-row{display:grid;grid-template-columns:50px 1fr 110px 32px;align-items:center;gap:20px;padding:24px 0;border-bottom:1px solid #d1cec5}.poetry-row strong{font:700 26px/1.5 FragmentsSongti,serif}.poetry-number{font:italic 22px WorksBodoni,serif;color:#89594e}.poetry-row time{font:14px WorksBodoni,serif;color:#68645e}.poetry-arrow{font-size:26px}.poetry-reading{display:grid;grid-template-columns:1.15fr .85fr;gap:7%;margin:30px 0}.poetry-reading h1{font-size:clamp(48px,4.5vw,64px);margin:16px 0}.poetry-meta{font:15px/1.8 WorksBodoni,serif;letter-spacing:.08em;color:#6c6761}.poetry-body{font-family:FragmentsSongti,'Songti TC',serif;font-size:21px;line-height:1.9;letter-spacing:0;margin-top:34px;overflow-wrap:anywhere}.poetry-body p{white-space:pre-wrap;margin:0 0 1.3em}.poetry-reading .poetry-art{margin-top:100px;align-self:start}.poetry-actions{display:flex;flex-wrap:wrap;gap:12px 30px;border-top:1px solid #d1cec5;padding-top:16px}.poetry-adjacent{display:flex;justify-content:space-between;gap:25px;margin-top:28px}.poetry-share-preview{margin:30px 0;display:flex;align-items:start;gap:20px;flex-wrap:wrap}.poetry-share-preview img{display:block;max-width:340px;width:100%;height:auto}.poetry-editor{margin-top:30px}.poetry-editor form{max-width:820px;display:grid;gap:20px}.poetry-editor label{display:grid;gap:8px;font-size:16px}.poetry-editor input,.poetry-editor textarea,.poetry-editor select{width:100%;border:1px solid #c8c3ba;background:transparent;color:#222;padding:12px;font-size:16px;line-height:1.7}.poetry-editor textarea{font-family:FragmentsSongti,serif;resize:vertical}.poetry-image-preview{max-width:240px;max-height:240px;object-fit:contain}.poetry-admin-row{display:flex;gap:20px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #ccc;padding:18px 0}.poetry-admin-row button{margin-left:auto}.social-menu .header-nav a[data-nav]{min-height:44px;padding-top:8px;padding-bottom:8px}
@keyframes poetryFade{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.poetry-page{animation:none}}@media(max-width:760px){.poetry-page{padding:18px 6vw 36px}.poetry-mast{gap:14px;flex-wrap:wrap;margin-bottom:20px}.poetry-mast img{width:120px;height:60px}.poetry-mast a{font-size:13px}.poetry-intro{grid-template-columns:1fr;gap:24px}.poetry-intro .poetry-art{width:76%;justify-self:end}.poetry-page h1{font-size:42px}.poetry-intro-text{font-size:18px}.poetry-row{grid-template-columns:28px 1fr 22px;gap:12px;padding:18px 0}.poetry-row strong{font-size:24px}.poetry-row time{grid-column:2;grid-row:2}.poetry-arrow{grid-column:3;grid-row:1/3}.poetry-number{grid-row:1/3}.poetry-reading{grid-template-columns:1fr;gap:20px;margin-top:24px}.poetry-reading h1{font-size:36px}.poetry-body{font-size:19px;line-height:1.9;margin-top:28px}.poetry-reading .poetry-art{margin-top:0;max-width:520px}.poetry-actions{gap:8px 22px}.poetry-eyebrow{font-size:12px;letter-spacing:.08em}.poetry-adjacent{font-size:16px}.poetry-editor h1{font-size:34px}}

/* Contemporary writing edition: restrained regular Songti, scoped to fragments. */
body.artist-portfolio .poetry-page{font-family:FragmentsSongti,'Songti TC',serif;font-weight:400;font-synthesis:none}
body.artist-portfolio .poetry-page h1{font-family:FragmentsSongti,'Songti TC',serif;font-weight:400;font-size:clamp(40px,5vw,64px);letter-spacing:.10em;line-height:1.35;margin:14px 0 22px}
.poetry-intro{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:6%;align-items:stretch;margin:12px 0 28px}
.poetry-intro .poetry-art img{height:100%;max-height:680px;min-height:450px;object-position:center}
.poetry-intro .poetry-art{display:flex;flex-direction:column}
.poetry-intro .poetry-art figcaption{margin-bottom:0}
.poetry-eyebrow{font-size:12px;letter-spacing:.24em;color:#343430}
.poetry-intro-text{position:relative;padding-left:48px;font-size:17px;line-height:1.8;letter-spacing:.12em;margin:0 0 32px}
.poetry-intro-text:before{content:'/';position:absolute;left:0;top:-4px;font:36px/1.4 WorksBodoni,serif}
.poetry-list{border-top:0}
.poetry-row{grid-template-columns:42px minmax(0,1fr) 24px;gap:5px 18px;padding:23px 0}
.poetry-row strong{font:400 24px/1.5 FragmentsSongti,serif;letter-spacing:.12em}
.poetry-row time{grid-column:2;grid-row:2;font-size:12px;letter-spacing:.2em}
.poetry-number{grid-row:1/3;font:400 20px WorksBodoni,serif;color:#282824}
.poetry-arrow{grid-column:3;grid-row:1/3;font-size:23px;font-weight:400}
.poetry-catalogue-foot{display:flex;gap:24px;align-items:center;margin-top:24px}
.poetry-catalogue-foot img{width:92px;height:100px;object-fit:cover;object-position:50% 15%}
.poetry-catalogue-foot p{white-space:pre-line;font:11px/1.8 WorksBodoni,serif;letter-spacing:.2em}
.poetry-folio{display:flex;align-items:center;gap:24px;font:12px/1.8 WorksBodoni,FragmentsSongti,serif;letter-spacing:.12em;border-bottom:1px solid #d1cec5;padding:10px 0 18px}
.poetry-folio span:last-child{margin-left:auto}
.poetry-reading{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:7%;margin:32px 0}
.poetry-reading .poetry-eyebrow{margin:0 0 32px;padding-left:32px;position:relative}
.poetry-reading .poetry-eyebrow:before{content:'/';position:absolute;left:0;font-size:26px;top:-8px}
.poetry-body{font-weight:400;font-size:21px;letter-spacing:.045em;line-height:1.9}
.poetry-body p{margin-bottom:1.6em}
.poetry-meta{white-space:pre-line;font-size:12px;line-height:1.9;letter-spacing:.2em;margin-top:34px}
.poetry-reading-art{padding-top:54px;min-width:0}
.poetry-detail{display:block;width:42%;aspect-ratio:1;object-fit:cover;object-position:50% 15%;margin-bottom:16px}
.poetry-reading .poetry-art{margin-top:0}
.poetry-reading .poetry-art img{aspect-ratio:3/5;object-fit:cover}
.poetry-actions{font-family:FragmentsSongti,serif}
@media(max-width:760px){
 body.artist-portfolio .poetry-page h1{font-size:38px;letter-spacing:.08em}
 .poetry-intro,.poetry-reading{grid-template-columns:1fr;gap:26px}
 .poetry-intro .poetry-art{width:80%;justify-self:end}
 .poetry-intro .poetry-art img{min-height:0;max-height:none;height:auto;aspect-ratio:4/5}
 .poetry-intro-text{font-size:17px;padding-left:30px;margin-bottom:18px;letter-spacing:.06em}
 .poetry-eyebrow{font-size:10px;letter-spacing:.16em}
 .poetry-row strong{font-size:23px;letter-spacing:.08em}
 .poetry-row{padding:20px 0;grid-template-columns:28px minmax(0,1fr) 22px}
 .poetry-folio{gap:14px;flex-wrap:wrap;letter-spacing:.06em;font-size:11px}
 .poetry-folio span:last-child{display:none}
 .poetry-body{font-size:19px;line-height:1.9;letter-spacing:.025em}
 .poetry-reading-art{padding-top:0;width:88%;justify-self:end}
 .poetry-reading .poetry-art img{aspect-ratio:4/5}
 .poetry-detail{width:34%}
 .poetry-catalogue-foot{margin-top:18px}
}

body.artist-portfolio .poetry-page .poetry-body p{font-family:FragmentsSongti,serif;font-weight:400;font-size:inherit;line-height:inherit;letter-spacing:.07em}

/* Single composed artwork is shared by the reader, download and native file sharing. */
.poetry-artwork{margin:20px auto 16px;max-width:900px}
.poetry-artwork>img{display:block;width:100%;height:auto}
.poetry-artwork>button{display:block;margin:8px 0 0 auto}
.poetry-text-version{margin:14px 0 20px;font-size:16px}
.poetry-text-version summary{cursor:pointer;min-height:44px;padding:10px 0}
.poetry-text-version article{max-width:720px;margin:20px auto}
.poetry-art-dialog{width:96vw;max-width:1500px;height:94dvh;max-height:94dvh;padding:12px;background:#f6f3eb;border:1px solid #d1cec5;overflow:auto}
.poetry-art-dialog::backdrop{background:rgba(20,20,18,.72)}
.poetry-art-dialog>button{position:sticky;top:0;left:0;display:block;background:#f6f3eb;padding:10px 20px;z-index:1}
.poetry-art-dialog>img{display:block;width:100%;min-width:780px;height:auto}
@media(max-width:760px){.poetry-artwork{margin:12px -3vw 8px}.poetry-artwork>button{margin-right:3vw}.poetry-actions{gap:6px 20px}.poetry-actions button{font-size:15px}}

/* Catalogue: one editorial spread, with the original colour photograph. */
.poetry-intro{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:6%;align-items:stretch;margin:8px 0 26px}
.poetry-catalogue-copy{min-width:0;padding-top:8px}
body.artist-portfolio .poetry-catalogue-copy h1{font-size:clamp(40px,5.4vw,68px);letter-spacing:.16em;margin:16px 0 22px;white-space:nowrap}
.poetry-catalogue-copy .poetry-eyebrow{font-size:11px;letter-spacing:.24em;margin:0}
body.artist-portfolio .poetry-catalogue-copy .poetry-intro-text{font:400 16px/1.8 FragmentsSongti,serif;letter-spacing:.12em;margin:0 0 32px;padding-left:48px}
.poetry-intro .poetry-art{width:100%;justify-self:stretch;position:relative;min-height:440px}
.poetry-intro .poetry-art img{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:48% center;filter:none}
.poetry-catalogue-copy .poetry-row{padding:25px 0;grid-template-columns:42px minmax(0,1fr) 24px;gap:7px 18px}
.poetry-catalogue-copy .poetry-row strong{font:400 24px/1.5 FragmentsSongti,serif;letter-spacing:.13em}
.poetry-catalogue-foot{gap:28px;margin-top:0}
.poetry-catalogue-foot img{width:110px;height:110px;filter:none}
body.artist-portfolio .poetry-catalogue-foot p{font:400 11px/1.8 WorksBodoni,serif;letter-spacing:.2em;margin:0}
.poetry-catalogue-range{margin-left:auto;align-self:flex-end;font:12px/1.8 WorksBodoni,serif;letter-spacing:.18em;white-space:nowrap}
.poetry-catalogue-range:before{content:'';display:inline-block;vertical-align:middle;width:44px;border-top:1px solid #77756e;margin-right:18px}
@media(max-width:760px){
 .poetry-intro{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:5%;margin:6px 0 24px}
 .poetry-catalogue-copy{padding-top:4px}
 body.artist-portfolio .poetry-catalogue-copy h1{font-size:clamp(26px,7.1vw,48px);letter-spacing:.10em;margin:12px 0 18px}
 .poetry-catalogue-copy .poetry-eyebrow{font-size:8px;letter-spacing:.10em;line-height:1.7}
 body.artist-portfolio .poetry-catalogue-copy .poetry-intro-text{font-size:13px;line-height:1.9;letter-spacing:0;padding-left:16px;margin-bottom:24px}
 .poetry-catalogue-copy .poetry-intro-text:before{font-size:25px;top:0}
 .poetry-intro .poetry-art{width:100%;min-height:330px}
 .poetry-catalogue-copy .poetry-row{padding:18px 0;grid-template-columns:20px minmax(0,1fr) 16px;gap:5px 7px}
 .poetry-catalogue-copy .poetry-row strong{font-size:18px;letter-spacing:.04em}
 .poetry-catalogue-copy .poetry-row time{font-size:10px;letter-spacing:.12em}
 .poetry-catalogue-copy .poetry-number{font-size:16px}
 .poetry-catalogue-copy .poetry-arrow{font-size:18px}
 .poetry-catalogue-foot{gap:16px;flex-wrap:wrap}
 .poetry-catalogue-foot img{width:70px;height:78px}
 body.artist-portfolio .poetry-catalogue-foot p{font-size:9px;letter-spacing:.12em}
 .poetry-catalogue-range{font-size:10px}
 .poetry-catalogue-range:before{width:20px;margin-right:8px}
}

/* Compact fragments spacing; retain breathing room around readable lines. */
.poetry-page{padding-top:14px;padding-bottom:28px}
.poetry-mast{margin-bottom:12px;gap:18px}
.poetry-mast img{height:58px;width:130px}
.poetry-intro .poetry-art{min-height:340px}
.poetry-intro{margin-bottom:18px}
body.artist-portfolio .poetry-catalogue-copy .poetry-intro-text{margin-bottom:18px}
.poetry-catalogue-copy .poetry-row{padding:18px 0}
.poetry-folio{padding:6px 0 10px}
.poetry-artwork{margin:10px auto 6px;max-width:1000px}
.poetry-text-version{margin:4px 0 10px}
.poetry-adjacent:empty{display:none}
.poetry-adjacent{margin-top:16px}
.poetry-body{margin-top:20px}
.poetry-body p{margin-bottom:1em}
@media(max-width:760px){
 .poetry-page{padding-top:10px;padding-bottom:22px}
 .poetry-mast{margin-bottom:10px;gap:12px}
 .poetry-mast img{height:46px;width:108px}
 .poetry-intro .poetry-art{min-height:280px}
 .poetry-artwork{margin:8px -4vw 4px}
 .poetry-text-version article{margin:12px 0}
}

/* Keep reader actions together; do not affect the editor's form controls. */
.poetry-page>.poetry-actions{flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;margin:0}
.poetry-page>.poetry-actions button{white-space:nowrap;flex:0 0 auto;min-height:44px;padding:6px 0;line-height:1.4;letter-spacing:0}
.poetry-page:has(>.poetry-artwork){padding-bottom:8px}
.poetry-page:has(>.poetry-artwork) .poetry-text-version{margin-bottom:4px}
body.artist-portfolio:has(.poetry-page:not([hidden]))>footer.artist-contact{margin-top:0;padding-top:14px}
@media(max-width:760px){
 .poetry-page>.poetry-actions{gap:5px;padding-top:6px}
 .poetry-page>.poetry-actions button{font-size:clamp(11px,3vw,14px)}
 .poetry-page:has(>.poetry-artwork){padding-bottom:4px}
 body.artist-portfolio:has(.poetry-page:not([hidden]))>footer.artist-contact{padding-top:10px}
}

/* Separate controls from the scrollable artwork: never overlay the poem. */
.poetry-art-dialog{padding:0;overflow:hidden}
.poetry-art-dialog[open]{display:flex;flex-direction:column}
.poetry-art-toolbar{display:flex;align-items:center;justify-content:space-between;flex:0 0 48px;min-height:48px;padding:0 8px 0 16px;background:#f6f3eb;border-bottom:1px solid #dedad1}
.poetry-art-toolbar>span{font:14px/1.4 FragmentsSongti,serif;color:#6c6761}
.poetry-page .poetry-art-toolbar>button{display:flex;align-items:center;justify-content:center;position:static;width:44px;height:44px;min-height:44px;padding:0;font:26px/1 Arial,sans-serif;border:0;background:none}
.poetry-art-viewport{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.poetry-art-viewport>img{display:block;width:100%;min-width:780px;height:auto}
.poetry-art-viewport:focus-visible{outline:1px solid #aaa59a;outline-offset:-2px}
