/* logo-corner squircle masks, as the homepage */
:root{--sq-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6400' height='100' viewBox='0 0 6400 100'%3E%3Cpath d='M39.715 0H6400V100H39.715C28.279 100 22.561 100 16.406 98.054C9.686 95.608 4.392 90.314 1.946 83.594C0 77.439 0 71.721 0 60.285V39.715C0 28.279 0 22.561 1.946 16.406C4.392 9.686 9.686 4.392 16.406 1.946C22.561 0 28.279 0 39.715 0Z'/%3E%3C/svg%3E");--sq-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6400' height='100' viewBox='0 0 6400 100'%3E%3Cpath d='M6360.285 0H0V100H6360.285C6371.721 100 6377.439 100 6383.594 98.054C6390.314 95.608 6395.608 90.314 6398.054 83.594C6400 77.439 6400 71.721 6400 60.285V39.715C6400 28.279 6400 22.561 6398.054 16.406C6395.608 9.686 6390.314 4.392 6383.594 1.946C6377.439 0 6371.721 0 6360.285 0Z'/%3E%3C/svg%3E")}
/* Ask Landy live eyes, as the homepage */
.landy-eyes{position:absolute;inset:0;animation:landy-front 16s steps(1,end) infinite;}
.landy-eye{position:absolute;background:white;border:1px solid #123c2b;overflow:hidden;animation:landy-blink 5s ease infinite;}
.landy-eye-left{left:39.33%;top:38.83%;width:7.69%;height:8.51%;border-radius:22%;}
.landy-eye-right{left:52.6%;top:38.4%;width:8.65%;height:9.57%;border-radius:50%;}
.landy-eye b{position:absolute;left:28%;top:25%;width:44%;height:50%;border-radius:50%;background:#123c2b;animation:landy-look 8s ease infinite;}
.landy-eye b::after{content:"";position:absolute;left:18%;top:12%;width:30%;height:30%;border-radius:50%;background:white;}
@keyframes landy-front{0%,49%,91%{opacity:1}26%,71%{opacity:0}}
@keyframes landy-blink{0%,45%,49%,100%{transform:scaleY(1)}47%{transform:scaleY(.12)}}
@keyframes landy-look{0%,30%,100%{transform:translateX(0)}40%,55%{transform:translateX(-32%)}70%,85%{transform:translateX(32%)}}
.landy-eyes-left-quarter{animation-name:landy-left-quarter;opacity:0;}
.landy-eyes-left-side{animation-name:landy-left-side;opacity:0;}
.landy-eyes-right-quarter{animation-name:landy-right-quarter;opacity:0;}
.landy-eyes-right-side{animation-name:landy-right-side;opacity:0;}
.landy-eyes-left-quarter .landy-eye-left{left:36.8%;top:39.5%;width:5.8%;height:6.4%;rotate:5deg;}
.landy-eyes-left-quarter .landy-eye-right{left:49%;top:39.7%;width:7.6%;height:7.7%;rotate:5deg;}
.landy-eyes-right-quarter .landy-eye-left{left:47.6%;top:41.9%;width:7.3%;height:7.1%;rotate:-5deg;}
.landy-eyes-right-quarter .landy-eye-right{left:60%;top:42.8%;width:6.8%;height:7.2%;rotate:-5deg;}
.landy-eyes-left-side .landy-eye-left{left:34.4%;top:46.1%;width:2.5%;height:6.1%;border-radius:50%;rotate:13deg;}
.landy-eyes-right-side .landy-eye-left{left:63.1%;top:46.1%;width:2.5%;height:6.1%;border-radius:50%;rotate:-13deg;}

/* HumanAmp inner pages: components built to the homepage standard.
   Loaded after site-shell.css (the homepage's own styles). */

.ip { display: block; font-family: var(--ha-font-sans); }
.ip *, .ip *::before, .ip *::after { box-sizing: border-box; }
.ip :where(h1, h2, h3, h4, p, ul, ol, li, figure, blockquote, dl, dd) { margin: 0; padding: 0; }
.ip :where(ul, ol) { list-style: none; }
.ip img { display: block; max-width: 100%; }

/* sections: paper and charcoal alternate */
.ip-sec { background: var(--ha-paper); color: var(--ha-ink); }
.ip-sec.dark { background: var(--ha-ink); color: var(--ha-paper); }
.ip-sec.card-bg { background: var(--ha-card); }
.ip-in { max-width: 1440px; margin: 0 auto; padding: 72px clamp(16px, 5.5vw, 79px); }
.ip-sec + .ip-sec:not(.dark):not(.card-bg) > .ip-in.join { padding-top: 0; }
@media (max-width: 760px) { .ip-in { padding-top: 48px; padding-bottom: 48px; } }

/* type */
.ip-k { display: block; font: 700 12px/1.2 var(--ha-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ha-ink-soft); }
.dark .ip-k { color: var(--ha-bloom); }
.ip-h2 { font: 800 clamp(34px, 3.8vw, 52px)/1.04 var(--ha-font-sans); letter-spacing: -.035em; }
.ip-h2 .soft { color: var(--ha-support-on-paper); }
.dark .ip-h2 .soft { color: var(--ha-vapour); }
.ip-h3 { font: 800 clamp(22px, 2vw, 28px)/1.1 var(--ha-font-sans); letter-spacing: -.025em; }
.ip-p { font: 400 clamp(17px, 1.35vw, 20px)/1.5 var(--ha-font-sans); color: var(--ha-support-on-paper); max-width: 58ch; }
.ip-p + .ip-p { margin-top: 14px; }
.ip-p b, .ip-p strong { color: var(--ha-ink); font-weight: 700; }
.dark .ip-p { color: var(--ha-vapour); }
.dark .ip-p b, .dark .ip-p strong { color: var(--ha-paper); }
.ip-small { font: 500 14px/1.45 var(--ha-font-sans); color: var(--ha-ink-soft); }
.dark .ip-small { color: var(--ha-meta-on-dark); }
.ip-note { font: 700 clamp(22px, 2vw, 28px)/1.1 var(--ha-font-note); color: var(--ha-bloom); }

/* hero */
.ip-hero .ip-in { padding-top: clamp(56px, 7vw, 104px); padding-bottom: clamp(56px, 7vw, 96px); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 32px clamp(32px, 5vw, 80px); align-items: end; }
.ip-hero h1 { margin-top: 14px; font: 800 clamp(42px, 5.2vw, 80px)/.98 var(--ha-font-sans); letter-spacing: -.048em; }
.ip-hero h1 .lead { color: var(--ha-bloom); }
.ip-hero .ip-lede { font: 500 clamp(18px, 1.55vw, 22px)/1.45 var(--ha-font-sans); color: var(--ha-vapour); max-width: 44ch; }
.ip-sec:not(.dark).ip-hero .ip-lede { color: var(--ha-support-on-paper); }
.ip-hero .ip-actions { margin-top: 26px; }
.ip-hero.has-media .ip-in { align-items: center; }
.ip-hero-media { border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 3; }
.ip-hero-media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .ip-hero .ip-in { grid-template-columns: minmax(0, 1fr); align-items: start; } }

/* heads */
.ip-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px clamp(32px, 5vw, 80px); align-items: end; margin-bottom: clamp(28px, 3vw, 40px); }
.ip-head .ip-k { margin-bottom: 12px; }
.ip-head.solo { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
@media (max-width: 900px) { .ip-head { grid-template-columns: minmax(0, 1fr); } }

/* buttons: logo-corner squircles, same as the homepage */
.ip-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ip-btn { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 16px 24px; border-radius: 13px; text-decoration: none; font: 800 16px/1.2 var(--ha-font-sans); white-space: nowrap; color: var(--ha-ink); background: none; border: 0; cursor: pointer;
  --sq-line: rgba(var(--ha-ink-rgb), .24); --sq-fill: var(--ha-paper); }
.ip-btn::before, .ip-btn::after { content: ""; position: absolute; z-index: -1; pointer-events: none;
  -webkit-mask: var(--sq-l) left center/auto 100% no-repeat, var(--sq-r) right center/auto 100% no-repeat; -webkit-mask-composite: source-in;
  mask: var(--sq-l) left center/auto 100% no-repeat, var(--sq-r) right center/auto 100% no-repeat; mask-composite: intersect; }
.ip-btn::before { inset: 0; background: var(--sq-line); }
.ip-btn::after { inset: 1px; background: var(--sq-fill); }
.ip-btn:hover { --sq-line: rgba(var(--ha-ink-rgb), .6); }
.ip-btn.fill::before { background: var(--ha-bloom); }
.ip-btn.fill::after { display: none; }
.ip-btn.fill:hover::before { background: var(--ha-spread); }
.dark .ip-btn:not(.fill) { color: var(--ha-paper); --sq-line: rgba(247, 241, 238, .32); --sq-fill: var(--ha-ink); }
.dark .ip-btn:not(.fill):hover { --sq-line: rgba(247, 241, 238, .7); }
.ip-card .ip-btn { --sq-fill: var(--ha-card); }
.dark .ip-card .ip-btn:not(.fill) { --sq-fill: #34363B; }
.ip-btn.block { display: flex; width: 100%; }
.ip-btn:focus-visible { outline: 2px solid var(--ha-bloom); outline-offset: 3px; }
@media (forced-colors: active) { .ip-btn { border: 1px solid ButtonText; } }
.ip-link { font: 700 16px/1.3 var(--ha-font-sans); color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; text-decoration-color: rgba(var(--ha-ink-rgb), .35); }
.dark .ip-link { text-decoration-color: rgba(247, 241, 238, .4); }

/* grids and cards */
.ip-grid { display: grid; gap: 16px; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); align-items: stretch; }
@media (max-width: 1100px) { .ip-grid { --cols: 2 !important; } }
@media (max-width: 720px) { .ip-grid { --cols: 1 !important; } }
.ip-card { display: flex; flex-direction: column; background: var(--ha-card); border: 1px solid var(--ha-hairline); border-radius: 14px; padding: clamp(22px, 2.2vw, 30px); min-width: 0; }
.dark .ip-card { background: #34363B; border-color: rgba(247, 241, 238, .08); }
.ip-card.ink { background: var(--ha-ink); color: var(--ha-paper); border-color: var(--ha-ink); }
.ip-card.coral { background: var(--ha-bloom); border-color: var(--ha-bloom); }
.ip-card .ip-k { margin-bottom: 12px; }
.ip-card.ink .ip-k { color: var(--ha-bloom); }
.ip-card .ip-h3 + .ip-p, .ip-card .ip-h3 + .ip-small { margin-top: 10px; }
.ip-card .ip-p { font-size: 16px; }
.ip-card.ink .ip-p, .dark .ip-card .ip-p { color: var(--ha-vapour); }
.ip-card .foot { margin-top: auto; padding-top: 22px; }
.ip-card-photo { margin: calc(-1 * clamp(22px, 2.2vw, 30px)) calc(-1 * clamp(22px, 2.2vw, 30px)) 22px; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 13px 13px 0 0; }
.ip-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.ip-card.link { text-decoration: none; color: inherit; transition: transform .25s ease, box-shadow .25s ease; }
.ip-card.link:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(var(--ha-ink-rgb), .1); }
.ip-card .arrow { margin-top: auto; padding-top: 18px; font: 800 16px/1 var(--ha-font-sans); }

/* the problem / the promise pair, as on the homepage cards */
.ip-pp { display: grid; gap: 10px; margin-top: 14px; }
.ip-pp p { font: 500 15px/1.4 var(--ha-font-sans); color: var(--ha-support-on-paper); }
.ip-pp p span { display: block; font: 800 11px/1 var(--ha-font-sans); letter-spacing: .09em; text-transform: uppercase; color: var(--ha-ink-soft); margin-bottom: 5px; }
.ip-pp p.promise { color: var(--ha-ink); font-weight: 700; }
.ip-card.ink .ip-pp p { color: var(--ha-vapour); }
.ip-card.ink .ip-pp p.promise { color: var(--ha-paper); }
.ip-card.ink .ip-pp p span { color: var(--ha-meta-on-dark); }

/* tick lists */
.ip-ticks { display: grid; gap: 8px; margin-top: 18px; }
.ip-ticks li { position: relative; padding-left: 26px; font: 500 15.5px/1.4 var(--ha-font-sans); color: var(--ha-support-on-paper); }
.ip-ticks li b { color: var(--ha-ink); font-weight: 700; }
.ip-ticks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--ha-bloom) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l3.6 3.6L18 8' fill='none' stroke='%23292B2F' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat; }
.dark .ip-ticks li, .ip-card.ink .ip-ticks li { color: var(--ha-vapour); }
.dark .ip-ticks li b, .ip-card.ink .ip-ticks li b { color: var(--ha-paper); }
.ip-ticks.lg li { font-size: 17px; padding-left: 30px; }
.ip-ticks.lg li::before { width: 18px; height: 18px; top: 3px; }

/* prices */
.ip-price { margin-top: 20px; font: 500 15px/1.3 var(--ha-font-sans); color: var(--ha-support-on-paper); }
.ip-price strong { display: block; font: 800 clamp(30px, 2.8vw, 40px)/1 var(--ha-font-sans); letter-spacing: -.03em; color: var(--ha-ink); margin-bottom: 4px; }
.ip-card.ink .ip-price { color: var(--ha-vapour); }
.ip-card.ink .ip-price strong { color: var(--ha-paper); }
.ip-tag { display: inline-block; padding: 5px 9px; border-radius: 999px; font: 800 10.5px/1 var(--ha-font-sans); letter-spacing: .08em; text-transform: uppercase; background: var(--ha-bloom); color: var(--ha-ink); }
.ip-tag.quiet { background: rgba(var(--ha-ink-rgb), .07); color: var(--ha-support-on-paper); }

/* split: text beside media */
.ip-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px clamp(32px, 5vw, 88px); align-items: center; }
.ip-split.rev > :first-child { order: 2; }
.ip-split .ip-h2 + .ip-p, .ip-split .ip-k + .ip-h2 { margin-top: 14px; }
.ip-split .ip-actions { margin-top: 26px; }
.ip-media { border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 3; background: rgba(var(--ha-ink-rgb), .05); }
.ip-media img { width: 100%; height: 100%; object-fit: cover; }
.ip-media.tall { aspect-ratio: 4 / 5; }
@media (max-width: 900px) { .ip-split { grid-template-columns: minmax(0, 1fr); } .ip-split.rev > :first-child { order: 0; } }

