html{scrollbar-gutter:stable}html,body{margin:0}body{background:#f5f6f7}summary,a,button{cursor:pointer}

  @font-face {
    font-family:"Zjknit Source Han Sans";
    src:local("Source Han Sans SC Medium"), local("SourceHanSansSC-Medium");
    font-weight:400 500;
    font-display:swap;
  }
  @font-face {
    font-family:"Zjknit Source Han Sans";
    src:local("Source Han Sans SC Bold"), local("SourceHanSansSC-Bold");
    font-weight:600 700;
    font-display:swap;
  }
  #zjknit-preview {
    --paper:#fdfdfd; --ink:#151619; --accent:#42464b; --quiet:#5f636c;
    --brand-red:#b43f3d;
    --icon-stroke:1.8;
    --menu-duration:560ms;
    --menu-ease:cubic-bezier(.22,1,.36,1);
    --corner:clamp(16px,2.3cqw,26px);
    --gutter:clamp(20px,3.6cqw,64px);
    --sans:"Zjknit Source Han Sans","Source Han Sans SC",sans-serif;
    color:var(--ink); background:var(--paper);
    font:15px/1.55 var(--sans);
    container-type:inline-size;
  }
  #zjknit-preview *, #zjknit-preview *::before, #zjknit-preview *::after { box-sizing:border-box; }
  #zjknit-preview a { color:inherit; text-decoration:none; }
  #zjknit-preview h1, #zjknit-preview h2, #zjknit-preview p, #zjknit-preview figure { margin:0; }
  #zjknit-preview .zj-hero { position:relative; }
  #zjknit-preview .zj-header { position:fixed; z-index:3; inset:0 0 auto; min-height:70px; padding:10px 22px; display:flex; align-items:center; justify-content:space-between; background:var(--paper); }
  #zjknit-preview .zj-wordmark { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:46px; }
  #zjknit-preview .zj-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
  #zjknit-preview .zj-symbol-logo { position:relative; display:block; width:30px; aspect-ratio:1182 / 1573; overflow:hidden; }
  #zjknit-preview .zj-symbol-logo img { position:absolute; max-width:none; width:calc(100% * 4725 / 1182); height:auto; left:calc(-100% * 1771 / 1182); top:calc(-100% * 1576 / 1573); }
  #zjknit-preview .zj-filter-defs { position:absolute; pointer-events:none; }
  #zjknit-preview .zj-brand-pigment { flood-color:var(--brand-red); }
  #zjknit-preview .zj-hero-logo img { filter:url("#zj-brand-ink"); }
  #zjknit-preview .zj-intro h1 { line-height:0; }
  /* The signature sits to the left of the main lettering: align the lettering optically. */
  #zjknit-preview .zj-hero-logo { position:relative; display:block; width:clamp(260px,48cqw,720px); max-width:calc(100% / 1.23); aspect-ratio:3216 / 641; overflow:hidden; margin-inline:auto; transform:translateX(-11.5%); }
  #zjknit-preview .zj-hero-logo img { position:absolute; max-width:none; width:calc(100% * 3508 / 3216); height:auto; left:calc(-100% * 182 / 3216); top:calc(-100% * 146 / 641); }
  #zjknit-preview .zj-menu-button { width:46px; height:46px; display:grid; place-content:center; gap:5px; border:0; background:transparent; color:inherit; }
  #zjknit-preview .zj-menu-icon path { transform-origin:12px 12px; transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .18s ease; }
  #zjknit-preview .zj-menu-icon path:first-child { transform:translateY(-6px); }
  #zjknit-preview .zj-menu-icon path:last-child { transform:translateY(6px); }
  #zjknit-preview .zj-intro { position:relative; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(3,minmax(0,1fr)); align-items:center; gap:clamp(32px,4cqw,64px); min-height:90svh; width:100%; padding:0 var(--gutter); text-align:center; }
  #zjknit-preview .zj-hero-heading { grid-column:1; grid-row:2; min-width:0; }
  #zjknit-preview .zj-brand-copy { grid-column:1; grid-row:3; display:grid; justify-items:center; gap:8px; align-self:center; padding-bottom:32px; }
  #zjknit-preview .zj-intro .zj-brand-copy p { margin:0; }
  #zjknit-preview .zj-intro .zj-brand-copy .zj-brand-meta { font-size:11px; }
  #zjknit-preview h1 { font:500 clamp(54px,8.7cqw,122px)/1.12 var(--sans); letter-spacing:.045em; animation:zj-rise .9s cubic-bezier(.2,.8,.2,1) both; }
  #zjknit-preview .zj-intro p { margin-top:24px; font-size:clamp(13px,1.65cqw,16px); letter-spacing:.06em; color:var(--brand-red); animation:zj-rise .85s .1s ease both; }
  #zjknit-preview .zj-intro .zj-school-description { margin-top:7px; color:#737373; }
  #zjknit-preview .zj-intro .zj-brand-meta { margin-top:14px; font-size:12px; font-weight:400; line-height:1.5; letter-spacing:.12em; color:#737373; }
  #zjknit-preview .zj-down { position:absolute; left:50%; bottom:20px; transform:translateX(-50%); display:inline-grid; place-items:center; width:44px; height:44px; margin-top:20px; font-size:22px; }
  #zjknit-preview .zj-down .zj-icon { transition:transform .35s ease; }
  #zjknit-preview .zj-down:is(:hover,:focus-visible) .zj-icon { transform:translateY(5px); }
  /* The sheet edge replaces the header divider and travels with the reveal. */
  #zjknit-preview .zj-menu-surface { position:fixed; inset:70px 0 0; z-index:1; background:var(--paper); pointer-events:none; transform:translateY(-100%); transition:transform var(--menu-duration) var(--menu-ease); }
  #zjknit-preview .zj-menu-surface::after { content:""; position:absolute; inset:auto 0 -1px; height:1px; background:#dedede; }
  #zjknit-preview .zj-hero[data-open] .zj-menu-surface { transform:translateY(0); }
  #zjknit-preview .zj-menu { position:fixed; inset:70px 0 0; z-index:2; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-content:center; align-items:end; gap:clamp(32px,8cqw,120px); padding:clamp(28px,5cqw,72px) var(--chapter-gutter); background:transparent; color:var(--ink); overflow:auto; overscroll-behavior:contain; visibility:hidden; clip-path:inset(0 0 100%); transition:clip-path var(--menu-duration) var(--menu-ease),visibility 0s var(--menu-duration); }
  #zjknit-preview .zj-menu-links { display:grid; }
  #zjknit-preview .zj-menu-links a { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:68px; padding:14px 4px; border-bottom:1px solid #dedede; font:500 clamp(23px,3cqw,42px)/1.35 var(--sans); transition:color .18s ease; }
  #zjknit-preview .zj-menu-links a:first-child { border-top:1px solid #dedede; }
  #zjknit-preview .zj-menu-links a span { color:inherit; }
  #zjknit-preview .zj-menu-links .zj-icon { flex:none; width:26px; height:26px; transition:transform .22s ease; }
  #zjknit-preview .zj-menu-links a:hover { color:var(--brand-red); }
  #zjknit-preview .zj-menu-links a:hover .zj-icon { transform:translateX(4px); }
  #zjknit-preview .zj-menu-note { padding-bottom:16px; }
  #zjknit-preview .zj-menu-note p { font-size:clamp(16px,1.7cqw,23px); line-height:1.8; }
  #zjknit-preview .zj-menu-note > span { display:block; margin-top:24px; font-size:12px; color:var(--quiet); }
  #zjknit-preview .zj-hero[data-open] .zj-menu { visibility:visible; clip-path:inset(0); transition-delay:0s; }
  #zjknit-preview .zj-menu-button { border-radius:50%; transition:background-color .18s ease; }
  #zjknit-preview .zj-menu-button:hover { background:#efefef; }
  #zjknit-preview :is(.zj-menu-button,.zj-menu a,.zj-footer a):focus-visible { outline:2px solid var(--brand-red); outline-offset:5px; }
  @container (max-width:760px) {
    #zjknit-preview .zj-menu { grid-template-columns:minmax(0,1fr); align-content:start; gap:36px; }
    #zjknit-preview .zj-menu-links a { min-height:60px; }
    #zjknit-preview .zj-menu-note { padding-bottom:16px; }
    #zjknit-preview .zj-menu-note p { font-size:15px; }
  }

  #zjknit-preview .zj-hero[data-open] .zj-menu-icon path:first-child { transform:rotate(45deg); }
  #zjknit-preview .zj-hero[data-open] .zj-menu-icon path:nth-child(2) { opacity:0; }
  #zjknit-preview .zj-hero[data-open] .zj-menu-icon path:last-child { transform:rotate(-45deg); }
  #zjknit-preview .zj-study { scroll-margin-top:10px; }
  #zjknit-preview .zj-image {
    position:relative; overflow:hidden; aspect-ratio:2.8;
    background:var(--paper);
  }
  #zjknit-preview .zj-focus-rail {
    position:absolute; inset:0 0 38px; overflow:hidden;
    --card-width:min(36cqw,520px); --card-gap:clamp(10px,1.4cqw,22px);
    mask-image:linear-gradient(90deg,transparent,#000 13%,#000 87%,transparent);
  }
  #zjknit-preview .zj-focus-card {
    position:absolute; top:6%; left:50%; width:var(--card-width); height:89%; padding:0;
    overflow:hidden; border:0; border-radius:var(--corner); background:#ece2e6; color:#fff;
    transform:translateX(calc(-50% + var(--offset,0) * (var(--card-width) + var(--card-gap))));
    transition:transform .7s cubic-bezier(.22,.8,.2,1),opacity .5s ease; opacity:.5;
  }
  #zjknit-preview .zj-focus-card.is-current { opacity:1; cursor:default; }
  #zjknit-preview .zj-focus-card.is-away { opacity:0; pointer-events:none; }
  #zjknit-preview .zj-focus-card.is-jumping { transition:none; }
  #zjknit-preview .zj-focus-card:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
  #zjknit-preview .zj-focus-card img { display:block; width:100%; height:100%; object-fit:cover; }
  #zjknit-preview .zj-focus-detail { position:absolute; inset:0; opacity:0; transform:scale(1.1); transition:opacity .65s ease; }
  #zjknit-preview .zj-focus-card.is-current.show-detail .zj-focus-detail { opacity:1; }
  #zjknit-preview .zj-focus-label {
    position:absolute; inset:0 0 auto; text-align:left; padding:clamp(12px,1.8cqw,28px);
    background:linear-gradient(#0009,transparent); font:500 clamp(14px,1.8cqw,25px)/1.35 var(--sans);
  }
  #zjknit-preview .zj-focus-controls { position:absolute; bottom:5px; left:50%; transform:translateX(-50%); }
  #zjknit-preview .zj-focus-dots { display:flex; align-items:center; justify-content:center; }
  #zjknit-preview .zj-focus-dots button { flex:none; height:33px; min-width:0; border:0; padding:0 4px; background:transparent; display:grid; place-items:center; }
  #zjknit-preview .zj-focus-dots span { position:relative; width:7px; height:7px; overflow:hidden; border-radius:100px; background:#aaa; transition:width .25s ease; }
  #zjknit-preview .zj-focus-dots button[aria-current=true] span { width:19px; background:#ddd; }
  #zjknit-preview .zj-focus-dots button[aria-current=true] span::after { content:""; position:absolute; inset:0; background:#1c1c1c; transform:scaleX(var(--meter,0)); transform-origin:left; }
  #zjknit-preview .zj-icon { display:block; width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:var(--icon-stroke); stroke-linecap:round; stroke-linejoin:round; }
  #zjknit-preview .zj-icon :is(path,line,polyline,rect,circle) { vector-effect:non-scaling-stroke; }
  #zjknit-preview .zj-rsn-split a:has(.zj-icon) { display:inline-flex; align-items:center; gap:6px; }
  #zjknit-preview .zj-icon-action { display:inline-grid; place-items:center; width:44px; height:44px; border:0; padding:0; background:none; color:inherit; }
  #zjknit-preview .zj-feature {
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);
    align-items:start; gap:clamp(22px,5cqw,60px); padding:clamp(30px,5cqw,62px) 0;
    margin-inline:6%; border-bottom:1px solid #cdced1; scroll-margin-top:14px;
  }
  #zjknit-preview .zj-feature:last-of-type { border-bottom:0; }
  #zjknit-preview .zj-feature-heading { display:grid; justify-items:start; align-content:start; gap:12px; }
  #zjknit-preview .zj-feature-number { padding:4px 9px; border-radius:20px; background:var(--section-color); font:500 12px/1.4 var(--sans); }
  #zjknit-preview .zj-feature h2 { font:500 clamp(30px,4.7cqw,49px)/1.15 var(--sans); }
  #zjknit-preview .zj-feature-body { display:grid; align-content:start; gap:16px; color:var(--quiet); }
  #zjknit-preview .zj-lead { font-size:clamp(18px,2.55cqw,27px); line-height:1.45; color:var(--ink); }
  #zjknit-preview .zj-feature [id] { scroll-margin-top:22px; }
  #zjknit-preview .zj-timeline, #zjknit-preview .zj-book-list, #zjknit-preview .zj-footer ul { margin:0; padding:0; list-style:none; }
  #zjknit-preview .zj-timeline div { display:grid; grid-template-columns:65px minmax(0,1fr); gap:14px; padding:12px 0; border-top:1px solid #cdced1; }
  #zjknit-preview .zj-timeline dt { color:var(--ink); font-weight:600; }
  #zjknit-preview .zj-timeline dd { margin:0; }
  #zjknit-preview .zj-programs, #zjknit-preview .zj-band {
    display:block; margin:0; padding:clamp(48px,7cqw,108px) max(var(--gutter),calc((100% - 1680px) / 2)); border:0;
  }
  #zjknit-preview .zj-programs .zj-feature-heading { gap:14px; margin-bottom:clamp(22px,4.8cqw,74px); }
  #zjknit-preview .zj-programs h2 { font-family:inherit; font-size:clamp(16px,1.45cqw,22px); font-weight:400; color:var(--quiet); }
  #zjknit-preview .zj-programs .zj-feature-heading > p { font:500 clamp(28px,4.2cqw,62px)/1.22 var(--sans); }
  #zjknit-preview .zj-programs .zj-feature-number { display:none; }
  #zjknit-preview .zj-school-band, #zjknit-preview .zj-band { background:var(--section-color); }
  #zjknit-preview .zj-school-band { padding-inline:max(0px,calc((100% - 1780px) / 2)); }
  #zjknit-preview .zj-school-band .zj-feature { border-color:rgb(34 24 30 / 20%); }
  #zjknit-preview .zj-school-band .zj-timeline div { border-color:rgb(34 24 30 / 20%); }
  #zjknit-preview .zj-school-band .zj-feature-body { color:#393034; }
  #zjknit-preview .zj-band { margin:clamp(12px,2cqw,28px) 0; }
  #zjknit-preview .zj-band .zj-feature-heading { gap:8px; margin-bottom:clamp(25px,4.5cqw,55px); }
  #zjknit-preview :is(.zj-band,#zj-about) .zj-feature-number { padding:0; background:none; }
  #zjknit-preview .zj-band h2 { font-family:inherit; font-size:clamp(27px,3.65cqw,43px); }
  #zjknit-preview .zj-book-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:12px; }
  #zjknit-preview .zj-book-list li { display:grid; align-content:start; gap:7px; min-width:0; min-height:clamp(132px,16cqw,230px); padding:clamp(15px,2.3cqw,28px); background:#fff; border-radius:calc(var(--corner) * .72); }
  #zjknit-preview .zj-book-list img { display:block; width:100%; height:auto; aspect-ratio:2.25; object-fit:cover; border-radius:calc(var(--corner) * .44); margin-bottom:7px; }
  #zjknit-preview .zj-book-category { font-size:12px; }
  #zjknit-preview .zj-book-list h3 { margin:0; color:var(--ink); font-size:clamp(17px,2.2cqw,23px); font-weight:500; line-height:1.35; }
  #zjknit-preview .zj-footer { border-radius:var(--corner) var(--corner) 0 0; background:#292929; color:#f3f2f1; padding:clamp(48px,8cqw,100px) 9% clamp(54px,9cqw,110px); }
  #zjknit-preview .zj-footer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(16px,3cqw,40px); }
  #zjknit-preview .zj-footer-group { min-width:0; font-size:clamp(13px,1.55cqw,17px); line-height:1.65; }
  #zjknit-preview .zj-footer h2 { margin-bottom:22px; color:#a9a9a9; font-size:clamp(12px,1.32cqw,15px); font-weight:500; letter-spacing:.045em; }
  #zjknit-preview .zj-footer li + li { margin-top:5px; }
  #zjknit-preview .zj-footer a:not(.zj-icon-action) { display:inline-block; }
  #zjknit-preview .zj-footer a:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:4px; }
  @container (max-width:660px) {
    #zjknit-preview .zj-footer { padding-inline:6%; }
  }
  #zjknit-preview [data-color="neutral"] { --section-color:#e6e5e3; }
  #zjknit-preview [data-color="yellow"] { --section-color:#faee64; }
  #zjknit-preview [data-color="pink"] { --section-color:#f3a0bf; }
  #zjknit-preview [data-color="amber"] { --section-color:#f9b43e; }
  @keyframes zj-rise { from { opacity:0; transform:translateY(13px); } to { opacity:1; transform:translateY(0); } }
  @media (max-height:560px) and (min-width:600px) {
    #zjknit-preview .zj-intro { min-height:560px; gap:24px; }
  }
  @container (max-width:510px) {
    #zjknit-preview .zj-intro { gap:24px; padding-inline:20px; }
    #zjknit-preview .zj-brand-copy { padding-bottom:40px; }
    #zjknit-preview .zj-header { padding-inline:14px; }
    #zjknit-preview .zj-image { aspect-ratio:1.35; }
    #zjknit-preview .zj-focus-rail { --card-width:71cqw; }
    #zjknit-preview .zj-feature { grid-template-columns:1fr; }
    #zjknit-preview .zj-book-list { grid-template-columns:1fr; }
    #zjknit-preview .zj-course-list summary { grid-template-columns:minmax(0,1fr) 26px; gap:4px 10px; }
    #zjknit-preview .zj-program-description { grid-area:2 / 1; }
    #zjknit-preview .zj-program-arrow { grid-area:1 / 2 / 3; opacity:.65; transform:none; }
    #zjknit-preview .zj-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    #zjknit-preview .zj-footer h2 { margin-bottom:12px; }
  }
  @media (prefers-reduced-motion:reduce) {
    #zjknit-preview *, #zjknit-preview *::before, #zjknit-preview *::after { animation:none !important; transition:none !important; }
  }

  #zjknit-preview [data-zj-detail][hidden] { display:none; }


  #zjknit-preview { --chapter-gutter:max(var(--gutter),calc((100% - 1440px) / 2)); }
  #zjknit-preview .zj-intro p:not(.zj-school-description):not(.zj-brand-meta) { color:var(--brand-red); }
  #zjknit-preview :is(.zj-rsn-split,#zj-courses,#zj-student-work,#zj-books) {
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(0,3fr);
    gap:clamp(22px,2.4cqw,42px);
    padding:clamp(46px,7cqw,106px) var(--chapter-gutter);
    margin:0;
    align-items:start;
    border-top:1px solid #dededc;
  }
  #zjknit-preview .zj-rsn-split > div { align-self:center; display:grid; gap:clamp(14px,1.7cqw,26px); justify-items:start; }
  #zjknit-preview .zj-rsn-split h2,
  #zjknit-preview #zj-courses h2,
  #zjknit-preview #zj-student-work h2,
  #zjknit-preview #zj-books h2 {
    font:500 clamp(32px,4.2cqw,64px)/1.16 var(--sans);
    color:var(--ink);
  }
  #zjknit-preview .zj-rsn-split p { max-width:28em; font-size:clamp(15px,1.35cqw,19px); line-height:1.75; color:var(--quiet); }
  #zjknit-preview .zj-rsn-split a { border-bottom:1px solid var(--brand-red); }
  #zjknit-preview .zj-rsn-split img {
    display:block; width:100%; aspect-ratio:1.65; object-fit:cover; border-radius:var(--corner);
  }
  #zjknit-preview #zj-courses .zj-feature-heading,
  #zjknit-preview #zj-books .zj-feature-heading { margin:0; }
  #zjknit-preview #zj-courses .zj-feature-heading p { font:400 clamp(15px,1.35cqw,19px)/1.65 var(--sans); color:var(--quiet); }
  #zjknit-preview #zj-courses .zj-program-name { font-size:clamp(17px,1.8cqw,26px); }
  #zjknit-preview #zj-courses .zj-program-description { grid-area:2 / 1; font-size:clamp(13px,1.15cqw,16px); }
  #zjknit-preview #zj-courses .zj-program-arrow { grid-area:1 / 2 / 3; opacity:.65; transform:none; }
  #zjknit-preview .zj-work-list {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,1.5cqw,24px);
    margin:0; padding:0; list-style:none;
  }
  #zjknit-preview .zj-work-list li { display:grid; align-content:start; gap:12px; }
  #zjknit-preview .zj-work-list img {
    display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; border-radius:12px;
  }
  #zjknit-preview .zj-work-list h3 {
    margin:0 0 4px; font:600 clamp(15px,1.5cqw,20px)/1.4 var(--sans);
  }
  #zjknit-preview .zj-work-list p { font-size:clamp(13px,1.15cqw,15px); line-height:1.55; color:var(--quiet); }
  @container (max-width:900px) {
    #zjknit-preview #zj-student-work:has(> .zj-work-body) { grid-template-columns:minmax(0,1fr); }
  }
  @container (max-width:540px) {
    #zjknit-preview .zj-work-list { grid-template-columns:minmax(0,1fr); gap:16px; }
    #zjknit-preview .zj-work-list li { grid-template-columns:minmax(0,108px) minmax(0,1fr); align-items:center; }
  }
  #zjknit-preview #zj-books { padding-block:clamp(36px,5cqw,72px); background:var(--paper); }
  #zjknit-preview #zj-books h2 { font-size:clamp(27px,3cqw,42px); }
  #zjknit-preview #zj-books .zj-book-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  #zjknit-preview #zj-books .zj-book-list li { padding:0; border:0; border-radius:0; min-height:0; background:transparent; gap:8px; }
  #zjknit-preview #zj-books .zj-book-cover { position:relative; aspect-ratio:1; background:#fff; border-radius:16px; overflow:hidden; margin-bottom:12px; }
  #zjknit-preview #zj-books .zj-book-cover img { position:absolute; inset:9%; display:block; width:82%; height:82%; max-height:100%; aspect-ratio:auto; object-fit:contain; margin:0; border-radius:0; }
  /* Original Russian cover images have no surrounding white margin. */
  #zjknit-preview #zj-books .zj-foreign-list .zj-book-cover img { inset:12%; width:76%; height:76%; }
  #zjknit-preview #zj-books .zj-book-list h3 { font-size:clamp(18px,1.7cqw,24px); line-height:1.4; }
  #zjknit-preview #zj-books .zj-book-subtitle { font-size:clamp(14px,1.15cqw,16px); line-height:1.5; color:var(--ink); }
  #zjknit-preview #zj-books :is(.zj-book-list h3,.zj-foreign-list h4) { color:var(--ink); }
  #zjknit-preview #zj-books .zj-book-publisher { font-size:14px; line-height:1.7; font-weight:500; color:var(--ink); margin-top:4px; }
  #zjknit-preview #zj-books .zj-book-credit { font-size:13px; line-height:1.6; color:var(--quiet); }
  #zjknit-preview #zj-books .zj-book-achievement { font-size:14px; line-height:1.7; font-weight:500; color:var(--ink); margin-top:4px; }
  #zjknit-preview #zj-books .zj-book-description { font-size:14px; line-height:1.75; color:var(--quiet); max-width:26em; margin-top:4px; }
  #zjknit-preview #zj-books .zj-foreign-books { margin-top:clamp(32px,4cqw,56px); padding-top:24px; border-top:1px solid #dededc; }
  #zjknit-preview #zj-books .zj-foreign-books > h3 { margin:0 0 24px; font-size:18px; font-weight:500; color:var(--ink); }
  #zjknit-preview #zj-books .zj-foreign-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:0; padding:0; list-style:none; }
  #zjknit-preview #zj-books .zj-foreign-list li { display:grid; align-content:start; min-width:0; gap:8px; }
  #zjknit-preview #zj-books .zj-foreign-list h4 { margin:0; font-size:clamp(18px,1.7cqw,24px); line-height:1.4; font-weight:500; overflow-wrap:anywhere; }
  @container (max-width:510px) {
    #zjknit-preview #zj-books .zj-foreign-list { grid-template-columns:minmax(0,1fr); }
  }
  #zjknit-preview #zj-books .zj-other-books { margin-top:clamp(32px,4cqw,56px); padding-top:20px; border-top:1px solid #dededc; }
  #zjknit-preview #zj-books .zj-other-books h3 { margin:0 0 12px; font-size:14px; font-weight:500; color:var(--quiet); }
  #zjknit-preview #zj-books .zj-other-books ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
  #zjknit-preview #zj-books .zj-other-books li { display:flex; flex-wrap:wrap; gap:4px 16px; justify-content:space-between; font-size:14px; line-height:1.65; }
  #zjknit-preview #zj-books .zj-other-books li span + span { color:var(--quiet); font-size:13px; }
  @container (max-width:760px) {
    #zjknit-preview :is(.zj-rsn-split,#zj-courses,#zj-student-work,#zj-books) { grid-template-columns:minmax(0,1fr); }
  }
  @container (max-width:510px) {
    #zjknit-preview #zj-books .zj-book-list { grid-template-columns:minmax(0,1fr); }
  }
  #zjknit-preview .zj-footer { padding:clamp(40px,5cqw,72px) var(--chapter-gutter) 24px; }
  #zjknit-preview .zj-footer-grid { grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); gap:clamp(24px,4cqw,60px); }
  #zjknit-preview .zj-footer-group { font-size:15px; line-height:1.8; }
  #zjknit-preview .zj-footer h2 { margin:0 0 20px; color:#b5b5b5; font-size:13px; font-weight:400; letter-spacing:0; }
  #zjknit-preview .zj-footer-brand h2 { color:#fff; font-size:25px; font-weight:500; margin-bottom:18px; }
  #zjknit-preview .zj-footer-brand > p { font-size:14px; line-height:1.9; }
  #zjknit-preview .zj-footer-brand .zj-footer-location { margin-top:22px; color:#b5b5b5; font-size:12px; }
  #zjknit-preview .zj-footer-brand .zj-footer-since { margin-top:4px; color:#b5b5b5; font-size:11px; }
  #zjknit-preview .zj-footer li + li { margin-top:10px; }
  #zjknit-preview .zj-footer-caption { color:#b5b5b5; font-size:12px; margin-top:4px; }
  #zjknit-preview .zj-footer-account { margin-top:18px; font-size:14px; }
  #zjknit-preview .zj-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:clamp(36px,5cqw,72px); padding-top:20px; border-top:1px solid #505050; color:#b5b5b5; }
  #zjknit-preview .zj-footer-bottom > p { font-size:11px; }
  #zjknit-preview .zj-footer-bottom .zj-icon-action { color:#fff; border:1px solid #626262; border-radius:50%; width:44px; height:44px; transition:background-color .18s ease; }
  #zjknit-preview .zj-footer-bottom .zj-icon-action:hover { background:#404040; }
  @container (max-width:760px) {
    #zjknit-preview .zj-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
    #zjknit-preview .zj-footer-brand { grid-column:1 / -1; }
    #zjknit-preview .zj-footer h2 { margin-bottom:12px; }
  }
  #zjknit-preview :is(section,figure,[data-zj-detail])[id] { scroll-margin-top:86px; }

