/* Reading spaces and free-resource access. */
.resource-hero{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding:44px 0}
.resource-hero h1,.claim-intro h1{font-size:clamp(36px,4.5vw,56px);margin:16px 0;line-height:1.2}
.resource-hero em,.claim-intro em{font-style:normal;color:var(--green)}
.resource-hero .lead,.claim-intro .lead,.chuhan-intro .lead{font-size:18px;line-height:1.9}
.resource-map-art{background:#193f34;border-radius:20px;color:var(--lime);padding:20px}
.resource-map-art svg{width:100%;display:block;max-height:280px}
.resource-map-art p{color:var(--lime);text-align:center;font-size:13px;margin:0}
.resource-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.resource-tile{border:1px solid var(--line);border-radius:20px;padding:26px;background:var(--white);display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.resource-tile h3{font-size:25px;margin:0 0 15px}
.resource-tile>p{font-size:14px}
.resource-tile>.button{margin-top:auto}
.resource-tile .small{margin:15px 0 0;font-size:12px}
.resource-feature{background:#e7edde}
.resource-tile .tile-symbol{font:44px/1.3 Georgia,"Songti SC",serif;color:var(--green);margin:25px 0}
.resource-tile .poem-symbol{color:#8b613b}
.resource-next{display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding:36px 0}
.resource-next h2{font-size:30px}
.resource-next p:last-child{margin:0}
.claim-page{padding-bottom:50px}
.claim-intro{padding:36px 0 20px}
.claim-intro .lead{margin-bottom:5px}
.claim-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:start;margin:18px 0}
.claim-form-panel{padding:32px;border:1px solid var(--line);background:var(--white);border-radius:20px}
.claim-form-panel h2,.claim-contact h2{font-size:27px}
.claim-form-panel label{display:block;margin:20px 0;font-size:14px}
.claim-form-panel input{display:block;width:100%;padding:13px;border:1px solid var(--line);border-radius:8px;background:var(--paper);margin-top:8px}
.claim-form-panel form>.button{width:100%;margin-top:10px}
.claim-form-panel .error{margin:12px 0}
.claim-contact{padding:30px;background:#e7edde;border-radius:20px}
.claim-contact .badge{margin-bottom:18px}
.claim-contact>p{font-size:14px}
.claim-contact .wechat-qr{width:235px;margin:20px 0}
.claim-contact .wechat-qr img{width:209px}
.claim-keyword{font:32px "Songti SC",serif;color:var(--green);border-left:3px solid var(--orange);padding-left:16px;margin:20px 0}
.chuhan-intro{padding:34px 0 25px}
.chuhan-intro h1{font:600 clamp(34px,4vw,52px)/1.25 "Songti SC",Georgia,serif;margin:10px 0 18px;letter-spacing:0}
.chuhan-preview{padding:35px;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;border:1px solid var(--line);border-radius:20px;background:var(--white);margin:16px 0 45px}
.chuhan-preview h2{font-size:36px}
.chuhan-preview p{max-width:550px}
.preview-seats{border-radius:18px;background:#193f34;padding:40px 30px;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;min-height:260px}
.preview-seats span{color:var(--white);border:1px solid #8da58f;padding:12px;border-radius:12px;font-size:20px}
.preview-seats .seat-main{background:var(--lime);color:var(--green)}
.preview-seats i{font-size:12px;font-style:normal;color:#bfd0b8}
.preview-seats p{width:100%;text-align:center;color:#dceba2;font-size:12px;margin:20px 0 0}
.reading-routes{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#e7edde;padding:16px 20px;border-radius:12px;color:var(--green);font-size:14px;margin:10px 0 22px}
.reading-routes button,.text-button{background:none;border:0;color:var(--green);text-decoration:underline;text-underline-offset:4px;padding:6px;font:inherit}
.explorer-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}
.explorer-tabs,.event-filter{display:flex;gap:8px;flex-wrap:wrap}
.explorer-tabs button,.event-filter button{border:1px solid var(--line);background:var(--white);border-radius:30px;padding:10px 20px;color:var(--green);font-size:14px;min-height:44px}
.explorer-tabs button[aria-pressed=true],.event-filter button[aria-pressed=true]{background:var(--green);color:var(--white);border-color:var(--green)}
.resource-search{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--muted)}
.resource-search input{border:1px solid var(--line);border-radius:30px;padding:11px 17px;max-width:250px;background:var(--white)}
.person-results{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.person-results:empty{margin:0}
.person-results .button{font-size:13px;padding:10px 14px}
.people-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}
.map-panel{background:#e5ebdf;border:1px solid var(--line);border-radius:20px;padding:20px;position:sticky;top:18px}
.map-panel>.small{margin:0;color:var(--green)}
.people-map{position:relative;aspect-ratio:1.25;min-width:0}
.people-map>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.people-map .quiet-line{stroke:#a5b5a0;stroke-width:.28;opacity:.45}
.people-map .selected-line{stroke:#58795d;stroke-width:.5}
.person-node{position:absolute;transform:translate(-50%,-50%);width:70px;min-height:55px;border:1px solid #aabca5;border-radius:16px;background:var(--paper);color:var(--green);font:600 18px "Songti SC",serif;box-shadow:0 3px 0 #b4c2a766;padding:10px 6px;transition:background .15s}
.person-node.connected{background:#f8f9eb;border-color:#728f6f}
.person-node[aria-pressed=true]{background:var(--green);color:var(--lime);border-color:var(--green)}
.map-caption{margin:0;font-size:12px;text-align:center}
.person-detail,.event-detail{background:var(--white);padding:28px;border:1px solid var(--line);border-radius:20px;min-width:0}
.person-detail h2{font:600 38px "Songti SC",serif;letter-spacing:0;margin-bottom:6px}
.person-alias{font-size:13px;margin-bottom:23px}
.person-detail h3{font-size:21px;line-height:1.6}
.person-detail p,.event-detail p{font-size:15px}
.reading-question{padding:15px 18px;background:#edf0e5;border-radius:10px;color:var(--green);font-weight:600}
.evidence{margin:23px 0;font-size:13px;overflow-wrap:anywhere}
.evidence-label{font-size:11px;letter-spacing:.1em;color:var(--green)}
.evidence blockquote{font-family:"Songti SC",serif;margin:12px 0;padding:0 0 0 16px;border-left:3px solid var(--orange);font-size:17px;line-height:1.9}
.evidence a{font-size:12px}
.person-detail .relation-heading{font-size:19px;margin-top:28px}
.relation-list details{padding:16px 0}
.relation-list summary{font-size:14px}
.relation-list .evidence{margin:16px 0}
.relation-list p{font-size:13px}
.event-filter{margin:10px 0 20px}
.event-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}
.event-card{display:flex;flex-direction:column;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);padding:18px;text-align:left;min-width:0}
.event-card[aria-pressed=true]{border-color:var(--green);background:#e7edde}
.event-number{font:italic 25px Georgia,serif;color:var(--green)}
.event-card strong{font-size:19px}
.event-card .small{color:var(--muted)}
.event-detail{max-width:850px}
.event-detail h2{font:600 32px "Songti SC",serif;letter-spacing:0}
.event-detail .button{font-size:14px;padding:10px 15px}
.resource-source{border-top:1px solid var(--line);margin-top:40px;padding:30px 0 35px}
.resource-source h2{font-size:25px}
.resource-source>p{max-width:850px;font-size:14px}
.resource-source .actions{gap:15px;font-size:13px;margin:18px 0}
.account-free-list{display:grid;gap:12px;margin-bottom:30px}
.account-free-list a{padding:20px;background:#e7edde;border:1px solid var(--line);border-radius:14px;color:var(--green);font-weight:600}
.home-resource{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;padding:30px;background:#e7edde;border-radius:20px;margin-bottom:38px}
.home-resource h2{font-size:32px;margin:14px 0}
.home-resource p:last-child{margin:0}
.admin-resource-result{margin:20px 0;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
.admin-resource-result textarea{display:block;width:100%;min-height:120px;font:14px/1.8 monospace;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px;resize:vertical}
@media(max-width:900px){.resource-hero{gap:28px}.people-layout{grid-template-columns:1fr}.map-panel{position:static}.people-map{aspect-ratio:1.8}.resource-cards{grid-template-columns:1fr}.resource-tile{display:grid;grid-template-columns:110px 1fr;gap:8px 20px}.resource-tile>.badge,.resource-tile>h3,.resource-tile>p:not(.tile-symbol),.resource-tile>.button{grid-column:2}.resource-tile .tile-symbol{grid-column:1;grid-row:1/5;align-self:center;margin:0}.claim-grid{gap:20px}.chuhan-preview{gap:22px}.preview-seats{padding:25px}}
@media(max-width:600px){.resource-hero{grid-template-columns:1fr;padding:28px 0}.resource-map-art{padding:15px}.resource-map-art svg{max-height:230px}.resource-hero .lead{font-size:16px}.resource-next{align-items:flex-start;flex-direction:column}.resource-tile{padding:23px;grid-template-columns:65px 1fr;gap:8px 15px}.resource-tile h3{font-size:23px}.resource-tile .tile-symbol{font-size:30px}.resource-tile>.button{font-size:13px;padding:11px 15px}.claim-grid{grid-template-columns:1fr}.claim-form-panel,.claim-contact{padding:24px}.claim-intro{padding:25px 0 10px}.claim-intro h1{font-size:38px}.chuhan-preview{grid-template-columns:1fr;padding:24px;margin-top:10px}.chuhan-preview h2{font-size:30px}.chuhan-intro .lead{font-size:16px}.chuhan-intro .make-facts{gap:7px}.chuhan-intro .make-facts span{font-size:12px}.preview-seats{min-height:190px}.preview-seats span{font-size:18px}.reading-routes{gap:4px 8px;padding:14px;font-size:13px}.reading-routes>span{width:100%}.explorer-toolbar{display:block}.resource-search{margin-top:18px}.resource-search input{flex:1;min-width:0;max-width:none}.map-panel{padding:16px}.people-map{aspect-ratio:1.05}.person-node{width:60px;min-height:48px;font-size:16px;border-radius:12px}.person-detail,.event-detail{padding:23px}.person-detail h2{font-size:33px}.event-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.event-card{padding:15px}.event-card strong{font-size:18px}.home-resource{grid-template-columns:1fr;padding:24px;gap:20px}.home-resource h2{font-size:27px}.chuhan-page .actions .button{font-size:13px;padding:12px 16px}}

#explorer-message:empty{display:none}.chuhan-intro{padding:24px 0 16px}.chuhan-intro h1{margin:8px 0 12px}.chuhan-intro .lead{margin-bottom:18px}.chuhan-intro .eyebrow{margin-bottom:14px}
#account-content p,.claim-form-panel{overflow-wrap:anywhere}
.claim-grid:has(#get-code[hidden]){grid-template-columns:1fr;max-width:680px}