/* method rail: Mine, Solve, Amplify */
.ip-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ip-step { position: relative; padding-top: 22px; border-top: 3px solid var(--step, var(--ha-phase-mine)); }
.ip-step.solve { --step: var(--ha-phase-solve); }
.ip-step.amplify { --step: var(--ha-bloom); }
.ip-step .n { font: 700 13px/1 var(--ha-font-sans); letter-spacing: .08em; color: var(--ha-ink-soft); }
.dark .ip-step .n { color: var(--ha-meta-on-dark); }
.ip-step .ip-h3 { margin-top: 10px; }
.ip-step .ip-p { margin-top: 8px; font-size: 16.5px; }
.ip-step .ip-ticks { margin-top: 14px; }
@media (max-width: 860px) { .ip-rail { grid-template-columns: minmax(0, 1fr); gap: 28px; } }

/* quote */
.ip-quote { position: relative; padding: clamp(24px, 3vw, 40px); border-radius: 14px; background: var(--ha-card); border: 1px solid var(--ha-hairline); }
.dark .ip-quote { background: #34363B; border-color: rgba(247, 241, 238, .08); }
.ip-quote p { font: 600 clamp(20px, 2vw, 28px)/1.35 var(--ha-font-sans); letter-spacing: -.015em; }
.ip-quote footer { margin-top: 18px; display: flex; align-items: center; gap: 12px; font: 600 14px/1.3 var(--ha-font-sans); color: var(--ha-ink-soft); }
.dark .ip-quote footer { color: var(--ha-meta-on-dark); }
.ip-quote footer img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.ip-quote footer b { display: block; color: var(--ha-ink); }
.dark .ip-quote footer b { color: var(--ha-paper); }

/* people */
.ip-person { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 18px; align-items: center; }
.ip-person img { width: 88px; height: 88px; border-radius: 14px; object-fit: cover; }
.ip-person .who { font: 800 20px/1.1 var(--ha-font-sans); letter-spacing: -.02em; }
.ip-person .role { margin-top: 4px; font: 500 15px/1.3 var(--ha-font-sans); color: var(--ha-ink-soft); }
.ip-person a { color: inherit; }

/* questions */
.ip-faq { display: grid; gap: 10px; }
.ip-faq details { background: var(--ha-card); border: 1px solid var(--ha-hairline); border-radius: 14px; }
.dark .ip-faq details { background: #34363B; border-color: rgba(247, 241, 238, .08); }
.ip-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; font: 800 18px/1.3 var(--ha-font-sans); letter-spacing: -.01em; }
.ip-faq summary::-webkit-details-marker { display: none; }
.ip-faq summary::after { content: "+"; flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font: 700 18px/1 var(--ha-font-sans); background: rgba(var(--ha-ink-rgb), .07); transition: transform .2s ease; }
.dark .ip-faq summary::after { background: rgba(247, 241, 238, .1); }
.ip-faq details[open] summary::after { transform: rotate(45deg); }
.ip-faq .ans { padding: 0 24px 22px; }
.ip-faq .ans .ip-p { font-size: 16.5px; }

/* coral band, as the homepage growth band */
.ip-band { background: var(--ha-bloom); color: var(--ha-ink); border-radius: 14px; padding: clamp(24px, 3vw, 44px); }
.ip-band .ip-h3 { font-size: clamp(24px, 2.3vw, 32px); }
.ip-band .ip-p { color: var(--ha-ink-raised); }
.ip-band .ip-card { border: 0; }

/* prose (privacy and long reading) */
.ip-prose { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 720px); gap: 24px clamp(32px, 6vw, 96px); }
.ip-prose + .ip-prose { margin-top: 0; padding-top: 40px; border-top: 1px solid var(--ha-hairline); margin-top: 40px; }
.ip-prose h2 { font: 800 clamp(24px, 2.2vw, 30px)/1.1 var(--ha-font-sans); letter-spacing: -.025em; }
.ip-prose .body > * + * { margin-top: 14px; }
.ip-prose .body p, .ip-prose .body li { font: 400 17px/1.6 var(--ha-font-sans); color: var(--ha-support-on-paper); }
.ip-prose .body ul { display: grid; gap: 8px; padding-left: 20px; list-style: disc; }
.ip-prose .body a { color: var(--ha-ink); text-underline-offset: 3px; }
.ip-prose .body b, .ip-prose .body strong { color: var(--ha-ink); }
@media (max-width: 860px) { .ip-prose { grid-template-columns: minmax(0, 1fr); } }

