#zjknit-preview.zj-profile-page { --profile-gutter:max(var(--gutter),calc((100% - 1180px) / 2)); }
#zjknit-preview .zj-profile-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:clamp(36px,7cqw,96px); align-items:start; padding:132px var(--profile-gutter) 72px; }
#zjknit-preview .zj-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:42px; font-size:12px; color:var(--quiet); }
#zjknit-preview .zj-breadcrumb a:hover { color:var(--ink); text-decoration:underline; }
#zjknit-preview .zj-profile-heading h1 { margin:0 0 24px; font:500 clamp(42px,5.5cqw,72px)/1.15 var(--sans); letter-spacing:0; animation:none; }
#zjknit-preview .zj-profile-roles { font-size:clamp(14px,1.3cqw,18px); line-height:1.8; }
#zjknit-preview .zj-profile-deck { margin-top:30px; max-width:24em; font-size:clamp(18px,1.8cqw,25px); line-height:1.85; }
#zjknit-preview .zj-profile-index { display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:44px; font-size:13px; color:var(--quiet); }
#zjknit-preview .zj-profile-index a { padding-block:8px; border-bottom:1px solid var(--brand-red); }
#zjknit-preview .zj-profile-index a:hover { color:var(--brand-red); border-color:currentColor; }
#zjknit-preview .zj-profile-figure { width:min(100%,340px); justify-self:end; }
#zjknit-preview .zj-profile-portrait { position:relative; aspect-ratio:377 / 541; overflow:hidden; border-radius:16px; background:#e8e8e8; }
#zjknit-preview .zj-profile-portrait img { position:absolute; max-width:none; width:calc(100% * 1169 / 377); height:auto; left:calc(-100% * 161 / 377); top:calc(-100% * 167 / 541); }
#zjknit-preview .zj-profile-figure figcaption { margin-top:12px; font-size:12px; color:var(--quiet); }
#zjknit-preview .zj-profile-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:clamp(32px,6cqw,80px); padding:clamp(44px,6cqw,80px) var(--profile-gutter); border-top:1px solid #dededc; }
#zjknit-preview .zj-profile-aside h2 { margin:0 0 30px; font-size:clamp(23px,2.3cqw,30px); font-weight:500; line-height:1.4; }
#zjknit-preview .zj-profile-aside dl { margin:0; font-size:13px; line-height:1.8; }
#zjknit-preview .zj-profile-aside dl > div + div { margin-top:22px; }
#zjknit-preview .zj-profile-aside dt { color:var(--ink); }
#zjknit-preview .zj-profile-aside dd { margin:3px 0 0; color:var(--quiet); }
#zjknit-preview .zj-profile-body { min-width:0; }
#zjknit-preview .zj-profile-story-copy { font-size:17px; line-height:1.95; }
#zjknit-preview .zj-profile-story-copy p + p { margin-top:24px; }
#zjknit-preview .zj-profile-story-copy .zj-profile-lead { font-size:clamp(20px,2.15cqw,28px); line-height:1.8; }
#zjknit-preview .zj-profile-story-copy[data-collapsed] { max-height:10.5em; overflow:hidden; mask-image:linear-gradient(#000 65%,transparent); }
#zjknit-preview .zj-read-more { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:48px; margin-top:28px; padding:13px 23px; border:0; border-radius:999px; background:var(--ink); color:#fff; font:400 14px/1.4 var(--sans); transition:background-color .2s ease; }
#zjknit-preview .zj-read-more:hover { background:#333; }
#zjknit-preview .zj-read-more .zj-icon { width:19px; height:19px; }
#zjknit-preview .zj-read-more[aria-expanded=true] .zj-icon { transform:rotate(180deg); }
#zjknit-preview .zj-profile-credentials { list-style:none; padding:0; margin:0 0 40px; }
#zjknit-preview .zj-profile-credentials li + li { margin-top:24px; }
#zjknit-preview .zj-profile-body h3 { margin:0 0 8px; font-size:17px; font-weight:500; line-height:1.5; }
#zjknit-preview .zj-profile-credentials p,#zjknit-preview .zj-profile-timeline p,#zjknit-preview .zj-profile-prose p { font-size:15px; line-height:1.9; color:var(--quiet); }
#zjknit-preview .zj-profile-timeline { list-style:none; margin:0; padding:0; }
#zjknit-preview .zj-profile-timeline li { display:grid; grid-template-columns:92px minmax(0,1fr); gap:20px; padding:22px 0; border-top:1px solid #dededc; }
#zjknit-preview .zj-profile-timeline time { font-size:13px; color:var(--quiet); padding-top:3px; }
#zjknit-preview .zj-profile-teaching-intro { margin-bottom:32px; font-size:clamp(22px,2.4cqw,32px); line-height:1.7; }
#zjknit-preview .zj-profile-prose h3:not(:first-child) { margin-top:30px; }
#zjknit-preview .zj-profile-books { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
#zjknit-preview .zj-profile-books img { display:block; width:100%; height:230px; object-fit:contain; margin-bottom:20px; }
#zjknit-preview .zj-profile-books article > p { font-size:14px; line-height:1.8; }
#zjknit-preview .zj-profile-books article .zj-profile-book-meta { font-size:12px; color:var(--quiet); margin-bottom:14px; }
#zjknit-preview .zj-profile-publication-note { margin-top:32px; color:var(--quiet); font-size:15px; line-height:1.9; }
#zjknit-preview .zj-profile-next,#zjknit-preview .zj-profile-end a:first-child { display:inline-flex; align-items:center; gap:14px; border-bottom:1px solid var(--brand-red); padding:8px 0; margin-top:24px; font-size:14px; }
#zjknit-preview .zj-profile-end { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; padding:0 var(--profile-gutter) 72px; }
#zjknit-preview .zj-profile-end a:last-child { font-size:13px; color:var(--quiet); }
#zjknit-preview.zj-profile-page a:focus-visible,#zjknit-preview .zj-read-more:focus-visible { outline:2px solid var(--brand-red); outline-offset:5px; }
#zjknit-preview.zj-profile-page :is(section,main)[id] { scroll-margin-top:90px; }
@container (max-width:760px) {
 #zjknit-preview .zj-profile-hero { grid-template-columns:minmax(0,1fr); padding-top:104px; gap:36px; padding-bottom:44px; }
 #zjknit-preview .zj-breadcrumb { margin-bottom:28px; }
 #zjknit-preview .zj-profile-figure { width:min(75%,300px); justify-self:start; }
 #zjknit-preview .zj-profile-index { margin-top:24px; gap:8px 20px; }
 #zjknit-preview .zj-profile-section { grid-template-columns:minmax(0,1fr); gap:24px; }
 #zjknit-preview .zj-profile-aside h2 { margin-bottom:20px; }
 #zjknit-preview .zj-profile-aside dl { display:flex; flex-wrap:wrap; gap:18px 28px; }
 #zjknit-preview .zj-profile-aside dl > div + div { margin-top:0; }
 #zjknit-preview .zj-profile-story-copy { font-size:16px; }
 #zjknit-preview .zj-profile-timeline li { grid-template-columns:80px minmax(0,1fr); gap:16px; }
 #zjknit-preview .zj-profile-books { gap:18px; }
 #zjknit-preview .zj-profile-books img { height:180px; }
 #zjknit-preview .zj-profile-books h3 { font-size:15px; }
}

