/* Landing: one idea per screen. The promise and her own Instagram first, then the team it gives her,
   how it works, what it makes, and one input to start. */
.land { background: var(--stone); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.lnav { position: absolute; inset: 0 0 auto; z-index: 5; display: flex; align-items: center; justify-content: space-between; padding: 22px clamp(20px, 4vw, 48px); }
.lnav .wordmark { color: var(--espresso); }
.lnav-right { display: flex; align-items: center; gap: 18px; font: 500 14px/1 var(--sans); }
.lnav-right a { text-decoration: none; }
.lnav-right a:not(.btn):hover { text-decoration: underline; text-underline-offset: 4px; }

/* Hero: the promise and who it is for on the left, her own Instagram before and after on the right. */
.lhero { min-height: 92svh; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: clamp(32px, 5vw, 88px); padding: 112px clamp(20px, 6vw, 96px) clamp(64px, 7vw, 100px); max-width: 1360px; margin: 0 auto; }
.lhero-title { font-size: clamp(56px, 7.6vw, 118px); line-height: .92; letter-spacing: -.025em; margin: 0 0 28px; }
.lhero-sub { font: 500 clamp(17px, 1.45vw, 20px)/1.5 var(--sans); max-width: 31ch; margin: 0 0 34px; }

/* The one input: type your Instagram, press start */
.ask { position: relative; display: flex; align-items: center; max-width: 520px; background: var(--ivory); border-radius: 999px; padding: 8px 8px 8px 26px; box-shadow: 0 0 34px -6px rgba(224, 161, 138, .55), 0 18px 40px -22px rgba(47, 40, 38, .55); }
.ask::before { content: ''; position: absolute; inset: -2px; border-radius: inherit; padding: 2px; background: conic-gradient(from var(--spin, 0deg), #E0A18A, #FAF8F5, #B09C8E, #E0A18A, #FFE3D6, #E0A18A); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: ring 6s linear infinite; pointer-events: none; }
.ask-at { font: 500 19px/1 var(--sans); color: var(--soft); margin-right: 2px; }
.ask input { flex: 1; min-width: 0; width: 100%; border: 0; background: transparent; font: 500 19px/1 var(--sans); color: var(--espresso); padding: 16px 10px 16px 0; outline: none; }
.ask input::placeholder { color: rgba(47, 40, 38, .42); }
.ask .btn { padding: 18px 28px; font-size: 16px; }
.ask:focus-within { box-shadow: 0 0 0 3px rgba(47, 40, 38, .9), 0 18px 40px -22px rgba(47, 40, 38, .55); }

/* Before and after: one example profile in two states, stacked in the same space so nothing moves when it swaps. */
.lhero-visual { position: relative; justify-self: center; width: min(372px, 100%); }
.ba { display: grid; justify-items: center; gap: 18px; }
.ba-switch { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(250, 248, 245, .5); box-shadow: inset 0 0 0 1px var(--hair); }
.ba-switch button { font: 600 14px/1 var(--sans); color: var(--espresso); background: transparent; border: 0; border-radius: 999px; padding: 11px 18px; cursor: pointer; transition: background .35s var(--ease), color .35s var(--ease); }
.ba-switch button[aria-pressed="true"] { background: var(--espresso); color: var(--ivory); }
.ba-switch button:focus-visible { outline: 2px solid var(--espresso); outline-offset: 2px; }
.ba .was, .ba .now { transition: opacity .7s var(--ease); }
.ba .now { opacity: 0; }
.ba[data-v="after"] .was { opacity: 0; }
.ba[data-v="after"] .now { opacity: 1; }

.bp { width: min(344px, 100%); background: #fff; color: #262626; border-radius: 34px; padding: 18px 16px 0; overflow: hidden; box-shadow: 0 0 0 8px #1d1716, 0 50px 90px -46px rgba(47, 40, 38, .9); font: 400 13px/1.4 -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, var(--sans); cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; }
.bp-bar { margin: 0 0 12px; text-align: center; font-weight: 700; font-size: 14px; }
.bp-head { display: grid; grid-template-columns: 76px repeat(3, minmax(0, 1fr)); align-items: center; gap: 4px; text-align: center; font-size: 11.5px; }
.bp-head b { display: block; font-size: 15px; font-weight: 700; }
.bp-av { display: grid; width: 66px; height: 66px; margin: 3px; border-radius: 50%; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #d62976; }
.bp-av > i { grid-area: 1 / 1; border-radius: 50%; }
.bp-av .was { display: grid; place-items: center; background: #EBCFCA; }
.bp-av .was em { font: italic 400 30px/1 var(--serif); color: #fff; letter-spacing: -.02em; }
.bp-av .now { background: #B7A790 url(/img/hero-face-m.jpg) 50% 24% / 175%; }
.bp-bio, .bp-hl, .bp-grid, .bp-btns .bk { display: grid; }
.bp-bio > div, .bp-hl > div, .bp-grid > div, .bp-btns .bk > i { grid-area: 1 / 1; }
.bp-bio { margin-top: 12px; }
.bp-bio > div { display: grid; align-content: start; gap: 1px; }
.bp-bio b { font-weight: 600; }
.bp-bio span { justify-self: start; border-radius: 4px; padding: 0 4px; margin: 0 -4px; }
.bp-bio .vague { text-decoration: underline wavy rgba(168, 71, 59, .8); text-decoration-thickness: 1.4px; text-underline-offset: 3px; text-decoration-skip-ink: none; }
.ba[data-v="after"] .bp-bio .now span { animation: fresh 2.6s .2s var(--ease) both; }
@keyframes fresh { from { background: rgba(95, 127, 92, .2); } to { background: rgba(95, 127, 92, 0); } }
.bp-link { display: inline-flex; align-items: center; gap: 5px; color: #00376b; font-weight: 600; }
.bp-link svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.bp-btns { display: flex; gap: 6px; margin-top: 12px; }
.bp-btns > span { flex: 1; text-align: center; font-weight: 600; font-size: 13px; padding: 7px 0; border-radius: 9px; background: #efefef; }
.bp-btns .f { background: #0095f6; color: #fff; }
.bp-btns .bk > i { font-style: normal; }
.ba[data-v="after"] .bp-btns .bk { background: #E3EBE1; color: var(--st-good-ink); transition: background .7s var(--ease); }
.bp-hl { margin: 14px 0 12px; }
.bp-hl > div { display: flex; gap: 12px; }
.bp-hl span { display: grid; justify-items: center; gap: 5px; font-size: 11px; }
.bp-hl i { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: #F2E9E3 var(--img, none) center / cover; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #dbdbdb; }
.bp-hl svg { width: 21px; height: 21px; fill: none; stroke: #6B4F45; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.bp-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 -16px; border-top: 1px solid #efefef; }
.bp-tabs > span { display: grid; place-items: center; height: 34px; }
.bp-tabs > span.on { box-shadow: inset 0 1px 0 #262626; }
.bp-tabs svg { width: 16px; height: 16px; fill: none; stroke: #8e8e8e; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.bp-tabs .on svg { stroke: #262626; }
.bp-grid { margin: 0 -16px; }
.bp-grid > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }
.bp-grid i { aspect-ratio: 4 / 5; background: #ddd var(--img) center / cover; }
.bp-grid > div i:nth-child(n + 4) { display: none; }
.ba-cap { display: grid; max-width: 36ch; margin: 2px 0 0; text-align: center; font: 500 14px/1.45 var(--sans); color: var(--espresso); }
.ba-cap > span { grid-area: 1 / 1; }

/* The film: each role at work, one scene at a time like an Instagram story. Each scene runs its own beats
   from the moment it gets .on, so the whole thing pauses, skips and restarts cleanly. */
/* clip-path, not just overflow, so the moving layers inside can never show square corners; the shadow sits behind on the wrapper. */
.film { position: relative; color: var(--espresso); aspect-ratio: 4 / 5; border-radius: 30px; overflow: hidden; clip-path: inset(0 round 30px); isolation: isolate; container-type: inline-size; background: #B7A790 url(/img/hero-face.jpg) center / cover; cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; }
@media (max-width: 600px) { .film { background-image: url(/img/hero-face-m.jpg); } }
.scene { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .6s var(--ease), visibility 0s linear .6s; color: var(--espresso); }
.scene.on { opacity: 1; visibility: visible; transition: opacity .6s var(--ease); z-index: 1; }
.film.paused .scene.on, .film.paused .scene.on *, .film.paused .scene.on *::before, .film.paused .scene.on *::after, .film.paused .film-bars i::after { animation-play-state: paused !important; }

/* Story bars and the label of what it is doing now */
.film-bars { position: absolute; z-index: 6; left: 14px; right: 14px; top: 12px; display: flex; gap: 4px; }
.film-bars i { position: relative; flex: 1; height: 3px; border-radius: 3px; overflow: hidden; background: rgba(250, 248, 245, .45); transition: background .4s; }
.film-bars i::after { content: ''; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; transition: background .4s; }
.film-bars i.done::after { transform: none; }
.film-bars i.on::after { animation: barFill var(--ms, 4s) linear both; }
@keyframes barFill { to { transform: none; } }
.film:not([data-tone="dark"]) .film-bars i { background: rgba(47, 40, 38, .13); }
.film:not([data-tone="dark"]) .film-bars i::after { background: var(--espresso); }
.lreading { position: absolute; z-index: 6; left: 50%; top: 26px; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 8px; background: rgba(250, 248, 245, .86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 999px; padding: 8px 14px; font: 600 12px/1 var(--sans); white-space: nowrap; box-shadow: 0 6px 18px -12px rgba(47, 40, 38, .5); transition: opacity .25s var(--ease); }
.lreading.swap { opacity: 0; }
.film:not([data-tone="dark"]) .lreading { background: #EFE8E2; }
.lreading i { width: 7px; height: 7px; border-radius: 50%; background: var(--peach); box-shadow: 0 0 0 0 rgba(224, 161, 138, .7); animation: pulse 1.4s ease-out infinite; }
.xscan { position: absolute; left: 0; right: 0; top: 0; z-index: 3; height: 30%; pointer-events: none; opacity: 0; transform: translateY(-100%); background: linear-gradient(180deg, rgba(224, 161, 138, 0), rgba(224, 161, 138, .3) 80%, rgba(255, 250, 246, .95)); }
.scene.on .xscan { animation: xscan 1.4s .2s cubic-bezier(.45, 0, .35, 1) both; }
@keyframes xscan { 0% { opacity: 1; transform: translateY(-100%); } 88% { opacity: 1; } 100% { opacity: 0; transform: translateY(340%); } }
@keyframes inUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes inFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes outFade { to { opacity: 0; } }
.xfix { display: inline-flex; align-items: center; gap: 6px; font: 600 11px/1 var(--sans); font-size: 2.7cqw; font-style: normal; color: var(--st-good-ink); background: #E3EBE1; border-radius: 999px; padding: 6px 10px; padding: 1.5cqw 2.5cqw; }
.xfix::before { content: ''; width: 1.6cqw; height: 1.6cqw; border-radius: 50%; background: var(--st-good); }

/* 1. Her work: the live face, read */
.sc-work video, .sc-work .scan { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.scan path, .scan line { fill: none; stroke: var(--ivory); stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 220; stroke-dashoffset: 220; }
.scan line { stroke-width: 1.2; stroke-dasharray: 6 8; opacity: 0; }
.scan circle { fill: var(--ivory); opacity: 0; transform-box: fill-box; transform-origin: center; }
.sc-work.on .scan path { animation: draw 1.3s .3s var(--ease) both; }
.sc-work.on .scan line { animation: inFade .6s .2s both; }
.sc-work.on .scan circle { animation: dotIn .5s 1.2s var(--ease) both; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes dotIn { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: none; } }
.sweep { position: absolute; inset: -20% -60%; pointer-events: none; transform: translateX(-70%); background: linear-gradient(100deg, transparent 42%, rgba(255, 244, 236, .3) 49%, rgba(255, 255, 255, .55) 50%, rgba(255, 244, 236, .28) 51%, transparent 58%); }
.sc-work.on .sweep { animation: sweep 1.7s .1s var(--ease) both; }
@keyframes sweep { to { transform: translateX(70%); } }
.xnote { position: absolute; z-index: 2; top: 24%; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; font: 600 11px/1 var(--sans); font-size: 2.6cqw; border-radius: 999px; background: rgba(250, 248, 245, .9); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; white-space: nowrap; }
.xnote i { width: 6px; height: 6px; border-radius: 50%; background: var(--st-good); }
.xnote.n1 { left: 57%; } .xnote.n2 { left: 7%; }
.sc-work.on .xnote.n1 { animation: inUp .5s 1.6s var(--ease) both; }
.sc-work.on .xnote.n2 { animation: inUp .5s 2s var(--ease) both; }
/* If a phone blocks autoplay, never show its big play button over the design: a tap anywhere starts the videos. */
.film video::-webkit-media-controls-start-playback-button, .lphone video::-webkit-media-controls-start-playback-button { display: none !important; -webkit-appearance: none; }
.film video::-webkit-media-controls, .lphone video::-webkit-media-controls { display: none !important; }

/* 3. Her prices against the market, then a better way to show them */
.sc-price { background: #FAF8F5; }
.xp { position: absolute; left: 8%; right: 8%; top: 20%; }
.xp-k { margin: 0; font: 600 12px/1.2 var(--sans); font-size: 2.9cqw; color: var(--taupe); }
.xp-now { justify-self: start; display: inline-block; margin: 1.6cqw 0 0; font: 600 28px/1.1 -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, var(--sans); font-size: 7.2cqw; color: #262626; border-radius: 6px; }
.sc-price.on .xp-now { animation: hit .5s 1.6s var(--ease) both; }
.xp-chart { margin-top: 10cqw; }
.xp-band-l { margin: 2.6cqw 0 0 37.5%; font: 600 11px/1.25 var(--sans); font-size: 2.6cqw; color: var(--taupe); opacity: 0; }
.sc-price.on .xp-band-l { animation: inFade .5s .9s both; }
.xp-axis { position: relative; height: 3.2cqw; border-radius: 99px; background: rgba(47, 40, 38, .08); }
.xp-band { position: absolute; left: 37.5%; width: 50%; top: 0; bottom: 0; border-radius: 99px; background: linear-gradient(90deg, #EBC9B9, #E0A18A); transform: scaleX(0); transform-origin: left; }
.sc-price.on .xp-band { animation: grow .8s .5s var(--ease) both; }
@keyframes grow { to { transform: none; } }
.xp-you { position: absolute; left: 12.5%; top: 50%; width: 5.4cqw; height: 5.4cqw; margin: -2.7cqw 0 0 -2.7cqw; border-radius: 50%; background: var(--st-fix); box-shadow: 0 0 0 1cqw #FAF8F5; opacity: 0; }
.xp-you b { position: absolute; bottom: 175%; left: 50%; transform: translateX(-50%); font: 700 11px/1 var(--sans); font-size: 2.9cqw; white-space: nowrap; }
.xp-you .a { color: var(--st-fix); }
.xp-you .z { color: var(--st-good-ink); opacity: 0; }
.sc-price.on .xp-you { animation: dotIn .4s 1.3s var(--ease) both, youMove .9s 3.1s var(--ease) forwards; }
.sc-price.on .xp-you .a { animation: outFade .3s 3.1s both; }
.sc-price.on .xp-you .z { animation: inFade .4s 3.7s both; }
@keyframes youMove { from { opacity: 1; } to { opacity: 1; left: 73.75%; background: var(--st-good); } }
.xp-ticks { display: flex; justify-content: space-between; margin-top: 3.4cqw; font: 500 10px/1 var(--sans); font-size: 2.5cqw; color: var(--soft); }
.xp-better { margin-top: 7cqw; background: #fff; border-radius: 4cqw; padding: 4cqw 4.6cqw; box-shadow: 0 0 0 1px var(--hair), 0 18px 30px -24px rgba(47, 40, 38, .6); opacity: 0; }
.xp-better span { font: 600 11px/1 var(--sans); font-size: 2.7cqw; color: var(--st-good-ink); }
.xp-better b { display: block; margin-top: 1.8cqw; font: italic 400 28px/1.05 var(--serif); font-size: 7cqw; }
.xp-better small { display: block; margin-top: 1.2cqw; font: 500 13px/1.3 var(--sans); font-size: 3.2cqw; color: var(--soft); }
.sc-price.on .xp-better { animation: inUp .6s 3.4s var(--ease) both; }

/* 4. Her brand: nine posts that look like three studios, then one brand */
.xg-k { position: absolute; left: 0; right: 0; top: 16.5%; margin: 0; text-align: center; font: 600 12px/1 -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, var(--sans); font-size: 3cqw; color: #262626; }
.xg { position: absolute; left: 0; right: 0; top: 24%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; perspective: 1000px; transition: box-shadow .4s; }
.sc-brand.on .xg { animation: gridRing .4s 1.4s both, gridOff .4s 2.6s forwards; }
@keyframes gridRing { to { box-shadow: 0 -3px 0 var(--st-imp); } }
@keyframes gridOff { to { box-shadow: none; } }
.xt { position: relative; aspect-ratio: 4 / 5; transform-style: preserve-3d; }
.xt > i { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; background-size: cover; background-position: center; font-style: normal; }
.xt > .b { transform: rotateY(180deg); background-color: #F3E6E3; }
.sc-brand.on .xt { animation: flip .75s calc(2.8s + var(--k) * 80ms) var(--ease) both; }
@keyframes flip { to { transform: rotateY(180deg); } }
.g1 { background: url(/img/hero-face-m.jpg) 50% 30% / 150%; filter: saturate(1.9) contrast(1.12) brightness(1.06); }
.g2 { background: #ff2e88; color: #fff; }
.g2 b, .g7 b { font: 900 16px/.95 Impact, 'Arial Black', sans-serif; font-size: 4.6cqw; letter-spacing: .01em; }
.g2 small { display: block; margin-top: 1.4cqw; color: #ffe600; font: 700 10px/1 var(--sans); font-size: 2.6cqw; }
.g3 { background: url(/img/show/raw.jpg) 50% 27% / 170%; filter: brightness(.74) sepia(.45); }
.g4 { background: #0d0d0d; color: #d4af37; }
.g4 em, .g9 em { font: italic 400 20px/1.02 var(--serif); font-size: 5.2cqw; }
.g5 { background: linear-gradient(rgba(255, 214, 232, .3), rgba(255, 214, 232, .3)), url(/img/hero-face-m.jpg) 52% 33% / 260%; filter: blur(1.2px) saturate(1.35) brightness(1.1); }
.g5 .ai { align-self: end; margin-bottom: 3cqw; padding: 1.2cqw 2cqw; border-radius: 99px; background: var(--st-fix); color: #fff; font: 700 9px/1 var(--sans); font-size: 2.3cqw; white-space: nowrap; opacity: 0; filter: blur(0); }
.sc-brand.on .g5 .ai { animation: inUp .4s 1.6s both; }
.g6 { background: #2ec4b6; color: #fff; }
.g6 em { font: 500 15px/1.15 Georgia, serif; font-size: 3.9cqw; }
.g7 { background: #ffd23f; color: #222; }
.g8 { background: url(/img/show/raw.jpg) 50% 30% / 230%; filter: hue-rotate(-24deg) saturate(1.5) brightness(1.05); }
.g9 { background: linear-gradient(135deg, #b38cd9, #f3a6c8); color: #fff; }
.xt > .p1 { background-image: url(/img/show/raw.jpg); background-size: 330%; background-position: 50% 31.5%; }
.xt > .p2 { background-image: url(/img/hero-face-m.jpg); background-size: 165%; background-position: 50% 32%; }
.xt > .p3 { background-image: url(/img/show/raw.jpg); background-size: 165%; background-position: 50% 28%; }
.xt > .b.p1::after, .xt > .b.p2::after, .xt > .b.p3::after { content: ''; position: absolute; inset: 0; background: rgba(176, 92, 107, .1); mix-blend-mode: multiply; }
.xt > .tx { color: #4B1E2B; }
.xt > .tx em { font: italic 400 18px/1.05 var(--serif); font-size: 4.6cqw; }
.xg-fixed { position: absolute; z-index: 4; left: 50%; top: 18.4%; transform: translateX(-50%); opacity: 0; white-space: nowrap; }
.sc-brand.on .xg-fixed { animation: inFade .5s 3.9s both; }
.sc-brand.on .xg-k { animation: outFade .3s 3.7s both; }

/* The web designer: her website builds itself in her colours, then goes live and an enquiry arrives */
.xsite { position: absolute; left: 9%; right: 9%; top: 31%; background: #F3E6E3; border-radius: 3.4cqw; overflow: hidden; box-shadow: 0 30px 50px -30px rgba(75, 30, 43, .6); color: #4B1E2B; opacity: 0; }
.sc-site.on .xsite { animation: inUp .6s .7s var(--ease) both; }
.xsite-bar { display: flex; align-items: center; gap: 1.1cqw; margin: 0; padding: 1.8cqw 2.4cqw; background: #fff; font: 500 10px/1 var(--sans); font-size: 2.3cqw; color: #8B6A70; }
.xsite-bar i { width: 1.6cqw; height: 1.6cqw; border-radius: 50%; background: #E7D3D0; }
.xsite-bar span { margin-left: 1.6cqw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xsite-top { display: flex; align-items: center; justify-content: space-between; padding: 2.4cqw 3.2cqw; border-bottom: 1px solid rgba(75, 30, 43, .12); }
.xsite-top b { font: italic 400 16px/1 var(--serif); font-size: 4cqw; }
.xsite-top u, .xsite-hero u { text-decoration: none; background: #4B1E2B; color: #F3E6E3; border-radius: 999px; font: 600 9px/1 var(--sans); font-size: 2.1cqw; padding: 1.3cqw 2.6cqw; }
.xsite-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 3cqw; align-items: center; padding: 3.6cqw 3.2cqw; }
.xsite-hero em { display: block; font: italic 400 22px/1.02 var(--serif); font-size: 6.2cqw; margin-bottom: 2.4cqw; opacity: 0; }
.xsite-hero s { display: block; height: 1.3cqw; border-radius: 1cqw; background: currentColor; opacity: 0; margin-bottom: 1.3cqw; }
.xsite-hero s.short { width: 62%; }
.xsite-hero u { display: inline-block; margin-top: 1.6cqw; opacity: 0; }
.xsite-hero i { aspect-ratio: 4 / 5; border-radius: 1.2cqw; background: #E7D3D0 center / cover; opacity: 0; }
.xsite-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6cqw; padding: 0 3.2cqw 3.2cqw; }
.xsite-grid i { aspect-ratio: 4 / 5; border-radius: 1cqw; background: #E7D3D0 center / cover; opacity: 0; }
.sc-site.on .xsite-hero em { animation: inUp .5s 1.2s var(--ease) both; }
.sc-site.on .xsite-hero s { animation: inSoft .4s 1.5s both; }
.sc-site.on .xsite-hero s.short { animation-delay: 1.65s; }
.sc-site.on .xsite-hero u { animation: inUp .4s 1.9s var(--ease) both; }
.sc-site.on .xsite-hero i { animation: inFade .6s 1.3s both; }
.sc-site.on .xsite-grid i { animation: inUp .45s 2.3s var(--ease) both; }
.sc-site.on .xsite-grid i:nth-child(2) { animation-delay: 2.45s; }
.sc-site.on .xsite-grid i:nth-child(3) { animation-delay: 2.6s; }
.xsite-note { position: absolute; left: 9%; right: 9%; bottom: 6%; display: flex; align-items: center; gap: 2.4cqw; margin: 0; padding: 2.6cqw 3.2cqw; border-radius: 3cqw; background: #fff; color: #262626; font: 500 12px/1.3 var(--sans); font-size: 3cqw; box-shadow: 0 24px 40px -28px rgba(75, 30, 43, .7); opacity: 0; }
.xsite-note span { flex: none; background: #5F7F5C; color: #fff; border-radius: 999px; padding: 1cqw 2.2cqw; font-weight: 600; font-size: 2.5cqw; }
.sc-site.on .xsite-note { animation: inUp .5s 3.6s var(--ease) both; }
@keyframes inSoft { from { opacity: 0; } to { opacity: .18; } }

/* 5 and 6. Made in her branding: a carousel, and her clip edited into a reel */
.velvet { background: radial-gradient(120% 90% at 20% 0%, #FBF3F1 0%, #F3E6E3 55%, #EAD6D2 100%); }
.xbub { position: absolute; right: 6%; top: 17%; max-width: 80%; margin: 0; padding: 10px 14px; padding: 2.6cqw 3.6cqw; border-radius: 4.5cqw 4.5cqw 1.4cqw 4.5cqw; background: var(--espresso); color: var(--ivory); font: 500 13px/1.35 var(--sans); font-size: 3.3cqw; opacity: 0; }
.scene.on .xbub { animation: inUp .5s .2s var(--ease) both; }
.xcard { position: absolute; left: 23%; top: 28%; width: 54%; background: #fff; border-radius: 3.6cqw; overflow: hidden; box-shadow: 0 30px 50px -30px rgba(75, 30, 43, .6); opacity: 0; }
.sc-carousel.on .xcard { animation: inUp .6s .7s var(--ease) both; }
.xcard-h { display: flex; align-items: center; gap: 2.2cqw; margin: 0; padding: 2.2cqw 2.6cqw; font: 600 11px/1 var(--sans); font-size: 2.8cqw; color: #262626; }
.xav { flex: none; width: 6.4cqw; height: 6.4cqw; border-radius: 50%; display: grid; place-items: center; background: #4B1E2B; color: #F3E6E3; font: italic 400 14px/1 var(--serif); font-size: 3.6cqw; box-shadow: 0 0 0 .5cqw #fff, 0 0 0 .9cqw #B05C6B; }
.xslides { aspect-ratio: 4 / 5; overflow: hidden; background: #F3E6E3; }
.xtrack { display: flex; height: 100%; }
.xtrack img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; }
.sc-carousel.on .xtrack { animation: slides 2.9s 1.4s both; }
@keyframes slides { 0%, 20% { transform: none; } 28%, 50% { transform: translateX(-100%); } 58%, 80% { transform: translateX(-200%); } 88%, 100% { transform: translateX(-300%); } }
.xdots { display: flex; justify-content: center; gap: 1.3cqw; margin: 0; padding: 2.4cqw 0 2.8cqw; }
.xdots i { width: 1.4cqw; height: 1.4cqw; border-radius: 50%; background: rgba(38, 38, 38, .18); }
.xdots .d1 { background: #B05C6B; }
.sc-carousel.on .xdots .d1 { animation: dotA 2.9s 1.4s both; }
.sc-carousel.on .xdots .d3 { animation: dotB 2.9s 1.4s both; }
.sc-carousel.on .xdots .d6 { animation: dotC 2.9s 1.4s both; }
.sc-carousel.on .xdots .d8 { animation: dotD 2.9s 1.4s both; }
@keyframes dotA { 0%, 24% { background: #B05C6B; } 25%, 100% { background: rgba(38, 38, 38, .18); } }
@keyframes dotB { 0%, 24% { background: rgba(38, 38, 38, .18); } 25%, 54% { background: #B05C6B; } 55%, 100% { background: rgba(38, 38, 38, .18); } }
@keyframes dotC { 0%, 54% { background: rgba(38, 38, 38, .18); } 55%, 84% { background: #B05C6B; } 85%, 100% { background: rgba(38, 38, 38, .18); } }
@keyframes dotD { 0%, 84% { background: rgba(38, 38, 38, .18); } 85%, 100% { background: #B05C6B; } }
.xreel { position: absolute; left: 6%; right: 6%; top: 19%; bottom: 14%; display: flex; align-items: center; justify-content: center; gap: 3cqw; }
.xph { position: relative; margin: 0; aspect-ratio: 9 / 16; border-radius: 4cqw; overflow: hidden; background: #1d1716; box-shadow: 0 24px 40px -26px rgba(75, 30, 43, .7); opacity: 0; }
.xph > i { position: absolute; inset: 0; background-size: cover; background-position: center; }
.xph.raw { width: 30%; border-radius: 3cqw; }
.xph.edit { width: 48%; }
.xph figcaption { position: absolute; left: 2.2cqw; top: 2.2cqw; padding: 1.2cqw 1.9cqw; font: 600 9px/1 var(--sans); font-size: 2.4cqw; color: #fff; background: rgba(20, 16, 15, .42); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 99px; }
.sc-reel.on .xph.raw { animation: inUp .5s .2s var(--ease) both; }
.sc-reel.on .xph.edit { animation: inUp .6s 1.1s var(--ease) both; }
.xprog { position: absolute; left: 3cqw; right: 3cqw; bottom: 3cqw; height: .8cqw; border-radius: 9px; overflow: hidden; background: rgba(255, 255, 255, .35); }
.xprog::after { content: ''; position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
.sc-reel.on .xprog::after { animation: grow 6.8s 1.2s linear both; }
.xarrow { flex: none; width: 8cqw; fill: none; stroke: #4B1E2B; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.sc-reel.on .xarrow { animation: inFade .4s .7s both; }

/* 7. A client's DM, answered in her voice */
.sc-reply { background: #FAF8F5; }
.xdm { position: absolute; left: 6%; right: 6%; top: 18.5%; display: flex; flex-direction: column; gap: 2.8cqw; }
.xdm-h { display: flex; align-items: center; gap: 2.6cqw; margin: 0 0 1cqw; padding-bottom: 3cqw; border-bottom: 1px solid var(--hair); font: 600 14px/1.15 var(--sans); font-size: 3.5cqw; }
.xdm-h small { display: block; margin-top: .6cqw; font-weight: 500; font-size: 2.7cqw; color: var(--soft); }
.xav.c { width: 8.5cqw; height: 8.5cqw; background: #E9C7B9; color: #4B1E2B; font-size: 4.4cqw; box-shadow: none; }
.xin, .xout { margin: 0; padding: 11px 14px; padding: 2.8cqw 3.6cqw; font: 500 14px/1.42 var(--sans); font-size: 3.5cqw; opacity: 0; }
.xin { align-self: flex-start; max-width: 80%; background: #fff; border: 1px solid var(--hair); border-radius: 4.5cqw 4.5cqw 4.5cqw 1.4cqw; }
.sc-reply.on .xin { animation: inUp .5s .25s var(--ease) both; }
.xwho { display: flex; align-items: center; gap: 1.8cqw; margin: 1cqw 0 0; font: 600 11px/1 var(--sans); font-size: 2.8cqw; color: var(--soft); opacity: 0; }
.xwho img { width: 6.4cqw; height: 6.4cqw; padding: 1.1cqw; border-radius: 50%; background: var(--stone); }
.sc-reply.on .xwho { animation: inFade .4s .8s both; }
.xout { align-self: flex-end; max-width: 88%; background: var(--espresso); color: var(--ivory); border-radius: 4.5cqw 4.5cqw 1.4cqw 4.5cqw; }
.sc-reply.on .xout { animation: inFade .3s 1.2s both; }
.xout .w { opacity: 0; }
.sc-reply.on .xout .w { animation: inFade .18s calc(1.35s + var(--w) * 55ms) both; }

/* The team: the one dark band on the page. Every role a PMU artist usually does alone, listed at once,
   and the film beside it showing whichever role is lit. */
.lteam { background: var(--espresso); color: var(--ivory); }
.lteam-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: clamp(36px, 6vw, 100px); align-items: center; max-width: 1360px; margin: 0 auto; padding: clamp(72px, 10vw, 136px) clamp(20px, 6vw, 96px); }
.lteam h2 { font-size: clamp(46px, 6vw, 88px); line-height: .95; letter-spacing: -.02em; margin: 0 0 22px; color: var(--ivory); }
.lteam-intro { font: 500 17px/1.55 var(--sans); color: rgba(250, 248, 245, .74); max-width: 42ch; margin: 0 0 clamp(28px, 3.4vw, 44px); }
.roles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px clamp(20px, 2.6vw, 36px); }
.roles button { position: relative; display: grid; align-content: start; gap: 7px; width: 100%; height: 100%; text-align: left; background: transparent; border: 0; color: inherit; padding: 18px 0 16px; cursor: pointer; }
.roles button::before, .roles button::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(250, 248, 245, .16); }
.roles button::after { height: 2px; background: var(--peach); transform: scaleX(0); transform-origin: left; }
.roles button[aria-pressed="true"]::after { animation: barFill var(--ms, 7s) linear both; }
.lteam.paused .roles button::after { animation-play-state: paused; }
.roles b { font: italic 400 clamp(25px, 2.3vw, 31px)/1.05 var(--serif); color: rgba(250, 248, 245, .6); transition: color .3s var(--ease); }
.roles span { font: 500 14px/1.45 var(--sans); color: rgba(250, 248, 245, .58); transition: color .3s var(--ease); }
.roles button:hover b, .roles button[aria-pressed="true"] b { color: var(--ivory); }
.roles button[aria-pressed="true"] span { color: rgba(250, 248, 245, .86); }
.roles button:focus-visible { outline: 2px solid var(--peach); outline-offset: 4px; border-radius: 4px; }
.lteam-visual { position: relative; justify-self: center; width: min(440px, 100%); }
.lteam-visual::before { content: ''; position: absolute; left: 0; right: 0; top: 0; aspect-ratio: 4 / 5; border-radius: 30px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .7); pointer-events: none; }
.film-cap { display: none; margin: 20px 0 0; gap: 6px; }
.film-cap b { font: italic 400 30px/1.05 var(--serif); }
.film-cap span { font: 500 15px/1.5 var(--sans); color: rgba(250, 248, 245, .78); max-width: 40ch; }
.xp-more { margin: 4.4cqw 0 0; font: 600 13px/1.35 var(--sans); font-size: 3.4cqw; color: var(--st-good-ink); opacity: 0; }
.xp-more b { font-weight: 700; }
.sc-price.on .xp-more { animation: inUp .6s 4.6s var(--ease) both; }
.xph.edit video { position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); object-fit: cover; }

/* Pause for the hero film (it also rests by itself when off screen) */
.film-pause { position: absolute; z-index: 8; top: 23px; right: 14px; width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: rgba(250, 248, 245, .82); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: var(--espresso); cursor: pointer; opacity: .85; }
.film-pause svg { width: 13px; height: 13px; fill: currentColor; }
.film-pause .pl, .film-pause[aria-pressed="true"] .ps { display: none; }
.film-pause[aria-pressed="true"] .pl { display: inline; }
.film-pause:hover { opacity: 1; }
.film-pause:focus-visible { outline: 2px solid var(--espresso); outline-offset: 2px; }

/* How it works: three steps on one rail. Each picture is small enough to take in at a glance. */
.lhow > h2 { font-size: clamp(46px, 6vw, 88px); line-height: .95; letter-spacing: -.02em; margin: 0 0 clamp(36px, 5vw, 60px); }
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); align-items: start; }
.step { display: grid; gap: 10px; align-content: start; min-width: 0; }
.step-n { display: flex; align-items: center; gap: 16px; font: italic 400 58px/1 var(--serif); }
.step-n::after { content: ''; flex: 1; height: 1px; background: var(--hair-strong); }
.step:last-child .step-n::after { display: none; }
.step h3 { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.05; margin: 6px 0 0; }
.step > p { font: 500 16px/1.5 var(--sans); color: var(--soft); margin: 0; max-width: 34ch; }
.step-v { margin-top: 16px; }
.st-pill { display: flex; align-items: center; margin: 0; background: var(--ivory); border-radius: 999px; padding: 7px 7px 7px 18px; font: 500 16px/1 var(--sans); box-shadow: 0 18px 40px -26px rgba(47, 40, 38, .6); }
.st-pill span { color: var(--soft); margin-right: 2px; }
.st-pill i { width: 2px; height: 19px; margin-left: 2px; background: var(--espresso); animation: caret 1.1s steps(1) infinite; }
@keyframes caret { 50% { opacity: 0; } }
.st-pill b { margin-left: auto; font: 600 13px/1 var(--sans); background: var(--peach); border-radius: 999px; padding: 12px 15px; white-space: nowrap; }
.st-read { display: flex; align-items: center; gap: 9px; margin: 14px 0 0 18px; font: 600 13px/1.35 var(--sans); color: var(--soft); }
.st-read i { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--peach); box-shadow: 0 0 0 0 rgba(224, 161, 138, .7); animation: pulse 1.4s ease-out infinite; }
.st-rep { background: var(--ivory); border-radius: 22px; padding: 16px; box-shadow: 0 30px 60px -44px rgba(47, 40, 38, .8); }
.st-rep-top { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; align-items: center; }
.st-rep .anl-dial { width: 76px; }
.st-rep .anl-dial b { font-size: 30px; }
.st-rep .anl-dial span { font-size: 9px; }
.st-rep .anl-dial .val { stroke-dashoffset: 59; transition: none; }
.st-rep-top p { margin: 0; font: italic 400 21px/1.1 var(--serif); }
.st-rep-top small { display: block; margin-top: 7px; font: 500 12.5px/1.3 var(--sans); font-style: normal; color: var(--soft); }
.st-rep-top small b { color: var(--espresso); }
.st-rep ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 7px; }
.st-rep li { display: grid; gap: 7px; justify-items: start; background: #fff; border: 1px solid var(--hair); border-radius: 14px; padding: 11px 12px; font: 600 13.5px/1.3 var(--sans); }
.st-rep .fnd-s { font: 600 11px/1 var(--sans); padding: 5px 9px 5px 7px; }
.st-chat { display: grid; gap: 10px; }
.st-me { justify-self: end; margin: 0; background: var(--espresso); color: var(--ivory); border-radius: 20px 20px 6px 20px; padding: 12px 16px; font: 500 15px/1.4 var(--sans); }
.st-week { list-style: none; margin: 0; padding: 12px; display: grid; gap: 7px; background: var(--ivory); border-radius: 20px 20px 20px 6px; box-shadow: 0 30px 60px -44px rgba(47, 40, 38, .8); }
.st-week li { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--hair); border-radius: 12px; padding: 9px 11px; }
.st-week b { font: italic 400 19px/1 var(--serif); }
.st-week span { font: 500 13px/1.3 var(--sans); }
.st-week em { font: 600 10.5px/1 var(--sans); font-style: normal; background: rgba(224, 161, 138, .3); border-radius: 99px; padding: 5px 8px; }
.lhow-go { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin: clamp(40px, 5vw, 64px) 0 0; font: 500 14px/1.45 var(--sans); color: var(--soft); }
.lhow-go .btn { padding: 18px 30px; font-size: 16px; }
.lhow-go span { max-width: 50ch; }
.lshow { padding-top: 0; }

/* Just ask */
.lsec { padding: clamp(72px, 10vw, 140px) clamp(20px, 6vw, 96px); max-width: 1360px; margin: 0 auto; }
.ldemo { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 6vw, 96px); align-items: center; }
.ldemo h2, .lend h2 { font-size: clamp(48px, 6vw, 88px); line-height: .95; letter-spacing: -.02em; margin: 0 0 22px; }
.ldemo p { font: 500 17px/1.5 var(--sans); max-width: 26ch; margin: 0 0 24px; }
.try { display: flex; flex-wrap: wrap; gap: 8px; }
.try button { font: 600 14px/1 var(--sans); border: 1px solid rgba(47, 40, 38, .3); background: transparent; color: var(--espresso); border-radius: 999px; padding: 12px 16px; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.try button[aria-pressed="true"] { background: var(--espresso); color: var(--ivory); border-color: var(--espresso); }
.lchat { background: var(--ivory); border-radius: 28px; padding: clamp(20px, 3vw, 32px); min-height: 360px; display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; box-shadow: 0 40px 80px -56px rgba(47, 40, 38, .8); }
.lbub { max-width: 86%; padding: 14px 18px; border-radius: 22px; font: 500 16px/1.5 var(--sans); }
.lbub.me { align-self: flex-end; background: var(--espresso); color: var(--ivory); border-bottom-right-radius: 8px; }
.lbub.ai { align-self: flex-start; background: #fff; border: 1px solid var(--hair); border-bottom-left-radius: 8px; white-space: pre-line; }
.lbub .lsrc { display: inline-flex; margin-top: 10px; font: 600 12px/1 var(--sans); background: rgba(224, 161, 138, .32); border-radius: 999px; padding: 6px 10px; }
.lwho { display: flex; align-items: center; gap: 10px; font: 600 13px/1 var(--sans); color: var(--soft); }
.lwho img { width: 26px; height: 26px; border-radius: 50%; background: var(--stone); padding: 5px; }
.ldots { display: inline-flex; gap: 4px; }
.ldots i { width: 7px; height: 7px; border-radius: 50%; background: var(--mocha); animation: blink 1.2s infinite both; }
.ldots i:nth-child(2) { animation-delay: .2s; } .ldots i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }

/* Why trust it */
.ltrust { background: var(--ivory); }
.ltrust .lsec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 56px); padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.ltrust p { font-family: var(--serif); font-style: italic; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.1; margin: 0; }
.ltrust span { display: block; font: 500 15px/1.5 var(--sans); color: var(--soft); margin-top: 12px; max-width: 30ch; }

/* Last push */
.lend { text-align: center; }
.lend .ask { margin: 0 auto; }
.lend .lhero-note { margin-left: 0; }

.lfoot { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; padding: 28px clamp(20px, 6vw, 96px) 40px; font: 500 13px/1.4 var(--sans); color: var(--soft); max-width: 1360px; margin: 0 auto; }
.lfoot nav { display: flex; gap: 20px; }

/* Ask for it, post it: two real examples from an example studio, shown in that studio's own colours */
.lshow > h2 { text-align: center; font-size: clamp(48px, 6vw, 88px); line-height: .95; letter-spacing: -.02em; margin: 0 0 clamp(36px, 5vw, 60px); }
.lcases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(20px, 3.4vw, 48px); row-gap: 14px; }
/* Both examples share rows, so the two stages line up however long each request is. */
.lcase { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 14px; min-width: 0; }
.lask { max-width: 92%; justify-self: end; align-self: end; }
.lcase .lwho { align-self: end; justify-self: start; }
.lclip { display: flex; align-items: center; gap: 9px; margin-top: 10px; font: 600 12px/1 var(--sans); color: rgba(250, 248, 245, .72); }
.lclip img { width: 24px; height: 42px; object-fit: cover; border-radius: 5px; }
.lclips { display: flex; gap: 6px; margin-top: 10px; }
.lclips img { width: 34px; height: 60px; object-fit: cover; border-radius: 7px; box-shadow: 0 0 0 1px rgba(250, 248, 245, .18); }
.lphone.solo { width: min(62%, 300px); }
.lstage { --her-bg: #F3E6E3; --her-ink: #4B1E2B; --her-accent: #B05C6B; position: relative; display: flex; align-items: center; justify-content: center; min-height: 600px; padding: clamp(22px, 3vw, 40px); border-radius: 28px; overflow: hidden; background: radial-gradient(120% 90% at 20% 0%, #FBF3F1 0%, var(--her-bg) 55%, #EAD6D2 100%); box-shadow: 0 40px 80px -56px rgba(47, 40, 38, .8); }
.igcard { width: min(100%, 380px); width: round(down, min(100%, 380px), 1px); background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 34px 60px -34px rgba(75, 30, 43, .55); }
.ighead { display: flex; align-items: center; gap: 10px; padding: 12px 14px; font: 600 14px/1 var(--sans); color: #262626; }
.igav { width: 32px; height: 32px; border-radius: 50%; background: var(--her-ink); color: var(--her-bg); display: grid; place-items: center; font: italic 400 19px/1 var(--serif); box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--her-accent); }
.igmore { margin-left: auto; display: flex; gap: 3px; padding: 6px 2px; }
.igmore i { width: 4px; height: 4px; border-radius: 50%; background: #262626; }
.igslides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; aspect-ratio: 4 / 5; background: var(--her-bg); outline: none; }
.igslides::-webkit-scrollbar { display: none; }
.igslides img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; scroll-snap-stop: always; }
.igslides:focus-visible { box-shadow: inset 0 0 0 3px var(--her-accent); }
.igdots { display: flex; justify-content: center; gap: 5px; padding: 12px 0 14px; }
.igdots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(38, 38, 38, .18); transition: background .3s, transform .3s; }
.igdots i.on { background: var(--her-accent); transform: scale(1.15); }
.lstage-reel { gap: clamp(10px, 2vw, 22px); }
.lphone { position: relative; margin: 0; aspect-ratio: 9 / 16; border-radius: 26px; overflow: hidden; background: #1d1716; box-shadow: 0 34px 60px -34px rgba(75, 30, 43, .6); }
.lphone video { position: absolute; inset: -1px; width: calc(100% + 2px); height: calc(100% + 2px); object-fit: cover; }
.lphone.raw { width: 36%; border-radius: 20px; }
.lphone.edit { width: 52%; }
.lphone figcaption { position: absolute; left: 10px; top: 10px; font: 600 11px/1 var(--sans); color: #fff; background: rgba(20, 16, 15, .42); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 999px; padding: 6px 9px; }
.larrow { width: 40px; flex: 0 0 auto; fill: none; stroke: var(--her-ink); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.lsound { position: absolute; left: 10px; bottom: 12px; font: 600 12px/1 var(--sans); color: var(--espresso); background: rgba(250, 248, 245, .92); border: 0; border-radius: 999px; padding: 9px 12px; cursor: pointer; }
.lsound:focus-visible { outline: 2px solid var(--her-accent); outline-offset: 2px; }
.lnote { margin: 0; font: 500 12px/1 var(--sans); color: var(--soft); text-align: center; }
@media (max-width: 960px) {
  .lcases { grid-template-columns: minmax(0, 1fr); row-gap: 14px; }
  .lcase { grid-row: auto; display: flex; flex-direction: column; gap: 14px; }
  .lcase + .lcase { margin-top: 40px; }
  .lask { align-self: flex-end; }
  .lcase .lwho { align-self: flex-start; }
  .lstage { min-height: 0; }
}
@media (max-width: 520px) {
  .lstage { padding: 18px 14px; border-radius: 22px; }
  .lphone.solo { width: 74%; }
  .lphone { border-radius: 18px; }
  .lphone.raw { border-radius: 14px; }
  .larrow { width: 26px; }
}

/* A phone that blocked autoplay: say how to start it */
.lphone.blocked::after { content: 'Tap to play'; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font: 600 12px/1 var(--sans); color: var(--espresso); background: rgba(250, 248, 245, .92); padding: 9px 13px; border-radius: 999px; pointer-events: none; }

@media (max-width: 960px) {
  .lhero { grid-template-columns: minmax(0, 1fr); padding-top: 96px; min-height: 0; gap: 40px; }
  .lteam-in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  /* On a phone every role shows at once as a row of names; the one at work is named under the film. */
  .roles { display: flex; flex-wrap: wrap; gap: 8px; }
  .roles button { display: block; width: auto; height: auto; padding: 10px 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(250, 248, 245, .26); transition: background .3s var(--ease); }
  .roles button::before, .roles button::after, .roles span { display: none; }
  .roles b { font: 600 14px/1 var(--sans); color: rgba(250, 248, 245, .82); }
  .roles button[aria-pressed="true"] { background: var(--ivory); box-shadow: none; }
  .roles button[aria-pressed="true"] b { color: var(--espresso); }
  .film-cap { display: grid; }
  .steps { grid-template-columns: minmax(0, 1fr); gap: 52px; }
  .step-n::after { display: none; }
  .ldemo { grid-template-columns: minmax(0, 1fr); }
  .ltrust .lsec { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .lhero { padding-top: 84px; gap: 30px; }
  .lhero-title { font-size: 56px; }
  .lhero-sub { margin-bottom: 28px; }
  .ask { padding-left: 18px; }
  .ask input, .ask-at { font-size: 17px; }
  .ask .btn { padding: 16px 18px; font-size: 15px; }
  .lhero-note { margin-left: 18px; }
  .lnav-right .btn { display: none; }
  .bp { padding: 16px 14px 0; border-radius: 30px; }
  .bp-tabs, .bp-grid { margin: 0 -14px; }
  .bp-hl > div { gap: 9px; }
  .bp-hl i { width: 46px; height: 46px; }
  .lteam h2 { font-size: 48px; }
}
/* A laptop with a short screen: the profile shrinks a little so all of it shows beside the headline. */
@media (min-width: 961px) and (max-height: 820px) {
  .lhero { padding-top: 92px; padding-bottom: 48px; }
  .ba { zoom: .84; }
}
/* Reduced motion: everything still happens, as fades instead of movement. */
@media (prefers-reduced-motion: reduce) {
  .sweep { display: none; }
  .ask::before { animation: none; }
  .scene.on .xscan { animation: none; }
  .sc-work.on .scan circle, .xnote, .xbub, .xcard, .xph, .xin, .xout, .xp-better, .xp-more, .g5 .ai, .xsite, .xsite-hero em, .xsite-hero u, .xsite-grid i, .xsite-note { animation-name: inFade !important; }
  .sc-brand.on .xt { animation: none; }
  .sc-brand.on .xt > .f { animation: outFade .5s calc(2.8s + var(--k) * 60ms) both; }
  .xt > .b { transform: none; opacity: 0; }
  .sc-brand.on .xt > .b { animation: inFade .5s calc(2.8s + var(--k) * 60ms) both; }
  .sc-carousel.on .xtrack { animation-timing-function: steps(1, end); }
  .st-pill i, .st-read i { animation: none; }
}