/* small helpers */
.ip-gap { margin-top: clamp(28px, 3vw, 44px); }
.ip-gap-s { margin-top: 16px; }
.ip-center { text-align: center; }
.ip-rule { height: 1px; background: var(--ha-hairline); border: 0; margin: clamp(28px, 3vw, 44px) 0; }
.dark .ip-rule { background: rgba(247, 241, 238, .12); }
.ip-row { display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: center; }
.ip-pill { display: inline-flex; align-items: center; padding: 7px 12px; border-radius: 999px; font: 700 13px/1 var(--ha-font-sans); background: rgba(var(--ha-ink-rgb), .07); color: var(--ha-ink); }
.dark .ip-pill { background: rgba(247, 241, 238, .1); color: var(--ha-paper); }

@media (prefers-reduced-motion: reduce) { .ip-card.link, .ip-faq summary::after { transition: none; } }

/* contrast on charcoal and coral cards */
.dark .ip-card:not(.coral) .ip-price { color: var(--ha-vapour); }
.dark .ip-card:not(.coral) .ip-price strong, .dark .ip-card:not(.coral) .ip-h3 { color: var(--ha-paper); }
.ip-card.coral, .ip-card.coral .ip-h3, .ip-card.coral .ip-price strong { color: var(--ha-ink); }
.ip-card.coral .ip-p, .ip-card.coral .ip-price, .ip-card.coral .ip-k { color: var(--ha-ink-raised); }
.ip-sec .ip-card.coral .ip-btn:not(.fill) { color: var(--ha-ink); --sq-line: rgba(var(--ha-ink-rgb), .3); --sq-fill: var(--ha-card); }
.ip-card .ip-btn.block { margin-top: 0; }
.ip-mark { width: 88px; height: 88px; border-radius: 14px; display: grid; place-items: center; background: var(--ha-bloom); }
.ip-mark img { width: 52px; height: 52px; }

