/* =====================================================================
   Architectural Digest India page: the few things that differ from the
   shared publication styles (publication.css). The Architectural Digest
   masthead is a very wide wordmark (about 15.7:1), so it sits wider and
   thinner than a stacked mark.
   ===================================================================== */
.pub .ed-logo{width:min(380px,92%)}
.edida .ed-logo{width:min(300px,86%);margin-bottom:14px}
.fgroup .fimg img.ed-logo{width:120px}
.proof-card .pubrow img{width:150px}

/* the search phrase sits just above the H1 so it lands in the first 100 words */
.hero .hero-kw{margin:0 auto 14px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-align:center;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content;max-width:100%}

/* six industry cards: three across on desktop, not 4 + 2 */
@media (min-width:1000px){ .inds.six{grid-template-columns:repeat(3,minmax(0,1fr))} }

/* the collage: two illustrative photos and the illustrative screens (no covers, no real pages) */
.collage .c2{object-fit:contain;background:transparent;box-shadow:none;border:0}

/* hero composite is 1400 x 740 (laptop left, phone right); keep both left cards clear of the screen text */
.stage.devstage .devices{aspect-ratio:1400/740}
@media (min-width:1000px){
  .stage.devstage .fc.a{left:0;top:4%}
  .stage.devstage .fc.d{left:0;top:23%}
}
@media (max-width:719px){
  .stage.devstage .fc.c{top:40%;bottom:auto}
}
/* the honours-band caption sits under the landscape photo, clear of the second photo */
.edida .pics .cap{max-width:44%;line-height:1.35}

/* hero typewriter (after the CSS-only pen by Alvaro Montoro): the first H1 line types through
   several taglines above a fixed "Architectural Digest India?". Screen readers and search engines get the
   fixed sr-only line; the typed text is aria-hidden. One line, never wraps, so nothing jumps. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero h1 .l1{white-space:nowrap}
.hero h1 .tw::after{content:"";display:inline-block;width:.07em;height:.82em;margin-left:.08em;vertical-align:-.06em;background:currentColor;border-radius:1px;animation:tw-blink 1s steps(1,end) infinite}
@keyframes tw-blink{50%{opacity:0}}
@media (max-width:719px){ .hero h1 .l1{font-size:var(--tw-fs,.8em)} }
@media (prefers-reduced-motion:reduce){ .hero h1 .tw::after{animation:none;opacity:0} }

/* in-section call prompts (ncta.py): a quiet card after Industries, Formats, How and the FAQ;
   Call is the button, WhatsApp the text link. Same look on every page. */
