/* ListingLens marketing site. Tokens come from the app's Theme.swift. */
:root {
	--ink: #231F20;
	--ink-2: #3a3536;
	--muted: #5E6660;
	--soft: #9AA09B;
	--canvas: #F4F3F0;
	--stone: #E4E3E0;
	--white: #fff;
	--line: rgba(35, 31, 32, .09);
	--sage: #25754E;
	--sage-deep: #1A5638;
	--tint: #E3EBE3;
	--mint: #9FD4A6;
	--ease: cubic-bezier(.22, .61, .24, 1);
	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--radius: 28px;
	--maxw: 1440px;
	--gutter: clamp(20px, 3vw, 40px);
	--section: clamp(96px, 13vw, 176px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--canvas);
	color: var(--ink);
	font-family: Manrope, ui-sans-serif, system-ui, -apple-system, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01", "cv11";
	overflow-x: clip;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--tint); color: var(--sage-deep); }
:focus-visible { outline: 2px solid var(--sage); outline-offset: 3px; border-radius: 6px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.ll-main > *, .ll-main { margin: 0; }

/* ---------- Type ---------- */
.ll-wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.ll-display {
	font-size: clamp(2.9rem, 7.2vw, 6.75rem);
	font-weight: 500;
	letter-spacing: -0.048em;
	line-height: .98;
	margin: 0;
}
.ll-h2 {
	font-size: clamp(2.3rem, 4.8vw, 4.25rem);
	font-weight: 500;
	letter-spacing: -0.042em;
	line-height: 1.02;
	margin: 0;
	text-wrap: balance;
}
.ll-h3 { display: block; font-size: 1.375rem; font-weight: 500; letter-spacing: -0.022em; line-height: 1.2; margin: 0; }
.ll-lede { font-size: clamp(1.0625rem, 1.3vw, 1.1875rem); line-height: 1.55; color: var(--muted); max-width: 34em; margin: 0; text-wrap: pretty; }
.ll-soft { color: var(--soft); }

/* Headline motion: words rise out of a mask, sharpening as they land. */
.ll-word { display: inline-block; overflow: hidden; vertical-align: top; padding: .04em .04em .26em; margin: -.04em -.04em -.26em; }
.ll-word > span { display: inline-block; transform: translate3d(0, 108%, 0) rotate(4deg); transform-origin: 0 100%; opacity: 0; filter: blur(8px);
	transition: transform 1.15s var(--ease-out) var(--wd, 0ms), opacity .9s var(--ease) var(--wd, 0ms), filter 1s var(--ease) var(--wd, 0ms); }
.is-split.is-in .ll-word > span { transform: none; opacity: 1; filter: none; }
.ll-head { margin-bottom: clamp(48px, 6vw, 80px); }
.ll-head--split { display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px; align-items: end; }
.ll-head--center { text-align: center; }
.ll-head--center .ll-lede { margin: 20px auto 0; }

/* ---------- Buttons: colour and shadow only, the label never moves ---------- */
.ll-btn {
	display: inline-flex; align-items: center; justify-content: center;
	height: 52px; padding: 0 26px; border-radius: 999px; border: 0;
	font: 500 0.98rem/1 Manrope, sans-serif; letter-spacing: -0.01em;
	cursor: pointer; white-space: nowrap;
	transition: background-color .4s var(--ease), box-shadow .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.ll-btn--sm { height: 42px; padding: 0 20px; font-size: .92rem; }
.ll-btn--block { width: 100%; }
.ll-btn--ink { background: var(--ink); color: #fff; box-shadow: 0 1px 0 rgba(255,255,255,.08) inset, 0 8px 20px -12px rgba(35,31,32,.6); }
.ll-btn--ink:hover { background: #000; box-shadow: 0 1px 0 rgba(255,255,255,.08) inset, 0 16px 34px -14px rgba(35,31,32,.75); }
.ll-btn--light { background: #fff; color: var(--ink); box-shadow: 0 10px 30px -16px rgba(0,0,0,.5); }
.ll-btn--light:hover { background: var(--tint); }
.ll-btn--glass { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.32); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.ll-btn--glass:hover { background: rgba(255,255,255,.24); border-color: rgba(255,255,255,.5); }
.ll-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* ---------- Navigation ---------- */
.ll-nav {
	position: fixed; z-index: 50; top: calc(var(--admin, 0px) + 20px); left: 50%; transform: translateX(-50%);
	width: calc(100% - 28px); max-width: calc(var(--maxw) + 40px);
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
	padding: 10px 10px 10px 20px; border-radius: 999px;
	border: 1px solid transparent;
	transition: background-color .6s var(--ease), border-color .6s var(--ease), max-width .8s var(--ease), box-shadow .6s var(--ease), color .4s var(--ease);
}
.ll-nav__logo { position: relative; justify-self: start; width: 148px; height: 28px; }
.ll-nav__logo img { position: absolute; inset: 0; width: 100%; height: 100%; transition: opacity .4s var(--ease); }
.ll-logo-light { opacity: 0; }
.ll-nav__links { display: flex; gap: 6px; }
.ll-nav__links a { padding: 8px 14px; border-radius: 999px; font-size: .94rem; font-weight: 500; color: var(--ink-2); transition: background-color .3s var(--ease), color .3s var(--ease); }
.ll-nav__links a:hover { background: rgba(35,31,32,.06); }
.ll-nav__cta { justify-self: end; }
.ll-nav__menu { display: none; }
.ll-nav.is-light .ll-logo-dark { opacity: 0; }
.ll-nav.is-light .ll-logo-light { opacity: 1; }
.ll-nav.is-light .ll-nav__links a { color: rgba(255,255,255,.88); }
.ll-nav.is-light .ll-nav__links a:hover { background: rgba(255,255,255,.14); }
.ll-nav.is-light .ll-nav__cta { background: #fff; color: var(--ink); }
.ll-nav.is-scrolled:not(.is-light) {
	max-width: min(1240px, calc(100% - 28px));
	background: rgba(244,243,240,.78);
	-webkit-backdrop-filter: saturate(1.4) blur(18px); backdrop-filter: saturate(1.4) blur(18px);
	border-color: var(--line);
	box-shadow: 0 1px 0 rgba(255,255,255,.7) inset, 0 2px 6px rgba(35,31,32,.04), 0 18px 44px -18px rgba(35,31,32,.22);
}
.admin-bar { --admin: 32px; }
@media (max-width: 782px) { .admin-bar { --admin: 46px; } }
.ll-sheet {
	position: fixed; z-index: 49; inset: var(--admin, 0px) 0 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px;
	padding: 110px var(--gutter) max(32px, env(safe-area-inset-bottom)); background: var(--canvas);
	opacity: 0; visibility: hidden; transition: opacity .45s var(--ease), visibility 0s .45s;
}
.ll-sheet.is-open { opacity: 1; visibility: visible; transition: opacity .45s var(--ease); }
.ll-sheet a:not(.ll-btn) { font-size: clamp(2.4rem, 11vw, 3.6rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1.12; padding: 4px 0; opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity .6s var(--ease-out), transform .7s var(--ease-out); }
.ll-sheet a:not(.ll-btn):nth-child(2) { transition-delay: .05s; }
.ll-sheet a:not(.ll-btn):nth-child(3) { transition-delay: .1s; }
.ll-sheet a:not(.ll-btn):nth-child(4) { transition-delay: .15s; }
.ll-sheet.is-open a:not(.ll-btn) { opacity: 1; transform: none; }
.ll-sheet .ll-btn { margin-top: 28px; height: 58px; opacity: 0; transition: opacity .6s var(--ease) .22s; }
.ll-sheet.is-open .ll-btn { opacity: 1; }
.ll-sheet__fine { margin: 18px 0 0; color: var(--muted); font-size: .9rem; }
html.ll-locked, html.ll-locked body { overflow: hidden; }

/* ---------- Phones ---------- */
.ll-phone {
	position: relative; background: rgba(12,12,13,var(--bezel, 1)); padding: 11px;
	box-shadow: 0 0 0 1.5px #2a2a2c inset, 0 0 0 1px rgba(255,255,255,.06), 0 60px 90px -40px rgba(20,22,20,.55), 0 30px 40px -30px rgba(20,22,20,.35);
}
.ll-phone::before { /* the metal rim */
	content: ""; position: absolute; inset: -2px; border-radius: inherit; z-index: -1;
	background: linear-gradient(140deg, #8d8f92, #3d3e40 30%, #a7a9ac 55%, #3a3b3d 80%, #7d7f82);
	opacity: var(--bezel, 1);
}
.ll-phone__screen { position: relative; width: 100%; height: 100%; overflow: hidden; background: #111; container-type: size; isolation: isolate; }
.ll-phone--land { aspect-ratio: 19.5 / 9; border-radius: 9.5cqh; }
.ll-phone--land { border-radius: clamp(26px, 4.6vw, 62px); }
.ll-phone--land .ll-phone__screen { border-radius: clamp(17px, 3.6vw, 52px); }
.ll-phone--land .ll-phone__island { position: absolute; left: 3.1%; top: 50%; width: 2.1%; height: 25%; transform: translateY(-50%); background: #000; border-radius: 999px; z-index: 3; }
.ll-phone--port { width: min(340px, 82vw); aspect-ratio: 9 / 19.5; border-radius: 56px; }
.ll-phone--port .ll-phone__screen { border-radius: 45px; }
.ll-phone--port .ll-phone__island { position: absolute; top: 3.1%; left: 50%; width: 30%; height: 3.3%; transform: translateX(-50%); background: #000; border-radius: 999px; z-index: 3; }

/* Walkthrough film */
.ll-film { position: absolute; inset: 0; overflow: hidden; }
.ll-film__frame { position: absolute; inset: 0; opacity: 0; transition: opacity 1.5s var(--ease); transform-origin: 50% 55%; }
.ll-film__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ll-film__raw { opacity: 0; transition: opacity 1.3s var(--ease); }

/* The raw phone view: keystoned, dim, warm, flat and a touch soft. Shared by the viewfinders and the before/after. */
.ll-film.is-raw .ll-film__raw { opacity: 1; }
.ll-film__frame.is-active { opacity: 1; }
.ll-film__frame.is-active, .ll-film__frame.is-leaving { animation: ll-dolly var(--film-dur, 6.6s) linear both; }
.ll-film--pan .ll-film__frame.is-active, .ll-film--pan .ll-film__frame.is-leaving { animation-name: ll-pan; }
.ll-film.is-paused .ll-film__frame { animation-play-state: paused; }
@keyframes ll-dolly {
	from { transform: scale(1.04) translate3d(1.6%, .8%, 0) rotate(.25deg); }
	to   { transform: scale(1.2) translate3d(-1.8%, -.5%, 0) rotate(-.15deg); }
}
@keyframes ll-pan {
	from { transform: scale(1.14) translate3d(4%, 0, 0); }
	to   { transform: scale(1.14) translate3d(-4%, -.6%, 0); }
}

/* Camera HUD, drawn after the app's CameraCaptureView and HoldGlow */
.ll-hud { position: absolute; inset: 0; z-index: 2; opacity: 0; transition: opacity .6s var(--ease); pointer-events: none; color: #fff; }
.ll-hud.is-on { opacity: 1; }
.ll-hud__rec {
	position: absolute; top: 5.5cqh; left: 50%; transform: translateX(-50%);
	display: flex; align-items: center; gap: 1.6cqh; height: 8.6cqh; padding: 0 3.6cqh; border-radius: 999px;
	background: rgba(0,0,0,.4); font-size: 3.6cqh; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: .01em;
}
.ll-hud__rec i { width: 2.3cqh; height: 2.3cqh; border-radius: 50%; background: #ff3b30; animation: ll-pulse 1.6s ease-in-out infinite; }
@keyframes ll-pulse { 50% { opacity: .35; } }
.ll-hud__card {
	position: absolute; left: 8cqw; bottom: 6cqh; max-width: 62cqw;
	display: flex; align-items: center; gap: 2.8cqh; padding: 2.4cqh 3.6cqh; border-radius: 3.8cqh;
	background: rgba(0,0,0,.5); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.ll-hud__card strong { display: block; font-size: 3.7cqh; font-weight: 700; line-height: 1.25; transition: color .3s; }
.ll-hud__card span { display: block; font-size: 3.2cqh; line-height: 1.3; color: rgba(255,255,255,.8); }
.ll-hud__card.is-done strong { color: var(--mint); }
.ll-ring { width: 8.4cqh; height: 8.4cqh; flex: none; transform: rotate(-90deg); }
.ll-ring circle { fill: none; stroke: rgba(255,255,255,.3); stroke-width: 3.2; }
.ll-ring .ll-ring__fill { stroke: var(--mint); stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--hold, 0)); }
.ll-brackets { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ll-brackets path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.ll-captured {
	position: absolute; left: 50%; top: 50%; display: flex; align-items: center; gap: 2.4cqh;
	padding: 1.9cqh 4.4cqh 1.9cqh 1.9cqh; border-radius: 999px; background: var(--tint); color: var(--ink);
	font-size: 4.3cqh; font-weight: 700; white-space: nowrap; box-shadow: 0 2cqh 5cqh rgba(0,0,0,.25);
	opacity: 0; transform: translate(-50%, -50%) scale(.85);
	transition: opacity .3s var(--ease), transform .45s cubic-bezier(.34, 1.56, .64, 1);
}
.ll-captured img { width: 6.4cqh; height: 6.4cqh; }
.ll-captured.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.ll-phone__screen::after { /* shutter flash */
	content: ""; position: absolute; inset: 0; z-index: 4; background: #fff; opacity: 0; pointer-events: none;
}
.ll-phone__screen.is-flash::after { animation: ll-flash .5s var(--ease) both; }
@keyframes ll-flash { 0% { opacity: .55; } 100% { opacity: 0; } }

/* ---------- Hero ---------- */
.ll-hero__stage { position: absolute; inset: 0; }
.ll-hero .ll-phone {
	--pw: min(920px, 80vw, calc((100svh - 330px) * 2.1));
	position: absolute; left: 50%; top: 66%; width: var(--pw);
	transform-origin: 50% 50%;
}
.ll-hero .ll-phone__screen::before { /* scrim for the opening headline */
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: var(--scrim, 1);
	background:
		linear-gradient(90deg, rgba(10,12,11,.55) 0%, rgba(10,12,11,.28) 42%, rgba(10,12,11,0) 72%),
		linear-gradient(180deg, rgba(10,12,11,.3) 0%, rgba(10,12,11,0) 24%, rgba(10,12,11,.08) 45%, rgba(10,12,11,.72) 100%);
}
.ll-hero .ll-phone__island { opacity: var(--bezel, 1); }
.ll-hero .ll-phone.has-hand { --pw: min(860px, 74vw, calc((100svh - 320px) * 2)); left: 50%; }
/* The hand grips the phone's right edge, as in a landscape shot. Tune with --hand-* once the image is in. */
.ll-hand {
	position: absolute; z-index: 5; pointer-events: none; max-width: none;
	width: var(--hand-w, 62%); right: var(--hand-r, -34%); bottom: var(--hand-b, -78%);
	opacity: var(--handin, 1); transform: translate3d(calc((1 - var(--handin, 1)) * 18%), calc((1 - var(--handin, 1)) * 10%), 0);
	filter: drop-shadow(0 40px 50px rgba(20,22,20,.25));
}
.ll-hero { position: relative; height: 430vh; background: var(--canvas); }
.ll-hero__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.ll-hero__stage { position: absolute; inset: 0; }
.ll-hero__intro {
	position: absolute; z-index: 4; left: 0; right: 0; bottom: max(8vh, 56px);
	padding: 0 max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter)));
	color: #fff; opacity: var(--intro, 1);
	transform: translate3d(0, calc((1 - var(--intro, 1)) * -36px), 0);
	filter: blur(calc((1 - var(--intro, 1)) * 8px));
}
.ll-hero__intro .ll-lede { color: rgba(255,255,255,.92); margin-top: 22px; max-width: 30em; text-shadow: 0 1px 16px rgba(0,0,0,.35); }
.ll-hero__intro .ll-display { text-shadow: 0 2px 40px rgba(0,0,0,.22); }
.ll-hero__intro .ll-soft { color: rgba(255,255,255,.8); }
.ll-hero__reveal {
	position: absolute; z-index: 4; left: 50%; top: max(17vh, 130px); width: min(780px, calc(100vw - 2 * var(--gutter)));
	text-align: center; opacity: var(--reveal, 0);
	transform: translate3d(-50%, calc(-50% + (1 - var(--reveal, 0)) * 28px), 0);
	filter: blur(calc((1 - var(--reveal, 0)) * 8px));
}
.ll-hero__reveal .ll-lede { margin: 16px auto 0; max-width: 31em; color: var(--ink-2); }
.ll-hero__reveal .ll-h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.ll-hero__cue { position: absolute; z-index: 3; right: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); bottom: max(8vh, 56px); width: 1px; height: 64px; background: rgba(255,255,255,.3); overflow: hidden; opacity: var(--intro, 1); }
.ll-hero__cue span { position: absolute; left: 0; top: 0; width: 100%; height: 40%; background: #fff; animation: ll-cue 2.2s var(--ease) infinite; }
@keyframes ll-cue { from { transform: translateY(-100%); } to { transform: translateY(260%); } }

/* ---------- Statement with floating photographs ---------- */
.ll-statement { position: relative; padding: clamp(180px, 30vh, 320px) 0; overflow-x: clip; overflow-y: visible; }
.ll-statement__text {
	position: relative; z-index: 2; margin: 0 auto; max-width: 16.5em; text-align: center;
	font-size: clamp(2rem, 4.3vw, 4.1rem); font-weight: 500; letter-spacing: -0.038em; line-height: 1.1; text-wrap: balance;
}
.ll-w { color: #CBCAC5; transition: color .5s var(--ease); }
.ll-w.is-lit { color: var(--ink); }
.ll-float { position: absolute; inset: 0; pointer-events: none; }
.ll-float__card {
	position: absolute; margin: 0; border-radius: 22px; overflow: hidden; background: var(--stone);
	box-shadow: 0 24px 48px -18px rgba(35,31,32,.18), 0 60px 120px -40px rgba(35,31,32,.16);
	transform: translate3d(var(--fx, 0px), var(--fy, 0px), 0) rotate(var(--r, 0deg));
	filter: blur(var(--fb, 10px));
	opacity: var(--fo, 0); transition: opacity 1.2s var(--ease);
}
.ll-float__card img { width: 100%; height: 100%; object-fit: cover; }
.ll-float__card.is-a { left: 3%; top: 7%; width: 15vw; aspect-ratio: 3 / 4; --r: -4deg; }
.ll-float__card.is-b { right: 4%; top: 4%; width: 20vw; aspect-ratio: 4 / 3; --r: 3deg; }
.ll-float__card.is-c { left: 7%; bottom: 5%; width: 19vw; aspect-ratio: 4 / 3; --r: 2.5deg; }
.ll-float__card.is-d { right: 8%; bottom: 8%; width: 13vw; aspect-ratio: 3 / 4; --r: -3deg; }
.ll-float__card.is-e { left: 33%; top: 1%; width: 10vw; aspect-ratio: 4 / 3; --r: -1deg; }
.ll-float__card.is-f { right: 31%; bottom: 0; width: 10vw; aspect-ratio: 4 / 3; --r: 2deg; }

/* ---------- Showcase: one photo grows to full bleed ---------- */
.ll-show { height: 250vh; }
.ll-show__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.ll-show__frame {
	position: absolute; inset: 0; margin: 0; overflow: hidden;
	clip-path: inset(var(--it, 18vh) var(--is, 20vw) var(--it, 18vh) var(--is, 20vw) round var(--rad, 32px));
}
.ll-show__frame img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--zs, 1.25)); }
.ll-show__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,.55)); opacity: var(--cap, 0); }
.ll-show__chip { position: absolute; z-index: 2; top: max(90px, 12vh); display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: 999px; font-size: .86rem; font-weight: 600; background: rgba(255,255,255,.86); color: var(--ink); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); opacity: var(--cap, 0); transform: translate3d(0, calc((1 - var(--cap, 0)) * 16px), 0); }
.ll-show__chip--l { left: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); }
.ll-show__chip--r { right: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); background: var(--tint); color: var(--sage-deep); }
.ll-show__chip i { position: relative; width: 18px; height: 18px; border-radius: 50%; background: var(--sage); }
.ll-show__chip i::after { content: ""; position: absolute; left: 6.5px; top: 3.5px; width: 4px; height: 8px; border: solid #fff; border-width: 0 1.7px 1.7px 0; transform: rotate(45deg); }
.ll-show__cap { position: absolute; z-index: 2; left: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); right: var(--gutter); bottom: max(56px, 9vh); color: #fff; opacity: var(--cap, 0); transform: translate3d(0, calc((1 - var(--cap, 0)) * 40px), 0); filter: blur(calc((1 - var(--cap, 0)) * 8px)); }
.ll-show__cap .ll-h2 { display: block; font-size: clamp(2.6rem, 6.4vw, 6rem); }
.ll-show__cap .ll-soft { color: rgba(255,255,255,.62); }

/* Soft brand glows behind the product mockups */
.ll-capture__device, .ll-gallery__device { isolation: isolate; }
.ll-capture__device::before, .ll-gallery__device::before {
	content: ""; position: absolute; z-index: -1; inset: -18% -14%; pointer-events: none;
	background: radial-gradient(40% 45% at 30% 40%, rgba(159,212,166,.55), transparent 70%), radial-gradient(35% 40% at 75% 65%, rgba(37,117,78,.22), transparent 70%);
	filter: blur(30px); animation: ll-drift 16s ease-in-out infinite alternate;
}
.ll-gallery__device { position: relative; }
@keyframes ll-drift { to { transform: translate3d(4%, -3%, 0) rotate(8deg) scale(1.06); } }

/* ---------- Capture modes ---------- */
.ll-capture { padding: var(--section) 0; }
.ll-capture__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.ll-capture__modes { display: grid; gap: 12px; }
.ll-mode {
	display: flex; gap: 18px; align-items: flex-start; text-align: left; width: 100%;
	padding: 26px 28px; border-radius: 26px; border: 1px solid var(--line); background: transparent;
	font: inherit; color: inherit; cursor: pointer;
	transition: background-color .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.ll-mode__body { opacity: .5; transition: opacity .5s var(--ease); }
.ll-mode.is-active { background: #fff; border-color: transparent; box-shadow: 0 24px 50px -32px rgba(35,31,32,.35); }
.ll-mode.is-active .ll-mode__body, .ll-mode:hover .ll-mode__body { opacity: 1; }
.ll-mode__text { display: block; margin-top: 8px; color: var(--muted); }
.ll-mode__icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--tint); }
.ll-mode__icon svg { width: 22px; height: 22px; fill: none; stroke: var(--sage-deep); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ll-capture__device { position: relative; }
.ll-phone--demo { width: 100%; cursor: none; }
.ll-phone--demo:focus-visible { outline-offset: 8px; border-radius: 40px; }
.ll-strip { display: flex; align-items: center; gap: 8px; margin-top: 26px; min-height: 56px; }
.ll-strip__count { margin-left: auto; font-size: .92rem; font-weight: 500; color: var(--muted); font-variant-numeric: tabular-nums; }
.ll-strip__item { width: 72px; aspect-ratio: 3 / 2; border-radius: 10px; overflow: hidden; box-shadow: 0 0 0 2px var(--mint), 0 10px 20px -12px rgba(0,0,0,.4); animation: ll-drop .7s var(--ease-out) both; }
.ll-strip__item img { width: 100%; height: 100%; object-fit: cover; }
@keyframes ll-drop { from { opacity: 0; transform: translateY(-18px) scale(.8); } }
.ll-cursor {
	position: fixed; z-index: 60; left: 0; top: 0; pointer-events: none;
	display: grid; place-items: center; width: 74px; height: 74px; margin: -37px 0 0 -37px; border-radius: 50%;
	background: rgba(255,255,255,.9); color: var(--ink); font-size: .82rem; font-weight: 600; letter-spacing: -.01em;
	box-shadow: 0 10px 30px -10px rgba(0,0,0,.35);
	opacity: 0; transform: translate3d(var(--x, 0), var(--y, 0), 0) scale(.5);
	transition: opacity .3s var(--ease), transform .18s var(--ease-out), background-color .3s;
}
.ll-cursor.is-on { opacity: 1; transform: translate3d(var(--x, 0), var(--y, 0), 0) scale(1); }
.ll-cursor.is-down { background: var(--tint); transform: translate3d(var(--x, 0), var(--y, 0), 0) scale(.86); }

/* ---------- Rulebook floor plan ---------- */
.ll-rules { height: 300vh; background: linear-gradient(var(--canvas), #EEEDE9 30%, #EEEDE9 70%, var(--canvas)); }
.ll-rules__sticky { position: sticky; top: 0; height: 100vh; height: 100svh; display: flex; align-items: center; }
.ll-rules__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: center; width: 100%; }
.ll-rules .ll-h2 { font-size: clamp(2.1rem, 3.6vw, 3.4rem); }
.ll-rules__list { list-style: none; padding: 0; margin: 36px 0 0; display: grid; gap: 14px; }
.ll-rules__list li { color: #B4B7B2; transition: color .6s var(--ease); max-width: 30em; }
.ll-rules__list li strong { font-weight: 600; }
.ll-rules__list li.is-on { color: var(--muted); }
.ll-rules__list li.is-on strong { color: var(--ink); }
.ll-rules__key { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin: 32px 0 0; font-size: .9rem; color: var(--muted); }
.ll-key { width: 12px; height: 12px; border-radius: 50%; background: var(--sage); }
.ll-key--held { background: var(--sage-deep); box-shadow: 0 0 0 3px var(--mint); margin-left: 12px; }
.ll-plan { position: relative; background: #fff; border-radius: 32px; padding: clamp(14px, 2.4vw, 28px); box-shadow: 0 40px 80px -50px rgba(35,31,32,.35); }
.ll-plan__svg { width: 100%; height: auto; display: block; overflow: visible; }
.ll-plan__rooms rect { fill: #FAFAF8; stroke: #D9D8D2; stroke-width: 2; }
.ll-plan__rooms text { fill: #9AA09B; font-size: 14px; font-weight: 500; text-anchor: middle; letter-spacing: .01em; }
.ll-plan__trail { fill: none; stroke: #D3D2CC; stroke-width: 2; stroke-dasharray: 2 9; stroke-linecap: round; }
.ll-plan__path { fill: none; stroke: var(--sage); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.ll-plan__walker { fill: var(--sage-deep); stroke: #fff; stroke-width: 3; filter: drop-shadow(0 4px 6px rgba(26,86,56,.35)); }
.ll-cam { opacity: 0; transition: opacity .5s var(--ease); }
.ll-cam.is-on { opacity: 1; }
.ll-cam__cone { fill: rgba(37,117,78,.1); stroke: rgba(37,117,78,.32); stroke-width: 1.2; transform-box: view-box; transform-origin: 0 0; transform: scale(.25); transition: transform 1s var(--ease-out); }
.ll-cam.is-on .ll-cam__cone { transform: scale(1); }
.ll-cam--held .ll-cam__cone { fill: rgba(159,212,166,.3); stroke: rgba(26,86,56,.45); }
.ll-cam__dot { fill: var(--sage); stroke: #fff; stroke-width: 2.5; }
.ll-cam--held .ll-cam__dot { fill: var(--sage-deep); }
.ll-cam__frame { fill: none; stroke: var(--sage-deep); stroke-width: 2.6; stroke-linecap: round; }
.ll-plan__sheet { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: clamp(12px, 2vw, 22px); }
.ll-thumb { margin: 0; aspect-ratio: 4 / 3; border-radius: 10px; overflow: hidden; background: #EFEEEA; }
.ll-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.15); transition: opacity .7s var(--ease), transform 1.1s var(--ease-out); }
.ll-thumb.is-on img { opacity: 1; transform: scale(1); }
.ll-thumb--held.is-on { box-shadow: 0 0 0 2px var(--mint); }

.ll-pop { position: absolute; z-index: 5; left: 0; top: 0; margin: 0; border-radius: 18px; overflow: hidden; pointer-events: none; box-shadow: 0 40px 80px -30px rgba(35,31,32,.45); will-change: transform, opacity; }
.ll-pop img { width: 100%; height: 100%; object-fit: cover; }
.ll-pop figcaption { position: absolute; left: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.92); font-size: .86rem; font-weight: 600; }
.ll-pop figcaption em { font-style: normal; color: var(--sage-deep); }
.ll-thumb img { transition-duration: .4s, .4s; }

/* ---------- Results ---------- */
.ll-results { padding: var(--section) 0; }
.ll-results__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 24px; align-items: stretch; }
.ll-card { background: #fff; border-radius: var(--radius); box-shadow: 0 30px 60px -44px rgba(35,31,32,.3); }
.ll-process { position: relative; overflow: hidden; padding: 104px 30px 30px; display: flex; flex-direction: column; }
.ll-notice {
	position: absolute; left: 14px; right: 14px; top: 14px; display: grid; grid-template-columns: 36px 1fr auto; gap: 12px; align-items: center;
	padding: 12px 14px; border-radius: 20px; background: rgba(244,243,240,.92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	box-shadow: 0 16px 30px -18px rgba(0,0,0,.35); font-size: .86rem; line-height: 1.35;
	transform: translateY(-130%); opacity: 0; transition: transform .8s cubic-bezier(.34, 1.3, .64, 1), opacity .4s var(--ease);
}
.ll-notice img { width: 36px; height: 36px; border-radius: 9px; }
.ll-notice strong { display: block; font-weight: 700; }
.ll-notice span { color: var(--ink-2); }
.ll-notice em { align-self: start; font-style: normal; font-size: .78rem; color: var(--soft); }
.ll-process.is-done .ll-notice { transform: none; opacity: 1; }
.ll-process__title { display: block; font-size: 1.75rem; font-weight: 600; letter-spacing: -0.03em; }
.ll-process__sub { display: block; color: var(--muted); font-size: .95rem; margin-top: 2px; }
.ll-process__bar { height: 6px; border-radius: 999px; background: var(--stone); overflow: hidden; margin: 22px 0 26px; }
.ll-process__bar i { display: block; height: 100%; width: 100%; background: var(--sage); transform-origin: left; transform: scaleX(var(--prog, 0)); transition: transform .9s var(--ease); border-radius: inherit; }
.ll-process__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.ll-process__list li { display: flex; align-items: center; gap: 12px; color: #A8ABA6; font-weight: 500; transition: color .4s var(--ease); }
.ll-process__list li.is-current, .ll-process__list li.is-done { color: var(--ink); }
.ll-tick { position: relative; flex: none; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid #D5D4CF; transition: background-color .4s var(--ease), border-color .4s var(--ease); }
.is-current .ll-tick { border-color: var(--tint); border-top-color: var(--sage); animation: ll-spin .9s linear infinite; }
.is-done .ll-tick { background: var(--sage); border-color: var(--sage); }
.is-done .ll-tick::after { content: ""; position: absolute; left: 7px; top: 3.5px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
@keyframes ll-spin { to { transform: rotate(360deg); } }

.ll-compare { display: flex; flex-direction: column; gap: 16px; }
.ll-ba { position: relative; aspect-ratio: 3 / 2; border-radius: var(--radius); overflow: hidden; background: var(--stone); user-select: none; touch-action: pan-y; }
.ll-ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ll-ba__before { position: absolute; inset: 0; overflow: hidden; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.ll-ba__tag { position: absolute; top: 16px; z-index: 2; padding: 7px 14px; border-radius: 999px; font-size: .82rem; font-weight: 600; background: rgba(20,20,20,.38); color: #fff; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.ll-ba__tag--l { left: 16px; }
.ll-ba__tag--r { right: 16px; background: rgba(255,255,255,.85); color: var(--ink); }
.ll-ba__handle { position: absolute; z-index: 2; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: #fff; box-shadow: 0 0 20px rgba(0,0,0,.25); pointer-events: none; }
.ll-ba__handle span { position: absolute; top: 50%; left: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: #fff; box-shadow: 0 10px 24px -8px rgba(0,0,0,.4); }
.ll-ba__handle span::before, .ll-ba__handle span::after { content: ""; position: absolute; top: 50%; width: 8px; height: 8px; border: solid var(--ink); border-width: 0 0 1.8px 1.8px; }
.ll-ba__handle span::before { left: 15px; transform: translateY(-50%) rotate(45deg); }
.ll-ba__handle span::after { right: 15px; transform: translateY(-50%) rotate(-135deg); }
.ll-ba__range { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.ll-ba.is-swapping img { animation: ll-fadein .6s var(--ease) both; }
@keyframes ll-fadein { from { opacity: .2; } }
.ll-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.ll-tab { font: 500 .92rem/1 Manrope, sans-serif; padding: 11px 16px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--ink-2); cursor: pointer; transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease); }
.ll-tab:hover { background: rgba(35,31,32,.05); }
.ll-tab.is-active { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---------- Honest ---------- */
.ll-honest { padding: 0 0 var(--section); }
.ll-honest__panel { background: #fff; color: var(--ink); border-radius: 40px; padding: clamp(40px, 8vw, 128px); box-shadow: 0 50px 100px -70px rgba(35,31,32,.35); }
.ll-honest .ll-lede { margin-top: 22px; }
.ll-honest__head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: clamp(56px, 7vw, 112px); }
.ll-honest__cols { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.ll-list .ll-h3 { font-size: 1.125rem; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.ll-list ul { list-style: none; margin: 0; padding: 0; }
.ll-list li { position: relative; padding: 20px 0 20px 34px; font-size: 1.125rem; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.ll-list li::before { content: ""; position: absolute; left: 0; top: 24px; width: 18px; height: 18px; border-radius: 50%; background: var(--tint); }
.ll-list li::after { content: ""; position: absolute; left: 6.5px; top: 28px; width: 4px; height: 8px; border: solid var(--sage-deep); border-width: 0 1.6px 1.6px 0; transform: rotate(45deg); }
.ll-list--keep li { color: var(--muted); }
.ll-list--keep li::before { background: var(--canvas); box-shadow: 0 0 0 1px var(--line) inset; }
.ll-list--keep li::after { left: 5px; top: 32.5px; width: 8px; height: 0; border-width: 1.6px 0 0; border-color: var(--soft); transform: none; }
.ll-verify { position: relative; margin: 0; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; }
.ll-verify img { width: 100%; height: 100%; object-fit: cover; }
.ll-verify figcaption { position: absolute; left: 14px; bottom: 14px; display: flex; align-items: center; gap: 8px; padding: 9px 14px 9px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--ink); font-size: .86rem; font-weight: 600; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.ll-verify__ok { position: relative; width: 20px; height: 20px; border-radius: 50%; background: var(--sage); }
.ll-verify__ok::after { content: ""; position: absolute; left: 7px; top: 4px; width: 4px; height: 9px; border: solid #fff; border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); }
.ll-honest__proof p { color: var(--muted); margin: 20px 0 0; font-size: .98rem; }

/* ---------- Gallery ---------- */
.ll-gallery { padding: 0 0 var(--section); overflow: hidden; }
.ll-gallery__grid { display: grid; grid-template-columns: 1fr auto; gap: clamp(40px, 7vw, 120px); align-items: center; }
.ll-gallery__copy .ll-lede { margin-top: 24px; }
.ll-checks { list-style: none; padding: 0; margin: 32px 0 0; display: grid; gap: 12px; }
.ll-checks li { position: relative; padding-left: 30px; color: var(--ink-2); }
.ll-checks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: var(--tint); }
.ll-checks li::after { content: ""; position: absolute; left: 6.5px; top: 8px; width: 4px; height: 8px; border: solid var(--sage-deep); border-width: 0 1.6px 1.6px 0; transform: rotate(45deg); }
.ll-gallery__device { padding-right: clamp(0px, 4vw, 60px); }
.ll-app { background: var(--stone); color: var(--ink); padding: 15% 5.5% 0; font-size: 12px; }
.ll-app__status { position: absolute; top: 2.6%; left: 10%; right: 10%; display: flex; justify-content: space-between; font-weight: 600; font-size: 13px; }
.ll-app__sig { width: 44px; height: 11px; border-radius: 3px; background: linear-gradient(90deg, var(--ink) 0 60%, transparent 60% 70%, var(--ink) 70% 100%); opacity: .85; }
.ll-app__nav { display: flex; align-items: center; gap: 5px; color: var(--sage-deep); font-weight: 600; font-size: 13.5px; }
.ll-app__back { width: 8px; height: 8px; border: solid var(--sage-deep); border-width: 0 0 2px 2px; transform: rotate(45deg); }
.ll-app__title { font-size: 25px; font-weight: 700; letter-spacing: -0.02em; margin-top: 10px; }
.ll-app__meta { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 12.5px; margin-top: 2px; }
.ll-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sage); }
.ll-app__chips { display: flex; gap: 6px; margin: 14px -6% 12px 0; overflow: hidden; white-space: nowrap; }
.ll-chip { flex: none; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.75); font-weight: 600; font-size: 11.5px; transition: background-color .4s var(--ease), color .4s var(--ease); }
.ll-chip.is-active { background: var(--ink); color: #fff; }
.ll-app__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ll-app__grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; animation: ll-tile .6s var(--ease-out) both; }
.ll-app__grid img.is-hidden { display: none; }
.ll-app__grid img:first-child { grid-column: span 2; aspect-ratio: 16 / 10; }
@keyframes ll-tile { from { opacity: 0; transform: scale(.94); } }
.ll-app__cta { position: absolute; left: 6%; right: 6%; bottom: 4%; z-index: 2; height: 46px; border-radius: 15px; display: grid; place-items: center; background: var(--sage-deep); color: #fff; font-weight: 700; font-size: 14px; box-shadow: 0 -24px 30px 6px var(--stone); }
.ll-marquee { margin-top: clamp(72px, 9vw, 128px); overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ll-marquee__track { display: flex; gap: 18px; width: max-content; animation: ll-marquee 70s linear infinite; }
.ll-marquee__item { margin: 0; width: clamp(240px, 26vw, 380px); }
.ll-marquee__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 20px; }
.ll-marquee__item figcaption { margin-top: 10px; font-size: .88rem; color: var(--muted); }
@keyframes ll-marquee { to { transform: translateX(calc(-50% - 9px)); } }

/* ---------- Audience ---------- */
.ll-audience { padding: 0 0 var(--section); }
.ll-audience__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2vw, 28px); }
.ll-person__img { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 5; background: var(--stone); }
.ll-person__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.6s var(--ease-out); }
.ll-person:hover .ll-person__img img { transform: scale(1); }
.ll-person .ll-h3 { margin-top: 24px; }
.ll-person p { margin: 10px 0 0; color: var(--muted); max-width: 26em; }

/* ---------- Compare ---------- */
.ll-compare-sec { padding: 0 0 var(--section); }
.ll-vs { display: grid; grid-template-columns: 1.08fr 1fr; gap: 18px; align-items: stretch; }
.ll-vs__card { border-radius: var(--radius); padding: clamp(28px, 3.4vw, 48px); border: 1px solid var(--line); }
.ll-vs__card--us { background: #fff; border-color: transparent; box-shadow: 0 40px 70px -50px rgba(35,31,32,.35); }
.ll-vs__title { display: flex; align-items: center; gap: 12px; margin: 0 0 8px; font-size: 1.25rem; font-weight: 500; letter-spacing: -0.02em; }
.ll-vs__title img { width: 28px; height: 28px; }
.ll-vs__cam { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--stone); }
.ll-vs__cam svg { width: 17px; height: 17px; fill: none; stroke: var(--muted); stroke-width: 1.6; stroke-linejoin: round; }
.ll-vs dl { margin: 0; }
.ll-vs dl > div { display: grid; grid-template-columns: 9.5em 1fr; gap: 16px; padding: 20px 0; border-top: 1px solid var(--line); }
.ll-vs dl > div:first-child { border-top: 0; }
.ll-vs dt { color: var(--soft); font-size: .92rem; padding-top: 2px; }
.ll-vs dd { margin: 0; font-size: 1.0625rem; color: var(--muted); }
.ll-vs__card--us dd { color: var(--ink); font-weight: 500; }
.ll-vs__card--us dl > div:last-child dd { color: var(--sage-deep); }

/* ---------- Pricing ---------- */
.ll-pricing { padding: 0 0 var(--section); }
.ll-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }
.ll-plan-card { display: flex; flex-direction: column; padding: clamp(28px, 3vw, 40px); border-radius: var(--radius); background: #fff; box-shadow: 0 30px 60px -48px rgba(35,31,32,.3); }
.ll-plan-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ll-badge { padding: 6px 12px; border-radius: 999px; background: var(--mint); color: var(--sage-deep); font-size: .78rem; font-weight: 600; }
.ll-plan-card__price { margin: 28px 0 0; color: var(--muted); }
.ll-plan-card__price span { font-size: clamp(2.8rem, 4vw, 3.6rem); font-weight: 500; letter-spacing: -0.05em; color: var(--ink); line-height: 1; margin-right: 4px; }
.ll-plan-card__for { margin: 14px 0 0; color: var(--muted); min-height: 3.2em; }
.ll-plan-card ul { list-style: none; padding: 24px 0 0; margin: 24px 0 32px; border-top: 1px solid var(--line); display: grid; gap: 12px; flex: 1; }
.ll-plan-card li { position: relative; padding-left: 28px; font-size: .97rem; }
.ll-plan-card li::before { content: ""; position: absolute; left: 0; top: 5px; width: 16px; height: 16px; border-radius: 50%; background: var(--tint); }
.ll-plan-card li::after { content: ""; position: absolute; left: 5.5px; top: 8.5px; width: 4px; height: 7px; border: solid var(--sage-deep); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.ll-plan-card.is-featured { background: var(--ink); color: #fff; }
.ll-plan-card.is-featured .ll-plan-card__price, .ll-plan-card.is-featured .ll-plan-card__for { color: rgba(255,255,255,.65); }
.ll-plan-card.is-featured .ll-plan-card__price span { color: #fff; }
.ll-plan-card.is-featured ul { border-color: rgba(255,255,255,.12); }
.ll-plan-card.is-featured li::before { background: rgba(159,212,166,.2); }
.ll-plan-card.is-featured li::after { border-color: var(--mint); }
.ll-pricing__note { text-align: center; color: var(--muted); margin: 28px 0 0; }

/* ---------- FAQ ---------- */
.ll-faq { padding: 0 0 calc(var(--section) * .64); }
.ll-faq__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.ll-faq .wp-block-details { border-top: 1px solid var(--line); margin: 0; interpolate-size: allow-keywords; }
.ll-faq .wp-block-details:last-child { border-bottom: 1px solid var(--line); }
.ll-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 26px 0; font-size: clamp(1.125rem, 1.6vw, 1.3rem); font-weight: 500; letter-spacing: -0.02em; }
.ll-faq summary::-webkit-details-marker { display: none; }
.ll-faq summary::after {
	content: ""; flex: none; margin-left: auto; width: 36px; height: 36px; border-radius: 50%;
	background-color: var(--pbg, #fff); box-shadow: 0 0 0 1px var(--line);
	background-image: linear-gradient(var(--pc, var(--ink)), var(--pc, var(--ink))), linear-gradient(var(--pc, var(--ink)), var(--pc, var(--ink)));
	background-size: 12px 1.5px, 1.5px 12px; background-position: center; background-repeat: no-repeat;
	transition: transform .5s var(--ease), background-color .35s var(--ease), box-shadow .35s var(--ease);
}
.ll-faq summary { color: var(--ink-2); transition: color .3s var(--ease); }
.ll-faq summary:hover { color: var(--ink); --pbg: var(--ink); --pc: #fff; }
.ll-faq summary:hover::after { box-shadow: 0 8px 20px -8px rgba(35,31,32,.45); }
.ll-faq details[open] summary { color: var(--ink); }
.ll-faq details[open] summary::after { background-size: 12px 1.5px, 0 0; }
.ll-faq details[open] summary::after { transform: rotate(180deg); }
.ll-faq .wp-block-details p { margin: 0; padding: 0 56px 28px 0; color: var(--muted); max-width: 40em; }
.ll-faq details::details-content { block-size: 0; overflow: hidden; transition: block-size .55s var(--ease), content-visibility .55s allow-discrete; }
.ll-faq details[open]::details-content { block-size: auto; }

/* ---------- Access ---------- */
.ll-access { padding: 0 0 var(--section); }
.ll-access__panel { display: grid; grid-template-columns: 1.05fr 1fr; background: #fff; border-radius: 40px; overflow: hidden; box-shadow: 0 50px 90px -60px rgba(35,31,32,.4); }
.ll-access__media { position: relative; min-height: 600px; }
.ll-access__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ll-access__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.65)); }
.ll-access__over { position: absolute; z-index: 1; left: clamp(28px, 4vw, 52px); right: clamp(28px, 4vw, 52px); bottom: clamp(28px, 4vw, 52px); color: #fff; }
.ll-access__over p { margin: 14px 0 0; color: rgba(255,255,255,.82); max-width: 26em; }
.ll-form { padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; gap: 18px; justify-content: center; }
.ll-form__intro { margin: 0 0 6px; font-size: 1.2rem; font-weight: 500; letter-spacing: -0.02em; }
.ll-hp { position: absolute; left: -9999px; }
.ll-field { display: grid; gap: 8px; }
.ll-field span, .ll-seg legend { font-size: .9rem; font-weight: 600; }
.ll-seg legend span { color: var(--soft); font-weight: 500; }
.ll-field input { height: 56px; padding: 0 18px; border-radius: 16px; border: 1px solid #DCDBD5; background: #FAFAF8; font: 400 1.0625rem Manrope, sans-serif; color: var(--ink); transition: border-color .3s var(--ease), box-shadow .3s var(--ease), background-color .3s; }
.ll-field input:focus { outline: none; border-color: var(--sage); background: #fff; box-shadow: 0 0 0 4px rgba(37,117,78,.14); }
.ll-field input[aria-invalid="true"] { border-color: #B5534A; }
.ll-seg { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ll-seg legend { margin-bottom: 8px; padding: 0; }
.ll-seg label { position: relative; }
.ll-seg input { position: absolute; opacity: 0; }
.ll-seg label span { display: grid; place-items: center; height: 52px; border-radius: 16px; border: 1px solid #DCDBD5; font-weight: 500; cursor: pointer; transition: all .3s var(--ease); }
.ll-seg input:checked + span { border-color: var(--sage); background: var(--tint); color: var(--sage-deep); }
.ll-seg input:focus-visible + span { box-shadow: 0 0 0 4px rgba(37,117,78,.2); }
.ll-form .ll-btn { height: 58px; margin-top: 6px; }
.ll-form__msg { margin: 0; min-height: 1.4em; font-weight: 500; color: var(--sage-deep); }
.ll-form__msg.is-error { color: #B5534A; }
.ll-form__fine { margin: 0; font-size: .86rem; color: var(--muted); }
.ll-form.is-sent .ll-field, .ll-form.is-sent .ll-seg, .ll-form.is-sent button { display: none; }

/* ---------- Footer ---------- */
.ll-footer { padding: 0 0 40px; }
.ll-footer__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; padding-bottom: 72px; }
.ll-footer__line { margin: 0; font-size: clamp(2rem, 4.4vw, 3.8rem); font-weight: 500; letter-spacing: -0.042em; line-height: 1.02; }
.ll-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; padding-top: 28px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--muted); }
.ll-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 6px 24px; }
.ll-footer__bottom nav a:hover { color: var(--ink); }
.ll-footer__bottom p { margin: 0 0 0 auto; }

/* Inner pages */
.ll-page { padding: 160px var(--gutter) 120px; }
.ll-page h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 500; letter-spacing: -0.04em; }

/* ---------- Reveal ---------- */
.js [data-reveal] { opacity: 0; transform: translate3d(0, 28px, 0); filter: blur(6px); transition: opacity 1.1s var(--ease-out) var(--d, 0ms), transform 1.2s var(--ease-out) var(--d, 0ms), filter 1.1s var(--ease-out) var(--d, 0ms); }
.js [data-reveal].is-in { opacity: 1; transform: none; filter: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.ll-honest__cols { grid-template-columns: 1fr 1fr; }
	.ll-honest__proof { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; }
	.ll-honest__proof p { margin: 0; }
}
@media (max-width: 960px) {
	.ll-nav { grid-template-columns: 1fr auto; padding-left: 18px; }
	.ll-nav__links, .ll-nav__cta { display: none; }
	.ll-nav__menu { display: inline-flex; align-items: center; gap: 10px; height: 42px; padding: 0 16px 0 14px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,.75); color: var(--ink); font: 500 .92rem/1 Manrope, sans-serif; cursor: pointer; transition: background-color .4s var(--ease), color .4s var(--ease); }
	.ll-nav__icon { position: relative; width: 16px; height: 10px; }
	.ll-nav__icon::before, .ll-nav__icon::after { content: ""; position: absolute; left: 0; width: 16px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .45s var(--ease), top .45s var(--ease); }
	.ll-nav__icon::before { top: 0; }
	.ll-nav__icon::after { top: 8px; }
	.ll-nav__menu[aria-expanded="true"] .ll-nav__icon::before { top: 4px; transform: rotate(45deg); }
	.ll-nav__menu[aria-expanded="true"] .ll-nav__icon::after { top: 4px; transform: rotate(-45deg); }
	.ll-nav.is-light .ll-nav__menu { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.32); color: #fff; }
	.ll-nav.is-open { background: transparent !important; border-color: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
	.ll-nav.is-scrolled:not(.is-light):not(.is-open) { background: rgba(244,243,240,.86); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); border-color: var(--line); }
	.ll-head--split, .ll-honest__head, .ll-capture__grid, .ll-rules__grid, .ll-results__grid, .ll-faq__grid, .ll-gallery__grid, .ll-access__panel { grid-template-columns: 1fr; }
	.ll-head--split { gap: 20px; }
	.ll-hero { height: 340vh; }
	.ll-hero .ll-phone { --pw: min(980px, 132vw); left: calc(7vw + var(--pw) / 2); top: 42%; box-shadow: 0 0 0 1.5px rgba(42,42,44,var(--bezel)) inset, 0 50px 70px -40px rgba(20,22,20,calc(.55 * var(--bezel))); }
	.ll-hero .ll-phone.has-hand { --pw: 90vw; left: 50%; top: calc(100% - 47vw); }
	/* Mobile: the opening content stays at the top; the phone and hand settle beneath it. */
	.ll-hero__sticky { height: 100vh; height: 100lvh; }
	.ll-hero__reveal { display: none; }
	.ll-hero__intro { top: calc(var(--admin, 0px) + 96px); bottom: auto; }
	.ll-hero__intro .ll-display { font-size: min(11.5vw, 6.4svh); }
	.ll-hero__intro .ll-lede { font-size: 1rem; margin-top: 14px; }
	.ll-hero__intro .ll-actions { margin-top: 20px; gap: 10px; flex-wrap: nowrap; }
	.ll-hero__intro .ll-btn { height: 46px; padding: 0 18px; font-size: .92rem; }
	.ll-hero .ll-phone.has-hand .ll-phone__screen::before { background: linear-gradient(180deg, rgba(10,12,11,.66) 0%, rgba(10,12,11,.38) 42%, rgba(10,12,11,0) 70%); }
	.ll-hero__intro .ll-display { font-size: clamp(2.6rem, 11.5vw, 4.4rem); }
	.ll-hero__intro .ll-lede { margin-top: 16px; }

/* Headline motion: words rise out of a mask, sharpening as they land. */
.ll-word { display: inline-block; overflow: hidden; vertical-align: top; padding: .04em .04em .26em; margin: -.04em -.04em -.26em; }
.ll-word > span { display: inline-block; transform: translate3d(0, 108%, 0) rotate(4deg); transform-origin: 0 100%; opacity: 0; filter: blur(8px);
	transition: transform 1.15s var(--ease-out) var(--wd, 0ms), opacity .9s var(--ease) var(--wd, 0ms), filter 1s var(--ease) var(--wd, 0ms); }
.is-split.is-in .ll-word > span { transform: none; opacity: 1; filter: none; }
	.ll-hero__intro .ll-actions { margin-top: 24px; }
	.ll-hero__cue { display: none; }
	.ll-rules { height: auto; }
	.ll-rules__sticky { position: static; height: auto; padding: var(--section) 0; }
	.ll-process { min-height: 420px; }
	.ll-gallery__device { justify-self: center; padding: 0; }
	.ll-audience__grid, .ll-plans, .ll-vs { grid-template-columns: 1fr; }
	.ll-audience__grid { gap: 40px; }
	.ll-person__img { aspect-ratio: 4 / 3.4; }
	.ll-access__media { min-height: 420px; }
	.ll-plan-card__for { min-height: 0; }
}
@media (max-width: 640px) {
	.ll-statement { padding: 62vw 0 46vw; }
	.ll-statement__text { font-size: clamp(1.9rem, 8vw, 2.4rem); }
	.ll-float__card.is-a { left: -5%; top: 3%; width: 36vw; }
	.ll-float__card.is-b { right: -9%; top: 7%; width: 50vw; }
	.ll-float__card.is-c { left: -7%; bottom: 3%; width: 52vw; }
	.ll-float__card.is-d { right: -3%; bottom: 6%; width: 32vw; }
	.ll-float__card.is-e, .ll-float__card.is-f { display: none; }
	.ll-show { height: 200vh; }
	.ll-show__chip--l { display: none; }
	.ll-honest__cols, .ll-honest__proof { grid-template-columns: 1fr; }
	.ll-honest__panel, .ll-access__panel { border-radius: 28px; }
	.ll-plan__sheet { grid-template-columns: repeat(4, 1fr); }
	.ll-vs dl > div { grid-template-columns: 1fr; gap: 4px; padding: 16px 0; }
	.ll-plan__rooms text { font-size: 20px; }
	.ll-footer__top { flex-direction: column; align-items: flex-start; }
	.ll-footer__bottom p { margin: 0; }
	.ll-mode { padding: 22px; }
	.ll-hud__card span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
	.ll-marquee__track { animation: none; }
}

.ll-accent { color: var(--sage); }

/* Widows: balanced headlines, widow-free body copy everywhere. */
.ll-display, .ll-h2, .ll-h3, .ll-statement__text, .ll-vs__title, .ll-faq summary { text-wrap: balance; }
p, li, dd, dt, figcaption, .ll-mode__text, .ll-faq .wp-block-details p { text-wrap: pretty; }
.ll-nw { white-space: nowrap; }

/* Hero with the photographed hand: the generated phone frames the live screen exactly. */
.ll-hero .ll-phone.has-hand { padding: 0; background: none; box-shadow: none; aspect-ratio: 1096 / 530; border-radius: 0; }
.ll-hero .ll-phone.has-hand::before, .ll-hero .ll-phone.has-hand .ll-phone__island { display: none; }
.ll-hero .ll-phone.has-hand .ll-phone__screen { border-radius: 3.5% / 7%; }
.ll-hero .ll-phone.has-hand .ll-hand { width: 140.146%; left: -9.945%; top: -35.094%; right: auto; bottom: auto; filter: drop-shadow(0 50px 60px rgba(20,22,20,.22)); }
/* The photographed phone and its screen move as one; it only fades in on mobile. */
.ll-hero .ll-phone.has-hand .ll-hand { transform: none; opacity: var(--bezel, 1); }


/* ---------- Dappled light: sun through leaves on deep green ---------- */
.ll-dapple {
	position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0;
	background: radial-gradient(120% 95% at 35% 25%, #2D6038 0%, #1D472B 52%, #143421 100%);
}
.ll-dapple i, .ll-dapple b { position: absolute; display: block; border-radius: 50%; will-change: transform; }
.ll-dapple i {
	mix-blend-mode: screen; filter: blur(46px);
	background: radial-gradient(closest-side, rgba(205,228,112,.9), rgba(160,200,82,.42) 55%, transparent);
}
.ll-dapple i:nth-child(1) { width: 46vw; height: 30vw; left: 58%; top: 2%; animation: ll-sun-a 19s ease-in-out infinite alternate; }
.ll-dapple i:nth-child(2) { width: 34vw; height: 52vw; left: -8%; top: 38%; animation: ll-sun-b 24s ease-in-out infinite alternate; }
.ll-dapple i:nth-child(3) { width: 28vw; height: 20vw; left: 34%; top: 66%; opacity: .75; animation: ll-sun-c 29s ease-in-out infinite alternate; }
.ll-dapple i:nth-child(4) { width: 22vw; height: 34vw; left: 80%; top: 50%; opacity: .6; animation: ll-sun-b 33s ease-in-out infinite alternate-reverse; }
.ll-dapple b {
	mix-blend-mode: multiply; filter: blur(28px);
	background: radial-gradient(closest-side, rgba(8,26,14,.75), rgba(8,26,14,.3) 60%, transparent);
	transform-origin: 50% 0;
}
.ll-dapple b:nth-of-type(1) { width: 14vw; height: 46vw; left: 66%; top: -12%; animation: ll-leaf-a 11s ease-in-out infinite alternate; }
.ll-dapple b:nth-of-type(2) { width: 18vw; height: 40vw; left: 8%; top: 20%; animation: ll-leaf-b 14s ease-in-out infinite alternate; }
.ll-dapple b:nth-of-type(3) { width: 12vw; height: 30vw; left: 44%; top: 46%; animation: ll-leaf-a 9s ease-in-out infinite alternate-reverse; }
.ll-dapple::after { /* film grain */
	content: ""; position: absolute; inset: 0; opacity: .3; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
@keyframes ll-sun-a { 0% { transform: translate3d(0,0,0) rotate(-18deg) scale(1); } 100% { transform: translate3d(-9vw, 7vw, 0) rotate(-4deg) scale(1.22); } }
@keyframes ll-sun-b { 0% { transform: translate3d(0,0,0) rotate(28deg) scale(1); } 100% { transform: translate3d(7vw, -6vw, 0) rotate(14deg) scale(.86); } }
@keyframes ll-sun-c { 0% { transform: translate3d(0,0,0) rotate(-30deg); } 100% { transform: translate3d(10vw, -5vw, 0) rotate(-12deg) scale(1.3); } }
@keyframes ll-leaf-a { 0% { transform: rotate(-14deg) translate3d(0,0,0); } 100% { transform: rotate(9deg) translate3d(2vw, 1vw, 0); } }
@keyframes ll-leaf-b { 0% { transform: rotate(18deg) translate3d(0,0,0); } 100% { transform: rotate(-6deg) translate3d(-2vw, 2vw, 0); } }

/* Hero on green */
.ll-hero__sticky { background: #143421; }
.ll-hero__sticky > *:not(.ll-dapple) { z-index: 1; }
.ll-hero__intro, .ll-hero__reveal { z-index: 4 !important; }
.ll-hero__sticky .ll-dapple::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 62%, #143421 100%); }
.ll-hero__reveal .ll-h2 { color: #fff; }
.ll-hero__reveal .ll-accent { color: #C6E07A; }
.ll-hero__intro .ll-soft { color: rgba(255,255,255,.8); }
/* Fade the hero's green into the page instead of a hard edge. */

/* Early access on green, fading in and out */
.ll-access { position: relative; padding: clamp(90px, 14vh, 154px) 0 clamp(140px, 22vh, 240px); isolation: isolate; }
.ll-access > .ll-wrap { position: relative; z-index: 1; }
.ll-dapple--fade { top: -18vh; -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.02) 6%, rgba(0,0,0,.07) 12%, rgba(0,0,0,.15) 18%, rgba(0,0,0,.27) 24%, rgba(0,0,0,.42) 30%, rgba(0,0,0,.58) 36%, rgba(0,0,0,.73) 42%, rgba(0,0,0,.85) 48%, rgba(0,0,0,.94) 54%, #000 60%); mask-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.02) 6%, rgba(0,0,0,.07) 12%, rgba(0,0,0,.15) 18%, rgba(0,0,0,.27) 24%, rgba(0,0,0,.42) 30%, rgba(0,0,0,.58) 36%, rgba(0,0,0,.73) 42%, rgba(0,0,0,.85) 48%, rgba(0,0,0,.94) 54%, #000 60%); }
.ll-access__panel { box-shadow: 0 60px 120px -50px rgba(5,20,10,.6); }

/* ---------- Lightbox for the floor-plan photos ---------- */
.ll-thumb.is-on { cursor: zoom-in; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.ll-thumb.is-on:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(35,31,32,.45); }
.ll-thumb--held.is-on:hover { box-shadow: 0 0 0 2px var(--mint), 0 12px 24px -12px rgba(35,31,32,.45); }
.ll-thumb:focus-visible { outline: 2px solid var(--sage); outline-offset: 3px; }
.ll-lb { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: clamp(16px, 5vw, 72px); background: rgba(20,22,20,.0); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); transition: background-color .45s var(--ease), backdrop-filter .45s var(--ease), -webkit-backdrop-filter .45s var(--ease); }
.ll-lb.is-open { background: rgba(20,22,20,.72); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.ll-lb[hidden] { display: none; }
.ll-lb__fig { position: relative; margin: 0; width: min(1200px, 100%); aspect-ratio: 3 / 2; max-height: calc(100svh - 160px); border-radius: 22px; overflow: hidden; box-shadow: 0 60px 120px -40px rgba(0,0,0,.6); }
.ll-lb__fig img { width: 100%; height: 100%; object-fit: cover; }
.ll-lb__cap { position: absolute; left: 18px; bottom: 18px; display: inline-flex; gap: 8px; align-items: center; padding: 9px 16px; border-radius: 999px; background: rgba(255,255,255,.92); font-size: .9rem; font-weight: 600; color: var(--ink); opacity: 0; transition: opacity .4s var(--ease) .25s; }
.ll-lb.is-open .ll-lb__cap { opacity: 1; }
.ll-lb__cap em { font-style: normal; color: var(--sage-deep); }
.ll-lb__btn { position: absolute; z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: #fff; cursor: pointer; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; transition: background-color .3s var(--ease), opacity .4s var(--ease) .2s; }
.ll-lb.is-open .ll-lb__btn { opacity: 1; }
.ll-lb__btn:hover { background: rgba(255,255,255,.28); }
.ll-lb__btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ll-lb__close { top: 20px; right: 20px; }
.ll-lb__prev { left: 20px; top: 50%; margin-top: -24px; }
.ll-lb__next { right: 20px; top: 50%; margin-top: -24px; }
@media (max-width: 640px) { .ll-lb__prev, .ll-lb__next { top: auto; bottom: 24px; margin: 0; } .ll-lb__fig { border-radius: 16px; } }

/* Mouse: light pools and leaf shadows drift with the cursor at different depths. */
.ll-dapple i, .ll-dapple b { translate: calc(var(--dmx, 0) * var(--k, 1) * 1px) calc(var(--dmy, 0) * var(--k, 1) * 1px); }
.ll-dapple i:nth-child(1) { --k: -38; }
.ll-dapple i:nth-child(2) { --k: 26; }
.ll-dapple i:nth-child(3) { --k: -18; }
.ll-dapple i:nth-child(4) { --k: 30; }
.ll-dapple b:nth-of-type(1) { --k: 46; }
.ll-dapple b:nth-of-type(2) { --k: -34; }
.ll-dapple b:nth-of-type(3) { --k: 22; }
.ll-dapple__glow {
	position: absolute; left: 0; top: 0; width: 38vw; height: 38vw; margin: -19vw 0 0 -19vw; border-radius: 50%; pointer-events: none;
	background: radial-gradient(closest-side, rgba(214,234,128,.42), rgba(170,208,90,.16) 55%, transparent);
	mix-blend-mode: screen; filter: blur(30px); opacity: 0; transition: opacity .8s var(--ease);
	transform: translate3d(var(--gx, 50vw), var(--gy, 50vh), 0);
}
.ll-dapple.is-hover .ll-dapple__glow { opacity: 1; }
html.ll-smooth { scroll-behavior: auto; }

/* Early access: captcha and confirmation */
.ll-turnstile { min-height: 65px; display: flex; justify-content: center; }
.ll-form button[type=submit]:disabled { opacity: .5; cursor: not-allowed; }
.ll-form.is-sent > :not(.ll-done) { display: none; }
.ll-done { text-align: center; padding: 24px 8px; animation: ll-done-in .7s var(--ease-out) both; }
.ll-done[hidden] { display: none; }
.ll-done__tick { position: relative; display: inline-block; width: 56px; height: 56px; border-radius: 50%; background: var(--tint); }
.ll-done__tick::after { content: ""; position: absolute; left: 21px; top: 14px; width: 11px; height: 21px; border: solid var(--sage-deep); border-width: 0 2.6px 2.6px 0; transform: rotate(45deg); }
.ll-done__title { margin: 18px 0 0; font-size: 1.75rem; font-weight: 500; letter-spacing: -0.03em; }
.ll-done__text { margin: 8px 0 0; color: var(--muted); }
@keyframes ll-done-in { from { opacity: 0; transform: translateY(12px); } }
@media (max-width: 640px) {
	/* Same green below the form card as beside it. */
	.ll-access { padding-bottom: var(--gutter); }
	/* Centred footer. */
	.ll-footer__bottom { flex-direction: column; align-items: center; text-align: center; gap: 18px; }
	.ll-footer__bottom nav { justify-content: center; }
	.ll-footer__bottom p { margin: 0; }
}

/* Footer sits above the form card's shadow. */
.ll-footer { position: relative; z-index: 2; background: var(--canvas); padding-top: 32px; }