/* compact phone layouts */
.ip-only-phone { display: none; }
@media (max-width: 720px) {
  .ip-only-phone { display: block; }
  .ip-grid.two-up { --cols: 2 !important; gap: 10px; }
  .ip-grid.two-up .ip-card { padding: 16px; }
  .ip-grid.two-up .ip-h3 { font-size: 18px; }
  .ip-grid.two-up .ip-k { font-size: 10.5px; margin-bottom: 8px; }
  .ip-grid.two-up .ip-p { font-size: 13.5px; }
  .ip-grid.two-up .ip-price { margin-top: 12px; font-size: 12.5px; }
  .ip-grid.two-up .ip-price strong { font-size: 26px; }
  .ip-grid.two-up .ip-ticks { margin-top: 12px; gap: 6px; }
  .ip-grid.two-up .ip-ticks li { font-size: 13px; padding-left: 20px; }
  .ip-grid.two-up .ip-ticks li::before { width: 13px; height: 13px; background-size: 9px; }
  .tiers .ip-ticks li.same { display: none; }
  .tiers > .ip-card:last-child { grid-column: 1 / -1; }
  .ip-card-photo { aspect-ratio: 16 / 8; }
  .ip-hero .ip-in { gap: 18px; }
  .ip-head { margin-bottom: 22px; }
  .ip-gap { margin-top: 24px; }
  .ip-media { aspect-ratio: 16 / 10; }
}

