/* GENERATED by prototype/build-insights.mjs from prototype/insights/insights.css. Do not edit here. */
/* =========================================================================
   INSIGHTS, local prototype layer. Loads after site.css and reuses its tokens
   (--canvas, --paper, --accent, --display, --e1 ...). Namespaced .ix-/.ixa-,
   so nothing here can touch an existing page. Not part of the production build.
   ========================================================================= */
body.insights{--ixg:clamp(1rem,2.4vw,2rem);--ink-line:rgba(168,182,206,.42)}
body.insights main{padding-top:0}
body.insights section{padding-block:var(--sec)}
body.insights .ix-main section{padding-block:0}
body.insights .ix-main .ix-brief{padding:clamp(1.4rem,3vw,2.4rem)}
body.insights .kicker{margin-bottom:1.2rem}
.ix-wide{max-width:none}

/* ------------------------------------------------ prototype notice */
.ix-proto{
  display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:baseline;max-width:none;
  margin:0 0 clamp(2rem,5vw,3.5rem);padding:.55rem .8rem;border:1px dashed var(--accent-soft);
  border-radius:3px;background:var(--accent-faint);font-family:var(--mono);font-size:.72rem;
  letter-spacing:.06em;color:var(--fg-2)}
.ix-proto b{color:var(--accent);font-weight:500;text-transform:uppercase;letter-spacing:.12em}
.ix-ph{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);background:var(--accent-faint);border:1px dashed var(--accent-soft);border-radius:3px;padding:.05em .5em;white-space:nowrap}

/* ------------------------------------------------ abstract art */
.ix-art{position:relative;overflow:hidden;border-radius:6px;border:1px solid var(--hair-2);
  background:
    radial-gradient(120% 90% at 85% 0%,rgba(96,140,220,.2),transparent 60%),
    linear-gradient(160deg,var(--surface-03),var(--surface-01) 70%);
  isolation:isolate}
.ix-art svg{position:absolute;inset:0;width:100%;height:100%;
  transition:transform .9s var(--e1)}
.ix-art svg .l{fill:none;stroke:var(--ink-line);stroke-width:1.3;vector-effect:non-scaling-stroke}
.ix-art svg .l.f,.ix-art svg .f{fill:rgba(168,182,206,.09)}
.ix-art svg .f0{fill:none}
.ix-art svg .f2{fill:rgba(168,182,206,.55)}
.ix-art svg .c{fill:var(--accent)}
.ix-art svg .cs{fill:none;stroke:var(--accent);stroke-width:1.8;vector-effect:non-scaling-stroke}
.ix-art svg .dash{stroke-dasharray:3 6}
.ix-art::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.05) 50%,transparent 60%);
  transform:translateX(-120%);transition:transform 1.1s var(--e1)}
@media (hover:hover){
  article:hover > .ix-art svg,article:hover .ix-art svg{transform:scale(1.045)}
  article:hover .ix-art::after{transform:translateX(120%)}
}

/* shared story bits */
.ix-meta{display:flex;flex-wrap:wrap;gap:.2rem .9rem;max-width:none;margin:0;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.ix-meta span + span::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;
  background:var(--fg-3);vertical-align:middle;margin-right:.9rem;opacity:.7}
.ix-meta span:first-child{color:var(--fg-2)}
.ix-go,.ix-q-go,.ix-row-go{font-size:.95rem;font-weight:500;color:var(--fg);display:inline-flex;gap:.55rem;align-items:center}
.ix-go .arw,.ix-row-go .arw,.ix-q-go .arw{transition:transform var(--t-fast) var(--e1);color:var(--accent)}
article:hover .arw{transform:translateX(5px)}
/* stretched link: the whole story is the target, the heading is its name */
.ix-feat h2 a::after,.ix-t2a h2 a::after,.ix-t2b h3 a::after,.ix-row h3 a::after,.ix-q h3 a::after,
.ixa-rel-main h3 a::after,.ixa-rel-s h3 a::after{content:"";position:absolute;inset:0;z-index:3}
.ix-feat,.ix-t2a,.ix-t2b,.ix-row,.ix-q,.ixa-rel-main,.ixa-rel-s{position:relative}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.ix-feat:has(a:focus-visible),.ix-row:has(a:focus-visible),.ix-q:has(a:focus-visible),
.ix-t2a:has(a:focus-visible),.ix-t2b:has(a:focus-visible){outline:2px solid var(--accent);outline-offset:6px;border-radius:6px}
.ix-feat a:focus-visible,.ix-t2a a:focus-visible,.ix-t2b a:focus-visible,.ix-row a:focus-visible,.ix-q a:focus-visible,
.ixa-rel-main a:focus-visible,.ixa-rel-s a:focus-visible{outline:0}

.ix-sec-head{display:grid;gap:1rem;margin-bottom:clamp(2rem,5vw,4rem);max-width:60rem}
.ix-sec-head h2{max-width:20ch}

/* ================================================== HUB: resource hero (copy left, carousel right) */
body.insights .ix-hero{padding-top:calc(72px + clamp(1rem,2.5vw,1.8rem));padding-bottom:clamp(2rem,4vw,3rem)}
.ix-hero .ix-proto{margin-bottom:clamp(1.5rem,3.5vw,2.5rem)}
.ix-hero-grid{display:grid;gap:2.5rem var(--ixg);grid-template-columns:repeat(12,minmax(0,1fr));align-items:center}
.ix-hero-copy{grid-column:1/8;display:grid;align-content:center}
.ix-hero h1{font-size:clamp(2.2rem,4.1vw,3.5rem);letter-spacing:-.036em;line-height:1.2;max-width:none;margin-bottom:1.75rem}
/* three guided lines on desktop; below 1024px the spans flow inline and wrap naturally */
@media (min-width:1024px){.ix-hl{display:block;white-space:nowrap}}
.ix-hero .lede{font-size:clamp(1.02rem,1.3vw,1.2rem);max-width:34ch;margin:0}
.ix-car{grid-column:8/13;min-width:0}

