/* Portfolio v2 concept: cream paper, near-black text, purple for titles and actions, one wide grotesk */
:root {
  --paper: #f5f2ea;
  --text: #16141d;
  --text-soft: rgba(22, 20, 29, .64);
  --hair: rgba(22, 20, 29, .14);
  --ink: #3d27e6;            /* purple: titles, buttons, marks */
  --ink-tint: #e8e4fb;
  --font: "Archivo", "Helvetica Neue", Arial, sans-serif;      /* wide caps: name, nav, labels, arcs */
  --text-font: "Instrument Sans", system-ui, sans-serif;     /* titles, body, buttons */
  --gutter: clamp(20px, 4vw, 56px);
  --ease: cubic-bezier(.2, .7, .2, 1);
  /* names the gate styles expect */
  --bg: var(--paper); --body: var(--text-soft); --muted: var(--text-soft); --purple: var(--ink); --sans: var(--font); --serif: var(--font);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; }
body.v2 { background: var(--paper); color: var(--text); font: 400 17px/1.6 var(--text-font); -webkit-font-smoothing: antialiased; overflow-x: clip; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--ink); color: var(--paper); }
img, video { display: block; max-width: 100%; }

/* wide caps for display type */
.v2-name, .v2-nav a, .v2-label, .v2-contact__big, .v2-arc__text, .v2-card__kicker, .v2-mark, .v2-stats dt{ font-family: var(--font); font-stretch: 125%; }
.v2-nav a, .v2-label, .v2-arc__text, .v2-contact__big, .v2-card__kicker, .v2-name { text-transform: uppercase; }

/* hero */
.v2-hero { display: grid; justify-items: center; align-content: center; text-align: center; min-height: calc(100svh - clamp(72px, 9vw, 120px)); padding: clamp(40px, 6vh, 72px) var(--gutter) clamp(24px, 4vh, 48px); }
.v2-mark { display: grid; place-items: center; width: clamp(64px, 6vw, 84px); aspect-ratio: 1; border-radius: 30%; background: var(--ink); color: var(--paper); border: 2.5px solid var(--text); box-shadow: 4px 4px 0 var(--text); transform: rotate(-6deg); transition: transform .45s var(--ease), box-shadow .45s var(--ease); font: 900 clamp(24px, 2.3vw, 32px)/1 var(--font); font-stretch: 125%; letter-spacing: -.04em; }
.v2-mark:hover { transform: rotate(0) translate(-2px, -3px); box-shadow: 7px 8px 0 var(--text); }
@media (prefers-reduced-motion: reduce) { .v2-mark { transition: none; } }
@keyframes spin { to { transform: rotate(360deg); } }
.v2-name { text-transform: uppercase; }