#zjknit-preview .zj-classroom-address { font-style:normal; font-size:14px; line-height:1.8; color:var(--quiet); }
#zjknit-preview .zj-footer-address { font-style:normal; font-size:12px; line-height:1.8; color:#b5b5b5; margin-top:6px; }

/* Small brand accents accompany the existing dark course hover treatment. */
#zjknit-preview :is(.zj-down,.zj-rsn-split a,.zj-menu-links a) > .zj-icon { color:var(--brand-red); }
#zjknit-preview #zj-courses .zj-program-arrow { color:var(--brand-red); opacity:1; }

#zjknit-preview a { text-decoration-color:var(--brand-red); }

#zjknit-preview .zj-menu-links a .zj-person-name { color:var(--ink); }

/* Homepage links to the full student gallery using the existing underline treatment. */
#zjknit-preview .zj-works-more { display:inline-flex; align-items:center; gap:14px; margin-top:22px; padding:8px 0; border-bottom:1px solid var(--brand-red); font-size:14px; }
#zjknit-preview .zj-works-more .zj-icon { color:var(--brand-red); transition:transform .2s ease; }
#zjknit-preview .zj-works-more:hover .zj-icon { transform:translateX(3px); }
#zjknit-preview .zj-works-more:focus-visible { outline:2px solid var(--brand-red); outline-offset:5px; }
@media (prefers-reduced-motion:reduce) { #zjknit-preview .zj-works-more .zj-icon { transition:none; } }

/* Continue from the work samples to the full gallery. */
#zjknit-preview .zj-work-body { min-width:0; }
#zjknit-preview .zj-work-body .zj-works-more { display:flex; width:max-content; margin:24px 0 0 auto; }

/* Shared social entry points keep platform marks local and links explicit. */
#zjknit-preview .zj-social-links li + li { margin-top:10px; }
#zjknit-preview .zj-social-links li a { display:flex; align-items:center; gap:12px; min-height:44px; width:fit-content; max-width:100%; }
#zjknit-preview .zj-social-platform { width:22px; height:22px; flex:none; }
#zjknit-preview .zj-social-arrow { width:18px; height:18px; flex:none; }
#zjknit-preview .zj-social-links a span { padding:3px 0; }

/* Footer: common heading rhythm, consistent link rows, explicit social alignment. */
#zjknit-preview .zj-footer { padding-top:clamp(44px,4.5cqw,64px); }
#zjknit-preview .zj-footer-grid { grid-template-columns:minmax(260px,1.8fr) minmax(100px,.75fr) minmax(130px,.9fr) minmax(170px,1fr); gap:36px clamp(24px,3.4cqw,48px); align-items:start; }
#zjknit-preview .zj-footer h2 { margin-bottom:16px; line-height:1.5; }
#zjknit-preview .zj-footer-brand { max-width:340px; }
#zjknit-preview .zj-footer-brand h2 { margin-bottom:18px; line-height:1.2; }
#zjknit-preview .zj-footer .zj-footer-group:not(.zj-footer-brand) ul { display:grid; gap:2px; }
#zjknit-preview .zj-footer .zj-footer-group li + li { margin-top:0; }
#zjknit-preview .zj-footer .zj-footer-group:not(.zj-footer-brand) li a { display:flex; align-items:center; min-height:44px; padding:4px 0; line-height:1.5; }
#zjknit-preview .zj-footer .zj-footer-group.zj-social-links li a { display:grid; grid-template-columns:22px minmax(0,1fr) 18px; gap:10px; width:100%; max-width:200px; }
#zjknit-preview .zj-footer .zj-social-links svg { display:block; }
#zjknit-preview .zj-footer .zj-social-links a span { width:fit-content; padding:3px 0; }
#zjknit-preview .zj-footer-bottom { margin-top:44px; padding-top:18px; }
@container (max-width:960px) {
 #zjknit-preview .zj-footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 24px; }
 #zjknit-preview .zj-footer-brand { grid-column:1 / -1; max-width:440px; }
}
@container (max-width:560px) {
 #zjknit-preview .zj-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px; }
 #zjknit-preview .zj-footer .zj-social-links { grid-column:1 / -1; padding-top:24px; border-top:1px solid #505050; }
 #zjknit-preview .zj-footer .zj-footer-group.zj-social-links li a { max-width:none; }
 #zjknit-preview .zj-footer-bottom { margin-top:28px; }
}

/* Use the same text underline as the other footer navigation links. */
#zjknit-preview .zj-footer .zj-social-links a:is(:hover,:focus-visible) span { text-decoration:underline; text-decoration-color:currentColor; text-underline-offset:4px; }