/* carousel: slides share one grid cell, so the stage is as tall as the tallest slide and never jumps */
.ix-car-stage{display:grid}
.ix-slide{grid-area:1/1;position:relative;aspect-ratio:3/2;min-height:0;overflow:hidden;
  background:#0F263F;color:#fff;border-radius:14px;
  opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;
  transition:opacity .8s var(--e1),transform .8s var(--e1),visibility 0s linear .8s}
.ix-slide.is-active{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .8s var(--e1),transform .8s var(--e1),visibility 0s}
/* the whole slide is one link: full-bleed cover, a bottom-weighted gradient, category + time + title on the image */
.ix-slide-link{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;border-radius:inherit}
.ix-slide-link img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--e1)}
/* no veil over the whole cover: a soft elliptical pool of shade sits only behind the centred title and fades to nothing */
.ix-slide-shade{position:absolute;inset:0;background:radial-gradient(ellipse 78% 52% at 50% 52%,rgba(6,17,31,.78) 0%,rgba(6,17,31,.62) 38%,rgba(6,17,31,.26) 70%,rgba(6,17,31,0) 100%)}
.ix-slide-body{position:relative;display:flex;flex-direction:column;align-items:center;width:80%;padding:0;text-align:center}
.ix-slide h2{font-size:clamp(1.4rem,2.1vw,1.85rem);font-weight:700;letter-spacing:-.03em;line-height:1.14;color:#fff;text-wrap:balance;max-width:none;text-align:center;text-shadow:0 2px 18px rgba(6,17,31,.55);transition:transform .35s var(--e1)}
.ix-slide .ix-cat{color:#FF8A6E}
.ix-slide .ix-min{color:#fff}
.ix-slide .ix-cmeta{position:absolute;top:.9rem;left:.9rem;right:.9rem;z-index:1}
.ix-slide .ix-cat,.ix-slide .ix-min{padding:.28rem .6rem;border-radius:999px;background:rgba(6,17,31,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);line-height:1.2}
.ix-slide-link:focus-visible{outline:2px solid #FF7A5C;outline-offset:-4px}
@media (hover:hover){
  .ix-slide.is-active:hover .ix-slide-link img{transform:scale(1.035)}
  .ix-slide.is-active:hover h2{transform:translateX(3px)}
}
/* category left (accent, stronger) / reading time right (neutral): hub cards and featured slides */
.ix-cmeta{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:0;max-width:none;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}
.ix-cat{font-weight:600;color:#C93A1F}
.ix-min{color:#51698A;text-align:right;white-space:nowrap}
.ix-car-ctl{display:flex;gap:.6rem;margin-top:1rem}
.ix-car-i{flex:1;display:grid;gap:.45rem;padding:.35rem 0 .2rem;background:none;border:0;color:var(--fg-3);cursor:pointer;text-align:left;
  font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;min-height:2.75rem;transition:color .25s var(--e1)}
.ix-car-i i{display:block;height:2px;background:var(--hair-2);position:relative;overflow:hidden;border-radius:2px;align-self:end}
.ix-car-i i::after{content:"";position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}
.ix-car-i[aria-current="true"]{color:var(--fg)}
.ix-car-i[aria-current="true"] i::after{transform:scaleX(1)}
.ix-car.is-playing .ix-car-i[aria-current="true"] i::after{transform:scaleX(0);animation:ixprog var(--ix-dur,6s) linear forwards}
.ix-car.is-paused .ix-car-i[aria-current="true"] i::after{animation-play-state:paused}
.ix-car-i:hover{color:var(--fg)}
.ix-car-i:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
@keyframes ixprog{to{transform:scaleX(1)}}

/* scroll cue */
.ix-cue-wrap{padding-bottom:clamp(1.5rem,3vw,2.5rem);text-align:center}
.ix-cue{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--display);font-size:1.15rem;font-weight:500;letter-spacing:-.005em;
  color:var(--fg);padding:.9rem .4rem;min-height:44px;position:relative;transition:color .25s var(--e1)}
/* a quiet underline is always there (visible without hover); on hover/focus it turns coral */
.ix-cue::after{content:"";position:absolute;left:.4rem;right:.4rem;bottom:.6rem;height:1px;background:var(--fg-3);opacity:.7;transition:background .3s var(--e1),opacity .3s var(--e1)}
.ix-cue .arw{color:var(--accent);display:inline-block;font-size:1.1em;transition:transform .35s var(--e1)}
.ix-cue:hover,.ix-cue:focus-visible{color:var(--accent)}
.ix-cue:hover::after,.ix-cue:focus-visible::after{background:var(--accent);opacity:1}
.ix-cue:hover .arw,.ix-cue:focus-visible .arw{transform:translateY(4px)}
.ix-cue:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
/* calm cue: JS wraps each letter in .ch (site pattern: a light-up wave runs through the letters, then rests ~5.6 s) */
.ix-cue .w{white-space:nowrap}
.ix-cue .ch{display:inline-block;transform-origin:50% 70%}
.ix-cue.is-wave .ch{animation:ixwave 6.6s var(--e2) infinite;animation-delay:calc(var(--i) * .06s + .9s)}
.ix-cue.is-wave .arw{animation:ixwavearw 6.6s var(--e2) infinite;animation-delay:1.85s}
@keyframes ixwave{0%{transform:none;color:inherit}4.5%{transform:translateY(-3px) rotateY(26deg) scale(1.12);color:#FF7657}15%{transform:none;color:inherit}100%{transform:none;color:inherit}}
@keyframes ixwavearw{0%{transform:translateY(0)}6%{transform:translateY(5px)}16%{transform:translateY(0)}100%{transform:translateY(0)}}

/* ================================================== HUB: editorial article grid
   Three equal columns, image-led. Same structure on every card: cover, category + reading time,
   title, short excerpt, small "Leggi". Variety comes from the covers, not from surfaces. */
body.insights .ix-lib{padding-block:clamp(1.5rem,3vw,2.5rem) clamp(4rem,7vw,6rem);scroll-margin-top:72px}
.ix-posts{display:grid;grid-auto-rows:1fr;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2.4vw,2rem);align-items:stretch}
.ix-p{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:.7rem .7rem 1.15rem;
  background:#E7EDF7;color:#0F263F;border-radius:14px;border:1px solid transparent;text-decoration:none;
  transition:border-color .3s var(--e1)}
.ix-p-cover{display:block;aspect-ratio:16/10;border-radius:9px;overflow:hidden;background:#C9D5E6}
.ix-p-cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--e1)}
.ix-p-body{flex:1;display:flex;flex-direction:column;gap:.55rem;padding:.2rem .6rem 0}
.ix-p h3{font-size:clamp(1.2rem,1.65vw,1.45rem);font-weight:700;letter-spacing:-.026em;line-height:1.14;text-wrap:balance;color:#0F263F;transition:transform .35s var(--e1)}
.ix-p-body > p:not(.ix-cmeta){font-size:.95rem;line-height:1.5;color:#3A5170;max-width:none;margin:0;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.ix-p-go{margin-top:auto;align-self:center;padding-top:.5rem;font-size:.9rem;font-weight:500;color:#C93A1F;display:inline-flex;gap:.45rem;align-items:center}
.ix-p-go .arw{transition:transform .3s var(--e1)}
.ix-p:focus-visible{outline:2px solid #E2482B;outline-offset:3px}
@media (hover:hover){
  .ix-p:hover{border-color:rgba(226,72,43,.45)}
  .ix-p:hover .ix-p-cover img{transform:scale(1.035)}
  .ix-p:hover h3{transform:translateX(3px)}
  .ix-p:hover .ix-p-go .arw{transform:translateX(4px)}
}

/* ================================================== HUB: lighter list */

/* ================================================== bridge */
body.insights .ix-bridge{padding-block:clamp(4rem,8vw,7rem)}
/* hub only: the closing CTA takes the homepage contact section's paper treatment so it no longer melts into the dark footer */
body.ix-hub .ix-bridge{background:var(--lab-paper);color:var(--lab-paper-ink)}
body.ix-hub .ix-bridge h2{color:var(--lab-paper-ink)}
body.ix-hub .ix-bridge .lede{color:var(--lab-paper-ink-2)}
body.ix-hub .ix-bridge .tlink{color:var(--lab-paper-ink);border-color:rgba(15,38,63,.35)}
body.ix-hub .ix-bridge .tlink:hover{color:var(--accent-fill);border-color:var(--accent-fill)}
.ix-bridge-in{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2.2rem var(--ixg);align-items:center}
.ix-bridge-in > div:first-child{grid-column:1/9}
.ix-bridge h2{font-size:clamp(1.7rem,3vw,2.55rem);line-height:1.2;letter-spacing:-.03em;max-width:none;margin-bottom:1.4rem}
.ix-bridge h2 span{display:block}
.ix-bridge h2 span + span{margin-top:.2rem}
.ix-bridge .lede{max-width:46ch}
.ix-bridge-act{grid-column:9/13;display:flex;flex-wrap:wrap;gap:1.2rem 1.8rem;align-items:center;justify-content:flex-end}
.ix-bridge-act .btn-primary{padding:1.15rem 2.1rem;font-size:1.05rem}

/* ================================================== ARTICLE: full-bleed image hero (shared master)
   The cover is the whole hero background, edge to edge (no frame, no inner rectangle). A navy gradient only serves
   readability. Content aligns to the 1180px article container; the H1 may use up to 980px. */
body.insights .ixa-hero{padding:0}
.ixa-herocard{position:relative;isolation:isolate;display:flex;min-height:clamp(500px,48vw,700px);background:var(--surface-02)}
.ixa-herocard-media{position:absolute;inset:0;z-index:-2}
.ixa-herocard-media img{width:100%;height:100%;object-fit:cover;object-position:var(--ixa-focus,50% 40%);display:block}
@media (max-width:759px){.ixa-herocard-media img{object-position:var(--ixa-focus-m,var(--ixa-focus,50% 40%))}}
.ixa-herocard-art{position:absolute;inset:0;border:0;border-radius:0}
.ixa-herocard-shade{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(8,22,38,.95) 0%,rgba(8,22,38,.84) 32%,rgba(8,22,38,.38) 64%,rgba(8,22,38,.16) 100%),
             linear-gradient(180deg,rgba(8,22,38,.72) 0%,rgba(8,22,38,0) 26%),
             linear-gradient(90deg,rgba(8,22,38,.55) 0%,rgba(8,22,38,0) 66%)}
.ixa-herocard-in{width:100%;display:flex;flex-direction:column;justify-content:space-between;gap:2.5rem;
  padding-top:calc(72px + clamp(1rem,2.2vw,1.6rem));padding-bottom:clamp(1.6rem,3.2vw,2.8rem)}
/* desktop: the title block sits in the middle band (breadcrumb stays secondary at the top), left-aligned */
@media (min-width:760px){.ixa-herocard-in{justify-content:flex-start;padding-bottom:clamp(2.4rem,5vw,4.5rem)}.ixa-herocard-copy{margin-block:auto}}
.ixa-herocard-top .ix-proto{margin-bottom:1rem}
.ixa-herocard-copy{max-width:1000px;display:grid;gap:1.1rem}
.ixa-herocard h1{font-size:clamp(1.8rem,4.7vw,4.5rem);line-height:1.04;letter-spacing:-.034em;text-wrap:balance;color:var(--text-primary);
  text-shadow:0 1px 18px rgba(5,12,22,.5)}
.ixa-deck{font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.5;color:#D3DCEC;max-width:840px;margin:0}
.ixa-byline{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.6rem;margin-top:.3rem;padding-top:1rem;border-top:1px solid rgba(190,210,240,.24)}
.ixa-author{display:flex;align-items:center;gap:.7rem;color:inherit}
.ixa-author img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 12%;border:1px solid rgba(190,210,240,.4)}
.ixa-author-t{display:grid;gap:.05rem}
.ixa-author b{font-family:var(--display);font-size:.98rem;letter-spacing:-.01em;color:var(--text-primary);transition:color .25s var(--e1)}
.ixa-author-t span{font-size:.82rem;color:#B8C6DD}
.ixa-author:hover b{color:var(--accent)}
.ixa-author:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.ixa-byline-meta{display:flex;flex-wrap:wrap;gap:.2rem .9rem;margin:0;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#C3CFE3;max-width:none}
.ixa-byline-meta span + span::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:#C3CFE3;vertical-align:middle;margin-right:.9rem;opacity:.7}
.ix-crumb ol{display:flex;flex-wrap:wrap;gap:.3rem .6rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#B8C6DD}
.ix-crumb li + li::before{content:"/";margin-right:.6rem;opacity:.55}
.ix-crumb a{color:#D3DCEC;transition:color var(--t-fast)}
.ix-crumb a:hover{color:var(--accent)}
.ix-crumb [aria-current]{color:#B8C6DD;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32ch}

/* ================================================== ARTICLE: body */
body.insights .ixa-body{padding-block:clamp(1.8rem,3.5vw,3rem) clamp(3rem,6vw,5rem)}
.ix-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:120;pointer-events:none;background:transparent}
.ix-progress i{display:block;height:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
/* shell: 1180px container (hero and body share it) = 240px rail + 840px main, the rest is the gap (~100px) */
.ixa-wrap{max-width:calc(1180px + 2 * var(--gut))}
.ix-layout{display:grid;grid-template-columns:240px minmax(0,840px);justify-content:space-between;column-gap:clamp(2rem,4vw,4.5rem);align-items:start}
.ix-rail{position:sticky;top:96px;align-self:start}
.ix-rail-in{max-height:calc(100vh - 120px);overflow:auto;padding-right:.5rem;display:grid;gap:1rem}
.ix-rail-t{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);margin:0}
.ix-toc{display:grid;gap:.15rem}
.ix-toc a{display:grid;grid-template-columns:1.9rem 1fr;gap:.4rem;padding:.5rem 0 .5rem .9rem;border-left:1px solid var(--hair-2);
  font-size:.9rem;line-height:1.3;color:var(--fg-2);transition:color .25s var(--e1),border-color .25s var(--e1),padding .3s var(--e1)}
.ix-toc .num{font-size:.72rem;color:var(--fg-3);padding-top:.15rem}
.ix-toc a:hover{color:var(--fg)}
.ix-toc a.on{color:var(--fg);border-left-color:var(--accent);padding-left:1.15rem}
.ix-toc a.on .num{color:var(--accent)}
.ix-rail-bar{height:2px;background:var(--hair-2);border-radius:2px;overflow:hidden}
.ix-rail-bar i{display:block;height:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
.ix-rail-pct{margin:0;font-size:.72rem;color:var(--fg-3);letter-spacing:.06em}
.ix-toc-m{display:none}
.ix-main{min-width:0;display:grid;gap:clamp(2rem,3.6vw,2.8rem)}
.ix-main > *{margin:0}

.ix-prose{max-width:none}
.ix-prose p{font-size:1.125rem;line-height:1.68;color:#D3DCEC;max-width:none}
.ix-prose p + p{margin-top:1.25em}
.ix-prose h2{font-size:clamp(1.7rem,2.6vw,2.25rem);line-height:1.14;letter-spacing:-.03em;margin:0 0 1.7rem;scroll-margin-top:96px;text-wrap:pretty;text-align:center;max-width:none}
.ix-prose h3{font-size:clamp(1.2rem,1.6vw,1.4rem);font-weight:700;letter-spacing:-.02em;margin:2.4rem 0 .7rem;scroll-margin-top:96px;max-width:none}
.ix-prose p + h3,.ix-prose ul + p{margin-top:1.4rem}
.ix-inline{color:var(--fg);border-bottom:1px solid var(--accent);padding-bottom:1px;transition:color .25s,border-color .25s,background .25s}
.ix-inline:hover{color:var(--accent);background:var(--accent-faint)}
.ix-list{margin:1.6rem 0;display:grid;gap:.7rem}
.ix-list li{position:relative;padding-left:1.6rem;font-size:1.1rem;line-height:1.55;color:#D3DCEC}
.ix-list li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:.5rem;background:var(--accent);border-radius:1px;transform:rotate(45deg) scale(.8)}

/* answer block */
.ix-brief{background:var(--paper-panel);border:1px solid var(--hair-2);border-radius:8px;padding:clamp(1.4rem,3vw,2.4rem);
  display:grid;gap:1.2rem;position:relative;overflow:hidden}
.ix-brief::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.ix-brief-h{font-family:var(--mono);font-size:.76rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);line-height:1.2}
.ix-brief-a{font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.5;color:var(--fg);max-width:none}
.ix-brief-a strong{font-weight:700}
.ix-takeaways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;padding-top:1.2rem;border-top:1px solid var(--hair-2)}
.ix-takeaways li{display:grid;gap:.5rem;font-size:.95rem;line-height:1.45;color:var(--fg-2)}
.ix-takeaways .num{color:var(--accent);font-size:.85rem}

/* comparison */
.ix-compare{display:grid;grid-template-columns:1fr 1fr;gap:var(--ixg)}
.ix-cmp{border-radius:8px;padding:clamp(1.3rem,2.6vw,2rem);display:grid;gap:1rem;align-content:start}
.ix-cmp h3{font-size:1.15rem;font-weight:700;letter-spacing:-.015em}
.ix-cmp ul{display:grid;gap:.7rem}
.ix-cmp li{font-size:.98rem;line-height:1.42;padding-left:1.4rem;position:relative}
.ix-cmp-a{border:1px dashed var(--hair-2);color:var(--fg-2)}
.ix-cmp-a li::before{content:"";position:absolute;left:0;top:.6em;width:.7rem;height:1px;background:var(--fg-3)}
.ix-cmp-b{background:var(--paper-panel);border:1px solid var(--accent-soft);box-shadow:var(--lift-1)}
.ix-cmp-b li::before{content:"";position:absolute;left:0;top:.5em;width:.55rem;height:.55rem;border-radius:50%;background:var(--accent)}

/* pull quote */
.ix-pull{padding:clamp(.4rem,1.2vw,.9rem) 0}
.ix-pull p{font-family:var(--display);font-weight:600;font-style:normal;font-size:clamp(1.45rem,2.5vw,2.15rem);line-height:1.2;letter-spacing:-.028em;max-width:none;color:var(--fg);text-wrap:balance}

/* KPI */
.ix-kpi{border:1px solid var(--hair-2);border-radius:8px;padding:clamp(1.2rem,2.6vw,2rem);background:linear-gradient(180deg,var(--surface-01),transparent)}
.ix-kpi-tag{max-width:none;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:0 0 1.4rem;font-size:.85rem;color:var(--fg-3)}
.ix-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.ix-kpi-grid > div{display:grid;gap:.5rem;padding-left:1.1rem;border-left:1px solid var(--hair-2)}
.ix-kpi-n{font-size:clamp(2.2rem,4.4vw,3.8rem);line-height:1;color:var(--fg);letter-spacing:-.04em}
.ix-kpi-grid > div:first-child .ix-kpi-n{color:var(--accent)}
.ix-kpi-l{font-size:.9rem;line-height:1.35;color:var(--fg-2);max-width:22ch}

/* figure */
.ix-fig{margin:0;border:1px solid var(--hair-2);border-radius:8px;padding:clamp(1.2rem,2.6vw,2rem);background:var(--paper-panel)}
.ix-fig-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ixg)}
.ix-fig-cap-top{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin:0 0 .8rem}
.ix-fig svg{width:100%;height:auto}
.ix-fig svg .l{fill:none;stroke:var(--ink-line);stroke-width:1.2}
.ix-fig svg .l.f,.ix-fig svg .f{fill:rgba(168,182,206,.09)}
.ix-fig svg .f2{fill:rgba(168,182,206,.55)}
.ix-fig svg .c{fill:var(--accent)}
.ix-fig svg .cs{fill:none;stroke:var(--accent);stroke-width:2}
.ix-fig svg .draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--e2) .3s}
.ix-fig.in svg .draw{stroke-dashoffset:0}
.ix-fig figcaption{margin-top:1.1rem;font-size:.88rem;color:var(--fg-3);max-width:none}

/* steps */
.ix-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ixg)}
.ix-steps li{display:grid;gap:.6rem;align-content:start;padding-top:1.1rem;border-top:1px solid var(--hair-2);position:relative}
.ix-steps li::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.1s var(--e2) .2s}
.ix-steps li.in::before{transform:scaleX(1)}
.ix-steps .num{font-size:clamp(2.4rem,4vw,3.4rem);line-height:1;color:transparent;-webkit-text-stroke:1px var(--ink-line)}
.ix-steps h3{font-size:1.25rem;font-weight:700}
.ix-steps p{font-size:.98rem;color:var(--fg-2);line-height:1.5}

/* soft next step */
.ix-next{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;align-items:center;justify-content:space-between;
  padding:clamp(1.3rem,2.6vw,2rem);border-radius:8px;border:1px solid var(--hair-2);
  background:linear-gradient(100deg,var(--accent-faint),transparent 60%)}
.ix-next h3{font-size:clamp(1.15rem,1.7vw,1.45rem);font-weight:700;max-width:26ch}
.ix-next p{color:var(--fg-2);margin-top:.4rem;font-size:.98rem;max-width:44ch}

/* author close */
.ixa-author-grid{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;
  border-top:1px solid var(--hair-2);padding-top:clamp(2rem,4vw,3rem)}
.ixa-author-close{padding-block:clamp(3rem,7vw,6rem)}
.ixa-author-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 14%;border-radius:8px;border:1px solid var(--hair-2)}
.ixa-author-grid h2{font-size:clamp(1.6rem,2.8vw,2.4rem);margin-bottom:1rem}
.ixa-author-grid .tlink{margin-top:1.4rem;display:inline-flex}

/* related */
.ixa-rel-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--ixg);align-items:start}
.ixa-rel-main{grid-column:1/7;display:grid;gap:.9rem}
.ixa-rel-art{aspect-ratio:16/10}
.ixa-rel-main h3{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.1;font-weight:700;letter-spacing:-.03em;max-width:20ch}
.ixa-rel-main p:last-child{color:var(--fg-2);max-width:46ch}
.ixa-rel-side{grid-column:8/13;display:grid;gap:var(--ixg)}
.ixa-rel-s{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:1.1rem;align-items:center;padding-top:var(--ixg);border-top:1px solid var(--hair-2)}
.ixa-rel-s:first-child{border-top:0;padding-top:0}
.ixa-rel-sart{aspect-ratio:4/3}
.ixa-rel-s > div{display:grid;gap:.6rem}
.ixa-rel-s h3{font-size:1.15rem;line-height:1.18;font-weight:700;letter-spacing:-.02em}
.ix-allink{margin-top:clamp(2rem,4vw,3rem);max-width:none}


/* ================================================== responsive */
@media (max-width:1099px){
  .ix-layout{grid-template-columns:minmax(0,1fr)}
  .ix-rail{display:none}
  .ix-toc-m{display:block;border:1px solid var(--hair-2);border-radius:8px;background:var(--paper-panel)}
  .ix-toc-m summary{cursor:pointer;list-style:none;padding:1rem 1.2rem;font-family:var(--mono);font-size:.76rem;letter-spacing:.12em;
    text-transform:uppercase;color:var(--fg-2);display:flex;justify-content:space-between;align-items:center}
  .ix-toc-m summary::-webkit-details-marker{display:none}
  .ix-toc-m summary::after{content:"+";font-size:1.2rem;color:var(--accent)}
  .ix-toc-m[open] summary::after{content:"\2212"}
  .ix-toc-m .ix-toc{padding:0 1.2rem 1rem}
  
}
@media (max-width:1023px){
  .ix-bridge-in > div:first-child,.ix-bridge-act{grid-column:1/-1;justify-content:flex-start}
}
@media (max-width:1099px){
  .ix-posts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:899px){
}
@media (max-width:1023px){
  .ix-slide{aspect-ratio:16/8.8}
  .ix-hero-copy,.ix-car{grid-column:1/-1}
  .ix-hero h1{max-width:20ch}
  .ixa-rel-main,.ixa-rel-side{grid-column:1/-1}
}
@media (max-width:699px){
  .ix-posts{grid-template-columns:1fr}
}
@media (max-width:759px){
  .ixa-herocard{min-height:480px}
  .ixa-herocard-in{gap:5rem}
  .ix-slide{aspect-ratio:4/3.1}
  .ix-slide-body{width:84%}
  .ix-slide .ix-cmeta{top:.7rem;left:.7rem;right:.7rem}
  .ix-slide h2{font-size:clamp(1.35rem,6vw,1.75rem)}
  .ix-slide h2{max-width:none}
  body.insights{--ixg:1.1rem}
  .ix-hero h1{font-size:clamp(2rem,9.4vw,3rem)}
  .ix-takeaways,.ix-steps,.ix-kpi-grid{grid-template-columns:1fr}
  .ix-kpi-grid > div{padding-left:0;border-left:0;border-top:1px solid var(--hair-2);padding-top:1rem}
  .ix-kpi-grid > div:first-child{border-top:0;padding-top:0}
  .ix-compare,.ix-fig-grid{grid-template-columns:1fr}
  .ix-prose p{font-size:1.0625rem;line-height:1.7}
  .ixa-author-grid{grid-template-columns:104px minmax(0,1fr);align-items:start}
  .ixa-author-grid .lede{font-size:1rem}
  .ixa-rel-s{grid-template-columns:96px minmax(0,1fr)}
  .ix-next{flex-direction:column;align-items:flex-start}
}
/* short desktop: nothing sticky may swallow the page */
@media (min-width:1100px) and (max-height:740px){
  .ix-rail{top:84px}
  .ix-rail-in{max-height:calc(100vh - 104px);gap:.6rem}
  .ix-toc a{padding-block:.32rem;font-size:.86rem}
}
@media (prefers-reduced-motion:reduce){
  .ix-car-i i::after{animation:none!important}
  .ix-slide,.ix-slide.is-active{transition:none}
  .ix-cue.is-wave .ch,.ix-cue.is-wave .arw{animation:none!important}
  .ix-slide,.ix-slide-link img,.ix-cue,.ix-cue::after,.ix-cue .arw,.ix-art svg,.ix-art::after,.ix-feat-copy,.ix-p-cover img,.ix-p h3,.ix-p-go .arw{transition:none!important}
  .ix-fig svg .draw{stroke-dashoffset:0;transition:none}
  .ix-steps li::before{transform:scaleX(1);transition:none}
}

/* ================================================== REAL ARTICLE blocks (ixb-*), photographic cover */
.ixb-sec{display:grid;gap:clamp(1.1rem,2vw,1.5rem);min-width:0}
body.insights .ix-main .ixb-sec + .ixb-sec{padding-top:clamp(2.2rem,5vw,4rem)}
.ixb-end .ix-prose p{font-size:1.15rem}
.ixb-sec > *{margin:0}
.ixb-label{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin:0 0 1rem;max-width:none}
.ixb-ct{font-family:var(--display);font-weight:700;font-size:1.1rem;letter-spacing:-.015em;line-height:1.25;color:var(--fg);max-width:none}
.ix-cmp .ixb-ct{font-size:1.15rem}
.ixb-callout{position:relative;padding:clamp(1.2rem,2.4vw,1.8rem) clamp(1.3rem,2.6vw,2rem);border:1px solid var(--hair-2);border-radius:8px;background:var(--paper-panel);display:grid;gap:.5rem}
.ixb-callout::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);border-radius:8px 0 0 8px}
.ixb-callout p:last-child{color:var(--fg-2);font-size:1.02rem;line-height:1.55;max-width:none}
.ixb-check ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.ixb-check li{position:relative;padding:.8rem 1rem .8rem 2.3rem;border:1px solid var(--hair-2);border-radius:6px;font-size:1rem;color:var(--fg)}
.ixb-check li::before{content:"";position:absolute;left:1rem;top:1.05rem;width:.55rem;height:.3rem;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.ixb-check--groups .ixb-cg + .ixb-cg{margin-top:1.5rem}
.ixb-check--groups .ixb-cg > .ixb-ct{margin:0 0 .6rem}
.ixb-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ixg);counter-reset:f}
.ixb-flow li{position:relative;display:grid;gap:.5rem;align-content:start;padding:1.1rem 1.1rem 1.2rem;border:1px solid var(--hair-2);border-radius:8px;background:linear-gradient(180deg,var(--surface-01),transparent)}
.ixb-flow li p:last-child{font-size:.95rem;line-height:1.45;color:var(--fg-2)}
/* six steps: 3 x 2 instead of 4 + 2 (no arrow left hanging at the end of the first row) */
@media (min-width:1100px){.ixb-flow--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ixb-flow--3 li:nth-child(3n)::after{display:none}}
.ixb-flow.is-num li{counter-increment:f}
.ixb-flow.is-num li::before{content:counter(f,decimal-leading-zero);font-family:var(--mono);font-size:.74rem;color:var(--accent);letter-spacing:.1em}
.ixb-flow li:not(:last-child)::after{content:"\2192";position:absolute;right:calc(var(--ixg) / -2 - .5rem);top:1.2rem;color:var(--accent);font-size:1rem;background:var(--paper);line-height:1;z-index:1}
.ixb-metrics dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ixg)}
.ixb-metrics dl > div{display:grid;gap:.5rem;align-content:start;padding:1.1rem 0 0;border-top:1px solid var(--hair-2)}
.ixb-metrics dt{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,2.3vw,2rem);letter-spacing:-.03em;color:var(--fg)}
.ixb-metrics dl > div:first-child dt{color:var(--accent)}
.ixb-metrics dd{margin:0;font-size:.95rem;line-height:1.45;color:var(--fg-2)}
.ixb-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem var(--ixg)}
.ixb-steps li{display:grid;grid-template-columns:2rem minmax(0,1fr);column-gap:.8rem;row-gap:.35rem;padding-top:1.1rem;border-top:1px solid var(--hair-2)}
.ixb-steps .num{grid-row:1/3;font-family:var(--mono);font-size:.85rem;color:var(--accent);padding-top:.2rem}
.ixb-steps li p:last-child{font-size:.97rem;line-height:1.5;color:var(--fg-2)}
.ixb-pull p{max-width:none}
.ixb-hl{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1.6rem;padding:clamp(1.1rem,2.4vw,1.8rem);border:1px solid var(--hair-2);border-radius:8px;background:linear-gradient(180deg,var(--surface-01),transparent)}
.ixb-hl-v{font-size:clamp(2rem,4.4vw,3.4rem);line-height:1;letter-spacing:-.04em;color:var(--accent)}
.ixb-hl-l{font-size:.98rem;line-height:1.4;color:var(--fg-2);max-width:34ch}
.ixb-sec .ix-prose{max-width:none}
.ixb-sec .ix-prose p + h3{margin-top:2.4rem}
.ixb-sec .ix-prose h3 + p{margin-top:.8rem}
.ixb-sec .ix-prose ul + p{margin-top:1.4rem}
@media (max-width:1099px){.ixb-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.ixb-flow li::after{display:none}.ixb-check ul,.ixb-metrics dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:759px){
  .ixb-flow,.ixb-check ul,.ixb-metrics dl,.ixb-steps{grid-template-columns:1fr}
}