.ncta{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 22px;padding:16px 20px;border-radius:20px;background:var(--paper);border:1px solid var(--line)}
.ncta p{margin:0;font-size:16px;line-height:1.45;max-width:60ch}
.ncta p b{font-weight:600}
.ncta p span{color:var(--muted)}
.ncta-btns{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.nlink{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-weight:500;font-size:15px;color:var(--green-text);text-decoration:underline;text-underline-offset:4px}
.nlink .i{width:18px;height:18px}
.nlink:hover{text-decoration-thickness:2px}
.ncta-line{margin:18px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.ncta-line b{font-weight:600;margin-right:4px}
@media (max-width:719px){ .ncta{padding:16px} .ncta-btns{width:100%} .ncta-btns .btn{flex:1 1 auto;justify-content:center} }

/* industry cards, v2 (28 Sep): photo on top in full view, fading into the teal panel; the text sits
   below the photo, so it never covers a face. Replaces the full-bleed overlay from publication.css. */
.ind.img{padding:0 0 20px;min-height:0;align-content:start;row-gap:10px;background:linear-gradient(180deg,#0E3942 0%,#0A2C35 100%)}
.ind.img > img{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:4/3.1;object-fit:cover;object-position:50% 18%;-webkit-mask-image:linear-gradient(180deg,#000 64%,transparent 100%);mask-image:linear-gradient(180deg,#000 64%,transparent 100%)}
.ind.img::after{content:none}
.ind.img > *:not(img):not(.pill):not(.sheen){margin-inline:20px}
.ind.img .pill{position:absolute;top:14px;left:14px;z-index:3;margin:0;background:rgba(10,44,53,.55)}
.ind.img .top{margin-top:-30px;align-items:flex-end;min-height:48px}
.ind.img h3{font-size:19px;text-shadow:0 1px 12px rgba(10,44,53,.6)}
.ind.img .cnt{font-size:32px;text-shadow:0 1px 12px rgba(10,44,53,.6)}
.ind.img p{font-size:14.5px;line-height:1.5}
@media (max-width:719px){ .ind.img{min-height:0} .ind.img > img{aspect-ratio:4/3.3} }
/* content v2: 100% money-back guarantee (hero pill + section) */
.hero .mbg-pill{margin:16px auto 0;display:flex;align-items:center;justify-content:center;gap:9px;width:fit-content;max-width:100%;padding:8px 16px 8px 12px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line-2);color:var(--ink);font-size:15px;line-height:1.35;text-align:left}
.hero .mbg-pill .i{width:20px;height:20px;color:var(--green-text)}
.hero .mbg-pill b{font-weight:600;color:var(--green-text)}
.mbg{padding-top:0}
.mbg-card{display:grid;gap:24px;align-items:center;padding:28px 22px;border-radius:28px;background:linear-gradient(140deg,var(--deep-2) 0%,var(--deep) 70%);color:var(--deep-ink);box-shadow:var(--card-shadow)}
.mbg-seal{width:124px;height:124px;border-radius:50%;display:grid;place-content:center;justify-items:center;gap:2px;text-align:center;background:var(--lime);color:var(--lime-ink);box-shadow:0 0 0 8px rgba(201,242,107,.14)}
.mbg-seal .i{width:24px;height:24px}
.mbg-seal b{font-size:34px;line-height:1;letter-spacing:-.04em;font-weight:700}
.mbg-seal span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.mbg .eyebrow{color:var(--deep-muted)}
.mbg h2{color:var(--deep-ink);margin-top:8px;font-size:clamp(1.75rem,4.2vw,2.7rem);line-height:1.08}
.mbg h2 em{color:var(--lime)}
.mbg .lede{color:var(--deep-muted);margin-top:12px;max-width:58ch;font-size:17px;line-height:1.55}
.mbg-points{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px}
.mbg-points li{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:500;color:var(--deep-ink)}
.mbg-points .i{width:18px;height:18px;color:var(--mint)}
.mbg-ctas{margin-top:20px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.mbg-ctas .nlink{color:var(--mint)}
@media (min-width:800px){.mbg-card{grid-template-columns:auto minmax(0,1fr);gap:40px;padding:40px 44px}.mbg-seal{width:160px;height:160px}.mbg-seal b{font-size:42px}}
@media (max-width:519px){.mbg-seal{width:112px;height:112px}.mbg-seal b{font-size:28px}.mbg-seal span{font-size:10px;letter-spacing:.1em}.hero .mbg-pill{font-size:14px}}

/* compact v2: on phones, long card stacks become swipe rows and "why" becomes compact rows (all text stays on the page) */
.swipe-hint{display:none}
@media (max-width:719px){
  .inds.img,.fgroups,.personas,.services{grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:20px;margin-inline:-20px;padding:4px 20px 6px;scrollbar-width:none}
  .personas{grid-auto-columns:72%}
  .services{grid-auto-columns:68%}
  .inds.img::-webkit-scrollbar,.fgroups::-webkit-scrollbar,.personas::-webkit-scrollbar,.services::-webkit-scrollbar{display:none}
  .inds.img>*,.fgroups>*,.personas>*,.services>*{scroll-snap-align:start}
  .inds.img>.lift-wait,.fgroups>.lift-wait,.personas>.lift-wait,.services>.lift-wait{opacity:1;transform:none}
  .swipe-hint{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:6px 0 0;font-size:13px;color:var(--muted)}
  .swipe-hint .i{width:16px;height:16px}
  .why{gap:8px}
  .why div{grid-template-columns:40px minmax(0,1fr);column-gap:14px;row-gap:2px;padding:16px 18px}
  .why .ic{grid-row:span 2}
}

/* v2 alignment: step cards keep their content at the top when stretched; the two how-notes share the row */
.sbody{align-content:start}
@media (min-width:720px){.how-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* phone v3: other-publications strip */
.pubs2 .rows .track{gap:14px}
.pubs2 .note{padding-inline:20px}
.pubs2 .cl.pubcl{width:auto;display:flex;align-items:center;justify-content:center;min-width:150px;height:64px;padding:0 20px;border-radius:14px;background:var(--paper-2);border:1px solid var(--line)}
.pubs2 .cl a{text-decoration:none;color:inherit}
.pubs2 .wm{white-space:nowrap;color:var(--ink);opacity:.82;font-size:19px;line-height:1}
.pubs2 .wm.serif{font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:-.01em}
.pubs2 .wm.serif-b{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:22px}
.pubs2 .wm.serif-i{font-family:var(--serif);font-style:italic;font-size:24px}
.pubs2 .wm.sans-b{font-family:var(--sans);font-weight:800;letter-spacing:-.03em;font-size:21px}
.pubs2 .wm.didone{font-family:"Didot","Bodoni 72","Bodoni MT",var(--serif);font-weight:400;letter-spacing:.14em;font-size:20px}
.pubs2 .note .nlink{min-height:auto;font-size:12px}
.pubs2 .cl.pubcl{background:#fff;border-color:#E4E9E5}
.pubs2 .cl img{width:var(--w);height:var(--h);max-width:none;max-height:none;object-fit:contain}
.pubs2 .head .sub{font-size:15px;color:var(--muted);max-width:52ch;margin-top:2px}
.more-btn{display:none}
/* phone v3: crisp phone layout (text stays in the page; long parts swipe or open on tap) */
@media (max-width:719px){
  section.block{padding-block:44px}
  section.block h2{font-size:30px;line-height:1.08}
  .lede{font-size:16px;line-height:1.55}
  .split{gap:12px}
  .hero .fmt-line,.hero .kw-links{display:none}
  .gp-card{display:none}
  .pub blockquote{display:none}
  .edida .pics{display:none}
  .pub dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about .regline{display:none}
  .statgrid div{padding:14px 14px;gap:4px}.statgrid .n{font-size:30px}.statgrid .l{font-size:13px}
  .reg div{padding:10px 16px}.reg dt{font-size:10.5px}.reg dd{font-size:15px}
  .slide{width:56vw}
  .readers,.steps,.why{display:grid;grid-auto-flow:column;grid-auto-columns:84%;grid-template-columns:none;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:20px;margin-inline:-20px;padding:4px 20px 6px;scrollbar-width:none}
  .readers::-webkit-scrollbar,.steps::-webkit-scrollbar,.why::-webkit-scrollbar{display:none}
  .readers>*,.steps>*,.why>*{scroll-snap-align:start}
  .readers>.lift-wait,.steps>.lift-wait,.why>.lift-wait{opacity:1;transform:none}
  .readers{grid-auto-columns:88%;margin-top:14px}
  .steps::before,.steps::after{display:none}
  .step{grid-template-columns:1fr;gap:10px}
  .sbody{align-content:start;height:100%}
  .why{grid-auto-columns:72%}
  .why div{grid-template-columns:1fr;padding:18px}
  .why .ic{grid-row:auto}
  .callsteps{gap:0}
  .callsteps li{padding:12px 0;border-radius:0;background:none;border-bottom:1px solid var(--line)}
  .pricenote .pn-more{display:none}
  .ncta{padding:14px 16px;gap:10px}
  .ncta p span{display:none}
  .more-box:not(.more-open){display:none}
  .more-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:14px;border-radius:999px;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);font:600 15px/1 var(--sans);cursor:pointer}
  .mbg-card{padding:22px 18px;gap:14px}
  .mbg-seal{width:84px;height:84px;box-shadow:0 0 0 5px rgba(201,242,107,.14)}
  .mbg-seal .i{width:18px;height:18px}.mbg-seal b{font-size:22px}.mbg-seal span{font-size:8.5px}
  .pubs2 .cl.pubcl{min-width:128px;height:54px;padding:0 16px}
  .pubs2 .cl img{width:calc(var(--w) * .85);height:calc(var(--h) * .85)}
  .pubs2 .wm{font-size:16px}.pubs2 .wm.serif-i{font-size:20px}.pubs2 .wm.serif-b{font-size:18px}.pubs2 .wm.sans-b{font-size:18px}
}

/* hero-v2 (15 Oct 2026, ported from the Forbes India page): white page, faint Execlient smoke behind the headline,
   floating proof objects (desktop >1400px) / sliding chip row (below that). Page-only tweaks are marked "ad:". */
.hero{overflow:hidden}
.hero .hx{position:relative;isolation:isolate;padding:20px 0 6px}
.hx-smoke{position:absolute;left:50%;top:250px;width:760px;height:420px;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;filter:blur(60px);opacity:.55}
.hx-smoke i{position:absolute;border-radius:50%;mix-blend-mode:multiply}
.hx-smoke .s1{width:58%;height:70%;left:6%;top:12%;background:rgba(76,187,138,.22);animation:hxs1 14s ease-in-out infinite alternate}
.hx-smoke .s2{width:52%;height:64%;right:8%;top:6%;background:rgba(20,96,118,.12);animation:hxs2 17s ease-in-out infinite alternate}
.hx-smoke .s3{width:46%;height:56%;left:28%;bottom:2%;background:rgba(127,216,176,.26);animation:hxs3 12s ease-in-out infinite alternate}
.hx-smoke .s4{width:30%;height:40%;left:44%;top:22%;background:rgba(37,130,122,.12);animation:hxs1 19s ease-in-out infinite alternate-reverse}
@keyframes hxs1{0%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,-18px) scale(1.12)}100%{transform:translate(-30px,20px) scale(.94)}}
@keyframes hxs2{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-46px,22px) scale(1.08)}100%{transform:translate(24px,-14px) scale(1.15)}}
@keyframes hxs3{0%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,16px) scale(.9)}100%{transform:translate(-36px,-20px) scale(1.1)}}
.hx-center{position:relative;z-index:2;max-width:760px;margin:0 auto;text-align:center}
.hero .hx h1.hx-h1{max-width:900px;margin:8px auto 0;font-weight:600;letter-spacing:-.035em;line-height:1.02;font-size:inherit;color:var(--ink)}
.hero .hx h1.hx-h1 .l1{display:block;font-size:68px;white-space:nowrap;letter-spacing:-.035em;min-height:1.02em}
.hero .hx h1.hx-h1 .l2{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:16px;font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:96px;letter-spacing:-.01em;margin:6px 0 10px}
.hero .hx h1.hx-h1 .l2 em{display:inline;line-height:1}
.hero .hx h1.hx-h1 .l3{display:table;margin:0 auto;font-size:64px;background:#0A2C35;color:#7FD8B0;padding:4px 22px 10px;border-radius:10px;font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:0}
.hx-lede{max-width:660px;margin:26px auto 0;font-size:21px;line-height:1.55;color:var(--muted)}
.hx-lede b{color:var(--ink);font-weight:600}
.hero .hx-ctas{justify-content:center;margin-top:30px}
.hx-note{margin:14px 0 0;font-size:14px;color:var(--muted)}
.hx-mini{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin:14px 0 0;color:var(--muted);font-size:13px}
.hx-mini span{display:inline-flex;align-items:center;gap:6px}
.hx-mini .i{width:16px;height:16px}
.hx-fl{position:absolute;z-index:1;background:#fff;border:1px solid #DCE7E1;border-radius:14px;box-shadow:0 10px 28px rgba(15,42,34,.08);animation:hxbob 7s ease-in-out infinite;color:var(--ink);text-align:left}
.hx-fl.p2,.hx-fl.p5,.hx-fl.p8{animation-duration:8.5s;animation-delay:-2s}
.hx-fl.p3,.hx-fl.p6{animation-duration:9.5s;animation-delay:-4s}
@keyframes hxbob{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-10px) rotate(var(--r,0deg))}}
.hx-chip{padding:10px 14px;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #DCE7E1;border-radius:14px;background:#fff;color:var(--ink)}
.hx-chip .i{width:18px;height:18px}
.hx-chip.hx-ok{background:#E8F6EF;border-color:#BFE6D2;color:#145A3B}
.hx-chip.hx-tag{background:#FFF6E0;border-color:#F1DDA6;color:#6B4B05}
.hx-chip.hx-link{color:#146076;font-weight:500}
.hx-card{padding:14px;width:230px;display:flex;flex-direction:column}
.hx-card .k{align-self:flex-start;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6B4B05;background:#FFF6E0;border-radius:6px;padding:3px 7px;font-weight:600}
.hx-card .src{font-size:12px;color:var(--muted);margin-top:8px}
.hx-card .t{font-family:"Instrument Serif",Georgia,serif;font-size:21px;line-height:1.15;margin-top:4px}
.hx-card .bars i{display:block;height:7px;border-radius:4px;background:#E7EEEA;margin-top:7px}
.hx-card .bars i:nth-child(2){width:82%}.hx-card .bars i:nth-child(3){width:64%}
.hx-g{width:240px;padding:14px 16px;display:flex;flex-direction:column}
.hx-g .q{display:flex;align-items:center;gap:8px;border:1px solid #DCE7E1;border-radius:999px;padding:7px 12px;font-size:13px;color:var(--muted)}
.hx-g .q .i{width:15px;height:15px}
.hx-g .r{margin-top:10px;font-size:12px;color:#2E7D5B}
.hx-g .h{font-size:17px;color:#1A0DAB;margin-top:2px;line-height:1.25}
.hx-g .d{font-size:12px;color:var(--muted);margin-top:4px}
.hx-li{width:210px;padding:12px 14px;display:flex;flex-direction:column}
.hx-li .row{display:flex;align-items:center;gap:10px}
.hx-li .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#25827A,#4CBB8A);flex:none}
.hx-li .nm{display:block;font-size:13px;font-weight:600}.hx-li .sb{display:block;font-size:12px;color:var(--muted)}
.hx-li .pv{margin-top:10px;border:1px solid #DCE7E1;border-radius:10px;padding:8px 10px;font-size:12px;color:var(--muted)}
.hx-li .ic{margin-left:auto;width:20px;height:20px;color:#0A66C2}
.hx-fl.p1{left:-90px;top:10px;--r:-5deg}.hx-fl.p2{left:-110px;top:300px;--r:4deg}.hx-fl.p3{left:-70px;top:420px;--r:-3deg}.hx-fl.p4{left:-120px;top:550px;--r:3deg}
.hx-fl.p5{right:-90px;top:4px;--r:4deg}.hx-fl.p6{right:-80px;top:250px;--r:-4deg}.hx-fl.p7{right:-110px;top:370px;--r:3deg}.hx-fl.p8{right:-100px;top:570px;--r:-3deg}
.hx-rail{display:none;margin:26px -20px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.hx-rail .tr{display:flex;gap:10px;width:max-content;animation:hxslide 26s linear infinite}
.hx-rail .hx-chip{border-radius:999px}
@keyframes hxslide{to{transform:translateX(-50%)}}
@media (max-width:1400px){.hx-fl{display:none}.hx-rail{display:block}}
@media (max-width:760px){
 .hx-smoke{top:220px;width:440px;height:360px;filter:blur(50px)}
 .hero .hx h1.hx-h1 .l1{font-size:var(--tw-fs,38px)}
 .hero .hx h1.hx-h1 .l2{font-size:56px;gap:10px;margin:4px 0 8px}
 .hero .hx h1.hx-h1 .l3{font-size:40px;padding:2px 14px 6px}
 .hx-lede{font-size:17px;margin-top:20px}
 .hero .hx-ctas{flex-direction:column;align-items:stretch}
}
@media (max-width:380px){.hero .hx h1.hx-h1 .l1{font-size:var(--tw-fs,34px)}.hero .hx h1.hx-h1 .l2{font-size:48px}.hero .hx h1.hx-h1 .l3{font-size:34px}}
@media (prefers-reduced-motion:reduce){.hx-smoke i,.hx-fl,.hx-rail .tr{animation:none}}
/* ad: the card's label is set on two lines; the LinkedIn preview line is longer than on Forbes, so that card runs a little wider */
.hx-card .k{line-height:1.35}
.hx-li{width:232px}
/* ad: the cards and chips are always white, so pin their text to the light-theme ink (in dark mode --ink turns near-white) */
.hx-fl,.hx-chip{--ink:#0D1411;--muted:#5A6560}
/* ad: at 360px the call label needs 250px but the default 24px padding leaves 240px, so it wrapped to two lines; slimmer padding keeps it on one */
@media (max-width:380px){.hero .hx-ctas .btn{padding-inline:16px}}

/* pubwall-v2 (30 Oct 2026): curved 3D publication logo wall; tiles placed on a cylinder by assets/js/pubwall.js */
.pubwall{position:relative;overflow:hidden;padding-block:72px 40px;border-block:1px solid var(--line);
  background:
    radial-gradient(60% 70% at 4% 30%,rgba(255,196,160,.42),transparent 70%),
    radial-gradient(55% 60% at 50% 100%,rgba(76,187,138,.20),transparent 70%),
    radial-gradient(60% 70% at 98% 20%,rgba(42,140,127,.22),transparent 70%),
    var(--paper)}
.pubwall .pw-head{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.pubwall .pw-head .eyebrow{font-size:clamp(20px,2vw,24px)}
.pubwall .pw-head h2{margin:0;max-width:24ch;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.12;letter-spacing:-.035em;font-weight:650;text-wrap:balance}
.pubwall .pw-head h2 em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em;background:var(--grad-text,linear-gradient(100deg,#146076,#2A8C7F 55%,#4CBB8A));-webkit-background-clip:text;background-clip:text;color:transparent}
.pubwall .pw-sub{margin:0;font-size:15px;color:var(--muted);max-width:52ch}
.pw3-wall{--tw:212px;--th:116px;--gap:22px;position:relative;margin-top:6px;display:grid;gap:var(--gap);padding-block:44px;
  perspective:var(--pw3-p,1150px);perspective-origin:50% 50%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.pw3-row{display:flex;justify-content:center;gap:var(--gap);margin:0;padding:0;list-style:none;overflow:hidden}
.pw3-tile{flex:none;width:var(--tw);height:var(--th)}
.pw3-tile.dup{display:none}
.pw3-card{display:grid;place-items:center;width:100%;height:100%;border-radius:22px;background:#fff;
  border:1px solid rgba(13,20,17,.06);box-shadow:0 16px 34px -16px rgba(13,40,34,.30),0 2px 6px rgba(13,40,34,.06);
  transition:transform .25s ease,box-shadow .25s ease}
.pw3-card img{display:block;max-width:none;object-fit:contain}
.pw3-card a{display:grid;place-items:center;width:100%;height:100%;border-radius:inherit;text-decoration:none}
.pw3-tile--link .pw3-card{box-shadow:0 0 0 2px rgba(42,140,127,.38),0 16px 34px -16px rgba(13,40,34,.30)}
.pw3-card:hover{transform:translateY(-5px);box-shadow:0 24px 40px -18px rgba(13,40,34,.38),0 2px 6px rgba(13,40,34,.06)}
.pw3-card a:focus-visible{outline:3px solid #2A8C7F;outline-offset:3px}
/* 3D mode (set by pubwall.js): tiles sit at the row's centre and are placed on the cylinder by transform */
.pw3-wall.is-3d .pw3-row{display:block;position:relative;height:var(--th);overflow:visible;transform-style:preserve-3d}
.pw3-wall.is-3d .pw3-tile{position:absolute;left:50%;top:0;margin-left:calc(var(--tw) / -2);backface-visibility:hidden;will-change:transform}
.pw3-wall.is-3d .pw3-tile.dup{display:block}
.pw-stats{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;margin:26px auto 0;padding:0;list-style:none;font-size:16px;color:var(--muted)}
.pw-stats b{color:var(--ink);font-weight:650}
.pubwall .note{position:relative;z-index:2;text-align:center;font-size:12px;color:var(--muted);margin-top:14px;padding-inline:20px}
.pubwall .note .nlink{min-height:auto;font-size:12px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pubwall{background:
    radial-gradient(60% 70% at 4% 30%,rgba(255,150,100,.14),transparent 70%),
    radial-gradient(55% 60% at 50% 100%,rgba(76,187,138,.16),transparent 70%),
    radial-gradient(60% 70% at 98% 20%,rgba(42,140,127,.22),transparent 70%),
    var(--paper)}}
:root[data-theme="dark"] .pubwall{background:radial-gradient(60% 70% at 98% 20%,rgba(42,140,127,.22),transparent 70%),var(--paper)}
@media (max-width:719px){
  .pubwall{padding-block:52px 30px}
  .pw3-wall{--tw:150px;--th:84px;--gap:12px;margin-top:4px;padding-block:28px}
  .pw3-card{border-radius:16px}
  .pw3-card img{width:var(--mw);height:auto}
  .pw-stats{font-size:14px;gap:6px 18px;padding-inline:20px}
}
@media (prefers-reduced-motion:reduce){.pw3-card{transition:none}}
/* /pubwall-v2 */

/* seo-v1 (2026-11-13): the typed text is drawn from data-t so the H1 text in the HTML reads once */
.hero h1 .tw::before{content:attr(data-t)}

/* ad: the publication name is three words, longer than the template's two, so line 2 of the H1 may wrap
   (centred) instead of running off a phone screen; slightly smaller type keeps it to two lines at most */
.hero .hx h1.hx-h1 .l2{flex-wrap:wrap;text-align:center;font-size:76px}
.hero .hx h1.hx-h1 .l2 em{line-height:1.02;text-wrap:balance}
@media (max-width:760px){ .hero .hx h1.hx-h1 .l2{font-size:46px} }
@media (max-width:380px){ .hero .hx h1.hx-h1 .l2{font-size:40px} }

/* ad: the honours band has no cover image; the two illustrative photos share the space */
.edida .pics .b{object-position:50% 40%}

/* ad: reach timeline (replaces the template's cover carousel: no covers on this page) */
.adtl{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:12px}
.adtl li{display:grid;grid-template-columns:88px minmax(0,1fr);gap:4px 18px;align-items:start;align-content:start;padding:16px 18px;border-radius:18px;background:var(--paper-2);border:1px solid var(--line)}
.adtl .y{grid-row:span 2;font-family:var(--serif);font-style:italic;font-size:30px;line-height:1;letter-spacing:-.01em;color:var(--green-text)}
.adtl b{font-weight:600;font-size:16.5px;line-height:1.35}
.adtl span:not(.y){color:var(--muted);font-size:14.5px;line-height:1.5}
.adtl-head{margin-top:34px}
.adtl-head h3{margin:0;font-size:22px;letter-spacing:-.02em}
.adtl-head p{margin:6px 0 0;color:var(--muted);font-size:15px}
@media (min-width:900px){ .adtl{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:519px){ .adtl li{grid-template-columns:62px minmax(0,1fr);gap:2px 12px;padding:14px} .adtl .y{font-size:24px} }

/* ad: the site's domain is long; on narrow phones it breaks after "architectural" so the two tree heads fit */
@media (max-width:420px){ .tw-head.d .tw-hn small{max-width:14ch} }

/* ad: the one-line H1 is a little shorter than the template's, so lift the last right-hand chip clear of the "Draft approved" card */
.hx-fl.p8{top:536px}
