/* ==========================================================================
   Webonomics: intro.css   (home page, view 1 of 3: welcome)
   Hero, Las Vegas skyline band, key figures, "How we work" steps,
   and the view transitions shared by all three home views.
   ========================================================================== */

/* --- View switching (assets/js/home.js). Without JS every view shows, stacked. --- */
.js .wbn-view[hidden] { display: none; }
.wbn-view { transition: opacity .45s ease, transform .45s ease; }
.wbn-view.is-leaving { opacity: 0; transform: translateY(-14px); }
.wbn-view.is-entering { opacity: 0; transform: translateY(18px); }
html:not(.js) .wbn-view[hidden] { display: block; }

/* --- Welcome animation: hero pieces rise in one after another on first load.
       Pure CSS, so nothing stays hidden if a script fails. Off with reduced motion. --- */
@keyframes wbn-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.js .wbn-rise { animation: wbn-rise .7s ease both; }
.js .wbn-hero-copy .wbn-rise:nth-child(2) { animation-delay: .1s; }
.js .wbn-hero-copy .wbn-rise:nth-child(3) { animation-delay: .2s; }
.js .wbn-hero-copy .wbn-rise:nth-child(4) { animation-delay: .3s; }
.js .wbn-hero-art.wbn-rise { animation-delay: .25s; animation-duration: 1s; }

/* --- Hero --- */
.wbn-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; align-items: center; padding-top: 70px; padding-bottom: 50px; }
.wbn-hero h1 { font-weight: 500; font-size: 62px; line-height: 1.06; margin: 20px 0 26px; }
.wbn-lede { font-size: 19px; color: var(--wbn-slate); max-width: 540px; }
.wbn-ctas { margin-top: 34px; display: flex; gap: 14px; flex-wrap: wrap; }
.wbn-hero-art { position: relative; background: var(--wbn-mist); border: 1px solid var(--wbn-rule); border-radius: 14px; aspect-ratio: 620 / 560; overflow: hidden; }
.wbn-hero-lattice { width: 100%; height: 100%; }
.wbn-hero-mark { position: absolute; left: 62%; top: 50%; width: 15%; transform: translate(-50%, -50%); }

/* --- Las Vegas skyline band (muted, with a faint dot screen fading in from the right) --- */
.wbn-skyline { position: relative; height: 250px; overflow: hidden; }
.wbn-skyline img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; filter: saturate(.55); }
.wbn-skyline::after {
	content: ""; position: absolute; inset: 0;
	background-image: radial-gradient(circle, rgba(255, 255, 255, .55) 1.4px, transparent 1.6px); background-size: 28px 28px;
	-webkit-mask-image: linear-gradient(90deg, transparent 45%, #000 100%); mask-image: linear-gradient(90deg, transparent 45%, #000 100%);
}

/* --- Key figures --- */
.wbn-figures { border-top: 1px solid var(--wbn-rule); border-bottom: 1px solid var(--wbn-rule); }
.wbn-figures-row { display: grid; grid-template-columns: repeat(4, 1fr); }
.wbn-figure { padding: 30px 28px; border-left: 1px solid var(--wbn-rule); }
.wbn-figure:first-child { border-left: 0; padding-left: 0; }
.wbn-figure b { display: block; font: 500 34px var(--wbn-head); color: var(--wbn-ink); }
.wbn-figure span { font-size: 14px; color: var(--wbn-slate); }

/* --- Sections --- */
.wbn-section { padding: 96px 0; }
.wbn-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 44px; }
.wbn-section-head h2 { font-weight: 500; font-size: 40px; line-height: 1.15; max-width: 640px; margin-top: 12px; }

/* --- How we work --- */
.wbn-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; list-style: none; }
.wbn-step { border-top: 2px solid var(--wbn-green); padding-top: 22px; }
.wbn-step-n { font: 500 14px var(--wbn-body); color: var(--wbn-green); letter-spacing: .1em; }
.wbn-step h3 { font-weight: 600; font-size: 21px; margin: 8px 0; }
.wbn-step p { font-size: 15px; color: var(--wbn-slate); }

@media (max-width: 960px) {
	.wbn-hero h1 { font-size: 48px; }
	.wbn-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px) {
	.wbn-hero { grid-template-columns: 1fr; padding-top: 40px; padding-bottom: 36px; }
	.wbn-hero h1 { font-size: 38px; }
	.wbn-lede { font-size: 17px; }
	.wbn-ctas { flex-direction: column; }
	.wbn-skyline { height: 150px; }
	.wbn-figures-row { grid-template-columns: 1fr 1fr; }
	.wbn-figure { padding: 20px 0 20px 16px; }
	.wbn-figure:nth-child(3) { border-left: 0; padding-left: 0; }
	.wbn-figure:nth-child(n+3) { border-top: 1px solid var(--wbn-rule); }
	.wbn-figure b { font-size: 26px; }
	.wbn-section { padding: 64px 0; }
	.wbn-section-head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.wbn-section-head h2 { font-size: 30px; }
	.wbn-steps { grid-template-columns: 1fr; }
}