/* What, Why, Wow insight card */
.www { display: grid; gap: 14px; margin-top: 22px; }
.www > div { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: baseline; padding-top: 14px; border-top: 1px solid rgba(247, 241, 238, .12); }
.www dt { font: 800 11px/1 var(--ha-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ha-meta-on-dark); }
.www dd { font: 600 18px/1.4 var(--ha-font-sans); color: var(--ha-paper); }
.www .wow dt { color: var(--ha-bloom); }
.www .wow dd { font-weight: 800; }
.insight-card { padding: clamp(26px, 3vw, 40px); box-shadow: 0 24px 50px rgba(0, 0, 0, .25); }
.dark .insight-card { background: #34363B; }
.knowledge .core { grid-row: span 1; }
.ip-quote footer span b { display: block; }
.ip-split.top { align-items: start; }
.dark .ip-person .who, .ip-card.ink .ip-person .who { color: var(--ha-paper); }
.dark .ip-person .role, .ip-card.ink .ip-person .role { color: var(--ha-meta-on-dark); }
.landy-bot { width: min(260px, 60%); height: auto; margin-top: 8px; filter: drop-shadow(0 18px 30px rgba(0,0,0,.35)); }

/* About: the two founders in the hero */
.duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.duo-card { position: relative; display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 5; text-decoration: none; color: var(--ha-paper); }
.duo-card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform .5s ease; }
.duo-card:hover img { transform: scale(1.03); }
.duo-card span { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 18px 16px; background: linear-gradient(transparent, rgba(30, 32, 36, .85)); font: 600 15px/1.3 var(--ha-font-sans); color: var(--ha-vapour); }
.duo-card span b { display: block; font: 800 24px/1.1 var(--ha-font-sans); letter-spacing: -.02em; color: var(--ha-paper); }
.duo-card.lee span b { color: #E3A06A; }
.duo-card.dave span b { color: #8FB3B7; }
.ip-media.tall img { object-position: 50% 25%; }
@media (prefers-reduced-motion: reduce) { .duo-card img { transition: none; } }

/* Amps page */
.amp-hero { aspect-ratio: auto; background: none; overflow: visible; display: grid; place-items: center; }
.amp-hero img { width: min(420px, 90%); height: auto; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .4)); }
.ip-band.shape .ip-p { color: var(--ha-ink-raised); }
.shape-picks { display: grid; gap: 10px; }
.shape-picks .ip-btn { justify-content: space-between; --sq-fill: var(--ha-card); --sq-line: rgba(var(--ha-ink-rgb), .2); color: var(--ha-ink) !important; font-size: 17px; padding: 18px 22px; }
.shape-picks .ip-btn::after { inset: 1px; }
.shape-picks .ip-btn > span, .shape-picks .ip-btn { text-align: left; }
.dark .shape-picks .ip-btn:not(.fill) { --sq-fill: var(--ha-card); --sq-line: rgba(var(--ha-ink-rgb), .2); }
.dark .shape-picks .ip-btn:not(.fill):hover { --sq-line: rgba(var(--ha-ink-rgb), .6); }
.ip-card .ip-tag + .ip-h3 { margin-top: 12px; }
.ip-hero-media.wide { aspect-ratio: 16 / 9; }
.page-about .ip-hero h1 { font-size: clamp(44px, 5.2vw, 80px); }
.ip-card .ip-tag, .ip-card .ip-pill { align-self: flex-start; }
.ip-cap { margin-top: 10px; font: 600 13px/1.3 var(--ha-font-sans); color: var(--ha-meta-on-dark); text-align: center; }
.ip-media.showcase { aspect-ratio: 21 / 9; }
.ip-hero-media.tall-ish { aspect-ratio: 1 / 1; max-width: 460px; justify-self: end; overflow: visible; } .ip-hero-media.tall-ish img { border-radius: 14px; object-position: 50% 30%; }
.contact-lines { display: grid; gap: 10px; }
.contact-lines a { font: 800 18px/1.2 var(--ha-font-sans); color: var(--ha-paper); text-decoration: underline; text-decoration-color: rgba(247, 241, 238, .35); text-underline-offset: 5px; }
.page-privacy .ip-hero h1, .page-404 .ip-hero h1, .page-contact .ip-hero h1 { font-size: clamp(44px, 5.6vw, 84px); }
@media (max-width: 720px) {
  .landy-bot { display: none; }
  .knowledge .core { grid-column: 1 / -1; }
  .people-pair .ip-person { grid-template-columns: 1fr; gap: 10px; }
  .people-pair .ip-person img { width: 64px; height: 64px; }
  .ip-rail { gap: 22px; }
  .ip-step { padding-top: 16px; }
  .ip-step .ip-ticks { display: none; }
  .ip-faq summary { padding: 16px 18px; font-size: 16px; }
  .www dd { font-size: 16px; }
}
@media (max-width: 720px) {
  .ip-media.tall { aspect-ratio: 4 / 3; }
  .ip-media.tall img { object-position: 50% 22%; }
  .ip-hero-media.tall-ish { max-width: 240px; justify-self: start; }
  .amp-hero img { width: min(260px, 70%); }
}