/* shared components added to the master: two_column, compact list, faq */
.ixb-two-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ixg)}
.ixb-two-grid > div{display:grid;gap:.5rem;align-content:start;padding-top:1rem;border-top:1px solid var(--hair-2)}
.ixb-two-grid p:last-child{color:var(--fg-2);font-size:1rem;line-height:1.55;max-width:none}
.ix-list--compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.6rem;margin:1rem 0}
.ix-list--compact li{font-size:1rem}
.ixb-faq{display:grid;border-top:1px solid var(--hair-2);margin-top:.4rem}
.ixb-faq > div{padding:1.05rem 0;border-bottom:1px solid var(--hair-2)}
.ixb-faq h3{margin:0 0 .4rem!important;font-size:1.08rem!important}
.ixb-faq p{margin:0!important;font-size:1.02rem!important}
@media (max-width:759px){.ixb-two-grid,.ix-list--compact{grid-template-columns:1fr}}

/* framework, long-form variant: items that carry paragraphs and short lists stack in one column with a number rail (opt-in via .ixb-flow--rich) */
.ixb-flow.ixb-flow--rich{grid-template-columns:1fr;gap:var(--ixg)}
.ixb-flow--rich > li{display:block;padding:1.4rem clamp(1.1rem,2.4vw,1.7rem) 1.5rem calc(clamp(1.1rem,2.4vw,1.7rem) + 3rem)}
.ixb-flow--rich > li > * + *{margin-top:.7rem}
.ixb-flow--rich.is-num > li::before{position:absolute;left:clamp(1.1rem,2.4vw,1.7rem);top:1.55rem;font-size:1.05rem}
.ixb-flow--rich > li::after{display:none}
.ixb-flow--rich > li > .ixb-ct{font-size:1.25rem}
.ixb-flow--rich > li > p{font-size:1rem;line-height:1.55;color:var(--fg-2)}
.ixb-flow--rich ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.4rem}
.ixb-flow.ixb-flow--rich ul li{position:relative;display:block;counter-increment:none;padding:0 0 0 1.3rem;border:0;border-radius:0;background:none;font-size:1rem;line-height:1.5;color:var(--fg)}
.ixb-flow.ixb-flow--rich.is-num ul li::before{content:"";position:absolute;left:0;top:.7em;width:.42rem;height:.42rem;background:var(--accent);transform:rotate(45deg);font-size:0}
.ixb-flow.ixb-flow--rich ul li::after{display:none}
@media (max-width:759px){.ixb-flow--rich > li{padding-left:calc(clamp(1.1rem,2.4vw,1.7rem) + 2.2rem)}.ixb-flow--rich ul{grid-template-columns:1fr}}
/* two-column with short lists, highlight with a second figure */
.ixb-two-grid .ix-list{margin:.2rem 0 0;gap:.5rem}
.ixb-two-grid .ix-list li{font-size:1rem;color:var(--fg-2)}
.ixb-hl-s{font-size:clamp(1.25rem,2.4vw,1.9rem);color:var(--fg)}
/* framework with a guiding question per step, metric grid with a headline figure, closing statement (all opt-in, shared) */
.ixb-flow .ixb-q{font-size:.98rem;line-height:1.35;font-weight:600;color:var(--fg)}
.ixb-metrics--hl dl{grid-template-columns:repeat(2,minmax(0,1fr))}
.ixb-metrics--hl dt{font-size:1.05rem;letter-spacing:-.01em}
.ixb-metrics--hl dl > div:first-child dt{color:var(--fg)}
.ixb-metrics--hl .ixb-m-v{font-family:var(--display);font-weight:700;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.05;letter-spacing:-.03em;color:var(--accent)}
.ixb-metrics--hl .ixb-m-l{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--fg-3,var(--fg-2))}
.ixb-end .ix-prose .ixb-em{font-family:var(--display);font-weight:600;font-size:clamp(1.45rem,2.5vw,2.15rem);line-height:1.2;letter-spacing:-.028em;color:var(--fg);text-wrap:balance;max-width:none;margin-block:.6rem}
@media (max-width:759px){.ixb-metrics--hl dl{grid-template-columns:1fr}}