#zjknit-preview .zj-profile-evidence { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-bottom:40px; }
#zjknit-preview .zj-profile-evidence figure { min-width:0; }
#zjknit-preview .zj-profile-certificate-image,#zjknit-preview .zj-profile-exchange-image { position:relative; aspect-ratio:1056 / 1398; overflow:hidden; border-radius:12px; background:#f1f1ee; }
#zjknit-preview .zj-profile-certificate-image img { position:absolute; width:calc(100% * 1169 / 1056); max-width:none; height:auto; left:calc(-100% * 26 / 1056); top:0; }
#zjknit-preview .zj-profile-exchange-image img { position:absolute; width:calc(100% * 1169 / 566); max-width:none; height:auto; left:calc(-100% * 302 / 566); top:calc(-100% * 718 / 749.31); }
#zjknit-preview .zj-profile-evidence figcaption { margin-top:12px; color:var(--quiet); font-size:12px; line-height:1.8; }
@container (max-width:510px) {
 #zjknit-preview .zj-profile-evidence { grid-template-columns:minmax(0,1fr); gap:24px; }
 #zjknit-preview .zj-profile-evidence figure { max-width:320px; }
}

#zjknit-preview .zj-profile-honour-wall { max-width:430px; margin:0 0 36px; }
#zjknit-preview .zj-profile-wall-image { position:relative; aspect-ratio:430 / 321; overflow:hidden; border-radius:12px; background:#f1f1ee; }
#zjknit-preview .zj-profile-wall-image img { position:absolute; width:calc(100% * 1169 / 430); max-width:none; height:auto; left:calc(-100% * 26 / 430); top:calc(-100% * 40 / 321); }
#zjknit-preview .zj-profile-honour-wall figcaption { margin-top:12px; color:var(--quiet); font-size:12px; line-height:1.8; }