/* ===== motion: calm, high-end, never in the way ===== */
:root { --ease-out: cubic-bezier(.16, 1, .3, 1); --ease-soft: cubic-bezier(.4, 0, .2, 1); }

/* scroll reveals */
.ip-motion .rv-up:not(:has(> .rv-kid)) { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--ease-out), transform 1.1s var(--ease-out); }
.ip-motion .rv-up.in:not(:has(> .rv-kid)) { opacity: 1; transform: none; }
.ip-motion .rv-kid { opacity: 0; transform: translateY(28px) scale(.985); transition: opacity .8s var(--ease-out) var(--d, 0ms), transform 1s var(--ease-out) var(--d, 0ms), box-shadow .35s var(--ease-soft), border-color .35s var(--ease-soft); }
.ip-motion .rv-up.in > .rv-kid { opacity: 1; transform: none; }
.ip-motion .rv-up.in > .rv-kid.ip-card:hover, .ip-motion .rv-up.in > .rv-kid.link:hover { transform: translateY(-4px); }

/* ticks land one by one */
.ip-motion .rv-up .ip-ticks li { opacity: 0; transform: translateX(-8px); transition: opacity .5s var(--ease-out) var(--t, 0ms), transform .6s var(--ease-out) var(--t, 0ms); }
.ip-motion .rv-up.in .ip-ticks li { opacity: 1; transform: none; }
.ip-motion .rv-up .ip-ticks li::before { transform: scale(.4); transition: transform .5s cubic-bezier(.34, 1.56, .64, 1) var(--t, 0ms); }
.ip-motion .rv-up.in .ip-ticks li::before { transform: none; }

/* step lines draw across */
.ip-motion .ip-step { border-top-color: transparent; }
.ip-motion .ip-step::before { content: ""; position: absolute; left: 0; right: 0; top: -3px; height: 3px; background: var(--step, var(--ha-phase-mine)); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease-out) calc(var(--d, 0ms) + 120ms); }
.ip-motion .rv-up.in > .ip-step::before { transform: scaleX(1); }

/* What, Why, Wow arrive in turn */
.ip-motion .rv-up .www > div { opacity: 0; transform: translateY(10px); transition: opacity .7s var(--ease-out) var(--t, 0ms), transform .8s var(--ease-out) var(--t, 0ms); }
.ip-motion .rv-up.in .www > div { opacity: 1; transform: none; }
.ip-motion .rv-up.in .www .wow dd { animation: ip-wow 1.4s var(--ease-out) 1s both; }
@keyframes ip-wow { 0% { color: var(--ha-paper); } 40% { color: var(--ha-bloom); } 100% { color: var(--ha-paper); } }