/* hero */
.v2-hero { display: grid; justify-items: center; align-content: center; text-align: center; min-height: calc(100svh - clamp(72px, 9vw, 120px)); padding: clamp(40px, 6vh, 72px) var(--gutter) clamp(24px, 4vh, 48px); }
.v2-name { margin-top: clamp(18px, 2vw, 26px); font-size: clamp(30px, 4.2vw, 60px); font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.v2-nav { display: flex; gap: clamp(24px, 3.5vw, 48px); margin-top: clamp(18px, 2vw, 26px); font-size: clamp(14px, 1.1vw, 16px); font-weight: 600; letter-spacing: .04em; color: var(--ink); }
.v2-nav a { position: relative; }
.v2-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.v2-nav a:hover::after { transform: scaleX(1); }
.v2-intro { max-width: 36em; margin-top: clamp(24px, 3vw, 36px); color: var(--text-soft); font-size: clamp(16px, 1.2vw, 19px); text-wrap: balance; }
.v2-intro strong { color: var(--text); font-weight: 600; }

/* curved, flowing type */
.v2-arc { width: 100%; height: clamp(150px, 20vw, 300px); overflow: hidden; }
.v2-arc:not(.v2-arc--down):not(.v2-arc--talk) { margin-top: 0; }
.v2-arc svg { width: 100%; height: 100%; overflow: visible; }
.v2-arc__text { fill: var(--ink); font-family: var(--font); font-size: 92px; font-weight: 800; letter-spacing: -.01em; }

/* work: a bento grid of tiles in different sizes and tones */
.v2-work { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(28px, 3vw, 48px); padding: clamp(8px, 2vw, 24px) var(--gutter) clamp(56px, 7vw, 112px); max-width: 1600px; margin-inline: auto; }
.v2-card { --line: var(--text); --fill: #e2dcfc; --accent: var(--ink); --soft: var(--text-soft); --bg: #fff;
  position: relative; display: flex; flex-direction: column; min-height: clamp(320px, 30vw, 440px); padding: clamp(24px, 2.6vw, 36px); border-radius: 22px; border: 2.5px solid var(--text); background: var(--bg); color: var(--line); overflow: hidden; box-shadow: 8px 8px 0 var(--text);
  transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.v2-card--feature { grid-column: span 8; min-height: clamp(420px, 40vw, 600px); }
.v2-card--tall { grid-column: span 4; min-height: clamp(420px, 40vw, 600px); }
.v2-card--third { grid-column: span 4; }
.v2-card--half { grid-column: span 6; }
.v2-card--feature .v2-card__art svg { width: min(52%, 440px); }
.v2-card--tall .v2-card__art svg { width: min(90%, 320px); }
.v2-card--third .v2-card__art svg { width: min(72%, 320px); }
.v2-card--feature .v2-card__title { font-size: clamp(26px, 2.6vw, 40px); }
a.v2-card:hover { transform: translate(-3px, -4px); box-shadow: 11px 12px 0 var(--ink); }
/* the two newest case studies sit raised, the rest lie flat */
.v2-card__new { position: absolute; top: clamp(18px, 1.8vw, 24px); left: clamp(18px, 1.8vw, 24px); padding: 6px 11px; border: 1.5px solid var(--text); border-radius: 999px; font: 800 11px/1 var(--font); font-stretch: 125%; text-transform: uppercase; letter-spacing: .06em; }
.v2-card__art { flex: 1; display: grid; place-items: center; min-height: 0; padding: 12px 0 20px; }
.v2-card__art svg { width: min(60%, 360px); height: auto; overflow: visible; transition: transform .8s var(--ease); }
a.v2-card:hover .v2-card__art svg { transform: scale(1.05) rotate(-1deg); }
.v2-card__meta { max-width: 36em; }
.v2-card__kicker { display: block; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; color: var(--soft); }
.v2-card__title { margin-top: 6px; font-family: var(--font); font-stretch: 112%; font-size: clamp(22px, 2vw, 30px); font-weight: 750; line-height: 1.08; letter-spacing: -.03em; color: var(--line); text-wrap: balance; }
.v2-card__desc { margin-top: 8px; color: var(--soft); font-size: 15px; line-height: 1.5; }
.v2-card__go { position: absolute; top: clamp(16px, 1.6vw, 22px); right: clamp(16px, 1.6vw, 22px); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--line); color: var(--line); transition: background .25s, color .25s, transform .45s var(--ease); }
.v2-card__go svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
a.v2-card:hover .v2-card__go { background: var(--line); color: var(--bg); transform: rotate(45deg); }
.v2-card__soon { position: absolute; top: 20px; right: 20px; padding: 6px 12px; border-radius: 999px; border: 1.5px dashed var(--hair); font-size: 12px; font-weight: 500; color: var(--soft); }

/* view more: the last two tiles open on demand */
.v2-more { grid-column: 1 / -1; display: flex; justify-content: center; }
.v2-more__btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 26px; border: 2.5px solid var(--text); border-radius: 999px; background: #fff; color: var(--text); box-shadow: 5px 5px 0 var(--text); cursor: pointer; font: 600 16px/1 var(--text-font); transition: transform .4s var(--ease), box-shadow .4s var(--ease), color .25s; }
.v2-more__btn span { font: 700 20px/1 var(--font); transition: transform .4s var(--ease); }
.v2-more__btn:hover { transform: translate(-2px, -3px); box-shadow: 8px 9px 0 var(--ink); color: var(--ink); }
.v2-more__btn[aria-expanded="true"] span { transform: rotate(45deg); }
.v2-card[hidden] { display: none; }

/* writing: the two articles, set apart as quieter blog-style rows */
.v2-writing { max-width: 1600px; margin: 0 auto; padding: 0 var(--gutter) clamp(48px, 6vw, 96px); }
.v2-writing__label { display: flex; align-items: center; gap: 14px; margin-bottom: clamp(20px, 2.4vw, 32px); font: 800 13px/1 var(--font); font-stretch: 125%; text-transform: uppercase; letter-spacing: .08em; color: var(--ink); }
.v2-writing__label::after { content: ""; flex: 1; height: 2px; background: var(--text); }
.v2-post { position: relative; --line: var(--text); --fill: #e2dcfc; --accent: var(--ink); --bg: var(--paper); display: grid; grid-template-columns: clamp(220px, 28vw, 400px) minmax(0, 1fr); gap: clamp(20px, 3vw, 44px); align-items: center; padding: clamp(18px, 2vw, 26px) 0; border-bottom: 1px solid var(--hair); }
.v2-post__art { aspect-ratio: 4 / 3; border: 1.5px solid var(--text); border-radius: 14px; background: #fff; padding: 0; display: grid; place-items: center; transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
.v2-post__art svg { width: 78%; height: auto; }
.v2-post:hover .v2-post__art { transform: rotate(-2deg); box-shadow: 5px 5px 0 var(--ink); }
.v2-post__meta { font: 700 11.5px/1 var(--font); font-stretch: 125%; text-transform: uppercase; letter-spacing: .08em; color: var(--text-soft); }
.v2-post__title { margin-top: 8px; font-family: var(--font); font-stretch: 112%; font-size: clamp(20px, 2vw, 28px); font-weight: 750; line-height: 1.12; letter-spacing: -.025em; transition: color .25s; }
.v2-post:hover .v2-post__title { color: var(--ink); }
.v2-post__text { padding-right: 64px; }
.v2-post__go { top: 50%; right: 0; transform: translateY(-50%); }
a.v2-post:hover .v2-post__go { background: var(--line); color: var(--bg); transform: translateY(-50%) rotate(45deg); }
.v2-post__desc { margin-top: 8px; max-width: 42em; font-size: 15.5px; line-height: 1.55; color: var(--text-soft); }
@media (max-width: 600px) { .v2-post { grid-template-columns: 1fr; gap: 16px; } .v2-post__text { padding-right: 56px; } .v2-post__go { top: auto; bottom: 18px; transform: none; } a.v2-post:hover .v2-post__go { transform: rotate(45deg); } .v2-post__art svg { width: 60%; } }

/* UI vignettes: polished slices of each product on a deep navy panel */
.v2-card__art.ui-art { position: relative; display: block; padding: 0; margin-bottom: 20px; border-radius: 16px; overflow: hidden; container-type: inline-size; flex: none; aspect-ratio: 16 / 10; min-height: 0;
  background: radial-gradient(90% 80% at 85% 10%, rgba(82, 98, 255, .45), transparent 60%), radial-gradient(70% 70% at 10% 100%, rgba(16, 166, 166, .35), transparent 60%), linear-gradient(160deg, #0b1a44, #141c5c 55%, #0d2a55);
  --u-ink: #0f1530; --u-soft: #5b6178; --u-line: #e6e8f0; --u-blue: #2f5bff; --u-teal: #10a6a6; --u-crit: #e5484d; --u-warn: #f2a516; --u-ok: #1f9d6b; }
.v2-card--tall .v2-card__art.ui-art { aspect-ratio: 1 / 1.05; }
.v2-card--tall .ui-stage { font-size: calc(100cqw / 24); }
.v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 25); padding-top: 2.6em; }
.v2-card--tall .ui-ghosts i:nth-child(4) { display: none; }
.v2-card--tall .ui-alert { width: 17em; }
.v2-card--feature .v2-card__art.ui-art { aspect-ratio: 16 / 8.6; }
.v2-card--feature .ui-stage { font-size: calc(100cqw / 44); }
.v2-card:has(.ui-art) .v2-card__meta { margin-top: auto; }
.v2-card:has(.ui-art) .v2-card__go, .v2-card:has(.ui-art) .v2-card__new, .v2-card:has(.ui-art) .v2-card__soon { z-index: 3; top: clamp(32px, 3.2vw, 46px); }
.v2-card:has(.ui-art) .v2-card__go { right: clamp(32px, 3.2vw, 46px); background: #fff; border-color: #fff; color: var(--text); }
.v2-card:has(.ui-art) .v2-card__new { left: clamp(32px, 3.2vw, 46px); background: #fff; border-color: #fff; }
.v2-card:has(.ui-art) .v2-card__soon { right: clamp(32px, 3.2vw, 46px); background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .4); color: #fff; }
a.v2-card:has(.ui-art):hover .v2-card__go { background: var(--ink); border-color: var(--ink); color: #fff; }
.ui-art::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(120% 120% at 50% 0%, transparent 60%, rgba(5, 10, 30, .35)); }
.ui-stage { position: absolute; inset: 0; display: grid; place-items: center; font-size: calc(100cqw / 38); font-family: var(--text-font); color: var(--u-ink); }
.ui-stage * { box-sizing: border-box; }
.v2-card__art.ui-art svg { width: auto; max-width: none; transition: none; }
a.v2-card:hover .v2-card__art.ui-art svg { transform: none; }
.ui-art .ui-map { width: 100%; }
.ui-art .ui-spark-line { width: 100%; }
.ui-art .ui-ring svg { width: 100%; transform: rotate(-90deg); }
.ui-card { background: #fff; border-radius: .9em; box-shadow: 0 .1em .2em rgba(5, 10, 40, .12), 0 1.4em 3em -1em rgba(5, 10, 40, .55); transition: transform .7s var(--ease); }
a.v2-card:hover .ui-card { transform: translateY(-.35em); }
.ui-head { display: flex; align-items: center; gap: .45em; font-size: .8em; }
.ui-head b { font-weight: 600; }
.ui-head small { margin-left: auto; color: var(--u-soft); font-size: .92em; }
.ui-head__dots { margin-left: auto; display: flex; gap: .3em; } .ui-head__dots i { width: .35em; height: .35em; border-radius: 50%; background: #c9ccd8; }
.ui-spark { width: .95em; height: .95em; background: var(--u-blue); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); flex: none; }
.ui-pill { display: inline-block; padding: .2em .6em; border-radius: 99em; font-size: .62em; font-weight: 700; letter-spacing: .02em; }
.ui-pill--crit { background: #fde8e9; color: var(--u-crit); } .ui-pill--high { background: #fff1db; color: #b26b00; }
.ui-dot { display: inline-block; width: .5em; height: .5em; border-radius: 50%; flex: none; }
.ui-dot--ok { background: var(--u-ok); } .ui-dot--warn { background: var(--u-warn); } .ui-dot--crit { background: var(--u-crit); }
.ui-btn { display: inline-flex; align-items: center; gap: .3em; padding: .45em .8em; border-radius: .45em; border: 1px solid var(--u-line); font-size: .66em; font-weight: 600; color: var(--u-ink); white-space: nowrap; }
.ui-btn svg { width: .9em; height: .9em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ui-btn--solid { background: var(--u-blue); border-color: var(--u-blue); color: #fff; }
.ui-search { white-space: nowrap; display: flex; align-items: center; gap: .45em; padding: .5em .7em; border: 1px solid var(--u-line); border-radius: .5em; font-size: .68em; color: var(--u-soft); }
.ui-search svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.ui-search.is-focus { border-color: var(--u-blue); box-shadow: 0 0 0 .22em rgba(47, 91, 255, .15); color: var(--u-ink); }
.ui-caret { display: inline-block; width: 1px; height: 1.05em; margin-left: 1px; vertical-align: -.15em; background: var(--u-ink); animation: ui-blink 1.1s steps(1) infinite; }
@keyframes ui-blink { 50% { opacity: 0; } }
.ui-chip { display: inline-flex; align-items: center; gap: .45em; padding: .5em .8em; border-radius: 99em; background: rgba(255, 255, 255, .95); font-size: .66em; font-weight: 600; box-shadow: 0 .8em 1.8em -.6em rgba(5, 10, 40, .6); }

/* Rubrik AI: chat + canvas */
.ui-stage--ai { grid-template-columns: 17em 15.5em; gap: 1.1em; align-content: center; justify-content: center; }
.ui-chat { padding: 1em; display: grid; gap: .6em; }
.ui-insight { display: grid; gap: .25em; padding: .7em .75em; border: 1px solid #f6d3d5; border-radius: .6em; background: #fff8f8; }
.ui-insight b { font-size: .74em; } .ui-insight small { font-size: .6em; color: var(--u-soft); } .ui-insight .ui-pill { justify-self: start; }
.ui-text { font-size: .64em; line-height: 1.5; color: var(--u-soft); margin: 0; }
.ui-sugg { display: flex; gap: .5em; align-items: center; padding: .45em .7em; border: 1px solid var(--u-line); border-radius: 99em; font-size: .64em; font-weight: 500; }
.ui-sugg span { color: var(--u-soft); } .ui-sugg.is-rec { border-color: var(--u-blue); background: #eef2ff; color: #1f3fd1; } .ui-sugg.is-rec span { color: var(--u-blue); }
.ui-input { display: flex; align-items: center; justify-content: space-between; padding: .5em .5em .5em .8em; border: 1px solid var(--u-line); border-radius: 99em; font-size: .62em; color: #9aa0b4; }
.ui-send { width: 1.6em; height: 1.6em; border-radius: 50%; background: var(--u-blue); }
.ui-canvas { padding: .9em; align-self: center; transform: translateY(1.2em); }
a.v2-card:hover .ui-canvas { transform: translateY(.8em); }
.ui-map { display: block; width: 100%; height: auto; margin-top: .4em; overflow: visible; }
.ui-canvas .ui-head small { font-size: .85em; }
.ui-map .e { stroke: #c4c9d8; stroke-width: 1.6; fill: none; } .ui-map .e--risk { stroke: var(--u-crit); stroke-dasharray: 4 4; animation: ui-dash 1.2s linear infinite; }
@keyframes ui-dash { to { stroke-dashoffset: -16; } }
.ui-map .n { fill: #fff; stroke: #9aa0b4; stroke-width: 1.6; } .ui-map .n--agent { fill: #eef2ff; stroke: var(--u-blue); } .ui-map .n--risk { fill: #fde8e9; stroke: var(--u-crit); }
.ui-map .glyph { stroke: var(--u-blue); stroke-width: 2; stroke-linecap: round; }
.ui-map text { font: 600 10px var(--text-font); fill: var(--u-ink); } .ui-map .t--risk { fill: var(--u-crit); }
.ui-map .tag { fill: var(--u-crit); } .ui-map .tag__t { font: 800 7px var(--text-font); fill: #fff; text-anchor: middle; letter-spacing: .05em; }

/* Alerts: many rows collapse into one */
.v2-card--tall .ui-stage--alerts { grid-template-columns: 1fr; justify-items: center; }
.v2-card--tall .ui-ghosts { width: 15em; grid-template-columns: 1fr; gap: .35em; }
.v2-card--tall .ui-ghosts i { height: 1.25em; }
.v2-card--tall .ui-ghosts i:nth-child(5) { display: none; }
.v2-card--tall .ui-stage--alerts { gap: .5em; align-content: center; }
.v2-card--tall .ui-merge svg { transform: rotate(90deg); }
.ui-stage--alerts { grid-template-columns: 9em 2em 17em; align-items: center; justify-content: center; gap: .4em; }
.ui-ghosts { display: grid; gap: .45em; }
.ui-ghosts i { display: block; height: 1.5em; border-radius: .4em; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .2); position: relative; }
.ui-ghosts i::before { content: ""; position: absolute; left: .55em; top: 50%; width: .45em; height: .45em; margin-top: -.225em; border-radius: 50%; background: #ffb84d; }
.ui-ghosts i::after { content: ""; position: absolute; left: 1.5em; right: 1.5em; top: 50%; height: 2px; margin-top: -1px; background: rgba(255, 255, 255, .45); border-radius: 2px; }
.ui-ghosts i:nth-child(n+4) { opacity: .55; } .ui-ghosts i:nth-child(5) { opacity: .3; }
.ui-merge { display: grid; place-items: center; color: #9fb2ff; } .ui-merge svg { width: 1.6em; height: 1.6em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ui-alert { padding: 1em; display: grid; gap: .45em; position: relative; }
.ui-alert::before, .ui-alert::after { content: ""; position: absolute; left: .8em; right: .8em; z-index: -1; border-radius: .9em; background: rgba(255, 255, 255, .55); }
.ui-alert::before { bottom: -.5em; height: 2em; } .ui-alert::after { left: 1.6em; right: 1.6em; bottom: -1em; height: 2em; background: rgba(255, 255, 255, .28); }
.ui-alert__top { display: flex; justify-content: space-between; align-items: center; }
.ui-count { padding: .25em .6em; border-radius: 99em; background: var(--u-blue); color: #fff; font-size: .7em; font-weight: 700; }
.ui-alert__title { font-size: .86em; font-weight: 600; } .ui-meta { font-size: .62em; color: var(--u-soft); }
.ui-spark-line { width: 100%; height: 2.6em; margin: .3em 0; } .ui-spark-line .ln { fill: none; stroke: var(--u-blue); stroke-width: 1.6; vector-effect: non-scaling-stroke; } .ui-spark-line .area { fill: rgba(47, 91, 255, .1); }
.ui-alert__foot { display: flex; justify-content: space-between; align-items: center; font-size: 1em; } .ui-alert__foot > span:first-child { display: flex; align-items: center; gap: .4em; font-size: .62em; color: var(--u-soft); }

/* Policies: recommended policies with toggles */
.ui-stage--policy { align-content: center; }
.ui-policies { width: 22em; padding: 1em; display: grid; gap: .1em; }
.ui-policies .ui-head { margin-bottom: .5em; }
.ui-prow { display: flex; align-items: center; justify-content: space-between; gap: 1em; padding: .6em 0; border-top: 1px solid var(--u-line); }
.ui-prow b { display: block; font-size: .7em; font-weight: 600; } .ui-prow small { font-size: .58em; color: var(--u-soft); }
.ui-toggle { flex: none; width: 2.1em; height: 1.2em; border-radius: 99em; background: #d5d8e3; position: relative; }
.ui-toggle i { position: absolute; left: .15em; top: .15em; width: .9em; height: .9em; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .3s; }
.ui-toggle.is-on { background: var(--u-blue); } .ui-toggle.is-on i { transform: translateX(.9em); }
.ui-policies__foot { display: flex; justify-content: space-between; align-items: center; padding-top: .7em; border-top: 1px solid var(--u-line); } .ui-policies__foot small { font-size: .6em; color: var(--u-soft); }
.ui-policies, .ui-tenants { position: relative; }
.ui-chip--tl { position: absolute; left: -1.2em; top: -1.4em; transform: rotate(-3deg); }
.ui-chip--brc { position: absolute; right: -1.6em; bottom: -1.3em; transform: rotate(3deg); }
.ui-policies { margin-top: 1.2em; }

/* MSP: tenants */
.ui-tenants { width: 19em; padding: 1em; display: grid; gap: .55em; }
.ui-trow { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: .55em; padding: .35em 0; border-top: 1px solid var(--u-line); }
.ui-av { display: grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: .5em; background: #eef2ff; color: var(--u-blue); font-size: .58em; font-weight: 700; }
.ui-trow b { font-size: .68em; font-weight: 600; } .ui-trow small { font-size: .58em; color: var(--u-soft); }

/* Settings: search finds the setting */
.ui-settings { width: 26em; display: grid; grid-template-columns: 8.5em 1fr; overflow: hidden; }
.ui-settings__nav { display: grid; align-content: start; gap: .2em; padding: 1em .8em; background: #f5f6fa; border-right: 1px solid var(--u-line); }
.ui-settings__nav b { font-size: .74em; margin-bottom: .5em; } .ui-settings__nav span { font-size: .62em; padding: .45em .6em; border-radius: .4em; color: var(--u-soft); }
.ui-settings__nav span.is-on { background: #fff; color: var(--u-ink); font-weight: 600; box-shadow: 0 1px 2px rgba(5, 10, 40, .08); }
.ui-settings__main { padding: 1em; display: grid; gap: .5em; align-content: start; }
.ui-res { display: grid; gap: .15em; padding: .55em .65em; border-radius: .5em; }
.ui-res b { font-size: .68em; font-weight: 600; } .ui-res small { font-size: .58em; color: var(--u-soft); }
.ui-res mark { background: #fff3b0; color: inherit; border-radius: .15em; padding: 0 .1em; }
.ui-res.is-hit { background: #eef2ff; box-shadow: inset .18em 0 0 var(--u-blue); }

/* DSCC: score + recommendation */
.ui-stage--dscc { align-content: center; gap: .9em; }
.ui-score { width: 24em; padding: 1.1em; display: grid; grid-template-columns: 8em 1fr; gap: 1.1em; align-items: center; }
.ui-ring { position: relative; } .ui-ring svg { display: block; width: 100%; transform: rotate(-90deg); }
.ui-ring .trk { fill: none; stroke: #eceef5; stroke-width: 9; } .ui-ring .val { fill: none; stroke: var(--u-teal); stroke-width: 9; stroke-linecap: round; stroke-dasharray: 47.5 100; animation: ui-score 5s ease-in-out infinite; }
@keyframes ui-score { 0%, 100% { stroke-dasharray: 44 100; } 50% { stroke-dasharray: 66 100; } }
.ui-ring > div { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; } .ui-ring b { font-size: 1.5em; font-weight: 700; letter-spacing: -.02em; } .ui-ring small { font-size: .52em; color: var(--u-crit); font-weight: 600; }
.ui-metrics { display: grid; gap: .6em; }
.ui-mrow { display: grid; grid-template-columns: 1fr 4.5em auto; align-items: center; gap: .5em; font-size: .62em; } .ui-mrow span { color: var(--u-soft); } .ui-mrow b { font-weight: 600; }
.ui-bar { height: .45em; border-radius: 99em; background: #eceef5; overflow: hidden; } .ui-bar i { display: block; height: 100%; background: var(--u-teal); border-radius: inherit; }
.ui-rec { width: 21em; padding: .7em .8em; display: flex; align-items: center; gap: .7em; transform: translateX(3em); }
.ui-rec > div { flex: 1; } .ui-rec b { display: block; font-size: .7em; font-weight: 600; } .ui-rec small { font-size: .58em; color: var(--u-ok); font-weight: 600; }

@media (prefers-reduced-motion: reduce) { .ui-stage * { animation: none !important; } }

/* minimal panel, Rubrik-dark UI pieces */
.v2-card__art.ui-art { background: #eeecf4; box-shadow: inset 0 0 0 1px rgba(22, 20, 29, .06);
  --u-ink: #eef1fb; --u-soft: #8f98b8; --u-line: rgba(255, 255, 255, .09); --u-blue: #4d7cff; --u-teal: #1fc1bd; --u-crit: #ff6b72; --u-warn: #ffbe3d; --u-ok: #36c48d; }
.ui-art::after { display: none; }
.ui-card { background: linear-gradient(165deg, #142456, #0c1840 70%); box-shadow: 0 0 0 1px rgba(255, 255, 255, .06) inset, 0 1.2em 2.4em -1.2em rgba(12, 20, 60, .55); }
.ui-head__dots i { background: rgba(255, 255, 255, .25); }
.ui-pill--crit { background: rgba(255, 107, 114, .16); } .ui-pill--high { background: rgba(255, 190, 61, .16); color: var(--u-warn); }
.ui-insight { background: rgba(255, 107, 114, .08); border-color: rgba(255, 107, 114, .28); }
.ui-sugg.is-rec { background: rgba(77, 124, 255, .16); color: #b8c9ff; }
.ui-input { color: #6d7698; }
.ui-btn { border-color: rgba(255, 255, 255, .16); }
.ui-search.is-focus { box-shadow: 0 0 0 .22em rgba(77, 124, 255, .22); }
.ui-caret { background: var(--u-ink); }
.ui-chip { background: #fff; color: #0f1530; box-shadow: 0 .6em 1.4em -.6em rgba(12, 20, 60, .45); }
.ui-map .e { stroke: rgba(255, 255, 255, .25); } .ui-map .n { fill: #0f1c48; stroke: #6d7698; } .ui-map .n--agent { fill: rgba(77, 124, 255, .2); stroke: var(--u-blue); } .ui-map .n--risk { fill: rgba(255, 107, 114, .2); }
.ui-map text { fill: var(--u-ink); } .ui-map .glyph { stroke: #b8c9ff; }
.ui-ghosts i { background: #fff; border-color: rgba(22, 20, 29, .1); box-shadow: 0 1px 2px rgba(22, 20, 29, .06); }
.ui-ghosts i::after { background: rgba(22, 20, 29, .18); }
.ui-merge { color: var(--ink); }
.ui-alert::before { background: rgba(20, 36, 86, .45); } .ui-alert::after { background: rgba(20, 36, 86, .22); }
.ui-spark-line .area { fill: rgba(77, 124, 255, .18); }
.ui-toggle { background: rgba(255, 255, 255, .18); }
.ui-av { background: rgba(77, 124, 255, .18); color: #b8c9ff; }
.ui-settings__nav { background: rgba(255, 255, 255, .03); }
.ui-settings__nav span.is-on { background: rgba(255, 255, 255, .08); box-shadow: none; }
.ui-res mark { background: rgba(255, 214, 80, .22); color: #ffe08a; }
.ui-res.is-hit { background: rgba(77, 124, 255, .14); }
.ui-ring .trk { stroke: rgba(255, 255, 255, .1); } .ui-bar { background: rgba(255, 255, 255, .1); }
/* tags and arrow sit on the light tray again */
.v2-card:has(.ui-art) .v2-card__go { background: #fff; border-color: var(--text); color: var(--text); }
.v2-card:has(.ui-art) .v2-card__new { background: #fff; border-color: var(--text); }
.v2-card:has(.ui-art) .v2-card__soon { background: #fff; border-color: var(--hair); color: var(--text-soft); }

/* line illustrations: ink lines, lavender fills, purple accents (same language as the case study headers) */
.v2-card__art .ln { fill: none; stroke: var(--line); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.v2-card__art .ln.faint { stroke: var(--line); stroke-opacity: .35; stroke-dasharray: 2 4; }
.v2-card__art .tn { fill: var(--fill); }
.v2-card__art .nd { fill: var(--bg); }
.v2-card__art .ac { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linecap: round; }
.v2-card__art .dot { fill: var(--accent); }
.v2-card__art .dash { stroke-dasharray: 3 5; animation: march 1.2s linear infinite; }
@keyframes march { to { stroke-dashoffset: -16; } }
.v2-card__art .pulse circle { fill: var(--accent); opacity: 0; transform-box: fill-box; transform-origin: center; animation: blip 2s ease-out infinite; }
.v2-card__art .pulse circle:nth-child(2) { animation-delay: .6s; }
@keyframes blip { 0% { opacity: .5; transform: scale(1); } 100% { opacity: 0; transform: scale(3); } }
.v2-card__art .pulse-ring { fill: none; stroke: var(--accent); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: ring 2s ease-out infinite; }
@keyframes ring { 0% { opacity: .8; transform: scale(1); } 100% { opacity: 0; transform: scale(2.2); } }
.v2-card__art .sweep { transform-origin: 122px 100px; animation: spin 3s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.v2-card__art .track { fill: none; stroke: var(--fill); stroke-width: 10; }
.v2-card__art .arc { fill: none; stroke: var(--accent); stroke-width: 10; stroke-linecap: round; stroke-dasharray: var(--v) 100; transform: rotate(-90deg); transform-box: fill-box; transform-origin: center; }
.v2-card__art .track.sm, .v2-card__art .arc.sm { stroke-width: 3; }
.v2-card__art .v2-score { animation: v2-score 5s ease-in-out infinite; }
@keyframes v2-score { 0%, 100% { stroke-dasharray: 40 100; } 50% { stroke-dasharray: 72 100; } }
.v2-card__art .score { font: 700 26px var(--font); fill: var(--line); letter-spacing: -.03em; }
.v2-card__art .badge { font: 700 8.5px var(--font); fill: var(--bg); }

/* about: a big statement with the photo set into it, bold stats, then the details */
.v2-about { padding: clamp(16px, 3vw, 40px) var(--gutter) clamp(32px, 5vw, 72px); max-width: 1440px; margin-inline: auto; }
.v2-about__head { display: grid; grid-template-columns: minmax(220px, 4fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 88px); align-items: start; }
.v2-about__photo { transform: rotate(-3deg); border: 2.5px solid var(--text); border-radius: 22px; overflow: hidden; box-shadow: 8px 8px 0 var(--ink); transition: transform .5s var(--ease); }
.v2-about__photo:hover { transform: rotate(0); }
.v2-about__photo img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.v2-about__intro { padding-top: clamp(0px, 1vw, 12px); }
.v2-about__statement { margin-top: 0; font-family: var(--font); font-stretch: 112%; font-size: clamp(30px, 3.4vw, 52px); font-weight: 750; line-height: 1.08; letter-spacing: -.025em; color: var(--text); text-wrap: balance; max-width: 15em; }
.v2-about__body p + p { margin-top: 1em; }
.v2-about__intro .v2-about__body { margin-top: 22px; max-width: 38em; }
.v2-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 32px; }
.v2-stats > div { padding: 18px 18px 16px; border: 1.5px solid var(--text); border-radius: 14px; }
.v2-stats dt { font-size: clamp(34px, 3.4vw, 52px); font-weight: 900; line-height: 1; letter-spacing: -.03em; color: var(--ink); }
.v2-stats dd { margin-top: 8px; font-size: 14px; line-height: 1.4; color: var(--text-soft); }
.v2-label { font-size: 13px; font-weight: 700; letter-spacing: .06em; margin-bottom: 18px; color: var(--ink); font-family: var(--font); font-stretch: 125%; text-transform: uppercase; }
/* experience: big ruled rows */
.v2-exp { margin-top: clamp(56px, 7vw, 104px); }
.v2-exp__list { list-style: none; border-top: 2px solid var(--text); }
.v2-exp__list li { display: grid; grid-template-columns: minmax(120px, 2fr) minmax(0, 6fr) minmax(0, 3fr); gap: 16px; align-items: baseline; padding: clamp(16px, 2vw, 24px) 0; border-bottom: 2px solid var(--text); transition: padding .4s var(--ease); }
.v2-exp__list li:hover { padding-left: 12px; }
.v2-exp__list time { font: 700 13px/1 var(--font); font-stretch: 125%; text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.v2-exp__list b { font-family: var(--font); font-stretch: 112%; font-size: clamp(20px, 2vw, 30px); font-weight: 750; line-height: 1.1; letter-spacing: -.025em; transition: color .25s; }
.v2-exp__list li:hover b { color: var(--ink); }
.v2-exp__list span { color: var(--text-soft); font-size: clamp(15px, 1.2vw, 17px); text-align: right; }
/* recognition: small tiles with the same depth as the project tiles */
.v2-rec { margin-top: clamp(48px, 6vw, 80px); }
.v2-rec__list { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.v2-rec__list li { display: grid; align-content: start; gap: 8px; padding: 18px 20px; background: #fff; border: 2px solid var(--text); border-radius: 16px; box-shadow: 5px 5px 0 var(--text); }
.v2-rec__meta { font: 700 11.5px/1.3 var(--font); font-stretch: 125%; text-transform: uppercase; letter-spacing: .04em; color: var(--ink); }
.v2-rec__list b { font-size: 16px; font-weight: 600; line-height: 1.3; }

/* contact */
.v2-contact { display: grid; justify-items: center; text-align: center; padding: clamp(8px, 2vw, 24px) 0 clamp(64px, 8vw, 128px); }
.v2-arc--talk { display: block; margin-top: clamp(40px, 6vw, 104px); margin-bottom: clamp(-64px, -3.5vw, -16px); }
.v2-contact__sub { position: relative; margin-top: 4px; padding-inline: var(--gutter); font-family: var(--font); font-stretch: 112%; font-size: clamp(20px, 2vw, 28px); font-weight: 750; letter-spacing: -.02em; }
.v2-socials { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 24px; padding-inline: var(--gutter); }
.v2-social { display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px 14px 20px; border-radius: 999px; background: #fff; border: 2.5px solid var(--text); color: var(--text); box-shadow: 5px 5px 0 var(--text); transition: transform .4s var(--ease), box-shadow .4s var(--ease), color .25s; }
.v2-social span { font: 600 16px/1 var(--text-font); }
.v2-social svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.v2-social .dot { fill: currentColor; stroke: none; }
.v2-social:hover { transform: translate(-2px, -3px); box-shadow: 8px 9px 0 var(--ink); color: var(--ink); }
.v2-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 24px var(--gutter); border-top: 1px solid var(--hair); font-size: 14px; color: var(--text-soft); }
.v2-footer a:hover { color: var(--ink); }

/* scroll reveals */
.v2-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.v2-reveal.is-in { opacity: 1; transform: none; }

@media (max-width: 860px) {
  .v2-rec__list { grid-template-columns: 1fr 1fr; }
  .v2-work { grid-template-columns: repeat(2, 1fr); }
  .v2-card--feature { grid-column: 1 / -1; }
  .v2-card--tall, .v2-card--third, .v2-card--half { grid-column: span 1; min-height: 340px; }
  .v2-about__head { grid-template-columns: 1fr; }
  .v2-about__photo { max-width: 300px; }
}
@media (max-width: 600px) {
  .v2-exp__list li { grid-template-columns: 1fr; gap: 6px; }
  .v2-exp__list span { text-align: left; }
  .v2-rec__list { grid-template-columns: 1fr 1fr; gap: 12px; }
  .v2-rec__list li { padding: 14px; box-shadow: 4px 4px 0 var(--text); }
  .v2-rec__list b { font-size: 14px; }
  .v2-rec__meta { font-size: 9.5px; letter-spacing: .03em; }
  .v2-rec__list li { gap: 6px; }
  .v2-work { grid-template-columns: 1fr; }
  .v2-card, .v2-card--feature, .v2-card--tall, .v2-card--third, .v2-card--half { grid-column: 1 / -1; min-height: 320px; }
  .v2-stats { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .v2-work { padding-top: 32px; row-gap: 36px; }
  .v2-stats > div { padding: 14px 12px 12px; border-radius: 12px; }
  .v2-stats dt { font-size: 30px; }
  .v2-stats dd { font-size: 12px; }
  .v2-about__photo { max-width: 240px; }
  .v2-contact__sub { font-size: 19px; }
  .v2-socials { gap: 10px; }
  .v2-social { padding: 11px 16px 11px 14px; box-shadow: 4px 4px 0 var(--text); }
  .v2-social span { font-size: 14px; }
  .v2-social svg { width: 18px; height: 18px; }
  .v2-arc { height: 92px; }
  .v2-arc:not(.v2-arc--down):not(.v2-arc--talk) { margin-top: 0; }
  .v2-hero { min-height: calc(100svh - 64px); }
  .v2-arc--talk { margin-top: 32px; margin-bottom: 0; }
  .v2-nav { gap: 18px; font-size: 12.5px; letter-spacing: .02em; }
  .v2-name { font-size: clamp(22px, 8vw, 32px); white-space: nowrap; }
  .v2-hero { padding-top: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .v2-card__art * { animation: none !important; }
  .v2-reveal { opacity: 1; transform: none; transition: none; }
}

/* password gate */
html.is-gated, html.is-gated body { overflow: hidden; }
html.is-gated body > :not(.gate) { display: none !important; }
.gate {
  position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px;
  background: var(--paper);
}
.gate__card { width: min(440px, 100%); }
.gate__logo { width: 28px; height: 28px; color: var(--purple); margin-bottom: 28px; animation: gate-spin 14s linear infinite; }
@keyframes gate-spin { to { transform: rotate(360deg); } }
.gate__title { font: 400 clamp(40px, 6vw, 56px)/1.05 var(--serif); font-style: italic; letter-spacing: -.01em; }
.gate__text { margin-top: 14px; color: var(--body); }
.gate__label { display: block; margin-top: 32px; margin-bottom: 8px; font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.gate__row { display: flex; gap: 10px; }
.gate__input {
  flex: 1; min-width: 0; height: 48px; padding: 0 16px; border: 1px solid var(--ink); border-radius: 999px;
  font: 400 16px var(--sans); color: var(--ink); background: #fff; outline: none; transition: box-shadow .2s;
}
.gate__input:focus { box-shadow: 0 0 0 3px rgba(85, 61, 246, .25); border-color: var(--purple); }
.gate__btn {
  height: 48px; padding: 0 22px; border: 0; border-radius: 999px; cursor: pointer;
  font: 500 15px var(--sans); color: #fff; background: var(--ink); transition: background .2s;
}
.gate__btn:hover { background: var(--purple); }
.gate__error { min-height: 1.7em; margin-top: 10px; font-size: 14px; color: #c62828; }
.gate__help { font-size: 14px; color: var(--muted); }
.gate__help a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.gate__help a:hover { color: var(--purple); }
.is-shaking { animation: gate-shake .4s; }
@keyframes gate-shake { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
@media (prefers-reduced-motion: reduce) { .gate__logo, .is-shaking { animation: none; } }
@media (max-width: 480px) { .gate__row { flex-direction: column; } .gate__input, .gate__btn { flex: none; width: 100%; } }
@media (max-width: 600px) {
  .v2-card--feature .v2-card__art.ui-art, .v2-card--half .v2-card__art.ui-art { aspect-ratio: 1 / 1; }
  .v2-card--feature .ui-stage, .v2-card--half .ui-stage { font-size: calc(100cqw / 25); }
  .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 23); padding-top: 2.4em; }
  .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 29); }
  .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 27); }
  .ui-stage--ai { grid-template-columns: 17em; }
  .ui-stage--ai .ui-canvas { display: none; }
  .ui-rec { transform: translateX(1.2em); }
}

/* vignettes, refined: calmer palette, one focused card per tile */
.v2-card__art.ui-art { --u-ink: #eef0f8; --u-soft: #8b93b0; --u-line: rgba(255, 255, 255, .08); --u-blue: #6f8fff; --u-teal: #4fd1c5; --u-crit: #ff8a8f; --u-warn: #f5c46a; --u-ok: #5fd3a2; background: #efedf5; }
.ui-card { background: linear-gradient(170deg, #17254f, #0f1a3d); box-shadow: 0 0 0 1px rgba(255, 255, 255, .05) inset, 0 1.6em 3em -1.6em rgba(15, 26, 61, .6), 0 .2em .5em rgba(15, 26, 61, .12); }
.ui-pill--crit { background: rgba(255, 138, 143, .14); } .ui-pill--high { background: rgba(245, 196, 106, .14); color: var(--u-warn); }
.ui-insight { background: rgba(255, 138, 143, .06); border-color: rgba(255, 138, 143, .22); }
.ui-sugg.is-rec { background: rgba(111, 143, 255, .14); border-color: rgba(111, 143, 255, .7); color: #c9d5ff; }
.ui-btn--solid { background: var(--u-blue); border-color: var(--u-blue); color: #0f1a3d; }
.ui-spark { background: var(--u-blue); }

/* Rubrik AI: the chat alone */
.ui-stage--ai { grid-template-columns: 19em; }
.v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 34); }

/* Alerts: one grouped alert, its instances inside */
.ui-stage--alerts { grid-template-columns: auto; }
.v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 19); padding-top: 1.6em; }
.v2-card .ui-alert, .v2-card--tall .ui-alert { width: 15.5em; padding: 1em; gap: .5em; }
.ui-alert::before, .ui-alert::after { content: none; }
.ui-count { background: rgba(111, 143, 255, .16); color: #c9d5ff; font-weight: 600; }
.ui-spark-line { height: 2.2em; margin: .2em 0 .1em; } .ui-spark-line .area { fill: rgba(111, 143, 255, .14); }
.ui-inst { display: grid; gap: .35em; padding-top: .55em; border-top: 1px solid var(--u-line); }
.ui-inst > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .5em; }
.ui-inst .ui-av { width: 1.7em; height: 1.7em; font-size: .52em; }
.ui-inst b { font-size: .62em; font-weight: 500; } .ui-inst small { font-size: .55em; color: var(--u-soft); }
.ui-inst__more { display: block !important; font-size: .55em; color: var(--u-soft); padding-left: 2.3em; }
.ui-alert__foot { justify-content: flex-end; padding-top: .2em; }

/* Policies: an insight recommends a pack */
.ui-stage--policy { gap: .7em; }
.ui-pinsight { width: 22em; display: flex; align-items: center; gap: .7em; padding: .75em .9em; transform: translateX(-1.6em); }
.ui-pinsight > div { flex: 1; } .ui-pinsight b { display: block; font-size: .68em; font-weight: 600; } .ui-pinsight small { font-size: .56em; color: var(--u-soft); }
.ui-pack { width: 22em; padding: 1em; display: grid; gap: .15em; transform: translateX(1.6em); }
.ui-pack__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: .65em; margin-bottom: .2em; border-bottom: 1px solid var(--u-line); }
.ui-pack__head small { display: block; font-size: .54em; color: var(--u-soft); text-transform: uppercase; letter-spacing: .08em; } .ui-pack__head b { font-size: .82em; font-weight: 600; }
.ui-pack__row { display: flex; align-items: center; gap: .6em; padding: .45em 0; } .ui-pack__row b { font-size: .66em; font-weight: 500; }
.ui-check { display: grid; place-items: center; width: 1.25em; height: 1.25em; border-radius: 50%; background: rgba(95, 211, 162, .16); flex: none; }
.ui-check svg { width: .75em; height: .75em; fill: none; stroke: var(--u-ok); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* DSCC: thinner donut, quieter bars */
.ui-ring .trk, .ui-ring .val { stroke-width: 4.5; }
.ui-ring .trk { stroke: rgba(255, 255, 255, .08); }
.ui-ring b { font-size: 1.35em; font-weight: 600; } .ui-ring small { color: var(--u-warn); font-weight: 500; }
.ui-bar { height: .3em; } .ui-bar i { background: var(--u-teal); opacity: .85; }
.ui-mrow b { font-weight: 500; color: var(--u-ink); }
.ui-rec { padding: .65em .8em; } .ui-rec small { color: var(--u-ok); font-weight: 500; }

@media (max-width: 600px) {
  .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 22); padding-top: 2.4em; }
  .ui-pinsight, .ui-pack { transform: none; }
  .ui-rec { transform: translateX(1em); }
}
@media (min-width: 601px) and (max-width: 860px) { .v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 24); } }
.v2-card__art.ui-art { background: none; box-shadow: none; border-radius: 0; overflow: visible; }
.v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 40); }
.v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 21.5); padding-top: 3.4em; }
.ui-alert .ui-spark-line { height: 1.8em; }
.ui-btn--solid { color: #fff; background: #5b7cf5; border-color: #5b7cf5; }
.ui-pinsight { width: 25em; }
@media (max-width: 600px) { .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 23); padding-top: 2.8em; } .v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 22); } }
.ui-alert__foot > span.ui-btn { font-size: .62em; color: #fff; display: inline-flex; }
.v2-card__art.ui-art svg.ui-spark-line, .v2-card__art.ui-art svg.ui-map { width: 100%; }

/* vignette motion: each tile plays its idea on a quiet loop */
/* Rubrik AI: suggestion glows, cursor clicks it, the repo comes back */
.ui-chat { position: relative; }
.ui-cursor { position: absolute; width: 1.15em; height: auto !important; left: 70%; top: 92%; fill: #fff; stroke: #0f1a3d; stroke-width: 1.4; stroke-linejoin: round; filter: drop-shadow(0 .15em .3em rgba(0, 0, 0, .35)); animation: ui-cur 7s cubic-bezier(.45, 0, .2, 1) infinite; z-index: 2; }
@keyframes ui-cur { 0%, 12% { left: 72%; top: 96%; opacity: 0; } 18% { opacity: 1; } 38% { left: 40%; top: 59%; transform: scale(1); } 42% { transform: scale(.86); } 46% { transform: scale(1); } 70% { left: 40%; top: 59%; opacity: 1; } 78%, 100% { opacity: 0; left: 40%; top: 59%; } }
.ui-sugg.is-rec { animation: ui-rec 7s ease-in-out infinite; }
@keyframes ui-rec { 0%, 30% { box-shadow: 0 0 0 0 rgba(111, 143, 255, 0); } 38% { box-shadow: 0 0 0 .3em rgba(111, 143, 255, .22); } 42% { background: rgba(111, 143, 255, .32); } 55%, 100% { box-shadow: 0 0 0 0 rgba(111, 143, 255, 0); background: rgba(111, 143, 255, .14); } }
.ui-toast { position: absolute; right: -7.5em; bottom: 3.6em; display: flex; align-items: center; gap: .6em; padding: .7em .85em; width: 12.5em; animation: ui-toast 7s cubic-bezier(.2, .8, .2, 1) infinite; }
.ui-toast b { display: block; font-size: .66em; font-weight: 600; } .ui-toast small { font-size: .55em; color: var(--u-soft); }
@keyframes ui-toast { 0%, 46% { opacity: 0; transform: translateY(1em) scale(.96); } 54%, 88% { opacity: 1; transform: none; } 96%, 100% { opacity: 0; transform: translateY(-.4em); } }

/* Alerts: new instance joins the group, the trend draws in */
.ui-chip--group { position: absolute; left: -1.6em; top: -1.5em; transform: rotate(-3deg); gap: .4em; }
.ui-chip--group svg { width: 1em; height: 1em; fill: none; stroke: #5b7cf5; stroke-width: 1.5; }
.ui-spark-line .ln { stroke-dasharray: 1; stroke-dashoffset: 1; animation: ui-draw 6s ease-out infinite; }
@keyframes ui-draw { 0% { stroke-dashoffset: 1; } 35%, 100% { stroke-dashoffset: 0; } }
.ui-spark-line .tip { fill: var(--u-blue); opacity: 0; animation: ui-tip 6s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes ui-tip { 0%, 32% { opacity: 0; transform: scale(.4); } 38% { opacity: 1; transform: scale(1.4); } 46%, 100% { opacity: 1; transform: scale(1); } }
.ui-inst__new { animation: ui-new 6s ease-out infinite; border-radius: .35em; }
@keyframes ui-new { 0%, 40% { opacity: 0; max-height: 0; transform: translateY(-.4em); } 50% { opacity: 1; max-height: 3em; transform: none; background: rgba(111, 143, 255, .2); } 75%, 100% { opacity: 1; max-height: 3em; background: transparent; } }

/* MSP: a highlight moves through tenants, the at-risk one pulses */
.ui-tlist { position: relative; display: grid; }
.ui-scan { position: absolute; left: -.4em; right: -.4em; height: 25%; top: 0; border-radius: .45em; background: rgba(111, 143, 255, .14); animation: ui-scan 6s steps(1) infinite; }
@keyframes ui-scan { 0% { top: 0; } 25% { top: 25%; } 50% { top: 50%; } 75% { top: 75%; } }
.ui-tlist .ui-trow { position: relative; }
.ui-dot--crit { animation: ui-pulse 1.6s ease-out infinite; }
@keyframes ui-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 138, 143, .55); } 100% { box-shadow: 0 0 0 .6em rgba(255, 138, 143, 0); } }

/* Policies: the pack checks in, then Add pack invites */
.ui-pack__row .ui-check { animation: ui-check 6s ease-out infinite; }
.ui-pack__row:nth-of-type(3) .ui-check { animation-delay: .35s; } .ui-pack__row:nth-of-type(4) .ui-check { animation-delay: .7s; }
@keyframes ui-check { 0%, 10% { transform: scale(0); opacity: 0; } 18% { transform: scale(1.25); opacity: 1; } 24%, 100% { transform: scale(1); opacity: 1; } }
.ui-pack__head .ui-btn--solid { animation: ui-cta 6s ease-in-out infinite; }
@keyframes ui-cta { 0%, 40% { box-shadow: 0 0 0 0 rgba(91, 124, 245, 0); } 50% { box-shadow: 0 0 0 .35em rgba(91, 124, 245, .25); } 65%, 100% { box-shadow: 0 0 0 0 rgba(91, 124, 245, 0); } }
.ui-pinsight .ui-spark { animation: ui-twinkle 3s ease-in-out infinite; }
@keyframes ui-twinkle { 50% { transform: scale(1.25) rotate(20deg); opacity: .8; } }

@media (max-width: 600px) { .ui-toast { right: -1em; bottom: -2.4em; } .ui-chip--group { left: -.6em; } }
@media (prefers-reduced-motion: reduce) { .ui-toast { opacity: 1; } .ui-cursor { display: none; } .ui-spark-line .ln { stroke-dashoffset: 0; } .ui-inst__new, .ui-pack__row .ui-check, .ui-spark-line .tip { opacity: 1; transform: none; max-height: none; } }
.v2-card__art.ui-art svg.ui-cursor { width: 1.15em; }
.v2-card__art.ui-art .ui-chip svg { width: 1em; height: 1em; }

/* fewer words, bigger pieces on the wide tiles */
.ui-trow { grid-template-columns: auto 1fr auto; }
.ui-insight { gap: .35em; }
.ui-pinsight { width: auto; padding: .7em 1em; } .ui-pinsight b { font-size: .74em; }
.ui-pack { width: 19em; }
.ui-score { width: 21em; } .ui-mrow { grid-template-columns: 4.6em 1fr auto; }
.ui-rec { width: auto; min-width: 13em; } .ui-rec b { font-size: .72em; } .ui-rec small { font-size: .62em; }
.ui-toast { width: auto; right: -6.2em; bottom: 4.2em; padding: .65em .9em; } .ui-toast b { font-size: .7em; }
.ui-settings { width: 23em; grid-template-columns: 7em 1fr; }
@media (min-width: 601px) {
  .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 30); }
  .v2-card--feature .ui-stage--policy { font-size: calc(100cqw / 30); }
  .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 27); }
  .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 25); }
}
@media (min-width: 601px) {
  .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 32); padding-top: 1em; }
  .v2-card--feature .ui-stage--policy { font-size: calc(100cqw / 33); padding-top: 1.6em; }
  .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 30); padding-top: 1.4em; }
  .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 30); padding-top: 1.8em; }
  .v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 17.5); padding-top: 2.6em; }
  .v2-card--tall .ui-stage--msp { font-size: calc(100cqw / 18); padding-top: 1.6em; }
  .v2-card--tall .ui-tenants { width: 15em; }
}

/* skeleton UI: structure and status read, copy becomes soft bars */
.ui-sk { display: block; flex: none; width: var(--w); max-width: 100%; height: .5em; border-radius: 99em; background: rgba(255, 255, 255, .2); }
.ui-sk--hi { background: rgba(255, 255, 255, .55); height: .56em; } .ui-sk--lo { background: rgba(255, 255, 255, .12); height: .42em; }
.ui-sk--blue { background: rgba(160, 182, 255, .75); } .ui-sk--white { background: rgba(255, 255, 255, .9); height: .42em; }
.ui-sk--dark { background: rgba(15, 26, 61, .35); height: .42em; }
.ui-sk--mark { background: rgba(245, 196, 106, .75); } .ui-sk--markdim { background: rgba(245, 196, 106, .3); }
.ui-tag { display: inline-block; width: 2.6em; height: .95em; border-radius: 99em; flex: none; }
.ui-tag--crit { background: rgba(255, 138, 143, .5); } .ui-tag--warn { background: rgba(245, 196, 106, .55); }
.ui-head { gap: .55em; } .ui-head__num { margin-left: auto; font-size: .7em; font-weight: 600; color: var(--u-soft); }
.ui-insight { display: grid; gap: .5em; padding: .8em .85em; }
.ui-sugg { gap: .55em; padding: .55em .75em; }
.ui-input { padding: .55em .5em .55em .85em; }
.ui-btn .ui-sk { margin: .15em 0; }
.ui-toast { gap: .65em; padding: .7em .95em; }
.ui-alert__top { margin-bottom: .2em; } .ui-count { font-size: .78em; }
.ui-inst > div { grid-template-columns: auto 1fr auto; gap: .6em; padding: .15em .1em; }
.ui-inst .ui-av, .ui-trow .ui-av { width: 1.15em; height: 1.15em; font-size: 1em; border-radius: 50%; background: rgba(111, 143, 255, .3); }
.ui-trow .ui-av { border-radius: .3em; }
.ui-trow { gap: .7em; padding: .55em 0; }
.ui-pinsight { gap: .8em; padding: .85em 1em; }
.ui-pack__head > div { display: grid; gap: .45em; }
.ui-pack__row { gap: .7em; padding: .55em 0; }
.ui-settings__nav { gap: .55em; padding: 1.1em .9em; } .ui-settings__nav > .ui-sk { margin-bottom: .4em; }
.ui-settings__nav span { display: block; padding: .5em .55em; border-radius: .4em; }
.ui-settings__main { gap: .55em; padding: 1.1em; }
.ui-search { gap: .55em; } .ui-search.is-focus .ui-caret { margin-left: -.35em; }
.ui-res { display: flex; gap: .4em; align-items: center; padding: .7em .7em; }
.ui-mrow { grid-template-columns: 4.4em 1fr; gap: .8em; } .ui-metrics { gap: .9em; }
.ui-bar { height: .38em; }
.ui-ring b { font-size: 1.6em; }
.ui-rec { gap: .7em; padding: .7em .85em; min-width: 0; } .ui-rec .ui-btn { margin-left: auto; }

/* wide tiles: compositions spread sideways */
.ui-prog { display: block; height: .32em; border-radius: 99em; background: rgba(255, 255, 255, .1); overflow: hidden; }
.ui-prog i { display: block; height: 100%; width: 100%; background: var(--u-ok); border-radius: inherit; transform-origin: left; animation: ui-prog 7s ease-out infinite; }
@keyframes ui-prog { 0%, 48% { transform: scaleX(0); } 70%, 100% { transform: scaleX(1); } }
.ui-pinsight { display: grid; gap: .6em; align-content: start; }
.ui-pinsight__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .2em; }
.ui-pinsight__agents { display: flex; margin-top: .3em; } .ui-pinsight__agents .ui-av { width: 1.3em; height: 1.3em; border-radius: 50%; background: rgba(111, 143, 255, .35); box-shadow: 0 0 0 .18em #13204a; } .ui-pinsight__agents .ui-av + .ui-av { margin-left: -.35em; }
@media (min-width: 601px) {
  .v2-card--feature .v2-card__art.ui-art { aspect-ratio: 16 / 6.6; }
  .v2-card--feature .ui-stage--ai { grid-template-columns: 19em 12.5em; gap: 1.6em; align-items: center; font-size: calc(100cqw / 40); padding-top: 0; }
  .v2-card--feature .ui-stage--ai .ui-sugg:not(.is-rec) { display: none; }
  .ui-stage--ai .ui-toast { position: static; display: grid; gap: .65em; padding: 1.1em; justify-items: start; }
  .ui-stage--ai .ui-toast .ui-prog { width: 100%; margin-top: .3em; }
  .v2-card--feature .ui-stage--policy { grid-template-columns: 12.5em 19em; gap: 1.4em; align-items: center; font-size: calc(100cqw / 40); padding-top: 0; }
  .v2-card--feature .ui-pinsight, .v2-card--feature .ui-pack { transform: none; width: auto; }
  .v2-card--feature .ui-pinsight { padding: 1.1em; }
  .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 31); }
  .v2-card--half .ui-score { width: 25em; }
}
@media (max-width: 600px) { .ui-stage--ai .ui-toast { position: absolute; right: -.6em; bottom: -2.2em; display: grid; gap: .5em; padding: .8em; } .ui-stage--ai .ui-toast .ui-prog { width: 100%; } .ui-stage--policy { gap: .8em; } }
/* key labels back, details stay as soft bars */
.ui-chat .ui-head b { font-size: 1em; }
.ui-insight b { font-size: .76em; font-weight: 600; }
.ui-sugg.is-rec { font-size: .66em; padding: .65em .9em; }
.ui-toast b { font-size: .72em; font-weight: 600; }
.ui-alert__title { font-size: .82em; }
.ui-alert__foot > span.ui-btn { font-size: .62em; }
.ui-pinsight b { font-size: .74em; font-weight: 600; line-height: 1.3; }
.ui-pack__row b { font-size: .66em; font-weight: 500; }
.ui-trow b { font-size: .66em; font-weight: 500; }
.ui-tenants .ui-head b { font-size: 1em; }
.ui-settings__nav b { font-size: .74em; margin-bottom: .3em; }
.ui-res b { font-size: .68em; font-weight: 600; }
.ui-ring small { display: block; margin-top: .2em; font-size: .46em; color: var(--u-soft); font-weight: 500; letter-spacing: .02em; }
.ui-rec b { font-size: .68em; font-weight: 600; flex: 1; }
.ui-rec .ui-btn { font-size: .62em; }
@media (min-width: 601px) {
  .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 31); grid-template-columns: 17em 12em; gap: 2.2em; }
  .v2-card--feature .ui-stage--policy { font-size: calc(100cqw / 32); grid-template-columns: 12em 18em; gap: 1.8em; }
  .v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 19.5); padding-top: 3.2em; }
}
.ui-pack__head { gap: 1em; } .ui-pack__head b { white-space: nowrap; } .ui-pack__head .ui-btn { flex: none; }
@media (min-width: 601px) {
  .v2-card--feature .v2-card__art.ui-art { aspect-ratio: 16 / 7.2; }
  .v2-card--feature .ui-stage--ai { font-size: calc(100cqw / 36); padding-top: 2.8em; }
  .v2-card--feature .ui-stage--policy { font-size: calc(100cqw / 37); padding-top: 2.8em; }
}
@media (max-width: 600px) {
  .ui-stage--ai .ui-toast { bottom: -1em; right: -1.4em; }
  .v2-card--feature .ui-stage--ai { padding-top: 1.6em; align-content: start; }
}

/* static, balanced vignettes */
.ui-stage *, .ui-stage *::before, .ui-stage *::after { animation: none !important; }
.ui-ring .val { stroke-dasharray: 47.5 100; }
.ui-spark-line .ln { stroke-dashoffset: 0; }
.ui-caret { opacity: 1; }
a.v2-card:hover .ui-card { transform: none; }
.v2-card__art.ui-art { aspect-ratio: 16 / 9; }
.v2-card--feature .v2-card__art.ui-art { aspect-ratio: 16 / 6.4; }
.v2-card--tall .v2-card__art.ui-art { aspect-ratio: 1 / .95; }
.ui-stage { padding: 2.6em 1.5em 1em; }

/* two equal cards with a connector */
.ui-stage--pair { grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 0; width: 100%; max-width: 40em; margin: 0 auto; padding-inline: 2em; }
.ui-pane { display: grid; align-content: start; gap: .6em; padding: 1em; min-width: 0; }
.ui-pane .ui-head { margin-bottom: .1em; }
.ui-pane__title { font-size: .76em; font-weight: 600; line-height: 1.3; }
.ui-eyebrow { font-size: .55em; color: var(--u-soft); text-transform: uppercase; letter-spacing: .08em; }
.ui-link { position: relative; align-self: center; width: 2.6em; display: grid; place-items: center; }
.ui-link i { position: absolute; left: 0; right: 0; top: 50%; border-top: 1.5px dashed rgba(91, 124, 245, .7); }
.ui-link svg { position: relative; width: 1.4em; height: 1.4em; padding: .3em; border-radius: 50%; background: #5b7cf5; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; box-shadow: 0 0 0 .3em #fff; }
.ui-done { display: grid; gap: .45em; justify-items: start; padding: .8em .85em; border: 1px solid rgba(95, 211, 162, .28); border-radius: .6em; background: rgba(95, 211, 162, .07); }
.ui-done b { font-size: .76em; font-weight: 600; }
.ui-check--lg { width: 1.6em; height: 1.6em; } .ui-check--lg svg { width: .95em; height: .95em; }
.ui-pane .ui-sugg.is-rec { font-size: .62em; }
.ui-pane .ui-pinsight__top { margin-bottom: 0; }
.ui-pane .ui-pack__row { padding: .35em 0; }
.ui-pane .ui-pack__head, .ui-pane .ui-btn { flex: none; }

/* alerts: instances flow into one group */
.ui-stage--alerts { grid-template-columns: auto 2em auto; align-items: center; justify-content: center; gap: .3em; }
.v2-card--tall .ui-stage--alerts { grid-template-columns: auto; justify-items: center; font-size: calc(100cqw / 19); padding-top: 3.2em; }
.ui-minis { display: grid; gap: .35em; }
.ui-mini { display: flex; align-items: center; gap: .45em; padding: .45em .6em; border-radius: .5em; background: #fff; box-shadow: 0 0 0 1px rgba(22, 20, 29, .08), 0 .2em .5em rgba(22, 20, 29, .05); }
.ui-mini .ui-dot { width: .4em; height: .4em; }
.ui-funnel svg { display: block; width: 100%; height: 3.4em; fill: none; stroke: #5b7cf5; stroke-width: 1.3; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
.v2-card--tall .ui-minis { grid-template-columns: 1fr 1fr; gap: .3em; }
.v2-card--tall .ui-funnel { width: 6em; height: 1.6em; }
.v2-card--tall .ui-funnel svg { height: 1.6em; transform: rotate(90deg) scale(.45, 1.6); }
.v2-card--tall .ui-alert { width: 14em; }
.ui-alert { gap: .45em; padding: 1em; }

/* sizes per tile, desktop */
@media (min-width: 601px) {
  .v2-card--feature .ui-stage--pair { font-size: calc(100cqw / 38); max-width: none; padding-inline: 8%; }
  .v2-card--tall .ui-stage--msp { font-size: calc(100cqw / 19); padding-top: 3em; }
  .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 28); padding-top: 3em; }
  .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 30); padding-top: 3em; }
  .v2-card--feature .ui-stage--ai, .v2-card--feature .ui-stage--policy { font-size: inherit; }
}
@media (max-width: 600px) {
  .v2-card--feature .v2-card__art.ui-art { aspect-ratio: 1 / .78; }
  .v2-card--feature .ui-stage--pair { font-size: calc(100cqw / 25); padding-inline: .6em; padding-top: 3.4em; }
  .ui-link { width: 1.6em; }
}
.ui-stage--pair { grid-template-columns: minmax(0, 1fr) 3.2em minmax(0, 1fr); align-items: stretch; }
.ui-stage--pair > .ui-pane { width: 100%; height: 100%; }
.ui-link { width: 3.2em; }
.ui-link i { border-top: 2px dashed #5b7cf5; }
@media (min-width: 601px) {
  .v2-card--feature .v2-card__art.ui-art { aspect-ratio: 16 / 6.8; }
  .v2-card--feature .ui-stage--pair { font-size: calc(100cqw / 42); padding: 3.6em 12% 1.4em; align-content: center; }
}
@media (max-width: 600px) {
  .v2-card--feature .v2-card__art.ui-art { aspect-ratio: auto; }
  .v2-card--feature .ui-stage--pair { position: relative; inset: auto; grid-template-columns: 1fr; grid-template-rows: auto 2.4em auto; font-size: calc(100cqw / 19); padding: 3.2em .4em .6em; }
  .ui-stage--pair .ui-link { width: auto; height: 2.4em; justify-self: center; }
  .ui-stage--pair .ui-link i { left: 50%; right: auto; top: 0; bottom: 0; border-top: 0; border-left: 2px dashed #5b7cf5; }
  .ui-stage--pair .ui-link svg { transform: rotate(90deg); }
}

/* writing: bold cards, two side by side, same depth as the work tiles */
.v2-writing { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 3vw, 48px); }
.v2-writing__label { grid-column: 1 / -1; }
.v2-post { grid-template-columns: 1fr; gap: 0; align-items: stretch; padding: clamp(24px, 2.6vw, 36px); border: 2.5px solid var(--text); border-bottom: 2.5px solid var(--text); border-radius: 22px; background: #fff; box-shadow: 8px 8px 0 var(--text); transition: transform .45s var(--ease), box-shadow .45s var(--ease); }
a.v2-post:hover { transform: translate(-3px, -4px); box-shadow: 11px 12px 0 var(--ink); }
.v2-post__art { aspect-ratio: 16 / 8; border: 0; border-radius: 14px; background: #f1eefc; margin-bottom: 22px; }
.v2-post:hover .v2-post__art { transform: none; box-shadow: none; }
.v2-post__art svg { width: auto; height: 78%; }
.v2-post__text { padding-right: 0; }
.v2-post__go { top: clamp(36px, 3.6vw, 50px); right: clamp(36px, 3.6vw, 50px); transform: none; background: #fff; }
a.v2-post:hover .v2-post__go { transform: rotate(45deg); }
.v2-post__meta { color: var(--ink); }
.v2-post__title { font-size: clamp(22px, 2.1vw, 30px); }
@media (max-width: 860px) { .v2-writing { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .v2-post { grid-template-columns: 1fr; } .v2-post__go { top: 32px; right: 32px; bottom: auto; } .v2-post__text { padding-right: 0; } }
.v2-post__art { overflow: hidden; display: grid; place-items: center; padding: 6% 0; }
.v2-post .v2-post__art svg, .v2-card__art.v2-post__art svg { width: auto; height: 100%; max-width: 80%; max-height: 100%; }
.v2-post .v2-post__art { position: relative; display: block; padding: 0; }
.v2-post .v2-post__art svg { position: absolute; left: 50%; top: 50%; width: auto; height: 76%; max-width: 80%; transform: translate(-50%, -50%); }
.v2-post .v2-post__go { z-index: 2; }
/* experience: company as prominent as the role, no hover motion */
.v2-exp__list li, .v2-exp__list li:hover { padding-left: 0; transition: none; }
.v2-exp__list li:hover b { color: inherit; }
.v2-exp__list span { font-family: var(--font); font-stretch: 112%; font-size: clamp(18px, 1.7vw, 26px); font-weight: 750; letter-spacing: -.02em; color: var(--ink); }
.v2-exp__list b { font-family: var(--text-font); font-stretch: 100%; font-size: clamp(16px, 1.3vw, 19px); font-weight: 500; letter-spacing: 0; color: var(--text); }
.v2-exp__list li { grid-template-columns: minmax(110px, 2fr) minmax(0, 4fr) minmax(0, 6fr); }
.v2-exp__list span { order: -1; text-align: left; }
.v2-exp__list time { order: -2; }
@media (max-width: 600px) { .v2-exp__list span { font-size: 20px; } }
/* no corner controls now: visuals sit higher, more air above the text */
.v2-work .ui-stage { padding-top: 1em !important; }
.v2-work .v2-card--tall .ui-stage, .v2-work .v2-card--feature .ui-stage--pair { padding-top: .8em !important; }
.v2-work .v2-card__art.ui-art { margin-bottom: clamp(28px, 3vw, 44px); }
.v2-work .v2-card:has(.ui-art) .v2-card__soon { top: auto; bottom: auto; position: static; display: inline-block; justify-self: start; margin: 0 0 12px; }
.v2-work .v2-card:has(.v2-card__soon) { display: flex; flex-direction: column; }
.v2-work .v2-card:has(.v2-card__soon) .v2-card__soon { order: 2; align-self: flex-start; }
.v2-work .v2-card:has(.v2-card__soon) .v2-card__art { order: 1; }
.v2-work .v2-card:has(.v2-card__soon) .v2-card__meta { order: 3; margin-top: 0; }
/* alerts: one alert with its grouped copies stacked behind */
.ui-stage--alerts, .v2-card--tall .ui-stage--alerts { grid-template-columns: auto; justify-items: center; align-content: center; }
.ui-alert-stack { position: relative; padding-bottom: 1.4em; }
.ui-alert-stack .ui-alert { position: relative; z-index: 2; }
.ui-ghost { position: absolute; left: 50%; bottom: 0; height: 60%; border-radius: .9em; background: linear-gradient(170deg, #17254f, #0f1a3d); transform: translateX(-50%); }
.ui-ghost--1 { width: 90%; bottom: .7em; opacity: .55; z-index: 1; }
.ui-ghost--2 { width: 80%; opacity: .28; z-index: 0; }
.v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 15); }
.v2-card--tall .ui-alert { width: 13.5em; }
/* tighter tiles: no forced heights, the visual area fills what's left */
.v2-work .v2-card, .v2-work .v2-card--feature, .v2-work .v2-card--tall, .v2-work .v2-card--third, .v2-work .v2-card--half { min-height: 0; }
.v2-work .v2-card__art.ui-art { flex: 1 1 auto; aspect-ratio: auto; min-height: clamp(220px, 20vw, 300px); }
.v2-work .v2-card--feature .v2-card__art.ui-art { min-height: clamp(240px, 21vw, 320px); }
.v2-work .v2-card--tall .v2-card__art.ui-art { min-height: clamp(260px, 23vw, 340px); }
.v2-work .ui-stage { position: absolute; inset: 0; }
.v2-work .v2-card:has(.ui-art) .v2-card__meta { margin-top: 0; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .ui-stage--pair { font-size: calc(100cqw / 36); padding: .6em 10% .6em; }
  .v2-work .v2-card--tall .ui-stage--msp { font-size: calc(100cqw / 17); padding-top: .6em !important; }
  .v2-work .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 25); }
  .v2-work .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 27); }
}
@media (max-width: 600px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art { min-height: 0; }
  .v2-work .v2-card--feature .ui-stage--pair { position: relative; }
}
/* hero back near the top, so Selected work shows on the first screen */
.v2-hero { min-height: 0; align-content: start; padding: clamp(40px, 7vh, 80px) var(--gutter) clamp(8px, 2vh, 24px); }
.v2-arc:not(.v2-arc--down):not(.v2-arc--talk) { margin-top: clamp(8px, 2vw, 32px); }
@media (max-width: 600px) { .v2-hero { min-height: 0; } }
.v2-arc:not(.v2-arc--down):not(.v2-arc--talk) { margin-top: clamp(32px, 5vw, 80px); }
/* first tile: shorter pair */
.ui-stage--pair .ui-pane .ui-sugg:not(.is-rec) { display: none; }
.ui-stage--pair .ui-insight b { white-space: nowrap; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-stage--pair) { min-height: clamp(200px, 17vw, 260px); }
  .v2-work .v2-card--feature .ui-stage--pair { font-size: calc(100cqw / 44); padding: .4em 14% .4em; }
}
/* MSP: shorter, same family as the others */
.v2-work .v2-card--tall .v2-card__art.ui-art:has(.ui-stage--msp) { min-height: clamp(200px, 17vw, 260px); }
@media (min-width: 601px) { .v2-work .v2-card--tall .ui-stage--msp { font-size: calc(100cqw / 20); } }
.ui-tenants .ui-search { display: none; }
@media (min-width: 601px) {
  .v2-work .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 34); }
  .v2-work .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 36); }
  .v2-work .v2-card--half .v2-card__art.ui-art { min-height: clamp(200px, 17vw, 260px); }
}
/* settings + dscc: compact, same family */
.ui-settings__main { padding: .9em; gap: .5em; }
.ui-settings__nav { padding: .9em .8em; }
.ui-dscc { position: relative; padding-bottom: 1.6em; }
.ui-dscc .ui-score { width: 21em; padding: 1em; grid-template-columns: 6.8em 1fr; }
.ui-dscc .ui-rec { position: absolute; right: -1.2em; bottom: 0; transform: none; z-index: 2; }
.ui-dscc .ui-metrics { gap: 1em; }
@media (min-width: 601px) {
  .v2-work .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 30); }
  .v2-work .v2-card--half .ui-stage--dscc { font-size: calc(100cqw / 30); }
}
@media (max-width: 600px) { .ui-dscc .ui-rec { right: -.4em; } }
/* policies: a little more substance */
.ui-pane__sub { font-size: .58em; color: var(--u-soft); margin-top: -.25em; }
.ui-pane__foot { display: flex; align-items: center; gap: .6em; margin-top: auto; padding-top: .7em; border-top: 1px solid var(--u-line); }
.ui-pane__foot small { font-size: .56em; color: var(--u-soft); }
.ui-pane__foot .ui-pinsight__agents { margin-top: 0; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-pinsight__top) { min-height: clamp(230px, 19vw, 290px); }
  .v2-work .v2-card--feature .ui-stage--pair:has(.ui-pinsight__top) { font-size: calc(100cqw / 40); }
}
/* consistency: every visual centered in its area; insight footer pinned */
.ui-pane { display: flex; flex-direction: column; }
.ui-pane > * + * { margin-top: .55em; }
.ui-pane .ui-pane__foot { margin-top: auto; }
.ui-pack__row b { white-space: nowrap; }
.v2-work .ui-stage { align-content: center !important; padding-top: 1em !important; padding-bottom: 1em !important; }
.v2-work .ui-stage--pair { align-items: stretch; }
.ui-agents { display: grid; gap: .1em; margin-top: .7em !important; }
.ui-agents > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .6em; padding: .45em 0; border-top: 1px solid var(--u-line); }
.ui-agents .ui-av { width: 1.2em; height: 1.2em; border-radius: .3em; background: rgba(111, 143, 255, .3); }
.ui-agents b { font-size: .62em; font-weight: 500; }
.ui-agents .ui-tag { width: 1.8em; height: .7em; }
@media (min-width: 601px) { .v2-work .v2-card--feature .ui-stage--pair:has(.ui-pinsight__top) { font-size: calc(100cqw / 44); } }
/* settings: plain search */
.ui-search--filled { background: rgba(255, 255, 255, .06); border-color: transparent; color: var(--u-ink); box-shadow: none; }
.ui-search--filled span { font-size: 1em; }
/* dscc as a pair */
.ui-pill--ok { background: rgba(95, 211, 162, .16); color: var(--u-ok); }
.ui-ring--sm { width: 6.2em; align-self: center; margin: .2em 0 .4em; }
.ui-stage--dscc2 .ui-metrics { gap: .6em; }
.ui-stage--dscc2 .ui-mrow { grid-template-columns: 4em 1fr; }
.ui-pane__foot--end { justify-content: flex-end; border-top: 0; }
@media (min-width: 601px) {
  .v2-work .v2-card--half .ui-stage--dscc2 { font-size: calc(100cqw / 32); padding-inline: 6%; }
}
/* dscc: shorter pair */
.ui-stage--dscc2 .ui-pane { gap: 0; }
.ui-stage--dscc2 .ui-ring--sm { width: 5.4em; margin: .5em auto 0; }
.ui-stage--dscc2 .ui-pane__title { margin-top: .5em; }
.ui-stage--dscc2 .ui-pane__foot--end { padding-top: .5em; }
@media (min-width: 601px) { .v2-work .v2-card--half .v2-card__art.ui-art:has(.ui-stage--dscc2) { min-height: clamp(180px, 15vw, 230px); } }
/* first tile: two chat windows */
.ui-chatbox { gap: 0; }
.ui-chatbox > * + * { margin-top: .6em; }
.ui-msg { display: grid; grid-template-columns: auto 1fr; gap: .55em; align-items: start; }
.ui-msg > .ui-spark { margin-top: .6em; }
.ui-bubble { align-self: flex-end; max-width: 80%; padding: .55em .85em; border-radius: .9em .9em .25em .9em; background: rgba(111, 143, 255, .22); color: #dbe3ff; font-size: .64em; font-weight: 500; }
.ui-chatbox .ui-sugg.is-rec { margin-left: 1.5em; }
.ui-input--chat { margin-top: auto !important; padding: .5em .45em .5em .8em; }
.ui-input--chat .ui-send { display: grid; place-items: center; width: 1.55em; height: 1.55em; }
.ui-input--chat .ui-send svg { width: .8em; height: .8em; fill: none; stroke: #0f1a3d; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ui-chatbox .ui-input--chat { margin-top: .9em !important; }
.ui-chatbox .ui-done { padding: .65em .75em; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-stage--chat) { min-height: clamp(250px, 21vw, 320px); }
  .v2-work .v2-card--feature .ui-stage--chat { font-size: calc(100cqw / 42); }
}
/* chat tile fixes */
.ui-chatbox .ui-msg { min-width: 0; } .ui-chatbox .ui-insight, .ui-chatbox .ui-done { min-width: 0; }
.ui-chatbox .ui-insight b { white-space: normal; }
.ui-chatbox .ui-input--chat { margin-top: auto !important; }
.ui-chatbox .ui-sugg.is-rec + .ui-input--chat { margin-top: auto !important; }
.ui-chatbox { padding-bottom: .9em; }
.ui-chatbox .ui-sugg { margin-bottom: .6em; }
/* dscc: elements back, ring beside bars */
.ui-score2 { display: grid; grid-template-columns: 5em 1fr; gap: .9em; align-items: center; margin-top: .8em; }
.ui-stage--dscc2 .ui-ring--sm { width: 5em; margin: 0; }
.ui-stage--dscc2 .ui-ring b { font-size: 1.25em; }
.ui-stage--dscc2 .ui-mrow { grid-template-columns: 1fr; gap: .35em; }
.ui-stage--dscc2 .ui-metrics { gap: .7em; }
@media (min-width: 601px) { .v2-work .v2-card--half .v2-card__art.ui-art:has(.ui-stage--dscc2) { min-height: clamp(210px, 18vw, 270px); } }
@media (min-width: 601px) {
  .v2-work .v2-card--half .v2-card__art.ui-art:has(.ui-stage--dscc2) { min-height: clamp(250px, 21vw, 320px); }
  .v2-work .v2-card--half .ui-stage--dscc2 { font-size: calc(100cqw / 34); }
  .v2-work .v2-card--half .v2-card__art.ui-art:has(.ui-stage--settings) { min-height: clamp(250px, 21vw, 320px); }
}

/* rubrik ai chats: roomier */
.ui-stage--chat .ui-chatbox { padding: 1.1em 1.1em 1em; }
.ui-stage--chat .ui-chatbox > * + * { margin-top: .85em; }
.ui-stage--chat .ui-insight { padding: .85em .9em; gap: .55em; }
.ui-stage--chat .ui-insight b { white-space: nowrap; font-size: .74em; }
.ui-stage--chat .ui-done { padding: .8em .9em; gap: .55em; }
.ui-stage--chat .ui-bubble { font-size: .62em; }
.ui-stage--chat .ui-sugg { font-size: .62em !important; padding: .7em .95em; margin-bottom: 0; }
.ui-stage--chat .ui-chatbox .ui-sugg.is-rec { margin-left: 1.55em; }
.ui-stage--chat .ui-input--chat { margin-top: 1.1em !important; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-stage--chat) { min-height: clamp(290px, 24vw, 360px); }
  .v2-work .v2-card--feature .ui-stage--chat { font-size: calc(100cqw / 40); padding-inline: 11%; grid-template-columns: minmax(0, 1fr) 3.6em minmax(0, 1fr); }
}
/* selected work lower */
.v2-arc:not(.v2-arc--down):not(.v2-arc--talk) { margin-top: clamp(48px, 7vw, 112px); }
/* settings taller */
@media (min-width: 601px) { .v2-work .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 28); } }
/* policies shorter: same text, tighter layout */
.ui-pane__foot--inline { margin-top: .6em !important; padding-top: .55em; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-pinsight__top) { min-height: clamp(220px, 18vw, 270px); }
  .v2-work .v2-card--feature .ui-stage--pair:has(.ui-pinsight__top) { font-size: calc(100cqw / 46); }
  .ui-stage--pair:has(.ui-pinsight__top) .ui-pane { padding: .9em 1em; }
  .ui-stage--pair:has(.ui-pinsight__top) .ui-agents > div { padding: .35em 0; }
  .ui-stage--pair:has(.ui-pinsight__top) .ui-pack__row { padding: .28em 0; }
}
.ui-stage--chat .ui-insight b { white-space: normal; }
.ui-stage--chat .ui-msg > div { min-width: 0; }
@media (min-width: 601px) { .v2-work .v2-card--feature .ui-stage--chat { padding-inline: 8%; } }
.ui-pinsight__top--end { justify-content: flex-end; }
@media (min-width: 601px) { .v2-work .v2-card--half .ui-stage--dscc2 { font-size: calc(100cqw / 31); } }
/* hero: logo only, name kept for screen readers */
.v2-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* first arc: an abstract curved bar on landing that turns into "Selected work" as you scroll */
@keyframes v2-strip { to { stroke-dashoffset: 200; } }
.v2-arc--intro .v2-arc__text { opacity: var(--arc-o, .18); transition: opacity .25s linear; }

/* phone: one clear card per tile, every visual the same height */
@media (max-width: 600px) {
  .v2-work .v2-card__art.ui-art, .v2-work .v2-card--feature .v2-card__art.ui-art, .v2-work .v2-card--tall .v2-card__art.ui-art, .v2-work .v2-card--half .v2-card__art.ui-art { flex: none; aspect-ratio: 5 / 4 !important; min-height: 0 !important; margin-bottom: 24px; }
  .v2-work .ui-stage, .v2-work .v2-card--feature .ui-stage--pair { position: absolute !important; inset: 0; display: grid; place-items: center; align-content: center !important; padding: 1em 1.2em !important; }
  .v2-work .ui-stage--pair, .v2-work .v2-card--feature .ui-stage--pair { grid-template-columns: minmax(0, 17em) !important; grid-template-rows: auto !important; justify-content: center; font-size: calc(100cqw / 19.5); }
  .v2-work .ui-stage--pair > .ui-link { display: none; }
  .v2-work .ui-stage--pair > .ui-pane { height: auto; }
  /* chat and policies show the result; DSCC shows the score */
  .v2-work .ui-stage--chat > .ui-pane:first-child, .v2-work .ui-stage--pair:not(.ui-stage--dscc2):has(.ui-pinsight__top) > .ui-pane:first-child, .v2-work .ui-stage--dscc2 > .ui-pane:last-child { display: none; }
  .v2-work .ui-stage--dscc2 { grid-template-columns: minmax(0, 14em) !important; font-size: calc(100cqw / 17); }
  .v2-work .v2-card--tall .ui-stage--alerts { font-size: calc(100cqw / 19); }
  .v2-work .v2-card--tall .ui-stage--msp { font-size: calc(100cqw / 23); }
  .v2-work .v2-card--half .ui-stage--settings { font-size: calc(100cqw / 26); }
  .v2-work .ui-stage--pair:not(.ui-stage--dscc2):has(.ui-pinsight__top) { font-size: calc(100cqw / 22); }
  .v2-work .ui-stage--pair:has(.ui-pinsight__top) .ui-pack__row { padding: .3em 0; }
  .v2-work .v2-card { padding: 20px 20px 26px; }

  .v2-arc { height: 124px; }
  .v2-arc:not(.v2-arc--down):not(.v2-arc--talk) { margin-top: 20px; }

  .v2-exp__list li { grid-template-columns: 1fr auto; grid-template-areas: "co time" "role role"; gap: 6px 12px; align-items: baseline; padding: 18px 0; }
  .v2-exp__list span { grid-area: co; font-size: 20px; }
  .v2-exp__list time { grid-area: time; font-size: 11px; }
  .v2-exp__list b { grid-area: role; font-size: 15px; color: var(--text-soft); }

  .v2-stats > div { padding: 14px 12px; }
  .v2-stats dt { font-size: 28px; }
  .v2-stats dd { font-size: 12px; line-height: 1.35; }

  .v2-socials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .v2-social { justify-content: center; gap: 7px; padding: 12px 6px; box-shadow: 3px 3px 0 var(--text); }
  .v2-social span { font-size: 13px; }
  .v2-social svg { width: 16px; height: 16px; }
}

/* phone: a smaller, calmer type scale */
@media (max-width: 600px) {
  .v2-name { font-size: 30px; }
  .v2-nav a { font-size: 12px; }
  .v2-intro { font-size: 15px; line-height: 1.6; margin-top: 18px; }
  .v2-card__kicker, .v2-post__meta { font-size: 10px; }
  .v2-card__title, .v2-card--feature .v2-card__title, .v2-post__title { font-size: 20px; line-height: 1.15; }
  .v2-card__desc, .v2-post__desc { font-size: 14px; line-height: 1.55; }
  .v2-about__statement { font-size: 24px; }
  .v2-about__body, .v2-about__body p { font-size: 15px; line-height: 1.65; }
  .v2-label { font-size: 12px; }
  .v2-exp__list span { font-size: 17px; }
  .v2-exp__list b { font-size: 14px; }
  .v2-rec__list b { font-size: 13px; }
  .v2-stats dt { font-size: 24px; }
  .v2-stats dd { font-size: 11px; }
  .v2-contact__sub { font-size: 17px; }
  .v2-more__btn { font-size: 15px; }
}

/* coming soon: a solid badge so it isn't missed */
.v2-work .v2-card:has(.ui-art) .v2-card__soon { display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px 7px 11px; border: 2px solid var(--text); border-radius: 999px; background: var(--ink); color: #fff; box-shadow: 3px 3px 0 var(--text); font-family: var(--font); font-stretch: 125%; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; line-height: 1; }
.v2-work .v2-card:has(.ui-art) .v2-card__soon::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 3px rgba(255, 255, 255, .28); }
.v2-work .v2-card:has(.v2-card__soon) .v2-card__soon { margin-bottom: 16px; }

/* msp: tenants with their usage */
.ui-tenants--usage { width: 17em; gap: .4em; }
.ui-ucols { display: grid; grid-template-columns: 1.15em 4.6em 1fr; gap: .7em; margin-top: .2em; font-size: .5em; letter-spacing: .08em; text-transform: uppercase; color: var(--u-soft); }
.ui-ucols span:first-child { grid-column: 1 / 3; }
.ui-urow { display: grid; grid-template-columns: 1.15em 4.6em 1fr 2.2em; align-items: center; gap: .7em; padding: .5em 0; border-top: 1px solid var(--u-line); }
.ui-urow .ui-av { width: 1.15em; height: 1.15em; border-radius: .3em; background: rgba(111, 143, 255, .3); }
.ui-urow b { font-size: .64em; font-weight: 500; white-space: nowrap; }
.ui-urow small { font-size: .58em; color: var(--u-soft); text-align: right; font-variant-numeric: tabular-nums; }
.ui-ubar { display: block; height: .42em; border-radius: 99em; background: rgba(255, 255, 255, .08); overflow: hidden; }
.ui-ubar i { display: block; height: 100%; border-radius: inherit; background: var(--u-blue); }
.ui-urow.is-warn .ui-ubar i { background: var(--u-warn); }
.ui-urow.is-warn small { color: var(--u-warn); font-weight: 600; }
.ui-tenants--usage .ui-chip--brc { white-space: nowrap; }
.ui-ucols { font-size: 1em; }
.ui-ucols span { font-size: .5em; }

/* writing: smaller, quieter article cards */
.v2-writing { gap: clamp(20px, 2.2vw, 32px); }
.v2-post { padding: clamp(16px, 1.6vw, 22px); border-radius: 18px; box-shadow: 6px 6px 0 var(--text); }
a.v2-post:hover { box-shadow: 8px 9px 0 var(--ink); }
.v2-post .v2-post__art { aspect-ratio: 16 / 6.5; margin-bottom: 16px; border-radius: 12px; }
.v2-post .v2-post__art svg { height: 70%; }
.v2-post__title { font-size: clamp(18px, 1.5vw, 22px); }
.v2-post__desc { font-size: 14px; }
.v2-post__text { padding: 0 4px 2px; }
@media (max-width: 600px) {
  .v2-post .v2-post__art { aspect-ratio: 16 / 7; }
  .v2-post__title { font-size: 18px; }
}
@media (min-width: 601px) {
  .v2-post { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: clamp(16px, 1.8vw, 24px); align-items: center; }
  .v2-post .v2-post__art { aspect-ratio: 4 / 3; margin-bottom: 0; }
  .v2-post .v2-post__art svg { height: 66%; max-width: 78%; }
  .v2-post__text { padding: 0; }
}
/* msp: simpler, name + usage only */
.ui-tenants--usage { width: 15em; gap: .5em; }
.ui-urow { grid-template-columns: 4.8em 1fr; gap: 1em; padding: .65em 0; }
.ui-urow b { font-size: .66em; }
.ui-ubar { height: .5em; }
/* article visuals fill their containers */
.v2-post .v2-post__art svg, .v2-card__art.v2-post__art svg { width: 86%; height: 84%; max-width: none; max-height: none; }
/* more room above About me */
.v2-arc.v2-arc--down { margin-top: clamp(28px, 4vw, 64px); }
/* chat tile: taller, so the input never touches the suggestion */
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-stage--chat) { min-height: clamp(330px, 27vw, 410px); }
}
/* experience: company names in black */
.v2-exp__list span { color: var(--text); }

