/* Home: Editorial & Publishing section. Print-led, deliberately unlike the navy presentation cards. */
@font-face{font-family:"Serif4";src:url(fonts/serif4-latin.woff2) format("woff2-variations");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Serif4";src:url(fonts/serif4-latin-ext.woff2) format("woff2-variations");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Serif4";src:url(fonts/serif4-cyrillic.woff2) format("woff2-variations");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0100-02AF,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-cyrillic-400-normal.woff2) format("woff2");font-weight:400 500;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
.pub{--p-paper:#F1ECE2;--p-sheet:#FBF9F4;--p-ink:#1C1D21;--p-ink2:#45474D;--p-ink3:#7C7A73;--p-rule:rgba(28,29,33,.16);--p-serif:"Serif4","Source Serif 4",Georgia,serif;--p-mono:"Plex Mono","IBM Plex Mono",ui-monospace,Menlo,monospace;
  position:relative;background:var(--p-paper);color:var(--p-ink2);padding:clamp(88px,10vw,160px) 0;overflow:hidden;isolation:isolate}
.pub::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.55;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .22 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E")}
.pub::after{content:"";position:absolute;top:0;bottom:0;right:0;width:clamp(10px,1.2vw,18px);background:linear-gradient(180deg,#F5A21C 0 25%,#5BB8AE 25% 50%,#3EA94B 50% 75%,#1C86C8 75%)}
.pub ::selection{background:var(--p-ink);color:var(--p-paper)}
.pub .p-mono{font-family:var(--p-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--p-ink3);line-height:1.5}
.pub .p-slug{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(28,29,33,.32);padding-top:12px}
.pub .p-h{margin-top:clamp(48px,6vw,96px)}
.pub .p-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);gap:clamp(32px,5vw,88px);align-items:end;margin-top:clamp(32px,4vw,56px)}
.pub h2{font-family:var(--p-serif);font-weight:600;font-size:clamp(42px,8.4vw,140px);line-height:.9;letter-spacing:-.032em;text-transform:uppercase;color:var(--p-ink);font-variation-settings:"opsz" 36}
.pub .p-not{font-family:var(--p-serif);font-size:clamp(20px,1.8vw,28px);line-height:1.25;color:var(--p-ink);letter-spacing:-.01em;padding-bottom:.4em}
.pub .p-not span{display:block}
.pub .p-not span:nth-child(-n+2){color:var(--p-ink3)}
.pub .p-disc{padding-bottom:.6em}
.pub .p-list{margin-top:clamp(56px,7vw,112px);border-top:1px solid var(--p-ink)}
.pub .p-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,.9fr) 40px;gap:clamp(20px,3vw,56px);align-items:center;padding:clamp(24px,3vw,40px) 0;border-bottom:1px solid var(--p-rule);color:inherit;transition:background-color .4s var(--e)}
.pub .p-row:hover{background:rgba(255,255,255,.35)}
.pub .p-books{display:flex;gap:clamp(10px,1.2vw,18px);align-items:flex-end}
.pub .p-books img{width:clamp(80px,9vw,140px);height:auto;box-shadow:0 1px 0 rgba(0,0,0,.06),0 22px 40px -22px rgba(28,29,33,.45),inset 0 0 0 1px rgba(0,0,0,.04);transform:rotate(0);transition:transform .7s var(--e)}
.pub .p-row:hover .p-books img:first-child{transform:translateY(-6px) rotate(-1.5deg)}
.pub .p-row:hover .p-books img:last-child{transform:translateY(-3px) rotate(1deg)}
.pub .p-t b{display:block;font-family:var(--p-serif);font-weight:500;font-size:clamp(26px,2.6vw,40px);line-height:1.02;letter-spacing:-.02em;color:var(--p-ink)}
.pub .p-t .x{display:block;margin-top:10px;font-family:var(--p-serif);font-size:clamp(17px,1.4vw,21px);color:var(--p-ink2)}
.pub .p-t .p-mono{display:block;margin-top:14px}
.pub .p-n{font-family:var(--p-serif);font-weight:600;font-size:clamp(44px,5.4vw,92px);line-height:.9;letter-spacing:-.045em;color:var(--p-ink);font-variant-numeric:lining-nums;font-variation-settings:"opsz" 60}
.pub .p-n small{display:block;font-family:var(--p-mono);font-weight:400;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--p-ink3);margin-top:12px}
.pub .p-ar{font-size:24px;color:var(--p-ink);justify-self:end;transition:transform .4s var(--e)}
.pub .p-row:hover .p-ar{transform:translateX(6px)}
.pub .p-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(32px,4vw,56px);flex-wrap:wrap}
.pub .p-cta{display:inline-flex;align-items:center;gap:12px;padding:16px 24px;background:var(--p-ink);color:var(--p-paper);font-size:16px;font-weight:500;border-radius:2px;transition:background-color .3s var(--e)}
.pub .p-cta:hover{background:#16233B}
.pub .p-cta i{transition:transform .4s var(--e)}.pub .p-cta:hover i{transform:translateX(4px)}
@media (max-width:1024px){
  .pub .p-head{grid-template-columns:1fr}
  .pub .p-row{grid-template-columns:auto 1fr;grid-template-areas:"b t" "b n";align-items:start}
  .pub .p-books{grid-area:b}.pub .p-t{grid-area:t}.pub .p-n{grid-area:n}.pub .p-ar{display:none}
}
@media (max-width:600px){
  .pub .p-slug{flex-direction:column;gap:4px}
  .pub .p-row{grid-template-columns:1fr;grid-template-areas:"b" "t" "n"}
  .pub .p-books img{width:28vw}
}

/* ===== v10 · Editorial & Publishing: three groups · Yearbooks feature · Stage & Culture ===== */
@font-face{font-family:"Archivo";src:url(fonts/archivo-var.woff2) format("woff2-variations"),url(fonts/archivo-var.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
.pub .p-disc{font-family:var(--p-serif);font-size:clamp(22px,2vw,32px);line-height:1.2;color:var(--p-ink);letter-spacing:-.01em;padding-bottom:.2em}
.pub .p-idx{list-style:none;border-top:1px solid var(--p-ink)}
.pub .p-idx a{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;padding:14px 0;border-bottom:1px solid var(--p-rule);color:inherit;transition:padding-left .4s var(--e)}
.pub .p-idx a:hover{padding-left:6px}
.pub .p-idx .p-mono{grid-row:span 2;padding-top:.3em}
.pub .p-idx b{font-family:var(--p-serif);font-weight:500;font-size:clamp(19px,1.5vw,23px);line-height:1.1;color:var(--p-ink)}
.pub .p-idx i{font-style:normal;font-size:14px;color:var(--p-ink3);margin-top:3px}
.pub .p-grp{display:flex;justify-content:space-between;gap:20px;margin-top:clamp(72px,9vw,140px);padding-bottom:12px;border-bottom:1px solid var(--p-ink);scroll-margin-top:90px}
.pub .p-grp.rv{transform:none} /* in-page link target: fade only, so its position is final when the link scrolls to it */
.pub .p-grp .p-mono:first-child{color:var(--p-ink)}
.pub .p-grp b{display:inline-grid;place-items:center;min-width:26px;height:22px;margin-right:12px;padding:0 4px;background:var(--p-ink);color:var(--p-paper);font-weight:500;border-radius:1px}
.pub .p-grp+.p-list{margin-top:0;border-top:0}

/* 02 · Yearbooks: larger footprint, teal cloth board, real cover + real spreads */
.pub .yb2{--yb:#183A38;--cream:#F3EAD8;--c3:#A9BDB4;position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,4vw,72px);margin-top:clamp(20px,2.4vw,32px);padding:clamp(28px,4.4vw,72px);background:var(--yb);color:var(--cream);overflow:hidden;isolation:isolate;border-radius:2px;box-shadow:0 40px 80px -50px rgba(28,29,33,.7)}
.pub .yb2::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.pub .yb2-copy{display:flex;flex-direction:column;min-width:0}
.pub .yb2 .yb2-k{color:var(--c3)}
.pub .yb2-h{display:block;margin-top:clamp(18px,2vw,28px);font-family:var(--p-serif);font-weight:600;font-size:clamp(40px,5.4vw,92px);line-height:.9;letter-spacing:-.035em;text-transform:uppercase;color:var(--cream);font-variation-settings:"opsz" 60}
.pub .yb2-sub{display:flex;align-items:flex-end;gap:clamp(12px,1.4vw,20px);margin-top:clamp(28px,3.4vw,52px);padding-top:clamp(18px,2vw,26px);border-top:1px solid rgba(243,234,216,.3)}
.pub .yb2-sub b{font-family:var(--p-serif);font-weight:600;font-size:clamp(84px,9vw,150px);line-height:.72;letter-spacing:-.06em;color:#E7C46A;font-variation-settings:"opsz" 60}
.pub .yb2-sub span{font-family:var(--p-serif);font-weight:500;font-size:clamp(18px,1.6vw,26px);line-height:1.05;text-transform:uppercase;letter-spacing:-.01em;color:var(--cream)}
.pub .yb2-x{display:block;margin-top:clamp(20px,2.2vw,30px);max-width:44ch;font-family:var(--p-serif);font-size:clamp(16px,1.25vw,19px);line-height:1.45;color:var(--c3)}
.pub .yb2-go{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;margin-top:auto;padding-top:clamp(24px,3vw,40px);font-size:16px;font-weight:500;color:var(--cream)}
.pub .yb2-go i{transition:transform .4s var(--e)}.pub .yb2:hover .yb2-go i{transform:translateX(6px)}
.pub .yb2-vis{position:relative;min-height:clamp(420px,44vw,700px)}
.pub .yb2-vis img{display:block;width:100%;height:auto}
.pub .yb2-sp{position:absolute;background:#fff;padding:5px;box-shadow:0 30px 50px -24px rgba(0,0,0,.7);transition:transform .9s var(--e)}
.pub .yb2-sp.s1{right:0;top:0;width:min(86%,620px);transform:rotate(2deg)}
.pub .yb2-sp.s2{right:6%;bottom:6%;width:min(62%,460px);transform:rotate(-2.5deg)}
.pub .yb2-cv{position:absolute;left:0;bottom:0;width:min(46%,340px);box-shadow:0 40px 60px -26px rgba(0,0,0,.85);transform:rotate(-4deg);transition:transform .9s var(--e);z-index:2}
.pub .yb2-tape{position:absolute;top:-12px;left:30%;width:42%;height:24px;background:rgba(243,226,180,.6);transform:rotate(-6deg);box-shadow:0 1px 2px rgba(0,0,0,.2)}
.pub .yb2:hover .yb2-cv{transform:rotate(-6deg) translate(-4px,-10px)}
.pub .yb2:hover .yb2-sp.s1{transform:rotate(3deg) translateY(-6px)}
.pub .yb2:hover .yb2-sp.s2{transform:rotate(-1deg) translate(6px,4px)}
.pub .yb2-cap{position:absolute;right:0;bottom:-6px;color:var(--c3)!important;font-size:10.5px!important;text-align:right;max-width:28ch}

/* 03 · Stage & Culture: two productions, two visual worlds */
.pub .stage{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);margin-top:clamp(20px,2.4vw,32px)}
.pub .st{position:relative;display:flex;flex-direction:column;min-height:clamp(640px,62vw,860px);padding:clamp(22px,2.6vw,40px);overflow:hidden;isolation:isolate;border-radius:2px;color:inherit}
.pub .st-vis{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:0;margin:clamp(14px,2vw,24px) 0}
.pub .st-t{position:relative;display:block}
.pub .st .p-ar{position:absolute;right:clamp(22px,2.6vw,40px);bottom:clamp(22px,2.6vw,40px);font-size:26px;transition:transform .4s var(--e)}
.pub .st:hover .p-ar{transform:translateX(6px)}
.pub .st-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Grease: retro, theatrical, graphic, 1950s. Poster kept as-is, framed like a marquee bill */
.pub .st-gr{--pk:#E8288A;--pk2:#C2186F;--moon:#F6E4A6;background:var(--pk);color:#111}
.pub .st-gr .gr-rays{position:absolute;inset:-40%;z-index:-1;background:repeating-conic-gradient(from 0deg at 50% 46%,rgba(255,255,255,.09) 0 6deg,transparent 6deg 12deg);transition:transform 2.4s var(--e)}
.pub .st-gr:hover .gr-rays{transform:rotate(8deg)}
.pub .st-gr .st-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pub .gr-tix{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:118%;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#111;padding:6px 10px 5px;border-radius:2px}
.pub .gr-tix+.gr-tix{background:transparent;border:2px solid #111;color:#111}
.pub .st-gr .gr-moon{position:absolute;width:76%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 38%,#FFF6CF,var(--moon) 60%,#E9CB78);opacity:.55;filter:blur(1px);transition:transform 1.2s var(--e)}
.pub .st-gr .st-poster{position:relative;width:auto;height:clamp(380px,40vw,560px);max-height:clamp(380px,40vw,560px);max-width:86%;object-fit:contain;border:8px solid #fff;box-shadow:0 0 0 2px #111,14px 14px 0 #111;transform:rotate(-2deg);transition:transform .9s var(--e)}
.pub .st-gr:hover .st-poster{transform:rotate(0) translateY(-6px)}
.pub .st-gr:hover .gr-moon{transform:scale(1.06)}
.pub .gr-word{display:block;font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-style:italic;font-size:clamp(56px,6.4vw,108px);line-height:.85;letter-spacing:-.02em;text-transform:uppercase;color:#fff;-webkit-text-stroke:3px #111;paint-order:stroke fill;text-shadow:5px 5px 0 #111;transform:skewX(-6deg);transform-origin:left}
.pub .st-gr .x{display:block;margin-top:14px;font-family:"Archivo",sans-serif;font-weight:700;font-stretch:112%;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:#111}
.pub .gr-line{display:block;margin-top:6px;font-family:var(--p-serif);font-style:italic;font-size:clamp(18px,1.5vw,22px);color:#fff;max-width:20ch}
.pub .st-gr .p-ar{color:#111}

/* Oliver! JR.: editorial, programme-led, Victorian London playbill */
.pub .st-ol{--bill:#EFE6D2;--ink:#1A1714;--red:#A8231F;background:var(--bill);color:var(--ink);border:1px solid rgba(26,23,20,.25);box-shadow:inset 0 0 0 10px var(--bill),inset 0 0 0 11px rgba(26,23,20,.55),inset 0 0 0 14px var(--bill),inset 0 0 0 15px rgba(26,23,20,.35)}
.pub .st-ol .ol-bill{display:flex;justify-content:space-between;gap:12px;padding:10px 6px 10px;border-top:3px double var(--ink);border-bottom:1px solid var(--ink);color:var(--ink)!important;font-size:10.5px!important}
.pub .st-ol .st-pair{display:flex;justify-content:center;height:clamp(320px,30vw,470px);padding:0 4%}
.pub .st-ol .st-pair img{height:100%;width:auto;max-width:none;box-shadow:0 26px 44px -22px rgba(26,23,20,.7);transition:transform .9s var(--e)}
.pub .st-ol .st-pair img:first-child{transform:rotate(-2.5deg) translateX(8%);z-index:1}
.pub .st-ol .st-pair img:last-child{transform:rotate(2deg) translateY(3%)}
.pub .st-ol:hover .st-pair img:first-child{transform:rotate(-4deg) translateX(6%) translateY(-6px)}
.pub .st-ol .st-t{text-align:center;padding-top:14px;border-top:3px double var(--ink)}
.pub .ol-pre{display:block;font-family:var(--p-serif);font-style:italic;font-size:clamp(15px,1.2vw,18px);color:var(--red)}
.pub .ol-name{display:block;margin-top:4px;font-family:var(--p-serif);font-weight:700;font-size:clamp(46px,5.2vw,88px);line-height:.92;letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);font-variation-settings:"opsz" 60}
.pub .st-ol .x{display:block;margin-top:10px;font-family:var(--p-serif);font-size:clamp(16px,1.25vw,19px);color:#4B433A}
.pub .st-ol .ol-meta{display:block;margin-top:8px;color:var(--red)!important}
.pub .st-ol .p-ar{color:var(--ink)}

@media (max-width:1024px){
  .pub .yb2{grid-template-columns:1fr}
  .pub .yb2-vis{min-height:clamp(380px,80vw,620px)}
  .pub .stage{grid-template-columns:1fr}
  .pub .st{min-height:0}
}
@media (max-width:700px){
  .pub .p-grp{flex-direction:column;gap:4px}
  .pub .yb2{padding:24px 20px 28px}
  .pub .yb2-vis{min-height:104vw}
  .pub .yb2-sp.s1{width:92%}
  .pub .yb2-sp.s2{width:70%;right:0;bottom:16%}
  .pub .yb2-cv{width:50%;bottom:8%}
  .pub .yb2-cap{position:static;display:block;margin-top:0;text-align:left;position:absolute;left:0;bottom:-4px;right:auto}
  .pub .st .p-ar{display:none}
  .pub .st-gr .st-poster{max-height:none;height:auto;width:80%}
  .pub .st-ol .st-pair{height:auto;width:100%}
  .pub .st-ol .st-pair img{height:auto;width:46%}
  .pub .st-ol .ol-bill{flex-direction:column;gap:2px}
}