#zjknit-preview .zj-profile-training-stack { display:grid; gap:24px; align-content:start; }
#zjknit-preview .zj-profile-training-image { position:relative; overflow:hidden; border-radius:12px; background:#f1f1ee; }
#zjknit-preview .zj-profile-training-image img { position:absolute; max-width:none; height:auto; }
#zjknit-preview .zj-profile-training-early { aspect-ratio:398 / 266; }
#zjknit-preview .zj-profile-training-early img { width:calc(100% * 1169 / 398); left:calc(-100% * 26 / 398); top:calc(-100% * 16 / 266); }
#zjknit-preview .zj-profile-training-latest { aspect-ratio:548 / 366; }
#zjknit-preview .zj-profile-training-latest img { width:calc(100% * 1169 / 548); left:calc(-100% * 311 / 548); top:calc(-100% * 1166 / 366); }
#zjknit-preview .zj-profile-training-wall { aspect-ratio:939 / 704; }
#zjknit-preview .zj-profile-training-wall img { width:calc(100% * 1169 / 939); left:calc(-100% * 26 / 939); top:calc(-100% * 321 / 704); }
#zjknit-preview .zj-profile-training-record { margin-bottom:40px; }
#zjknit-preview .zj-profile-training-record > p { margin:0 0 24px; font-size:15px; line-height:1.9; color:var(--quiet); }
#zjknit-preview :is(.zj-profile-training-record,.zj-profile-endorsement) figcaption { margin-top:12px; color:var(--quiet); font-size:12px; line-height:1.8; }
#zjknit-preview .zj-profile-endorsement { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); align-items:start; gap:28px; padding-block:32px; border-top:1px solid #dededc; margin-bottom:24px; }
#zjknit-preview .zj-profile-endorsement blockquote { margin:24px 0; }
#zjknit-preview .zj-profile-endorsement blockquote > p { font-size:clamp(23px,2.4cqw,32px); line-height:1.65; color:var(--brand-red); }
#zjknit-preview .zj-profile-endorsement cite { display:block; margin-top:14px; font-size:14px; line-height:1.7; font-style:normal; }
#zjknit-preview .zj-profile-endorsement-context { font-size:14px; line-height:1.9; color:var(--quiet); }
#zjknit-preview .zj-profile-evidence-source { margin-top:18px; font-size:12px; line-height:1.8; color:var(--quiet); }
@container (max-width:510px) {
 #zjknit-preview .zj-profile-endorsement { grid-template-columns:minmax(0,1fr); }
 #zjknit-preview .zj-profile-endorsement figure { max-width:320px; }
}