/* hero settles in */
.ip-motion .ip-hero :is(.ip-k, h1, .ip-lede, .ip-actions, .ip-small) { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease-out), transform 1.1s var(--ease-out); }
.ip-motion .ip-hero h1 { transition-delay: 80ms; }
.ip-motion .ip-hero .ip-lede { transition-delay: 240ms; }
.ip-motion .ip-hero .ip-actions { transition-delay: 380ms; }
.ip-motion .ip-hero.in :is(.ip-k, h1, .ip-lede, .ip-actions, .ip-small) { opacity: 1; transform: none; }
.ip-motion .ip-hero-media { opacity: 0; transform: translateY(16px); transition: opacity 1.1s var(--ease-out) .2s, transform 1.3s var(--ease-out) .2s; }
.ip-motion .ip-hero.in .ip-hero-media { opacity: 1; transform: none; }
.ip-motion .ip-hero-media:not(.amp-hero) img { transform: scale(1.08); transition: transform 2.4s var(--ease-out) .2s; }
.ip-motion .ip-hero.in .ip-hero-media:not(.amp-hero) img { transform: scale(1) translateY(var(--py, 0px)); }
.ip-motion .amp-hero img { animation: ip-float 6s ease-in-out 1.4s infinite; }
@keyframes ip-float { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(-1deg); } }

/* photographs: slow zoom on hover, soft parallax on scroll */
.ip-media img, .ip-card-photo img { transform: scale(1.06) translateY(var(--py, 0px)); transition: transform 1.4s var(--ease-out); will-change: transform; }
.ip-media:hover img, .ip-card:hover .ip-card-photo img { transform: scale(1.11) translateY(var(--py, 0px)); }
.ip-card-photo img { transform: scale(1.01); }
.ip-card:hover .ip-card-photo img { transform: scale(1.07); }

/* cards lift and warm */
.ip-card { transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-soft), border-color .45s var(--ease-soft), background-color .45s var(--ease-soft); }
.ip-card:hover { box-shadow: 0 18px 40px rgba(var(--ha-ink-rgb), .1); border-color: rgba(var(--ha-ink-rgb), .16); }
.dark .ip-card:hover { box-shadow: 0 18px 40px rgba(0, 0, 0, .35); border-color: rgba(247, 241, 238, .18); }
.ip-card.coral:hover { box-shadow: 0 18px 40px rgba(245, 137, 124, .35); }
.ip-card .arrow { display: inline-block; transition: transform .45s var(--ease-out); }
.ip-card.link:hover .arrow { transform: translate(4px, -4px); }

/* buttons: a little lift, a firm press */
.ip-btn { transition: transform .35s var(--ease-out), color .25s; }
.ip-btn:hover { transform: translateY(-2px); }
.ip-btn:active { transform: translateY(0) scale(.98); transition-duration: .1s; }
.ip-btn::before, .ip-btn::after { transition: background-color .3s var(--ease-soft); }

/* links: underline grows in */
.ip-link { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 3px; transition: background-size .45s var(--ease-out); }
.ip-link:hover { background-size: 0% 1px; background-position: 100% 100%; }
.contact-lines a { transition: color .25s; }
.contact-lines a:hover { color: var(--ha-bloom); }

/* questions open softly */
.ip-faq details { transition: border-color .3s var(--ease-soft), background-color .3s; }
.ip-faq details:hover { border-color: rgba(var(--ha-ink-rgb), .2); }
.ip-faq details[open] .ans { animation: ip-open .5s var(--ease-out) both; }
@keyframes ip-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.ip-faq summary::after { transition: transform .35s var(--ease-out), background-color .25s; }
.ip-faq summary:hover::after { background: var(--ha-bloom); }

/* people and portraits */
.ip-person img { transition: transform .6s var(--ease-out); }
.ip-card:hover .ip-person img { transform: scale(1.05) rotate(-1.5deg); }

@media (hover: none) {
  .ip-media:hover img { transform: scale(1.06) translateY(var(--py, 0px)); }
  .ip-btn:hover, .ip-card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ip-media img, .ip-card-photo img, .ip-card, .ip-btn, .ip-person img, .ip-link { transition: none !important; transform: none !important; animation: none !important; }
}

/* price sits under the title, so it is seen first */
.ip-price.top { margin-top: 8px; margin-bottom: 4px; }
.ip-price.top strong { font-size: clamp(26px, 2.3vw, 34px); display: inline; margin: 0 6px 0 0; }
.ip-card .ip-price.top + .ip-p { margin-top: 6px; }
.tiers .ip-price { margin-top: 10px; }
#amps .ip-card-photo { aspect-ratio: 16 / 8; }
@media (max-width: 720px) {
  .ip-grid.two-up .ip-price.top strong { display: block; font-size: 24px; margin: 0 0 2px; }
  #amps .ip-card-photo { aspect-ratio: 16 / 6; }
}

/* no vertical snapping: the page scrolls where the reader puts it, and never fights Amp travelling to its seat */
html, body { scroll-snap-type: none !important; }
.ip-sec, #talk, footer { scroll-snap-align: none !important; }