/* password gate, v2: the ab badge, wide caps title, a bold card with depth */
body.v2 .gate { background: #f5f2ea; }
body.v2 .gate__card { position: relative; width: min(460px, 100%); padding: clamp(28px, 5vw, 44px); border: 2.5px solid var(--text); border-radius: 24px; background: #fff; box-shadow: 8px 8px 0 var(--text); }
body.v2 .gate__logo { display: none; }
body.v2 .gate__card::before { content: "ab"; display: grid; place-items: center; width: 60px; aspect-ratio: 1; margin-bottom: 26px; border-radius: 30%; background: var(--ink); color: #fff; border: 2.5px solid var(--text); box-shadow: 4px 4px 0 var(--text); transform: rotate(-6deg); font: 900 22px/1 var(--font); font-stretch: 125%; letter-spacing: -.04em; }
body.v2 .gate__title { font-family: var(--font); font-stretch: 125%; font-style: normal; font-size: clamp(26px, 4vw, 34px); font-weight: 900; line-height: 1; letter-spacing: -.02em; text-transform: uppercase; color: var(--text); }
body.v2 .gate__text { margin-top: 14px; font-family: var(--text-font); font-size: 15px; line-height: 1.6; color: var(--text-soft); }
body.v2 .gate__label { margin-top: 28px; font: 700 11px/1 var(--font); font-stretch: 125%; letter-spacing: .08em; color: var(--ink); }
body.v2 .gate__input { height: 50px; border: 2px solid var(--text); font: 400 16px var(--text-font); color: var(--text); }
body.v2 .gate__input:focus { border-color: var(--ink); box-shadow: 0 0 0 3px rgba(61, 39, 230, .2); }
body.v2 .gate__btn { height: 50px; padding: 0 22px; border: 2px solid var(--text); background: var(--ink); color: #fff; font: 600 15px var(--text-font); box-shadow: 3px 3px 0 var(--text); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
body.v2 .gate__btn:hover { background: var(--ink); transform: translate(-1px, -2px); box-shadow: 5px 5px 0 var(--text); }
body.v2 .gate__error { font-family: var(--text-font); }
body.v2 .gate__help { font-family: var(--text-font); color: var(--text-soft); }
body.v2 .gate__help a { color: var(--text); }
body.v2 .gate__help a:hover { color: var(--ink); }

/* landing: the ab badge pops in, settles with a little wobble, then the shadow lands */
.v2-hero .v2-mark { animation: v2-mark-in 1.1s cubic-bezier(.2, .9, .3, 1.2) .15s backwards; }
@keyframes v2-mark-in {
  0% { opacity: 0; transform: translateY(-14px) scale(.6) rotate(-24deg); box-shadow: 0 0 0 var(--text); }
  45% { opacity: 1; transform: translateY(2px) scale(1.06) rotate(4deg); box-shadow: 2px 2px 0 var(--text); }
  70% { transform: translateY(0) scale(.98) rotate(-9deg); }
  100% { opacity: 1; transform: rotate(-6deg); box-shadow: 4px 4px 0 var(--text); }
}
@media (prefers-reduced-motion: reduce) { .v2-hero .v2-mark { animation: none; } }
/* behind the gate, hold the badge entrance until the page is unlocked */
html.is-gated .v2-hero .v2-mark { animation: none; }

/* rubrik ai tile: same card language as the policies tile */
.ui-ai-sugg { display: inline-flex; align-items: center; padding: .55em .9em; border: 1px solid rgba(111, 143, 255, .55); border-radius: 99em; background: rgba(111, 143, 255, .12); color: #dbe3ff; font-size: .62em; font-weight: 500; white-space: nowrap; }
.ui-stage--ai2 .ui-pack__row b { white-space: nowrap; }
/* rubrik ai tile: a refined chat, sized like the policies pair */
.ui-chat2 { gap: 0; }
.ui-chat2 > * + * { margin-top: .75em !important; }
.ui-chat-top { display: flex; align-items: center; gap: .5em; padding-bottom: .7em; border-bottom: 1px solid var(--u-line); }
.ui-chat-top .ui-spark { width: .9em; height: .9em; }
.ui-ai-text { font-size: .64em; line-height: 1.5; color: #c9cfe6; }
.ui-insight2 { display: grid; gap: .5em; padding: .8em .9em; border: 1px solid rgba(255, 138, 143, .28); border-radius: .6em; background: rgba(255, 138, 143, .06); }
.ui-insight2--ok { border-color: rgba(95, 211, 162, .28); background: rgba(95, 211, 162, .06); }
.ui-insight2__top { display: flex; align-items: center; justify-content: space-between; gap: .6em; }
.ui-insight2--ok .ui-insight2__top { justify-content: flex-start; }
.ui-insight2 b { font-size: .7em; font-weight: 600; white-space: nowrap; }
.ui-chips { display: flex; flex-wrap: wrap; gap: .4em; }
.ui-ai-sugg { border-color: rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .04); color: #aab2cf; font-size: .6em; }
.ui-ai-sugg.is-on { border-color: rgba(111, 143, 255, .6); background: rgba(111, 143, 255, .14); color: #dbe3ff; }
.ui-chat2 .ui-input--chat { margin-top: auto !important; }
.ui-chat2 .ui-chips + .ui-input--chat { margin-top: max(.9em, auto) !important; }
@media (min-width: 601px) {
  .v2-work .v2-card--feature .v2-card__art.ui-art:has(.ui-stage--ai2) { min-height: clamp(240px, 20vw, 300px); }
  .v2-work .v2-card--feature .ui-stage--ai2 { font-size: calc(100cqw / 46); }
  .ui-stage--ai2 .ui-pane { padding: .9em 1em; }
}
@media (max-width: 600px) { .v2-work .ui-stage--ai2 > .ui-pane:first-child { display: none; } }
.ui-chat2 .ui-chips { margin-bottom: 1em; }
.ui-insight2__sub { margin-top: -.15em; font-size: .6em; color: #c9cfe6; }
/* writing label: a hairline rule, like the case study section labels */
.v2-writing__label::after { height: 1px; opacity: .55; }
/* recognition: quieter tiles, all the same height */
.v2-rec__list { grid-auto-rows: 1fr; gap: 12px; }
.v2-rec__list li { align-content: center; gap: 6px; padding: 18px 20px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(22, 20, 29, .14); border-radius: 14px; box-shadow: none; }
.v2-rec__meta { font-size: 10.5px; color: var(--ink); opacity: .85; }
.v2-rec__list b { font-size: 15px; font-weight: 600; }
@media (max-width: 600px) {
  .v2-rec__list { grid-template-columns: 1fr 1fr; gap: 10px; }
  .v2-rec__list li { padding: 14px; box-shadow: none; border-radius: 12px; }
  .v2-rec__meta { font-size: 9px; letter-spacing: .03em; }
  .v2-rec__list b { font-size: 13px; line-height: 1.3; }
}
/* phones: one clean column, so labels never wrap into uneven tiles */
@media (max-width: 600px) {
  .v2-rec__list { grid-template-columns: 1fr; grid-auto-rows: auto; gap: 8px; }
  .v2-rec__list li { padding: 12px 14px; gap: 4px; }
}
/* phones: a little more breathing room around the intro */
@media (max-width: 600px) {
  .v2-hero { padding-top: 72px; padding-bottom: 24px; }
  .v2-arc.v2-arc--intro { margin-top: 48px; }
}
/* phones: more room between the About me band and the photo */
@media (max-width: 600px) { .v2-arc--down + .v2-about { padding-top: 48px; } }
/* phones: the intro skips the "currently at" line */
@media (max-width: 600px) { .v2-intro__now { display: none; } }