/* shared-block opt-in variants (article 4): titled compact list, comparison column subtitle, two_column fields, sentence highlight */
.ix-list--titled li{display:grid;gap:.15rem;align-content:start}
.ix-list--titled li span:last-child{color:var(--fg-2);font-size:.98rem;line-height:1.45}
.ix-list--titled li h3.ixb-ct{margin:0;font-size:1.1rem;letter-spacing:-.015em}
.ixb-sub{font-size:.92rem;line-height:1.4;color:var(--fg-3,var(--fg-2));margin:-.5rem 0 0}
.ixb-two-grid .ixb-field{display:grid;gap:.3rem;margin-top:.6rem}
.ixb-fl{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3,var(--fg-2))}
.ixb-hl--text{display:grid;gap:.7rem}
.ixb-hl-t{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.3;letter-spacing:-.02em;color:var(--fg);max-width:none}
.ixb-hl-n{font-size:.9rem;line-height:1.4;color:var(--fg-3,var(--fg-2));max-width:none}

/* titled compact list, three-column opt-in (article 5); stacks below 760px via the shared compact rule */
@media (min-width:760px){.ix-list--cols3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ixb-check li:has(.ixb-ct){display:grid;gap:.15rem;align-content:start}
.ixb-check li .ixb-ct + span{color:var(--fg-2);font-size:.98rem;line-height:1.45}
/* comparison rows (opt-in via .ixb-cr-wrap): labelled neutral/stronger pairs */
.ixb-cr-head,.ixb-cr{display:grid;grid-template-columns:minmax(0,.55fr) repeat(2,minmax(0,1fr));gap:var(--ixg)}
.ixb-cr-head{padding-bottom:.6rem;align-items:start}
.ixb-cr-head .ixb-ct{margin:0}
.ixb-cr-head .ixb-ct:last-child{padding-left:calc(1rem + 2px)}
@media (min-width:760px){.ixb-cr-wrap--nolabel .ixb-cr-head,.ixb-cr-wrap--nolabel .ixb-cr{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ixb-cr{align-items:start;padding:1.1rem 0;border-top:1px solid var(--hair-2)}
.ixb-cr p{max-width:none;font-size:1rem;line-height:1.5}
.ixb-cr-a{color:var(--fg-2)}
.ixb-cr-b{color:var(--fg);font-weight:600;padding-left:1rem;border-left:2px solid var(--accent)}
@media (max-width:759px){.ixb-cr-head{display:none}.ixb-cr{grid-template-columns:1fr;gap:.6rem}.ixb-cr-a::before,.ixb-cr-b::before{content:attr(data-l);display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-weight:400;margin-bottom:.15rem}}

/* ================================================== RELATED READING: three titles, no images
   "Da leggere dopo" / "Read next": a compact editorial list. Whole row is the link; the arrow nudges on hover. */
.ixa-related .ix-sec-head{margin-bottom:clamp(1.1rem,2.4vw,1.8rem)}
.ixa-rel-list{list-style:none;margin:0;padding:0;max-width:52rem;border-top:1px solid var(--hair-2)}
.ixa-rel-list li{margin:0;border-bottom:1px solid var(--hair-2)}
.ixa-rel-list a{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.15rem .2rem;color:var(--fg);transition:color .25s var(--e1),padding .3s var(--e1)}
.ixa-rel-t{font-family:var(--display);font-weight:600;font-size:clamp(1.08rem,1.5vw,1.3rem);letter-spacing:-.02em;line-height:1.25}
.ixa-rel-list .arw{color:var(--accent);flex:none;transition:transform .3s var(--e1)}
.ixa-rel-list a:hover,.ixa-rel-list a:focus-visible{color:var(--accent)}
.ixa-rel-list a:hover .arw,.ixa-rel-list a:focus-visible .arw{transform:translateX(5px)}
.ixa-rel-list a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:2px}
@media (prefers-reduced-motion:reduce){.ixa-rel-list a,.ixa-rel-list .arw{transition:none}}

/* ================================================== ARTICLE TYPE + WIDTH SYSTEM (all Blog articles, IT + EN)
   Scoped to body.ix-article, so the hubs (body.ix-hub) are untouched. Desktop (>=1100px, rail layout): 1200px canvas,
   880px column, 20px body. Rail-less tablet/small desktop (760-1099px): centred 800px column, 18.75px body, so no line
   runs past ~85 characters. Below 760px the shared mobile rules apply unchanged. */
@media (min-width:1100px){
  body.ix-article .ixa-wrap{max-width:calc(1200px + 2 * var(--gut))}
  body.ix-article .ix-layout{grid-template-columns:240px minmax(0,880px)}
  body.ix-article .ixa-deck{font-size:clamp(1.1rem,1.45vw,1.3125rem);max-width:900px}
  body.ix-article .ix-prose p{font-size:1.25rem;line-height:1.66;color:#E3E9F4}
  body.ix-article .ixb-end .ix-prose p{font-size:1.25rem}
  body.ix-article .ix-prose p + p{margin-top:1.2em}
  body.ix-article .ix-prose h2{font-size:clamp(1.9rem,2.8vw,2.4rem);line-height:1.14;margin-bottom:2rem}
  body.ix-article .ix-prose h3{font-size:clamp(1.4rem,1.8vw,1.6rem);margin-top:2.8rem;margin-bottom:.8rem}
  body.ix-article .ix-list li{font-size:1.2rem;color:#E3E9F4}
  body.ix-article .ixb-ct{font-size:1.2rem}
  body.ix-article .ix-list--titled li span:last-child{font-size:1.05rem;line-height:1.5}
  body.ix-article .ixb-callout p:last-child{font-size:1.125rem;line-height:1.6;color:#D3DCEC}
  body.ix-article .ix-pull p{font-size:clamp(1.6rem,2.5vw,2.25rem)}
  body.ix-article .ix-toc a{font-size:.95rem}
  body.ix-article .ix-rail-t{font-size:.76rem}
  body.ix-article .ixa-rel-list{max-width:880px}
  body.ix-article .ixa-rel-t{font-size:clamp(1.15rem,1.55vw,1.4rem)}
  body.ix-article .ix-main .ixb-sec + .ixb-sec{padding-top:clamp(2.6rem,5.5vw,4.5rem)}
}
@media (min-width:760px) and (max-width:1099px){
  body.ix-article .ix-main{max-width:800px;width:100%;margin-inline:auto}
  body.ix-article .ix-prose p{font-size:1.1719rem;line-height:1.68}
  body.ix-article .ixb-end .ix-prose p{font-size:1.1719rem}
  body.ix-article .ix-list li{font-size:1.125rem}
  body.ix-article .ixa-rel-list{max-width:800px}
}