/* Ask Landy with live eyes (eye positions come from layout-balance.css) */
.landy-live { position: relative; display: block; line-height: 0; }
.landy-live > img { display: block; width: 100%; height: auto; }
.landy-live .landy-eyes { animation: none; opacity: 1; }
.amp-hero .landy-live { width: min(420px, 90%); margin: 0 auto; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .4)); }
.amp-hero .landy-live > img { filter: none; width: 100%; }
.ip-motion .amp-hero img { animation: none; }
.ip-motion .amp-hero .landy-live { animation: ip-float 6s ease-in-out 1.4s infinite; }
.landy-live.landy-bot { width: min(260px, 60%); filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }
@media (max-width: 720px) { .amp-hero .landy-live { width: min(260px, 70%); } }
.ideo-mark { align-self: flex-start; margin-bottom: 16px; padding: 6px 10px 5px; border: 2px solid currentColor; border-radius: 6px; font: 800 20px/1 var(--ha-font-sans); letter-spacing: .06em; color: var(--ha-paper); }
.ip-card.ideo:hover .ideo-mark { color: var(--ha-bloom); }
.ideo-mark { transition: color .35s var(--ease-soft, ease); }

/* hold the new design against the older page stylesheets */
body.ha-inner main .ip-sec :is(h1, h2, h3) { color: var(--ha-ink); }
body.ha-inner main .ip-sec.dark :is(h1, h2, h3), body.ha-inner main .ip-card.ink :is(h2, h3) { color: var(--ha-paper); }
body.ha-inner main .ip-sec.dark .ip-card:not(.coral) :is(h2, h3) { color: var(--ha-paper); }
body.ha-inner main .ip-card.coral :is(h2, h3), body.ha-inner main .ip-band :is(h2, h3) { color: var(--ha-ink); }
body.ha-inner main .ip-hero h1 .lead { color: var(--ha-bloom); }
body.ha-inner main .ip-sec .ip-h2 .soft { color: var(--ha-support-on-paper); }
body.ha-inner main .ip-sec.dark .ip-h2 .soft { color: var(--ha-vapour); }
body.ha-inner main .ip-sec :is(h1, h2, h3, p, ul, ol, li, dl, dd, dt, figure, blockquote) { margin-left: 0; margin-right: 0; max-width: none; }
body.ha-inner main .ip-sec .ip-p { max-width: 58ch; }
body.ha-inner main .ip-sec :is(ul, ol) { padding-left: 0; list-style: none; }
body.ha-inner main .ip-ticks li { padding-left: 26px; margin: 0; }
body.ha-inner main .ip-ticks.lg li { padding-left: 30px; }
body.ha-inner main .ip-sec { width: auto; }
body.ha-inner main > .ip-sec > .ip-in { box-sizing: border-box; }
.ip-media.showcase { aspect-ratio: 2000 / 938; box-shadow: 0 30px 60px rgba(0,0,0,.35); } .ip-media.showcase img { object-position: top; }
/* Amp close on inner pages: the homepage coral, not the old pale pink */
body.ha-inner main .page-final-conversation, body.ha-inner main section.final-conversation { background: var(--ha-bloom) !important; }
/* Lee and Dave together */
.ip-person.duo-faces { grid-template-columns: auto minmax(0, 1fr); }
.ip-person .faces { display: inline-flex; }
.ip-person .faces img { width: 72px; height: 72px; border-radius: 14px; object-fit: cover; object-position: 50% 25%; box-shadow: 0 0 0 3px var(--ha-card); }
.ip-person .faces img + img { margin-left: -14px; }
body.ha-inner .ip-person.duo-faces img { width: 72px; height: 72px; }
.ip-hero-media.meeting{aspect-ratio:4/5;max-width:440px;justify-self:end;overflow:visible}.ip-hero-media.meeting img{border-radius:14px;height:100%;object-fit:cover}@media(max-width:900px){.ip-hero-media.meeting{aspect-ratio:4/3;max-width:none;justify-self:stretch}}
/* Amp on the meeting-room screen (illustrative overlay on a real photo) */
.ip-hero-media.meeting .mt-frame{position:relative;height:100%;border-radius:14px;overflow:hidden}
.ip-hero-media.meeting .mt-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.mt-screen{position:absolute;left:39.5%;top:40%;width:30%;height:22.5%;transform:perspective(600px) rotateY(-4deg) skewY(-1.2deg);transform-origin:left center;background:#F7F1EE;border-radius:3px;padding:3% 3.5%;display:flex;flex-direction:column;justify-content:center;gap:6%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);font-family:var(--ha-font-sans);overflow:hidden}
.mt-head{display:flex;align-items:center;gap:6px;font:800 clamp(7px,.75vw,11px)/1 var(--ha-font-sans);color:#292B2F}
.mt-eyes{display:inline-flex;gap:2px;padding:3px;border-radius:4px;background:#F5897C}.mt-eyes i{width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px #292B2F}
.mt-msg{font:600 clamp(6px,.62vw,9.5px)/1.3 var(--ha-font-sans);padding:4% 5%;border-radius:4px;max-width:92%}
.mt-msg.them{align-self:flex-end;background:#292B2F;color:#F7F1EE}
.mt-msg.amp{background:#fff;color:#292B2F;box-shadow:0 0 0 1px rgba(41,43,47,.1)}.mt-msg.amp b{display:block;font-weight:800;margin-bottom:2px}
.mt-msg.amp.hi{background:#F5897C}