/* Certificate archive: extend the numbered list as new photographs arrive. */
#zjknit-preview .zj-honour-controls { display:flex; justify-content:flex-end; gap:8px; margin-bottom:16px; }
#zjknit-preview .zj-honour-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #d7d7d7; border-radius:50%; color:var(--ink); background:transparent; }
#zjknit-preview .zj-honour-controls button:hover:not(:disabled) { background:#f0f0ee; }
#zjknit-preview .zj-honour-controls button:disabled { opacity:.3; cursor:default; }
#zjknit-preview .zj-honour-track { position:relative; display:grid; grid-auto-flow:column; grid-auto-columns:min(78%,320px); gap:20px; margin:0; padding:0 0 16px; list-style:none; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#b6b6b2 transparent; }
#zjknit-preview .zj-honour-track > li { position:relative; min-width:0; scroll-snap-align:start; }
#zjknit-preview .zj-honour-number { position:absolute; z-index:1; top:12px; left:12px; min-width:34px; padding:5px 9px; border-radius:999px; background:#fff; color:var(--ink); font-size:13px; line-height:1.4; font-variant-numeric:tabular-nums; text-align:center; }
#zjknit-preview .zj-honour-visual { display:flex; justify-content:center; align-items:center; height:300px; padding:40px 18px 20px; background:#f3f3f1; border-radius:12px; overflow:hidden; }
#zjknit-preview .zj-honour-visual > div { width:100%; flex:none; }
#zjknit-preview .zj-honour-visual > .zj-profile-certificate-image { max-width:181px; }
#zjknit-preview .zj-honour-notes { display:grid; margin:24px 0 0; padding:0; list-style:none; }
#zjknit-preview .zj-honour-notes > li { display:grid; grid-template-columns:34px minmax(0,1fr); gap:16px; padding:20px 0; border-bottom:1px solid #dededc; }
#zjknit-preview .zj-honour-notes > li > span { font-size:13px; line-height:1.9; color:var(--quiet); font-variant-numeric:tabular-nums; }
#zjknit-preview .zj-honour-notes p { font-size:14px; line-height:1.8; color:var(--quiet); }
#zjknit-preview .zj-honour-notes .zj-honour-meta { font-size:12px; margin-bottom:8px; }
#zjknit-preview .zj-profile-student-lead { font-size:clamp(20px,2cqw,27px); line-height:1.6; }
#zjknit-preview .zj-profile-student-description { margin-top:16px; font-size:15px; line-height:1.9; color:var(--quiet); }
#zjknit-preview .zj-profile-student-gallery { display:grid; gap:28px; margin-top:28px; }
#zjknit-preview .zj-student-certificate-image { position:relative; aspect-ratio:1056 / 659; overflow:hidden; border-radius:12px; background:#f1f1ee; }
#zjknit-preview .zj-student-certificate-image img { position:absolute; max-width:none; height:auto; }
#zjknit-preview .zj-student-certificate-first img { width:calc(100% * 1169 / 1056); left:calc(-100% * 26 / 1056); top:calc(-100% * 140 / 659); }
#zjknit-preview .zj-student-certificate-second { aspect-ratio:1027 / 760; }
#zjknit-preview .zj-student-certificate-second img { width:calc(100% * 1169 / 1027); left:calc(-100% * 26 / 1027); top:calc(-100% * 2 / 760); }
#zjknit-preview .zj-profile-student-gallery figcaption { margin-top:12px; font-size:12px; line-height:1.8; color:var(--quiet); }
#zjknit-preview :is(.zj-honour-track,.zj-honour-controls button):focus-visible { outline:2px solid var(--brand-red); outline-offset:4px; }
@container (max-width:510px) {
 #zjknit-preview .zj-honour-track { grid-auto-columns:82%; gap:14px; }
 #zjknit-preview .zj-honour-visual { height:280px; }
 #zjknit-preview .zj-honour-visual > .zj-profile-certificate-image { max-width:166px; }
}

#zjknit-preview .zj-read-more { background:var(--brand-red); }
#zjknit-preview .zj-read-more:hover { background:var(--brand-red); }
#zjknit-preview :is(.zj-honour-number,.zj-honour-notes > li > span) { color:var(--brand-red); }
#zjknit-preview :is(.zj-profile-next,.zj-profile-end a:first-child,.zj-honour-controls button) .zj-icon { color:var(--brand-red); }

#zjknit-preview .zj-profile-endorsement cite { color:var(--ink); text-align:right; }

/* Standalone PDF regions avoid publishing content hidden by CSS cropping. */
#zjknit-preview :is(.zj-profile-portrait,.zj-profile-exchange-image,.zj-profile-wall-image,.zj-profile-certificate-image,.zj-profile-training-early,.zj-profile-training-wall,.zj-profile-training-latest,.zj-student-certificate-first,.zj-student-certificate-second) img { position:absolute; width:100%; height:100%; max-width:100%; left:0; top:0; object-fit:fill; }
